@moneko/core 2.0.16-beta.9 → 2.0.17-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/build/common.js +1 -1
  2. package/build/envFlags.d.ts +1 -1
  3. package/build/envFlags.js +1 -1
  4. package/build/html-plugin-option.d.ts +2 -2
  5. package/build/html-plugin-option.js +1 -1
  6. package/build/modifyVars.js +1 -1
  7. package/build/webpack.common.js +1 -1
  8. package/lib/components/{app-router/index.d.ts → app-router.d.ts} +1 -1
  9. package/lib/components/app-router.js +2 -0
  10. package/lib/components/app-router.js.map +1 -0
  11. package/lib/components/{fallback-comp/index.js → fallback-comp.js} +1 -1
  12. package/lib/components/fallback-comp.js.map +1 -0
  13. package/lib/components/{fallback/index.js → fallback.js} +2 -2
  14. package/lib/components/fallback.js.map +1 -0
  15. package/lib/components/{layout-menu/index.js → layout-menu.js} +2 -2
  16. package/lib/components/layout-menu.js.map +1 -0
  17. package/lib/index.d.ts +6 -2
  18. package/lib/index.js +1 -1
  19. package/lib/index.js.map +1 -1
  20. package/lib/localizable.d.ts +53 -0
  21. package/lib/localizable.js +2 -0
  22. package/lib/localizable.js.map +1 -0
  23. package/lib/menu.d.ts +115 -0
  24. package/lib/menu.js +2 -0
  25. package/lib/menu.js.map +1 -0
  26. package/lib/packages/back-stage/app.js +1 -1
  27. package/lib/packages/back-stage/app.js.map +1 -1
  28. package/lib/packages/back-stage/bootstrap.js +1 -1
  29. package/lib/packages/back-stage/bootstrap.js.map +1 -1
  30. package/lib/packages/back-stage/index.d.ts +0 -1
  31. package/lib/packages/back-stage/index.js +1 -1
  32. package/lib/packages/back-stage/index.js.map +1 -1
  33. package/lib/packages/back-stage/layout.js +2 -0
  34. package/lib/packages/back-stage/layout.js.map +1 -0
  35. package/lib/packages/library/app.js +1 -1
  36. package/lib/packages/library/app.js.map +1 -1
  37. package/lib/packages/library/index.d.ts +0 -1
  38. package/lib/packages/library/index.js +1 -1
  39. package/lib/packages/library/index.js.map +1 -1
  40. package/lib/packages/mobile/app.js +1 -1
  41. package/lib/packages/mobile/app.js.map +1 -1
  42. package/lib/packages/mobile/index.d.ts +0 -1
  43. package/lib/packages/mobile/index.js +1 -1
  44. package/lib/packages/mobile/index.js.map +1 -1
  45. package/lib/packages/single-spa/app.d.ts +2 -2
  46. package/lib/packages/single-spa/app.js +1 -1
  47. package/lib/packages/single-spa/app.js.map +1 -1
  48. package/lib/packages/single-spa/bootstrap.js +1 -1
  49. package/lib/packages/single-spa/bootstrap.js.map +1 -1
  50. package/lib/packages/single-spa/index.d.ts +0 -1
  51. package/lib/packages/single-spa/index.js +1 -1
  52. package/lib/packages/single-spa/index.js.map +1 -1
  53. package/lib/packages/site/app.js +1 -1
  54. package/lib/packages/site/app.js.map +1 -1
  55. package/lib/packages/site/index.d.ts +0 -1
  56. package/lib/packages/site/index.js +1 -1
  57. package/lib/packages/site/index.js.map +1 -1
  58. package/lib/prefix/react-router-dom.js +1 -1
  59. package/lib/prefix/react-router-dom.js.map +1 -1
  60. package/lib/react-router-dom/link.d.ts +9 -0
  61. package/lib/react-router-dom/link.js +2 -0
  62. package/lib/react-router-dom/link.js.map +1 -0
  63. package/lib/{hooks/navgate.js → react-router-dom/use-navgate.js} +1 -1
  64. package/lib/react-router-dom/use-navgate.js.map +1 -0
  65. package/lib/router/index.d.ts +6 -0
  66. package/lib/router/index.js.map +1 -1
  67. package/lib/{store → sso}/index.d.ts +12 -2
  68. package/lib/{store → sso}/index.js +1 -1
  69. package/lib/sso/index.js.map +1 -0
  70. package/lib/styles/normalize.css +26 -18
  71. package/lib/styles/variables.css +33 -33
  72. package/package.json +2 -3
  73. package/template/404.html +29 -0
  74. package/typings/global.d.ts +15 -15
  75. package/lib/components/app-router/index.js +0 -2
  76. package/lib/components/app-router/index.js.map +0 -1
  77. package/lib/components/fallback/index.js.map +0 -1
  78. package/lib/components/fallback-comp/index.js.map +0 -1
  79. package/lib/components/layout-menu/index.js.map +0 -1
  80. package/lib/hooks/navgate.js.map +0 -1
  81. package/lib/packages/back-stage/layout/index.js +0 -2
  82. package/lib/packages/back-stage/layout/index.js.map +0 -1
  83. package/lib/packages/back-stage/layout/index.less +0 -81
  84. package/lib/packages/back-stage/models/app-program.d.ts +0 -0
  85. package/lib/packages/back-stage/models/app-program.js +0 -2
  86. package/lib/packages/back-stage/models/app-program.js.map +0 -1
  87. package/lib/prefix/i18n-hooks.d.ts +0 -1
  88. package/lib/prefix/i18n-hooks.js +0 -2
  89. package/lib/prefix/i18n-hooks.js.map +0 -1
  90. package/lib/prefix/mini-idc.d.ts +0 -1
  91. package/lib/prefix/mini-idc.js +0 -2
  92. package/lib/prefix/mini-idc.js.map +0 -1
  93. package/lib/store/index.js.map +0 -1
  94. package/lib/styles/animation.css +0 -24
  95. package/lib/utils/env.d.ts +0 -0
  96. package/lib/utils/env.js +0 -2
  97. package/lib/utils/env.js.map +0 -1
  98. /package/lib/components/{fallback-comp/index.d.ts → fallback-comp.d.ts} +0 -0
  99. /package/lib/components/{fallback/index.d.ts → fallback.d.ts} +0 -0
  100. /package/lib/components/{layout-menu/index.d.ts → layout-menu.d.ts} +0 -0
  101. /package/lib/packages/back-stage/{layout/index.d.ts → layout.d.ts} +0 -0
  102. /package/lib/{hooks/navgate.d.ts → react-router-dom/use-navgate.d.ts} +0 -0
@@ -4,10 +4,20 @@ type Data = Record<string, unknown>;
4
4
  type Setter<T> = <K extends keyof T>(key: K, updater: Updater<T[K]>) => void;
5
5
  type Store<T> = T & Setter<T>;
6
6
  declare let run: (fn: VoidFn) => void;
7
- declare const createStore: {
7
+ /** 创建共享存储对象 Shared Store Object
8
+ * @example
9
+ * // 创建状态
10
+ * const store = sso({ count: 0 });
11
+ * // 使用
12
+ * console.log(store.count); // 0
13
+ * // 修改
14
+ * store.count++;
15
+ * console.log(store.count); // 1
16
+ */
17
+ declare const sso: {
8
18
  <T extends Data>(data: T): Store<T>;
9
19
  config({ batch }: {
10
20
  batch: typeof run;
11
21
  }): void;
12
22
  };
13
- export default createStore;
23
+ export default sso;
@@ -1,2 +1,2 @@
1
- function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _instanceof(left,right){if(right!=null&&typeof Symbol!=="undefined"&&right[Symbol.hasInstance]){return!!right[Symbol.hasInstance](left)}else{return left instanceof right}}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import{useSyncExternalStore}from"use-sync-external-store/shim";var __DEV__=process.env.NODE_ENV!=="production";var __DEV_ERR__=function(msg){if(__DEV__){throw new Error(msg)}};var isInMethod=false;var run=function(fn){fn()};var createStore=function(data){if(__DEV__&&Object.prototype.toString.call(data)!=="[object Object]"){throw new Error("object required")}var state={};var methods={};Object.keys(data).forEach(function(key){var initVal=data[key];if(_instanceof(initVal,Function)){methods[key]=function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}isInMethod=true;var res=initVal.apply(void 0,_toConsumableArray(args));isInMethod=false;return res};return}var listeners=new Set;state[key]={subscribe:function(listener){listeners.add(listener);return function(){return listeners.delete(listener)}},getSnapshot:function(){return data[key]},setSnapshot:function(val){if(val!==data[key]){data[key]=val;run(function(){return listeners.forEach(function(listener){return listener()})})}},useSnapshot:function(){return useSyncExternalStore(state[key].subscribe,state[key].getSnapshot,state[key].getSnapshot)}}});var setState=function(key,val){if(key in data){if(key in state){var newVal=_instanceof(val,Function)?val(data[key]):val;state[key].setSnapshot(newVal)}else{__DEV_ERR__("`".concat(key,"` is a method, can not update"))}}else{__DEV_ERR__("`".concat(key,"` is not initialized in store"))}};return new Proxy(function(){return undefined},{get:function(_,key){if(key in methods){return methods[key]}if(isInMethod){return data[key]}try{return state[key].useSnapshot()}catch(err){return data[key]}},set:function(_,key,val){setState(key,val);return true},apply:function(_,__,param){var _param=_slicedToArray(param,2),key=_param[0],updater=_param[1];if(typeof updater==="function"){setState(key,updater)}else{__DEV_ERR__("updater for `".concat(key,"` should be a function"))}}})};createStore.config=function(param){var batch=param.batch;run=batch};export default createStore;
1
+ function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _instanceof(left,right){if(right!=null&&typeof Symbol!=="undefined"&&right[Symbol.hasInstance]){return!!right[Symbol.hasInstance](left)}else{return left instanceof right}}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import{useSyncExternalStore}from"use-sync-external-store/shim";var __DEV__=process.env.NODE_ENV!=="production";var __DEV_ERR__=function(msg){if(__DEV__){throw new Error(msg)}};var isInMethod=false;var run=function(fn){fn()};var sso=function(data){if(__DEV__&&Object.prototype.toString.call(data)!=="[object Object]"){throw new Error("object required")}var state={};var methods={};Object.keys(data).forEach(function(key){var initVal=data[key];if(_instanceof(initVal,Function)){methods[key]=function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}isInMethod=true;var res=initVal.apply(void 0,_toConsumableArray(args));isInMethod=false;return res};return}var listeners=new Set;state[key]={subscribe:function(listener){listeners.add(listener);return function(){return listeners.delete(listener)}},getSnapshot:function(){return data[key]},setSnapshot:function(val){if(val!==data[key]){data[key]=val;run(function(){return listeners.forEach(function(listener){return listener()})})}},useSnapshot:function(){return useSyncExternalStore(state[key].subscribe,state[key].getSnapshot,state[key].getSnapshot)}}});var setState=function(key,val){if(key in data){if(key in state){var newVal=_instanceof(val,Function)?val(data[key]):val;state[key].setSnapshot(newVal)}else{__DEV_ERR__("`".concat(key,"` is a method, can not update"))}}else{__DEV_ERR__("`".concat(key,"` is not initialized in store"))}};return new Proxy(function(){return undefined},{get:function(_,key){if(key in methods){return methods[key]}if(isInMethod){return data[key]}try{return state[key].useSnapshot()}catch(err){return data[key]}},set:function(_,key,val){setState(key,val);return true},apply:function(_,__,param){var _param=_slicedToArray(param,2),key=_param[0],updater=_param[1];if(typeof updater==="function"){setState(key,updater)}else{__DEV_ERR__("updater for `".concat(key,"` should be a function"))}}})};sso.config=function(param){var batch=param.batch;run=batch};export default sso;
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/sso/index.ts"],"sourcesContent":["import { useSyncExternalStore } from 'use-sync-external-store/shim';\n\ntype VoidFn = () => void;\n// eslint-disable-next-line no-unused-vars\ntype AnyFn = (...args: unknown[]) => unknown;\n// eslint-disable-next-line no-unused-vars\ntype Updater<V> = (val: V) => V;\n\ntype Data = Record<string, unknown>;\ntype State<T> = {\n [K in keyof T]: {\n // eslint-disable-next-line no-unused-vars\n subscribe: (listener: VoidFn) => VoidFn;\n getSnapshot: () => T[K];\n useSnapshot: () => T[K];\n // eslint-disable-next-line no-unused-vars\n setSnapshot: (val: T[K]) => void;\n };\n};\ntype Methods<T> = Record<keyof T, AnyFn>;\n// eslint-disable-next-line no-unused-vars\ntype Setter<T> = <K extends keyof T>(key: K, updater: Updater<T[K]>) => void;\ntype Store<T> = T & Setter<T>;\n\nconst __DEV__ = process.env.NODE_ENV !== 'production';\nconst __DEV_ERR__ = (msg: string) => {\n if (__DEV__) {\n throw new Error(msg);\n }\n};\n\nlet isInMethod = false;\nlet run = (fn: VoidFn) => {\n fn();\n};\n\n// eslint-disable-next-line valid-jsdoc\n/** 创建共享存储对象 Shared Store Object\n * @example\n * // 创建状态\n * const store = sso({ count: 0 });\n * // 使用\n * console.log(store.count); // 0\n * // 修改\n * store.count++;\n * console.log(store.count); // 1\n */\nconst sso = <T extends Data>(data: T): Store<T> => {\n if (__DEV__ && Object.prototype.toString.call(data) !== '[object Object]') {\n throw new Error('object required');\n }\n\n const state: State<T> = {} as State<T>;\n const methods: Methods<T> = {} as Methods<T>;\n\n Object.keys(data).forEach((key: keyof T) => {\n const initVal = data[key];\n\n if (initVal instanceof Function) {\n methods[key] = (...args: unknown[]) => {\n isInMethod = true;\n const res = initVal(...args);\n\n isInMethod = false;\n return res;\n };\n return;\n }\n\n const listeners = new Set<VoidFn>();\n\n state[key] = {\n subscribe: (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n getSnapshot: () => data[key],\n setSnapshot: (val) => {\n if (val !== data[key]) {\n data[key] = val;\n run(() => listeners.forEach((listener) => listener()));\n }\n },\n useSnapshot: () => {\n return useSyncExternalStore(\n state[key].subscribe,\n state[key].getSnapshot,\n state[key].getSnapshot\n );\n },\n };\n });\n\n const setState = (key: keyof T, val: T[keyof T] | Updater<T[keyof T]>) => {\n if (key in data) {\n if (key in state) {\n const newVal = val instanceof Function ? val(data[key]) : val;\n\n state[key].setSnapshot(newVal);\n } else {\n __DEV_ERR__(`\\`${key as string}\\` is a method, can not update`);\n }\n } else {\n __DEV_ERR__(`\\`${key as string}\\` is not initialized in store`);\n }\n };\n\n return new Proxy(\n // eslint-disable-next-line no-undefined\n (() => undefined) as unknown as Store<T>,\n {\n get: (_, key: keyof T) => {\n if (key in methods) {\n return methods[key];\n }\n\n if (isInMethod) {\n return data[key];\n }\n\n try {\n return state[key].useSnapshot();\n } catch (err) {\n return data[key];\n }\n },\n set: (_, key: keyof T, val: T[keyof T]) => {\n setState(key, val);\n return true;\n },\n apply: (_, __, [key, updater]: [keyof T, Updater<T[keyof T]>]) => {\n if (typeof updater === 'function') {\n setState(key, updater);\n } else {\n __DEV_ERR__(`updater for \\`${key as string}\\` should be a function`);\n }\n },\n } as ProxyHandler<Store<T>>\n );\n};\n\nsso.config = ({ batch }: { batch: typeof run }) => {\n run = batch;\n};\n\nexport default sso;\n"],"names":["useSyncExternalStore","__DEV__","process","env","NODE_ENV","__DEV_ERR__","msg","Error","isInMethod","run","fn","sso","data","Object","prototype","toString","call","state","methods","keys","forEach","key","initVal","Function","args","res","listeners","Set","subscribe","listener","add","delete","getSnapshot","setSnapshot","val","useSnapshot","setState","newVal","Proxy","undefined","get","_","err","set","apply","__","updater","config","batch"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  @import url('tailwindcss/utilities');
2
- @import url('./animation.css');
3
2
  @import url('./variables.css');
4
3
 
5
4
  html,
@@ -217,28 +216,12 @@ template {
217
216
  font: inherit;
218
217
  }
219
218
 
220
- :-webkit-autofill,
221
- :-webkit-autofill:hover,
222
- :-webkit-autofill:focus {
223
- border: none;
224
- border-radius: 5px;
225
- font-weight: 400;
226
- box-shadow: 0 0 0 1000px transparent inset;
227
- transition: background-color var(--transition-duration) var(--transition-timing-function);
228
- -webkit-text-fill-color: var(--text-color);
229
- caret-color: transparent;
230
- }
231
-
232
219
  ::-webkit-scrollbar {
233
220
  width: 4px;
234
221
  height: 4px;
235
- opacity: 0;
236
- }
237
-
238
- ::-webkit-scrollbar-track {
239
- background-color: transparent;
240
222
  }
241
223
 
224
+ ::-webkit-scrollbar-track,
242
225
  ::-webkit-scrollbar-thumb {
243
226
  border-radius: 5px;
244
227
  background-color: transparent;
@@ -259,3 +242,28 @@ template {
259
242
  ::-webkit-scrollbar-button {
260
243
  display: none;
261
244
  }
245
+
246
+ @keyframes route-in {
247
+ from {
248
+ transform: translate3d(0, 16px, 0);
249
+ opacity: 0;
250
+ }
251
+
252
+ to {
253
+ transform: translate3d(0, 0, 0);
254
+ opacity: 1;
255
+ }
256
+ }
257
+
258
+ @keyframes route-out {
259
+ from {
260
+ transform: translate3d(0, 0, 0);
261
+ opacity: 1;
262
+ }
263
+
264
+ to {
265
+ z-index: -1;
266
+ transform: translate3d(0, 1rem, 0);
267
+ opacity: 0;
268
+ }
269
+ }
@@ -1,35 +1,35 @@
1
1
  :root {
2
- --font-size: 14px;
3
- --font-size-sm: 12px;
4
- --font-size-xs: 10px;
5
- --font-size-lg: 16px;
6
- --border-base: 1px solid var(--border-color);
7
- --border-color: #d9d9d9;
8
- --border-radius: 8px;
9
- --body-background: #f8f8f8;
10
- --component-background: rgb(255 255 255 / 80%);
11
- --table-header-bg: rgb(0 0 0 / 2%);
12
- --text-color: rgb(0 0 0 / 65%);
13
- --text-secondary: #4e4e4e;
14
- --text-heading: #1b1b1b;
15
- --text-selection-bg: var(--primary-color-bg);
16
- --text-shadow-color: rgb(0 0 0 / 10%);
17
- --box-shadow-base: 0 3px 6px -4px rgb(0 0 0 / 12%), 0 6px 16px 0 rgb(0 0 0 / 8%),
18
- 0 9px 28px 8px rgb(0 0 0 / 5%);
19
- --font-family: -apple-system, 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Helvetica Neue',
20
- 'Arial', 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
21
- 'Noto Color Emoji', 'Helvetica', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans';
22
- --transition-duration: 0.3s;
23
- --transition-timing-function: cubic-bezier(0.94, -0.1, 0.1, 1.2);
24
- }
2
+ --font-size: 14px;
3
+ --font-size-sm: 12px;
4
+ --font-size-xs: 10px;
5
+ --font-size-lg: 16px;
6
+ --border-base: 1px solid var(--border-color);
7
+ --border-color: rgb(5 5 5 / 6%);
8
+ --border-radius: 8px;
9
+ --body-background: #f8f8f8;
10
+ --component-background: rgb(255 255 255 / 80%);
11
+ --table-header-bg: rgb(0 0 0 / 2%);
12
+ --text-color: rgb(0 0 0 / 65%);
13
+ --text-secondary: #4e4e4e;
14
+ --text-heading: #1b1b1b;
15
+ --text-selection-bg: var(--primary-color-bg);
16
+ --text-shadow-color: rgb(0 0 0 / 10%);
17
+ --box-shadow-base: 0 3px 6px -4px rgb(0 0 0 / 12%), 0 6px 16px 0 rgb(0 0 0 / 8%),
18
+ 0 9px 28px 8px rgb(0 0 0 / 5%);
19
+ --font-family: -apple-system, 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Helvetica Neue',
20
+ 'Arial', 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
21
+ 'Noto Color Emoji', 'Helvetica', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans';
22
+ --transition-duration: 0.3s;
23
+ --transition-timing-function: cubic-bezier(0.94, -0.1, 0.1, 1.2);
24
+ }
25
25
 
26
- [data-theme='dark'] {
27
- --text-color: #ffffffd9;
28
- --text-secondary: #cdcdcd;
29
- --text-heading: rgb(255 255 255 / 85%);
30
- --text-shadow-color: rgb(255 255 255 / 10%);
31
- --body-background: #000;
32
- --component-background: rgb(20 20 20 / 80%);
33
- --header-bg: rgb(20 20 20 / 90%);
34
- --border-color: #303030;
35
- }
26
+ [data-theme='dark'] {
27
+ --text-color: #ffffffd9;
28
+ --text-secondary: #cdcdcd;
29
+ --text-heading: rgb(255 255 255 / 85%);
30
+ --text-shadow-color: rgb(255 255 255 / 10%);
31
+ --body-background: #000;
32
+ --component-background: rgb(20 20 20 / 80%);
33
+ --header-bg: rgb(20 20 20 / 90%);
34
+ --border-color: #303030;
35
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moneko/core",
3
- "version": "2.0.16-beta.9",
3
+ "version": "2.0.17-beta.0",
4
4
  "description": "core",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -33,7 +33,6 @@
33
33
  "external-remotes-plugin": "1.0.0",
34
34
  "fastclick": "1.0.6",
35
35
  "html-webpack-plugin": "5.5.0",
36
- "i18n-hooks": "1.0.17",
37
36
  "less": "4.1.3",
38
37
  "less-loader": "11.1.0",
39
38
  "mini-css-extract-plugin": "2.7.3",
@@ -54,7 +53,7 @@
54
53
  "ts-import-plugin": "2.0.0",
55
54
  "ts-loader": "9.4.2",
56
55
  "typescript": "4.9.5",
57
- "use-sync-external-store": "^1.2.0",
56
+ "use-sync-external-store": "1.2.0",
58
57
  "webpack": "5.76.1",
59
58
  "webpack-bundle-analyzer": "4.8.0",
60
59
  "webpack-cli": "5.0.1",
@@ -0,0 +1,29 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title><%= htmlWebpackPlugin.options.title %></title>
5
+ <script type="text/javascript">
6
+ let pathSegmentsToKeep = 1;
7
+ let l = window.location;
8
+
9
+ l.replace(
10
+ l.protocol +
11
+ '//' +
12
+ l.hostname +
13
+ (l.port ? ':' + l.port : '') +
14
+ l.pathname
15
+ .split('/')
16
+ .slice(0, 1 + pathSegmentsToKeep)
17
+ .join('/') +
18
+ '/?/' +
19
+ l.pathname.slice(1).split('/').slice(pathSegmentsToKeep).join('/').replace(/&/g, '~and~') +
20
+ (l.search ? '&' + l.search.slice(1).replace(/&/g, '~and~') : '') +
21
+ l.hash
22
+ );
23
+ </script>
24
+ </head>
25
+
26
+ <body>
27
+ </body>
28
+
29
+ </html>
@@ -23,6 +23,13 @@ export declare type AppType =
23
23
  | 'library';
24
24
  export type TerserOptions = MinifyOptions;
25
25
  export type SwcOptions = JsMinifyOptions;
26
+ export type HtmlWebpackOption = HtmlWebpackPluginOptions & {
27
+ tags?: {
28
+ textContent?: string;
29
+ tag?: string;
30
+ [key: string]: string | null | boolean | number;
31
+ }[];
32
+ };
26
33
  export declare type ConfigType<T = 'tsc'> = {
27
34
  /** 渲染模式 */
28
35
  mode: 'ssr' | 'csr';
@@ -53,13 +60,8 @@ export declare type ConfigType<T = 'tsc'> = {
53
60
  /** 环境变量, 可通过 process.env 获取 */
54
61
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
55
62
  env?: Record<string, any>;
56
- /** mini-idc 数据持久化配置, 为 false 时关闭持久化 */
57
- miniIdc?:
58
- | {
59
- /** 持久化数据使用的key, 当key为 'none' 时, 关闭持久化 */
60
- programName?: string;
61
- }
62
- | false;
63
+ /** persistence 持久化数据使用的key, 为 false 时关闭持久化 */
64
+ persistence?: string | false;
63
65
  devtool?: Configuration['devtool'];
64
66
  sourceMap?: SourceMapDevToolPluginOptions | false;
65
67
  /** 路径别名映射 */
@@ -121,17 +123,15 @@ export declare type ConfigType<T = 'tsc'> = {
121
123
  compress?: boolean;
122
124
  };
123
125
  /** HtmlWebpackPlugin Option */
124
- htmlPluginOption: HtmlWebpackPluginOptions & {
125
- tags?: {
126
- textContent?: string;
127
- tag?: string;
128
- [key: string]: string | null | boolean | number;
129
- }[];
130
- };
126
+ htmlPluginOption: HtmlWebpackOption;
131
127
  /** 自定义插入 html 的 js 和 css */
132
128
  assetHtml: AssetHtmlOptions[];
133
- /** 路由模式 默认 browser */
129
+ /** 路由模式 默认 browser
130
+ * 当在不支持 browserRouter 的环境(GitHub pages)使用 browserRouter,
131
+ * 则需要添加设置 fixBrowserRouter: true */
134
132
  routerMode: 'hash' | 'browser' | 'memory';
133
+ /** 在不支持 browserRouter 的环境(GitHub pages)使用 browserRouter */
134
+ fixBrowserRouter: boolean;
135
135
  /** webpack 插件 */
136
136
  plugins: WebpackPluginInstance[];
137
137
  /** 对生产chunk进行拆分 */
@@ -1,2 +0,0 @@
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)}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}import React,{Fragment as ReactFragment,Suspense,cloneElement as clone,createElement as create,useEffect,isValidElement}from"react";import{isObject}from"@moneko/common";import{AliveScope,KeepAlive,useAliveController}from"react-activation";import{createBrowserRouter,createHashRouter}from"react-router-dom";import{router}from"../../router";import Fallback from"../fallback";var PrefixKeepAlive=function(_param){var children=_param.children,name=_param.name,args=_objectWithoutProperties(_param,["children","name"]);var _useAliveController=useAliveController(),drop=_useAliveController.drop,dropScope=_useAliveController.dropScope,clear=_useAliveController.clear,getCachingNodes=_useAliveController.getCachingNodes;var id=window.location.pathname+window.location.hash;useEffect(function(){if(window.__POWERED_BY_QIANKUN__&&window.primaryApp){if(!window.primaryApp.currentTarget){window.primaryApp.currentTarget={}}Object.assign(window.primaryApp.currentTarget,{aliveController:{drop:drop,dropScope:dropScope,clear:clear,getCachingNodes:getCachingNodes}})}},[clear,drop,dropScope,getCachingNodes]);var _children=children;return React.createElement(KeepAlive,_extends({id:id,name:id},args),clone(_children,{path:name,selfUrl:id}))};var existKeepAlive=false;export var createRouter=programInfo.routerMode==="hash"?createHashRouter:createBrowserRouter;export var RouterFragment=ReactFragment;export function prefixRouter(list,fallback){return list.map(function(r){var _=Object.assign({},r);if(!!_.alive&&!existKeepAlive){existKeepAlive=true;RouterFragment=AliveScope}if(_.element){var props=Object.assign({path:_.key},_.props);var ele=isValidElement(_.element)?clone(_.element,props):create(_.element,props);if(_.alive){var aliveProps={name:_.key,cacheKey:_.key};if(isObject(_.alive)){Object.assign(aliveProps,_.alive)}_.element=create(PrefixKeepAlive,aliveProps,ele)}else{_.element=React.createElement(Suspense,{fallback:r.fallback||fallback},ele)}}if(Array.isArray(_.children)){_.children=prefixRouter(_.children,fallback)}return _})}export var routerData=prefixRouter(router,React.createElement(Fallback,null));
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/app-router/index.tsx"],"sourcesContent":["import React, {\n Fragment as ReactFragment,\n Suspense,\n cloneElement as clone,\n createElement as create,\n useEffect,\n isValidElement,\n type ReactElement,\n} from 'react';\nimport { isObject } from '@moneko/common';\nimport { AliveScope, KeepAlive, useAliveController, type KeepAliveProps } from 'react-activation';\nimport { createBrowserRouter, createHashRouter } from 'react-router-dom';\nimport { router, type RouterProps } from '../../router';\nimport Fallback from '../fallback';\n\nconst PrefixKeepAlive: React.FC<Partial<KeepAliveProps>> = ({ children, name, ...args }) => {\n const { drop, dropScope, clear, getCachingNodes } = useAliveController();\n const id = window.location.pathname + window.location.hash;\n\n useEffect(() => {\n if (window.__POWERED_BY_QIANKUN__ && window.primaryApp) {\n if (!window.primaryApp.currentTarget) {\n window.primaryApp.currentTarget = {};\n }\n Object.assign(window.primaryApp.currentTarget, {\n aliveController: { drop, dropScope, clear, getCachingNodes },\n });\n }\n }, [clear, drop, dropScope, getCachingNodes]);\n\n const _children = children as ReactElement;\n\n return (\n <KeepAlive id={id} name={id} {...args}>\n {clone(_children, {\n path: name,\n selfUrl: id,\n })}\n </KeepAlive>\n );\n};\n\nlet existKeepAlive = false;\n\nexport const createRouter =\n programInfo.routerMode === 'hash' ? createHashRouter : createBrowserRouter;\nexport let RouterFragment: typeof ReactFragment | typeof AliveScope = ReactFragment;\n\nexport function prefixRouter(list: RouterProps[], fallback: ReactElement) {\n return list.map((r) => {\n const _ = Object.assign({}, r);\n\n if (!!_.alive && !existKeepAlive) {\n existKeepAlive = true;\n RouterFragment = AliveScope;\n }\n if (_.element) {\n const props = Object.assign({ path: _.key }, _.props);\n const ele = isValidElement(_.element) ? clone(_.element, props) : create(_.element, props);\n\n if (_.alive) {\n const aliveProps: Partial<KeepAliveProps> = {\n name: _.key,\n cacheKey: _.key,\n };\n\n if (isObject(_.alive)) {\n Object.assign(aliveProps, _.alive);\n }\n _.element = create(PrefixKeepAlive, aliveProps, ele);\n } else {\n _.element = <Suspense fallback={r.fallback || fallback}>{ele}</Suspense>;\n }\n }\n\n if (Array.isArray(_.children)) {\n _.children = prefixRouter(_.children, fallback);\n }\n return _;\n });\n}\n\nexport const routerData = prefixRouter(router, <Fallback />);\n"],"names":["React","Fragment","ReactFragment","Suspense","cloneElement","clone","createElement","create","useEffect","isValidElement","isObject","AliveScope","KeepAlive","useAliveController","createBrowserRouter","createHashRouter","router","Fallback","PrefixKeepAlive","children","name","args","drop","dropScope","clear","getCachingNodes","id","window","location","pathname","hash","__POWERED_BY_QIANKUN__","primaryApp","currentTarget","Object","assign","aliveController","_children","path","selfUrl","existKeepAlive","createRouter","programInfo","routerMode","RouterFragment","prefixRouter","list","fallback","map","r","_","alive","element","props","key","ele","aliveProps","cacheKey","Array","isArray","routerData"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/fallback/index.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport { useOutlet } from 'react-router-dom';\nimport FallbackComp from '../fallback-comp';\n\ndeclare const fallbackCompPath: string;\n\nconst Fallback: React.FC = () => {\n const outlet = useOutlet()?.props.children;\n const [el, setEl] = useState(<>Loading...</>);\n\n useMemo(() => {\n if (typeof fallbackCompPath === 'string') {\n const pat = fallbackCompPath.replace(/@\\//, '').split('/');\n const [directory, ...path] = pat;\n\n setEl(<FallbackComp directory={directory} compName={path.join('/')} />);\n }\n }, []);\n\n return outlet ? outlet : el;\n};\n\nexport default React.memo(Fallback);\n"],"names":["React","useMemo","useState","useOutlet","FallbackComp","Fallback","outlet","props","children","el","setEl","fallbackCompPath","pat","replace","split","directory","path","compName","join","memo"],"mappings":"ykDAAA,OAAOA,OAASC,OAAO,CAAEC,QAAQ,KAAQ,OAAQ,AACjD,QAASC,SAAS,KAAQ,kBAAmB,AAC7C,QAAOC,iBAAkB,kBAAmB,CAI5C,IAAMC,SAAqB,UAAM,KAChBF,WAAf,IAAMG,OAASH,CAAAA,WAAAA,qBAAAA,oBAAAA,KAAAA,EAAAA,WAAaI,MAAMC,QAAQ,CAC1C,IAAoBN,yBAAAA,SAAS,wCAAE,kBAAxBO,GAAaP,aAATQ,MAASR,aAEpBD,QAAQ,UAAM,CACZ,GAAI,OAAOU,mBAAqB,SAAU,CACxC,IAAMC,IAAMD,iBAAiBE,OAAO,CAAC,MAAO,IAAIC,KAAK,CAAC,KACtD,IAA6BF,cAAAA,KAAtBG,UAAsBH,QAAX,AAAGI,KAAQJ,WAAX,GAElBF,MAAM,oBAACN,cAAaW,UAAWA,UAAWE,SAAUD,KAAKE,IAAI,CAAC,OAChE,CAAC,AACH,EAAG,EAAE,EAEL,OAAOZ,OAASA,OAASG,EAAE,AAC7B,CAEA,gBAAeT,MAAMmB,IAAI,CAACd,SAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/fallback-comp/index.tsx"],"sourcesContent":["/* eslint-disable no-console */\nimport * as React from 'react';\n\nexport interface FallbackCompProps {\n /** 组件所在父级目录(默认:components) */\n directory?: string;\n /** 组件所在位置(不包含父级目录) */\n compName: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n}\nconst FallbackComp: React.FC<FallbackCompProps> = (props: FallbackCompProps) => {\n const { directory = 'components', compName, ...prop } = props;\n\n let Comp = React.Fragment;\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n Comp = require(`@/${directory}/${compName}`).default;\n } catch (error) {\n console.info(\n `${compName} 组件不存在, 请在 @/${directory}/${compName} 目录下新建 index.tsx, 并导出默认组件`\n );\n }\n\n return React.isValidElement(Comp) ? null : <Comp {...prop} />;\n};\n\nexport default React.memo(FallbackComp);\n"],"names":["React","FallbackComp","props","directory","compName","prop","Comp","Fragment","require","default","error","console","info","isValidElement","memo"],"mappings":"w9BACA,UAAYA,UAAW,OAAQ,CAU/B,IAAMC,aAA4C,SAACC,MAA6B,CAC9E,qBAAwDA,MAAhDC,UAAAA,oCAAY,8BAAcC,SAAsBF,MAAtBE,SAAaC,8BAASH,OAAhDC,YAA0BC,aAElC,IAAIE,KAAON,MAAMO,QAAQ,CAEzB,GAAI,CAEFD,KAAOE,QAAQ,AAAC,KAAiBJ,OAAbD,UAAU,KAAY,OAATC,WAAYK,OAAO,AACtD,CAAE,MAAOC,MAAO,CACdC,QAAQC,IAAI,CACV,AAAC,GAA0BT,OAAxBC,SAAS,iBAA4BA,OAAbD,UAAU,KAAY,OAATC,SAAS,6BAErD,CAEA,OAAOJ,MAAMa,cAAc,CAACP,MAAQ,IAAI,CAAG,oBAACA,iBAASD,MAAQ,AAC/D,CAEA,gBAAeL,MAAMc,IAAI,CAACb,aAAc"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/layout-menu/index.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { classNames, isEqual } from '@moneko/common';\nimport { Menu, type MenuProps } from 'antd';\nimport { useLocale } from 'i18n-hooks';\nimport { useSearchParams, Link } from 'react-router-dom';\nimport { type RouterProps } from '../../router';\nimport app from '@/store/app';\n\nexport interface LayoutMenuProps extends MenuProps {\n collapsed?: boolean;\n}\n\nconst LayoutMenu: React.FC<LayoutMenuProps> = (prop) => {\n const { collapsed, ...menuProps } = prop;\n const [search] = useSearchParams();\n const { getLanguage } = useLocale();\n const openKeysRef = useRef<string[]>();\n const { menu, menuKV, activeKey } = app;\n const [openKeys, setOpenKeys] = useState<string[]>([]);\n const handleOpenChange = useCallback(\n (keys: string[]) => {\n if (keys !== openKeys) {\n setOpenKeys(keys as string[]);\n }\n },\n [openKeys]\n );\n\n const filterMenu = useCallback(\n (list: ItemTypes[]): ItemTypes[] => {\n return list.map((item) => {\n const { icon, itemIcon, disabled, type, key, path, label, children } = item;\n const text = label ? getLanguage(label as string) : label;\n const childrens = Array.isArray(children) ? filterMenu(children) : children;\n\n return Object.assign(\n {\n path,\n type,\n disabled,\n key,\n itemIcon,\n icon,\n label:\n path && !childrens?.length ? (\n <Link preventScrollReset to={`${key}?menuId=${key}`}>\n {text}\n </Link>\n ) : (\n text\n ),\n },\n childrens?.length && {\n children: childrens,\n }\n );\n });\n },\n [getLanguage]\n );\n\n const menuId = useMemo(() => search.get('menuId'), [search]);\n const items = useMemo(\n () => filterMenu(menu.filter((m: RouterProps) => !m.hideMenu)),\n [filterMenu, menu]\n );\n const selectedKeys = useMemo(() => (activeKey ? [activeKey] : []), [activeKey]);\n\n useEffect(() => {\n Object.assign(openKeysRef, {\n current: openKeys,\n });\n }, [openKeys]);\n useEffect(() => {\n const current = menuKV[menuId || ''];\n\n if (current && !collapsed && openKeysRef.current) {\n const opk = [...openKeysRef.current];\n\n if (!opk.includes(menuId as string)) opk.push(menuId as string);\n if (current.parentId && !opk.includes(current.parentId)) opk.push(current.parentId);\n if (!isEqual(openKeysRef.current, opk)) setOpenKeys(opk);\n }\n }, [collapsed, menuId, menuKV]);\n\n useEffect(() => {\n if (menuId !== app.activeKey) {\n app.activeKey = menuId;\n }\n }, [menuId]);\n\n return (\n <Menu\n defaultSelectedKeys={selectedKeys}\n selectedKeys={selectedKeys}\n defaultOpenKeys={openKeys}\n // eslint-disable-next-line no-undefined\n openKeys={collapsed ? undefined : openKeys}\n onOpenChange={handleOpenChange}\n mode=\"inline\"\n subMenuCloseDelay={0}\n triggerSubMenuAction=\"click\"\n items={items}\n {...menuProps}\n className={classNames('layout-menu', menuProps.className)}\n />\n );\n};\n\nexport default React.memo(LayoutMenu);\n"],"names":["React","useCallback","useEffect","useMemo","useRef","useState","classNames","isEqual","Menu","useLocale","useSearchParams","Link","app","LayoutMenu","prop","collapsed","menuProps","search","getLanguage","openKeysRef","menu","menuKV","activeKey","openKeys","setOpenKeys","handleOpenChange","keys","filterMenu","list","map","item","icon","itemIcon","disabled","type","key","path","label","children","text","childrens","Array","isArray","Object","assign","length","preventScrollReset","to","menuId","get","items","filter","m","hideMenu","selectedKeys","current","opk","includes","push","parentId","defaultSelectedKeys","defaultOpenKeys","undefined","onOpenChange","mode","subMenuCloseDelay","triggerSubMenuAction","className","memo"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/hooks/navgate.ts"],"sourcesContent":["import {\n useNavigate as useNavigateReactRouter,\n useSearchParams,\n type NavigateOptions,\n type To,\n} from 'react-router-dom';\n\nconst useNavigate = (\n /** search保留字 */\n reserved?: string | string[]\n) => {\n const reservedWord = Array.from(\n new Set(['menuId', 'dynamicTitle'].concat(reserved || ''))\n ).filter(Boolean);\n const navigates = useNavigateReactRouter();\n const [search] = useSearchParams();\n\n const navigate = (to: To | -1, options?: NavigateOptions) => {\n if (to === -1) {\n navigates(-1);\n return;\n }\n /** 提取保留字属性 */\n const nextSerach: Record<string, string> = {};\n\n search.forEach((val, key) => {\n if (reservedWord.includes(key)) {\n Object.assign(nextSerach, {\n [key]: val,\n });\n }\n });\n\n let entryUrl = to as string;\n const entrySearchIdx = (entryUrl as string).indexOf('?');\n\n if (entrySearchIdx !== -1) {\n const searchByToUrl = new URLSearchParams(entryUrl.slice(entrySearchIdx));\n\n searchByToUrl.forEach((val, key) => {\n Object.assign(nextSerach, {\n [key]: val,\n });\n });\n entryUrl = entryUrl.substring(0, entrySearchIdx);\n }\n\n const searchObj = new URLSearchParams(nextSerach);\n const searchString = searchObj.toString();\n const toUrl = searchString?.trim().length ? [entryUrl, searchString].join('?') : entryUrl;\n\n navigates(toUrl, options);\n };\n\n return navigate;\n};\n\nexport default useNavigate;\n"],"names":["useNavigate","useNavigateReactRouter","useSearchParams","reserved","reservedWord","Array","from","Set","concat","filter","Boolean","navigates","search","navigate","to","options","nextSerach","forEach","val","key","includes","Object","assign","entryUrl","entrySearchIdx","indexOf","searchByToUrl","URLSearchParams","slice","substring","searchObj","searchString","toString","toUrl","trim","length","join"],"mappings":"8+CAAA,OACEA,eAAeC,sBAAsB,CACrCC,eAAe,KAGV,kBAAmB,CAE1B,IAAMF,YAAc,SAElBG,SACG,CACH,IAAMC,aAAeC,MAAMC,IAAI,CAC7B,IAAIC,IAAI,CAAC,SAAU,eAAe,CAACC,MAAM,CAACL,UAAY,MACtDM,MAAM,CAACC,SACT,IAAMC,UAAYV,yBAClB,IAAiBC,gCAAAA,qBAAVU,OAAUV,oBAEjB,IAAMW,SAAW,SAACC,GAAaC,QAA8B,CAC3D,GAAID,KAAO,CAAC,EAAG,CACbH,UAAU,CAAC,GACX,MACF,CAAC,AAED,IAAMK,WAAqC,CAAC,EAE5CJ,OAAOK,OAAO,CAAC,SAACC,IAAKC,IAAQ,CAC3B,GAAIf,aAAagB,QAAQ,CAACD,KAAM,CAC9BE,OAAOC,MAAM,CAACN,WACZ,mBAACG,IAAMD,KAEX,CAAC,AACH,GAEA,IAAIK,SAAWT,GACf,IAAMU,eAAiB,AAACD,SAAoBE,OAAO,CAAC,KAEpD,GAAID,iBAAmB,CAAC,EAAG,CACzB,IAAME,cAAgB,IAAIC,gBAAgBJ,SAASK,KAAK,CAACJ,iBAEzDE,cAAcT,OAAO,CAAC,SAACC,IAAKC,IAAQ,CAClCE,OAAOC,MAAM,CAACN,WACZ,mBAACG,IAAMD,KAEX,GACAK,SAAWA,SAASM,SAAS,CAAC,EAAGL,eACnC,CAAC,AAED,IAAMM,UAAY,IAAIH,gBAAgBX,YACtC,IAAMe,aAAeD,UAAUE,QAAQ,GACvC,IAAMC,MAAQF,CAAAA,qBAAAA,sBAAAA,KAAAA,EAAAA,aAAcG,IAAI,GAAGC,MAAM,EAAG,CAACZ,SAAUQ,aAAa,CAACK,IAAI,CAAC,KAAOb,QAAQ,CAEzFZ,UAAUsB,MAAOlB,QACnB,EAEA,OAAOF,QACT,CAEA,gBAAeb,WAAY"}
@@ -1,2 +0,0 @@
1
- function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import React,{useCallback,useEffect,useMemo,useState}from"react";import{ReloadOutlined,DeleteRowOutlined,CloseOutlined}from"@ant-design/icons";import{Tabs,Layout,Dropdown}from"antd";import{useLocale}from"i18n-hooks";import{useAliveController}from"react-activation";import{useSearchParams,useOutlet,useNavigate}from"react-router-dom";import styles from"./index.less";import FallbackComp from"../../../components/fallback-comp";import LayoutMenu from"../../../components/layout-menu";import app from"@/store/app";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 outlet=useOutlet();var navigate=useNavigate();var dropScope=useAliveController().dropScope;var activeKey=app.activeKey,tabs=app.tabs,menuKV=app.menuKV,closeTab=app.closeTab,openTab=app.openTab;var _useSearchParams=_slicedToArray(useSearchParams(),1),search=_useSearchParams[0];var getLanguage=useLocale().getLanguage;var _useState=_slicedToArray(useState(false),2),collapsed=_useState[0],setCollapsed=_useState[1];var handleCollapsed=useCallback(function(value){if(value){var _timer=window.setTimeout(function(){setCollapsed(value);window.clearTimeout(_timer);_timer=null},0)}else{setCollapsed(value);var _timer1=window.setTimeout(function(){window.clearTimeout(_timer1);_timer1=null},30)}},[]);var closedTab=useCallback(function(tabKey,type){if(type==="refresh"){navigate("/refresh");return}closeTab({key:tabKey,type:type,callback:function callback(closes,nextTab){closes===null||closes===void 0?void 0:closes.forEach(function(item){if(item.path&&dropScope){dropScope(item.path)}});if(nextTab){navigate("".concat(nextTab.path,"?menuId=").concat(nextTab.key))}}})},[closeTab,dropScope,navigate]);var _useMemo=useMemo(function(){return{menuId:search.get("menuId")||"",dynamicTitle:search.get("dynamicTitle")||""}},[search]),menuId=_useMemo.menuId,dynamicTitle=_useMemo.dynamicTitle;useEffect(function(){if(menuId){openTab({key:menuId,dynamicTitle:dynamicTitle})}},[dynamicTitle,menuId,openTab]);var getItems=useCallback(function(key){return key===activeKey?closeTabs:closeTabs.filter(function(t){return(t===null||t===void 0?void 0:t.key)!=="refresh"})},[activeKey]);var handleTabEdit=useCallback(function(targetKey,action){if(action==="remove"&&typeof targetKey==="string"){closedTab(targetKey)}},[closedTab]);var handleClick=useCallback(function(key){navigate("".concat(menuKV[key].key,"?menuId=").concat(menuKV[key].key))},[menuKV,navigate]);var tabPanel=useMemo(function(){return tabs.map(function(item){return{key:item.key,label:React.createElement(Dropdown,{menu:{items:getItems(item.key),onClick:function(info){info.domEvent.stopPropagation();closedTab(item.key,info.key)}},trigger:["contextMenu"],destroyPopupOnHide:true},React.createElement("div",null,item.icon,getLanguage(item.i18n||"route-".concat(item.key))+item.dynamicTitle||"")),closable:item.closable}})},[closedTab,getItems,getLanguage,tabs]);return React.createElement(Layout,{className:styles.layout},layoutSider?React.createElement(Layout.Sider,_extends({className:styles.sider,trigger:null,collapsible:true,collapsed:collapsed,onBreakpoint:function(broken){return handleCollapsed(broken)},onCollapse:function(_collapsed){return handleCollapsed(_collapsed)},theme:"light",breakpoint:"md"},layoutSider),React.createElement("div",{className:styles.logo,"data-title":projectName},React.createElement(FallbackComp,{compName:"logo",show:!collapsed})),React.createElement(LayoutMenu,{collapsed:collapsed,theme:layoutSider.theme})):null,React.createElement(Layout,{className:styles.section},React.createElement(FallbackComp,{compName:"layout-header",collapsed:collapsed,onCollapsed:function(){return handleCollapsed(!collapsed)}}),React.createElement(Tabs,{className:styles.tabs,hideAdd:true,onTabClick:handleClick,activeKey:activeKey,size:"middle",type:"editable-card",onEdit:handleTabEdit,items:tabPanel}),React.createElement(Layout.Content,{className:styles.layoutContent},React.createElement("div",{className:styles.content},children||outlet),React.createElement(FallbackComp,{compName:"layout-footer"}))))};export default DashboardLayout;
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/packages/back-stage/layout/index.tsx"],"sourcesContent":["import React, { type ReactNode, useCallback, useEffect, useMemo, useState, type FC } from 'react';\nimport { ReloadOutlined, DeleteRowOutlined, CloseOutlined } from '@ant-design/icons';\nimport { Tabs, Layout, Dropdown, type MenuProps } from 'antd';\nimport { useLocale } from 'i18n-hooks';\nimport { useAliveController } from 'react-activation';\nimport { useSearchParams, useOutlet, useNavigate, type RouterProps } from 'react-router-dom';\nimport styles from './index.less';\nimport FallbackComp from '../../../components/fallback-comp';\nimport LayoutMenu from '../../../components/layout-menu';\nimport app from '@/store/app';\n\ninterface TabProps extends RouterProps {\n key: string;\n url?: string;\n path?: string;\n closable?: boolean;\n}\n\nconst closeTabs: MenuProps['items'] = [\n {\n label: '关闭左侧标签',\n icon: <DeleteRowOutlined style={{ transform: 'scaleX(-1)' }} />,\n key: 'left',\n },\n {\n label: '关闭右侧标签',\n icon: <DeleteRowOutlined />,\n key: 'right',\n },\n {\n label: '关闭其他标签',\n icon: <CloseOutlined />,\n key: 'other',\n },\n {\n label: '刷新标签页',\n icon: <ReloadOutlined />,\n key: 'refresh',\n },\n];\n\nconst DashboardLayout: FC<{ children?: ReactNode }> = ({ children }) => {\n const outlet = useOutlet();\n const navigate = useNavigate();\n const { dropScope } = useAliveController();\n const { activeKey, tabs, menuKV, closeTab, openTab } = app;\n const [search] = useSearchParams();\n const { getLanguage } = useLocale();\n const [collapsed, setCollapsed] = useState<boolean>(false);\n const handleCollapsed = useCallback((value: boolean) => {\n if (value) {\n let _timer: number | null = window.setTimeout(() => {\n setCollapsed(value);\n window.clearTimeout(_timer as number);\n _timer = null;\n }, 0);\n } else {\n setCollapsed(value);\n let _timer: number | null = window.setTimeout(() => {\n window.clearTimeout(_timer as number);\n _timer = null;\n }, 30);\n }\n }, []);\n const closedTab = useCallback(\n (tabKey?: string, type?: string) => {\n if (type === 'refresh') {\n navigate('/refresh');\n return;\n }\n closeTab({\n key: tabKey,\n type: type,\n callback(closes?: TabProps[], nextTab?: TabProps) {\n closes?.forEach((item) => {\n if (item.path && dropScope) {\n dropScope(item.path);\n }\n });\n if (nextTab) {\n navigate(`${nextTab.path}?menuId=${nextTab.key}`);\n }\n },\n });\n },\n [closeTab, dropScope, navigate]\n );\n\n const { menuId, dynamicTitle } = useMemo(\n () => ({\n menuId: search.get('menuId') || '',\n dynamicTitle: search.get('dynamicTitle') || '',\n }),\n [search]\n );\n\n useEffect(() => {\n if (menuId) {\n openTab({\n key: menuId,\n dynamicTitle: dynamicTitle,\n });\n }\n }, [dynamicTitle, menuId, openTab]);\n\n const getItems = useCallback(\n (key: string) =>\n key === activeKey ? closeTabs : closeTabs.filter((t) => t?.key !== 'refresh'),\n [activeKey]\n );\n const handleTabEdit = useCallback(\n (\n targetKey: string | React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element>,\n action: 'add' | 'remove'\n ) => {\n if (action === 'remove' && typeof targetKey === 'string') {\n closedTab(targetKey);\n }\n },\n [closedTab]\n );\n const handleClick = useCallback(\n (key: string) => {\n navigate(`${menuKV[key].key}?menuId=${menuKV[key].key}`);\n },\n [menuKV, navigate]\n );\n const tabPanel = useMemo(() => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return tabs.map((item: any) => {\n return {\n key: item.key,\n label: (\n <Dropdown\n menu={{\n items: getItems(item.key),\n onClick: (info) => {\n info.domEvent.stopPropagation();\n closedTab(item.key, info.key);\n },\n }}\n trigger={['contextMenu']}\n destroyPopupOnHide\n >\n <div>\n {item.icon}\n {getLanguage(item.i18n || `route-${item.key}`) + item.dynamicTitle || ''}\n </div>\n </Dropdown>\n ),\n closable: item.closable,\n };\n });\n }, [closedTab, getItems, getLanguage, tabs]);\n\n return (\n <Layout className={styles.layout}>\n {layoutSider ? (\n <Layout.Sider\n className={styles.sider}\n trigger={null}\n collapsible\n collapsed={collapsed}\n onBreakpoint={(broken: boolean) => handleCollapsed(broken)}\n onCollapse={(_collapsed: boolean) => handleCollapsed(_collapsed)}\n theme=\"light\"\n breakpoint=\"md\"\n {...layoutSider}\n >\n <div className={styles.logo} data-title={projectName}>\n <FallbackComp compName=\"logo\" show={!collapsed} />\n </div>\n <LayoutMenu collapsed={collapsed} theme={layoutSider.theme} />\n </Layout.Sider>\n ) : null}\n <Layout className={styles.section}>\n <FallbackComp\n compName=\"layout-header\"\n collapsed={collapsed}\n onCollapsed={() => handleCollapsed(!collapsed)}\n />\n <Tabs\n className={styles.tabs}\n hideAdd\n onTabClick={handleClick}\n activeKey={activeKey}\n size=\"middle\"\n type=\"editable-card\"\n onEdit={handleTabEdit}\n items={tabPanel}\n />\n <Layout.Content className={styles.layoutContent}>\n <div className={styles.content}>{children || outlet}</div>\n <FallbackComp compName=\"layout-footer\" />\n </Layout.Content>\n </Layout>\n </Layout>\n );\n};\n\nexport default DashboardLayout;\n"],"names":["React","useCallback","useEffect","useMemo","useState","ReloadOutlined","DeleteRowOutlined","CloseOutlined","Tabs","Layout","Dropdown","useLocale","useAliveController","useSearchParams","useOutlet","useNavigate","styles","FallbackComp","LayoutMenu","app","closeTabs","label","icon","style","transform","key","DashboardLayout","children","outlet","navigate","dropScope","activeKey","tabs","menuKV","closeTab","openTab","search","getLanguage","collapsed","setCollapsed","handleCollapsed","value","_timer","window","setTimeout","clearTimeout","closedTab","tabKey","type","callback","closes","nextTab","forEach","item","path","menuId","get","dynamicTitle","getItems","filter","t","handleTabEdit","targetKey","action","handleClick","tabPanel","map","menu","items","onClick","info","domEvent","stopPropagation","trigger","destroyPopupOnHide","div","i18n","closable","className","layout","layoutSider","Sider","sider","collapsible","onBreakpoint","broken","onCollapse","_collapsed","theme","breakpoint","logo","data-title","projectName","compName","show","section","onCollapsed","hideAdd","onTabClick","size","onEdit","Content","layoutContent","content"],"mappings":"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"}
@@ -1,81 +0,0 @@
1
- .tabs {
2
- overflow: initial !important;
3
- margin: 16px 16px 0 !important;
4
-
5
- > :global(.@{ant-prefix}-tabs-nav) {
6
- margin-bottom: 0 !important;
7
- }
8
- }
9
-
10
- .layout {
11
- width: 100% !important;
12
- min-height: 100vh !important;
13
- }
14
-
15
- .sider,
16
- .section {
17
- max-height: 100vh;
18
- }
19
-
20
- .layout-content {
21
- display: flex;
22
- overflow-y: auto;
23
- margin: 0 16px;
24
- flex-direction: column;
25
- }
26
-
27
- .content {
28
- flex: 1;
29
- padding: 24px;
30
- background: var(--component-card-bg, #fff);
31
- box-shadow: var(--box-shadow-lite);
32
- transition-property: background-color, box-shadow;
33
- }
34
-
35
- .sider {
36
- overflow-y: auto;
37
- }
38
-
39
- .content,
40
- .logo,
41
- .logo > svg,
42
- .logo::before {
43
- transition-duration: var(--transition-duration);
44
- transition-timing-function: var(--transition-timing-function);
45
- }
46
-
47
- .logo {
48
- position: sticky;
49
- top: 0;
50
- z-index: 1;
51
- display: flex;
52
- gap: 10px;
53
- justify-content: center;
54
- align-items: center;
55
- overflow: hidden;
56
- padding: 14px;
57
- height: 68px;
58
- text-align: center;
59
- color: #de4553;
60
- transition-property: background-color, border-color;
61
- cursor: pointer;
62
- user-select: none;
63
-
64
- > svg,&::before {
65
- transition-property: opacity;
66
- }
67
-
68
- > svg {
69
- height: 32px;
70
- opacity: 0;
71
- }
72
-
73
- &::before {
74
- display: block;
75
- width: 22px;
76
- height: 32px;
77
- background: url('@{favicon}') no-repeat center center / contain;
78
- opacity: 1;
79
- content: '';
80
- }
81
- }
File without changes
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=app-program.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/packages/back-stage/models/app-program.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- export * from 'i18n-hooks';
@@ -1,2 +0,0 @@
1
- module.exports=hasLocales?require("i18n-hooks"):{};
2
- //# sourceMappingURL=i18n-hooks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/prefix/i18n-hooks.js"],"sourcesContent":["module.exports = hasLocales ? require('i18n-hooks') : {};\n"],"names":["module","exports","hasLocales","require"],"mappings":"AAAAA,OAAOC,OAAO,CAAGC,WAAaC,QAAQ,cAAgB,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- // export * from 'mini-idc';
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=mini-idc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/prefix/mini-idc.js"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/store/index.ts"],"sourcesContent":["import { useSyncExternalStore } from 'use-sync-external-store/shim';\n\ntype VoidFn = () => void;\n// eslint-disable-next-line no-unused-vars\ntype AnyFn = (...args: unknown[]) => unknown;\n// eslint-disable-next-line no-unused-vars\ntype Updater<V> = (val: V) => V;\n\ntype Data = Record<string, unknown>;\ntype State<T> = {\n [K in keyof T]: {\n // eslint-disable-next-line no-unused-vars\n subscribe: (listener: VoidFn) => VoidFn;\n getSnapshot: () => T[K];\n useSnapshot: () => T[K];\n // eslint-disable-next-line no-unused-vars\n setSnapshot: (val: T[K]) => void;\n };\n};\ntype Methods<T> = Record<keyof T, AnyFn>;\n// eslint-disable-next-line no-unused-vars\ntype Setter<T> = <K extends keyof T>(key: K, updater: Updater<T[K]>) => void;\ntype Store<T> = T & Setter<T>;\n\nconst __DEV__ = process.env.NODE_ENV !== 'production';\nconst __DEV_ERR__ = (msg: string) => {\n if (__DEV__) {\n throw new Error(msg);\n }\n};\n\nlet isInMethod = false;\nlet run = (fn: VoidFn) => {\n fn();\n};\n\nconst createStore = <T extends Data>(data: T): Store<T> => {\n if (__DEV__ && Object.prototype.toString.call(data) !== '[object Object]') {\n throw new Error('object required');\n }\n\n const state: State<T> = {} as State<T>;\n const methods: Methods<T> = {} as Methods<T>;\n\n Object.keys(data).forEach((key: keyof T) => {\n const initVal = data[key];\n\n if (initVal instanceof Function) {\n methods[key] = (...args: unknown[]) => {\n isInMethod = true;\n const res = initVal(...args);\n\n isInMethod = false;\n return res;\n };\n return;\n }\n\n const listeners = new Set<VoidFn>();\n\n state[key] = {\n subscribe: (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n getSnapshot: () => data[key],\n setSnapshot: (val) => {\n if (val !== data[key]) {\n data[key] = val;\n run(() => listeners.forEach((listener) => listener()));\n }\n },\n useSnapshot: () => {\n return useSyncExternalStore(\n state[key].subscribe,\n state[key].getSnapshot,\n state[key].getSnapshot\n );\n },\n };\n });\n\n const setState = (key: keyof T, val: T[keyof T] | Updater<T[keyof T]>) => {\n if (key in data) {\n if (key in state) {\n const newVal = val instanceof Function ? val(data[key]) : val;\n\n state[key].setSnapshot(newVal);\n } else {\n __DEV_ERR__(`\\`${key as string}\\` is a method, can not update`);\n }\n } else {\n __DEV_ERR__(`\\`${key as string}\\` is not initialized in store`);\n }\n };\n\n return new Proxy(\n // eslint-disable-next-line no-undefined\n (() => undefined) as unknown as Store<T>,\n {\n get: (_, key: keyof T) => {\n if (key in methods) {\n return methods[key];\n }\n\n if (isInMethod) {\n return data[key];\n }\n\n try {\n return state[key].useSnapshot();\n } catch (err) {\n return data[key];\n }\n },\n set: (_, key: keyof T, val: T[keyof T]) => {\n setState(key, val);\n return true;\n },\n apply: (_, __, [key, updater]: [keyof T, Updater<T[keyof T]>]) => {\n if (typeof updater === 'function') {\n setState(key, updater);\n } else {\n __DEV_ERR__(`updater for \\`${key as string}\\` should be a function`);\n }\n },\n } as ProxyHandler<Store<T>>\n );\n};\n\ncreateStore.config = ({ batch }: { batch: typeof run }) => {\n run = batch;\n};\n\nexport default createStore;\n"],"names":["useSyncExternalStore","__DEV__","process","env","NODE_ENV","__DEV_ERR__","msg","Error","isInMethod","run","fn","createStore","data","Object","prototype","toString","call","state","methods","keys","forEach","key","initVal","Function","args","res","listeners","Set","subscribe","listener","add","delete","getSnapshot","setSnapshot","val","useSnapshot","setState","newVal","Proxy","undefined","get","_","err","set","apply","__","updater","config","batch"],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- @keyframes route-in {
2
- from {
3
- transform: translate3d(0, 16px, 0);
4
- opacity: 0;
5
- }
6
-
7
- to {
8
- transform: translate3d(0, 0, 0);
9
- opacity: 1;
10
- }
11
- }
12
-
13
- @keyframes route-out {
14
- from {
15
- transform: translate3d(0, 0, 0);
16
- opacity: 1;
17
- }
18
-
19
- to {
20
- z-index: -1;
21
- transform: translate3d(0, 1rem, 0);
22
- opacity: 0;
23
- }
24
- }
File without changes
package/lib/utils/env.js DELETED
@@ -1,2 +0,0 @@
1
- if(!window.__MINIIDC__){window.__MINIIDC__={}}if(miniIdc===false){window.__MINIIDC__.__PROGRAMSTATENAME__="none"}else if(miniIdc.programName){window.__MINIIDC__.__PROGRAMSTATENAME__=miniIdc.programName}
2
- //# sourceMappingURL=env.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/env.ts"],"sourcesContent":["if (!window.__MINIIDC__) {\n window.__MINIIDC__ = {};\n}\nif (miniIdc === false) {\n window.__MINIIDC__.__PROGRAMSTATENAME__ = 'none';\n} else if (miniIdc.programName) {\n window.__MINIIDC__.__PROGRAMSTATENAME__ = miniIdc.programName;\n}\n"],"names":["window","__MINIIDC__","miniIdc","__PROGRAMSTATENAME__","programName"],"mappings":"AAAA,GAAI,CAACA,OAAOC,WAAW,CAAE,CACvBD,OAAOC,WAAW,CAAG,CAAC,CACxB,CAAC,AACD,GAAIC,UAAY,KAAK,CAAE,CACrBF,OAAOC,WAAW,CAACE,oBAAoB,CAAG,MAC5C,MAAO,GAAID,QAAQE,WAAW,CAAE,CAC9BJ,OAAOC,WAAW,CAACE,oBAAoB,CAAGD,QAAQE,WAAW,AAC/D,CAAC"}