@zextras/carbonio-ui-commons 2.0.0-beta.5 → 2.0.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/components/breadcrumbs/static-breadcrumbs.tsx","../src/theme/theme-mui.ts","../src/worker/utils.ts","../src/worker/handle-message.ts","../src/components/sidebar/sidebar-accordion-mui.tsx","../node_modules/@babel/runtime/helpers/esm/extends.js","../src/components/modals/modal-footer.tsx","../src/components/modals/modal-header.tsx","../src/components/modals/folder-initialization-error-modal.tsx","../src/constants/folders.ts","../src/components/select/folders/folders-accordion.tsx","../src/constants/utils/index.ts","../src/worker/index.ts","../src/store/zustand/folder/store.ts","../src/helpers/folders.ts","../src/components/select/folders/utils.ts","../src/components/select/folders/flat-folder.tsx","../src/components/select/folders/flat-root.tsx","../src/components/select/folders/flat-folders.tsx","../src/components/select/folders/status-icon.tsx","../src/components/select/folders/folder-accordions-custom-component.tsx","../src/store/zustand/folder/utils.ts","../src/store/zustand/folder/hooks.ts","../src/components/select/folders/hooks.ts","../src/components/select/folders/folder-selector.tsx","../src/components/select/select-label-factory.tsx","../src/components/select/color-select.tsx","../src/components/select/folders-selector.tsx","../src/components/list/list-item.tsx","../src/components/list/list.tsx","../src/soap/tags.ts","../src/components/tags/delete-tag-modal.tsx","../src/soap/get-folder.ts","../src/soap/get-share-info.ts","../src/hooks/use-initialize-folders.tsx","../src/soap/no-op.ts","../src/hooks/use-update-view.ts","../src/hooks/use-initialize-tags.tsx","../src/utils/utils.ts","../src/utils/clipboard.ts","../src/utils/get-prefs.ts","../src/utils/use-prefs.ts","../src/soap/errors/soap-api-error.ts","../src/helpers/errors.ts","../src/helpers/email-parser.ts","../src/helpers/api-wrapper.ts","../src/helpers/identities.ts","../src/constants/search.ts","../src/helpers/search.ts","../src/helpers/use-history-navigation.ts","../src/integrations/constants.ts","../src/integrations/default-contact-input.tsx","../src/integrations/hooks.ts","../src/integrations/search/use-run-search.ts","../src/soap/errors/generic-soap-api-error.ts","../src/store/zustand/tags/store.ts","../src/store/zustand/tags/hooks.ts","../src/constants/participants.ts","../src/worker/folder.ts","../src/worker/tags.ts"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { FC } from 'react';\n\nimport {\n\tBreadcrumbs,\n\tBreadcrumbsProps,\n\tContainer,\n\tRow,\n\tText,\n\tTextProps,\n\tTooltip\n} from '@zextras/carbonio-design-system';\n\ntype StaticBreadcrumbsProps = BreadcrumbsProps & {\n\tsize?: TextProps['size'];\n\ttooltipLabel?: string;\n};\n\nconst StaticBreadcrumbs: FC<StaticBreadcrumbsProps> = ({\n\tcrumbs,\n\tsize = 'large',\n\ttooltipLabel\n}) => {\n\tconst crumbsCount = crumbs.length;\n\tconst tooltip =\n\t\ttooltipLabel ?? crumbs.reduce<string>((result, crumb) => `${result}/${crumb.label}`, '');\n\tconst firstCrumb = crumbs[0];\n\tconst restCrumbs = crumbs.slice(1);\n\n\treturn (\n\t\t<Tooltip label={tooltip}>\n\t\t\t<Row mainAlignment=\"flex-start\" wrap=\"nowrap\" width=\"fill\">\n\t\t\t\t<Container\n\t\t\t\t\twidth=\"fit\"\n\t\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\t\tpadding={{ left: 'small', right: 'extrasmall' }}\n\t\t\t\t>\n\t\t\t\t\t<Text size={size} color={crumbsCount === 1 ? 'text' : 'secondary'}>\n\t\t\t\t\t\t{firstCrumb?.label ?? ''}\n\t\t\t\t\t</Text>\n\t\t\t\t</Container>\n\t\t\t\t{/* FIXME the width/maxWidth */}\n\t\t\t\t<Row mainAlignment=\"flex-start\" maxWidth=\"70%\">\n\t\t\t\t\t<Breadcrumbs crumbs={restCrumbs} dropdownProps={{ disabled: true }}></Breadcrumbs>\n\t\t\t\t</Row>\n\t\t\t</Row>\n\t\t</Tooltip>\n\t);\n};\n\nexport { type StaticBreadcrumbsProps, StaticBreadcrumbs };\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { createTheme, CustomPaletteOptions, CustomTheme } from '@mui/material/styles';\nimport { ThemeProviderProps } from '@zextras/carbonio-design-system';\nimport { merge } from 'lodash';\n\nexport const theme: CustomTheme = createTheme(<CustomPaletteOptions>{\n\tpalette: {\n\t\tcurrentColor: {\n\t\t\tregular: 'currentColor',\n\t\t\thover: 'currentColor',\n\t\t\tactive: 'currentColor',\n\t\t\tfocus: 'currentColor',\n\t\t\tdisabled: 'currentColor'\n\t\t},\n\t\ttransparent: {\n\t\t\tregular: 'rgba(0, 0, 0, 0)',\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\n\t\t\tactive: 'rgba(0, 0, 0, 0.1)',\n\t\t\tfocus: 'rgba(0, 0, 0, 0.05)',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0)'\n\t\t},\n\t\tprimary: {\n\t\t\tregular: '#2b73d2',\n\t\t\thover: '#225ca8',\n\t\t\tactive: '#1e5092',\n\t\t\tfocus: '#225ca8',\n\t\t\tdisabled: '#aac8ee',\n\t\t\tmain: '#2b73d2'\n\t\t},\n\t\tsecondary: {\n\t\t\tregular: '#828282',\n\t\t\thover: '#696969',\n\t\t\tactive: '#5c5c5c',\n\t\t\tfocus: '#696969',\n\t\t\tdisabled: '#cccccc',\n\t\t\tmain: '#828282'\n\t\t},\n\t\theader: {\n\t\t\tregular: '#cfd5dc',\n\t\t\thover: '#b1bbc6',\n\t\t\tactive: '#a3aebc',\n\t\t\tfocus: '#b1bbc6',\n\t\t\tdisabled: '#cfd5dc'\n\t\t},\n\t\thighlight: {\n\t\t\tregular: '#d5e3f6',\n\t\t\thover: '#abc7ed',\n\t\t\tactive: '#96b8e8',\n\t\t\tfocus: '#abc7ed',\n\t\t\tdisabled: '#d5e3f6'\n\t\t},\n\t\tgray0: {\n\t\t\tregular: '#414141',\n\t\t\thover: '#282828',\n\t\t\tactive: '#1b1b1b',\n\t\t\tfocus: '#282828',\n\t\t\tdisabled: '#cccccc'\n\t\t},\n\t\tgray1: {\n\t\t\tregular: '#828282',\n\t\t\thover: '#696969',\n\t\t\tactive: '#5c5c5c',\n\t\t\tfocus: '#696969',\n\t\t\tdisabled: '#cccccc'\n\t\t},\n\t\tgray2: {\n\t\t\tregular: '#cfd5dc',\n\t\t\thover: '#b1bbc6',\n\t\t\tactive: '#a3aebc',\n\t\t\tfocus: '#b1bbc6',\n\t\t\tdisabled: '#cfd5dc'\n\t\t},\n\t\tgray3: {\n\t\t\tregular: '#e6e9ed',\n\t\t\thover: '#c8cfd8',\n\t\t\tactive: '#bac2cd',\n\t\t\tfocus: '#c8cfd8',\n\t\t\tdisabled: '#e6e9ed'\n\t\t},\n\t\tgray4: {\n\t\t\tregular: '#eeeff3',\n\t\t\thover: '#d0d3de',\n\t\t\tactive: '#c1c5d3',\n\t\t\tfocus: '#d0d3de',\n\t\t\tdisabled: '#eeeff3'\n\t\t},\n\t\tgray5: {\n\t\t\tregular: '#f5f6f8',\n\t\t\thover: '#d7dbe3',\n\t\t\tactive: '#c8ced9',\n\t\t\tfocus: '#d7dbe3',\n\t\t\tdisabled: '#f5f6f8'\n\t\t},\n\t\tgray6: {\n\t\t\tregular: '#ffffff',\n\t\t\thover: '#e6e6e6',\n\t\t\tactive: '#d9d9d9',\n\t\t\tfocus: '#e6e6e6',\n\t\t\tdisabled: '#ffffff'\n\t\t},\n\t\twarning: {\n\t\t\tregular: '#ffc107',\n\t\t\thover: '#d39e00',\n\t\t\tactive: '#ba8b00',\n\t\t\tfocus: '#d39e00',\n\t\t\tdisabled: '#ffe699',\n\t\t\tmain: '#ffc107'\n\t\t},\n\t\terror: {\n\t\t\tregular: '#d74942',\n\t\t\thover: '#be3028',\n\t\t\tactive: '#a92a24',\n\t\t\tfocus: '#be3028',\n\t\t\tdisabled: '#edaeab',\n\t\t\tmain: '#d74942'\n\t\t},\n\t\tsuccess: {\n\t\t\tregular: '#8bc34a',\n\t\t\thover: '#71a436',\n\t\t\tactive: '#639030',\n\t\t\tfocus: '#71a436',\n\t\t\tdisabled: '#cee6b2',\n\t\t\tmain: '#8bc34a'\n\t\t},\n\t\tinfo: {\n\t\t\tregular: '#2196d3',\n\t\t\thover: '#1a75a7',\n\t\t\tactive: '#176691',\n\t\t\tfocus: '#1a75a7',\n\t\t\tdisabled: '#a7d7f1',\n\t\t\tmain: '#2196d3'\n\t\t},\n\t\ttext: {\n\t\t\tregular: '#333333',\n\t\t\thover: '#1a1a1a',\n\t\t\tactive: '#0d0d0d',\n\t\t\tfocus: '#1a1a1a',\n\t\t\tdisabled: '#cccccc',\n\t\t\tmain: '#333333'\n\t\t}\n\t},\n\tavatarColors: {\n\t\tavatar_1: '#EF9A9A',\n\t\tavatar_2: '#F48FB1',\n\t\tavatar_3: '#CE93D8',\n\t\tavatar_4: '#B39DDB',\n\t\tavatar_5: '#9FA8DA',\n\t\tavatar_6: '#90CAF9',\n\t\tavatar_7: '#81D4FA',\n\t\tavatar_8: '#80DEEA',\n\t\tavatar_9: '#80CBC4',\n\t\tavatar_10: '#A5D6A7',\n\t\tavatar_11: '#C5E1A5',\n\t\tavatar_12: '#E6EE9C',\n\t\tavatar_13: '#FFE082',\n\t\tavatar_14: '#FFCC80',\n\t\tavatar_15: '#FFAB91',\n\t\tavatar_16: '#BCAAA4',\n\t\tavatar_17: '#E57373',\n\t\tavatar_18: '#F06292',\n\t\tavatar_19: '#BA68C8',\n\t\tavatar_20: '#9575CD',\n\t\tavatar_21: '#7986CB',\n\t\tavatar_22: '#64B5F6',\n\t\tavatar_23: '#4FC3F7',\n\t\tavatar_24: '#4DD0E1',\n\t\tavatar_25: '#4DB6AC',\n\t\tavatar_26: '#81C784',\n\t\tavatar_27: '#AED581',\n\t\tavatar_28: '#DCE775',\n\t\tavatar_29: '#FFD54F',\n\t\tavatar_30: '#FFB74D',\n\t\tavatar_31: '#FF8A65',\n\t\tavatar_32: '#A1887F',\n\t\tavatar_33: '#0097A7',\n\t\tavatar_34: '#EF5350',\n\t\tavatar_35: '#EC407A',\n\t\tavatar_36: '#AB47BC',\n\t\tavatar_37: '#7E57C2',\n\t\tavatar_38: '#5C6BC0',\n\t\tavatar_39: '#42A5F5',\n\t\tavatar_40: '#29B6F6',\n\t\tavatar_41: '#26C6DA',\n\t\tavatar_42: '#26A69A',\n\t\tavatar_43: '#66BB6A',\n\t\tavatar_44: '#9CCC65',\n\t\tavatar_45: '#D4E157',\n\t\tavatar_46: '#FFCA28',\n\t\tavatar_47: '#FFA726',\n\t\tavatar_48: '#FF7043',\n\t\tavatar_49: '#8D6E63',\n\t\tavatar_50: '#0288D1'\n\t}\n});\n\nexport const themeMui = createTheme({\n\tcomponents: {\n\t\tMuiSvgIcon: {\n\t\t\tstyleOverrides: {\n\t\t\t\troot: {\n\t\t\t\t\tcolor: theme.palette.text.regular,\n\t\t\t\t\t'&:hover': { background: theme.palette.gray3.hover },\n\t\t\t\t\tfontSize: '1.25rem',\n\t\t\t\t\tfontWeight: 400\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tMuiAccordionSummary: {\n\t\t\tstyleOverrides: {\n\t\t\t\troot: {\n\t\t\t\t\tpadding: '0 1rem 0 0',\n\t\t\t\t\tmargin: '0',\n\t\t\t\t\tminHeight: '0',\n\t\t\t\t\tjustifyContent: 'left'\n\t\t\t\t},\n\t\t\t\tcontent: {\n\t\t\t\t\tmargin: '0',\n\t\t\t\t\tmaxWidth: 'calc(100% - 1.25rem)'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tMuiAccordionDetails: {\n\t\t\tstyleOverrides: {\n\t\t\t\troot: {\n\t\t\t\t\tbackground: 'transparent',\n\t\t\t\t\tpadding: '0 0 0 0.5rem',\n\t\t\t\t\tmargin: '0'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tMuiButtonBase: {\n\t\t\tstyleOverrides: {\n\t\t\t\troot: {\n\t\t\t\t\tpadding: '0'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tMuiPaper: {\n\t\t\tstyleOverrides: {\n\t\t\t\troot: {\n\t\t\t\t\tborderBottomLeftRadius: '0',\n\t\t\t\t\tborderTopLeftRadius: '0',\n\t\t\t\t\tborderBottomRightRadius: '0',\n\t\t\t\t\tborderTopRightRadius: '0'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tMuiAccordion: {\n\t\t\tstyleOverrides: {\n\t\t\t\troot: {\n\t\t\t\t\t':last-of-type': {\n\t\t\t\t\t\tborderBottomLeftRadius: '0',\n\t\t\t\t\t\tborderTopLeftRadius: '0',\n\t\t\t\t\t\tborderBottomRightRadius: '0',\n\t\t\t\t\t\tborderTopRightRadius: '0'\n\t\t\t\t\t},\n\t\t\t\t\t':first-of-type': {\n\t\t\t\t\t\tborderBottomLeftRadius: '0',\n\t\t\t\t\t\tborderTopLeftRadius: '0',\n\t\t\t\t\t\tborderBottomRightRadius: '0',\n\t\t\t\t\t\tborderTopRightRadius: '0'\n\t\t\t\t\t},\n\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\tbackground: 'transparent',\n\t\t\t\t\t'&.MuiAccordion-root:before': {\n\t\t\t\t\t\ttop: '0'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n});\n\nexport const themeMuiExtension: ThemeProviderProps['extension'] = (parentTheme) =>\n\tmerge({}, themeMui, parentTheme);\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\n/**\n *\n * @param link\n */\nexport const getLinkIdMapKey = (link: { rid?: string; zid?: string }): string | null => {\n\tif (!link) {\n\t\treturn null;\n\t}\n\n\tif (!link.rid || !link.zid) {\n\t\treturn null;\n\t}\n\n\treturn `${link.zid}:${link.rid}`;\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport type { SoapNotify } from '@zextras/carbonio-ui-soap-lib';\n\nimport { getLinkIdMapKey } from './utils';\nimport type {\n\tBaseFolder,\n\tFolder,\n\tFolderMessage,\n\tFolders,\n\tLinkFolder,\n\tLinkFolderFields,\n\tSearches,\n\tSearchFolderFields,\n\tSoapFolder,\n\tSoapLink,\n\tSoapSearchFolder,\n\tUserFolder\n} from '../types';\nimport { FolderView, LinksIdMap } from '../types';\n\nconst IM_LOGS = '14';\nconst USER_ROOT = '1';\n\nlet folders: Folders = {};\nconst searches: Searches = {};\nconst linksIdMap: LinksIdMap = {};\n// used to check if a newly created folder is being added to the correct store\nlet view: string | undefined;\n\nexport const testUtils = {\n\tgetFolders: (): Folders => folders,\n\tresetFolders: (): void => {\n\t\tfolders = {};\n\t},\n\tsetFolders: (data: Folders): void => {\n\t\tfolders = data;\n\t},\n\tsetCurrentView: (current: FolderView): void => {\n\t\tview = current;\n\t},\n\tgetCurrentView: (): string | undefined => view\n};\n\nconst sortFoldersByName = (obj: Array<Folder>): Array<Folder> =>\n\tobj.sort((a, b) => {\n\t\tconst aLowerName = a.name.toLowerCase();\n\t\tconst bLowerName = b.name.toLowerCase();\n\t\tif (aLowerName < bLowerName) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (aLowerName > bLowerName) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn 0;\n\t});\n\nconst updateChildren = (folder: Folder, changes: any): any => {\n\tif (changes.absFolderPath && folder.children.length) {\n\t\tfolder.children.forEach((child) => {\n\t\t\tconst childFolder = folders[child.id];\n\t\t\tif (changes.absFolderPath && childFolder.absFolderPath) {\n\t\t\t\tconst paths = childFolder.absFolderPath.split('/').slice(2);\n\t\t\t\tchildFolder.absFolderPath = `${changes.absFolderPath}/${paths.join('/')}`;\n\t\t\t}\n\t\t\tif (childFolder.children.length) {\n\t\t\t\tupdateChildren(childFolder, changes);\n\t\t\t}\n\t\t});\n\t}\n};\n\nexport const testFolderIsChecked = ({ string }: { string: string | undefined }): boolean =>\n\t/#/.test(string || '');\n\nconst omit = ({\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tlink: _1,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tfolder: _2,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tsearch: _3,\n\t...obj\n}: Partial<SoapFolder>): Partial<SoapFolder> => obj;\n\nexport const hasId = (f: { id: string }, id: string): boolean => f.id.split(':').includes(id);\nexport const normalize = (f: SoapFolder, p?: Folder): BaseFolder => ({\n\tid: f.id,\n\tuuid: f.uuid,\n\tname: f.name,\n\tabsFolderPath: f.absFolderPath,\n\tl: f.l,\n\tluuid: f.luuid,\n\tchecked: testFolderIsChecked({ string: f.f }),\n\tf: f.f,\n\t// the type defined in shell is not correct refs: SHELL-118\n\t// FIXME: remove the cast when the type will be fixed\n\tcolor: (f.color as unknown as number) || p?.color,\n\trgb: f.rgb,\n\tu: f.u,\n\ti4u: f.i4u,\n\tview: f.view,\n\trev: f.rev,\n\tms: f.ms,\n\tmd: f.md,\n\tn: f.n,\n\ti4n: f.i4n,\n\ts: f.s,\n\ti4ms: f.i4ms,\n\ti4next: f.i4next,\n\turl: f.url,\n\tactivesyncdisabled: !!f.activesyncdisabled,\n\twebOfflineSyncDays: f.webOfflineSyncDays,\n\tperm: f.perm,\n\trecursive: !!f.recursive,\n\trest: f.rest,\n\tdeletable: !!f.deletable,\n\tmeta: f.meta,\n\tacl: f.acl,\n\tretentionPolicy: f.retentionPolicy\n});\n\nexport const normalizeSearch = (s: SoapSearchFolder): BaseFolder & SearchFolderFields => ({\n\t...normalize(s),\n\tquery: s.query,\n\tsortBy: s.sortBy,\n\ttypes: s.types\n});\n\nexport const normalizeLink = (l: SoapLink, p?: Folder): BaseFolder & LinkFolderFields => ({\n\t...normalize(l, p),\n\towner: l.owner,\n\tzid: l.zid,\n\trid: l.rid,\n\truuid: l.ruuid,\n\toname: l.oname,\n\treminder: !!l.reminder,\n\tbroken: !!l.broken\n});\n\nexport const processSearch = (soapSearch: SoapSearchFolder, parent: Folder): void => {\n\tconst search = {\n\t\t...normalizeSearch(soapSearch),\n\t\tparent: parent?.id,\n\t\tisLink: parent?.isLink\n\t};\n\tsearches[search.id] = search;\n};\n\nexport const processLink = (soapLink: SoapLink, depth: number, parent?: Folder): LinkFolder => {\n\tconst link = {\n\t\t...normalizeLink(soapLink, parent),\n\t\tisLink: true,\n\t\tchildren: [],\n\t\tparent: parent?.id,\n\t\tdepth\n\t} as LinkFolder;\n\t// eslint-disable-next-line no-param-reassign\n\tfolders[soapLink.id] = link;\n\n\t// Get the zid:rid key of the link and add it to the links id map\n\tconst linkIdMapKey = getLinkIdMapKey(soapLink);\n\tlinkIdMapKey && (linksIdMap[linkIdMapKey] = soapLink.id);\n\n\tsoapLink?.folder?.forEach((f) => {\n\t\tif (!hasId(f, IM_LOGS)) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tconst child = processFolder(f, depth + 1, link);\n\t\t\tlink.children.push(child);\n\t\t}\n\t});\n\tsoapLink?.link?.forEach((l) => {\n\t\tif (!hasId(l, IM_LOGS)) {\n\t\t\tconst child = processLink(l, depth + 1, link);\n\t\t\tlink.children.push(child);\n\t\t}\n\t});\n\tsoapLink?.search?.forEach((s) => {\n\t\tprocessSearch(s, link);\n\t});\n\n\treturn link;\n};\n\nexport const processFolder = (\n\tsoapFolder: SoapFolder,\n\tdepth: number,\n\tparent?: Folder\n): UserFolder => {\n\tconst folder: UserFolder = {\n\t\t...normalize(soapFolder, parent),\n\t\tisLink: false,\n\t\tchildren: [],\n\t\tparent: parent?.id,\n\t\tdepth\n\t};\n\tfolders[soapFolder.id] = folder;\n\tsoapFolder?.folder?.forEach((f) => {\n\t\tif (!hasId(f, IM_LOGS)) {\n\t\t\tconst child = processFolder(f, depth + 1, folder);\n\t\t\tif (!hasId(f, USER_ROOT)) {\n\t\t\t\tfolder.children.push(child);\n\t\t\t}\n\t\t}\n\t});\n\tsoapFolder?.link?.forEach((l) => {\n\t\tif (!hasId(l, IM_LOGS)) {\n\t\t\tconst child = processLink(l, depth + 1, folder);\n\t\t\tif (!hasId(l, USER_ROOT)) {\n\t\t\t\tfolder.children.push(child);\n\t\t\t}\n\t\t}\n\t});\n\tsoapFolder?.search?.forEach((s) => {\n\t\tprocessSearch(s, folder);\n\t});\n\treturn folder;\n};\n\nexport const handleFolderRefresh = (\n\tsoapFolders: Array<SoapFolder>,\n\tcurrentView: FolderView\n): UserFolder | Array<UserFolder> => {\n\tview = currentView;\n\tif (soapFolders.length > 1) {\n\t\tconst sharedAccounts = soapFolders.slice(1);\n\t\treturn [\n\t\t\tprocessFolder(soapFolders[0], 0),\n\t\t\t...sharedAccounts.map((folder) => processLink(folder as SoapLink, 0))\n\t\t] as Array<UserFolder>;\n\t}\n\treturn processFolder(soapFolders[0], 0);\n};\n\nexport const handleFolderCreated = (created: Array<SoapFolder>): void =>\n\tcreated.forEach((val: SoapFolder) => {\n\t\tif (val.id && val.l && view && val.view === view) {\n\t\t\tconst parent = folders[val.l];\n\t\t\tconst folder: UserFolder = {\n\t\t\t\t...normalize(val, parent),\n\t\t\t\tisLink: false,\n\t\t\t\tchildren: [],\n\t\t\t\tparent: parent?.id,\n\t\t\t\tdepth: parent && parent.depth !== undefined ? parent.depth + 1 : 0\n\t\t\t};\n\t\t\tfolders[val.id] = folder;\n\t\t\tparent.children.push(folder);\n\t\t\tsortFoldersByName(parent.children);\n\t\t}\n\t});\nexport const handleLinkCreated = (created: Array<SoapLink>): void =>\n\tcreated.forEach((val: SoapLink) => {\n\t\tif (val.id && val.l && view && val.view === view) {\n\t\t\tconst parent = folders[val.l];\n\t\t\tconst folder: LinkFolder = {\n\t\t\t\t...normalizeLink(val, parent),\n\t\t\t\tisLink: true,\n\t\t\t\tchildren: [],\n\t\t\t\tparent: parent?.id,\n\t\t\t\tdepth: parent && parent.depth !== undefined ? parent.depth + 1 : 0\n\t\t\t};\n\t\t\tfolders[val.id] = folder;\n\t\t\tparent.children.push(folder);\n\t\t\tsortFoldersByName(parent.children);\n\t\t}\n\t});\n\nfunction getKeyByValue(map: Folders, searchValue: Partial<UserFolder>): string | undefined {\n\treturn Object.keys(map).find(\n\t\t(key) => searchValue.id === `${(map[key] as LinkFolder).zid}:${(map[key] as LinkFolder).rid}`\n\t);\n}\n\nfunction folderIsSharedWithMe(folderId: string | undefined): boolean {\n\tif (!folderId) return false;\n\tconst folder = folders[folderId];\n\tif (folder?.parent) {\n\t\treturn folderIsSharedWithMe(folder?.parent);\n\t}\n\treturn folder?.name === 'USER_ROOT';\n}\n\nexport const handleFolderModified = (modified: Array<Partial<UserFolder>>): void =>\n\t// the type defined in shell is not correct refs: SHELL-118\n\t// FIXME: remove the ts-ignore when the type will be fixed\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t// @ts-ignore\n\tmodified.forEach((val: Partial<SoapFolder>): void => {\n\t\tif (!val.id) return;\n\t\tconst mountPointId = val.id.includes(':') ? getKeyByValue(folders, val) : val.id;\n\t\tconst parentMountPointId = getKeyByValue(folders, { id: val.l });\n\t\tconst isSharedWithMe = folderIsSharedWithMe(mountPointId);\n\t\tconst parentIsSharedWithMe = folderIsSharedWithMe(parentMountPointId);\n\t\tconst parentFolderId = parentIsSharedWithMe && parentMountPointId ? parentMountPointId : val.l;\n\t\tconst folderId = isSharedWithMe && mountPointId ? mountPointId : val.id;\n\t\tconst folder = folderId ? folders[folderId] : null;\n\n\t\tif (folder) {\n\t\t\tObject.assign(folder, omit({ ...val, id: folderId }));\n\t\t\tupdateChildren(folder, val);\n\t\t\tif (typeof val.f !== 'undefined') {\n\t\t\t\tfolder.checked = testFolderIsChecked({ string: val.f });\n\t\t\t}\n\n\t\t\tconst oldParentId = folder.parent;\n\n\t\t\tif (oldParentId) {\n\t\t\t\tconst oldParent = folders[oldParentId];\n\t\t\t\tif (oldParent) {\n\t\t\t\t\tif (!val.l) {\n\t\t\t\t\t\toldParent.children = oldParent.children.map((f) => (f.id !== val.id ? f : folder));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst newParent = parentFolderId ? folders[parentFolderId] : null;\n\t\t\t\t\t\tif (newParent) {\n\t\t\t\t\t\t\toldParent.children = oldParent.children.filter((f) => f.id !== folderId);\n\t\t\t\t\t\t\tnewParent.children.push(folder);\n\t\t\t\t\t\t\tsortFoldersByName(newParent.children);\n\t\t\t\t\t\t\tfolder.parent = newParent.id;\n\t\t\t\t\t\t\tfolder.depth = newParent?.depth !== undefined ? newParent.depth + 1 : 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfolders[folderId] = folder;\n\t\t\t}\n\t\t}\n\t});\nexport const handleFolderDeleted = (deleted: string[]): void =>\n\tdeleted.forEach((val) => {\n\t\tconst folder = folders[val];\n\t\tif (folder) {\n\t\t\tif (folder.parent) {\n\t\t\t\tconst parent = folders[folder.parent];\n\t\t\t\tparent.children = parent.children.filter((obj) => obj.id !== val);\n\t\t\t}\n\t\t\tdelete folders[val];\n\t\t\tdelete searches[val];\n\t\t}\n\t});\nexport const handleFolderNotify = (notify: SoapNotify): void => {\n\thandleFolderCreated(notify.created?.folder ?? []);\n\thandleLinkCreated(notify.created?.link ?? []);\n\t// the type defined in shell is not correct refs: SHELL-118\n\t// FIXME: remove the ts-ignore when the type will be fixed\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t// @ts-ignore\n\thandleFolderModified([...(notify.modified?.folder ?? []), ...(notify.modified?.link ?? [])]);\n\thandleFolderDeleted(notify.deleted ?? []);\n};\n\nexport const handleFoldersMessages = ({ data }: FolderMessage): void => {\n\tif (data.op === 'refresh' && data.folder) {\n\t\thandleFolderRefresh(data.folder, data.currentView);\n\t}\n\tif (data.op === 'notify') {\n\t\thandleFolderNotify(data.notify);\n\t}\n};\n\nexport const handleMessage = ({ data }: FolderMessage): void => {\n\thandleFoldersMessages({ data });\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t// @ts-ignore\n\tpostMessage({ folders, linksIdMap, searches });\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { FC, useCallback, useRef } from 'react';\n\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport { Accordion, AccordionDetails, AccordionSummary, Container } from '@mui/material';\nimport { useLocalStorage } from '@zextras/carbonio-shell-ui';\n\nimport { theme } from '../../theme/theme-mui';\nimport type { Folder } from '../../types/folder';\nimport type { SidebarAccordionProps } from '../../types/sidebar';\nimport { hasId } from '../../worker/handle-message';\n\nexport const SidebarAccordionMui: FC<SidebarAccordionProps> = ({\n\taccordions,\n\tfolderId,\n\tlocalStorageName,\n\tAccordionCustomComponent,\n\tsetSelectedFolder,\n\tbuttonFindShares,\n\tinitialExpanded\n}) => {\n\tconst [openIds, setOpenIds] = useLocalStorage<Array<string>>(\n\t\tlocalStorageName,\n\t\tinitialExpanded ?? []\n\t);\n\tconst sidebarRef = useRef<HTMLInputElement>(null);\n\tconst onClick = useCallback(\n\t\t({ accordion, expanded }: { accordion: Folder; expanded: boolean }): void => {\n\t\t\tif (expanded) {\n\t\t\t\tsetOpenIds((state: Array<string>) =>\n\t\t\t\t\tstate.includes(accordion.id) ? state : [...state, accordion.id]\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tsetOpenIds((state: Array<string>) => state.filter((id) => id !== accordion.id));\n\t\t\t}\n\t\t},\n\t\t[setOpenIds]\n\t);\n\n\treturn (\n\t\t<Container ref={sidebarRef} disableGutters>\n\t\t\t{accordions.map((accordion) =>\n\t\t\t\taccordion.id === 'find_shares' ? (\n\t\t\t\t\tbuttonFindShares\n\t\t\t\t) : (\n\t\t\t\t\t<Accordion\n\t\t\t\t\t\tdisableGutters\n\t\t\t\t\t\tslotProps={{ transition: { unmountOnExit: true } }}\n\t\t\t\t\t\texpanded={openIds.includes(accordion.id)}\n\t\t\t\t\t\tkey={accordion.id}\n\t\t\t\t\t>\n\t\t\t\t\t\t<AccordionSummary\n\t\t\t\t\t\t\tonClick={(): void => {\n\t\t\t\t\t\t\t\tsetSelectedFolder?.(accordion.id);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\texpandIcon={\n\t\t\t\t\t\t\t\taccordion?.children?.length > 0 &&\n\t\t\t\t\t\t\t\t!hasId(accordion, 'all') && (\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tstyle={{ all: 'unset', cursor: 'pointer' }}\n\t\t\t\t\t\t\t\t\t\tonClick={(e): void => {\n\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\tonClick({ accordion, expanded: !openIds.includes(accordion.id) });\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<ExpandMoreIcon color=\"primary\" />\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taria-controls=\"panel1a-content\"\n\t\t\t\t\t\t\tid={accordion.id}\n\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\t\t\taccordion.id === folderId\n\t\t\t\t\t\t\t\t\t\t? theme.palette.highlight.hover\n\t\t\t\t\t\t\t\t\t\t: theme.palette.gray5.regular,\n\t\t\t\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\t\t\t\taccordion.id === folderId\n\t\t\t\t\t\t\t\t\t\t\t? theme.palette.highlight.active\n\t\t\t\t\t\t\t\t\t\t\t: theme.palette.gray5.hover\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<AccordionCustomComponent item={accordion} />\n\t\t\t\t\t\t</AccordionSummary>\n\t\t\t\t\t\t{accordion?.children?.length > 0 && (\n\t\t\t\t\t\t\t<AccordionDetails>\n\t\t\t\t\t\t\t\t<SidebarAccordionMui\n\t\t\t\t\t\t\t\t\taccordions={accordion.children}\n\t\t\t\t\t\t\t\t\tfolderId={folderId}\n\t\t\t\t\t\t\t\t\tkey={accordion.id}\n\t\t\t\t\t\t\t\t\tlocalStorageName={localStorageName}\n\t\t\t\t\t\t\t\t\tAccordionCustomComponent={AccordionCustomComponent}\n\t\t\t\t\t\t\t\t\tsetSelectedFolder={setSelectedFolder}\n\t\t\t\t\t\t\t\t\tbuttonFindShares={buttonFindShares}\n\t\t\t\t\t\t\t\t\tinitialExpanded={initialExpanded}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</AccordionDetails>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Accordion>\n\t\t\t\t)\n\t\t\t)}\n\t\t</Container>\n\t);\n};\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { FC, ReactElement, useMemo } from 'react';\n\nimport { Container, Button, Padding, Divider, Tooltip } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\n\nimport type { ModalFooterProps } from '../../types';\n\nexport const ModalFooter: FC<ModalFooterProps> = ({\n\tmainAlignment = 'center',\n\tcrossAlignment = 'center',\n\tonConfirm,\n\tlabel,\n\tsecondaryAction,\n\tsecondaryLabel,\n\tprimaryBtnType = 'default',\n\tsecondaryBtnType = 'default',\n\tdisabled,\n\tsecondaryDisabled,\n\tbackground = 'primary',\n\tsecondarybackground,\n\tcolor = 'primary',\n\tsecondaryColor = 'secondary',\n\tsize = 'medium',\n\tshowDivider = true,\n\ttooltip,\n\tsecondaryTooltip,\n\tpaddingTop = 'medium',\n\tadditionalAction,\n\tadditionalBtnType = 'outlined',\n\tadditionalColor = 'secondary',\n\tadditionalLabel,\n\tprimaryButtonIcon\n}): ReactElement => {\n\tconst [t] = useTranslation();\n\n\tconst cancelLabel = useMemo(() => t('label.cancel', 'cancel'), [t]);\n\n\tconst secondaryTypeAndColor = useMemo(() => {\n\t\tif (secondaryBtnType === 'ghost') {\n\t\t\treturn { type: secondaryBtnType, color: secondaryColor };\n\t\t}\n\t\tif (secondaryBtnType === 'default') {\n\t\t\treturn {\n\t\t\t\ttype: secondaryBtnType,\n\t\t\t\tbackgroundColor: secondaryColor || secondarybackground\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\ttype: secondaryBtnType,\n\t\t\tbackgroundColor: secondarybackground,\n\t\t\tlabelColor: secondaryColor\n\t\t};\n\t}, [secondaryBtnType, secondaryColor, secondarybackground]);\n\n\tconst primaryTypeAndColor = useMemo(() => {\n\t\tif (primaryBtnType === 'ghost') {\n\t\t\treturn { type: primaryBtnType, color };\n\t\t}\n\t\tif (primaryBtnType === 'default') {\n\t\t\treturn { type: primaryBtnType, backgroundColor: color || background };\n\t\t}\n\t\treturn { type: primaryBtnType, backgroundColor: background, labelColor: color };\n\t}, [background, color, primaryBtnType]);\n\n\treturn (\n\t\t<Container\n\t\t\tmainAlignment={mainAlignment}\n\t\t\tcrossAlignment={crossAlignment}\n\t\t\tpadding={{\n\t\t\t\ttop: paddingTop\n\t\t\t}}\n\t\t>\n\t\t\t{showDivider && (\n\t\t\t\t<Container\n\t\t\t\t\tpadding={{ top: 'small', bottom: 'small' }}\n\t\t\t\t\tmainAlignment=\"center\"\n\t\t\t\t\tcrossAlignment=\"flex-start\"\n\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\theight=\"fit\"\n\t\t\t\t>\n\t\t\t\t\t<Divider />\n\t\t\t\t</Container>\n\t\t\t)}\n\t\t\t<Container orientation=\"horizontal\" mainAlignment=\"space-between\">\n\t\t\t\t{additionalAction && (\n\t\t\t\t\t<Container orientation=\"horizontal\" width=\"fit\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tcolor={additionalColor}\n\t\t\t\t\t\t\ttype={additionalBtnType}\n\t\t\t\t\t\t\tonClick={additionalAction}\n\t\t\t\t\t\t\tlabel={additionalLabel ?? cancelLabel}\n\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Padding horizontal=\"extrasmall\" />\n\t\t\t\t\t</Container>\n\t\t\t\t)}\n\t\t\t\t<Container\n\t\t\t\t\tpadding={{ top: 'small', bottom: 'small' }}\n\t\t\t\t\tmainAlignment=\"flex-end\"\n\t\t\t\t\tcrossAlignment=\"flex-start\"\n\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\theight=\"fit\"\n\t\t\t\t>\n\t\t\t\t\t{secondaryAction && (\n\t\t\t\t\t\t<Padding right=\"small\" vertical=\"small\">\n\t\t\t\t\t\t\t{secondaryTooltip ? (\n\t\t\t\t\t\t\t\t<Tooltip label={secondaryTooltip} placement=\"top\" maxWidth=\"fit\">\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t{...secondaryTypeAndColor}\n\t\t\t\t\t\t\t\t\t\tonClick={secondaryAction}\n\t\t\t\t\t\t\t\t\t\tlabel={secondaryLabel ?? cancelLabel}\n\t\t\t\t\t\t\t\t\t\tdisabled={secondaryDisabled}\n\t\t\t\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t{...secondaryTypeAndColor}\n\t\t\t\t\t\t\t\t\tonClick={secondaryAction}\n\t\t\t\t\t\t\t\t\tlabel={secondaryLabel ?? cancelLabel}\n\t\t\t\t\t\t\t\t\tdisabled={secondaryDisabled}\n\t\t\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Padding>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<Padding vertical=\"small\">\n\t\t\t\t\t\t{tooltip ? (\n\t\t\t\t\t\t\t<Tooltip label={tooltip} placement=\"top\" maxWidth=\"fit\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t\t\t\tonClick={onConfirm}\n\t\t\t\t\t\t\t\t\tlabel={label}\n\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\ticon={primaryButtonIcon}\n\t\t\t\t\t\t\t\t\ticonPlacement=\"left\"\n\t\t\t\t\t\t\t\t\t{...primaryTypeAndColor}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t\t\tonClick={onConfirm}\n\t\t\t\t\t\t\t\tlabel={label}\n\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\ticon={primaryButtonIcon}\n\t\t\t\t\t\t\t\ticonPlacement=\"left\"\n\t\t\t\t\t\t\t\t{...primaryTypeAndColor}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Padding>\n\t\t\t\t</Container>\n\t\t\t</Container>\n\t\t</Container>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { FC } from 'react';\n\nimport {\n\tDivider,\n\tText,\n\tRow,\n\tIconButton,\n\tPadding,\n\tContainer\n} from '@zextras/carbonio-design-system';\n\nexport const ModalHeader: FC<{ title: string; onClose?: () => void; showCloseIcon?: boolean }> = ({\n\ttitle,\n\tonClose,\n\tshowCloseIcon = true\n}) => (\n\t<Container mainAlignment=\"space-between\" width=\"100%\">\n\t\t<Row takeAvailableSpace mainAlignment=\"space-between\" width=\"100%\">\n\t\t\t<Row width=\"calc(100% - 1.5rem)\" takeAvailableSpace mainAlignment=\"flex-start\">\n\t\t\t\t<Text weight=\"bold\" size=\"large\">\n\t\t\t\t\t{title}\n\t\t\t\t</Text>\n\t\t\t</Row>\n\t\t\t{onClose && showCloseIcon && (\n\t\t\t\t<Row mainAlignment=\"flex-start\">\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\t\tstyle={{ padding: 0, margin: 0 }}\n\t\t\t\t\t\tonClick={onClose}\n\t\t\t\t\t\ticon=\"CloseOutline\"\n\t\t\t\t\t/>\n\t\t\t\t</Row>\n\t\t\t)}\n\t\t</Row>\n\t\t<Padding top=\"medium\" />\n\t\t<Divider />\n\t\t<Padding bottom=\"medium\" />\n\t</Container>\n);\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback } from 'react';\n\nimport { Row, Text } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\n\nimport { ModalFooter } from './modal-footer';\nimport { ModalHeader } from './modal-header';\n\nexport const FolderInitializationErrorModal = ({\n\tonClose\n}: {\n\tonClose: () => void;\n}): React.JSX.Element => {\n\tconst [t] = useTranslation();\n\n\tconst title = t('modal.initializeError.title', 'Oops!…Something went wrong');\n\tconst body = t('modal.initializeError.content', 'Please reload the page or try again later');\n\tconst onConfirmLabel = t('modal.initializeError.buttonConfirm', 'Reload');\n\n\tconst onConfirm = useCallback(() => {\n\t\twindow.location.reload();\n\t}, []);\n\n\treturn (\n\t\t<>\n\t\t\t<ModalHeader onClose={onClose} title={title} />\n\t\t\t<Row>\n\t\t\t\t<Text>{body}</Text>\n\t\t\t</Row>\n\t\t\t<ModalFooter onConfirm={onConfirm} label={onConfirmLabel} disabled={false} />\n\t\t</>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\n// eslint-disable-next-line no-shadow\nexport const FolderActionsType = {\n\tNEW: 'new',\n\tMOVE: 'move',\n\tDELETE: 'delete',\n\tEDIT: 'edit',\n\tEMPTY: 'empty',\n\tREMOVE_FROM_LIST: 'removeFromList',\n\tSHARES_INFO: 'sharesInfo',\n\tSHARE: 'share',\n\tMARK_ALL_READ: 'read'\n} as const;\n\nexport const FOLDERS = {\n\tUSER_ROOT: '1',\n\tINBOX: '2',\n\tTRASH: '3',\n\tSPAM: '4',\n\tSENT: '5',\n\tDRAFTS: '6',\n\tCONTACTS: '7',\n\tTAGS: '8',\n\tCONVERSATIONS: '9',\n\tCALENDAR: '10',\n\tROOT: '11',\n\tNOTEBOOK: '12', // no longer created in new mailboxes since Helix (bug 39647). old mailboxes may still contain a system folder with id 12\n\tAUTO_CONTACTS: '13',\n\tIM_LOGS: '14',\n\tTASKS: '15',\n\tBRIEFCASE: '16',\n\tLAST_SYSTEM_FOLDER_POSITION: '16.1'\n} as const;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { SyntheticEvent, useState } from 'react';\n\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport {\n\tAccordion as MUIAccordion,\n\tContainer as MUIContainer,\n\tAccordionSummary as MUIAccordionSummary,\n\tAccordionDetails as MUIAccordionDetails\n} from '@mui/material';\nimport { filter } from 'lodash';\n\nimport { FOLDERS } from '../../../constants/folders';\nimport { theme } from '../../../theme/theme-mui';\nimport { Folder } from '../../../types';\nimport { hasId } from '../../../worker/handle-message';\n\ntype FolderAccordionProps = {\n\tfolders: Array<Folder>;\n\tonFolderSelected: (arg: Folder) => void;\n\tselectedFolderId?: string;\n\tdisabledFolderIds?: Array<string>;\n\tFolderAccordionCustomComponent: React.FC<{ folder: Folder }>;\n\tfilterChildren?: (folder: Folder) => boolean;\n};\n\nexport const FoldersAccordion = ({\n\tfolders,\n\tonFolderSelected,\n\tFolderAccordionCustomComponent,\n\tselectedFolderId,\n\tdisabledFolderIds,\n\tfilterChildren\n}: FolderAccordionProps): React.JSX.Element => {\n\tconst filteredFolders = folders.map((root) => ({\n\t\t...root,\n\t\tchildren: filter(root.children, filterChildren)\n\t}));\n\n\tconst [openIds, setOpenIds] = useState<Array<string>>([FOLDERS.USER_ROOT]);\n\n\tconst handleExpandFolderClick = (\n\t\tfolderId: string,\n\t\tcallback: React.Dispatch<React.SetStateAction<Array<string>>>\n\t): void =>\n\t\tcallback((state: Array<string>) =>\n\t\t\tstate.includes(folderId) ? state.filter((id) => id !== folderId) : [...state, folderId]\n\t\t);\n\treturn (\n\t\t<MUIContainer disableGutters data-testid={'accordion-folders-selector'}>\n\t\t\t{filteredFolders.map((folder) => (\n\t\t\t\t<MUIAccordion\n\t\t\t\t\tdisableGutters\n\t\t\t\t\tslotProps={{ transition: { unmountOnExit: true } }}\n\t\t\t\t\texpanded={openIds.includes(folder.id)}\n\t\t\t\t\tkey={folder.id}\n\t\t\t\t>\n\t\t\t\t\t<MUIAccordionSummary\n\t\t\t\t\t\tdata-testid={`folder-accordion-item-${folder.id}`}\n\t\t\t\t\t\tonClick={(e: SyntheticEvent): void => {\n\t\t\t\t\t\t\tif (disabledFolderIds?.includes(folder.id)) {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonFolderSelected?.(folder);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\texpandIcon={\n\t\t\t\t\t\t\tfolder?.children?.length > 0 &&\n\t\t\t\t\t\t\t!hasId(folder, 'all') && (\n\t\t\t\t\t\t\t\t<ExpandMoreIcon\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\tonClick={(e): void => {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\thandleExpandFolderClick(folder.id, setOpenIds);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\taria-controls=\"panel1a-content\"\n\t\t\t\t\t\tid={folder.id}\n\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\tmargin: 0,\n\t\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\t\tfolder.id === selectedFolderId\n\t\t\t\t\t\t\t\t\t? theme.palette.highlight.hover\n\t\t\t\t\t\t\t\t\t: theme.palette.gray6.regular,\n\t\t\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\t\t\tfolder.id === selectedFolderId\n\t\t\t\t\t\t\t\t\t\t? theme.palette.highlight.active\n\t\t\t\t\t\t\t\t\t\t: theme.palette.gray6.hover\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<FolderAccordionCustomComponent folder={folder} />\n\t\t\t\t\t</MUIAccordionSummary>\n\t\t\t\t\t{folder?.children?.length > 0 && (\n\t\t\t\t\t\t<MUIAccordionDetails>\n\t\t\t\t\t\t\t<FoldersAccordion\n\t\t\t\t\t\t\t\tfolders={folder.children}\n\t\t\t\t\t\t\t\tselectedFolderId={selectedFolderId}\n\t\t\t\t\t\t\t\tkey={folder.id}\n\t\t\t\t\t\t\t\tdisabledFolderIds={disabledFolderIds}\n\t\t\t\t\t\t\t\tFolderAccordionCustomComponent={FolderAccordionCustomComponent}\n\t\t\t\t\t\t\t\tonFolderSelected={onFolderSelected}\n\t\t\t\t\t\t\t\tfilterChildren={filterChildren}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MUIAccordionDetails>\n\t\t\t\t\t)}\n\t\t\t\t</MUIAccordion>\n\t\t\t))}\n\t\t</MUIContainer>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nexport const FOLDER_VIEW: FolderViewType = {\n\tsearch_folder: 'search folder',\n\ttag: 'tag',\n\tconversation: 'conversation',\n\tmessage: 'message',\n\tcontact: 'contact',\n\tdocument: 'document',\n\tappointment: 'appointment',\n\tvirtual_conversation: 'virtual conversation',\n\tremote_folder: 'remote folder',\n\twiki: 'wiki',\n\ttask: 'task',\n\tchat: 'chat'\n} as const;\n\ntype FolderViewType = {\n\tsearch_folder: 'search folder';\n\ttag: 'tag';\n\tconversation: 'conversation';\n\tmessage: 'message';\n\tcontact: 'contact';\n\tdocument: 'document';\n\tappointment: 'appointment';\n\tvirtual_conversation: 'virtual conversation';\n\tremote_folder: 'remote folder';\n\twiki: 'wiki';\n\ttask: 'task';\n\tchat: 'chat';\n};\n\n// eslint-disable-next-line no-shadow\nexport enum TagsActionsType {\n\tNEW = 'new',\n\tDELETE = 'delete',\n\tEDIT = 'edit',\n\tApply = 'apply'\n}\n\nexport const DRAG_DATA_TYPE = {\n\tMESSAGE: 'message',\n\tCONVERSATION: 'conversation',\n\tFOLDER: 'folder',\n\tCONTACT: 'contact'\n} as const;\n\nexport const ZIMBRA_STANDARD_COLORS = [\n\t{ zValue: 0, hex: '#000000', zLabel: 'black' },\n\t{ zValue: 1, hex: '#2b73d2', zLabel: 'blue' },\n\t{ zValue: 2, hex: '#29B6F6', zLabel: 'cyan' },\n\t{ zValue: 3, hex: '#66BB6A', zLabel: 'green' },\n\t{ zValue: 4, hex: '#7e57c2', zLabel: 'purple' },\n\t{ zValue: 5, hex: '#ef5350', zLabel: 'red' },\n\t{ zValue: 6, hex: '#ffc107', zLabel: 'yellow' },\n\t{ zValue: 7, hex: '#edaeab', zLabel: 'pink' },\n\t{ zValue: 8, hex: '#828282', zLabel: 'gray' },\n\t{ zValue: 9, hex: '#FF7043', zLabel: 'orange' }\n];\n\nexport enum JSNS {\n\tACCOUNT = 'urn:zimbraAccount',\n\tADMIN = 'urn:zimbraAdmin',\n\tMAIL = 'urn:zimbraMail',\n\tALL = 'urn:zimbra',\n\tSYNC = 'urn:zimbraSync'\n}\n\nexport const ROOT_NAME = 'USER_ROOT';\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nexport const folderWorker = new Worker(new URL('./folder', import.meta.url));\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nexport const tagsWorker = new Worker(new URL('./tags', import.meta.url));\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport produce from 'immer';\nimport { create } from 'zustand';\n\nimport { Folder, FolderState } from '../../../types/folder';\nimport { folderWorker } from '../../../worker';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useFolderStore = create<FolderState>()((set) => ({\n\tfolders: {},\n\tlinksIdMap: {},\n\tsearches: {},\n\tupdateFolder: (id: string, opt: Partial<Folder>): void => {\n\t\tset(\n\t\t\tproduce((state) => {\n\t\t\t\tif (state?.folders?.[id]) {\n\t\t\t\t\tstate.folders[id] = {\n\t\t\t\t\t\t...state.folders[id],\n\t\t\t\t\t\t...opt\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\t}\n}));\n\nfolderWorker.onmessage = ({ data }): void => {\n\tuseFolderStore.setState(data);\n};\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { getUserAccount } from '@zextras/carbonio-shell-ui';\nimport { find } from 'lodash';\n\nimport { FOLDERS } from '../constants/folders';\nimport { useFolderStore } from '../store/zustand/folder/store';\nimport type { Folder, Folders } from '../types/folder';\n\nconst NO_ACCOUNT_NAME = 'No account';\n\n/*\n * Describe the folder id syntax\n *\n * [<zid>:]<folderId>\n *\n * e.g. a79fa996-e90e-4f04-97c4-c84209bb8277:2\n */\nconst FOLDERID_REGEX = /^([^:]+(?=:))*:?(\\d+)$/;\n\ntype FolderIdType = { zid: string | null; id: string | null };\n\n/**\n * Parse the given folder id and returns on object with the composing parts of the folder id\n * @param folderId\n */\nexport const getFolderIdParts = (folderId: string): FolderIdType => {\n\tconst result: FolderIdType = { zid: null, id: null };\n\n\tif (!folderId || !folderId.match(FOLDERID_REGEX)) {\n\t\treturn result;\n\t}\n\n\tconst parts = FOLDERID_REGEX.exec(folderId);\n\tif (!parts) {\n\t\treturn result;\n\t}\n\n\t[, result.zid = null, result.id = null] = parts;\n\treturn result;\n};\n\n/**\n * Get the account name of the owner of the given folder, if the owner is an\n * \"other\" account, different from the primary account of the current user.\n * If the owner is the primary account then <code>null</code> is returned\n * @param folderId\n * @param folderRoots\n */\nexport const getFolderOtherOwnerAccountName = (\n\tfolderId: string,\n\tfolderRoots: Folders\n): string | null => {\n\tif (!folderId) {\n\t\treturn null;\n\t}\n\n\tconst { zid } = getFolderIdParts(folderId);\n\tif (!zid) {\n\t\treturn null;\n\t}\n\n\t/** find the folderRoots for which the id corresponds to the message zid\n\t * if the folderRoots has an owner, return the owner\n\t * if not, return null\n\t * */\n\n\tconst matchingFolderRoot = find(folderRoots, (c) => c.id.includes(zid));\n\tif (!matchingFolderRoot) {\n\t\treturn null;\n\t}\n\n\treturn 'owner' in matchingFolderRoot && matchingFolderRoot.owner\n\t\t? matchingFolderRoot.owner\n\t\t: null;\n};\n\n/**\n * Returns the account name of the owner of the folder, based on the folder id\n * @param folderId\n * @param folderRoots\n */\nexport const getFolderOwnerAccountName = (folderId: string, folderRoots: Folders): string => {\n\tconst primaryAccount = getUserAccount();\n\n\t/*\n\t * Try to get the account of the \"other\" owner, aka an owner which\n\t * is not the primary account of the current user\n\t */\n\tconst otherOwnerAccount = getFolderOtherOwnerAccountName(folderId, folderRoots);\n\n\tif (!otherOwnerAccount) {\n\t\treturn primaryAccount?.name ?? NO_ACCOUNT_NAME;\n\t}\n\n\treturn otherOwnerAccount;\n};\n\n/**\n * Tells if a folder with the given id is a spam folder\n * @param folderId\n * @param folderType\n */\nexport const isA = (folderId: string, folderType: keyof Folders): boolean => {\n\tif (!folderId) {\n\t\treturn false;\n\t}\n\treturn getFolderIdParts(folderId).id === folderType;\n};\n\n/**\n * Tells if a folder with the given id is the default account root folder\n * @param folderId\n */\nexport const isDefaultAccountRoot = (folderId: string): boolean => folderId === FOLDERS.USER_ROOT;\n\n/**\n * Tells if a folder with the given id is a root folder\n * @param folderId\n */\nexport const isRoot = (folderId: string): boolean => isA(folderId, FOLDERS.USER_ROOT);\n\n/**\n * Tells if the given folder is a link to a folder shared by another user\n * @param folder\n */\nexport const isLink = (folder: Folder): boolean =>\n\t(folder && folder.isLink && getFolderIdParts(folder.id).zid === null) ?? false;\n\n/**\n * Tells if a folder is a folder of a shared account\n * @param folderId\n */\nexport function isSharedAccountFolder(folderId: string): boolean {\n\treturn getFolderIdParts(folderId).zid !== null;\n}\n\n/**\n * Tells if a folder is a system one\n * @param folderId\n */\nexport const isSystemFolder = (folderId: string): boolean => {\n\tconst { id } = getFolderIdParts(folderId);\n\tif (!id) {\n\t\treturn false;\n\t}\n\tconst systemFoldersIds: readonly string[] = Object.values(FOLDERS);\n\treturn systemFoldersIds.includes(folderId);\n};\n\n/**\n * Tells if a folder is a trashed folder\n * @param folder\n * @param folderId\n */\nexport const isTrashed = ({\n\tfolder,\n\tfolderId\n}: {\n\tfolder?: Folder;\n\tfolderId?: string;\n}): boolean => {\n\tif (!folder && !folderId) {\n\t\treturn false;\n\t}\n\tconst folderIdAbsPath = useFolderStore.getState()?.folders?.[folderId ?? '']?.absFolderPath;\n\n\tconst path = folder ? folder.absFolderPath : folderIdAbsPath;\n\tif (!path) {\n\t\treturn false;\n\t}\n\n\treturn path.toLowerCase().startsWith('/trash');\n};\n\n/**\n * Tells if a folder with the given id is a trash folder\n * @param folderId\n */\nexport const isTrash = (folderId: string): boolean => isA(folderId, FOLDERS.TRASH);\n\n/**\n * Tells if the current user has read permission on the given folder/link\n * @param folder\n */\nexport const isReadAllowed = (folder: Folder): boolean => !folder.perm || folder.perm.includes('r');\n\n/**\n * Tells if the current user has write permission on the given folder/link\n * @param folder\n */\nexport const isWriteAllowed = (folder: Folder): boolean =>\n\t!folder.perm || folder.perm.includes('w');\n\n/**\n * Tells if the current user has insertion permission on the given folder/link\n * @param folder\n */\nexport const isInsertAllowed = (folder: Folder): boolean =>\n\t!folder.perm || folder.perm.includes('i');\n\n/**\n * Tells if the current user has subfolder creation permission on the given folder/link\n * @param folder\n */\nexport const isCreateAllowed = (folder: Folder): boolean =>\n\t!folder.perm || folder.perm.includes('c');\n\n/**\n * Tells if the current user has deletion permission on the given folder/link\n * @param folder\n */\nexport const isDeleteAllowed = (folder: Folder): boolean =>\n\t!folder.perm || folder.perm.includes('d');\n\n/**\n * Tells if the current user has administration permission on the given folder/link\n * @param folder\n */\nexport const isAdministerAllowed = (folder: Folder): boolean =>\n\t!folder.perm || folder.perm.includes('a');\n('');\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { AccordionItemType } from '@zextras/carbonio-design-system';\nimport { t } from '@zextras/carbonio-shell-ui';\nimport { filter } from 'lodash';\n\nimport { FOLDERS } from '../../../constants/folders';\nimport { FOLDER_VIEW, ROOT_NAME, ZIMBRA_STANDARD_COLORS } from '../../../constants/utils';\nimport { getFolderIdParts, isSystemFolder } from '../../../helpers/folders';\nimport { Folder } from '../../../types';\n\nexport function flattenAndFilterFoldersWithCap(\n\tfolders: Array<Folder>,\n\tsearch: string,\n\tlimit: number,\n\tfilterFolders?: ((folder: Folder) => boolean) | undefined\n): Array<Folder> {\n\tif (limit <= 0) return [];\n\n\tconst lowerCaseSearch = search.toLowerCase();\n\n\tconst flattenAndFilter = (foldersToProcess: Array<Folder>): Array<Folder> =>\n\t\tfilter(foldersToProcess, filterFolders).flatMap((folder) => {\n\t\t\tconst isMatch = folder.name.toLowerCase().includes(lowerCaseSearch);\n\t\t\tconst matched = isMatch ? [{ ...folder, children: [] }] : [];\n\t\t\treturn [...matched, ...flattenAndFilter(folder.children)];\n\t\t});\n\n\treturn flattenAndFilter(folders).slice(0, limit);\n}\nexport const getFolderIconColor = (f: Folder | AccordionItemType): string => {\n\tif ('color' in f && f?.color) {\n\t\treturn Number(f.color) < 10\n\t\t\t? ZIMBRA_STANDARD_COLORS[Number(f.color)].hex\n\t\t\t: (f?.rgb ?? ZIMBRA_STANDARD_COLORS[0].hex);\n\t}\n\treturn ZIMBRA_STANDARD_COLORS[0].hex;\n};\n\nconst getFolderDefaultIcon = (folder: Folder | AccordionItemType): string => {\n\tconst folderView = 'view' in folder && folder.view;\n\tswitch (folderView) {\n\t\tcase FOLDER_VIEW.appointment:\n\t\t\treturn 'Calendar2';\n\t\tdefault:\n\t\t\treturn 'FolderOutline';\n\t}\n};\n\nexport const getFolderIconName = (folder: Folder | AccordionItemType): string | null => {\n\tconst { id } = getFolderIdParts(folder.id);\n\tif (\n\t\tid === FOLDERS.USER_ROOT ||\n\t\t('isLink' in folder && folder.isLink && folder.oname === ROOT_NAME)\n\t) {\n\t\treturn null;\n\t}\n\n\tconst folderDefaultIcon = getFolderDefaultIcon(folder);\n\n\tif (id && isSystemFolder(id)) {\n\t\tswitch (id) {\n\t\t\tcase FOLDERS.INBOX:\n\t\t\t\treturn 'InboxOutline';\n\t\t\tcase FOLDERS.DRAFTS:\n\t\t\t\treturn 'FileOutline';\n\t\t\tcase FOLDERS.SENT:\n\t\t\t\treturn 'PaperPlaneOutline';\n\t\t\tcase FOLDERS.SPAM:\n\t\t\t\treturn 'SlashOutline';\n\t\t\tcase FOLDERS.TRASH:\n\t\t\t\treturn 'Trash2Outline';\n\t\t\tdefault:\n\t\t\t\treturn folderDefaultIcon;\n\t\t}\n\t}\n\treturn folderDefaultIcon;\n};\n\ntype GetSystemFolderProps = {\n\tfolderId?: string;\n\tfolderName: string;\n};\n\nexport const getSystemFolderTranslatedName = ({ folderName }: GetSystemFolderProps): string => {\n\tif (folderName) {\n\t\tswitch (folderName) {\n\t\t\tcase 'Inbox':\n\t\t\t\treturn t('folders.inbox', 'Inbox');\n\t\t\tcase 'Sent':\n\t\t\t\treturn t('folders.sent', 'Sent');\n\t\t\tcase 'Drafts':\n\t\t\t\treturn t('folders.drafts', 'Drafts');\n\t\t\tcase 'Trash':\n\t\t\t\treturn t('folders.trash', 'Trash');\n\t\t\tcase 'Spam':\n\t\t\t\treturn t('folders.spam', 'Spam');\n\t\t\tcase 'Junk':\n\t\t\t\treturn t('folders.junk', 'Junk');\n\t\t\tdefault:\n\t\t\t\treturn folderName;\n\t\t}\n\t}\n\treturn folderName;\n};\n\nexport const getFolderTranslatedName = ({ folderId, folderName }: GetSystemFolderProps): string => {\n\tconst { id } = getFolderIdParts(folderId ?? '');\n\tif (id && isSystemFolder(id)) {\n\t\treturn getSystemFolderTranslatedName({ folderName });\n\t}\n\n\treturn folderName;\n};\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback } from 'react';\n\nimport { Container, Row, Icon } from '@zextras/carbonio-design-system';\nimport { noop } from 'lodash';\n\nimport { getFolderIconColor, getFolderIconName, getSystemFolderTranslatedName } from './utils';\nimport { isRoot } from '../../../helpers/folders';\nimport { Folder } from '../../../types';\nimport { StaticBreadcrumbs } from '../../breadcrumbs/static-breadcrumbs';\n\n/**\n * Process the absolute path of the given folder, removing\n * the leading slash\n *\n * @param folder\n * @return the array of the crumbs name of the path\n */\nconst getFolderAbsPathParts = (folder: Folder): Array<string> => {\n\tif (!folder) {\n\t\treturn [];\n\t}\n\n\t// Exception for root folders\n\tif (isRoot(folder?.id)) {\n\t\treturn [folder.name ?? ''];\n\t}\n\tconst reg = /^\\/?(.*)$/gm;\n\n\tconst matches = reg.exec(folder.absFolderPath ?? '');\n\tif (!matches) {\n\t\treturn [];\n\t}\n\n\treturn matches[1].split('/');\n};\n\nexport type FlaFolderProps = {\n\tfolder: Folder;\n\tselected?: boolean;\n\tonFolderSelected?: (arg: Folder) => void;\n};\n\nexport const FlatFolder = ({\n\tfolder,\n\tonFolderSelected,\n\t...rest\n}: FlaFolderProps): React.JSX.Element => {\n\tconst iconName = getFolderIconName(folder);\n\tconst iconColor = getFolderIconColor(folder);\n\tconst parts = getFolderAbsPathParts(folder);\n\n\t/*\n\t * Create the crumbs array and try to get the translations\n\t * for the first part which usually represent a system folder\n\t * for which a translated name is available\n\t */\n\tconst crumbs = parts.map((part, index) => ({\n\t\tid: `${index} `,\n\t\tlabel: index === 0 ? getSystemFolderTranslatedName({ folderName: part }) : part\n\t}));\n\n\tconst selectionHandler = useCallback(\n\t\t() => onFolderSelected?.(folder) ?? noop,\n\t\t[onFolderSelected, folder]\n\t);\n\n\treturn (\n\t\t<Container\n\t\t\twidth=\"fill\"\n\t\t\tmain-alignment=\"flex-start\"\n\t\t\torientation=\"vertical\"\n\t\t\tcrossAlignment=\"flex-start\"\n\t\t\tpadding={{ top: 'small', right: 'small', bottom: 'small', left: 'extralarge' }}\n\t\t\theight={'2.6rem'}\n\t\t\tonClick={selectionHandler}\n\t\t\twrap=\"nowrap\"\n\t\t\t{...rest}\n\t\t>\n\t\t\t<Row mainAlignment=\"flex-start\" wrap=\"nowrap\" width=\"fill\">\n\t\t\t\t<Container width=\"fit\">\n\t\t\t\t\t<Icon color={iconColor} icon={iconName ?? 'FolderOutline'} size=\"large\" />\n\t\t\t\t</Container>\n\t\t\t\t<StaticBreadcrumbs crumbs={crumbs} size=\"large\" />\n\t\t\t</Row>\n\t\t</Container>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useState, useCallback, ReactElement } from 'react';\n\nimport {\n\tText,\n\tContainer,\n\tPadding,\n\tAvatar,\n\tTooltip,\n\tIconButton,\n\tCollapse,\n\tList,\n\tRow,\n\tListItem\n} from '@zextras/carbonio-design-system';\nimport { useUserAccount } from '@zextras/carbonio-shell-ui';\nimport styled from '@emotion/styled';\n\nimport { FlatFolder, type FlaFolderProps } from './flat-folder';\nimport { FOLDERS } from '../../../constants/folders';\nimport { Folder } from '../../../types';\n\ntype FlatRootProps = FlaFolderProps & {\n\tchildrenFolders: Array<Folder>;\n\tisOpen?: boolean;\n\tonOpenStatusChange?: (isOpen: boolean) => void;\n\tselectedFolderId?: string;\n\tallowRootSelection?: boolean;\n};\n\nconst FOLDER_ROW_HEIGHT = '2.6rem';\n\nconst CustomContainer = styled(Container)<{ $active?: boolean }>`\n\t&:hover {\n\t\tbackground-color: ${({ theme, $active }): string =>\n\t\t\t$active ? theme.palette.highlight.active : theme.palette.gray6.hover};\n\t}\n`;\n\nexport const FlatRoot = ({\n\tfolder,\n\tchildrenFolders,\n\tisOpen = false,\n\tonFolderSelected,\n\tonOpenStatusChange,\n\tselectedFolderId,\n\tallowRootSelection\n}: FlatRootProps): React.JSX.Element => {\n\tconst [open, setOpen] = useState(isOpen);\n\tconst account = useUserAccount();\n\n\tconst rootLabel = folder.id === FOLDERS.USER_ROOT ? account.name : folder.name;\n\tconst toggleOpen = useCallback(\n\t\t(e: KeyboardEvent | React.SyntheticEvent) => {\n\t\t\te.stopPropagation();\n\t\t\tsetOpen((op) => {\n\t\t\t\tonOpenStatusChange && onOpenStatusChange(!op);\n\t\t\t\treturn !op;\n\t\t\t});\n\t\t},\n\t\t[onOpenStatusChange]\n\t);\n\n\tconst onClick = useCallback(\n\t\t(e: KeyboardEvent | React.SyntheticEvent) => {\n\t\t\te.stopPropagation();\n\t\t\tif (!open) {\n\t\t\t\tsetOpen(true);\n\t\t\t}\n\n\t\t\tif (!allowRootSelection) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tonFolderSelected?.(folder);\n\t\t},\n\t\t[open, allowRootSelection, onFolderSelected, folder]\n\t);\n\treturn (\n\t\t<Row\n\t\t\twidth=\"fill\"\n\t\t\tstyle={{\n\t\t\t\tcursor: 'pointer'\n\t\t\t}}\n\t\t>\n\t\t\t<CustomContainer\n\t\t\t\torientation=\"horizontal\"\n\t\t\t\twidth=\"fill\"\n\t\t\t\theight=\"fit\"\n\t\t\t\tmainAlignment=\"space-between\"\n\t\t\t\tpadding={'small'}\n\t\t\t\tonClick={onClick}\n\t\t\t\tdata-testid={`folder-flat-root-${folder.id}`}\n\t\t\t\tbackground={selectedFolderId === folder.id ? 'highlight.active' : 'gray6'}\n\t\t\t\t$active={selectedFolderId === folder.id}\n\t\t\t>\n\t\t\t\t<Container orientation=\"horizontal\" width=\"fill\" mainAlignment=\"flex-start\">\n\t\t\t\t\t<Padding horizontal=\"small\">\n\t\t\t\t\t\t<Avatar label={rootLabel} size=\"medium\" />\n\t\t\t\t\t</Padding>\n\t\t\t\t\t<Tooltip label={rootLabel} placement=\"right\" maxWidth=\"100%\">\n\t\t\t\t\t\t<Text>{rootLabel}</Text>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t</Container>\n\n\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tcustomSize={{ iconSize: 'large', paddingSize: 0 }}\n\t\t\t\t\t\tonClick={toggleOpen}\n\t\t\t\t\t\ticon={open ? 'ChevronUp' : 'ChevronDown'}\n\t\t\t\t\t/>\n\t\t\t\t</Padding>\n\t\t\t</CustomContainer>\n\t\t\t<Collapse crossSize=\"100%\" orientation=\"vertical\" open={open} disableTransition={false}>\n\t\t\t\t<List>\n\t\t\t\t\t{childrenFolders.map<ReactElement>((childFolder) => (\n\t\t\t\t\t\t<ListItem\n\t\t\t\t\t\t\tkey={childFolder.id}\n\t\t\t\t\t\t\tselected={selectedFolderId === childFolder.id}\n\t\t\t\t\t\t\tactive={selectedFolderId === childFolder.id}\n\t\t\t\t\t\t\tbackground={'gray6'}\n\t\t\t\t\t\t\tactiveBackground={'highlight'}\n\t\t\t\t\t\t\tselectedBackground={'gray5'}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{(visible: boolean): ReactElement =>\n\t\t\t\t\t\t\t\tvisible ? (\n\t\t\t\t\t\t\t\t\t<FlatFolder\n\t\t\t\t\t\t\t\t\t\tdata-testid={`folder-flat-item-${childFolder.id}`}\n\t\t\t\t\t\t\t\t\t\tfolder={childFolder}\n\t\t\t\t\t\t\t\t\t\tonFolderSelected={onFolderSelected}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<div style={{ height: `${FOLDER_ROW_HEIGHT}` }} />\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</ListItem>\n\t\t\t\t\t))}\n\t\t\t\t</List>\n\t\t\t</Collapse>\n\t\t</Row>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { ReactElement, useMemo } from 'react';\n\nimport { Container, Padding, Row, Text } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\n\nimport { FlatRoot } from './flat-root';\nimport { flattenAndFilterFoldersWithCap, getSystemFolderTranslatedName } from './utils';\nimport { Folder } from '../../../types';\n\ntype FlatFoldersProps = {\n\trootFolders: Array<Folder>;\n\tsearchString: string;\n\tselectedFolderId?: string;\n\tonFolderSelected?: (folder: Folder) => void;\n\tallowRootSelection?: boolean;\n\tfilterChildren?: (folder: Folder) => boolean;\n};\n\nexport const FlatFolders = ({\n\trootFolders,\n\tsearchString,\n\tonFolderSelected,\n\tselectedFolderId,\n\tallowRootSelection,\n\tfilterChildren\n}: FlatFoldersProps): React.JSX.Element => {\n\tconst [hasMoreResults, setHasMoreResults] = React.useState(false);\n\tconst [t] = useTranslation();\n\tconst flatFilteredFolders = useMemo(() => {\n\t\tlet remaining = 100;\n\n\t\treturn rootFolders\n\t\t\t.map((rootFolder) => {\n\t\t\t\tif (remaining <= 0) {\n\t\t\t\t\treturn { ...rootFolder, children: [] };\n\t\t\t\t}\n\t\t\t\tconst currentFolder = {\n\t\t\t\t\t...rootFolder,\n\t\t\t\t\tname: getSystemFolderTranslatedName({ folderName: rootFolder.name }),\n\t\t\t\t\tchildren: []\n\t\t\t\t};\n\t\t\t\tconst children = flattenAndFilterFoldersWithCap(\n\t\t\t\t\trootFolder.children,\n\t\t\t\t\tsearchString,\n\t\t\t\t\tremaining,\n\t\t\t\t\tfilterChildren\n\t\t\t\t);\n\t\t\t\tremaining -= children.length;\n\t\t\t\tif (remaining <= 0) {\n\t\t\t\t\tsetHasMoreResults(true);\n\t\t\t\t} else {\n\t\t\t\t\tsetHasMoreResults(false);\n\t\t\t\t}\n\n\t\t\t\treturn { ...currentFolder, children };\n\t\t\t})\n\t\t\t.filter((folder): folder is Folder => folder !== null);\n\t}, [filterChildren, rootFolders, searchString]);\n\n\tconst hasMoreResultsWarningLabel = t(\n\t\t'modal.messageFilteringList',\n\t\t'Only the first 100 results are displayed. Narrow your search criteria to view the complete list.'\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{hasMoreResults && (\n\t\t\t\t<Padding top=\"small\" bottom=\"large\">\n\t\t\t\t\t<Row wrap=\"nowrap\" takeAvailableSpace width=\"fill\">\n\t\t\t\t\t\t<Text data-testid={'has-more-results'} textAlign=\"left\" size=\"small\">\n\t\t\t\t\t\t\t{hasMoreResultsWarningLabel}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</Row>\n\t\t\t\t</Padding>\n\t\t\t)}\n\t\t\t{!hasMoreResults && <Padding vertical=\"medium\" />}\n\t\t\t<Container\n\t\t\t\tdata-testid={'flat-folders-selector'}\n\t\t\t\torientation={'vertical'}\n\t\t\t\tstyle={{ overflowY: 'auto' }}\n\t\t\t>\n\t\t\t\t{flatFilteredFolders.map<ReactElement>((folder) => (\n\t\t\t\t\t<FlatRoot\n\t\t\t\t\t\tkey={folder.id}\n\t\t\t\t\t\tfolder={folder}\n\t\t\t\t\t\tchildrenFolders={folder.children}\n\t\t\t\t\t\tisOpen\n\t\t\t\t\t\tonFolderSelected={onFolderSelected}\n\t\t\t\t\t\tselectedFolderId={selectedFolderId}\n\t\t\t\t\t\tallowRootSelection={allowRootSelection}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</Container>\n\t\t</>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React from 'react';\n\nimport { Padding, Tooltip, Row, Icon } from '@zextras/carbonio-design-system';\nimport { t } from 'i18next';\n\nimport { Folder } from '../../../types';\n\nconst RowWithIcon = (icon: string, color: string, tooltipText: string): React.JSX.Element => (\n\t<Padding left=\"small\">\n\t\t<Tooltip placement=\"right\" label={tooltipText}>\n\t\t\t<Row>\n\t\t\t\t<Icon icon={icon} color={color} size=\"medium\" />\n\t\t\t</Row>\n\t\t</Tooltip>\n\t</Padding>\n);\n\nexport const StatusIcon = ({ folder }: { folder: Folder }): React.JSX.Element => {\n\tif (folder.acl?.grant) {\n\t\tconst tooltipText = t('tooltip.folder_sharing_status', {\n\t\t\tcount: folder.acl.grant.length,\n\t\t\tdefaultValue_one: 'Shared with {{count}} person',\n\t\t\tdefaultValue: 'Shared with {{count}} people'\n\t\t});\n\t\treturn RowWithIcon('Shared', 'shared', tooltipText);\n\t}\n\tif (folder.isLink) {\n\t\tconst tooltipText = t('tooltip.folder_linked_status', 'Linked to me');\n\t\treturn RowWithIcon('Linked', 'linked', tooltipText);\n\t}\n\treturn <></>;\n};\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { useMemo } from 'react';\n\nimport { AccordionItem, Avatar, Padding, Row, Tooltip } from '@zextras/carbonio-design-system';\nimport { useUserAccount } from '@zextras/carbonio-shell-ui';\nimport styled from '@emotion/styled';\n\nimport { StatusIcon } from './status-icon';\nimport { getFolderIconColor, getFolderIconName, getFolderTranslatedName } from './utils';\nimport { FOLDERS } from '../../../constants/folders';\nimport { ROOT_NAME } from '../../../constants/utils';\nimport { Folder } from '../../../types';\n\nconst FittedRow = styled(Row)`\n\tmax-width: calc(100% - (2 * ${({ theme }): string => theme.sizes.padding.small}));\n\theight: 3rem;\n`;\n\nexport const FolderAccordionCustomComponent = ({\n\tfolder\n}: {\n\tfolder: Folder;\n}): React.JSX.Element => {\n\tconst accountName = useUserAccount().name;\n\n\tconst textProps: { size: 'small' } = useMemo(\n\t\t() => ({\n\t\t\tsize: 'small'\n\t\t}),\n\t\t[]\n\t);\n\tconst accordionItem = useMemo(\n\t\t() => ({\n\t\t\t...folder,\n\t\t\tlabel:\n\t\t\t\tfolder.id === FOLDERS.USER_ROOT\n\t\t\t\t\t? accountName\n\t\t\t\t\t: (getFolderTranslatedName({ folderId: folder.id, folderName: folder.name }) ?? ''),\n\t\t\ticon: getFolderIconName(folder) ?? undefined,\n\t\t\ticonColor: getFolderIconColor(folder) ?? '',\n\t\t\ttextProps\n\t\t}),\n\t\t[folder, accountName, textProps]\n\t);\n\n\t// hide folders where a share was provided and subsequently removed\n\tif (folder.isLink && folder.broken) {\n\t\treturn <></>;\n\t}\n\n\tconst showAvatar =\n\t\tfolder.id === FOLDERS.USER_ROOT || (folder.isLink && folder.oname === ROOT_NAME);\n\n\treturn (\n\t\t<FittedRow>\n\t\t\t{showAvatar && (\n\t\t\t\t<Padding left=\"small\">\n\t\t\t\t\t<Avatar label={accordionItem.label} colorLabel={accordionItem.iconColor} size=\"medium\" />\n\t\t\t\t</Padding>\n\t\t\t)}\n\t\t\t<Tooltip label={accordionItem.label} placement=\"right\" maxWidth=\"100%\">\n\t\t\t\t<AccordionItem data-testid={`accordion-folder-item-${folder.id}`} item={accordionItem}>\n\t\t\t\t\t<StatusIcon folder={folder} />\n\t\t\t\t</AccordionItem>\n\t\t\t</Tooltip>\n\t\t</FittedRow>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { sortBy } from 'lodash';\n\nimport { FOLDERS } from '../../../constants/folders';\nimport { isRoot } from '../../../helpers/folders';\nimport { Folders } from '../../../types/folder';\nimport type { Folder, FolderView, TreeNode } from '../../../types/folder';\n\nconst hasId = (f: { id: string }, id: string): boolean => f.id.split(':').includes(id);\n\nconst isTrash = (f: { id: string }): boolean => hasId(f, FOLDERS.TRASH);\n\nexport const isNestedInTrash = (item: { absFolderPath?: string }): boolean =>\n\t!!item?.absFolderPath?.includes(`/Trash/`);\n\nexport const isTrashOrNestedInIt = (item: { id: string; absFolderPath?: string }): boolean =>\n\tisTrash(item) || isNestedInTrash(item);\n\nexport const folderViewFilter =\n\t(v: FolderView) =>\n\t(deep?: boolean) =>\n\t(f: Folder): boolean =>\n\t\tf.view === v || !deep || (typeof f.view === 'undefined' && !isRoot(f.id));\n\nexport const filterNodes = <T>(\n\tchildren: TreeNode<T>[],\n\tf: (deep?: boolean) => (i: TreeNode<T>) => boolean,\n\tsortFunction?: (i: TreeNode<T>) => number | string,\n\tdeep?: boolean\n): TreeNode<T>[] => {\n\tconst childrenSorted = sortFunction ? sortBy(children, sortFunction) : children;\n\treturn childrenSorted\n\t\t.filter(f(deep))\n\t\t.map((i) => ({ ...i, children: filterNodes<TreeNode<T>>(i.children, f, sortFunction, true) }));\n};\n\ntype MapNodesOptions<T, U> = {\n\tmapFunction: (i: TreeNode<T>) => U;\n\tfilterFunction: (deep?: boolean) => (i: TreeNode<T>) => boolean;\n\trecursionKey: keyof U;\n\tsortFunction: (i: TreeNode<T>) => number | string;\n\tdeep: boolean;\n};\nexport const mapNodes = <T, U>(\n\tchildren: TreeNode<T>[],\n\t{ mapFunction, filterFunction, recursionKey, sortFunction, deep }: MapNodesOptions<T, U>\n): U[] =>\n\tsortBy(children, sortFunction).reduce((acc, folder) => {\n\t\tif (filterFunction(deep)(folder)) {\n\t\t\tacc.push({\n\t\t\t\t...mapFunction(folder),\n\t\t\t\t[recursionKey]: mapNodes<TreeNode<T>, U>(folder.children, {\n\t\t\t\t\tmapFunction,\n\t\t\t\t\tfilterFunction,\n\t\t\t\t\trecursionKey,\n\t\t\t\t\tsortFunction,\n\t\t\t\t\tdeep: true\n\t\t\t\t})\n\t\t\t});\n\t\t}\n\t\treturn acc;\n\t}, [] as U[]);\n\n/**\n * Recursive function that returns a flat map of the children folders\n * @param children\n */\nexport const getFlatChildrenFolders = (children: Array<Folder>): Folders => {\n\tlet destination: Folders = {};\n\tchildren.forEach((child) => {\n\t\tdestination[child.id] = child;\n\t\tif (child.children) {\n\t\t\tdestination = { ...destination, ...getFlatChildrenFolders(child.children) };\n\t\t}\n\t});\n\n\treturn destination;\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { useMemo } from 'react';\n\nimport { filter, find, keyBy, some, values } from 'lodash';\n\nimport { useFolderStore } from './store';\nimport { getFlatChildrenFolders } from './utils';\nimport { FOLDERS } from '../../../constants/folders';\nimport { ROOT_NAME } from '../../../constants/utils';\nimport type { Folder, Folders, LinkFolder, SearchFolder, Searches } from '../../../types';\n\n/**\n * Returns the folder with given ID or undefined\n * @params id */\nexport const useFolder = (id: string): Folder | undefined => useFolderStore((s) => s.folders?.[id]);\n\n/**\n * Returns the folder with given ID or undefined\n * @params id */\nexport const getFolder = (id: string): Folder | undefined =>\n\tuseFolderStore.getState()?.folders?.[id];\n\n/**\n * Returns a folders' map including roots and links. Each folder has its own tree structure included inside its children\n */\nexport const useFoldersMap = (): Folders => useFolderStore((s) => s.folders);\n\n/**\n * Returns a folders' map including roots and links. Each folder has its own tree structure included inside its children\n */\nexport const getFoldersMap = (): Folders => useFolderStore.getState().folders;\n\n/**\n * Returns a folders' array including only links. Each folder has its own tree structure included inside its children\n */\nexport const getLinksArray = (view?: string): Array<LinkFolder> =>\n\tfilter(values(useFolderStore.getState().folders), (folder: Folder) => {\n\t\tif (view && folder.view !== view) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn folder.isLink;\n\t}) as Array<LinkFolder>;\n\n/**\n * Returns the root folder id for a given folder\n * @param folder a Folder or LinkFolder\n * @returns the root folder id or null if the folder is not a link or the root folder\n */\nfunction getRootFolderId(folder: Folder | LinkFolder): string {\n\tconst parent = folder?.parent && getFolder(folder.parent);\n\tif ('oname' in folder && folder?.oname === ROOT_NAME) {\n\t\treturn folder.id;\n\t}\n\tif (parent) {\n\t\treturn getRootFolderId(parent);\n\t}\n\treturn folder.id;\n}\n\n/**\n * Returns the root folder of the provided folderId or undefined\n * @params id\n * @returns the root folder or undefined\n * */\nexport const useRoot = (id: string): Folder | undefined =>\n\tuseFolderStore((s) => {\n\t\tconst folder = s.folders?.[id];\n\t\tif (folder) {\n\t\t\tconst rootFolderId = getRootFolderId(folder);\n\t\t\treturn s.folders?.[rootFolderId];\n\t\t}\n\t\treturn undefined;\n\t});\n\n/**\n * Returns the root folder of the provided folderId or undefined\n * @params id\n * @returns the root folder or undefined\n * */\nexport const getRoot = (id: string): Folder | undefined => {\n\tconst folder = useFolderStore.getState().folders?.[id];\n\tif (folder) {\n\t\tconst rootFolderId = getRootFolderId(folder);\n\t\treturn useFolderStore.getState().folders?.[rootFolderId];\n\t}\n\treturn undefined;\n};\n\n/**\n * Returns a roots' array. Each root has its own tree structure included inside its children\n */\nexport const useRootsArray = (): Array<Folder> =>\n\tuseFolderStore((s) => filter(s.folders, (f) => f.id?.split(':')?.includes(FOLDERS.USER_ROOT)));\n\n/**\n * Returns a roots' array. Each root has its own tree structure included inside its children\n */\nexport const getRootsArray = (): Array<Folder> =>\n\tfilter(useFolderStore.getState().folders, (f) => f.id?.split(':')?.includes(FOLDERS.USER_ROOT));\n\n/**\n * Returns a roots' map. Each root has its own tree structure included inside its children\n */\nexport const useRootsMap = (): Record<string, Folder> =>\n\tuseFolderStore((s) =>\n\t\tkeyBy(\n\t\t\tfilter(s.folders, (f) => f.id?.split(':')?.includes(FOLDERS.USER_ROOT)),\n\t\t\t'id'\n\t\t)\n\t);\n\n/**\n * Returns a roots' map. Each root has its own tree structure included inside its children\n */\nexport const getRootsMap = (): Record<string, Folder> =>\n\tkeyBy(\n\t\tfilter(useFolderStore.getState().folders, (f) => f.id?.split(':')?.includes(FOLDERS.USER_ROOT)),\n\t\t'id'\n\t);\n\n// ROOTS BY VIEW\n/**\n * Returns a root with given user ID.\n * @params userId\n */\nexport const useRootByUser = (\n\tuserId: string\n): Folder | SearchFolder | Record<string, never> | undefined =>\n\tuseFolderStore((s) => find(s.folders, (f) => f.name === userId));\n\n/**\n * Returns a root with given user ID.\n * @params userId\n */\nexport const getRootByUser = (\n\tuserId: string\n): Folder | SearchFolder | Record<string, never> | undefined => {\n\tconst { folders } = useFolderStore.getState();\n\treturn find(folders, (f) => f.name === userId);\n};\n\n/**\n * Returns the root account id for a given folder\n * @param folder a Folder or LinkFolder\n * @returns the root account id or null if the folder is not a link or the root folder\n */\nexport function getRootAccountId(id: string): string | undefined {\n\tconst roots = getRootsArray();\n\tconst root = find(roots, (r) => some(r.id?.split(':'), (v) => id?.split(':')?.includes(v)));\n\n\treturn root?.id;\n}\n\n/**\n * Return a flat array of folder that are children of the given root\n * @param rootId\n */\nexport const useFoldersMapByRoot = (rootId: string): Folders => {\n\tconst root = useRoot(rootId);\n\n\treturn useMemo(() => getFlatChildrenFolders(root?.children ?? []), [root?.children]);\n};\n\n/**\n * Return a flat array of folder that are children of the given root\n * @param rootId\n */\nexport const getFoldersArrayByRoot = (rootId: string): Array<Folder> => {\n\tconst root = getRoot(rootId);\n\tif (!root) {\n\t\treturn [];\n\t}\n\n\treturn Object.values(getFlatChildrenFolders(root.children));\n};\n\n// SEARCHES\nexport const useSearchFolder = (id: string): SearchFolder | undefined =>\n\tuseFolderStore((s) => s.searches?.[id]);\nexport const getSearchFolder = (id: string): SearchFolder | undefined =>\n\tuseFolderStore.getState().searches[id];\nexport const useSearchFolders = (): Searches => useFolderStore((s) => s.searches);\nexport const getSearchFolders = (): Searches => useFolderStore.getState().searches;\n\n// useful hooks to update the value of a folder. Created because we don't receive acl data from notify when we modify folder grants.\n\n/**\n * Returns a callback function to update a specific folder.\n *\n * @returns callback function to update a specific folder\n */\nexport const useUpdateFolder = (): ((id: string, opt: Partial<Folder>) => void) =>\n\tuseFolderStore((s) => s.updateFolder);\n\n/**\n * Returns a callback function to update a specific folder.\n *\n * @returns callback function to update a specific folder\n */\nexport const getUpdateFolder = (): ((id: string, opt: Partial<Folder>) => void) =>\n\tuseFolderStore.getState().updateFolder;\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { useMemo } from 'react';\n\nimport { sortBy } from 'lodash';\n\nimport { FOLDERS } from '../../../constants/folders';\nimport { getFolderIdParts } from '../../../helpers/folders';\nimport { getRootsArray, useRootsArray } from '../../../store/zustand/folder/hooks';\nimport { Folder } from '../../../types';\n\n/**\n * calculate the sorting criteria for a given folder\n * system folders are placed before user folders\n * the trash folder is always the last one\n * @param folder\n * @returns the sorting criteria\n */\nexport const getSortCriteria = (folder: Folder): string => {\n\tconst { id } = getFolderIdParts(folder.id);\n\tif (id === FOLDERS.TRASH) {\n\t\treturn FOLDERS.LAST_SYSTEM_FOLDER_POSITION;\n\t}\n\treturn parseInt(id ?? '', 10) < 17 ? ` ${id}` : folder.name.toLowerCase();\n};\n\n/**\n * recursively sort the children of a folder according to a given sort function\n * @param children\n * @param sortFunction\n * @returns the sorted children\n */\nexport const sortFolders = ({\n\tchildren,\n\tsortFunction\n}: {\n\tchildren: Folder[];\n\tsortFunction: (folder: Folder) => number | string;\n}): Folder[] => {\n\tconst childrenSorted = sortBy(children, sortFunction);\n\treturn childrenSorted.map((folder) => ({\n\t\t...folder,\n\t\tchildren: sortFolders({ children: folder.children, sortFunction })\n\t}));\n};\n\n/**\n * sorts the children of the useRootsArray hook according to the specified sort function\n * @returns the sorted children\n */\nexport const useFolders = (): Array<Folder> => {\n\tconst roots = useRootsArray();\n\treturn useMemo(() => sortFolders({ children: roots, sortFunction: getSortCriteria }), [roots]);\n};\n\n/**\n * sorts the children of the getRootsArray hook according to the specified sort function\n * @returns the sorted children\n */\nexport const getFolders = (): Array<Folder> => {\n\tconst roots = getRootsArray();\n\treturn sortFolders({ children: roots, sortFunction: getSortCriteria });\n};\n","/* eslint-disable @typescript-eslint/no-use-before-define */\n/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { ChangeEvent, ReactElement, useMemo, useState } from 'react';\n\nimport { Button, Container, Input, Padding, ThemeProvider } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\n\nimport { FlatFolders } from './flat-folders';\nimport { FolderAccordionCustomComponent } from './folder-accordions-custom-component';\nimport { FoldersAccordion } from './folders-accordion';\nimport { useFolders } from './hooks';\nimport { FOLDERS } from '../../../constants/folders';\nimport { getFolder } from '../../../store/zustand/folder/hooks';\nimport { Folder } from '../../../types';\nimport { themeMuiExtension } from '../../../theme/theme-mui';\n\nexport type FolderSelectorProps = {\n\tinputLabel?: string;\n\tonNewFolderClick?: () => void;\n\tselectedFolderId?: string;\n\tonFolderSelected: (arg: Folder) => void;\n\tshowSharedAccounts: boolean;\n\tallowRootSelection: boolean;\n\tfilterChildren?: (folder: Folder) => boolean;\n};\n\nexport const FolderSelector = ({\n\tinputLabel,\n\tonNewFolderClick,\n\tselectedFolderId,\n\tonFolderSelected,\n\tallowRootSelection,\n\tshowSharedAccounts,\n\tfilterChildren\n}: FolderSelectorProps): ReactElement => {\n\tconst [inputValue, setInputValue] = useState('');\n\tconst selectedFolder = selectedFolderId && getFolder(selectedFolderId);\n\tconst folders = useFolders();\n\tconst rootFolders = useMemo<Array<Folder>>(\n\t\t() => (showSharedAccounts ? folders : folders.filter((root) => root.id === FOLDERS.USER_ROOT)),\n\t\t[folders, showSharedAccounts]\n\t);\n\tconst disabledFolderIdsSelection = allowRootSelection\n\t\t? []\n\t\t: rootFolders.map((folder) => folder.id);\n\n\tconst [t] = useTranslation();\n\n\tconst inputName = selectedFolder ? selectedFolder.name : '';\n\treturn (\n\t\t<>\n\t\t\t<Input\n\t\t\t\tdata-testid={'folder-name-filter'}\n\t\t\t\tinputName={inputName}\n\t\t\t\tlabel={inputLabel ?? t('label.filter_folders', 'Filter folders')}\n\t\t\t\tbackgroundColor=\"gray5\"\n\t\t\t\tvalue={inputValue}\n\t\t\t\tonChange={(e: ChangeEvent<HTMLInputElement>): void => setInputValue(e.target.value)}\n\t\t\t/>\n\t\t\t<Container\n\t\t\t\tstyle={{ overflowY: 'auto', display: 'block' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\twidth=\"fill\"\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\tminHeight=\"30vh\"\n\t\t\t\tmaxHeight=\"60vh\"\n\t\t\t>\n\t\t\t\t{inputValue.length > 0 ? (\n\t\t\t\t\t<FlatFolders\n\t\t\t\t\t\trootFolders={rootFolders}\n\t\t\t\t\t\tsearchString={inputValue}\n\t\t\t\t\t\tonFolderSelected={onFolderSelected}\n\t\t\t\t\t\tselectedFolderId={selectedFolderId}\n\t\t\t\t\t\tallowRootSelection={allowRootSelection}\n\t\t\t\t\t\tfilterChildren={filterChildren}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<ThemeProvider extension={themeMuiExtension}>\n\t\t\t\t\t\t<Padding vertical=\"medium\" />\n\t\t\t\t\t\t<FoldersAccordion\n\t\t\t\t\t\t\tfolders={rootFolders}\n\t\t\t\t\t\t\tonFolderSelected={onFolderSelected}\n\t\t\t\t\t\t\tselectedFolderId={selectedFolderId}\n\t\t\t\t\t\t\tdisabledFolderIds={disabledFolderIdsSelection}\n\t\t\t\t\t\t\tFolderAccordionCustomComponent={FolderAccordionCustomComponent}\n\t\t\t\t\t\t\tfilterChildren={filterChildren}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ThemeProvider>\n\t\t\t\t)}\n\t\t\t</Container>\n\t\t\t{onNewFolderClick && (\n\t\t\t\t<Container\n\t\t\t\t\tpadding={{ top: 'medium', bottom: 'medium' }}\n\t\t\t\t\tmainAlignment=\"center\"\n\t\t\t\t\tcrossAlignment=\"flex-start\"\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"ghost\"\n\t\t\t\t\t\tlabel={t('label.new_folder', 'New Folder')}\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\tonClick={onNewFolderClick}\n\t\t\t\t\t/>\n\t\t\t\t</Container>\n\t\t\t)}\n\t\t</>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { ReactElement } from 'react';\n\nimport { Container, Icon, Padding, Row, Text, getColor } from '@zextras/carbonio-design-system';\nimport styled from '@emotion/styled';\n\nimport { CustomLabelFactoryProps } from '../../types/select';\n\nexport const Square = styled.div<{ $disabled?: boolean; $color: string | undefined }>`\n\twidth: 1rem;\n\theight: 1rem;\n\tbackground: ${({ $color }): string | undefined => $color};\n\tborder-radius: 0.25rem;\n\topacity: ${({ $disabled }): number => ($disabled ? 0.5 : 1)};\n`;\n\nconst ColorContainer = styled(Container)`\n\tborder-bottom: 0.0625rem solid ${({ theme }): string => theme.palette.gray2.regular};\n\ttransition: background 0.2s ease-out;\n\t&:hover {\n\t\tbackground: ${({ theme, background }): string => getColor(`${background}.hover`, theme)};\n\t}\n`;\n\nconst TextUpperCase = styled(Text)`\n\ttext-transform: capitalize;\n\tcolor: ${({ theme, disabled }): string =>\n\t\tdisabled ? theme.palette.text.disabled : theme.palette.text.regular};\n`;\n\nexport const FolderSelectorLabelFactory = ({\n\tselected,\n\tlabel,\n\topen,\n\tfocus,\n\tdisabled\n}: CustomLabelFactoryProps): ReactElement => (\n\t<ColorContainer\n\t\torientation=\"horizontal\"\n\t\twidth=\"fill\"\n\t\tcrossAlignment=\"center\"\n\t\tmainAlignment=\"space-between\"\n\t\tborderRadius=\"half\"\n\t\tpadding={{\n\t\t\tall: 'small'\n\t\t}}\n\t\tbackground=\"gray5\"\n\t\tstyle={{ cursor: disabled ? 'no-drop' : 'pointer' }}\n\t>\n\t\t<Row width=\"100%\" takeAvailableSpace mainAlignment=\"space-between\">\n\t\t\t<Row\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tcrossAlignment=\"flex-start\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\tpadding={{ left: 'small' }}\n\t\t\t>\n\t\t\t\t<Text\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tcolor={(disabled && 'text.disabled') || ((open || focus) && 'primary') || 'secondary'}\n\t\t\t\t>\n\t\t\t\t\t{label}\n\t\t\t\t</Text>\n\t\t\t\t<Row>\n\t\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t\t<Square $color={selected[0].color} $disabled={disabled} />\n\t\t\t\t\t</Padding>\n\t\t\t\t\t<TextUpperCase disabled={disabled}>{selected[0].label}</TextUpperCase>\n\t\t\t\t</Row>\n\t\t\t</Row>\n\t\t</Row>\n\t\t<Icon\n\t\t\tsize=\"large\"\n\t\t\ticon={open ? 'ChevronUpOutline' : 'ChevronDownOutline'}\n\t\t\tdisabled={disabled}\n\t\t\tcolor={(disabled && 'text.disabled') || ((open || focus) && 'primary') || 'secondary'}\n\t\t\tstyle={{ alignSelf: 'center' }}\n\t\t/>\n\t</ColorContainer>\n);\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { useMemo } from 'react';\n\nimport type { SelectProps, SingleSelectionOnChange } from '@zextras/carbonio-design-system';\nimport { Container, Icon, Padding, Row, Select, Text } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\nimport styled from '@emotion/styled';\n\nimport { ZIMBRA_STANDARD_COLORS } from '../../constants/utils';\nimport { CustomLabelFactoryProps } from '../../types/select';\n\nconst Square = styled.div<{ $color: string }>`\n\twidth: 1.125rem;\n\theight: 1.125rem;\n\tposition: relative;\n\ttop: -0.1875rem;\n\tborder: 0.0625rem solid ${({ theme }): string => theme.palette.gray2.regular};\n\tbackground: ${({ $color }): string | undefined => $color};\n\tborder-radius: 0.25rem;\n`;\n\nexport const ColorContainer = styled(Container)`\n\tborder-bottom: 0.0625rem solid ${({ theme }): string => theme.palette.gray2.regular};\n\tcursor: 'pointer';\n`;\n\nexport const TextUpperCase = styled(Text)`\n\ttext-transform: capitalize;\n`;\n\nconst LabelFactory = ({\n\tselected,\n\tlabel,\n\topen,\n\tfocus\n}: CustomLabelFactoryProps): React.JSX.Element => (\n\t<ColorContainer\n\t\torientation=\"horizontal\"\n\t\twidth=\"fill\"\n\t\tcrossAlignment=\"center\"\n\t\tmainAlignment=\"space-between\"\n\t\tborderRadius=\"half\"\n\t\tbackground=\"gray5\"\n\t\tpadding={{\n\t\t\tall: 'small'\n\t\t}}\n\t>\n\t\t<Row width=\"100%\" takeAvailableSpace mainAlignment=\"space-between\">\n\t\t\t<Row\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tcrossAlignment=\"flex-start\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\tpadding={{ left: 'small' }}\n\t\t\t>\n\t\t\t\t<Text size=\"small\" color={open || focus ? 'primary' : 'secondary'}>\n\t\t\t\t\t{label}\n\t\t\t\t</Text>\n\t\t\t\t<TextUpperCase>{selected[0].label}</TextUpperCase>\n\t\t\t</Row>\n\t\t\t<Padding right=\"small\">\n\t\t\t\t<Square $color={ZIMBRA_STANDARD_COLORS[parseInt(selected[0].value, 10)].hex} />\n\t\t\t</Padding>\n\t\t</Row>\n\t\t<Icon\n\t\t\tsize=\"large\"\n\t\t\ticon={open ? 'ChevronUpOutline' : 'ChevronDownOutline'}\n\t\t\tcolor={open || focus ? 'primary' : 'secondary'}\n\t\t\tstyle={{ alignSelf: 'center' }}\n\t\t/>\n\t</ColorContainer>\n);\n\nexport type ColorSelectProps = {\n\tonChange: SingleSelectionOnChange;\n\tdefaultColor: number;\n\tlabel: string;\n};\n\nexport const ColorSelect = ({\n\tonChange,\n\tdefaultColor = 0,\n\tlabel\n}: ColorSelectProps): React.JSX.Element => {\n\tconst [t] = useTranslation();\n\tconst colors = useMemo<SelectProps['items']>(\n\t\t() =>\n\t\t\tZIMBRA_STANDARD_COLORS.map((el, index) => {\n\t\t\t\tconst colorLabel = t(`colors.${el.zLabel}`, el.zLabel);\n\t\t\t\treturn {\n\t\t\t\t\tlabel: colorLabel,\n\t\t\t\t\tvalue: index.toString(),\n\t\t\t\t\tcustomComponent: (\n\t\t\t\t\t\t<Container\n\t\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\t\tmainAlignment=\"space-between\"\n\t\t\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\t\t\theight=\"fit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Padding left=\"small\">\n\t\t\t\t\t\t\t\t<TextUpperCase>{colorLabel}</TextUpperCase>\n\t\t\t\t\t\t\t</Padding>\n\t\t\t\t\t\t\t<Square $color={el.hex} />\n\t\t\t\t\t\t</Container>\n\t\t\t\t\t)\n\t\t\t\t};\n\t\t\t}),\n\t\t[t]\n\t);\n\tconst defaultSelection = useMemo(() => colors[defaultColor], [colors, defaultColor]);\n\n\treturn (\n\t\t<Select\n\t\t\tlabel={label}\n\t\t\tonChange={onChange}\n\t\t\titems={colors}\n\t\t\tdefaultSelection={defaultSelection}\n\t\t\tLabelFactory={LabelFactory}\n\t\t\tdata-testid=\"color-select\"\n\t\t/>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { FC, ReactElement, useCallback, useMemo } from 'react';\n\nimport { Padding, Row, Select, SelectItem } from '@zextras/carbonio-design-system';\nimport { find, map } from 'lodash';\n\nimport { TextUpperCase } from './color-select';\nimport { FolderSelectorLabelFactory, Square } from './select-label-factory';\nimport { FOLDERS } from '../../constants/folders';\nimport { useRoot } from '../../store/zustand/folder/hooks';\nimport type { FolderSelectorItem, OnChangeSelect } from '../../types/select';\n\ntype FolderSelectorProps = {\n\tdefaultFolderId: string;\n\tonChange: OnChangeSelect;\n\tlabel?: string;\n\tfolderItems: FolderSelectorItem[];\n\tdisabled?: boolean;\n};\n\nconst FolderNameRender: FC<{ folder: FolderSelectorItem }> = ({ folder }) => {\n\tconst root = useRoot(folder.value ?? '');\n\treturn (\n\t\t<Row wrap={'nowrap'}>\n\t\t\t<Padding right=\"small\">\n\t\t\t\t<Square $color={folder.color} />\n\t\t\t</Padding>\n\t\t\t<TextUpperCase>{folder.label}</TextUpperCase>\n\t\t\t<Row takeAvailableSpace>\n\t\t\t\t{root && root.id !== FOLDERS.USER_ROOT && (\n\t\t\t\t\t<Padding left=\"small\" style={{ overflow: 'hidden' }}>\n\t\t\t\t\t\t<TextUpperCase color={'gray1'}>{`(${root.name})`}</TextUpperCase>\n\t\t\t\t\t</Padding>\n\t\t\t\t)}\n\t\t\t</Row>\n\t\t</Row>\n\t);\n};\n\nexport const FoldersSelector = ({\n\tdefaultFolderId,\n\tonChange,\n\tlabel,\n\tfolderItems,\n\tdisabled\n}: FolderSelectorProps): ReactElement | null => {\n\tconst items = useMemo(\n\t\t() =>\n\t\t\tmap(folderItems, (item) => ({\n\t\t\t\tlabel: item.label,\n\t\t\t\tvalue: item.value,\n\t\t\t\tcolor: item.color,\n\t\t\t\tcustomComponent: <FolderNameRender folder={item}></FolderNameRender>\n\t\t\t})),\n\t\t[folderItems]\n\t);\n\n\tconst defaultFolderSelection = useMemo(() => {\n\t\tconst defaultFold = find(items, ['value', defaultFolderId]);\n\t\tconst defaultFolder = {\n\t\t\tvalue: defaultFold?.value ?? items?.[0]?.value,\n\t\t\tlabel: defaultFold?.label ?? items?.[0]?.label,\n\t\t\tcolor: defaultFold?.color ?? items?.[0]?.color\n\t\t};\n\t\treturn find(items, ['value', defaultFolderId]) ?? defaultFolder;\n\t}, [items, defaultFolderId]);\n\n\tconst onSelectedFolderChange = useCallback(\n\t\t(id: string | null | Array<SelectItem>) => onChange(id),\n\t\t[onChange]\n\t);\n\n\treturn items && defaultFolderSelection ? (\n\t\t<Select\n\t\t\tlabel={label}\n\t\t\tonChange={onSelectedFolderChange}\n\t\t\titems={items}\n\t\t\tdefaultSelection={defaultFolderSelection}\n\t\t\tdisablePortal\n\t\t\tdisabled={disabled}\n\t\t\tLabelFactory={FolderSelectorLabelFactory}\n\t\t/>\n\t) : null;\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React from 'react';\n\nimport styled from '@emotion/styled';\nimport { AnyColor, getColor, ListItem, ListItemProps } from '@zextras/carbonio-design-system';\n\nconst StyledCustomListItem = styled(ListItem)<{\n\t$baseBackgroundColor: AnyColor;\n\t$focusBackgroundColor: AnyColor;\n}>`\n\ttransition: none;\n\t&:focus,\n\t&:active {\n\t\tbackground: ${({ $focusBackgroundColor, theme }): string =>\n\t\t\tgetColor($focusBackgroundColor, theme)};\n\t}\n\n\t&:hover {\n\t\tbackground: ${({ $baseBackgroundColor, theme }): string =>\n\t\t\tgetColor($baseBackgroundColor, theme)};\n\t\t&:focus,\n\t\t&:active {\n\t\t\tbackground: ${({ $focusBackgroundColor, theme }): string =>\n\t\t\t\tgetColor($focusBackgroundColor, theme)};\n\t\t}\n\t}\n`;\n\nexport const CustomListItem = React.forwardRef<HTMLDivElement, ListItemProps>(\n\tfunction CustomListItemFn(\n\t\t{\n\t\t\tbackground = 'gray6',\n\t\t\tactive,\n\t\t\tactiveBackground = 'highlight',\n\t\t\tselected,\n\t\t\tselectedBackground = 'gray5',\n\t\t\t...rest\n\t\t},\n\t\tref\n\t) {\n\t\treturn (\n\t\t\t<StyledCustomListItem\n\t\t\t\tref={ref}\n\t\t\t\t$baseBackgroundColor={\n\t\t\t\t\t(active && activeBackground) || (selected && selectedBackground) || background\n\t\t\t\t}\n\t\t\t\t$focusBackgroundColor={`${(active && activeBackground) || 'gray6'}.focus`}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t);\n\t}\n);\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { List } from '@zextras/carbonio-design-system';\nimport styled from '@emotion/styled';\n\nexport const CustomList = styled(List)`\n\tpadding-bottom: 0.25rem;\n\tmin-height: 0;\n`;\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { legacySoapFetch, SoapBody } from '@zextras/carbonio-ui-soap-lib';\n\nimport { Tag } from '../types/tags';\n\nexport type CreateTagRequest = SoapBody<{\n\ttag: Omit<Tag, 'id'>;\n}>;\n\nexport type CreateTagResponse = SoapBody<{\n\ttag: [Tag];\n}>;\n\nexport type TagActionRequest = SoapBody<{\n\taction: {\n\t\top: 'rename' | 'color' | 'delete' | 'update';\n\t\tid: string;\n\t\tname?: string;\n\t\tcolor?: number;\n\t\trgb?: string;\n\t};\n}>;\n\nexport type TagActionResponse = {\n\taction: { op: string; id: string };\n};\n\nexport const createTag = (tag: Omit<Tag, 'id'>): Promise<CreateTagResponse> =>\n\tlegacySoapFetch<CreateTagRequest, CreateTagResponse>('CreateTag', {\n\t\t_jsns: 'urn:zimbraMail',\n\t\ttag\n\t});\n\nexport const deleteTag = (id: string): Promise<TagActionResponse> =>\n\tlegacySoapFetch<TagActionRequest, TagActionResponse>('TagAction', {\n\t\t_jsns: 'urn:zimbraMail',\n\t\taction: { op: 'delete', id }\n\t});\n\nexport const renameTag = (id: string, name: string): Promise<TagActionResponse> =>\n\tlegacySoapFetch<TagActionRequest, TagActionResponse>('TagAction', {\n\t\t_jsns: 'urn:zimbraMail',\n\t\taction: { op: 'rename', id, name }\n\t});\n\nexport const changeTagColor = (id: string, color: string | number): Promise<TagActionResponse> =>\n\tlegacySoapFetch<TagActionRequest, TagActionResponse>('TagAction', {\n\t\t_jsns: 'urn:zimbraMail',\n\t\taction: typeof color === 'number' ? { op: 'color', color, id } : { op: 'color', rgb: color, id }\n\t});\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { FC, useCallback, useMemo } from 'react';\n\nimport { Container, Text, useSnackbar } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\n\nimport { deleteTag } from '../../soap/tags';\nimport type { DeleteTagModalPropsType } from '../../types/sidebar';\nimport { ModalFooter } from '../modals/modal-footer';\nimport { ModalHeader } from '../modals/modal-header';\n\nexport const DeleteTagModal: FC<DeleteTagModalPropsType> = ({ onClose, tag }) => {\n\tconst [t] = useTranslation();\n\tconst createSnackbar = useSnackbar();\n\n\tconst title = useMemo(\n\t\t() =>\n\t\t\tt('label.delete_tag_name', {\n\t\t\t\tname: tag?.name,\n\t\t\t\tdefaultValue: 'Delete \"{{name}}\" tag'\n\t\t\t}),\n\t\t[tag?.name, t]\n\t);\n\n\tconst onConfirm = useCallback(() => {\n\t\tif (tag)\n\t\t\tdeleteTag(tag?.id).then((res: any) => {\n\t\t\t\tif (res.action) {\n\t\t\t\t\tcreateSnackbar({\n\t\t\t\t\t\tkey: `delete-tag`,\n\t\t\t\t\t\treplace: true,\n\t\t\t\t\t\tseverity: 'success',\n\t\t\t\t\t\tlabel: t('messages.snackbar.tag_deleted', {\n\t\t\t\t\t\t\tname: tag?.name,\n\t\t\t\t\t\t\tdefaultValue: '{{name}} Tag deleted successfully'\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tautoHideTimeout: 3000,\n\t\t\t\t\t\thideButton: true\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tonClose();\n\t\t\t});\n\t}, [createSnackbar, onClose, t, tag]);\n\n\treturn (\n\t\t<>\n\t\t\t<ModalHeader onClose={onClose} title={title} />\n\t\t\t<Container padding={{ horizontal: 'large' }}>\n\t\t\t\t<Text>\n\t\t\t\t\t{t('message.delete_tag_message1', {\n\t\t\t\t\t\tname: tag?.name,\n\t\t\t\t\t\tdefaultValue: `Are you sure to delete \"{{name}}\" Tag?`\n\t\t\t\t\t})}\n\t\t\t\t</Text>\n\t\t\t\t<Text overflow=\"break-word\" style={{ textAlign: 'center' }}>\n\t\t\t\t\t{t(\n\t\t\t\t\t\t'message.delete_tag_message2',\n\t\t\t\t\t\t'Once deleted, it will be removed from every item marked with it.'\n\t\t\t\t\t)}\n\t\t\t\t</Text>\n\t\t\t</Container>\n\t\t\t<ModalFooter\n\t\t\t\tonConfirm={onConfirm}\n\t\t\t\tlabel={t('label.delete', 'Delete')}\n\t\t\t\tdisabled={false}\n\t\t\t\tcolor=\"error\"\n\t\t\t/>\n\t\t</>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { legacySoapFetch } from '@zextras/carbonio-ui-soap-lib';\nimport { isNil, omitBy } from 'lodash';\n\nimport { FolderView } from '../types/folder';\n\nexport const getFolderRequest = async (\n\t{ id, view }: { id?: string; view?: FolderView },\n\taccount?: string\n): Promise<any> => {\n\tconst body = omitBy(\n\t\t{\n\t\t\t_jsns: 'urn:zimbraMail',\n\t\t\tfolder: id\n\t\t\t\t? {\n\t\t\t\t\t\tl: id\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\t\tview,\n\t\t\ttr: 1\n\t\t},\n\t\tisNil\n\t);\n\treturn legacySoapFetch('GetFolder', body, account);\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { ErrorSoapBodyResponse, legacySoapFetch } from '@zextras/carbonio-ui-soap-lib';\nimport { isEmpty } from 'lodash';\n\nimport { ResFolder } from '../utils';\n\nexport type GetShareInfoRequest = {\n\t_jsns: string;\n\tincludeSelf: number;\n};\n\nexport type GetShareInfoResponse = {\n\t_jsns: string;\n\tshare: Array<ResFolder>;\n};\n\nexport const getShareInfoRequest = async (): Promise<{\n\tisFulfilled: boolean;\n\tfolders: Array<ResFolder>;\n}> => {\n\tconst result = await legacySoapFetch<\n\t\tGetShareInfoRequest,\n\t\tGetShareInfoResponse | ErrorSoapBodyResponse\n\t>('GetShareInfo', {\n\t\t_jsns: 'urn:zimbraAccount',\n\t\tincludeSelf: 0\n\t});\n\n\tif ('Fault' in result) {\n\t\treturn Promise.reject(result.Fault);\n\t}\n\n\treturn Promise.resolve({ isFulfilled: !isEmpty(result), folders: result?.share ?? [] });\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { useCallback, useEffect, useRef } from 'react';\n\nimport { useModal } from '@zextras/carbonio-design-system';\nimport { filter, map, reject } from 'lodash';\n\nimport { FolderInitializationErrorModal } from '../components/modals/folder-initialization-error-modal';\nimport { getFolderRequest } from '../soap/get-folder';\nimport { getShareInfoRequest } from '../soap/get-share-info';\nimport { FolderView } from '../types';\nimport { folderWorker } from '../worker';\n\nconst getFoldersByAccounts = async (sharedAccounts: unknown[], view: FolderView): Promise<any> =>\n\tPromise.all(\n\t\tmap(sharedAccounts, async ({ ownerEmail }: { ownerEmail: string }) => {\n\t\t\tconst response = await getFolderRequest({ view }, ownerEmail);\n\t\t\tif (response?.folder?.length) {\n\t\t\t\treturn {\n\t\t\t\t\t...response.folder[0],\n\t\t\t\t\toname: response.folder[0].name,\n\t\t\t\t\towner: ownerEmail,\n\t\t\t\t\tname: ownerEmail\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn response;\n\t\t})\n\t);\n\nexport const useInitializeFolders = (view: FolderView): void => {\n\tconst isLoading = useRef(false);\n\tconst { createModal, closeModal } = useModal();\n\n\tconst fetchFolders = useCallback(async (): Promise<void> => {\n\t\tPromise.all([getFolderRequest({ view }), getShareInfoRequest()])\n\t\t\t.then(async ([getFolderResponse, getShareInfoResponse]): Promise<void> => {\n\t\t\t\tisLoading.current = true;\n\t\t\t\tif (getShareInfoResponse.folders) {\n\t\t\t\t\tconst sharedAccounts = filter(getShareInfoResponse.folders, ['folderId', 1]);\n\t\t\t\t\tconst filteredLinks = reject(getFolderResponse.folder[0].link, ['rid', 1]);\n\n\t\t\t\t\tconst folders = sharedAccounts.length\n\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t...getFolderResponse.folder[0],\n\t\t\t\t\t\t\t\t\tlink: filteredLinks\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t...(await getFoldersByAccounts(sharedAccounts, view))\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t...getFolderResponse.folder[0],\n\t\t\t\t\t\t\t\t\tlink: filteredLinks\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t];\n\n\t\t\t\t\tfolderWorker.postMessage({\n\t\t\t\t\t\top: 'refresh',\n\t\t\t\t\t\tcurrentView: view,\n\t\t\t\t\t\tfolder: folders ?? []\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tfolderWorker.postMessage({\n\t\t\t\t\t\top: 'refresh',\n\t\t\t\t\t\tcurrentView: view,\n\t\t\t\t\t\tfolder: getFolderResponse.folder ?? []\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\tconst id = 'error-initialize-modal';\n\t\t\t\tcreateModal(\n\t\t\t\t\t{\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tchildren: <FolderInitializationErrorModal onClose={(): void => closeModal(id)} />\n\t\t\t\t\t},\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tisLoading.current = false;\n\t\t\t});\n\t}, [closeModal, createModal, view]);\n\n\tuseEffect(() => {\n\t\tif (!isLoading.current && view) {\n\t\t\tfetchFolders();\n\t\t}\n\t}, [fetchFolders, view]);\n};\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { ErrorSoapBodyResponse, legacySoapFetch } from '@zextras/carbonio-ui-soap-lib';\n\nimport { JSNS } from '../constants/utils';\n\n/**\n * TODO remove this file and use an export from @zextras/carbonio-ui-soap-lib\n * @see https://zextras.atlassian.net/browse/CO-2160\n */\n\ntype NoOpRequest = {\n\t_jsns: JSNS.MAIL;\n};\n\ntype NoOpResponse = { _jsns: JSNS.MAIL } | ErrorSoapBodyResponse;\n\n/**\n * @deprecated use the export from @zextras/carbonio-ui-soap-lib\n */\nexport const NoOp = async (): Promise<void> => {\n\tconst request = {\n\t\t_jsns: JSNS.MAIL\n\t} as const;\n\tconst response = await legacySoapFetch<NoOpRequest, NoOpResponse>('NoOp', request);\n\tif ('Fault' in response) {\n\t\tthrow new Error(response.Fault.Reason.Text);\n\t}\n};\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useCallback, useEffect } from 'react';\n\nimport { NoOp } from '../soap/no-op';\n\nexport const useUpdateView = (): void => {\n\tconst handler = useCallback((): void => {\n\t\tNoOp();\n\t}, []);\n\n\tuseEffect((): (() => void) => {\n\t\twindow.addEventListener('updateView', handler);\n\t\treturn function cleanup() {\n\t\t\twindow.removeEventListener('updateView', handler);\n\t\t};\n\t}, [handler]);\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useEffect, useState } from 'react';\n\nimport { useInfoRefresh } from '@zextras/carbonio-ui-soap-lib';\nimport { isEmpty } from 'lodash';\n\nimport { tagsWorker } from '../worker';\n\nexport const useInitializeTags = (): void => {\n\tconst [initialized, setInitialized] = useState(false);\n\tconst refresh = useInfoRefresh();\n\tuseEffect(() => {\n\t\tif (!isEmpty(refresh) && !initialized) {\n\t\t\tsetInitialized(true);\n\t\t\ttagsWorker.postMessage({\n\t\t\t\top: 'refresh',\n\t\t\t\ttags: refresh.tags\n\t\t\t});\n\t\t}\n\t}, [initialized, refresh]);\n};\n","import { FolderActionsType } from '../constants/folders';\nimport { Folder } from '../types/folder';\n\n/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nexport const isValidFolderName = (folderName: string): boolean => {\n\t// Check if the folder name is empty\n\tif (!folderName.trim()) {\n\t\treturn false;\n\t}\n\n\t// Regular expression pattern for invalid characters\n\tconst invalidChars = /[\"/:]/;\n\n\t// Check if the folder name contains any invalid characters\n\tif (invalidChars.test(folderName)) {\n\t\treturn false;\n\t}\n\n\t// Check if the folder name is too long (limit it to 128 characters)\n\tif (folderName.length > 128) {\n\t\treturn false;\n\t}\n\n\t// If all checks pass, the folder name is considered valid\n\treturn true;\n};\n\nexport const allowedActionOnSharedAccount = (folder: Folder, action: string): boolean => {\n\tconst permission = folder.perm;\n\tswitch (action) {\n\t\tcase FolderActionsType.NEW:\n\t\t\tif (permission)\n\t\t\t\tif (permission.includes('rwidx')) {\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\treturn true;\n\t\tcase FolderActionsType.SHARE:\n\t\t\tif (permission)\n\t\t\t\tif (permission.includes('rwidxa')) {\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn true;\n\t}\n};\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nconst legacyFallback = (text: string): Promise<void> => {\n\tconst textArea = window.parent.document.createElement('textarea');\n\twindow.parent.document.body.appendChild(textArea);\n\ttextArea.value = text;\n\ttextArea.select();\n\tconst success = window.parent.document.execCommand('copy');\n\twindow.parent.document.body.removeChild(textArea);\n\treturn new Promise<void>((resolve, reject) => {\n\t\tsuccess ? resolve() : reject();\n\t});\n};\n\nexport const copyToClipboard = (text: string): Promise<void> => {\n\tif (!window.parent.navigator.clipboard) {\n\t\treturn legacyFallback(text);\n\t}\n\n\treturn window.parent.navigator.clipboard.writeText(text);\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { getUserSettings } from '@zextras/carbonio-shell-ui';\nimport type { AccountSettingsPrefs } from '@zextras/carbonio-ui-soap-lib';\n\nexport const getPrefs = (): AccountSettingsPrefs => {\n\tconst { prefs } = getUserSettings();\n\treturn prefs;\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useUserSettings } from '@zextras/carbonio-shell-ui';\nimport type { AccountSettingsPrefs } from '@zextras/carbonio-ui-soap-lib';\n\nexport const usePrefs = (): AccountSettingsPrefs => {\n\tconst { prefs } = useUserSettings();\n\treturn prefs;\n};\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport type { SoapFault } from '@zextras/carbonio-ui-soap-lib';\nimport { TFunction } from 'i18next';\n\nexport abstract class SoapApiError extends Error {\n\tconstructor(protected fault: SoapFault) {\n\t\tsuper(fault.Reason.Text);\n\t}\n\n\tpublic abstract getLocalizedMessage(t: TFunction): string;\n}\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { TFunction } from 'i18next';\n\nimport { SoapApiError } from '../soap/errors/soap-api-error';\n\nexport function getErrorMessage(error: Error, t: TFunction): string {\n\tif (error instanceof SoapApiError) {\n\t\treturn error.getLocalizedMessage(t);\n\t}\n\n\treturn t('label.error_try_again', 'Something went wrong, please try again');\n}\n","/* eslint-disable @typescript-eslint/no-use-before-define */\n/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nexport function parseEmail(input: string): string | undefined {\n\tconst extracted = extractEmail(input);\n\treturn isValidEmail(extracted) ? extracted : undefined;\n}\n\nexport function isValidEmail(email: string | undefined): boolean {\n\t// eslint-disable-next-line max-len, prettier/prettier, no-useless-escape\n\tconst validEmailRegex = /^(?!\\.)[\\p{L}\\p{N}.+_\\-]+@[\\p{L}\\p{N}.+-]+\\.[\\p{L}\\p{N}]{2,}$/u;\n\treturn validEmailRegex.test(String(email).toLowerCase());\n}\n\nfunction extractEmail(input: string): string {\n\tconst trimmedInput = input.trim();\n\tconst caputured = /.*<(.*)>/.exec(trimmedInput);\n\tif (caputured && caputured.length > 1) {\n\t\treturn caputured[1].trim();\n\t}\n\treturn trimmedInput;\n}\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\ntype ErrorResponse<K> = { error: K };\n\ntype DataResponse<T> = { data: T };\n\nexport async function apiWrapper<T, K>(\n\tpromise: Promise<Response>\n): Promise<DataResponse<T> | ErrorResponse<K>> {\n\treturn Promise.allSettled([promise]).then(async ([result]) => {\n\t\tif (result.status === 'fulfilled') {\n\t\t\tconst responseBody = await result.value.text();\n\t\t\treturn responseBody ? { data: JSON.parse(responseBody) as T } : { data: {} as T };\n\t\t}\n\t\treturn { error: result.reason };\n\t});\n}\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { Account, getUserAccount, getUserSettings } from '@zextras/carbonio-shell-ui';\nimport { TFunction } from 'i18next';\nimport { filter, findIndex, flatten, isArray, map, remove, sortBy } from 'lodash';\n\nimport { getShareInfoRequest } from '../soap/get-share-info';\nimport { IdentityDescriptor } from '../types/identities';\n\ntype AccountItem = {\n\tid: string;\n\taddress: string;\n};\n\ntype AvailableAddress = any;\nexport function getSharedAccounts(): Promise<Array<AccountItem>> {\n\treturn getShareInfoRequest().then((res) => {\n\t\tconst sharedAccounts: Array<AccountItem> = [];\n\t\tif (res?.folders) {\n\t\t\tconst sharedRootFolders = filter(res.folders, ['folderId', 1]);\n\t\t\tsharedRootFolders.forEach((account) => {\n\t\t\t\tif (account.ownerId && account.ownerEmail) {\n\t\t\t\t\tsharedAccounts.push({ id: account.ownerId, address: account.ownerEmail });\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn sharedAccounts;\n\t});\n}\n\nexport function getDefaultAccount(): AccountItem | undefined {\n\tconst account = getUserAccount();\n\tif (!account) {\n\t\treturn undefined;\n\t}\n\treturn { id: account.id, address: account.name };\n}\n\nexport async function getOrderedAccountIds(\n\tpriorityAccountAddress?: string\n): Promise<Array<string>> {\n\tconst sharedAccounts = await getSharedAccounts();\n\tconst defaultAccount = getDefaultAccount();\n\tconst finalList = defaultAccount ? [defaultAccount].concat(...sharedAccounts) : sharedAccounts;\n\tconst sortedList = sortBy(finalList, (item: AccountItem) =>\n\t\titem.address === priorityAccountAddress ? 0 : 1\n\t);\n\treturn map(sortedList, (item: AccountItem) => item.id);\n}\n\n/**\n * The name of the primary identity\n */\nconst PRIMARY_IDENTITY_NAME = 'DEFAULT';\n\nconst NO_ACCOUNT_NAME = 'No account';\n\n/**\n * The type of the identities whose address does not match with any of the available addresses\n */\nconst UNKNOWN_IDENTITY_DEFAULT_TYPE = 'alias';\n\n/**\n * Returns the list of all the available addresses for the account and their type\n */\nconst getAvailableAddresses = (): Array<AvailableAddress> => {\n\tconst account = getUserAccount();\n\tconst settings = getUserSettings();\n\tconst result: Array<AvailableAddress> = [];\n\n\t// Adds the email address of the primary account\n\tresult.push({\n\t\taddress: account?.name ?? NO_ACCOUNT_NAME,\n\t\ttype: 'primary',\n\t\townerAccount: account?.name ?? NO_ACCOUNT_NAME\n\t});\n\n\t// Adds all the aliases\n\tif (settings.attrs.zimbraMailAlias) {\n\t\tif (isArray(settings.attrs.zimbraMailAlias)) {\n\t\t\tresult.push(\n\t\t\t\t...(settings.attrs.zimbraMailAlias as string[]).map<AvailableAddress>((alias: string) => ({\n\t\t\t\t\taddress: alias,\n\t\t\t\t\ttype: 'alias',\n\t\t\t\t\townerAccount: account?.name ?? NO_ACCOUNT_NAME\n\t\t\t\t}))\n\t\t\t);\n\t\t} else {\n\t\t\tresult.push({\n\t\t\t\taddress: settings.attrs.zimbraMailAlias as string,\n\t\t\t\ttype: 'alias',\n\t\t\t\townerAccount: account?.name ?? NO_ACCOUNT_NAME\n\t\t\t});\n\t\t}\n\t}\n\n\t// Adds the email addresses of all the delegation accounts\n\tif (account?.rights?.targets) {\n\t\taccount.rights.targets.forEach((target) => {\n\t\t\tif (target.target && (target.right === 'sendAs' || target.right === 'sendOnBehalfOf')) {\n\t\t\t\ttarget.target.forEach((user) => {\n\t\t\t\t\tif (user.type === 'account' && user.email) {\n\t\t\t\t\t\tuser.email.forEach((email) => {\n\t\t\t\t\t\t\tresult.push({\n\t\t\t\t\t\t\t\taddress: email.addr,\n\t\t\t\t\t\t\t\ttype: 'delegation',\n\t\t\t\t\t\t\t\tright: target.right,\n\t\t\t\t\t\t\t\townerAccount: email.addr\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\treturn result;\n};\n\n/**\n *\n * @param identities\n */\nconst sortIdentities = (\n\tidentities: Account['identities']['identity']\n): Account['identities']['identity'] => {\n\tconst allIdentities = [...identities];\n\tconst defaultIdentity = remove(\n\t\tallIdentities,\n\t\t(identity) => identity.name === PRIMARY_IDENTITY_NAME\n\t);\n\treturn [...defaultIdentity, ...allIdentities];\n};\n\n/**\n * @param email\n * @param rights\n */\nconst generateIdentityId = (email: string, rights: string): string => email + rights;\n\n/**\n * Returns the list of all the identities for the account. For each identity a type\n * is give, by matching the email address with all the available addresses, or by\n * setting a default one if the address does not match any of the available addresses.\n *\n * The function returns also an identity for each account for which the user is a delegate\n * (sendAs or sendOnBehalfOf) if there is no an already existing identity\n */\nexport const getIdentitiesDescriptors = (): Array<IdentityDescriptor> => {\n\tconst account = getUserAccount();\n\tconst identities: Array<IdentityDescriptor> = [];\n\n\t// Get the list of all the available email addresses for the account and their type\n\tconst availableEmailAddresses = getAvailableAddresses();\n\taccount?.identities?.identity &&\n\t\tsortIdentities(account.identities.identity)?.forEach((identity) => {\n\t\t\tconst fromAddress = identity._attrs?.zimbraPrefFromAddress ?? '';\n\t\t\tconst fromDisplay = identity._attrs?.zimbraPrefFromDisplay ?? '';\n\n\t\t\t// The receiving address for the primary identity is the account name\n\t\t\tconst receivingAddress = identity.name === PRIMARY_IDENTITY_NAME ? account.name : fromAddress;\n\n\t\t\t// Find the first match between the identity receiving email address and the available email addresses\n\t\t\tconst matchingReceivingAddress = availableEmailAddresses.find(\n\t\t\t\t(availableAddress) => availableAddress.address === receivingAddress\n\t\t\t);\n\n\t\t\tconst type = matchingReceivingAddress\n\t\t\t\t? matchingReceivingAddress.type\n\t\t\t\t: UNKNOWN_IDENTITY_DEFAULT_TYPE;\n\n\t\t\tconst right =\n\t\t\t\ttype === 'delegation' && matchingReceivingAddress\n\t\t\t\t\t? matchingReceivingAddress.right\n\t\t\t\t\t: undefined;\n\n\t\t\tidentities.push({\n\t\t\t\townerAccount: matchingReceivingAddress?.ownerAccount ?? account.name,\n\t\t\t\treceivingAddress,\n\t\t\t\tid: identity._attrs?.zimbraPrefIdentityId ?? '',\n\t\t\t\tidentityName: identity.name ?? '',\n\t\t\t\tidentityDisplayName: identity._attrs?.zimbraPrefIdentityName ?? '',\n\t\t\t\tfromDisplay,\n\t\t\t\tfromAddress,\n\t\t\t\ttype,\n\t\t\t\tright,\n\t\t\t\tdefaultSignatureId: identity._attrs?.zimbraPrefDefaultSignatureId,\n\t\t\t\tforwardReplySignatureId: identity._attrs?.zimbraPrefForwardReplySignatureId\n\t\t\t});\n\t\t});\n\n\tconst delegationAccounts = filter(\n\t\taccount?.rights?.targets,\n\t\t(rts) => rts.right === 'sendAs' || rts.right === 'sendOnBehalfOf'\n\t);\n\n\tconst delegationIdentities = flatten(\n\t\tmap(delegationAccounts, (ele) =>\n\t\t\tmap(ele?.target, (item: { d: string; type: string; email: Array<{ addr: string }> }) => ({\n\t\t\t\townerAccount: item.email[0].addr ?? account?.name ?? NO_ACCOUNT_NAME,\n\t\t\t\treceivingAddress: item.email[0].addr,\n\t\t\t\tid: generateIdentityId(item.email[0].addr, ele.right),\n\t\t\t\tidentityName: item.d,\n\t\t\t\tidentityDisplayName: item.d,\n\t\t\t\tfromDisplay: item.d,\n\t\t\t\tfromAddress: item.email[0].addr,\n\t\t\t\ttype: 'delegation',\n\t\t\t\tright: ele.right\n\t\t\t}))\n\t\t)\n\t);\n\n\tconst uniqueIdentityList: IdentityDescriptor[] = [...identities];\n\tif (delegationIdentities?.length) {\n\t\tmap(delegationIdentities, (ele: IdentityDescriptor) => {\n\t\t\tconst uniqIdentity = findIndex(identities, { fromAddress: ele.fromAddress });\n\t\t\tif (uniqIdentity < 0) uniqueIdentityList.push(ele);\n\t\t});\n\t\treturn uniqueIdentityList;\n\t}\n\n\treturn identities;\n};\n\nconst getDefaultIdentity = (): IdentityDescriptor =>\n\tgetIdentitiesDescriptors().reduce((result, identity) =>\n\t\tidentity.identityName === PRIMARY_IDENTITY_NAME ? identity : result\n\t);\n\n/**\n *\n * @param identity\n * @param t\n */\nexport const getIdentityDescription = (\n\tidentity: IdentityDescriptor,\n\tt: TFunction\n): string | null => {\n\tif (!identity) {\n\t\treturn null;\n\t}\n\tconst defaultIdentity = getDefaultIdentity();\n\n\treturn identity.right === 'sendOnBehalfOf'\n\t\t? `${t('label.on_behalf_of', 'on behalf of', {\n\t\t\t\taccountName: defaultIdentity.fromDisplay ?? '',\n\t\t\t\tidentity: identity.fromDisplay ?? identity.identityName,\n\t\t\t\totherAccount: identity.fromAddress\n\t\t\t})}`\n\t\t: `${identity.identityName ?? ''} (${identity.fromDisplay ?? ''} <${identity.fromAddress}>)`;\n};\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nexport const SEARCH_QUERY_PREFIXES = {\n\t/*\n\t * Specifies text that the message must contain. For example,\n\t * content:bananas finds all items containing the word \"bananas\".\n\t */\n\tcontent: 'content',\n\n\t/*\n\t * Specifies a sender name or email address that is in the From header.\n\t * This can be text, as in \"John Smith III\", an email address such as\n\t * joe@acme.com, or a domain such as zimbra.com.\n\t */\n\tfrom: 'from',\n\n\t/*\n\t * Same as from: except that it specifies one of the people to whom the\n\t * email was addressed in the To: header.\n\t */\n\tto: 'to',\n\n\t/*\n\t * Same as from: except that it specifies a recipient in the Cc: header\n\t * of the message.\n\t */\n\tcc: 'cc',\n\n\t/*\n\t * Specifies text that must appear in the subject header of the message.\n\t * An example might be subject:new vacation policy.\n\t */\n\tsubject: 'subject',\n\n\t/*\n\t * Specifies a folder. For example, in:sent would show all items in your\n\t * Sent folder.\n\t */\n\tin: 'in',\n\n\t/*\n\t * Specifies an attribute that the message must have. The types of object\n\t * you can specify are \"attachment\", \"phone\", or \"url\". For example,\n\t * has:attachment would find all messages which contain one or more\n\t * attachments of any type.\n\t */\n\thas: 'has',\n\n\t/*\n\t * Specifies an attachment file name. For example, filename:query.txt\n\t * would find messages with a file attachment named \"query.txt\".\n\t */\n\tfilename: 'filename',\n\n\t/*\n\t * Specifies a search within attachments of a specified type. The types\n\t * of attachment you can specify are \"text\", \"word\", \"excel\", and \"pdf\".\n\t * For example, type:word \"hello\" finds messages with attachments that\n\t * are Microsoft Word documents and searches within those attachments for\n\t * the word \"hello\".\n\t */\n\ttype: 'type',\n\n\t/*\n\t * Specifies any item with a certain type of attachment. For example,\n\t * attachment:word would find all messages with a Word file attachment.\n\t */\n\tattachment: 'attachment',\n\n\t/*\n\t * Searches for messages with a certain status. Allowable values are\n\t * \"unread\", \"read\", \"flagged\", \"unflagged\", \"sent\", \"draft\",\n\t * \"received\", \"replied\", \"unreplied\", \"forwarded\", \"unforwarded\",\n\t * \"anywhere\", \"remote\" (in a shared folder), \"local\", \"sent\". For\n\t * example, is:unread will find all unread messages.\n\t */\n\tis: 'is',\n\n\t/*\n\t * Use this keyword to specify a date, using the format that is default\n\t * for your browser's locale (for US English the format is mm/dd/yyyy).\n\t * For example, date:2/1/2010 would find messages dated February 1,\n\t * 2010. The greater than (>) or less than (<) symbols can be used\n\t * instead of after or before. >= and <= are also allowed.\n\t */\n\tdate: 'date',\n\n\t/*\n\t * Specifies mail sent after a certain date. For example, after:2/1/2010\n\t * specify mail sent after February 1, 2010.\n\t */\n\tafter: 'after',\n\n\t/*\n\t * Same as after: except specifies mail sent before the specified date.\n\t */\n\tbefore: 'before',\n\n\t/*\n\t * Specifies messages whose total size, including attachments, is a\n\t * specified number of bytes, kilobytes, or megabytes. For example,\n\t * size:12kb would find messages that are exactly 12K in size. The\n\t * greater than (>) or less than (<) symbols can be used instead of\n\t * bigger or smaller.\n\t */\n\tsize: 'size',\n\n\t/*\n\t * Similar to size: except specifies greater than the specified size.\n\t */\n\tlarger: 'larger',\n\n\t/*\n\t * Similar to size: except specifies smaller than the specified size.\n\t */\n\tsmaller: 'smaller',\n\n\t/*\n\t * Finds email messages that do not have a reply to them yet.\n\t */\n\tsolo: 'solo',\n\n\t/*\n\t * Finds messages which have been tagged with a specified tag. For\n\t * example, tag:amber will find message that have a tag called \"amber\"\n\t * applied.\n\t */\n\ttag: 'tag',\n\n\t/*\n\t * Finds messages, tasks or calendar items based on \"high\" \"low\"\n\t * priority. For example, priority:high will find items with a priority\n\t * setting of high.\n\t */\n\tpriority: 'priority'\n};\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { SEARCH_QUERY_PREFIXES } from '../constants/search';\n\ntype ConvertSearchChipToStringProps = {\n\tvalue?: string | boolean;\n\tlabel?: string | boolean;\n};\n\nconst WHOLE_QUERY_REGEX = new RegExp(\n\t`^(?:(${Object.values(SEARCH_QUERY_PREFIXES).join('|')}):)?(.+)$`,\n\t'im'\n);\n\nfunction getChipString(chip: ConvertSearchChipToStringProps): string {\n\tif (typeof chip.value === 'string' && chip.value !== '') {\n\t\treturn chip.value;\n\t}\n\n\tif (typeof chip.label === 'string' && chip.label !== '') {\n\t\treturn chip.label;\n\t}\n\n\treturn '';\n}\n\nconst QUOTED_TERM_REGEX = /^\"([^\"]+)\"$/im;\n\nconst MULTIWORD_TERM_REGEX = /^(\\S+\\s+\\S+.*)$/im;\n\nexport const convertSearchChipToString = (chip: ConvertSearchChipToStringProps): string => {\n\tconst match = getChipString(chip).match(WHOLE_QUERY_REGEX);\n\n\tif (!match) {\n\t\treturn getChipString(chip);\n\t}\n\n\tconst prefixAndColon = match[1] ? `${match[1]}:` : '';\n\tconst term = match[2].trim();\n\tconst isQuoted = QUOTED_TERM_REGEX.test(term);\n\tconst isMultiword = !isQuoted && MULTIWORD_TERM_REGEX.test(term);\n\n\treturn isMultiword ? `${prefixAndColon}\"${term}\"` : `${prefixAndColon}${term}`;\n};\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useCallback, useMemo } from 'react';\n\nimport { useNavigate } from 'react-router-dom';\n\nexport type HistoryNavigation = {\n\treplaceHistory: (path: string) => void;\n\tpushHistory: (path: string) => void;\n};\n\nexport const useHistoryNavigation = (): HistoryNavigation => {\n\tconst navigate = useNavigate();\n\n\tconst replaceHistory = useCallback(\n\t\t(path: string): void => {\n\t\t\tnavigate(path, { replace: true });\n\t\t},\n\t\t[navigate]\n\t);\n\n\tconst pushHistory = useCallback(\n\t\t(path: string): void => {\n\t\t\tnavigate(path, { replace: false });\n\t\t},\n\t\t[navigate]\n\t);\n\n\treturn useMemo<HistoryNavigation>(\n\t\t() => ({\n\t\t\treplaceHistory,\n\t\t\tpushHistory\n\t\t}),\n\t\t[replaceHistory, pushHistory]\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { ContactType } from './types';\n\nexport const CONTACT_TYPES: ContactType = {\n\tGROUP: 'CONTACT_GROUP',\n\tDISTRIBUTION_LIST: 'DISTRIBUTION_LIST',\n\tCONTACT: 'CONTACT'\n};\nexport const EDIT_ACTION_ID = 'edit-contact-chip-action';\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React from 'react';\n\nimport { ChipInput, ChipItem } from '@zextras/carbonio-design-system';\n\nimport { CONTACT_TYPES } from './constants';\nimport { ContactInputItem, ContactInputProps, UserOrDL } from './types';\nimport { parseEmail } from '../helpers/email-parser';\n\nexport const DefaultContactInput = ({\n\tonChange,\n\tdefaultValue,\n\t// The following props are not used in this component, but are passed to the ChipInput component\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tdragAndDropEnabled: _dragAndDropEnabled,\n\t// The following props are not used in this component, but are passed to the ChipInput component\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\torderedAccountIds: _orderedAccountIds,\n\t// The following props are not used in this component, but are passed to the ChipInput component\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tchipLabelFactory: _labelFactory,\n\t...rest\n}: ContactInputProps): React.JSX.Element => {\n\tconst internalOnChange = (items: ChipItem<UserOrDL>[]): void => {\n\t\tonChange?.(items as Array<ContactInputItem>);\n\t};\n\tconst internalOnAdd = (email: unknown): ContactInputItem => {\n\t\tif (typeof email === 'string') {\n\t\t\tconst validEmail = parseEmail(email);\n\t\t\tconst finalEmail = validEmail ?? email;\n\t\t\treturn {\n\t\t\t\tid: finalEmail,\n\t\t\t\tlabel: finalEmail,\n\t\t\t\tvalue: {\n\t\t\t\t\tid: finalEmail,\n\t\t\t\t\temail,\n\t\t\t\t\ttype: CONTACT_TYPES.CONTACT\n\t\t\t\t},\n\t\t\t\terror: !validEmail\n\t\t\t};\n\t\t}\n\t\tthrow new Error('no value');\n\t};\n\treturn (\n\t\t<ChipInput<UserOrDL>\n\t\t\t{...rest}\n\t\t\tpasteSeparators={[',', ';', '\\n']}\n\t\t\tcreateChipOnPaste\n\t\t\tdefaultValue={defaultValue}\n\t\t\tseparators={[\n\t\t\t\t{ code: 'Enter', ctrlKey: false },\n\t\t\t\t{ code: 'NumpadEnter', ctrlKey: false },\n\t\t\t\t{ key: ',', ctrlKey: false },\n\t\t\t\t{ key: ';', ctrlKey: false }\n\t\t\t]}\n\t\t\tonChange={internalOnChange}\n\t\t\tonAdd={internalOnAdd}\n\t\t></ChipInput>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { FC } from 'react';\n\nimport { useIntegratedComponent } from '@zextras/carbonio-shell-ui';\n\nimport { DefaultContactInput } from './default-contact-input';\nimport { ContactInputProps } from './types';\n\nexport const useContactInput = (): FC<ContactInputProps> => {\n\tconst [ContactInput, integrationAvailable] =\n\t\tuseIntegratedComponent<FC<ContactInputProps>>('contact-input');\n\tif (integrationAvailable) {\n\t\treturn ContactInput;\n\t}\n\treturn DefaultContactInput;\n};\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport type { runSearch } from '@zextras/carbonio-search-ui';\nimport { useIntegratedFunction } from '@zextras/carbonio-shell-ui';\n\nexport const useRunSearchIntegration = (): typeof runSearch | undefined => {\n\tconst [runSearchFn, isAvailable] = useIntegratedFunction<typeof runSearch>('search-run-search');\n\n\treturn isAvailable ? runSearchFn : undefined;\n};\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { TFunction } from 'i18next';\n\nimport { SoapApiError } from './soap-api-error';\n\n/**\n * Implements a generic API error which can be used when no specific error is available\n */\nexport class GenericSoapApiError extends SoapApiError {\n\t/**\n\t * Returns the generic localized message for the error\n\t * @param t - The translation function\n\t * @returns The localized message\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tpublic getLocalizedMessage(t: TFunction): string {\n\t\treturn t('label.error_try_again', 'Something went wrong, please try again');\n\t}\n}\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { create } from 'zustand';\n\nimport { TagState } from '../../../types/tags';\nimport { tagsWorker } from '../../../worker';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useTagStore = create<TagState>()(() => ({\n\ttags: {}\n}));\n\ntagsWorker.onmessage = ({ data }): void => {\n\tuseTagStore.setState(data);\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { orderBy, pick } from 'lodash';\n\nimport { useTagStore } from './store';\nimport { Tag, Tags } from '../../../types/tags';\n\nfunction sortTags(tags: Tags): Array<Tag> {\n\treturn orderBy(Object.values(tags), (tag: Tag) => tag.name.toLowerCase(), 'asc');\n}\n\nexport const useTags = (ids?: Array<string> | string): Tags =>\n\tuseTagStore((state) => (ids ? pick(state.tags, ids) : state.tags));\n\nexport const getTags = (ids?: Array<string> | string): Tags =>\n\tids ? pick(useTagStore.getState().tags, ids) : useTagStore.getState().tags;\n\nexport const useSortedTagsArray = (): Array<Tag> =>\n\tuseTagStore((state): Array<Tag> => sortTags(state.tags));\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nexport const ParticipantRole = {\n\tFROM: 'f',\n\tTO: 't',\n\tCARBON_COPY: 'c',\n\tBLIND_CARBON_COPY: 'b',\n\tREPLY_TO: 'r',\n\tSENDER: 's',\n\tREAD_RECEIPT_NOTIFICATION: 'n',\n\tRESENT_FROM: 'rf'\n} as const;\n\nexport type ParticipantRoleType = (typeof ParticipantRole)[keyof typeof ParticipantRole];\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { handleMessage } from './handle-message';\n\nonmessage = handleMessage;\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport type { SoapNotify } from '@zextras/carbonio-ui-soap-lib';\n\nimport type { Tag, TagMessage, Tags } from '../types/tags';\n\nexport const handleTagRefresh = (tags: Array<Tag>): Tags => {\n\tif (typeof tags !== 'undefined') {\n\t\treturn tags.reduce((acc: Tags, val: Tag): Tags => {\n\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\tacc[val.id] = val;\n\t\t\treturn acc;\n\t\t}, {});\n\t}\n\treturn {};\n};\n\nconst handleTagCreated = (tags: Tags, created?: Array<Tag>): Tags => {\n\tif (!created) return tags;\n\treturn created.reduce((acc: Tags, val: Tag): Tags => {\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tacc[val.id] = val;\n\t\treturn acc;\n\t}, tags);\n};\n\nconst handleTagModified = (tags: Tags, modified?: Array<Partial<Tag>>): Tags => {\n\tif (!modified) return tags;\n\treturn modified.reduce((acc: Tags, val: Partial<Tag>): Tags => {\n\t\tif (val.id) {\n\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\tacc[val.id] = { ...tags[val.id], ...val };\n\t\t}\n\t\treturn acc;\n\t}, tags);\n};\n\nconst handleTagDeleted = (tags: Tags, deleted?: string[]): Tags => {\n\tif (!deleted) return tags;\n\treturn deleted.reduce((acc, val) => {\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tdelete acc[val];\n\t\treturn acc;\n\t}, tags);\n};\n\nexport const handleTagNotify = (notify: SoapNotify, state: Tags): Tags =>\n\thandleTagDeleted(\n\t\thandleTagModified(handleTagCreated(state, notify.created?.tag), notify.modified?.tag),\n\t\tnotify.deleted\n\t);\n\nfunction deletedIdsContainTags({\n\tdeletedIds,\n\ttagIds\n}: {\n\tdeletedIds: Array<string>;\n\ttagIds?: Array<string>;\n}): boolean {\n\treturn deletedIds.some((deletedId) => tagIds?.includes(deletedId));\n}\n\nonmessage = ({ data }: TagMessage): void => {\n\tif (data.op === 'refresh' && data.tags) postMessage({ tags: handleTagRefresh(data.tags.tag) });\n\n\tconst tagIds = data.state && Object.keys(data.state);\n\tif (\n\t\tdata.op === 'notify' &&\n\t\t(data.notify.created?.tag ||\n\t\t\tdata.notify.modified?.tag ||\n\t\t\t(data.notify.deleted && deletedIdsContainTags({ deletedIds: data.notify.deleted, tagIds })))\n\t)\n\t\tpostMessage({ tags: handleTagNotify(data.notify, data.state) });\n};\n"],"names":["StaticBreadcrumbs","crumbs","size","tooltipLabel","crumbsCount","length","tooltip","reduce","result","crumb","label","firstCrumb","restCrumbs","slice","React","createElement","Tooltip","Row","mainAlignment","wrap","width","Container","padding","left","right","Text","color","maxWidth","Breadcrumbs","dropdownProps","disabled","theme","createTheme","palette","currentColor","regular","hover","active","focus","transparent","primary","main","secondary","header","highlight","gray0","gray1","gray2","gray3","gray4","gray5","gray6","warning","error","success","info","text","avatarColors","avatar_1","avatar_2","avatar_3","avatar_4","avatar_5","avatar_6","avatar_7","avatar_8","avatar_9","avatar_10","avatar_11","avatar_12","avatar_13","avatar_14","avatar_15","avatar_16","avatar_17","avatar_18","avatar_19","avatar_20","avatar_21","avatar_22","avatar_23","avatar_24","avatar_25","avatar_26","avatar_27","avatar_28","avatar_29","avatar_30","avatar_31","avatar_32","avatar_33","avatar_34","avatar_35","avatar_36","avatar_37","avatar_38","avatar_39","avatar_40","avatar_41","avatar_42","avatar_43","avatar_44","avatar_45","avatar_46","avatar_47","avatar_48","avatar_49","avatar_50","themeMui","components","MuiSvgIcon","styleOverrides","root","background","fontSize","fontWeight","MuiAccordionSummary","margin","minHeight","justifyContent","content","MuiAccordionDetails","MuiButtonBase","MuiPaper","borderBottomLeftRadius","borderTopLeftRadius","borderBottomRightRadius","borderTopRightRadius","MuiAccordion","boxShadow","top","themeMuiExtension","parentTheme","merge","getLinkIdMapKey","link","rid","zid","IM_LOGS","USER_ROOT","folders","searches","linksIdMap","view","testUtils","getFolders","resetFolders","setFolders","data","setCurrentView","current","getCurrentView","sortFoldersByName","obj","sort","a","b","aLowerName","name","toLowerCase","bLowerName","updateChildren","folder","changes","absFolderPath","children","forEach","child","childFolder","id","paths","split","join","testFolderIsChecked","string","test","omit","_1","_2","search","_3","hasId","f","includes","normalize","p","uuid","l","luuid","checked","rgb","u","i4u","rev","ms","md","n","i4n","s","i4ms","i4next","url","activesyncdisabled","webOfflineSyncDays","perm","recursive","rest","deletable","meta","acl","retentionPolicy","normalizeSearch","query","sortBy","types","normalizeLink","owner","ruuid","oname","reminder","broken","processSearch","soapSearch","parent","isLink","processLink","soapLink","depth","linkIdMapKey","processFolder","push","soapFolder","handleFolderRefresh","soapFolders","currentView","sharedAccounts","map","handleFolderCreated","created","val","undefined","handleLinkCreated","getKeyByValue","searchValue","Object","keys","find","key","folderIsSharedWithMe","folderId","handleFolderModified","modified","mountPointId","parentMountPointId","isSharedWithMe","parentIsSharedWithMe","parentFolderId","assign","oldParentId","oldParent","newParent","filter","handleFolderDeleted","deleted","handleFolderNotify","notify","handleFoldersMessages","op","handleMessage","postMessage","SidebarAccordionMui","accordions","localStorageName","AccordionCustomComponent","setSelectedFolder","buttonFindShares","initialExpanded","openIds","setOpenIds","useLocalStorage","sidebarRef","useRef","onClick","useCallback","accordion","expanded","state","ref","disableGutters","Accordion","slotProps","transition","unmountOnExit","AccordionSummary","expandIcon","style","all","cursor","e","preventDefault","ExpandMoreIcon","sx","backgroundColor","item","AccordionDetails","ModalFooter","crossAlignment","onConfirm","secondaryAction","secondaryLabel","primaryBtnType","secondaryBtnType","secondaryDisabled","secondarybackground","secondaryColor","showDivider","secondaryTooltip","paddingTop","additionalAction","additionalBtnType","additionalColor","additionalLabel","primaryButtonIcon","t","useTranslation","cancelLabel","useMemo","secondaryTypeAndColor","type","labelColor","primaryTypeAndColor","bottom","orientation","height","Divider","Button","Padding","horizontal","vertical","placement","_extends","icon","iconPlacement","ModalHeader","title","onClose","showCloseIcon","takeAvailableSpace","weight","IconButton","FolderInitializationErrorModal","body","onConfirmLabel","window","location","reload","Fragment","FolderActionsType","NEW","MOVE","DELETE","EDIT","EMPTY","REMOVE_FROM_LIST","SHARES_INFO","SHARE","MARK_ALL_READ","FOLDERS","INBOX","TRASH","SPAM","SENT","DRAFTS","CONTACTS","TAGS","CONVERSATIONS","CALENDAR","ROOT","NOTEBOOK","AUTO_CONTACTS","TASKS","BRIEFCASE","LAST_SYSTEM_FOLDER_POSITION","FoldersAccordion","onFolderSelected","FolderAccordionCustomComponent","selectedFolderId","disabledFolderIds","filterChildren","filteredFolders","useState","handleExpandFolderClick","callback","MUIContainer","MUIAccordion","MUIAccordionSummary","MUIAccordionDetails","FOLDER_VIEW","search_folder","tag","conversation","message","contact","document","appointment","virtual_conversation","remote_folder","wiki","task","chat","TagsActionsType","DRAG_DATA_TYPE","MESSAGE","CONVERSATION","FOLDER","CONTACT","ZIMBRA_STANDARD_COLORS","zValue","hex","zLabel","JSNS","ROOT_NAME","folderWorker","Worker","URL","import","tagsWorker","useFolderStore","create","set","updateFolder","opt","produce","onmessage","setState","NO_ACCOUNT_NAME","FOLDERID_REGEX","getFolderIdParts","match","parts","exec","getFolderOtherOwnerAccountName","folderRoots","matchingFolderRoot","c","getFolderOwnerAccountName","primaryAccount","getUserAccount","otherOwnerAccount","isA","folderType","isDefaultAccountRoot","isRoot","isSharedAccountFolder","isSystemFolder","systemFoldersIds","values","isTrashed","folderIdAbsPath","getState","path","startsWith","isTrash","isReadAllowed","isWriteAllowed","isInsertAllowed","isCreateAllowed","isDeleteAllowed","isAdministerAllowed","flattenAndFilterFoldersWithCap","limit","filterFolders","lowerCaseSearch","flattenAndFilter","foldersToProcess","flatMap","isMatch","matched","getFolderIconColor","Number","getFolderDefaultIcon","folderView","getFolderIconName","folderDefaultIcon","getSystemFolderTranslatedName","folderName","getFolderTranslatedName","getFolderAbsPathParts","reg","matches","FlatFolder","iconName","iconColor","part","index","selectionHandler","noop","Icon","FOLDER_ROW_HEIGHT","CustomContainer","_styled","process","env","NODE_ENV","target","$active","FlatRoot","childrenFolders","isOpen","onOpenStatusChange","allowRootSelection","open","setOpen","account","useUserAccount","rootLabel","toggleOpen","stopPropagation","Avatar","customSize","iconSize","paddingSize","Collapse","crossSize","disableTransition","List","ListItem","selected","activeBackground","selectedBackground","visible","FlatFolders","rootFolders","searchString","hasMoreResults","setHasMoreResults","flatFilteredFolders","remaining","rootFolder","currentFolder","hasMoreResultsWarningLabel","textAlign","overflowY","RowWithIcon","tooltipText","StatusIcon","grant","count","defaultValue_one","defaultValue","FittedRow","sizes","small","accountName","textProps","accordionItem","showAvatar","colorLabel","AccordionItem","isNestedInTrash","isTrashOrNestedInIt","folderViewFilter","v","deep","filterNodes","sortFunction","childrenSorted","i","mapNodes","mapFunction","filterFunction","recursionKey","acc","getFlatChildrenFolders","destination","useFolder","getFolder","useFoldersMap","getFoldersMap","getLinksArray","getRootFolderId","useRoot","rootFolderId","getRoot","useRootsArray","getRootsArray","useRootsMap","keyBy","getRootsMap","useRootByUser","userId","getRootByUser","getRootAccountId","roots","r","some","useFoldersMapByRoot","rootId","getFoldersArrayByRoot","useSearchFolder","getSearchFolder","useSearchFolders","getSearchFolders","useUpdateFolder","getUpdateFolder","getSortCriteria","parseInt","sortFolders","useFolders","FolderSelector","inputLabel","onNewFolderClick","showSharedAccounts","inputValue","setInputValue","selectedFolder","disabledFolderIdsSelection","inputName","Input","value","onChange","display","maxHeight","ThemeProvider","extension","Square","$color","$disabled","ColorContainer","getColor","TextUpperCase","FolderSelectorLabelFactory","borderRadius","alignSelf","styles","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","LabelFactory","ColorSelect","defaultColor","colors","el","customComponent","defaultSelection","Select","items","FolderNameRender","overflow","FoldersSelector","defaultFolderId","folderItems","defaultFolderSelection","defaultFold","defaultFolder","onSelectedFolderChange","disablePortal","StyledCustomListItem","$focusBackgroundColor","$baseBackgroundColor","CustomListItem","forwardRef","CustomListItemFn","CustomList","createTag","legacySoapFetch","_jsns","deleteTag","action","renameTag","changeTagColor","DeleteTagModal","createSnackbar","useSnackbar","then","res","replace","severity","autoHideTimeout","hideButton","getFolderRequest","omitBy","tr","isNil","getShareInfoRequest","includeSelf","Promise","reject","Fault","resolve","isFulfilled","isEmpty","share","getFoldersByAccounts","ownerEmail","response","useInitializeFolders","isLoading","createModal","closeModal","useModal","fetchFolders","getFolderResponse","getShareInfoResponse","filteredLinks","catch","finally","useEffect","NoOp","request","MAIL","Error","Reason","useUpdateView","handler","addEventListener","cleanup","removeEventListener","useInitializeTags","initialized","setInitialized","refresh","useInfoRefresh","tags","isValidFolderName","trim","invalidChars","allowedActionOnSharedAccount","permission","legacyFallback","textArea","appendChild","select","execCommand","removeChild","copyToClipboard","navigator","clipboard","writeText","getPrefs","prefs","getUserSettings","usePrefs","useUserSettings","SoapApiError","constructor","fault","getErrorMessage","getLocalizedMessage","parseEmail","input","extracted","extractEmail","isValidEmail","email","validEmailRegex","String","trimmedInput","caputured","apiWrapper","promise","allSettled","status","responseBody","JSON","parse","reason","getSharedAccounts","sharedRootFolders","ownerId","address","getDefaultAccount","getOrderedAccountIds","priorityAccountAddress","defaultAccount","finalList","concat","sortedList","PRIMARY_IDENTITY_NAME","UNKNOWN_IDENTITY_DEFAULT_TYPE","getAvailableAddresses","settings","ownerAccount","attrs","zimbraMailAlias","isArray","alias","rights","targets","user","addr","sortIdentities","identities","allIdentities","defaultIdentity","remove","identity","generateIdentityId","getIdentitiesDescriptors","availableEmailAddresses","fromAddress","_attrs","zimbraPrefFromAddress","fromDisplay","zimbraPrefFromDisplay","receivingAddress","matchingReceivingAddress","availableAddress","zimbraPrefIdentityId","identityName","identityDisplayName","zimbraPrefIdentityName","defaultSignatureId","zimbraPrefDefaultSignatureId","forwardReplySignatureId","zimbraPrefForwardReplySignatureId","delegationAccounts","rts","delegationIdentities","flatten","ele","d","uniqueIdentityList","uniqIdentity","findIndex","getDefaultIdentity","getIdentityDescription","otherAccount","SEARCH_QUERY_PREFIXES","from","to","cc","subject","in","has","filename","attachment","is","date","after","before","larger","smaller","solo","priority","WHOLE_QUERY_REGEX","RegExp","getChipString","chip","QUOTED_TERM_REGEX","MULTIWORD_TERM_REGEX","convertSearchChipToString","prefixAndColon","term","isQuoted","isMultiword","useHistoryNavigation","navigate","useNavigate","replaceHistory","pushHistory","CONTACT_TYPES","GROUP","DISTRIBUTION_LIST","EDIT_ACTION_ID","DefaultContactInput","dragAndDropEnabled","_dragAndDropEnabled","orderedAccountIds","_orderedAccountIds","chipLabelFactory","_labelFactory","internalOnChange","internalOnAdd","validEmail","finalEmail","ChipInput","pasteSeparators","createChipOnPaste","separators","code","ctrlKey","onAdd","useContactInput","ContactInput","integrationAvailable","useIntegratedComponent","useRunSearchIntegration","runSearchFn","isAvailable","useIntegratedFunction","GenericSoapApiError","useTagStore","sortTags","orderBy","useTags","ids","pick","getTags","useSortedTagsArray","ParticipantRole","FROM","TO","CARBON_COPY","BLIND_CARBON_COPY","REPLY_TO","SENDER","READ_RECEIPT_NOTIFICATION","RESENT_FROM","handleTagRefresh","handleTagCreated","handleTagModified","handleTagDeleted","handleTagNotify","deletedIdsContainTags","deletedIds","tagIds","deletedId"],"mappings":"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","x_google_ignoreList":[5]}
1
+ {"version":3,"file":"index.js","sources":["../src/components/breadcrumbs/static-breadcrumbs.tsx","../src/theme/theme-mui.ts","../src/worker/utils.ts","../src/worker/handle-message.ts","../src/components/sidebar/sidebar-accordion-mui.tsx","../node_modules/@babel/runtime/helpers/esm/extends.js","../src/components/modals/modal-footer.tsx","../src/components/modals/modal-header.tsx","../src/components/modals/folder-initialization-error-modal.tsx","../src/constants/folders.ts","../src/components/select/folders/folders-accordion.tsx","../src/constants/utils/index.ts","../src/worker/index.ts","../src/store/zustand/folder/store.ts","../src/helpers/folders.ts","../src/components/select/folders/utils.ts","../src/components/select/folders/flat-folder.tsx","../src/components/select/folders/flat-root.tsx","../src/components/select/folders/flat-folders.tsx","../src/components/select/folders/status-icon.tsx","../src/components/select/folders/folder-accordions-custom-component.tsx","../src/store/zustand/folder/utils.ts","../src/store/zustand/folder/hooks.ts","../src/components/select/folders/hooks.ts","../src/components/select/folders/folder-selector.tsx","../src/components/select/select-label-factory.tsx","../src/components/select/color-select.tsx","../src/components/select/folders-selector.tsx","../src/components/list/list-item.tsx","../src/components/list/list.tsx","../src/soap/tags.ts","../src/components/tags/delete-tag-modal.tsx","../src/soap/get-folder.ts","../src/soap/get-share-info.ts","../src/hooks/use-initialize-folders.tsx","../src/soap/no-op.ts","../src/hooks/use-update-view.ts","../src/hooks/use-initialize-tags.tsx","../src/utils/utils.ts","../src/utils/clipboard.ts","../src/utils/get-prefs.ts","../src/utils/use-prefs.ts","../src/soap/errors/soap-api-error.ts","../src/helpers/errors.ts","../src/helpers/email-parser.ts","../src/helpers/api-wrapper.ts","../src/helpers/identities.ts","../src/constants/search.ts","../src/helpers/search.ts","../src/helpers/use-history-navigation.ts","../src/integrations/constants.ts","../src/integrations/default-contact-input.tsx","../src/integrations/hooks.ts","../src/integrations/search/use-run-search.ts","../src/soap/errors/generic-soap-api-error.ts","../src/store/zustand/tags/store.ts","../src/store/zustand/tags/hooks.ts","../src/constants/participants.ts","../src/worker/folder.ts","../src/worker/tags.ts"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { FC } from 'react';\n\nimport {\n\tBreadcrumbs,\n\tBreadcrumbsProps,\n\tContainer,\n\tRow,\n\tText,\n\tTextProps,\n\tTooltip\n} from '@zextras/carbonio-design-system';\n\ntype StaticBreadcrumbsProps = BreadcrumbsProps & {\n\tsize?: TextProps['size'];\n\ttooltipLabel?: string;\n};\n\nconst StaticBreadcrumbs: FC<StaticBreadcrumbsProps> = ({\n\tcrumbs,\n\tsize = 'large',\n\ttooltipLabel\n}) => {\n\tconst crumbsCount = crumbs.length;\n\tconst tooltip =\n\t\ttooltipLabel ?? crumbs.reduce<string>((result, crumb) => `${result}/${crumb.label}`, '');\n\tconst firstCrumb = crumbs[0];\n\tconst restCrumbs = crumbs.slice(1);\n\n\treturn (\n\t\t<Tooltip label={tooltip}>\n\t\t\t<Row mainAlignment=\"flex-start\" wrap=\"nowrap\" width=\"fill\">\n\t\t\t\t<Container\n\t\t\t\t\twidth=\"fit\"\n\t\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\t\tpadding={{ left: 'small', right: 'extrasmall' }}\n\t\t\t\t>\n\t\t\t\t\t<Text size={size} color={crumbsCount === 1 ? 'text' : 'secondary'}>\n\t\t\t\t\t\t{firstCrumb?.label ?? ''}\n\t\t\t\t\t</Text>\n\t\t\t\t</Container>\n\t\t\t\t{/* FIXME the width/maxWidth */}\n\t\t\t\t<Row mainAlignment=\"flex-start\" maxWidth=\"70%\">\n\t\t\t\t\t<Breadcrumbs crumbs={restCrumbs} dropdownProps={{ disabled: true }}></Breadcrumbs>\n\t\t\t\t</Row>\n\t\t\t</Row>\n\t\t</Tooltip>\n\t);\n};\n\nexport { type StaticBreadcrumbsProps, StaticBreadcrumbs };\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { createTheme, CustomPaletteOptions, CustomTheme } from '@mui/material';\nimport { ThemeProviderProps } from '@zextras/carbonio-design-system';\nimport { merge } from 'lodash';\n\nexport const theme: CustomTheme = createTheme(<CustomPaletteOptions>{\n\tpalette: {\n\t\tcurrentColor: {\n\t\t\tregular: 'currentColor',\n\t\t\thover: 'currentColor',\n\t\t\tactive: 'currentColor',\n\t\t\tfocus: 'currentColor',\n\t\t\tdisabled: 'currentColor'\n\t\t},\n\t\ttransparent: {\n\t\t\tregular: 'rgba(0, 0, 0, 0)',\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\n\t\t\tactive: 'rgba(0, 0, 0, 0.1)',\n\t\t\tfocus: 'rgba(0, 0, 0, 0.05)',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0)'\n\t\t},\n\t\tprimary: {\n\t\t\tregular: '#2b73d2',\n\t\t\thover: '#225ca8',\n\t\t\tactive: '#1e5092',\n\t\t\tfocus: '#225ca8',\n\t\t\tdisabled: '#aac8ee',\n\t\t\tmain: '#2b73d2'\n\t\t},\n\t\tsecondary: {\n\t\t\tregular: '#828282',\n\t\t\thover: '#696969',\n\t\t\tactive: '#5c5c5c',\n\t\t\tfocus: '#696969',\n\t\t\tdisabled: '#cccccc',\n\t\t\tmain: '#828282'\n\t\t},\n\t\theader: {\n\t\t\tregular: '#cfd5dc',\n\t\t\thover: '#b1bbc6',\n\t\t\tactive: '#a3aebc',\n\t\t\tfocus: '#b1bbc6',\n\t\t\tdisabled: '#cfd5dc'\n\t\t},\n\t\thighlight: {\n\t\t\tregular: '#d5e3f6',\n\t\t\thover: '#abc7ed',\n\t\t\tactive: '#96b8e8',\n\t\t\tfocus: '#abc7ed',\n\t\t\tdisabled: '#d5e3f6'\n\t\t},\n\t\tgray0: {\n\t\t\tregular: '#414141',\n\t\t\thover: '#282828',\n\t\t\tactive: '#1b1b1b',\n\t\t\tfocus: '#282828',\n\t\t\tdisabled: '#cccccc'\n\t\t},\n\t\tgray1: {\n\t\t\tregular: '#828282',\n\t\t\thover: '#696969',\n\t\t\tactive: '#5c5c5c',\n\t\t\tfocus: '#696969',\n\t\t\tdisabled: '#cccccc'\n\t\t},\n\t\tgray2: {\n\t\t\tregular: '#cfd5dc',\n\t\t\thover: '#b1bbc6',\n\t\t\tactive: '#a3aebc',\n\t\t\tfocus: '#b1bbc6',\n\t\t\tdisabled: '#cfd5dc'\n\t\t},\n\t\tgray3: {\n\t\t\tregular: '#e6e9ed',\n\t\t\thover: '#c8cfd8',\n\t\t\tactive: '#bac2cd',\n\t\t\tfocus: '#c8cfd8',\n\t\t\tdisabled: '#e6e9ed'\n\t\t},\n\t\tgray4: {\n\t\t\tregular: '#eeeff3',\n\t\t\thover: '#d0d3de',\n\t\t\tactive: '#c1c5d3',\n\t\t\tfocus: '#d0d3de',\n\t\t\tdisabled: '#eeeff3'\n\t\t},\n\t\tgray5: {\n\t\t\tregular: '#f5f6f8',\n\t\t\thover: '#d7dbe3',\n\t\t\tactive: '#c8ced9',\n\t\t\tfocus: '#d7dbe3',\n\t\t\tdisabled: '#f5f6f8'\n\t\t},\n\t\tgray6: {\n\t\t\tregular: '#ffffff',\n\t\t\thover: '#e6e6e6',\n\t\t\tactive: '#d9d9d9',\n\t\t\tfocus: '#e6e6e6',\n\t\t\tdisabled: '#ffffff'\n\t\t},\n\t\twarning: {\n\t\t\tregular: '#ffc107',\n\t\t\thover: '#d39e00',\n\t\t\tactive: '#ba8b00',\n\t\t\tfocus: '#d39e00',\n\t\t\tdisabled: '#ffe699',\n\t\t\tmain: '#ffc107'\n\t\t},\n\t\terror: {\n\t\t\tregular: '#d74942',\n\t\t\thover: '#be3028',\n\t\t\tactive: '#a92a24',\n\t\t\tfocus: '#be3028',\n\t\t\tdisabled: '#edaeab',\n\t\t\tmain: '#d74942'\n\t\t},\n\t\tsuccess: {\n\t\t\tregular: '#8bc34a',\n\t\t\thover: '#71a436',\n\t\t\tactive: '#639030',\n\t\t\tfocus: '#71a436',\n\t\t\tdisabled: '#cee6b2',\n\t\t\tmain: '#8bc34a'\n\t\t},\n\t\tinfo: {\n\t\t\tregular: '#2196d3',\n\t\t\thover: '#1a75a7',\n\t\t\tactive: '#176691',\n\t\t\tfocus: '#1a75a7',\n\t\t\tdisabled: '#a7d7f1',\n\t\t\tmain: '#2196d3'\n\t\t},\n\t\ttext: {\n\t\t\tregular: '#333333',\n\t\t\thover: '#1a1a1a',\n\t\t\tactive: '#0d0d0d',\n\t\t\tfocus: '#1a1a1a',\n\t\t\tdisabled: '#cccccc',\n\t\t\tmain: '#333333'\n\t\t}\n\t},\n\tavatarColors: {\n\t\tavatar_1: '#EF9A9A',\n\t\tavatar_2: '#F48FB1',\n\t\tavatar_3: '#CE93D8',\n\t\tavatar_4: '#B39DDB',\n\t\tavatar_5: '#9FA8DA',\n\t\tavatar_6: '#90CAF9',\n\t\tavatar_7: '#81D4FA',\n\t\tavatar_8: '#80DEEA',\n\t\tavatar_9: '#80CBC4',\n\t\tavatar_10: '#A5D6A7',\n\t\tavatar_11: '#C5E1A5',\n\t\tavatar_12: '#E6EE9C',\n\t\tavatar_13: '#FFE082',\n\t\tavatar_14: '#FFCC80',\n\t\tavatar_15: '#FFAB91',\n\t\tavatar_16: '#BCAAA4',\n\t\tavatar_17: '#E57373',\n\t\tavatar_18: '#F06292',\n\t\tavatar_19: '#BA68C8',\n\t\tavatar_20: '#9575CD',\n\t\tavatar_21: '#7986CB',\n\t\tavatar_22: '#64B5F6',\n\t\tavatar_23: '#4FC3F7',\n\t\tavatar_24: '#4DD0E1',\n\t\tavatar_25: '#4DB6AC',\n\t\tavatar_26: '#81C784',\n\t\tavatar_27: '#AED581',\n\t\tavatar_28: '#DCE775',\n\t\tavatar_29: '#FFD54F',\n\t\tavatar_30: '#FFB74D',\n\t\tavatar_31: '#FF8A65',\n\t\tavatar_32: '#A1887F',\n\t\tavatar_33: '#0097A7',\n\t\tavatar_34: '#EF5350',\n\t\tavatar_35: '#EC407A',\n\t\tavatar_36: '#AB47BC',\n\t\tavatar_37: '#7E57C2',\n\t\tavatar_38: '#5C6BC0',\n\t\tavatar_39: '#42A5F5',\n\t\tavatar_40: '#29B6F6',\n\t\tavatar_41: '#26C6DA',\n\t\tavatar_42: '#26A69A',\n\t\tavatar_43: '#66BB6A',\n\t\tavatar_44: '#9CCC65',\n\t\tavatar_45: '#D4E157',\n\t\tavatar_46: '#FFCA28',\n\t\tavatar_47: '#FFA726',\n\t\tavatar_48: '#FF7043',\n\t\tavatar_49: '#8D6E63',\n\t\tavatar_50: '#0288D1'\n\t}\n});\n\nexport const themeMui = createTheme({\n\tcomponents: {\n\t\tMuiSvgIcon: {\n\t\t\tstyleOverrides: {\n\t\t\t\troot: {\n\t\t\t\t\tcolor: theme.palette.text.regular,\n\t\t\t\t\t'&:hover': { background: theme.palette.gray3.hover },\n\t\t\t\t\tfontSize: '1.25rem',\n\t\t\t\t\tfontWeight: 400\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tMuiAccordionSummary: {\n\t\t\tstyleOverrides: {\n\t\t\t\troot: {\n\t\t\t\t\tpadding: '0 1rem 0 0',\n\t\t\t\t\tmargin: '0',\n\t\t\t\t\tminHeight: '0',\n\t\t\t\t\tjustifyContent: 'left'\n\t\t\t\t},\n\t\t\t\tcontent: {\n\t\t\t\t\tmargin: '0',\n\t\t\t\t\tmaxWidth: 'calc(100% - 1.25rem)'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tMuiAccordionDetails: {\n\t\t\tstyleOverrides: {\n\t\t\t\troot: {\n\t\t\t\t\tbackground: 'transparent',\n\t\t\t\t\tpadding: '0 0 0 0.5rem',\n\t\t\t\t\tmargin: '0'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tMuiButtonBase: {\n\t\t\tstyleOverrides: {\n\t\t\t\troot: {\n\t\t\t\t\tpadding: '0'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tMuiPaper: {\n\t\t\tstyleOverrides: {\n\t\t\t\troot: {\n\t\t\t\t\tborderBottomLeftRadius: '0',\n\t\t\t\t\tborderTopLeftRadius: '0',\n\t\t\t\t\tborderBottomRightRadius: '0',\n\t\t\t\t\tborderTopRightRadius: '0'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tMuiAccordion: {\n\t\t\tstyleOverrides: {\n\t\t\t\troot: {\n\t\t\t\t\t':last-of-type': {\n\t\t\t\t\t\tborderBottomLeftRadius: '0',\n\t\t\t\t\t\tborderTopLeftRadius: '0',\n\t\t\t\t\t\tborderBottomRightRadius: '0',\n\t\t\t\t\t\tborderTopRightRadius: '0'\n\t\t\t\t\t},\n\t\t\t\t\t':first-of-type': {\n\t\t\t\t\t\tborderBottomLeftRadius: '0',\n\t\t\t\t\t\tborderTopLeftRadius: '0',\n\t\t\t\t\t\tborderBottomRightRadius: '0',\n\t\t\t\t\t\tborderTopRightRadius: '0'\n\t\t\t\t\t},\n\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\tbackground: 'transparent',\n\t\t\t\t\t'&.MuiAccordion-root:before': {\n\t\t\t\t\t\ttop: '0'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n});\n\nexport const themeMuiExtension: ThemeProviderProps['extension'] = (parentTheme) =>\n\tmerge({}, themeMui, parentTheme);\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\n/**\n *\n * @param link\n */\nexport const getLinkIdMapKey = (link: { rid?: string; zid?: string }): string | null => {\n\tif (!link) {\n\t\treturn null;\n\t}\n\n\tif (!link.rid || !link.zid) {\n\t\treturn null;\n\t}\n\n\treturn `${link.zid}:${link.rid}`;\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport type { SoapNotify } from '@zextras/carbonio-ui-soap-lib';\n\nimport { getLinkIdMapKey } from './utils';\nimport type {\n\tBaseFolder,\n\tFolder,\n\tFolderMessage,\n\tFolders,\n\tLinkFolder,\n\tLinkFolderFields,\n\tSearches,\n\tSearchFolderFields,\n\tSoapFolder,\n\tSoapLink,\n\tSoapSearchFolder,\n\tUserFolder\n} from '../types';\nimport { FolderView, LinksIdMap } from '../types';\n\nconst IM_LOGS = '14';\nconst USER_ROOT = '1';\n\nlet folders: Folders = {};\nconst searches: Searches = {};\nconst linksIdMap: LinksIdMap = {};\n// used to check if a newly created folder is being added to the correct store\nlet view: string | undefined;\n\nexport const testUtils = {\n\tgetFolders: (): Folders => folders,\n\tresetFolders: (): void => {\n\t\tfolders = {};\n\t},\n\tsetFolders: (data: Folders): void => {\n\t\tfolders = data;\n\t},\n\tsetCurrentView: (current: FolderView): void => {\n\t\tview = current;\n\t},\n\tgetCurrentView: (): string | undefined => view\n};\n\nconst sortFoldersByName = (obj: Array<Folder>): Array<Folder> =>\n\tobj.sort((a, b) => {\n\t\tconst aLowerName = a.name.toLowerCase();\n\t\tconst bLowerName = b.name.toLowerCase();\n\t\tif (aLowerName < bLowerName) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (aLowerName > bLowerName) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn 0;\n\t});\n\nconst updateChildren = (folder: Folder, changes: any): any => {\n\tif (changes.absFolderPath && folder.children.length) {\n\t\tfolder.children.forEach((child) => {\n\t\t\tconst childFolder = folders[child.id];\n\t\t\tif (changes.absFolderPath && childFolder.absFolderPath) {\n\t\t\t\tconst paths = childFolder.absFolderPath.split('/').slice(2);\n\t\t\t\tchildFolder.absFolderPath = `${changes.absFolderPath}/${paths.join('/')}`;\n\t\t\t}\n\t\t\tif (childFolder.children.length) {\n\t\t\t\tupdateChildren(childFolder, changes);\n\t\t\t}\n\t\t});\n\t}\n};\n\nexport const testFolderIsChecked = ({ string }: { string: string | undefined }): boolean =>\n\t/#/.test(string || '');\n\nconst omit = ({\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tlink: _1,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tfolder: _2,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tsearch: _3,\n\t...obj\n}: Partial<SoapFolder>): Partial<SoapFolder> => obj;\n\nexport const hasId = (f: { id: string }, id: string): boolean => f.id.split(':').includes(id);\nexport const normalize = (f: SoapFolder, p?: Folder): BaseFolder => ({\n\tid: f.id,\n\tuuid: f.uuid,\n\tname: f.name,\n\tabsFolderPath: f.absFolderPath,\n\tl: f.l,\n\tluuid: f.luuid,\n\tchecked: testFolderIsChecked({ string: f.f }),\n\tf: f.f,\n\t// the type defined in shell is not correct refs: SHELL-118\n\t// FIXME: remove the cast when the type will be fixed\n\tcolor: (f.color as unknown as number) || p?.color,\n\trgb: f.rgb,\n\tu: f.u,\n\ti4u: f.i4u,\n\tview: f.view,\n\trev: f.rev,\n\tms: f.ms,\n\tmd: f.md,\n\tn: f.n,\n\ti4n: f.i4n,\n\ts: f.s,\n\ti4ms: f.i4ms,\n\ti4next: f.i4next,\n\turl: f.url,\n\tactivesyncdisabled: !!f.activesyncdisabled,\n\twebOfflineSyncDays: f.webOfflineSyncDays,\n\tperm: f.perm,\n\trecursive: !!f.recursive,\n\trest: f.rest,\n\tdeletable: !!f.deletable,\n\tmeta: f.meta,\n\tacl: f.acl,\n\tretentionPolicy: f.retentionPolicy\n});\n\nexport const normalizeSearch = (s: SoapSearchFolder): BaseFolder & SearchFolderFields => ({\n\t...normalize(s),\n\tquery: s.query,\n\tsortBy: s.sortBy,\n\ttypes: s.types\n});\n\nexport const normalizeLink = (l: SoapLink, p?: Folder): BaseFolder & LinkFolderFields => ({\n\t...normalize(l, p),\n\towner: l.owner,\n\tzid: l.zid,\n\trid: l.rid,\n\truuid: l.ruuid,\n\toname: l.oname,\n\treminder: !!l.reminder,\n\tbroken: !!l.broken\n});\n\nexport const processSearch = (soapSearch: SoapSearchFolder, parent: Folder): void => {\n\tconst search = {\n\t\t...normalizeSearch(soapSearch),\n\t\tparent: parent?.id,\n\t\tisLink: parent?.isLink\n\t};\n\tsearches[search.id] = search;\n};\n\nexport const processLink = (soapLink: SoapLink, depth: number, parent?: Folder): LinkFolder => {\n\tconst link = {\n\t\t...normalizeLink(soapLink, parent),\n\t\tisLink: true,\n\t\tchildren: [],\n\t\tparent: parent?.id,\n\t\tdepth\n\t} as LinkFolder;\n\t// eslint-disable-next-line no-param-reassign\n\tfolders[soapLink.id] = link;\n\n\t// Get the zid:rid key of the link and add it to the links id map\n\tconst linkIdMapKey = getLinkIdMapKey(soapLink);\n\tlinkIdMapKey && (linksIdMap[linkIdMapKey] = soapLink.id);\n\n\tsoapLink?.folder?.forEach((f) => {\n\t\tif (!hasId(f, IM_LOGS)) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tconst child = processFolder(f, depth + 1, link);\n\t\t\tlink.children.push(child);\n\t\t}\n\t});\n\tsoapLink?.link?.forEach((l) => {\n\t\tif (!hasId(l, IM_LOGS)) {\n\t\t\tconst child = processLink(l, depth + 1, link);\n\t\t\tlink.children.push(child);\n\t\t}\n\t});\n\tsoapLink?.search?.forEach((s) => {\n\t\tprocessSearch(s, link);\n\t});\n\n\treturn link;\n};\n\nexport const processFolder = (\n\tsoapFolder: SoapFolder,\n\tdepth: number,\n\tparent?: Folder\n): UserFolder => {\n\tconst folder: UserFolder = {\n\t\t...normalize(soapFolder, parent),\n\t\tisLink: false,\n\t\tchildren: [],\n\t\tparent: parent?.id,\n\t\tdepth\n\t};\n\tfolders[soapFolder.id] = folder;\n\tsoapFolder?.folder?.forEach((f) => {\n\t\tif (!hasId(f, IM_LOGS)) {\n\t\t\tconst child = processFolder(f, depth + 1, folder);\n\t\t\tif (!hasId(f, USER_ROOT)) {\n\t\t\t\tfolder.children.push(child);\n\t\t\t}\n\t\t}\n\t});\n\tsoapFolder?.link?.forEach((l) => {\n\t\tif (!hasId(l, IM_LOGS)) {\n\t\t\tconst child = processLink(l, depth + 1, folder);\n\t\t\tif (!hasId(l, USER_ROOT)) {\n\t\t\t\tfolder.children.push(child);\n\t\t\t}\n\t\t}\n\t});\n\tsoapFolder?.search?.forEach((s) => {\n\t\tprocessSearch(s, folder);\n\t});\n\treturn folder;\n};\n\nexport const handleFolderRefresh = (\n\tsoapFolders: Array<SoapFolder>,\n\tcurrentView: FolderView\n): UserFolder | Array<UserFolder> => {\n\tview = currentView;\n\tif (soapFolders.length > 1) {\n\t\tconst sharedAccounts = soapFolders.slice(1);\n\t\treturn [\n\t\t\tprocessFolder(soapFolders[0], 0),\n\t\t\t...sharedAccounts.map((folder) => processLink(folder as SoapLink, 0))\n\t\t] as Array<UserFolder>;\n\t}\n\treturn processFolder(soapFolders[0], 0);\n};\n\nexport const handleFolderCreated = (created: Array<SoapFolder>): void =>\n\tcreated.forEach((val: SoapFolder) => {\n\t\tif (val.id && val.l && view && val.view === view) {\n\t\t\tconst parent = folders[val.l];\n\t\t\tconst folder: UserFolder = {\n\t\t\t\t...normalize(val, parent),\n\t\t\t\tisLink: false,\n\t\t\t\tchildren: [],\n\t\t\t\tparent: parent?.id,\n\t\t\t\tdepth: parent && parent.depth !== undefined ? parent.depth + 1 : 0\n\t\t\t};\n\t\t\tfolders[val.id] = folder;\n\t\t\tparent.children.push(folder);\n\t\t\tsortFoldersByName(parent.children);\n\t\t}\n\t});\nexport const handleLinkCreated = (created: Array<SoapLink>): void =>\n\tcreated.forEach((val: SoapLink) => {\n\t\tif (val.id && val.l && view && val.view === view) {\n\t\t\tconst parent = folders[val.l];\n\t\t\tconst folder: LinkFolder = {\n\t\t\t\t...normalizeLink(val, parent),\n\t\t\t\tisLink: true,\n\t\t\t\tchildren: [],\n\t\t\t\tparent: parent?.id,\n\t\t\t\tdepth: parent && parent.depth !== undefined ? parent.depth + 1 : 0\n\t\t\t};\n\t\t\tfolders[val.id] = folder;\n\t\t\tparent.children.push(folder);\n\t\t\tsortFoldersByName(parent.children);\n\t\t}\n\t});\n\nfunction getKeyByValue(map: Folders, searchValue: Partial<UserFolder>): string | undefined {\n\treturn Object.keys(map).find(\n\t\t(key) => searchValue.id === `${(map[key] as LinkFolder).zid}:${(map[key] as LinkFolder).rid}`\n\t);\n}\n\nfunction folderIsSharedWithMe(folderId: string | undefined): boolean {\n\tif (!folderId) return false;\n\tconst folder = folders[folderId];\n\tif (folder?.parent) {\n\t\treturn folderIsSharedWithMe(folder?.parent);\n\t}\n\treturn folder?.name === 'USER_ROOT';\n}\n\nexport const handleFolderModified = (modified: Array<Partial<UserFolder>>): void =>\n\t// the type defined in shell is not correct refs: SHELL-118\n\t// FIXME: remove the ts-ignore when the type will be fixed\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t// @ts-ignore\n\tmodified.forEach((val: Partial<SoapFolder>): void => {\n\t\tif (!val.id) return;\n\t\tconst mountPointId = val.id.includes(':') ? getKeyByValue(folders, val) : val.id;\n\t\tconst parentMountPointId = getKeyByValue(folders, { id: val.l });\n\t\tconst isSharedWithMe = folderIsSharedWithMe(mountPointId);\n\t\tconst parentIsSharedWithMe = folderIsSharedWithMe(parentMountPointId);\n\t\tconst parentFolderId = parentIsSharedWithMe && parentMountPointId ? parentMountPointId : val.l;\n\t\tconst folderId = isSharedWithMe && mountPointId ? mountPointId : val.id;\n\t\tconst folder = folderId ? folders[folderId] : null;\n\n\t\tif (folder) {\n\t\t\tObject.assign(folder, omit({ ...val, id: folderId }));\n\t\t\tupdateChildren(folder, val);\n\t\t\tif (typeof val.f !== 'undefined') {\n\t\t\t\tfolder.checked = testFolderIsChecked({ string: val.f });\n\t\t\t}\n\n\t\t\tconst oldParentId = folder.parent;\n\n\t\t\tif (oldParentId) {\n\t\t\t\tconst oldParent = folders[oldParentId];\n\t\t\t\tif (oldParent) {\n\t\t\t\t\tif (!val.l) {\n\t\t\t\t\t\toldParent.children = oldParent.children.map((f) => (f.id !== val.id ? f : folder));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst newParent = parentFolderId ? folders[parentFolderId] : null;\n\t\t\t\t\t\tif (newParent) {\n\t\t\t\t\t\t\toldParent.children = oldParent.children.filter((f) => f.id !== folderId);\n\t\t\t\t\t\t\tnewParent.children.push(folder);\n\t\t\t\t\t\t\tsortFoldersByName(newParent.children);\n\t\t\t\t\t\t\tfolder.parent = newParent.id;\n\t\t\t\t\t\t\tfolder.depth = newParent?.depth !== undefined ? newParent.depth + 1 : 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfolders[folderId] = folder;\n\t\t\t}\n\t\t}\n\t});\nexport const handleFolderDeleted = (deleted: string[]): void =>\n\tdeleted.forEach((val) => {\n\t\tconst folder = folders[val];\n\t\tif (folder) {\n\t\t\tif (folder.parent) {\n\t\t\t\tconst parent = folders[folder.parent];\n\t\t\t\tparent.children = parent.children.filter((obj) => obj.id !== val);\n\t\t\t}\n\t\t\tdelete folders[val];\n\t\t\tdelete searches[val];\n\t\t}\n\t});\nexport const handleFolderNotify = (notify: SoapNotify): void => {\n\thandleFolderCreated(notify.created?.folder ?? []);\n\thandleLinkCreated(notify.created?.link ?? []);\n\t// the type defined in shell is not correct refs: SHELL-118\n\t// FIXME: remove the ts-ignore when the type will be fixed\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t// @ts-ignore\n\thandleFolderModified([...(notify.modified?.folder ?? []), ...(notify.modified?.link ?? [])]);\n\thandleFolderDeleted(notify.deleted ?? []);\n};\n\nexport const handleFoldersMessages = ({ data }: FolderMessage): void => {\n\tif (data.op === 'refresh' && data.folder) {\n\t\thandleFolderRefresh(data.folder, data.currentView);\n\t}\n\tif (data.op === 'notify') {\n\t\thandleFolderNotify(data.notify);\n\t}\n};\n\nexport const handleMessage = ({ data }: FolderMessage): void => {\n\thandleFoldersMessages({ data });\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t// @ts-ignore\n\tpostMessage({ folders, linksIdMap, searches });\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { FC, useCallback, useRef } from 'react';\n\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport { Accordion, AccordionDetails, AccordionSummary, Container } from '@mui/material';\nimport { useLocalStorage } from '@zextras/carbonio-shell-ui';\n\nimport { theme } from '../../theme/theme-mui';\nimport type { Folder } from '../../types/folder';\nimport type { SidebarAccordionProps } from '../../types/sidebar';\nimport { hasId } from '../../worker/handle-message';\n\nexport const SidebarAccordionMui: FC<SidebarAccordionProps> = ({\n\taccordions,\n\tfolderId,\n\tlocalStorageName,\n\tAccordionCustomComponent,\n\tsetSelectedFolder,\n\tbuttonFindShares,\n\tinitialExpanded\n}) => {\n\tconst [openIds, setOpenIds] = useLocalStorage<Array<string>>(\n\t\tlocalStorageName,\n\t\tinitialExpanded ?? []\n\t);\n\tconst sidebarRef = useRef<HTMLInputElement>(null);\n\tconst onClick = useCallback(\n\t\t({ accordion, expanded }: { accordion: Folder; expanded: boolean }): void => {\n\t\t\tif (expanded) {\n\t\t\t\tsetOpenIds((state: Array<string>) =>\n\t\t\t\t\tstate.includes(accordion.id) ? state : [...state, accordion.id]\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tsetOpenIds((state: Array<string>) => state.filter((id) => id !== accordion.id));\n\t\t\t}\n\t\t},\n\t\t[setOpenIds]\n\t);\n\n\treturn (\n\t\t<Container ref={sidebarRef} disableGutters>\n\t\t\t{accordions.map((accordion) =>\n\t\t\t\taccordion.id === 'find_shares' ? (\n\t\t\t\t\tbuttonFindShares\n\t\t\t\t) : (\n\t\t\t\t\t<Accordion\n\t\t\t\t\t\tdisableGutters\n\t\t\t\t\t\tslotProps={{ transition: { unmountOnExit: true } }}\n\t\t\t\t\t\texpanded={openIds.includes(accordion.id)}\n\t\t\t\t\t\tkey={accordion.id}\n\t\t\t\t\t>\n\t\t\t\t\t\t<AccordionSummary\n\t\t\t\t\t\t\tonClick={(): void => {\n\t\t\t\t\t\t\t\tsetSelectedFolder?.(accordion.id);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\texpandIcon={\n\t\t\t\t\t\t\t\taccordion?.children?.length > 0 &&\n\t\t\t\t\t\t\t\t!hasId(accordion, 'all') && (\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tstyle={{ all: 'unset', cursor: 'pointer' }}\n\t\t\t\t\t\t\t\t\t\tonClick={(e): void => {\n\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\tonClick({ accordion, expanded: !openIds.includes(accordion.id) });\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<ExpandMoreIcon color=\"primary\" />\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taria-controls=\"panel1a-content\"\n\t\t\t\t\t\t\tid={accordion.id}\n\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\t\t\taccordion.id === folderId\n\t\t\t\t\t\t\t\t\t\t? theme.palette.highlight.hover\n\t\t\t\t\t\t\t\t\t\t: theme.palette.gray5.regular,\n\t\t\t\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\t\t\t\taccordion.id === folderId\n\t\t\t\t\t\t\t\t\t\t\t? theme.palette.highlight.active\n\t\t\t\t\t\t\t\t\t\t\t: theme.palette.gray5.hover\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<AccordionCustomComponent item={accordion} />\n\t\t\t\t\t\t</AccordionSummary>\n\t\t\t\t\t\t{accordion?.children?.length > 0 && (\n\t\t\t\t\t\t\t<AccordionDetails>\n\t\t\t\t\t\t\t\t<SidebarAccordionMui\n\t\t\t\t\t\t\t\t\taccordions={accordion.children}\n\t\t\t\t\t\t\t\t\tfolderId={folderId}\n\t\t\t\t\t\t\t\t\tkey={accordion.id}\n\t\t\t\t\t\t\t\t\tlocalStorageName={localStorageName}\n\t\t\t\t\t\t\t\t\tAccordionCustomComponent={AccordionCustomComponent}\n\t\t\t\t\t\t\t\t\tsetSelectedFolder={setSelectedFolder}\n\t\t\t\t\t\t\t\t\tbuttonFindShares={buttonFindShares}\n\t\t\t\t\t\t\t\t\tinitialExpanded={initialExpanded}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</AccordionDetails>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Accordion>\n\t\t\t\t)\n\t\t\t)}\n\t\t</Container>\n\t);\n};\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { FC, ReactElement, useMemo } from 'react';\n\nimport { Container, Button, Padding, Divider, Tooltip } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\n\nimport type { ModalFooterProps } from '../../types';\n\nexport const ModalFooter: FC<ModalFooterProps> = ({\n\tmainAlignment = 'center',\n\tcrossAlignment = 'center',\n\tonConfirm,\n\tlabel,\n\tsecondaryAction,\n\tsecondaryLabel,\n\tprimaryBtnType = 'default',\n\tsecondaryBtnType = 'default',\n\tdisabled,\n\tsecondaryDisabled,\n\tbackground = 'primary',\n\tsecondarybackground,\n\tcolor = 'primary',\n\tsecondaryColor = 'secondary',\n\tsize = 'medium',\n\tshowDivider = true,\n\ttooltip,\n\tsecondaryTooltip,\n\tpaddingTop = 'medium',\n\tadditionalAction,\n\tadditionalBtnType = 'outlined',\n\tadditionalColor = 'secondary',\n\tadditionalLabel,\n\tprimaryButtonIcon\n}): ReactElement => {\n\tconst [t] = useTranslation();\n\n\tconst cancelLabel = useMemo(() => t('label.cancel', 'cancel'), [t]);\n\n\tconst secondaryTypeAndColor = useMemo(() => {\n\t\tif (secondaryBtnType === 'ghost') {\n\t\t\treturn { type: secondaryBtnType, color: secondaryColor };\n\t\t}\n\t\tif (secondaryBtnType === 'default') {\n\t\t\treturn {\n\t\t\t\ttype: secondaryBtnType,\n\t\t\t\tbackgroundColor: secondaryColor || secondarybackground\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\ttype: secondaryBtnType,\n\t\t\tbackgroundColor: secondarybackground,\n\t\t\tlabelColor: secondaryColor\n\t\t};\n\t}, [secondaryBtnType, secondaryColor, secondarybackground]);\n\n\tconst primaryTypeAndColor = useMemo(() => {\n\t\tif (primaryBtnType === 'ghost') {\n\t\t\treturn { type: primaryBtnType, color };\n\t\t}\n\t\tif (primaryBtnType === 'default') {\n\t\t\treturn { type: primaryBtnType, backgroundColor: color || background };\n\t\t}\n\t\treturn { type: primaryBtnType, backgroundColor: background, labelColor: color };\n\t}, [background, color, primaryBtnType]);\n\n\treturn (\n\t\t<Container\n\t\t\tmainAlignment={mainAlignment}\n\t\t\tcrossAlignment={crossAlignment}\n\t\t\tpadding={{\n\t\t\t\ttop: paddingTop\n\t\t\t}}\n\t\t>\n\t\t\t{showDivider && (\n\t\t\t\t<Container\n\t\t\t\t\tpadding={{ top: 'small', bottom: 'small' }}\n\t\t\t\t\tmainAlignment=\"center\"\n\t\t\t\t\tcrossAlignment=\"flex-start\"\n\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\theight=\"fit\"\n\t\t\t\t>\n\t\t\t\t\t<Divider />\n\t\t\t\t</Container>\n\t\t\t)}\n\t\t\t<Container orientation=\"horizontal\" mainAlignment=\"space-between\">\n\t\t\t\t{additionalAction && (\n\t\t\t\t\t<Container orientation=\"horizontal\" width=\"fit\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tcolor={additionalColor}\n\t\t\t\t\t\t\ttype={additionalBtnType}\n\t\t\t\t\t\t\tonClick={additionalAction}\n\t\t\t\t\t\t\tlabel={additionalLabel ?? cancelLabel}\n\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Padding horizontal=\"extrasmall\" />\n\t\t\t\t\t</Container>\n\t\t\t\t)}\n\t\t\t\t<Container\n\t\t\t\t\tpadding={{ top: 'small', bottom: 'small' }}\n\t\t\t\t\tmainAlignment=\"flex-end\"\n\t\t\t\t\tcrossAlignment=\"flex-start\"\n\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\theight=\"fit\"\n\t\t\t\t>\n\t\t\t\t\t{secondaryAction && (\n\t\t\t\t\t\t<Padding right=\"small\" vertical=\"small\">\n\t\t\t\t\t\t\t{secondaryTooltip ? (\n\t\t\t\t\t\t\t\t<Tooltip label={secondaryTooltip} placement=\"top\" maxWidth=\"fit\">\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t{...secondaryTypeAndColor}\n\t\t\t\t\t\t\t\t\t\tonClick={secondaryAction}\n\t\t\t\t\t\t\t\t\t\tlabel={secondaryLabel ?? cancelLabel}\n\t\t\t\t\t\t\t\t\t\tdisabled={secondaryDisabled}\n\t\t\t\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t{...secondaryTypeAndColor}\n\t\t\t\t\t\t\t\t\tonClick={secondaryAction}\n\t\t\t\t\t\t\t\t\tlabel={secondaryLabel ?? cancelLabel}\n\t\t\t\t\t\t\t\t\tdisabled={secondaryDisabled}\n\t\t\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Padding>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<Padding vertical=\"small\">\n\t\t\t\t\t\t{tooltip ? (\n\t\t\t\t\t\t\t<Tooltip label={tooltip} placement=\"top\" maxWidth=\"fit\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t\t\t\tonClick={onConfirm}\n\t\t\t\t\t\t\t\t\tlabel={label}\n\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\ticon={primaryButtonIcon}\n\t\t\t\t\t\t\t\t\ticonPlacement=\"left\"\n\t\t\t\t\t\t\t\t\t{...primaryTypeAndColor}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t\t\tonClick={onConfirm}\n\t\t\t\t\t\t\t\tlabel={label}\n\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\ticon={primaryButtonIcon}\n\t\t\t\t\t\t\t\ticonPlacement=\"left\"\n\t\t\t\t\t\t\t\t{...primaryTypeAndColor}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Padding>\n\t\t\t\t</Container>\n\t\t\t</Container>\n\t\t</Container>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { FC } from 'react';\n\nimport {\n\tDivider,\n\tText,\n\tRow,\n\tIconButton,\n\tPadding,\n\tContainer\n} from '@zextras/carbonio-design-system';\n\nexport const ModalHeader: FC<{ title: string; onClose?: () => void; showCloseIcon?: boolean }> = ({\n\ttitle,\n\tonClose,\n\tshowCloseIcon = true\n}) => (\n\t<Container mainAlignment=\"space-between\" width=\"100%\">\n\t\t<Row takeAvailableSpace mainAlignment=\"space-between\" width=\"100%\">\n\t\t\t<Row width=\"calc(100% - 1.5rem)\" takeAvailableSpace mainAlignment=\"flex-start\">\n\t\t\t\t<Text weight=\"bold\" size=\"large\">\n\t\t\t\t\t{title}\n\t\t\t\t</Text>\n\t\t\t</Row>\n\t\t\t{onClose && showCloseIcon && (\n\t\t\t\t<Row mainAlignment=\"flex-start\">\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\t\tstyle={{ padding: 0, margin: 0 }}\n\t\t\t\t\t\tonClick={onClose}\n\t\t\t\t\t\ticon=\"CloseOutline\"\n\t\t\t\t\t/>\n\t\t\t\t</Row>\n\t\t\t)}\n\t\t</Row>\n\t\t<Padding top=\"medium\" />\n\t\t<Divider />\n\t\t<Padding bottom=\"medium\" />\n\t</Container>\n);\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback } from 'react';\n\nimport { Row, Text } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\n\nimport { ModalFooter } from './modal-footer';\nimport { ModalHeader } from './modal-header';\n\nexport const FolderInitializationErrorModal = ({\n\tonClose\n}: {\n\tonClose: () => void;\n}): React.JSX.Element => {\n\tconst [t] = useTranslation();\n\n\tconst title = t('modal.initializeError.title', 'Oops!…Something went wrong');\n\tconst body = t('modal.initializeError.content', 'Please reload the page or try again later');\n\tconst onConfirmLabel = t('modal.initializeError.buttonConfirm', 'Reload');\n\n\tconst onConfirm = useCallback(() => {\n\t\twindow.location.reload();\n\t}, []);\n\n\treturn (\n\t\t<>\n\t\t\t<ModalHeader onClose={onClose} title={title} />\n\t\t\t<Row>\n\t\t\t\t<Text>{body}</Text>\n\t\t\t</Row>\n\t\t\t<ModalFooter onConfirm={onConfirm} label={onConfirmLabel} disabled={false} />\n\t\t</>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\n// eslint-disable-next-line no-shadow\nexport const FolderActionsType = {\n\tNEW: 'new',\n\tMOVE: 'move',\n\tDELETE: 'delete',\n\tEDIT: 'edit',\n\tEMPTY: 'empty',\n\tREMOVE_FROM_LIST: 'removeFromList',\n\tSHARES_INFO: 'sharesInfo',\n\tSHARE: 'share',\n\tMARK_ALL_READ: 'read'\n} as const;\n\nexport const FOLDERS = {\n\tUSER_ROOT: '1',\n\tINBOX: '2',\n\tTRASH: '3',\n\tSPAM: '4',\n\tSENT: '5',\n\tDRAFTS: '6',\n\tCONTACTS: '7',\n\tTAGS: '8',\n\tCONVERSATIONS: '9',\n\tCALENDAR: '10',\n\tROOT: '11',\n\tNOTEBOOK: '12', // no longer created in new mailboxes since Helix (bug 39647). old mailboxes may still contain a system folder with id 12\n\tAUTO_CONTACTS: '13',\n\tIM_LOGS: '14',\n\tTASKS: '15',\n\tBRIEFCASE: '16',\n\tLAST_SYSTEM_FOLDER_POSITION: '16.1'\n} as const;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { SyntheticEvent, useState } from 'react';\n\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport {\n\tAccordion as MUIAccordion,\n\tContainer as MUIContainer,\n\tAccordionSummary as MUIAccordionSummary,\n\tAccordionDetails as MUIAccordionDetails\n} from '@mui/material';\nimport { filter } from 'lodash';\n\nimport { FOLDERS } from '../../../constants/folders';\nimport { theme } from '../../../theme/theme-mui';\nimport { Folder } from '../../../types';\nimport { hasId } from '../../../worker/handle-message';\n\ntype FolderAccordionProps = {\n\tfolders: Array<Folder>;\n\tonFolderSelected: (arg: Folder) => void;\n\tselectedFolderId?: string;\n\tdisabledFolderIds?: Array<string>;\n\tFolderAccordionCustomComponent: React.FC<{ folder: Folder }>;\n\tfilterChildren?: (folder: Folder) => boolean;\n};\n\nexport const FoldersAccordion = ({\n\tfolders,\n\tonFolderSelected,\n\tFolderAccordionCustomComponent,\n\tselectedFolderId,\n\tdisabledFolderIds,\n\tfilterChildren\n}: FolderAccordionProps): React.JSX.Element => {\n\tconst filteredFolders = folders.map((root) => ({\n\t\t...root,\n\t\tchildren: filter(root.children, filterChildren)\n\t}));\n\n\tconst [openIds, setOpenIds] = useState<Array<string>>([FOLDERS.USER_ROOT]);\n\n\tconst handleExpandFolderClick = (\n\t\tfolderId: string,\n\t\tcallback: React.Dispatch<React.SetStateAction<Array<string>>>\n\t): void =>\n\t\tcallback((state: Array<string>) =>\n\t\t\tstate.includes(folderId) ? state.filter((id) => id !== folderId) : [...state, folderId]\n\t\t);\n\treturn (\n\t\t<MUIContainer disableGutters data-testid={'accordion-folders-selector'}>\n\t\t\t{filteredFolders.map((folder) => (\n\t\t\t\t<MUIAccordion\n\t\t\t\t\tdisableGutters\n\t\t\t\t\tslotProps={{ transition: { unmountOnExit: true } }}\n\t\t\t\t\texpanded={openIds.includes(folder.id)}\n\t\t\t\t\tkey={folder.id}\n\t\t\t\t>\n\t\t\t\t\t<MUIAccordionSummary\n\t\t\t\t\t\tdata-testid={`folder-accordion-item-${folder.id}`}\n\t\t\t\t\t\tonClick={(e: SyntheticEvent): void => {\n\t\t\t\t\t\t\tif (disabledFolderIds?.includes(folder.id)) {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonFolderSelected?.(folder);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\texpandIcon={\n\t\t\t\t\t\t\tfolder?.children?.length > 0 &&\n\t\t\t\t\t\t\t!hasId(folder, 'all') && (\n\t\t\t\t\t\t\t\t<ExpandMoreIcon\n\t\t\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\t\t\tonClick={(e): void => {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\thandleExpandFolderClick(folder.id, setOpenIds);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\taria-controls=\"panel1a-content\"\n\t\t\t\t\t\tid={folder.id}\n\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\tmargin: 0,\n\t\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\t\tfolder.id === selectedFolderId\n\t\t\t\t\t\t\t\t\t? theme.palette.highlight.hover\n\t\t\t\t\t\t\t\t\t: theme.palette.gray6.regular,\n\t\t\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\t\t\tfolder.id === selectedFolderId\n\t\t\t\t\t\t\t\t\t\t? theme.palette.highlight.active\n\t\t\t\t\t\t\t\t\t\t: theme.palette.gray6.hover\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<FolderAccordionCustomComponent folder={folder} />\n\t\t\t\t\t</MUIAccordionSummary>\n\t\t\t\t\t{folder?.children?.length > 0 && (\n\t\t\t\t\t\t<MUIAccordionDetails>\n\t\t\t\t\t\t\t<FoldersAccordion\n\t\t\t\t\t\t\t\tfolders={folder.children}\n\t\t\t\t\t\t\t\tselectedFolderId={selectedFolderId}\n\t\t\t\t\t\t\t\tkey={folder.id}\n\t\t\t\t\t\t\t\tdisabledFolderIds={disabledFolderIds}\n\t\t\t\t\t\t\t\tFolderAccordionCustomComponent={FolderAccordionCustomComponent}\n\t\t\t\t\t\t\t\tonFolderSelected={onFolderSelected}\n\t\t\t\t\t\t\t\tfilterChildren={filterChildren}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MUIAccordionDetails>\n\t\t\t\t\t)}\n\t\t\t\t</MUIAccordion>\n\t\t\t))}\n\t\t</MUIContainer>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nexport const FOLDER_VIEW: FolderViewType = {\n\tsearch_folder: 'search folder',\n\ttag: 'tag',\n\tconversation: 'conversation',\n\tmessage: 'message',\n\tcontact: 'contact',\n\tdocument: 'document',\n\tappointment: 'appointment',\n\tvirtual_conversation: 'virtual conversation',\n\tremote_folder: 'remote folder',\n\twiki: 'wiki',\n\ttask: 'task',\n\tchat: 'chat'\n} as const;\n\ntype FolderViewType = {\n\tsearch_folder: 'search folder';\n\ttag: 'tag';\n\tconversation: 'conversation';\n\tmessage: 'message';\n\tcontact: 'contact';\n\tdocument: 'document';\n\tappointment: 'appointment';\n\tvirtual_conversation: 'virtual conversation';\n\tremote_folder: 'remote folder';\n\twiki: 'wiki';\n\ttask: 'task';\n\tchat: 'chat';\n};\n\n// eslint-disable-next-line no-shadow\nexport enum TagsActionsType {\n\tNEW = 'new',\n\tDELETE = 'delete',\n\tEDIT = 'edit',\n\tApply = 'apply'\n}\n\nexport const DRAG_DATA_TYPE = {\n\tMESSAGE: 'message',\n\tCONVERSATION: 'conversation',\n\tFOLDER: 'folder',\n\tCONTACT: 'contact'\n} as const;\n\nexport const ZIMBRA_STANDARD_COLORS = [\n\t{ zValue: 0, hex: '#000000', zLabel: 'black' },\n\t{ zValue: 1, hex: '#2b73d2', zLabel: 'blue' },\n\t{ zValue: 2, hex: '#29B6F6', zLabel: 'cyan' },\n\t{ zValue: 3, hex: '#66BB6A', zLabel: 'green' },\n\t{ zValue: 4, hex: '#7e57c2', zLabel: 'purple' },\n\t{ zValue: 5, hex: '#ef5350', zLabel: 'red' },\n\t{ zValue: 6, hex: '#ffc107', zLabel: 'yellow' },\n\t{ zValue: 7, hex: '#edaeab', zLabel: 'pink' },\n\t{ zValue: 8, hex: '#828282', zLabel: 'gray' },\n\t{ zValue: 9, hex: '#FF7043', zLabel: 'orange' }\n];\n\nexport enum JSNS {\n\tACCOUNT = 'urn:zimbraAccount',\n\tADMIN = 'urn:zimbraAdmin',\n\tMAIL = 'urn:zimbraMail',\n\tALL = 'urn:zimbra',\n\tSYNC = 'urn:zimbraSync'\n}\n\nexport const ROOT_NAME = 'USER_ROOT';\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nexport const folderWorker = new Worker(new URL('./folder', import.meta.url));\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nexport const tagsWorker = new Worker(new URL('./tags', import.meta.url));\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport produce from 'immer';\nimport { create } from 'zustand';\n\nimport { Folder, FolderState } from '../../../types/folder';\nimport { folderWorker } from '../../../worker';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useFolderStore = create<FolderState>()((set) => ({\n\tfolders: {},\n\tlinksIdMap: {},\n\tsearches: {},\n\tupdateFolder: (id: string, opt: Partial<Folder>): void => {\n\t\tset(\n\t\t\tproduce((state) => {\n\t\t\t\tif (state?.folders?.[id]) {\n\t\t\t\t\tstate.folders[id] = {\n\t\t\t\t\t\t...state.folders[id],\n\t\t\t\t\t\t...opt\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\t}\n}));\n\nfolderWorker.onmessage = ({ data }): void => {\n\tuseFolderStore.setState(data);\n};\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { getUserAccount } from '@zextras/carbonio-shell-ui';\nimport { find } from 'lodash';\n\nimport { FOLDERS } from '../constants/folders';\nimport { useFolderStore } from '../store/zustand/folder/store';\nimport type { Folder, Folders } from '../types/folder';\n\nconst NO_ACCOUNT_NAME = 'No account';\n\n/*\n * Describe the folder id syntax\n *\n * [<zid>:]<folderId>\n *\n * e.g. a79fa996-e90e-4f04-97c4-c84209bb8277:2\n */\nconst FOLDERID_REGEX = /^([^:]+(?=:))*:?(\\d+)$/;\n\ntype FolderIdType = { zid: string | null; id: string | null };\n\n/**\n * Parse the given folder id and returns on object with the composing parts of the folder id\n * @param folderId\n */\nexport const getFolderIdParts = (folderId: string): FolderIdType => {\n\tconst result: FolderIdType = { zid: null, id: null };\n\n\tif (!folderId || !folderId.match(FOLDERID_REGEX)) {\n\t\treturn result;\n\t}\n\n\tconst parts = FOLDERID_REGEX.exec(folderId);\n\tif (!parts) {\n\t\treturn result;\n\t}\n\n\t[, result.zid = null, result.id = null] = parts;\n\treturn result;\n};\n\n/**\n * Get the account name of the owner of the given folder, if the owner is an\n * \"other\" account, different from the primary account of the current user.\n * If the owner is the primary account then <code>null</code> is returned\n * @param folderId\n * @param folderRoots\n */\nexport const getFolderOtherOwnerAccountName = (\n\tfolderId: string,\n\tfolderRoots: Folders\n): string | null => {\n\tif (!folderId) {\n\t\treturn null;\n\t}\n\n\tconst { zid } = getFolderIdParts(folderId);\n\tif (!zid) {\n\t\treturn null;\n\t}\n\n\t/** find the folderRoots for which the id corresponds to the message zid\n\t * if the folderRoots has an owner, return the owner\n\t * if not, return null\n\t * */\n\n\tconst matchingFolderRoot = find(folderRoots, (c) => c.id.includes(zid));\n\tif (!matchingFolderRoot) {\n\t\treturn null;\n\t}\n\n\treturn 'owner' in matchingFolderRoot && matchingFolderRoot.owner\n\t\t? matchingFolderRoot.owner\n\t\t: null;\n};\n\n/**\n * Returns the account name of the owner of the folder, based on the folder id\n * @param folderId\n * @param folderRoots\n */\nexport const getFolderOwnerAccountName = (folderId: string, folderRoots: Folders): string => {\n\tconst primaryAccount = getUserAccount();\n\n\t/*\n\t * Try to get the account of the \"other\" owner, aka an owner which\n\t * is not the primary account of the current user\n\t */\n\tconst otherOwnerAccount = getFolderOtherOwnerAccountName(folderId, folderRoots);\n\n\tif (!otherOwnerAccount) {\n\t\treturn primaryAccount?.name ?? NO_ACCOUNT_NAME;\n\t}\n\n\treturn otherOwnerAccount;\n};\n\n/**\n * Tells if a folder with the given id is a spam folder\n * @param folderId\n * @param folderType\n */\nexport const isA = (folderId: string, folderType: keyof Folders): boolean => {\n\tif (!folderId) {\n\t\treturn false;\n\t}\n\treturn getFolderIdParts(folderId).id === folderType;\n};\n\n/**\n * Tells if a folder with the given id is the default account root folder\n * @param folderId\n */\nexport const isDefaultAccountRoot = (folderId: string): boolean => folderId === FOLDERS.USER_ROOT;\n\n/**\n * Tells if a folder with the given id is a root folder\n * @param folderId\n */\nexport const isRoot = (folderId: string): boolean => isA(folderId, FOLDERS.USER_ROOT);\n\n/**\n * Tells if the given folder is a link to a folder shared by another user\n * @param folder\n */\nexport const isLink = (folder: Folder): boolean =>\n\t(folder && folder.isLink && getFolderIdParts(folder.id).zid === null) ?? false;\n\n/**\n * Tells if a folder is a folder of a shared account\n * @param folderId\n */\nexport function isSharedAccountFolder(folderId: string): boolean {\n\treturn getFolderIdParts(folderId).zid !== null;\n}\n\n/**\n * Tells if a folder is a system one\n * @param folderId\n */\nexport const isSystemFolder = (folderId: string): boolean => {\n\tconst { id } = getFolderIdParts(folderId);\n\tif (!id) {\n\t\treturn false;\n\t}\n\tconst systemFoldersIds: readonly string[] = Object.values(FOLDERS);\n\treturn systemFoldersIds.includes(folderId);\n};\n\n/**\n * Tells if a folder is a trashed folder\n * @param folder\n * @param folderId\n */\nexport const isTrashed = ({\n\tfolder,\n\tfolderId\n}: {\n\tfolder?: Folder;\n\tfolderId?: string;\n}): boolean => {\n\tif (!folder && !folderId) {\n\t\treturn false;\n\t}\n\tconst folderIdAbsPath = useFolderStore.getState()?.folders?.[folderId ?? '']?.absFolderPath;\n\n\tconst path = folder ? folder.absFolderPath : folderIdAbsPath;\n\tif (!path) {\n\t\treturn false;\n\t}\n\n\treturn path.toLowerCase().startsWith('/trash');\n};\n\n/**\n * Tells if a folder with the given id is a trash folder\n * @param folderId\n */\nexport const isTrash = (folderId: string): boolean => isA(folderId, FOLDERS.TRASH);\n\n/**\n * Tells if the current user has read permission on the given folder/link\n * @param folder\n */\nexport const isReadAllowed = (folder: Folder): boolean => !folder.perm || folder.perm.includes('r');\n\n/**\n * Tells if the current user has write permission on the given folder/link\n * @param folder\n */\nexport const isWriteAllowed = (folder: Folder): boolean =>\n\t!folder.perm || folder.perm.includes('w');\n\n/**\n * Tells if the current user has insertion permission on the given folder/link\n * @param folder\n */\nexport const isInsertAllowed = (folder: Folder): boolean =>\n\t!folder.perm || folder.perm.includes('i');\n\n/**\n * Tells if the current user has subfolder creation permission on the given folder/link\n * @param folder\n */\nexport const isCreateAllowed = (folder: Folder): boolean =>\n\t!folder.perm || folder.perm.includes('c');\n\n/**\n * Tells if the current user has deletion permission on the given folder/link\n * @param folder\n */\nexport const isDeleteAllowed = (folder: Folder): boolean =>\n\t!folder.perm || folder.perm.includes('d');\n\n/**\n * Tells if the current user has administration permission on the given folder/link\n * @param folder\n */\nexport const isAdministerAllowed = (folder: Folder): boolean =>\n\t!folder.perm || folder.perm.includes('a');\n('');\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { AccordionItemType } from '@zextras/carbonio-design-system';\nimport { t } from '@zextras/carbonio-shell-ui';\nimport { filter } from 'lodash';\n\nimport { FOLDERS } from '../../../constants/folders';\nimport { FOLDER_VIEW, ROOT_NAME, ZIMBRA_STANDARD_COLORS } from '../../../constants/utils';\nimport { getFolderIdParts, isSystemFolder } from '../../../helpers/folders';\nimport { Folder } from '../../../types';\n\nexport function flattenAndFilterFoldersWithCap(\n\tfolders: Array<Folder>,\n\tsearch: string,\n\tlimit: number,\n\tfilterFolders?: ((folder: Folder) => boolean) | undefined\n): Array<Folder> {\n\tif (limit <= 0) return [];\n\n\tconst lowerCaseSearch = search.toLowerCase();\n\n\tconst flattenAndFilter = (foldersToProcess: Array<Folder>): Array<Folder> =>\n\t\tfilter(foldersToProcess, filterFolders).flatMap((folder) => {\n\t\t\tconst isMatch = folder.name.toLowerCase().includes(lowerCaseSearch);\n\t\t\tconst matched = isMatch ? [{ ...folder, children: [] }] : [];\n\t\t\treturn [...matched, ...flattenAndFilter(folder.children)];\n\t\t});\n\n\treturn flattenAndFilter(folders).slice(0, limit);\n}\nexport const getFolderIconColor = (f: Folder | AccordionItemType): string => {\n\tif ('color' in f && f?.color) {\n\t\treturn Number(f.color) < 10\n\t\t\t? ZIMBRA_STANDARD_COLORS[Number(f.color)].hex\n\t\t\t: (f?.rgb ?? ZIMBRA_STANDARD_COLORS[0].hex);\n\t}\n\treturn ZIMBRA_STANDARD_COLORS[0].hex;\n};\n\nconst getFolderDefaultIcon = (folder: Folder | AccordionItemType): string => {\n\tconst folderView = 'view' in folder && folder.view;\n\tswitch (folderView) {\n\t\tcase FOLDER_VIEW.appointment:\n\t\t\treturn 'Calendar2';\n\t\tdefault:\n\t\t\treturn 'FolderOutline';\n\t}\n};\n\nexport const getFolderIconName = (folder: Folder | AccordionItemType): string | null => {\n\tconst { id } = getFolderIdParts(folder.id);\n\tif (\n\t\tid === FOLDERS.USER_ROOT ||\n\t\t('isLink' in folder && folder.isLink && folder.oname === ROOT_NAME)\n\t) {\n\t\treturn null;\n\t}\n\n\tconst folderDefaultIcon = getFolderDefaultIcon(folder);\n\n\tif (id && isSystemFolder(id)) {\n\t\tswitch (id) {\n\t\t\tcase FOLDERS.INBOX:\n\t\t\t\treturn 'InboxOutline';\n\t\t\tcase FOLDERS.DRAFTS:\n\t\t\t\treturn 'FileOutline';\n\t\t\tcase FOLDERS.SENT:\n\t\t\t\treturn 'PaperPlaneOutline';\n\t\t\tcase FOLDERS.SPAM:\n\t\t\t\treturn 'SlashOutline';\n\t\t\tcase FOLDERS.TRASH:\n\t\t\t\treturn 'Trash2Outline';\n\t\t\tdefault:\n\t\t\t\treturn folderDefaultIcon;\n\t\t}\n\t}\n\treturn folderDefaultIcon;\n};\n\ntype GetSystemFolderProps = {\n\tfolderId?: string;\n\tfolderName: string;\n};\n\nexport const getSystemFolderTranslatedName = ({ folderName }: GetSystemFolderProps): string => {\n\tif (folderName) {\n\t\tswitch (folderName) {\n\t\t\tcase 'Inbox':\n\t\t\t\treturn t('folders.inbox', 'Inbox');\n\t\t\tcase 'Sent':\n\t\t\t\treturn t('folders.sent', 'Sent');\n\t\t\tcase 'Drafts':\n\t\t\t\treturn t('folders.drafts', 'Drafts');\n\t\t\tcase 'Trash':\n\t\t\t\treturn t('folders.trash', 'Trash');\n\t\t\tcase 'Spam':\n\t\t\t\treturn t('folders.spam', 'Spam');\n\t\t\tcase 'Junk':\n\t\t\t\treturn t('folders.junk', 'Junk');\n\t\t\tdefault:\n\t\t\t\treturn folderName;\n\t\t}\n\t}\n\treturn folderName;\n};\n\nexport const getFolderTranslatedName = ({ folderId, folderName }: GetSystemFolderProps): string => {\n\tconst { id } = getFolderIdParts(folderId ?? '');\n\tif (id && isSystemFolder(id)) {\n\t\treturn getSystemFolderTranslatedName({ folderName });\n\t}\n\n\treturn folderName;\n};\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback } from 'react';\n\nimport { Container, Row, Icon } from '@zextras/carbonio-design-system';\nimport { noop } from 'lodash';\n\nimport { getFolderIconColor, getFolderIconName, getSystemFolderTranslatedName } from './utils';\nimport { isRoot } from '../../../helpers/folders';\nimport { Folder } from '../../../types';\nimport { StaticBreadcrumbs } from '../../breadcrumbs/static-breadcrumbs';\n\n/**\n * Process the absolute path of the given folder, removing\n * the leading slash\n *\n * @param folder\n * @return the array of the crumbs name of the path\n */\nconst getFolderAbsPathParts = (folder: Folder): Array<string> => {\n\tif (!folder) {\n\t\treturn [];\n\t}\n\n\t// Exception for root folders\n\tif (isRoot(folder?.id)) {\n\t\treturn [folder.name ?? ''];\n\t}\n\tconst reg = /^\\/?(.*)$/gm;\n\n\tconst matches = reg.exec(folder.absFolderPath ?? '');\n\tif (!matches) {\n\t\treturn [];\n\t}\n\n\treturn matches[1].split('/');\n};\n\nexport type FlaFolderProps = {\n\tfolder: Folder;\n\tselected?: boolean;\n\tonFolderSelected?: (arg: Folder) => void;\n};\n\nexport const FlatFolder = ({\n\tfolder,\n\tonFolderSelected,\n\t...rest\n}: FlaFolderProps): React.JSX.Element => {\n\tconst iconName = getFolderIconName(folder);\n\tconst iconColor = getFolderIconColor(folder);\n\tconst parts = getFolderAbsPathParts(folder);\n\n\t/*\n\t * Create the crumbs array and try to get the translations\n\t * for the first part which usually represent a system folder\n\t * for which a translated name is available\n\t */\n\tconst crumbs = parts.map((part, index) => ({\n\t\tid: `${index} `,\n\t\tlabel: index === 0 ? getSystemFolderTranslatedName({ folderName: part }) : part\n\t}));\n\n\tconst selectionHandler = useCallback(\n\t\t() => onFolderSelected?.(folder) ?? noop,\n\t\t[onFolderSelected, folder]\n\t);\n\n\treturn (\n\t\t<Container\n\t\t\twidth=\"fill\"\n\t\t\tmain-alignment=\"flex-start\"\n\t\t\torientation=\"vertical\"\n\t\t\tcrossAlignment=\"flex-start\"\n\t\t\tpadding={{ top: 'small', right: 'small', bottom: 'small', left: 'extralarge' }}\n\t\t\theight={'2.6rem'}\n\t\t\tonClick={selectionHandler}\n\t\t\twrap=\"nowrap\"\n\t\t\t{...rest}\n\t\t>\n\t\t\t<Row mainAlignment=\"flex-start\" wrap=\"nowrap\" width=\"fill\">\n\t\t\t\t<Container width=\"fit\">\n\t\t\t\t\t<Icon color={iconColor} icon={iconName ?? 'FolderOutline'} size=\"large\" />\n\t\t\t\t</Container>\n\t\t\t\t<StaticBreadcrumbs crumbs={crumbs} size=\"large\" />\n\t\t\t</Row>\n\t\t</Container>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useState, useCallback, ReactElement } from 'react';\n\nimport {\n\tText,\n\tContainer,\n\tPadding,\n\tAvatar,\n\tTooltip,\n\tIconButton,\n\tCollapse,\n\tList,\n\tRow,\n\tListItem\n} from '@zextras/carbonio-design-system';\nimport { useUserAccount } from '@zextras/carbonio-shell-ui';\nimport styled from '@emotion/styled';\n\nimport { FlatFolder, type FlaFolderProps } from './flat-folder';\nimport { FOLDERS } from '../../../constants/folders';\nimport { Folder } from '../../../types';\n\ntype FlatRootProps = FlaFolderProps & {\n\tchildrenFolders: Array<Folder>;\n\tisOpen?: boolean;\n\tonOpenStatusChange?: (isOpen: boolean) => void;\n\tselectedFolderId?: string;\n\tallowRootSelection?: boolean;\n};\n\nconst FOLDER_ROW_HEIGHT = '2.6rem';\n\nconst CustomContainer = styled(Container)<{ $active?: boolean }>`\n\t&:hover {\n\t\tbackground-color: ${({ theme, $active }): string =>\n\t\t\t$active ? theme.palette.highlight.active : theme.palette.gray6.hover};\n\t}\n`;\n\nexport const FlatRoot = ({\n\tfolder,\n\tchildrenFolders,\n\tisOpen = false,\n\tonFolderSelected,\n\tonOpenStatusChange,\n\tselectedFolderId,\n\tallowRootSelection\n}: FlatRootProps): React.JSX.Element => {\n\tconst [open, setOpen] = useState(isOpen);\n\tconst account = useUserAccount();\n\n\tconst rootLabel = folder.id === FOLDERS.USER_ROOT ? account.name : folder.name;\n\tconst toggleOpen = useCallback(\n\t\t(e: KeyboardEvent | React.SyntheticEvent) => {\n\t\t\te.stopPropagation();\n\t\t\tsetOpen((op) => {\n\t\t\t\tonOpenStatusChange && onOpenStatusChange(!op);\n\t\t\t\treturn !op;\n\t\t\t});\n\t\t},\n\t\t[onOpenStatusChange]\n\t);\n\n\tconst onClick = useCallback(\n\t\t(e: KeyboardEvent | React.SyntheticEvent) => {\n\t\t\te.stopPropagation();\n\t\t\tif (!open) {\n\t\t\t\tsetOpen(true);\n\t\t\t}\n\n\t\t\tif (!allowRootSelection) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tonFolderSelected?.(folder);\n\t\t},\n\t\t[open, allowRootSelection, onFolderSelected, folder]\n\t);\n\treturn (\n\t\t<Row\n\t\t\twidth=\"fill\"\n\t\t\tstyle={{\n\t\t\t\tcursor: 'pointer'\n\t\t\t}}\n\t\t>\n\t\t\t<CustomContainer\n\t\t\t\torientation=\"horizontal\"\n\t\t\t\twidth=\"fill\"\n\t\t\t\theight=\"fit\"\n\t\t\t\tmainAlignment=\"space-between\"\n\t\t\t\tpadding={'small'}\n\t\t\t\tonClick={onClick}\n\t\t\t\tdata-testid={`folder-flat-root-${folder.id}`}\n\t\t\t\tbackground={selectedFolderId === folder.id ? 'highlight.active' : 'gray6'}\n\t\t\t\t$active={selectedFolderId === folder.id}\n\t\t\t>\n\t\t\t\t<Container orientation=\"horizontal\" width=\"fill\" mainAlignment=\"flex-start\">\n\t\t\t\t\t<Padding horizontal=\"small\">\n\t\t\t\t\t\t<Avatar label={rootLabel} size=\"medium\" />\n\t\t\t\t\t</Padding>\n\t\t\t\t\t<Tooltip label={rootLabel} placement=\"right\" maxWidth=\"100%\">\n\t\t\t\t\t\t<Text>{rootLabel}</Text>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t</Container>\n\n\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tcustomSize={{ iconSize: 'large', paddingSize: 0 }}\n\t\t\t\t\t\tonClick={toggleOpen}\n\t\t\t\t\t\ticon={open ? 'ChevronUp' : 'ChevronDown'}\n\t\t\t\t\t/>\n\t\t\t\t</Padding>\n\t\t\t</CustomContainer>\n\t\t\t<Collapse crossSize=\"100%\" orientation=\"vertical\" open={open} disableTransition={false}>\n\t\t\t\t<List>\n\t\t\t\t\t{childrenFolders.map<ReactElement>((childFolder) => (\n\t\t\t\t\t\t<ListItem\n\t\t\t\t\t\t\tkey={childFolder.id}\n\t\t\t\t\t\t\tselected={selectedFolderId === childFolder.id}\n\t\t\t\t\t\t\tactive={selectedFolderId === childFolder.id}\n\t\t\t\t\t\t\tbackground={'gray6'}\n\t\t\t\t\t\t\tactiveBackground={'highlight'}\n\t\t\t\t\t\t\tselectedBackground={'gray5'}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{(visible: boolean): ReactElement =>\n\t\t\t\t\t\t\t\tvisible ? (\n\t\t\t\t\t\t\t\t\t<FlatFolder\n\t\t\t\t\t\t\t\t\t\tdata-testid={`folder-flat-item-${childFolder.id}`}\n\t\t\t\t\t\t\t\t\t\tfolder={childFolder}\n\t\t\t\t\t\t\t\t\t\tonFolderSelected={onFolderSelected}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<div style={{ height: `${FOLDER_ROW_HEIGHT}` }} />\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</ListItem>\n\t\t\t\t\t))}\n\t\t\t\t</List>\n\t\t\t</Collapse>\n\t\t</Row>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { ReactElement, useMemo } from 'react';\n\nimport { Container, Padding, Row, Text } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\n\nimport { FlatRoot } from './flat-root';\nimport { flattenAndFilterFoldersWithCap, getSystemFolderTranslatedName } from './utils';\nimport { Folder } from '../../../types';\n\ntype FlatFoldersProps = {\n\trootFolders: Array<Folder>;\n\tsearchString: string;\n\tselectedFolderId?: string;\n\tonFolderSelected?: (folder: Folder) => void;\n\tallowRootSelection?: boolean;\n\tfilterChildren?: (folder: Folder) => boolean;\n};\n\nexport const FlatFolders = ({\n\trootFolders,\n\tsearchString,\n\tonFolderSelected,\n\tselectedFolderId,\n\tallowRootSelection,\n\tfilterChildren\n}: FlatFoldersProps): React.JSX.Element => {\n\tconst [hasMoreResults, setHasMoreResults] = React.useState(false);\n\tconst [t] = useTranslation();\n\tconst flatFilteredFolders = useMemo(() => {\n\t\tlet remaining = 100;\n\n\t\treturn rootFolders\n\t\t\t.map((rootFolder) => {\n\t\t\t\tif (remaining <= 0) {\n\t\t\t\t\treturn { ...rootFolder, children: [] };\n\t\t\t\t}\n\t\t\t\tconst currentFolder = {\n\t\t\t\t\t...rootFolder,\n\t\t\t\t\tname: getSystemFolderTranslatedName({ folderName: rootFolder.name }),\n\t\t\t\t\tchildren: []\n\t\t\t\t};\n\t\t\t\tconst children = flattenAndFilterFoldersWithCap(\n\t\t\t\t\trootFolder.children,\n\t\t\t\t\tsearchString,\n\t\t\t\t\tremaining,\n\t\t\t\t\tfilterChildren\n\t\t\t\t);\n\t\t\t\tremaining -= children.length;\n\t\t\t\tif (remaining <= 0) {\n\t\t\t\t\tsetHasMoreResults(true);\n\t\t\t\t} else {\n\t\t\t\t\tsetHasMoreResults(false);\n\t\t\t\t}\n\n\t\t\t\treturn { ...currentFolder, children };\n\t\t\t})\n\t\t\t.filter((folder): folder is Folder => folder !== null);\n\t}, [filterChildren, rootFolders, searchString]);\n\n\tconst hasMoreResultsWarningLabel = t(\n\t\t'modal.messageFilteringList',\n\t\t'Only the first 100 results are displayed. Narrow your search criteria to view the complete list.'\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{hasMoreResults && (\n\t\t\t\t<Padding top=\"small\" bottom=\"large\">\n\t\t\t\t\t<Row wrap=\"nowrap\" takeAvailableSpace width=\"fill\">\n\t\t\t\t\t\t<Text data-testid={'has-more-results'} textAlign=\"left\" size=\"small\">\n\t\t\t\t\t\t\t{hasMoreResultsWarningLabel}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</Row>\n\t\t\t\t</Padding>\n\t\t\t)}\n\t\t\t{!hasMoreResults && <Padding vertical=\"medium\" />}\n\t\t\t<Container\n\t\t\t\tdata-testid={'flat-folders-selector'}\n\t\t\t\torientation={'vertical'}\n\t\t\t\tstyle={{ overflowY: 'auto' }}\n\t\t\t>\n\t\t\t\t{flatFilteredFolders.map<ReactElement>((folder) => (\n\t\t\t\t\t<FlatRoot\n\t\t\t\t\t\tkey={folder.id}\n\t\t\t\t\t\tfolder={folder}\n\t\t\t\t\t\tchildrenFolders={folder.children}\n\t\t\t\t\t\tisOpen\n\t\t\t\t\t\tonFolderSelected={onFolderSelected}\n\t\t\t\t\t\tselectedFolderId={selectedFolderId}\n\t\t\t\t\t\tallowRootSelection={allowRootSelection}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</Container>\n\t\t</>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React from 'react';\n\nimport { Padding, Tooltip, Row, Icon } from '@zextras/carbonio-design-system';\nimport { t } from 'i18next';\n\nimport { Folder } from '../../../types';\n\nconst RowWithIcon = (icon: string, color: string, tooltipText: string): React.JSX.Element => (\n\t<Padding left=\"small\">\n\t\t<Tooltip placement=\"right\" label={tooltipText}>\n\t\t\t<Row>\n\t\t\t\t<Icon icon={icon} color={color} size=\"medium\" />\n\t\t\t</Row>\n\t\t</Tooltip>\n\t</Padding>\n);\n\nexport const StatusIcon = ({ folder }: { folder: Folder }): React.JSX.Element => {\n\tif (folder.acl?.grant) {\n\t\tconst tooltipText = t('tooltip.folder_sharing_status', {\n\t\t\tcount: folder.acl.grant.length,\n\t\t\tdefaultValue_one: 'Shared with {{count}} person',\n\t\t\tdefaultValue: 'Shared with {{count}} people'\n\t\t});\n\t\treturn RowWithIcon('Shared', 'shared', tooltipText);\n\t}\n\tif (folder.isLink) {\n\t\tconst tooltipText = t('tooltip.folder_linked_status', 'Linked to me');\n\t\treturn RowWithIcon('Linked', 'linked', tooltipText);\n\t}\n\treturn <></>;\n};\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { useMemo } from 'react';\n\nimport { AccordionItem, Avatar, Padding, Row, Tooltip } from '@zextras/carbonio-design-system';\nimport { useUserAccount } from '@zextras/carbonio-shell-ui';\nimport styled from '@emotion/styled';\n\nimport { StatusIcon } from './status-icon';\nimport { getFolderIconColor, getFolderIconName, getFolderTranslatedName } from './utils';\nimport { FOLDERS } from '../../../constants/folders';\nimport { ROOT_NAME } from '../../../constants/utils';\nimport { Folder } from '../../../types';\n\nconst FittedRow = styled(Row)`\n\tmax-width: calc(100% - (2 * ${({ theme }): string => theme.sizes.padding.small}));\n\theight: 3rem;\n`;\n\nexport const FolderAccordionCustomComponent = ({\n\tfolder\n}: {\n\tfolder: Folder;\n}): React.JSX.Element => {\n\tconst accountName = useUserAccount().name;\n\n\tconst textProps: { size: 'small' } = useMemo(\n\t\t() => ({\n\t\t\tsize: 'small'\n\t\t}),\n\t\t[]\n\t);\n\tconst accordionItem = useMemo(\n\t\t() => ({\n\t\t\t...folder,\n\t\t\tlabel:\n\t\t\t\tfolder.id === FOLDERS.USER_ROOT\n\t\t\t\t\t? accountName\n\t\t\t\t\t: (getFolderTranslatedName({ folderId: folder.id, folderName: folder.name }) ?? ''),\n\t\t\ticon: getFolderIconName(folder) ?? undefined,\n\t\t\ticonColor: getFolderIconColor(folder) ?? '',\n\t\t\ttextProps\n\t\t}),\n\t\t[folder, accountName, textProps]\n\t);\n\n\t// hide folders where a share was provided and subsequently removed\n\tif (folder.isLink && folder.broken) {\n\t\treturn <></>;\n\t}\n\n\tconst showAvatar =\n\t\tfolder.id === FOLDERS.USER_ROOT || (folder.isLink && folder.oname === ROOT_NAME);\n\n\treturn (\n\t\t<FittedRow>\n\t\t\t{showAvatar && (\n\t\t\t\t<Padding left=\"small\">\n\t\t\t\t\t<Avatar label={accordionItem.label} colorLabel={accordionItem.iconColor} size=\"medium\" />\n\t\t\t\t</Padding>\n\t\t\t)}\n\t\t\t<Tooltip label={accordionItem.label} placement=\"right\" maxWidth=\"100%\">\n\t\t\t\t<AccordionItem data-testid={`accordion-folder-item-${folder.id}`} item={accordionItem}>\n\t\t\t\t\t<StatusIcon folder={folder} />\n\t\t\t\t</AccordionItem>\n\t\t\t</Tooltip>\n\t\t</FittedRow>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { sortBy } from 'lodash';\n\nimport { FOLDERS } from '../../../constants/folders';\nimport { isRoot } from '../../../helpers/folders';\nimport { Folders } from '../../../types/folder';\nimport type { Folder, FolderView, TreeNode } from '../../../types/folder';\n\nconst hasId = (f: { id: string }, id: string): boolean => f.id.split(':').includes(id);\n\nconst isTrash = (f: { id: string }): boolean => hasId(f, FOLDERS.TRASH);\n\nexport const isNestedInTrash = (item: { absFolderPath?: string }): boolean =>\n\t!!item?.absFolderPath?.includes(`/Trash/`);\n\nexport const isTrashOrNestedInIt = (item: { id: string; absFolderPath?: string }): boolean =>\n\tisTrash(item) || isNestedInTrash(item);\n\nexport const folderViewFilter =\n\t(v: FolderView) =>\n\t(deep?: boolean) =>\n\t(f: Folder): boolean =>\n\t\tf.view === v || !deep || (typeof f.view === 'undefined' && !isRoot(f.id));\n\nexport const filterNodes = <T>(\n\tchildren: TreeNode<T>[],\n\tf: (deep?: boolean) => (i: TreeNode<T>) => boolean,\n\tsortFunction?: (i: TreeNode<T>) => number | string,\n\tdeep?: boolean\n): TreeNode<T>[] => {\n\tconst childrenSorted = sortFunction ? sortBy(children, sortFunction) : children;\n\treturn childrenSorted\n\t\t.filter(f(deep))\n\t\t.map((i) => ({ ...i, children: filterNodes<TreeNode<T>>(i.children, f, sortFunction, true) }));\n};\n\ntype MapNodesOptions<T, U> = {\n\tmapFunction: (i: TreeNode<T>) => U;\n\tfilterFunction: (deep?: boolean) => (i: TreeNode<T>) => boolean;\n\trecursionKey: keyof U;\n\tsortFunction: (i: TreeNode<T>) => number | string;\n\tdeep: boolean;\n};\nexport const mapNodes = <T, U>(\n\tchildren: TreeNode<T>[],\n\t{ mapFunction, filterFunction, recursionKey, sortFunction, deep }: MapNodesOptions<T, U>\n): U[] =>\n\tsortBy(children, sortFunction).reduce((acc, folder) => {\n\t\tif (filterFunction(deep)(folder)) {\n\t\t\tacc.push({\n\t\t\t\t...mapFunction(folder),\n\t\t\t\t[recursionKey]: mapNodes<TreeNode<T>, U>(folder.children, {\n\t\t\t\t\tmapFunction,\n\t\t\t\t\tfilterFunction,\n\t\t\t\t\trecursionKey,\n\t\t\t\t\tsortFunction,\n\t\t\t\t\tdeep: true\n\t\t\t\t})\n\t\t\t});\n\t\t}\n\t\treturn acc;\n\t}, [] as U[]);\n\n/**\n * Recursive function that returns a flat map of the children folders\n * @param children\n */\nexport const getFlatChildrenFolders = (children: Array<Folder>): Folders => {\n\tlet destination: Folders = {};\n\tchildren.forEach((child) => {\n\t\tdestination[child.id] = child;\n\t\tif (child.children) {\n\t\t\tdestination = { ...destination, ...getFlatChildrenFolders(child.children) };\n\t\t}\n\t});\n\n\treturn destination;\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { useMemo } from 'react';\n\nimport { filter, find, keyBy, some, values } from 'lodash';\n\nimport { useFolderStore } from './store';\nimport { getFlatChildrenFolders } from './utils';\nimport { FOLDERS } from '../../../constants/folders';\nimport { ROOT_NAME } from '../../../constants/utils';\nimport type { Folder, Folders, LinkFolder, SearchFolder, Searches } from '../../../types';\n\n/**\n * Returns the folder with given ID or undefined\n * @params id */\nexport const useFolder = (id: string): Folder | undefined => useFolderStore((s) => s.folders?.[id]);\n\n/**\n * Returns the folder with given ID or undefined\n * @params id */\nexport const getFolder = (id: string): Folder | undefined =>\n\tuseFolderStore.getState()?.folders?.[id];\n\n/**\n * Returns a folders' map including roots and links. Each folder has its own tree structure included inside its children\n */\nexport const useFoldersMap = (): Folders => useFolderStore((s) => s.folders);\n\n/**\n * Returns a folders' map including roots and links. Each folder has its own tree structure included inside its children\n */\nexport const getFoldersMap = (): Folders => useFolderStore.getState().folders;\n\n/**\n * Returns a folders' array including only links. Each folder has its own tree structure included inside its children\n */\nexport const getLinksArray = (view?: string): Array<LinkFolder> =>\n\tfilter(values(useFolderStore.getState().folders), (folder: Folder) => {\n\t\tif (view && folder.view !== view) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn folder.isLink;\n\t}) as Array<LinkFolder>;\n\n/**\n * Returns the root folder id for a given folder\n * @param folder a Folder or LinkFolder\n * @returns the root folder id or null if the folder is not a link or the root folder\n */\nfunction getRootFolderId(folder: Folder | LinkFolder): string {\n\tconst parent = folder?.parent && getFolder(folder.parent);\n\tif ('oname' in folder && folder?.oname === ROOT_NAME) {\n\t\treturn folder.id;\n\t}\n\tif (parent) {\n\t\treturn getRootFolderId(parent);\n\t}\n\treturn folder.id;\n}\n\n/**\n * Returns the root folder of the provided folderId or undefined\n * @params id\n * @returns the root folder or undefined\n * */\nexport const useRoot = (id: string): Folder | undefined =>\n\tuseFolderStore((s) => {\n\t\tconst folder = s.folders?.[id];\n\t\tif (folder) {\n\t\t\tconst rootFolderId = getRootFolderId(folder);\n\t\t\treturn s.folders?.[rootFolderId];\n\t\t}\n\t\treturn undefined;\n\t});\n\n/**\n * Returns the root folder of the provided folderId or undefined\n * @params id\n * @returns the root folder or undefined\n * */\nexport const getRoot = (id: string): Folder | undefined => {\n\tconst folder = useFolderStore.getState().folders?.[id];\n\tif (folder) {\n\t\tconst rootFolderId = getRootFolderId(folder);\n\t\treturn useFolderStore.getState().folders?.[rootFolderId];\n\t}\n\treturn undefined;\n};\n\n/**\n * Returns a roots' array. Each root has its own tree structure included inside its children\n */\nexport const useRootsArray = (): Array<Folder> =>\n\tuseFolderStore((s) => filter(s.folders, (f) => f.id?.split(':')?.includes(FOLDERS.USER_ROOT)));\n\n/**\n * Returns a roots' array. Each root has its own tree structure included inside its children\n */\nexport const getRootsArray = (): Array<Folder> =>\n\tfilter(useFolderStore.getState().folders, (f) => f.id?.split(':')?.includes(FOLDERS.USER_ROOT));\n\n/**\n * Returns a roots' map. Each root has its own tree structure included inside its children\n */\nexport const useRootsMap = (): Record<string, Folder> =>\n\tuseFolderStore((s) =>\n\t\tkeyBy(\n\t\t\tfilter(s.folders, (f) => f.id?.split(':')?.includes(FOLDERS.USER_ROOT)),\n\t\t\t'id'\n\t\t)\n\t);\n\n/**\n * Returns a roots' map. Each root has its own tree structure included inside its children\n */\nexport const getRootsMap = (): Record<string, Folder> =>\n\tkeyBy(\n\t\tfilter(useFolderStore.getState().folders, (f) => f.id?.split(':')?.includes(FOLDERS.USER_ROOT)),\n\t\t'id'\n\t);\n\n// ROOTS BY VIEW\n/**\n * Returns a root with given user ID.\n * @params userId\n */\nexport const useRootByUser = (\n\tuserId: string\n): Folder | SearchFolder | Record<string, never> | undefined =>\n\tuseFolderStore((s) => find(s.folders, (f) => f.name === userId));\n\n/**\n * Returns a root with given user ID.\n * @params userId\n */\nexport const getRootByUser = (\n\tuserId: string\n): Folder | SearchFolder | Record<string, never> | undefined => {\n\tconst { folders } = useFolderStore.getState();\n\treturn find(folders, (f) => f.name === userId);\n};\n\n/**\n * Returns the root account id for a given folder\n * @param folder a Folder or LinkFolder\n * @returns the root account id or null if the folder is not a link or the root folder\n */\nexport function getRootAccountId(id: string): string | undefined {\n\tconst roots = getRootsArray();\n\tconst root = find(roots, (r) => some(r.id?.split(':'), (v) => id?.split(':')?.includes(v)));\n\n\treturn root?.id;\n}\n\n/**\n * Return a flat array of folder that are children of the given root\n * @param rootId\n */\nexport const useFoldersMapByRoot = (rootId: string): Folders => {\n\tconst root = useRoot(rootId);\n\n\treturn useMemo(() => getFlatChildrenFolders(root?.children ?? []), [root?.children]);\n};\n\n/**\n * Return a flat array of folder that are children of the given root\n * @param rootId\n */\nexport const getFoldersArrayByRoot = (rootId: string): Array<Folder> => {\n\tconst root = getRoot(rootId);\n\tif (!root) {\n\t\treturn [];\n\t}\n\n\treturn Object.values(getFlatChildrenFolders(root.children));\n};\n\n// SEARCHES\nexport const useSearchFolder = (id: string): SearchFolder | undefined =>\n\tuseFolderStore((s) => s.searches?.[id]);\nexport const getSearchFolder = (id: string): SearchFolder | undefined =>\n\tuseFolderStore.getState().searches[id];\nexport const useSearchFolders = (): Searches => useFolderStore((s) => s.searches);\nexport const getSearchFolders = (): Searches => useFolderStore.getState().searches;\n\n// useful hooks to update the value of a folder. Created because we don't receive acl data from notify when we modify folder grants.\n\n/**\n * Returns a callback function to update a specific folder.\n *\n * @returns callback function to update a specific folder\n */\nexport const useUpdateFolder = (): ((id: string, opt: Partial<Folder>) => void) =>\n\tuseFolderStore((s) => s.updateFolder);\n\n/**\n * Returns a callback function to update a specific folder.\n *\n * @returns callback function to update a specific folder\n */\nexport const getUpdateFolder = (): ((id: string, opt: Partial<Folder>) => void) =>\n\tuseFolderStore.getState().updateFolder;\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { useMemo } from 'react';\n\nimport { sortBy } from 'lodash';\n\nimport { FOLDERS } from '../../../constants/folders';\nimport { getFolderIdParts } from '../../../helpers/folders';\nimport { getRootsArray, useRootsArray } from '../../../store/zustand/folder/hooks';\nimport { Folder } from '../../../types';\n\n/**\n * calculate the sorting criteria for a given folder\n * system folders are placed before user folders\n * the trash folder is always the last one\n * @param folder\n * @returns the sorting criteria\n */\nexport const getSortCriteria = (folder: Folder): string => {\n\tconst { id } = getFolderIdParts(folder.id);\n\tif (id === FOLDERS.TRASH) {\n\t\treturn FOLDERS.LAST_SYSTEM_FOLDER_POSITION;\n\t}\n\treturn parseInt(id ?? '', 10) < 17 ? ` ${id}` : folder.name.toLowerCase();\n};\n\n/**\n * recursively sort the children of a folder according to a given sort function\n * @param children\n * @param sortFunction\n * @returns the sorted children\n */\nexport const sortFolders = ({\n\tchildren,\n\tsortFunction\n}: {\n\tchildren: Folder[];\n\tsortFunction: (folder: Folder) => number | string;\n}): Folder[] => {\n\tconst childrenSorted = sortBy(children, sortFunction);\n\treturn childrenSorted.map((folder) => ({\n\t\t...folder,\n\t\tchildren: sortFolders({ children: folder.children, sortFunction })\n\t}));\n};\n\n/**\n * sorts the children of the useRootsArray hook according to the specified sort function\n * @returns the sorted children\n */\nexport const useFolders = (): Array<Folder> => {\n\tconst roots = useRootsArray();\n\treturn useMemo(() => sortFolders({ children: roots, sortFunction: getSortCriteria }), [roots]);\n};\n\n/**\n * sorts the children of the getRootsArray hook according to the specified sort function\n * @returns the sorted children\n */\nexport const getFolders = (): Array<Folder> => {\n\tconst roots = getRootsArray();\n\treturn sortFolders({ children: roots, sortFunction: getSortCriteria });\n};\n","/* eslint-disable @typescript-eslint/no-use-before-define */\n/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { ChangeEvent, ReactElement, useMemo, useState } from 'react';\n\nimport { Button, Container, Input, Padding, ThemeProvider } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\n\nimport { FlatFolders } from './flat-folders';\nimport { FolderAccordionCustomComponent } from './folder-accordions-custom-component';\nimport { FoldersAccordion } from './folders-accordion';\nimport { useFolders } from './hooks';\nimport { FOLDERS } from '../../../constants/folders';\nimport { getFolder } from '../../../store/zustand/folder/hooks';\nimport { Folder } from '../../../types';\nimport { themeMuiExtension } from '../../../theme/theme-mui';\n\nexport type FolderSelectorProps = {\n\tinputLabel?: string;\n\tonNewFolderClick?: () => void;\n\tselectedFolderId?: string;\n\tonFolderSelected: (arg: Folder) => void;\n\tshowSharedAccounts: boolean;\n\tallowRootSelection: boolean;\n\tfilterChildren?: (folder: Folder) => boolean;\n};\n\nexport const FolderSelector = ({\n\tinputLabel,\n\tonNewFolderClick,\n\tselectedFolderId,\n\tonFolderSelected,\n\tallowRootSelection,\n\tshowSharedAccounts,\n\tfilterChildren\n}: FolderSelectorProps): ReactElement => {\n\tconst [inputValue, setInputValue] = useState('');\n\tconst selectedFolder = selectedFolderId && getFolder(selectedFolderId);\n\tconst folders = useFolders();\n\tconst rootFolders = useMemo<Array<Folder>>(\n\t\t() => (showSharedAccounts ? folders : folders.filter((root) => root.id === FOLDERS.USER_ROOT)),\n\t\t[folders, showSharedAccounts]\n\t);\n\tconst disabledFolderIdsSelection = allowRootSelection\n\t\t? []\n\t\t: rootFolders.map((folder) => folder.id);\n\n\tconst [t] = useTranslation();\n\n\tconst inputName = selectedFolder ? selectedFolder.name : '';\n\treturn (\n\t\t<>\n\t\t\t<Input\n\t\t\t\tdata-testid={'folder-name-filter'}\n\t\t\t\tinputName={inputName}\n\t\t\t\tlabel={inputLabel ?? t('label.filter_folders', 'Filter folders')}\n\t\t\t\tbackgroundColor=\"gray5\"\n\t\t\t\tvalue={inputValue}\n\t\t\t\tonChange={(e: ChangeEvent<HTMLInputElement>): void => setInputValue(e.target.value)}\n\t\t\t/>\n\t\t\t<Container\n\t\t\t\tstyle={{ overflowY: 'auto', display: 'block' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\twidth=\"fill\"\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\tminHeight=\"30vh\"\n\t\t\t\tmaxHeight=\"60vh\"\n\t\t\t>\n\t\t\t\t{inputValue.length > 0 ? (\n\t\t\t\t\t<FlatFolders\n\t\t\t\t\t\trootFolders={rootFolders}\n\t\t\t\t\t\tsearchString={inputValue}\n\t\t\t\t\t\tonFolderSelected={onFolderSelected}\n\t\t\t\t\t\tselectedFolderId={selectedFolderId}\n\t\t\t\t\t\tallowRootSelection={allowRootSelection}\n\t\t\t\t\t\tfilterChildren={filterChildren}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<ThemeProvider extension={themeMuiExtension}>\n\t\t\t\t\t\t<Padding vertical=\"medium\" />\n\t\t\t\t\t\t<FoldersAccordion\n\t\t\t\t\t\t\tfolders={rootFolders}\n\t\t\t\t\t\t\tonFolderSelected={onFolderSelected}\n\t\t\t\t\t\t\tselectedFolderId={selectedFolderId}\n\t\t\t\t\t\t\tdisabledFolderIds={disabledFolderIdsSelection}\n\t\t\t\t\t\t\tFolderAccordionCustomComponent={FolderAccordionCustomComponent}\n\t\t\t\t\t\t\tfilterChildren={filterChildren}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ThemeProvider>\n\t\t\t\t)}\n\t\t\t</Container>\n\t\t\t{onNewFolderClick && (\n\t\t\t\t<Container\n\t\t\t\t\tpadding={{ top: 'medium', bottom: 'medium' }}\n\t\t\t\t\tmainAlignment=\"center\"\n\t\t\t\t\tcrossAlignment=\"flex-start\"\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"ghost\"\n\t\t\t\t\t\tlabel={t('label.new_folder', 'New Folder')}\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\tonClick={onNewFolderClick}\n\t\t\t\t\t/>\n\t\t\t\t</Container>\n\t\t\t)}\n\t\t</>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { ReactElement } from 'react';\n\nimport { Container, Icon, Padding, Row, Text, getColor } from '@zextras/carbonio-design-system';\nimport styled from '@emotion/styled';\n\nimport { CustomLabelFactoryProps } from '../../types/select';\n\nexport const Square = styled.div<{ $disabled?: boolean; $color: string | undefined }>`\n\twidth: 1rem;\n\theight: 1rem;\n\tbackground: ${({ $color }): string | undefined => $color};\n\tborder-radius: 0.25rem;\n\topacity: ${({ $disabled }): number => ($disabled ? 0.5 : 1)};\n`;\n\nconst ColorContainer = styled(Container)`\n\tborder-bottom: 0.0625rem solid ${({ theme }): string => theme.palette.gray2.regular};\n\ttransition: background 0.2s ease-out;\n\t&:hover {\n\t\tbackground: ${({ theme, background }): string => getColor(`${background}.hover`, theme)};\n\t}\n`;\n\nconst TextUpperCase = styled(Text)`\n\ttext-transform: capitalize;\n\tcolor: ${({ theme, disabled }): string =>\n\t\tdisabled ? theme.palette.text.disabled : theme.palette.text.regular};\n`;\n\nexport const FolderSelectorLabelFactory = ({\n\tselected,\n\tlabel,\n\topen,\n\tfocus,\n\tdisabled\n}: CustomLabelFactoryProps): ReactElement => (\n\t<ColorContainer\n\t\torientation=\"horizontal\"\n\t\twidth=\"fill\"\n\t\tcrossAlignment=\"center\"\n\t\tmainAlignment=\"space-between\"\n\t\tborderRadius=\"half\"\n\t\tpadding={{\n\t\t\tall: 'small'\n\t\t}}\n\t\tbackground=\"gray5\"\n\t\tstyle={{ cursor: disabled ? 'no-drop' : 'pointer' }}\n\t>\n\t\t<Row width=\"100%\" takeAvailableSpace mainAlignment=\"space-between\">\n\t\t\t<Row\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tcrossAlignment=\"flex-start\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\tpadding={{ left: 'small' }}\n\t\t\t>\n\t\t\t\t<Text\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tcolor={(disabled && 'text.disabled') || ((open || focus) && 'primary') || 'secondary'}\n\t\t\t\t>\n\t\t\t\t\t{label}\n\t\t\t\t</Text>\n\t\t\t\t<Row>\n\t\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t\t<Square $color={selected[0].color} $disabled={disabled} />\n\t\t\t\t\t</Padding>\n\t\t\t\t\t<TextUpperCase disabled={disabled}>{selected[0].label}</TextUpperCase>\n\t\t\t\t</Row>\n\t\t\t</Row>\n\t\t</Row>\n\t\t<Icon\n\t\t\tsize=\"large\"\n\t\t\ticon={open ? 'ChevronUpOutline' : 'ChevronDownOutline'}\n\t\t\tdisabled={disabled}\n\t\t\tcolor={(disabled && 'text.disabled') || ((open || focus) && 'primary') || 'secondary'}\n\t\t\tstyle={{ alignSelf: 'center' }}\n\t\t/>\n\t</ColorContainer>\n);\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { useMemo } from 'react';\n\nimport type { SelectProps, SingleSelectionOnChange } from '@zextras/carbonio-design-system';\nimport { Container, Icon, Padding, Row, Select, Text } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\nimport styled from '@emotion/styled';\n\nimport { ZIMBRA_STANDARD_COLORS } from '../../constants/utils';\nimport { CustomLabelFactoryProps } from '../../types/select';\n\nconst Square = styled.div<{ $color: string }>`\n\twidth: 1.125rem;\n\theight: 1.125rem;\n\tposition: relative;\n\ttop: -0.1875rem;\n\tborder: 0.0625rem solid ${({ theme }): string => theme.palette.gray2.regular};\n\tbackground: ${({ $color }): string | undefined => $color};\n\tborder-radius: 0.25rem;\n`;\n\nexport const ColorContainer = styled(Container)`\n\tborder-bottom: 0.0625rem solid ${({ theme }): string => theme.palette.gray2.regular};\n\tcursor: 'pointer';\n`;\n\nexport const TextUpperCase = styled(Text)`\n\ttext-transform: capitalize;\n`;\n\nconst LabelFactory = ({\n\tselected,\n\tlabel,\n\topen,\n\tfocus\n}: CustomLabelFactoryProps): React.JSX.Element => (\n\t<ColorContainer\n\t\torientation=\"horizontal\"\n\t\twidth=\"fill\"\n\t\tcrossAlignment=\"center\"\n\t\tmainAlignment=\"space-between\"\n\t\tborderRadius=\"half\"\n\t\tbackground=\"gray5\"\n\t\tpadding={{\n\t\t\tall: 'small'\n\t\t}}\n\t>\n\t\t<Row width=\"100%\" takeAvailableSpace mainAlignment=\"space-between\">\n\t\t\t<Row\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tcrossAlignment=\"flex-start\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\tpadding={{ left: 'small' }}\n\t\t\t>\n\t\t\t\t<Text size=\"small\" color={open || focus ? 'primary' : 'secondary'}>\n\t\t\t\t\t{label}\n\t\t\t\t</Text>\n\t\t\t\t<TextUpperCase>{selected[0].label}</TextUpperCase>\n\t\t\t</Row>\n\t\t\t<Padding right=\"small\">\n\t\t\t\t<Square $color={ZIMBRA_STANDARD_COLORS[parseInt(selected[0].value, 10)].hex} />\n\t\t\t</Padding>\n\t\t</Row>\n\t\t<Icon\n\t\t\tsize=\"large\"\n\t\t\ticon={open ? 'ChevronUpOutline' : 'ChevronDownOutline'}\n\t\t\tcolor={open || focus ? 'primary' : 'secondary'}\n\t\t\tstyle={{ alignSelf: 'center' }}\n\t\t/>\n\t</ColorContainer>\n);\n\nexport type ColorSelectProps = {\n\tonChange: SingleSelectionOnChange;\n\tdefaultColor: number;\n\tlabel: string;\n};\n\nexport const ColorSelect = ({\n\tonChange,\n\tdefaultColor = 0,\n\tlabel\n}: ColorSelectProps): React.JSX.Element => {\n\tconst [t] = useTranslation();\n\tconst colors = useMemo<SelectProps['items']>(\n\t\t() =>\n\t\t\tZIMBRA_STANDARD_COLORS.map((el, index) => {\n\t\t\t\tconst colorLabel = t(`colors.${el.zLabel}`, el.zLabel);\n\t\t\t\treturn {\n\t\t\t\t\tlabel: colorLabel,\n\t\t\t\t\tvalue: index.toString(),\n\t\t\t\t\tcustomComponent: (\n\t\t\t\t\t\t<Container\n\t\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\t\tmainAlignment=\"space-between\"\n\t\t\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\t\t\theight=\"fit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Padding left=\"small\">\n\t\t\t\t\t\t\t\t<TextUpperCase>{colorLabel}</TextUpperCase>\n\t\t\t\t\t\t\t</Padding>\n\t\t\t\t\t\t\t<Square $color={el.hex} />\n\t\t\t\t\t\t</Container>\n\t\t\t\t\t)\n\t\t\t\t};\n\t\t\t}),\n\t\t[t]\n\t);\n\tconst defaultSelection = useMemo(() => colors[defaultColor], [colors, defaultColor]);\n\n\treturn (\n\t\t<Select\n\t\t\tlabel={label}\n\t\t\tonChange={onChange}\n\t\t\titems={colors}\n\t\t\tdefaultSelection={defaultSelection}\n\t\t\tLabelFactory={LabelFactory}\n\t\t\tdata-testid=\"color-select\"\n\t\t/>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { FC, ReactElement, useCallback, useMemo } from 'react';\n\nimport { Padding, Row, Select, SelectItem } from '@zextras/carbonio-design-system';\nimport { find, map } from 'lodash';\n\nimport { TextUpperCase } from './color-select';\nimport { FolderSelectorLabelFactory, Square } from './select-label-factory';\nimport { FOLDERS } from '../../constants/folders';\nimport { useRoot } from '../../store/zustand/folder/hooks';\nimport type { FolderSelectorItem, OnChangeSelect } from '../../types/select';\n\ntype FolderSelectorProps = {\n\tdefaultFolderId: string;\n\tonChange: OnChangeSelect;\n\tlabel?: string;\n\tfolderItems: FolderSelectorItem[];\n\tdisabled?: boolean;\n};\n\nconst FolderNameRender: FC<{ folder: FolderSelectorItem }> = ({ folder }) => {\n\tconst root = useRoot(folder.value ?? '');\n\treturn (\n\t\t<Row wrap={'nowrap'}>\n\t\t\t<Padding right=\"small\">\n\t\t\t\t<Square $color={folder.color} />\n\t\t\t</Padding>\n\t\t\t<TextUpperCase>{folder.label}</TextUpperCase>\n\t\t\t<Row takeAvailableSpace>\n\t\t\t\t{root && root.id !== FOLDERS.USER_ROOT && (\n\t\t\t\t\t<Padding left=\"small\" style={{ overflow: 'hidden' }}>\n\t\t\t\t\t\t<TextUpperCase color={'gray1'}>{`(${root.name})`}</TextUpperCase>\n\t\t\t\t\t</Padding>\n\t\t\t\t)}\n\t\t\t</Row>\n\t\t</Row>\n\t);\n};\n\nexport const FoldersSelector = ({\n\tdefaultFolderId,\n\tonChange,\n\tlabel,\n\tfolderItems,\n\tdisabled\n}: FolderSelectorProps): ReactElement | null => {\n\tconst items = useMemo(\n\t\t() =>\n\t\t\tmap(folderItems, (item) => ({\n\t\t\t\tlabel: item.label,\n\t\t\t\tvalue: item.value,\n\t\t\t\tcolor: item.color,\n\t\t\t\tcustomComponent: <FolderNameRender folder={item}></FolderNameRender>\n\t\t\t})),\n\t\t[folderItems]\n\t);\n\n\tconst defaultFolderSelection = useMemo(() => {\n\t\tconst defaultFold = find(items, ['value', defaultFolderId]);\n\t\tconst defaultFolder = {\n\t\t\tvalue: defaultFold?.value ?? items?.[0]?.value,\n\t\t\tlabel: defaultFold?.label ?? items?.[0]?.label,\n\t\t\tcolor: defaultFold?.color ?? items?.[0]?.color\n\t\t};\n\t\treturn find(items, ['value', defaultFolderId]) ?? defaultFolder;\n\t}, [items, defaultFolderId]);\n\n\tconst onSelectedFolderChange = useCallback(\n\t\t(id: string | null | Array<SelectItem>) => onChange(id),\n\t\t[onChange]\n\t);\n\n\treturn items && defaultFolderSelection ? (\n\t\t<Select\n\t\t\tlabel={label}\n\t\t\tonChange={onSelectedFolderChange}\n\t\t\titems={items}\n\t\t\tdefaultSelection={defaultFolderSelection}\n\t\t\tdisablePortal\n\t\t\tdisabled={disabled}\n\t\t\tLabelFactory={FolderSelectorLabelFactory}\n\t\t/>\n\t) : null;\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React from 'react';\n\nimport styled from '@emotion/styled';\nimport { AnyColor, getColor, ListItem, ListItemProps } from '@zextras/carbonio-design-system';\n\nconst StyledCustomListItem = styled(ListItem)<{\n\t$baseBackgroundColor: AnyColor;\n\t$focusBackgroundColor: AnyColor;\n}>`\n\ttransition: none;\n\t&:focus,\n\t&:active {\n\t\tbackground: ${({ $focusBackgroundColor, theme }): string =>\n\t\t\tgetColor($focusBackgroundColor, theme)};\n\t}\n\n\t&:hover {\n\t\tbackground: ${({ $baseBackgroundColor, theme }): string =>\n\t\t\tgetColor($baseBackgroundColor, theme)};\n\t\t&:focus,\n\t\t&:active {\n\t\t\tbackground: ${({ $focusBackgroundColor, theme }): string =>\n\t\t\t\tgetColor($focusBackgroundColor, theme)};\n\t\t}\n\t}\n`;\n\nexport const CustomListItem = React.forwardRef<HTMLDivElement, ListItemProps>(\n\tfunction CustomListItemFn(\n\t\t{\n\t\t\tbackground = 'gray6',\n\t\t\tactive,\n\t\t\tactiveBackground = 'highlight',\n\t\t\tselected,\n\t\t\tselectedBackground = 'gray5',\n\t\t\t...rest\n\t\t},\n\t\tref\n\t) {\n\t\treturn (\n\t\t\t<StyledCustomListItem\n\t\t\t\tref={ref}\n\t\t\t\t$baseBackgroundColor={\n\t\t\t\t\t(active && activeBackground) || (selected && selectedBackground) || background\n\t\t\t\t}\n\t\t\t\t$focusBackgroundColor={`${(active && activeBackground) || 'gray6'}.focus`}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t);\n\t}\n);\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { List } from '@zextras/carbonio-design-system';\nimport styled from '@emotion/styled';\n\nexport const CustomList = styled(List)`\n\tpadding-bottom: 0.25rem;\n\tmin-height: 0;\n`;\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { legacySoapFetch, SoapBody } from '@zextras/carbonio-ui-soap-lib';\n\nimport { Tag } from '../types/tags';\n\nexport type CreateTagRequest = SoapBody<{\n\ttag: Omit<Tag, 'id'>;\n}>;\n\nexport type CreateTagResponse = SoapBody<{\n\ttag: [Tag];\n}>;\n\nexport type TagActionRequest = SoapBody<{\n\taction: {\n\t\top: 'rename' | 'color' | 'delete' | 'update';\n\t\tid: string;\n\t\tname?: string;\n\t\tcolor?: number;\n\t\trgb?: string;\n\t};\n}>;\n\nexport type TagActionResponse = {\n\taction: { op: string; id: string };\n};\n\nexport const createTag = (tag: Omit<Tag, 'id'>): Promise<CreateTagResponse> =>\n\tlegacySoapFetch<CreateTagRequest, CreateTagResponse>('CreateTag', {\n\t\t_jsns: 'urn:zimbraMail',\n\t\ttag\n\t});\n\nexport const deleteTag = (id: string): Promise<TagActionResponse> =>\n\tlegacySoapFetch<TagActionRequest, TagActionResponse>('TagAction', {\n\t\t_jsns: 'urn:zimbraMail',\n\t\taction: { op: 'delete', id }\n\t});\n\nexport const renameTag = (id: string, name: string): Promise<TagActionResponse> =>\n\tlegacySoapFetch<TagActionRequest, TagActionResponse>('TagAction', {\n\t\t_jsns: 'urn:zimbraMail',\n\t\taction: { op: 'rename', id, name }\n\t});\n\nexport const changeTagColor = (id: string, color: string | number): Promise<TagActionResponse> =>\n\tlegacySoapFetch<TagActionRequest, TagActionResponse>('TagAction', {\n\t\t_jsns: 'urn:zimbraMail',\n\t\taction: typeof color === 'number' ? { op: 'color', color, id } : { op: 'color', rgb: color, id }\n\t});\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { FC, useCallback, useMemo } from 'react';\n\nimport { Container, Text, useSnackbar } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\n\nimport { deleteTag } from '../../soap/tags';\nimport type { DeleteTagModalPropsType } from '../../types/sidebar';\nimport { ModalFooter } from '../modals/modal-footer';\nimport { ModalHeader } from '../modals/modal-header';\n\nexport const DeleteTagModal: FC<DeleteTagModalPropsType> = ({ onClose, tag }) => {\n\tconst [t] = useTranslation();\n\tconst createSnackbar = useSnackbar();\n\n\tconst title = useMemo(\n\t\t() =>\n\t\t\tt('label.delete_tag_name', {\n\t\t\t\tname: tag?.name,\n\t\t\t\tdefaultValue: 'Delete \"{{name}}\" tag'\n\t\t\t}),\n\t\t[tag?.name, t]\n\t);\n\n\tconst onConfirm = useCallback(() => {\n\t\tif (tag)\n\t\t\tdeleteTag(tag?.id).then((res: any) => {\n\t\t\t\tif (res.action) {\n\t\t\t\t\tcreateSnackbar({\n\t\t\t\t\t\tkey: `delete-tag`,\n\t\t\t\t\t\treplace: true,\n\t\t\t\t\t\tseverity: 'success',\n\t\t\t\t\t\tlabel: t('messages.snackbar.tag_deleted', {\n\t\t\t\t\t\t\tname: tag?.name,\n\t\t\t\t\t\t\tdefaultValue: '{{name}} Tag deleted successfully'\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tautoHideTimeout: 3000,\n\t\t\t\t\t\thideButton: true\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tonClose();\n\t\t\t});\n\t}, [createSnackbar, onClose, t, tag]);\n\n\treturn (\n\t\t<>\n\t\t\t<ModalHeader onClose={onClose} title={title} />\n\t\t\t<Container padding={{ horizontal: 'large' }}>\n\t\t\t\t<Text>\n\t\t\t\t\t{t('message.delete_tag_message1', {\n\t\t\t\t\t\tname: tag?.name,\n\t\t\t\t\t\tdefaultValue: `Are you sure to delete \"{{name}}\" Tag?`\n\t\t\t\t\t})}\n\t\t\t\t</Text>\n\t\t\t\t<Text overflow=\"break-word\" style={{ textAlign: 'center' }}>\n\t\t\t\t\t{t(\n\t\t\t\t\t\t'message.delete_tag_message2',\n\t\t\t\t\t\t'Once deleted, it will be removed from every item marked with it.'\n\t\t\t\t\t)}\n\t\t\t\t</Text>\n\t\t\t</Container>\n\t\t\t<ModalFooter\n\t\t\t\tonConfirm={onConfirm}\n\t\t\t\tlabel={t('label.delete', 'Delete')}\n\t\t\t\tdisabled={false}\n\t\t\t\tcolor=\"error\"\n\t\t\t/>\n\t\t</>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { legacySoapFetch } from '@zextras/carbonio-ui-soap-lib';\nimport { isNil, omitBy } from 'lodash';\n\nimport { FolderView } from '../types/folder';\n\nexport const getFolderRequest = async (\n\t{ id, view }: { id?: string; view?: FolderView },\n\taccount?: string\n): Promise<any> => {\n\tconst body = omitBy(\n\t\t{\n\t\t\t_jsns: 'urn:zimbraMail',\n\t\t\tfolder: id\n\t\t\t\t? {\n\t\t\t\t\t\tl: id\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\t\tview,\n\t\t\ttr: 1\n\t\t},\n\t\tisNil\n\t);\n\treturn legacySoapFetch('GetFolder', body, account);\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { ErrorSoapBodyResponse, legacySoapFetch } from '@zextras/carbonio-ui-soap-lib';\nimport { isEmpty } from 'lodash';\n\nimport { ResFolder } from '../utils';\n\nexport type GetShareInfoRequest = {\n\t_jsns: string;\n\tincludeSelf: number;\n};\n\nexport type GetShareInfoResponse = {\n\t_jsns: string;\n\tshare: Array<ResFolder>;\n};\n\nexport const getShareInfoRequest = async (): Promise<{\n\tisFulfilled: boolean;\n\tfolders: Array<ResFolder>;\n}> => {\n\tconst result = await legacySoapFetch<\n\t\tGetShareInfoRequest,\n\t\tGetShareInfoResponse | ErrorSoapBodyResponse\n\t>('GetShareInfo', {\n\t\t_jsns: 'urn:zimbraAccount',\n\t\tincludeSelf: 0\n\t});\n\n\tif ('Fault' in result) {\n\t\treturn Promise.reject(result.Fault);\n\t}\n\n\treturn Promise.resolve({ isFulfilled: !isEmpty(result), folders: result?.share ?? [] });\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { useCallback, useEffect, useRef } from 'react';\n\nimport { useModal } from '@zextras/carbonio-design-system';\nimport { filter, map, reject } from 'lodash';\n\nimport { FolderInitializationErrorModal } from '../components/modals/folder-initialization-error-modal';\nimport { getFolderRequest } from '../soap/get-folder';\nimport { getShareInfoRequest } from '../soap/get-share-info';\nimport { FolderView } from '../types';\nimport { folderWorker } from '../worker';\n\nconst getFoldersByAccounts = async (sharedAccounts: unknown[], view: FolderView): Promise<any> =>\n\tPromise.all(\n\t\tmap(sharedAccounts, async ({ ownerEmail }: { ownerEmail: string }) => {\n\t\t\tconst response = await getFolderRequest({ view }, ownerEmail);\n\t\t\tif (response?.folder?.length) {\n\t\t\t\treturn {\n\t\t\t\t\t...response.folder[0],\n\t\t\t\t\toname: response.folder[0].name,\n\t\t\t\t\towner: ownerEmail,\n\t\t\t\t\tname: ownerEmail\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn response;\n\t\t})\n\t);\n\nexport const useInitializeFolders = (view: FolderView): void => {\n\tconst isLoading = useRef(false);\n\tconst { createModal, closeModal } = useModal();\n\n\tconst fetchFolders = useCallback(async (): Promise<void> => {\n\t\tPromise.all([getFolderRequest({ view }), getShareInfoRequest()])\n\t\t\t.then(async ([getFolderResponse, getShareInfoResponse]): Promise<void> => {\n\t\t\t\tisLoading.current = true;\n\t\t\t\tif (getShareInfoResponse.folders) {\n\t\t\t\t\tconst sharedAccounts = filter(getShareInfoResponse.folders, ['folderId', 1]);\n\t\t\t\t\tconst filteredLinks = reject(getFolderResponse.folder[0].link, ['rid', 1]);\n\n\t\t\t\t\tconst folders = sharedAccounts.length\n\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t...getFolderResponse.folder[0],\n\t\t\t\t\t\t\t\t\tlink: filteredLinks\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t...(await getFoldersByAccounts(sharedAccounts, view))\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t...getFolderResponse.folder[0],\n\t\t\t\t\t\t\t\t\tlink: filteredLinks\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t];\n\n\t\t\t\t\tfolderWorker.postMessage({\n\t\t\t\t\t\top: 'refresh',\n\t\t\t\t\t\tcurrentView: view,\n\t\t\t\t\t\tfolder: folders ?? []\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tfolderWorker.postMessage({\n\t\t\t\t\t\top: 'refresh',\n\t\t\t\t\t\tcurrentView: view,\n\t\t\t\t\t\tfolder: getFolderResponse.folder ?? []\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\tconst id = 'error-initialize-modal';\n\t\t\t\tcreateModal(\n\t\t\t\t\t{\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tchildren: <FolderInitializationErrorModal onClose={(): void => closeModal(id)} />\n\t\t\t\t\t},\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tisLoading.current = false;\n\t\t\t});\n\t}, [closeModal, createModal, view]);\n\n\tuseEffect(() => {\n\t\tif (!isLoading.current && view) {\n\t\t\tfetchFolders();\n\t\t}\n\t}, [fetchFolders, view]);\n};\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { ErrorSoapBodyResponse, legacySoapFetch } from '@zextras/carbonio-ui-soap-lib';\n\nimport { JSNS } from '../constants/utils';\n\n/**\n * TODO remove this file and use an export from @zextras/carbonio-ui-soap-lib\n * @see https://zextras.atlassian.net/browse/CO-2160\n */\n\ntype NoOpRequest = {\n\t_jsns: JSNS.MAIL;\n};\n\ntype NoOpResponse = { _jsns: JSNS.MAIL } | ErrorSoapBodyResponse;\n\n/**\n * @deprecated use the export from @zextras/carbonio-ui-soap-lib\n */\nexport const NoOp = async (): Promise<void> => {\n\tconst request = {\n\t\t_jsns: JSNS.MAIL\n\t} as const;\n\tconst response = await legacySoapFetch<NoOpRequest, NoOpResponse>('NoOp', request);\n\tif ('Fault' in response) {\n\t\tthrow new Error(response.Fault.Reason.Text);\n\t}\n};\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useCallback, useEffect } from 'react';\n\nimport { NoOp } from '../soap/no-op';\n\nexport const useUpdateView = (): void => {\n\tconst handler = useCallback((): void => {\n\t\tNoOp();\n\t}, []);\n\n\tuseEffect((): (() => void) => {\n\t\twindow.addEventListener('updateView', handler);\n\t\treturn function cleanup() {\n\t\t\twindow.removeEventListener('updateView', handler);\n\t\t};\n\t}, [handler]);\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useEffect, useState } from 'react';\n\nimport { useInfoRefresh } from '@zextras/carbonio-ui-soap-lib';\nimport { isEmpty } from 'lodash';\n\nimport { tagsWorker } from '../worker';\n\nexport const useInitializeTags = (): void => {\n\tconst [initialized, setInitialized] = useState(false);\n\tconst refresh = useInfoRefresh();\n\tuseEffect(() => {\n\t\tif (!isEmpty(refresh) && !initialized) {\n\t\t\tsetInitialized(true);\n\t\t\ttagsWorker.postMessage({\n\t\t\t\top: 'refresh',\n\t\t\t\ttags: refresh.tags\n\t\t\t});\n\t\t}\n\t}, [initialized, refresh]);\n};\n","import { FolderActionsType } from '../constants/folders';\nimport { Folder } from '../types/folder';\n\n/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nexport const isValidFolderName = (folderName: string): boolean => {\n\t// Check if the folder name is empty\n\tif (!folderName.trim()) {\n\t\treturn false;\n\t}\n\n\t// Regular expression pattern for invalid characters\n\tconst invalidChars = /[\"/:]/;\n\n\t// Check if the folder name contains any invalid characters\n\tif (invalidChars.test(folderName)) {\n\t\treturn false;\n\t}\n\n\t// Check if the folder name is too long (limit it to 128 characters)\n\tif (folderName.length > 128) {\n\t\treturn false;\n\t}\n\n\t// If all checks pass, the folder name is considered valid\n\treturn true;\n};\n\nexport const allowedActionOnSharedAccount = (folder: Folder, action: string): boolean => {\n\tconst permission = folder.perm;\n\tswitch (action) {\n\t\tcase FolderActionsType.NEW:\n\t\t\tif (permission)\n\t\t\t\tif (permission.includes('rwidx')) {\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\treturn true;\n\t\tcase FolderActionsType.SHARE:\n\t\t\tif (permission)\n\t\t\t\tif (permission.includes('rwidxa')) {\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn true;\n\t}\n};\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nconst legacyFallback = (text: string): Promise<void> => {\n\tconst textArea = window.parent.document.createElement('textarea');\n\twindow.parent.document.body.appendChild(textArea);\n\ttextArea.value = text;\n\ttextArea.select();\n\tconst success = window.parent.document.execCommand('copy');\n\twindow.parent.document.body.removeChild(textArea);\n\treturn new Promise<void>((resolve, reject) => {\n\t\tsuccess ? resolve() : reject();\n\t});\n};\n\nexport const copyToClipboard = (text: string): Promise<void> => {\n\tif (!window.parent.navigator.clipboard) {\n\t\treturn legacyFallback(text);\n\t}\n\n\treturn window.parent.navigator.clipboard.writeText(text);\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { getUserSettings } from '@zextras/carbonio-shell-ui';\nimport type { AccountSettingsPrefs } from '@zextras/carbonio-ui-soap-lib';\n\nexport const getPrefs = (): AccountSettingsPrefs => {\n\tconst { prefs } = getUserSettings();\n\treturn prefs;\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useUserSettings } from '@zextras/carbonio-shell-ui';\nimport type { AccountSettingsPrefs } from '@zextras/carbonio-ui-soap-lib';\n\nexport const usePrefs = (): AccountSettingsPrefs => {\n\tconst { prefs } = useUserSettings();\n\treturn prefs;\n};\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport type { SoapFault } from '@zextras/carbonio-ui-soap-lib';\nimport { TFunction } from 'i18next';\n\nexport abstract class SoapApiError extends Error {\n\tconstructor(protected fault: SoapFault) {\n\t\tsuper(fault.Reason.Text);\n\t}\n\n\tpublic abstract getLocalizedMessage(t: TFunction): string;\n}\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { TFunction } from 'i18next';\n\nimport { SoapApiError } from '../soap/errors/soap-api-error';\n\nexport function getErrorMessage(error: Error, t: TFunction): string {\n\tif (error instanceof SoapApiError) {\n\t\treturn error.getLocalizedMessage(t);\n\t}\n\n\treturn t('label.error_try_again', 'Something went wrong, please try again');\n}\n","/* eslint-disable @typescript-eslint/no-use-before-define */\n/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nexport function parseEmail(input: string): string | undefined {\n\tconst extracted = extractEmail(input);\n\treturn isValidEmail(extracted) ? extracted : undefined;\n}\n\nexport function isValidEmail(email: string | undefined): boolean {\n\t// eslint-disable-next-line max-len, prettier/prettier, no-useless-escape\n\tconst validEmailRegex = /^(?!\\.)[\\p{L}\\p{N}.+_\\-]+@[\\p{L}\\p{N}.+-]+\\.[\\p{L}\\p{N}]{2,}$/u;\n\treturn validEmailRegex.test(String(email).toLowerCase());\n}\n\nfunction extractEmail(input: string): string {\n\tconst trimmedInput = input.trim();\n\tconst caputured = /.*<(.*)>/.exec(trimmedInput);\n\tif (caputured && caputured.length > 1) {\n\t\treturn caputured[1].trim();\n\t}\n\treturn trimmedInput;\n}\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\ntype ErrorResponse<K> = { error: K };\n\ntype DataResponse<T> = { data: T };\n\nexport async function apiWrapper<T, K>(\n\tpromise: Promise<Response>\n): Promise<DataResponse<T> | ErrorResponse<K>> {\n\treturn Promise.allSettled([promise]).then(async ([result]) => {\n\t\tif (result.status === 'fulfilled') {\n\t\t\tconst responseBody = await result.value.text();\n\t\t\treturn responseBody ? { data: JSON.parse(responseBody) as T } : { data: {} as T };\n\t\t}\n\t\treturn { error: result.reason };\n\t});\n}\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { Account, getUserAccount, getUserSettings } from '@zextras/carbonio-shell-ui';\nimport { TFunction } from 'i18next';\nimport { filter, findIndex, flatten, isArray, map, remove, sortBy } from 'lodash';\n\nimport { getShareInfoRequest } from '../soap/get-share-info';\nimport { IdentityDescriptor } from '../types/identities';\n\ntype AccountItem = {\n\tid: string;\n\taddress: string;\n};\n\ntype AvailableAddress = any;\nexport function getSharedAccounts(): Promise<Array<AccountItem>> {\n\treturn getShareInfoRequest().then((res) => {\n\t\tconst sharedAccounts: Array<AccountItem> = [];\n\t\tif (res?.folders) {\n\t\t\tconst sharedRootFolders = filter(res.folders, ['folderId', 1]);\n\t\t\tsharedRootFolders.forEach((account) => {\n\t\t\t\tif (account.ownerId && account.ownerEmail) {\n\t\t\t\t\tsharedAccounts.push({ id: account.ownerId, address: account.ownerEmail });\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn sharedAccounts;\n\t});\n}\n\nexport function getDefaultAccount(): AccountItem | undefined {\n\tconst account = getUserAccount();\n\tif (!account) {\n\t\treturn undefined;\n\t}\n\treturn { id: account.id, address: account.name };\n}\n\nexport async function getOrderedAccountIds(\n\tpriorityAccountAddress?: string\n): Promise<Array<string>> {\n\tconst sharedAccounts = await getSharedAccounts();\n\tconst defaultAccount = getDefaultAccount();\n\tconst finalList = defaultAccount ? [defaultAccount].concat(...sharedAccounts) : sharedAccounts;\n\tconst sortedList = sortBy(finalList, (item: AccountItem) =>\n\t\titem.address === priorityAccountAddress ? 0 : 1\n\t);\n\treturn map(sortedList, (item: AccountItem) => item.id);\n}\n\n/**\n * The name of the primary identity\n */\nconst PRIMARY_IDENTITY_NAME = 'DEFAULT';\n\nconst NO_ACCOUNT_NAME = 'No account';\n\n/**\n * The type of the identities whose address does not match with any of the available addresses\n */\nconst UNKNOWN_IDENTITY_DEFAULT_TYPE = 'alias';\n\n/**\n * Returns the list of all the available addresses for the account and their type\n */\nconst getAvailableAddresses = (): Array<AvailableAddress> => {\n\tconst account = getUserAccount();\n\tconst settings = getUserSettings();\n\tconst result: Array<AvailableAddress> = [];\n\n\t// Adds the email address of the primary account\n\tresult.push({\n\t\taddress: account?.name ?? NO_ACCOUNT_NAME,\n\t\ttype: 'primary',\n\t\townerAccount: account?.name ?? NO_ACCOUNT_NAME\n\t});\n\n\t// Adds all the aliases\n\tif (settings.attrs.zimbraMailAlias) {\n\t\tif (isArray(settings.attrs.zimbraMailAlias)) {\n\t\t\tresult.push(\n\t\t\t\t...(settings.attrs.zimbraMailAlias as string[]).map<AvailableAddress>((alias: string) => ({\n\t\t\t\t\taddress: alias,\n\t\t\t\t\ttype: 'alias',\n\t\t\t\t\townerAccount: account?.name ?? NO_ACCOUNT_NAME\n\t\t\t\t}))\n\t\t\t);\n\t\t} else {\n\t\t\tresult.push({\n\t\t\t\taddress: settings.attrs.zimbraMailAlias as string,\n\t\t\t\ttype: 'alias',\n\t\t\t\townerAccount: account?.name ?? NO_ACCOUNT_NAME\n\t\t\t});\n\t\t}\n\t}\n\n\t// Adds the email addresses of all the delegation accounts\n\tif (account?.rights?.targets) {\n\t\taccount.rights.targets.forEach((target) => {\n\t\t\tif (target.target && (target.right === 'sendAs' || target.right === 'sendOnBehalfOf')) {\n\t\t\t\ttarget.target.forEach((user) => {\n\t\t\t\t\tif (user.type === 'account' && user.email) {\n\t\t\t\t\t\tuser.email.forEach((email) => {\n\t\t\t\t\t\t\tresult.push({\n\t\t\t\t\t\t\t\taddress: email.addr,\n\t\t\t\t\t\t\t\ttype: 'delegation',\n\t\t\t\t\t\t\t\tright: target.right,\n\t\t\t\t\t\t\t\townerAccount: email.addr\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\treturn result;\n};\n\n/**\n *\n * @param identities\n */\nconst sortIdentities = (\n\tidentities: Account['identities']['identity']\n): Account['identities']['identity'] => {\n\tconst allIdentities = [...identities];\n\tconst defaultIdentity = remove(\n\t\tallIdentities,\n\t\t(identity) => identity.name === PRIMARY_IDENTITY_NAME\n\t);\n\treturn [...defaultIdentity, ...allIdentities];\n};\n\n/**\n * @param email\n * @param rights\n */\nconst generateIdentityId = (email: string, rights: string): string => email + rights;\n\n/**\n * Returns the list of all the identities for the account. For each identity a type\n * is give, by matching the email address with all the available addresses, or by\n * setting a default one if the address does not match any of the available addresses.\n *\n * The function returns also an identity for each account for which the user is a delegate\n * (sendAs or sendOnBehalfOf) if there is no an already existing identity\n */\nexport const getIdentitiesDescriptors = (): Array<IdentityDescriptor> => {\n\tconst account = getUserAccount();\n\tconst identities: Array<IdentityDescriptor> = [];\n\n\t// Get the list of all the available email addresses for the account and their type\n\tconst availableEmailAddresses = getAvailableAddresses();\n\taccount?.identities?.identity &&\n\t\tsortIdentities(account.identities.identity)?.forEach((identity) => {\n\t\t\tconst fromAddress = identity._attrs?.zimbraPrefFromAddress ?? '';\n\t\t\tconst fromDisplay = identity._attrs?.zimbraPrefFromDisplay ?? '';\n\n\t\t\t// The receiving address for the primary identity is the account name\n\t\t\tconst receivingAddress = identity.name === PRIMARY_IDENTITY_NAME ? account.name : fromAddress;\n\n\t\t\t// Find the first match between the identity receiving email address and the available email addresses\n\t\t\tconst matchingReceivingAddress = availableEmailAddresses.find(\n\t\t\t\t(availableAddress) => availableAddress.address === receivingAddress\n\t\t\t);\n\n\t\t\tconst type = matchingReceivingAddress\n\t\t\t\t? matchingReceivingAddress.type\n\t\t\t\t: UNKNOWN_IDENTITY_DEFAULT_TYPE;\n\n\t\t\tconst right =\n\t\t\t\ttype === 'delegation' && matchingReceivingAddress\n\t\t\t\t\t? matchingReceivingAddress.right\n\t\t\t\t\t: undefined;\n\n\t\t\tidentities.push({\n\t\t\t\townerAccount: matchingReceivingAddress?.ownerAccount ?? account.name,\n\t\t\t\treceivingAddress,\n\t\t\t\tid: identity._attrs?.zimbraPrefIdentityId ?? '',\n\t\t\t\tidentityName: identity.name ?? '',\n\t\t\t\tidentityDisplayName: identity._attrs?.zimbraPrefIdentityName ?? '',\n\t\t\t\tfromDisplay,\n\t\t\t\tfromAddress,\n\t\t\t\ttype,\n\t\t\t\tright,\n\t\t\t\tdefaultSignatureId: identity._attrs?.zimbraPrefDefaultSignatureId,\n\t\t\t\tforwardReplySignatureId: identity._attrs?.zimbraPrefForwardReplySignatureId\n\t\t\t});\n\t\t});\n\n\tconst delegationAccounts = filter(\n\t\taccount?.rights?.targets,\n\t\t(rts) => rts.right === 'sendAs' || rts.right === 'sendOnBehalfOf'\n\t);\n\n\tconst delegationIdentities = flatten(\n\t\tmap(delegationAccounts, (ele) =>\n\t\t\tmap(ele?.target, (item: { d: string; type: string; email: Array<{ addr: string }> }) => ({\n\t\t\t\townerAccount: item.email[0].addr ?? account?.name ?? NO_ACCOUNT_NAME,\n\t\t\t\treceivingAddress: item.email[0].addr,\n\t\t\t\tid: generateIdentityId(item.email[0].addr, ele.right),\n\t\t\t\tidentityName: item.d,\n\t\t\t\tidentityDisplayName: item.d,\n\t\t\t\tfromDisplay: item.d,\n\t\t\t\tfromAddress: item.email[0].addr,\n\t\t\t\ttype: 'delegation',\n\t\t\t\tright: ele.right\n\t\t\t}))\n\t\t)\n\t);\n\n\tconst uniqueIdentityList: IdentityDescriptor[] = [...identities];\n\tif (delegationIdentities?.length) {\n\t\tmap(delegationIdentities, (ele: IdentityDescriptor) => {\n\t\t\tconst uniqIdentity = findIndex(identities, { fromAddress: ele.fromAddress });\n\t\t\tif (uniqIdentity < 0) uniqueIdentityList.push(ele);\n\t\t});\n\t\treturn uniqueIdentityList;\n\t}\n\n\treturn identities;\n};\n\nconst getDefaultIdentity = (): IdentityDescriptor =>\n\tgetIdentitiesDescriptors().reduce((result, identity) =>\n\t\tidentity.identityName === PRIMARY_IDENTITY_NAME ? identity : result\n\t);\n\n/**\n *\n * @param identity\n * @param t\n */\nexport const getIdentityDescription = (\n\tidentity: IdentityDescriptor,\n\tt: TFunction\n): string | null => {\n\tif (!identity) {\n\t\treturn null;\n\t}\n\tconst defaultIdentity = getDefaultIdentity();\n\n\treturn identity.right === 'sendOnBehalfOf'\n\t\t? `${t('label.on_behalf_of', 'on behalf of', {\n\t\t\t\taccountName: defaultIdentity.fromDisplay ?? '',\n\t\t\t\tidentity: identity.fromDisplay ?? identity.identityName,\n\t\t\t\totherAccount: identity.fromAddress\n\t\t\t})}`\n\t\t: `${identity.identityName ?? ''} (${identity.fromDisplay ?? ''} <${identity.fromAddress}>)`;\n};\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nexport const SEARCH_QUERY_PREFIXES = {\n\t/*\n\t * Specifies text that the message must contain. For example,\n\t * content:bananas finds all items containing the word \"bananas\".\n\t */\n\tcontent: 'content',\n\n\t/*\n\t * Specifies a sender name or email address that is in the From header.\n\t * This can be text, as in \"John Smith III\", an email address such as\n\t * joe@acme.com, or a domain such as zimbra.com.\n\t */\n\tfrom: 'from',\n\n\t/*\n\t * Same as from: except that it specifies one of the people to whom the\n\t * email was addressed in the To: header.\n\t */\n\tto: 'to',\n\n\t/*\n\t * Same as from: except that it specifies a recipient in the Cc: header\n\t * of the message.\n\t */\n\tcc: 'cc',\n\n\t/*\n\t * Specifies text that must appear in the subject header of the message.\n\t * An example might be subject:new vacation policy.\n\t */\n\tsubject: 'subject',\n\n\t/*\n\t * Specifies a folder. For example, in:sent would show all items in your\n\t * Sent folder.\n\t */\n\tin: 'in',\n\n\t/*\n\t * Specifies an attribute that the message must have. The types of object\n\t * you can specify are \"attachment\", \"phone\", or \"url\". For example,\n\t * has:attachment would find all messages which contain one or more\n\t * attachments of any type.\n\t */\n\thas: 'has',\n\n\t/*\n\t * Specifies an attachment file name. For example, filename:query.txt\n\t * would find messages with a file attachment named \"query.txt\".\n\t */\n\tfilename: 'filename',\n\n\t/*\n\t * Specifies a search within attachments of a specified type. The types\n\t * of attachment you can specify are \"text\", \"word\", \"excel\", and \"pdf\".\n\t * For example, type:word \"hello\" finds messages with attachments that\n\t * are Microsoft Word documents and searches within those attachments for\n\t * the word \"hello\".\n\t */\n\ttype: 'type',\n\n\t/*\n\t * Specifies any item with a certain type of attachment. For example,\n\t * attachment:word would find all messages with a Word file attachment.\n\t */\n\tattachment: 'attachment',\n\n\t/*\n\t * Searches for messages with a certain status. Allowable values are\n\t * \"unread\", \"read\", \"flagged\", \"unflagged\", \"sent\", \"draft\",\n\t * \"received\", \"replied\", \"unreplied\", \"forwarded\", \"unforwarded\",\n\t * \"anywhere\", \"remote\" (in a shared folder), \"local\", \"sent\". For\n\t * example, is:unread will find all unread messages.\n\t */\n\tis: 'is',\n\n\t/*\n\t * Use this keyword to specify a date, using the format that is default\n\t * for your browser's locale (for US English the format is mm/dd/yyyy).\n\t * For example, date:2/1/2010 would find messages dated February 1,\n\t * 2010. The greater than (>) or less than (<) symbols can be used\n\t * instead of after or before. >= and <= are also allowed.\n\t */\n\tdate: 'date',\n\n\t/*\n\t * Specifies mail sent after a certain date. For example, after:2/1/2010\n\t * specify mail sent after February 1, 2010.\n\t */\n\tafter: 'after',\n\n\t/*\n\t * Same as after: except specifies mail sent before the specified date.\n\t */\n\tbefore: 'before',\n\n\t/*\n\t * Specifies messages whose total size, including attachments, is a\n\t * specified number of bytes, kilobytes, or megabytes. For example,\n\t * size:12kb would find messages that are exactly 12K in size. The\n\t * greater than (>) or less than (<) symbols can be used instead of\n\t * bigger or smaller.\n\t */\n\tsize: 'size',\n\n\t/*\n\t * Similar to size: except specifies greater than the specified size.\n\t */\n\tlarger: 'larger',\n\n\t/*\n\t * Similar to size: except specifies smaller than the specified size.\n\t */\n\tsmaller: 'smaller',\n\n\t/*\n\t * Finds email messages that do not have a reply to them yet.\n\t */\n\tsolo: 'solo',\n\n\t/*\n\t * Finds messages which have been tagged with a specified tag. For\n\t * example, tag:amber will find message that have a tag called \"amber\"\n\t * applied.\n\t */\n\ttag: 'tag',\n\n\t/*\n\t * Finds messages, tasks or calendar items based on \"high\" \"low\"\n\t * priority. For example, priority:high will find items with a priority\n\t * setting of high.\n\t */\n\tpriority: 'priority'\n};\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { SEARCH_QUERY_PREFIXES } from '../constants/search';\n\ntype ConvertSearchChipToStringProps = {\n\tvalue?: string | boolean;\n\tlabel?: string | boolean;\n};\n\nconst WHOLE_QUERY_REGEX = new RegExp(\n\t`^(?:(${Object.values(SEARCH_QUERY_PREFIXES).join('|')}):)?(.+)$`,\n\t'im'\n);\n\nfunction getChipString(chip: ConvertSearchChipToStringProps): string {\n\tif (typeof chip.value === 'string' && chip.value !== '') {\n\t\treturn chip.value;\n\t}\n\n\tif (typeof chip.label === 'string' && chip.label !== '') {\n\t\treturn chip.label;\n\t}\n\n\treturn '';\n}\n\nconst QUOTED_TERM_REGEX = /^\"([^\"]+)\"$/im;\n\nconst MULTIWORD_TERM_REGEX = /^(\\S+\\s+\\S+.*)$/im;\n\nexport const convertSearchChipToString = (chip: ConvertSearchChipToStringProps): string => {\n\tconst match = getChipString(chip).match(WHOLE_QUERY_REGEX);\n\n\tif (!match) {\n\t\treturn getChipString(chip);\n\t}\n\n\tconst prefixAndColon = match[1] ? `${match[1]}:` : '';\n\tconst term = match[2].trim();\n\tconst isQuoted = QUOTED_TERM_REGEX.test(term);\n\tconst isMultiword = !isQuoted && MULTIWORD_TERM_REGEX.test(term);\n\n\treturn isMultiword ? `${prefixAndColon}\"${term}\"` : `${prefixAndColon}${term}`;\n};\n","/*\n * SPDX-FileCopyrightText: 2025 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useCallback, useMemo } from 'react';\n\nimport { useNavigate } from 'react-router-dom';\n\nexport type HistoryNavigation = {\n\treplaceHistory: (path: string) => void;\n\tpushHistory: (path: string) => void;\n};\n\nexport const useHistoryNavigation = (): HistoryNavigation => {\n\tconst navigate = useNavigate();\n\n\tconst replaceHistory = useCallback(\n\t\t(path: string): void => {\n\t\t\tnavigate(path, { replace: true });\n\t\t},\n\t\t[navigate]\n\t);\n\n\tconst pushHistory = useCallback(\n\t\t(path: string): void => {\n\t\t\tnavigate(path, { replace: false });\n\t\t},\n\t\t[navigate]\n\t);\n\n\treturn useMemo<HistoryNavigation>(\n\t\t() => ({\n\t\t\treplaceHistory,\n\t\t\tpushHistory\n\t\t}),\n\t\t[replaceHistory, pushHistory]\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { ContactType } from './types';\n\nexport const CONTACT_TYPES: ContactType = {\n\tGROUP: 'CONTACT_GROUP',\n\tDISTRIBUTION_LIST: 'DISTRIBUTION_LIST',\n\tCONTACT: 'CONTACT'\n};\nexport const EDIT_ACTION_ID = 'edit-contact-chip-action';\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React from 'react';\n\nimport { ChipInput, ChipItem } from '@zextras/carbonio-design-system';\n\nimport { CONTACT_TYPES } from './constants';\nimport { ContactInputItem, ContactInputProps, UserOrDL } from './types';\nimport { parseEmail } from '../helpers/email-parser';\n\nexport const DefaultContactInput = ({\n\tonChange,\n\tdefaultValue,\n\t// The following props are not used in this component, but are passed to the ChipInput component\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tdragAndDropEnabled: _dragAndDropEnabled,\n\t// The following props are not used in this component, but are passed to the ChipInput component\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\torderedAccountIds: _orderedAccountIds,\n\t// The following props are not used in this component, but are passed to the ChipInput component\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tchipLabelFactory: _labelFactory,\n\t...rest\n}: ContactInputProps): React.JSX.Element => {\n\tconst internalOnChange = (items: ChipItem<UserOrDL>[]): void => {\n\t\tonChange?.(items as Array<ContactInputItem>);\n\t};\n\tconst internalOnAdd = (email: unknown): ContactInputItem => {\n\t\tif (typeof email === 'string') {\n\t\t\tconst validEmail = parseEmail(email);\n\t\t\tconst finalEmail = validEmail ?? email;\n\t\t\treturn {\n\t\t\t\tid: finalEmail,\n\t\t\t\tlabel: finalEmail,\n\t\t\t\tvalue: {\n\t\t\t\t\tid: finalEmail,\n\t\t\t\t\temail,\n\t\t\t\t\ttype: CONTACT_TYPES.CONTACT\n\t\t\t\t},\n\t\t\t\terror: !validEmail\n\t\t\t};\n\t\t}\n\t\tthrow new Error('no value');\n\t};\n\treturn (\n\t\t<ChipInput<UserOrDL>\n\t\t\t{...rest}\n\t\t\tpasteSeparators={[',', ';', '\\n']}\n\t\t\tcreateChipOnPaste\n\t\t\tdefaultValue={defaultValue}\n\t\t\tseparators={[\n\t\t\t\t{ code: 'Enter', ctrlKey: false },\n\t\t\t\t{ code: 'NumpadEnter', ctrlKey: false },\n\t\t\t\t{ key: ',', ctrlKey: false },\n\t\t\t\t{ key: ';', ctrlKey: false }\n\t\t\t]}\n\t\t\tonChange={internalOnChange}\n\t\t\tonAdd={internalOnAdd}\n\t\t></ChipInput>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { FC } from 'react';\n\nimport { useIntegratedComponent } from '@zextras/carbonio-shell-ui';\n\nimport { DefaultContactInput } from './default-contact-input';\nimport { ContactInputProps } from './types';\n\nexport const useContactInput = (): FC<ContactInputProps> => {\n\tconst [ContactInput, integrationAvailable] =\n\t\tuseIntegratedComponent<FC<ContactInputProps>>('contact-input');\n\tif (integrationAvailable) {\n\t\treturn ContactInput;\n\t}\n\treturn DefaultContactInput;\n};\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport type { runSearch } from '@zextras/carbonio-search-ui';\nimport { useIntegratedFunction } from '@zextras/carbonio-shell-ui';\n\nexport const useRunSearchIntegration = (): typeof runSearch | undefined => {\n\tconst [runSearchFn, isAvailable] = useIntegratedFunction<typeof runSearch>('search-run-search');\n\n\treturn isAvailable ? runSearchFn : undefined;\n};\n","/*\n * SPDX-FileCopyrightText: 2024 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { TFunction } from 'i18next';\n\nimport { SoapApiError } from './soap-api-error';\n\n/**\n * Implements a generic API error which can be used when no specific error is available\n */\nexport class GenericSoapApiError extends SoapApiError {\n\t/**\n\t * Returns the generic localized message for the error\n\t * @param t - The translation function\n\t * @returns The localized message\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tpublic getLocalizedMessage(t: TFunction): string {\n\t\treturn t('label.error_try_again', 'Something went wrong, please try again');\n\t}\n}\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { create } from 'zustand';\n\nimport { TagState } from '../../../types/tags';\nimport { tagsWorker } from '../../../worker';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useTagStore = create<TagState>()(() => ({\n\ttags: {}\n}));\n\ntagsWorker.onmessage = ({ data }): void => {\n\tuseTagStore.setState(data);\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { orderBy, pick } from 'lodash';\n\nimport { useTagStore } from './store';\nimport { Tag, Tags } from '../../../types/tags';\n\nfunction sortTags(tags: Tags): Array<Tag> {\n\treturn orderBy(Object.values(tags), (tag: Tag) => tag.name.toLowerCase(), 'asc');\n}\n\nexport const useTags = (ids?: Array<string> | string): Tags =>\n\tuseTagStore((state) => (ids ? pick(state.tags, ids) : state.tags));\n\nexport const getTags = (ids?: Array<string> | string): Tags =>\n\tids ? pick(useTagStore.getState().tags, ids) : useTagStore.getState().tags;\n\nexport const useSortedTagsArray = (): Array<Tag> =>\n\tuseTagStore((state): Array<Tag> => sortTags(state.tags));\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nexport const ParticipantRole = {\n\tFROM: 'f',\n\tTO: 't',\n\tCARBON_COPY: 'c',\n\tBLIND_CARBON_COPY: 'b',\n\tREPLY_TO: 'r',\n\tSENDER: 's',\n\tREAD_RECEIPT_NOTIFICATION: 'n',\n\tRESENT_FROM: 'rf'\n} as const;\n\nexport type ParticipantRoleType = (typeof ParticipantRole)[keyof typeof ParticipantRole];\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { handleMessage } from './handle-message';\n\nonmessage = handleMessage;\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport type { SoapNotify } from '@zextras/carbonio-ui-soap-lib';\n\nimport type { Tag, TagMessage, Tags } from '../types/tags';\n\nexport const handleTagRefresh = (tags: Array<Tag>): Tags => {\n\tif (typeof tags !== 'undefined') {\n\t\treturn tags.reduce((acc: Tags, val: Tag): Tags => {\n\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\tacc[val.id] = val;\n\t\t\treturn acc;\n\t\t}, {});\n\t}\n\treturn {};\n};\n\nconst handleTagCreated = (tags: Tags, created?: Array<Tag>): Tags => {\n\tif (!created) return tags;\n\treturn created.reduce((acc: Tags, val: Tag): Tags => {\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tacc[val.id] = val;\n\t\treturn acc;\n\t}, tags);\n};\n\nconst handleTagModified = (tags: Tags, modified?: Array<Partial<Tag>>): Tags => {\n\tif (!modified) return tags;\n\treturn modified.reduce((acc: Tags, val: Partial<Tag>): Tags => {\n\t\tif (val.id) {\n\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\tacc[val.id] = { ...tags[val.id], ...val };\n\t\t}\n\t\treturn acc;\n\t}, tags);\n};\n\nconst handleTagDeleted = (tags: Tags, deleted?: string[]): Tags => {\n\tif (!deleted) return tags;\n\treturn deleted.reduce((acc, val) => {\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tdelete acc[val];\n\t\treturn acc;\n\t}, tags);\n};\n\nexport const handleTagNotify = (notify: SoapNotify, state: Tags): Tags =>\n\thandleTagDeleted(\n\t\thandleTagModified(handleTagCreated(state, notify.created?.tag), notify.modified?.tag),\n\t\tnotify.deleted\n\t);\n\nfunction deletedIdsContainTags({\n\tdeletedIds,\n\ttagIds\n}: {\n\tdeletedIds: Array<string>;\n\ttagIds?: Array<string>;\n}): boolean {\n\treturn deletedIds.some((deletedId) => tagIds?.includes(deletedId));\n}\n\nonmessage = ({ data }: TagMessage): void => {\n\tif (data.op === 'refresh' && data.tags) postMessage({ tags: handleTagRefresh(data.tags.tag) });\n\n\tconst tagIds = data.state && Object.keys(data.state);\n\tif (\n\t\tdata.op === 'notify' &&\n\t\t(data.notify.created?.tag ||\n\t\t\tdata.notify.modified?.tag ||\n\t\t\t(data.notify.deleted && deletedIdsContainTags({ deletedIds: data.notify.deleted, tagIds })))\n\t)\n\t\tpostMessage({ tags: handleTagNotify(data.notify, data.state) });\n};\n"],"names":["StaticBreadcrumbs","crumbs","size","tooltipLabel","crumbsCount","length","tooltip","reduce","result","crumb","label","firstCrumb","restCrumbs","slice","React","createElement","Tooltip","Row","mainAlignment","wrap","width","Container","padding","left","right","Text","color","maxWidth","Breadcrumbs","dropdownProps","disabled","theme","createTheme","palette","currentColor","regular","hover","active","focus","transparent","primary","main","secondary","header","highlight","gray0","gray1","gray2","gray3","gray4","gray5","gray6","warning","error","success","info","text","avatarColors","avatar_1","avatar_2","avatar_3","avatar_4","avatar_5","avatar_6","avatar_7","avatar_8","avatar_9","avatar_10","avatar_11","avatar_12","avatar_13","avatar_14","avatar_15","avatar_16","avatar_17","avatar_18","avatar_19","avatar_20","avatar_21","avatar_22","avatar_23","avatar_24","avatar_25","avatar_26","avatar_27","avatar_28","avatar_29","avatar_30","avatar_31","avatar_32","avatar_33","avatar_34","avatar_35","avatar_36","avatar_37","avatar_38","avatar_39","avatar_40","avatar_41","avatar_42","avatar_43","avatar_44","avatar_45","avatar_46","avatar_47","avatar_48","avatar_49","avatar_50","themeMui","components","MuiSvgIcon","styleOverrides","root","background","fontSize","fontWeight","MuiAccordionSummary","margin","minHeight","justifyContent","content","MuiAccordionDetails","MuiButtonBase","MuiPaper","borderBottomLeftRadius","borderTopLeftRadius","borderBottomRightRadius","borderTopRightRadius","MuiAccordion","boxShadow","top","themeMuiExtension","parentTheme","merge","getLinkIdMapKey","link","rid","zid","IM_LOGS","USER_ROOT","folders","searches","linksIdMap","view","testUtils","getFolders","resetFolders","setFolders","data","setCurrentView","current","getCurrentView","sortFoldersByName","obj","sort","a","b","aLowerName","name","toLowerCase","bLowerName","updateChildren","folder","changes","absFolderPath","children","forEach","child","childFolder","id","paths","split","join","testFolderIsChecked","string","test","omit","_1","_2","search","_3","hasId","f","includes","normalize","p","uuid","l","luuid","checked","rgb","u","i4u","rev","ms","md","n","i4n","s","i4ms","i4next","url","activesyncdisabled","webOfflineSyncDays","perm","recursive","rest","deletable","meta","acl","retentionPolicy","normalizeSearch","query","sortBy","types","normalizeLink","owner","ruuid","oname","reminder","broken","processSearch","soapSearch","parent","isLink","processLink","soapLink","depth","linkIdMapKey","processFolder","push","soapFolder","handleFolderRefresh","soapFolders","currentView","sharedAccounts","map","handleFolderCreated","created","val","undefined","handleLinkCreated","getKeyByValue","searchValue","Object","keys","find","key","folderIsSharedWithMe","folderId","handleFolderModified","modified","mountPointId","parentMountPointId","isSharedWithMe","parentIsSharedWithMe","parentFolderId","assign","oldParentId","oldParent","newParent","filter","handleFolderDeleted","deleted","handleFolderNotify","notify","handleFoldersMessages","op","handleMessage","postMessage","SidebarAccordionMui","accordions","localStorageName","AccordionCustomComponent","setSelectedFolder","buttonFindShares","initialExpanded","openIds","setOpenIds","useLocalStorage","sidebarRef","useRef","onClick","useCallback","accordion","expanded","state","ref","disableGutters","Accordion","slotProps","transition","unmountOnExit","AccordionSummary","expandIcon","style","all","cursor","e","preventDefault","ExpandMoreIcon","sx","backgroundColor","item","AccordionDetails","ModalFooter","crossAlignment","onConfirm","secondaryAction","secondaryLabel","primaryBtnType","secondaryBtnType","secondaryDisabled","secondarybackground","secondaryColor","showDivider","secondaryTooltip","paddingTop","additionalAction","additionalBtnType","additionalColor","additionalLabel","primaryButtonIcon","t","useTranslation","cancelLabel","useMemo","secondaryTypeAndColor","type","labelColor","primaryTypeAndColor","bottom","orientation","height","Divider","Button","Padding","horizontal","vertical","placement","_extends","icon","iconPlacement","ModalHeader","title","onClose","showCloseIcon","takeAvailableSpace","weight","IconButton","FolderInitializationErrorModal","body","onConfirmLabel","window","location","reload","Fragment","FolderActionsType","NEW","MOVE","DELETE","EDIT","EMPTY","REMOVE_FROM_LIST","SHARES_INFO","SHARE","MARK_ALL_READ","FOLDERS","INBOX","TRASH","SPAM","SENT","DRAFTS","CONTACTS","TAGS","CONVERSATIONS","CALENDAR","ROOT","NOTEBOOK","AUTO_CONTACTS","TASKS","BRIEFCASE","LAST_SYSTEM_FOLDER_POSITION","FoldersAccordion","onFolderSelected","FolderAccordionCustomComponent","selectedFolderId","disabledFolderIds","filterChildren","filteredFolders","useState","handleExpandFolderClick","callback","MUIContainer","MUIAccordion","MUIAccordionSummary","MUIAccordionDetails","FOLDER_VIEW","search_folder","tag","conversation","message","contact","document","appointment","virtual_conversation","remote_folder","wiki","task","chat","TagsActionsType","DRAG_DATA_TYPE","MESSAGE","CONVERSATION","FOLDER","CONTACT","ZIMBRA_STANDARD_COLORS","zValue","hex","zLabel","JSNS","ROOT_NAME","folderWorker","Worker","URL","import","tagsWorker","useFolderStore","create","set","updateFolder","opt","produce","onmessage","setState","NO_ACCOUNT_NAME","FOLDERID_REGEX","getFolderIdParts","match","parts","exec","getFolderOtherOwnerAccountName","folderRoots","matchingFolderRoot","c","getFolderOwnerAccountName","primaryAccount","getUserAccount","otherOwnerAccount","isA","folderType","isDefaultAccountRoot","isRoot","isSharedAccountFolder","isSystemFolder","systemFoldersIds","values","isTrashed","folderIdAbsPath","getState","path","startsWith","isTrash","isReadAllowed","isWriteAllowed","isInsertAllowed","isCreateAllowed","isDeleteAllowed","isAdministerAllowed","flattenAndFilterFoldersWithCap","limit","filterFolders","lowerCaseSearch","flattenAndFilter","foldersToProcess","flatMap","isMatch","matched","getFolderIconColor","Number","getFolderDefaultIcon","folderView","getFolderIconName","folderDefaultIcon","getSystemFolderTranslatedName","folderName","getFolderTranslatedName","getFolderAbsPathParts","reg","matches","FlatFolder","iconName","iconColor","part","index","selectionHandler","noop","Icon","FOLDER_ROW_HEIGHT","CustomContainer","_styled","process","env","NODE_ENV","target","$active","FlatRoot","childrenFolders","isOpen","onOpenStatusChange","allowRootSelection","open","setOpen","account","useUserAccount","rootLabel","toggleOpen","stopPropagation","Avatar","customSize","iconSize","paddingSize","Collapse","crossSize","disableTransition","List","ListItem","selected","activeBackground","selectedBackground","visible","FlatFolders","rootFolders","searchString","hasMoreResults","setHasMoreResults","flatFilteredFolders","remaining","rootFolder","currentFolder","hasMoreResultsWarningLabel","textAlign","overflowY","RowWithIcon","tooltipText","StatusIcon","grant","count","defaultValue_one","defaultValue","FittedRow","sizes","small","accountName","textProps","accordionItem","showAvatar","colorLabel","AccordionItem","isNestedInTrash","isTrashOrNestedInIt","folderViewFilter","v","deep","filterNodes","sortFunction","childrenSorted","i","mapNodes","mapFunction","filterFunction","recursionKey","acc","getFlatChildrenFolders","destination","useFolder","getFolder","useFoldersMap","getFoldersMap","getLinksArray","getRootFolderId","useRoot","rootFolderId","getRoot","useRootsArray","getRootsArray","useRootsMap","keyBy","getRootsMap","useRootByUser","userId","getRootByUser","getRootAccountId","roots","r","some","useFoldersMapByRoot","rootId","getFoldersArrayByRoot","useSearchFolder","getSearchFolder","useSearchFolders","getSearchFolders","useUpdateFolder","getUpdateFolder","getSortCriteria","parseInt","sortFolders","useFolders","FolderSelector","inputLabel","onNewFolderClick","showSharedAccounts","inputValue","setInputValue","selectedFolder","disabledFolderIdsSelection","inputName","Input","value","onChange","display","maxHeight","ThemeProvider","extension","Square","$color","$disabled","ColorContainer","getColor","TextUpperCase","FolderSelectorLabelFactory","borderRadius","alignSelf","styles","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","LabelFactory","ColorSelect","defaultColor","colors","el","customComponent","defaultSelection","Select","items","FolderNameRender","overflow","FoldersSelector","defaultFolderId","folderItems","defaultFolderSelection","defaultFold","defaultFolder","onSelectedFolderChange","disablePortal","StyledCustomListItem","$focusBackgroundColor","$baseBackgroundColor","CustomListItem","forwardRef","CustomListItemFn","CustomList","createTag","legacySoapFetch","_jsns","deleteTag","action","renameTag","changeTagColor","DeleteTagModal","createSnackbar","useSnackbar","then","res","replace","severity","autoHideTimeout","hideButton","getFolderRequest","omitBy","tr","isNil","getShareInfoRequest","includeSelf","Promise","reject","Fault","resolve","isFulfilled","isEmpty","share","getFoldersByAccounts","ownerEmail","response","useInitializeFolders","isLoading","createModal","closeModal","useModal","fetchFolders","getFolderResponse","getShareInfoResponse","filteredLinks","catch","finally","useEffect","NoOp","request","MAIL","Error","Reason","useUpdateView","handler","addEventListener","cleanup","removeEventListener","useInitializeTags","initialized","setInitialized","refresh","useInfoRefresh","tags","isValidFolderName","trim","invalidChars","allowedActionOnSharedAccount","permission","legacyFallback","textArea","appendChild","select","execCommand","removeChild","copyToClipboard","navigator","clipboard","writeText","getPrefs","prefs","getUserSettings","usePrefs","useUserSettings","SoapApiError","constructor","fault","getErrorMessage","getLocalizedMessage","parseEmail","input","extracted","extractEmail","isValidEmail","email","validEmailRegex","String","trimmedInput","caputured","apiWrapper","promise","allSettled","status","responseBody","JSON","parse","reason","getSharedAccounts","sharedRootFolders","ownerId","address","getDefaultAccount","getOrderedAccountIds","priorityAccountAddress","defaultAccount","finalList","concat","sortedList","PRIMARY_IDENTITY_NAME","UNKNOWN_IDENTITY_DEFAULT_TYPE","getAvailableAddresses","settings","ownerAccount","attrs","zimbraMailAlias","isArray","alias","rights","targets","user","addr","sortIdentities","identities","allIdentities","defaultIdentity","remove","identity","generateIdentityId","getIdentitiesDescriptors","availableEmailAddresses","fromAddress","_attrs","zimbraPrefFromAddress","fromDisplay","zimbraPrefFromDisplay","receivingAddress","matchingReceivingAddress","availableAddress","zimbraPrefIdentityId","identityName","identityDisplayName","zimbraPrefIdentityName","defaultSignatureId","zimbraPrefDefaultSignatureId","forwardReplySignatureId","zimbraPrefForwardReplySignatureId","delegationAccounts","rts","delegationIdentities","flatten","ele","d","uniqueIdentityList","uniqIdentity","findIndex","getDefaultIdentity","getIdentityDescription","otherAccount","SEARCH_QUERY_PREFIXES","from","to","cc","subject","in","has","filename","attachment","is","date","after","before","larger","smaller","solo","priority","WHOLE_QUERY_REGEX","RegExp","getChipString","chip","QUOTED_TERM_REGEX","MULTIWORD_TERM_REGEX","convertSearchChipToString","prefixAndColon","term","isQuoted","isMultiword","useHistoryNavigation","navigate","useNavigate","replaceHistory","pushHistory","CONTACT_TYPES","GROUP","DISTRIBUTION_LIST","EDIT_ACTION_ID","DefaultContactInput","dragAndDropEnabled","_dragAndDropEnabled","orderedAccountIds","_orderedAccountIds","chipLabelFactory","_labelFactory","internalOnChange","internalOnAdd","validEmail","finalEmail","ChipInput","pasteSeparators","createChipOnPaste","separators","code","ctrlKey","onAdd","useContactInput","ContactInput","integrationAvailable","useIntegratedComponent","useRunSearchIntegration","runSearchFn","isAvailable","useIntegratedFunction","GenericSoapApiError","useTagStore","sortTags","orderBy","useTags","ids","pick","getTags","useSortedTagsArray","ParticipantRole","FROM","TO","CARBON_COPY","BLIND_CARBON_COPY","REPLY_TO","SENDER","READ_RECEIPT_NOTIFICATION","RESENT_FROM","handleTagRefresh","handleTagCreated","handleTagModified","handleTagDeleted","handleTagNotify","deletedIdsContainTags","deletedIds","tagIds","deletedId"],"mappings":"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","x_google_ignoreList":[5]}