@greenbone/ui-lib 0.8.9-alpha0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +1 -5
  2. package/lib/cjs/components/Badge/Badge.module.css +1 -1
  3. package/lib/cjs/components/Filter/RemotePersistence/RemotePersistentFilterDropdown.js +1 -1
  4. package/lib/cjs/components/Filter/RemotePersistence/RemotePersistentFilterDropdown.js.map +1 -1
  5. package/lib/cjs/components/Layout/AppHeader/AppHeader.js +1 -1
  6. package/lib/cjs/components/Layout/AppHeader/AppHeader.js.map +1 -1
  7. package/lib/cjs/components/Layout/AppHeader/userNav/UserNav.js +1 -1
  8. package/lib/cjs/components/Layout/AppHeader/userNav/UserNav.js.map +1 -1
  9. package/lib/cjs/components/Layout/AppNavigation/AppNavigation.js +1 -1
  10. package/lib/cjs/components/Layout/AppNavigation/AppNavigation.js.map +1 -1
  11. package/lib/cjs/components/Layout/AppNavigation/Menu/menuFactory.js +1 -1
  12. package/lib/cjs/components/Layout/AppNavigation/Menu/menuFactory.js.map +1 -1
  13. package/lib/cjs/components/Layout/AppNavigation/Menu/menuItems.js +1 -1
  14. package/lib/cjs/components/Layout/AppNavigation/Menu/menuItems.js.map +1 -1
  15. package/lib/esm/components/Badge/Badge.module.css +1 -1
  16. package/lib/esm/components/Filter/RemotePersistence/RemotePersistentFilterDropdown.js +1 -1
  17. package/lib/esm/components/Filter/RemotePersistence/RemotePersistentFilterDropdown.js.map +1 -1
  18. package/lib/esm/components/Layout/AppHeader/AppHeader.js +1 -1
  19. package/lib/esm/components/Layout/AppHeader/AppHeader.js.map +1 -1
  20. package/lib/esm/components/Layout/AppHeader/types.js.map +1 -1
  21. package/lib/esm/components/Layout/AppHeader/userNav/UserNav.js +1 -1
  22. package/lib/esm/components/Layout/AppHeader/userNav/UserNav.js.map +1 -1
  23. package/lib/esm/components/Layout/AppNavigation/AppNavigation.js +1 -1
  24. package/lib/esm/components/Layout/AppNavigation/AppNavigation.js.map +1 -1
  25. package/lib/esm/components/Layout/AppNavigation/Menu/menuFactory.js +1 -1
  26. package/lib/esm/components/Layout/AppNavigation/Menu/menuFactory.js.map +1 -1
  27. package/lib/esm/components/Layout/AppNavigation/Menu/menuItems.js +1 -1
  28. package/lib/esm/components/Layout/AppNavigation/Menu/menuItems.js.map +1 -1
  29. package/lib/esm/components/Layout/AppNavigation/Menu/types.js.map +1 -1
  30. package/package.json +15 -14
  31. package/types/src/components/Filter/RemotePersistence/RemotePersistentFilterDropdown.d.ts.map +1 -1
  32. package/types/src/components/Layout/AppHeader/AppHeader.d.ts +1 -1
  33. package/types/src/components/Layout/AppHeader/AppHeader.d.ts.map +1 -1
  34. package/types/src/components/Layout/AppHeader/types.d.ts +3 -0
  35. package/types/src/components/Layout/AppHeader/types.d.ts.map +1 -1
  36. package/types/src/components/Layout/AppHeader/userNav/UserNav.d.ts +1 -1
  37. package/types/src/components/Layout/AppHeader/userNav/UserNav.d.ts.map +1 -1
  38. package/types/src/components/Layout/AppNavigation/AppNavigation.d.ts.map +1 -1
  39. package/types/src/components/Layout/AppNavigation/Menu/menuFactory.d.ts +1 -1
  40. package/types/src/components/Layout/AppNavigation/Menu/menuFactory.d.ts.map +1 -1
  41. package/types/src/components/Layout/AppNavigation/Menu/types.d.ts +4 -0
  42. package/types/src/components/Layout/AppNavigation/Menu/types.d.ts.map +1 -1
package/README.md CHANGED
@@ -1,17 +1,13 @@
1
1
  ![Greenbone Logo](https://www.greenbone.net/wp-content/uploads/gb_new-logo_horizontal_rgb_small.png)
2
2
 
3
3
  [![GitHub releases](https://img.shields.io/github/release/greenbone/opensight-frontend-components.svg)](https://github.com/greenbone/opensight-frontend-components/releases)
4
- <span class="badge-npmversion"><a href="https://npmjs.org/package/@greenbone/ui-lib" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@greenbone/opensight-ui-components.svg" alt="NPM version" /></a></span>
4
+ <span class="badge-npmversion"><a href="https://npmjs.org/package/@greenbone/ui-lib" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@greenbone/ui-lib.svg" alt="NPM version" /></a></span>
5
5
  [![Build](https://github.com/greenbone/opensight-frontend-components/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/greenbone/opensight-frontend-components/actions/workflows/build.yml?query=branch%3Amain++)
6
6
 
7
7
  # OpenSight User Interface Component Library
8
8
 
9
9
  ## About
10
10
 
11
- This project is used to sequentially update the current opensight-ui-components library to mantine v7.
12
-
13
- To use this in parallel with the current opensight-ui-components (mantine v6) (Dev mode):
14
-
15
11
  - `npm run build` - build this project
16
12
  - `npm pack` - Pack this project into a tarball (file is created in this project)
17
13
  - Switch to main project
@@ -1 +1 @@
1
- .root{align-items:center;border-radius:calc(1.5rem*var(--mantine-scale));display:flex;font-size:var(--mantine-font-size-sm);gap:calc(.3125rem*var(--mantine-scale));justify-content:center;max-width:100%;padding:0 var(--mantine-spacing-xs);width:fit-content}.badge-size-sm{height:calc(1rem*var(--mantine-scale))}.badge-size-md{height:calc(1.5rem*var(--mantine-scale))}.badge-size-lg{height:calc(2rem*var(--mantine-scale))}.with-cursor-pointer{cursor:pointer}.neutral-root{background-color:var(--badge-neutral-background-color);color:var(--badge-neutral-color)}.neutral-muted-root{background-color:var(--badge-neutral-muted-background-color);color:var(--badge-neutral-muted-color)}.neutral-light-root{background-color:var(--badge-neutral-light-background-color);color:var(--badge-neutral-light-color)}.green-root{background-color:var(--badge-green-background-color);color:var(--badge-green-color)}.red-light-root{background-color:var(--badge-red-light-background-color);color:var(--badge-red-light-color)}.red-dark-root{background-color:var(--badge-red-dark-background-color);color:var(--badge-red-dark-color)}.orange-root{background-color:var(--badge-orange-background-color);color:var(--badge-orange-color)}.blue-root{background-color:var(--badge-blue-background-color);color:var(--badge-blue-color)}:root[data-mantine-color-scheme=dark]{--badge-neutral-light-background-color:var(--mantine-color-gray-7);--badge-neutral-light-color:var(--mantine-color-gray-1);--badge-neutral-muted-background-color:var(--mantine-color-gray-6);--badge-neutral-muted-color:var(--mantine-color-black);--badge-neutral-background-color:var(--mantine-color-gray-1);--badge-neutral-color:var(--mantine-color-black);--badge-green-background-color:var(--mantine-color-green-8);--badge-green-color:var(--mantine-color-green-3);--badge-red-light-background-color:var(--mantine-color-red-3);--badge-red-light-color:var(--mantine-color-red-8);--badge-red-dark-background-color:var(--mantine-color-red-7);--badge-red-dark-color:var(--mantine-color-red-2);--badge-orange-background-color:var(--mantine-color-orange-3);--badge-orange-color:var(--mantine-color-orange-8);--badge-blue-background-color:var(--mantine-color-blue-8);--badge-blue-color:var(--mantine-color-blue-3)}:root:not([data-mantine-color-scheme=dark]){--badge-neutral-light-background-color:var(--mantine-color-gray-1);--badge-neutral-light-color:var(--mantine-color-gray-7);--badge-neutral-muted-background-color:var(--mantine-color-gray-6);--badge-neutral-muted-color:var(--mantine-color-white);--badge-neutral-background-color:var(--mantine-color-gray-8);--badge-neutral-color:var(--mantine-color-white);--badge-green-background-color:var(--mantine-color-green-1);--badge-green-color:var(--mantine-color-green-6);--badge-red-light-background-color:var(--mantine-color-red-1);--badge-red-light-color:var(--mantine-color-red-6);--badge-red-dark-background-color:var(--mantine-color-red-3);--badge-red-dark-color:var(--mantine-color-red-9);--badge-orange-background-color:var(--mantine-color-orange-1);--badge-orange-color:var(--mantine-color-orange-6);--badge-blue-background-color:var(--mantine-color-blue-1);--badge-blue-color:var(--mantine-color-blue-7)}
1
+ .root{align-items:center;border-radius:calc(1.5rem*var(--mantine-scale));display:flex;font-size:var(--mantine-font-size-sm);gap:calc(.3125rem*var(--mantine-scale));justify-content:center;max-width:100%;padding:0 var(--mantine-spacing-xs);width:fit-content}.badge-size-sm{height:calc(1rem*var(--mantine-scale))}.badge-size-md{height:calc(1.5rem*var(--mantine-scale))}.badge-size-lg{height:calc(2rem*var(--mantine-scale))}.with-cursor-pointer{cursor:pointer}.neutral-root{background-color:var(--badge-neutral-background-color);color:var(--badge-neutral-color)}.neutral-muted-root{background-color:var(--badge-neutral-muted-background-color);color:var(--badge-neutral-muted-color)}.neutral-light-root{background-color:var(--badge-neutral-light-background-color);color:var(--badge-neutral-light-color)}.green-root{background-color:var(--badge-green-background-color);color:var(--badge-green-color)}.red-light-root{background-color:var(--badge-red-light-background-color);color:var(--badge-red-light-color)}.red-dark-root{background-color:var(--badge-red-dark-background-color);color:var(--badge-red-dark-color)}.orange-root{background-color:var(--badge-orange-background-color);color:var(--badge-orange-color)}.blue-root{background-color:var(--badge-blue-background-color);color:var(--badge-blue-color)}:root[data-mantine-color-scheme=dark]{--badge-neutral-light-background-color:var(--mantine-color-gray-7);--badge-neutral-light-color:var(--mantine-color-gray-1);--badge-neutral-muted-background-color:var(--mantine-color-gray-6);--badge-neutral-muted-color:var(--mantine-color-black);--badge-neutral-background-color:var(--mantine-color-gray-1);--badge-neutral-color:var(--mantine-color-black);--badge-green-background-color:var(--mantine-color-green-8);--badge-green-color:var(--mantine-color-green-3);--badge-red-light-background-color:var(--mantine-color-red-3);--badge-red-light-color:var(--mantine-color-red-8);--badge-red-dark-background-color:var(--mantine-color-red-7);--badge-red-dark-color:var(--mantine-color-red-1);--badge-orange-background-color:var(--mantine-color-orange-3);--badge-orange-color:var(--mantine-color-orange-8);--badge-blue-background-color:var(--mantine-color-blue-3);--badge-blue-color:var(--mantine-color-blue-9)}:root:not([data-mantine-color-scheme=dark]){--badge-neutral-light-background-color:var(--mantine-color-gray-1);--badge-neutral-light-color:var(--mantine-color-gray-7);--badge-neutral-muted-background-color:var(--mantine-color-gray-6);--badge-neutral-muted-color:var(--mantine-color-white);--badge-neutral-background-color:var(--mantine-color-gray-8);--badge-neutral-color:var(--mantine-color-white);--badge-green-background-color:var(--mantine-color-green-1);--badge-green-color:var(--mantine-color-green-6);--badge-red-light-background-color:var(--mantine-color-red-3);--badge-red-light-color:var(--mantine-color-red-8);--badge-red-dark-background-color:var(--mantine-color-red-7);--badge-red-dark-color:var(--mantine-color-red-1);--badge-orange-background-color:var(--mantine-color-orange-3);--badge-orange-color:var(--mantine-color-orange-8);--badge-blue-background-color:var(--mantine-color-blue-3);--badge-blue-color:var(--mantine-color-blue-9)}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"RemotePersistentFilterDropdown",{enumerable:true,get:function(){return RemotePersistentFilterDropdown}});const _jsxruntime=require("react/jsx-runtime");const _react=/*#__PURE__*/_interop_require_wildcard(require("react"));const _lucidereact=require("lucide-react");const _RemotePersistentFilterDropdownmodulecss=/*#__PURE__*/_interop_require_default(require("./RemotePersistentFilterDropdown.module.css"));const _core=require("@mantine/core");const _reacti18next=require("react-i18next");const _Tooltip=require("../../Tooltip");const _ConfirmationDialog=require("../../ConfirmationDialog");const _genericTypes=require("../../../genericTypes");const _Typo=require("../../Typo");function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interop_require_wildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={__proto__:null};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}const RemotePersistentFilterDropdown=({remotePersistentFilters,onSelect,onDelete})=>{const{t}=(0,_reacti18next.useTranslation)();const[selectedFilter,setSelectedFilter]=(0,_react.useState)();const[modalData,setModalData]=(0,_react.useState)(null);const combobox=(0,_core.useCombobox)();const dropdownList=(0,_react.useMemo)(()=>remotePersistentFilters.map(filter=>({value:filter.id,label:filter.filterName})),[remotePersistentFilters]);const handleClick=()=>combobox.toggleDropdown();(0,_react.useEffect)(()=>{if(selectedFilter)onSelect(selectedFilter)},[selectedFilter,onSelect]);const handleSelect=(0,_react.useCallback)(filter=>{if(filter){combobox.closeDropdown();setSelectedFilter(filter)}},[combobox]);const handleDelete=(0,_react.useCallback)((e,filterId)=>{e.stopPropagation();setModalData(filterId)},[]);const handleConfirmDelete=(0,_react.useCallback)(()=>{if(modalData){onDelete(modalData);setModalData(null)}},[modalData,onDelete]);const options=(0,_react.useMemo)(()=>dropdownList.sort((a,b)=>a.label.localeCompare(b.label)).map(item=>(0,_jsxruntime.jsx)(_core.Combobox.Option,{"data-testid":"dropdown-option",value:item.value,children:(0,_jsxruntime.jsxs)(_core.Group,{className:_RemotePersistentFilterDropdownmodulecss.default.options,children:[item.label.length>35?(0,_jsxruntime.jsx)(_Tooltip.Tooltip,{label:item.label,children:(0,_jsxruntime.jsx)("span",{className:_RemotePersistentFilterDropdownmodulecss.default["truncate-text"],children:item.label})}):(0,_jsxruntime.jsx)("span",{children:item.label}),(0,_jsxruntime.jsx)(_Tooltip.Tooltip,{label:t("Delete filter"),children:(0,_jsxruntime.jsx)(_lucidereact.Trash2,{"data-testid":"delete-icon",color:"red",size:16,className:_RemotePersistentFilterDropdownmodulecss.default["options-label"],onClick:e=>handleDelete(e,item.value)})})]})},item.value)),[dropdownList,handleDelete,t]);const emptyOption=(0,_jsxruntime.jsx)(_core.Combobox.Option,{value:"",children:(0,_jsxruntime.jsx)(_core.Group,{className:_RemotePersistentFilterDropdownmodulecss.default.options,children:(0,_jsxruntime.jsx)("span",{children:t("No saved filters available")})})},"");return(0,_jsxruntime.jsxs)(_jsxruntime.Fragment,{children:[(0,_jsxruntime.jsxs)(_core.Combobox,{store:combobox,width:300,position:"bottom-start",withArrow:true,onOptionSubmit:handleSelect,styles:{dropdown:{zIndex:10}},children:[(0,_jsxruntime.jsx)(_core.Combobox.Target,{children:(0,_jsxruntime.jsx)("div",{"data-testid":"filter-icon",className:_RemotePersistentFilterDropdownmodulecss.default.actions,onClick:handleClick,children:(0,_jsxruntime.jsx)(_Tooltip.Tooltip,{offset:15,label:t("Saved filters"),children:(0,_jsxruntime.jsx)(_lucidereact.Filter,{"data-testid":"filter-chevron-image",color:"var(--filter-chevron-color)",size:16})})})}),(0,_jsxruntime.jsx)(_core.Combobox.Dropdown,{children:(0,_jsxruntime.jsx)(_core.Combobox.Options,{children:options.length>0?options:emptyOption})})]}),(0,_jsxruntime.jsx)(_ConfirmationDialog.ConfirmationDialog,{alertStatus:_genericTypes.EStatus.ERROR,title:t("Delete filter"),content:(0,_jsxruntime.jsx)(_Typo.Typo,{type:"body",children:t("Do you really want to delete this filter?")}),opened:!!modalData,onClose:()=>setModalData(null),confirmationButtonText:t("Confirm"),confirmationButtonVariant:"danger",cancelButtonText:t("Cancel"),onSubmit:handleConfirmDelete})]})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"RemotePersistentFilterDropdown",{enumerable:true,get:function(){return RemotePersistentFilterDropdown}});const _jsxruntime=require("react/jsx-runtime");const _react=/*#__PURE__*/_interop_require_wildcard(require("react"));const _lucidereact=require("lucide-react");const _RemotePersistentFilterDropdownmodulecss=/*#__PURE__*/_interop_require_default(require("./RemotePersistentFilterDropdown.module.css"));const _core=require("@mantine/core");const _reacti18next=require("react-i18next");const _Tooltip=require("../../Tooltip");const _ConfirmationDialog=require("../../ConfirmationDialog");const _genericTypes=require("../../../genericTypes");const _Typo=require("../../Typo");const _theme=require("../../../theme");function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interop_require_wildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={__proto__:null};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}const RemotePersistentFilterDropdown=({remotePersistentFilters,onSelect,onDelete})=>{const{t}=(0,_reacti18next.useTranslation)();const[selectedFilter,setSelectedFilter]=(0,_react.useState)();const[modalData,setModalData]=(0,_react.useState)(null);const combobox=(0,_core.useCombobox)();const dropdownList=(0,_react.useMemo)(()=>remotePersistentFilters.map(filter=>({value:filter.id,label:filter.filterName})),[remotePersistentFilters]);const handleClick=()=>combobox.toggleDropdown();(0,_react.useEffect)(()=>{if(selectedFilter)onSelect(selectedFilter)},[selectedFilter,onSelect]);const handleSelect=(0,_react.useCallback)(filter=>{if(filter){combobox.closeDropdown();setSelectedFilter(filter)}},[combobox]);const handleDelete=(0,_react.useCallback)((e,filterId)=>{e.stopPropagation();setModalData(filterId)},[]);const handleConfirmDelete=(0,_react.useCallback)(()=>{if(modalData){onDelete(modalData);setModalData(null)}},[modalData,onDelete]);const options=(0,_react.useMemo)(()=>dropdownList.sort((a,b)=>a.label.localeCompare(b.label)).map(item=>(0,_jsxruntime.jsx)(_core.Combobox.Option,{"data-testid":"dropdown-option",value:item.value,children:(0,_jsxruntime.jsxs)(_core.Group,{className:_RemotePersistentFilterDropdownmodulecss.default.options,children:[item.label.length>35?(0,_jsxruntime.jsx)(_Tooltip.Tooltip,{label:item.label,children:(0,_jsxruntime.jsx)("span",{className:_RemotePersistentFilterDropdownmodulecss.default["truncate-text"],children:item.label})}):(0,_jsxruntime.jsx)("span",{children:item.label}),(0,_jsxruntime.jsx)(_Tooltip.Tooltip,{label:t("Delete filter"),children:(0,_jsxruntime.jsx)(_lucidereact.Trash2,{"data-testid":"delete-icon",color:"red",size:16,className:_RemotePersistentFilterDropdownmodulecss.default["options-label"],onClick:e=>handleDelete(e,item.value)})})]})},item.value)),[dropdownList,handleDelete,t]);const emptyOption=(0,_jsxruntime.jsx)(_core.Combobox.Option,{value:"",children:(0,_jsxruntime.jsx)(_core.Group,{className:_RemotePersistentFilterDropdownmodulecss.default.options,children:(0,_jsxruntime.jsx)("span",{children:t("No saved filters available")})})},"");return(0,_jsxruntime.jsxs)(_jsxruntime.Fragment,{children:[(0,_jsxruntime.jsxs)(_core.Combobox,{store:combobox,width:300,position:"bottom-start",withArrow:true,onOptionSubmit:handleSelect,styles:{dropdown:{zIndex:_theme.Z_INDEX_LAYER.GROUND.HIGHEST,maxHeight:"258px",overflow:"auto"}},children:[(0,_jsxruntime.jsx)(_core.Combobox.Target,{children:(0,_jsxruntime.jsx)("div",{"data-testid":"filter-icon",className:_RemotePersistentFilterDropdownmodulecss.default.actions,onClick:handleClick,children:(0,_jsxruntime.jsx)(_Tooltip.Tooltip,{offset:15,label:t("Saved filters"),children:(0,_jsxruntime.jsx)(_lucidereact.Filter,{"data-testid":"filter-chevron-image",color:"var(--filter-chevron-color)",size:16})})})}),(0,_jsxruntime.jsx)(_core.Combobox.Dropdown,{children:(0,_jsxruntime.jsx)(_core.Combobox.Options,{children:options.length>0?options:emptyOption})})]}),(0,_jsxruntime.jsx)(_ConfirmationDialog.ConfirmationDialog,{alertStatus:_genericTypes.EStatus.ERROR,title:t("Delete filter"),content:(0,_jsxruntime.jsx)(_Typo.Typo,{type:"body",children:t("Do you really want to delete this filter?")}),opened:!!modalData,onClose:()=>setModalData(null),confirmationButtonText:t("Confirm"),confirmationButtonVariant:"danger",cancelButtonText:t("Cancel"),onSubmit:handleConfirmDelete})]})};
2
2
  //# sourceMappingURL=RemotePersistentFilterDropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Filter/RemotePersistence/RemotePersistentFilterDropdown.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\"\nimport { Filter, Trash2 } from \"lucide-react\"\nimport classes from \"./RemotePersistentFilterDropdown.module.css\"\nimport { TFilter } from \"../utils\"\nimport { TRemotePersistentFilter } from \"./types\"\nimport { Combobox, Group, useCombobox } from \"@mantine/core\"\nimport { useTranslation } from \"react-i18next\"\nimport { Tooltip } from \"../../Tooltip\"\nimport { ConfirmationDialog } from \"../../ConfirmationDialog\"\nimport { EStatus } from \"../../../genericTypes\"\nimport { Typo } from \"../../Typo\"\n\ntype TFilterDropdownProps = {\n config: TFilter.Config\n onSelect: (id: string) => void\n onDelete: (id: string) => void\n remotePersistentFilters: TRemotePersistentFilter[]\n}\n\nconst RemotePersistentFilterDropdown: React.FC<TFilterDropdownProps> = ({\n remotePersistentFilters,\n onSelect,\n onDelete,\n}) => {\n const { t } = useTranslation()\n const [selectedFilter, setSelectedFilter] = useState<string>()\n const [modalData, setModalData] = useState<string | null>(null)\n const combobox = useCombobox()\n\n const dropdownList = useMemo(\n () =>\n remotePersistentFilters.map((filter) => ({\n value: filter.id,\n label: filter.filterName,\n })),\n [remotePersistentFilters]\n )\n\n const handleClick = () => combobox.toggleDropdown()\n\n useEffect(() => {\n if (selectedFilter) onSelect(selectedFilter)\n }, [selectedFilter, onSelect])\n\n const handleSelect = useCallback(\n (filter: string) => {\n if (filter) {\n combobox.closeDropdown()\n setSelectedFilter(filter)\n }\n },\n [combobox]\n )\n\n const handleDelete = useCallback((e: React.MouseEvent<SVGSVGElement>, filterId: string) => {\n e.stopPropagation()\n setModalData(filterId)\n }, [])\n\n const handleConfirmDelete = useCallback(() => {\n if (modalData) {\n onDelete(modalData)\n setModalData(null)\n }\n }, [modalData, onDelete])\n\n const options = useMemo(\n () =>\n dropdownList\n .sort((a, b) => a.label.localeCompare(b.label))\n .map((item) => (\n <Combobox.Option data-testid=\"dropdown-option\" value={item.value} key={item.value}>\n <Group className={classes.options}>\n {item.label.length > 35 ? (\n <Tooltip label={item.label}>\n <span className={classes[\"truncate-text\"]}>{item.label}</span>\n </Tooltip>\n ) : (\n <span>{item.label}</span>\n )}\n <Tooltip label={t(\"Delete filter\")}>\n <Trash2\n data-testid={\"delete-icon\"}\n color=\"red\"\n size={16}\n className={classes[\"options-label\"]}\n onClick={(e) => handleDelete(e, item.value)}\n />\n </Tooltip>\n </Group>\n </Combobox.Option>\n )),\n [dropdownList, handleDelete, t]\n )\n\n const emptyOption = (\n <Combobox.Option value={\"\"} key={\"\"}>\n <Group className={classes.options}>\n <span>{t(\"No saved filters available\")}</span>\n </Group>\n </Combobox.Option>\n )\n\n return (\n <>\n <Combobox\n store={combobox}\n width={300}\n position=\"bottom-start\"\n withArrow\n onOptionSubmit={handleSelect}\n styles={{ dropdown: { zIndex: 10 } }}\n >\n <Combobox.Target>\n <div data-testid={\"filter-icon\"} className={classes.actions} onClick={handleClick}>\n <Tooltip offset={15} label={t(\"Saved filters\")}>\n <Filter\n data-testid={\"filter-chevron-image\"}\n color={\"var(--filter-chevron-color)\"}\n size={16}\n />\n </Tooltip>\n </div>\n </Combobox.Target>\n\n <Combobox.Dropdown>\n <Combobox.Options>{options.length > 0 ? options : emptyOption}</Combobox.Options>\n </Combobox.Dropdown>\n </Combobox>\n\n <ConfirmationDialog\n alertStatus={EStatus.ERROR}\n title={t(\"Delete filter\")}\n content={<Typo type=\"body\">{t(\"Do you really want to delete this filter?\")}</Typo>}\n opened={!!modalData}\n onClose={() => setModalData(null)}\n confirmationButtonText={t(\"Confirm\")}\n confirmationButtonVariant={\"danger\"}\n cancelButtonText={t(\"Cancel\")}\n onSubmit={handleConfirmDelete}\n />\n </>\n )\n}\n\nexport { RemotePersistentFilterDropdown }\n"],"names":["RemotePersistentFilterDropdown","remotePersistentFilters","onSelect","onDelete","t","useTranslation","selectedFilter","setSelectedFilter","useState","modalData","setModalData","combobox","useCombobox","dropdownList","useMemo","map","filter","value","id","label","filterName","handleClick","toggleDropdown","useEffect","handleSelect","useCallback","closeDropdown","handleDelete","e","filterId","stopPropagation","handleConfirmDelete","options","sort","a","b","localeCompare","item","Combobox","Option","data-testid","Group","className","classes","length","Tooltip","span","Trash2","color","size","onClick","emptyOption","store","width","position","withArrow","onOptionSubmit","styles","dropdown","zIndex","Target","div","actions","offset","Filter","Dropdown","Options","ConfirmationDialog","alertStatus","EStatus","ERROR","title","content","Typo","type","opened","onClose","confirmationButtonText","confirmationButtonVariant","cancelButtonText","onSubmit"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/Filter/RemotePersistence/RemotePersistentFilterDropdown.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\"\nimport { Filter, Trash2 } from \"lucide-react\"\nimport classes from \"./RemotePersistentFilterDropdown.module.css\"\nimport { TFilter } from \"../utils\"\nimport { TRemotePersistentFilter } from \"./types\"\nimport { Combobox, Group, useCombobox } from \"@mantine/core\"\nimport { useTranslation } from \"react-i18next\"\nimport { Tooltip } from \"../../Tooltip\"\nimport { ConfirmationDialog } from \"../../ConfirmationDialog\"\nimport { EStatus } from \"../../../genericTypes\"\nimport { Typo } from \"../../Typo\"\nimport { Z_INDEX_LAYER } from \"../../../theme\"\n\ntype TFilterDropdownProps = {\n config: TFilter.Config\n onSelect: (id: string) => void\n onDelete: (id: string) => void\n remotePersistentFilters: TRemotePersistentFilter[]\n}\n\nconst RemotePersistentFilterDropdown: React.FC<TFilterDropdownProps> = ({\n remotePersistentFilters,\n onSelect,\n onDelete,\n}) => {\n const { t } = useTranslation()\n const [selectedFilter, setSelectedFilter] = useState<string>()\n const [modalData, setModalData] = useState<string | null>(null)\n const combobox = useCombobox()\n\n const dropdownList = useMemo(\n () =>\n remotePersistentFilters.map((filter) => ({\n value: filter.id,\n label: filter.filterName,\n })),\n [remotePersistentFilters]\n )\n\n const handleClick = () => combobox.toggleDropdown()\n\n useEffect(() => {\n if (selectedFilter) onSelect(selectedFilter)\n }, [selectedFilter, onSelect])\n\n const handleSelect = useCallback(\n (filter: string) => {\n if (filter) {\n combobox.closeDropdown()\n setSelectedFilter(filter)\n }\n },\n [combobox]\n )\n\n const handleDelete = useCallback((e: React.MouseEvent<SVGSVGElement>, filterId: string) => {\n e.stopPropagation()\n setModalData(filterId)\n }, [])\n\n const handleConfirmDelete = useCallback(() => {\n if (modalData) {\n onDelete(modalData)\n setModalData(null)\n }\n }, [modalData, onDelete])\n\n const options = useMemo(\n () =>\n dropdownList\n .sort((a, b) => a.label.localeCompare(b.label))\n .map((item) => (\n <Combobox.Option data-testid=\"dropdown-option\" value={item.value} key={item.value}>\n <Group className={classes.options}>\n {item.label.length > 35 ? (\n <Tooltip label={item.label}>\n <span className={classes[\"truncate-text\"]}>{item.label}</span>\n </Tooltip>\n ) : (\n <span>{item.label}</span>\n )}\n <Tooltip label={t(\"Delete filter\")}>\n <Trash2\n data-testid={\"delete-icon\"}\n color=\"red\"\n size={16}\n className={classes[\"options-label\"]}\n onClick={(e) => handleDelete(e, item.value)}\n />\n </Tooltip>\n </Group>\n </Combobox.Option>\n )),\n [dropdownList, handleDelete, t]\n )\n\n const emptyOption = (\n <Combobox.Option value={\"\"} key={\"\"}>\n <Group className={classes.options}>\n <span>{t(\"No saved filters available\")}</span>\n </Group>\n </Combobox.Option>\n )\n\n return (\n <>\n <Combobox\n store={combobox}\n width={300}\n position=\"bottom-start\"\n withArrow\n onOptionSubmit={handleSelect}\n styles={{\n dropdown: { zIndex: Z_INDEX_LAYER.GROUND.HIGHEST, maxHeight: \"258px\", overflow: \"auto\" },\n }}\n >\n <Combobox.Target>\n <div data-testid={\"filter-icon\"} className={classes.actions} onClick={handleClick}>\n <Tooltip offset={15} label={t(\"Saved filters\")}>\n <Filter\n data-testid={\"filter-chevron-image\"}\n color={\"var(--filter-chevron-color)\"}\n size={16}\n />\n </Tooltip>\n </div>\n </Combobox.Target>\n\n <Combobox.Dropdown>\n <Combobox.Options>{options.length > 0 ? options : emptyOption}</Combobox.Options>\n </Combobox.Dropdown>\n </Combobox>\n\n <ConfirmationDialog\n alertStatus={EStatus.ERROR}\n title={t(\"Delete filter\")}\n content={<Typo type=\"body\">{t(\"Do you really want to delete this filter?\")}</Typo>}\n opened={!!modalData}\n onClose={() => setModalData(null)}\n confirmationButtonText={t(\"Confirm\")}\n confirmationButtonVariant={\"danger\"}\n cancelButtonText={t(\"Cancel\")}\n onSubmit={handleConfirmDelete}\n />\n </>\n )\n}\n\nexport { RemotePersistentFilterDropdown }\n"],"names":["RemotePersistentFilterDropdown","remotePersistentFilters","onSelect","onDelete","t","useTranslation","selectedFilter","setSelectedFilter","useState","modalData","setModalData","combobox","useCombobox","dropdownList","useMemo","map","filter","value","id","label","filterName","handleClick","toggleDropdown","useEffect","handleSelect","useCallback","closeDropdown","handleDelete","e","filterId","stopPropagation","handleConfirmDelete","options","sort","a","b","localeCompare","item","Combobox","Option","data-testid","Group","className","classes","length","Tooltip","span","Trash2","color","size","onClick","emptyOption","store","width","position","withArrow","onOptionSubmit","styles","dropdown","zIndex","Z_INDEX_LAYER","GROUND","HIGHEST","maxHeight","overflow","Target","div","actions","offset","Filter","Dropdown","Options","ConfirmationDialog","alertStatus","EStatus","ERROR","title","content","Typo","type","opened","onClose","confirmationButtonText","confirmationButtonVariant","cancelButtonText","onSubmit"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get AppHeader(){return AppHeader},get useHeaderMenuPoints(){return useHeaderMenuPoints}});const _jsxruntime=require("react/jsx-runtime");const _LanguageSwitch=require("./languageSwitch/LanguageSwitch");const _index=require("./index");const _icons=require("../../../icons");const _core=require("@mantine/core");const _reacti18next=require("react-i18next");const _lucidereact=require("lucide-react");const _TimeZone=require("./TimeZone");const _conventions=require("../../../theme/conventions");const _AppHeadermodulecss=/*#__PURE__*/_interop_require_default(require("./AppHeader.module.css"));const _Manual=require("./manual/Manual");function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}const AppHeader=({username,menuPoints,logoLink,isLoggedIn,languageSwitch,sessionTimer,logo,isThemeSwitchVisible=true,ianaTimeZone,manualLink})=>{return(0,_jsxruntime.jsxs)("header",{className:_AppHeadermodulecss.default.header,style:{zIndex:_conventions.Z_INDEX_LAYER.GROUND.HIGHEST},children:[(0,_jsxruntime.jsx)("a",{className:_AppHeadermodulecss.default["logo-link"],href:logoLink,children:logo||(0,_jsxruntime.jsx)(_icons.GreenboneLogo,{})}),(0,_jsxruntime.jsxs)("div",{className:_AppHeadermodulecss.default["right-side"],children:[(0,_jsxruntime.jsx)(_TimeZone.TimeZone,{ianaTimeZone:ianaTimeZone}),(0,_jsxruntime.jsx)(_core.Divider,{orientation:"vertical",className:_AppHeadermodulecss.default.divider}),languageSwitch||(0,_jsxruntime.jsx)(_LanguageSwitch.LanguageSwitch,{}),isThemeSwitchVisible&&(0,_jsxruntime.jsxs)(_jsxruntime.Fragment,{children:[(0,_jsxruntime.jsx)(_core.Divider,{orientation:"vertical",className:_AppHeadermodulecss.default.divider}),(0,_jsxruntime.jsx)(_index.ThemeSwitch,{})]}),manualLink&&(0,_jsxruntime.jsx)(_Manual.Manual,{manualLink:manualLink}),isLoggedIn&&(0,_jsxruntime.jsxs)(_jsxruntime.Fragment,{children:[sessionTimer&&(0,_jsxruntime.jsxs)(_jsxruntime.Fragment,{children:[(0,_jsxruntime.jsx)(_core.Divider,{orientation:"vertical",className:_AppHeadermodulecss.default.divider}),sessionTimer]}),(0,_jsxruntime.jsx)(_core.Divider,{orientation:"vertical",className:_AppHeadermodulecss.default.divider}),(0,_jsxruntime.jsx)(_index.UserNav,{menuPoints:menuPoints,username:username})]})]})]})};const useHeaderMenuPoints=logoutCallback=>{const{t}=(0,_reacti18next.useTranslation)();return[{linkText:t("Sign out"),id:"logout",icon:(0,_jsxruntime.jsx)(_lucidereact.Power,{size:14,strokeWidth:1.5}),to:()=>logoutCallback?logoutCallback():null}]};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get AppHeader(){return AppHeader},get useHeaderMenuPoints(){return useHeaderMenuPoints}});const _jsxruntime=require("react/jsx-runtime");const _LanguageSwitch=require("./languageSwitch/LanguageSwitch");const _index=require("./index");const _icons=require("../../../icons");const _core=require("@mantine/core");const _reacti18next=require("react-i18next");const _lucidereact=require("lucide-react");const _TimeZone=require("./TimeZone");const _theme=require("../../../theme");const _AppHeadermodulecss=/*#__PURE__*/_interop_require_default(require("./AppHeader.module.css"));const _Manual=require("./manual/Manual");function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}const AppHeader=({username,menuPoints,logoLink,isLoggedIn,languageSwitch,sessionTimer,logo,isThemeSwitchVisible=true,ianaTimeZone,manualLink,userNavWidth})=>{return(0,_jsxruntime.jsxs)("header",{className:_AppHeadermodulecss.default.header,style:{zIndex:_theme.Z_INDEX_LAYER.GROUND.HIGHEST},children:[(0,_jsxruntime.jsx)("a",{className:_AppHeadermodulecss.default["logo-link"],href:logoLink,children:logo||(0,_jsxruntime.jsx)(_icons.GreenboneLogo,{})}),(0,_jsxruntime.jsxs)("div",{className:_AppHeadermodulecss.default["right-side"],children:[(0,_jsxruntime.jsx)(_TimeZone.TimeZone,{ianaTimeZone:ianaTimeZone}),(0,_jsxruntime.jsx)(_core.Divider,{orientation:"vertical",className:_AppHeadermodulecss.default.divider}),languageSwitch||(0,_jsxruntime.jsx)(_LanguageSwitch.LanguageSwitch,{}),isThemeSwitchVisible&&(0,_jsxruntime.jsxs)(_jsxruntime.Fragment,{children:[(0,_jsxruntime.jsx)(_core.Divider,{orientation:"vertical",className:_AppHeadermodulecss.default.divider}),(0,_jsxruntime.jsx)(_index.ThemeSwitch,{})]}),manualLink&&(0,_jsxruntime.jsx)(_Manual.Manual,{manualLink:manualLink}),isLoggedIn&&(0,_jsxruntime.jsxs)(_jsxruntime.Fragment,{children:[sessionTimer&&(0,_jsxruntime.jsxs)(_jsxruntime.Fragment,{children:[(0,_jsxruntime.jsx)(_core.Divider,{orientation:"vertical",className:_AppHeadermodulecss.default.divider}),sessionTimer]}),(0,_jsxruntime.jsx)(_core.Divider,{orientation:"vertical",className:_AppHeadermodulecss.default.divider}),(0,_jsxruntime.jsx)(_index.UserNav,{menuPoints:menuPoints,username:username,userNavWidth:userNavWidth})]})]})]})};const useHeaderMenuPoints=logoutCallback=>{const{t}=(0,_reacti18next.useTranslation)();return[{linkText:t("Sign out"),id:"logout",icon:(0,_jsxruntime.jsx)(_lucidereact.Power,{size:14,strokeWidth:1.5}),to:()=>logoutCallback?logoutCallback():null}]};
2
2
  //# sourceMappingURL=AppHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Layout/AppHeader/AppHeader.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { LanguageSwitch } from \"./languageSwitch/LanguageSwitch\"\nimport { ThemeSwitch, UserNav } from \"./index\"\nimport { TAppHeaderProps } from \"./types\"\nimport { GreenboneLogo } from \"../../../icons\"\nimport { Divider } from \"@mantine/core\"\nimport { useTranslation } from \"react-i18next\"\nimport { Power } from \"lucide-react\"\nimport { TimeZone } from \"./TimeZone\"\nimport { Z_INDEX_LAYER } from \"../../../theme/conventions\"\nimport classes from \"./AppHeader.module.css\"\nimport { Manual } from \"./manual/Manual\"\n\nexport const AppHeader = ({\n username,\n menuPoints,\n logoLink,\n isLoggedIn,\n languageSwitch,\n sessionTimer,\n logo,\n isThemeSwitchVisible = true,\n ianaTimeZone,\n manualLink,\n}: TAppHeaderProps) => {\n return (\n <header\n className={classes.header}\n style={{\n zIndex: Z_INDEX_LAYER.GROUND.HIGHEST,\n }}\n >\n <a className={classes[\"logo-link\"]} href={logoLink}>\n {logo || <GreenboneLogo />}\n </a>\n <div className={classes[\"right-side\"]}>\n <TimeZone ianaTimeZone={ianaTimeZone} />\n <Divider orientation=\"vertical\" className={classes.divider} />\n {languageSwitch || <LanguageSwitch />}\n {isThemeSwitchVisible && (\n <>\n <Divider orientation=\"vertical\" className={classes.divider} />\n <ThemeSwitch />\n </>\n )}\n {manualLink && <Manual manualLink={manualLink} />}\n {isLoggedIn && (\n <>\n {sessionTimer && (\n <>\n <Divider orientation=\"vertical\" className={classes.divider} />\n {sessionTimer}\n </>\n )}\n <Divider orientation=\"vertical\" className={classes.divider} />\n <UserNav menuPoints={menuPoints} username={username} />\n </>\n )}\n </div>\n </header>\n )\n}\n\nexport const useHeaderMenuPoints = (logoutCallback?: () => void) => {\n const { t } = useTranslation()\n\n return [\n {\n linkText: t(\"Sign out\"),\n id: \"logout\",\n icon: <Power size={14} strokeWidth={1.5} />,\n to: () => (logoutCallback ? logoutCallback() : null),\n },\n ]\n}\n"],"names":["AppHeader","useHeaderMenuPoints","username","menuPoints","logoLink","isLoggedIn","languageSwitch","sessionTimer","logo","isThemeSwitchVisible","ianaTimeZone","manualLink","header","className","classes","style","zIndex","Z_INDEX_LAYER","GROUND","HIGHEST","a","href","GreenboneLogo","div","TimeZone","Divider","orientation","divider","LanguageSwitch","ThemeSwitch","Manual","UserNav","logoutCallback","t","useTranslation","linkText","id","icon","Power","size","strokeWidth","to"],"mappings":"mPAgBaA,mBAAAA,eAkDAC,6BAAAA,oGA9DkB,wDACM,gCAEP,sCACN,6CACO,4CACT,wCACG,yCACK,sGACV,iDACG,uGAEhB,MAAMD,UAAY,CAAC,CACxBE,QAAQ,CACRC,UAAU,CACVC,QAAQ,CACRC,UAAU,CACVC,cAAc,CACdC,YAAY,CACZC,IAAI,CACJC,qBAAuB,IAAI,CAC3BC,YAAY,CACZC,UAAU,CACM,IAChB,MACE,qBAACC,UACCC,UAAWC,2BAAO,CAACF,MAAM,CACzBG,MAAO,CACLC,OAAQC,0BAAa,CAACC,MAAM,CAACC,OAAO,AACtC,YAEA,oBAACC,KAAEP,UAAWC,2BAAO,CAAC,YAAY,CAAEO,KAAMjB,kBACvCI,MAAQ,oBAACc,oBAAa,OAEzB,qBAACC,OAAIV,UAAWC,2BAAO,CAAC,aAAa,WACnC,oBAACU,kBAAQ,EAACd,aAAcA,eACxB,oBAACe,aAAO,EAACC,YAAY,WAAWb,UAAWC,2BAAO,CAACa,OAAO,GACzDrB,gBAAkB,oBAACsB,8BAAc,KACjCnB,sBACC,qDACE,oBAACgB,aAAO,EAACC,YAAY,WAAWb,UAAWC,2BAAO,CAACa,OAAO,GAC1D,oBAACE,kBAAW,QAGflB,YAAc,oBAACmB,cAAM,EAACnB,WAAYA,aAClCN,YACC,qDACGE,cACC,qDACE,oBAACkB,aAAO,EAACC,YAAY,WAAWb,UAAWC,2BAAO,CAACa,OAAO,GACzDpB,gBAGL,oBAACkB,aAAO,EAACC,YAAY,WAAWb,UAAWC,2BAAO,CAACa,OAAO,GAC1D,oBAACI,cAAO,EAAC5B,WAAYA,WAAYD,SAAUA,mBAMvD,EAEO,MAAMD,oBAAsB,AAAC+B,iBAClC,KAAM,CAAEC,CAAC,CAAE,CAAGC,GAAAA,4BAAc,IAE5B,MAAO,CACL,CACEC,SAAUF,EAAE,YACZG,GAAI,SACJC,KAAM,oBAACC,kBAAK,EAACC,KAAM,GAAIC,YAAa,MACpCC,GAAI,IAAOT,eAAiBA,iBAAmB,IACjD,EACD,AACH"}
1
+ {"version":3,"sources":["../../../../../src/components/Layout/AppHeader/AppHeader.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { LanguageSwitch } from \"./languageSwitch/LanguageSwitch\"\nimport { ThemeSwitch, UserNav } from \"./index\"\nimport { TAppHeaderProps } from \"./types\"\nimport { GreenboneLogo } from \"../../../icons\"\nimport { Divider } from \"@mantine/core\"\nimport { useTranslation } from \"react-i18next\"\nimport { Power } from \"lucide-react\"\nimport { TimeZone } from \"./TimeZone\"\nimport { Z_INDEX_LAYER } from \"../../../theme\"\nimport classes from \"./AppHeader.module.css\"\nimport { Manual } from \"./manual/Manual\"\n\nexport const AppHeader = ({\n username,\n menuPoints,\n logoLink,\n isLoggedIn,\n languageSwitch,\n sessionTimer,\n logo,\n isThemeSwitchVisible = true,\n ianaTimeZone,\n manualLink,\n userNavWidth,\n}: TAppHeaderProps) => {\n return (\n <header\n className={classes.header}\n style={{\n zIndex: Z_INDEX_LAYER.GROUND.HIGHEST,\n }}\n >\n <a className={classes[\"logo-link\"]} href={logoLink}>\n {logo || <GreenboneLogo />}\n </a>\n <div className={classes[\"right-side\"]}>\n <TimeZone ianaTimeZone={ianaTimeZone} />\n <Divider orientation=\"vertical\" className={classes.divider} />\n {languageSwitch || <LanguageSwitch />}\n {isThemeSwitchVisible && (\n <>\n <Divider orientation=\"vertical\" className={classes.divider} />\n <ThemeSwitch />\n </>\n )}\n {manualLink && <Manual manualLink={manualLink} />}\n {isLoggedIn && (\n <>\n {sessionTimer && (\n <>\n <Divider orientation=\"vertical\" className={classes.divider} />\n {sessionTimer}\n </>\n )}\n <Divider orientation=\"vertical\" className={classes.divider} />\n <UserNav menuPoints={menuPoints} username={username} userNavWidth={userNavWidth} />\n </>\n )}\n </div>\n </header>\n )\n}\n\nexport const useHeaderMenuPoints = (logoutCallback?: () => void) => {\n const { t } = useTranslation()\n\n return [\n {\n linkText: t(\"Sign out\"),\n id: \"logout\",\n icon: <Power size={14} strokeWidth={1.5} />,\n to: () => (logoutCallback ? logoutCallback() : null),\n },\n ]\n}\n"],"names":["AppHeader","useHeaderMenuPoints","username","menuPoints","logoLink","isLoggedIn","languageSwitch","sessionTimer","logo","isThemeSwitchVisible","ianaTimeZone","manualLink","userNavWidth","header","className","classes","style","zIndex","Z_INDEX_LAYER","GROUND","HIGHEST","a","href","GreenboneLogo","div","TimeZone","Divider","orientation","divider","LanguageSwitch","ThemeSwitch","Manual","UserNav","logoutCallback","t","useTranslation","linkText","id","icon","Power","size","strokeWidth","to"],"mappings":"mPAgBaA,mBAAAA,eAmDAC,6BAAAA,oGA/DkB,wDACM,gCAEP,sCACN,6CACO,4CACT,wCACG,mCACK,0FACV,iDACG,uGAEhB,MAAMD,UAAY,CAAC,CACxBE,QAAQ,CACRC,UAAU,CACVC,QAAQ,CACRC,UAAU,CACVC,cAAc,CACdC,YAAY,CACZC,IAAI,CACJC,qBAAuB,IAAI,CAC3BC,YAAY,CACZC,UAAU,CACVC,YAAY,CACI,IAChB,MACE,qBAACC,UACCC,UAAWC,2BAAO,CAACF,MAAM,CACzBG,MAAO,CACLC,OAAQC,oBAAa,CAACC,MAAM,CAACC,OAAO,AACtC,YAEA,oBAACC,KAAEP,UAAWC,2BAAO,CAAC,YAAY,CAAEO,KAAMlB,kBACvCI,MAAQ,oBAACe,oBAAa,OAEzB,qBAACC,OAAIV,UAAWC,2BAAO,CAAC,aAAa,WACnC,oBAACU,kBAAQ,EAACf,aAAcA,eACxB,oBAACgB,aAAO,EAACC,YAAY,WAAWb,UAAWC,2BAAO,CAACa,OAAO,GACzDtB,gBAAkB,oBAACuB,8BAAc,KACjCpB,sBACC,qDACE,oBAACiB,aAAO,EAACC,YAAY,WAAWb,UAAWC,2BAAO,CAACa,OAAO,GAC1D,oBAACE,kBAAW,QAGfnB,YAAc,oBAACoB,cAAM,EAACpB,WAAYA,aAClCN,YACC,qDACGE,cACC,qDACE,oBAACmB,aAAO,EAACC,YAAY,WAAWb,UAAWC,2BAAO,CAACa,OAAO,GACzDrB,gBAGL,oBAACmB,aAAO,EAACC,YAAY,WAAWb,UAAWC,2BAAO,CAACa,OAAO,GAC1D,oBAACI,cAAO,EAAC7B,WAAYA,WAAYD,SAAUA,SAAUU,aAAcA,uBAM/E,EAEO,MAAMX,oBAAsB,AAACgC,iBAClC,KAAM,CAAEC,CAAC,CAAE,CAAGC,GAAAA,4BAAc,IAE5B,MAAO,CACL,CACEC,SAAUF,EAAE,YACZG,GAAI,SACJC,KAAM,oBAACC,kBAAK,EAACC,KAAM,GAAIC,YAAa,MACpCC,GAAI,IAAOT,eAAiBA,iBAAmB,IACjD,EACD,AACH"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"UserNav",{enumerable:true,get:function(){return UserNav}});const _jsxruntime=require("react/jsx-runtime");const _core=require("@mantine/core");const _NavItem=require("./NavItem");const _lucidereact=require("lucide-react");const _UserNavmodulecss=/*#__PURE__*/_interop_require_default(require("./UserNav.module.css"));const _conventions=require("../../../../theme/conventions");function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}const UserNav=({username,menuPoints})=>{return(0,_jsxruntime.jsxs)(_core.Menu,{shadow:"md",trigger:"hover",width:140,closeDelay:100,offset:11,children:[(0,_jsxruntime.jsx)(_core.Menu.Target,{children:(0,_jsxruntime.jsxs)("div",{className:_UserNavmodulecss.default["user-nav-wrapper"],children:[(0,_jsxruntime.jsx)("div",{className:_UserNavmodulecss.default["user-name"],children:username}),(0,_jsxruntime.jsx)("div",{className:_UserNavmodulecss.default["user-icon-wrapper"],children:(0,_jsxruntime.jsx)(_lucidereact.UserCircle2,{size:_conventions.ICON_SIZES.MEDIUM,strokeWidth:1.5})})]})}),(0,_jsxruntime.jsx)(_core.Menu.Dropdown,{children:menuPoints.map(menuPoint=>{if(typeof menuPoint.to==="string"){return(0,_jsxruntime.jsx)(_core.Menu.Item,{component:"a",href:menuPoint.to,children:(0,_jsxruntime.jsx)(_NavItem.NavItem,{linkText:menuPoint.linkText,icon:menuPoint.icon})},menuPoint.linkText)}if(typeof menuPoint.to==="function"){return(0,_jsxruntime.jsx)("div",{onClick:menuPoint.to,children:(0,_jsxruntime.jsx)(_core.Menu.Item,{children:(0,_jsxruntime.jsx)(_NavItem.NavItem,{linkText:menuPoint.linkText,icon:menuPoint.icon})})},menuPoint.linkText)}})})]})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"UserNav",{enumerable:true,get:function(){return UserNav}});const _jsxruntime=require("react/jsx-runtime");const _core=require("@mantine/core");const _NavItem=require("./NavItem");const _lucidereact=require("lucide-react");const _UserNavmodulecss=/*#__PURE__*/_interop_require_default(require("./UserNav.module.css"));const _theme=require("../../../../theme");function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}const UserNav=({username,menuPoints,userNavWidth=140})=>{return(0,_jsxruntime.jsxs)(_core.Menu,{shadow:"md",trigger:"hover",width:userNavWidth,closeDelay:100,offset:11,children:[(0,_jsxruntime.jsx)(_core.Menu.Target,{children:(0,_jsxruntime.jsxs)("div",{className:_UserNavmodulecss.default["user-nav-wrapper"],children:[(0,_jsxruntime.jsx)("div",{className:_UserNavmodulecss.default["user-name"],children:username}),(0,_jsxruntime.jsx)("div",{className:_UserNavmodulecss.default["user-icon-wrapper"],children:(0,_jsxruntime.jsx)(_lucidereact.UserCircle2,{size:_theme.ICON_SIZES.MEDIUM,strokeWidth:1.5})})]})}),(0,_jsxruntime.jsx)(_core.Menu.Dropdown,{children:menuPoints.map(menuPoint=>{if(typeof menuPoint.to==="string"){return(0,_jsxruntime.jsx)(_core.Menu.Item,{component:"a",href:menuPoint.to,children:(0,_jsxruntime.jsx)(_NavItem.NavItem,{linkText:menuPoint.linkText,icon:menuPoint.icon})},menuPoint.linkText)}if(typeof menuPoint.to==="function"){return(0,_jsxruntime.jsx)("div",{onClick:menuPoint.to,children:(0,_jsxruntime.jsx)(_core.Menu.Item,{children:(0,_jsxruntime.jsx)(_NavItem.NavItem,{linkText:menuPoint.linkText,icon:menuPoint.icon})})},menuPoint.linkText)}})})]})};
2
2
  //# sourceMappingURL=UserNav.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Layout/AppHeader/userNav/UserNav.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Menu } from \"@mantine/core\"\nimport { TUserNavProps } from \"../types\"\nimport { NavItem } from \"./NavItem\"\nimport { UserCircle2 } from \"lucide-react\"\nimport classes from \"./UserNav.module.css\"\nimport { ICON_SIZES } from \"../../../../theme/conventions\"\n\nexport const UserNav = ({ username, menuPoints }: TUserNavProps) => {\n return (\n <Menu shadow=\"md\" trigger=\"hover\" width={140} closeDelay={100} offset={11}>\n <Menu.Target>\n <div className={classes[\"user-nav-wrapper\"]}>\n <div className={classes[\"user-name\"]}>{username}</div>\n <div className={classes[\"user-icon-wrapper\"]}>\n <UserCircle2 size={ICON_SIZES.MEDIUM} strokeWidth={1.5} />\n </div>\n </div>\n </Menu.Target>\n\n <Menu.Dropdown>\n {menuPoints.map((menuPoint) => {\n if (typeof menuPoint.to === \"string\") {\n return (\n <Menu.Item component={\"a\"} href={menuPoint.to} key={menuPoint.linkText}>\n <NavItem linkText={menuPoint.linkText} icon={menuPoint.icon} />\n </Menu.Item>\n )\n }\n if (typeof menuPoint.to === \"function\") {\n return (\n <div key={menuPoint.linkText} onClick={menuPoint.to}>\n <Menu.Item>\n <NavItem linkText={menuPoint.linkText} icon={menuPoint.icon} />\n </Menu.Item>\n </div>\n )\n }\n })}\n </Menu.Dropdown>\n </Menu>\n )\n}\n"],"names":["UserNav","username","menuPoints","Menu","shadow","trigger","width","closeDelay","offset","Target","div","className","classes","UserCircle2","size","ICON_SIZES","MEDIUM","strokeWidth","Dropdown","map","menuPoint","to","Item","component","href","NavItem","linkText","icon","onClick"],"mappings":"oGAWaA,iDAAAA,8EAPQ,wCAEG,wCACI,sFACR,oDACO,qHAEpB,MAAMA,QAAU,CAAC,CAAEC,QAAQ,CAAEC,UAAU,CAAiB,IAC7D,MACE,qBAACC,UAAI,EAACC,OAAO,KAAKC,QAAQ,QAAQC,MAAO,IAAKC,WAAY,IAAKC,OAAQ,aACrE,oBAACL,UAAI,CAACM,MAAM,WACV,qBAACC,OAAIC,UAAWC,yBAAO,CAAC,mBAAmB,WACzC,oBAACF,OAAIC,UAAWC,yBAAO,CAAC,YAAY,UAAGX,WACvC,oBAACS,OAAIC,UAAWC,yBAAO,CAAC,oBAAoB,UAC1C,oBAACC,wBAAW,EAACC,KAAMC,uBAAU,CAACC,MAAM,CAAEC,YAAa,aAKzD,oBAACd,UAAI,CAACe,QAAQ,WACXhB,WAAWiB,GAAG,CAAC,AAACC,YACf,GAAI,OAAOA,UAAUC,EAAE,GAAK,SAAU,CACpC,MACE,oBAAClB,UAAI,CAACmB,IAAI,EAACC,UAAW,IAAKC,KAAMJ,UAAUC,EAAE,UAC3C,oBAACI,gBAAO,EAACC,SAAUN,UAAUM,QAAQ,CAAEC,KAAMP,UAAUO,IAAI,IADTP,UAAUM,QAAQ,CAI1E,CACA,GAAI,OAAON,UAAUC,EAAE,GAAK,WAAY,CACtC,MACE,oBAACX,OAA6BkB,QAASR,UAAUC,EAAE,UACjD,oBAAClB,UAAI,CAACmB,IAAI,WACR,oBAACG,gBAAO,EAACC,SAAUN,UAAUM,QAAQ,CAAEC,KAAMP,UAAUO,IAAI,MAFrDP,UAAUM,QAAQ,CAMhC,CACF,OAIR"}
1
+ {"version":3,"sources":["../../../../../../src/components/Layout/AppHeader/userNav/UserNav.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Menu } from \"@mantine/core\"\nimport { TUserNavProps } from \"../types\"\nimport { NavItem } from \"./NavItem\"\nimport { UserCircle2 } from \"lucide-react\"\nimport classes from \"./UserNav.module.css\"\nimport { ICON_SIZES } from \"../../../../theme\"\n\nexport const UserNav = ({ username, menuPoints, userNavWidth = 140 }: TUserNavProps) => {\n return (\n <Menu shadow=\"md\" trigger=\"hover\" width={userNavWidth} closeDelay={100} offset={11}>\n <Menu.Target>\n <div className={classes[\"user-nav-wrapper\"]}>\n <div className={classes[\"user-name\"]}>{username}</div>\n <div className={classes[\"user-icon-wrapper\"]}>\n <UserCircle2 size={ICON_SIZES.MEDIUM} strokeWidth={1.5} />\n </div>\n </div>\n </Menu.Target>\n\n <Menu.Dropdown>\n {menuPoints.map((menuPoint) => {\n if (typeof menuPoint.to === \"string\") {\n return (\n <Menu.Item component={\"a\"} href={menuPoint.to} key={menuPoint.linkText}>\n <NavItem linkText={menuPoint.linkText} icon={menuPoint.icon} />\n </Menu.Item>\n )\n }\n if (typeof menuPoint.to === \"function\") {\n return (\n <div key={menuPoint.linkText} onClick={menuPoint.to}>\n <Menu.Item>\n <NavItem linkText={menuPoint.linkText} icon={menuPoint.icon} />\n </Menu.Item>\n </div>\n )\n }\n })}\n </Menu.Dropdown>\n </Menu>\n )\n}\n"],"names":["UserNav","username","menuPoints","userNavWidth","Menu","shadow","trigger","width","closeDelay","offset","Target","div","className","classes","UserCircle2","size","ICON_SIZES","MEDIUM","strokeWidth","Dropdown","map","menuPoint","to","Item","component","href","NavItem","linkText","icon","onClick"],"mappings":"oGAWaA,iDAAAA,8EAPQ,wCAEG,wCACI,sFACR,8CACO,yGAEpB,MAAMA,QAAU,CAAC,CAAEC,QAAQ,CAAEC,UAAU,CAAEC,aAAe,GAAG,CAAiB,IACjF,MACE,qBAACC,UAAI,EAACC,OAAO,KAAKC,QAAQ,QAAQC,MAAOJ,aAAcK,WAAY,IAAKC,OAAQ,aAC9E,oBAACL,UAAI,CAACM,MAAM,WACV,qBAACC,OAAIC,UAAWC,yBAAO,CAAC,mBAAmB,WACzC,oBAACF,OAAIC,UAAWC,yBAAO,CAAC,YAAY,UAAGZ,WACvC,oBAACU,OAAIC,UAAWC,yBAAO,CAAC,oBAAoB,UAC1C,oBAACC,wBAAW,EAACC,KAAMC,iBAAU,CAACC,MAAM,CAAEC,YAAa,aAKzD,oBAACd,UAAI,CAACe,QAAQ,WACXjB,WAAWkB,GAAG,CAAC,AAACC,YACf,GAAI,OAAOA,UAAUC,EAAE,GAAK,SAAU,CACpC,MACE,oBAAClB,UAAI,CAACmB,IAAI,EAACC,UAAW,IAAKC,KAAMJ,UAAUC,EAAE,UAC3C,oBAACI,gBAAO,EAACC,SAAUN,UAAUM,QAAQ,CAAEC,KAAMP,UAAUO,IAAI,IADTP,UAAUM,QAAQ,CAI1E,CACA,GAAI,OAAON,UAAUC,EAAE,GAAK,WAAY,CACtC,MACE,oBAACX,OAA6BkB,QAASR,UAAUC,EAAE,UACjD,oBAAClB,UAAI,CAACmB,IAAI,WACR,oBAACG,gBAAO,EAACC,SAAUN,UAAUM,QAAQ,CAAEC,KAAMP,UAAUO,IAAI,MAFrDP,UAAUM,QAAQ,CAMhC,CACF,OAIR"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"AppNavigation",{enumerable:true,get:function(){return AppNavigation}});const _jsxruntime=require("react/jsx-runtime");const _core=require("@mantine/core");const _AppNavigationLink=require("./AppNavigationLink");const _AppNavigationmodulecss=/*#__PURE__*/_interop_require_default(require("./AppNavigation.module.css"));function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}const AppNavigation=({menuPoints,as})=>{return(0,_jsxruntime.jsx)("div",{className:_AppNavigationmodulecss.default.navigation,children:menuPoints.map((navSection,navSectionIndex,navSectionArray)=>navSection.map((item,itemIndex,itemArray)=>{var _item_subNav;const submenu=item===null||item===void 0?void 0:(_item_subNav=item.subNav)===null||_item_subNav===void 0?void 0:_item_subNav.map(item=>(0,_jsxruntime.jsx)(_AppNavigationLink.AppNavigationLink,{component:item.active&&item.isPathMatch?"span":item.isExternal?"a":as,to:item.to,href:item.to,active:item.active,label:item.label,leftSection:item.icon?(0,_jsxruntime.jsx)(item.icon,{}):undefined,rightSection:item.rightSection||undefined,className:item.icon?"":_AppNavigationmodulecss.default["navigation-item-without-icon"]},item.key||item.to));return(0,_jsxruntime.jsxs)("div",{children:[(0,_jsxruntime.jsx)(_AppNavigationLink.AppNavigationLink,{component:item.active&&item.isPathMatch?"span":item.isExternal?"a":as,to:item.to,active:item.active,href:item.to,label:item.label,rightSection:item.rightSection,leftSection:item.icon?(0,_jsxruntime.jsx)(item.icon,{}):undefined,defaultOpened:item.defaultOpened,children:submenu}),itemIndex===itemArray.length-1&&navSectionIndex!==navSectionArray.length-1&&(0,_jsxruntime.jsx)(_core.Divider,{className:_AppNavigationmodulecss.default["divider-root"],my:"sm"})]},item.key||item.to)}))})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"AppNavigation",{enumerable:true,get:function(){return AppNavigation}});const _jsxruntime=require("react/jsx-runtime");const _core=require("@mantine/core");const _AppNavigationLink=require("./AppNavigationLink");const _AppNavigationmodulecss=/*#__PURE__*/_interop_require_default(require("./AppNavigation.module.css"));function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}const AppNavigation=({menuPoints,as})=>{return(0,_jsxruntime.jsx)("div",{className:_AppNavigationmodulecss.default.navigation,children:menuPoints.map((navSection,navSectionIndex,navSectionArray)=>navSection.map((item,itemIndex,itemArray)=>{var _item_subNav;const submenu=item===null||item===void 0?void 0:(_item_subNav=item.subNav)===null||_item_subNav===void 0?void 0:_item_subNav.map(item=>(0,_jsxruntime.jsx)(_AppNavigationLink.AppNavigationLink,{component:item.active&&item.isPathMatch?"span":item.isExternal?"a":as,to:item.to,href:item.to,active:item.active,label:item.label,leftSection:item.icon?(0,_jsxruntime.jsx)(item.icon,{}):undefined,rightSection:item.rightSection||undefined,className:item.icon?"":_AppNavigationmodulecss.default["navigation-item-without-icon"],target:item.openInNewTab?"_blank":"_self",rel:item.openInNewTab?"noopener noreferrer":undefined},item.key||item.to));return(0,_jsxruntime.jsxs)("div",{children:[(0,_jsxruntime.jsx)(_AppNavigationLink.AppNavigationLink,{component:item.active&&item.isPathMatch?"span":item.isExternal?"a":as,to:item.to,active:item.active,href:item.to,label:item.label,rightSection:item.rightSection,leftSection:item.icon?(0,_jsxruntime.jsx)(item.icon,{}):undefined,defaultOpened:item.defaultOpened,target:item.openInNewTab?"_blank":"_self",rel:item.openInNewTab?"noopener noreferrer":undefined,children:submenu}),itemIndex===itemArray.length-1&&navSectionIndex!==navSectionArray.length-1&&(0,_jsxruntime.jsx)(_core.Divider,{className:_AppNavigationmodulecss.default["divider-root"],my:"sm"})]},item.key||item.to)}))})};
2
2
  //# sourceMappingURL=AppNavigation.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Layout/AppNavigation/AppNavigation.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Divider } from \"@mantine/core\"\nimport { AppNavigationLink } from \"./AppNavigationLink\"\nimport { TNavLinkConfig } from \"./Menu/types\"\nimport classes from \"./AppNavigation.module.css\"\n\ntype TAppNavigationProps = {\n menuPoints: TNavLinkConfig[][]\n as: any\n}\n\nexport const AppNavigation = ({ menuPoints, as }: TAppNavigationProps) => {\n return (\n <div className={classes.navigation}>\n {menuPoints.map((navSection, navSectionIndex, navSectionArray) =>\n navSection.map((item, itemIndex, itemArray) => {\n const submenu = item?.subNav?.map((item) => (\n <AppNavigationLink\n component={item.active && item.isPathMatch ? \"span\" : item.isExternal ? \"a\" : as}\n to={item.to}\n href={item.to}\n key={item.key || item.to}\n active={item.active}\n label={item.label}\n leftSection={item.icon ? <item.icon /> : undefined}\n rightSection={item.rightSection || undefined}\n className={item.icon ? \"\" : classes[\"navigation-item-without-icon\"]}\n />\n ))\n return (\n <div key={item.key || item.to}>\n <AppNavigationLink\n component={item.active && item.isPathMatch ? \"span\" : item.isExternal ? \"a\" : as}\n to={item.to}\n active={item.active}\n href={item.to}\n label={item.label}\n rightSection={item.rightSection}\n leftSection={item.icon ? <item.icon /> : undefined}\n defaultOpened={item.defaultOpened}\n >\n {submenu}\n </AppNavigationLink>\n {itemIndex === itemArray.length - 1 &&\n navSectionIndex !== navSectionArray.length - 1 && (\n <Divider className={classes[\"divider-root\"]} my=\"sm\" />\n )}\n </div>\n )\n })\n )}\n </div>\n )\n}\n"],"names":["AppNavigation","menuPoints","as","div","className","classes","navigation","map","navSection","navSectionIndex","navSectionArray","item","itemIndex","itemArray","submenu","subNav","AppNavigationLink","component","active","isPathMatch","isExternal","to","href","label","leftSection","icon","undefined","rightSection","key","defaultOpened","length","Divider","my"],"mappings":"oGAcaA,uDAAAA,oFAVW,kDACU,mGAEd,mHAOb,MAAMA,cAAgB,CAAC,CAAEC,UAAU,CAAEC,EAAE,CAAuB,IACnE,MACE,oBAACC,OAAIC,UAAWC,+BAAO,CAACC,UAAU,UAC/BL,WAAWM,GAAG,CAAC,CAACC,WAAYC,gBAAiBC,kBAC5CF,WAAWD,GAAG,CAAC,CAACI,KAAMC,UAAWC,iBACfF,aAAhB,MAAMG,QAAUH,aAAAA,sBAAAA,aAAAA,KAAMI,MAAM,UAAZJ,6BAAAA,aAAcJ,GAAG,CAAC,AAACI,MACjC,oBAACK,oCAAiB,EAChBC,UAAWN,KAAKO,MAAM,EAAIP,KAAKQ,WAAW,CAAG,OAASR,KAAKS,UAAU,CAAG,IAAMlB,GAC9EmB,GAAIV,KAAKU,EAAE,CACXC,KAAMX,KAAKU,EAAE,CAEbH,OAAQP,KAAKO,MAAM,CACnBK,MAAOZ,KAAKY,KAAK,CACjBC,YAAab,KAAKc,IAAI,CAAG,oBAACd,KAAKc,IAAI,KAAMC,UACzCC,aAAchB,KAAKgB,YAAY,EAAID,UACnCtB,UAAWO,KAAKc,IAAI,CAAG,GAAKpB,+BAAO,CAAC,+BAA+B,EAL9DM,KAAKiB,GAAG,EAAIjB,KAAKU,EAAE,GAQ5B,MACE,qBAAClB,iBACC,oBAACa,oCAAiB,EAChBC,UAAWN,KAAKO,MAAM,EAAIP,KAAKQ,WAAW,CAAG,OAASR,KAAKS,UAAU,CAAG,IAAMlB,GAC9EmB,GAAIV,KAAKU,EAAE,CACXH,OAAQP,KAAKO,MAAM,CACnBI,KAAMX,KAAKU,EAAE,CACbE,MAAOZ,KAAKY,KAAK,CACjBI,aAAchB,KAAKgB,YAAY,CAC/BH,YAAab,KAAKc,IAAI,CAAG,oBAACd,KAAKc,IAAI,KAAMC,UACzCG,cAAelB,KAAKkB,aAAa,UAEhCf,UAEFF,YAAcC,UAAUiB,MAAM,CAAG,GAChCrB,kBAAoBC,gBAAgBoB,MAAM,CAAG,GAC3C,oBAACC,aAAO,EAAC3B,UAAWC,+BAAO,CAAC,eAAe,CAAE2B,GAAG,SAf5CrB,KAAKiB,GAAG,EAAIjB,KAAKU,EAAE,CAmBjC,KAIR"}
1
+ {"version":3,"sources":["../../../../../src/components/Layout/AppNavigation/AppNavigation.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Divider } from \"@mantine/core\"\nimport { AppNavigationLink } from \"./AppNavigationLink\"\nimport { TNavLinkConfig } from \"./Menu/types\"\nimport classes from \"./AppNavigation.module.css\"\n\ntype TAppNavigationProps = {\n menuPoints: TNavLinkConfig[][]\n as: any\n}\n\nexport const AppNavigation = ({ menuPoints, as }: TAppNavigationProps) => {\n return (\n <div className={classes.navigation}>\n {menuPoints.map((navSection, navSectionIndex, navSectionArray) =>\n navSection.map((item, itemIndex, itemArray) => {\n const submenu = item?.subNav?.map((item) => (\n <AppNavigationLink\n component={item.active && item.isPathMatch ? \"span\" : item.isExternal ? \"a\" : as}\n to={item.to}\n href={item.to}\n key={item.key || item.to}\n active={item.active}\n label={item.label}\n leftSection={item.icon ? <item.icon /> : undefined}\n rightSection={item.rightSection || undefined}\n className={item.icon ? \"\" : classes[\"navigation-item-without-icon\"]}\n target={item.openInNewTab ? \"_blank\" : \"_self\"}\n rel={item.openInNewTab ? \"noopener noreferrer\" : undefined}\n />\n ))\n return (\n <div key={item.key || item.to}>\n <AppNavigationLink\n component={item.active && item.isPathMatch ? \"span\" : item.isExternal ? \"a\" : as}\n to={item.to}\n active={item.active}\n href={item.to}\n label={item.label}\n rightSection={item.rightSection}\n leftSection={item.icon ? <item.icon /> : undefined}\n defaultOpened={item.defaultOpened}\n target={item.openInNewTab ? \"_blank\" : \"_self\"}\n rel={item.openInNewTab ? \"noopener noreferrer\" : undefined}\n >\n {submenu}\n </AppNavigationLink>\n {itemIndex === itemArray.length - 1 &&\n navSectionIndex !== navSectionArray.length - 1 && (\n <Divider className={classes[\"divider-root\"]} my=\"sm\" />\n )}\n </div>\n )\n })\n )}\n </div>\n )\n}\n"],"names":["AppNavigation","menuPoints","as","div","className","classes","navigation","map","navSection","navSectionIndex","navSectionArray","item","itemIndex","itemArray","submenu","subNav","AppNavigationLink","component","active","isPathMatch","isExternal","to","href","label","leftSection","icon","undefined","rightSection","target","openInNewTab","rel","key","defaultOpened","length","Divider","my"],"mappings":"oGAcaA,uDAAAA,oFAVW,kDACU,mGAEd,mHAOb,MAAMA,cAAgB,CAAC,CAAEC,UAAU,CAAEC,EAAE,CAAuB,IACnE,MACE,oBAACC,OAAIC,UAAWC,+BAAO,CAACC,UAAU,UAC/BL,WAAWM,GAAG,CAAC,CAACC,WAAYC,gBAAiBC,kBAC5CF,WAAWD,GAAG,CAAC,CAACI,KAAMC,UAAWC,iBACfF,aAAhB,MAAMG,QAAUH,aAAAA,sBAAAA,aAAAA,KAAMI,MAAM,UAAZJ,6BAAAA,aAAcJ,GAAG,CAAC,AAACI,MACjC,oBAACK,oCAAiB,EAChBC,UAAWN,KAAKO,MAAM,EAAIP,KAAKQ,WAAW,CAAG,OAASR,KAAKS,UAAU,CAAG,IAAMlB,GAC9EmB,GAAIV,KAAKU,EAAE,CACXC,KAAMX,KAAKU,EAAE,CAEbH,OAAQP,KAAKO,MAAM,CACnBK,MAAOZ,KAAKY,KAAK,CACjBC,YAAab,KAAKc,IAAI,CAAG,oBAACd,KAAKc,IAAI,KAAMC,UACzCC,aAAchB,KAAKgB,YAAY,EAAID,UACnCtB,UAAWO,KAAKc,IAAI,CAAG,GAAKpB,+BAAO,CAAC,+BAA+B,CACnEuB,OAAQjB,KAAKkB,YAAY,CAAG,SAAW,QACvCC,IAAKnB,KAAKkB,YAAY,CAAG,sBAAwBH,WAP5Cf,KAAKoB,GAAG,EAAIpB,KAAKU,EAAE,GAU5B,MACE,qBAAClB,iBACC,oBAACa,oCAAiB,EAChBC,UAAWN,KAAKO,MAAM,EAAIP,KAAKQ,WAAW,CAAG,OAASR,KAAKS,UAAU,CAAG,IAAMlB,GAC9EmB,GAAIV,KAAKU,EAAE,CACXH,OAAQP,KAAKO,MAAM,CACnBI,KAAMX,KAAKU,EAAE,CACbE,MAAOZ,KAAKY,KAAK,CACjBI,aAAchB,KAAKgB,YAAY,CAC/BH,YAAab,KAAKc,IAAI,CAAG,oBAACd,KAAKc,IAAI,KAAMC,UACzCM,cAAerB,KAAKqB,aAAa,CACjCJ,OAAQjB,KAAKkB,YAAY,CAAG,SAAW,QACvCC,IAAKnB,KAAKkB,YAAY,CAAG,sBAAwBH,mBAEhDZ,UAEFF,YAAcC,UAAUoB,MAAM,CAAG,GAChCxB,kBAAoBC,gBAAgBuB,MAAM,CAAG,GAC3C,oBAACC,aAAO,EAAC9B,UAAWC,+BAAO,CAAC,eAAe,CAAE8B,GAAG,SAjB5CxB,KAAKoB,GAAG,EAAIpB,KAAKU,EAAE,CAqBjC,KAIR"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get NavLinkConfigFactory(){return NavLinkConfigFactory},get getMenuItemFromString(){return getMenuItemFromString},get parseMenuEnvString(){return parseMenuEnvString},get useBuildUseNavigationMenuPoints(){return useBuildUseNavigationMenuPoints},get useMenuItemStringsToNavigationMenuItemPoints(){return useMenuItemStringsToNavigationMenuItemPoints}});const _NavigationLink=require("../NavigationLink");const _buildUrl=require("../NavigationLink/buildUrl");const _isActive=require("../NavigationLink/isActive");const _reacti18next=require("react-i18next");const _menuItems=require("./menuItems");const _core=require("@mantine/core");const NavLinkConfigFactory=(currentPath,requester)=>({icon,label,to,owner,subNav})=>{const fullTargetUrl=to?(0,_buildUrl.buildUrl)(owner,requester,to):"";const defaultOpened=!!(subNav===null||subNav===void 0?void 0:subNav.find(sn=>sn.to===currentPath));return{isPathMatch:currentPath.endsWith(fullTargetUrl),active:to?(0,_isActive.isActive)(currentPath,fullTargetUrl):false,icon:icon,isExternal:owner!==requester,label:label,to:fullTargetUrl,defaultOpened:defaultOpened,subNav:subNav?subNav.map(sn=>({isPathMatch:currentPath.endsWith(sn.to||""),label:sn.label,to:sn.to?(0,_buildUrl.buildUrl)(sn.owner,requester,sn.to):"",active:sn.to?(0,_isActive.isActive)(currentPath,sn.to):false,isExternal:sn.owner!==requester})):undefined}};const useBuildUseNavigationMenuPoints=({requestingDomain,menuPointsCategories,currentLocation,additional,realmAccessRoles})=>{const factory=NavLinkConfigFactory(currentLocation,requestingDomain);const menuPoints=useMenuItemStringsToNavigationMenuItemPoints(menuPointsCategories,factory,realmAccessRoles);if(additional)menuPoints.push(additional.map(factory));return menuPoints};const getMenuItemFromString=(menuItem,factory,t,theme,realmAccessRoles)=>{switch(menuItem){case _NavigationLink.ESideNavEnum.VI:return(0,_menuItems.getVIDomainMenuItemsVulnerabilityIntel)(factory,t,theme);case _NavigationLink.ESideNavEnum.ASSET:return(0,_menuItems.getAssetDomainMenuItems)(factory,t,theme,realmAccessRoles);case _NavigationLink.ESideNavEnum.SCAN:return(0,_menuItems.getScanDomainMenuItems)(factory,t,theme);case _NavigationLink.ESideNavEnum.USER:return(0,_menuItems.getUserDomainMenuItems)(factory,t,theme,realmAccessRoles);case _NavigationLink.ESideNavEnum.SYSTEM:return(0,_menuItems.getSystemManagementDomainMenuItems)(factory,t,theme);case _NavigationLink.ESideNavEnum.NOTIFICATIONS:return(0,_menuItems.getNotificationsDomainMenuItems)(factory,t,theme);default:return[]}};const useMenuItemStringsToNavigationMenuItemPoints=(menuItems,factory,realmAccessRoles)=>{const{t}=(0,_reacti18next.useTranslation)();const theme=(0,_core.useMantineTheme)();return menuItems.flatMap(item=>getMenuItemFromString(item,factory,t,theme,realmAccessRoles))};const parseMenuEnvString=(envString,separator=",")=>envString.split(separator);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get NavLinkConfigFactory(){return NavLinkConfigFactory},get getMenuItemFromString(){return getMenuItemFromString},get parseMenuEnvString(){return parseMenuEnvString},get useBuildUseNavigationMenuPoints(){return useBuildUseNavigationMenuPoints},get useMenuItemStringsToNavigationMenuItemPoints(){return useMenuItemStringsToNavigationMenuItemPoints}});const _NavigationLink=require("../NavigationLink");const _buildUrl=require("../NavigationLink/buildUrl");const _isActive=require("../NavigationLink/isActive");const _reacti18next=require("react-i18next");const _menuItems=require("./menuItems");const _core=require("@mantine/core");const NavLinkConfigFactory=(currentPath,requester)=>({icon,label,to,owner,subNav,openInNewTab})=>{const fullTargetUrl=to?(0,_buildUrl.buildUrl)(owner,requester,to):"";const defaultOpened=!!(subNav===null||subNav===void 0?void 0:subNav.find(sn=>sn.to===currentPath));return{isPathMatch:currentPath.endsWith(fullTargetUrl),active:to?(0,_isActive.isActive)(currentPath,fullTargetUrl):false,icon:icon,isExternal:owner!==requester,label:label,to:fullTargetUrl,defaultOpened:defaultOpened,openInNewTab,subNav:subNav?subNav.map(sn=>({isPathMatch:currentPath.endsWith(sn.to||""),label:sn.label,to:sn.to?(0,_buildUrl.buildUrl)(sn.owner,requester,sn.to):"",active:sn.to?(0,_isActive.isActive)(currentPath,sn.to):false,isExternal:sn.owner!==requester,openInNewTab})):undefined}};const useBuildUseNavigationMenuPoints=({requestingDomain,menuPointsCategories,currentLocation,additional,realmAccessRoles})=>{const factory=NavLinkConfigFactory(currentLocation,requestingDomain);const menuPoints=useMenuItemStringsToNavigationMenuItemPoints(menuPointsCategories,factory,realmAccessRoles);if(additional)menuPoints.push(additional.map(factory));return menuPoints};const getMenuItemFromString=(menuItem,factory,t,theme,realmAccessRoles)=>{switch(menuItem){case _NavigationLink.ESideNavEnum.VI:return(0,_menuItems.getVIDomainMenuItemsVulnerabilityIntel)(factory,t,theme);case _NavigationLink.ESideNavEnum.ASSET:return(0,_menuItems.getAssetDomainMenuItems)(factory,t,theme,realmAccessRoles);case _NavigationLink.ESideNavEnum.SCAN:return(0,_menuItems.getScanDomainMenuItems)(factory,t,theme);case _NavigationLink.ESideNavEnum.USER:return(0,_menuItems.getUserDomainMenuItems)(factory,t,theme,realmAccessRoles);case _NavigationLink.ESideNavEnum.SYSTEM:return(0,_menuItems.getSystemManagementDomainMenuItems)(factory,t,theme);case _NavigationLink.ESideNavEnum.NOTIFICATIONS:return(0,_menuItems.getNotificationsDomainMenuItems)(factory,t,theme);default:return[]}};const useMenuItemStringsToNavigationMenuItemPoints=(menuItems,factory,realmAccessRoles)=>{const{t}=(0,_reacti18next.useTranslation)();const theme=(0,_core.useMantineTheme)();return menuItems.flatMap(item=>getMenuItemFromString(item,factory,t,theme,realmAccessRoles))};const parseMenuEnvString=(envString,separator=",")=>envString.split(separator);
2
2
  //# sourceMappingURL=menuFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Layout/AppNavigation/Menu/menuFactory.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Domain, ESideNavEnum } from \"../NavigationLink\"\nimport { buildUrl } from \"../NavigationLink/buildUrl\"\nimport { isActive } from \"../NavigationLink/isActive\"\nimport { TBuildNavLinkParams, TNavLinkConfig } from \"./types\"\nimport { useTranslation } from \"react-i18next\"\nimport {\n getAssetDomainMenuItems,\n getNotificationsDomainMenuItems,\n getScanDomainMenuItems,\n getSystemManagementDomainMenuItems,\n getUserDomainMenuItems,\n getVIDomainMenuItemsVulnerabilityIntel,\n TFactory,\n} from \"./menuItems\"\nimport { TFunction } from \"i18next\"\nimport { MantineTheme, useMantineTheme } from \"@mantine/core\"\n\nexport const NavLinkConfigFactory =\n (currentPath: string, requester: Domain) =>\n ({ icon, label, to, owner, subNav }: TBuildNavLinkParams): TNavLinkConfig => {\n const fullTargetUrl = to ? buildUrl(owner, requester, to) : \"\"\n const defaultOpened = !!subNav?.find((sn) => sn.to === currentPath)\n\n return {\n isPathMatch: currentPath.endsWith(fullTargetUrl),\n active: to ? isActive(currentPath, fullTargetUrl) : false,\n icon: icon,\n isExternal: owner !== requester,\n label: label,\n to: fullTargetUrl,\n defaultOpened: defaultOpened,\n subNav: subNav\n ? subNav.map((sn) => ({\n isPathMatch: currentPath.endsWith(sn.to || \"\"),\n label: sn.label,\n to: sn.to ? buildUrl(sn.owner, requester, sn.to) : \"\",\n active: sn.to ? isActive(currentPath, sn.to) : false,\n isExternal: sn.owner !== requester,\n }))\n : undefined,\n }\n }\n\nexport const useBuildUseNavigationMenuPoints = ({\n requestingDomain,\n menuPointsCategories,\n currentLocation,\n additional,\n realmAccessRoles,\n}: {\n requestingDomain: Domain\n currentLocation: string\n menuPointsCategories: ESideNavEnum[]\n additional?: TBuildNavLinkParams[]\n realmAccessRoles?: Array<string>\n}): TNavLinkConfig[][] => {\n const factory = NavLinkConfigFactory(currentLocation, requestingDomain)\n const menuPoints = useMenuItemStringsToNavigationMenuItemPoints(\n menuPointsCategories,\n factory,\n realmAccessRoles\n )\n if (additional) menuPoints.push(additional.map(factory))\n return menuPoints\n}\n\nexport const getMenuItemFromString = (\n menuItem: ESideNavEnum,\n factory: TFactory,\n t: TFunction,\n theme: MantineTheme,\n realmAccessRoles?: Array<string>\n) => {\n switch (menuItem) {\n case ESideNavEnum.VI:\n return getVIDomainMenuItemsVulnerabilityIntel(factory, t, theme)\n case ESideNavEnum.ASSET:\n return getAssetDomainMenuItems(factory, t, theme, realmAccessRoles)\n case ESideNavEnum.SCAN:\n return getScanDomainMenuItems(factory, t, theme)\n case ESideNavEnum.USER:\n return getUserDomainMenuItems(factory, t, theme, realmAccessRoles)\n case ESideNavEnum.SYSTEM:\n return getSystemManagementDomainMenuItems(factory, t, theme)\n case ESideNavEnum.NOTIFICATIONS:\n return getNotificationsDomainMenuItems(factory, t, theme)\n default:\n return []\n }\n}\n\nexport const useMenuItemStringsToNavigationMenuItemPoints = (\n menuItems: ESideNavEnum[],\n factory: TFactory,\n realmAccessRoles?: Array<string>\n) => {\n const { t } = useTranslation()\n const theme = useMantineTheme()\n return menuItems.flatMap((item) =>\n getMenuItemFromString(item, factory, t, theme, realmAccessRoles)\n )\n}\n\nexport const parseMenuEnvString = (envString: string, separator = \",\"): ESideNavEnum[] =>\n envString.split(separator) as ESideNavEnum[]\n"],"names":["NavLinkConfigFactory","getMenuItemFromString","parseMenuEnvString","useBuildUseNavigationMenuPoints","useMenuItemStringsToNavigationMenuItemPoints","currentPath","requester","icon","label","to","owner","subNav","fullTargetUrl","buildUrl","defaultOpened","find","sn","isPathMatch","endsWith","active","isActive","isExternal","map","undefined","requestingDomain","menuPointsCategories","currentLocation","additional","realmAccessRoles","factory","menuPoints","push","menuItem","t","theme","ESideNavEnum","VI","getVIDomainMenuItemsVulnerabilityIntel","ASSET","getAssetDomainMenuItems","SCAN","getScanDomainMenuItems","USER","getUserDomainMenuItems","SYSTEM","getSystemManagementDomainMenuItems","NOTIFICATIONS","getNotificationsDomainMenuItems","menuItems","useTranslation","useMantineTheme","flatMap","item","envString","separator","split"],"mappings":"mPAqBaA,8BAAAA,0BAiDAC,+BAAAA,2BAqCAC,4BAAAA,wBA5DAC,yCAAAA,qCAgDAC,sDAAAA,8EA3FwB,6CACZ,sDACA,0DAEM,0CASxB,mCAEuC,iBAEvC,MAAMJ,qBACX,CAACK,YAAqBC,YACtB,CAAC,CAAEC,IAAI,CAAEC,KAAK,CAAEC,EAAE,CAAEC,KAAK,CAAEC,MAAM,CAAuB,IACtD,MAAMC,cAAgBH,GAAKI,GAAAA,kBAAQ,EAACH,MAAOJ,UAAWG,IAAM,GAC5D,MAAMK,cAAgB,CAAC,EAACH,eAAAA,uBAAAA,OAAQI,IAAI,CAAC,AAACC,IAAOA,GAAGP,EAAE,GAAKJ,cAEvD,MAAO,CACLY,YAAaZ,YAAYa,QAAQ,CAACN,eAClCO,OAAQV,GAAKW,GAAAA,kBAAQ,EAACf,YAAaO,eAAiB,MACpDL,KAAMA,KACNc,WAAYX,QAAUJ,UACtBE,MAAOA,MACPC,GAAIG,cACJE,cAAeA,cACfH,OAAQA,OACJA,OAAOW,GAAG,CAAC,AAACN,IAAQ,CAAA,CAClBC,YAAaZ,YAAYa,QAAQ,CAACF,GAAGP,EAAE,EAAI,IAC3CD,MAAOQ,GAAGR,KAAK,CACfC,GAAIO,GAAGP,EAAE,CAAGI,GAAAA,kBAAQ,EAACG,GAAGN,KAAK,CAAEJ,UAAWU,GAAGP,EAAE,EAAI,GACnDU,OAAQH,GAAGP,EAAE,CAAGW,GAAAA,kBAAQ,EAACf,YAAaW,GAAGP,EAAE,EAAI,MAC/CY,WAAYL,GAAGN,KAAK,GAAKJ,SAC3B,CAAA,GACAiB,SACN,CACF,EAEK,MAAMpB,gCAAkC,CAAC,CAC9CqB,gBAAgB,CAChBC,oBAAoB,CACpBC,eAAe,CACfC,UAAU,CACVC,gBAAgB,CAOjB,IACC,MAAMC,QAAU7B,qBAAqB0B,gBAAiBF,kBACtD,MAAMM,WAAa1B,6CACjBqB,qBACAI,QACAD,kBAEF,GAAID,WAAYG,WAAWC,IAAI,CAACJ,WAAWL,GAAG,CAACO,UAC/C,OAAOC,UACT,EAEO,MAAM7B,sBAAwB,CACnC+B,SACAH,QACAI,EACAC,MACAN,oBAEA,OAAQI,UACN,KAAKG,4BAAY,CAACC,EAAE,CAClB,MAAOC,GAAAA,iDAAsC,EAACR,QAASI,EAAGC,MAC5D,MAAKC,4BAAY,CAACG,KAAK,CACrB,MAAOC,GAAAA,kCAAuB,EAACV,QAASI,EAAGC,MAAON,iBACpD,MAAKO,4BAAY,CAACK,IAAI,CACpB,MAAOC,GAAAA,iCAAsB,EAACZ,QAASI,EAAGC,MAC5C,MAAKC,4BAAY,CAACO,IAAI,CACpB,MAAOC,GAAAA,iCAAsB,EAACd,QAASI,EAAGC,MAAON,iBACnD,MAAKO,4BAAY,CAACS,MAAM,CACtB,MAAOC,GAAAA,6CAAkC,EAAChB,QAASI,EAAGC,MACxD,MAAKC,4BAAY,CAACW,aAAa,CAC7B,MAAOC,GAAAA,0CAA+B,EAAClB,QAASI,EAAGC,MACrD,SACE,MAAO,EAAE,AACb,CACF,EAEO,MAAM9B,6CAA+C,CAC1D4C,UACAnB,QACAD,oBAEA,KAAM,CAAEK,CAAC,CAAE,CAAGgB,GAAAA,4BAAc,IAC5B,MAAMf,MAAQgB,GAAAA,qBAAe,IAC7B,OAAOF,UAAUG,OAAO,CAAC,AAACC,MACxBnD,sBAAsBmD,KAAMvB,QAASI,EAAGC,MAAON,kBAEnD,EAEO,MAAM1B,mBAAqB,CAACmD,UAAmBC,UAAY,GAAG,GACnED,UAAUE,KAAK,CAACD"}
1
+ {"version":3,"sources":["../../../../../../src/components/Layout/AppNavigation/Menu/menuFactory.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Domain, ESideNavEnum } from \"../NavigationLink\"\nimport { buildUrl } from \"../NavigationLink/buildUrl\"\nimport { isActive } from \"../NavigationLink/isActive\"\nimport { TBuildNavLinkParams, TNavLinkConfig } from \"./types\"\nimport { useTranslation } from \"react-i18next\"\nimport {\n getAssetDomainMenuItems,\n getNotificationsDomainMenuItems,\n getScanDomainMenuItems,\n getSystemManagementDomainMenuItems,\n getUserDomainMenuItems,\n getVIDomainMenuItemsVulnerabilityIntel,\n TFactory,\n} from \"./menuItems\"\nimport { TFunction } from \"i18next\"\nimport { MantineTheme, useMantineTheme } from \"@mantine/core\"\n\nexport const NavLinkConfigFactory =\n (currentPath: string, requester: Domain) =>\n ({ icon, label, to, owner, subNav, openInNewTab }: TBuildNavLinkParams): TNavLinkConfig => {\n const fullTargetUrl = to ? buildUrl(owner, requester, to) : \"\"\n const defaultOpened = !!subNav?.find((sn) => sn.to === currentPath)\n\n return {\n isPathMatch: currentPath.endsWith(fullTargetUrl),\n active: to ? isActive(currentPath, fullTargetUrl) : false,\n icon: icon,\n isExternal: owner !== requester,\n label: label,\n to: fullTargetUrl,\n defaultOpened: defaultOpened,\n openInNewTab,\n subNav: subNav\n ? subNav.map((sn) => ({\n isPathMatch: currentPath.endsWith(sn.to || \"\"),\n label: sn.label,\n to: sn.to ? buildUrl(sn.owner, requester, sn.to) : \"\",\n active: sn.to ? isActive(currentPath, sn.to) : false,\n isExternal: sn.owner !== requester,\n openInNewTab,\n }))\n : undefined,\n }\n }\n\nexport const useBuildUseNavigationMenuPoints = ({\n requestingDomain,\n menuPointsCategories,\n currentLocation,\n additional,\n realmAccessRoles,\n}: {\n requestingDomain: Domain\n currentLocation: string\n menuPointsCategories: ESideNavEnum[]\n additional?: TBuildNavLinkParams[]\n realmAccessRoles?: Array<string>\n}): TNavLinkConfig[][] => {\n const factory = NavLinkConfigFactory(currentLocation, requestingDomain)\n const menuPoints = useMenuItemStringsToNavigationMenuItemPoints(\n menuPointsCategories,\n factory,\n realmAccessRoles\n )\n if (additional) menuPoints.push(additional.map(factory))\n return menuPoints\n}\n\nexport const getMenuItemFromString = (\n menuItem: ESideNavEnum,\n factory: TFactory,\n t: TFunction,\n theme: MantineTheme,\n realmAccessRoles?: Array<string>\n) => {\n switch (menuItem) {\n case ESideNavEnum.VI:\n return getVIDomainMenuItemsVulnerabilityIntel(factory, t, theme)\n case ESideNavEnum.ASSET:\n return getAssetDomainMenuItems(factory, t, theme, realmAccessRoles)\n case ESideNavEnum.SCAN:\n return getScanDomainMenuItems(factory, t, theme)\n case ESideNavEnum.USER:\n return getUserDomainMenuItems(factory, t, theme, realmAccessRoles)\n case ESideNavEnum.SYSTEM:\n return getSystemManagementDomainMenuItems(factory, t, theme)\n case ESideNavEnum.NOTIFICATIONS:\n return getNotificationsDomainMenuItems(factory, t, theme)\n default:\n return []\n }\n}\n\nexport const useMenuItemStringsToNavigationMenuItemPoints = (\n menuItems: ESideNavEnum[],\n factory: TFactory,\n realmAccessRoles?: Array<string>\n) => {\n const { t } = useTranslation()\n const theme = useMantineTheme()\n return menuItems.flatMap((item) =>\n getMenuItemFromString(item, factory, t, theme, realmAccessRoles)\n )\n}\n\nexport const parseMenuEnvString = (envString: string, separator = \",\"): ESideNavEnum[] =>\n envString.split(separator) as ESideNavEnum[]\n"],"names":["NavLinkConfigFactory","getMenuItemFromString","parseMenuEnvString","useBuildUseNavigationMenuPoints","useMenuItemStringsToNavigationMenuItemPoints","currentPath","requester","icon","label","to","owner","subNav","openInNewTab","fullTargetUrl","buildUrl","defaultOpened","find","sn","isPathMatch","endsWith","active","isActive","isExternal","map","undefined","requestingDomain","menuPointsCategories","currentLocation","additional","realmAccessRoles","factory","menuPoints","push","menuItem","t","theme","ESideNavEnum","VI","getVIDomainMenuItemsVulnerabilityIntel","ASSET","getAssetDomainMenuItems","SCAN","getScanDomainMenuItems","USER","getUserDomainMenuItems","SYSTEM","getSystemManagementDomainMenuItems","NOTIFICATIONS","getNotificationsDomainMenuItems","menuItems","useTranslation","useMantineTheme","flatMap","item","envString","separator","split"],"mappings":"mPAqBaA,8BAAAA,0BAmDAC,+BAAAA,2BAqCAC,4BAAAA,wBA5DAC,yCAAAA,qCAgDAC,sDAAAA,8EA7FwB,6CACZ,sDACA,0DAEM,0CASxB,mCAEuC,iBAEvC,MAAMJ,qBACX,CAACK,YAAqBC,YACtB,CAAC,CAAEC,IAAI,CAAEC,KAAK,CAAEC,EAAE,CAAEC,KAAK,CAAEC,MAAM,CAAEC,YAAY,CAAuB,IACpE,MAAMC,cAAgBJ,GAAKK,GAAAA,kBAAQ,EAACJ,MAAOJ,UAAWG,IAAM,GAC5D,MAAMM,cAAgB,CAAC,EAACJ,eAAAA,uBAAAA,OAAQK,IAAI,CAAC,AAACC,IAAOA,GAAGR,EAAE,GAAKJ,cAEvD,MAAO,CACLa,YAAab,YAAYc,QAAQ,CAACN,eAClCO,OAAQX,GAAKY,GAAAA,kBAAQ,EAAChB,YAAaQ,eAAiB,MACpDN,KAAMA,KACNe,WAAYZ,QAAUJ,UACtBE,MAAOA,MACPC,GAAII,cACJE,cAAeA,cACfH,aACAD,OAAQA,OACJA,OAAOY,GAAG,CAAC,AAACN,IAAQ,CAAA,CAClBC,YAAab,YAAYc,QAAQ,CAACF,GAAGR,EAAE,EAAI,IAC3CD,MAAOS,GAAGT,KAAK,CACfC,GAAIQ,GAAGR,EAAE,CAAGK,GAAAA,kBAAQ,EAACG,GAAGP,KAAK,CAAEJ,UAAWW,GAAGR,EAAE,EAAI,GACnDW,OAAQH,GAAGR,EAAE,CAAGY,GAAAA,kBAAQ,EAAChB,YAAaY,GAAGR,EAAE,EAAI,MAC/Ca,WAAYL,GAAGP,KAAK,GAAKJ,UACzBM,YACF,CAAA,GACAY,SACN,CACF,EAEK,MAAMrB,gCAAkC,CAAC,CAC9CsB,gBAAgB,CAChBC,oBAAoB,CACpBC,eAAe,CACfC,UAAU,CACVC,gBAAgB,CAOjB,IACC,MAAMC,QAAU9B,qBAAqB2B,gBAAiBF,kBACtD,MAAMM,WAAa3B,6CACjBsB,qBACAI,QACAD,kBAEF,GAAID,WAAYG,WAAWC,IAAI,CAACJ,WAAWL,GAAG,CAACO,UAC/C,OAAOC,UACT,EAEO,MAAM9B,sBAAwB,CACnCgC,SACAH,QACAI,EACAC,MACAN,oBAEA,OAAQI,UACN,KAAKG,4BAAY,CAACC,EAAE,CAClB,MAAOC,GAAAA,iDAAsC,EAACR,QAASI,EAAGC,MAC5D,MAAKC,4BAAY,CAACG,KAAK,CACrB,MAAOC,GAAAA,kCAAuB,EAACV,QAASI,EAAGC,MAAON,iBACpD,MAAKO,4BAAY,CAACK,IAAI,CACpB,MAAOC,GAAAA,iCAAsB,EAACZ,QAASI,EAAGC,MAC5C,MAAKC,4BAAY,CAACO,IAAI,CACpB,MAAOC,GAAAA,iCAAsB,EAACd,QAASI,EAAGC,MAAON,iBACnD,MAAKO,4BAAY,CAACS,MAAM,CACtB,MAAOC,GAAAA,6CAAkC,EAAChB,QAASI,EAAGC,MACxD,MAAKC,4BAAY,CAACW,aAAa,CAC7B,MAAOC,GAAAA,0CAA+B,EAAClB,QAASI,EAAGC,MACrD,SACE,MAAO,EAAE,AACb,CACF,EAEO,MAAM/B,6CAA+C,CAC1D6C,UACAnB,QACAD,oBAEA,KAAM,CAAEK,CAAC,CAAE,CAAGgB,GAAAA,4BAAc,IAC5B,MAAMf,MAAQgB,GAAAA,qBAAe,IAC7B,OAAOF,UAAUG,OAAO,CAAC,AAACC,MACxBpD,sBAAsBoD,KAAMvB,QAASI,EAAGC,MAAON,kBAEnD,EAEO,MAAM3B,mBAAqB,CAACoD,UAAmBC,UAAY,GAAG,GACnED,UAAUE,KAAK,CAACD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get getAssetDomainMenuItems(){return getAssetDomainMenuItems},get getNotificationsDomainMenuItems(){return getNotificationsDomainMenuItems},get getScanDomainMenuItems(){return getScanDomainMenuItems},get getSystemManagementDomainMenuItems(){return getSystemManagementDomainMenuItems},get getUserDomainMenuItems(){return getUserDomainMenuItems},get getVIDomainMenuItemsVulnerabilityIntel(){return getVIDomainMenuItemsVulnerabilityIntel}});const _jsxruntime=require("react/jsx-runtime");const _lucidereact=require("lucide-react");const _NavigationLink=require("../NavigationLink");const getAssetDomainMenuItems=(factory,t,theme,realmAccessRoles)=>{return[[factory({icon:()=>(0,_jsxruntime.jsx)(_lucidereact.BarChart3,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),label:t("Analysis"),owner:_NavigationLink.Domain.Asset,subNav:[{label:t("Dashboard"),to:"/dashboard",owner:_NavigationLink.Domain.Asset},{label:t("Assets"),to:"/assets",owner:_NavigationLink.Domain.Asset},{label:t("Vulnerabilities"),to:"/vulnerabilities",owner:_NavigationLink.Domain.Asset}]})],[factory({icon:()=>(0,_jsxruntime.jsx)(_lucidereact.Server,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),label:t("Import"),owner:_NavigationLink.Domain.Asset,subNav:[{label:t("Appliances"),to:"/appliances",owner:_NavigationLink.Domain.Asset}]})],[factory({icon:()=>(0,_jsxruntime.jsx)(_lucidereact.Settings,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),label:t("Global settings"),owner:_NavigationLink.Domain.Asset,subNav:[...(realmAccessRoles===null||realmAccessRoles===void 0?void 0:realmAccessRoles.includes("admin"))?[{label:t("Asset management"),to:"/asset-management-settings",owner:_NavigationLink.Domain.Asset}]:[]]})]]};const getScanDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>(0,_jsxruntime.jsx)(_lucidereact.ShieldCheck,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:_NavigationLink.Domain.Scan,label:t("Scan control"),subNav:[{label:t("Tasks"),to:"/tasks",owner:_NavigationLink.Domain.Scan},{label:t("Targets"),to:"/targets",owner:_NavigationLink.Domain.Scan},{label:t("Credentials"),to:"/credentials",owner:_NavigationLink.Domain.Scan},{label:t("Schedules"),to:"/schedules",owner:_NavigationLink.Domain.Scan},{label:t("Sensors"),to:"/sensors",owner:_NavigationLink.Domain.Scan}]})]]};const getVIDomainMenuItemsVulnerabilityIntel=(factory,t,theme)=>{return[[factory({icon:()=>(0,_jsxruntime.jsx)(_lucidereact.View,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:_NavigationLink.Domain.VI,label:t("VIEW"),to:"/vulnerability-intelligence",subNav:[{label:t("CVE"),to:"/advisories-cve",owner:_NavigationLink.Domain.VI},{label:t("CSAF"),to:"/advisories-csaf",owner:_NavigationLink.Domain.VI},{label:t("CPE"),to:"/cpe",owner:_NavigationLink.Domain.VI},{label:t("Vulnerability tests"),to:"/vulnerability-tests",owner:_NavigationLink.Domain.VI},{label:t("SBOMs"),to:"/sboms",owner:_NavigationLink.Domain.VI},{label:t("GEA reports"),to:"/gea-reports",owner:_NavigationLink.Domain.VI},{label:t("CSAF sources"),to:"/csaf-sources",owner:_NavigationLink.Domain.VI},{label:t("Feed"),to:"/feed",owner:_NavigationLink.Domain.VI}]})]]};const getUserDomainMenuItems=(factory,t,theme,realmAccessRoles)=>{return[[factory({icon:()=>(0,_jsxruntime.jsx)(_lucidereact.Users,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:_NavigationLink.Domain.User,label:t("User management"),to:"",subNav:[...(realmAccessRoles===null||realmAccessRoles===void 0?void 0:realmAccessRoles.includes("admin"))?[{label:t("Users"),to:"/users",owner:_NavigationLink.Domain.User}]:[],{label:t("Personal settings"),to:"/personal-settings",owner:_NavigationLink.Domain.User}]})]]};const getNotificationsDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>(0,_jsxruntime.jsx)(_lucidereact.Bell,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:_NavigationLink.Domain.Notifications,label:t("Notifications"),to:"/notifications"})]]};const getSystemManagementDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>(0,_jsxruntime.jsx)(_lucidereact.ServerCog,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:_NavigationLink.Domain.SystemManagement,label:t("Systems"),subNav:[{label:t("Appliances"),to:"/appliances",owner:_NavigationLink.Domain.SystemManagement}]})]]};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get getAssetDomainMenuItems(){return getAssetDomainMenuItems},get getNotificationsDomainMenuItems(){return getNotificationsDomainMenuItems},get getScanDomainMenuItems(){return getScanDomainMenuItems},get getSystemManagementDomainMenuItems(){return getSystemManagementDomainMenuItems},get getUserDomainMenuItems(){return getUserDomainMenuItems},get getVIDomainMenuItemsVulnerabilityIntel(){return getVIDomainMenuItemsVulnerabilityIntel}});const _jsxruntime=require("react/jsx-runtime");const _lucidereact=require("lucide-react");const _NavigationLink=require("../NavigationLink");const getAssetDomainMenuItems=(factory,t,theme,realmAccessRoles)=>{const domainMenuItems=[[factory({icon:()=>(0,_jsxruntime.jsx)(_lucidereact.BarChart3,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),label:t("Analysis"),owner:_NavigationLink.Domain.Asset,subNav:[{label:t("Dashboard"),to:"/dashboard",owner:_NavigationLink.Domain.Asset},{label:t("Assets"),to:"/assets",owner:_NavigationLink.Domain.Asset},{label:t("Vulnerabilities"),to:"/vulnerabilities",owner:_NavigationLink.Domain.Asset}]})],[factory({icon:()=>(0,_jsxruntime.jsx)(_lucidereact.Server,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),label:t("Import"),owner:_NavigationLink.Domain.Asset,subNav:[{label:t("Appliances"),to:"/appliances",owner:_NavigationLink.Domain.Asset}]})]];if(realmAccessRoles===null||realmAccessRoles===void 0?void 0:realmAccessRoles.includes("admin")){domainMenuItems.push([factory({icon:()=>(0,_jsxruntime.jsx)(_lucidereact.Settings,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),label:t("Global settings"),owner:_NavigationLink.Domain.Asset,subNav:[{label:t("Asset management"),to:"/asset-management-settings",owner:_NavigationLink.Domain.Asset}]})])}return domainMenuItems};const getScanDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>(0,_jsxruntime.jsx)(_lucidereact.ShieldCheck,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:_NavigationLink.Domain.Scan,label:t("Scan control"),subNav:[{label:t("Tasks"),to:"/tasks",owner:_NavigationLink.Domain.Scan},{label:t("Targets"),to:"/targets",owner:_NavigationLink.Domain.Scan},{label:t("Credentials"),to:"/credentials",owner:_NavigationLink.Domain.Scan},{label:t("Schedules"),to:"/schedules",owner:_NavigationLink.Domain.Scan},{label:t("Sensors"),to:"/sensors",owner:_NavigationLink.Domain.Scan}]})]]};const getVIDomainMenuItemsVulnerabilityIntel=(factory,t,theme)=>{return[[factory({icon:()=>(0,_jsxruntime.jsx)(_lucidereact.View,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:_NavigationLink.Domain.VI,label:t("VIEW"),to:"/vulnerability-intelligence",subNav:[{label:t("CVE"),to:"/advisories-cve",owner:_NavigationLink.Domain.VI},{label:t("CSAF"),to:"/advisories-csaf",owner:_NavigationLink.Domain.VI},{label:t("CPE"),to:"/cpe",owner:_NavigationLink.Domain.VI},{label:t("Vulnerability tests"),to:"/vulnerability-tests",owner:_NavigationLink.Domain.VI},{label:t("SBOMs"),to:"/sboms",owner:_NavigationLink.Domain.VI},{label:t("GEA reports"),to:"/gea-reports",owner:_NavigationLink.Domain.VI},{label:t("CSAF sources"),to:"/csaf-sources",owner:_NavigationLink.Domain.VI},{label:t("Feed"),to:"/feed",owner:_NavigationLink.Domain.VI}]})]]};const getUserDomainMenuItems=(factory,t,theme,realmAccessRoles)=>{return[[factory({icon:()=>(0,_jsxruntime.jsx)(_lucidereact.Users,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:_NavigationLink.Domain.User,label:t("User management"),to:"",subNav:[...(realmAccessRoles===null||realmAccessRoles===void 0?void 0:realmAccessRoles.includes("admin"))?[{label:t("Users"),to:"/users",owner:_NavigationLink.Domain.User}]:[],{label:t("Personal settings"),to:"/personal-settings",owner:_NavigationLink.Domain.User}]})]]};const getNotificationsDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>(0,_jsxruntime.jsx)(_lucidereact.Bell,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:_NavigationLink.Domain.Notifications,label:t("Notifications"),to:"/notifications"})]]};const getSystemManagementDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>(0,_jsxruntime.jsx)(_lucidereact.ServerCog,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:_NavigationLink.Domain.SystemManagement,label:t("Systems"),subNav:[{label:t("Appliances"),to:"/appliances",owner:_NavigationLink.Domain.SystemManagement}]})]]};
2
2
  //# sourceMappingURL=menuItems.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Layout/AppNavigation/Menu/menuItems.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { TFunction } from \"i18next\"\nimport {\n BarChart3,\n Bell,\n Server,\n ServerCog,\n Settings,\n ShieldCheck,\n Users,\n View,\n} from \"lucide-react\"\nimport { Domain } from \"../NavigationLink\"\nimport { TBuildNavLinkParams, TNavLinkConfig } from \"./types\"\nimport { MantineTheme } from \"@mantine/core\"\n\nexport type TFactory = ({ icon, label, to, owner, subNav }: TBuildNavLinkParams) => TNavLinkConfig\n\nexport type TMenuItemContainer = (\n factory: TFactory,\n t: TFunction,\n theme: MantineTheme,\n realmAccessRoles?: Array<string>\n) => TNavLinkConfig[][]\n\nexport const getAssetDomainMenuItems: TMenuItemContainer = (\n factory,\n t,\n theme,\n realmAccessRoles\n) => {\n return [\n [\n factory({\n icon: () => <BarChart3 size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n label: t(\"Analysis\"),\n owner: Domain.Asset,\n subNav: [\n {\n label: t(\"Dashboard\"),\n to: \"/dashboard\",\n owner: Domain.Asset,\n },\n {\n label: t(\"Assets\"),\n to: \"/assets\",\n owner: Domain.Asset,\n },\n {\n label: t(\"Vulnerabilities\"),\n to: \"/vulnerabilities\",\n owner: Domain.Asset,\n },\n ],\n }),\n ],\n [\n factory({\n icon: () => <Server size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n label: t(\"Import\"),\n owner: Domain.Asset,\n subNav: [\n {\n label: t(\"Appliances\"),\n to: \"/appliances\",\n owner: Domain.Asset,\n },\n ],\n }),\n ],\n [\n factory({\n icon: () => <Settings size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n label: t(\"Global settings\"),\n owner: Domain.Asset,\n subNav: [\n ...(realmAccessRoles?.includes(\"admin\")\n ? [\n {\n label: t(\"Asset management\"),\n to: \"/asset-management-settings\",\n owner: Domain.Asset,\n },\n ]\n : []),\n ],\n }),\n ],\n ]\n}\n\nexport const getScanDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <ShieldCheck size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.Scan,\n label: t(\"Scan control\"),\n subNav: [\n {\n label: t(\"Tasks\"),\n to: \"/tasks\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Targets\"),\n to: \"/targets\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Credentials\"),\n to: \"/credentials\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Schedules\"),\n to: \"/schedules\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Sensors\"),\n to: \"/sensors\",\n owner: Domain.Scan,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getVIDomainMenuItemsVulnerabilityIntel: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <View size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.VI,\n label: t(\"VIEW\"),\n to: \"/vulnerability-intelligence\",\n subNav: [\n {\n label: t(\"CVE\"),\n to: \"/advisories-cve\",\n owner: Domain.VI,\n },\n {\n label: t(\"CSAF\"),\n to: \"/advisories-csaf\",\n owner: Domain.VI,\n },\n {\n label: t(\"CPE\"),\n to: \"/cpe\",\n owner: Domain.VI,\n },\n {\n label: t(\"Vulnerability tests\"),\n to: \"/vulnerability-tests\",\n owner: Domain.VI,\n },\n {\n label: t(\"SBOMs\"),\n to: \"/sboms\",\n owner: Domain.VI,\n },\n {\n label: t(\"GEA reports\"),\n to: \"/gea-reports\",\n owner: Domain.VI,\n },\n {\n label: t(\"CSAF sources\"),\n to: \"/csaf-sources\",\n owner: Domain.VI,\n },\n {\n label: t(\"Feed\"),\n to: \"/feed\",\n owner: Domain.VI,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getUserDomainMenuItems: TMenuItemContainer = (factory, t, theme, realmAccessRoles) => {\n return [\n [\n factory({\n icon: () => <Users size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.User,\n label: t(\"User management\"),\n to: \"\",\n subNav: [\n ...(realmAccessRoles?.includes(\"admin\")\n ? [\n {\n label: t(\"Users\"),\n to: \"/users\",\n owner: Domain.User,\n },\n ]\n : []),\n {\n label: t(\"Personal settings\"),\n to: \"/personal-settings\",\n owner: Domain.User,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getNotificationsDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <Bell size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.Notifications,\n label: t(\"Notifications\"),\n to: \"/notifications\",\n }),\n ],\n ]\n}\n\nexport const getSystemManagementDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <ServerCog size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.SystemManagement,\n label: t(\"Systems\"),\n subNav: [\n {\n label: t(\"Appliances\"),\n to: \"/appliances\",\n owner: Domain.SystemManagement,\n },\n ],\n }),\n ],\n ]\n}\n"],"names":["getAssetDomainMenuItems","getNotificationsDomainMenuItems","getScanDomainMenuItems","getSystemManagementDomainMenuItems","getUserDomainMenuItems","getVIDomainMenuItemsVulnerabilityIntel","factory","t","theme","realmAccessRoles","icon","BarChart3","size","other","iconSizes","MEDIUM_LARGE","strokeWidth","label","owner","Domain","Asset","subNav","to","Server","Settings","includes","ShieldCheck","Scan","View","VI","Users","User","Bell","Notifications","ServerCog","SystemManagement"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/components/Layout/AppNavigation/Menu/menuItems.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { TFunction } from \"i18next\"\nimport {\n BarChart3,\n Bell,\n Server,\n ServerCog,\n Settings,\n ShieldCheck,\n Users,\n View,\n} from \"lucide-react\"\nimport { Domain } from \"../NavigationLink\"\nimport { TBuildNavLinkParams, TNavLinkConfig } from \"./types\"\nimport { MantineTheme } from \"@mantine/core\"\n\nexport type TFactory = ({ icon, label, to, owner, subNav }: TBuildNavLinkParams) => TNavLinkConfig\n\nexport type TMenuItemContainer = (\n factory: TFactory,\n t: TFunction,\n theme: MantineTheme,\n realmAccessRoles?: Array<string>\n) => TNavLinkConfig[][]\n\nexport const getAssetDomainMenuItems: TMenuItemContainer = (\n factory,\n t,\n theme,\n realmAccessRoles\n) => {\n const domainMenuItems = [\n [\n factory({\n icon: () => <BarChart3 size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n label: t(\"Analysis\"),\n owner: Domain.Asset,\n subNav: [\n {\n label: t(\"Dashboard\"),\n to: \"/dashboard\",\n owner: Domain.Asset,\n },\n {\n label: t(\"Assets\"),\n to: \"/assets\",\n owner: Domain.Asset,\n },\n {\n label: t(\"Vulnerabilities\"),\n to: \"/vulnerabilities\",\n owner: Domain.Asset,\n },\n ],\n }),\n ],\n [\n factory({\n icon: () => <Server size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n label: t(\"Import\"),\n owner: Domain.Asset,\n subNav: [\n {\n label: t(\"Appliances\"),\n to: \"/appliances\",\n owner: Domain.Asset,\n },\n ],\n }),\n ],\n ]\n\n if (realmAccessRoles?.includes(\"admin\")) {\n domainMenuItems.push([\n factory({\n icon: () => <Settings size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n label: t(\"Global settings\"),\n owner: Domain.Asset,\n subNav: [\n {\n label: t(\"Asset management\"),\n to: \"/asset-management-settings\",\n owner: Domain.Asset,\n },\n ],\n }),\n ])\n }\n return domainMenuItems\n}\n\nexport const getScanDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <ShieldCheck size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.Scan,\n label: t(\"Scan control\"),\n subNav: [\n {\n label: t(\"Tasks\"),\n to: \"/tasks\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Targets\"),\n to: \"/targets\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Credentials\"),\n to: \"/credentials\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Schedules\"),\n to: \"/schedules\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Sensors\"),\n to: \"/sensors\",\n owner: Domain.Scan,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getVIDomainMenuItemsVulnerabilityIntel: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <View size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.VI,\n label: t(\"VIEW\"),\n to: \"/vulnerability-intelligence\",\n subNav: [\n {\n label: t(\"CVE\"),\n to: \"/advisories-cve\",\n owner: Domain.VI,\n },\n {\n label: t(\"CSAF\"),\n to: \"/advisories-csaf\",\n owner: Domain.VI,\n },\n {\n label: t(\"CPE\"),\n to: \"/cpe\",\n owner: Domain.VI,\n },\n {\n label: t(\"Vulnerability tests\"),\n to: \"/vulnerability-tests\",\n owner: Domain.VI,\n },\n {\n label: t(\"SBOMs\"),\n to: \"/sboms\",\n owner: Domain.VI,\n },\n {\n label: t(\"GEA reports\"),\n to: \"/gea-reports\",\n owner: Domain.VI,\n },\n {\n label: t(\"CSAF sources\"),\n to: \"/csaf-sources\",\n owner: Domain.VI,\n },\n {\n label: t(\"Feed\"),\n to: \"/feed\",\n owner: Domain.VI,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getUserDomainMenuItems: TMenuItemContainer = (factory, t, theme, realmAccessRoles) => {\n return [\n [\n factory({\n icon: () => <Users size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.User,\n label: t(\"User management\"),\n to: \"\",\n subNav: [\n ...(realmAccessRoles?.includes(\"admin\")\n ? [\n {\n label: t(\"Users\"),\n to: \"/users\",\n owner: Domain.User,\n },\n ]\n : []),\n {\n label: t(\"Personal settings\"),\n to: \"/personal-settings\",\n owner: Domain.User,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getNotificationsDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <Bell size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.Notifications,\n label: t(\"Notifications\"),\n to: \"/notifications\",\n }),\n ],\n ]\n}\n\nexport const getSystemManagementDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <ServerCog size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.SystemManagement,\n label: t(\"Systems\"),\n subNav: [\n {\n label: t(\"Appliances\"),\n to: \"/appliances\",\n owner: Domain.SystemManagement,\n },\n ],\n }),\n ],\n ]\n}\n"],"names":["getAssetDomainMenuItems","getNotificationsDomainMenuItems","getScanDomainMenuItems","getSystemManagementDomainMenuItems","getUserDomainMenuItems","getVIDomainMenuItemsVulnerabilityIntel","factory","t","theme","realmAccessRoles","domainMenuItems","icon","BarChart3","size","other","iconSizes","MEDIUM_LARGE","strokeWidth","label","owner","Domain","Asset","subNav","to","Server","includes","push","Settings","ShieldCheck","Scan","View","VI","Users","User","Bell","Notifications","ServerCog","SystemManagement"],"mappings":"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"}
@@ -1 +1 @@
1
- .root{align-items:center;border-radius:calc(1.5rem*var(--mantine-scale));display:flex;font-size:var(--mantine-font-size-sm);gap:calc(.3125rem*var(--mantine-scale));justify-content:center;max-width:100%;padding:0 var(--mantine-spacing-xs);width:fit-content}.badge-size-sm{height:calc(1rem*var(--mantine-scale))}.badge-size-md{height:calc(1.5rem*var(--mantine-scale))}.badge-size-lg{height:calc(2rem*var(--mantine-scale))}.with-cursor-pointer{cursor:pointer}.neutral-root{background-color:var(--badge-neutral-background-color);color:var(--badge-neutral-color)}.neutral-muted-root{background-color:var(--badge-neutral-muted-background-color);color:var(--badge-neutral-muted-color)}.neutral-light-root{background-color:var(--badge-neutral-light-background-color);color:var(--badge-neutral-light-color)}.green-root{background-color:var(--badge-green-background-color);color:var(--badge-green-color)}.red-light-root{background-color:var(--badge-red-light-background-color);color:var(--badge-red-light-color)}.red-dark-root{background-color:var(--badge-red-dark-background-color);color:var(--badge-red-dark-color)}.orange-root{background-color:var(--badge-orange-background-color);color:var(--badge-orange-color)}.blue-root{background-color:var(--badge-blue-background-color);color:var(--badge-blue-color)}:root[data-mantine-color-scheme=dark]{--badge-neutral-light-background-color:var(--mantine-color-gray-7);--badge-neutral-light-color:var(--mantine-color-gray-1);--badge-neutral-muted-background-color:var(--mantine-color-gray-6);--badge-neutral-muted-color:var(--mantine-color-black);--badge-neutral-background-color:var(--mantine-color-gray-1);--badge-neutral-color:var(--mantine-color-black);--badge-green-background-color:var(--mantine-color-green-8);--badge-green-color:var(--mantine-color-green-3);--badge-red-light-background-color:var(--mantine-color-red-3);--badge-red-light-color:var(--mantine-color-red-8);--badge-red-dark-background-color:var(--mantine-color-red-7);--badge-red-dark-color:var(--mantine-color-red-2);--badge-orange-background-color:var(--mantine-color-orange-3);--badge-orange-color:var(--mantine-color-orange-8);--badge-blue-background-color:var(--mantine-color-blue-8);--badge-blue-color:var(--mantine-color-blue-3)}:root:not([data-mantine-color-scheme=dark]){--badge-neutral-light-background-color:var(--mantine-color-gray-1);--badge-neutral-light-color:var(--mantine-color-gray-7);--badge-neutral-muted-background-color:var(--mantine-color-gray-6);--badge-neutral-muted-color:var(--mantine-color-white);--badge-neutral-background-color:var(--mantine-color-gray-8);--badge-neutral-color:var(--mantine-color-white);--badge-green-background-color:var(--mantine-color-green-1);--badge-green-color:var(--mantine-color-green-6);--badge-red-light-background-color:var(--mantine-color-red-1);--badge-red-light-color:var(--mantine-color-red-6);--badge-red-dark-background-color:var(--mantine-color-red-3);--badge-red-dark-color:var(--mantine-color-red-9);--badge-orange-background-color:var(--mantine-color-orange-1);--badge-orange-color:var(--mantine-color-orange-6);--badge-blue-background-color:var(--mantine-color-blue-1);--badge-blue-color:var(--mantine-color-blue-7)}
1
+ .root{align-items:center;border-radius:calc(1.5rem*var(--mantine-scale));display:flex;font-size:var(--mantine-font-size-sm);gap:calc(.3125rem*var(--mantine-scale));justify-content:center;max-width:100%;padding:0 var(--mantine-spacing-xs);width:fit-content}.badge-size-sm{height:calc(1rem*var(--mantine-scale))}.badge-size-md{height:calc(1.5rem*var(--mantine-scale))}.badge-size-lg{height:calc(2rem*var(--mantine-scale))}.with-cursor-pointer{cursor:pointer}.neutral-root{background-color:var(--badge-neutral-background-color);color:var(--badge-neutral-color)}.neutral-muted-root{background-color:var(--badge-neutral-muted-background-color);color:var(--badge-neutral-muted-color)}.neutral-light-root{background-color:var(--badge-neutral-light-background-color);color:var(--badge-neutral-light-color)}.green-root{background-color:var(--badge-green-background-color);color:var(--badge-green-color)}.red-light-root{background-color:var(--badge-red-light-background-color);color:var(--badge-red-light-color)}.red-dark-root{background-color:var(--badge-red-dark-background-color);color:var(--badge-red-dark-color)}.orange-root{background-color:var(--badge-orange-background-color);color:var(--badge-orange-color)}.blue-root{background-color:var(--badge-blue-background-color);color:var(--badge-blue-color)}:root[data-mantine-color-scheme=dark]{--badge-neutral-light-background-color:var(--mantine-color-gray-7);--badge-neutral-light-color:var(--mantine-color-gray-1);--badge-neutral-muted-background-color:var(--mantine-color-gray-6);--badge-neutral-muted-color:var(--mantine-color-black);--badge-neutral-background-color:var(--mantine-color-gray-1);--badge-neutral-color:var(--mantine-color-black);--badge-green-background-color:var(--mantine-color-green-8);--badge-green-color:var(--mantine-color-green-3);--badge-red-light-background-color:var(--mantine-color-red-3);--badge-red-light-color:var(--mantine-color-red-8);--badge-red-dark-background-color:var(--mantine-color-red-7);--badge-red-dark-color:var(--mantine-color-red-1);--badge-orange-background-color:var(--mantine-color-orange-3);--badge-orange-color:var(--mantine-color-orange-8);--badge-blue-background-color:var(--mantine-color-blue-3);--badge-blue-color:var(--mantine-color-blue-9)}:root:not([data-mantine-color-scheme=dark]){--badge-neutral-light-background-color:var(--mantine-color-gray-1);--badge-neutral-light-color:var(--mantine-color-gray-7);--badge-neutral-muted-background-color:var(--mantine-color-gray-6);--badge-neutral-muted-color:var(--mantine-color-white);--badge-neutral-background-color:var(--mantine-color-gray-8);--badge-neutral-color:var(--mantine-color-white);--badge-green-background-color:var(--mantine-color-green-1);--badge-green-color:var(--mantine-color-green-6);--badge-red-light-background-color:var(--mantine-color-red-3);--badge-red-light-color:var(--mantine-color-red-8);--badge-red-dark-background-color:var(--mantine-color-red-7);--badge-red-dark-color:var(--mantine-color-red-1);--badge-orange-background-color:var(--mantine-color-orange-3);--badge-orange-color:var(--mantine-color-orange-8);--badge-blue-background-color:var(--mantine-color-blue-3);--badge-blue-color:var(--mantine-color-blue-9)}
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import React,{useCallback,useEffect,useMemo,useState}from"react";import{Filter,Trash2}from"lucide-react";import classes from"./RemotePersistentFilterDropdown.module.css";import{Combobox,Group,useCombobox}from"@mantine/core";import{useTranslation}from"react-i18next";import{Tooltip}from"../../Tooltip";import{ConfirmationDialog}from"../../ConfirmationDialog";import{EStatus}from"../../../genericTypes";import{Typo}from"../../Typo";const RemotePersistentFilterDropdown=({remotePersistentFilters,onSelect,onDelete})=>{const{t}=useTranslation();const[selectedFilter,setSelectedFilter]=useState();const[modalData,setModalData]=useState(null);const combobox=useCombobox();const dropdownList=useMemo(()=>remotePersistentFilters.map(filter=>({value:filter.id,label:filter.filterName})),[remotePersistentFilters]);const handleClick=()=>combobox.toggleDropdown();useEffect(()=>{if(selectedFilter)onSelect(selectedFilter)},[selectedFilter,onSelect]);const handleSelect=useCallback(filter=>{if(filter){combobox.closeDropdown();setSelectedFilter(filter)}},[combobox]);const handleDelete=useCallback((e,filterId)=>{e.stopPropagation();setModalData(filterId)},[]);const handleConfirmDelete=useCallback(()=>{if(modalData){onDelete(modalData);setModalData(null)}},[modalData,onDelete]);const options=useMemo(()=>dropdownList.sort((a,b)=>a.label.localeCompare(b.label)).map(item=>_jsx(Combobox.Option,{"data-testid":"dropdown-option",value:item.value,children:_jsxs(Group,{className:classes.options,children:[item.label.length>35?_jsx(Tooltip,{label:item.label,children:_jsx("span",{className:classes["truncate-text"],children:item.label})}):_jsx("span",{children:item.label}),_jsx(Tooltip,{label:t("Delete filter"),children:_jsx(Trash2,{"data-testid":"delete-icon",color:"red",size:16,className:classes["options-label"],onClick:e=>handleDelete(e,item.value)})})]})},item.value)),[dropdownList,handleDelete,t]);const emptyOption=_jsx(Combobox.Option,{value:"",children:_jsx(Group,{className:classes.options,children:_jsx("span",{children:t("No saved filters available")})})},"");return _jsxs(_Fragment,{children:[_jsxs(Combobox,{store:combobox,width:300,position:"bottom-start",withArrow:true,onOptionSubmit:handleSelect,styles:{dropdown:{zIndex:10}},children:[_jsx(Combobox.Target,{children:_jsx("div",{"data-testid":"filter-icon",className:classes.actions,onClick:handleClick,children:_jsx(Tooltip,{offset:15,label:t("Saved filters"),children:_jsx(Filter,{"data-testid":"filter-chevron-image",color:"var(--filter-chevron-color)",size:16})})})}),_jsx(Combobox.Dropdown,{children:_jsx(Combobox.Options,{children:options.length>0?options:emptyOption})})]}),_jsx(ConfirmationDialog,{alertStatus:EStatus.ERROR,title:t("Delete filter"),content:_jsx(Typo,{type:"body",children:t("Do you really want to delete this filter?")}),opened:!!modalData,onClose:()=>setModalData(null),confirmationButtonText:t("Confirm"),confirmationButtonVariant:"danger",cancelButtonText:t("Cancel"),onSubmit:handleConfirmDelete})]})};export{RemotePersistentFilterDropdown};
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import React,{useCallback,useEffect,useMemo,useState}from"react";import{Filter,Trash2}from"lucide-react";import classes from"./RemotePersistentFilterDropdown.module.css";import{Combobox,Group,useCombobox}from"@mantine/core";import{useTranslation}from"react-i18next";import{Tooltip}from"../../Tooltip";import{ConfirmationDialog}from"../../ConfirmationDialog";import{EStatus}from"../../../genericTypes";import{Typo}from"../../Typo";import{Z_INDEX_LAYER}from"../../../theme";const RemotePersistentFilterDropdown=({remotePersistentFilters,onSelect,onDelete})=>{const{t}=useTranslation();const[selectedFilter,setSelectedFilter]=useState();const[modalData,setModalData]=useState(null);const combobox=useCombobox();const dropdownList=useMemo(()=>remotePersistentFilters.map(filter=>({value:filter.id,label:filter.filterName})),[remotePersistentFilters]);const handleClick=()=>combobox.toggleDropdown();useEffect(()=>{if(selectedFilter)onSelect(selectedFilter)},[selectedFilter,onSelect]);const handleSelect=useCallback(filter=>{if(filter){combobox.closeDropdown();setSelectedFilter(filter)}},[combobox]);const handleDelete=useCallback((e,filterId)=>{e.stopPropagation();setModalData(filterId)},[]);const handleConfirmDelete=useCallback(()=>{if(modalData){onDelete(modalData);setModalData(null)}},[modalData,onDelete]);const options=useMemo(()=>dropdownList.sort((a,b)=>a.label.localeCompare(b.label)).map(item=>_jsx(Combobox.Option,{"data-testid":"dropdown-option",value:item.value,children:_jsxs(Group,{className:classes.options,children:[item.label.length>35?_jsx(Tooltip,{label:item.label,children:_jsx("span",{className:classes["truncate-text"],children:item.label})}):_jsx("span",{children:item.label}),_jsx(Tooltip,{label:t("Delete filter"),children:_jsx(Trash2,{"data-testid":"delete-icon",color:"red",size:16,className:classes["options-label"],onClick:e=>handleDelete(e,item.value)})})]})},item.value)),[dropdownList,handleDelete,t]);const emptyOption=_jsx(Combobox.Option,{value:"",children:_jsx(Group,{className:classes.options,children:_jsx("span",{children:t("No saved filters available")})})},"");return _jsxs(_Fragment,{children:[_jsxs(Combobox,{store:combobox,width:300,position:"bottom-start",withArrow:true,onOptionSubmit:handleSelect,styles:{dropdown:{zIndex:Z_INDEX_LAYER.GROUND.HIGHEST,maxHeight:"258px",overflow:"auto"}},children:[_jsx(Combobox.Target,{children:_jsx("div",{"data-testid":"filter-icon",className:classes.actions,onClick:handleClick,children:_jsx(Tooltip,{offset:15,label:t("Saved filters"),children:_jsx(Filter,{"data-testid":"filter-chevron-image",color:"var(--filter-chevron-color)",size:16})})})}),_jsx(Combobox.Dropdown,{children:_jsx(Combobox.Options,{children:options.length>0?options:emptyOption})})]}),_jsx(ConfirmationDialog,{alertStatus:EStatus.ERROR,title:t("Delete filter"),content:_jsx(Typo,{type:"body",children:t("Do you really want to delete this filter?")}),opened:!!modalData,onClose:()=>setModalData(null),confirmationButtonText:t("Confirm"),confirmationButtonVariant:"danger",cancelButtonText:t("Cancel"),onSubmit:handleConfirmDelete})]})};export{RemotePersistentFilterDropdown};
2
2
  //# sourceMappingURL=RemotePersistentFilterDropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Filter/RemotePersistence/RemotePersistentFilterDropdown.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\"\nimport { Filter, Trash2 } from \"lucide-react\"\nimport classes from \"./RemotePersistentFilterDropdown.module.css\"\nimport { TFilter } from \"../utils\"\nimport { TRemotePersistentFilter } from \"./types\"\nimport { Combobox, Group, useCombobox } from \"@mantine/core\"\nimport { useTranslation } from \"react-i18next\"\nimport { Tooltip } from \"../../Tooltip\"\nimport { ConfirmationDialog } from \"../../ConfirmationDialog\"\nimport { EStatus } from \"../../../genericTypes\"\nimport { Typo } from \"../../Typo\"\n\ntype TFilterDropdownProps = {\n config: TFilter.Config\n onSelect: (id: string) => void\n onDelete: (id: string) => void\n remotePersistentFilters: TRemotePersistentFilter[]\n}\n\nconst RemotePersistentFilterDropdown: React.FC<TFilterDropdownProps> = ({\n remotePersistentFilters,\n onSelect,\n onDelete,\n}) => {\n const { t } = useTranslation()\n const [selectedFilter, setSelectedFilter] = useState<string>()\n const [modalData, setModalData] = useState<string | null>(null)\n const combobox = useCombobox()\n\n const dropdownList = useMemo(\n () =>\n remotePersistentFilters.map((filter) => ({\n value: filter.id,\n label: filter.filterName,\n })),\n [remotePersistentFilters]\n )\n\n const handleClick = () => combobox.toggleDropdown()\n\n useEffect(() => {\n if (selectedFilter) onSelect(selectedFilter)\n }, [selectedFilter, onSelect])\n\n const handleSelect = useCallback(\n (filter: string) => {\n if (filter) {\n combobox.closeDropdown()\n setSelectedFilter(filter)\n }\n },\n [combobox]\n )\n\n const handleDelete = useCallback((e: React.MouseEvent<SVGSVGElement>, filterId: string) => {\n e.stopPropagation()\n setModalData(filterId)\n }, [])\n\n const handleConfirmDelete = useCallback(() => {\n if (modalData) {\n onDelete(modalData)\n setModalData(null)\n }\n }, [modalData, onDelete])\n\n const options = useMemo(\n () =>\n dropdownList\n .sort((a, b) => a.label.localeCompare(b.label))\n .map((item) => (\n <Combobox.Option data-testid=\"dropdown-option\" value={item.value} key={item.value}>\n <Group className={classes.options}>\n {item.label.length > 35 ? (\n <Tooltip label={item.label}>\n <span className={classes[\"truncate-text\"]}>{item.label}</span>\n </Tooltip>\n ) : (\n <span>{item.label}</span>\n )}\n <Tooltip label={t(\"Delete filter\")}>\n <Trash2\n data-testid={\"delete-icon\"}\n color=\"red\"\n size={16}\n className={classes[\"options-label\"]}\n onClick={(e) => handleDelete(e, item.value)}\n />\n </Tooltip>\n </Group>\n </Combobox.Option>\n )),\n [dropdownList, handleDelete, t]\n )\n\n const emptyOption = (\n <Combobox.Option value={\"\"} key={\"\"}>\n <Group className={classes.options}>\n <span>{t(\"No saved filters available\")}</span>\n </Group>\n </Combobox.Option>\n )\n\n return (\n <>\n <Combobox\n store={combobox}\n width={300}\n position=\"bottom-start\"\n withArrow\n onOptionSubmit={handleSelect}\n styles={{ dropdown: { zIndex: 10 } }}\n >\n <Combobox.Target>\n <div data-testid={\"filter-icon\"} className={classes.actions} onClick={handleClick}>\n <Tooltip offset={15} label={t(\"Saved filters\")}>\n <Filter\n data-testid={\"filter-chevron-image\"}\n color={\"var(--filter-chevron-color)\"}\n size={16}\n />\n </Tooltip>\n </div>\n </Combobox.Target>\n\n <Combobox.Dropdown>\n <Combobox.Options>{options.length > 0 ? options : emptyOption}</Combobox.Options>\n </Combobox.Dropdown>\n </Combobox>\n\n <ConfirmationDialog\n alertStatus={EStatus.ERROR}\n title={t(\"Delete filter\")}\n content={<Typo type=\"body\">{t(\"Do you really want to delete this filter?\")}</Typo>}\n opened={!!modalData}\n onClose={() => setModalData(null)}\n confirmationButtonText={t(\"Confirm\")}\n confirmationButtonVariant={\"danger\"}\n cancelButtonText={t(\"Cancel\")}\n onSubmit={handleConfirmDelete}\n />\n </>\n )\n}\n\nexport { RemotePersistentFilterDropdown }\n"],"names":["React","useCallback","useEffect","useMemo","useState","Filter","Trash2","classes","Combobox","Group","useCombobox","useTranslation","Tooltip","ConfirmationDialog","EStatus","Typo","RemotePersistentFilterDropdown","remotePersistentFilters","onSelect","onDelete","t","selectedFilter","setSelectedFilter","modalData","setModalData","combobox","dropdownList","map","filter","value","id","label","filterName","handleClick","toggleDropdown","handleSelect","closeDropdown","handleDelete","e","filterId","stopPropagation","handleConfirmDelete","options","sort","a","b","localeCompare","item","Option","data-testid","className","length","span","color","size","onClick","emptyOption","store","width","position","withArrow","onOptionSubmit","styles","dropdown","zIndex","Target","div","actions","offset","Dropdown","Options","alertStatus","ERROR","title","content","type","opened","onClose","confirmationButtonText","confirmationButtonVariant","cancelButtonText","onSubmit"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/Filter/RemotePersistence/RemotePersistentFilterDropdown.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\"\nimport { Filter, Trash2 } from \"lucide-react\"\nimport classes from \"./RemotePersistentFilterDropdown.module.css\"\nimport { TFilter } from \"../utils\"\nimport { TRemotePersistentFilter } from \"./types\"\nimport { Combobox, Group, useCombobox } from \"@mantine/core\"\nimport { useTranslation } from \"react-i18next\"\nimport { Tooltip } from \"../../Tooltip\"\nimport { ConfirmationDialog } from \"../../ConfirmationDialog\"\nimport { EStatus } from \"../../../genericTypes\"\nimport { Typo } from \"../../Typo\"\nimport { Z_INDEX_LAYER } from \"../../../theme\"\n\ntype TFilterDropdownProps = {\n config: TFilter.Config\n onSelect: (id: string) => void\n onDelete: (id: string) => void\n remotePersistentFilters: TRemotePersistentFilter[]\n}\n\nconst RemotePersistentFilterDropdown: React.FC<TFilterDropdownProps> = ({\n remotePersistentFilters,\n onSelect,\n onDelete,\n}) => {\n const { t } = useTranslation()\n const [selectedFilter, setSelectedFilter] = useState<string>()\n const [modalData, setModalData] = useState<string | null>(null)\n const combobox = useCombobox()\n\n const dropdownList = useMemo(\n () =>\n remotePersistentFilters.map((filter) => ({\n value: filter.id,\n label: filter.filterName,\n })),\n [remotePersistentFilters]\n )\n\n const handleClick = () => combobox.toggleDropdown()\n\n useEffect(() => {\n if (selectedFilter) onSelect(selectedFilter)\n }, [selectedFilter, onSelect])\n\n const handleSelect = useCallback(\n (filter: string) => {\n if (filter) {\n combobox.closeDropdown()\n setSelectedFilter(filter)\n }\n },\n [combobox]\n )\n\n const handleDelete = useCallback((e: React.MouseEvent<SVGSVGElement>, filterId: string) => {\n e.stopPropagation()\n setModalData(filterId)\n }, [])\n\n const handleConfirmDelete = useCallback(() => {\n if (modalData) {\n onDelete(modalData)\n setModalData(null)\n }\n }, [modalData, onDelete])\n\n const options = useMemo(\n () =>\n dropdownList\n .sort((a, b) => a.label.localeCompare(b.label))\n .map((item) => (\n <Combobox.Option data-testid=\"dropdown-option\" value={item.value} key={item.value}>\n <Group className={classes.options}>\n {item.label.length > 35 ? (\n <Tooltip label={item.label}>\n <span className={classes[\"truncate-text\"]}>{item.label}</span>\n </Tooltip>\n ) : (\n <span>{item.label}</span>\n )}\n <Tooltip label={t(\"Delete filter\")}>\n <Trash2\n data-testid={\"delete-icon\"}\n color=\"red\"\n size={16}\n className={classes[\"options-label\"]}\n onClick={(e) => handleDelete(e, item.value)}\n />\n </Tooltip>\n </Group>\n </Combobox.Option>\n )),\n [dropdownList, handleDelete, t]\n )\n\n const emptyOption = (\n <Combobox.Option value={\"\"} key={\"\"}>\n <Group className={classes.options}>\n <span>{t(\"No saved filters available\")}</span>\n </Group>\n </Combobox.Option>\n )\n\n return (\n <>\n <Combobox\n store={combobox}\n width={300}\n position=\"bottom-start\"\n withArrow\n onOptionSubmit={handleSelect}\n styles={{\n dropdown: { zIndex: Z_INDEX_LAYER.GROUND.HIGHEST, maxHeight: \"258px\", overflow: \"auto\" },\n }}\n >\n <Combobox.Target>\n <div data-testid={\"filter-icon\"} className={classes.actions} onClick={handleClick}>\n <Tooltip offset={15} label={t(\"Saved filters\")}>\n <Filter\n data-testid={\"filter-chevron-image\"}\n color={\"var(--filter-chevron-color)\"}\n size={16}\n />\n </Tooltip>\n </div>\n </Combobox.Target>\n\n <Combobox.Dropdown>\n <Combobox.Options>{options.length > 0 ? options : emptyOption}</Combobox.Options>\n </Combobox.Dropdown>\n </Combobox>\n\n <ConfirmationDialog\n alertStatus={EStatus.ERROR}\n title={t(\"Delete filter\")}\n content={<Typo type=\"body\">{t(\"Do you really want to delete this filter?\")}</Typo>}\n opened={!!modalData}\n onClose={() => setModalData(null)}\n confirmationButtonText={t(\"Confirm\")}\n confirmationButtonVariant={\"danger\"}\n cancelButtonText={t(\"Cancel\")}\n onSubmit={handleConfirmDelete}\n />\n </>\n )\n}\n\nexport { RemotePersistentFilterDropdown }\n"],"names":["React","useCallback","useEffect","useMemo","useState","Filter","Trash2","classes","Combobox","Group","useCombobox","useTranslation","Tooltip","ConfirmationDialog","EStatus","Typo","Z_INDEX_LAYER","RemotePersistentFilterDropdown","remotePersistentFilters","onSelect","onDelete","t","selectedFilter","setSelectedFilter","modalData","setModalData","combobox","dropdownList","map","filter","value","id","label","filterName","handleClick","toggleDropdown","handleSelect","closeDropdown","handleDelete","e","filterId","stopPropagation","handleConfirmDelete","options","sort","a","b","localeCompare","item","Option","data-testid","className","length","span","color","size","onClick","emptyOption","store","width","position","withArrow","onOptionSubmit","styles","dropdown","zIndex","GROUND","HIGHEST","maxHeight","overflow","Target","div","actions","offset","Dropdown","Options","alertStatus","ERROR","title","content","type","opened","onClose","confirmationButtonText","confirmationButtonVariant","cancelButtonText","onSubmit"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{LanguageSwitch}from"./languageSwitch/LanguageSwitch";import{ThemeSwitch,UserNav}from"./index";import{GreenboneLogo}from"../../../icons";import{Divider}from"@mantine/core";import{useTranslation}from"react-i18next";import{Power}from"lucide-react";import{TimeZone}from"./TimeZone";import{Z_INDEX_LAYER}from"../../../theme/conventions";import classes from"./AppHeader.module.css";import{Manual}from"./manual/Manual";export const AppHeader=({username,menuPoints,logoLink,isLoggedIn,languageSwitch,sessionTimer,logo,isThemeSwitchVisible=true,ianaTimeZone,manualLink})=>{return _jsxs("header",{className:classes.header,style:{zIndex:Z_INDEX_LAYER.GROUND.HIGHEST},children:[_jsx("a",{className:classes["logo-link"],href:logoLink,children:logo||_jsx(GreenboneLogo,{})}),_jsxs("div",{className:classes["right-side"],children:[_jsx(TimeZone,{ianaTimeZone:ianaTimeZone}),_jsx(Divider,{orientation:"vertical",className:classes.divider}),languageSwitch||_jsx(LanguageSwitch,{}),isThemeSwitchVisible&&_jsxs(_Fragment,{children:[_jsx(Divider,{orientation:"vertical",className:classes.divider}),_jsx(ThemeSwitch,{})]}),manualLink&&_jsx(Manual,{manualLink:manualLink}),isLoggedIn&&_jsxs(_Fragment,{children:[sessionTimer&&_jsxs(_Fragment,{children:[_jsx(Divider,{orientation:"vertical",className:classes.divider}),sessionTimer]}),_jsx(Divider,{orientation:"vertical",className:classes.divider}),_jsx(UserNav,{menuPoints:menuPoints,username:username})]})]})]})};export const useHeaderMenuPoints=logoutCallback=>{const{t}=useTranslation();return[{linkText:t("Sign out"),id:"logout",icon:_jsx(Power,{size:14,strokeWidth:1.5}),to:()=>logoutCallback?logoutCallback():null}]};
1
+ import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{LanguageSwitch}from"./languageSwitch/LanguageSwitch";import{ThemeSwitch,UserNav}from"./index";import{GreenboneLogo}from"../../../icons";import{Divider}from"@mantine/core";import{useTranslation}from"react-i18next";import{Power}from"lucide-react";import{TimeZone}from"./TimeZone";import{Z_INDEX_LAYER}from"../../../theme";import classes from"./AppHeader.module.css";import{Manual}from"./manual/Manual";export const AppHeader=({username,menuPoints,logoLink,isLoggedIn,languageSwitch,sessionTimer,logo,isThemeSwitchVisible=true,ianaTimeZone,manualLink,userNavWidth})=>{return _jsxs("header",{className:classes.header,style:{zIndex:Z_INDEX_LAYER.GROUND.HIGHEST},children:[_jsx("a",{className:classes["logo-link"],href:logoLink,children:logo||_jsx(GreenboneLogo,{})}),_jsxs("div",{className:classes["right-side"],children:[_jsx(TimeZone,{ianaTimeZone:ianaTimeZone}),_jsx(Divider,{orientation:"vertical",className:classes.divider}),languageSwitch||_jsx(LanguageSwitch,{}),isThemeSwitchVisible&&_jsxs(_Fragment,{children:[_jsx(Divider,{orientation:"vertical",className:classes.divider}),_jsx(ThemeSwitch,{})]}),manualLink&&_jsx(Manual,{manualLink:manualLink}),isLoggedIn&&_jsxs(_Fragment,{children:[sessionTimer&&_jsxs(_Fragment,{children:[_jsx(Divider,{orientation:"vertical",className:classes.divider}),sessionTimer]}),_jsx(Divider,{orientation:"vertical",className:classes.divider}),_jsx(UserNav,{menuPoints:menuPoints,username:username,userNavWidth:userNavWidth})]})]})]})};export const useHeaderMenuPoints=logoutCallback=>{const{t}=useTranslation();return[{linkText:t("Sign out"),id:"logout",icon:_jsx(Power,{size:14,strokeWidth:1.5}),to:()=>logoutCallback?logoutCallback():null}]};
2
2
  //# sourceMappingURL=AppHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Layout/AppHeader/AppHeader.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { LanguageSwitch } from \"./languageSwitch/LanguageSwitch\"\nimport { ThemeSwitch, UserNav } from \"./index\"\nimport { TAppHeaderProps } from \"./types\"\nimport { GreenboneLogo } from \"../../../icons\"\nimport { Divider } from \"@mantine/core\"\nimport { useTranslation } from \"react-i18next\"\nimport { Power } from \"lucide-react\"\nimport { TimeZone } from \"./TimeZone\"\nimport { Z_INDEX_LAYER } from \"../../../theme/conventions\"\nimport classes from \"./AppHeader.module.css\"\nimport { Manual } from \"./manual/Manual\"\n\nexport const AppHeader = ({\n username,\n menuPoints,\n logoLink,\n isLoggedIn,\n languageSwitch,\n sessionTimer,\n logo,\n isThemeSwitchVisible = true,\n ianaTimeZone,\n manualLink,\n}: TAppHeaderProps) => {\n return (\n <header\n className={classes.header}\n style={{\n zIndex: Z_INDEX_LAYER.GROUND.HIGHEST,\n }}\n >\n <a className={classes[\"logo-link\"]} href={logoLink}>\n {logo || <GreenboneLogo />}\n </a>\n <div className={classes[\"right-side\"]}>\n <TimeZone ianaTimeZone={ianaTimeZone} />\n <Divider orientation=\"vertical\" className={classes.divider} />\n {languageSwitch || <LanguageSwitch />}\n {isThemeSwitchVisible && (\n <>\n <Divider orientation=\"vertical\" className={classes.divider} />\n <ThemeSwitch />\n </>\n )}\n {manualLink && <Manual manualLink={manualLink} />}\n {isLoggedIn && (\n <>\n {sessionTimer && (\n <>\n <Divider orientation=\"vertical\" className={classes.divider} />\n {sessionTimer}\n </>\n )}\n <Divider orientation=\"vertical\" className={classes.divider} />\n <UserNav menuPoints={menuPoints} username={username} />\n </>\n )}\n </div>\n </header>\n )\n}\n\nexport const useHeaderMenuPoints = (logoutCallback?: () => void) => {\n const { t } = useTranslation()\n\n return [\n {\n linkText: t(\"Sign out\"),\n id: \"logout\",\n icon: <Power size={14} strokeWidth={1.5} />,\n to: () => (logoutCallback ? logoutCallback() : null),\n },\n ]\n}\n"],"names":["LanguageSwitch","ThemeSwitch","UserNav","GreenboneLogo","Divider","useTranslation","Power","TimeZone","Z_INDEX_LAYER","classes","Manual","AppHeader","username","menuPoints","logoLink","isLoggedIn","languageSwitch","sessionTimer","logo","isThemeSwitchVisible","ianaTimeZone","manualLink","header","className","style","zIndex","GROUND","HIGHEST","a","href","div","orientation","divider","useHeaderMenuPoints","logoutCallback","t","linkText","id","icon","size","strokeWidth","to"],"mappings":"8EAIA,QAASA,cAAc,KAAQ,iCAAiC,AAChE,QAASC,WAAW,CAAEC,OAAO,KAAQ,SAAS,AAE9C,QAASC,aAAa,KAAQ,gBAAgB,AAC9C,QAASC,OAAO,KAAQ,eAAe,AACvC,QAASC,cAAc,KAAQ,eAAe,AAC9C,QAASC,KAAK,KAAQ,cAAc,AACpC,QAASC,QAAQ,KAAQ,YAAY,AACrC,QAASC,aAAa,KAAQ,4BAA4B,AAC1D,QAAOC,YAAa,wBAAwB,AAC5C,QAASC,MAAM,KAAQ,iBAAiB,AAExC,QAAO,MAAMC,UAAY,CAAC,CACxBC,QAAQ,CACRC,UAAU,CACVC,QAAQ,CACRC,UAAU,CACVC,cAAc,CACdC,YAAY,CACZC,IAAI,CACJC,qBAAuB,IAAI,CAC3BC,YAAY,CACZC,UAAU,CACM,IAChB,OACE,MAACC,UACCC,UAAWd,QAAQa,MAAM,CACzBE,MAAO,CACLC,OAAQjB,cAAckB,MAAM,CAACC,OAAO,AACtC,YAEA,KAACC,KAAEL,UAAWd,OAAO,CAAC,YAAY,CAAEoB,KAAMf,kBACvCI,MAAQ,KAACf,oBAEZ,MAAC2B,OAAIP,UAAWd,OAAO,CAAC,aAAa,WACnC,KAACF,UAASa,aAAcA,eACxB,KAAChB,SAAQ2B,YAAY,WAAWR,UAAWd,QAAQuB,OAAO,GACzDhB,gBAAkB,KAAChB,mBACnBmB,sBACC,2BACE,KAACf,SAAQ2B,YAAY,WAAWR,UAAWd,QAAQuB,OAAO,GAC1D,KAAC/B,mBAGJoB,YAAc,KAACX,QAAOW,WAAYA,aAClCN,YACC,2BACGE,cACC,2BACE,KAACb,SAAQ2B,YAAY,WAAWR,UAAWd,QAAQuB,OAAO,GACzDf,gBAGL,KAACb,SAAQ2B,YAAY,WAAWR,UAAWd,QAAQuB,OAAO,GAC1D,KAAC9B,SAAQW,WAAYA,WAAYD,SAAUA,mBAMvD,CAAC,AAED,QAAO,MAAMqB,oBAAsB,AAACC,iBAClC,KAAM,CAAEC,CAAC,CAAE,CAAG9B,iBAEd,MAAO,CACL,CACE+B,SAAUD,EAAE,YACZE,GAAI,SACJC,KAAM,KAAChC,OAAMiC,KAAM,GAAIC,YAAa,MACpCC,GAAI,IAAOP,eAAiBA,iBAAmB,IACjD,EACD,AACH,CAAC"}
1
+ {"version":3,"sources":["../../../../../src/components/Layout/AppHeader/AppHeader.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { LanguageSwitch } from \"./languageSwitch/LanguageSwitch\"\nimport { ThemeSwitch, UserNav } from \"./index\"\nimport { TAppHeaderProps } from \"./types\"\nimport { GreenboneLogo } from \"../../../icons\"\nimport { Divider } from \"@mantine/core\"\nimport { useTranslation } from \"react-i18next\"\nimport { Power } from \"lucide-react\"\nimport { TimeZone } from \"./TimeZone\"\nimport { Z_INDEX_LAYER } from \"../../../theme\"\nimport classes from \"./AppHeader.module.css\"\nimport { Manual } from \"./manual/Manual\"\n\nexport const AppHeader = ({\n username,\n menuPoints,\n logoLink,\n isLoggedIn,\n languageSwitch,\n sessionTimer,\n logo,\n isThemeSwitchVisible = true,\n ianaTimeZone,\n manualLink,\n userNavWidth,\n}: TAppHeaderProps) => {\n return (\n <header\n className={classes.header}\n style={{\n zIndex: Z_INDEX_LAYER.GROUND.HIGHEST,\n }}\n >\n <a className={classes[\"logo-link\"]} href={logoLink}>\n {logo || <GreenboneLogo />}\n </a>\n <div className={classes[\"right-side\"]}>\n <TimeZone ianaTimeZone={ianaTimeZone} />\n <Divider orientation=\"vertical\" className={classes.divider} />\n {languageSwitch || <LanguageSwitch />}\n {isThemeSwitchVisible && (\n <>\n <Divider orientation=\"vertical\" className={classes.divider} />\n <ThemeSwitch />\n </>\n )}\n {manualLink && <Manual manualLink={manualLink} />}\n {isLoggedIn && (\n <>\n {sessionTimer && (\n <>\n <Divider orientation=\"vertical\" className={classes.divider} />\n {sessionTimer}\n </>\n )}\n <Divider orientation=\"vertical\" className={classes.divider} />\n <UserNav menuPoints={menuPoints} username={username} userNavWidth={userNavWidth} />\n </>\n )}\n </div>\n </header>\n )\n}\n\nexport const useHeaderMenuPoints = (logoutCallback?: () => void) => {\n const { t } = useTranslation()\n\n return [\n {\n linkText: t(\"Sign out\"),\n id: \"logout\",\n icon: <Power size={14} strokeWidth={1.5} />,\n to: () => (logoutCallback ? logoutCallback() : null),\n },\n ]\n}\n"],"names":["LanguageSwitch","ThemeSwitch","UserNav","GreenboneLogo","Divider","useTranslation","Power","TimeZone","Z_INDEX_LAYER","classes","Manual","AppHeader","username","menuPoints","logoLink","isLoggedIn","languageSwitch","sessionTimer","logo","isThemeSwitchVisible","ianaTimeZone","manualLink","userNavWidth","header","className","style","zIndex","GROUND","HIGHEST","a","href","div","orientation","divider","useHeaderMenuPoints","logoutCallback","t","linkText","id","icon","size","strokeWidth","to"],"mappings":"8EAIA,QAASA,cAAc,KAAQ,iCAAiC,AAChE,QAASC,WAAW,CAAEC,OAAO,KAAQ,SAAS,AAE9C,QAASC,aAAa,KAAQ,gBAAgB,AAC9C,QAASC,OAAO,KAAQ,eAAe,AACvC,QAASC,cAAc,KAAQ,eAAe,AAC9C,QAASC,KAAK,KAAQ,cAAc,AACpC,QAASC,QAAQ,KAAQ,YAAY,AACrC,QAASC,aAAa,KAAQ,gBAAgB,AAC9C,QAAOC,YAAa,wBAAwB,AAC5C,QAASC,MAAM,KAAQ,iBAAiB,AAExC,QAAO,MAAMC,UAAY,CAAC,CACxBC,QAAQ,CACRC,UAAU,CACVC,QAAQ,CACRC,UAAU,CACVC,cAAc,CACdC,YAAY,CACZC,IAAI,CACJC,qBAAuB,IAAI,CAC3BC,YAAY,CACZC,UAAU,CACVC,YAAY,CACI,IAChB,OACE,MAACC,UACCC,UAAWf,QAAQc,MAAM,CACzBE,MAAO,CACLC,OAAQlB,cAAcmB,MAAM,CAACC,OAAO,AACtC,YAEA,KAACC,KAAEL,UAAWf,OAAO,CAAC,YAAY,CAAEqB,KAAMhB,kBACvCI,MAAQ,KAACf,oBAEZ,MAAC4B,OAAIP,UAAWf,OAAO,CAAC,aAAa,WACnC,KAACF,UAASa,aAAcA,eACxB,KAAChB,SAAQ4B,YAAY,WAAWR,UAAWf,QAAQwB,OAAO,GACzDjB,gBAAkB,KAAChB,mBACnBmB,sBACC,2BACE,KAACf,SAAQ4B,YAAY,WAAWR,UAAWf,QAAQwB,OAAO,GAC1D,KAAChC,mBAGJoB,YAAc,KAACX,QAAOW,WAAYA,aAClCN,YACC,2BACGE,cACC,2BACE,KAACb,SAAQ4B,YAAY,WAAWR,UAAWf,QAAQwB,OAAO,GACzDhB,gBAGL,KAACb,SAAQ4B,YAAY,WAAWR,UAAWf,QAAQwB,OAAO,GAC1D,KAAC/B,SAAQW,WAAYA,WAAYD,SAAUA,SAAUU,aAAcA,uBAM/E,CAAC,AAED,QAAO,MAAMY,oBAAsB,AAACC,iBAClC,KAAM,CAAEC,CAAC,CAAE,CAAG/B,iBAEd,MAAO,CACL,CACEgC,SAAUD,EAAE,YACZE,GAAI,SACJC,KAAM,KAACjC,OAAMkC,KAAM,GAAIC,YAAa,MACpCC,GAAI,IAAOP,eAAiBA,iBAAmB,IACjD,EACD,AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Layout/AppHeader/types.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { ReactNode } from \"react\"\n\nexport type TAppHeaderProps = {\n username?: string\n menuPoints: TMenuPoint[]\n logoLink: string\n isLoggedIn: boolean\n languageSwitch?: JSX.Element\n sessionTimer?: ReactNode\n logo?: ReactNode\n isThemeSwitchVisible?: boolean\n ianaTimeZone?: string\n manualLink?: string\n}\n\nexport type TMenuPoint = {\n linkText: string\n icon: JSX.Element\n to: string | (() => void)\n}\n\nexport type TUserNavProps = {\n username?: string\n menuPoints: TMenuPoint[]\n}\n"],"names":[],"mappings":"AAyBA,QAGC"}
1
+ {"version":3,"sources":["../../../../../src/components/Layout/AppHeader/types.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { ReactNode } from \"react\"\nimport { PopoverWidth } from \"@mantine/core\"\n\nexport type TAppHeaderProps = {\n username?: string\n menuPoints: TMenuPoint[]\n logoLink: string\n isLoggedIn: boolean\n languageSwitch?: JSX.Element\n sessionTimer?: ReactNode\n logo?: ReactNode\n isThemeSwitchVisible?: boolean\n ianaTimeZone?: string\n manualLink?: string\n userNavWidth?: PopoverWidth\n}\n\nexport type TMenuPoint = {\n linkText: string\n icon: JSX.Element\n to: string | (() => void)\n}\n\nexport type TUserNavProps = {\n username?: string\n menuPoints: TMenuPoint[]\n userNavWidth?: PopoverWidth\n}\n"],"names":[],"mappings":"AA2BA,QAIC"}
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{Menu}from"@mantine/core";import{NavItem}from"./NavItem";import{UserCircle2}from"lucide-react";import classes from"./UserNav.module.css";import{ICON_SIZES}from"../../../../theme/conventions";export const UserNav=({username,menuPoints})=>{return _jsxs(Menu,{shadow:"md",trigger:"hover",width:140,closeDelay:100,offset:11,children:[_jsx(Menu.Target,{children:_jsxs("div",{className:classes["user-nav-wrapper"],children:[_jsx("div",{className:classes["user-name"],children:username}),_jsx("div",{className:classes["user-icon-wrapper"],children:_jsx(UserCircle2,{size:ICON_SIZES.MEDIUM,strokeWidth:1.5})})]})}),_jsx(Menu.Dropdown,{children:menuPoints.map(menuPoint=>{if(typeof menuPoint.to==="string"){return _jsx(Menu.Item,{component:"a",href:menuPoint.to,children:_jsx(NavItem,{linkText:menuPoint.linkText,icon:menuPoint.icon})},menuPoint.linkText)}if(typeof menuPoint.to==="function"){return _jsx("div",{onClick:menuPoint.to,children:_jsx(Menu.Item,{children:_jsx(NavItem,{linkText:menuPoint.linkText,icon:menuPoint.icon})})},menuPoint.linkText)}})})]})};
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{Menu}from"@mantine/core";import{NavItem}from"./NavItem";import{UserCircle2}from"lucide-react";import classes from"./UserNav.module.css";import{ICON_SIZES}from"../../../../theme";export const UserNav=({username,menuPoints,userNavWidth=140})=>{return _jsxs(Menu,{shadow:"md",trigger:"hover",width:userNavWidth,closeDelay:100,offset:11,children:[_jsx(Menu.Target,{children:_jsxs("div",{className:classes["user-nav-wrapper"],children:[_jsx("div",{className:classes["user-name"],children:username}),_jsx("div",{className:classes["user-icon-wrapper"],children:_jsx(UserCircle2,{size:ICON_SIZES.MEDIUM,strokeWidth:1.5})})]})}),_jsx(Menu.Dropdown,{children:menuPoints.map(menuPoint=>{if(typeof menuPoint.to==="string"){return _jsx(Menu.Item,{component:"a",href:menuPoint.to,children:_jsx(NavItem,{linkText:menuPoint.linkText,icon:menuPoint.icon})},menuPoint.linkText)}if(typeof menuPoint.to==="function"){return _jsx("div",{onClick:menuPoint.to,children:_jsx(Menu.Item,{children:_jsx(NavItem,{linkText:menuPoint.linkText,icon:menuPoint.icon})})},menuPoint.linkText)}})})]})};
2
2
  //# sourceMappingURL=UserNav.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Layout/AppHeader/userNav/UserNav.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Menu } from \"@mantine/core\"\nimport { TUserNavProps } from \"../types\"\nimport { NavItem } from \"./NavItem\"\nimport { UserCircle2 } from \"lucide-react\"\nimport classes from \"./UserNav.module.css\"\nimport { ICON_SIZES } from \"../../../../theme/conventions\"\n\nexport const UserNav = ({ username, menuPoints }: TUserNavProps) => {\n return (\n <Menu shadow=\"md\" trigger=\"hover\" width={140} closeDelay={100} offset={11}>\n <Menu.Target>\n <div className={classes[\"user-nav-wrapper\"]}>\n <div className={classes[\"user-name\"]}>{username}</div>\n <div className={classes[\"user-icon-wrapper\"]}>\n <UserCircle2 size={ICON_SIZES.MEDIUM} strokeWidth={1.5} />\n </div>\n </div>\n </Menu.Target>\n\n <Menu.Dropdown>\n {menuPoints.map((menuPoint) => {\n if (typeof menuPoint.to === \"string\") {\n return (\n <Menu.Item component={\"a\"} href={menuPoint.to} key={menuPoint.linkText}>\n <NavItem linkText={menuPoint.linkText} icon={menuPoint.icon} />\n </Menu.Item>\n )\n }\n if (typeof menuPoint.to === \"function\") {\n return (\n <div key={menuPoint.linkText} onClick={menuPoint.to}>\n <Menu.Item>\n <NavItem linkText={menuPoint.linkText} icon={menuPoint.icon} />\n </Menu.Item>\n </div>\n )\n }\n })}\n </Menu.Dropdown>\n </Menu>\n )\n}\n"],"names":["Menu","NavItem","UserCircle2","classes","ICON_SIZES","UserNav","username","menuPoints","shadow","trigger","width","closeDelay","offset","Target","div","className","size","MEDIUM","strokeWidth","Dropdown","map","menuPoint","to","Item","component","href","linkText","icon","onClick"],"mappings":"wDAIA,QAASA,IAAI,KAAQ,eAAe,AAEpC,QAASC,OAAO,KAAQ,WAAW,AACnC,QAASC,WAAW,KAAQ,cAAc,AAC1C,QAAOC,YAAa,sBAAsB,AAC1C,QAASC,UAAU,KAAQ,+BAA+B,AAE1D,QAAO,MAAMC,QAAU,CAAC,CAAEC,QAAQ,CAAEC,UAAU,CAAiB,IAC7D,OACE,MAACP,MAAKQ,OAAO,KAAKC,QAAQ,QAAQC,MAAO,IAAKC,WAAY,IAAKC,OAAQ,aACrE,KAACZ,KAAKa,MAAM,WACV,MAACC,OAAIC,UAAWZ,OAAO,CAAC,mBAAmB,WACzC,KAACW,OAAIC,UAAWZ,OAAO,CAAC,YAAY,UAAGG,WACvC,KAACQ,OAAIC,UAAWZ,OAAO,CAAC,oBAAoB,UAC1C,KAACD,aAAYc,KAAMZ,WAAWa,MAAM,CAAEC,YAAa,aAKzD,KAAClB,KAAKmB,QAAQ,WACXZ,WAAWa,GAAG,CAAC,AAACC,YACf,GAAI,OAAOA,UAAUC,EAAE,GAAK,SAAU,CACpC,OACE,KAACtB,KAAKuB,IAAI,EAACC,UAAW,IAAKC,KAAMJ,UAAUC,EAAE,UAC3C,KAACrB,SAAQyB,SAAUL,UAAUK,QAAQ,CAAEC,KAAMN,UAAUM,IAAI,IADTN,UAAUK,QAAQ,CAI1E,CACA,GAAI,OAAOL,UAAUC,EAAE,GAAK,WAAY,CACtC,OACE,KAACR,OAA6Bc,QAASP,UAAUC,EAAE,UACjD,KAACtB,KAAKuB,IAAI,WACR,KAACtB,SAAQyB,SAAUL,UAAUK,QAAQ,CAAEC,KAAMN,UAAUM,IAAI,MAFrDN,UAAUK,QAAQ,CAMhC,CACF,OAIR,CAAC"}
1
+ {"version":3,"sources":["../../../../../../src/components/Layout/AppHeader/userNav/UserNav.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Menu } from \"@mantine/core\"\nimport { TUserNavProps } from \"../types\"\nimport { NavItem } from \"./NavItem\"\nimport { UserCircle2 } from \"lucide-react\"\nimport classes from \"./UserNav.module.css\"\nimport { ICON_SIZES } from \"../../../../theme\"\n\nexport const UserNav = ({ username, menuPoints, userNavWidth = 140 }: TUserNavProps) => {\n return (\n <Menu shadow=\"md\" trigger=\"hover\" width={userNavWidth} closeDelay={100} offset={11}>\n <Menu.Target>\n <div className={classes[\"user-nav-wrapper\"]}>\n <div className={classes[\"user-name\"]}>{username}</div>\n <div className={classes[\"user-icon-wrapper\"]}>\n <UserCircle2 size={ICON_SIZES.MEDIUM} strokeWidth={1.5} />\n </div>\n </div>\n </Menu.Target>\n\n <Menu.Dropdown>\n {menuPoints.map((menuPoint) => {\n if (typeof menuPoint.to === \"string\") {\n return (\n <Menu.Item component={\"a\"} href={menuPoint.to} key={menuPoint.linkText}>\n <NavItem linkText={menuPoint.linkText} icon={menuPoint.icon} />\n </Menu.Item>\n )\n }\n if (typeof menuPoint.to === \"function\") {\n return (\n <div key={menuPoint.linkText} onClick={menuPoint.to}>\n <Menu.Item>\n <NavItem linkText={menuPoint.linkText} icon={menuPoint.icon} />\n </Menu.Item>\n </div>\n )\n }\n })}\n </Menu.Dropdown>\n </Menu>\n )\n}\n"],"names":["Menu","NavItem","UserCircle2","classes","ICON_SIZES","UserNav","username","menuPoints","userNavWidth","shadow","trigger","width","closeDelay","offset","Target","div","className","size","MEDIUM","strokeWidth","Dropdown","map","menuPoint","to","Item","component","href","linkText","icon","onClick"],"mappings":"wDAIA,QAASA,IAAI,KAAQ,eAAe,AAEpC,QAASC,OAAO,KAAQ,WAAW,AACnC,QAASC,WAAW,KAAQ,cAAc,AAC1C,QAAOC,YAAa,sBAAsB,AAC1C,QAASC,UAAU,KAAQ,mBAAmB,AAE9C,QAAO,MAAMC,QAAU,CAAC,CAAEC,QAAQ,CAAEC,UAAU,CAAEC,aAAe,GAAG,CAAiB,IACjF,OACE,MAACR,MAAKS,OAAO,KAAKC,QAAQ,QAAQC,MAAOH,aAAcI,WAAY,IAAKC,OAAQ,aAC9E,KAACb,KAAKc,MAAM,WACV,MAACC,OAAIC,UAAWb,OAAO,CAAC,mBAAmB,WACzC,KAACY,OAAIC,UAAWb,OAAO,CAAC,YAAY,UAAGG,WACvC,KAACS,OAAIC,UAAWb,OAAO,CAAC,oBAAoB,UAC1C,KAACD,aAAYe,KAAMb,WAAWc,MAAM,CAAEC,YAAa,aAKzD,KAACnB,KAAKoB,QAAQ,WACXb,WAAWc,GAAG,CAAC,AAACC,YACf,GAAI,OAAOA,UAAUC,EAAE,GAAK,SAAU,CACpC,OACE,KAACvB,KAAKwB,IAAI,EAACC,UAAW,IAAKC,KAAMJ,UAAUC,EAAE,UAC3C,KAACtB,SAAQ0B,SAAUL,UAAUK,QAAQ,CAAEC,KAAMN,UAAUM,IAAI,IADTN,UAAUK,QAAQ,CAI1E,CACA,GAAI,OAAOL,UAAUC,EAAE,GAAK,WAAY,CACtC,OACE,KAACR,OAA6Bc,QAASP,UAAUC,EAAE,UACjD,KAACvB,KAAKwB,IAAI,WACR,KAACvB,SAAQ0B,SAAUL,UAAUK,QAAQ,CAAEC,KAAMN,UAAUM,IAAI,MAFrDN,UAAUK,QAAQ,CAMhC,CACF,OAIR,CAAC"}
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{Divider}from"@mantine/core";import{AppNavigationLink}from"./AppNavigationLink";import classes from"./AppNavigation.module.css";export const AppNavigation=({menuPoints,as})=>{return _jsx("div",{className:classes.navigation,children:menuPoints.map((navSection,navSectionIndex,navSectionArray)=>navSection.map((item,itemIndex,itemArray)=>{var _item_subNav;const submenu=item===null||item===void 0?void 0:(_item_subNav=item.subNav)===null||_item_subNav===void 0?void 0:_item_subNav.map(item=>_jsx(AppNavigationLink,{component:item.active&&item.isPathMatch?"span":item.isExternal?"a":as,to:item.to,href:item.to,active:item.active,label:item.label,leftSection:item.icon?_jsx(item.icon,{}):undefined,rightSection:item.rightSection||undefined,className:item.icon?"":classes["navigation-item-without-icon"]},item.key||item.to));return _jsxs("div",{children:[_jsx(AppNavigationLink,{component:item.active&&item.isPathMatch?"span":item.isExternal?"a":as,to:item.to,active:item.active,href:item.to,label:item.label,rightSection:item.rightSection,leftSection:item.icon?_jsx(item.icon,{}):undefined,defaultOpened:item.defaultOpened,children:submenu}),itemIndex===itemArray.length-1&&navSectionIndex!==navSectionArray.length-1&&_jsx(Divider,{className:classes["divider-root"],my:"sm"})]},item.key||item.to)}))})};
1
+ import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{Divider}from"@mantine/core";import{AppNavigationLink}from"./AppNavigationLink";import classes from"./AppNavigation.module.css";export const AppNavigation=({menuPoints,as})=>{return _jsx("div",{className:classes.navigation,children:menuPoints.map((navSection,navSectionIndex,navSectionArray)=>navSection.map((item,itemIndex,itemArray)=>{var _item_subNav;const submenu=item===null||item===void 0?void 0:(_item_subNav=item.subNav)===null||_item_subNav===void 0?void 0:_item_subNav.map(item=>_jsx(AppNavigationLink,{component:item.active&&item.isPathMatch?"span":item.isExternal?"a":as,to:item.to,href:item.to,active:item.active,label:item.label,leftSection:item.icon?_jsx(item.icon,{}):undefined,rightSection:item.rightSection||undefined,className:item.icon?"":classes["navigation-item-without-icon"],target:item.openInNewTab?"_blank":"_self",rel:item.openInNewTab?"noopener noreferrer":undefined},item.key||item.to));return _jsxs("div",{children:[_jsx(AppNavigationLink,{component:item.active&&item.isPathMatch?"span":item.isExternal?"a":as,to:item.to,active:item.active,href:item.to,label:item.label,rightSection:item.rightSection,leftSection:item.icon?_jsx(item.icon,{}):undefined,defaultOpened:item.defaultOpened,target:item.openInNewTab?"_blank":"_self",rel:item.openInNewTab?"noopener noreferrer":undefined,children:submenu}),itemIndex===itemArray.length-1&&navSectionIndex!==navSectionArray.length-1&&_jsx(Divider,{className:classes["divider-root"],my:"sm"})]},item.key||item.to)}))})};
2
2
  //# sourceMappingURL=AppNavigation.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Layout/AppNavigation/AppNavigation.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Divider } from \"@mantine/core\"\nimport { AppNavigationLink } from \"./AppNavigationLink\"\nimport { TNavLinkConfig } from \"./Menu/types\"\nimport classes from \"./AppNavigation.module.css\"\n\ntype TAppNavigationProps = {\n menuPoints: TNavLinkConfig[][]\n as: any\n}\n\nexport const AppNavigation = ({ menuPoints, as }: TAppNavigationProps) => {\n return (\n <div className={classes.navigation}>\n {menuPoints.map((navSection, navSectionIndex, navSectionArray) =>\n navSection.map((item, itemIndex, itemArray) => {\n const submenu = item?.subNav?.map((item) => (\n <AppNavigationLink\n component={item.active && item.isPathMatch ? \"span\" : item.isExternal ? \"a\" : as}\n to={item.to}\n href={item.to}\n key={item.key || item.to}\n active={item.active}\n label={item.label}\n leftSection={item.icon ? <item.icon /> : undefined}\n rightSection={item.rightSection || undefined}\n className={item.icon ? \"\" : classes[\"navigation-item-without-icon\"]}\n />\n ))\n return (\n <div key={item.key || item.to}>\n <AppNavigationLink\n component={item.active && item.isPathMatch ? \"span\" : item.isExternal ? \"a\" : as}\n to={item.to}\n active={item.active}\n href={item.to}\n label={item.label}\n rightSection={item.rightSection}\n leftSection={item.icon ? <item.icon /> : undefined}\n defaultOpened={item.defaultOpened}\n >\n {submenu}\n </AppNavigationLink>\n {itemIndex === itemArray.length - 1 &&\n navSectionIndex !== navSectionArray.length - 1 && (\n <Divider className={classes[\"divider-root\"]} my=\"sm\" />\n )}\n </div>\n )\n })\n )}\n </div>\n )\n}\n"],"names":["Divider","AppNavigationLink","classes","AppNavigation","menuPoints","as","div","className","navigation","map","navSection","navSectionIndex","navSectionArray","item","itemIndex","itemArray","submenu","subNav","component","active","isPathMatch","isExternal","to","href","label","leftSection","icon","undefined","rightSection","key","defaultOpened","length","my"],"mappings":"wDAIA,QAASA,OAAO,KAAQ,eAAe,AACvC,QAASC,iBAAiB,KAAQ,qBAAqB,AAEvD,QAAOC,YAAa,4BAA4B,AAOhD,QAAO,MAAMC,cAAgB,CAAC,CAAEC,UAAU,CAAEC,EAAE,CAAuB,IACnE,OACE,KAACC,OAAIC,UAAWL,QAAQM,UAAU,UAC/BJ,WAAWK,GAAG,CAAC,CAACC,WAAYC,gBAAiBC,kBAC5CF,WAAWD,GAAG,CAAC,CAACI,KAAMC,UAAWC,iBACfF,aAAhB,MAAMG,QAAUH,aAAAA,sBAAAA,aAAAA,KAAMI,MAAM,UAAZJ,6BAAAA,aAAcJ,GAAG,CAAC,AAACI,MACjC,KAACZ,mBACCiB,UAAWL,KAAKM,MAAM,EAAIN,KAAKO,WAAW,CAAG,OAASP,KAAKQ,UAAU,CAAG,IAAMhB,GAC9EiB,GAAIT,KAAKS,EAAE,CACXC,KAAMV,KAAKS,EAAE,CAEbH,OAAQN,KAAKM,MAAM,CACnBK,MAAOX,KAAKW,KAAK,CACjBC,YAAaZ,KAAKa,IAAI,CAAG,KAACb,KAAKa,IAAI,KAAMC,UACzCC,aAAcf,KAAKe,YAAY,EAAID,UACnCpB,UAAWM,KAAKa,IAAI,CAAG,GAAKxB,OAAO,CAAC,+BAA+B,EAL9DW,KAAKgB,GAAG,EAAIhB,KAAKS,EAAE,GAQ5B,OACE,MAAChB,iBACC,KAACL,mBACCiB,UAAWL,KAAKM,MAAM,EAAIN,KAAKO,WAAW,CAAG,OAASP,KAAKQ,UAAU,CAAG,IAAMhB,GAC9EiB,GAAIT,KAAKS,EAAE,CACXH,OAAQN,KAAKM,MAAM,CACnBI,KAAMV,KAAKS,EAAE,CACbE,MAAOX,KAAKW,KAAK,CACjBI,aAAcf,KAAKe,YAAY,CAC/BH,YAAaZ,KAAKa,IAAI,CAAG,KAACb,KAAKa,IAAI,KAAMC,UACzCG,cAAejB,KAAKiB,aAAa,UAEhCd,UAEFF,YAAcC,UAAUgB,MAAM,CAAG,GAChCpB,kBAAoBC,gBAAgBmB,MAAM,CAAG,GAC3C,KAAC/B,SAAQO,UAAWL,OAAO,CAAC,eAAe,CAAE8B,GAAG,SAf5CnB,KAAKgB,GAAG,EAAIhB,KAAKS,EAAE,CAmBjC,KAIR,CAAC"}
1
+ {"version":3,"sources":["../../../../../src/components/Layout/AppNavigation/AppNavigation.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Divider } from \"@mantine/core\"\nimport { AppNavigationLink } from \"./AppNavigationLink\"\nimport { TNavLinkConfig } from \"./Menu/types\"\nimport classes from \"./AppNavigation.module.css\"\n\ntype TAppNavigationProps = {\n menuPoints: TNavLinkConfig[][]\n as: any\n}\n\nexport const AppNavigation = ({ menuPoints, as }: TAppNavigationProps) => {\n return (\n <div className={classes.navigation}>\n {menuPoints.map((navSection, navSectionIndex, navSectionArray) =>\n navSection.map((item, itemIndex, itemArray) => {\n const submenu = item?.subNav?.map((item) => (\n <AppNavigationLink\n component={item.active && item.isPathMatch ? \"span\" : item.isExternal ? \"a\" : as}\n to={item.to}\n href={item.to}\n key={item.key || item.to}\n active={item.active}\n label={item.label}\n leftSection={item.icon ? <item.icon /> : undefined}\n rightSection={item.rightSection || undefined}\n className={item.icon ? \"\" : classes[\"navigation-item-without-icon\"]}\n target={item.openInNewTab ? \"_blank\" : \"_self\"}\n rel={item.openInNewTab ? \"noopener noreferrer\" : undefined}\n />\n ))\n return (\n <div key={item.key || item.to}>\n <AppNavigationLink\n component={item.active && item.isPathMatch ? \"span\" : item.isExternal ? \"a\" : as}\n to={item.to}\n active={item.active}\n href={item.to}\n label={item.label}\n rightSection={item.rightSection}\n leftSection={item.icon ? <item.icon /> : undefined}\n defaultOpened={item.defaultOpened}\n target={item.openInNewTab ? \"_blank\" : \"_self\"}\n rel={item.openInNewTab ? \"noopener noreferrer\" : undefined}\n >\n {submenu}\n </AppNavigationLink>\n {itemIndex === itemArray.length - 1 &&\n navSectionIndex !== navSectionArray.length - 1 && (\n <Divider className={classes[\"divider-root\"]} my=\"sm\" />\n )}\n </div>\n )\n })\n )}\n </div>\n )\n}\n"],"names":["Divider","AppNavigationLink","classes","AppNavigation","menuPoints","as","div","className","navigation","map","navSection","navSectionIndex","navSectionArray","item","itemIndex","itemArray","submenu","subNav","component","active","isPathMatch","isExternal","to","href","label","leftSection","icon","undefined","rightSection","target","openInNewTab","rel","key","defaultOpened","length","my"],"mappings":"wDAIA,QAASA,OAAO,KAAQ,eAAe,AACvC,QAASC,iBAAiB,KAAQ,qBAAqB,AAEvD,QAAOC,YAAa,4BAA4B,AAOhD,QAAO,MAAMC,cAAgB,CAAC,CAAEC,UAAU,CAAEC,EAAE,CAAuB,IACnE,OACE,KAACC,OAAIC,UAAWL,QAAQM,UAAU,UAC/BJ,WAAWK,GAAG,CAAC,CAACC,WAAYC,gBAAiBC,kBAC5CF,WAAWD,GAAG,CAAC,CAACI,KAAMC,UAAWC,iBACfF,aAAhB,MAAMG,QAAUH,aAAAA,sBAAAA,aAAAA,KAAMI,MAAM,UAAZJ,6BAAAA,aAAcJ,GAAG,CAAC,AAACI,MACjC,KAACZ,mBACCiB,UAAWL,KAAKM,MAAM,EAAIN,KAAKO,WAAW,CAAG,OAASP,KAAKQ,UAAU,CAAG,IAAMhB,GAC9EiB,GAAIT,KAAKS,EAAE,CACXC,KAAMV,KAAKS,EAAE,CAEbH,OAAQN,KAAKM,MAAM,CACnBK,MAAOX,KAAKW,KAAK,CACjBC,YAAaZ,KAAKa,IAAI,CAAG,KAACb,KAAKa,IAAI,KAAMC,UACzCC,aAAcf,KAAKe,YAAY,EAAID,UACnCpB,UAAWM,KAAKa,IAAI,CAAG,GAAKxB,OAAO,CAAC,+BAA+B,CACnE2B,OAAQhB,KAAKiB,YAAY,CAAG,SAAW,QACvCC,IAAKlB,KAAKiB,YAAY,CAAG,sBAAwBH,WAP5Cd,KAAKmB,GAAG,EAAInB,KAAKS,EAAE,GAU5B,OACE,MAAChB,iBACC,KAACL,mBACCiB,UAAWL,KAAKM,MAAM,EAAIN,KAAKO,WAAW,CAAG,OAASP,KAAKQ,UAAU,CAAG,IAAMhB,GAC9EiB,GAAIT,KAAKS,EAAE,CACXH,OAAQN,KAAKM,MAAM,CACnBI,KAAMV,KAAKS,EAAE,CACbE,MAAOX,KAAKW,KAAK,CACjBI,aAAcf,KAAKe,YAAY,CAC/BH,YAAaZ,KAAKa,IAAI,CAAG,KAACb,KAAKa,IAAI,KAAMC,UACzCM,cAAepB,KAAKoB,aAAa,CACjCJ,OAAQhB,KAAKiB,YAAY,CAAG,SAAW,QACvCC,IAAKlB,KAAKiB,YAAY,CAAG,sBAAwBH,mBAEhDX,UAEFF,YAAcC,UAAUmB,MAAM,CAAG,GAChCvB,kBAAoBC,gBAAgBsB,MAAM,CAAG,GAC3C,KAAClC,SAAQO,UAAWL,OAAO,CAAC,eAAe,CAAEiC,GAAG,SAjB5CtB,KAAKmB,GAAG,EAAInB,KAAKS,EAAE,CAqBjC,KAIR,CAAC"}
@@ -1,2 +1,2 @@
1
- import{ESideNavEnum}from"../NavigationLink";import{buildUrl}from"../NavigationLink/buildUrl";import{isActive}from"../NavigationLink/isActive";import{useTranslation}from"react-i18next";import{getAssetDomainMenuItems,getNotificationsDomainMenuItems,getScanDomainMenuItems,getSystemManagementDomainMenuItems,getUserDomainMenuItems,getVIDomainMenuItemsVulnerabilityIntel}from"./menuItems";import{useMantineTheme}from"@mantine/core";export const NavLinkConfigFactory=(currentPath,requester)=>({icon,label,to,owner,subNav})=>{const fullTargetUrl=to?buildUrl(owner,requester,to):"";const defaultOpened=!!(subNav===null||subNav===void 0?void 0:subNav.find(sn=>sn.to===currentPath));return{isPathMatch:currentPath.endsWith(fullTargetUrl),active:to?isActive(currentPath,fullTargetUrl):false,icon:icon,isExternal:owner!==requester,label:label,to:fullTargetUrl,defaultOpened:defaultOpened,subNav:subNav?subNav.map(sn=>({isPathMatch:currentPath.endsWith(sn.to||""),label:sn.label,to:sn.to?buildUrl(sn.owner,requester,sn.to):"",active:sn.to?isActive(currentPath,sn.to):false,isExternal:sn.owner!==requester})):undefined}};export const useBuildUseNavigationMenuPoints=({requestingDomain,menuPointsCategories,currentLocation,additional,realmAccessRoles})=>{const factory=NavLinkConfigFactory(currentLocation,requestingDomain);const menuPoints=useMenuItemStringsToNavigationMenuItemPoints(menuPointsCategories,factory,realmAccessRoles);if(additional)menuPoints.push(additional.map(factory));return menuPoints};export const getMenuItemFromString=(menuItem,factory,t,theme,realmAccessRoles)=>{switch(menuItem){case ESideNavEnum.VI:return getVIDomainMenuItemsVulnerabilityIntel(factory,t,theme);case ESideNavEnum.ASSET:return getAssetDomainMenuItems(factory,t,theme,realmAccessRoles);case ESideNavEnum.SCAN:return getScanDomainMenuItems(factory,t,theme);case ESideNavEnum.USER:return getUserDomainMenuItems(factory,t,theme,realmAccessRoles);case ESideNavEnum.SYSTEM:return getSystemManagementDomainMenuItems(factory,t,theme);case ESideNavEnum.NOTIFICATIONS:return getNotificationsDomainMenuItems(factory,t,theme);default:return[]}};export const useMenuItemStringsToNavigationMenuItemPoints=(menuItems,factory,realmAccessRoles)=>{const{t}=useTranslation();const theme=useMantineTheme();return menuItems.flatMap(item=>getMenuItemFromString(item,factory,t,theme,realmAccessRoles))};export const parseMenuEnvString=(envString,separator=",")=>envString.split(separator);
1
+ import{ESideNavEnum}from"../NavigationLink";import{buildUrl}from"../NavigationLink/buildUrl";import{isActive}from"../NavigationLink/isActive";import{useTranslation}from"react-i18next";import{getAssetDomainMenuItems,getNotificationsDomainMenuItems,getScanDomainMenuItems,getSystemManagementDomainMenuItems,getUserDomainMenuItems,getVIDomainMenuItemsVulnerabilityIntel}from"./menuItems";import{useMantineTheme}from"@mantine/core";export const NavLinkConfigFactory=(currentPath,requester)=>({icon,label,to,owner,subNav,openInNewTab})=>{const fullTargetUrl=to?buildUrl(owner,requester,to):"";const defaultOpened=!!(subNav===null||subNav===void 0?void 0:subNav.find(sn=>sn.to===currentPath));return{isPathMatch:currentPath.endsWith(fullTargetUrl),active:to?isActive(currentPath,fullTargetUrl):false,icon:icon,isExternal:owner!==requester,label:label,to:fullTargetUrl,defaultOpened:defaultOpened,openInNewTab,subNav:subNav?subNav.map(sn=>({isPathMatch:currentPath.endsWith(sn.to||""),label:sn.label,to:sn.to?buildUrl(sn.owner,requester,sn.to):"",active:sn.to?isActive(currentPath,sn.to):false,isExternal:sn.owner!==requester,openInNewTab})):undefined}};export const useBuildUseNavigationMenuPoints=({requestingDomain,menuPointsCategories,currentLocation,additional,realmAccessRoles})=>{const factory=NavLinkConfigFactory(currentLocation,requestingDomain);const menuPoints=useMenuItemStringsToNavigationMenuItemPoints(menuPointsCategories,factory,realmAccessRoles);if(additional)menuPoints.push(additional.map(factory));return menuPoints};export const getMenuItemFromString=(menuItem,factory,t,theme,realmAccessRoles)=>{switch(menuItem){case ESideNavEnum.VI:return getVIDomainMenuItemsVulnerabilityIntel(factory,t,theme);case ESideNavEnum.ASSET:return getAssetDomainMenuItems(factory,t,theme,realmAccessRoles);case ESideNavEnum.SCAN:return getScanDomainMenuItems(factory,t,theme);case ESideNavEnum.USER:return getUserDomainMenuItems(factory,t,theme,realmAccessRoles);case ESideNavEnum.SYSTEM:return getSystemManagementDomainMenuItems(factory,t,theme);case ESideNavEnum.NOTIFICATIONS:return getNotificationsDomainMenuItems(factory,t,theme);default:return[]}};export const useMenuItemStringsToNavigationMenuItemPoints=(menuItems,factory,realmAccessRoles)=>{const{t}=useTranslation();const theme=useMantineTheme();return menuItems.flatMap(item=>getMenuItemFromString(item,factory,t,theme,realmAccessRoles))};export const parseMenuEnvString=(envString,separator=",")=>envString.split(separator);
2
2
  //# sourceMappingURL=menuFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Layout/AppNavigation/Menu/menuFactory.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Domain, ESideNavEnum } from \"../NavigationLink\"\nimport { buildUrl } from \"../NavigationLink/buildUrl\"\nimport { isActive } from \"../NavigationLink/isActive\"\nimport { TBuildNavLinkParams, TNavLinkConfig } from \"./types\"\nimport { useTranslation } from \"react-i18next\"\nimport {\n getAssetDomainMenuItems,\n getNotificationsDomainMenuItems,\n getScanDomainMenuItems,\n getSystemManagementDomainMenuItems,\n getUserDomainMenuItems,\n getVIDomainMenuItemsVulnerabilityIntel,\n TFactory,\n} from \"./menuItems\"\nimport { TFunction } from \"i18next\"\nimport { MantineTheme, useMantineTheme } from \"@mantine/core\"\n\nexport const NavLinkConfigFactory =\n (currentPath: string, requester: Domain) =>\n ({ icon, label, to, owner, subNav }: TBuildNavLinkParams): TNavLinkConfig => {\n const fullTargetUrl = to ? buildUrl(owner, requester, to) : \"\"\n const defaultOpened = !!subNav?.find((sn) => sn.to === currentPath)\n\n return {\n isPathMatch: currentPath.endsWith(fullTargetUrl),\n active: to ? isActive(currentPath, fullTargetUrl) : false,\n icon: icon,\n isExternal: owner !== requester,\n label: label,\n to: fullTargetUrl,\n defaultOpened: defaultOpened,\n subNav: subNav\n ? subNav.map((sn) => ({\n isPathMatch: currentPath.endsWith(sn.to || \"\"),\n label: sn.label,\n to: sn.to ? buildUrl(sn.owner, requester, sn.to) : \"\",\n active: sn.to ? isActive(currentPath, sn.to) : false,\n isExternal: sn.owner !== requester,\n }))\n : undefined,\n }\n }\n\nexport const useBuildUseNavigationMenuPoints = ({\n requestingDomain,\n menuPointsCategories,\n currentLocation,\n additional,\n realmAccessRoles,\n}: {\n requestingDomain: Domain\n currentLocation: string\n menuPointsCategories: ESideNavEnum[]\n additional?: TBuildNavLinkParams[]\n realmAccessRoles?: Array<string>\n}): TNavLinkConfig[][] => {\n const factory = NavLinkConfigFactory(currentLocation, requestingDomain)\n const menuPoints = useMenuItemStringsToNavigationMenuItemPoints(\n menuPointsCategories,\n factory,\n realmAccessRoles\n )\n if (additional) menuPoints.push(additional.map(factory))\n return menuPoints\n}\n\nexport const getMenuItemFromString = (\n menuItem: ESideNavEnum,\n factory: TFactory,\n t: TFunction,\n theme: MantineTheme,\n realmAccessRoles?: Array<string>\n) => {\n switch (menuItem) {\n case ESideNavEnum.VI:\n return getVIDomainMenuItemsVulnerabilityIntel(factory, t, theme)\n case ESideNavEnum.ASSET:\n return getAssetDomainMenuItems(factory, t, theme, realmAccessRoles)\n case ESideNavEnum.SCAN:\n return getScanDomainMenuItems(factory, t, theme)\n case ESideNavEnum.USER:\n return getUserDomainMenuItems(factory, t, theme, realmAccessRoles)\n case ESideNavEnum.SYSTEM:\n return getSystemManagementDomainMenuItems(factory, t, theme)\n case ESideNavEnum.NOTIFICATIONS:\n return getNotificationsDomainMenuItems(factory, t, theme)\n default:\n return []\n }\n}\n\nexport const useMenuItemStringsToNavigationMenuItemPoints = (\n menuItems: ESideNavEnum[],\n factory: TFactory,\n realmAccessRoles?: Array<string>\n) => {\n const { t } = useTranslation()\n const theme = useMantineTheme()\n return menuItems.flatMap((item) =>\n getMenuItemFromString(item, factory, t, theme, realmAccessRoles)\n )\n}\n\nexport const parseMenuEnvString = (envString: string, separator = \",\"): ESideNavEnum[] =>\n envString.split(separator) as ESideNavEnum[]\n"],"names":["ESideNavEnum","buildUrl","isActive","useTranslation","getAssetDomainMenuItems","getNotificationsDomainMenuItems","getScanDomainMenuItems","getSystemManagementDomainMenuItems","getUserDomainMenuItems","getVIDomainMenuItemsVulnerabilityIntel","useMantineTheme","NavLinkConfigFactory","currentPath","requester","icon","label","to","owner","subNav","fullTargetUrl","defaultOpened","find","sn","isPathMatch","endsWith","active","isExternal","map","undefined","useBuildUseNavigationMenuPoints","requestingDomain","menuPointsCategories","currentLocation","additional","realmAccessRoles","factory","menuPoints","useMenuItemStringsToNavigationMenuItemPoints","push","getMenuItemFromString","menuItem","t","theme","VI","ASSET","SCAN","USER","SYSTEM","NOTIFICATIONS","menuItems","flatMap","item","parseMenuEnvString","envString","separator","split"],"mappings":"AAIA,OAAiBA,YAAY,KAAQ,mBAAmB,AACxD,QAASC,QAAQ,KAAQ,4BAA4B,AACrD,QAASC,QAAQ,KAAQ,4BAA4B,AAErD,QAASC,cAAc,KAAQ,eAAe,AAC9C,QACEC,uBAAuB,CACvBC,+BAA+B,CAC/BC,sBAAsB,CACtBC,kCAAkC,CAClCC,sBAAsB,CACtBC,sCAAsC,KAEjC,aAAa,AAEpB,QAAuBC,eAAe,KAAQ,eAAe,AAE7D,QAAO,MAAMC,qBACX,CAACC,YAAqBC,YACtB,CAAC,CAAEC,IAAI,CAAEC,KAAK,CAAEC,EAAE,CAAEC,KAAK,CAAEC,MAAM,CAAuB,IACtD,MAAMC,cAAgBH,GAAKf,SAASgB,MAAOJ,UAAWG,IAAM,GAC5D,MAAMI,cAAgB,CAAC,EAACF,eAAAA,uBAAAA,OAAQG,IAAI,CAAC,AAACC,IAAOA,GAAGN,EAAE,GAAKJ,cAEvD,MAAO,CACLW,YAAaX,YAAYY,QAAQ,CAACL,eAClCM,OAAQT,GAAKd,SAASU,YAAaO,eAAiB,MACpDL,KAAMA,KACNY,WAAYT,QAAUJ,UACtBE,MAAOA,MACPC,GAAIG,cACJC,cAAeA,cACfF,OAAQA,OACJA,OAAOS,GAAG,CAAC,AAACL,IAAQ,CAAA,CAClBC,YAAaX,YAAYY,QAAQ,CAACF,GAAGN,EAAE,EAAI,IAC3CD,MAAOO,GAAGP,KAAK,CACfC,GAAIM,GAAGN,EAAE,CAAGf,SAASqB,GAAGL,KAAK,CAAEJ,UAAWS,GAAGN,EAAE,EAAI,GACnDS,OAAQH,GAAGN,EAAE,CAAGd,SAASU,YAAaU,GAAGN,EAAE,EAAI,MAC/CU,WAAYJ,GAAGL,KAAK,GAAKJ,SAC3B,CAAA,GACAe,SACN,CACF,CAAC,AAEH,QAAO,MAAMC,gCAAkC,CAAC,CAC9CC,gBAAgB,CAChBC,oBAAoB,CACpBC,eAAe,CACfC,UAAU,CACVC,gBAAgB,CAOjB,IACC,MAAMC,QAAUxB,qBAAqBqB,gBAAiBF,kBACtD,MAAMM,WAAaC,6CACjBN,qBACAI,QACAD,kBAEF,GAAID,WAAYG,WAAWE,IAAI,CAACL,WAAWN,GAAG,CAACQ,UAC/C,OAAOC,UACT,CAAC,AAED,QAAO,MAAMG,sBAAwB,CACnCC,SACAL,QACAM,EACAC,MACAR,oBAEA,OAAQM,UACN,KAAKxC,aAAa2C,EAAE,CAClB,OAAOlC,uCAAuC0B,QAASM,EAAGC,MAC5D,MAAK1C,aAAa4C,KAAK,CACrB,OAAOxC,wBAAwB+B,QAASM,EAAGC,MAAOR,iBACpD,MAAKlC,aAAa6C,IAAI,CACpB,OAAOvC,uBAAuB6B,QAASM,EAAGC,MAC5C,MAAK1C,aAAa8C,IAAI,CACpB,OAAOtC,uBAAuB2B,QAASM,EAAGC,MAAOR,iBACnD,MAAKlC,aAAa+C,MAAM,CACtB,OAAOxC,mCAAmC4B,QAASM,EAAGC,MACxD,MAAK1C,aAAagD,aAAa,CAC7B,OAAO3C,gCAAgC8B,QAASM,EAAGC,MACrD,SACE,MAAO,EAAE,AACb,CACF,CAAC,AAED,QAAO,MAAML,6CAA+C,CAC1DY,UACAd,QACAD,oBAEA,KAAM,CAAEO,CAAC,CAAE,CAAGtC,iBACd,MAAMuC,MAAQhC,kBACd,OAAOuC,UAAUC,OAAO,CAAC,AAACC,MACxBZ,sBAAsBY,KAAMhB,QAASM,EAAGC,MAAOR,kBAEnD,CAAC,AAED,QAAO,MAAMkB,mBAAqB,CAACC,UAAmBC,UAAY,GAAG,GACnED,UAAUE,KAAK,CAACD,UAA4B"}
1
+ {"version":3,"sources":["../../../../../../src/components/Layout/AppNavigation/Menu/menuFactory.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Domain, ESideNavEnum } from \"../NavigationLink\"\nimport { buildUrl } from \"../NavigationLink/buildUrl\"\nimport { isActive } from \"../NavigationLink/isActive\"\nimport { TBuildNavLinkParams, TNavLinkConfig } from \"./types\"\nimport { useTranslation } from \"react-i18next\"\nimport {\n getAssetDomainMenuItems,\n getNotificationsDomainMenuItems,\n getScanDomainMenuItems,\n getSystemManagementDomainMenuItems,\n getUserDomainMenuItems,\n getVIDomainMenuItemsVulnerabilityIntel,\n TFactory,\n} from \"./menuItems\"\nimport { TFunction } from \"i18next\"\nimport { MantineTheme, useMantineTheme } from \"@mantine/core\"\n\nexport const NavLinkConfigFactory =\n (currentPath: string, requester: Domain) =>\n ({ icon, label, to, owner, subNav, openInNewTab }: TBuildNavLinkParams): TNavLinkConfig => {\n const fullTargetUrl = to ? buildUrl(owner, requester, to) : \"\"\n const defaultOpened = !!subNav?.find((sn) => sn.to === currentPath)\n\n return {\n isPathMatch: currentPath.endsWith(fullTargetUrl),\n active: to ? isActive(currentPath, fullTargetUrl) : false,\n icon: icon,\n isExternal: owner !== requester,\n label: label,\n to: fullTargetUrl,\n defaultOpened: defaultOpened,\n openInNewTab,\n subNav: subNav\n ? subNav.map((sn) => ({\n isPathMatch: currentPath.endsWith(sn.to || \"\"),\n label: sn.label,\n to: sn.to ? buildUrl(sn.owner, requester, sn.to) : \"\",\n active: sn.to ? isActive(currentPath, sn.to) : false,\n isExternal: sn.owner !== requester,\n openInNewTab,\n }))\n : undefined,\n }\n }\n\nexport const useBuildUseNavigationMenuPoints = ({\n requestingDomain,\n menuPointsCategories,\n currentLocation,\n additional,\n realmAccessRoles,\n}: {\n requestingDomain: Domain\n currentLocation: string\n menuPointsCategories: ESideNavEnum[]\n additional?: TBuildNavLinkParams[]\n realmAccessRoles?: Array<string>\n}): TNavLinkConfig[][] => {\n const factory = NavLinkConfigFactory(currentLocation, requestingDomain)\n const menuPoints = useMenuItemStringsToNavigationMenuItemPoints(\n menuPointsCategories,\n factory,\n realmAccessRoles\n )\n if (additional) menuPoints.push(additional.map(factory))\n return menuPoints\n}\n\nexport const getMenuItemFromString = (\n menuItem: ESideNavEnum,\n factory: TFactory,\n t: TFunction,\n theme: MantineTheme,\n realmAccessRoles?: Array<string>\n) => {\n switch (menuItem) {\n case ESideNavEnum.VI:\n return getVIDomainMenuItemsVulnerabilityIntel(factory, t, theme)\n case ESideNavEnum.ASSET:\n return getAssetDomainMenuItems(factory, t, theme, realmAccessRoles)\n case ESideNavEnum.SCAN:\n return getScanDomainMenuItems(factory, t, theme)\n case ESideNavEnum.USER:\n return getUserDomainMenuItems(factory, t, theme, realmAccessRoles)\n case ESideNavEnum.SYSTEM:\n return getSystemManagementDomainMenuItems(factory, t, theme)\n case ESideNavEnum.NOTIFICATIONS:\n return getNotificationsDomainMenuItems(factory, t, theme)\n default:\n return []\n }\n}\n\nexport const useMenuItemStringsToNavigationMenuItemPoints = (\n menuItems: ESideNavEnum[],\n factory: TFactory,\n realmAccessRoles?: Array<string>\n) => {\n const { t } = useTranslation()\n const theme = useMantineTheme()\n return menuItems.flatMap((item) =>\n getMenuItemFromString(item, factory, t, theme, realmAccessRoles)\n )\n}\n\nexport const parseMenuEnvString = (envString: string, separator = \",\"): ESideNavEnum[] =>\n envString.split(separator) as ESideNavEnum[]\n"],"names":["ESideNavEnum","buildUrl","isActive","useTranslation","getAssetDomainMenuItems","getNotificationsDomainMenuItems","getScanDomainMenuItems","getSystemManagementDomainMenuItems","getUserDomainMenuItems","getVIDomainMenuItemsVulnerabilityIntel","useMantineTheme","NavLinkConfigFactory","currentPath","requester","icon","label","to","owner","subNav","openInNewTab","fullTargetUrl","defaultOpened","find","sn","isPathMatch","endsWith","active","isExternal","map","undefined","useBuildUseNavigationMenuPoints","requestingDomain","menuPointsCategories","currentLocation","additional","realmAccessRoles","factory","menuPoints","useMenuItemStringsToNavigationMenuItemPoints","push","getMenuItemFromString","menuItem","t","theme","VI","ASSET","SCAN","USER","SYSTEM","NOTIFICATIONS","menuItems","flatMap","item","parseMenuEnvString","envString","separator","split"],"mappings":"AAIA,OAAiBA,YAAY,KAAQ,mBAAmB,AACxD,QAASC,QAAQ,KAAQ,4BAA4B,AACrD,QAASC,QAAQ,KAAQ,4BAA4B,AAErD,QAASC,cAAc,KAAQ,eAAe,AAC9C,QACEC,uBAAuB,CACvBC,+BAA+B,CAC/BC,sBAAsB,CACtBC,kCAAkC,CAClCC,sBAAsB,CACtBC,sCAAsC,KAEjC,aAAa,AAEpB,QAAuBC,eAAe,KAAQ,eAAe,AAE7D,QAAO,MAAMC,qBACX,CAACC,YAAqBC,YACtB,CAAC,CAAEC,IAAI,CAAEC,KAAK,CAAEC,EAAE,CAAEC,KAAK,CAAEC,MAAM,CAAEC,YAAY,CAAuB,IACpE,MAAMC,cAAgBJ,GAAKf,SAASgB,MAAOJ,UAAWG,IAAM,GAC5D,MAAMK,cAAgB,CAAC,EAACH,eAAAA,uBAAAA,OAAQI,IAAI,CAAC,AAACC,IAAOA,GAAGP,EAAE,GAAKJ,cAEvD,MAAO,CACLY,YAAaZ,YAAYa,QAAQ,CAACL,eAClCM,OAAQV,GAAKd,SAASU,YAAaQ,eAAiB,MACpDN,KAAMA,KACNa,WAAYV,QAAUJ,UACtBE,MAAOA,MACPC,GAAII,cACJC,cAAeA,cACfF,aACAD,OAAQA,OACJA,OAAOU,GAAG,CAAC,AAACL,IAAQ,CAAA,CAClBC,YAAaZ,YAAYa,QAAQ,CAACF,GAAGP,EAAE,EAAI,IAC3CD,MAAOQ,GAAGR,KAAK,CACfC,GAAIO,GAAGP,EAAE,CAAGf,SAASsB,GAAGN,KAAK,CAAEJ,UAAWU,GAAGP,EAAE,EAAI,GACnDU,OAAQH,GAAGP,EAAE,CAAGd,SAASU,YAAaW,GAAGP,EAAE,EAAI,MAC/CW,WAAYJ,GAAGN,KAAK,GAAKJ,UACzBM,YACF,CAAA,GACAU,SACN,CACF,CAAC,AAEH,QAAO,MAAMC,gCAAkC,CAAC,CAC9CC,gBAAgB,CAChBC,oBAAoB,CACpBC,eAAe,CACfC,UAAU,CACVC,gBAAgB,CAOjB,IACC,MAAMC,QAAUzB,qBAAqBsB,gBAAiBF,kBACtD,MAAMM,WAAaC,6CACjBN,qBACAI,QACAD,kBAEF,GAAID,WAAYG,WAAWE,IAAI,CAACL,WAAWN,GAAG,CAACQ,UAC/C,OAAOC,UACT,CAAC,AAED,QAAO,MAAMG,sBAAwB,CACnCC,SACAL,QACAM,EACAC,MACAR,oBAEA,OAAQM,UACN,KAAKzC,aAAa4C,EAAE,CAClB,OAAOnC,uCAAuC2B,QAASM,EAAGC,MAC5D,MAAK3C,aAAa6C,KAAK,CACrB,OAAOzC,wBAAwBgC,QAASM,EAAGC,MAAOR,iBACpD,MAAKnC,aAAa8C,IAAI,CACpB,OAAOxC,uBAAuB8B,QAASM,EAAGC,MAC5C,MAAK3C,aAAa+C,IAAI,CACpB,OAAOvC,uBAAuB4B,QAASM,EAAGC,MAAOR,iBACnD,MAAKnC,aAAagD,MAAM,CACtB,OAAOzC,mCAAmC6B,QAASM,EAAGC,MACxD,MAAK3C,aAAaiD,aAAa,CAC7B,OAAO5C,gCAAgC+B,QAASM,EAAGC,MACrD,SACE,MAAO,EAAE,AACb,CACF,CAAC,AAED,QAAO,MAAML,6CAA+C,CAC1DY,UACAd,QACAD,oBAEA,KAAM,CAAEO,CAAC,CAAE,CAAGvC,iBACd,MAAMwC,MAAQjC,kBACd,OAAOwC,UAAUC,OAAO,CAAC,AAACC,MACxBZ,sBAAsBY,KAAMhB,QAASM,EAAGC,MAAOR,kBAEnD,CAAC,AAED,QAAO,MAAMkB,mBAAqB,CAACC,UAAmBC,UAAY,GAAG,GACnED,UAAUE,KAAK,CAACD,UAA4B"}
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{BarChart3,Bell,Server,ServerCog,Settings,ShieldCheck,Users,View}from"lucide-react";import{Domain}from"../NavigationLink";export const getAssetDomainMenuItems=(factory,t,theme,realmAccessRoles)=>{return[[factory({icon:()=>_jsx(BarChart3,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),label:t("Analysis"),owner:Domain.Asset,subNav:[{label:t("Dashboard"),to:"/dashboard",owner:Domain.Asset},{label:t("Assets"),to:"/assets",owner:Domain.Asset},{label:t("Vulnerabilities"),to:"/vulnerabilities",owner:Domain.Asset}]})],[factory({icon:()=>_jsx(Server,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),label:t("Import"),owner:Domain.Asset,subNav:[{label:t("Appliances"),to:"/appliances",owner:Domain.Asset}]})],[factory({icon:()=>_jsx(Settings,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),label:t("Global settings"),owner:Domain.Asset,subNav:[...(realmAccessRoles===null||realmAccessRoles===void 0?void 0:realmAccessRoles.includes("admin"))?[{label:t("Asset management"),to:"/asset-management-settings",owner:Domain.Asset}]:[]]})]]};export const getScanDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>_jsx(ShieldCheck,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.Scan,label:t("Scan control"),subNav:[{label:t("Tasks"),to:"/tasks",owner:Domain.Scan},{label:t("Targets"),to:"/targets",owner:Domain.Scan},{label:t("Credentials"),to:"/credentials",owner:Domain.Scan},{label:t("Schedules"),to:"/schedules",owner:Domain.Scan},{label:t("Sensors"),to:"/sensors",owner:Domain.Scan}]})]]};export const getVIDomainMenuItemsVulnerabilityIntel=(factory,t,theme)=>{return[[factory({icon:()=>_jsx(View,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.VI,label:t("VIEW"),to:"/vulnerability-intelligence",subNav:[{label:t("CVE"),to:"/advisories-cve",owner:Domain.VI},{label:t("CSAF"),to:"/advisories-csaf",owner:Domain.VI},{label:t("CPE"),to:"/cpe",owner:Domain.VI},{label:t("Vulnerability tests"),to:"/vulnerability-tests",owner:Domain.VI},{label:t("SBOMs"),to:"/sboms",owner:Domain.VI},{label:t("GEA reports"),to:"/gea-reports",owner:Domain.VI},{label:t("CSAF sources"),to:"/csaf-sources",owner:Domain.VI},{label:t("Feed"),to:"/feed",owner:Domain.VI}]})]]};export const getUserDomainMenuItems=(factory,t,theme,realmAccessRoles)=>{return[[factory({icon:()=>_jsx(Users,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.User,label:t("User management"),to:"",subNav:[...(realmAccessRoles===null||realmAccessRoles===void 0?void 0:realmAccessRoles.includes("admin"))?[{label:t("Users"),to:"/users",owner:Domain.User}]:[],{label:t("Personal settings"),to:"/personal-settings",owner:Domain.User}]})]]};export const getNotificationsDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>_jsx(Bell,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.Notifications,label:t("Notifications"),to:"/notifications"})]]};export const getSystemManagementDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>_jsx(ServerCog,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.SystemManagement,label:t("Systems"),subNav:[{label:t("Appliances"),to:"/appliances",owner:Domain.SystemManagement}]})]]};
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{BarChart3,Bell,Server,ServerCog,Settings,ShieldCheck,Users,View}from"lucide-react";import{Domain}from"../NavigationLink";export const getAssetDomainMenuItems=(factory,t,theme,realmAccessRoles)=>{const domainMenuItems=[[factory({icon:()=>_jsx(BarChart3,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),label:t("Analysis"),owner:Domain.Asset,subNav:[{label:t("Dashboard"),to:"/dashboard",owner:Domain.Asset},{label:t("Assets"),to:"/assets",owner:Domain.Asset},{label:t("Vulnerabilities"),to:"/vulnerabilities",owner:Domain.Asset}]})],[factory({icon:()=>_jsx(Server,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),label:t("Import"),owner:Domain.Asset,subNav:[{label:t("Appliances"),to:"/appliances",owner:Domain.Asset}]})]];if(realmAccessRoles===null||realmAccessRoles===void 0?void 0:realmAccessRoles.includes("admin")){domainMenuItems.push([factory({icon:()=>_jsx(Settings,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),label:t("Global settings"),owner:Domain.Asset,subNav:[{label:t("Asset management"),to:"/asset-management-settings",owner:Domain.Asset}]})])}return domainMenuItems};export const getScanDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>_jsx(ShieldCheck,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.Scan,label:t("Scan control"),subNav:[{label:t("Tasks"),to:"/tasks",owner:Domain.Scan},{label:t("Targets"),to:"/targets",owner:Domain.Scan},{label:t("Credentials"),to:"/credentials",owner:Domain.Scan},{label:t("Schedules"),to:"/schedules",owner:Domain.Scan},{label:t("Sensors"),to:"/sensors",owner:Domain.Scan}]})]]};export const getVIDomainMenuItemsVulnerabilityIntel=(factory,t,theme)=>{return[[factory({icon:()=>_jsx(View,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.VI,label:t("VIEW"),to:"/vulnerability-intelligence",subNav:[{label:t("CVE"),to:"/advisories-cve",owner:Domain.VI},{label:t("CSAF"),to:"/advisories-csaf",owner:Domain.VI},{label:t("CPE"),to:"/cpe",owner:Domain.VI},{label:t("Vulnerability tests"),to:"/vulnerability-tests",owner:Domain.VI},{label:t("SBOMs"),to:"/sboms",owner:Domain.VI},{label:t("GEA reports"),to:"/gea-reports",owner:Domain.VI},{label:t("CSAF sources"),to:"/csaf-sources",owner:Domain.VI},{label:t("Feed"),to:"/feed",owner:Domain.VI}]})]]};export const getUserDomainMenuItems=(factory,t,theme,realmAccessRoles)=>{return[[factory({icon:()=>_jsx(Users,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.User,label:t("User management"),to:"",subNav:[...(realmAccessRoles===null||realmAccessRoles===void 0?void 0:realmAccessRoles.includes("admin"))?[{label:t("Users"),to:"/users",owner:Domain.User}]:[],{label:t("Personal settings"),to:"/personal-settings",owner:Domain.User}]})]]};export const getNotificationsDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>_jsx(Bell,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.Notifications,label:t("Notifications"),to:"/notifications"})]]};export const getSystemManagementDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>_jsx(ServerCog,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.SystemManagement,label:t("Systems"),subNav:[{label:t("Appliances"),to:"/appliances",owner:Domain.SystemManagement}]})]]};
2
2
  //# sourceMappingURL=menuItems.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Layout/AppNavigation/Menu/menuItems.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { TFunction } from \"i18next\"\nimport {\n BarChart3,\n Bell,\n Server,\n ServerCog,\n Settings,\n ShieldCheck,\n Users,\n View,\n} from \"lucide-react\"\nimport { Domain } from \"../NavigationLink\"\nimport { TBuildNavLinkParams, TNavLinkConfig } from \"./types\"\nimport { MantineTheme } from \"@mantine/core\"\n\nexport type TFactory = ({ icon, label, to, owner, subNav }: TBuildNavLinkParams) => TNavLinkConfig\n\nexport type TMenuItemContainer = (\n factory: TFactory,\n t: TFunction,\n theme: MantineTheme,\n realmAccessRoles?: Array<string>\n) => TNavLinkConfig[][]\n\nexport const getAssetDomainMenuItems: TMenuItemContainer = (\n factory,\n t,\n theme,\n realmAccessRoles\n) => {\n return [\n [\n factory({\n icon: () => <BarChart3 size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n label: t(\"Analysis\"),\n owner: Domain.Asset,\n subNav: [\n {\n label: t(\"Dashboard\"),\n to: \"/dashboard\",\n owner: Domain.Asset,\n },\n {\n label: t(\"Assets\"),\n to: \"/assets\",\n owner: Domain.Asset,\n },\n {\n label: t(\"Vulnerabilities\"),\n to: \"/vulnerabilities\",\n owner: Domain.Asset,\n },\n ],\n }),\n ],\n [\n factory({\n icon: () => <Server size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n label: t(\"Import\"),\n owner: Domain.Asset,\n subNav: [\n {\n label: t(\"Appliances\"),\n to: \"/appliances\",\n owner: Domain.Asset,\n },\n ],\n }),\n ],\n [\n factory({\n icon: () => <Settings size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n label: t(\"Global settings\"),\n owner: Domain.Asset,\n subNav: [\n ...(realmAccessRoles?.includes(\"admin\")\n ? [\n {\n label: t(\"Asset management\"),\n to: \"/asset-management-settings\",\n owner: Domain.Asset,\n },\n ]\n : []),\n ],\n }),\n ],\n ]\n}\n\nexport const getScanDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <ShieldCheck size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.Scan,\n label: t(\"Scan control\"),\n subNav: [\n {\n label: t(\"Tasks\"),\n to: \"/tasks\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Targets\"),\n to: \"/targets\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Credentials\"),\n to: \"/credentials\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Schedules\"),\n to: \"/schedules\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Sensors\"),\n to: \"/sensors\",\n owner: Domain.Scan,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getVIDomainMenuItemsVulnerabilityIntel: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <View size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.VI,\n label: t(\"VIEW\"),\n to: \"/vulnerability-intelligence\",\n subNav: [\n {\n label: t(\"CVE\"),\n to: \"/advisories-cve\",\n owner: Domain.VI,\n },\n {\n label: t(\"CSAF\"),\n to: \"/advisories-csaf\",\n owner: Domain.VI,\n },\n {\n label: t(\"CPE\"),\n to: \"/cpe\",\n owner: Domain.VI,\n },\n {\n label: t(\"Vulnerability tests\"),\n to: \"/vulnerability-tests\",\n owner: Domain.VI,\n },\n {\n label: t(\"SBOMs\"),\n to: \"/sboms\",\n owner: Domain.VI,\n },\n {\n label: t(\"GEA reports\"),\n to: \"/gea-reports\",\n owner: Domain.VI,\n },\n {\n label: t(\"CSAF sources\"),\n to: \"/csaf-sources\",\n owner: Domain.VI,\n },\n {\n label: t(\"Feed\"),\n to: \"/feed\",\n owner: Domain.VI,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getUserDomainMenuItems: TMenuItemContainer = (factory, t, theme, realmAccessRoles) => {\n return [\n [\n factory({\n icon: () => <Users size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.User,\n label: t(\"User management\"),\n to: \"\",\n subNav: [\n ...(realmAccessRoles?.includes(\"admin\")\n ? [\n {\n label: t(\"Users\"),\n to: \"/users\",\n owner: Domain.User,\n },\n ]\n : []),\n {\n label: t(\"Personal settings\"),\n to: \"/personal-settings\",\n owner: Domain.User,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getNotificationsDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <Bell size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.Notifications,\n label: t(\"Notifications\"),\n to: \"/notifications\",\n }),\n ],\n ]\n}\n\nexport const getSystemManagementDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <ServerCog size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.SystemManagement,\n label: t(\"Systems\"),\n subNav: [\n {\n label: t(\"Appliances\"),\n to: \"/appliances\",\n owner: Domain.SystemManagement,\n },\n ],\n }),\n ],\n ]\n}\n"],"names":["BarChart3","Bell","Server","ServerCog","Settings","ShieldCheck","Users","View","Domain","getAssetDomainMenuItems","factory","t","theme","realmAccessRoles","icon","size","other","iconSizes","MEDIUM_LARGE","strokeWidth","label","owner","Asset","subNav","to","includes","getScanDomainMenuItems","Scan","getVIDomainMenuItemsVulnerabilityIntel","VI","getUserDomainMenuItems","User","getNotificationsDomainMenuItems","Notifications","getSystemManagementDomainMenuItems","SystemManagement"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/components/Layout/AppNavigation/Menu/menuItems.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { TFunction } from \"i18next\"\nimport {\n BarChart3,\n Bell,\n Server,\n ServerCog,\n Settings,\n ShieldCheck,\n Users,\n View,\n} from \"lucide-react\"\nimport { Domain } from \"../NavigationLink\"\nimport { TBuildNavLinkParams, TNavLinkConfig } from \"./types\"\nimport { MantineTheme } from \"@mantine/core\"\n\nexport type TFactory = ({ icon, label, to, owner, subNav }: TBuildNavLinkParams) => TNavLinkConfig\n\nexport type TMenuItemContainer = (\n factory: TFactory,\n t: TFunction,\n theme: MantineTheme,\n realmAccessRoles?: Array<string>\n) => TNavLinkConfig[][]\n\nexport const getAssetDomainMenuItems: TMenuItemContainer = (\n factory,\n t,\n theme,\n realmAccessRoles\n) => {\n const domainMenuItems = [\n [\n factory({\n icon: () => <BarChart3 size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n label: t(\"Analysis\"),\n owner: Domain.Asset,\n subNav: [\n {\n label: t(\"Dashboard\"),\n to: \"/dashboard\",\n owner: Domain.Asset,\n },\n {\n label: t(\"Assets\"),\n to: \"/assets\",\n owner: Domain.Asset,\n },\n {\n label: t(\"Vulnerabilities\"),\n to: \"/vulnerabilities\",\n owner: Domain.Asset,\n },\n ],\n }),\n ],\n [\n factory({\n icon: () => <Server size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n label: t(\"Import\"),\n owner: Domain.Asset,\n subNav: [\n {\n label: t(\"Appliances\"),\n to: \"/appliances\",\n owner: Domain.Asset,\n },\n ],\n }),\n ],\n ]\n\n if (realmAccessRoles?.includes(\"admin\")) {\n domainMenuItems.push([\n factory({\n icon: () => <Settings size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n label: t(\"Global settings\"),\n owner: Domain.Asset,\n subNav: [\n {\n label: t(\"Asset management\"),\n to: \"/asset-management-settings\",\n owner: Domain.Asset,\n },\n ],\n }),\n ])\n }\n return domainMenuItems\n}\n\nexport const getScanDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <ShieldCheck size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.Scan,\n label: t(\"Scan control\"),\n subNav: [\n {\n label: t(\"Tasks\"),\n to: \"/tasks\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Targets\"),\n to: \"/targets\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Credentials\"),\n to: \"/credentials\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Schedules\"),\n to: \"/schedules\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Sensors\"),\n to: \"/sensors\",\n owner: Domain.Scan,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getVIDomainMenuItemsVulnerabilityIntel: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <View size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.VI,\n label: t(\"VIEW\"),\n to: \"/vulnerability-intelligence\",\n subNav: [\n {\n label: t(\"CVE\"),\n to: \"/advisories-cve\",\n owner: Domain.VI,\n },\n {\n label: t(\"CSAF\"),\n to: \"/advisories-csaf\",\n owner: Domain.VI,\n },\n {\n label: t(\"CPE\"),\n to: \"/cpe\",\n owner: Domain.VI,\n },\n {\n label: t(\"Vulnerability tests\"),\n to: \"/vulnerability-tests\",\n owner: Domain.VI,\n },\n {\n label: t(\"SBOMs\"),\n to: \"/sboms\",\n owner: Domain.VI,\n },\n {\n label: t(\"GEA reports\"),\n to: \"/gea-reports\",\n owner: Domain.VI,\n },\n {\n label: t(\"CSAF sources\"),\n to: \"/csaf-sources\",\n owner: Domain.VI,\n },\n {\n label: t(\"Feed\"),\n to: \"/feed\",\n owner: Domain.VI,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getUserDomainMenuItems: TMenuItemContainer = (factory, t, theme, realmAccessRoles) => {\n return [\n [\n factory({\n icon: () => <Users size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.User,\n label: t(\"User management\"),\n to: \"\",\n subNav: [\n ...(realmAccessRoles?.includes(\"admin\")\n ? [\n {\n label: t(\"Users\"),\n to: \"/users\",\n owner: Domain.User,\n },\n ]\n : []),\n {\n label: t(\"Personal settings\"),\n to: \"/personal-settings\",\n owner: Domain.User,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getNotificationsDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <Bell size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.Notifications,\n label: t(\"Notifications\"),\n to: \"/notifications\",\n }),\n ],\n ]\n}\n\nexport const getSystemManagementDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <ServerCog size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.SystemManagement,\n label: t(\"Systems\"),\n subNav: [\n {\n label: t(\"Appliances\"),\n to: \"/appliances\",\n owner: Domain.SystemManagement,\n },\n ],\n }),\n ],\n ]\n}\n"],"names":["BarChart3","Bell","Server","ServerCog","Settings","ShieldCheck","Users","View","Domain","getAssetDomainMenuItems","factory","t","theme","realmAccessRoles","domainMenuItems","icon","size","other","iconSizes","MEDIUM_LARGE","strokeWidth","label","owner","Asset","subNav","to","includes","push","getScanDomainMenuItems","Scan","getVIDomainMenuItemsVulnerabilityIntel","VI","getUserDomainMenuItems","User","getNotificationsDomainMenuItems","Notifications","getSystemManagementDomainMenuItems","SystemManagement"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Layout/AppNavigation/Menu/types.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Domain } from \"../NavigationLink\"\n\nexport type TNavLinkConfig = {\n icon?: React.FC\n label: string\n to?: string\n key?: string\n active?: boolean\n defaultOpened?: boolean\n isExternal?: boolean\n isPathMatch?: boolean\n\n rightSection?: JSX.Element\n subNav?: Array<{\n icon?: React.FC\n label: string\n to: string\n key?: string\n active?: boolean\n isExternal?: boolean\n rightSection?: JSX.Element\n isPathMatch?: boolean\n }>\n}\n\nexport type TBuildNavLinkParams = {\n icon: TNavLinkConfig[\"icon\"]\n label: TNavLinkConfig[\"label\"]\n to?: TNavLinkConfig[\"to\"]\n owner: Domain\n subNav?: Array<{\n label: TNavLinkConfig[\"label\"]\n to: TNavLinkConfig[\"to\"]\n owner: Domain\n }>\n}\n"],"names":[],"mappings":"AA6BA,QAUC"}
1
+ {"version":3,"sources":["../../../../../../src/components/Layout/AppNavigation/Menu/types.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Domain } from \"../NavigationLink\"\n\nexport type TNavLinkConfig = {\n icon?: React.FC\n label: string\n to?: string\n key?: string\n active?: boolean\n defaultOpened?: boolean\n isExternal?: boolean\n isPathMatch?: boolean\n openInNewTab?: boolean\n\n rightSection?: JSX.Element\n subNav?: Array<{\n icon?: React.FC\n label: string\n to: string\n key?: string\n active?: boolean\n isExternal?: boolean\n rightSection?: JSX.Element\n isPathMatch?: boolean\n openInNewTab?: boolean\n }>\n}\n\nexport type TBuildNavLinkParams = {\n icon: TNavLinkConfig[\"icon\"]\n label: TNavLinkConfig[\"label\"]\n to?: TNavLinkConfig[\"to\"]\n owner: Domain\n openInNewTab?: TNavLinkConfig[\"openInNewTab\"]\n subNav?: Array<{\n label: TNavLinkConfig[\"label\"]\n to: TNavLinkConfig[\"to\"]\n owner: Domain\n openInNewTab?: TNavLinkConfig[\"openInNewTab\"]\n }>\n}\n"],"names":[],"mappings":"AA+BA,QAYC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@greenbone/ui-lib",
3
- "version": "0.8.9-alpha0",
3
+ "version": "1.0.0",
4
4
  "description": "Greenbone UI Components Mantine v7",
5
5
  "types": "types/src/index.d.ts",
6
6
  "main": "lib/index.js",
@@ -21,6 +21,7 @@
21
21
  "bootstrap": "npm install",
22
22
  "bootstrap-ci": "npm ci",
23
23
  "build": "npm run build:source && npm run build:source-cjs && npm run build:types && npm run build:css",
24
+ "build:dev": "npx swc ./src --config-file .swcrc --out-dir ./lib/esm --source-maps --delete-dir-on-start --copy-files --strip-leading-paths && npm run build:types && npm run build:css",
24
25
  "build:source": "npx swc ./src --config-file .swcrc.production-esm --out-dir ./lib/esm --source-maps --delete-dir-on-start --copy-files --strip-leading-paths",
25
26
  "build:source-cjs": "npx swc ./src --config-file .swcrc.production-cjs --out-dir ./lib/cjs --source-maps --delete-dir-on-start --copy-files --strip-leading-paths",
26
27
  "build:types": "tsc -p ./tsconfig.types.json",
@@ -41,28 +42,28 @@
41
42
  "devDependencies": {
42
43
  "@emotion/react": "^11.14.0",
43
44
  "@svgr/cli": "^8.1.0",
44
- "@swc/cli": "^0.7.7",
45
- "@swc/core": "^1.13.1",
46
- "@swc/jest": "^0.2.38",
45
+ "@swc/cli": "^0.7.8",
46
+ "@swc/core": "^1.13.3",
47
+ "@swc/jest": "^0.2.39",
47
48
  "@testing-library/dom": "^10.4.0",
48
- "@testing-library/jest-dom": "^6.6.3",
49
+ "@testing-library/jest-dom": "^6.7.0",
49
50
  "@testing-library/react": "^16.3.0",
50
51
  "@testing-library/user-event": "^14.6.1",
51
52
  "@types/jest": "^30.0.0",
52
53
  "@types/lodash": "^4.17.20",
53
- "@types/luxon": "^3.6.2",
54
- "@types/node": "^22.15.17",
54
+ "@types/luxon": "^3.7.1",
55
+ "@types/node": "^24.3.0",
55
56
  "@types/react": "18.3.18",
56
57
  "@types/react-dom": "^18.3.5",
57
58
  "@types/webfontloader": "^1.6.38",
58
59
  "acorn": "^8.14.0",
59
60
  "chokidar": "^4.0.3",
60
61
  "concurrently": "^9.1.2",
61
- "cssnano": "^7.0.7",
62
+ "cssnano": "^7.1.0",
62
63
  "dayjs": "^1.11.13",
63
- "i18next": "^25.2.1",
64
+ "i18next": "^25.3.6",
64
65
  "identity-obj-proxy": "^3.0.0",
65
- "jest": "^30.0.4",
66
+ "jest": "^30.0.5",
66
67
  "jest-chain-transform": "^0.0.8",
67
68
  "jest-environment-jsdom": "^30.0.4",
68
69
  "jest-watch-typeahead": "^3.0.1",
@@ -72,14 +73,14 @@
72
73
  "prettier": "^3.6.2",
73
74
  "resize-observer-polyfill": "^1.5.1",
74
75
  "typescript": "^5.7.3",
75
- "web-vitals": "^5.0.1"
76
+ "web-vitals": "^5.1.0"
76
77
  },
77
78
  "peerDependencies": {
78
79
  "@mantine/core": "^7.17.7",
79
80
  "@mantine/dates": "^7.17.7",
80
81
  "@mantine/hooks": "^7.17.7",
81
82
  "@mantine/notifications": "^7.17.7",
82
- "lucide-react": "^0.525.0",
83
+ "lucide-react": "^0.540.0",
83
84
  "react": "^18.x.x",
84
85
  "react-dom": "^18.x.x",
85
86
  "react-i18next": "^15.x.x"
@@ -94,7 +95,7 @@
94
95
  "@mantine/hooks": "^7.17.7",
95
96
  "@mantine/notifications": "^7.17.7",
96
97
  "lodash": "^4.17.21",
97
- "lucide-react": "^0.525.0",
98
+ "lucide-react": "^0.540.0",
98
99
  "luxon": "^3.7.1",
99
100
  "react": "^18.x.x",
100
101
  "react-dom": "^18.x.x",
@@ -104,7 +105,7 @@
104
105
  "tiny-invariant": "^1.3.3",
105
106
  "urlcat": "^3",
106
107
  "webfontloader": "^1.6.28",
107
- "yup": "^1.6.1"
108
+ "yup": "^1.7.0"
108
109
  },
109
110
  "directories": {
110
111
  "lib": "lib"
@@ -1 +1 @@
1
- {"version":3,"file":"RemotePersistentFilterDropdown.d.ts","sourceRoot":"","sources":["../../../../../src/components/Filter/RemotePersistence/RemotePersistentFilterDropdown.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAGxE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAQjD,KAAK,oBAAoB,GAAG;IAC1B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAA;IACtB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,uBAAuB,EAAE,uBAAuB,EAAE,CAAA;CACnD,CAAA;AAED,QAAA,MAAM,8BAA8B,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA4HlE,CAAA;AAED,OAAO,EAAE,8BAA8B,EAAE,CAAA"}
1
+ {"version":3,"file":"RemotePersistentFilterDropdown.d.ts","sourceRoot":"","sources":["../../../../../src/components/Filter/RemotePersistence/RemotePersistentFilterDropdown.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAGxE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AASjD,KAAK,oBAAoB,GAAG;IAC1B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAA;IACtB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,uBAAuB,EAAE,uBAAuB,EAAE,CAAA;CACnD,CAAA;AAED,QAAA,MAAM,8BAA8B,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA8HlE,CAAA;AAED,OAAO,EAAE,8BAA8B,EAAE,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { TAppHeaderProps } from "./types";
2
- export declare const AppHeader: ({ username, menuPoints, logoLink, isLoggedIn, languageSwitch, sessionTimer, logo, isThemeSwitchVisible, ianaTimeZone, manualLink, }: TAppHeaderProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const AppHeader: ({ username, menuPoints, logoLink, isLoggedIn, languageSwitch, sessionTimer, logo, isThemeSwitchVisible, ianaTimeZone, manualLink, userNavWidth, }: TAppHeaderProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export declare const useHeaderMenuPoints: (logoutCallback?: () => void) => {
4
4
  linkText: string;
5
5
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"AppHeader.d.ts","sourceRoot":"","sources":["../../../../../src/components/Layout/AppHeader/AppHeader.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAUzC,eAAO,MAAM,SAAS,GAAI,qIAWvB,eAAe,4CAqCjB,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,iBAAiB,MAAM,IAAI;;;;;GAW9D,CAAA"}
1
+ {"version":3,"file":"AppHeader.d.ts","sourceRoot":"","sources":["../../../../../src/components/Layout/AppHeader/AppHeader.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAUzC,eAAO,MAAM,SAAS,GAAI,mJAYvB,eAAe,4CAqCjB,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,iBAAiB,MAAM,IAAI;;;;;GAW9D,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { ReactNode } from "react";
2
+ import { PopoverWidth } from "@mantine/core";
2
3
  export type TAppHeaderProps = {
3
4
  username?: string;
4
5
  menuPoints: TMenuPoint[];
@@ -10,6 +11,7 @@ export type TAppHeaderProps = {
10
11
  isThemeSwitchVisible?: boolean;
11
12
  ianaTimeZone?: string;
12
13
  manualLink?: string;
14
+ userNavWidth?: PopoverWidth;
13
15
  };
14
16
  export type TMenuPoint = {
15
17
  linkText: string;
@@ -19,5 +21,6 @@ export type TMenuPoint = {
19
21
  export type TUserNavProps = {
20
22
  username?: string;
21
23
  menuPoints: TMenuPoint[];
24
+ userNavWidth?: PopoverWidth;
22
25
  };
23
26
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/Layout/AppHeader/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,UAAU,EAAE,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,cAAc,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IAC5B,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,GAAG,CAAC,OAAO,CAAA;IACjB,EAAE,EAAE,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,UAAU,EAAE,CAAA;CACzB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/Layout/AppHeader/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,UAAU,EAAE,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,cAAc,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IAC5B,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,GAAG,CAAC,OAAO,CAAA;IACjB,EAAE,EAAE,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,UAAU,EAAE,CAAA;IACxB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA"}
@@ -1,3 +1,3 @@
1
1
  import { TUserNavProps } from "../types";
2
- export declare const UserNav: ({ username, menuPoints }: TUserNavProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const UserNav: ({ username, menuPoints, userNavWidth }: TUserNavProps) => import("react/jsx-runtime").JSX.Element;
3
3
  //# sourceMappingURL=UserNav.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserNav.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Layout/AppHeader/userNav/UserNav.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAMxC,eAAO,MAAM,OAAO,GAAI,0BAA0B,aAAa,4CAkC9D,CAAA"}
1
+ {"version":3,"file":"UserNav.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Layout/AppHeader/userNav/UserNav.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAMxC,eAAO,MAAM,OAAO,GAAI,wCAA8C,aAAa,4CAkClF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"AppNavigation.d.ts","sourceRoot":"","sources":["../../../../../src/components/Layout/AppNavigation/AppNavigation.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAG7C,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,cAAc,EAAE,EAAE,CAAA;IAC9B,EAAE,EAAE,GAAG,CAAA;CACR,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,oBAAoB,mBAAmB,4CA0CpE,CAAA"}
1
+ {"version":3,"file":"AppNavigation.d.ts","sourceRoot":"","sources":["../../../../../src/components/Layout/AppNavigation/AppNavigation.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAG7C,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,cAAc,EAAE,EAAE,CAAA;IAC9B,EAAE,EAAE,GAAG,CAAA;CACR,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,oBAAoB,mBAAmB,4CA8CpE,CAAA"}
@@ -3,7 +3,7 @@ import { TBuildNavLinkParams, TNavLinkConfig } from "./types";
3
3
  import { TFactory } from "./menuItems";
4
4
  import { TFunction } from "i18next";
5
5
  import { MantineTheme } from "@mantine/core";
6
- export declare const NavLinkConfigFactory: (currentPath: string, requester: Domain) => ({ icon, label, to, owner, subNav }: TBuildNavLinkParams) => TNavLinkConfig;
6
+ export declare const NavLinkConfigFactory: (currentPath: string, requester: Domain) => ({ icon, label, to, owner, subNav, openInNewTab }: TBuildNavLinkParams) => TNavLinkConfig;
7
7
  export declare const useBuildUseNavigationMenuPoints: ({ requestingDomain, menuPointsCategories, currentLocation, additional, realmAccessRoles, }: {
8
8
  requestingDomain: Domain;
9
9
  currentLocation: string;
@@ -1 +1 @@
1
- {"version":3,"file":"menuFactory.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Layout/AppNavigation/Menu/menuFactory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGxD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7D,OAAO,EAOL,QAAQ,EACT,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,YAAY,EAAmB,MAAM,eAAe,CAAA;AAE7D,eAAO,MAAM,oBAAoB,GAC9B,aAAa,MAAM,EAAE,WAAW,MAAM,MACtC,oCAAoC,mBAAmB,KAAG,cAsB1D,CAAA;AAEH,eAAO,MAAM,+BAA+B,GAAI,4FAM7C;IACD,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,oBAAoB,EAAE,YAAY,EAAE,CAAA;IACpC,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAClC,gBAAgB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CACjC,KAAG,cAAc,EAAE,EASnB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,UAAU,YAAY,EACtB,SAAS,QAAQ,EACjB,GAAG,SAAS,EACZ,OAAO,YAAY,EACnB,mBAAmB,KAAK,CAAC,MAAM,CAAC,uBAkBjC,CAAA;AAED,eAAO,MAAM,4CAA4C,GACvD,WAAW,YAAY,EAAE,EACzB,SAAS,QAAQ,EACjB,mBAAmB,KAAK,CAAC,MAAM,CAAC,uBAOjC,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,WAAW,MAAM,EAAE,kBAAe,KAAG,YAAY,EACtC,CAAA"}
1
+ {"version":3,"file":"menuFactory.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Layout/AppNavigation/Menu/menuFactory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGxD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7D,OAAO,EAOL,QAAQ,EACT,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,YAAY,EAAmB,MAAM,eAAe,CAAA;AAE7D,eAAO,MAAM,oBAAoB,GAC9B,aAAa,MAAM,EAAE,WAAW,MAAM,MACtC,kDAAkD,mBAAmB,KAAG,cAwBxE,CAAA;AAEH,eAAO,MAAM,+BAA+B,GAAI,4FAM7C;IACD,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,oBAAoB,EAAE,YAAY,EAAE,CAAA;IACpC,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAClC,gBAAgB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CACjC,KAAG,cAAc,EAAE,EASnB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,UAAU,YAAY,EACtB,SAAS,QAAQ,EACjB,GAAG,SAAS,EACZ,OAAO,YAAY,EACnB,mBAAmB,KAAK,CAAC,MAAM,CAAC,uBAkBjC,CAAA;AAED,eAAO,MAAM,4CAA4C,GACvD,WAAW,YAAY,EAAE,EACzB,SAAS,QAAQ,EACjB,mBAAmB,KAAK,CAAC,MAAM,CAAC,uBAOjC,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,WAAW,MAAM,EAAE,kBAAe,KAAG,YAAY,EACtC,CAAA"}
@@ -8,6 +8,7 @@ export type TNavLinkConfig = {
8
8
  defaultOpened?: boolean;
9
9
  isExternal?: boolean;
10
10
  isPathMatch?: boolean;
11
+ openInNewTab?: boolean;
11
12
  rightSection?: JSX.Element;
12
13
  subNav?: Array<{
13
14
  icon?: React.FC;
@@ -18,6 +19,7 @@ export type TNavLinkConfig = {
18
19
  isExternal?: boolean;
19
20
  rightSection?: JSX.Element;
20
21
  isPathMatch?: boolean;
22
+ openInNewTab?: boolean;
21
23
  }>;
22
24
  };
23
25
  export type TBuildNavLinkParams = {
@@ -25,10 +27,12 @@ export type TBuildNavLinkParams = {
25
27
  label: TNavLinkConfig["label"];
26
28
  to?: TNavLinkConfig["to"];
27
29
  owner: Domain;
30
+ openInNewTab?: TNavLinkConfig["openInNewTab"];
28
31
  subNav?: Array<{
29
32
  label: TNavLinkConfig["label"];
30
33
  to: TNavLinkConfig["to"];
31
34
  owner: Domain;
35
+ openInNewTab?: TNavLinkConfig["openInNewTab"];
32
36
  }>;
33
37
  };
34
38
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Layout/AppNavigation/Menu/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB,YAAY,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;QACb,EAAE,EAAE,MAAM,CAAA;QACV,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,YAAY,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;QAC1B,WAAW,CAAC,EAAE,OAAO,CAAA;KACtB,CAAC,CAAA;CACH,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;IAC5B,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;IAC9B,EAAE,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;QAC9B,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAA;QACxB,KAAK,EAAE,MAAM,CAAA;KACd,CAAC,CAAA;CACH,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Layout/AppNavigation/Menu/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB,YAAY,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;QACb,EAAE,EAAE,MAAM,CAAA;QACV,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,YAAY,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;QAC1B,WAAW,CAAC,EAAE,OAAO,CAAA;QACrB,YAAY,CAAC,EAAE,OAAO,CAAA;KACvB,CAAC,CAAA;CACH,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;IAC5B,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;IAC9B,EAAE,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;IAC7C,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;QAC9B,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAA;QACxB,KAAK,EAAE,MAAM,CAAA;QACb,YAAY,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;KAC9C,CAAC,CAAA;CACH,CAAA"}