@next-bricks/nav 0.0.9 → 0.0.11

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.
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[752],{752:(e,t,n)=>{n.r(t);var l,a,r,i,o,s,c,m,u,p=n(4795),d=n(3395),h=n(381),v=n(687),y=n(8390),b=n(7896),g=n(8657),E=n.n(g),k=n(7320),w=n(3712),f=n(3941),T=n(9800),Z=n(6951),x=n(3874),N=(n(5254),n(2779)),K=n.n(N),C=n(4358),D=n(7711),_=n(2598),F=n(8462),I=n(8101),{defineElement:R,property:V}=(0,k.createDecorators)(),W=(0,f.wrapBrick)("eo-menu-item"),B=(0,f.wrapBrick)("eo-popover",{onVisibleChange:"visible.change",beforeVisibleChange:"before.visible.change"});function L(e){var{item:t}=e;return(0,Z.cl)(t,e.topData)?E().createElement(A,(0,b.Z)({},e,{item:t})):(0,Z.ty)(t)?E().createElement(G,(0,b.Z)({},e,{item:t})):E().createElement(M,(0,b.Z)({},e,{item:t}))}function M(e){var{item:t,showTooltip:n,selectedKey:l=[]}=e;return E().createElement(W,{key:t.key,title:n?t.text:"",active:!!t.key&&l.includes(t.key)},(0,Z.nC)(t,{width:"100%"}))}var S,z=e=>{var t,n=null!==(t=u)&&void 0!==t?t:u=window.innerWidth-document.body.clientWidth;document.body.style.paddingRight=e.detail?n+"px":"",document.body.style.overflow=e.detail?"hidden":"",document.body.style.touchAction=e.detail?"none":""};function A(e){var t,{item:n,topData:l,showTooltip:a,selectedKey:r=[]}=e;return(null===(t=n.items)||void 0===t?void 0:t.length)>0?E().createElement(B,{className:K()("popover",{subprime:!l}),trigger:"hover",placement:l?"bottom-start":"right-start",distance:0,anchorDisplay:"block"},E().createElement(W,{className:"sub-menu-item-label",key:n.key,slot:"anchor",title:a?n.title:""},(0,Z.cx)(n,!l)),E().createElement("div",{className:"sub-menu-wrapper"},n.items.map((e=>E().createElement(E().Fragment,{key:e.key},E().createElement(L,{item:e,selectedKey:r,showTooltip:a})))))):null}function G(e){var t,{item:n,showTooltip:l,selectedKey:a=[]}=e;return(null===(t=n.items)||void 0===t?void 0:t.length)>0?E().createElement(E().Fragment,null,E().createElement("div",{className:"group-label"},n.title),E().createElement("div",{className:"group-wrapper"},n.items.map((e=>E().createElement(E().Fragment,{key:e.key},E().createElement(L,{item:e,showTooltip:l,selectedKey:a})))))):null}function H(e){var t,{item:n,selectedKey:l=[],showTooltip:a}=e;return(null===(t=n.items)||void 0===t?void 0:t.length)>0?E().createElement(B,{className:K()("three-level-menu-popover","popover"),trigger:"hover",placement:"bottom-start",distance:0,key:n.key,strategy:"fixed",beforeVisibleChange:z},E().createElement(W,{className:"sub-menu-item-label",key:n.key,slot:"anchor",title:a?n.title:""},(0,Z.cx)(n)),E().createElement("div",{className:"sub-menu-wrapper"},E().createElement(C.m,{menuItem:n,selectedKey:l}))):null}function O(e){var t,{item:n,selectedKey:l=[],showTooltip:a}=e;return(null===(t=n.items)||void 0===t?void 0:t.length)>0?E().createElement(B,{className:K()("popover"),trigger:"hover",placement:"bottom-start",distance:0,key:n.key,strategy:"fixed",beforeVisibleChange:z},E().createElement(W,{className:"sub-menu-item-label",key:n.key,slot:"anchor",title:a?n.title:""},(0,Z.cx)(n)),E().createElement("div",{className:"sub-menu-sit-map-wrapper",onClick:e=>e.stopPropagation()},E().createElement(D.hX,{menuGroup:n,selectedKey:l}))):null}a=R("eo-nav-menu",{styleTexts:[_.Z,F.Z,I.Z,T.Z]}),r=V({attribute:!1}),o=V({type:Boolean});var P=new WeakMap,X=new WeakMap;class j extends f.ReactNextElement{constructor(){super(...arguments),(0,d.Z)(this,P,{writable:!0,value:(c(this),i(this))}),(0,d.Z)(this,X,{writable:!0,value:s(this)})}get menu(){return(0,v.Z)(this,P)}set menu(e){(0,h.Z)(this,P,e)}get showTooltip(){return(0,v.Z)(this,X)}set showTooltip(e){(0,h.Z)(this,X,e)}render(){return E().createElement(q,{menu:this.menu,showTooltip:this.showTooltip})}}function q(e){var{menu:t,showTooltip:n}=e,l=(0,w.getHistory)(),[a,r]=(0,g.useState)(l.location),{pathname:i,search:o}=a,[s,c]=(0,g.useState)([]),m=function(){var e=(0,p.Z)((function*(){var e,{selectedKeys:n}=(0,x.OZ)(null!==(e=null==t?void 0:t.menuItems)&&void 0!==e?e:[],i,o,"");c(n)}));return function(){return e.apply(this,arguments)}}();return(0,g.useEffect)((()=>{var e=l.listen((e=>{r(e)}));return m(),e}),[]),E().createElement("div",{className:"nav-menu-wrapper"},null==t?void 0:t.menuItems.map((e=>{var t;return E().createElement(E().Fragment,{key:e.key},(0,Z.cl)(e,!0)&&"category"===e.childLayout&&null!==(t=e.items)&&void 0!==t&&t.length?E().createElement(H,{item:e,showTooltip:n,selectedKey:s}):"group"===e.type&&"siteMap"===e.childLayout?E().createElement(O,{item:e,showTooltip:n,selectedKey:s}):E().createElement(L,{item:e,showTooltip:n,selectedKey:s,topData:!0}))})))}m=j,({e:[i,s,c],c:[S,l]}=(0,y.Z)(m,[[r,1,"menu"],[o,1,"showTooltip"]],[a])),l();var J,Q,U,Y=n(3294),$=n(759),ee=n(481),te=n(2152);(0,$.initializeReactI18n)(ee.NS,ee.k);var ne,{defineElement:le}=(0,k.createDecorators)();Q=le("eo-launchpad-button",{styleTexts:[te.Z]});class ae extends f.ReactNextElement{render(){return E().createElement(Y.L,null)}}U=ae,[ne,J]=(0,y.Z)(U,[],[Q]).c,J()}}]);
2
- //# sourceMappingURL=752.4c5f2ab4.js.map
1
+ "use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[752],{752:(e,t,n)=>{n.r(t);var l,a,r,i,o,s,c,m,u,p=n(4795),d=n(3395),h=n(381),v=n(687),y=n(8390),b=n(7896),g=n(8657),E=n.n(g),k=n(7320),w=n(4266),f=n(3941),T=n(9800),Z=n(6951),x=n(3874),N=(n(5254),n(2779)),K=n.n(N),C=n(4358),D=n(7711),_=n(2598),F=n(8462),I=n(8101),{defineElement:R,property:V}=(0,k.createDecorators)(),W=(0,f.wrapBrick)("eo-menu-item"),B=(0,f.wrapBrick)("eo-popover",{onVisibleChange:"visible.change",beforeVisibleChange:"before.visible.change"});function L(e){var{item:t}=e;return(0,Z.cl)(t,e.topData)?E().createElement(A,(0,b.Z)({},e,{item:t})):(0,Z.ty)(t)?E().createElement(G,(0,b.Z)({},e,{item:t})):E().createElement(M,(0,b.Z)({},e,{item:t}))}function M(e){var{item:t,showTooltip:n,selectedKey:l=[]}=e;return E().createElement(W,{key:t.key,title:n?t.text:"",active:!!t.key&&l.includes(t.key)},(0,Z.nC)(t,{width:"100%"}))}var S,z=e=>{var t,n=null!==(t=u)&&void 0!==t?t:u=window.innerWidth-document.body.clientWidth;document.body.style.paddingRight=e.detail?n+"px":"",document.body.style.overflow=e.detail?"hidden":"",document.body.style.touchAction=e.detail?"none":""};function A(e){var t,{item:n,topData:l,showTooltip:a,selectedKey:r=[]}=e;return(null===(t=n.items)||void 0===t?void 0:t.length)>0?E().createElement(B,{className:K()("popover",{subprime:!l}),trigger:"hover",placement:l?"bottom-start":"right-start",distance:0,anchorDisplay:"block"},E().createElement(W,{className:"sub-menu-item-label",key:n.key,slot:"anchor",title:a?n.title:""},(0,Z.cx)(n,!l)),E().createElement("div",{className:"sub-menu-wrapper"},n.items.map((e=>E().createElement(E().Fragment,{key:e.key},E().createElement(L,{item:e,selectedKey:r,showTooltip:a})))))):null}function G(e){var t,{item:n,showTooltip:l,selectedKey:a=[]}=e;return(null===(t=n.items)||void 0===t?void 0:t.length)>0?E().createElement(E().Fragment,null,E().createElement("div",{className:"group-label"},n.title),E().createElement("div",{className:"group-wrapper"},n.items.map((e=>E().createElement(E().Fragment,{key:e.key},E().createElement(L,{item:e,showTooltip:l,selectedKey:a})))))):null}function H(e){var t,{item:n,selectedKey:l=[],showTooltip:a}=e;return(null===(t=n.items)||void 0===t?void 0:t.length)>0?E().createElement(B,{className:K()("three-level-menu-popover","popover"),trigger:"hover",placement:"bottom-start",distance:0,key:n.key,strategy:"fixed",beforeVisibleChange:z},E().createElement(W,{className:"sub-menu-item-label",key:n.key,slot:"anchor",title:a?n.title:""},(0,Z.cx)(n)),E().createElement("div",{className:"sub-menu-wrapper"},E().createElement(C.m,{menuItem:n,selectedKey:l}))):null}function O(e){var t,{item:n,selectedKey:l=[],showTooltip:a}=e;return(null===(t=n.items)||void 0===t?void 0:t.length)>0?E().createElement(B,{className:K()("popover"),trigger:"hover",placement:"bottom-start",distance:0,key:n.key,strategy:"fixed",beforeVisibleChange:z},E().createElement(W,{className:"sub-menu-item-label",key:n.key,slot:"anchor",title:a?n.title:""},(0,Z.cx)(n)),E().createElement("div",{className:"sub-menu-sit-map-wrapper",onClick:e=>e.stopPropagation()},E().createElement(D.hX,{menuGroup:n,selectedKey:l}))):null}a=R("eo-nav-menu",{styleTexts:[_.Z,F.Z,I.Z,T.Z]}),r=V({attribute:!1}),o=V({type:Boolean});var P=new WeakMap,X=new WeakMap;class j extends f.ReactNextElement{constructor(){super(...arguments),(0,d.Z)(this,P,{writable:!0,value:(c(this),i(this))}),(0,d.Z)(this,X,{writable:!0,value:s(this)})}get menu(){return(0,v.Z)(this,P)}set menu(e){(0,h.Z)(this,P,e)}get showTooltip(){return(0,v.Z)(this,X)}set showTooltip(e){(0,h.Z)(this,X,e)}render(){return E().createElement(q,{menu:this.menu,showTooltip:this.showTooltip})}}function q(e){var{menu:t,showTooltip:n}=e,l=(0,w.getHistory)(),[a,r]=(0,g.useState)(l.location),{pathname:i,search:o}=a,[s,c]=(0,g.useState)([]),m=function(){var e=(0,p.Z)((function*(){var e,{selectedKeys:n}=(0,x.OZ)(null!==(e=null==t?void 0:t.menuItems)&&void 0!==e?e:[],i,o,"");c(n)}));return function(){return e.apply(this,arguments)}}();return(0,g.useEffect)((()=>{var e=l.listen((e=>{r(e)}));return m(),e}),[]),E().createElement("div",{className:"nav-menu-wrapper"},null==t?void 0:t.menuItems.map((e=>{var t;return E().createElement(E().Fragment,{key:e.key},(0,Z.cl)(e,!0)&&"category"===e.childLayout&&null!==(t=e.items)&&void 0!==t&&t.length?E().createElement(H,{item:e,showTooltip:n,selectedKey:s}):"group"===e.type&&"siteMap"===e.childLayout?E().createElement(O,{item:e,showTooltip:n,selectedKey:s}):E().createElement(L,{item:e,showTooltip:n,selectedKey:s,topData:!0}))})))}m=j,({e:[i,s,c],c:[S,l]}=(0,y.Z)(m,[[r,1,"menu"],[o,1,"showTooltip"]],[a])),l();var J,Q,U,Y=n(3294),$=n(759),ee=n(481),te=n(2152);(0,$.initializeReactI18n)(ee.NS,ee.k);var ne,{defineElement:le}=(0,k.createDecorators)();Q=le("eo-launchpad-button",{styleTexts:[te.Z]});class ae extends f.ReactNextElement{render(){return E().createElement(Y.L,null)}}U=ae,[ne,J]=(0,y.Z)(U,[],[Q]).c,J()}}]);
2
+ //# sourceMappingURL=752.44874f57.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/752.4c5f2ab4.js","mappings":"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","sources":["webpack:///./src/nav-menu/index.tsx","webpack:///./src/launchpad/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { getHistory } from \"@next-core/runtime\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport styleText from \"./nav-menu.shadow.css\";\nimport { LocationDescriptor, UnregisterCallback } from \"history\";\nimport type { SidebarMenu } from \"@next-bricks/basic/menu\";\nimport type {\n MenuItem as MenuItemComponent,\n MenuComponentProps,\n} from \"@next-bricks/basic/menu-item\";\nimport {\n isSimple,\n isSubMenu,\n isGroup,\n renderLinkCom,\n renderSpanCom,\n} from \"./utils.js\";\nimport { initMenuItemAndMatchCurrentPathKeys } from \"@next-shared/general/menu\";\nimport type {\n SidebarMenuGroup,\n SidebarMenuItem,\n SidebarMenuSimpleItem,\n} from \"@next-shared/general/types\";\nimport type {\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping,\n} from \"@next-bricks/basic/popover\";\nimport \"@next-core/theme\";\nimport classnames from \"classnames\";\nimport { ThreeLevelMenuPopoverContent } from \"./ThreeLevelMenuPopoverContent.js\";\nimport { SiteMapItem } from \"./site-map/SiteMapItem.js\";\nimport SiteMapStyleText from \"../nav-menu/site-map/SiteMapItem.shadow.css\";\nimport ItemTagStyleText from \"../nav-menu/site-map/ItemTag.shadow.css\";\nimport GroupItemStyleText from \"../nav-menu/site-map/GroupItem.shadow.css\";\nimport { debounce } from \"lodash\";\n\nconst { defineElement, property } = createDecorators();\n\nconst WrappedMenuItem = wrapBrick<MenuItemComponent, MenuComponentProps>(\n \"eo-menu-item\"\n);\nconst WrappedPopover = wrapBrick<\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping\n>(\"eo-popover\", {\n onVisibleChange: \"visible.change\",\n beforeVisibleChange: \"before.visible.change\",\n});\n\ninterface NavMenuProps {\n menu?: SidebarMenu;\n showTooltip?: boolean;\n}\n\ninterface MenuItemComProps {\n item: SidebarMenuItem;\n topData?: boolean;\n selectedKey?: string[];\n showTooltip?: boolean;\n}\ninterface SimpleMenuItemComProps extends MenuItemComProps {\n item: SidebarMenuSimpleItem;\n}\ninterface MenuGroupComProps extends MenuItemComProps {\n item: SidebarMenuGroup;\n}\nfunction RenderMenuItemCom(props: MenuItemComProps) {\n const { item } = props;\n return isSubMenu(item as SidebarMenuGroup, props.topData) ? (\n <SubMenuItemCom {...props} item={item as SidebarMenuGroup}></SubMenuItemCom>\n ) : isGroup(item) ? (\n <GroupMenuItemCom {...props} item={item as SidebarMenuGroup} />\n ) : (\n <SimpleMenuItemCom\n {...props}\n item={item as SidebarMenuSimpleItem}\n ></SimpleMenuItemCom>\n );\n}\nfunction SimpleMenuItemCom(props: SimpleMenuItemComProps) {\n const { item, showTooltip, selectedKey = [] } = props;\n return (\n <WrappedMenuItem\n key={item.key}\n title={showTooltip ? item.text : \"\"}\n active={item.key ? selectedKey.includes(item.key) : false}\n >\n {renderLinkCom(item, { width: \"100%\" })}\n </WrappedMenuItem>\n );\n}\n\nlet scrollWidth: number;\n// istanbul ignore next;\nconst handlePopupVisibleChange = (event: CustomEvent<boolean>) => {\n // 当用户设置滚动条一直显示时,来回切换 overflow: hidden 会导致滚动条显示或隐藏\n // 造成页面宽度变化而导致的抖动的问题\n const paddingRight =\n scrollWidth ??\n (scrollWidth = window.innerWidth - document.body.clientWidth);\n\n document.body.style.paddingRight = event.detail ? paddingRight + \"px\" : \"\";\n document.body.style.overflow = event.detail ? \"hidden\" : \"\";\n document.body.style.touchAction = event.detail ? \"none\" : \"\";\n};\n\nfunction SubMenuItemCom({\n item,\n topData,\n showTooltip,\n selectedKey = [],\n}: MenuGroupComProps) {\n return item.items?.length > 0 ? (\n <WrappedPopover\n className={classnames(\"popover\", { subprime: !topData })}\n trigger={\"hover\"}\n placement={topData ? \"bottom-start\" : \"right-start\"}\n distance={0}\n anchorDisplay=\"block\"\n >\n <WrappedMenuItem\n className=\"sub-menu-item-label\"\n key={item.key}\n slot=\"anchor\"\n title={showTooltip ? item.title : \"\"}\n >\n {renderSpanCom(item, !topData)}\n </WrappedMenuItem>\n <div className=\"sub-menu-wrapper\">\n {item.items.map((innerItem) => (\n <React.Fragment key={innerItem.key}>\n <RenderMenuItemCom\n item={innerItem}\n selectedKey={selectedKey}\n showTooltip={showTooltip}\n />\n </React.Fragment>\n ))}\n </div>\n </WrappedPopover>\n ) : null;\n}\n\nfunction GroupMenuItemCom({\n item,\n showTooltip,\n selectedKey = [],\n}: MenuGroupComProps) {\n return item.items?.length > 0 ? (\n <>\n <div className=\"group-label\">{item.title}</div>\n <div className=\"group-wrapper\">\n {item.items.map((innerItem) => {\n return (\n <React.Fragment key={innerItem.key}>\n <RenderMenuItemCom\n item={innerItem}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n />\n </React.Fragment>\n );\n })}\n </div>\n </>\n ) : null;\n}\n\nfunction ThreeLevelMenuCom({\n item,\n selectedKey = [],\n showTooltip,\n}: {\n item: SidebarMenuGroup;\n selectedKey?: string[];\n showTooltip?: boolean;\n}) {\n return item.items?.length > 0 ? (\n <WrappedPopover\n className={classnames(\"three-level-menu-popover\", \"popover\")}\n trigger={\"hover\"}\n placement={\"bottom-start\"}\n distance={0}\n key={item.key}\n strategy=\"fixed\"\n beforeVisibleChange={handlePopupVisibleChange}\n >\n <WrappedMenuItem\n className=\"sub-menu-item-label\"\n key={item.key}\n slot=\"anchor\"\n title={showTooltip ? item.title : \"\"}\n >\n {renderSpanCom(item)}\n </WrappedMenuItem>\n <div className=\"sub-menu-wrapper\">\n <ThreeLevelMenuPopoverContent\n menuItem={item}\n selectedKey={selectedKey}\n ></ThreeLevelMenuPopoverContent>\n </div>\n </WrappedPopover>\n ) : null;\n}\n\nfunction SitMapMenCom({\n item,\n selectedKey = [],\n showTooltip,\n}: {\n item: SidebarMenuGroup;\n selectedKey?: string[];\n showTooltip?: boolean;\n}) {\n return item.items?.length > 0 ? (\n <WrappedPopover\n className={classnames(\"popover\")}\n trigger={\"hover\"}\n placement={\"bottom-start\"}\n distance={0}\n key={item.key}\n strategy=\"fixed\"\n beforeVisibleChange={handlePopupVisibleChange}\n >\n <WrappedMenuItem\n className=\"sub-menu-item-label\"\n key={item.key}\n slot=\"anchor\"\n title={showTooltip ? item.title : \"\"}\n >\n {renderSpanCom(item)}\n </WrappedMenuItem>\n <div\n className=\"sub-menu-sit-map-wrapper\"\n onClick={(e) => e.stopPropagation()}\n >\n <SiteMapItem menuGroup={item} selectedKey={selectedKey} />\n </div>\n </WrappedPopover>\n ) : null;\n}\n\n/**\n * 菜单构件\n * @author sailor\n *\n */\n@defineElement(\"eo-nav-menu\", {\n styleTexts: [\n SiteMapStyleText,\n ItemTagStyleText,\n GroupItemStyleText,\n styleText,\n ],\n})\nclass NavMenu extends ReactNextElement {\n /**\n * 菜单项\n */\n @property({\n attribute: false,\n })\n accessor menu: SidebarMenu | undefined;\n\n /**\n * 是否显示 tooltip\n */\n @property({\n type: Boolean,\n })\n accessor showTooltip: boolean | undefined;\n\n render() {\n return <NavMenuComponent menu={this.menu} showTooltip={this.showTooltip} />;\n }\n}\n\nfunction NavMenuComponent(props: NavMenuProps) {\n const { menu, showTooltip } = props;\n\n const history = getHistory();\n const [location, setLocation] = useState(history.location);\n const { pathname, search } = location;\n\n const [selectedKey, setSelectedKey] = useState<string[]>([]);\n\n const setSelected = async (): Promise<void> => {\n const { selectedKeys } = initMenuItemAndMatchCurrentPathKeys(\n menu?.menuItems ?? [],\n pathname,\n search,\n \"\"\n );\n setSelectedKey(selectedKeys);\n };\n\n useEffect(() => {\n const unListen: UnregisterCallback = history.listen((location) => {\n setLocation(location);\n });\n setSelected();\n return unListen;\n }, []);\n\n return (\n <div className=\"nav-menu-wrapper\">\n {menu?.menuItems.map((item) => {\n return (\n <React.Fragment key={item.key}>\n {isSubMenu(item as SidebarMenuGroup, true) &&\n (item as SidebarMenuGroup).childLayout === \"category\" &&\n (item as SidebarMenuGroup).items?.length ? (\n <ThreeLevelMenuCom\n item={item as SidebarMenuGroup}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n />\n ) : (item as SidebarMenuGroup).type === \"group\" &&\n (item as SidebarMenuGroup).childLayout === \"siteMap\" ? (\n <SitMapMenCom\n item={item as SidebarMenuGroup}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n />\n ) : (\n <RenderMenuItemCom\n item={item}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n topData={true}\n />\n )}\n </React.Fragment>\n );\n })}\n </div>\n );\n}\n\nexport { NavMenu };\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { LaunchpadButton as LaunchpadButtonComponent } from \"./LaunchpadButton/LaunchpadButton.js\";\nimport { initializeReactI18n } from \"@next-core/i18n/react\";\nimport \"@next-core/theme\";\nimport { NS, locales } from \"./i18n.js\";\nimport styleText from \"./LaunchpadButton/LaunchpadButton.shadow.css\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement } = createDecorators();\n\n/**\n * Launchpad 按钮构件\n * @author sailor\n */\n@defineElement(\"eo-launchpad-button\", {\n styleTexts: [styleText],\n})\nclass LaunchpadButton extends ReactNextElement {\n render() {\n return <LaunchpadButtonComponent />;\n }\n}\n\nexport { LaunchpadButton };\n"],"names":["scrollWidth","defineElement","property","createDecorators","WrappedMenuItem","wrapBrick","WrappedPopover","onVisibleChange","beforeVisibleChange","RenderMenuItemCom","props","item","isSubMenu","topData","React","SubMenuItemCom","_extends","isGroup","GroupMenuItemCom","SimpleMenuItemCom","showTooltip","selectedKey","key","title","text","active","includes","renderLinkCom","width","_NavMenu","handlePopupVisibleChange","event","_scrollWidth","paddingRight","window","innerWidth","document","body","clientWidth","style","detail","overflow","touchAction","_ref","_item$items","items","length","className","classnames","subprime","trigger","placement","distance","anchorDisplay","slot","renderSpanCom","map","innerItem","_ref2","_item$items2","ThreeLevelMenuCom","_ref3","_item$items3","strategy","ThreeLevelMenuPopoverContent","menuItem","SitMapMenCom","_ref4","_item$items4","onClick","e","stopPropagation","SiteMapItem","menuGroup","_dec","styleTexts","SiteMapStyleText","ItemTagStyleText","GroupItemStyleText","styleText","_dec2","attribute","_dec3","type","Boolean","_A","WeakMap","_B","NavMenu","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","writable","value","_initProto","_init_menu","_init_showTooltip","menu","_classPrivateFieldGet","v","_classPrivateFieldSet","render","NavMenuComponent","this","history","getHistory","location","setLocation","useState","pathname","search","setSelectedKey","setSelected","_ref5","_asyncToGenerator","_menu$menuItems","selectedKeys","initMenuItemAndMatchCurrentPathKeys","menuItems","apply","useEffect","unListen","listen","_items","childLayout","_class","c","_initClass","_applyDecs","initializeReactI18n","NS","locales","_LaunchpadButton","LaunchpadButton","LaunchpadButtonComponent"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/752.44874f57.js","mappings":"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","sources":["webpack:///./src/nav-menu/index.tsx","webpack:///./src/launchpad/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { getHistory } from \"@next-core/runtime\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport styleText from \"./nav-menu.shadow.css\";\nimport { LocationDescriptor, UnregisterCallback } from \"history\";\nimport type { SidebarMenu } from \"@next-bricks/basic/menu\";\nimport type {\n MenuItem as MenuItemComponent,\n MenuComponentProps,\n} from \"@next-bricks/basic/menu-item\";\nimport {\n isSimple,\n isSubMenu,\n isGroup,\n renderLinkCom,\n renderSpanCom,\n} from \"./utils.js\";\nimport { initMenuItemAndMatchCurrentPathKeys } from \"@next-shared/general/menu\";\nimport type {\n SidebarMenuGroup,\n SidebarMenuItem,\n SidebarMenuSimpleItem,\n} from \"@next-shared/general/types\";\nimport type {\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping,\n} from \"@next-bricks/basic/popover\";\nimport \"@next-core/theme\";\nimport classnames from \"classnames\";\nimport { ThreeLevelMenuPopoverContent } from \"./ThreeLevelMenuPopoverContent.js\";\nimport { SiteMapItem } from \"./site-map/SiteMapItem.js\";\nimport SiteMapStyleText from \"../nav-menu/site-map/SiteMapItem.shadow.css\";\nimport ItemTagStyleText from \"../nav-menu/site-map/ItemTag.shadow.css\";\nimport GroupItemStyleText from \"../nav-menu/site-map/GroupItem.shadow.css\";\nimport { debounce } from \"lodash\";\n\nconst { defineElement, property } = createDecorators();\n\nconst WrappedMenuItem = wrapBrick<MenuItemComponent, MenuComponentProps>(\n \"eo-menu-item\"\n);\nconst WrappedPopover = wrapBrick<\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping\n>(\"eo-popover\", {\n onVisibleChange: \"visible.change\",\n beforeVisibleChange: \"before.visible.change\",\n});\n\ninterface NavMenuProps {\n menu?: SidebarMenu;\n showTooltip?: boolean;\n}\n\ninterface MenuItemComProps {\n item: SidebarMenuItem;\n topData?: boolean;\n selectedKey?: string[];\n showTooltip?: boolean;\n}\ninterface SimpleMenuItemComProps extends MenuItemComProps {\n item: SidebarMenuSimpleItem;\n}\ninterface MenuGroupComProps extends MenuItemComProps {\n item: SidebarMenuGroup;\n}\nfunction RenderMenuItemCom(props: MenuItemComProps) {\n const { item } = props;\n return isSubMenu(item as SidebarMenuGroup, props.topData) ? (\n <SubMenuItemCom {...props} item={item as SidebarMenuGroup}></SubMenuItemCom>\n ) : isGroup(item) ? (\n <GroupMenuItemCom {...props} item={item as SidebarMenuGroup} />\n ) : (\n <SimpleMenuItemCom\n {...props}\n item={item as SidebarMenuSimpleItem}\n ></SimpleMenuItemCom>\n );\n}\nfunction SimpleMenuItemCom(props: SimpleMenuItemComProps) {\n const { item, showTooltip, selectedKey = [] } = props;\n return (\n <WrappedMenuItem\n key={item.key}\n title={showTooltip ? item.text : \"\"}\n active={item.key ? selectedKey.includes(item.key) : false}\n >\n {renderLinkCom(item, { width: \"100%\" })}\n </WrappedMenuItem>\n );\n}\n\nlet scrollWidth: number;\n// istanbul ignore next;\nconst handlePopupVisibleChange = (event: CustomEvent<boolean>) => {\n // 当用户设置滚动条一直显示时,来回切换 overflow: hidden 会导致滚动条显示或隐藏\n // 造成页面宽度变化而导致的抖动的问题\n const paddingRight =\n scrollWidth ??\n (scrollWidth = window.innerWidth - document.body.clientWidth);\n\n document.body.style.paddingRight = event.detail ? paddingRight + \"px\" : \"\";\n document.body.style.overflow = event.detail ? \"hidden\" : \"\";\n document.body.style.touchAction = event.detail ? \"none\" : \"\";\n};\n\nfunction SubMenuItemCom({\n item,\n topData,\n showTooltip,\n selectedKey = [],\n}: MenuGroupComProps) {\n return item.items?.length > 0 ? (\n <WrappedPopover\n className={classnames(\"popover\", { subprime: !topData })}\n trigger={\"hover\"}\n placement={topData ? \"bottom-start\" : \"right-start\"}\n distance={0}\n anchorDisplay=\"block\"\n >\n <WrappedMenuItem\n className=\"sub-menu-item-label\"\n key={item.key}\n slot=\"anchor\"\n title={showTooltip ? item.title : \"\"}\n >\n {renderSpanCom(item, !topData)}\n </WrappedMenuItem>\n <div className=\"sub-menu-wrapper\">\n {item.items.map((innerItem) => (\n <React.Fragment key={innerItem.key}>\n <RenderMenuItemCom\n item={innerItem}\n selectedKey={selectedKey}\n showTooltip={showTooltip}\n />\n </React.Fragment>\n ))}\n </div>\n </WrappedPopover>\n ) : null;\n}\n\nfunction GroupMenuItemCom({\n item,\n showTooltip,\n selectedKey = [],\n}: MenuGroupComProps) {\n return item.items?.length > 0 ? (\n <>\n <div className=\"group-label\">{item.title}</div>\n <div className=\"group-wrapper\">\n {item.items.map((innerItem) => {\n return (\n <React.Fragment key={innerItem.key}>\n <RenderMenuItemCom\n item={innerItem}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n />\n </React.Fragment>\n );\n })}\n </div>\n </>\n ) : null;\n}\n\nfunction ThreeLevelMenuCom({\n item,\n selectedKey = [],\n showTooltip,\n}: {\n item: SidebarMenuGroup;\n selectedKey?: string[];\n showTooltip?: boolean;\n}) {\n return item.items?.length > 0 ? (\n <WrappedPopover\n className={classnames(\"three-level-menu-popover\", \"popover\")}\n trigger={\"hover\"}\n placement={\"bottom-start\"}\n distance={0}\n key={item.key}\n strategy=\"fixed\"\n beforeVisibleChange={handlePopupVisibleChange}\n >\n <WrappedMenuItem\n className=\"sub-menu-item-label\"\n key={item.key}\n slot=\"anchor\"\n title={showTooltip ? item.title : \"\"}\n >\n {renderSpanCom(item)}\n </WrappedMenuItem>\n <div className=\"sub-menu-wrapper\">\n <ThreeLevelMenuPopoverContent\n menuItem={item}\n selectedKey={selectedKey}\n ></ThreeLevelMenuPopoverContent>\n </div>\n </WrappedPopover>\n ) : null;\n}\n\nfunction SitMapMenCom({\n item,\n selectedKey = [],\n showTooltip,\n}: {\n item: SidebarMenuGroup;\n selectedKey?: string[];\n showTooltip?: boolean;\n}) {\n return item.items?.length > 0 ? (\n <WrappedPopover\n className={classnames(\"popover\")}\n trigger={\"hover\"}\n placement={\"bottom-start\"}\n distance={0}\n key={item.key}\n strategy=\"fixed\"\n beforeVisibleChange={handlePopupVisibleChange}\n >\n <WrappedMenuItem\n className=\"sub-menu-item-label\"\n key={item.key}\n slot=\"anchor\"\n title={showTooltip ? item.title : \"\"}\n >\n {renderSpanCom(item)}\n </WrappedMenuItem>\n <div\n className=\"sub-menu-sit-map-wrapper\"\n onClick={(e) => e.stopPropagation()}\n >\n <SiteMapItem menuGroup={item} selectedKey={selectedKey} />\n </div>\n </WrappedPopover>\n ) : null;\n}\n\n/**\n * 菜单构件\n * @author sailor\n *\n */\n@defineElement(\"eo-nav-menu\", {\n styleTexts: [\n SiteMapStyleText,\n ItemTagStyleText,\n GroupItemStyleText,\n styleText,\n ],\n})\nclass NavMenu extends ReactNextElement {\n /**\n * 菜单项\n */\n @property({\n attribute: false,\n })\n accessor menu: SidebarMenu | undefined;\n\n /**\n * 是否显示 tooltip\n */\n @property({\n type: Boolean,\n })\n accessor showTooltip: boolean | undefined;\n\n render() {\n return <NavMenuComponent menu={this.menu} showTooltip={this.showTooltip} />;\n }\n}\n\nfunction NavMenuComponent(props: NavMenuProps) {\n const { menu, showTooltip } = props;\n\n const history = getHistory();\n const [location, setLocation] = useState(history.location);\n const { pathname, search } = location;\n\n const [selectedKey, setSelectedKey] = useState<string[]>([]);\n\n const setSelected = async (): Promise<void> => {\n const { selectedKeys } = initMenuItemAndMatchCurrentPathKeys(\n menu?.menuItems ?? [],\n pathname,\n search,\n \"\"\n );\n setSelectedKey(selectedKeys);\n };\n\n useEffect(() => {\n const unListen: UnregisterCallback = history.listen((location) => {\n setLocation(location);\n });\n setSelected();\n return unListen;\n }, []);\n\n return (\n <div className=\"nav-menu-wrapper\">\n {menu?.menuItems.map((item) => {\n return (\n <React.Fragment key={item.key}>\n {isSubMenu(item as SidebarMenuGroup, true) &&\n (item as SidebarMenuGroup).childLayout === \"category\" &&\n (item as SidebarMenuGroup).items?.length ? (\n <ThreeLevelMenuCom\n item={item as SidebarMenuGroup}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n />\n ) : (item as SidebarMenuGroup).type === \"group\" &&\n (item as SidebarMenuGroup).childLayout === \"siteMap\" ? (\n <SitMapMenCom\n item={item as SidebarMenuGroup}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n />\n ) : (\n <RenderMenuItemCom\n item={item}\n showTooltip={showTooltip}\n selectedKey={selectedKey}\n topData={true}\n />\n )}\n </React.Fragment>\n );\n })}\n </div>\n );\n}\n\nexport { NavMenu };\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { LaunchpadButton as LaunchpadButtonComponent } from \"./LaunchpadButton/LaunchpadButton.js\";\nimport { initializeReactI18n } from \"@next-core/i18n/react\";\nimport \"@next-core/theme\";\nimport { NS, locales } from \"./i18n.js\";\nimport styleText from \"./LaunchpadButton/LaunchpadButton.shadow.css\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement } = createDecorators();\n\n/**\n * Launchpad 按钮构件\n * @author sailor\n */\n@defineElement(\"eo-launchpad-button\", {\n styleTexts: [styleText],\n})\nclass LaunchpadButton extends ReactNextElement {\n render() {\n return <LaunchpadButtonComponent />;\n }\n}\n\nexport { LaunchpadButton };\n"],"names":["scrollWidth","defineElement","property","createDecorators","WrappedMenuItem","wrapBrick","WrappedPopover","onVisibleChange","beforeVisibleChange","RenderMenuItemCom","props","item","isSubMenu","topData","React","SubMenuItemCom","_extends","isGroup","GroupMenuItemCom","SimpleMenuItemCom","showTooltip","selectedKey","key","title","text","active","includes","renderLinkCom","width","_NavMenu","handlePopupVisibleChange","event","_scrollWidth","paddingRight","window","innerWidth","document","body","clientWidth","style","detail","overflow","touchAction","_ref","_item$items","items","length","className","classnames","subprime","trigger","placement","distance","anchorDisplay","slot","renderSpanCom","map","innerItem","_ref2","_item$items2","ThreeLevelMenuCom","_ref3","_item$items3","strategy","ThreeLevelMenuPopoverContent","menuItem","SitMapMenCom","_ref4","_item$items4","onClick","e","stopPropagation","SiteMapItem","menuGroup","_dec","styleTexts","SiteMapStyleText","ItemTagStyleText","GroupItemStyleText","styleText","_dec2","attribute","_dec3","type","Boolean","_A","WeakMap","_B","NavMenu","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","writable","value","_initProto","_init_menu","_init_showTooltip","menu","_classPrivateFieldGet","v","_classPrivateFieldSet","render","NavMenuComponent","this","history","getHistory","location","setLocation","useState","pathname","search","setSelectedKey","setSelected","_ref5","_asyncToGenerator","_menu$menuItems","selectedKeys","initMenuItemAndMatchCurrentPathKeys","menuItems","apply","useEffect","unListen","listen","_items","childLayout","_class","c","_initClass","_applyDecs","initializeReactI18n","NS","locales","_LaunchpadButton","LaunchpadButton","LaunchpadButtonComponent"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[8093],{4358:(e,t,r)=>{r.d(t,{m:()=>f});var a=r(8657),o=r.n(a),n=r(2779),i=r.n(n),l=r(6951),c=r(5178),s=r(3941),p=r(2015),m=r(2826),u=r(759);(0,u.initializeReactI18n)(m.NS,m.k);var d=(0,s.wrapBrick)("eo-popover"),v=(0,s.wrapBrick)("eo-search",{onChange:"change",onSearch:"search"}),g=(0,s.wrapBrick)("eo-icon"),h="threeLevelCategoryMenu",x=6;function f(e){var{t}=(0,u.useTranslation)(m.NS),{menuItem:r,selectedKey:n}=e,s=r.items,[f,E]=(0,a.useState)([]),[b,y]=(0,a.useState)(""),C=(0,a.useRef)(null),_="".concat(h,"_").concat(r.title),k=(0,a.useMemo)((()=>new p.o(localStorage)),[]),w=k.getItem(_)||[],S=()=>{var e;null===(e=C.current)||void 0===e||e.click()};return o().createElement("div",{className:"three-level-menu-container"},o().createElement("div",{className:"three-level-menu-search-container",onClick:e=>{e.stopPropagation()}},o().createElement(v,{placeholder:t(m.K.SEARCH_BY_MENU_NAME),onSearch:e=>{if(y(e.detail),e.detail){var t=(0,c.uniq)([e.detail,...w]);t.length>x&&t.pop(),k.setItem(_,t),E(s.flatMap((e=>e.items||[])).filter((t=>t.text.toLowerCase().includes(e.detail.trim().toLowerCase()))))}else E([])},onFocus:S,onBlur:S}),o().createElement(d,{trigger:"click",placement:"bottom-start",anchorDisplay:"block",distance:0},o().createElement("div",{slot:"anchor",ref:C}),o().createElement("div",{className:"three-level-menu-search-result"},!!f.length&&f.map((e=>(0,l.nC)(e,{width:"100%"}))),b&&!f.length&&o().createElement("div",{style:{height:"100px",textAlign:"center",lineHeight:"100px"}},t(m.K.NO_DATA))))),!!w.length&&o().createElement("div",{className:"three-level-menu-search-history-container"},o().createElement("div",{className:"three-level-menu-search-history-title"},t(m.K.SEARCH_HISTORY),o().createElement(g,{lib:"antd",theme:"outlined",icon:"delete",className:"three-level-menu-search-history-icon"})),o().createElement("div",null,w.map((e=>o().createElement("span",{key:e,className:"three-level-menu-search-history-text"},e))))),o().createElement("div",{className:"three-level-menu-item-container",style:{gridTemplateColumns:"repeat(".concat(s.length>4?4:s.length,",1fr)")}},s.map(((e,t)=>{var r;return o().createElement("div",{key:t},o().createElement("div",{className:"three-level-menu-item-title-container"},o().createElement("span",{className:"three-level-menu-item-title-icon"}),o().createElement("span",{className:"three-level-menu-item-title"},e.title)),null===(r=e.items)||void 0===r?void 0:r.map((e=>o().createElement("span",{key:e.key,className:i()({active:!!e.key&&n.includes(e.key)})},(0,l.nC)(e,{width:"100%"})))))}))))}},2826:(e,t,r)=>{r.d(t,{K:()=>a,NS:()=>o,k:()=>n});var a=function(e){return e.SEARCH_BY_MENU_NAME="SEARCH_BY_MENU_NAME",e.SEARCH_HISTORY="SEARCH_HISTORY",e.NO_DATA="NO_DATA",e.QUICK_ACCESS="QUICK_ACCESS",e.REMOVE_ITEM_FROM_QUICK_ACCESS="REMOVE_ITEM_FROM_QUICK_ACCESS",e.ADD_ITEM_TO_QUICK_ACCESS="ADD_ITEM_TO_QUICK_ACCESS",e.NO_DATA_TIPS_IN_QUICK_ACCESS="NO_DATA_TIPS_IN_QUICK_ACCESS",e.SITE_MAP_SEARCH_RECOMMEND="SITE_MAP_SEARCH_RECOMMEND",e.MAX_COLLECT_COUNT_TIPS="MAX_COLLECT_COUNT_TIPS",e.NO_DATA_SEARCH_INFO="NO_DATA_SEARCH_INFO",e.SEARCH_ITEM_PLACEHOLDER="SEARCH_ITEM_PLACEHOLDER",e}({}),o="bricks/nav/nav-menu",n={en:{SEARCH_BY_MENU_NAME:"Search by menu name",SEARCH_HISTORY:"Search history",NO_DATA:"No data",QUICK_ACCESS:"Quick Access",REMOVE_ITEM_FROM_QUICK_ACCESS:"Remove from Quick Access",ADD_ITEM_TO_QUICK_ACCESS:"Add to Quick Access",NO_DATA_TIPS_IN_QUICK_ACCESS:"No quick access resources have been added yet. Please add from the list below or after searching",SITE_MAP_SEARCH_RECOMMEND:"Search recommend",MAX_COLLECT_COUNT_TIPS:"Need to delete some favorites in order to add",NO_DATA_SEARCH_INFO:"The search result is empty, please enter again",SEARCH_ITEM_PLACEHOLDER:"Please enter keywords to search"},zh:{SEARCH_BY_MENU_NAME:"通过菜单名称搜索",SEARCH_HISTORY:"历史搜索",NO_DATA:"暂无数据",QUICK_ACCESS:"快捷访问",REMOVE_ITEM_FROM_QUICK_ACCESS:"从快捷访问移除",ADD_ITEM_TO_QUICK_ACCESS:"添加至快捷访问",NO_DATA_TIPS_IN_QUICK_ACCESS:"暂未添加快捷访问资源,从下方列表或搜索后添加",SITE_MAP_SEARCH_RECOMMEND:"搜索推荐",MAX_COLLECT_COUNT_TIPS:"需删除部分收藏,才能添加",NO_DATA_SEARCH_INFO:"搜索结果为空,请重新输入",SEARCH_ITEM_PLACEHOLDER:"请输入关键词搜索"}}},7711:(e,t,r)=>{r.d(t,{hX:()=>D});var a=r(8657),o=r.n(a),n=r(3941),i=r(7896),l=r(2779),c=r.n(l),s=r(2826),p=r(6666),m=r(2015),u=function(e){return e.Left="left",e.Right="right",e}({}),d=o().createContext({}),v=new class{constructor(e){(0,p.Z)(this,"storage",void 0),(0,p.Z)(this,"maxCollectLength",void 0),(0,p.Z)(this,"storageKey","site-map-collect"),this.storage=new m.o(localStorage),this.maxCollectLength=null!=e?e:10}getCategoryId(e){return"".concat(this.storageKey,"-").concat(e)}getFavoritesById(e){return this.storage.getItem(this.getCategoryId(e))||[]}setItemAsFavorite(e,t){var r=this.getCategoryId(e),a=this.getFavoritesById(e);a.length>=this.maxCollectLength&&a.pop(),a.unshift(t),this.storage.setItem(r,a)}equalItem(e,t){return e.text===t.text&&e.to===t.to}removeItemFromFavorite(e,t){var r=this.getCategoryId(e),a=this.getFavoritesById(e),o=a.findIndex((e=>this.equalItem(e,t)));-1!==o&&(a.splice(o,1),this.storage.setItem(r,a))}isCollected(e,t){return this.getFavoritesById(e).some((e=>this.equalItem(e,t)))}toggleFavorite(e,t){if(this.isCollected(e,t))this.removeItemFromFavorite(e,t);else{if(this.checkMaxCapacity(e))return;this.setItemAsFavorite(e,t)}}moveFavoriteTo(e,t){var{from:r,to:a,direction:o}=t,n=this.getFavoritesById(e);if(this.equalItem(r,a))return n;var i=n.findIndex((e=>this.equalItem(e,r)));if(-1!==i){n.splice(i,1);var l=n.findIndex((e=>this.equalItem(e,a)));-1!==l&&(o===u.Left?n.splice(l,0,r):n.splice(l+1,0,r),this.storage.setItem(this.getCategoryId(e),n))}return n}checkMaxCapacity(e){return this.getFavoritesById(e).length>=this.maxCollectLength}},g=r(759);(0,g.initializeReactI18n)(s.NS,s.k);var h=(0,n.wrapBrick)("eo-link"),x=(0,n.wrapBrick)("eo-icon"),f=(0,n.wrapBrick)("eo-tooltip");function E(e){var{data:t,onDragOver:r,direction:n}=e,{groupId:i,onFavoriteUpdate:l}=(0,a.useContext)(d);return o().createElement("div",{className:"indicate-wrapper","data-direction":n,"data-to":t.to,onDragEnter:e=>e.target.style.background="var(--palette-blue-1)",onDragLeave:e=>e.target.style.background="transparent","data-text":t.text,onDragOver:r,onDrop:e=>{var r=JSON.parse(e.dataTransfer.getData("application/json")),a=v.moveFavoriteTo(i,{from:r,to:t,direction:n});null==l||l(a)}})}function b(e){var{data:t,suffix:r,className:n}=e,{allowDrag:i,onDragStart:l,overElement:s,direction:p,onDragEnd:m,onDragOver:v}=(0,a.useContext)(d),g=(0,a.useRef)(null),[x,f]=(0,a.useState)(!1),b=(0,a.useMemo)((()=>s&&s.dataset.to==t.to&&s.dataset.text==s.dataset.text),[s,t]);return o().createElement(o().Fragment,null,b&&p===u.Left&&o().createElement(E,{data:t,onDragOver:v,direction:u.Left}),o().createElement(h,{"data-to":t.to,"data-text":t.text,ref:g,draggable:!0,onDragStart:e=>{var r;i?(f(!0),null===(r=e.dataTransfer)||void 0===r||r.setData("application/json",JSON.stringify(t)),null==l||l(e)):e.preventDefault()},onDragEnd:e=>{f(!1),null==m||m(e)},onDragOver:e=>{e.dataTransfer.dropEffect="none",null==v||v(e)},className:c()("tag-container",n,{"is-drag":x}),url:t.to,href:t.href,target:t.target},o().createElement("span",{className:"tag-text ellipsis",title:t.text},t.text),o().createElement("span",{className:"tag-suffix",onClick:e=>e.preventDefault()},r)),b&&p===u.Right&&o().createElement(E,{data:t,onDragOver:v,direction:u.Right}))}function y(e){var{t}=(0,g.useTranslation)(s.NS),{onAllowDrag:r}=(0,a.useContext)(d),{data:n,onFavorite:i,groupId:l}=e,c=(0,a.useRef)(),p=(0,a.useCallback)((()=>{v.removeItemFromFavorite(l,n),null==i||i(v.getFavoritesById(l))}),[l,n,i]),m=()=>{null==r||r(!0)};(0,a.useEffect)((()=>{var e=c.current,t=e=>{e.preventDefault()};return e.addEventListener("click",t),()=>{e.removeEventListener("click",t)}}),[]);var u=(0,a.useMemo)((()=>o().createElement("div",{className:"operation",ref:c},o().createElement(f,{content:t(s.K.REMOVE_ITEM_FROM_QUICK_ACCESS),hoist:!0,placement:"bottom",className:"close",onClick:p},o().createElement(x,{lib:"antd",icon:"close"})),o().createElement("span",{className:"drag-wrapper",onMouseDown:m},":::"))),[t,p]);return o().createElement(b,{className:"visit-container",suffix:u,data:n})}function C(e){var{onFavorite:t,className:r,groupId:n,data:l,active:p}=e,{t:m}=(0,g.useTranslation)(s.NS),u=(0,a.useRef)(),d=e=>{e.preventDefault(),v.toggleFavorite(n,l),null==t||t(v.getFavoritesById(n))};return(0,a.useEffect)((()=>{var e=u.current;return e.addEventListener("click",d),()=>{e.removeEventListener("click",d)}}),[]),o().createElement(f,{content:p?m(s.K.REMOVE_ITEM_FROM_QUICK_ACCESS):v.checkMaxCapacity(n)?m(s.K.MAX_COLLECT_COUNT_TIPS):m(s.K.ADD_ITEM_TO_QUICK_ACCESS),className:c()("star-icon",r)},o().createElement(x,(0,i.Z)({ref:u,className:c()({active:p}),lib:"antd",icon:"star"},p?{theme:"filled"}:{})))}function _(e){var{data:t,className:r,groupId:n,onFavorite:i,active:l}=e,s=(0,a.useMemo)((()=>o().createElement(C,{groupId:n,active:l,className:"star",data:t,onFavorite:i})),[t,n,i,l]);return o().createElement(b,{className:c()("recommend-container",r),suffix:s,data:t})}function k(e,t){"group"===e.type&&Array.isArray(e.items)?function(e,t){for(var r of e)k(r,t)}(e.items,t):t.push(e)}var w=(0,n.wrapBrick)("eo-link"),S=240;function I(e){var t,r,a,{groupId:n,selectedKey:i,onFavorite:l}=e,c=(t=e.groups,r=new Map,a=new Set,null==t||t.forEach((e=>{var t,o=null!==(t=e.groupFrom)&&void 0!==t?t:"default";a.add(o);var n=r.get(o);n?n.push(e):r.set(o,[e])})),Array.from(a).map((e=>({groupFrom:e,groups:r.get(e)}))));return o().createElement("div",{className:"group-view"},c.map(((e,t)=>o().createElement("div",{key:t},0!==t&&o().createElement("div",{className:"divider"}),"default"===e.groupFrom?o().createElement(A,{groupId:n,selectedKey:i,groups:e.groups,onFavorite:l}):o().createElement(N,{groupId:n,selectedKey:i,groups:e.groups,onFavorite:l})))))}function A(e){var{groupId:t,onFavorite:r,selectedKey:n,groups:i}=e,l=o().useRef(null),[c,s]=(0,a.useState)();return(0,a.useEffect)((()=>{var e=new ResizeObserver((e=>{for(var t of e)if(t.target===l.current){var r=t.contentRect.width;s(Math.floor(r/S))}}));return e.observe(l.current),()=>e.disconnect()}),[]),o().createElement("div",{className:"group",ref:l,style:c<(null==i?void 0:i.length)?{columnCount:c,columnWidth:S}:{display:"grid",gridTemplateColumns:"repeat(auto-fit, ".concat(S,"px)")}},i.map((e=>o().createElement("div",{key:e.key,className:"group-item"},o().createElement("div",{className:"title"},e.title),o().createElement("div",{className:"content"},e.items.map((e=>o().createElement(T,{key:e.key,groupId:t,selectedKey:n,data:e,onFavorite:r}))))))))}function N(e){var{groupId:t,onFavorite:r,selectedKey:a,groups:n}=e;return o().createElement("div",{className:"custom-group"},n.map((e=>o().createElement("div",{key:e.key},o().createElement("div",{className:"title"},e.title),o().createElement("div",{className:"custom-content",style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, ".concat(S,"px)")}},e.items.map((e=>o().createElement(T,{key:e.key,selectedKey:a,groupId:t,data:e,onFavorite:r}))))))))}function T(e){var{data:t,groupId:r,onFavorite:a,selectedKey:n}=e;return o().createElement(w,{key:t.key,icon:t.icon,url:t.to,href:t.href,target:t.target,className:c()("item-link",{active:null==n?void 0:n.includes(t.key)})},o().createElement("span",{className:"ellipsis",title:t.text},t.text),o().createElement("span",{className:"icon-wrapper"},o().createElement(C,{active:v.isCollected(r,t),groupId:r,data:t,onFavorite:a})))}var M=r(5178),O=(0,n.wrapBrick)("eo-icon"),R=(0,n.wrapBrick)("eo-input",{onValueChange:"change"});function D(e){var{t}=(0,g.useTranslation)(s.NS),{menuGroup:r,selectedKey:n}=e,i=r.groupId,[l,p]=(0,a.useState)(v.getFavoritesById(i)),m=(0,a.useMemo)((()=>{return k(r,e=[]),e;var e}),[r]),[h,x]=(0,a.useState)(),[f,E]=(0,a.useState)([]),[b,C]=(0,a.useState)(),[w,S]=(0,a.useState)(),[A,N]=(0,a.useState)(),[T,D]=(0,a.useState)(),F=e=>{p(e)},K=(0,a.useCallback)((e=>{var t=e.detail;x(e.detail),E(t?m.filter((t=>t.text.toLowerCase().includes(e.detail.toLowerCase()))):m)}),[m]),L=(0,a.useMemo)((()=>(0,M.debounce)(K,200)),[K]),H=(0,a.useMemo)((()=>(0,M.throttle)((e=>{e.preventDefault();var t=function(e){for(var t=e;t;){if(t.draggable||"indicate-wrapper"===t.className)return t;t=t.parentElement}}(e.target);if(S(t),t&&function(e,t){return e&&t&&!(e.dataset.to===t.dataset.to&&e.dataset.text===t.dataset.text)}(t,b))if("indicate-wrapper"===t.className)D(t.dataset.direction);else{var{width:r,left:a}=t.getBoundingClientRect(),o=e.clientX>a+r/2;D(o?u.Right:u.Left)}else D(void 0)}))),[b]);return o().createElement("div",{className:"site-map"},o().createElement("div",{className:"search-wrapper"},o().createElement(R,{className:"search-input",style:{width:"100%"},onValueChange:L,placeholder:t(s.K.SEARCH_ITEM_PLACEHOLDER)},o().createElement(O,{slot:"prefix",lib:"antd",icon:"search"}))),!h&&o().createElement("div",null,0!==l.length&&o().createElement("div",{className:c()("visit-access",{hasData:l.length})},o().createElement("span",{className:"title"},t(s.K.QUICK_ACCESS)),o().createElement(d.Provider,{value:{groupId:i,overElement:w,direction:T,allowDrag:A,onDragStart:e=>{C(e.target)},onDragOver:H,onDragEnd:()=>{C(void 0),D(void 0),N(!1)},onAllowDrag:e=>{N(e)},onFavoriteUpdate:F}},o().createElement("div",{className:"tag-wrapper"},l.map((e=>o().createElement(y,{onFavorite:F,groupId:i,key:e.key,data:e})))))),o().createElement(I,{groupId:i,selectedKey:n,groups:r.items,onFavorite:F})),h&&o().createElement("div",{className:"search-panel"},o().createElement("span",{className:"title"},t(s.K.SITE_MAP_SEARCH_RECOMMEND)),f.length?o().createElement("div",{className:"recommend-wrapper"},f.map((e=>o().createElement(_,{key:e.key,groupId:i,data:e,onFavorite:F,active:v.isCollected(i,e)})))):o().createElement("div",{className:"no-data-tips"},t(s.K.NO_DATA_SEARCH_INFO))))}},6951:(e,t,r)=>{r.d(t,{cl:()=>s,cx:()=>m,nC:()=>p,ty:()=>c});var a=r(8657),o=r.n(a),n=r(3941),i=(0,n.wrapBrick)("eo-icon"),l=(0,n.wrapBrick)("eo-link");function c(e){return"group"===e.type}function s(e,t){return Boolean("subMenu"===e.type||t&&"group"===e.type)}var p=(e,t)=>o().createElement(l,{key:e.key,url:e.to,href:e.href,target:e.target,style:t},o().createElement("span",{className:"menu-item-label"},e.text)),m=(e,t)=>o().createElement("span",{key:e.key,className:"menu-item-label"},e.title,t&&o().createElement(i,{lib:"fa",icon:"angle-right"}))},9800:(e,t,r)=>{r.d(t,{Z:()=>l});var a=r(9601),o=r.n(a),n=r(2609),i=r.n(n)()(o());i.push([e.id,':host{display:inline-block;background:none;--three-level-menu-search-input-background:linear-gradient(90deg,#e8eef6 0%,rgba(233,234,243,0) 100%);--three-level-menu-hover-color:#6bb3ff;--three-level-menu-title-color:#0b5ad9;--three-level-menu-active-color:#1a7aff;--three-level-menu-search-tag-color:rgb(89,89,89);--three-level-menu-search-tag-background:rgb(245,245,245)}:host::part(menu-item),\neo-link{display:block;padding:2px 0px}:host-context(html[data-theme="dark-v2"]),\n:host-context([data-override-theme="dark-v2"]){--three-level-menu-search-input-background:linear-gradient(124deg,rgba(255,255,255,0.36) 0%,rgba(255,255,255,0) 100%);--three-level-menu-hover-color:rgba(54,95,175,0.85);--three-level-menu-title-color:#6597e8;--three-level-menu-active-color:#3f75dd;--three-level-menu-search-tag-color:rgb(140,140,140);--three-level-menu-search-tag-background:rgb(107,107,107)}.nav-menu-wrapper{display:flex}.nav-menu-wrapper > eo-menu-item{padding:2px 14px}.nav-menu-wrapper > eo-popover{padding:2px 6px}.popover .sub-menu-item-label{padding:2px 0px;color:var(--color-normal-text)}.popover.subprime{display:inline-block;width:100%}.sub-menu-wrapper{min-width:160px;max-height:calc(100vh - 100px);background-color:var(--antd-dropdown-menu-bg);padding:4px 0;border-radius:6px;box-shadow:0px 4px 12px 0px rgba(17,37,64,0.08);overflow-x:hidden;overflow-y:auto}.sub-menu-wrapper > eo-menu-item{display:block;width:100%}.sub-menu-wrapper > eo-menu-item .menu-item-label,\n.sub-menu-wrapper > eo-popover .menu-item-label,\n.sub-menu-wrapper > .group-wrapper > eo-popover .menu-item-label,\n.sub-menu-wrapper > .group-wrapper > eo-menu-item .menu-item-label{display:block;width:100%;padding:6px 24px;box-sizing:border-box;color:var(--color-normal-text)}.sub-menu-wrapper > eo-popover.subprime .menu-item-label,\n.sub-menu-wrapper > .group-wrapper > eo-popover.subprime .menu-item-label{display:flex;justify-content:space-between;align-items:center}.sub-menu-wrapper .menu-item-label{border-radius:0}.menu-item-label{display:inline-block;cursor:pointer;border-radius:4px;padding:5px 10px;color:var(--color-normal-text)}.menu-item-label:hover{background-color:var(--v8-top-menu-item-hover)}.group-label{padding-left:16px;font-size:12px;color:var(--palette-gray-7)}eo-menu-item[active] .menu-item-label{background:var(--v8-top-menu-item-selected-bg);color:var(--color-brand)!important;font-weight:500}.three-level-menu-container{max-width:980px;max-height:510px;overflow:auto;min-width:160px}.three-level-menu-item-container{display:grid;grid-gap:20px;gap:20px;margin-top:13px;padding:5px 10px}.three-level-menu-item-title-container{display:flex;align-items:center}.three-level-menu-item-title-icon{width:4px;height:4px;background-color:var(--three-level-menu-title-color);margin-right:4px;transform:rotate(45deg)}.three-level-menu-item-title{font-size:14px;font-family:PingFang-SC-Medium,PingFang-SC;font-weight:500;color:var(--three-level-menu-title-color)}.three-level-menu-container .menu-item-label{margin-top:4px;margin-left:4px;padding:4px;width:100%}.three-level-menu-container .active .menu-item-label{color:var(--three-level-menu-active-color)}.three-level-menu-search-result .menu-item-label{margin:0px}.three-level-menu-container .menu-item-label:hover{color:var(--three-level-menu-hover-color)}.three-level-menu-popover .sub-menu-wrapper{padding-top:0px}.three-level-menu-search-container{background:var(--three-level-menu-search-input-background);padding:5px 10px}.three-level-menu-search-result{min-width:187px;max-width:328px;max-height:324px;background-color:var(--antd-dropdown-menu-bg);box-shadow:0px 4px 12px 0px rgba(17,37,64,0.08);overflow:scroll}.three-level-menu-search-history-container{padding:5px 10px}.three-level-menu-search-history-text{background:var(--three-level-menu-search-tag-background);border-radius:2px;font-size:7px;line-height:11px;display:inline-block;height:11px;padding:4px;color:var(--three-level-menu-search-tag-color);margin-right:8px}.three-level-menu-search-history-title{color:#8c8c8c;margin:10px 0;display:flex;align-items:center}.three-level-menu-search-history-icon{margin-left:5px}.sub-menu-sit-map-wrapper{box-sizing:border-box;width:calc(100vw);padding:0 120px 24px;max-height:520px;background-color:var(--antd-dropdown-menu-bg);border-radius:6px;box-shadow:0px 4px 12px 0px rgba(17,37,64,0.08);overflow-x:hidden;overflow-y:auto}',""]);const l=i.toString()},8101:(e,t,r)=>{r.d(t,{Z:()=>l});var a=r(9601),o=r.n(a),n=r(2609),i=r.n(n)()(o());i.push([e.id,'.group .item-link, .custom-group .item-link{font-weight:400}.group .item-link:hover, .custom-group .item-link:hover{background-color:var(--color-fill-bg-base-1)}.group .item-link:hover::part(link), .custom-group .item-link:hover::part(link){color:var(--color-brand-hover)}.group .item-link:hover::part(icon), .custom-group .item-link:hover::part(icon){color:var(--color-brand-hover)}.group .item-link.active::part(link),\n .custom-group .item-link.active::part(link),\n .group .item-link.active::part(icon),\n .custom-group .item-link.active::part(icon){color:var(--palette-blue-8)}.group .item-link::part(link), .custom-group .item-link::part(link){padding:8px 12px;display:flex;gap:4px;color:var(--color-header-text)}.group .item-link::part(icon), .custom-group .item-link::part(icon){color:var(--color-normal-text)}.group .title, .custom-group .title{padding:8px 16px;font-size:16px;font-weight:500;position:relative}.group .title::before, .custom-group .title::before{content:"";position:absolute;width:6px;height:6px;top:17px;left:1px;transform:rotate(45deg);background:var(--color-secondary-text)}.group .content .icon-wrapper, .custom-group .content .icon-wrapper, .group .custom-content .icon-wrapper, .custom-group .custom-content .icon-wrapper{color:var(--color-secondary-text);font-size:16px;display:none;margin-left:auto}.group .content .item-link:hover .icon-wrapper, .custom-group .content .item-link:hover .icon-wrapper, .group .custom-content .item-link:hover .icon-wrapper, .custom-group .custom-content .item-link:hover .icon-wrapper{display:block}.group .content .item-link:hover .icon-wrapper:hover, .custom-group .content .item-link:hover .icon-wrapper:hover, .group .custom-content .item-link:hover .icon-wrapper:hover, .custom-group .custom-content .item-link:hover .icon-wrapper:hover{color:var(--color-brand-hover)}.group .content, .custom-group .content{display:flex;flex-direction:column}.group .group-item, .custom-group .group-item{page-break-inside:avoid;break-inside:avoid}.group-view{min-height:300px}.group-view .divider{height:2px;background:var(--color-text-divider-line);margin:16px 0}',""]);const l=i.toString()},8462:(e,t,r)=>{r.d(t,{Z:()=>l});var a=r(9601),o=r.n(a),n=r(2609),i=r.n(n)()(o());i.push([e.id,".tag-container::part(link){display:flex;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-moz-user-select:none;justify-content:space-between;background-color:var(--color-fill-bg-base-1);border-radius:2px;padding:1px 6px}.tag-container .tag-text{color:var(--color-normal-text);font-weight:400}.tag-container:hover .tag-text{color:var(--color-brand-hover)}.tag-container .tag-suffix{display:inline-flex;font-size:12px;gap:4px;align-items:center;color:var(--color-secondary-text)}.tag-container.is-drag{opacity:0.4}.indicate-wrapper{border:1px dashed var(--color-brand-hover);border-radius:4px;height:20px;margin:2px 0}.close{display:inline-flex;margin-top:2px;padding:0 2px}.close:hover{color:var(--color-error)}.drag-wrapper{cursor:move}.drag-wrapper:hover{color:var(--color-brand-hover)}.star-icon{display:flex;alignitems:center;color:var(--color-secondary-text)}.star-icon:hover{color:var(--color-brand-hover)}.star-icon .active{color:var(--palette-yellow-6)}.recommend-container:hover .star{display:inline-flex}.recommend-container .star{font-size:13px;display:none}.visit-container:hover .operation{display:inline-flex;align-items:center}.visit-container .operation{display:none}",""]);const l=i.toString()},2598:(e,t,r)=>{r.d(t,{Z:()=>l});var a=r(9601),o=r.n(a),n=r(2609),i=r.n(n)()(o());i.push([e.id,'.site-map .search-wrapper{position:-webkit-sticky;position:sticky;top:0;z-index:9999;padding-top:24px;padding-bottom:16px;background:var(--antd-dropdown-menu-bg)}.site-map .search-input::part(affix-wrapper){border:none;border-bottom:1px solid var(--antd-input-border-color);border-radius:0px}.site-map .visit-access .title, .site-map .search-panel .title{display:inline-block;padding:2px 16px;font-weight:500;line-height:24px;position:relative}.site-map .visit-access .title::before, .site-map .search-panel .title::before{content:"";position:absolute;width:6px;height:6px;top:10px;left:1px;border-radius:50%;background:var(--color-secondary-text)}.site-map .visit-access .no-data-tips, .site-map .search-panel .no-data-tips{display:flex;margin:16px 0 32px;align-items:center;justify-content:center;color:var(--color-secondary-text)}.site-map .visit-access{margin-bottom:8px}.site-map .visit-access.hasData{display:flex}.site-map .visit-access .tag-wrapper{flex:1;display:grid;grid-template-columns:repeat(auto-fit,200px);grid-gap:8px;gap:8px}.site-map .ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.site-map .search-panel .recommend-wrapper{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fit,200px);grid-gap:8px;gap:8px}:host-context(html[data-theme="dark-v2"]) .site-map .search-input::part(affix-wrapper), :host-context([data-override-theme="dark-v2"]) .site-map .search-input::part(affix-wrapper){background:var(--antd-dropdown-menu-bg)}',""]);const l=i.toString()},5863:(e,t,r)=>{function a(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}r.d(t,{Z:()=>a})},175:(e,t,r)=>{function a(e,t,r){if(!t.has(e))throw new TypeError("attempted to "+r+" private field on non-instance");return t.get(e)}r.d(t,{Z:()=>a})},687:(e,t,r)=>{r.d(t,{Z:()=>o});var a=r(175);function o(e,t){return function(e,t){return t.get?t.get.call(e):t.value}(e,(0,a.Z)(e,t,"get"))}},3395:(e,t,r)=>{r.d(t,{Z:()=>o});var a=r(5863);function o(e,t,r){(0,a.Z)(e,t),t.set(e,r)}},381:(e,t,r)=>{r.d(t,{Z:()=>o});var a=r(175);function o(e,t,r){return function(e,t,r){if(t.set)t.set.call(e,r);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=r}}(e,(0,a.Z)(e,t,"set"),r),r}},3874:(e,t,r)=>{r.d(t,{OZ:()=>n});var a=r(8353),o=r(4266);function n(e,t,r,l){var c=[],s=[],p=0;return e.forEach((e=>{if(e.key=""===l?"".concat(p):"".concat(l,".").concat(p),function(e){return"group"===e.type}(e)||function(e,t){return Boolean("subMenu"===e.type||void 0)}(e)){var m=n(e.items,t,r,e.key);c.push(...m.selectedKeys),(m.selectedKeys.length||e.defaultExpanded)&&s.push(e.key),s.push(...m.openedKeys)}else(function(e,t,r){if(!e.to)return!1;var n="object"==typeof e.to?e.to:(0,a.parsePath)(e.to),l=n.pathname.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),c=!!(0,o.matchPath)(t,{path:l,exact:e.exact});if(!c&&Array.isArray(e.activeIncludes))for(var s of e.activeIncludes){var p,m=void 0,u=s.includes("?");if(u&&(m=(0,a.parsePath)(s)),(c=!!(0,o.matchPath)(t,{path:u?m.pathname:s,exact:!0}))&&null!==(p=m)&&void 0!==p&&p.search&&(c=i(r,m.search)),c)break}if(c&&Array.isArray(e.activeExcludes))for(var d of e.activeExcludes)if(!(c=!(0,o.matchPath)(t,{path:d,exact:!0})))break;return c&&e.activeMatchSearch&&(c=i(r,n.search)),c})(e,t,r)&&c.push(String(e.key));p+=1})),c.length&&""!==l&&s.push(l),{selectedKeys:c,openedKeys:s}}function i(e,t){var r=new URLSearchParams(e),a=new URLSearchParams(t);for(var[o,n]of a.entries())if(r.get(o)!==n)return!1;return!0}}}]);
2
+ //# sourceMappingURL=8093.2b43ccfb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/8093.2b43ccfb.js","mappings":"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","sources":["webpack:///./src/nav-menu/ThreeLevelMenuPopoverContent.tsx","webpack:///./src/nav-menu/i18n.ts","webpack:///./src/nav-menu/site-map/constants.ts","webpack:///./src/nav-menu/site-map/CollectService.ts","webpack:///./src/nav-menu/site-map/ItemTag.tsx","webpack:///./src/nav-menu/site-map/processor.ts","webpack:///./src/nav-menu/site-map/GroupItem.tsx","webpack:///./src/nav-menu/site-map/SiteMapItem.tsx","webpack:///./src/nav-menu/utils.tsx","webpack:///./src/nav-menu/nav-menu.shadow.css","webpack:///./src/nav-menu/site-map/GroupItem.shadow.css","webpack:///./src/nav-menu/site-map/ItemTag.shadow.css","webpack:///./src/nav-menu/site-map/SiteMapItem.shadow.css","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js","webpack:///../../src/menu.ts"],"sourcesContent":["import React, { useMemo, useState, useRef } from \"react\";\nimport classnames from \"classnames\";\nimport { renderLinkCom } from \"./utils.js\";\nimport { uniq } from \"lodash\";\nimport type {\n SidebarMenuGroup,\n SidebarMenuItem,\n SidebarMenuSimpleItem,\n} from \"@next-shared/general/types\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { ReactNextElement } from \"@next-core/react-element\";\nimport type { Popover, PopoverProps } from \"@next-bricks/basic/popover\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { JsonStorage } from \"@next-shared/general/JsonStorage\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\n\ninitializeReactI18n(NS, locales);\nconst WrappedPopover = wrapBrick<Popover, PopoverProps>(\"eo-popover\");\ninterface SearchProps {\n value?: string;\n placeholder?: string;\n autoFocus?: boolean;\n clearable?: boolean;\n trim?: boolean;\n debounceTime?: number;\n}\n\ninterface SearchEvents {\n change: CustomEvent<string>;\n search: CustomEvent<string>;\n}\n\ninterface SearchEventsMap {\n onChange: \"change\";\n onSearch: \"search\";\n}\nconst WrappedSearch = wrapBrick<\n ReactNextElement,\n SearchProps,\n SearchEvents,\n SearchEventsMap\n>(\"eo-search\", {\n onChange: \"change\",\n onSearch: \"search\",\n});\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\ninterface ThreeLevelMenuPopoverContentProps {\n menuItem: SidebarMenuGroup;\n selectedKey: string[];\n}\nconst LOCAL_STORAGE_PREFIX = \"threeLevelCategoryMenu\";\nconst maxVisitorLength = 6;\nexport function ThreeLevelMenuPopoverContent(\n props: ThreeLevelMenuPopoverContentProps\n): React.ReactElement {\n const { t } = useTranslation(NS);\n const { menuItem, selectedKey } = props;\n const items = menuItem.items as SidebarMenuGroup[];\n const [searchResult, setSearchResult] = useState<SidebarMenuSimpleItem[]>([]);\n const [searchKey, setSearchKey] = useState(\"\");\n const triggerRef = useRef<HTMLDivElement>(null);\n const nameSpace = `${LOCAL_STORAGE_PREFIX}_${menuItem.title}`;\n const storage = useMemo(() => new JsonStorage(localStorage), []);\n const searchHistory = (storage.getItem(nameSpace) as string[]) || [];\n\n const handleSearch = (e: CustomEvent<string>) => {\n setSearchKey(e.detail);\n if (e.detail) {\n const list = uniq([e.detail, ...searchHistory]);\n if (list.length > maxVisitorLength) {\n list.pop();\n }\n storage.setItem(nameSpace, list);\n setSearchResult(\n items\n .flatMap((i) => (i.items as SidebarMenuSimpleItem[]) || [])\n .filter((i) =>\n (i.text as string)\n .toLowerCase()\n .includes((e.detail as string).trim().toLowerCase())\n )\n );\n } else {\n setSearchResult([]);\n }\n };\n\n const popoverTriggerClick = () => {\n triggerRef.current?.click();\n };\n\n return (\n <div className={\"three-level-menu-container\"}>\n <div\n className=\"three-level-menu-search-container\"\n onClick={(e) => {\n e.stopPropagation();\n }}\n >\n <WrappedSearch\n placeholder={t(K.SEARCH_BY_MENU_NAME) as string}\n onSearch={handleSearch}\n onFocus={popoverTriggerClick}\n onBlur={popoverTriggerClick}\n />\n <WrappedPopover\n trigger=\"click\"\n placement={\"bottom-start\"}\n anchorDisplay=\"block\"\n distance={0}\n >\n <div slot=\"anchor\" ref={triggerRef}></div>\n {\n <div className=\"three-level-menu-search-result\">\n {!!searchResult.length &&\n searchResult.map((i) => renderLinkCom(i, { width: \"100%\" }))}\n {searchKey && !searchResult.length && (\n <div\n style={{\n height: \"100px\",\n textAlign: \"center\",\n lineHeight: \"100px\",\n }}\n >\n {t(K.NO_DATA)}\n </div>\n )}\n </div>\n }\n </WrappedPopover>\n </div>\n {!!searchHistory.length && (\n <div className=\"three-level-menu-search-history-container\">\n <div className=\"three-level-menu-search-history-title\">\n {t(K.SEARCH_HISTORY)}\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"delete\"\n className=\"three-level-menu-search-history-icon\"\n />\n </div>\n <div>\n {searchHistory.map((h) => (\n <span key={h} className=\"three-level-menu-search-history-text\">\n {h}\n </span>\n ))}\n </div>\n </div>\n )}\n <div\n className={\"three-level-menu-item-container\"}\n style={{\n gridTemplateColumns: `repeat(${\n items.length > 4 ? 4 : items.length\n },1fr)`,\n }}\n >\n {items.map((item: SidebarMenuGroup, index: number) => (\n <div key={index}>\n <div className=\"three-level-menu-item-title-container\">\n <span className=\"three-level-menu-item-title-icon\"></span>\n <span className=\"three-level-menu-item-title\">{item.title}</span>\n </div>\n {item.items?.map((i) => (\n <span\n key={i.key}\n className={classnames({\n active: i.key ? selectedKey.includes(i.key) : false,\n })}\n >\n {renderLinkCom(i as SidebarMenuSimpleItem, { width: \"100%\" })}\n </span>\n ))}\n </div>\n ))}\n </div>\n </div>\n );\n}\n","export enum K {\n SEARCH_BY_MENU_NAME = \"SEARCH_BY_MENU_NAME\",\n SEARCH_HISTORY = \"SEARCH_HISTORY\",\n NO_DATA = \"NO_DATA\",\n QUICK_ACCESS = \"QUICK_ACCESS\",\n REMOVE_ITEM_FROM_QUICK_ACCESS = \"REMOVE_ITEM_FROM_QUICK_ACCESS\",\n ADD_ITEM_TO_QUICK_ACCESS = \"ADD_ITEM_TO_QUICK_ACCESS\",\n NO_DATA_TIPS_IN_QUICK_ACCESS = \"NO_DATA_TIPS_IN_QUICK_ACCESS\",\n SITE_MAP_SEARCH_RECOMMEND = \"SITE_MAP_SEARCH_RECOMMEND\",\n MAX_COLLECT_COUNT_TIPS = \"MAX_COLLECT_COUNT_TIPS\",\n NO_DATA_SEARCH_INFO = \"NO_DATA_SEARCH_INFO\",\n SEARCH_ITEM_PLACEHOLDER = \"SEARCH_ITEM_PLACEHOLDER\",\n}\n\nconst en: Locale = {\n SEARCH_BY_MENU_NAME: \"Search by menu name\",\n SEARCH_HISTORY: \"Search history\",\n NO_DATA: \"No data\",\n QUICK_ACCESS: \"Quick Access\",\n REMOVE_ITEM_FROM_QUICK_ACCESS: \"Remove from Quick Access\",\n ADD_ITEM_TO_QUICK_ACCESS: \"Add to Quick Access\",\n NO_DATA_TIPS_IN_QUICK_ACCESS:\n \"No quick access resources have been added yet. Please add from the list below or after searching\",\n SITE_MAP_SEARCH_RECOMMEND: \"Search recommend\",\n MAX_COLLECT_COUNT_TIPS: \"Need to delete some favorites in order to add\",\n NO_DATA_SEARCH_INFO: \"The search result is empty, please enter again\",\n SEARCH_ITEM_PLACEHOLDER: \"Please enter keywords to search\",\n};\n\nconst zh: Locale = {\n SEARCH_BY_MENU_NAME: \"通过菜单名称搜索\",\n SEARCH_HISTORY: \"历史搜索\",\n NO_DATA: \"暂无数据\",\n QUICK_ACCESS: \"快捷访问\",\n REMOVE_ITEM_FROM_QUICK_ACCESS: \"从快捷访问移除\",\n ADD_ITEM_TO_QUICK_ACCESS: \"添加至快捷访问\",\n NO_DATA_TIPS_IN_QUICK_ACCESS: \"暂未添加快捷访问资源,从下方列表或搜索后添加\",\n SITE_MAP_SEARCH_RECOMMEND: \"搜索推荐\",\n MAX_COLLECT_COUNT_TIPS: \"需删除部分收藏,才能添加\",\n NO_DATA_SEARCH_INFO: \"搜索结果为空,请重新输入\",\n SEARCH_ITEM_PLACEHOLDER: \"请输入关键词搜索\",\n};\n\nexport const NS = \"bricks/nav/nav-menu\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","import React from \"react\";\n\nexport enum DRAG_DIRECTION {\n Left = \"left\",\n Right = \"right\",\n}\n\nexport interface ContextOfDragProps {\n groupId: string;\n direction?: DRAG_DIRECTION;\n overElement?: HTMLElement;\n allowDrag?: boolean;\n onAllowDrag?: (enable: boolean) => void;\n onDragStart?: (e: React.DragEvent) => void;\n onDragOver?: (e: React.DragEvent) => void;\n onDragEnd?: (e: React.DragEvent) => void;\n onFavoriteUpdate?: (list: any[]) => void;\n}\nexport const DragContext = React.createContext<ContextOfDragProps>(\n {} as ContextOfDragProps\n);\n","import { JsonStorage } from \"@next-shared/general/JsonStorage\";\nimport type { SidebarMenuSimpleItem } from \"@next-shared/general/types\";\nimport { DRAG_DIRECTION } from \"./constants.js\";\n\nexport class CollectService {\n private storage: JsonStorage;\n private maxCollectLength: number;\n readonly storageKey = \"site-map-collect\";\n\n constructor(maxCollectLength?: number) {\n this.storage = new JsonStorage(localStorage);\n this.maxCollectLength = maxCollectLength ?? 10;\n }\n\n private getCategoryId(id: string): string {\n return `${this.storageKey}-${id}`;\n }\n\n public getFavoritesById(id: string): SidebarMenuSimpleItem[] {\n return this.storage.getItem(this.getCategoryId(id)) || [];\n }\n\n public setItemAsFavorite(id: string, item: SidebarMenuSimpleItem): void {\n const key = this.getCategoryId(id);\n const list = this.getFavoritesById(id);\n\n if (list.length >= this.maxCollectLength) {\n list.pop();\n }\n\n list.unshift(item);\n this.storage.setItem(key, list);\n }\n\n private equalItem(\n prevItem: SidebarMenuSimpleItem,\n item: SidebarMenuSimpleItem\n ): boolean {\n return prevItem.text === item.text && prevItem.to === item.to;\n }\n\n public removeItemFromFavorite(id: string, item: SidebarMenuSimpleItem): void {\n const key = this.getCategoryId(id);\n const list = this.getFavoritesById(id);\n const index = list.findIndex((row) => this.equalItem(row, item));\n // istanbul ignore else\n if (index !== -1) {\n list.splice(index, 1);\n this.storage.setItem(key, list);\n }\n }\n\n public isCollected(id: string, item: SidebarMenuSimpleItem): boolean {\n const list = this.getFavoritesById(id);\n return list.some((row) => this.equalItem(row, item));\n }\n\n public toggleFavorite(id: string, item: SidebarMenuSimpleItem): void {\n if (this.isCollected(id, item)) {\n this.removeItemFromFavorite(id, item);\n } else {\n if (this.checkMaxCapacity(id)) return;\n this.setItemAsFavorite(id, item);\n }\n }\n\n public moveFavoriteTo(\n id: string,\n option: {\n from: SidebarMenuSimpleItem;\n to: SidebarMenuSimpleItem;\n direction: DRAG_DIRECTION;\n }\n ): SidebarMenuSimpleItem[] {\n const { from, to, direction } = option;\n\n const list = this.getFavoritesById(id);\n if (this.equalItem(from, to)) return list;\n\n const fromIndex = list.findIndex((row) => this.equalItem(row, from));\n\n // istanbul ignore else\n if (fromIndex !== -1) {\n list.splice(fromIndex, 1);\n\n const toIndex = list.findIndex((row) => this.equalItem(row, to));\n\n // istanbul ignore else\n if (toIndex !== -1) {\n if (direction === DRAG_DIRECTION.Left) {\n list.splice(toIndex, 0, from);\n } else {\n list.splice(toIndex + 1, 0, from);\n }\n this.storage.setItem(this.getCategoryId(id), list);\n }\n }\n\n return list;\n }\n\n checkMaxCapacity(groupId: string): boolean {\n return this.getFavoritesById(groupId).length >= this.maxCollectLength;\n }\n}\n\nexport const collectService = new CollectService();\n","import React, {\n useMemo,\n useCallback,\n forwardRef,\n useRef,\n useState,\n useEffect,\n useContext,\n DragEvent,\n} from \"react\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { Link, LinkProps } from \"@next-bricks/basic/link\";\n\nimport { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport classNames from \"classnames\";\nimport { SidebarMenuSimpleItem } from \"@next-shared/general/types\";\nimport { K, NS, locales } from \"../i18n.js\";\nimport { collectService } from \"./CollectService.js\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { DRAG_DIRECTION, DragContext } from \"./constants.js\";\n\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\ninitializeReactI18n(NS, locales);\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\n\ninterface CellItemProps {\n data: SidebarMenuSimpleItem;\n suffix?: React.ReactNode;\n className?: string;\n}\n\nexport type OnFavoriteCallback = (collectList: SidebarMenuSimpleItem[]) => void;\n\ninterface PlaceholderCompProps {\n data: SidebarMenuSimpleItem;\n direction: DRAG_DIRECTION;\n onDragOver?: (e: DragEvent) => void;\n}\nexport function PlaceholderDropComp({\n data,\n onDragOver,\n direction,\n}: PlaceholderCompProps) {\n const { groupId, onFavoriteUpdate } = useContext(DragContext);\n const handleDrop = (e: DragEvent) => {\n const formData = JSON.parse(e.dataTransfer.getData(\"application/json\"));\n\n const newDataList = collectService.moveFavoriteTo(groupId, {\n from: formData,\n to: data,\n direction,\n });\n\n onFavoriteUpdate?.(newDataList);\n };\n\n return (\n <div\n className=\"indicate-wrapper\"\n data-direction={direction}\n data-to={data.to}\n onDragEnter={(e) =>\n ((e.target as HTMLElement).style.background = \"var(--palette-blue-1)\")\n }\n onDragLeave={(e) =>\n ((e.target as HTMLElement).style.background = \"transparent\")\n }\n data-text={data.text}\n onDragOver={onDragOver}\n onDrop={handleDrop}\n />\n );\n}\n\nexport function ItemTag(props: CellItemProps): React.ReactElement {\n const { data, suffix, className } = props;\n\n const {\n allowDrag,\n onDragStart,\n overElement,\n direction,\n onDragEnd,\n onDragOver,\n } = useContext(DragContext);\n const containerRef = useRef<any>(null);\n\n const [isDragIng, setIsDragIng] = useState(false);\n\n const isActive = useMemo(\n () =>\n overElement &&\n overElement.dataset.to == data.to &&\n overElement.dataset.text === overElement.dataset.text,\n [overElement, data]\n );\n\n const handleDragStart = (e: React.DragEvent) => {\n if (!allowDrag) {\n e.preventDefault();\n } else {\n setIsDragIng(true);\n e.dataTransfer?.setData(\"application/json\", JSON.stringify(data));\n onDragStart?.(e);\n }\n };\n\n const handleDragEnd = (e: React.DragEvent) => {\n setIsDragIng(false);\n onDragEnd?.(e);\n };\n\n const handleOver = (e: React.DragEvent) => {\n e.dataTransfer.dropEffect = \"none\";\n onDragOver?.(e);\n };\n\n return (\n <>\n {isActive && direction === DRAG_DIRECTION.Left && (\n <PlaceholderDropComp\n data={data}\n onDragOver={onDragOver}\n direction={DRAG_DIRECTION.Left}\n />\n )}\n <WrappedLink\n data-to={data.to}\n data-text={data.text}\n ref={containerRef}\n draggable\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n onDragOver={handleOver}\n className={classNames(\"tag-container\", className, {\n \"is-drag\": isDragIng,\n })}\n url={data.to as string}\n href={data.href}\n target={data.target as LinkProps[\"target\"]}\n >\n <span className=\"tag-text ellipsis\" title={data.text}>\n {data.text}\n </span>\n <span className=\"tag-suffix\" onClick={(e) => e.preventDefault()}>\n {suffix}\n </span>\n </WrappedLink>\n\n {isActive && direction === DRAG_DIRECTION.Right && (\n <PlaceholderDropComp\n data={data}\n onDragOver={onDragOver}\n direction={DRAG_DIRECTION.Right}\n />\n )}\n </>\n );\n}\n\ninterface QuickVisitTagProps extends CellItemProps {\n groupId: string;\n onFavorite?: OnFavoriteCallback;\n}\n\nexport function QuickVisitItem(props: QuickVisitTagProps): React.ReactElement {\n const { t } = useTranslation(NS);\n const { onAllowDrag } = useContext(DragContext);\n const { data, onFavorite, groupId } = props;\n const suffixRef = useRef<any>();\n\n const handleRemove = useCallback(() => {\n collectService.removeItemFromFavorite(groupId, data);\n onFavorite?.(collectService.getFavoritesById(groupId));\n }, [groupId, data, onFavorite]);\n\n const handleMouseDown = () => {\n onAllowDrag?.(true);\n };\n\n useEffect(() => {\n const suffix = suffixRef.current;\n const handleClick = (e: MouseEvent) => {\n e.preventDefault();\n };\n suffix.addEventListener(\"click\", handleClick);\n\n return () => {\n suffix.removeEventListener(\"click\", handleClick);\n };\n }, []);\n\n const suffixGroups = useMemo(\n () => (\n <div className=\"operation\" ref={suffixRef}>\n <WrappedTooltip\n content={t(K.REMOVE_ITEM_FROM_QUICK_ACCESS)}\n hoist\n placement=\"bottom\"\n className=\"close\"\n onClick={handleRemove}\n >\n <WrappedIcon lib=\"antd\" icon=\"close\" />\n </WrappedTooltip>\n <span className=\"drag-wrapper\" onMouseDown={handleMouseDown}>\n :::\n </span>\n </div>\n ),\n [t, handleRemove]\n );\n\n return (\n <ItemTag className=\"visit-container\" suffix={suffixGroups} data={data} />\n );\n}\n\ninterface StarIconProps {\n onFavorite?: OnFavoriteCallback;\n className?: string;\n groupId: string;\n data: SidebarMenuSimpleItem;\n active?: boolean;\n}\n\nexport function StarIcon({\n onFavorite,\n className,\n groupId,\n data,\n active,\n}: StarIconProps): React.ReactElement {\n const { t } = useTranslation(NS);\n const iconRef = useRef<any>();\n\n const handleClick = (e: React.MouseEvent) => {\n e.preventDefault();\n collectService.toggleFavorite(groupId, data);\n onFavorite?.(collectService.getFavoritesById(groupId));\n };\n\n useEffect(() => {\n // workaround for prevent Link jump when click.\n const icon = iconRef.current;\n icon.addEventListener(\"click\", handleClick);\n\n return () => {\n icon.removeEventListener(\"click\", handleClick);\n };\n }, []);\n\n return (\n <WrappedTooltip\n content={\n active\n ? t(K.REMOVE_ITEM_FROM_QUICK_ACCESS)\n : collectService.checkMaxCapacity(groupId)\n ? t(K.MAX_COLLECT_COUNT_TIPS)\n : t(K.ADD_ITEM_TO_QUICK_ACCESS)\n }\n className={classNames(\"star-icon\", className)}\n >\n <WrappedIcon\n ref={iconRef}\n className={classNames({ active })}\n lib=\"antd\"\n icon=\"star\"\n {...(active ? { theme: \"filled\" } : {})}\n />\n </WrappedTooltip>\n );\n}\n\ninterface RecommendItemProps extends CellItemProps {\n active?: boolean;\n groupId: string;\n onFavorite?: OnFavoriteCallback;\n}\n\nexport function RecommendItem(props: RecommendItemProps): React.ReactElement {\n const { data, className, groupId, onFavorite, active } = props;\n\n const suffixGroups = useMemo(\n () => (\n <StarIcon\n groupId={groupId}\n active={active}\n className=\"star\"\n data={data}\n onFavorite={onFavorite}\n />\n ),\n [data, groupId, onFavorite, active]\n );\n\n return (\n <ItemTag\n className={classNames(\"recommend-container\", className)}\n suffix={suffixGroups}\n data={data}\n />\n );\n}\n","import {\n SidebarMenuItem,\n SidebarMenuGroup,\n SidebarMenuSimpleItem,\n} from \"@next-shared/general/types\";\n\nfunction walkMenuItem(item: SidebarMenuItem, list: SidebarMenuSimpleItem[]) {\n if (\n (item as SidebarMenuGroup).type === \"group\" &&\n Array.isArray((item as SidebarMenuGroup).items)\n ) {\n walkMenuItems((item as SidebarMenuGroup).items, list);\n } else {\n list.push(item as SidebarMenuSimpleItem);\n }\n}\n\nfunction walkMenuItems(\n items: SidebarMenuItem[],\n list: SidebarMenuSimpleItem[]\n): void {\n for (const item of items) {\n walkMenuItem(item, list);\n }\n}\n\nexport function flatMenuItems(item: SidebarMenuItem): SidebarMenuSimpleItem[] {\n const list: SidebarMenuSimpleItem[] = [];\n\n walkMenuItem(item, list);\n\n return list;\n}\n\nexport function processGroupItems(groups: SidebarMenuGroup[]): Array<{\n groupFrom: string;\n groups: SidebarMenuGroup[];\n}> {\n const groupCategoryMap = new Map<string, SidebarMenuGroup[]>();\n const categoryOrder = new Set<string>();\n\n groups?.forEach((item) => {\n const from = item.groupFrom ?? \"default\";\n categoryOrder.add(from);\n\n const value = groupCategoryMap.get(from);\n\n if (!value) {\n groupCategoryMap.set(from, [item]);\n } else {\n value!.push(item);\n }\n });\n\n return Array.from(categoryOrder).map((key) => ({\n groupFrom: key,\n groups: groupCategoryMap!.get(key)!,\n }));\n}\n","import React, { useEffect, useState } from \"react\";\nimport type {\n SidebarMenuSimpleItem,\n SidebarMenuGroup,\n} from \"@next-shared/general/types\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { StarIcon, OnFavoriteCallback } from \"./ItemTag.js\";\nimport { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport { collectService } from \"./CollectService.js\";\nimport { processGroupItems } from \"./processor.js\";\nimport classNames from \"classnames\";\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\ninterface GroupViewProps {\n groups: SidebarMenuGroup[];\n groupId: string;\n selectedKey?: string[];\n onFavorite: OnFavoriteCallback;\n}\n\nexport const itemColumnWidth = 240;\n\nexport function GroupView(props: GroupViewProps): React.ReactElement {\n const { groupId, selectedKey, onFavorite } = props;\n const groupMenus = processGroupItems(props.groups);\n\n return (\n <div className=\"group-view\">\n {groupMenus.map((item, index) => {\n return (\n <div key={index}>\n {index !== 0 && <div className=\"divider\" />}\n {item.groupFrom === \"default\" ? (\n <DefaultGroup\n groupId={groupId}\n selectedKey={selectedKey}\n groups={item.groups}\n onFavorite={onFavorite}\n />\n ) : (\n <CustomGroup\n groupId={groupId}\n selectedKey={selectedKey}\n groups={item.groups}\n onFavorite={onFavorite}\n />\n )}\n </div>\n );\n })}\n </div>\n );\n}\n\ninterface BaseGroupProps {\n groupId: string;\n selectedKey?: string[];\n onFavorite: OnFavoriteCallback;\n groups: SidebarMenuGroup[];\n}\nexport function DefaultGroup(props: BaseGroupProps): React.ReactElement {\n const { groupId, onFavorite, selectedKey, groups } = props;\n\n const groupRef = React.useRef<HTMLDivElement>(null);\n const [columnCount, setColumnCount] = useState<number>();\n\n useEffect(() => {\n // istanbul ignore next\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === groupRef.current) {\n const width = entry.contentRect.width;\n\n setColumnCount(Math.floor(width / itemColumnWidth));\n }\n }\n });\n\n resizeObserver.observe(groupRef.current as HTMLDivElement);\n\n return () => resizeObserver.disconnect();\n }, []);\n\n return (\n <div\n className=\"group\"\n ref={groupRef}\n style={\n (columnCount as number) < groups?.length\n ? { columnCount, columnWidth: itemColumnWidth }\n : {\n display: \"grid\",\n gridTemplateColumns: `repeat(auto-fit, ${itemColumnWidth}px)`,\n }\n }\n >\n {groups.map((group) => (\n <div key={group.key} className=\"group-item\">\n <div className=\"title\">{group.title}</div>\n <div className=\"content\">\n {group.items.map((item) => (\n <GroupItem\n key={item.key}\n groupId={groupId}\n selectedKey={selectedKey}\n data={item as SidebarMenuSimpleItem}\n onFavorite={onFavorite}\n />\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n\nexport function CustomGroup(props: BaseGroupProps): React.ReactElement {\n const { groupId, onFavorite, selectedKey, groups } = props;\n\n return (\n <div className=\"custom-group\">\n {groups.map((group) => (\n <div key={group.key}>\n <div className=\"title\">{group.title}</div>\n <div\n className=\"custom-content\"\n style={{\n display: \"grid\",\n gridTemplateColumns: `repeat(auto-fit, ${itemColumnWidth}px)`,\n }}\n >\n {group.items.map((item) => (\n <GroupItem\n key={item.key}\n selectedKey={selectedKey}\n groupId={groupId}\n data={item as SidebarMenuSimpleItem}\n onFavorite={onFavorite}\n />\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n\ninterface GroupItemProps {\n data: SidebarMenuSimpleItem;\n selectedKey?: string[];\n groupId: string;\n onFavorite: OnFavoriteCallback;\n}\nexport function GroupItem(props: GroupItemProps): React.ReactElement {\n const { data, groupId, onFavorite, selectedKey } = props;\n\n return (\n <WrappedLink\n key={data.key}\n icon={data.icon}\n url={data.to as string}\n href={data.href}\n target={data.target as LinkProps[\"target\"]}\n className={classNames(\"item-link\", {\n active: selectedKey?.includes(data.key as string),\n })}\n >\n <span className=\"ellipsis\" title={data.text}>\n {data.text}\n </span>\n <span className=\"icon-wrapper\">\n <StarIcon\n active={collectService.isCollected(groupId, data)}\n groupId={groupId}\n data={data}\n onFavorite={onFavorite}\n />\n </span>\n </WrappedLink>\n );\n}\n","import React, { useCallback, useMemo, useState } from \"react\";\nimport type {\n SidebarMenuGroup,\n SidebarMenuSimpleItem,\n} from \"@next-shared/general/types\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { QuickVisitItem, RecommendItem } from \"./ItemTag.js\";\nimport { GroupView } from \"./GroupItem.js\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS } from \"../i18n.js\";\nimport { DragContext } from \"./constants.js\";\nimport { useTranslation } from \"@next-core/i18n/react\";\nimport { collectService } from \"./CollectService.js\";\nimport { flatMenuItems } from \"./processor.js\";\nimport { DRAG_DIRECTION } from \"./constants.js\";\nimport classNames from \"classnames\";\nimport { throttle, debounce } from \"lodash\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface InputEvents {\n change: CustomEvent<string>;\n}\n\nexport interface InputEventsMap {\n onValueChange: \"change\";\n}\n\nconst WrappedInput = wrapBrick<any, any, InputEvents, InputEventsMap>(\n \"eo-input\",\n {\n onValueChange: \"change\",\n }\n);\n\ninterface SiteMapItemProps {\n menuGroup: SidebarMenuGroup;\n selectedKey?: string[];\n}\n\nexport function findDropElement(element: HTMLElement): HTMLElement | undefined {\n let node = element;\n\n while (node) {\n if (node.draggable || node.className === \"indicate-wrapper\") {\n return node;\n }\n\n node = node.parentElement as HTMLElement;\n }\n}\n\nexport function isValidDragAction(\n dragElement: HTMLElement,\n dropElement: HTMLElement\n): boolean {\n return (\n dragElement &&\n dropElement &&\n !(\n dragElement.dataset.to === dropElement.dataset.to &&\n dragElement.dataset.text === dropElement.dataset.text\n )\n );\n}\n\nexport function SiteMapItem(props: SiteMapItemProps) {\n const { t } = useTranslation(NS);\n const { menuGroup, selectedKey } = props;\n const groupId = menuGroup.groupId as string;\n\n const [favoriteList, setFavoriteList] = useState(\n collectService.getFavoritesById(groupId)\n );\n const flatItems = useMemo(() => flatMenuItems(menuGroup), [menuGroup]);\n const [q, setQ] = useState<string>();\n const [filter, setFilters] = useState<SidebarMenuSimpleItem[]>([]);\n const [dragElement, setDragElement] = useState<HTMLElement>();\n const [overElement, setOverElement] = useState<HTMLElement>();\n const [allowDrag, setAllowDrag] = useState<boolean>();\n const [direction, setDirection] = useState<DRAG_DIRECTION>();\n\n const handleFavorite = (collectList: SidebarMenuSimpleItem[]) => {\n setFavoriteList(collectList);\n };\n\n const handleSearch = useCallback(\n (e: CustomEvent<string>): void => {\n const v = e.detail;\n setQ(e.detail);\n\n setFilters(\n !v\n ? flatItems\n : flatItems.filter((item) =>\n item.text.toLowerCase().includes(e.detail.toLowerCase())\n )\n );\n },\n [flatItems]\n );\n\n const debouncedHandleSearch = useMemo(\n () => debounce(handleSearch, 200),\n [handleSearch]\n );\n\n const handleDragStart = (e: React.DragEvent): void => {\n setDragElement(e.target as HTMLElement);\n };\n\n const handleDragOver = useMemo(\n () =>\n throttle((e: React.DragEvent): void => {\n e.preventDefault();\n\n const dropElement = findDropElement(e.target as HTMLElement);\n setOverElement(dropElement);\n\n if (\n dropElement &&\n isValidDragAction(dropElement, dragElement as HTMLElement)\n ) {\n if (dropElement.className === \"indicate-wrapper\") {\n setDirection(dropElement.dataset.direction as DRAG_DIRECTION);\n } else {\n const { width, left } = dropElement.getBoundingClientRect();\n\n const right = e.clientX > left + width / 2;\n setDirection(right ? DRAG_DIRECTION.Right : DRAG_DIRECTION.Left);\n }\n } else {\n setDirection(undefined);\n }\n }),\n [dragElement]\n );\n\n const handleDragEnd = (): void => {\n setDragElement(undefined);\n setDirection(undefined);\n setAllowDrag(false);\n };\n\n const handleAllowDrag = (enable: boolean): void => {\n setAllowDrag(enable);\n };\n\n return (\n <div className=\"site-map\">\n <div className=\"search-wrapper\">\n <WrappedInput\n className=\"search-input\"\n style={{ width: \"100%\" }}\n onValueChange={debouncedHandleSearch}\n placeholder={t(K.SEARCH_ITEM_PLACEHOLDER)}\n >\n <WrappedIcon slot=\"prefix\" lib=\"antd\" icon=\"search\" />\n </WrappedInput>\n </div>\n\n {!q && (\n <div>\n {favoriteList.length !== 0 && (\n <div\n className={classNames(\"visit-access\", {\n hasData: favoriteList.length,\n })}\n >\n <span className=\"title\">{t(K.QUICK_ACCESS)}</span>\n <DragContext.Provider\n value={{\n groupId,\n overElement,\n direction,\n allowDrag,\n onDragStart: handleDragStart,\n onDragOver: handleDragOver,\n onDragEnd: handleDragEnd,\n onAllowDrag: handleAllowDrag,\n onFavoriteUpdate: handleFavorite,\n }}\n >\n <div className=\"tag-wrapper\">\n {favoriteList.map((item) => (\n <QuickVisitItem\n onFavorite={handleFavorite}\n groupId={groupId}\n key={item.key}\n data={item}\n />\n ))}\n </div>\n </DragContext.Provider>\n </div>\n )}\n\n <GroupView\n groupId={groupId}\n selectedKey={selectedKey}\n groups={menuGroup.items as SidebarMenuGroup[]}\n onFavorite={handleFavorite}\n />\n </div>\n )}\n\n {q && (\n <div className=\"search-panel\">\n <span className=\"title\">{t(K.SITE_MAP_SEARCH_RECOMMEND)}</span>\n {filter.length ? (\n <div className=\"recommend-wrapper\">\n {filter.map((item) => (\n <RecommendItem\n key={item.key}\n groupId={groupId}\n data={item}\n onFavorite={handleFavorite}\n active={collectService.isCollected(groupId, item)}\n />\n ))}\n </div>\n ) : (\n <div className=\"no-data-tips\">{t(K.NO_DATA_SEARCH_INFO)}</div>\n )}\n </div>\n )}\n </div>\n );\n}\n","import React from \"react\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type {\n SidebarMenuGroup,\n SidebarMenuItem,\n SidebarMenuSimpleItem,\n} from \"@next-shared/general/types\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst WrappedLinkItem = wrapBrick<Link, LinkProps>(\"eo-link\");\n\nexport function isGroup(item: SidebarMenuItem): item is SidebarMenuGroup {\n return item.type === \"group\";\n}\n\nexport function isSubMenu(\n item: SidebarMenuGroup,\n groupAsSubMenu?: boolean\n): item is SidebarMenuGroup {\n return Boolean(\n item.type === \"subMenu\" || (groupAsSubMenu && item.type === \"group\")\n );\n}\n\nexport function isSimple(item: SidebarMenuItem): item is SidebarMenuSimpleItem {\n return item.type === \"default\";\n}\n\nexport const renderLinkCom = (\n item: SidebarMenuSimpleItem,\n linkStyle?: React.CSSProperties\n): React.ReactElement => {\n return (\n <WrappedLinkItem\n key={item.key}\n url={item.to as string}\n href={item.href}\n target={item.target as LinkProps[\"target\"]}\n style={linkStyle}\n >\n <span className=\"menu-item-label\">{item.text}</span>\n </WrappedLinkItem>\n );\n};\n\nexport const renderSpanCom = (\n item: SidebarMenuGroup,\n subMenu?: boolean\n): React.ReactElement => {\n return (\n <span key={item.key} className=\"menu-item-label\">\n {item.title}\n {subMenu && <WrappedIcon lib=\"fa\" icon=\"angle-right\" />}\n </span>\n );\n};\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block;background:none;--three-level-menu-search-input-background:linear-gradient(90deg,#e8eef6 0%,rgba(233,234,243,0) 100%);--three-level-menu-hover-color:#6bb3ff;--three-level-menu-title-color:#0b5ad9;--three-level-menu-active-color:#1a7aff;--three-level-menu-search-tag-color:rgb(89,89,89);--three-level-menu-search-tag-background:rgb(245,245,245)}:host::part(menu-item),\neo-link{display:block;padding:2px 0px}:host-context(html[data-theme=\"dark-v2\"]),\n:host-context([data-override-theme=\"dark-v2\"]){--three-level-menu-search-input-background:linear-gradient(124deg,rgba(255,255,255,0.36) 0%,rgba(255,255,255,0) 100%);--three-level-menu-hover-color:rgba(54,95,175,0.85);--three-level-menu-title-color:#6597e8;--three-level-menu-active-color:#3f75dd;--three-level-menu-search-tag-color:rgb(140,140,140);--three-level-menu-search-tag-background:rgb(107,107,107)}.nav-menu-wrapper{display:flex}.nav-menu-wrapper > eo-menu-item{padding:2px 14px}.nav-menu-wrapper > eo-popover{padding:2px 6px}.popover .sub-menu-item-label{padding:2px 0px;color:var(--color-normal-text)}.popover.subprime{display:inline-block;width:100%}.sub-menu-wrapper{min-width:160px;max-height:calc(100vh - 100px);background-color:var(--antd-dropdown-menu-bg);padding:4px 0;border-radius:6px;box-shadow:0px 4px 12px 0px rgba(17,37,64,0.08);overflow-x:hidden;overflow-y:auto}.sub-menu-wrapper > eo-menu-item{display:block;width:100%}.sub-menu-wrapper > eo-menu-item .menu-item-label,\n.sub-menu-wrapper > eo-popover .menu-item-label,\n.sub-menu-wrapper > .group-wrapper > eo-popover .menu-item-label,\n.sub-menu-wrapper > .group-wrapper > eo-menu-item .menu-item-label{display:block;width:100%;padding:6px 24px;box-sizing:border-box;color:var(--color-normal-text)}.sub-menu-wrapper > eo-popover.subprime .menu-item-label,\n.sub-menu-wrapper > .group-wrapper > eo-popover.subprime .menu-item-label{display:flex;justify-content:space-between;align-items:center}.sub-menu-wrapper .menu-item-label{border-radius:0}.menu-item-label{display:inline-block;cursor:pointer;border-radius:4px;padding:5px 10px;color:var(--color-normal-text)}.menu-item-label:hover{background-color:var(--v8-top-menu-item-hover)}.group-label{padding-left:16px;font-size:12px;color:var(--palette-gray-7)}eo-menu-item[active] .menu-item-label{background:var(--v8-top-menu-item-selected-bg);color:var(--color-brand)!important;font-weight:500}.three-level-menu-container{max-width:980px;max-height:510px;overflow:auto;min-width:160px}.three-level-menu-item-container{display:grid;grid-gap:20px;gap:20px;margin-top:13px;padding:5px 10px}.three-level-menu-item-title-container{display:flex;align-items:center}.three-level-menu-item-title-icon{width:4px;height:4px;background-color:var(--three-level-menu-title-color);margin-right:4px;transform:rotate(45deg)}.three-level-menu-item-title{font-size:14px;font-family:PingFang-SC-Medium,PingFang-SC;font-weight:500;color:var(--three-level-menu-title-color)}.three-level-menu-container .menu-item-label{margin-top:4px;margin-left:4px;padding:4px;width:100%}.three-level-menu-container .active .menu-item-label{color:var(--three-level-menu-active-color)}.three-level-menu-search-result .menu-item-label{margin:0px}.three-level-menu-container .menu-item-label:hover{color:var(--three-level-menu-hover-color)}.three-level-menu-popover .sub-menu-wrapper{padding-top:0px}.three-level-menu-search-container{background:var(--three-level-menu-search-input-background);padding:5px 10px}.three-level-menu-search-result{min-width:187px;max-width:328px;max-height:324px;background-color:var(--antd-dropdown-menu-bg);box-shadow:0px 4px 12px 0px rgba(17,37,64,0.08);overflow:scroll}.three-level-menu-search-history-container{padding:5px 10px}.three-level-menu-search-history-text{background:var(--three-level-menu-search-tag-background);border-radius:2px;font-size:7px;line-height:11px;display:inline-block;height:11px;padding:4px;color:var(--three-level-menu-search-tag-color);margin-right:8px}.three-level-menu-search-history-title{color:#8c8c8c;margin:10px 0;display:flex;align-items:center}.three-level-menu-search-history-icon{margin-left:5px}.sub-menu-sit-map-wrapper{box-sizing:border-box;width:calc(100vw);padding:0 120px 24px;max-height:520px;background-color:var(--antd-dropdown-menu-bg);border-radius:6px;box-shadow:0px 4px 12px 0px rgba(17,37,64,0.08);overflow-x:hidden;overflow-y:auto}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.group .item-link, .custom-group .item-link{font-weight:400}.group .item-link:hover, .custom-group .item-link:hover{background-color:var(--color-fill-bg-base-1)}.group .item-link:hover::part(link), .custom-group .item-link:hover::part(link){color:var(--color-brand-hover)}.group .item-link:hover::part(icon), .custom-group .item-link:hover::part(icon){color:var(--color-brand-hover)}.group .item-link.active::part(link),\n .custom-group .item-link.active::part(link),\n .group .item-link.active::part(icon),\n .custom-group .item-link.active::part(icon){color:var(--palette-blue-8)}.group .item-link::part(link), .custom-group .item-link::part(link){padding:8px 12px;display:flex;gap:4px;color:var(--color-header-text)}.group .item-link::part(icon), .custom-group .item-link::part(icon){color:var(--color-normal-text)}.group .title, .custom-group .title{padding:8px 16px;font-size:16px;font-weight:500;position:relative}.group .title::before, .custom-group .title::before{content:\"\";position:absolute;width:6px;height:6px;top:17px;left:1px;transform:rotate(45deg);background:var(--color-secondary-text)}.group .content .icon-wrapper, .custom-group .content .icon-wrapper, .group .custom-content .icon-wrapper, .custom-group .custom-content .icon-wrapper{color:var(--color-secondary-text);font-size:16px;display:none;margin-left:auto}.group .content .item-link:hover .icon-wrapper, .custom-group .content .item-link:hover .icon-wrapper, .group .custom-content .item-link:hover .icon-wrapper, .custom-group .custom-content .item-link:hover .icon-wrapper{display:block}.group .content .item-link:hover .icon-wrapper:hover, .custom-group .content .item-link:hover .icon-wrapper:hover, .group .custom-content .item-link:hover .icon-wrapper:hover, .custom-group .custom-content .item-link:hover .icon-wrapper:hover{color:var(--color-brand-hover)}.group .content, .custom-group .content{display:flex;flex-direction:column}.group .group-item, .custom-group .group-item{page-break-inside:avoid;break-inside:avoid}.group-view{min-height:300px}.group-view .divider{height:2px;background:var(--color-text-divider-line);margin:16px 0}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.tag-container::part(link){display:flex;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-moz-user-select:none;justify-content:space-between;background-color:var(--color-fill-bg-base-1);border-radius:2px;padding:1px 6px}.tag-container .tag-text{color:var(--color-normal-text);font-weight:400}.tag-container:hover .tag-text{color:var(--color-brand-hover)}.tag-container .tag-suffix{display:inline-flex;font-size:12px;gap:4px;align-items:center;color:var(--color-secondary-text)}.tag-container.is-drag{opacity:0.4}.indicate-wrapper{border:1px dashed var(--color-brand-hover);border-radius:4px;height:20px;margin:2px 0}.close{display:inline-flex;margin-top:2px;padding:0 2px}.close:hover{color:var(--color-error)}.drag-wrapper{cursor:move}.drag-wrapper:hover{color:var(--color-brand-hover)}.star-icon{display:flex;alignitems:center;color:var(--color-secondary-text)}.star-icon:hover{color:var(--color-brand-hover)}.star-icon .active{color:var(--palette-yellow-6)}.recommend-container:hover .star{display:inline-flex}.recommend-container .star{font-size:13px;display:none}.visit-container:hover .operation{display:inline-flex;align-items:center}.visit-container .operation{display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.site-map .search-wrapper{position:-webkit-sticky;position:sticky;top:0;z-index:9999;padding-top:24px;padding-bottom:16px;background:var(--antd-dropdown-menu-bg)}.site-map .search-input::part(affix-wrapper){border:none;border-bottom:1px solid var(--antd-input-border-color);border-radius:0px}.site-map .visit-access .title, .site-map .search-panel .title{display:inline-block;padding:2px 16px;font-weight:500;line-height:24px;position:relative}.site-map .visit-access .title::before, .site-map .search-panel .title::before{content:\"\";position:absolute;width:6px;height:6px;top:10px;left:1px;border-radius:50%;background:var(--color-secondary-text)}.site-map .visit-access .no-data-tips, .site-map .search-panel .no-data-tips{display:flex;margin:16px 0 32px;align-items:center;justify-content:center;color:var(--color-secondary-text)}.site-map .visit-access{margin-bottom:8px}.site-map .visit-access.hasData{display:flex}.site-map .visit-access .tag-wrapper{flex:1;display:grid;grid-template-columns:repeat(auto-fit,200px);grid-gap:8px;gap:8px}.site-map .ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.site-map .search-panel .recommend-wrapper{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fit,200px);grid-gap:8px;gap:8px}:host-context(html[data-theme=\"dark-v2\"]) .site-map .search-input::part(affix-wrapper), :host-context([data-override-theme=\"dark-v2\"]) .site-map .search-input::part(affix-wrapper){background:var(--antd-dropdown-menu-bg)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","export default function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}","export default function _classExtractFieldDescriptor(receiver, privateMap, action) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n }\n return privateMap.get(receiver);\n}","import classApplyDescriptorGet from \"./classApplyDescriptorGet.js\";\nimport classExtractFieldDescriptor from \"./classExtractFieldDescriptor.js\";\nexport default function _classPrivateFieldGet(receiver, privateMap) {\n var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"get\");\n return classApplyDescriptorGet(receiver, descriptor);\n}","export default function _classApplyDescriptorGet(receiver, descriptor) {\n if (descriptor.get) {\n return descriptor.get.call(receiver);\n }\n return descriptor.value;\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateFieldInitSpec(obj, privateMap, value) {\n checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}","import classApplyDescriptorSet from \"./classApplyDescriptorSet.js\";\nimport classExtractFieldDescriptor from \"./classExtractFieldDescriptor.js\";\nexport default function _classPrivateFieldSet(receiver, privateMap, value) {\n var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"set\");\n classApplyDescriptorSet(receiver, descriptor, value);\n return value;\n}","export default function _classApplyDescriptorSet(receiver, descriptor, value) {\n if (descriptor.set) {\n descriptor.set.call(receiver, value);\n } else {\n if (!descriptor.writable) {\n throw new TypeError(\"attempted to set read only private field\");\n }\n descriptor.value = value;\n }\n}","import { Location, parsePath } from \"history\";\nimport { matchPath } from \"@next-core/runtime\";\nimport type {\n SidebarMenuSimpleItem,\n SidebarMenuItem,\n SidebarMenuGroup,\n} from \"./types.js\";\n\nexport function isGroup(item: SidebarMenuItem): item is SidebarMenuGroup {\n return item.type === \"group\";\n}\n\nexport function isSubMenu(\n item: SidebarMenuItem,\n groupAsSubMenu?: boolean\n): item is SidebarMenuGroup {\n return Boolean(\n item.type === \"subMenu\" || (groupAsSubMenu && item.type === \"group\")\n );\n}\n\nexport function initMenuItemAndMatchCurrentPathKeys(\n menuItems: SidebarMenuItem[],\n pathname: string,\n search: string,\n parentCursor: string\n): {\n selectedKeys: string[];\n openedKeys: string[];\n} {\n const selectedKeys: string[] = [];\n const openedKeys: string[] = [];\n\n let cursor = 0;\n menuItems.forEach((item) => {\n // key的格式最终为0,1,2,0.1,0.2,0.1.1,0.1.2\n item.key = parentCursor === \"\" ? `${cursor}` : `${parentCursor}.${cursor}`;\n if (isGroup(item) || isSubMenu(item)) {\n const tmp = initMenuItemAndMatchCurrentPathKeys(\n item.items,\n pathname,\n search,\n item.key\n );\n selectedKeys.push(...tmp.selectedKeys);\n if (tmp.selectedKeys.length || item.defaultExpanded) {\n openedKeys.push(item.key);\n }\n openedKeys.push(...tmp.openedKeys);\n } else {\n if (matchMenuItem(item, pathname, search)) {\n selectedKeys.push(String(item.key));\n }\n }\n cursor += 1;\n });\n if (selectedKeys.length && parentCursor !== \"\") {\n openedKeys.push(parentCursor);\n }\n return {\n selectedKeys: selectedKeys,\n openedKeys: openedKeys,\n };\n}\n\nfunction getMatchOfSearch(\n currentSearch: string,\n toSearch: string | undefined\n): boolean {\n const current = new URLSearchParams(currentSearch);\n const to = new URLSearchParams(toSearch);\n for (const [key, value] of to.entries()) {\n if (current.get(key) !== value) {\n return false;\n }\n }\n return true;\n}\n\nexport function matchMenuItem(\n item: SidebarMenuSimpleItem,\n pathname: string,\n search: string\n): boolean {\n if (!item.to) return false;\n const to = typeof item.to === \"object\" ? item.to : parsePath(item.to);\n\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath = to.pathname!.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n let match = !!matchPath(pathname, {\n path: escapedPath,\n exact: item.exact,\n });\n\n if (!match && Array.isArray(item.activeIncludes)) {\n for (const include of item.activeIncludes) {\n let parseInclude: Location | undefined;\n const hasSearch = include.includes(\"?\");\n\n if (hasSearch) {\n parseInclude = parsePath(include);\n }\n match = !!matchPath(pathname, {\n path: hasSearch ? parseInclude!.pathname : include,\n exact: true,\n });\n\n if (match && parseInclude?.search) {\n match = getMatchOfSearch(search, parseInclude.search);\n }\n\n if (match) {\n break;\n }\n }\n }\n\n if (match && Array.isArray(item.activeExcludes)) {\n for (const include of item.activeExcludes) {\n match = !matchPath(pathname, {\n path: include,\n exact: true,\n });\n if (!match) {\n break;\n }\n }\n }\n\n if (match && (item as any).activeMatchSearch) {\n match = getMatchOfSearch(search, to.search);\n }\n\n return match;\n}\n"],"names":["initializeReactI18n","NS","locales","WrappedPopover","wrapBrick","WrappedSearch","onChange","onSearch","WrappedIcon","LOCAL_STORAGE_PREFIX","maxVisitorLength","ThreeLevelMenuPopoverContent","props","useTranslation","menuItem","selectedKey","items","searchResult","setSearchResult","useState","searchKey","setSearchKey","triggerRef","useRef","nameSpace","concat","title","storage","useMemo","JsonStorage","localStorage","searchHistory","getItem","popoverTriggerClick","_triggerRef$current","current","click","React","className","onClick","e","stopPropagation","placeholder","t","K","SEARCH_BY_MENU_NAME","detail","list","uniq","length","pop","setItem","flatMap","i","filter","text","toLowerCase","includes","trim","onFocus","onBlur","trigger","placement","anchorDisplay","distance","slot","ref","map","renderLinkCom","width","style","height","textAlign","lineHeight","NO_DATA","SEARCH_HISTORY","lib","theme","icon","h","key","gridTemplateColumns","item","index","_item$items","classnames","active","en","QUICK_ACCESS","REMOVE_ITEM_FROM_QUICK_ACCESS","ADD_ITEM_TO_QUICK_ACCESS","NO_DATA_TIPS_IN_QUICK_ACCESS","SITE_MAP_SEARCH_RECOMMEND","MAX_COLLECT_COUNT_TIPS","NO_DATA_SEARCH_INFO","SEARCH_ITEM_PLACEHOLDER","zh","DRAG_DIRECTION","DragContext","collectService","constructor","maxCollectLength","_defineProperty","this","getCategoryId","id","storageKey","getFavoritesById","setItemAsFavorite","unshift","equalItem","prevItem","to","removeItemFromFavorite","findIndex","row","splice","isCollected","some","toggleFavorite","checkMaxCapacity","moveFavoriteTo","option","from","direction","fromIndex","toIndex","Left","groupId","WrappedLink","WrappedTooltip","PlaceholderDropComp","_ref","data","onDragOver","onFavoriteUpdate","useContext","onDragEnter","target","background","onDragLeave","onDrop","formData","JSON","parse","dataTransfer","getData","newDataList","ItemTag","suffix","allowDrag","onDragStart","overElement","onDragEnd","containerRef","isDragIng","setIsDragIng","isActive","dataset","draggable","_e$dataTransfer","setData","stringify","preventDefault","dropEffect","classNames","url","href","Right","QuickVisitItem","onAllowDrag","onFavorite","suffixRef","handleRemove","useCallback","handleMouseDown","useEffect","handleClick","addEventListener","removeEventListener","suffixGroups","content","hoist","onMouseDown","StarIcon","_ref2","iconRef","_extends","RecommendItem","walkMenuItem","type","Array","isArray","walkMenuItems","push","itemColumnWidth","GroupView","groups","groupCategoryMap","categoryOrder","groupMenus","Map","Set","forEach","_item$groupFrom","groupFrom","add","value","get","set","DefaultGroup","CustomGroup","groupRef","columnCount","setColumnCount","resizeObserver","ResizeObserver","entries","entry","contentRect","Math","floor","observe","disconnect","columnWidth","display","group","GroupItem","WrappedInput","onValueChange","SiteMapItem","menuGroup","favoriteList","setFavoriteList","flatItems","flatMenuItems","q","setQ","setFilters","dragElement","setDragElement","setOverElement","setAllowDrag","setDirection","handleFavorite","collectList","handleSearch","v","debouncedHandleSearch","debounce","handleDragOver","throttle","dropElement","element","node","parentElement","findDropElement","isValidDragAction","left","getBoundingClientRect","right","clientX","undefined","hasData","Provider","handleDragEnd","enable","WrappedLinkItem","isGroup","isSubMenu","groupAsSubMenu","Boolean","linkStyle","renderSpanCom","subMenu","___CSS_LOADER_EXPORT___","module","toString","_checkPrivateRedeclaration","obj","privateCollection","has","TypeError","_classExtractFieldDescriptor","receiver","privateMap","action","_classPrivateFieldGet","descriptor","call","classExtractFieldDescriptor","_classPrivateFieldInitSpec","_classPrivateFieldSet","writable","initMenuItemAndMatchCurrentPathKeys","menuItems","pathname","search","parentCursor","selectedKeys","openedKeys","cursor","tmp","defaultExpanded","parsePath","escapedPath","replace","match","matchPath","path","exact","activeIncludes","include","_parseInclude","parseInclude","hasSearch","getMatchOfSearch","activeExcludes","_include","activeMatchSearch","matchMenuItem","String","currentSearch","toSearch","URLSearchParams"],"sourceRoot":""}
@@ -1,3 +1,3 @@
1
- /*! For license information please see 9102.26b8ee38.js.LICENSE.txt */
2
- "use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[9102],{5863:(e,t,n)=>{function r(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}n.d(t,{Z:()=>r})},175:(e,t,n)=>{function r(e,t,n){if(!t.has(e))throw new TypeError("attempted to "+n+" private field on non-instance");return t.get(e)}n.d(t,{Z:()=>r})},687:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(175);function i(e,t){return function(e,t){return t.get?t.get.call(e):t.value}(e,(0,r.Z)(e,t,"get"))}},3395:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(5863);function i(e,t,n){(0,r.Z)(e,t),t.set(e,n)}},381:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(175);function i(e,t,n){return function(e,t,n){if(t.set)t.set.call(e,n);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=n}}(e,(0,r.Z)(e,t,"set"),n),n}},6171:(e,t,n)=>{function r(e,t,n){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return n}n.d(t,{Z:()=>r})},5866:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(5863);function i(e,t){(0,r.Z)(e,t),t.add(e)}},9740:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(1461);function i(e,t){if(null==e)return{};var n,i,a=(0,r.Z)(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}},9102:(e,t,n)=>{n.r(t),n.d(t,{analytics:()=>u,auth:()=>yt,checkInstalledApps:()=>i,checkPermissions:()=>ht,flowApi:()=>a,menu:()=>o,messageDispatcher:()=>mt});var r={};n.r(r),n.d(r,{authenticate:()=>y,getAuth:()=>g,isLoggedIn:()=>Z,logout:()=>w});var i={};n.r(i),n.d(i,{getCheckedApp:()=>ce,preCheckInstalledApps:()=>ae,waitForCheckingApps:()=>oe});var a={};n.r(a),n.d(a,{FLOW_API_PROVIDER:()=>pe,clearCollectWidgetContract:()=>Ie,collectContract:()=>Se,collectWidgetContract:()=>be,getArgsOfFlowApi:()=>ke,isFlowApiProvider:()=>Oe,registerFlowApiProvider:()=>he});var o={};n.r(o),n.d(o,{fetchMenuById:()=>tt,getMenuById:()=>et});var s={};n.r(s),n.d(s,{onRequest:()=>lt,onResponse:()=>pt,onResponseError:()=>dt});var c={};n.r(c),n.d(c,{create:()=>vt});var u={};n.r(u),n.d(u,{http:()=>s,initialize:()=>ct,pageView:()=>c});var l=n(4795),p=n(5178),d=n(6750),f=n(3352),v=function(){var e=(0,l.Z)((function*(e,t){return(yield f.http.post("api/gateway/micro_app.permission.ValidatePermissions/api/micro_app/v1/permission/validate",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}(),h=n(3028),m={};function y(e){Object.assign(m,{org:e.org,username:e.username,userInstanceId:e.userInstanceId,loginFrom:e.loginFrom,accessRule:e.accessRule,isAdmin:e.isAdmin,csrfToken:e.csrfToken,license:e.license,userShowValue:e.userShowValue})}function g(){return(0,h.Z)({},m)}function w(){for(var e of Object.keys(m))m[e]=void 0;S.length=0,b.clear()}function Z(){return void 0!==m.username}var S=[],b=new Map;function I(){return(I=(0,l.Z)((function*(e,t){if(Z()&&!g().isAdmin&&Array.isArray(e.permissionsPreCheck))return O(yield t(e.permissionsPreCheck))}))).apply(this,arguments)}function A(e){if(Z()&&!g().isAdmin)return O((0,d.scanPermissionActionsInAny)(e))}function O(e){return k.apply(this,arguments)}function k(){return(k=(0,l.Z)((function*(e){var t=(0,p.difference)(e,[...S]);if(0!==t.length){S.push(...t);try{var n=yield v({actions:t});for(var r of n.actions)b.set(r.action,r.authorizationStatus),"undefined"===r.authorizationStatus&&console.error('Undefined permission action: "'.concat(r.action,'"'))}catch(e){console.error("Pre-check permissions failed",e)}}}))).apply(this,arguments)}var M=n(5866),E=n(3395),P=n(6171),_=n(381),C=n(687),N=n(3712),T=1e3,j=6,R=new WeakMap,D=new WeakMap,W=new WeakMap,L=new WeakMap,U=new WeakMap,B=new WeakMap,x=new WeakMap,F=new WeakSet,q=new WeakSet;class z{constructor(e){(0,M.Z)(this,q),(0,M.Z)(this,F),(0,E.Z)(this,R,{writable:!0,value:void 0}),(0,E.Z)(this,D,{writable:!0,value:void 0}),(0,E.Z)(this,W,{writable:!0,value:[]}),(0,E.Z)(this,L,{writable:!0,value:new Set}),(0,E.Z)(this,U,{writable:!0,value:new Set}),(0,E.Z)(this,B,{writable:!0,value:0}),(0,E.Z)(this,x,{writable:!0,value:!1}),(0,_.Z)(this,R,e)}send(e){(0,C.Z)(this,D)||(0,_.Z)(this,D,(0,P.Z)(this,F,G).call(this));var t=JSON.stringify(e);(0,C.Z)(this,D).readyState===WebSocket.OPEN?(0,C.Z)(this,D).send(t):(0,C.Z)(this,W).push(t)}onMessage(e){(0,C.Z)(this,L).add(e)}onClose(e){(0,C.Z)(this,U).add(e)}reset(){(0,C.Z)(this,W).length=0,(0,C.Z)(this,L).clear(),(0,C.Z)(this,U).clear()}close(){var e;(0,_.Z)(this,x,!0),(null===(e=(0,C.Z)(this,D))||void 0===e?void 0:e.readyState)===WebSocket.OPEN&&(0,C.Z)(this,D).close()}}function G(){console.log("WebSocket connecting ...");var e=new WebSocket((0,C.Z)(this,R));return e.addEventListener("open",(t=>{for(var n of(console.log("WebSocket open:",t),(0,_.Z)(this,B,0),(0,C.Z)(this,W)))e.send(n);(0,C.Z)(this,W).length=0})),e.addEventListener("close",(e=>{if(!(0,C.Z)(this,x)){for(var t of(console.log("WebSocket close:",e),(0,C.Z)(this,U)))t();1e3!==e.code&&(0,P.Z)(this,q,J).call(this)}})),e.addEventListener("error",(e=>{console.error("WebSocket error:",e)})),e.addEventListener("message",(e=>{var t=JSON.parse(e.data);for(var n of(0,C.Z)(this,L))n(t)})),e}function J(){if((0,C.Z)(this,B)>=j)console.error("WebSocket connect retry limit exceeded");else{var e=Math.pow(2,(0,C.Z)(this,B))*T;console.log("WebSocket will reconnect after %d seconds",e/1e3),setTimeout((()=>{var e;(0,_.Z)(this,B,(e=(0,C.Z)(this,B),++e)),(0,_.Z)(this,D,(0,P.Z)(this,F,G).call(this))}),e)}}var H=new WeakMap,V=new WeakMap,Y=new WeakMap,$=new WeakMap,K=new WeakSet;function Q(){if(!(0,C.Z)(this,H)){var e="https:"===location.protocol?"wss:":"ws:",t="".concat(e,"//").concat(window.location.host).concat((0,N.getBasePath)(),"api/websocket_service/v1/ws");(0,_.Z)(this,H,new z(t))}return(0,C.Z)(this,H)}function X(e,t,n,r){var i=(0,C.Z)(this,V)[e].get(r);if(i)return i;var a={event:"sub"===e?"TOPIC.SUB":"TOPIC.UNSUB",payload:n},o=new Promise(((t,r)=>{var i=ee(n);(0,C.Z)(this,$).onMessage((n=>{var a=n.event===("sub"===e?"TOPIC.SUB_SUCCESS":"TOPIC.UNSUB_SUCCESS"),o=n.event===("sub"===e?"TOPIC.SUB_FAILED":"TOPIC.UNSUB_FAILED");(a||o)&&i===ee(n.payload)&&(a?t:r)(n)})),(0,C.Z)(this,$).send(a)}));return"sub"===e&&(0,C.Z)(this,Y).set(t,r),(0,C.Z)(this,V)[e].set(r,o),o}function ee(e){var{system:t,topic:n}=e;return JSON.stringify({system:t,topic:n})}var te=n(9751),ne=function(){var e=(0,l.Z)((function*(e,t){return(yield te.http.post("api/gateway/micro_app_standalone.runtime.SearchMicroAppStandalone/api/v1/micro_app_standalone/search",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}(),re=new Map,ie=new Map;function ae(e,t){if(window.STANDALONE_MICRO_APPS&&!window.NO_AUTH_GUARD){var n=function(e){var t,n={usedArgs:new Set},{customTemplates:r,menus:i}=null!==(t=e.meta)&&void 0!==t?t:{};return(0,d.traverseStoryboardExpressions)([e.routes,r,i],((e,t)=>{(0,d.collectInstalledAppsHasUsage)(n,e,t)}),"INSTALLED_APPS"),[...n.usedArgs]}(e),r=[];for(var i of n)re.has(i)||t(i)||r.push(i);if(0===r.length)return;var a=ne({query:{appId:{$in:r}},fields:["appId","currentVersion","installStatus"]}).catch((e=>{console.error("Get off site standalone micro-apps failed",e)})),o=function(e){re.set(e,a.then((t=>{var n,r=null==t||null===(n=t.list)||void 0===n?void 0:n.find((t=>t.appId===e)),i=r?(0,h.Z)((0,h.Z)({},r),{},{id:e}):void 0;return ie.set(e,i),i})))};for(var s of r)o(s)}}function oe(e){return se.apply(this,arguments)}function se(){return(se=(0,l.Z)((function*(e){yield Promise.all(e.map((e=>re.get(e))))}))).apply(this,arguments)}function ce(e){if(window.STANDALONE_MICRO_APPS)return ie.get(e)}var ue=n(2307),le=n(6777),pe="core.provider-flow-api";function de(e,t){return e.some((e=>e.source===t))}function fe(e){return ve.apply(this,arguments)}function ve(){return ve=(0,l.Z)((function*(e){for(var t,{url:n,originalUri:r,method:i="GET",responseWrapper:a=!0,ext_fields:o=[],request:s,isFileType:c}=e,u=["get","delete","head"].includes(i.toLowerCase()),l=c?{responseType:"blob"}:{},d=arguments.length,f=new Array(d>1?d-1:0),v=1;v<d;v++)f[v-1]=arguments[v];if(u){var m,y,g,w,Z,S;r&&"object"===(null==s?void 0:s.type)&&(null!==(m=null===(y=r.match(/:([^/]+)/g))||void 0===y?void 0:y.length)&&void 0!==m?m:0)===(null!==(g=null===(w=s.fields)||void 0===w?void 0:w.length)&&void 0!==g?g:0)?[S]=f:[Z,S]=f,t=yield le.http.simpleRequest(i,n,(0,h.Z)((0,h.Z)({params:Z},l),S))}else{var b=function(e){if(!e||"object"!==e.type)return!1;var t=e=>!(0,p.isEmpty)(e)&&e.some((e=>["file","file[]"].includes(e.type)||t(e.fields)));return t(e.fields)}(s),I=function(e){for(var t=de(e,"query"),n=de(e,"body"),r=arguments.length,i=new Array(r>1?r-1:0),a=1;a<r;a++)i[a-1]=arguments[a];if(t){if(n){var[o,s,c]=i;return{data:o,options:(0,h.Z)({params:s},c)}}var[u,l]=i;return{data:{},options:(0,h.Z)({params:u},l)}}var[p,d]=i;return{data:p,options:d}}(o,...f);t=yield le.http.requestWithBody(i,n,b?function(e){if(e instanceof FormData)return e;var t=new FormData,n=function(e){Array.isArray(i)?i.forEach((n=>{t.append(e,n)})):!(0,p.isObject)(i)||i instanceof Blob||i instanceof Date?t.append(e,i):Object.entries(i).forEach((n=>{var[r,i]=n;t.append("".concat(e,"[").concat(r,"]"),i)}))};for(var[r,i]of Object.entries(e))n(r);return t}(I.data):I.data,(0,h.Z)((0,h.Z)({},l),I.options))}return!c&&a?t.data:t})),ve.apply(this,arguments)}function he(){customElements.define(pe,(0,ue.createProviderClass)(fe))}var me=n(9169),ye=function(){var e=(0,l.Z)((function*(e,t){return(yield f.http.post("api/contract/single_search",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}(),ge=new Map,we=new Map,Ze=(e,t)=>{null==e||e.forEach((e=>{t.set("".concat(e.namespaceId,".").concat(e.name),e)}))};function Se(e){Ze(e,ge)}function be(e){Ze(e,we)}function Ie(){we.clear()}var Ae=new Map;function Oe(e){return e.includes("@")}function ke(e,t,n){return Me.apply(this,arguments)}function Me(){return Me=(0,l.Z)((function*(e,t,n){if(!e.includes(":"))throw new Error("You're using legacy Custom API \"".concat(e,'" which is dropped in v3, please use Flow API instead'));var r=yield function(e){var t=Ae.get(e);return t||(t=function(e){return Ee.apply(this,arguments)}(e),Ae.set(e,t)),t}(e);if(!r)throw new Error('Flow API not found: "'.concat(e,'"'));var i=function(e,t){var n,r,i="string"==typeof t.contract?me.safeLoad(t.contract,{schema:me.JSON_SCHEMA,json:!0}):t.contract,{uri:a,method:o="GET",ext_fields:s}=null!==(n=null==i?void 0:i.endpoint)&&void 0!==n?n:{},c=!(null==i||!i.response)&&!1!==i.response.wrapper;if(!a)throw new Error('Missing endpoint.uri in contract of provider "'.concat(e,'"'));return{uri:a,method:"list"===o.toLowerCase()?"get":o,ext_fields:s,name:t.name,namespace:t.namespace,serviceName:t.serviceName,version:t.version,isFileType:"file"===(null==i||null===(r=i.response)||void 0===r?void 0:r.type),responseWrapper:c,request:null==i?void 0:i.request}}(e,r);return function(e,t,n){var r,{uri:i,method:a,ext_fields:o,name:s,namespace:c,serviceName:u,responseWrapper:l,version:p,isFileType:d,request:f}=e,v=d&&"saveAs"===n;v&&(r=t.shift());var{url:h,args:m}=function(e,t,n,r,i,a){var o=a?i?"api/gateway/".concat(i):"api/gateway/".concat(r,".").concat(n,"@").concat(a):"api/gateway/api_service.".concat(r,".").concat(n),s=t.slice();return{url:o+e.replace(/:([^/]+)/g,(()=>s.shift())),args:s}}(i,t,s,c,u,p);return[...v?[r]:[],{url:h,originalUri:i,method:a,ext_fields:o,responseWrapper:l,request:f,isFileType:d},...m]}(i,t,n)})),Me.apply(this,arguments)}function Ee(){return(Ee=(0,l.Z)((function*(e){var[t,n]=e.split("@"),[r,i]=n.split(":"),a=function(e){return ge.get(e)||we.get(e)}("".concat(t,".").concat(r));if(a)return{name:a.name,namespace:a.namespaceId,serviceName:a.serviceName,version:a.version,contract:{endpoint:a.endpoint,response:a.response,request:a.request}};var o,{contractData:s}=yield ye({contractName:"".concat(t,".").concat(r),version:i});return s?{name:s.name,namespace:null===(o=s.namespace)||void 0===o||null===(o=o[0])||void 0===o?void 0:o.name,serviceName:s.serviceName,version:s.version,contract:{endpoint:s.endpoint,response:s.response,request:s.request}}:void 0}))).apply(this,arguments)}var Pe=n(9740),_e=function(){var e=(0,l.Z)((function*(e,t,n){return(yield te.http.post("api/gateway/cmdb.instance.PostSearch/object/".concat(e,"/instance/_search"),t,n)).data}));return function(t,n,r){return e.apply(this,arguments)}}(),Ce=function(){var e=(0,l.Z)((function*(e,t,n){return(yield f.http.get("api/gateway/micro_app.installed_micro_app.GetMenusInfo/api/v1/micro-app/menus/".concat(e),(0,h.Z)((0,h.Z)({},n),{},{params:t}))).data}));return function(t,n,r){return e.apply(this,arguments)}}(),Ne=n(420),Te=Symbol("appId"),je=Symbol("menuI18nNamespace"),Re=Symbol("overrideApp");function De(){return(De=(0,l.Z)((function*(e,t,n,r){if(e.dynamicItems&&e.itemsResolve){var i=e.app[0].appId,a=t;if(i!==t.app.id){var o,s=window.STANDALONE_MICRO_APPS?e.overrideApp:null===(o=r.getStoryboardByAppId(i))||void 0===o?void 0:o.app;a=(0,h.Z)((0,h.Z)({},t),{},{overrideApp:s,appendI18nNamespace:n.get(e)})}var c=yield r.resolveData((0,h.Z)({transform:"items"},e.itemsResolve),a);e.items=c.items}}))).apply(this,arguments)}function We(){return We=(0,l.Z)((function*(e,t,n){var r=e.find((e=>"inject"!==e.type));if(r){var i=[],a=new Map,o=new WeakMap,s=function*(){if(c.i18n){var e="menu/".concat(c.menuId,"~").concat(c.app[0].appId,"+").concat(c.instanceId);Object.entries(c.i18n).forEach((t=>{var[n,r]=t;Ne.i18n.addResourceBundle(n,e,r)})),o.set(c,e)}};for(var c of e)yield*s();for(var u of(yield Promise.all(e.map((e=>function(e,t,n,r){return De.apply(this,arguments)}(e,t,o,n)))),e)){var l;if(null!==(l=u.items)&&void 0!==l&&l.length)if("inject"===u.type&&u.injectMenuGroupId){var p=a.get(u.injectMenuGroupId);p||(p=[],a.set(u.injectMenuGroupId,p)),p.push(u)}else i.push(u)}return(0,h.Z)((0,h.Z)({},r),{},{items:i.flatMap((e=>Le(e.items,e,a,o))),[je]:o.get(r),[Re]:r.overrideApp})}})),We.apply(this,arguments)}function Le(e,t,n,r){return null==e?void 0:e.map((e=>{var i,a=e.groupId&&n.get(e.groupId);return a&&n.delete(e.groupId),(0,h.Z)((0,h.Z)({},e),{},{children:(null!==(i=Le(e.children,t,n,r))&&void 0!==i?i:[]).concat(a?a.flatMap((e=>Le(e.items,e,n,r))):[]),[Te]:t.app[0].appId,[je]:r.get(t),[Re]:t.overrideApp})}))}function Ue(e){e.items=Be(e.items)}function Be(e){return function(e){return(0,p.sortBy)(e,(e=>{var t;return null!==(t=e.sort)&&void 0!==t?t:-1/0}))}(e).map((e=>(0,h.Z)((0,h.Z)({},e),{},{children:Be(e.children)})))}var xe=n(4415),Fe=n(5506),qe=["children"];function ze(e,t,n,r){if("titleDataSource"in e&&(0,ue.isObject)(e.titleDataSource)&&Object.entries(e.titleDataSource).every((e=>{var[t,n]=e;return null===n||""===n}))&&delete e.titleDataSource,"if"in e&&null===e.if&&delete e.if,"to"in e&&e.to&&!(0,Fe.isEvaluable)(e.to)){var i=xe.pipes.yaml(e.to);(0,ue.isObject)(i)&&["pathname","search","hash"].some((e=>(0,ue.hasOwnProperty)(i,e)))&&(e.to=i)}var a=n;if(t!==n.app.id){var o,s=window.STANDALONE_MICRO_APPS?e[Re]:null===(o=r.getStoryboardByAppId(t))||void 0===o?void 0:o.app;a=(0,h.Z)((0,h.Z)({},n),{},{overrideApp:s,appendI18nNamespace:e[je]})}return r.asyncComputeRealValue(e,a,{ignoreSymbols:!0})}function Ge(e,t,n){return Promise.all(e.map(function(){var e=(0,l.Z)((function*(e){var{children:r}=e,i=(0,Pe.Z)(e,qe),[a,o]=yield Promise.all([ze(i,i[Te],t,n),r&&(yield Ge(r,t,n))]);return(0,h.Z)((0,h.Z)({},a),{},{children:o})}));return function(t){return e.apply(this,arguments)}}()))}var Je=function(){var e=(0,l.Z)((function*(e,t,n,r){return(yield te.http.get("api/gateway/cmdb.instance.GetDetail/object/".concat(e,"/instance/").concat(t),(0,h.Z)((0,h.Z)({},r),{},{params:n}))).data}));return function(t,n,r,i){return e.apply(this,arguments)}}(),He=new Map;function Ve(e){return Ye.apply(this,arguments)}function Ye(){return(Ye=(0,l.Z)((function*(e){if(e.title||(0,p.isEmpty)(e.titleDataSource))return e.title;var t=JSON.stringify(e.titleDataSource);if(He.has(t))return He.get(t);var n,{objectId:r,instanceId:i,attributeId:a}=e.titleDataSource,o=null!=a?a:"name",s=yield Je(r,i,{fields:o});if("#showKey"===a&&Array.isArray(s[o])){var[c,...u]=s[o];n=u.length>0?"".concat(c,"(").concat(u.join(","),")"):String(c)}else n=String(s[o]);return He.set(t,n),n}))).apply(this,arguments)}var $e=["items","app"],Ke=new Map,Qe=new Map;function Xe(e){return null==e?void 0:e.filter(N.checkIfOfComputed).map((e=>{var t=Xe(e.children);return"group"===e.type?{type:"group",title:e.text,childLayout:e.childLayout,items:t}:null!=t&&t.length?{type:"subMenu",childLayout:e.childLayout,title:e.text,icon:e.icon,items:t,defaultExpanded:e.defaultExpanded}:e}))}function et(e){return Qe.get(e)}function tt(e,t,n){var r=Ke.get(e);return r||(r=function(e,t,n){return nt.apply(this,arguments)}(e,t,n)),r}function nt(){return nt=(0,l.Z)((function*(e,t,n){var r=window.STANDALONE_MICRO_APPS?function(e,t,n){var r,i,a,o,s=n.getStoryboardByAppId(t);return(null!==(r=null!==(i=null===(a=s.meta)||void 0===a?void 0:a.injectMenus)&&void 0!==i?i:null===(o=s.meta)||void 0===o?void 0:o.menus)&&void 0!==r?r:[]).filter((t=>t.menuId===e)).map((e=>{var n;return(0,h.Z)((0,h.Z)({},e),null!==(n=e.app)&&void 0!==n&&null!==(n=n[0])&&void 0!==n&&n.appId?{}:{app:[{appId:t}]})}))}(e,t.app.id,n):t.flags["three-level-menu-layout"]?(yield Ce(e,{menuObjectId:"EASYOPS_STORYBOARD_MENU"})).menus:(yield _e("EASYOPS_STORYBOARD_MENU",{page:1,page_size:200,fields:{menuId:!0,title:!0,icon:!0,link:!0,titleDataSource:!0,defaultCollapsed:!0,defaultCollapsedBreakpoint:!0,type:!0,injectMenuGroupId:!0,dynamicItems:!0,itemsResolve:!0,items:!0,i18n:!0,"items.children":!0,"app.appId":!0},query:{menuId:{$eq:e},app:{$size:{$gt:0}}}})).list,i=yield function(e,t,n){return We.apply(this,arguments)}(r,t,n);if(!i)throw new Error("Menu not found: ".concat(e));Ue(i);var{items:a,app:o}=i,s=(0,Pe.Z)(i,$e),c=(0,h.Z)((0,h.Z)({},t),{},{pendingPermissionsPreCheck:[...t.pendingPermissionsPreCheck,A([a,s])]});delete c.tplStateStoreId,delete c.forEachItem,delete c.forEachIndex;var u=o[0].appId,[l,d]=yield Promise.all([ze(s,u,c,n),Ge(a,c,n)]),f=(0,h.Z)((0,h.Z)({title:yield Ve(l)},(0,p.pick)(l,["icon","link","defaultCollapsed","defaultCollapsedBreakpoint"])),{},{menuItems:Xe(d)});Qe.set(e,f)})),nt.apply(this,arguments)}var rt=!1,it=null,at=!0,ot=[],st=[];function ct(e){rt||(rt=!0,window.addEventListener("beforeunload",(function(){if(0!==st.length){var t={model:"easyops.FRONTEND_STAT",columns:["_ver","st","et","lt","size","time","traceId","code","duration","page","uid","username","api","type","msg","status","pageId","route","apiCount","maxApiTimeCost","apiSizeCost","pageTitle"],data:st},n=new Blob([JSON.stringify(t)],{type:"application/json"});st.length=0,window.navigator.sendBeacon(e,n)}}),!1))}var ut=Symbol("HttpAnalytics");function lt(e){var t=Math.round(performance.now()),n=Date.now();return e[ut]={st:n,time:Math.round(n/1e3),perfStartTime:t},e}function pt(e,t){return ft(!1,e,t)}function dt(e,t){return ft(!0,e,t)}function ft(e,t,n){var r,i=Math.round(performance.now()),a=Date.now(),{[ut]:o,url:s}=n;if(o&&!(e&&t instanceof le.HttpAbortError)){var c,u,l;delete n[ut];var p,d,f,v,m,y,w,{st:Z,time:S,perfStartTime:b}=o,{userInstanceId:I,username:A}=g();if(e){var O=t instanceof le.HttpResponseError;(O||t instanceof le.HttpParseError)&&(({status:m,headers:y}=t.response),O&&(w=t.responseJson))}else({status:m,data:w,headers:y}=t);(0,ue.isObject)(w)&&({code:p,message:d}=w),y instanceof Headers&&(f=y.get("x-b3-traceid"),v=y.get("content-length")),r={st:Z,_ver:Z,uid:I,username:A,time:S,et:a,page:location.href,duration:i-b,api:s,type:"api",code:null!==(c=p)&&void 0!==c?c:-1,msg:null!==(u=d)&&void 0!==u?u:"",status:m,traceId:null!==(l=f)&&void 0!==l?l:"",size:v?Number(v):-1},it?st.push((0,h.Z)((0,h.Z)({},r),{},{type:"apiRequest"},it)):ot.push(r)}return e?Promise.reject(t):t}function vt(){var e=Math.round(performance.now()),t=Date.now();return ot.length=0,it=null,function(n){var{status:r,path:i,pageTitle:a}=n;if("ok"!==r)return st.push(...ot),void(ot.length=0);var o=Math.round(performance.now())-e,s=Date.now(),{username:c}=g();(function(e){var t,n,r=(t=URL.createObjectURL(new Blob([])),n=t.substring(t.lastIndexOf("/")+1),URL.revokeObjectURL(t),at&&(n="88-"+n,at=!1),n),{lt:i,route:a}=e;for(var o of(it={lt:i,route:a,pageId:r},st.push((0,h.Z)((0,h.Z)({},e),{},{pageId:r,apiCount:ot.length,maxApiTimeCost:Math.max(0,...ot.map((e=>e.duration))),size:ot.map((e=>e.size)).filter((e=>e>0)).reduce(((e,t)=>e+t),0)})),ot))st.push((0,h.Z)((0,h.Z)({},o),it));ot.length=0})({type:"page",page:location.href,_ver:t,time:Math.round(t/1e3),st:t,et:s,lt:o,pageTitle:a,username:c,route:i}),window.dispatchEvent(new CustomEvent("route.render",{detail:{renderTime:o}}))}}var ht=Object.freeze({checkPermissions:function(){if(!Z())return!1;if(g().isAdmin)return!0;for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r of t)switch(b.get(r)){case"unauthorized":case"undefined":return!1;case void 0:return console.error('Un-checked permission action: "'.concat(r,'", please make sure the permission to check is defined in permissionsPreCheck.')),!1}return!0},preCheckPermissions:function(e){if(Z()&&!g().isAdmin)return O((0,d.scanPermissionActionsInStoryboard)(e))},preCheckPermissionsForBrickOrRoute:function(e,t){return I.apply(this,arguments)}}),mt=new class{constructor(){(0,M.Z)(this,K),(0,E.Z)(this,$,{get:Q,set:void 0}),(0,E.Z)(this,H,{writable:!0,value:void 0}),(0,E.Z)(this,V,{writable:!0,value:{sub:new Map,unsub:new Map}}),(0,E.Z)(this,Y,{writable:!0,value:new Map})}subscribe(e,t){var n=JSON.stringify(t);return(0,P.Z)(this,K,X).call(this,"sub",e,t,n)}unsubscribe(e){var t=(0,C.Z)(this,Y).get(e);if(!t){var n='The message channel to unsubscribe "'.concat(e,'" is not found');return console.error(n),Promise.reject(new Error(n))}var r=JSON.parse(t),i=(0,P.Z)(this,K,X).call(this,"unsub",e,r,t);return(0,C.Z)(this,V).sub.delete(t),i.then((()=>{(0,C.Z)(this,Y).delete(e)})),i}onMessage(e,t){var n=(0,C.Z)(this,Y).get(e);n?(0,C.Z)(this,$).onMessage((e=>{"MESSAGE.PUSH"===e.event&&function(e,t){var n=JSON.parse(e);return n.system===t.system&&(n.topic===t.topic||"string"==typeof n.topic&&n.topic.includes("*")&&new RegExp("^".concat(n.topic.replace(/([^*]*)\*([^*]*)/g,((e,t,n)=>"".concat((0,p.escapeRegExp)(t),"[^/]*").concat((0,p.escapeRegExp)(n)))),"$")).test(t.topic))}(n,e.payload)&&t(e.payload.message)})):console.error('Message channel: "'.concat(e,'" not found'))}onClose(e){(0,C.Z)(this,$).onClose(e)}reset(){var e;(0,C.Z)(this,V).sub.clear(),(0,C.Z)(this,V).unsub.clear(),(0,C.Z)(this,Y).clear(),null===(e=(0,C.Z)(this,H))||void 0===e||e.reset()}},yt=function(){var e=(0,N.getV2RuntimeFromDll)();if(e)return Object.freeze((0,p.pick)(e,["authenticate","getAuth","isLoggedIn","logout"]))}()||r}}]);
3
- //# sourceMappingURL=9102.26b8ee38.js.map
1
+ /*! For license information please see 9102.91d39227.js.LICENSE.txt */
2
+ "use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[9102],{5863:(e,t,n)=>{function r(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}n.d(t,{Z:()=>r})},175:(e,t,n)=>{function r(e,t,n){if(!t.has(e))throw new TypeError("attempted to "+n+" private field on non-instance");return t.get(e)}n.d(t,{Z:()=>r})},687:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(175);function i(e,t){return function(e,t){return t.get?t.get.call(e):t.value}(e,(0,r.Z)(e,t,"get"))}},3395:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(5863);function i(e,t,n){(0,r.Z)(e,t),t.set(e,n)}},381:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(175);function i(e,t,n){return function(e,t,n){if(t.set)t.set.call(e,n);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=n}}(e,(0,r.Z)(e,t,"set"),n),n}},6171:(e,t,n)=>{function r(e,t,n){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return n}n.d(t,{Z:()=>r})},5866:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(5863);function i(e,t){(0,r.Z)(e,t),t.add(e)}},9740:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(1461);function i(e,t){if(null==e)return{};var n,i,a=(0,r.Z)(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}},9102:(e,t,n)=>{n.r(t),n.d(t,{analytics:()=>u,auth:()=>yt,checkInstalledApps:()=>i,checkPermissions:()=>ht,flowApi:()=>a,menu:()=>o,messageDispatcher:()=>mt});var r={};n.r(r),n.d(r,{authenticate:()=>y,getAuth:()=>g,isLoggedIn:()=>Z,logout:()=>w});var i={};n.r(i),n.d(i,{getCheckedApp:()=>ce,preCheckInstalledApps:()=>ae,waitForCheckingApps:()=>oe});var a={};n.r(a),n.d(a,{FLOW_API_PROVIDER:()=>pe,clearCollectWidgetContract:()=>Ie,collectContract:()=>Se,collectWidgetContract:()=>be,getArgsOfFlowApi:()=>ke,isFlowApiProvider:()=>Oe,registerFlowApiProvider:()=>he});var o={};n.r(o),n.d(o,{fetchMenuById:()=>tt,getMenuById:()=>et});var s={};n.r(s),n.d(s,{onRequest:()=>lt,onResponse:()=>pt,onResponseError:()=>dt});var c={};n.r(c),n.d(c,{create:()=>vt});var u={};n.r(u),n.d(u,{http:()=>s,initialize:()=>ct,pageView:()=>c});var l=n(4795),p=n(5178),d=n(6750),f=n(3352),v=function(){var e=(0,l.Z)((function*(e,t){return(yield f.http.post("api/gateway/micro_app.permission.ValidatePermissions/api/micro_app/v1/permission/validate",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}(),h=n(3028),m={};function y(e){Object.assign(m,{org:e.org,username:e.username,userInstanceId:e.userInstanceId,loginFrom:e.loginFrom,accessRule:e.accessRule,isAdmin:e.isAdmin,csrfToken:e.csrfToken,license:e.license,userShowValue:e.userShowValue})}function g(){return(0,h.Z)({},m)}function w(){for(var e of Object.keys(m))m[e]=void 0;S.length=0,b.clear()}function Z(){return void 0!==m.username}var S=[],b=new Map;function I(){return(I=(0,l.Z)((function*(e,t){if(Z()&&!g().isAdmin&&Array.isArray(e.permissionsPreCheck))return O(yield t(e.permissionsPreCheck))}))).apply(this,arguments)}function A(e){if(Z()&&!g().isAdmin)return O((0,d.scanPermissionActionsInAny)(e))}function O(e){return k.apply(this,arguments)}function k(){return(k=(0,l.Z)((function*(e){var t=(0,p.difference)(e,[...S]);if(0!==t.length){S.push(...t);try{var n=yield v({actions:t});for(var r of n.actions)b.set(r.action,r.authorizationStatus),"undefined"===r.authorizationStatus&&console.error('Undefined permission action: "'.concat(r.action,'"'))}catch(e){console.error("Pre-check permissions failed",e)}}}))).apply(this,arguments)}var M=n(5866),E=n(3395),P=n(6171),_=n(381),C=n(687),N=n(4266),T=1e3,j=6,R=new WeakMap,D=new WeakMap,W=new WeakMap,L=new WeakMap,U=new WeakMap,B=new WeakMap,x=new WeakMap,F=new WeakSet,q=new WeakSet;class z{constructor(e){(0,M.Z)(this,q),(0,M.Z)(this,F),(0,E.Z)(this,R,{writable:!0,value:void 0}),(0,E.Z)(this,D,{writable:!0,value:void 0}),(0,E.Z)(this,W,{writable:!0,value:[]}),(0,E.Z)(this,L,{writable:!0,value:new Set}),(0,E.Z)(this,U,{writable:!0,value:new Set}),(0,E.Z)(this,B,{writable:!0,value:0}),(0,E.Z)(this,x,{writable:!0,value:!1}),(0,_.Z)(this,R,e)}send(e){(0,C.Z)(this,D)||(0,_.Z)(this,D,(0,P.Z)(this,F,G).call(this));var t=JSON.stringify(e);(0,C.Z)(this,D).readyState===WebSocket.OPEN?(0,C.Z)(this,D).send(t):(0,C.Z)(this,W).push(t)}onMessage(e){(0,C.Z)(this,L).add(e)}onClose(e){(0,C.Z)(this,U).add(e)}reset(){(0,C.Z)(this,W).length=0,(0,C.Z)(this,L).clear(),(0,C.Z)(this,U).clear()}close(){var e;(0,_.Z)(this,x,!0),(null===(e=(0,C.Z)(this,D))||void 0===e?void 0:e.readyState)===WebSocket.OPEN&&(0,C.Z)(this,D).close()}}function G(){console.log("WebSocket connecting ...");var e=new WebSocket((0,C.Z)(this,R));return e.addEventListener("open",(t=>{for(var n of(console.log("WebSocket open:",t),(0,_.Z)(this,B,0),(0,C.Z)(this,W)))e.send(n);(0,C.Z)(this,W).length=0})),e.addEventListener("close",(e=>{if(!(0,C.Z)(this,x)){for(var t of(console.log("WebSocket close:",e),(0,C.Z)(this,U)))t();1e3!==e.code&&(0,P.Z)(this,q,J).call(this)}})),e.addEventListener("error",(e=>{console.error("WebSocket error:",e)})),e.addEventListener("message",(e=>{var t=JSON.parse(e.data);for(var n of(0,C.Z)(this,L))n(t)})),e}function J(){if((0,C.Z)(this,B)>=j)console.error("WebSocket connect retry limit exceeded");else{var e=Math.pow(2,(0,C.Z)(this,B))*T;console.log("WebSocket will reconnect after %d seconds",e/1e3),setTimeout((()=>{var e;(0,_.Z)(this,B,(e=(0,C.Z)(this,B),++e)),(0,_.Z)(this,D,(0,P.Z)(this,F,G).call(this))}),e)}}var H=new WeakMap,V=new WeakMap,Y=new WeakMap,$=new WeakMap,K=new WeakSet;function Q(){if(!(0,C.Z)(this,H)){var e="https:"===location.protocol?"wss:":"ws:",t="".concat(e,"//").concat(window.location.host).concat((0,N.getBasePath)(),"api/websocket_service/v1/ws");(0,_.Z)(this,H,new z(t))}return(0,C.Z)(this,H)}function X(e,t,n,r){var i=(0,C.Z)(this,V)[e].get(r);if(i)return i;var a={event:"sub"===e?"TOPIC.SUB":"TOPIC.UNSUB",payload:n},o=new Promise(((t,r)=>{var i=ee(n);(0,C.Z)(this,$).onMessage((n=>{var a=n.event===("sub"===e?"TOPIC.SUB_SUCCESS":"TOPIC.UNSUB_SUCCESS"),o=n.event===("sub"===e?"TOPIC.SUB_FAILED":"TOPIC.UNSUB_FAILED");(a||o)&&i===ee(n.payload)&&(a?t:r)(n)})),(0,C.Z)(this,$).send(a)}));return"sub"===e&&(0,C.Z)(this,Y).set(t,r),(0,C.Z)(this,V)[e].set(r,o),o}function ee(e){var{system:t,topic:n}=e;return JSON.stringify({system:t,topic:n})}var te=n(9751),ne=function(){var e=(0,l.Z)((function*(e,t){return(yield te.http.post("api/gateway/micro_app_standalone.runtime.SearchMicroAppStandalone/api/v1/micro_app_standalone/search",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}(),re=new Map,ie=new Map;function ae(e,t){if(window.STANDALONE_MICRO_APPS&&!window.NO_AUTH_GUARD){var n=function(e){var t,n={usedArgs:new Set},{customTemplates:r,menus:i}=null!==(t=e.meta)&&void 0!==t?t:{};return(0,d.traverseStoryboardExpressions)([e.routes,r,i],((e,t)=>{(0,d.collectInstalledAppsHasUsage)(n,e,t)}),"INSTALLED_APPS"),[...n.usedArgs]}(e),r=[];for(var i of n)re.has(i)||t(i)||r.push(i);if(0===r.length)return;var a=ne({query:{appId:{$in:r}},fields:["appId","currentVersion","installStatus"]}).catch((e=>{console.error("Get off site standalone micro-apps failed",e)})),o=function(e){re.set(e,a.then((t=>{var n,r=null==t||null===(n=t.list)||void 0===n?void 0:n.find((t=>t.appId===e)),i=r?(0,h.Z)((0,h.Z)({},r),{},{id:e}):void 0;return ie.set(e,i),i})))};for(var s of r)o(s)}}function oe(e){return se.apply(this,arguments)}function se(){return(se=(0,l.Z)((function*(e){yield Promise.all(e.map((e=>re.get(e))))}))).apply(this,arguments)}function ce(e){if(window.STANDALONE_MICRO_APPS)return ie.get(e)}var ue=n(2307),le=n(6777),pe="core.provider-flow-api";function de(e,t){return e.some((e=>e.source===t))}function fe(e){return ve.apply(this,arguments)}function ve(){return ve=(0,l.Z)((function*(e){for(var t,{url:n,originalUri:r,method:i="GET",responseWrapper:a=!0,ext_fields:o=[],request:s,isFileType:c}=e,u=["get","delete","head"].includes(i.toLowerCase()),l=c?{responseType:"blob"}:{},d=arguments.length,f=new Array(d>1?d-1:0),v=1;v<d;v++)f[v-1]=arguments[v];if(u){var m,y,g,w,Z,S;r&&"object"===(null==s?void 0:s.type)&&(null!==(m=null===(y=r.match(/:([^/]+)/g))||void 0===y?void 0:y.length)&&void 0!==m?m:0)===(null!==(g=null===(w=s.fields)||void 0===w?void 0:w.length)&&void 0!==g?g:0)?[S]=f:[Z,S]=f,t=yield le.http.simpleRequest(i,n,(0,h.Z)((0,h.Z)({params:Z},l),S))}else{var b=function(e){if(!e||"object"!==e.type)return!1;var t=e=>!(0,p.isEmpty)(e)&&e.some((e=>["file","file[]"].includes(e.type)||t(e.fields)));return t(e.fields)}(s),I=function(e){for(var t=de(e,"query"),n=de(e,"body"),r=arguments.length,i=new Array(r>1?r-1:0),a=1;a<r;a++)i[a-1]=arguments[a];if(t){if(n){var[o,s,c]=i;return{data:o,options:(0,h.Z)({params:s},c)}}var[u,l]=i;return{data:{},options:(0,h.Z)({params:u},l)}}var[p,d]=i;return{data:p,options:d}}(o,...f);t=yield le.http.requestWithBody(i,n,b?function(e){if(e instanceof FormData)return e;var t=new FormData,n=function(e){Array.isArray(i)?i.forEach((n=>{t.append(e,n)})):!(0,p.isObject)(i)||i instanceof Blob||i instanceof Date?t.append(e,i):Object.entries(i).forEach((n=>{var[r,i]=n;t.append("".concat(e,"[").concat(r,"]"),i)}))};for(var[r,i]of Object.entries(e))n(r);return t}(I.data):I.data,(0,h.Z)((0,h.Z)({},l),I.options))}return!c&&a?t.data:t})),ve.apply(this,arguments)}function he(){customElements.define(pe,(0,ue.createProviderClass)(fe))}var me=n(9169),ye=function(){var e=(0,l.Z)((function*(e,t){return(yield f.http.post("api/contract/single_search",e,t)).data}));return function(t,n){return e.apply(this,arguments)}}(),ge=new Map,we=new Map,Ze=(e,t)=>{null==e||e.forEach((e=>{t.set("".concat(e.namespaceId,".").concat(e.name),e)}))};function Se(e){Ze(e,ge)}function be(e){Ze(e,we)}function Ie(){we.clear()}var Ae=new Map;function Oe(e){return e.includes("@")}function ke(e,t,n){return Me.apply(this,arguments)}function Me(){return Me=(0,l.Z)((function*(e,t,n){if(!e.includes(":"))throw new Error("You're using legacy Custom API \"".concat(e,'" which is dropped in v3, please use Flow API instead'));var r=yield function(e){var t=Ae.get(e);return t||(t=function(e){return Ee.apply(this,arguments)}(e),Ae.set(e,t)),t}(e);if(!r)throw new Error('Flow API not found: "'.concat(e,'"'));var i=function(e,t){var n,r,i="string"==typeof t.contract?me.safeLoad(t.contract,{schema:me.JSON_SCHEMA,json:!0}):t.contract,{uri:a,method:o="GET",ext_fields:s}=null!==(n=null==i?void 0:i.endpoint)&&void 0!==n?n:{},c=!(null==i||!i.response)&&!1!==i.response.wrapper;if(!a)throw new Error('Missing endpoint.uri in contract of provider "'.concat(e,'"'));return{uri:a,method:"list"===o.toLowerCase()?"get":o,ext_fields:s,name:t.name,namespace:t.namespace,serviceName:t.serviceName,version:t.version,isFileType:"file"===(null==i||null===(r=i.response)||void 0===r?void 0:r.type),responseWrapper:c,request:null==i?void 0:i.request}}(e,r);return function(e,t,n){var r,{uri:i,method:a,ext_fields:o,name:s,namespace:c,serviceName:u,responseWrapper:l,version:p,isFileType:d,request:f}=e,v=d&&"saveAs"===n;v&&(r=t.shift());var{url:h,args:m}=function(e,t,n,r,i,a){var o=a?i?"api/gateway/".concat(i):"api/gateway/".concat(r,".").concat(n,"@").concat(a):"api/gateway/api_service.".concat(r,".").concat(n),s=t.slice();return{url:o+e.replace(/:([^/]+)/g,(()=>s.shift())),args:s}}(i,t,s,c,u,p);return[...v?[r]:[],{url:h,originalUri:i,method:a,ext_fields:o,responseWrapper:l,request:f,isFileType:d},...m]}(i,t,n)})),Me.apply(this,arguments)}function Ee(){return(Ee=(0,l.Z)((function*(e){var[t,n]=e.split("@"),[r,i]=n.split(":"),a=function(e){return ge.get(e)||we.get(e)}("".concat(t,".").concat(r));if(a)return{name:a.name,namespace:a.namespaceId,serviceName:a.serviceName,version:a.version,contract:{endpoint:a.endpoint,response:a.response,request:a.request}};var o,{contractData:s}=yield ye({contractName:"".concat(t,".").concat(r),version:i});return s?{name:s.name,namespace:null===(o=s.namespace)||void 0===o||null===(o=o[0])||void 0===o?void 0:o.name,serviceName:s.serviceName,version:s.version,contract:{endpoint:s.endpoint,response:s.response,request:s.request}}:void 0}))).apply(this,arguments)}var Pe=n(9740),_e=function(){var e=(0,l.Z)((function*(e,t,n){return(yield te.http.post("api/gateway/cmdb.instance.PostSearch/object/".concat(e,"/instance/_search"),t,n)).data}));return function(t,n,r){return e.apply(this,arguments)}}(),Ce=function(){var e=(0,l.Z)((function*(e,t,n){return(yield f.http.get("api/gateway/micro_app.installed_micro_app.GetMenusInfo/api/v1/micro-app/menus/".concat(e),(0,h.Z)((0,h.Z)({},n),{},{params:t}))).data}));return function(t,n,r){return e.apply(this,arguments)}}(),Ne=n(420),Te=Symbol("appId"),je=Symbol("menuI18nNamespace"),Re=Symbol("overrideApp");function De(){return(De=(0,l.Z)((function*(e,t,n,r){if(e.dynamicItems&&e.itemsResolve){var i=e.app[0].appId,a=t;if(i!==t.app.id){var o,s=window.STANDALONE_MICRO_APPS?e.overrideApp:null===(o=r.getStoryboardByAppId(i))||void 0===o?void 0:o.app;a=(0,h.Z)((0,h.Z)({},t),{},{overrideApp:s,appendI18nNamespace:n.get(e)})}var c=yield r.resolveData((0,h.Z)({transform:"items"},e.itemsResolve),a);e.items=c.items}}))).apply(this,arguments)}function We(){return We=(0,l.Z)((function*(e,t,n){var r=e.find((e=>"inject"!==e.type));if(r){var i=[],a=new Map,o=new WeakMap,s=function*(){if(c.i18n){var e="menu/".concat(c.menuId,"~").concat(c.app[0].appId,"+").concat(c.instanceId);Object.entries(c.i18n).forEach((t=>{var[n,r]=t;Ne.i18n.addResourceBundle(n,e,r)})),o.set(c,e)}};for(var c of e)yield*s();for(var u of(yield Promise.all(e.map((e=>function(e,t,n,r){return De.apply(this,arguments)}(e,t,o,n)))),e)){var l;if(null!==(l=u.items)&&void 0!==l&&l.length)if("inject"===u.type&&u.injectMenuGroupId){var p=a.get(u.injectMenuGroupId);p||(p=[],a.set(u.injectMenuGroupId,p)),p.push(u)}else i.push(u)}return(0,h.Z)((0,h.Z)({},r),{},{items:i.flatMap((e=>Le(e.items,e,a,o))),[je]:o.get(r),[Re]:r.overrideApp})}})),We.apply(this,arguments)}function Le(e,t,n,r){return null==e?void 0:e.map((e=>{var i,a=e.groupId&&n.get(e.groupId);return a&&n.delete(e.groupId),(0,h.Z)((0,h.Z)({},e),{},{children:(null!==(i=Le(e.children,t,n,r))&&void 0!==i?i:[]).concat(a?a.flatMap((e=>Le(e.items,e,n,r))):[]),[Te]:t.app[0].appId,[je]:r.get(t),[Re]:t.overrideApp})}))}function Ue(e){e.items=Be(e.items)}function Be(e){return function(e){return(0,p.sortBy)(e,(e=>{var t;return null!==(t=e.sort)&&void 0!==t?t:-1/0}))}(e).map((e=>(0,h.Z)((0,h.Z)({},e),{},{children:Be(e.children)})))}var xe=n(4415),Fe=n(5506),qe=["children"];function ze(e,t,n,r){if("titleDataSource"in e&&(0,ue.isObject)(e.titleDataSource)&&Object.entries(e.titleDataSource).every((e=>{var[,t]=e;return null===t||""===t}))&&delete e.titleDataSource,"if"in e&&null===e.if&&delete e.if,"to"in e&&e.to&&!(0,Fe.isEvaluable)(e.to)){var i=xe.pipes.yaml(e.to);(0,ue.isObject)(i)&&["pathname","search","hash"].some((e=>(0,ue.hasOwnProperty)(i,e)))&&(e.to=i)}var a=n;if(t!==n.app.id){var o,s=window.STANDALONE_MICRO_APPS?e[Re]:null===(o=r.getStoryboardByAppId(t))||void 0===o?void 0:o.app;a=(0,h.Z)((0,h.Z)({},n),{},{overrideApp:s,appendI18nNamespace:e[je]})}return r.asyncComputeRealValue(e,a,{ignoreSymbols:!0})}function Ge(e,t,n){return Promise.all(e.map(function(){var e=(0,l.Z)((function*(e){var{children:r}=e,i=(0,Pe.Z)(e,qe),[a,o]=yield Promise.all([ze(i,i[Te],t,n),r&&(yield Ge(r,t,n))]);return(0,h.Z)((0,h.Z)({},a),{},{children:o})}));return function(t){return e.apply(this,arguments)}}()))}var Je=function(){var e=(0,l.Z)((function*(e,t,n,r){return(yield te.http.get("api/gateway/cmdb.instance.GetDetail/object/".concat(e,"/instance/").concat(t),(0,h.Z)((0,h.Z)({},r),{},{params:n}))).data}));return function(t,n,r,i){return e.apply(this,arguments)}}(),He=new Map;function Ve(e){return Ye.apply(this,arguments)}function Ye(){return(Ye=(0,l.Z)((function*(e){if(e.title||(0,p.isEmpty)(e.titleDataSource))return e.title;var t=JSON.stringify(e.titleDataSource),n=He.get(t);if(void 0!==n)return n;var r,{objectId:i,instanceId:a,attributeId:o}=e.titleDataSource,s=null!=o?o:"name",c=yield Je(i,a,{fields:s});if("#showKey"===o&&Array.isArray(c[s])){var[u,...l]=c[s];r=l.length>0?"".concat(u,"(").concat(l.join(","),")"):String(u)}else r=String(c[s]);return He.set(t,r),r}))).apply(this,arguments)}var $e=["items","app"],Ke=new Map,Qe=new Map;function Xe(e){return null==e?void 0:e.filter(N.checkIfOfComputed).map((e=>{var t=Xe(e.children);return"group"===e.type?{type:"group",title:e.text,childLayout:e.childLayout,items:t,groupId:e.groupId,groupFrom:e.groupFrom}:null!=t&&t.length?{type:"subMenu",childLayout:e.childLayout,title:e.text,icon:e.icon,items:t,defaultExpanded:e.defaultExpanded}:(0,p.omit)(e,["type","items","children"])}))}function et(e){return Qe.get(e)}function tt(e,t,n){var r=Ke.get(e);return r||(r=function(e,t,n){return nt.apply(this,arguments)}(e,t,n)),r}function nt(){return nt=(0,l.Z)((function*(e,t,n){var r=window.STANDALONE_MICRO_APPS?function(e,t,n){var r,i,a,o,s=n.getStoryboardByAppId(t);return(null!==(r=null!==(i=null===(a=s.meta)||void 0===a?void 0:a.injectMenus)&&void 0!==i?i:null===(o=s.meta)||void 0===o?void 0:o.menus)&&void 0!==r?r:[]).filter((t=>t.menuId===e)).map((e=>{var n;return(0,h.Z)((0,h.Z)({},e),null!==(n=e.app)&&void 0!==n&&null!==(n=n[0])&&void 0!==n&&n.appId?{}:{app:[{appId:t}]})}))}(e,t.app.id,n):t.flags["three-level-menu-layout"]?(yield Ce(e,{menuObjectId:"EASYOPS_STORYBOARD_MENU"})).menus:(yield _e("EASYOPS_STORYBOARD_MENU",{page:1,page_size:200,fields:{menuId:!0,title:!0,icon:!0,link:!0,titleDataSource:!0,defaultCollapsed:!0,defaultCollapsedBreakpoint:!0,type:!0,injectMenuGroupId:!0,dynamicItems:!0,itemsResolve:!0,items:!0,i18n:!0,"items.children":!0,"app.appId":!0},query:{menuId:{$eq:e},app:{$size:{$gt:0}}}})).list,i=yield function(e,t,n){return We.apply(this,arguments)}(r,t,n);if(!i)throw new Error("Menu not found: ".concat(e));Ue(i);var{items:a,app:o}=i,s=(0,Pe.Z)(i,$e),c=(0,h.Z)((0,h.Z)({},t),{},{pendingPermissionsPreCheck:[...t.pendingPermissionsPreCheck,A([a,s])]});delete c.tplStateStoreId,delete c.forEachItem,delete c.forEachIndex;var u=o[0].appId,[l,d]=yield Promise.all([ze(s,u,c,n),Ge(a,c,n)]),f=(0,h.Z)((0,h.Z)({title:yield Ve(l)},(0,p.pick)(l,["icon","link","defaultCollapsed","defaultCollapsedBreakpoint"])),{},{menuItems:Xe(d)});Qe.set(e,f)})),nt.apply(this,arguments)}var rt=!1,it=null,at=!0,ot=[],st=[];function ct(e){rt||(rt=!0,window.addEventListener("beforeunload",(function(){if(0!==st.length){var t={model:"easyops.FRONTEND_STAT",columns:["_ver","st","et","lt","size","time","traceId","code","duration","page","uid","username","api","type","msg","status","pageId","route","apiCount","maxApiTimeCost","apiSizeCost","pageTitle"],data:st},n=new Blob([JSON.stringify(t)],{type:"application/json"});st.length=0,window.navigator.sendBeacon(e,n)}}),!1))}var ut=Symbol("HttpAnalytics");function lt(e){var t=Math.round(performance.now()),n=Date.now();return e[ut]={st:n,time:Math.round(n/1e3),perfStartTime:t},e}function pt(e,t){return ft(!1,e,t)}function dt(e,t){return ft(!0,e,t)}function ft(e,t,n){var r,i=Math.round(performance.now()),a=Date.now(),{[ut]:o,url:s}=n;if(o&&!(e&&t instanceof le.HttpAbortError)){var c,u,l;delete n[ut];var p,d,f,v,m,y,w,{st:Z,time:S,perfStartTime:b}=o,{userInstanceId:I,username:A}=g();if(e){var O=t instanceof le.HttpResponseError;(O||t instanceof le.HttpParseError)&&(({status:m,headers:y}=t.response),O&&(w=t.responseJson))}else({status:m,data:w,headers:y}=t);(0,ue.isObject)(w)&&({code:p,message:d}=w),y instanceof Headers&&(f=y.get("x-b3-traceid"),v=y.get("content-length")),r={st:Z,_ver:Z,uid:I,username:A,time:S,et:a,page:location.href,duration:i-b,api:s,type:"api",code:null!==(c=p)&&void 0!==c?c:-1,msg:null!==(u=d)&&void 0!==u?u:"",status:m,traceId:null!==(l=f)&&void 0!==l?l:"",size:v?Number(v):-1},it?st.push((0,h.Z)((0,h.Z)({},r),{},{type:"apiRequest"},it)):ot.push(r)}return e?Promise.reject(t):t}function vt(){var e=Math.round(performance.now()),t=Date.now();return ot.length=0,it=null,function(n){var{status:r,path:i,pageTitle:a}=n;if("ok"!==r)return st.push(...ot),void(ot.length=0);var o=Math.round(performance.now())-e,s=Date.now(),{username:c}=g();(function(e){var t,n,r=(t=URL.createObjectURL(new Blob([])),n=t.substring(t.lastIndexOf("/")+1),URL.revokeObjectURL(t),at&&(n="88-"+n,at=!1),n),{lt:i,route:a}=e;for(var o of(it={lt:i,route:a,pageId:r},st.push((0,h.Z)((0,h.Z)({},e),{},{pageId:r,apiCount:ot.length,maxApiTimeCost:Math.max(0,...ot.map((e=>e.duration))),size:ot.map((e=>e.size)).filter((e=>e>0)).reduce(((e,t)=>e+t),0)})),ot))st.push((0,h.Z)((0,h.Z)({},o),it));ot.length=0})({type:"page",page:location.href,_ver:t,time:Math.round(t/1e3),st:t,et:s,lt:o,pageTitle:a,username:c,route:i}),window.dispatchEvent(new CustomEvent("route.render",{detail:{renderTime:o}}))}}var ht=Object.freeze({checkPermissions:function(){if(!Z())return!1;if(g().isAdmin)return!0;for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r of t)switch(b.get(r)){case"unauthorized":case"undefined":return!1;case void 0:return console.error('Un-checked permission action: "'.concat(r,'", please make sure the permission to check is defined in permissionsPreCheck.')),!1}return!0},preCheckPermissions:function(e){if(Z()&&!g().isAdmin)return O((0,d.scanPermissionActionsInStoryboard)(e))},preCheckPermissionsForBrickOrRoute:function(e,t){return I.apply(this,arguments)}}),mt=new class{constructor(){(0,M.Z)(this,K),(0,E.Z)(this,$,{get:Q,set:void 0}),(0,E.Z)(this,H,{writable:!0,value:void 0}),(0,E.Z)(this,V,{writable:!0,value:{sub:new Map,unsub:new Map}}),(0,E.Z)(this,Y,{writable:!0,value:new Map})}subscribe(e,t){var n=JSON.stringify(t);return(0,P.Z)(this,K,X).call(this,"sub",e,t,n)}unsubscribe(e){var t=(0,C.Z)(this,Y).get(e);if(!t){var n='The message channel to unsubscribe "'.concat(e,'" is not found');return console.error(n),Promise.reject(new Error(n))}var r=JSON.parse(t),i=(0,P.Z)(this,K,X).call(this,"unsub",e,r,t);return(0,C.Z)(this,V).sub.delete(t),i.then((()=>{(0,C.Z)(this,Y).delete(e)})),i}onMessage(e,t){var n=(0,C.Z)(this,Y).get(e);n?(0,C.Z)(this,$).onMessage((e=>{"MESSAGE.PUSH"===e.event&&function(e,t){var n=JSON.parse(e);return n.system===t.system&&(n.topic===t.topic||"string"==typeof n.topic&&n.topic.includes("*")&&new RegExp("^".concat(n.topic.replace(/([^*]*)\*([^*]*)/g,((e,t,n)=>"".concat((0,p.escapeRegExp)(t),"[^/]*").concat((0,p.escapeRegExp)(n)))),"$")).test(t.topic))}(n,e.payload)&&t(e.payload.message)})):console.error('Message channel: "'.concat(e,'" not found'))}onClose(e){(0,C.Z)(this,$).onClose(e)}reset(){var e;(0,C.Z)(this,V).sub.clear(),(0,C.Z)(this,V).unsub.clear(),(0,C.Z)(this,Y).clear(),null===(e=(0,C.Z)(this,H))||void 0===e||e.reset()}},yt=function(){var e=(0,N.getV2RuntimeFromDll)();if(e)return Object.freeze((0,p.pick)(e,["authenticate","getAuth","isLoggedIn","logout"]))}()||r}}]);
3
+ //# sourceMappingURL=9102.91d39227.js.map