@zextras/carbonio-ui-commons 2.0.0-beta.1 → 2.0.0-beta.10
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 +3710 -108
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +3560 -0
- package/lib/index.mjs.map +1 -0
- package/lib/types/index.d.ts +75 -9
- package/lib/{theme → types/theme}/theme-mui.d.ts +2 -2
- package/lib/{theme → types/theme}/theme.d.ts +1 -1
- package/lib/types/types/index.d.ts +9 -0
- package/package.json +31 -28
- package/lib/components/breadcrumbs/static-breadcrumbs.js +0 -27
- package/lib/components/breadcrumbs/static-breadcrumbs.js.map +0 -1
- package/lib/components/list/list-item.js +0 -33
- package/lib/components/list/list-item.js.map +0 -1
- package/lib/components/list/list.js +0 -18
- package/lib/components/list/list.js.map +0 -1
- package/lib/components/modals/folder-initialization-error-modal.js +0 -62
- package/lib/components/modals/folder-initialization-error-modal.js.map +0 -1
- package/lib/components/modals/modal-footer.js +0 -89
- package/lib/components/modals/modal-footer.js.map +0 -1
- package/lib/components/modals/modal-header.js +0 -24
- package/lib/components/modals/modal-header.js.map +0 -1
- package/lib/components/select/color-select.js +0 -93
- package/lib/components/select/color-select.js.map +0 -1
- package/lib/components/select/folders/flat-folder.js +0 -91
- package/lib/components/select/folders/flat-folder.js.map +0 -1
- package/lib/components/select/folders/flat-folders.js +0 -83
- package/lib/components/select/folders/flat-folders.js.map +0 -1
- package/lib/components/select/folders/flat-root.js +0 -93
- package/lib/components/select/folders/flat-root.js.map +0 -1
- package/lib/components/select/folders/folder-accordions-custom-component.js +0 -84
- package/lib/components/select/folders/folder-accordions-custom-component.js.map +0 -1
- package/lib/components/select/folders/folder-selector.js +0 -72
- package/lib/components/select/folders/folder-selector.js.map +0 -1
- package/lib/components/select/folders/folders-accordion.js +0 -86
- package/lib/components/select/folders/folders-accordion.js.map +0 -1
- package/lib/components/select/folders/hooks.js +0 -61
- package/lib/components/select/folders/hooks.js.map +0 -1
- package/lib/components/select/folders/status-icon.js +0 -35
- package/lib/components/select/folders/status-icon.js.map +0 -1
- package/lib/components/select/folders/utils.js +0 -100
- package/lib/components/select/folders/utils.js.map +0 -1
- package/lib/components/select/folders-selector.js +0 -78
- package/lib/components/select/folders-selector.js.map +0 -1
- package/lib/components/select/select-label-factory.js +0 -45
- package/lib/components/select/select-label-factory.js.map +0 -1
- package/lib/components/sidebar/sidebar-accordion-mui.js +0 -85
- package/lib/components/sidebar/sidebar-accordion-mui.js.map +0 -1
- package/lib/components/tags/delete-tag-modal.js +0 -85
- package/lib/components/tags/delete-tag-modal.js.map +0 -1
- package/lib/constants/folders.js +0 -40
- package/lib/constants/folders.js.map +0 -1
- package/lib/constants/participants.js +0 -19
- package/lib/constants/participants.js.map +0 -1
- package/lib/constants/search.js +0 -124
- package/lib/constants/search.js.map +0 -1
- package/lib/constants/utils/index.js +0 -58
- package/lib/constants/utils/index.js.map +0 -1
- package/lib/helpers/api-wrapper.js +0 -18
- package/lib/helpers/api-wrapper.js.map +0 -1
- package/lib/helpers/email-parser.js +0 -28
- package/lib/helpers/email-parser.js.map +0 -1
- package/lib/helpers/errors.js +0 -11
- package/lib/helpers/errors.js.map +0 -1
- package/lib/helpers/folders.js +0 -196
- package/lib/helpers/folders.js.map +0 -1
- package/lib/helpers/identities.js +0 -202
- package/lib/helpers/identities.js.map +0 -1
- package/lib/helpers/search.js +0 -34
- package/lib/helpers/search.js.map +0 -1
- package/lib/helpers/use-history-navigation.js +0 -25
- package/lib/helpers/use-history-navigation.js.map +0 -1
- package/lib/hooks/use-initialize-folders.js +0 -117
- package/lib/hooks/use-initialize-folders.js.map +0 -1
- package/lib/hooks/use-initialize-tags.js +0 -27
- package/lib/hooks/use-initialize-tags.js.map +0 -1
- package/lib/hooks/use-update-view.js +0 -23
- package/lib/hooks/use-update-view.js.map +0 -1
- package/lib/index.d.ts +0 -75
- package/lib/integrations/constants.js +0 -15
- package/lib/integrations/constants.js.map +0 -1
- package/lib/integrations/default-contact-input.js +0 -54
- package/lib/integrations/default-contact-input.js.map +0 -1
- package/lib/integrations/hooks.js +0 -14
- package/lib/integrations/hooks.js.map +0 -1
- package/lib/integrations/search/use-run-search.js +0 -10
- package/lib/integrations/search/use-run-search.js.map +0 -1
- package/lib/integrations/types.js +0 -8
- package/lib/integrations/types.js.map +0 -1
- package/lib/notice.template.d.ts +0 -1
- package/lib/notice.template.js +0 -8
- package/lib/notice.template.js.map +0 -1
- package/lib/soap/errors/generic-soap-api-error.js +0 -20
- package/lib/soap/errors/generic-soap-api-error.js.map +0 -1
- package/lib/soap/errors/soap-api-error.js +0 -12
- package/lib/soap/errors/soap-api-error.js.map +0 -1
- package/lib/soap/get-folder.js +0 -25
- package/lib/soap/get-folder.js.map +0 -1
- package/lib/soap/get-share-info.js +0 -22
- package/lib/soap/get-share-info.js.map +0 -1
- package/lib/soap/no-op.js +0 -24
- package/lib/soap/no-op.js.map +0 -1
- package/lib/soap/tags.js +0 -30
- package/lib/soap/tags.js.map +0 -1
- package/lib/store/zustand/folder/hooks.js +0 -180
- package/lib/store/zustand/folder/hooks.js.map +0 -1
- package/lib/store/zustand/folder/store.js +0 -34
- package/lib/store/zustand/folder/store.js.map +0 -1
- package/lib/store/zustand/folder/utils.js +0 -58
- package/lib/store/zustand/folder/utils.js.map +0 -1
- package/lib/store/zustand/tags/hooks.js +0 -20
- package/lib/store/zustand/tags/hooks.js.map +0 -1
- package/lib/store/zustand/tags/index.js +0 -24
- package/lib/store/zustand/tags/index.js.map +0 -1
- package/lib/store/zustand/tags/store.js +0 -18
- package/lib/store/zustand/tags/store.js.map +0 -1
- package/lib/theme/theme-mui.js +0 -279
- package/lib/theme/theme-mui.js.map +0 -1
- package/lib/theme/theme.js +0 -8
- package/lib/theme/theme.js.map +0 -1
- package/lib/types/actions/index.js +0 -8
- package/lib/types/actions/index.js.map +0 -1
- package/lib/types/emotion.js +0 -3
- package/lib/types/emotion.js.map +0 -1
- package/lib/types/folder/index.js +0 -3
- package/lib/types/folder/index.js.map +0 -1
- package/lib/types/i18next.js +0 -3
- package/lib/types/i18next.js.map +0 -1
- package/lib/types/identities/index.js +0 -8
- package/lib/types/identities/index.js.map +0 -1
- package/lib/types/index.js +0 -31
- package/lib/types/index.js.map +0 -1
- package/lib/types/modals/index.js +0 -8
- package/lib/types/modals/index.js.map +0 -1
- package/lib/types/select/index.js +0 -8
- package/lib/types/select/index.js.map +0 -1
- package/lib/types/sidebar/index.js +0 -8
- package/lib/types/sidebar/index.js.map +0 -1
- package/lib/types/soap/index.js +0 -3
- package/lib/types/soap/index.js.map +0 -1
- package/lib/types/tags/index.js +0 -8
- package/lib/types/tags/index.js.map +0 -1
- package/lib/types/workers/index.js +0 -3
- package/lib/types/workers/index.js.map +0 -1
- package/lib/utils/clipboard.js +0 -27
- package/lib/utils/clipboard.js.map +0 -1
- package/lib/utils/get-prefs.js +0 -15
- package/lib/utils/get-prefs.js.map +0 -1
- package/lib/utils/index.js +0 -8
- package/lib/utils/index.js.map +0 -1
- package/lib/utils/use-prefs.js +0 -15
- package/lib/utils/use-prefs.js.map +0 -1
- package/lib/utils/utils.js +0 -55
- package/lib/utils/utils.js.map +0 -1
- package/lib/worker/folder.js +0 -10
- package/lib/worker/folder.js.map +0 -1
- package/lib/worker/handle-message.js +0 -331
- package/lib/worker/handle-message.js.map +0 -1
- package/lib/worker/index.js +0 -15
- package/lib/worker/index.js.map +0 -1
- package/lib/worker/tags.js +0 -64
- package/lib/worker/tags.js.map +0 -1
- package/lib/worker/utils.js +0 -23
- package/lib/worker/utils.js.map +0 -1
- /package/lib/{components → types/components}/breadcrumbs/static-breadcrumbs.d.ts +0 -0
- /package/lib/{components → types/components}/list/list-item.d.ts +0 -0
- /package/lib/{components → types/components}/list/list.d.ts +0 -0
- /package/lib/{components → types/components}/modals/folder-initialization-error-modal.d.ts +0 -0
- /package/lib/{components → types/components}/modals/modal-footer.d.ts +0 -0
- /package/lib/{components → types/components}/modals/modal-header.d.ts +0 -0
- /package/lib/{components → types/components}/select/color-select.d.ts +0 -0
- /package/lib/{components → types/components}/select/folders/flat-folder.d.ts +0 -0
- /package/lib/{components → types/components}/select/folders/flat-folders.d.ts +0 -0
- /package/lib/{components → types/components}/select/folders/flat-root.d.ts +0 -0
- /package/lib/{components → types/components}/select/folders/folder-accordions-custom-component.d.ts +0 -0
- /package/lib/{components → types/components}/select/folders/folder-selector.d.ts +0 -0
- /package/lib/{components → types/components}/select/folders/folders-accordion.d.ts +0 -0
- /package/lib/{components → types/components}/select/folders/hooks.d.ts +0 -0
- /package/lib/{components → types/components}/select/folders/status-icon.d.ts +0 -0
- /package/lib/{components → types/components}/select/folders/utils.d.ts +0 -0
- /package/lib/{components → types/components}/select/folders-selector.d.ts +0 -0
- /package/lib/{components → types/components}/select/select-label-factory.d.ts +0 -0
- /package/lib/{components → types/components}/sidebar/sidebar-accordion-mui.d.ts +0 -0
- /package/lib/{components → types/components}/tags/delete-tag-modal.d.ts +0 -0
- /package/lib/{constants → types/constants}/folders.d.ts +0 -0
- /package/lib/{constants → types/constants}/participants.d.ts +0 -0
- /package/lib/{constants → types/constants}/search.d.ts +0 -0
- /package/lib/{constants → types/constants}/utils/index.d.ts +0 -0
- /package/lib/{helpers → types/helpers}/api-wrapper.d.ts +0 -0
- /package/lib/{helpers → types/helpers}/email-parser.d.ts +0 -0
- /package/lib/{helpers → types/helpers}/errors.d.ts +0 -0
- /package/lib/{helpers → types/helpers}/folders.d.ts +0 -0
- /package/lib/{helpers → types/helpers}/identities.d.ts +0 -0
- /package/lib/{helpers → types/helpers}/search.d.ts +0 -0
- /package/lib/{helpers → types/helpers}/use-history-navigation.d.ts +0 -0
- /package/lib/{hooks → types/hooks}/use-initialize-folders.d.ts +0 -0
- /package/lib/{hooks → types/hooks}/use-initialize-tags.d.ts +0 -0
- /package/lib/{hooks → types/hooks}/use-update-view.d.ts +0 -0
- /package/lib/{integrations → types/integrations}/constants.d.ts +0 -0
- /package/lib/{integrations → types/integrations}/default-contact-input.d.ts +0 -0
- /package/lib/{integrations → types/integrations}/hooks.d.ts +0 -0
- /package/lib/{integrations → types/integrations}/search/use-run-search.d.ts +0 -0
- /package/lib/{integrations → types/integrations}/types.d.ts +0 -0
- /package/lib/{soap → types/soap}/errors/generic-soap-api-error.d.ts +0 -0
- /package/lib/{soap → types/soap}/errors/soap-api-error.d.ts +0 -0
- /package/lib/{soap → types/soap}/get-folder.d.ts +0 -0
- /package/lib/{soap → types/soap}/get-share-info.d.ts +0 -0
- /package/lib/{soap → types/soap}/no-op.d.ts +0 -0
- /package/lib/{soap → types/soap}/tags.d.ts +0 -0
- /package/lib/{store → types/store}/zustand/folder/hooks.d.ts +0 -0
- /package/lib/{store → types/store}/zustand/folder/store.d.ts +0 -0
- /package/lib/{store → types/store}/zustand/folder/utils.d.ts +0 -0
- /package/lib/{store → types/store}/zustand/tags/hooks.d.ts +0 -0
- /package/lib/{store → types/store}/zustand/tags/index.d.ts +0 -0
- /package/lib/{store → types/store}/zustand/tags/store.d.ts +0 -0
- /package/lib/types/{actions → types/actions}/index.d.ts +0 -0
- /package/lib/types/{emotion.d.ts → types/emotion.d.ts} +0 -0
- /package/lib/types/{folder → types/folder}/index.d.ts +0 -0
- /package/lib/types/{i18next.d.ts → types/i18next.d.ts} +0 -0
- /package/lib/types/{identities → types/identities}/index.d.ts +0 -0
- /package/lib/types/{modals → types/modals}/index.d.ts +0 -0
- /package/lib/types/{select → types/select}/index.d.ts +0 -0
- /package/lib/types/{sidebar → types/sidebar}/index.d.ts +0 -0
- /package/lib/types/{soap → types/soap}/index.d.ts +0 -0
- /package/lib/types/{tags → types/tags}/index.d.ts +0 -0
- /package/lib/types/{workers → types/workers}/index.d.ts +0 -0
- /package/lib/{utils → types/utils}/clipboard.d.ts +0 -0
- /package/lib/{utils → types/utils}/get-prefs.d.ts +0 -0
- /package/lib/{utils → types/utils}/index.d.ts +0 -0
- /package/lib/{utils → types/utils}/use-prefs.d.ts +0 -0
- /package/lib/{utils → types/utils}/utils.d.ts +0 -0
- /package/lib/{worker → types/worker}/folder.d.ts +0 -0
- /package/lib/{worker → types/worker}/handle-message.d.ts +0 -0
- /package/lib/{worker → types/worker}/index.d.ts +0 -0
- /package/lib/{worker → types/worker}/tags.d.ts +0 -0
- /package/lib/{worker → types/worker}/utils.d.ts +0 -0
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,yBAAyB;AACzB,8EAA4D;AAE5D,qBAAqB;AACrB,6EAA2D;AAE3D,oBAAoB;AACpB,mEAAiD;AACjD,mEAAiD;AACjD,wFAAsE;AAEtE,4BAA4B;AAC5B,gFAA8D;AAC9D,0EAAwD;AACxD,2EAAyD;AACzD,iGAA+E;AAC/E,8EAA4D;AAC5D,wEAAsD;AACtD,0EAAwD;AACxD,oEAAkD;AAClD,oEAAkD;AAElD,oBAAoB;AACpB,2EAAyD;AACzD,mEAAiD;AACjD,uEAAqD;AAErD,kBAAkB;AAClB,8DAA4C;AAC5C,yDAAuC;AAEvC,kBAAkB;AAClB,qEAAmD;AAEnD,QAAQ;AACR,iEAA+C;AAC/C,0DAAwC;AACxC,8DAA4C;AAE5C,QAAQ;AACR,gDAA8B;AAC9B,gDAA8B;AAC9B,oDAAkC;AAClC,oDAAkC;AAClC,oDAAkC;AAElC,UAAU;AACV,mDAAiC;AACjC,yDAAuC;AACvC,wDAAsC;AACtC,oDAAkC;AAClC,uDAAqC;AACrC,mDAAiC;AACjC,mEAAiD;AAEjD,eAAe;AACf,uDAAqC;AACrC,2DAAyC;AACzC,uEAAqD;AACrD,uEAAqD;AACrD,uDAAqC;AAErC,OAAO;AACP,uEAAqD;AACrD,+DAA6C;AAC7C,+CAA6B;AAC7B,wDAAsC;AACtC,oDAAkC;AAClC,8CAA4B;AAE5B,uBAAuB;AACvB,+DAA6C;AAC7C,+DAA6C;AAC7C,+DAA6C;AAE7C,qBAAqB;AACrB,6DAA2C;AAC3C,6DAA2C;AAC3C,6DAA2C;AAE3C,YAAY;AACZ,sDAAoC;AACpC,0DAAwC;AACxC,2DAAyC;AACzC,qDAAmC;AAEnC,QAAQ;AACR,oDAAkC;AAClC,gDAA8B;AAE9B,SAAS;AACT,kDAAgC;AAChC,gDAA8B;AAC9B,0DAAwC;AACxC,iDAA+B;AAC/B,2CAAyB;AAEzB,QAAQ;AACR,0CAAwB;AACxB,kDAAgC;AAChC,iDAA+B;AAC/B,kDAAgC;AAChC,qDAAmC;AACnC,iDAA+B;AAC/B,iDAA+B;AAC/B,kDAAgC;AAChC,+CAA6B;AAC7B,kDAAgC;AAChC,+CAA6B;AAC7B,kDAAgC"}
|
|
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 */\nimport path from 'path';\n\nexport const folderWorker = new Worker(path.dirname('./folder.ts'));\nexport const tagsWorker = new Worker(path.dirname('./tags.ts'));\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","path","dirname","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","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]}
|