@moneko/core 2.0.14 → 2.0.16-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.
- package/lib/components/app-router/index.d.ts +2 -1
- package/lib/components/app-router/index.js +1 -1
- package/lib/components/app-router/index.js.map +1 -1
- package/lib/components/layout-menu/index.d.ts +1 -2
- package/lib/components/layout-menu/index.js +1 -1
- package/lib/components/layout-menu/index.js.map +1 -1
- package/lib/packages/back-stage/app.d.ts +2 -2
- package/lib/packages/back-stage/app.js +1 -1
- package/lib/packages/back-stage/app.js.map +1 -1
- package/lib/packages/back-stage/layout/index.d.ts +5 -3
- package/lib/packages/back-stage/layout/index.js +1 -1
- package/lib/packages/back-stage/layout/index.js.map +1 -1
- package/lib/packages/back-stage/layout/index.less +16 -31
- package/lib/packages/back-stage/models/app-program.d.ts +4 -3
- package/lib/packages/back-stage/models/app-program.js +1 -1
- package/lib/packages/back-stage/models/app-program.js.map +1 -1
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js +1 -1
- package/lib/utils/index.js.map +1 -1
- package/package.json +3 -3
- package/lib/components/layout-menu/index.global.less +0 -40
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { Fragment as ReactFragment } from 'react';
|
|
1
|
+
import { Fragment as ReactFragment, type ReactElement } from 'react';
|
|
2
2
|
import { AliveScope } from 'react-activation';
|
|
3
3
|
import { createHashRouter } from 'react-router-dom';
|
|
4
4
|
import { type RouterProps } from '../../router';
|
|
5
5
|
export declare const createRouter: typeof createHashRouter;
|
|
6
6
|
export declare let RouterFragment: typeof ReactFragment | typeof AliveScope;
|
|
7
|
+
export declare function prefixRouter(list: RouterProps[], fallback: ReactElement): RouterProps[];
|
|
7
8
|
export declare const routerData: RouterProps[];
|
|
@@ -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)}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,createElement,useEffect}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),
|
|
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
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/app-router/index.tsx"],"sourcesContent":["import React, {\n Fragment as ReactFragment,\n Suspense,\n cloneElement,\n createElement,\n useEffect,\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 {
|
|
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,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 _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 _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 _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 _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 React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{isEqual}from"@moneko/common";import{Menu}from"antd";import{useLocale}from"i18n-hooks";import{useDispatch,useSelector,shallowEqual}from"
|
|
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 _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 _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 _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 _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 React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{classNames,isEqual}from"@moneko/common";import{Menu}from"antd";import{useLocale}from"i18n-hooks";import{useDispatch,useSelector,shallowEqual}from"mini-idc";import{useSearchParams,Link}from"react-router-dom";var LayoutMenu=function(prop){var collapsed=prop.collapsed,menuProps=_objectWithoutProperties(prop,["collapsed"]);var dispatch=useDispatch();var _useSearchParams=_slicedToArray(useSearchParams(),1),search=_useSearchParams[0];var getLanguage=useLocale().getLanguage;var openKeysRef=useRef();var menu=useSelector(function(store){return(store.appProgram.menu||[]).filter(function(m){return!m.hideMenu})},shallowEqual);var menuKV=useSelector(function(store){return store.appProgram.menuKV||[]},shallowEqual);var activeKey=useSelector(function(store){return store.appProgram.activeKey},shallowEqual);var _useState=_slicedToArray(useState([]),2),openKeys=_useState[0],setOpenKeys=_useState[1];var handleOpenChange=useCallback(function(keys){if(keys!==openKeys){setOpenKeys(keys)}},[openKeys]);var filterMenu=useCallback(function(list){return list.map(function(item){var icon=item.icon,itemIcon=item.itemIcon,disabled=item.disabled,type=item.type,key=item.key,path=item.path,label=item.label,children=item.children;var text=label?getLanguage(label):label;var childrens=Array.isArray(children)?filterMenu(children):children;return Object.assign({path:path,type:type,disabled:disabled,key:key,itemIcon:itemIcon,icon:icon,label:path&&!(childrens===null||childrens===void 0?void 0:childrens.length)?React.createElement(Link,{preventScrollReset:true,to:"".concat(key,"?menuId=").concat(key)},text):text},(childrens===null||childrens===void 0?void 0:childrens.length)&&{children:childrens})})},[getLanguage]);var menuId=useMemo(function(){return search.get("menuId")},[search]);var items=useMemo(function(){return filterMenu(menu)},[filterMenu,menu]);var selectedKeys=useMemo(function(){return activeKey?[activeKey]:[]},[activeKey]);useEffect(function(){Object.assign(openKeysRef,{current:openKeys})},[openKeys]);useEffect(function(){var current=menuKV[menuId||""];if(current&&!collapsed&&openKeysRef.current){var opk=_toConsumableArray(openKeysRef.current);if(!opk.includes(menuId))opk.push(menuId);if(current.parentId&&!opk.includes(current.parentId))opk.push(current.parentId);if(!isEqual(openKeysRef.current,opk))setOpenKeys(opk)}},[collapsed,menuId,menuKV]);useEffect(function(){if(menuId!==activeKey){dispatch({type:"appProgram/setActiveKey",payload:menuId})}},[activeKey,dispatch,menuId]);return React.createElement(Menu,_extends({defaultSelectedKeys:selectedKeys,selectedKeys:selectedKeys,defaultOpenKeys:openKeys,openKeys:collapsed?undefined:openKeys,onOpenChange:handleOpenChange,mode:"inline",subMenuCloseDelay:0,triggerSubMenuAction:"click",items:items},menuProps,{className:classNames("layout-menu",menuProps.className)}))};export default React.memo(LayoutMenu);
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/layout-menu/index.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { isEqual } from '@moneko/common';\nimport { Menu } from 'antd';\nimport { useLocale } from 'i18n-hooks';\nimport { useDispatch, useSelector, shallowEqual } from '
|
|
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 { useDispatch, useSelector, shallowEqual } from 'mini-idc';\nimport { useSearchParams, Link } from 'react-router-dom';\nimport type { AppProgramModel, ItemTypes } from '../../packages/back-stage/models/app-program';\n\nexport interface LayoutMenuProps extends MenuProps {\n collapsed?: boolean;\n}\n\nconst LayoutMenu: React.FC<LayoutMenuProps> = (prop) => {\n const { collapsed, ...menuProps } = prop;\n const dispatch = useDispatch();\n const [search] = useSearchParams();\n const { getLanguage } = useLocale();\n const openKeysRef = useRef<string[]>();\n const menu = useSelector(\n (store: { appProgram: AppProgramModel }) =>\n (store.appProgram.menu || []).filter((m) => !m.hideMenu),\n shallowEqual\n );\n const menuKV = useSelector(\n (store: { appProgram: AppProgramModel }) => store.appProgram.menuKV || [],\n shallowEqual\n );\n const activeKey = useSelector((store: AppStore) => store.appProgram.activeKey, shallowEqual);\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(() => filterMenu(menu), [filterMenu, menu]);\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 !== activeKey) {\n dispatch({\n type: 'appProgram/setActiveKey',\n payload: menuId,\n });\n }\n }, [activeKey, dispatch, 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","useDispatch","useSelector","shallowEqual","useSearchParams","Link","LayoutMenu","prop","collapsed","menuProps","dispatch","search","getLanguage","openKeysRef","menu","store","appProgram","filter","m","hideMenu","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","selectedKeys","current","opk","includes","push","parentId","payload","defaultSelectedKeys","defaultOpenKeys","undefined","onOpenChange","mode","subMenuCloseDelay","triggerSubMenuAction","className","memo"],"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,{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{useLocale}from"i18n-hooks";import{useSelector,shallowEqual}from"mini-idc";import{RouterProvider}from"react-router-dom";import
|
|
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{useLocale}from"i18n-hooks";import{useSelector,shallowEqual}from"mini-idc";import{RouterProvider}from"react-router-dom";import"dayjs/locale/zh.js";import"dayjs/locale/en.js";import{createRouter,prefixRouter,routerData,RouterFragment}from"../../components/app-router";import Fallback from"../../components/fallback";import{onlyLoginRouter}from"../../router";import{watermark}from"../../utils";var localeDictionary={zh_CN:zh_CN,en_US:en_US};dayjs.extend(relativeTime);ConfigProvider.config({prefixCls:providerConfig.prefixCls,iconPrefixCls:providerConfig.iconPrefixCls,theme:providerConfig.theme});onlyLoginRouter[0].element=null;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}),")")},[]);return React.createElement(ConfigProvider,_extends({},providerConfig,{locale:localeDictionary[lang]||zh_CN,form:{validateMessages:{required:"".concat(getLanguage("ph:please-fill"),"${label}!"),types:{email:"${label}".concat(getLanguage("wrong-format"))},pattern:{mismatch:"".concat(getLanguage("ph:fill-correct"),"${label}!")}}}}),React.createElement(RouterFragment,null,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 { 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 { useLocale } from 'i18n-hooks';\nimport { useSelector, shallowEqual } from 'mini-idc';\nimport { RouterProvider } from 'react-router-dom';\nimport
|
|
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 { useLocale, type LocaleNameType } from 'i18n-hooks';\nimport { useSelector, shallowEqual } from 'mini-idc';\nimport { RouterProvider } from 'react-router-dom';\nimport 'dayjs/locale/zh.js';\nimport 'dayjs/locale/en.js';\nimport {\n createRouter,\n prefixRouter,\n routerData,\n RouterFragment,\n} from '../../components/app-router';\nimport Fallback from '../../components/fallback';\nimport { onlyLoginRouter } from '../../router';\nimport { watermark } from '../../utils';\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);\n\nConfigProvider.config({\n prefixCls: providerConfig.prefixCls,\n iconPrefixCls: providerConfig.iconPrefixCls,\n theme: providerConfig.theme,\n});\n\nonlyLoginRouter[0].element = null;\n\nconst App: FC = () => {\n const isLogin = useSelector((state: AppStore) => !!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\n return (\n <ConfigProvider\n {...providerConfig}\n locale={localeDictionary[lang] || zh_CN}\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 <RouterFragment>\n <RouterProvider\n router={createRouter(isLogin ? routerData : prefixRouter(onlyLoginRouter, <Fallback />), {\n basename: programInfo.routeBaseName,\n window: window,\n })}\n fallbackElement={<Fallback />}\n />\n </RouterFragment>\n </ConfigProvider>\n );\n};\n\nexport default App;\n"],"names":["React","useEffect","ConfigProvider","en_US","zh_CN","dayjs","relativeTime","useLocale","useSelector","shallowEqual","RouterProvider","createRouter","prefixRouter","routerData","RouterFragment","Fallback","onlyLoginRouter","watermark","localeDictionary","extend","config","prefixCls","providerConfig","iconPrefixCls","theme","element","App","isLogin","state","account","info","lang","getLanguage","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,SAAS,KAA6B,YAAa,AAC5D,QAASC,WAAW,CAAEC,YAAY,KAAQ,UAAW,AACrD,QAASC,cAAc,KAAQ,kBAAmB,AAClD,OAAO,oBAAqB,AAC5B,OAAO,oBAAqB,AAC5B,QACEC,YAAY,CACZC,YAAY,CACZC,UAAU,CACVC,cAAc,KACT,6BAA8B,AACrC,QAAOC,aAAc,2BAA4B,AACjD,QAASC,eAAe,KAAQ,cAAe,AAC/C,QAASC,SAAS,KAAQ,aAAc,CAGxC,IAAMC,iBAA4D,CAChEd,MAAAA,MACAD,MAAAA,KACF,EAEAE,MAAMc,MAAM,CAACb,cAEbJ,eAAekB,MAAM,CAAC,CACpBC,UAAWC,eAAeD,SAAS,CACnCE,cAAeD,eAAeC,aAAa,CAC3CC,MAAOF,eAAeE,KAAK,AAC7B,EAEAR,CAAAA,eAAe,CAAC,EAAE,CAACS,OAAO,CAAG,IAAI,CAEjC,IAAMC,IAAU,UAAM,CACpB,IAAMC,QAAUnB,YAAY,SAACoB,aAAoB,CAAC,CAACA,MAAMC,OAAO,CAACC,IAAI,EAAErB,cACvE,IAA8BF,WAAAA,YAAtBwB,KAAsBxB,WAAtBwB,KAAMC,YAAgBzB,WAAhByB,YAEd/B,UAAU,UAAM,CACdgC,SAASC,IAAI,CAACC,KAAK,CAACC,eAAe,CAAG,AAAC,OAEpC,OAF0CnB,UAAU,CACrDoB,KAAMC,WACR,GAAG,IACL,EAAG,EAAE,EAEL,OACE,oBAACpC,2BACKoB,gBACJiB,OAAQrB,gBAAgB,CAACa,KAAK,EAAI3B,MAClCoC,KAAM,CACJC,iBAAkB,CAChBC,SAAU,AAAC,GAAgC,OAA9BV,YAAY,kBAAkB,aAC3CW,MAAO,CACLC,MAAO,AAAC,WAAuC,OAA5BZ,YAAY,gBACjC,EACAa,QAAS,CACPC,SAAU,AAAC,GAAiC,OAA/Bd,YAAY,mBAAmB,YAC9C,CACF,CACF,IAEA,oBAAClB,oBACC,oBAACJ,gBACCqC,OAAQpC,aAAagB,QAAUd,WAAaD,aAAaI,gBAAiB,oBAACD,eAAY,CAAE,CACvFiC,SAAUC,YAAYC,aAAa,CACnCC,OAAQA,MACV,GACAC,gBAAiB,oBAACrC,kBAK5B,CAEA,gBAAeW,GAAI"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import React,{useCallback,useEffect,useMemo,useState}from"react";import{ReloadOutlined,DeleteRowOutlined,CloseOutlined}from"@ant-design/icons";import{
|
|
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{shallowEqual,useSelector,useDispatch}from"mini-idc";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";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 dispatch=useDispatch();var dropScope=useAliveController().dropScope;var activeKey=useSelector(function(store){return store.appProgram.activeKey},shallowEqual);var tabs=useSelector(function(store){return store.appProgram.tabs},shallowEqual);var menuKV=useSelector(function(store){return store.appProgram.menuKV||{}},shallowEqual);var _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}dispatch({type:"appProgram/closeTab",payload:{key:tabKey,type:type,callback:function callback(closes,nextTab){closes===null||closes===void 0?void 0:closes.forEach(function(item){if(item.path&&dropScope){dropScope(item.path)}});if(nextTab){navigate("".concat(nextTab.path,"?menuId=").concat(nextTab.key))}}}})},[dispatch,dropScope,navigate]);var _useMemo=useMemo(function(){return{menuId:search.get("menuId")||"",dynamicTitle:search.get("dynamicTitle")||""}},[search]),menuId=_useMemo.menuId,dynamicTitle=_useMemo.dynamicTitle;var current=menuKV[menuId];useEffect(function(){if(menuId){dispatch({type:"appProgram/openTab",payload:{key:menuId,dynamicTitle:dynamicTitle}})}},[dispatch,dynamicTitle,menuId,current]);var getItems=useCallback(function(key){return key===activeKey?closeTabs:closeTabs.filter(function(t){return(t===null||t===void 0?void 0:t.key)!=="refresh"})},[activeKey]);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
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/packages/back-stage/layout/index.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { ReloadOutlined, DeleteRowOutlined, CloseOutlined } from '@ant-design/icons';\nimport { isEqual } from '@moneko/common';\nimport { Tabs, Layout, Menu, Dropdown } from 'antd';\nimport { useLocale } from 'i18n-hooks';\nimport { shallowEqual, useSelector, useDispatch } from 'react-redux';\nimport { RouterProvider, useSearchParams } from 'react-router-dom';\nimport styles from './index.less';\nimport { routerData, createRouter, RouterFragment } from '../../../components/app-router';\nimport Fallback from '../../../components/fallback';\nimport FallbackComp from '../../../components/fallback-comp';\nimport LayoutMenu from '../../../components/layout-menu';\nimport useNavigate from '../../../hooks/navgate';\nimport type { RouterProps } from '../../../router';\nimport type { AppProgramModelType } from '../models/app-program';\nimport type { ItemType } from 'antd/es/menu/hooks/useItems';\n\ninterface TabProps extends RouterProps {\n key: string;\n url?: string;\n path?: string;\n closable?: boolean;\n}\n\nconst closeTabs: ItemType[] = [\n {\n label: '关闭左侧标签',\n icon: <DeleteRowOutlined style={{ transform: 'scaleX(-1)' }} />,\n key: 'left',\n },\n {\n label: '关闭右侧标签',\n icon: <DeleteRowOutlined />,\n key: 'right',\n },\n {\n label: '关闭其他标签',\n icon: <CloseOutlined />,\n key: 'other',\n },\n {\n label: '刷新标签页',\n icon: <ReloadOutlined />,\n key: 'refresh',\n },\n];\n\nconst SiderLayout: React.FC = () => {\n const dispatch = useDispatch();\n const activeKey = useSelector((store: AppStore) => store.appProgram.activeKey, shallowEqual);\n const tabs = useSelector((store: AppStore) => store.appProgram.tabs, shallowEqual);\n const menuKV = useSelector(\n (store: { appProgram: AppProgramModelType }) => store.appProgram.menuKV || {},\n shallowEqual\n );\n const navigate = useNavigate();\n const [search] = useSearchParams();\n const { getLanguage } = useLocale();\n const [collapsed, setCollapsed] = useState<boolean>(false);\n const handleCollapsed = useCallback((value: boolean) => {\n if (value) {\n let _timer: number | null = window.setTimeout(() => {\n setCollapsed(value);\n window.clearTimeout(_timer as number);\n _timer = null;\n }, 0);\n } else {\n setCollapsed(value);\n let _timer: number | null = window.setTimeout(() => {\n window.clearTimeout(_timer as number);\n _timer = null;\n }, 30);\n }\n }, []);\n\n const closedTab = useCallback(\n (tabKey?: string, type?: string) => {\n if (type === 'refresh') {\n navigate('/refresh');\n return;\n }\n dispatch({\n type: 'appProgram/closeTab',\n payload: {\n key: tabKey,\n type: type,\n callback(_?: TabProps[], nextTab?: TabProps) {\n if (nextTab) {\n navigate(`${nextTab.path}?menuId=${nextTab.key}`);\n }\n },\n },\n });\n },\n [dispatch, navigate]\n );\n\n const { menuId, dynamicTitle } = useMemo(\n () => ({\n menuId: search.get('menuId') || '',\n dynamicTitle: search.get('dynamicTitle') || '',\n }),\n [search]\n );\n const current = menuKV[menuId];\n\n useEffect(() => {\n if (menuId) {\n dispatch({\n type: 'appProgram/openTab',\n payload: {\n key: menuId,\n dynamicTitle,\n },\n });\n }\n }, [dispatch, dynamicTitle, menuId, current]);\n\n const getItems = useCallback(\n (key: string) =>\n key === activeKey ? closeTabs : closeTabs.filter((t) => t?.key !== 'refresh'),\n [activeKey]\n );\n\n return (\n <Layout className={styles.layout}>\n {layoutSider ? (\n <Layout.Sider\n className={styles.sider}\n trigger={null}\n collapsible\n collapsed={collapsed}\n onBreakpoint={(broken: boolean) => handleCollapsed(broken)}\n onCollapse={(_collapsed: boolean) => handleCollapsed(_collapsed)}\n theme=\"light\"\n breakpoint=\"md\"\n {...layoutSider}\n >\n <div className={styles.logo} data-title={projectName}>\n <FallbackComp compName=\"logo\" show={!collapsed} />\n </div>\n <LayoutMenu collapsed={collapsed} theme={layoutSider.theme} />\n </Layout.Sider>\n ) : null}\n <Layout className={styles.section}>\n <FallbackComp\n compName=\"layout-header\"\n collapsed={collapsed}\n onCollapsed={() => handleCollapsed(!collapsed)}\n />\n <Tabs\n className={styles.tabs}\n hideAdd\n onTabClick={(key: string) => {\n navigate(`${menuKV[key].path}?menuId=${menuKV[key].key}`);\n }}\n activeKey={activeKey}\n size=\"middle\"\n type=\"editable-card\"\n onEdit={(targetKey, action) => {\n if (action === 'remove' && typeof targetKey === 'string') {\n closedTab(targetKey);\n }\n }}\n >\n {tabs.map((item: TabProps) => (\n <Tabs.TabPane\n tab={\n <Dropdown\n overlay={\n <Menu\n items={getItems(item.key)}\n onClick={(info) => {\n info.domEvent.stopPropagation();\n closedTab(item.key, info.key);\n }}\n />\n }\n trigger={['contextMenu']}\n destroyPopupOnHide\n >\n <div>\n {item.icon}\n {getLanguage(item.i18n || `route-${item.key}`) + item.dynamicTitle || ''}\n </div>\n </Dropdown>\n }\n key={item.key}\n closable={item.closable}\n />\n ))}\n </Tabs>\n <Layout.Content className={styles.layoutContent}>\n <div className={styles.content}>\n <RouterFragment>\n <RouterProvider\n router={createRouter(routerData, {\n basename: programInfo.routeBaseName,\n })}\n fallbackElement={<Fallback />}\n />\n </RouterFragment>\n {/* <AppRouter router={router} /> */}\n </div>\n <FallbackComp compName=\"layout-footer\" />\n </Layout.Content>\n </Layout>\n </Layout>\n );\n};\n\nexport default React.memo(SiderLayout, isEqual);\n"],"names":["React","useCallback","useEffect","useMemo","useState","ReloadOutlined","DeleteRowOutlined","CloseOutlined","isEqual","Tabs","Layout","Menu","Dropdown","useLocale","shallowEqual","useSelector","useDispatch","RouterProvider","useSearchParams","styles","routerData","createRouter","RouterFragment","Fallback","FallbackComp","LayoutMenu","useNavigate","closeTabs","label","icon","style","transform","key","SiderLayout","dispatch","activeKey","store","appProgram","tabs","menuKV","navigate","search","getLanguage","collapsed","setCollapsed","handleCollapsed","value","_timer","window","setTimeout","clearTimeout","closedTab","tabKey","type","payload","callback","_","nextTab","path","menuId","get","dynamicTitle","current","getItems","filter","t","className","layout","layoutSider","Sider","sider","trigger","collapsible","onBreakpoint","broken","onCollapse","_collapsed","theme","breakpoint","div","logo","data-title","projectName","compName","show","section","onCollapsed","hideAdd","onTabClick","size","onEdit","targetKey","action","map","item","TabPane","tab","overlay","items","onClick","info","domEvent","stopPropagation","destroyPopupOnHide","i18n","closable","Content","layoutContent","content","router","basename","programInfo","routeBaseName","fallbackElement","memo"],"mappings":"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"}
|
|
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 { shallowEqual, useSelector, useDispatch } from 'mini-idc';\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 type { AppProgramModel } from '../../back-stage/models/app-program';\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 dispatch = useDispatch();\n const { dropScope } = useAliveController();\n const activeKey = useSelector((store: AppStore) => store.appProgram.activeKey, shallowEqual);\n const tabs = useSelector((store: AppStore) => store.appProgram.tabs, shallowEqual);\n const menuKV = useSelector(\n (store: { appProgram: AppProgramModel }) => store.appProgram.menuKV || {},\n shallowEqual\n );\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 dispatch({\n type: 'appProgram/closeTab',\n payload: {\n key: tabKey,\n type: type,\n callback(closes?: TabProps[], nextTab?: TabProps) {\n closes?.forEach((item) => {\n if (item.path && dropScope) {\n dropScope(item.path);\n }\n });\n if (nextTab) {\n navigate(`${nextTab.path}?menuId=${nextTab.key}`);\n }\n },\n },\n });\n },\n [dispatch, dropScope, navigate]\n );\n\n const { menuId, dynamicTitle } = useMemo(\n () => ({\n menuId: search.get('menuId') || '',\n dynamicTitle: search.get('dynamicTitle') || '',\n }),\n [search]\n );\n const current = menuKV[menuId];\n\n useEffect(() => {\n if (menuId) {\n dispatch({\n type: 'appProgram/openTab',\n payload: {\n key: menuId,\n dynamicTitle: dynamicTitle,\n },\n });\n }\n }, [dispatch, dynamicTitle, menuId, current]);\n\n const getItems = useCallback(\n (key: string) =>\n key === activeKey ? closeTabs : closeTabs.filter((t) => t?.key !== 'refresh'),\n [activeKey]\n );\n 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 return tabs.map((item) => {\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","shallowEqual","useSelector","useDispatch","useAliveController","useSearchParams","useOutlet","useNavigate","styles","FallbackComp","LayoutMenu","closeTabs","label","icon","style","transform","key","DashboardLayout","children","outlet","navigate","dispatch","dropScope","activeKey","store","appProgram","tabs","menuKV","search","getLanguage","collapsed","setCollapsed","handleCollapsed","value","_timer","window","setTimeout","clearTimeout","closedTab","tabKey","type","payload","callback","closes","nextTab","forEach","item","path","menuId","get","dynamicTitle","current","getItems","filter","t","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":"+kDAAA,OAAOA,OAAyBC,WAAW,CAAEC,SAAS,CAAEC,OAAO,CAAEC,QAAQ,KAAiB,OAAQ,AAClG,QAASC,cAAc,CAAEC,iBAAiB,CAAEC,aAAa,KAAQ,mBAAoB,AACrF,QAASC,IAAI,CAAEC,MAAM,CAAEC,QAAQ,KAAwB,MAAO,AAC9D,QAASC,SAAS,KAAQ,YAAa,AACvC,QAASC,YAAY,CAAEC,WAAW,CAAEC,WAAW,KAAQ,UAAW,AAClE,QAASC,kBAAkB,KAAQ,kBAAmB,AACtD,QAASC,eAAe,CAAEC,SAAS,CAAEC,WAAW,KAA0B,kBAAmB,AAC7F,QAAOC,WAAY,cAAe,AAClC,QAAOC,iBAAkB,mCAAoC,AAC7D,QAAOC,eAAgB,iCAAkC,CAUzD,IAAMC,UAAgC,CACpC,CACEC,MAAO,SACPC,KAAM,oBAAClB,mBAAkBmB,MAAO,CAAEC,UAAW,YAAa,IAC1DC,IAAK,MACP,EACA,CACEJ,MAAO,SACPC,KAAM,oBAAClB,wBACPqB,IAAK,OACP,EACA,CACEJ,MAAO,SACPC,KAAM,oBAACjB,oBACPoB,IAAK,OACP,EACA,CACEJ,MAAO,QACPC,KAAM,oBAACnB,qBACPsB,IAAK,SACP,EACD,CAED,IAAMC,gBAAgD,eAAkB,KAAfC,eAAAA,SACvD,IAAMC,OAASb,YACf,IAAMc,SAAWb,cACjB,IAAMc,SAAWlB,cACjB,IAAM,AAAEmB,UAAclB,qBAAdkB,UACR,IAAMC,UAAYrB,YAAY,SAACsB,cAAoBA,MAAMC,UAAU,CAACF,SAAS,EAAEtB,cAC/E,IAAMyB,KAAOxB,YAAY,SAACsB,cAAoBA,MAAMC,UAAU,CAACC,IAAI,EAAEzB,cACrE,IAAM0B,OAASzB,YACb,SAACsB,cAA2CA,MAAMC,UAAU,CAACE,MAAM,EAAI,CAAC,GACxE1B,cAEF,IAAiBI,gCAAAA,qBAAVuB,OAAUvB,oBACjB,IAAM,AAAEwB,YAAgB7B,YAAhB6B,YACR,IAAkCpC,yBAAAA,SAAkB,KAAK,KAAlDqC,UAA2BrC,aAAhBsC,aAAgBtC,aAClC,IAAMuC,gBAAkB1C,YAAY,SAAC2C,MAAmB,CACtD,GAAIA,MAAO,CACT,IAAIC,OAAwBC,OAAOC,UAAU,CAAC,UAAM,CAClDL,aAAaE,OACbE,OAAOE,YAAY,CAACH,QACpBA,OAAS,IAAI,AACf,EAAG,EACL,KAAO,CACLH,aAAaE,OACb,IAAIC,QAAwBC,OAAOC,UAAU,CAAC,UAAM,CAClDD,OAAOE,YAAY,CAACH,SACpBA,QAAS,IAAI,AACf,EAAG,GACL,CAAC,AACH,EAAG,EAAE,EACL,IAAMI,UAAYhD,YAChB,SAACiD,OAAiBC,KAAkB,CAClC,GAAIA,OAAS,UAAW,CACtBpB,SAAS,YACT,MACF,CAAC,AACDC,SAAS,CACPmB,KAAM,sBACNC,QAAS,CACPzB,IAAKuB,OACLC,KAAMA,KACNE,SAAAA,SAAAA,SAASC,MAAmB,CAAEC,OAAkB,CAAE,CAChDD,eAAAA,gBAAAA,KAAAA,EAAAA,OAAQE,OAAO,CAAC,SAACC,KAAS,CACxB,GAAIA,KAAKC,IAAI,EAAIzB,UAAW,CAC1BA,UAAUwB,KAAKC,IAAI,CACrB,CAAC,AACH,GACA,GAAIH,QAAS,CACXxB,SAAS,AAAC,GAAyBwB,OAAvBA,QAAQG,IAAI,CAAC,YAAsB,OAAZH,QAAQ5B,GAAG,EAChD,CAAC,AACH,CACF,CACF,EACF,EACA,CAACK,SAAUC,UAAWF,SAAS,EAGjC,IAAiC5B,SAAAA,QAC/B,iBAAO,CACLwD,OAAQpB,OAAOqB,GAAG,CAAC,WAAa,GAChCC,aAActB,OAAOqB,GAAG,CAAC,iBAAmB,EAC9C,GACA,CAACrB,OAAO,EALFoB,OAAyBxD,SAAzBwD,OAAQE,aAAiB1D,SAAjB0D,aAOhB,IAAMC,QAAUxB,MAAM,CAACqB,OAAO,CAE9BzD,UAAU,UAAM,CACd,GAAIyD,OAAQ,CACV3B,SAAS,CACPmB,KAAM,qBACNC,QAAS,CACPzB,IAAKgC,OACLE,aAAcA,YAChB,CACF,EACF,CAAC,AACH,EAAG,CAAC7B,SAAU6B,aAAcF,OAAQG,QAAQ,EAE5C,IAAMC,SAAW9D,YACf,SAAC0B,KACCA,OAAAA,MAAQO,UAAYZ,UAAYA,UAAU0C,MAAM,CAAC,SAACC,GAAMA,MAAAA,CAAAA,UAAAA,WAAAA,KAAAA,EAAAA,EAAGtC,GAAG,AAAD,IAAM,WAAU,EAC/E,CAACO,UAAU,EAEb,IAAMgC,cAAgBjE,YACpB,SACEkE,UACAC,OACG,CACH,GAAIA,SAAW,UAAY,OAAOD,YAAc,SAAU,CACxDlB,UAAUkB,UACZ,CAAC,AACH,EACA,CAAClB,UAAU,EAEb,IAAMoB,YAAcpE,YAClB,SAAC0B,IAAgB,CACfI,SAAS,AAAC,GAA4BO,OAA1BA,MAAM,CAACX,IAAI,CAACA,GAAG,CAAC,YAA0B,OAAhBW,MAAM,CAACX,IAAI,CAACA,GAAG,EACvD,EACA,CAACW,OAAQP,SAAS,EAEpB,IAAMuC,SAAWnE,QAAQ,UAAM,CAC7B,OAAOkC,KAAKkC,GAAG,CAAC,SAACd,KAAS,CACxB,MAAO,CACL9B,IAAK8B,KAAK9B,GAAG,CACbJ,MACE,oBAACb,UACC8D,KAAM,CACJC,MAAOV,SAASN,KAAK9B,GAAG,EACxB+C,QAAS,SAACC,KAAS,CACjBA,KAAKC,QAAQ,CAACC,eAAe,GAC7B5B,UAAUQ,KAAK9B,GAAG,CAAEgD,KAAKhD,GAAG,CAC9B,CACF,EACAmD,QAAS,CAAC,cAAc,CACxBC,mBAAAA,IAAkB,EAElB,oBAACC,WACEvB,KAAKjC,IAAI,CACTgB,YAAYiB,KAAKwB,IAAI,EAAI,AAAC,SAAiB,OAATxB,KAAK9B,GAAG,GAAM8B,KAAKI,YAAY,EAAI,KAI5EqB,SAAUzB,KAAKyB,QAAQ,AACzB,CACF,EACF,EAAG,CAACjC,UAAWc,SAAUvB,YAAaH,KAAK,EAE3C,OACE,oBAAC5B,QAAO0E,UAAWhE,OAAOiE,MAAM,EAC7BC,YACC,oBAAC5E,OAAO6E,KAAK,WACXH,UAAWhE,OAAOoE,KAAK,CACvBT,QAAS,IAAI,CACbU,YAAAA,IAAW,CACX/C,UAAWA,UACXgD,aAAc,SAACC,eAAoB/C,gBAAgB+C,SACnDC,WAAY,SAACC,mBAAwBjD,gBAAgBiD,aACrDC,MAAM,QACNC,WAAW,MACPT,aAEJ,oBAACL,OAAIG,UAAWhE,OAAO4E,IAAI,CAAEC,aAAYC,aACvC,oBAAC7E,cAAa8E,SAAS,OAAOC,KAAM,CAAC1D,aAEvC,oBAACpB,YAAWoB,UAAWA,UAAWoD,MAAOR,YAAYQ,KAAK,IAE1D,IAAI,CACR,oBAACpF,QAAO0E,UAAWhE,OAAOiF,OAAO,EAC/B,oBAAChF,cACC8E,SAAS,gBACTzD,UAAWA,UACX4D,YAAa,kBAAM1D,gBAAgB,CAACF,cAEtC,oBAACjC,MACC2E,UAAWhE,OAAOkB,IAAI,CACtBiE,QAAAA,IAAO,CACPC,WAAYlC,YACZnC,UAAWA,UACXsE,KAAK,SACLrD,KAAK,gBACLsD,OAAQvC,cACRO,MAAOH,WAET,oBAAC7D,OAAOiG,OAAO,EAACvB,UAAWhE,OAAOwF,aAAa,EAC7C,oBAAC3B,OAAIG,UAAWhE,OAAOyF,OAAO,EAAG/E,UAAYC,QAC7C,oBAACV,cAAa8E,SAAS,oBAKjC,CAEA,gBAAetE,eAAgB"}
|
|
@@ -29,36 +29,40 @@
|
|
|
29
29
|
padding: 24px;
|
|
30
30
|
background: var(--component-card-bg, #fff);
|
|
31
31
|
box-shadow: var(--box-shadow-lite);
|
|
32
|
-
transition-timing-function: @transition-timing-function;
|
|
33
|
-
transition-duration: @transition-duration;
|
|
34
32
|
transition-property: background-color, box-shadow;
|
|
35
33
|
}
|
|
36
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
|
+
|
|
37
47
|
.logo {
|
|
38
48
|
position: sticky;
|
|
39
49
|
top: 0;
|
|
40
50
|
z-index: 1;
|
|
51
|
+
display: flex;
|
|
52
|
+
gap: 10px;
|
|
53
|
+
justify-content: center;
|
|
54
|
+
align-items: center;
|
|
41
55
|
overflow: hidden;
|
|
42
|
-
border-color: var(--sider-logo-bg, #fff);
|
|
43
|
-
border-right: 16px solid var(--sider-logo-bg, #fff);
|
|
44
|
-
border-bottom: 1px solid var(--border-color);
|
|
45
|
-
border-bottom-color: var(--border-color);
|
|
46
|
-
border-left: 16px solid var(--sider-logo-bg, #fff);
|
|
47
56
|
padding: 14px;
|
|
48
57
|
height: 68px;
|
|
49
58
|
text-align: center;
|
|
50
59
|
color: #de4553;
|
|
51
|
-
background-color: var(--sider-logo-bg, #fff) !important;
|
|
52
60
|
transition-property: background-color, border-color;
|
|
53
|
-
transition-duration: @transition-duration;
|
|
54
|
-
transition-timing-function: @transition-timing-function;
|
|
55
61
|
cursor: pointer;
|
|
56
62
|
user-select: none;
|
|
57
63
|
|
|
58
64
|
> svg,&::before {
|
|
59
65
|
transition-property: opacity;
|
|
60
|
-
transition-duration: @transition-duration;
|
|
61
|
-
transition-timing-function: @transition-timing-function;
|
|
62
66
|
}
|
|
63
67
|
|
|
64
68
|
> svg {
|
|
@@ -67,12 +71,7 @@
|
|
|
67
71
|
}
|
|
68
72
|
|
|
69
73
|
&::before {
|
|
70
|
-
position: absolute;
|
|
71
|
-
top: 0;
|
|
72
|
-
bottom: 0;
|
|
73
|
-
left: 0;
|
|
74
74
|
display: block;
|
|
75
|
-
margin: auto;
|
|
76
75
|
width: 22px;
|
|
77
76
|
height: 32px;
|
|
78
77
|
background: url('@{favicon}') no-repeat center center / contain;
|
|
@@ -80,17 +79,3 @@
|
|
|
80
79
|
content: '';
|
|
81
80
|
}
|
|
82
81
|
}
|
|
83
|
-
|
|
84
|
-
:global(.@{ant-prefix}-layout-sider) {
|
|
85
|
-
&:not(:global(.@{ant-prefix}-layout-sider-collapsed)) {
|
|
86
|
-
.logo {
|
|
87
|
-
> svg {
|
|
88
|
-
opacity: 1;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
&::before {
|
|
92
|
-
opacity: 0;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
1
2
|
import { type Model } from 'mini-idc';
|
|
2
3
|
import type { RouterProps } from '../../../router';
|
|
3
4
|
export interface ItemTypes extends RouterProps {
|
|
4
5
|
key: string;
|
|
5
6
|
path?: string;
|
|
6
7
|
type?: string;
|
|
7
|
-
label?:
|
|
8
|
+
label?: ReactNode | null;
|
|
8
9
|
children?: ItemTypes[];
|
|
9
10
|
[key: string]: any;
|
|
10
11
|
}
|
|
11
|
-
export interface
|
|
12
|
+
export interface AppProgramModel {
|
|
12
13
|
menu: ItemTypes[];
|
|
13
14
|
menuKV: Record<string, ItemTypes>;
|
|
14
15
|
activeKey?: string;
|
|
@@ -20,5 +21,5 @@ export interface TabProps extends RouterProps {
|
|
|
20
21
|
path?: string;
|
|
21
22
|
closable?: boolean;
|
|
22
23
|
}
|
|
23
|
-
declare const model: Model<
|
|
24
|
+
declare const model: Model<AppProgramModel>;
|
|
24
25
|
export default model;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _objectSpreadProps(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}var __generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};import{isEqual,isFunction}from"@moneko/common";import{shallowEqual}from"mini-idc";var getItems=function(arr){return arr.map(function(item){var children=item.children,args=_objectWithoutProperties(item,["children"]);var _item=_objectSpreadProps(_objectSpread({},args),{label:args.i18n});if(Array.isArray(children)&&children.length){Object.assign(_item,{children:getItems(children)})}return _item})};var getMenuKV=function(arr,obj){arr.forEach(function(item){var children=item.children,args=_objectWithoutProperties(item,["children"]);Object.assign(obj,_defineProperty({},item.key,args));if(Array.isArray(children)&&children.length){getMenuKV(children,obj)}})};var model={namespace:"appProgram",state:{menu:[],menuKV:{},tabs:[],activeKey:"home"},reducers:{setMenu:function(state,param){var _param_payload=param.payload,payload=_param_payload===void 0?[]:_param_payload;var items=getItems(payload),im={};getMenuKV(items,im);return _objectSpreadProps(_objectSpread({},state),{menu:items,menuKV:im})},setTabs:function(state,action){return _objectSpreadProps(_objectSpread({},state),{tabs:action.payload})},addTab:function(state,param){var payload=param.payload;var tabs=state.tabs,menuKV=state.menuKV;var current=menuKV[payload.key];if(current&&!tabs.find(function(item){return item.key===payload.key})){var ntabs=_toConsumableArray(tabs).concat([_objectSpread(_objectSpreadProps(_objectSpread({},current),{i18n:current.i18n||"route-".concat(current.key)}),payload)]);if(!isEqual(ntabs,tabs)){return _objectSpreadProps(_objectSpread({},state),{tabs:ntabs})}}return state},setActiveKey:function(state,action){return _objectSpreadProps(_objectSpread({},state),{activeKey:action.payload})}},effects:{openTab:function openTab(param,param1){var payload,put,key,_payload_dynamicTitle,dynamicTitle;return __generator(this,function(_state){switch(_state.label){case 0:payload=param.payload,put=param1.put;key=payload.key,_payload_dynamicTitle=payload.dynamicTitle,dynamicTitle=_payload_dynamicTitle===void 0?"":_payload_dynamicTitle;return[4,put({type:"appProgram/addTab",payload:{key:key,dynamicTitle:dynamicTitle}})];case 1:_state.sent();return[4,put({type:"appProgram/setActiveKey",payload:key})];case 2:_state.sent();return[2]}})},closeTab:function closeTab(param,param1){var payload,put,select,key,_payload_type,type,callback,_ref,tabs,activeKey,nActiveKey,closeTabs,nextTab,isCloseSelf,idx,nTabs;return __generator(this,function(_state){switch(_state.label){case 0:payload=param.payload,put=param1.put,select=param1.select;key=payload.key,_payload_type=payload.type,type=_payload_type===void 0?"self":_payload_type,callback=payload.callback;if(!key)return[2];return[4,select(function(store){return store.appProgram},shallowEqual)];case 1:_ref=_state.sent(),tabs=_ref.tabs,activeKey=_ref.activeKey;nActiveKey=activeKey;closeTabs=[];nextTab=null;isCloseSelf=type==="self";idx=tabs.findIndex(function(t){return t.key===key});nTabs=tabs.filter(function(item,i){var notClose=item.closable===false;if(!notClose){notClose=({left:i>=idx,right:i<=idx,other:i===idx,self:key!==item.key})[type]}if(isCloseSelf){if(!notClose){if(key===nActiveKey&&isCloseSelf){var adx=i?i-1:i+1;if(tabs[adx]){nActiveKey=tabs[adx].key;nextTab=tabs[adx]}}}}else if(notClose&&item.key===key&&nActiveKey!==key){nActiveKey=key;nextTab=tabs[i]}if(!notClose){closeTabs.push(item)}return notClose});if(isFunction(callback)){payload.callback(closeTabs,nextTab)}return[4,put({type:"appProgram/setTabs",payload:nTabs})];case 2:_state.sent();return[4,put({type:"appProgram/setActiveKey",payload:nActiveKey})];case 3:_state.sent();return[2]}})}}};export default model;
|
|
1
|
+
function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_defineProperty(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _objectSpreadProps(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}var __generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),"throw":verb(1),"return":verb(2)},typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}};import{isEqual,isFunction}from"@moneko/common";import{shallowEqual}from"mini-idc";var getItems=function(arr){return arr.map(function(item){var children=item.children,args=_objectWithoutProperties(item,["children"]);var _item=_objectSpreadProps(_objectSpread({},args),{label:args.i18n});if(Array.isArray(children)&&children.length){Object.assign(_item,{children:getItems(children)})}return _item}).filter(function(m){return!m.hideMenu})};var getMenuKV=function(arr,obj){arr.forEach(function(item){var children=item.children,args=_objectWithoutProperties(item,["children"]);Object.assign(obj,_defineProperty({},item.key,args));if(Array.isArray(children)&&children.length){getMenuKV(children,obj)}})};var model={namespace:"appProgram",state:{menu:[],menuKV:{},tabs:[],activeKey:"home"},reducers:{setMenu:function(state,param){var _param_payload=param.payload,payload=_param_payload===void 0?[]:_param_payload;var items=getItems(payload),im={};getMenuKV(items,im);return _objectSpreadProps(_objectSpread({},state),{menu:items,menuKV:im})},setTabs:function(state,action){return _objectSpreadProps(_objectSpread({},state),{tabs:action.payload})},addTab:function(state,param){var payload=param.payload;var tabs=state.tabs,menuKV=state.menuKV;var current=menuKV[payload.key];if(current&&!tabs.find(function(item){return item.key===payload.key})){var ntabs=_toConsumableArray(tabs).concat([_objectSpread(_objectSpreadProps(_objectSpread({},current),{i18n:current.i18n||"route-".concat(current.key)}),payload)]);if(!isEqual(ntabs,tabs)){return _objectSpreadProps(_objectSpread({},state),{tabs:ntabs})}}return state},setActiveKey:function(state,action){return _objectSpreadProps(_objectSpread({},state),{activeKey:action.payload})}},effects:{openTab:function openTab(param,param1){var payload,put,key,_payload_dynamicTitle,dynamicTitle;return __generator(this,function(_state){switch(_state.label){case 0:payload=param.payload,put=param1.put;key=payload.key,_payload_dynamicTitle=payload.dynamicTitle,dynamicTitle=_payload_dynamicTitle===void 0?"":_payload_dynamicTitle;return[4,put({type:"appProgram/addTab",payload:{key:key,dynamicTitle:dynamicTitle}})];case 1:_state.sent();return[4,put({type:"appProgram/setActiveKey",payload:key})];case 2:_state.sent();return[2]}})},closeTab:function closeTab(param,param1){var payload,put,select,key,_payload_type,type,callback,_ref,tabs,activeKey,nActiveKey,closeTabs,nextTab,isCloseSelf,idx,nTabs;return __generator(this,function(_state){switch(_state.label){case 0:payload=param.payload,put=param1.put,select=param1.select;key=payload.key,_payload_type=payload.type,type=_payload_type===void 0?"self":_payload_type,callback=payload.callback;if(!key)return[2];return[4,select(function(store){return store.appProgram},shallowEqual)];case 1:_ref=_state.sent(),tabs=_ref.tabs,activeKey=_ref.activeKey;nActiveKey=activeKey;closeTabs=[];nextTab=null;isCloseSelf=type==="self";idx=tabs.findIndex(function(t){return t.key===key});nTabs=tabs.filter(function(item,i){var notClose=item.closable===false;if(!notClose){notClose=({left:i>=idx,right:i<=idx,other:i===idx,self:key!==item.key})[type]}if(isCloseSelf){if(!notClose){if(key===nActiveKey&&isCloseSelf){var adx=i?i-1:i+1;if(tabs[adx]){nActiveKey=tabs[adx].key;nextTab=tabs[adx]}}}}else if(notClose&&item.key===key&&nActiveKey!==key){nActiveKey=key;nextTab=tabs[i]}if(!notClose){closeTabs.push(item)}return notClose});if(isFunction(callback)){payload.callback(closeTabs,nextTab)}return[4,put({type:"appProgram/setTabs",payload:nTabs})];case 2:_state.sent();return[4,put({type:"appProgram/setActiveKey",payload:nActiveKey})];case 3:_state.sent();return[2]}})}}};export default model;
|
|
2
2
|
//# sourceMappingURL=app-program.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/packages/back-stage/models/app-program.ts"],"sourcesContent":["import { isEqual, isFunction } from '@moneko/common';\nimport { type ModelAction, type ModelEffect, type Model, shallowEqual } from 'mini-idc';\nimport type { RouterProps } from '../../../router';\n\nexport interface ItemTypes extends RouterProps {\n key: string;\n path?: string;\n type?: string;\n label?:
|
|
1
|
+
{"version":3,"sources":["../../../../src/packages/back-stage/models/app-program.ts"],"sourcesContent":["import { type ReactNode } from 'react';\nimport { isEqual, isFunction } from '@moneko/common';\nimport { type ModelAction, type ModelEffect, type Model, shallowEqual } from 'mini-idc';\nimport type { RouterProps } from '../../../router';\n\nexport interface ItemTypes extends RouterProps {\n key: string;\n path?: string;\n type?: string;\n label?: ReactNode | null;\n children?: ItemTypes[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n}\n\nconst getItems = (arr: ItemTypes[]): ItemTypes[] => {\n return arr\n .map((item) => {\n const { children, ...args } = item;\n const _item = { ...args, label: args.i18n };\n\n if (Array.isArray(children) && children.length) {\n Object.assign(_item, {\n children: getItems(children),\n });\n }\n return _item;\n })\n .filter((m) => !m.hideMenu);\n};\nconst getMenuKV = (arr: ItemTypes[], obj: Record<string, ItemTypes>): void => {\n arr.forEach((item) => {\n const { children, ...args } = item;\n\n Object.assign(obj, {\n [item.key]: args,\n });\n if (Array.isArray(children) && children.length) {\n getMenuKV(children, obj);\n }\n });\n};\n\nexport interface AppProgramModel {\n menu: ItemTypes[];\n menuKV: Record<string, ItemTypes>;\n activeKey?: string;\n tabs: TabProps[];\n}\nexport interface TabProps extends RouterProps {\n key: string;\n url?: string;\n path?: string;\n closable?: boolean;\n}\ntype RemoveTabType = 'left' | 'right' | 'other' | 'self';\n\nconst model: Model<AppProgramModel> = {\n namespace: 'appProgram',\n state: {\n menu: [],\n menuKV: {},\n tabs: [],\n activeKey: 'home',\n },\n reducers: {\n setMenu: (state, { payload = [] }) => {\n const items = getItems(payload),\n im: Record<string, ItemTypes> = {};\n\n getMenuKV(items, im);\n return {\n ...state,\n menu: items,\n menuKV: im,\n };\n },\n setTabs: (state, action) => {\n return {\n ...state,\n tabs: action.payload,\n };\n },\n addTab: (state, { payload }) => {\n const { tabs, menuKV } = state;\n const current = menuKV[payload.key];\n\n if (current && !tabs.find((item: TabProps) => item.key === payload.key)) {\n const ntabs = [\n ...tabs,\n {\n ...current,\n i18n: current.i18n || `route-${current.key}`,\n ...payload,\n },\n ];\n\n if (!isEqual(ntabs, tabs)) {\n return {\n ...state,\n tabs: ntabs,\n };\n }\n }\n\n return state;\n },\n setActiveKey: (state, action) => {\n return {\n ...state,\n activeKey: action.payload,\n };\n },\n },\n effects: {\n *openTab(\n { payload }: Partial<ModelAction>,\n { put }: ModelEffect\n ): Generator<unknown, void, TabProps[]> {\n const { key, dynamicTitle = '' } = payload;\n\n yield put({\n type: 'appProgram/addTab',\n payload: {\n key,\n dynamicTitle,\n },\n });\n yield put({\n type: 'appProgram/setActiveKey',\n payload: key,\n });\n },\n *closeTab(\n { payload }: Partial<ModelAction>,\n { put, select }: ModelEffect\n ): Generator<unknown, void, AppProgramModel> {\n const { key, type = 'self', callback } = payload;\n\n if (!key) return;\n\n const { tabs, activeKey } = yield select((store: AppStore) => store.appProgram, shallowEqual);\n\n let nActiveKey = activeKey;\n const closeTabs: TabProps[] = [];\n let nextTab: TabProps | null = null;\n // 关闭当前tab\n const isCloseSelf = type === 'self';\n const idx = tabs.findIndex((t) => t.key === key);\n const nTabs = tabs.filter((item, i) => {\n let notClose = item.closable === false;\n\n if (!notClose) {\n notClose = {\n left: i >= idx,\n right: i <= idx,\n other: i === idx,\n self: key !== item.key,\n }[type as RemoveTabType];\n }\n\n if (isCloseSelf) {\n if (!notClose) {\n if (key === nActiveKey && isCloseSelf) {\n const adx: number | null = i ? i - 1 : i + 1;\n\n if (tabs[adx]) {\n nActiveKey = tabs[adx].key;\n nextTab = tabs[adx];\n }\n }\n }\n } else if (notClose && item.key === key && nActiveKey !== key) {\n nActiveKey = key;\n nextTab = tabs[i];\n }\n if (!notClose) {\n closeTabs.push(item);\n }\n return notClose;\n });\n\n if (isFunction(callback)) {\n payload.callback(closeTabs, nextTab);\n }\n\n yield put({\n type: 'appProgram/setTabs',\n payload: nTabs,\n });\n yield put({\n type: 'appProgram/setActiveKey',\n payload: nActiveKey,\n });\n },\n },\n};\n\nexport default model;\n"],"names":["isEqual","isFunction","shallowEqual","getItems","arr","map","item","children","args","_item","label","i18n","Array","isArray","length","Object","assign","filter","m","hideMenu","getMenuKV","obj","forEach","key","model","namespace","state","menu","menuKV","tabs","activeKey","reducers","setMenu","payload","items","im","setTabs","action","addTab","current","find","ntabs","setActiveKey","effects","openTab","put","dynamicTitle","type","closeTab","select","callback","nActiveKey","closeTabs","nextTab","isCloseSelf","idx","nTabs","store","appProgram","findIndex","t","i","notClose","closable","left","right","other","self","adx","push"],"mappings":"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"}
|
package/lib/utils/index.d.ts
CHANGED
package/lib/utils/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export var watermark=function(param){var text=param.text,_param_x=param.x,x=_param_x===void 0?19.5:_param_x,_param_y=param.y,y=_param_y===void 0?55:_param_y,_param_width=param.width,width=_param_width===void 0?100:_param_width,_param_height=param.height,height=_param_height===void 0?100:_param_height,_param_fontSize=param.fontSize,fontSize=_param_fontSize===void 0?14:_param_fontSize,_param_angle=param.angle,angle=_param_angle===void 0?-45:_param_angle,_param_opacity=param.opacity,opacity=_param_opacity===void 0?.1:_param_opacity,_param_color=param.color,color=_param_color===void 0?"#000":_param_color;var svgStr='<svg xmlns="http://www.w3.org/2000/svg" width="'+width+'" height="'+height+'"><g><title>Layer 1</title><text x="'+x+'" y="'+y+'" textAnchor="middle" dominantBaseline="middle" stroke-opacity="'+opacity+'" stroke="'+color+'" fill="none" transform="rotate('+angle+" "+width/2+","+height/2+')" font-size="'+fontSize+'" font-family="-apple-system, BlinkMacSystemFont, '+"'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji', 'Helvetica', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans'"+'">'+text+"</text></g></svg>";return"data:image/svg+xml;base64,"+window.btoa(decodeURIComponent(encodeURIComponent(svgStr)))};
|
|
1
|
+
export var translatFunction=function(func,val){try{if(typeof val!=="undefined"){return eval(func)}}catch(error){console.warn(error)}return func};export var watermark=function(param){var text=param.text,_param_x=param.x,x=_param_x===void 0?19.5:_param_x,_param_y=param.y,y=_param_y===void 0?55:_param_y,_param_width=param.width,width=_param_width===void 0?100:_param_width,_param_height=param.height,height=_param_height===void 0?100:_param_height,_param_fontSize=param.fontSize,fontSize=_param_fontSize===void 0?14:_param_fontSize,_param_angle=param.angle,angle=_param_angle===void 0?-45:_param_angle,_param_opacity=param.opacity,opacity=_param_opacity===void 0?.1:_param_opacity,_param_color=param.color,color=_param_color===void 0?"#000":_param_color;var svgStr='<svg xmlns="http://www.w3.org/2000/svg" width="'+width+'" height="'+height+'"><g><title>Layer 1</title><text x="'+x+'" y="'+y+'" textAnchor="middle" dominantBaseline="middle" stroke-opacity="'+opacity+'" stroke="'+color+'" fill="none" transform="rotate('+angle+" "+width/2+","+height/2+')" font-size="'+fontSize+'" font-family="-apple-system, BlinkMacSystemFont, '+"'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji', 'Helvetica', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans'"+'">'+text+"</text></g></svg>";return"data:image/svg+xml;base64,"+window.btoa(decodeURIComponent(encodeURIComponent(svgStr)))};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/index.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../src/utils/index.ts"],"sourcesContent":["export const translatFunction = (func: string, val?: number | string | any): string => {\n try {\n if (typeof val !== 'undefined') {\n return eval(func);\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(error);\n }\n return func;\n};\n\nexport type WatermarkParamsType = {\n text: string;\n x?: number;\n y?: number;\n width?: number;\n height?: number;\n fontSize?: number;\n angle?: number;\n opacity?: number;\n color?: string;\n};\n\nexport const watermark = ({\n text,\n x = 19.5,\n y = 55,\n width = 100,\n height = 100,\n fontSize = 14,\n angle = -45,\n opacity = 0.1,\n color = '#000',\n}: WatermarkParamsType): string => {\n const svgStr =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"' +\n width +\n '\" height=\"' +\n height +\n '\"><g><title>Layer 1</title><text x=\"' +\n x +\n '\" y=\"' +\n y +\n '\" textAnchor=\"middle\" dominantBaseline=\"middle\" stroke-opacity=\"' +\n opacity +\n '\" stroke=\"' +\n color +\n '\" fill=\"none\" transform=\"rotate(' +\n angle +\n ' ' +\n width / 2 +\n ',' +\n height / 2 +\n ')\" font-size=\"' +\n fontSize +\n '\" font-family=\"-apple-system, BlinkMacSystemFont, ' +\n \"'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji', 'Helvetica', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans'\" +\n '\">' +\n text +\n '</text></g></svg>';\n\n return 'data:image/svg+xml;base64,' + window.btoa(decodeURIComponent(encodeURIComponent(svgStr)));\n};\n"],"names":["translatFunction","func","val","eval","error","console","warn","watermark","text","x","y","width","height","fontSize","angle","opacity","color","svgStr","window","btoa","decodeURIComponent","encodeURIComponent"],"mappings":"AAAA,OAAO,IAAMA,iBAAmB,SAACC,KAAcC,IAAwC,CACrF,GAAI,CACF,GAAI,OAAOA,MAAQ,YAAa,CAC9B,OAAOC,KAAKF,KACd,CAAC,AACH,CAAE,MAAOG,MAAO,CAEdC,QAAQC,IAAI,CAACF,MACf,CACA,OAAOH,IACT,CAAE,AAcF,QAAO,IAAMM,UAAY,eAUU,KATjCC,WAAAA,oBACAC,EAAAA,oBAAI,6BACJC,EAAAA,oBAAI,+BACJC,MAAAA,4BAAQ,qCACRC,OAAAA,8BAAS,wCACTC,SAAAA,kCAAW,sCACXC,MAAAA,4BAAQ,CAAC,qCACTC,QAAAA,gCAAU,qCACVC,MAAAA,4BAAQ,oBAER,IAAMC,OACJ,kDACAN,MACA,aACAC,OACA,uCACAH,EACA,QACAC,EACA,mEACAK,QACA,aACAC,MACA,mCACAF,MACA,IACAH,MAAQ,EACR,IACAC,OAAS,EACT,iBACAC,SACA,qDACA,8NACA,KACAL,KACA,oBAEF,MAAO,6BAA+BU,OAAOC,IAAI,CAACC,mBAAmBC,mBAAmBJ,SAC1F,CAAE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moneko/core",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.16-beta.0",
|
|
4
4
|
"description": "core",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"@parcel/css": "1.14.0",
|
|
23
23
|
"@pmmmwh/react-refresh-webpack-plugin": "0.5.10",
|
|
24
24
|
"@soda/friendly-errors-webpack-plugin": "1.8.1",
|
|
25
|
-
"@swc/core": "1.3.
|
|
25
|
+
"@swc/core": "1.3.37",
|
|
26
26
|
"@swc/helpers": "0.4.14",
|
|
27
27
|
"add-asset-html-webpack-plugin": "5.0.2",
|
|
28
28
|
"core-js": "3.29.1",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"@types/shelljs": "^0.8.11",
|
|
73
73
|
"@types/webpack-bundle-analyzer": "^4.6.0",
|
|
74
74
|
"@types/webpack-env": "^1.18.0",
|
|
75
|
-
"antd": "
|
|
75
|
+
"antd": "5.3.1",
|
|
76
76
|
"eslint-config-neko": "^1.0.20",
|
|
77
77
|
"react": "^18.2.0",
|
|
78
78
|
"shelljs": "^0.8.5",
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
.layout-menu.@{ant-prefix}-menu {
|
|
2
|
-
.@{ant-prefix}-menu-item:not(.@{ant-prefix}-menu-submenu-title),
|
|
3
|
-
.@{ant-prefix}-menu-submenu-title {
|
|
4
|
-
&::after {
|
|
5
|
-
border-right: @menu-item-active-border-width solid @menu-highlight-color !important;
|
|
6
|
-
transform: scaleY(1) translateX(-196px) !important;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
.@{ant-prefix}-menu {
|
|
12
|
-
&-horizontal {
|
|
13
|
-
line-height: 55px !important;
|
|
14
|
-
.@{ant-prefix}-menu-item:not(.@{ant-prefix}-menu-submenu-title),
|
|
15
|
-
.@{ant-prefix}-menu-submenu-title {
|
|
16
|
-
width: fit-content !important;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
&-dark &-item-selected &-dark&-dark:not(&-horizontal) &-item-selected,
|
|
21
|
-
&-dark &-submenu-open:not(&-submenu-selected),
|
|
22
|
-
&-dark &-item:hover {
|
|
23
|
-
color: #fff !important;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
&-dark &-submenu-open:not(&-submenu-selected) > &-submenu-title > &-submenu-arrow {
|
|
27
|
-
&::before,
|
|
28
|
-
&::after {
|
|
29
|
-
background: #fff !important;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
&&-inline-collapsed > &-submenu > &-submenu-title {
|
|
34
|
-
.@{ant-prefix}-menu-item-icon,
|
|
35
|
-
.@{iconfont-css-prefix} {
|
|
36
|
-
margin: 0 2px !important;
|
|
37
|
-
font-size: 20px !important;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|