@zextras/carbonio-shell-ui 3.4.2 → 3.4.3
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/dist/CHANGELOG.md +2 -0
- package/dist/PKGBUILD +7 -7
- package/dist/commit +1 -1
- package/dist/component.json +3 -3
- package/dist/i18n/it.json +1 -1
- package/dist/i18n/pt.json +24 -14
- package/dist/i18n/tr.json +1 -1
- package/dist/index.html +1 -1
- package/dist/{src_boot_bootstrapper_tsx-node_modules_moment_locale_sync_recursive_.529f12e8.chunk.js → src_boot_bootstrapper_tsx-node_modules_moment_locale_sync_recursive_.b3482d24.chunk.js} +6 -6
- package/dist/{src_boot_bootstrapper_tsx-node_modules_moment_locale_sync_recursive_.529f12e8.chunk.js.map → src_boot_bootstrapper_tsx-node_modules_moment_locale_sync_recursive_.b3482d24.chunk.js.map} +1 -1
- package/dist/{src_workers_folder_ts.d0a1da65.chunk.js → src_workers_folder_ts.a9e77248.chunk.js} +2 -2
- package/dist/{src_workers_folder_ts.d0a1da65.chunk.js.map → src_workers_folder_ts.a9e77248.chunk.js.map} +1 -1
- package/dist/{style.c0f92a24.css → style.0b2be052.css} +29 -29
- package/dist/{style.c0f92a24.css.map → style.0b2be052.css.map} +1 -1
- package/dist/zapp-shell.bundle.js +2 -2
- package/dist/zapp-shell.bundle.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src_boot_bootstrapper_tsx-node_modules_moment_locale_sync_recursive_.529f12e8.chunk.js","mappings":"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AE,IAAI;EACR,GAAGsH,iEAAiB,CAACkR,EAAE;EACvB8sB,SAAS,EAAErmC,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC;EACzCkF,KAAK,EAAElF,CAAC,CAAC,sBAAsB,EAAE;IAChCsJ,KAAK,EAAEjB,iEAAiB,CAACkR,EAAE,CAACxZ,IAAI;IAChCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,EACD;EACCnxB,EAAE,EAAE,IAAI;EACR,GAAGsH,iEAAiB,CAACmR,EAAE;EACvB6sB,SAAS,EAAErmC,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC;EACvCkF,KAAK,EAAElF,CAAC,CAAC,qBAAqB,EAAE;IAC/BsJ,KAAK,EAAEjB,iEAAiB,CAACmR,EAAE,CAACzZ,IAAI;IAChCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,EACD;EACCnxB,EAAE,EAAE,IAAI;EACR,GAAGsH,iEAAiB,CAACoR,EAAE;EACvB4sB,SAAS,EAAErmC,CAAC,CAAC,mBAAmB,EAAE,YAAY,CAAC;EAC/CkF,KAAK,EAAElF,CAAC,CAAC,yBAAyB,EAAE;IACnCsJ,KAAK,EAAEjB,iEAAiB,CAACoR,EAAE,CAAC1Z,IAAI;IAChCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,CACD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAQO,MAAMoU,YAAY,GAAItmC,CAAY,IAAgC,CACxE;EACCsJ,KAAK,EAAE,YAAY;EACnBpE,KAAK,EAAElF,CAAC,CAAC,qBAAqB,EAAE;IAAEsJ,KAAK,EAAE,YAAY;IAAE4oB,YAAY,EAAE;EAAqB,CAAC;AAC5F,CAAC,EACD;EACC5oB,KAAK,EAAE,gBAAgB;EACvBpE,KAAK,EAAElF,CAAC,CAAC,yBAAyB,EAAE;IAAEsJ,KAAK,EAAE,YAAY;IAAE4oB,YAAY,EAAE;EAAkB,CAAC;AAC7F,CAAC,EACD;EACC5oB,KAAK,EAAE,cAAc;EACrBpE,KAAK,EAAElF,CAAC,CAAC,uBAAuB,EAAE;IAAEsJ,KAAK,EAAE,YAAY;IAAE4oB,YAAY,EAAE;EAAiB,CAAC;AAC1F,CAAC,EACD;EACC5oB,KAAK,EAAE,kBAAkB;EACzBpE,KAAK,EAAElF,CAAC,CAAC,2BAA2B,EAAE;IAAEsJ,KAAK,EAAE,YAAY;IAAE4oB,YAAY,EAAE;EAAmB,CAAC;AAChG,CAAC,EACD;EACC5oB,KAAK,EAAE,mBAAmB;EAC1BpE,KAAK,EAAElF,CAAC,CAAC,4BAA4B,EAAE;IACtCsJ,KAAK,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O,SAASuJ,uBAAuBA,CACtCwY,WAAiB,EAC4B;EAC7C,OAAOC,MAA+B,GACnCD,CAAW,GACXvxD,8CAAM,CACNuxD,WAAW,EACX,CAACp6B,WAAW,EAAExoB,KAAK,EAAExI,GAAG,KAAK;IAC5BgxB,WAAW,CAAChxB,GAAG,CAAe,GAAGmP,SAAS;IAC1C,OAAO6hB,WAAW;EACnB,CAAC,EACD,CAAC,CACD,CAAC;AACL;;;;;;;;;;;;;;;;;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO,MAAMg3B,SAAS,GAAG,IAAIwD,MAAM,CAAC,IAAIC,GAAG,CAAC,8GAAwB,CAAC,CAAC;AACtE;AACA;AACO,MAAMvL,YAAY,GAAG,IAAIsL,MAAM,CAAC,IAAIC,GAAG,CAAC,iHAA2B,CAAC,CAAC;;;;;;;;;;ACX5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;;;;;;;;;;;AC1FA;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACnSA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA","sources":["webpack://@zextras/carbonio-shell-ui/./src/boot/app/app-context-provider.tsx","webpack://@zextras/carbonio-shell-ui/./src/boot/app/app-error-catcher.tsx","webpack://@zextras/carbonio-shell-ui/./src/boot/app/app-loader-functions.ts","webpack://@zextras/carbonio-shell-ui/./src/boot/app/app-loader-mounter.tsx","webpack://@zextras/carbonio-shell-ui/./src/boot/app/app-loader-setters.ts","webpack://@zextras/carbonio-shell-ui/./src/boot/app/default-views.ts","webpack://@zextras/carbonio-shell-ui/./src/boot/app/load-app.ts","webpack://@zextras/carbonio-shell-ui/./src/boot/app/load-apps.ts","webpack://@zextras/carbonio-shell-ui/./src/boot/app/shared-libraries.ts","webpack://@zextras/carbonio-shell-ui/./src/boot/bootstrapper.tsx","webpack://@zextras/carbonio-shell-ui/./src/boot/context-bridge.tsx","webpack://@zextras/carbonio-shell-ui/./src/boot/loader.tsx","webpack://@zextras/carbonio-shell-ui/./src/boot/shell-i18n-provider.tsx","webpack://@zextras/carbonio-shell-ui/./src/boot/theme-provider.tsx","webpack://@zextras/carbonio-shell-ui/./src/boot/use-get-primary-color.tsx","webpack://@zextras/carbonio-shell-ui/./src/constants/index.ts","webpack://@zextras/carbonio-shell-ui/./src/constants/locales.js","webpack://@zextras/carbonio-shell-ui/./src/dark-mode/use-dark-mode.ts","webpack://@zextras/carbonio-shell-ui/./src/dark-mode/use-dark-reader-result-value.ts","webpack://@zextras/carbonio-shell-ui/./src/dark-mode/utils.ts","webpack://@zextras/carbonio-shell-ui/./src/history/hooks.ts","webpack://@zextras/carbonio-shell-ui/./src/network/edit-settings.ts","webpack://@zextras/carbonio-shell-ui/./src/network/fetch.ts","webpack://@zextras/carbonio-shell-ui/./src/network/get-components.ts","webpack://@zextras/carbonio-shell-ui/./src/network/get-info.ts","webpack://@zextras/carbonio-shell-ui/./src/network/login-config.ts","webpack://@zextras/carbonio-shell-ui/./src/network/logout.ts","webpack://@zextras/carbonio-shell-ui/./src/network/tags.ts","webpack://@zextras/carbonio-shell-ui/./src/network/user-agent.ts","webpack://@zextras/carbonio-shell-ui/./src/network/utils.ts","webpack://@zextras/carbonio-shell-ui/./src/notification/NotificationManager.ts","webpack://@zextras/carbonio-shell-ui/./src/notification/NotificationPermissionChecker.tsx","webpack://@zextras/carbonio-shell-ui/./src/reporting/functions.ts","webpack://@zextras/carbonio-shell-ui/./src/reporting/store.ts","webpack://@zextras/carbonio-shell-ui/./src/search/module-selector.tsx","webpack://@zextras/carbonio-shell-ui/./src/search/run-search.ts","webpack://@zextras/carbonio-shell-ui/./src/search/search-app-view.tsx","webpack://@zextras/carbonio-shell-ui/./src/search/search-bar.tsx","webpack://@zextras/carbonio-shell-ui/./src/search/search-store.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/accounts-settings.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/account-settings/accounts-list.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/account-settings/delegates.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/account-settings/persona-settings.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/account-settings/primary-account-settings.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/account-settings/settings-sent-messages.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/general-settings/appearance-settings.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/general-settings/dark-theme-settings-section.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/general-settings/logout.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/general-settings/module-version-settings.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/general-settings/out-of-office-settings.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/general-settings/out-of-office-time-period-section.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/general-settings/scaling-setting-section.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/general-settings/search-settings.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/general-settings/user-quota.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/settings-header.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/utils.ts","webpack://@zextras/carbonio-shell-ui/./src/settings/general-settings-sub-sections.ts","webpack://@zextras/carbonio-shell-ui/./src/settings/general-settings.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/hooks/use-reset.ts","webpack://@zextras/carbonio-shell-ui/./src/settings/language-and-timezone-settings.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/settings-app-view.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/settings-sidebar.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/app-view-container.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/badge-wrap.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/boards/board-container.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/boards/board-tab-list.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/boards/board-tab.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/boards/board.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/boards/resizable-container.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/collapser.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/creation-button.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/hooks/useIsMobile.ts","webpack://@zextras/carbonio-shell-ui/./src/shell/hooks/useLocalStorage.ts","webpack://@zextras/carbonio-shell-ui/./src/shell/hooks/useMove.ts","webpack://@zextras/carbonio-shell-ui/./src/shell/hooks/useResize.ts","webpack://@zextras/carbonio-shell-ui/./src/shell/logo.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/shell-context-provider.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/shell-context.ts","webpack://@zextras/carbonio-shell-ui/./src/shell/shell-header.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/shell-primary-bar.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/shell-secondary-bar.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/shell-view.tsx","webpack://@zextras/carbonio-shell-ui/./src/store/account/hooks.ts","webpack://@zextras/carbonio-shell-ui/./src/store/account/index.ts","webpack://@zextras/carbonio-shell-ui/./src/store/account/normalization.ts","webpack://@zextras/carbonio-shell-ui/./src/store/account/store.ts","webpack://@zextras/carbonio-shell-ui/./src/store/app/hooks.ts","webpack://@zextras/carbonio-shell-ui/./src/store/app/index.ts","webpack://@zextras/carbonio-shell-ui/./src/store/app/store.ts","webpack://@zextras/carbonio-shell-ui/./src/store/app/utils.tsx","webpack://@zextras/carbonio-shell-ui/./src/store/boards/hooks.tsx","webpack://@zextras/carbonio-shell-ui/./src/store/boards/index.ts","webpack://@zextras/carbonio-shell-ui/./src/store/boards/store.ts","webpack://@zextras/carbonio-shell-ui/./src/store/context-bridge.ts","webpack://@zextras/carbonio-shell-ui/./src/store/folder/hooks.ts","webpack://@zextras/carbonio-shell-ui/./src/store/folder/index.ts","webpack://@zextras/carbonio-shell-ui/./src/store/folder/store.ts","webpack://@zextras/carbonio-shell-ui/./src/store/folder/utils.ts","webpack://@zextras/carbonio-shell-ui/./src/store/i18n/hooks.ts","webpack://@zextras/carbonio-shell-ui/./src/store/i18n/index.ts","webpack://@zextras/carbonio-shell-ui/./src/store/i18n/store.ts","webpack://@zextras/carbonio-shell-ui/./src/store/integrations/composer.tsx","webpack://@zextras/carbonio-shell-ui/./src/store/integrations/getters.tsx","webpack://@zextras/carbonio-shell-ui/./src/store/integrations/hooks.tsx","webpack://@zextras/carbonio-shell-ui/./src/store/integrations/store.ts","webpack://@zextras/carbonio-shell-ui/./src/store/login/getters.ts","webpack://@zextras/carbonio-shell-ui/./src/store/login/hooks.ts","webpack://@zextras/carbonio-shell-ui/./src/store/login/store.ts","webpack://@zextras/carbonio-shell-ui/./src/store/network/hooks.ts","webpack://@zextras/carbonio-shell-ui/./src/store/network/index.ts","webpack://@zextras/carbonio-shell-ui/./src/store/network/store.ts","webpack://@zextras/carbonio-shell-ui/./src/store/network/utils.ts","webpack://@zextras/carbonio-shell-ui/./src/store/tags/hooks.ts","webpack://@zextras/carbonio-shell-ui/./src/store/tags/index.ts","webpack://@zextras/carbonio-shell-ui/./src/store/tags/store.ts","webpack://@zextras/carbonio-shell-ui/./src/ui-extras/app-link.tsx","webpack://@zextras/carbonio-shell-ui/./src/ui-extras/nav-guard.tsx","webpack://@zextras/carbonio-shell-ui/./src/ui-extras/spinner.tsx","webpack://@zextras/carbonio-shell-ui/./src/utility-bar/bar.tsx","webpack://@zextras/carbonio-shell-ui/./src/utility-bar/panel.tsx","webpack://@zextras/carbonio-shell-ui/./src/utility-bar/store.ts","webpack://@zextras/carbonio-shell-ui/./src/utility-bar/utils.ts","webpack://@zextras/carbonio-shell-ui/./src/utils/utils.ts","webpack://@zextras/carbonio-shell-ui/./src/workers/index.ts","webpack://@zextras/carbonio-shell-ui/./node_modules/date-fns/locale/ lazy \\.[/\\\\](zh-CN%7Cnl%7Cen-US%7Cde%7Chi%7Cit%7Cja%7Cpt%7Cpl%7Cpt-BR%7Cro%7Cru%7Ces%7Cth%7Ctr%7Cfr%7Cvi)[/\\\\]index\\.js$ namespace object","webpack://@zextras/carbonio-shell-ui/./src/shell/boards/board-tab.css?0045","webpack://@zextras/carbonio-shell-ui/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://@zextras/carbonio-shell-ui/ignored|/tmp/workspace/extras_carbonio-shell-ui_release/node_modules/pdfjs-dist/build|canvas","webpack://@zextras/carbonio-shell-ui/ignored|/tmp/workspace/extras_carbonio-shell-ui_release/node_modules/pdfjs-dist/build|fs","webpack://@zextras/carbonio-shell-ui/ignored|/tmp/workspace/extras_carbonio-shell-ui_release/node_modules/pdfjs-dist/build|http","webpack://@zextras/carbonio-shell-ui/ignored|/tmp/workspace/extras_carbonio-shell-ui_release/node_modules/pdfjs-dist/build|https","webpack://@zextras/carbonio-shell-ui/ignored|/tmp/workspace/extras_carbonio-shell-ui_release/node_modules/pdfjs-dist/build|url","webpack://@zextras/carbonio-shell-ui/ignored|/tmp/workspace/extras_carbonio-shell-ui_release/node_modules/pdfjs-dist/build|zlib"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { FC } from 'react';\n\nimport { I18nextProvider } from 'react-i18next';\n\nimport AppErrorCatcher from './app-error-catcher';\nimport { SHELL_APP_ID } from '../../constants';\nimport { useI18nStore } from '../../store/i18n';\n\nconst AppContextProvider: FC<{ pkg: string }> = ({ pkg, children }) => {\n\tconst { instances, defaultI18n } = useI18nStore.getState();\n\tconst i18n = instances[pkg] ?? instances[SHELL_APP_ID] ?? defaultI18n;\n\treturn (\n\t\t<I18nextProvider i18n={i18n}>\n\t\t\t<AppErrorCatcher>{children}</AppErrorCatcher>\n\t\t</I18nextProvider>\n\t);\n};\n\nexport default AppContextProvider;\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 } from 'react';\n\nimport { Catcher } from '@zextras/carbonio-design-system';\n\nconst AppErrorCatcher: FC = ({ children }) => {\n\tconst onError = useCallback((error) => {\n\t\tconsole.error(error);\n\t\t// ({event: 'report-exception',data: { exception: error }});\n\t}, []);\n\treturn <Catcher onError={onError}>{children}</Catcher>;\n};\nexport default AppErrorCatcher;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n// The 'useXXX' functions actually return hooks\n/* eslint-disable react-hooks/rules-of-hooks */\n\nimport { reduce } from 'lodash';\n\nimport { CarbonioModule } from '../../../types';\nimport {\n\tusePushHistoryCallback,\n\tuseGoBackHistoryCallback,\n\tuseReplaceHistoryCallback,\n\tgetCurrentRoute,\n\tuseCurrentRoute,\n\treplaceHistory,\n\tgoBackHistory,\n\tpushHistory\n} from '../../history/hooks';\nimport { getSoapFetch, getXmlSoapFetch } from '../../network/fetch';\nimport { changeTagColor, createTag, deleteTag, renameTag } from '../../network/tags';\nimport { getNotificationManager } from '../../notification/NotificationManager';\nimport { runSearch } from '../../search/run-search';\nimport { useIsMobile } from '../../shell/hooks/useIsMobile';\nimport { useLocalStorage } from '../../shell/hooks/useLocalStorage';\nimport {\n\tgetUserAccount,\n\tgetUserAccounts,\n\tgetUserSetting,\n\tgetUserSettings,\n\tuseUserAccount,\n\tuseUserAccounts,\n\tuseUserSetting,\n\tuseUserSettings,\n\tuseUserRight,\n\tuseUserRights,\n\tgetUserRight,\n\tgetUserRights\n} from '../../store/account';\nimport { getApp, getAppContext, useApp, useAppContext } from '../../store/app';\nimport {\n\taddBoard,\n\tcloseBoard,\n\tupdateBoard,\n\tupdateBoardContext,\n\tgetBoardById,\n\tgetBoardContextById,\n\tuseBoardContextById,\n\tuseBoardById,\n\tuseBoard,\n\tminimizeBoards,\n\treopenBoards,\n\tsetCurrentBoard,\n\tuseBoardHooks\n} from '../../store/boards';\nimport { useContextBridge } from '../../store/context-bridge';\nimport {\n\tgetFolder,\n\tgetFolders,\n\tuseFolder,\n\tuseFolders,\n\tuseRoot,\n\tgetRoot,\n\tuseRoots,\n\tgetRoots,\n\tuseSearchFolder,\n\tuseSearchFolders,\n\tgetSearchFolder,\n\tgetSearchFolders,\n\tuseFoldersByView,\n\tuseFoldersAccordionByView,\n\tuseRootByUser,\n\tgetRootByUser\n} from '../../store/folder';\nimport { getI18n, getTFunction } from '../../store/i18n';\nimport {\n\tgetAction,\n\tgetActions,\n\tgetActionsFactory,\n\tgetActionFactory,\n\tgetIntegratedComponent,\n\tgetIntegratedFunction\n} from '../../store/integrations/getters';\nimport {\n\tuseAction,\n\tuseActions,\n\tuseActionsFactory,\n\tuseActionFactory,\n\tuseIntegratedComponent,\n\tuseIntegratedFunction\n} from '../../store/integrations/hooks';\nimport { useNotify, useRefresh } from '../../store/network';\nimport { getTags, useTags } from '../../store/tags';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const getAppFunctions = (pkg: CarbonioModule): Record<string, Function> => ({\n\t// I18N\n\tgetI18n: getI18n(pkg.name),\n\tt: getTFunction(pkg.name),\n\t// FETCH\n\tsoapFetch: getSoapFetch(pkg.name),\n\txmlSoapFetch: getXmlSoapFetch(pkg.name),\n\n\t// APP STORE FUNCTIONS\n\tuseAppContext: useAppContext(pkg.name),\n\tgetAppContext: getAppContext(pkg.name),\n\tuseApp: useApp(pkg.name),\n\tgetApp: getApp(pkg.name),\n\n\t// INTEGRATIONS\n\tuseIntegratedFunction,\n\tgetIntegratedFunction,\n\tuseIntegratedComponent,\n\tgetIntegratedComponent,\n\tuseAction,\n\tgetAction,\n\tuseActions,\n\tgetActions,\n\tuseActionsFactory,\n\tgetActionsFactory,\n\tuseActionFactory,\n\tgetActionFactory,\n\t// ACCOUNTS\n\tuseUserAccount,\n\tgetUserAccount,\n\tuseUserAccounts,\n\tgetUserAccounts,\n\tuseUserSettings,\n\tgetUserSettings,\n\tgetUserSetting,\n\tuseUserSetting,\n\tuseUserRight,\n\tuseUserRights,\n\tgetUserRight,\n\tgetUserRights,\n\tuseTags,\n\tgetTags,\n\tuseNotify,\n\tuseRefresh,\n\t// FOLDERS\n\tuseFoldersByView,\n\tuseFoldersAccordionByView,\n\tuseFolder,\n\tgetFolder,\n\tuseFolders,\n\tgetFolders,\n\tuseRoot,\n\tgetRoot,\n\tuseRoots,\n\tgetRoots,\n\tuseSearchFolder,\n\tuseSearchFolders,\n\tgetSearchFolder,\n\tgetSearchFolders,\n\tuseRootByUser,\n\tgetRootByUser,\n\t// BOARDS\n\taddBoard: addBoard(pkg.name),\n\tcloseBoard,\n\tupdateBoard,\n\tupdateBoardContext,\n\tgetBoardById,\n\tgetBoardContextById,\n\tuseBoard,\n\tuseBoardById,\n\tuseBoardContextById,\n\tminimizeBoards,\n\treopenBoards,\n\tsetCurrentBoard,\n\tuseBoardHooks,\n\t// HISTORY\n\tusePushHistoryCallback,\n\tuseGoBackHistoryCallback,\n\tuseReplaceHistoryCallback,\n\tuseCurrentRoute,\n\tgetCurrentRoute,\n\tpushHistory,\n\tgoBackHistory,\n\treplaceHistory,\n\t// TAGS\n\tcreateTag,\n\trenameTag,\n\tchangeTagColor,\n\tdeleteTag,\n\t// NOTIFICATION\n\tgetNotificationManager,\n\n\t// STUFF\n\trunSearch,\n\tuseIsMobile,\n\tuseLocalStorage,\n\tgetBridgedFunctions: (): unknown => {\n\t\tconst { packageDependentFunctions, functions } = useContextBridge.getState();\n\t\treturn {\n\t\t\t...functions,\n\t\t\t...reduce(packageDependentFunctions, (acc, f, name) => ({ ...acc, [name]: f(pkg.name) }), {})\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 */\n\nimport React, { FC, Suspense, useMemo } from 'react';\n\nimport { map } from 'lodash';\n\nimport AppContextProvider from './app-context-provider';\nimport { useAppStore } from '../../store/app';\n\nconst Mounter: FC<{ appId: string }> = ({ children, appId }) => (\n\t<div key={appId} id={appId}>\n\t\t<AppContextProvider key={appId} pkg={appId}>\n\t\t\t<Suspense fallback={''}>{children}</Suspense>\n\t\t</AppContextProvider>\n\t</div>\n);\n\nconst AppLoaderMounter: FC = () => {\n\tconst entryPoints = useAppStore((s) => s.entryPoints);\n\tconst entries = useMemo(\n\t\t() =>\n\t\t\tmap(entryPoints, (Comp, appId) => (\n\t\t\t\t<Mounter key={appId} appId={appId}>\n\t\t\t\t\t<Comp />\n\t\t\t\t</Mounter>\n\t\t\t)),\n\t\t[entryPoints]\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tdata-testid=\"app-mounter\"\n\t\t\tkey=\"app-mounter\"\n\t\t\thidden\n\t\t\tstyle={{ height: 0, overflow: 'hidden' }}\n\t\t>\n\t\t\t{entries}\n\t\t</div>\n\t);\n};\n\nexport default AppLoaderMounter;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n// The 'useXXX' functions actually return hooks\n/* eslint-disable react-hooks/rules-of-hooks */\n\nimport {\n\tAppRouteDescriptor,\n\tBoardView,\n\tCarbonioModule,\n\tPrimaryAccessoryView,\n\tSearchView,\n\tSecondaryAccessoryView,\n\tSettingsView,\n\tUtilityView\n} from '../../../types';\nimport { getEditSettingsForApp } from '../../network/edit-settings';\nimport { useAppStore } from '../../store/app';\nimport {\n\tnormalizeRoute,\n\tnormalizeSettingsView,\n\tnormalizeSearchView,\n\tnormalizeUtilityView,\n\tnormalizePrimaryAccessoryView,\n\tnormalizeSecondaryAccessoryView,\n\tnormalizeBoardView\n} from '../../store/app/utils';\nimport { useIntegrationsStore } from '../../store/integrations/store';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const getAppSetters = (pkg: CarbonioModule): Record<string, Function> => {\n\tconst appSetters = useAppStore.getState().setters;\n\tconst integrations = useIntegrationsStore.getState();\n\treturn {\n\t\tupdatePrimaryBadge: appSetters.updatePrimaryBadge,\n\t\tupdateUtilityBadge: appSetters.updateUtilityBadge,\n\t\tsetAppContext: appSetters.setAppContext(pkg.name),\n\t\taddRoute: (route: Partial<AppRouteDescriptor>) =>\n\t\t\tappSetters.addRoute(normalizeRoute(route, pkg)),\n\t\tsetRouteVisibility: (routeId: string, visible: boolean) =>\n\t\t\tappSetters.setRouteVisibility(routeId, visible),\n\t\tremoveRoute: (routeId: string) => appSetters.removeRoute(routeId),\n\t\t// add board\n\t\taddBoardView: (data: Partial<BoardView>) =>\n\t\t\tappSetters.addBoardView(normalizeBoardView(data, pkg)),\n\t\t// remove board\n\t\tremoveBoardView: appSetters.removeBoardView,\n\t\t//\n\t\t// add settings\n\t\taddSettingsView: (data: Partial<SettingsView>) =>\n\t\t\tappSetters.addSettingsView(normalizeSettingsView(data, pkg)),\n\t\t// remove settings\n\t\tremoveSettingsView: appSetters.removeSettingsView,\n\t\t//\n\t\t// add search\n\t\taddSearchView: (data: Partial<SearchView>) =>\n\t\t\tappSetters.addSearchView(normalizeSearchView(data, pkg)),\n\t\t// remove search\n\t\tremoveSearchView: appSetters.removeSearchView,\n\t\t//\n\t\t// add utility\n\t\taddUtilityView: (data: Partial<UtilityView>) =>\n\t\t\tappSetters.addUtilityView(normalizeUtilityView(data, pkg)),\n\t\t// remove utility\n\t\tremoveUtilityView: appSetters.removeUtilityView,\n\t\t//\n\t\t// add primaryAccessory\n\t\taddPrimaryAccessoryView: (data: Partial<PrimaryAccessoryView>) =>\n\t\t\tappSetters.addPrimaryAccessoryView(normalizePrimaryAccessoryView(data, pkg)),\n\t\t// remove primaryAccessory\n\t\tremovePrimaryAccessoryView: appSetters.removePrimaryAccessoryView,\n\t\t//\n\t\t// add secondaryAccessory\n\t\taddSecondaryAccessoryView: (data: Partial<SecondaryAccessoryView>) =>\n\t\t\tappSetters.addSecondaryAccessoryView(normalizeSecondaryAccessoryView(data, pkg)),\n\t\t// remove secondaryAccessory\n\t\tremoveSecondaryAccessoryView: appSetters.removeSecondaryAccessoryView,\n\t\tregisterFunctions: integrations.registerFunctions,\n\t\tremoveFunctions: integrations.removeFunctions,\n\t\tregisterActions: integrations.registerActions,\n\t\tremoveActions: integrations.removeActions,\n\t\tregisterComponents: integrations.registerComponents(pkg.name),\n\t\tremoveComponents: integrations.removeComponents,\n\t\t/** @deprecated */\n\t\teditSettings: getEditSettingsForApp(pkg.name)\n\t};\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n/* eslint-disable no-param-reassign */\n\nimport type { TFunction } from 'i18next';\nimport { size } from 'lodash';\n\nimport type { AppRouteDescriptor, SettingsView } from '../../../types';\nimport { SEARCH_APP_ID, SETTINGS_APP_ID, SHELL_APP_ID } from '../../constants';\nimport { SearchAppView } from '../../search/search-app-view';\nimport { AccountsSettings } from '../../settings/accounts-settings';\nimport GeneralSettings from '../../settings/general-settings';\nimport { settingsSubSections } from '../../settings/general-settings-sub-sections';\nimport { SettingsAppView } from '../../settings/settings-app-view';\nimport { SettingsSidebar } from '../../settings/settings-sidebar';\nimport { useAccountStore } from '../../store/account';\nimport { useAppStore } from '../../store/app';\n\nconst settingsGeneralView = (t: TFunction): SettingsView => ({\n\tid: 'general',\n\troute: 'general',\n\tapp: SHELL_APP_ID,\n\tcomponent: GeneralSettings,\n\ticon: 'SettingsModOutline',\n\tlabel: t('settings.general.general', 'General Settings'),\n\tposition: 1,\n\tsubSections: settingsSubSections(t)\n});\n\nconst settingsAccountsView = (t: TFunction): SettingsView => ({\n\tid: 'accounts',\n\troute: 'accounts',\n\tapp: SHELL_APP_ID,\n\tcomponent: AccountsSettings,\n\ticon: 'PersonOutline',\n\tlabel: t('settings.accounts', 'Accounts'),\n\tposition: 1\n});\n\nconst searchRouteDescriptor = (t: TFunction): AppRouteDescriptor => ({\n\tid: SEARCH_APP_ID,\n\tapp: SEARCH_APP_ID,\n\troute: SEARCH_APP_ID,\n\tappView: SearchAppView,\n\tbadge: {\n\t\tshow: false\n\t},\n\tlabel: t('search.app', 'Search'),\n\tposition: 15,\n\tvisible: true,\n\tprimaryBar: 'SearchModOutline'\n});\n\nconst settingsRouteDescriptor = (t: TFunction): AppRouteDescriptor => ({\n\tid: SETTINGS_APP_ID,\n\tapp: SETTINGS_APP_ID,\n\troute: SETTINGS_APP_ID,\n\tappView: SettingsAppView,\n\tbadge: {\n\t\tshow: false\n\t},\n\tlabel: t('settings.app', 'Settings'),\n\tposition: 16,\n\tvisible: true,\n\tprimaryBar: 'SettingsModOutline',\n\tsecondaryBar: SettingsSidebar\n});\n\nexport const registerDefaultViews = (t: TFunction): void => {\n\tconst { attrs } = useAccountStore.getState().settings;\n\tif (size(attrs) > 0 && attrs.zimbraFeatureOptionsEnabled !== 'FALSE') {\n\t\tuseAppStore.getState().setters.addRoute(settingsRouteDescriptor(t));\n\t\tuseAppStore.getState().setters.addSettingsView(settingsGeneralView(t));\n\t\tuseAppStore.getState().setters.addSettingsView(settingsAccountsView(t));\n\t}\n\tuseAppStore.getState().setters.addRoute(searchRouteDescriptor(t));\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { ComponentType, memo } from 'react';\n\nimport { forOwn } from 'lodash';\n\nimport { getAppFunctions } from './app-loader-functions';\nimport { getAppSetters } from './app-loader-setters';\nimport type { CarbonioModule } from '../../../types';\nimport * as CONSTANTS from '../../constants';\nimport { report } from '../../reporting/functions';\nimport SettingsHeader from '../../settings/components/settings-header';\nimport { useAppStore } from '../../store/app';\nimport { AppLink } from '../../ui-extras/app-link';\nimport { Spinner } from '../../ui-extras/spinner';\n\nexport const _scripts: { [pkgName: string]: HTMLScriptElement } = {};\nlet _scriptId = 0;\n\nexport function loadApp(appPkg: CarbonioModule): Promise<CarbonioModule> {\n\treturn new Promise((resolve, reject) => {\n\t\ttry {\n\t\t\tif (\n\t\t\t\twindow.__ZAPP_SHARED_LIBRARIES__ &&\n\t\t\t\twindow.__ZAPP_SHARED_LIBRARIES__['@zextras/carbonio-shell-ui']\n\t\t\t) {\n\t\t\t\twindow.__ZAPP_SHARED_LIBRARIES__['@zextras/carbonio-shell-ui'][appPkg.name] = {\n\t\t\t\t\treport: report(appPkg.name),\n\t\t\t\t\tAppLink,\n\t\t\t\t\tSpinner,\n\t\t\t\t\tSettingsHeader,\n\t\t\t\t\t...getAppSetters(appPkg),\n\t\t\t\t\t...getAppFunctions(appPkg),\n\t\t\t\t\t...CONSTANTS\n\t\t\t\t};\n\t\t\t}\n\n\t\t\twindow.__ZAPP_HMR_EXPORT__[appPkg.name] = (appComponent: ComponentType): void => {\n\t\t\t\tuseAppStore.setState((state) => ({\n\t\t\t\t\tentryPoints: {\n\t\t\t\t\t\t...state.entryPoints,\n\t\t\t\t\t\t[appPkg.name]: memo(appComponent)\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.info(\n\t\t\t\t\t`%c loaded ${appPkg.name}`,\n\t\t\t\t\t'color: white; background: #539507;padding: 4px 8px 2px 4px; font-family: sans-serif; border-radius: 12px; width: 100%'\n\t\t\t\t);\n\t\t\t\tresolve(appPkg);\n\t\t\t};\n\n\t\t\tconst script = document.createElement('script');\n\t\t\tscript.setAttribute('type', 'text/javascript');\n\t\t\tscript.setAttribute('data-pkg_name', appPkg.name);\n\t\t\tscript.setAttribute('data-pkg_version', appPkg.version);\n\t\t\tscript.setAttribute('data-is_app', 'true');\n\t\t\tscript.setAttribute('src', `${appPkg.js_entrypoint}`);\n\t\t\tdocument.body.appendChild(script);\n\t\t\t_scriptId += 1;\n\t\t\t_scripts[`${appPkg.name}-loader-${_scriptId}`] = script;\n\t\t} catch (err: unknown) {\n\t\t\tconsole.error(err);\n\t\t\treject(err);\n\t\t}\n\t});\n}\n\nexport function unloadApps(): Promise<void> {\n\treturn new Promise((resolve) => {\n\t\tforOwn(_scripts, (script) => {\n\t\t\tif (script.parentNode) {\n\t\t\t\tscript.parentNode.removeChild(script);\n\t\t\t}\n\t\t});\n\t\tresolve();\n\t});\n}\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { registerLocale, setDefaultLocale } from '@zextras/carbonio-design-system';\nimport type { Locale as DateFnsLocale } from 'date-fns';\nimport { filter, map } from 'lodash';\n\nimport { loadApp, unloadApps } from './load-app';\nimport { injectSharedLibraries } from './shared-libraries';\nimport { CarbonioModule } from '../../../types';\nimport { SHELL_APP_ID } from '../../constants';\nimport { SUPPORTED_LOCALES } from '../../constants/locales';\nimport { useReporter } from '../../reporting/store';\nimport { getUserSetting, useAccountStore } from '../../store/account';\nimport { useI18nStore } from '../../store/i18n';\n\nconst getDateFnsLocale = (locale: string): Promise<DateFnsLocale> =>\n\timport(`date-fns/locale/${locale}/index.js`);\n\nexport function loadApps(\n\tapps: Array<CarbonioModule>\n): Promise<PromiseSettledResult<CarbonioModule>[]> {\n\tinjectSharedLibraries();\n\tconst appsToLoad = filter(apps, (app) => {\n\t\tif (app.name === SHELL_APP_ID) return false;\n\t\treturn !(app.attrKey && getUserSetting('attrs', app.attrKey) === 'FALSE');\n\t});\n\t// eslint-disable-next-line no-console\n\tconsole.log(\n\t\t'%cLOADING APPS',\n\t\t'color: white; background: #2b73d2;padding: 4px 8px 2px 4px; font-family: sans-serif; border-radius: 12px; width: 100%'\n\t);\n\tconst { settings } = useAccountStore.getState();\n\tconst locale =\n\t\t(settings?.prefs?.zimbraPrefLocale as string) ??\n\t\t(settings?.attrs?.zimbraLocale as string) ??\n\t\t'en';\n\tuseI18nStore.getState().actions.addI18n(appsToLoad, locale);\n\tconst localeObj =\n\t\tlocale in SUPPORTED_LOCALES && SUPPORTED_LOCALES[locale as keyof typeof SUPPORTED_LOCALES];\n\tif (localeObj) {\n\t\tconst localeDateFnsKey =\n\t\t\t('dateFnsLocale' in localeObj && localeObj.dateFnsLocale) || localeObj.value;\n\t\tgetDateFnsLocale(localeDateFnsKey).then((localeDateFns) => {\n\t\t\tregisterLocale(localeDateFnsKey, localeDateFns);\n\t\t\tsetDefaultLocale(localeDateFnsKey);\n\t\t});\n\t}\n\tuseReporter.getState().setClients(appsToLoad);\n\treturn Promise.allSettled(map(appsToLoad, (app) => loadApp(app)));\n}\n\nexport function unloadAllApps(): Promise<void> {\n\treturn unloadApps();\n}\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React from 'react';\n\nimport * as ReduxJSToolkit from '@reduxjs/toolkit';\nimport * as ZappUI from '@zextras/carbonio-design-system';\nimport * as Preview from '@zextras/carbonio-ui-preview';\nimport * as Lodash from 'lodash';\nimport * as Moment from 'moment';\nimport * as ReactDOM from 'react-dom';\nimport * as ReactI18n from 'react-i18next';\nimport * as ReactRedux from 'react-redux';\nimport * as ReactRouterDom from 'react-router-dom';\nimport * as StyledComponents from 'styled-components';\n\nexport function injectSharedLibraries(): void {\n\tif (!window.__ZAPP_SHARED_LIBRARIES__) {\n\t\twindow.__ZAPP_SHARED_LIBRARIES__ = {\n\t\t\treact: React,\n\t\t\t'react-dom': ReactDOM,\n\t\t\t'react-i18next': ReactI18n,\n\t\t\t'react-redux': ReactRedux,\n\t\t\tlodash: Lodash,\n\t\t\t'react-router-dom': ReactRouterDom,\n\t\t\tmoment: Moment,\n\t\t\t'styled-components': StyledComponents,\n\t\t\t'@reduxjs/toolkit': ReduxJSToolkit,\n\t\t\t'@zextras/carbonio-shell-ui': {},\n\t\t\t'@zextras/carbonio-design-system': ZappUI,\n\t\t\t'@zextras/carbonio-ui-preview': Preview\n\t\t};\n\t\twindow.__ZAPP_HMR_EXPORT__ = {};\n\t}\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, useEffect } from 'react';\n\nimport { ModalManager, SnackbarManager } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\nimport { BrowserRouter, Route, Switch, useParams } from 'react-router-dom';\n\nimport AppLoaderMounter from './app/app-loader-mounter';\nimport { registerDefaultViews } from './app/default-views';\nimport { ContextBridge } from './context-bridge';\nimport { Loader } from './loader';\nimport ShellI18nextProvider from './shell-i18n-provider';\nimport { ThemeProvider } from './theme-provider';\nimport { BASENAME, IS_STANDALONE } from '../constants';\nimport { NotificationPermissionChecker } from '../notification/NotificationPermissionChecker';\nimport ShellView from '../shell/shell-view';\nimport { useAppStore } from '../store/app';\n\nconst StandaloneListener = (): null => {\n\tconst { route } = useParams<{ route?: string }>();\n\tuseEffect(() => {\n\t\tif (route) useAppStore.setState({ standalone: route });\n\t}, [route]);\n\treturn null;\n};\n\nexport const DefaultViewsRegister = (): null => {\n\tconst [t] = useTranslation();\n\tuseEffect(() => {\n\t\tregisterDefaultViews(t);\n\t}, [t]);\n\treturn null;\n};\n\nconst Bootstrapper: FC = () => (\n\t<ThemeProvider>\n\t\t<ShellI18nextProvider>\n\t\t\t<BrowserRouter basename={BASENAME}>\n\t\t\t\t<SnackbarManager>\n\t\t\t\t\t<ModalManager>\n\t\t\t\t\t\t<Loader />\n\t\t\t\t\t\t{IS_STANDALONE && (\n\t\t\t\t\t\t\t<Switch>\n\t\t\t\t\t\t\t\t<Route path={'/:route'}>\n\t\t\t\t\t\t\t\t\t<StandaloneListener />\n\t\t\t\t\t\t\t\t</Route>\n\t\t\t\t\t\t\t</Switch>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<DefaultViewsRegister />\n\t\t\t\t\t\t<NotificationPermissionChecker />\n\t\t\t\t\t\t<ContextBridge />\n\t\t\t\t\t\t<AppLoaderMounter />\n\t\t\t\t\t\t<ShellView />\n\t\t\t\t\t</ModalManager>\n\t\t\t\t</SnackbarManager>\n\t\t\t</BrowserRouter>\n\t\t</ShellI18nextProvider>\n\t</ThemeProvider>\n);\n\nexport default Bootstrapper;\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useModal, useSnackbar } from '@zextras/carbonio-design-system';\nimport { useHistory } from 'react-router-dom';\n\nimport { useBridge } from '../store/context-bridge';\n\nexport const ContextBridge = (): null => {\n\tconst history = useHistory();\n\tconst createSnackbar = useSnackbar();\n\tconst createModal = useModal();\n\tuseBridge({\n\t\tfunctions: {\n\t\t\tgetHistory: () => history,\n\t\t\tcreateSnackbar,\n\t\t\tcreateModal\n\t\t}\n\t});\n\treturn null;\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { Modal, Padding, Text } from '@zextras/carbonio-design-system';\nimport { find } from 'lodash';\nimport { useTranslation } from 'react-i18next';\n\nimport { loadApps, unloadAllApps } from './app/load-apps';\nimport { getComponents } from '../network/get-components';\nimport { getInfo } from '../network/get-info';\nimport { loginConfig } from '../network/login-config';\nimport { goToLogin } from '../network/utils';\nimport { useAppStore } from '../store/app';\n\nexport function isPromiseRejectedResult<T>(\n\tpromiseSettledResult: PromiseSettledResult<T>\n): promiseSettledResult is PromiseRejectedResult {\n\treturn promiseSettledResult.status === 'rejected';\n}\n\nexport function isPromiseFulfilledResult<T>(\n\tpromiseSettledResult: PromiseSettledResult<T>\n): promiseSettledResult is PromiseFulfilledResult<T> {\n\treturn promiseSettledResult.status === 'fulfilled';\n}\n\ntype LoaderFailureModalProps = { open: boolean; closeHandler: () => void };\n\nexport const LoaderFailureModal = ({\n\topen,\n\tcloseHandler\n}: LoaderFailureModalProps): React.JSX.Element => {\n\tconst [t] = useTranslation();\n\tconst onConfirm = useCallback(() => window.location.reload(), []);\n\treturn (\n\t\t<Modal\n\t\t\topen={open}\n\t\t\tshowCloseIcon={false}\n\t\t\tonSecondaryAction={goToLogin}\n\t\t\ttitle={t('bootstrap.failure.modal.title', 'Something went wrong...')}\n\t\t\tconfirmLabel={t('bootstrap.failure.modal.confirmButtonLabel', 'refresh')}\n\t\t\tsecondaryActionLabel={t('bootstrap.failure.modal.secondaryButtonLabel', 'login page')}\n\t\t\tonConfirm={onConfirm}\n\t\t\tonClose={closeHandler}\n\t\t>\n\t\t\t<Padding all=\"small\">\n\t\t\t\t<Text overflow=\"break-word\">\n\t\t\t\t\t{t(\n\t\t\t\t\t\t'bootstrap.failure.modal.body',\n\t\t\t\t\t\t'Some technical issues occurred while processing your request. Please try to refresh the page or go back to the login page.'\n\t\t\t\t\t)}\n\t\t\t\t</Text>\n\t\t\t</Padding>\n\t\t</Modal>\n\t);\n};\n\nexport const Loader = (): React.JSX.Element => {\n\tconst [open, setOpen] = useState(false);\n\tconst closeHandler = useCallback(() => setOpen(false), []);\n\n\tuseEffect(() => {\n\t\tPromise.allSettled([loginConfig(), getComponents(), getInfo()]).then(\n\t\t\t(promiseSettledResultArray) => {\n\t\t\t\tconst [, getComponentsPromiseSettledResult, getInfoPromiseSettledResult] =\n\t\t\t\t\tpromiseSettledResultArray;\n\n\t\t\t\tconst promiseRejectedResult = find(\n\t\t\t\t\t[getComponentsPromiseSettledResult, getInfoPromiseSettledResult],\n\t\t\t\t\tisPromiseRejectedResult\n\t\t\t\t);\n\t\t\t\tif (promiseRejectedResult) {\n\t\t\t\t\tif (typeof promiseRejectedResult.reason === 'string') {\n\t\t\t\t\t\tconsole.error(promiseRejectedResult.reason);\n\t\t\t\t\t} else if ('message' in promiseRejectedResult.reason) {\n\t\t\t\t\t\tconsole.error(promiseRejectedResult.reason.message);\n\t\t\t\t\t}\n\t\t\t\t\tsetOpen(true);\n\t\t\t\t}\n\t\t\t\tif (isPromiseFulfilledResult(getComponentsPromiseSettledResult)) {\n\t\t\t\t\tloadApps(Object.values(useAppStore.getState().apps));\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\treturn () => {\n\t\t\tunloadAllApps();\n\t\t};\n\t}, []);\n\treturn <LoaderFailureModal open={open} closeHandler={closeHandler} />;\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 } from 'react';\n\nimport { I18nextProvider } from 'react-i18next';\n\nimport { SHELL_APP_ID } from '../constants';\nimport { useI18nStore } from '../store/i18n';\n\nconst ShellI18nextProvider: FC = ({ children }) => {\n\tconst i18n = useI18nStore((s) => s.instances[SHELL_APP_ID]);\n\treturn <I18nextProvider i18n={i18n}>{children}</I18nextProvider>;\n};\nexport default ShellI18nextProvider;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, {\n\tcreateContext,\n\tuseCallback,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseMemo,\n\tuseState\n} from 'react';\n\nimport {\n\tgenerateColorSet,\n\tThemeProvider as UIThemeProvider,\n\tThemeProviderProps as UIThemeProviderProps\n} from '@zextras/carbonio-design-system';\nimport { auto, disable, enable, setFetchMethod } from 'darkreader';\nimport { map, reduce } from 'lodash';\nimport { createGlobalStyle, css, DefaultTheme, SimpleInterpolation } from 'styled-components';\n\nimport { useGetPrimaryColor } from './use-get-primary-color';\nimport { DarkReaderPropValues, ThemeExtension } from '../../types';\nimport { ScalingSettings } from '../../types/settings';\nimport { darkReaderDynamicThemeFixes, LOCAL_STORAGE_SETTINGS_KEY } from '../constants';\nimport { getAutoScalingFontSize } from '../settings/components/utils';\nimport { useLocalStorage } from '../shell/hooks/useLocalStorage';\n\nsetFetchMethod(window.fetch);\n\ninterface ThemeCallbacks {\n\taddExtension: (newExtension: ThemeExtension, id: string) => void;\n\tsetDarkReaderState: (newState: DarkReaderPropValues) => void;\n}\n\nexport const ThemeCallbacksContext = createContext<ThemeCallbacks>({\n\taddExtension: () => {\n\t\tthrow Error('Not implemented');\n\t},\n\tsetDarkReaderState: () => {\n\t\tthrow Error('not implemented');\n\t}\n});\n\ntype CustomTheme = Partial<Omit<DefaultTheme, 'palette'>> & {\n\tpalette?: Partial<DefaultTheme['palette']>;\n};\n\nconst paletteExtension =\n\t(customTheme: CustomTheme = {}) =>\n\t(theme: DefaultTheme): DefaultTheme => ({\n\t\t...theme,\n\t\t...customTheme,\n\t\tpalette: {\n\t\t\t...theme.palette,\n\t\t\t...customTheme.palette,\n\t\t\tshared: {\n\t\t\t\tregular: '#FFB74D',\n\t\t\t\thover: '#FFA21A',\n\t\t\t\tactive: '#FFA21A',\n\t\t\t\tfocus: '#FF9800',\n\t\t\t\tdisabled: '#FFD699'\n\t\t\t},\n\t\t\tlinked: {\n\t\t\t\tregular: '#AB47BC',\n\t\t\t\thover: '#8B3899',\n\t\t\t\tactive: '#8B3899',\n\t\t\t\tfocus: '#7A3187',\n\t\t\t\tdisabled: '#DDB4E4'\n\t\t\t}\n\t\t}\n\t});\n\nconst iconExtension: ThemeExtension = (theme) => ({\n\t...theme,\n\ticons: {\n\t\t...theme.icons,\n\t\tShared: theme.icons.ArrowCircleRight,\n\t\tLinked: theme.icons.ArrowCircleLeft\n\t}\n});\n\nconst globalCursorsExtension: ThemeExtension = (theme) => ({\n\t...theme,\n\tglobalCursors: [\n\t\t...(theme.globalCursors || []),\n\t\t'ns-resize',\n\t\t'ew-resize',\n\t\t'nesw-resize',\n\t\t'nwse-resize',\n\t\t'move'\n\t]\n});\n\ninterface GlobalStyledProps {\n\tbaseFontSize: number;\n}\n\nconst GlobalStyle = createGlobalStyle<GlobalStyledProps>`\n html {\n font-size: ${({ baseFontSize }): string => `${baseFontSize}%`};\n }\n ${({ theme }): SimpleInterpolation =>\n\t\tmap(\n\t\t\ttheme.globalCursors,\n\t\t\t(cursor) => css`\n\t\t\t\t.global-cursor-${cursor} * {\n\t\t\t\t\tcursor: ${cursor} !important;\n\t\t\t\t}\n\t\t\t`\n\t\t)}\n .no-active-background:active {\n\t background-color: inherit;\n }\n`;\n\ninterface ThemeProviderProps {\n\tchildren?: React.ReactNode | React.ReactNode[];\n}\nexport const ThemeProvider = ({ children }: ThemeProviderProps): React.JSX.Element => {\n\tconst [localStorageSettings] = useLocalStorage<ScalingSettings>(LOCAL_STORAGE_SETTINGS_KEY, {});\n\n\tconst [extensions, setExtensions] = useState<Partial<Record<keyof DefaultTheme, ThemeExtension>>>(\n\t\t{}\n\t);\n\n\tconst primaryColor = useGetPrimaryColor();\n\n\tuseLayoutEffect(() => {\n\t\tconst customThemePalette: Partial<DefaultTheme['palette']> = primaryColor\n\t\t\t? { primary: generateColorSet({ regular: primaryColor }) }\n\t\t\t: {};\n\t\tsetExtensions((extension) => ({\n\t\t\t...extension,\n\t\t\tpalette: paletteExtension({\n\t\t\t\tpalette: customThemePalette\n\t\t\t}),\n\t\t\ticons: iconExtension,\n\t\t\tglobalCursors: globalCursorsExtension\n\t\t}));\n\t}, [primaryColor]);\n\n\tconst [darkReaderState, setDarkReaderState] = useState<DarkReaderPropValues>('disabled');\n\n\tuseEffect(() => {\n\t\tswitch (darkReaderState) {\n\t\t\tcase 'disabled':\n\t\t\t\tauto(false);\n\t\t\t\tdisable();\n\t\t\t\tbreak;\n\t\t\tcase 'enabled':\n\t\t\t\tauto(false);\n\t\t\t\tenable({}, darkReaderDynamicThemeFixes);\n\t\t\t\tbreak;\n\t\t\tcase 'auto':\n\t\t\tdefault:\n\t\t\t\tauto({}, darkReaderDynamicThemeFixes);\n\t\t\t\tbreak;\n\t\t}\n\t}, [darkReaderState]);\n\n\tconst aggregatedExtensions = useCallback<NonNullable<UIThemeProviderProps['extension']>>(\n\t\t(theme) =>\n\t\t\treduce(\n\t\t\t\textensions,\n\t\t\t\t(themeAccumulator, themeExtensionFn) => {\n\t\t\t\t\tif (themeExtensionFn) {\n\t\t\t\t\t\treturn themeExtensionFn(themeAccumulator);\n\t\t\t\t\t}\n\t\t\t\t\treturn themeAccumulator;\n\t\t\t\t},\n\t\t\t\ttheme\n\t\t\t),\n\t\t[extensions]\n\t);\n\n\tconst addExtension = useCallback<ThemeCallbacks['addExtension']>((newExtension, id) => {\n\t\tsetExtensions((ext) => ({ ...ext, [id]: newExtension }));\n\t}, []);\n\n\tconst baseFontSize = useMemo<GlobalStyledProps['baseFontSize']>(() => {\n\t\tconst savedScalingValueSetting = localStorageSettings['settings.appearance_setting.scaling'];\n\t\tif (savedScalingValueSetting !== undefined) {\n\t\t\treturn savedScalingValueSetting;\n\t\t}\n\t\treturn getAutoScalingFontSize();\n\t}, [localStorageSettings]);\n\n\tconst themeCallbacksContextValue = useMemo<ThemeCallbacks>(\n\t\t() => ({ addExtension, setDarkReaderState }),\n\t\t[addExtension]\n\t);\n\n\treturn (\n\t\t<UIThemeProvider extension={aggregatedExtensions}>\n\t\t\t<ThemeCallbacksContext.Provider value={themeCallbacksContextValue}>\n\t\t\t\t<GlobalStyle baseFontSize={baseFontSize} />\n\t\t\t\t{children}\n\t\t\t</ThemeCallbacksContext.Provider>\n\t\t</UIThemeProvider>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useEffect, useMemo } from 'react';\n\nimport { useTheme } from '@zextras/carbonio-design-system';\nimport { size } from 'lodash';\n\nimport { LOCAL_STORAGE_LAST_PRIMARY_KEY } from '../constants';\nimport { useDarkMode } from '../dark-mode/use-dark-mode';\nimport { useLocalStorage } from '../shell/hooks/useLocalStorage';\nimport { useLoginConfigStore } from '../store/login/store';\n\nexport function useGetPrimaryColor(): string | undefined {\n\tconst [localStorageLastPrimary, setLocalStorageLastPrimary] = useLocalStorage<\n\t\tPartial<Record<'dark' | 'light', string>> | undefined\n\t>(LOCAL_STORAGE_LAST_PRIMARY_KEY, undefined);\n\tconst { carbonioWebUiPrimaryColor, carbonioWebUiDarkPrimaryColor } = useLoginConfigStore();\n\tconst { darkModeEnabled, darkReaderStatus } = useDarkMode();\n\tconst theme = useTheme();\n\n\tconst primaryColor = useMemo(() => {\n\t\tif (\n\t\t\tdarkReaderStatus !== undefined &&\n\t\t\t(carbonioWebUiPrimaryColor || carbonioWebUiDarkPrimaryColor)\n\t\t) {\n\t\t\tif (darkModeEnabled) {\n\t\t\t\treturn carbonioWebUiDarkPrimaryColor || carbonioWebUiPrimaryColor;\n\t\t\t}\n\t\t\treturn carbonioWebUiPrimaryColor || carbonioWebUiDarkPrimaryColor;\n\t\t}\n\t\tif (localStorageLastPrimary && size(localStorageLastPrimary) > 0) {\n\t\t\treturn (\n\t\t\t\t(darkModeEnabled && (localStorageLastPrimary.dark || localStorageLastPrimary.light)) ||\n\t\t\t\tlocalStorageLastPrimary.light ||\n\t\t\t\tlocalStorageLastPrimary.dark\n\t\t\t);\n\t\t}\n\t\tif (theme) {\n\t\t\treturn theme.palette.primary.regular;\n\t\t}\n\t\treturn undefined;\n\t}, [\n\t\tcarbonioWebUiDarkPrimaryColor,\n\t\tcarbonioWebUiPrimaryColor,\n\t\tdarkModeEnabled,\n\t\tdarkReaderStatus,\n\t\tlocalStorageLastPrimary,\n\t\ttheme\n\t]);\n\n\tuseEffect(() => {\n\t\tif (darkReaderStatus !== undefined) {\n\t\t\tsetLocalStorageLastPrimary((prevState) => ({\n\t\t\t\t...prevState,\n\t\t\t\t[darkModeEnabled ? 'dark' : 'light']: primaryColor\n\t\t\t}));\n\t\t}\n\t}, [darkModeEnabled, darkReaderStatus, primaryColor, setLocalStorageLastPrimary]);\n\n\treturn primaryColor;\n}\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { DynamicThemeFix } from 'darkreader';\n\n/*\n\treference: https://zextras.atlassian.net/wiki/spaces/IRIS/pages/223215854/UI+Guidelines+and+theming\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 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};\n\nexport const SHELL_APP_ID = 'carbonio-shell-ui';\nexport const SETTINGS_APP_ID = 'settings';\nexport const ACCOUNTS_APP_ID = 'accounts';\nexport const SEARCH_APP_ID = 'search';\nexport const ACTION_TYPES = {\n\tCONVERSATION: 'conversation',\n\tCONVERSATION_lIST: 'conversation_list',\n\tMESSAGE: 'message',\n\tMESSAGE_lIST: 'message_list',\n\tCONTACT: 'contact',\n\tCONTACT_lIST: 'contact_list',\n\tINVITE: 'invite',\n\tINVITE_lIST: 'invite_list',\n\tAPPOINTMENT: 'appointment',\n\tAPPOINTMENT_lIST: 'appointment_list',\n\tFOLDER: 'folder',\n\tFOLDER_lIST: 'folder_list',\n\tCALENDAR: 'calendar',\n\tCALENDAR_lIST: 'calendar_list',\n\tNEW: 'new'\n};\n\nexport const darkReaderDynamicThemeFixes: DynamicThemeFix = {\n\tignoreImageAnalysis: ['.no-dr-invert *'],\n\tinvert: [],\n\tcss: `\n\t\t.tox, .force-white-bg, .tox-swatches-menu, .tox .tox-edit-area__iframe {\n\t\t\tbackground-color: #fff !important;\n\t\t\tbackground: #fff !important;\n\t\t}\n\t`,\n\tignoreInlineStyle: ['.tox-menu *'],\n\tdisableStyleSheetsProxy: false\n};\n\nconst base = '/carbonio/';\n\nconst standaloneBase = `${base}standalone`;\n\nexport const IS_STANDALONE = window.location.pathname.startsWith(standaloneBase);\nexport const BASENAME = IS_STANDALONE ? standaloneBase : base;\nexport const EMAIL_VALIDATION_REGEX =\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars, max-len, no-control-regex\n\t/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])/;\n\nexport const ROOT_NAME = 'USER_ROOT';\n\nexport const DARK_READER_VALUES = ['auto', 'enabled', 'disabled'] as const;\n\nexport const FOLDER_VIEW = {\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};\nexport const LOCAL_STORAGE_SETTINGS_KEY = 'settings';\nexport const LOCAL_STORAGE_LAST_PRIMARY_KEY = 'config';\nexport const LOCAL_STORAGE_SEARCH_KEY = 'search_suggestions';\nexport const LOCAL_STORAGE_BOARD_SIZE = 'board_size';\nexport const SCALING_OPTIONS = [\n\t{ value: 75, label: 'xs' },\n\t{ value: 87.5, label: 's' },\n\t{ value: 100, label: 'm' },\n\t{ value: 112.5, label: 'l' },\n\t{ value: 125, label: 'xl' }\n] as const;\nexport const BASE_FONT_SIZE = 100;\nexport const SCALING_LIMIT = {\n\tWIDTH: 1400,\n\tHEIGHT: 900,\n\tDPR: 2 // device pixel ratio\n} as const;\n\nexport const LOGIN_V3_CONFIG_PATH = '/zx/login/v3/config';\nexport const DARK_READER_PROP_KEY = 'zappDarkreaderMode';\nexport const SENTRY_SHELL_DSN = 'https://0ce2448c05b94f0182c47ae52c7ff52c@feedback.zextras.tools/6';\n\nexport enum ResultLabelType {\n\tNORMAL = 'normal',\n\tWARNING = 'warning',\n\tERROR = 'error'\n}\n\nexport const HEADER_BAR_HEIGHT = '3.75rem';\nexport const PRIMARY_BAR_WIDTH = '3.0625rem';\nexport const BOARD_HEADER_HEIGHT = '3rem';\nexport const BOARD_TAB_WIDTH = 'calc(3rem + 15ch)';\nexport const BOARD_CONTAINER_ZINDEX = 10;\nexport const BOARD_MIN_VISIBILITY = {\n\ttop: 50,\n\tleft: 30\n};\n\nexport const DELEGATED_SEND_SAVE_TARGET = ['owner', 'sender', 'both', 'none'];\n","\"use strict\";\n/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SUPPORTED_LOCALES = void 0;\nexports.SUPPORTED_LOCALES = {\n zh_CN: {\n name: '中文 (中国)',\n value: 'zh_CN',\n dateFnsLocale: 'zh-CN',\n tinymceLocale: 'zh-Hans'\n },\n nl: {\n name: 'Nederlands',\n value: 'nl'\n },\n en: {\n name: 'English',\n value: 'en',\n dateFnsLocale: 'en-US'\n },\n de: {\n name: 'Deutsch',\n value: 'de'\n },\n hi: {\n name: 'हिंदी',\n value: 'hi'\n },\n it: {\n name: 'italiano',\n value: 'it'\n },\n ja: {\n name: '日本語',\n value: 'ja'\n },\n pt: {\n name: 'português',\n value: 'pt',\n tinymceLocale: 'pt_BR'\n },\n pl: {\n name: 'polski',\n value: 'pl'\n },\n pt_BR: {\n name: 'português (Brasil)',\n value: 'pt_BR',\n dateFnsLocale: 'pt-BR'\n },\n ro: {\n name: 'română',\n value: 'ro'\n },\n ru: {\n name: 'русский',\n value: 'ru'\n },\n es: {\n name: 'español',\n value: 'es'\n },\n th: {\n name: 'ไทย',\n value: 'th',\n tinymceLocale: 'th_TH'\n },\n tr: {\n name: 'Türkçe',\n value: 'tr'\n },\n fr: {\n name: 'français',\n value: 'fr',\n tinymceLocale: 'fr_FR'\n },\n vi: {\n name: 'Tiếng Việt',\n value: 'vi'\n }\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useEffect, useState } from 'react';\n\nimport { useDarkReaderResultValue } from './use-dark-reader-result-value';\nimport { getPrefersColorSchemeDarkMedia } from './utils';\nimport type { DarkReaderPropValues } from '../../types';\n\nexport const useDarkMode = (): {\n\tdarkModeEnabled: boolean;\n\tdarkReaderStatus: DarkReaderPropValues | undefined;\n} => {\n\tconst darkReaderResultValue = useDarkReaderResultValue();\n\n\tconst [darkModeEnabled, setDarkModeEnabled] = useState<boolean>(false);\n\n\tuseEffect(() => {\n\t\tif (darkReaderResultValue) {\n\t\t\tsetDarkModeEnabled(\n\t\t\t\t(darkReaderResultValue === 'auto' && getPrefersColorSchemeDarkMedia().matches) ||\n\t\t\t\t\tdarkReaderResultValue === 'enabled'\n\t\t\t);\n\t\t}\n\t}, [darkReaderResultValue]);\n\n\tuseEffect(() => {\n\t\tconst setCallback = (event: MediaQueryListEvent): void => {\n\t\t\tsetDarkModeEnabled(event.matches);\n\t\t};\n\t\tgetPrefersColorSchemeDarkMedia().addEventListener('change', setCallback);\n\t\treturn (): void => {\n\t\t\tgetPrefersColorSchemeDarkMedia().removeEventListener('change', setCallback);\n\t\t};\n\t}, []);\n\n\treturn { darkModeEnabled, darkReaderStatus: darkReaderResultValue };\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { useMemo } from 'react';\n\nimport { find, size } from 'lodash';\n\nimport type { DarkReaderPropValues, ZappDarkreaderModeZimletProp, ZimletProp } from '../../types';\nimport { DARK_READER_PROP_KEY, DARK_READER_VALUES, SHELL_APP_ID } from '../constants';\nimport { useUserSettings } from '../store/account';\nimport { useLoginConfigStore } from '../store/login/store';\n\nexport function isZappDarkreaderModeZimletProp(\n\tprop: ZimletProp\n): prop is ZappDarkreaderModeZimletProp {\n\treturn prop.name === DARK_READER_PROP_KEY && prop.zimlet === SHELL_APP_ID;\n}\n\nexport function isDarkReaderPropValues(\n\tmaybeDarkReaderPropValue: unknown\n): maybeDarkReaderPropValue is DarkReaderPropValues {\n\treturn (\n\t\ttypeof maybeDarkReaderPropValue === 'string' &&\n\t\tDARK_READER_VALUES.includes(maybeDarkReaderPropValue as DarkReaderPropValues)\n\t);\n}\n\n// return the final calculated value between ZappDarkreaderModeZimletProp value and carbonioWebUiDarkMode config\nexport function useDarkReaderResultValue(): undefined | DarkReaderPropValues {\n\tconst settings = useUserSettings();\n\tconst { carbonioWebUiDarkMode } = useLoginConfigStore();\n\n\tconst settingReceived = useMemo(\n\t\t() => size(settings.prefs) > 0 || size(settings.attrs) > 0 || size(settings.props) > 0,\n\t\t[settings]\n\t);\n\n\treturn useMemo(() => {\n\t\tif (settingReceived) {\n\t\t\tconst result = find<ZimletProp, ZappDarkreaderModeZimletProp>(\n\t\t\t\tsettings.props,\n\t\t\t\t(value): value is ZappDarkreaderModeZimletProp => isZappDarkreaderModeZimletProp(value)\n\t\t\t)?._content;\n\n\t\t\treturn result || (carbonioWebUiDarkMode && 'enabled') || 'disabled';\n\t\t}\n\t\treturn undefined;\n\t}, [settingReceived, settings, carbonioWebUiDarkMode]);\n}\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nexport const getPrefersColorSchemeDarkMedia = (): MediaQueryList =>\n\twindow.matchMedia('(prefers-color-scheme: dark)');\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { useMemo, useCallback } from 'react';\n\nimport { To } from 'history';\nimport { find, startsWith, replace, trim } from 'lodash';\nimport { useLocation, useHistory } from 'react-router-dom';\n\nimport { AppRoute, HistoryParams } from '../../types';\nimport { SEARCH_APP_ID } from '../constants';\nimport { useSearchStore } from '../search/search-store';\nimport { useRoutes, getRoutes } from '../store/app';\nimport { useContextBridge } from '../store/context-bridge';\n\nexport const useCurrentRoute = (): AppRoute | undefined => {\n\tconst location = useLocation();\n\tconst routes = useRoutes();\n\treturn useMemo(\n\t\t() => find(routes, ({ route }) => startsWith(trim(location.pathname, '/'), route)),\n\t\t[location.pathname, routes]\n\t);\n};\nexport const getCurrentRoute = (): AppRoute | undefined => {\n\tconst history = useContextBridge.getState().functions.getHistory?.();\n\tconst routes = getRoutes();\n\tconst route = find(routes, (r) => startsWith(trim(history.location.pathname, '/'), r.route));\n\tif (route?.route === SEARCH_APP_ID) {\n\t\treturn {\n\t\t\t...route,\n\t\t\troute: `${route.route}/${useSearchStore.getState().module}`\n\t\t};\n\t}\n\treturn route;\n};\n\nexport const parseParams = (params: HistoryParams): To => {\n\tif (typeof params === 'string') {\n\t\treturn replace(`/${getCurrentRoute()?.route}/${params}`, '//', '/');\n\t}\n\tconst routeToApply = params.route\n\t\t? find(getRoutes(), (r) => r.id === params.route || r.route === params.route)\n\t\t: getCurrentRoute();\n\treturn typeof params.path === 'string'\n\t\t? replace(`/${routeToApply?.route}/${params.path}`, '//', '/')\n\t\t: {\n\t\t\t\tsearch: params.path.search,\n\t\t\t\thash: params.path.hash,\n\t\t\t\tpathname: replace(`/${routeToApply?.route}/${params.path.pathname}`, '//', '/')\n\t\t };\n};\n\nexport const usePushHistoryCallback = (): ((params: HistoryParams) => void) => {\n\tconst history = useHistory();\n\treturn useCallback((params: HistoryParams): void => history.push(parseParams(params)), [history]);\n};\n\nexport const useReplaceHistoryCallback = (): ((params: HistoryParams) => void) => {\n\tconst history = useHistory();\n\treturn useCallback(\n\t\t(params: HistoryParams): void => history.replace(parseParams(params)),\n\t\t[history]\n\t);\n};\n\nexport function useGoBackHistoryCallback(): () => void {\n\tconst history = useHistory();\n\treturn history.goBack;\n}\n\nexport const pushHistory = (params: HistoryParams): void => {\n\tconst history = useContextBridge.getState().functions.getHistory?.();\n\thistory.push(parseParams(params));\n};\n\nexport const replaceHistory = (params: HistoryParams): void => {\n\tconst history = useContextBridge.getState().functions.getHistory?.();\n\thistory.replace(parseParams(params));\n};\n\nexport const goBackHistory = (): void =>\n\tuseContextBridge.getState().functions.getHistory?.().goBack();\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { filter, find, findIndex, map, reduce, isArray } from 'lodash';\n\nimport { getXmlSoapFetch } from './fetch';\nimport {\n\tAccountState,\n\tMods,\n\tAccount,\n\tCreateIdentityResponse,\n\tModifyPropertiesResponse,\n\tModifyPrefsResponse,\n\tModifyIdentityResponse,\n\tRevokeRightsResponse,\n\tDeleteIdentityResponse,\n\tGrantRightsResponse\n} from '../../types';\nimport { SHELL_APP_ID } from '../constants';\nimport { useAccountStore } from '../store/account';\n\ntype EditSettingsBatchResponse = {\n\tModifyPropertiesResponse?: ModifyPropertiesResponse[];\n\tModifyPrefsResponse?: ModifyPrefsResponse[];\n\tModifyIdentityResponse?: ModifyIdentityResponse[];\n\tDeleteIdentityResponse?: DeleteIdentityResponse[];\n\tCreateIdentityResponse?: CreateIdentityResponse[];\n\tRevokeRightsResponse?: RevokeRightsResponse[];\n\tGrantRightsResponse?: GrantRightsResponse[];\n};\n\nexport const editSettings = (\n\tmods: Partial<Mods>,\n\tappId: string = SHELL_APP_ID\n): Promise<EditSettingsBatchResponse> =>\n\tgetXmlSoapFetch(SHELL_APP_ID)<string, EditSettingsBatchResponse>(\n\t\t'Batch',\n\t\t`<BatchRequest xmlns=\"urn:zimbra\" onerror=\"stop\">${\n\t\t\tmods.props\n\t\t\t\t? `<ModifyPropertiesRequest xmlns=\"urn:zimbraAccount\">${map(\n\t\t\t\t\t\tmods.props,\n\t\t\t\t\t\t(prop, key) => `<prop name=\"${key}\" zimlet=\"${prop.app ?? appId}\">${prop.value}</prop>`\n\t\t\t\t )}</ModifyPropertiesRequest>`\n\t\t\t\t: ''\n\t\t}${\n\t\t\tmods.prefs\n\t\t\t\t? `<ModifyPrefsRequest xmlns=\"urn:zimbraAccount\">${map(mods.prefs, (pref, key) =>\n\t\t\t\t\t\tisArray(pref)\n\t\t\t\t\t\t\t? map(pref, (p) => `<pref name=\"${key}\">${p}</pref>`).join('')\n\t\t\t\t\t\t\t: `<pref name=\"${key}\">${pref}</pref>`\n\t\t\t\t ).join('')}</ModifyPrefsRequest>`\n\t\t\t\t: ''\n\t\t}${\n\t\t\tmods.identity?.modifyList\n\t\t\t\t? map(\n\t\t\t\t\t\tmods.identity.modifyList,\n\t\t\t\t\t\t(item) =>\n\t\t\t\t\t\t\t`<ModifyIdentityRequest xmlns=\"urn:zimbraAccount\" requestId=\"0\"><identity id=\"${\n\t\t\t\t\t\t\t\titem.id\n\t\t\t\t\t\t\t}\">${map(item.prefs, (value, key) => `<a name=\"${key}\">${value}</a>`).join(\n\t\t\t\t\t\t\t\t''\n\t\t\t\t\t\t\t)}</identity></ModifyIdentityRequest>`\n\t\t\t\t ).join('')\n\t\t\t\t: ''\n\t\t}${\n\t\t\tmods.identity?.deleteList\n\t\t\t\t? map(\n\t\t\t\t\t\tmods.identity.deleteList,\n\t\t\t\t\t\t(item) =>\n\t\t\t\t\t\t\t`<DeleteIdentityRequest xmlns=\"urn:zimbraAccount\" requestId=\"0\"><identity id=\"${item}\"/></DeleteIdentityRequest>`\n\t\t\t\t ).join('')\n\t\t\t\t: ''\n\t\t}${\n\t\t\tmods.identity?.createList\n\t\t\t\t? map(\n\t\t\t\t\t\tmods.identity.createList,\n\t\t\t\t\t\t(item, index) =>\n\t\t\t\t\t\t\t`<CreateIdentityRequest xmlns=\"urn:zimbraAccount\" requestId=\"${index}\"><identity name=\"${item.prefs.zimbraPrefIdentityName}\"><a name=\"zimbraPrefIdentityName\">${item.prefs.zimbraPrefIdentityName}</a><a name=\"zimbraPrefFromDisplay\">${item.prefs.zimbraPrefFromDisplay}</a><a name=\"zimbraPrefFromAddress\">${item.prefs.zimbraPrefFromAddress}</a><a name=\"zimbraPrefFromAddressType\">sendAs</a><a name=\"zimbraPrefReplyToEnabled\">${item.prefs.zimbraPrefReplyToEnabled}</a><a name=\"zimbraPrefReplyToDisplay\">${item.prefs.zimbraPrefReplyToDisplay}</a><a name=\"zimbraPrefReplyToAddress\">${item.prefs.zimbraPrefReplyToAddress}</a><a name=\"zimbraPrefDefaultSignatureId\">${item.prefs.zimbraPrefDefaultSignatureId}</a><a name=\"zimbraPrefForwardReplySignatureId\">${item.prefs.zimbraPrefForwardReplySignatureId}</a><a name=\"zimbraPrefWhenSentToEnabled\">${item.prefs.zimbraPrefWhenSentToEnabled}</a><a name=\"zimbraPrefWhenInFoldersEnabled\">${item.prefs.zimbraPrefWhenInFoldersEnabled}</a></identity></CreateIdentityRequest>`\n\t\t\t\t ).join('')\n\t\t\t\t: ''\n\t\t}${\n\t\t\tmods.permissions\n\t\t\t\t? `<RevokeRightsRequest xmlns=\"urn:zimbraAccount\" requestId=\"0\">${\n\t\t\t\t\t\tmods.permissions.freeBusy\n\t\t\t\t\t\t\t? map(mods.permissions.freeBusy.current, (right) => {\n\t\t\t\t\t\t\t\t\tif (right.gt === 'dom')\n\t\t\t\t\t\t\t\t\t\treturn `<ace right=\"viewFreeBusy\" gt=\"${right.gt}\" zid=\"${right.zid}\" d=\"zextras.com\"/>`;\n\t\t\t\t\t\t\t\t\tif (right.gt === 'all' && right.deny)\n\t\t\t\t\t\t\t\t\t\treturn `<ace right=\"viewFreeBusy\" gt=\"${right.gt}\" zid=\"${right.zid}\" deny=\"1\"/>`;\n\t\t\t\t\t\t\t\t\tif (right.gt === 'usr')\n\t\t\t\t\t\t\t\t\t\treturn `<ace right=\"viewFreeBusy\" gt=\"${right.gt}\" zid=\"${right.zid}\" d=\"${right.d}\"/>`;\n\t\t\t\t\t\t\t\t\treturn `<ace right=\"viewFreeBusy\" gt=\"${right.gt}\" zid=\"${right.zid}\" />`;\n\t\t\t\t\t\t\t }).join('')\n\t\t\t\t\t\t\t: ''\n\t\t\t\t }${\n\t\t\t\t\t\tmods.permissions.inviteRight\n\t\t\t\t\t\t\t? map(mods.permissions.inviteRight.current, (right) => {\n\t\t\t\t\t\t\t\t\tif (right.gt === 'all' && right.deny)\n\t\t\t\t\t\t\t\t\t\treturn `<ace right=\"invite\" gt=\"${right.gt}\" zid=\"${right.zid}\" deny=\"1\"/>`;\n\t\t\t\t\t\t\t\t\tif (right.gt === 'usr')\n\t\t\t\t\t\t\t\t\t\treturn `<ace right=\"invite\" gt=\"${right.gt}\" zid=\"${right.zid}\" d=\"${right.d}\"/>`;\n\t\t\t\t\t\t\t\t\treturn `<ace right=\"invite\" gt=\"${right.gt}\" zid=\"${right.zid}\" />`;\n\t\t\t\t\t\t\t }).join('')\n\t\t\t\t\t\t\t: ''\n\t\t\t\t }</RevokeRightsRequest><GrantRightsRequest xmlns=\"urn:zimbraAccount\" requestId=\"1\">${\n\t\t\t\t\t\tmods.permissions.freeBusy\n\t\t\t\t\t\t\t? `${((): string => {\n\t\t\t\t\t\t\t\t\tif (mods.permissions.freeBusy.new.gt === 'dom') {\n\t\t\t\t\t\t\t\t\t\treturn `<ace right=\"viewFreeBusy\" gt=\"${mods.permissions.freeBusy.new.gt}\" d=\"zextras.com\"/>`;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tmods.permissions.freeBusy.new.gt === 'all' &&\n\t\t\t\t\t\t\t\t\t\tmods.permissions.freeBusy.new.deny\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\treturn `<ace right=\"viewFreeBusy\" gt=\"${mods.permissions.freeBusy.new.gt}\" deny=\"1\"/>`;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (mods.permissions.freeBusy.new.gt === 'usr') {\n\t\t\t\t\t\t\t\t\t\treturn map(\n\t\t\t\t\t\t\t\t\t\t\tmods.permissions.freeBusy.new.d,\n\t\t\t\t\t\t\t\t\t\t\t(u) =>\n\t\t\t\t\t\t\t\t\t\t\t\t// FIXME: usage differs from the declaration of the AccountACE\n\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t\t\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\t\t\t`<ace right=\"viewFreeBusy\" gt=\"${mods.permissions?.freeBusy.new.gt}\" d=\"${u.email}\"/>`\n\t\t\t\t\t\t\t\t\t\t).join('');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn `<ace right=\"viewFreeBusy\" gt=\"${mods.permissions.freeBusy.new.gt}\" />`;\n\t\t\t\t\t\t\t })()}`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t }${\n\t\t\t\t\t\tmods.permissions.inviteRight\n\t\t\t\t\t\t\t? `${((): string => {\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tmods.permissions.inviteRight.new.gt === 'all' &&\n\t\t\t\t\t\t\t\t\t\tmods.permissions.inviteRight.new.deny\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\treturn `<ace right=\"invite\" gt=\"${mods.permissions.inviteRight.new.gt}\" deny=\"1\"/>`;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (mods.permissions.inviteRight.new.gt === 'usr') {\n\t\t\t\t\t\t\t\t\t\treturn map(\n\t\t\t\t\t\t\t\t\t\t\tmods.permissions.inviteRight.new.d,\n\t\t\t\t\t\t\t\t\t\t\t(u) =>\n\t\t\t\t\t\t\t\t\t\t\t\t// FIXME: usage differs from the declaration of the AccountACE\n\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t\t\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\t\t\t`<ace right=\"invite\" gt=\"${mods.permissions?.inviteRight.new.gt}\" d=\"${u.email}\"/>`\n\t\t\t\t\t\t\t\t\t\t).join('');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn `<ace right=\"invite\" gt=\"${mods.permissions?.inviteRight.new.gt}\" />`;\n\t\t\t\t\t\t\t })()}`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t }\n\t</GrantRightsRequest>`\n\t\t\t\t: ''\n\t\t}</BatchRequest>`\n\t).then((r) => {\n\t\tuseAccountStore.setState((s: AccountState) => ({\n\t\t\tsettings: {\n\t\t\t\t...s.settings,\n\t\t\t\tprefs: reduce(\n\t\t\t\t\tmods.prefs,\n\t\t\t\t\t(acc, pref, key) => ({\n\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t[key]: pref as string\n\t\t\t\t\t}),\n\t\t\t\t\ts.settings.prefs\n\t\t\t\t),\n\t\t\t\tprops: reduce(\n\t\t\t\t\tmods.props,\n\t\t\t\t\t(acc, { app, value }, key) => {\n\t\t\t\t\t\tconst propIndex = findIndex(acc, (p) => p.name === key && p.zimlet === app);\n\t\t\t\t\t\tif (propIndex >= 0) {\n\t\t\t\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\t\t\t\tacc[propIndex] = {\n\t\t\t\t\t\t\t\tname: key,\n\t\t\t\t\t\t\t\tzimlet: app,\n\t\t\t\t\t\t\t\t_content: value as string\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tacc.push({\n\t\t\t\t\t\t\t\tname: key,\n\t\t\t\t\t\t\t\tzimlet: app,\n\t\t\t\t\t\t\t\t_content: value as string\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t},\n\t\t\t\t\ts.settings.props\n\t\t\t\t)\n\t\t\t},\n\t\t\taccount: {\n\t\t\t\t...s.account,\n\t\t\t\tdisplayName:\n\t\t\t\t\tfind(mods?.identity?.modifyList, (item) => item.id === s?.account?.id)?.prefs\n\t\t\t\t\t\t.zimbraPrefIdentityName || s.account?.displayName,\n\t\t\t\tidentities: {\n\t\t\t\t\tidentity:\n\t\t\t\t\t\ttypeof s.account !== 'undefined'\n\t\t\t\t\t\t\t? reduce(\n\t\t\t\t\t\t\t\t\tmods?.identity?.modifyList,\n\t\t\t\t\t\t\t\t\t(acc, { id, prefs }) => {\n\t\t\t\t\t\t\t\t\t\tconst propIndex = findIndex(\n\t\t\t\t\t\t\t\t\t\t\tacc,\n\t\t\t\t\t\t\t\t\t\t\t(itemMods, indexAccount) => acc[indexAccount].id === id\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tif (propIndex > -1) {\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\t\t\t\t\t\t\t\tacc[propIndex]._attrs = {\n\t\t\t\t\t\t\t\t\t\t\t\t...acc[propIndex]._attrs,\n\t\t\t\t\t\t\t\t\t\t\t\t...prefs\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\tif (prefs.zimbraPrefIdentityName && acc[propIndex].name !== 'DEFAULT') {\n\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\t\t\t\t\t\t\t\t\tacc[propIndex].name = prefs.zimbraPrefIdentityName;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn acc;\n\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...filter(\n\t\t\t\t\t\t\t\t\t\t\ts.account.identities.identity,\n\t\t\t\t\t\t\t\t\t\t\t(item) => !mods?.identity?.deleteList?.includes(item.id)\n\t\t\t\t\t\t\t\t\t\t).filter((i) => i.name !== 'DEFAULT'),\n\t\t\t\t\t\t\t\t\t\t...map(r?.CreateIdentityResponse, (item) => item.identity[0]),\n\t\t\t\t\t\t\t\t\t\t...filter(\n\t\t\t\t\t\t\t\t\t\t\ts.account.identities.identity,\n\t\t\t\t\t\t\t\t\t\t\t(item) => !mods?.identity?.deleteList?.includes(item.id)\n\t\t\t\t\t\t\t\t\t\t).filter((i) => i.name === 'DEFAULT')\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t} as Account\n\t\t}));\n\t\treturn r;\n\t});\n\nexport const getEditSettingsForApp =\n\t(app: string) =>\n\t(mods: Mods): Promise<EditSettingsBatchResponse & { type?: 'fulfilled' }> =>\n\t\teditSettings(mods, app).then((r) => ({\n\t\t\t...r,\n\t\t\ttype: 'fulfilled'\n\t\t}));\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { find, map, maxBy } from 'lodash';\n\nimport { userAgent } from './user-agent';\nimport { goToLogin } from './utils';\nimport {\n\tAccount,\n\tErrorSoapBodyResponse,\n\tErrorSoapResponse,\n\tSoapContext,\n\tSoapResponse\n} from '../../types';\nimport { IS_STANDALONE, SHELL_APP_ID } from '../constants';\nimport { report } from '../reporting/functions';\nimport { useAccountStore } from '../store/account';\nimport { useNetworkStore } from '../store/network';\nimport { getPollingInterval, handleSync } from '../store/network/utils';\n\nexport const fetchNoOp = (): void => {\n\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\tgetSoapFetch(SHELL_APP_ID)(\n\t\t'NoOp',\n\t\tuseNetworkStore.getState().pollingInterval === 500\n\t\t\t? { _jsns: 'urn:zimbraMail', limitToOneBlocked: 1, wait: 1 }\n\t\t\t: { _jsns: 'urn:zimbraMail' }\n\t);\n};\n\nconst getAccount = (\n\tacc?: Account,\n\totherAccount?: string\n): { by: string; _content: string } | undefined => {\n\tif (otherAccount) {\n\t\treturn {\n\t\t\tby: 'name',\n\t\t\t_content: otherAccount\n\t\t};\n\t}\n\tif (acc) {\n\t\tif (acc.name) {\n\t\t\treturn {\n\t\t\t\tby: 'name',\n\t\t\t\t_content: acc.name\n\t\t\t};\n\t\t}\n\t\tif (acc.id) {\n\t\t\treturn {\n\t\t\t\tby: 'id',\n\t\t\t\t_content: acc.id\n\t\t\t};\n\t\t}\n\t}\n\treturn undefined;\n};\n\nconst getXmlAccount = (acc?: Account, otherAccount?: string): string => {\n\tif (otherAccount) {\n\t\treturn `<account by=\"name\">${otherAccount}</account>`;\n\t}\n\tif (acc) {\n\t\tif (acc.name) {\n\t\t\treturn `<account by=\"name\">${acc.name}</account>`;\n\t\t}\n\t\tif (acc.id) {\n\t\t\treturn `<account by=\"id\">${acc.id}</account>`;\n\t\t}\n\t}\n\treturn '';\n};\n\nconst getXmlSession = (): string => {\n\tconst sessionId = useNetworkStore.getState().session?.id;\n\tif (sessionId) {\n\t\treturn `<session id=\"${sessionId}\"/>`;\n\t}\n\treturn '';\n};\n\nconst normalizeContext = (context: any): SoapContext => {\n\tif (context.notify) {\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tcontext.notify = map(context.notify, (notify) => ({\n\t\t\t...notify,\n\t\t\tdeleted: notify.deleted?.id?.split(',')\n\t\t}));\n\t}\n\treturn context;\n};\n\nconst handleResponse = <R>(api: string, res: SoapResponse<R>): R | ErrorSoapBodyResponse => {\n\tconst { noOpTimeout } = useNetworkStore.getState();\n\tconst { usedQuota } = useAccountStore.getState();\n\tclearTimeout(noOpTimeout);\n\tif (res.Body.Fault) {\n\t\tif (\n\t\t\tfind(\n\t\t\t\t['service.AUTH_REQUIRED', 'service.AUTH_EXPIRED'],\n\t\t\t\t(code) => code === (<ErrorSoapResponse>res).Body.Fault.Detail?.Error?.Code\n\t\t\t)\n\t\t) {\n\t\t\tif (IS_STANDALONE) {\n\t\t\t\tuseAccountStore.setState({ authenticated: false });\n\t\t\t} else {\n\t\t\t\tgoToLogin();\n\t\t\t}\n\t\t}\n\t\tconsole.error(\n\t\t\tnew Error(\n\t\t\t\t`${(<ErrorSoapResponse>res).Body.Fault.Detail?.Error?.Detail}: ${\n\t\t\t\t\t(<ErrorSoapResponse>res).Body.Fault.Reason?.Text\n\t\t\t\t}`\n\t\t\t)\n\t\t);\n\t}\n\tif (res.Header?.context) {\n\t\tconst responseUsedQuota =\n\t\t\tres.Header.context?.refresh?.mbx?.[0]?.s ??\n\t\t\tres.Header.context?.notify?.[0]?.modified?.mbx?.[0]?.s;\n\t\tconst _context = normalizeContext(res.Header.context);\n\t\tconst seq = maxBy(_context.notify, 'seq')?.seq ?? 0;\n\t\thandleSync(_context);\n\t\tuseAccountStore.setState({\n\t\t\tusedQuota: responseUsedQuota ?? usedQuota\n\t\t});\n\n\t\tconst nextPollingInterval = getPollingInterval(res);\n\t\tuseNetworkStore.setState({\n\t\t\tnoOpTimeout: setTimeout(() => fetchNoOp(), nextPollingInterval),\n\t\t\tpollingInterval: nextPollingInterval,\n\t\t\tseq,\n\t\t\t..._context\n\t\t});\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t// @ts-ignore\n\treturn res?.Body?.Fault ? (res.Body as ErrorSoapBodyResponse) : (res.Body[`${api}Response`] as R);\n};\nexport const getSoapFetch =\n\t(app: string) =>\n\t<Request, Response>(\n\t\tapi: string,\n\t\tbody: Request,\n\t\totherAccount?: string,\n\t\tsignal?: AbortSignal\n\t): Promise<Response> => {\n\t\tconst { zimbraVersion, account } = useAccountStore.getState();\n\t\tconst { notify, session } = useNetworkStore.getState();\n\t\treturn fetch(`/service/soap/${api}Request`, {\n\t\t\tsignal,\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json'\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\tBody: {\n\t\t\t\t\t[`${api}Request`]: body\n\t\t\t\t},\n\t\t\t\tHeader: {\n\t\t\t\t\tcontext: {\n\t\t\t\t\t\t_jsns: 'urn:zimbra',\n\t\t\t\t\t\tnotify: notify?.[0]?.seq\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tseq: notify?.[0]?.seq\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\tsession: session ?? {},\n\t\t\t\t\t\taccount: getAccount(account as Account, otherAccount),\n\t\t\t\t\t\tuserAgent: {\n\t\t\t\t\t\t\tname: userAgent,\n\t\t\t\t\t\t\tversion: zimbraVersion\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}) // TODO proper error handling\n\t\t\t.then((res) => res?.json())\n\t\t\t.then((res: SoapResponse<Response>) => handleResponse(api, res))\n\t\t\t.catch((e) => {\n\t\t\t\treport(app)(e);\n\t\t\t\tthrow e;\n\t\t\t}) as Promise<Response>;\n\t};\n\nexport const getXmlSoapFetch =\n\t(app: string) =>\n\t<Request, Response>(api: string, body: Request, otherAccount?: string): Promise<Response> => {\n\t\tconst { zimbraVersion, account } = useAccountStore.getState();\n\t\treturn fetch(`/service/soap/${api}Request`, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'content-type': 'application/soap+xml'\n\t\t\t},\n\t\t\tbody: `<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\t\t<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\">\n\t\t\t<soap:Header><context xmlns=\"urn:zimbra\"><userAgent name=\"${userAgent}\" version=\"${zimbraVersion}\"/>${getXmlSession()}${getXmlAccount(\n\t\t\t\taccount,\n\t\t\t\totherAccount\n\t\t\t)}<format type=\"js\"/></context></soap:Header>\n\t\t\t<soap:Body>${body}</soap:Body>\n\t\t</soap:Envelope>`\n\t\t}) // TODO proper error handling\n\t\t\t.then((res) => res?.json())\n\t\t\t.then((res: SoapResponse<Response>) => handleResponse(api, res))\n\t\t\t.catch((e) => {\n\t\t\t\treport(app)(e);\n\t\t\t\tthrow e;\n\t\t\t}) as Promise<Response>;\n\t};\n\nexport const shellSoap = getSoapFetch(SHELL_APP_ID);\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { filter } from 'lodash';\n\nimport { CarbonioModule } from '../../types';\nimport { useAppStore } from '../store/app';\n\nexport const getComponents = (): Promise<void> =>\n\tfetch('/static/iris/components.json')\n\t\t.then((response) => {\n\t\t\tif (response.ok) {\n\t\t\t\treturn response.json();\n\t\t\t}\n\t\t\tthrow Error(response.statusText);\n\t\t})\n\t\t.then(({ components }: { components: Array<CarbonioModule> }) => {\n\t\t\tuseAppStore\n\t\t\t\t.getState()\n\t\t\t\t.setters.setApps(filter(components, ({ type }) => type === 'shell' || type === 'carbonio'));\n\t\t});\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { getSoapFetch } from './fetch';\nimport { GetInfoResponse } from '../../types';\nimport { SHELL_APP_ID } from '../constants';\nimport { useAccountStore } from '../store/account';\nimport { normalizeAccount } from '../store/account/normalization';\nimport { useNetworkStore } from '../store/network';\nimport { parsePollingInterval } from '../store/network/utils';\n\nexport const getInfo = (): Promise<void> =>\n\tgetSoapFetch(SHELL_APP_ID)<{ _jsns: string; rights: string }, GetInfoResponse>('GetInfo', {\n\t\t_jsns: 'urn:zimbraAccount',\n\t\trights: 'sendAs,sendAsDistList,viewFreeBusy,sendOnBehalfOf,sendOnBehalfOfDistList'\n\t}).then((res: GetInfoResponse): void => {\n\t\tif (res) {\n\t\t\tconst { account, settings, version } = normalizeAccount(res);\n\t\t\tuseNetworkStore.setState({\n\t\t\t\tpollingInterval: parsePollingInterval(settings)\n\t\t\t});\n\t\t\tuseAccountStore.setState({\n\t\t\t\tauthenticated: true,\n\t\t\t\taccount,\n\t\t\t\tsettings,\n\t\t\t\tzimbraVersion: version\n\t\t\t});\n\t\t}\n\t});\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { LoginConfigStore } from '../../types/loginConfig';\nimport { LOGIN_V3_CONFIG_PATH } from '../constants';\nimport { getClientTitle, getFavicon } from '../store/login/getters';\nimport { useLoginConfigStore } from '../store/login/store';\n\nexport const loginConfig = (): Promise<void> =>\n\tfetch(LOGIN_V3_CONFIG_PATH)\n\t\t.then((response) => response.json())\n\t\t.then((data: LoginConfigStore) => {\n\t\t\tuseLoginConfigStore.setState(data);\n\t\t})\n\t\t.finally(() => {\n\t\t\tuseLoginConfigStore.setState({ loaded: true });\n\t\t\tconst favicon = document.getElementById('favicon');\n\t\t\tif (favicon && favicon instanceof HTMLLinkElement) {\n\t\t\t\tfavicon.href = getFavicon();\n\t\t\t}\n\t\t\tdocument.title = getClientTitle();\n\t\t});\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { getSoapFetch } from './fetch';\nimport { goTo, goToLogin } from './utils';\nimport { SHELL_APP_ID } from '../constants';\nimport { useLoginConfigStore } from '../store/login/store';\n\nexport function logout(): Promise<void> {\n\treturn getSoapFetch(SHELL_APP_ID)('EndSession', {\n\t\t_jsns: 'urn:zimbraAccount',\n\t\tlogoff: true\n\t})\n\t\t.then(() => fetch('/logout', { redirect: 'manual' }))\n\t\t.then(() => {\n\t\t\tconst customLogoutUrl = useLoginConfigStore.getState().carbonioWebUiLogoutURL;\n\t\t\tcustomLogoutUrl ? goTo(customLogoutUrl) : goToLogin();\n\t\t})\n\t\t.catch((error) => {\n\t\t\tconsole.error(error);\n\t\t});\n}\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { getSoapFetch } from './fetch';\nimport {\n\tCreateTagRequest,\n\tCreateTagResponse,\n\tTagActionRequest,\n\tTagActionResponse\n} from '../../types';\nimport { Tag } from '../../types/tags';\nimport { SHELL_APP_ID } from '../constants';\n\nexport const createTag = (tag: Omit<Tag, 'id'>): Promise<CreateTagResponse> =>\n\tgetSoapFetch(SHELL_APP_ID)<CreateTagRequest, CreateTagResponse>('CreateTag', {\n\t\t_jsns: 'urn:zimbraMail',\n\t\ttag\n\t});\nexport const deleteTag = (id: string): Promise<TagActionResponse> =>\n\tgetSoapFetch(SHELL_APP_ID)<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\tgetSoapFetch(SHELL_APP_ID)<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\tgetSoapFetch(SHELL_APP_ID)<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: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport UAParser from 'ua-parser-js';\n\nconst { os, browser } = UAParser();\nexport const userAgent = `CarbonioWebClient - ${browser.name} ${browser.version} (${os.name})`;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nexport function goToLogin(): void {\n\twindow.location.assign(`${window.location.origin}/static/login`);\n}\n\nexport function goTo(location: string): void {\n\twindow.location.assign(location);\n}\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { debounce, noop } from 'lodash';\n\nimport defaultAudio from '../../assets/notification.mp3';\nimport type {\n\tAudioNotificationConfig,\n\tINotificationManager,\n\tNotificationConfig,\n\tPopupNotificationConfig\n} from '../../types';\nimport { getFavicon } from '../store/login/getters';\n\n/**\n * The main goals of the NotificationManager are:\n * - to provide a single and rich implementation for all the Carbonio modules,\n * reducing the boilerplate code needed to send a notification to the user\n * - to optimize the audio notifications avoiding to spam the same sound file\n * in a short period of time\n * - to act as a collector for all the notification (for possible future\n * implementations)\n *\n * In order to reduce the effort needed to send a notification the class\n * provided a set of default values/assets (e.g. icon, sound, title, ...)\n *\n * The class is provided as a singleton\n */\nexport class NotificationManager implements INotificationManager {\n\tprivate static instance: NotificationManager;\n\n\t/**\n\t * Minimum time (ms) to wait before the same audio file will be played\n\t * @private\n\t */\n\tprivate static DEBOUNCE_TIME = 1000;\n\n\t/**\n\t * Default configuration for the popup-only notification\n\t * @private\n\t */\n\tprivate PopupNotificationDefaultConfig = {\n\t\ttitle: '',\n\t\tvibrate: [200, 100, 200],\n\t\ticon: getFavicon()\n\t};\n\n\t/**\n\t * Default configuration for the audio-only notification\n\t * @private\n\t */\n\tprivate AudioNotificationDefaultConfig: AudioNotificationConfig = {\n\t\tsound: defaultAudio\n\t};\n\n\t/**\n\t * Default configuration for a notification with both popup and audio\n\t * @private\n\t */\n\tprivate NotificationDefaultConfig: NotificationConfig = {\n\t\t...this.PopupNotificationDefaultConfig,\n\t\t...this.AudioNotificationDefaultConfig,\n\t\tshowPopup: true,\n\t\tplaySound: false\n\t};\n\n\t/**\n\t * Map of functions to play a specific audio file\n\t * @private\n\t */\n\tprivate functions = new Map<string, () => void>();\n\n\t/**\n\t * Gets or creates the (debounced) function to play the audio file\n\t * @param sound - relative path to the audio file to play\n\t */\n\tprivate getAudioFileFunction = (sound: string): (() => void) => {\n\t\tif (!this.functions.has(sound)) {\n\t\t\tthis.functions.set(\n\t\t\t\tsound,\n\t\t\t\tdebounce(() => {\n\t\t\t\t\tnew Audio(sound).play().then();\n\t\t\t\t\tthis.functions.delete(sound);\n\t\t\t\t}, NotificationManager.DEBOUNCE_TIME)\n\t\t\t);\n\t\t}\n\t\tconst result = this.functions.get(sound);\n\t\treturn result ?? noop;\n\t};\n\n\t/**\n\t * Executes the debounced function to play the audio file\n\t * @param config - Configuration for the audio notification. In case of\n\t * missing properties default values are used\n\t */\n\tpublic playSound = (config: AudioNotificationConfig): void => {\n\t\tconst defConfig = {\n\t\t\t...this.AudioNotificationDefaultConfig,\n\t\t\t...config\n\t\t};\n\t\tif (!defConfig.sound) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.getAudioFileFunction(defConfig.sound)();\n\t};\n\n\t/**\n\t * Shows a popup notification\n\t * @param config - Configuration for the popup notification. In case of\n\t * missing properties default values are used\n\t */\n\tpublic showPopup = (config: PopupNotificationConfig): void => {\n\t\tconst defConfig = {\n\t\t\t...this.PopupNotificationDefaultConfig,\n\t\t\t...config\n\t\t};\n\n\t\tconst n = new Notification(defConfig.title, {\n\t\t\tbody: defConfig.message,\n\t\t\tvibrate: defConfig.vibrate,\n\t\t\ticon: defConfig.icon,\n\t\t\ttag: defConfig?.tag\n\t\t});\n\n\t\tif (defConfig.onClick) {\n\t\t\tn.addEventListener('click', defConfig.onClick);\n\t\t}\n\t};\n\n\t/**\n\t * Sends a popup/audio notification to the user\n\t * @param config - Configuration for the notification. In case of\n\t * missing properties default values are used\n\t */\n\tpublic notify = (config: NotificationConfig): void => {\n\t\tconst defConfig = {\n\t\t\t...this.NotificationDefaultConfig,\n\t\t\t...config\n\t\t};\n\n\t\tif (defConfig?.showPopup) {\n\t\t\tthis.showPopup(defConfig);\n\t\t}\n\n\t\tif (defConfig?.playSound) {\n\t\t\tthis.playSound(defConfig);\n\t\t}\n\t};\n\n\t/**\n\t * Sends multiple notifications\n\t * @param config - Array of configurations for the notifications. In case of\n\t * missing properties default values are used\n\t */\n\tpublic multipleNotify = (config: NotificationConfig[]): void => {\n\t\tconfig.forEach((conf) => this.notify(conf));\n\t};\n\n\t/**\n\t * Return the singleton instance\n\t */\n\tpublic static getInstance(): NotificationManager {\n\t\tif (!NotificationManager.instance) {\n\t\t\tNotificationManager.instance = new NotificationManager();\n\t\t}\n\n\t\treturn NotificationManager.instance;\n\t}\n}\n\nexport const getNotificationManager = (): INotificationManager => NotificationManager.getInstance();\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { FC, ReactElement, useEffect } from 'react';\n\nexport const NotificationPermissionChecker: FC = (): ReactElement => {\n\tuseEffect(() => {\n\t\tif (!('Notification' in window)) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn('This browser does not support desktop notifications');\n\t\t} else {\n\t\t\tNotification.requestPermission();\n\t\t}\n\t}, []);\n\n\treturn <></>;\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport type { Event, EventHint } from '@sentry/browser';\n\nimport { useReporter } from './store';\n\nexport const report =\n\t(appId: string) =>\n\t(error: Event, hint?: EventHint): string => {\n\t\tconst reporter = useReporter.getState();\n\t\tconst eventId = reporter.clients[appId]?.captureException(error, { ...hint });\n\t\tif (eventId) {\n\t\t\tconsole.info('Reported event ', eventId);\n\t\t}\n\t\treturn eventId;\n\t};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport {\n\tBrowserClient,\n\tdefaultIntegrations,\n\tdefaultStackParser,\n\tHub,\n\tmakeFetchTransport\n} from '@sentry/browser';\nimport { reduce } from 'lodash';\nimport { create } from 'zustand';\n\nimport type { CarbonioModule } from '../../types';\nimport { SENTRY_SHELL_DSN, SHELL_APP_ID } from '../constants';\n\ntype ReporterState = {\n\tclients: Record<string, Hub>;\n\tsetClients: (apps: Array<CarbonioModule>) => void;\n};\n\nexport const useReporter = create<ReporterState>()((set) => ({\n\tclients: {\n\t\t[SHELL_APP_ID]: new Hub(\n\t\t\tnew BrowserClient({\n\t\t\t\ttransport: makeFetchTransport,\n\t\t\t\tstackParser: defaultStackParser,\n\t\t\t\tintegrations: defaultIntegrations,\n\t\t\t\tdsn: SENTRY_SHELL_DSN,\n\t\t\t\trelease: '0',\n\t\t\t\tmaxValueLength: 500\n\t\t\t})\n\t\t)\n\t},\n\tsetClients: (apps): void => {\n\t\tset((s) => ({\n\t\t\tclients: reduce(\n\t\t\t\tapps,\n\t\t\t\t(acc, app) => {\n\t\t\t\t\tif (app.sentryDsn) {\n\t\t\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\t\t\ts.clients[app.name] = new Hub(\n\t\t\t\t\t\t\tnew BrowserClient({\n\t\t\t\t\t\t\t\ttransport: makeFetchTransport,\n\t\t\t\t\t\t\t\tstackParser: defaultStackParser,\n\t\t\t\t\t\t\t\tintegrations: defaultIntegrations,\n\t\t\t\t\t\t\t\tdsn: app.sentryDsn,\n\t\t\t\t\t\t\t\trelease: app.version,\n\t\t\t\t\t\t\t\tmaxValueLength: 500\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\treturn acc;\n\t\t\t\t},\n\t\t\t\ts.clients\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, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport {\n\tContainer,\n\tRow,\n\tText,\n\tIcon,\n\tDropdown,\n\tDropdownItem\n} from '@zextras/carbonio-design-system';\nimport styled from 'styled-components';\n\nimport { useSearchStore } from './search-store';\nimport { SEARCH_APP_ID } from '../constants';\nimport { useCurrentRoute, pushHistory } from '../history/hooks';\nimport { useAppStore } from '../store/app';\n\nconst SelectorContainer = styled(Container)<{ open?: boolean }>`\n\tborder-right: 0.0625rem solid ${({ theme }): string => theme.palette.gray4.regular};\n\tcursor: pointer;\n\tbackground: ${({ theme, open }): string => theme.palette[open ? 'gray5' : 'gray6'].regular};\n\n\t&:hover {\n\t\tbackground: ${({ theme, open }): string => theme.palette[open ? 'gray5' : 'gray6'].hover};\n\t}\n`;\n\ninterface ModuleSelectorProps {\n\tapp: string | undefined;\n}\n\nconst ModuleSelectorComponent = ({ app }: ModuleSelectorProps): React.JSX.Element | null => {\n\tconst modules = useAppStore((s) => s.views.search);\n\tconst { module, updateModule } = useSearchStore();\n\n\tconst fullModule = useMemo(\n\t\t() => modules.find((m) => m.route === module) ?? modules[0],\n\t\t[module, modules]\n\t);\n\n\tconst [open, setOpen] = useState(false);\n\n\tconst dropdownItems = useMemo(\n\t\t(): DropdownItem[] =>\n\t\t\tmodules.map(\n\t\t\t\t({ id, label, icon, route }): DropdownItem => ({\n\t\t\t\t\tid,\n\t\t\t\t\tlabel,\n\t\t\t\t\ticon,\n\t\t\t\t\tonClick: (): void => {\n\t\t\t\t\t\tupdateModule(route);\n\t\t\t\t\t\tpushHistory({ route: SEARCH_APP_ID, path: `/${route}` });\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t),\n\t\t[modules, updateModule]\n\t);\n\n\tuseEffect(() => {\n\t\tif (app !== SEARCH_APP_ID && (!fullModule || fullModule?.app !== app)) {\n\t\t\tupdateModule((modules.find((m) => m.app === app) ?? modules[0])?.route);\n\t\t}\n\t}, [app, fullModule, modules, updateModule]);\n\n\tconst openDropdown = useCallback(() => {\n\t\tsetOpen(true);\n\t}, []);\n\n\tconst closeDropdown = useCallback(() => {\n\t\tsetOpen(false);\n\t}, []);\n\n\tif (!fullModule) {\n\t\treturn null;\n\t}\n\n\t// TODO: replace the Dropdown with a Select with the customLabelFactory\n\treturn (\n\t\t<Dropdown items={dropdownItems} onOpen={openDropdown} onClose={closeDropdown}>\n\t\t\t<SelectorContainer\n\t\t\t\tdata-testid=\"HeaderModuleSelector\"\n\t\t\t\torientation=\"horizontal\"\n\t\t\t\theight=\"2.625rem\"\n\t\t\t\twidth=\"fit\"\n\t\t\t\tminWidth=\"9.375rem\"\n\t\t\t\tcrossAlignment=\"center\"\n\t\t\t\tmainAlignment=\"space-between\"\n\t\t\t\tborderRadius=\"half\"\n\t\t\t>\n\t\t\t\t<Row takeAvailableSpace mainAlignment=\"unset\" padding={{ left: 'small' }}>\n\t\t\t\t\t<Text size=\"small\" color={open ? 'primary' : 'text'}>\n\t\t\t\t\t\t{fullModule?.label}\n\t\t\t\t\t</Text>\n\t\t\t\t</Row>\n\t\t\t\t<Icon\n\t\t\t\t\tsize=\"large\"\n\t\t\t\t\ticon={open ? 'ChevronUpOutline' : 'ChevronDownOutline'}\n\t\t\t\t\tcolor={open ? 'primary' : 'text'}\n\t\t\t\t\tstyle={{ alignSelf: 'center' }}\n\t\t\t\t/>\n\t\t\t</SelectorContainer>\n\t\t</Dropdown>\n\t);\n};\n\nconst MemoModuleSelector = React.memo(ModuleSelectorComponent);\n\nexport const ModuleSelector = (): React.JSX.Element => {\n\tconst activeRoute = useCurrentRoute();\n\treturn <MemoModuleSelector app={activeRoute?.app} />;\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useSearchStore } from './search-store';\nimport { QueryChip } from '../../types';\nimport { SEARCH_APP_ID } from '../constants';\nimport { pushHistory } from '../history/hooks';\n\nexport const runSearch = (query: Array<QueryChip>, module: string): void => {\n\tuseSearchStore.setState({ query, module, searchDisabled: false });\n\tpushHistory({ route: SEARCH_APP_ID, path: `/${module}` });\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport {\n\tButton,\n\tChip,\n\tContainer,\n\tDivider,\n\tIcon,\n\tPadding,\n\tText\n} from '@zextras/carbonio-design-system';\nimport { map } from 'lodash';\nimport { Redirect, Route, Switch } from 'react-router-dom';\n\nimport { useSearchStore } from './search-store';\nimport { type SearchState } from '../../types';\nimport AppContextProvider from '../boot/app/app-context-provider';\nimport { ResultLabelType, SEARCH_APP_ID } from '../constants';\nimport { useAppStore } from '../store/app';\nimport { getT } from '../store/i18n';\n\nconst useQuery = (): [query: SearchState['query'], updateQuery: SearchState['updateQuery']] =>\n\tuseSearchStore((s) => [s.query, s.updateQuery]);\n\nconst useDisableSearch = (): [\n\tisDisabled: SearchState['searchDisabled'],\n\tsetDisabled: SearchState['setSearchDisabled']\n] => useSearchStore((s) => [s.searchDisabled, s.setSearchDisabled]);\n\nconst getIconAndColor = (labelType: ResultLabelType): [icon: string, color: string] => {\n\tif (labelType === ResultLabelType.WARNING) {\n\t\treturn ['AlertTriangle', 'warning'];\n\t}\n\tif (labelType === ResultLabelType.ERROR) {\n\t\treturn ['CloseSquare', 'error'];\n\t}\n\treturn ['', ''];\n};\n\ninterface ResultsHeaderProps {\n\tlabel: string;\n\tlabelType?: ResultLabelType;\n}\n\nconst ResultsHeader = ({\n\tlabel,\n\tlabelType = ResultLabelType.NORMAL\n}: ResultsHeaderProps): React.JSX.Element => {\n\tconst t = getT();\n\tconst [query, updateQuery] = useQuery();\n\tconst [, setDisabled] = useDisableSearch();\n\n\tconst resetQuery = useCallback(() => {\n\t\tupdateQuery([]);\n\t\tsetDisabled(false);\n\t}, [updateQuery, setDisabled]);\n\n\tconst labelTypeElem = useMemo<React.JSX.Element>(() => {\n\t\tif (labelType === ResultLabelType.NORMAL) {\n\t\t\treturn <></>;\n\t\t}\n\n\t\tconst [icon, color] = getIconAndColor(labelType);\n\t\treturn (\n\t\t\t<Padding right=\"small\">\n\t\t\t\t<Icon icon={icon} size=\"large\" color={color} />\n\t\t\t</Padding>\n\t\t);\n\t}, [labelType]);\n\n\tconst chipItems = useMemo(\n\t\t() =>\n\t\t\tmap(query, (queryChip, index) => (\n\t\t\t\t<Padding key={`${index}${queryChip.label}`} all=\"extrasmall\">\n\t\t\t\t\t<Chip {...queryChip} background={'gray2'} />\n\t\t\t\t</Padding>\n\t\t\t)),\n\t\t[query]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<Container\n\t\t\t\torientation=\"horizontal\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\twidth=\"100%\"\n\t\t\t\tbackground={'gray5'}\n\t\t\t\theight=\"fit\"\n\t\t\t\tminHeight=\"3rem\"\n\t\t\t\tmaxHeight=\"7.5rem\"\n\t\t\t\tstyle={{ overflow: 'hidden' }}\n\t\t\t\tpadding={{ horizontal: 'large', vertical: 'medium' }}\n\t\t\t>\n\t\t\t\t<Container width=\"85%\" orientation=\"horizontal\" wrap=\"wrap\" mainAlignment=\"flex-start\">\n\t\t\t\t\t{labelTypeElem}\n\t\t\t\t\t<Text color=\"secondary\">{label}</Text>\n\t\t\t\t\t{chipItems}\n\t\t\t\t</Container>\n\t\t\t\t{query?.length > 0 && (\n\t\t\t\t\t<Container width=\"15%\" mainAlignment=\"flex-start\" crossAlignment=\"flex-start\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tlabel={t('label.clear_search_query', 'CLEAR SEARCH')}\n\t\t\t\t\t\t\ticon=\"CloseOutline\"\n\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\twidth=\"fill\"\n\t\t\t\t\t\t\ttype=\"ghost\"\n\t\t\t\t\t\t\tonClick={resetQuery}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Container>\n\t\t\t\t)}\n\t\t\t</Container>\n\t\t\t<Divider color=\"gray3\" />\n\t\t</>\n\t);\n};\n\nexport const SearchAppView = (): React.JSX.Element => {\n\tconst searchViews = useAppStore((s) => s.views.search);\n\tconst { module } = useSearchStore();\n\tconst modules = useAppStore((s) => s.views.search);\n\n\tconst fullModule = useMemo(() => modules.find((m) => m.route === module), [module, modules]);\n\n\tconst routes = useMemo(\n\t\t() =>\n\t\t\tmap(searchViews, (view) => (\n\t\t\t\t<Route key={`/${view.route}`} path={`/${SEARCH_APP_ID}/${view.route}`}>\n\t\t\t\t\t<AppContextProvider pkg={view.app}>\n\t\t\t\t\t\t<view.component\n\t\t\t\t\t\t\tuseQuery={useQuery}\n\t\t\t\t\t\t\tResultsHeader={ResultsHeader}\n\t\t\t\t\t\t\tuseDisableSearch={useDisableSearch}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</AppContextProvider>\n\t\t\t\t</Route>\n\t\t\t)),\n\t\t[searchViews]\n\t);\n\n\treturn (\n\t\t<Switch>\n\t\t\t{routes}\n\t\t\t<Redirect\n\t\t\t\texact\n\t\t\t\tstrict\n\t\t\t\tfrom={`/${SEARCH_APP_ID}`}\n\t\t\t\tto={`/${SEARCH_APP_ID}/${fullModule ? fullModule.route : searchViews[0]?.route}`}\n\t\t\t/>\n\t\t</Switch>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport {\n\tChipInput,\n\tChipInputProps,\n\tContainer,\n\tIconButton,\n\tPadding,\n\tTooltip\n} from '@zextras/carbonio-design-system';\nimport { filter, find, map, reduce, some } from 'lodash';\nimport { useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { ModuleSelector } from './module-selector';\nimport { useSearchStore } from './search-store';\nimport { QueryChip, QueryItem } from '../../types';\nimport { LOCAL_STORAGE_SEARCH_KEY, SEARCH_APP_ID } from '../constants';\nimport { useLocalStorage } from '../shell/hooks/useLocalStorage';\nimport { useAppStore } from '../store/app';\nimport { getT } from '../store/i18n';\n\nconst OutlinedIconButton = styled(IconButton)`\n\tborder: 0.0625rem solid\n\t\t${({ theme, disabled }): string =>\n\t\t\tdisabled ? theme.palette.primary.disabled : theme.palette.primary.regular};\n\tdisplay: block;\n\t& svg {\n\t\tborder: none;\n\t}\n`;\n\nconst StyledChipInput = styled(ChipInput)`\n\tpadding: 0 1rem;\n\t&:hover {\n\t\toutline: none;\n\t\tbackground: ${({ theme, disabled }): string =>\n\t\t\tdisabled ? 'gray5' : theme.palette.gray5.hover};\n\t}\n`;\n\nconst StyledContainer = styled(Container)`\n\theight: 2.625rem;\n\toverflow-y: hidden;\n\t&:first-child {\n\t\ttransform: translateY(-0.125rem);\n\t}\n`;\n\ntype SearchOption = NonNullable<ChipInputProps['options']>[number] & QueryItem;\n\nexport const SearchBar = (): React.JSX.Element => {\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst t = getT();\n\tconst [storedSuggestions, setStoredSuggestions] = useLocalStorage<SearchOption[]>(\n\t\tLOCAL_STORAGE_SEARCH_KEY,\n\t\t[]\n\t);\n\tconst [inputTyped, setInputTyped] = useState<string>('');\n\tconst history = useHistory();\n\tconst {\n\t\tupdateQuery,\n\t\tmodule: currentSearchModuleRoute,\n\t\tquery,\n\t\tsearchDisabled,\n\t\tsetSearchDisabled,\n\t\ttooltip\n\t} = useSearchStore();\n\tconst modules = useAppStore((s) => s.views.search);\n\tconst moduleLabel = useMemo(\n\t\t() =>\n\t\t\tmodules.find(({ route }) => route === currentSearchModuleRoute)?.label ||\n\t\t\tcurrentSearchModuleRoute,\n\t\t[currentSearchModuleRoute, modules]\n\t);\n\n\tconst [isTyping, setIsTyping] = useState(false);\n\n\tconst [options, setOptions] = useState<SearchOption[]>([]);\n\n\tconst [inputHasFocus, setInputHasFocus] = useState(false);\n\n\tconst [searchInputValue, setSearchInputValue] = useState<QueryChip[]>(query);\n\n\tconst showClear = useMemo(\n\t\t() =>\n\t\t\tsearchInputValue.length > 0 ||\n\t\t\t(inputRef.current?.value && inputRef.current?.value?.length > 0),\n\t\t[searchInputValue.length]\n\t);\n\tconst clearSearch = useCallback((): void => {\n\t\tif (inputRef.current) {\n\t\t\tinputRef.current.value = '';\n\t\t\tinputRef.current?.focus();\n\t\t}\n\t\tsetIsTyping(false);\n\t\tsetSearchInputValue([]);\n\t\tsetSearchDisabled(false);\n\t\tupdateQuery([]);\n\t\tsetInputTyped('');\n\t}, [setSearchDisabled, updateQuery]);\n\n\tconst onSearch = useCallback(() => {\n\t\tupdateQuery((currentQuery) => {\n\t\t\tconst ref = inputRef?.current;\n\t\t\tif (ref) {\n\t\t\t\tref.value = '';\n\t\t\t}\n\t\t\tif (inputTyped.length > 0) {\n\t\t\t\tconst newInputValue: typeof searchInputValue = [\n\t\t\t\t\t...searchInputValue,\n\t\t\t\t\t...map(\n\t\t\t\t\t\tinputTyped.split(' '),\n\t\t\t\t\t\t(label, id): QueryChip => ({\n\t\t\t\t\t\t\tid: `${id}`,\n\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\thasAvatar: false\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t];\n\t\t\t\tsetSearchInputValue(newInputValue);\n\t\t\t\tsetInputTyped('');\n\t\t\t\treturn reduce(\n\t\t\t\t\tnewInputValue,\n\t\t\t\t\t(acc, newInputChip) => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!some(\n\t\t\t\t\t\t\t\tcurrentQuery,\n\t\t\t\t\t\t\t\t(currentQueryChip) => currentQueryChip.label === newInputChip.label\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tacc.push(newInputChip);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t},\n\t\t\t\t\tfilter(currentQuery, (currentQueryChip) =>\n\t\t\t\t\t\tsome(\n\t\t\t\t\t\t\tsearchInputValue,\n\t\t\t\t\t\t\t(searchInputChip) => searchInputChip.label === currentQueryChip.label\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tsetInputTyped('');\n\n\t\t\treturn reduce(\n\t\t\t\tsearchInputValue,\n\t\t\t\t(acc, searchInputChip) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\t!some(\n\t\t\t\t\t\t\tcurrentQuery,\n\t\t\t\t\t\t\t(currentQueryChip) => currentQueryChip.label === searchInputChip.label\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tacc.push(searchInputChip);\n\t\t\t\t\t}\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\n\t\t\t\tfilter(currentQuery, (currentQueryChip: QueryChip) =>\n\t\t\t\t\tsome(\n\t\t\t\t\t\tsearchInputValue,\n\t\t\t\t\t\t(searchInputChip) => searchInputChip.label === currentQueryChip.label\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t);\n\t\t});\n\t\t// TODO: perform a navigation only when coming from a different module (not the search one)\n\t\thistory.push(`/${SEARCH_APP_ID}/${currentSearchModuleRoute}`);\n\t}, [updateQuery, history, currentSearchModuleRoute, inputTyped, searchInputValue]);\n\n\tconst appSuggestions = useMemo<SearchOption[]>(\n\t\t() =>\n\t\t\tfilter(storedSuggestions, (v) => v.app === currentSearchModuleRoute)\n\t\t\t\t.reverse()\n\t\t\t\t.map(\n\t\t\t\t\t(item): SearchOption => ({\n\t\t\t\t\t\t...item,\n\t\t\t\t\t\tdisabled: searchDisabled,\n\t\t\t\t\t\tonClick: (): void => {\n\t\t\t\t\t\t\tconst newInputChip: QueryChip = { ...item, hasAvatar: false, onClick: undefined };\n\t\t\t\t\t\t\tsetSearchInputValue((prevState) => [...prevState, newInputChip]);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t),\n\t\t[storedSuggestions, currentSearchModuleRoute, searchDisabled]\n\t);\n\n\tconst updateOptions = useCallback(\n\t\t(textContent: string, queryChips: QueryChip[]): void => {\n\t\t\tif (textContent.length > 0) {\n\t\t\t\tsetOptions(\n\t\t\t\t\tappSuggestions\n\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t(suggestion) =>\n\t\t\t\t\t\t\t\ttextContent &&\n\t\t\t\t\t\t\t\tsuggestion.label.includes(textContent) &&\n\t\t\t\t\t\t\t\t!some(queryChips, (queryChip) => queryChip.value === suggestion.label)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.slice(0, 5)\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tsetOptions(appSuggestions.slice(0, 5));\n\t\t\t}\n\t\t},\n\t\t[appSuggestions]\n\t);\n\n\tconst onQueryChange = useCallback<NonNullable<ChipInputProps['onChange']>>(\n\t\t(newQuery) => {\n\t\t\t// FIXME: move the saving of suggestions after the search occurs.\n\t\t\t// \tThe saving logic should not be placed here because the onChange is called even when a chip is removed from the chipInput.\n\t\t\t// So, at the moment, keywords never searched for are saved too.\n\t\t\tconst lastChipLabel = newQuery[newQuery.length - 1]?.label;\n\t\t\tif (\n\t\t\t\tlastChipLabel &&\n\t\t\t\ttypeof lastChipLabel === 'string' &&\n\t\t\t\tcurrentSearchModuleRoute &&\n\t\t\t\t!find(appSuggestions, (suggestion) => suggestion.label === lastChipLabel)\n\t\t\t) {\n\t\t\t\tsetStoredSuggestions((prevState) => {\n\t\t\t\t\tconst newSuggestion: SearchOption = {\n\t\t\t\t\t\tvalue: lastChipLabel,\n\t\t\t\t\t\tlabel: lastChipLabel,\n\t\t\t\t\t\ticon: 'ClockOutline',\n\t\t\t\t\t\tapp: currentSearchModuleRoute,\n\t\t\t\t\t\tid: lastChipLabel\n\t\t\t\t\t};\n\t\t\t\t\treturn [...prevState, newSuggestion];\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// FIXME: remove the cast (by making ChipItem support generics?)\n\t\t\tsetSearchInputValue(newQuery as QueryChip[]);\n\t\t},\n\t\t[appSuggestions, currentSearchModuleRoute, setStoredSuggestions]\n\t);\n\n\tconst onInputType = useCallback<NonNullable<ChipInputProps['onInputType']>>(\n\t\t(ev) => {\n\t\t\tif (!ev.textContent) {\n\t\t\t\tsetIsTyping(false);\n\t\t\t} else {\n\t\t\t\tsetIsTyping(true);\n\t\t\t}\n\t\t\tsetInputTyped(ev.textContent || '');\n\t\t\tupdateOptions(ev.textContent || '', query);\n\t\t},\n\t\t[query, updateOptions]\n\t);\n\n\tuseEffect(() => {\n\t\tif (currentSearchModuleRoute) {\n\t\t\tconst suggestions = filter(\n\t\t\t\tappSuggestions,\n\t\t\t\t(suggestion) => suggestion.app === currentSearchModuleRoute\n\t\t\t).slice(0, 5);\n\n\t\t\tsetOptions(suggestions);\n\t\t}\n\t}, [appSuggestions, currentSearchModuleRoute]);\n\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\tconst addFocus = useCallback(() => setInputHasFocus(true), []);\n\tconst removeFocus = useCallback(() => setInputHasFocus(false), []);\n\n\tuseEffect(() => {\n\t\tconst ref = inputRef.current;\n\t\tconst runSearchOnKeyUp = (ev: KeyboardEvent): void => {\n\t\t\tif (ev.key === 'Enter') {\n\t\t\t\tonSearch();\n\t\t\t\tremoveFocus();\n\t\t\t}\n\t\t};\n\t\tif (ref) {\n\t\t\tref.addEventListener('keyup', runSearchOnKeyUp);\n\t\t}\n\n\t\treturn (): void => {\n\t\t\tif (ref) {\n\t\t\t\tref.removeEventListener('keyup', runSearchOnKeyUp);\n\t\t\t}\n\t\t};\n\t}, [onSearch, removeFocus]);\n\n\tconst disableOptions = useMemo(() => options.length <= 0 || isTyping, [options, isTyping]);\n\n\tconst placeholder = useMemo(\n\t\t() =>\n\t\t\tinputHasFocus && currentSearchModuleRoute\n\t\t\t\t? t('search.active_input_label', 'Separate your keywords by a comma or pressing TAB')\n\t\t\t\t: t('search.idle_input_label', 'Search in {{module}}', {\n\t\t\t\t\t\tmodule: moduleLabel\n\t\t\t\t }),\n\t\t[currentSearchModuleRoute, inputHasFocus, moduleLabel, t]\n\t);\n\n\tconst clearButtonPlaceholder = useMemo(\n\t\t() =>\n\t\t\tshowClear || isTyping\n\t\t\t\t? t('search.clear', 'Clear search input')\n\t\t\t\t: t('search.already_clear', 'Search input is already clear'),\n\t\t[showClear, t, isTyping]\n\t);\n\n\tconst searchButtonsAreDisabled = useMemo(\n\t\t() => (isTyping ? false : !showClear),\n\t\t[showClear, isTyping]\n\t);\n\n\tconst searchBtnTooltipLabel = useMemo(() => {\n\t\tif (!searchButtonsAreDisabled && searchInputValue.length > 0) {\n\t\t\treturn t('search.start', 'Start search');\n\t\t}\n\t\tif (inputHasFocus) {\n\t\t\treturn t(\n\t\t\t\t'search.type_or_choose_suggestion',\n\t\t\t\t'Type or choose some keywords to start a search'\n\t\t\t);\n\t\t}\n\t\tif (query.length > 0) {\n\t\t\treturn t('label.edit_to_start_search', 'Edit your search to start a new one');\n\t\t}\n\t\treturn t('search.type_to_start_search', 'Type some keywords to start a search');\n\t}, [searchButtonsAreDisabled, searchInputValue.length, inputHasFocus, query.length, t]);\n\n\tconst onChipAdd = useCallback<NonNullable<ChipInputProps['onAdd']>>(\n\t\t(newChip) => {\n\t\t\tsetIsTyping(false);\n\t\t\tsetInputTyped('');\n\t\t\tif (currentSearchModuleRoute) {\n\t\t\t\tconst suggestions = filter(\n\t\t\t\t\tappSuggestions,\n\t\t\t\t\t(suggestion) => suggestion?.app === currentSearchModuleRoute\n\t\t\t\t).slice(0, 5);\n\n\t\t\t\tsetOptions(suggestions);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tlabel: typeof newChip === 'string' ? newChip : '',\n\t\t\t\tvalue: newChip,\n\t\t\t\thasAvatar: false\n\t\t\t};\n\t\t},\n\t\t[appSuggestions, currentSearchModuleRoute]\n\t);\n\n\tuseEffect(() => {\n\t\tsetSearchInputValue(map(query, (queryChip) => ({ ...queryChip, disabled: searchDisabled })));\n\t}, [searchDisabled, query]);\n\n\treturn (\n\t\t<Container\n\t\t\twidth=\"fit\"\n\t\t\tflexGrow=\"1\"\n\t\t\torientation=\"horizontal\"\n\t\t\tref={containerRef}\n\t\t\tmainAlignment=\"flex-start\"\n\t\t\tcrossAlignment=\"flex-start\"\n\t\t>\n\t\t\t<Tooltip\n\t\t\t\tdisabled={!searchDisabled}\n\t\t\t\tmaxWidth=\"100%\"\n\t\t\t\tlabel={\n\t\t\t\t\ttooltip ??\n\t\t\t\t\tt('search.unable_to_parse_query', 'Unable to complete the search, clear it and retry')\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<Container orientation=\"horizontal\" width=\"fill\" maxWidth={'53vw'} minWidth={'32rem'}>\n\t\t\t\t\t<Container minWidth=\"20rem\" width=\"fill\">\n\t\t\t\t\t\t<Container orientation=\"horizontal\" width=\"fill\">\n\t\t\t\t\t\t\t<Container width=\"fit\">\n\t\t\t\t\t\t\t\t<ModuleSelector />\n\t\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t\t<StyledContainer orientation=\"horizontal\">\n\t\t\t\t\t\t\t\t<StyledChipInput\n\t\t\t\t\t\t\t\t\tdisabled={searchDisabled}\n\t\t\t\t\t\t\t\t\tinputRef={inputRef}\n\t\t\t\t\t\t\t\t\tvalue={searchInputValue}\n\t\t\t\t\t\t\t\t\tonAdd={onChipAdd}\n\t\t\t\t\t\t\t\t\toptions={options}\n\t\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\t\tconfirmChipOnBlur={false}\n\t\t\t\t\t\t\t\t\tseparators={['Enter', 'NumpadEnter', 'Comma', 'Space']}\n\t\t\t\t\t\t\t\t\tbackground={searchDisabled ? 'gray5' : 'gray6'}\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t\t\t\t\toverflowX: 'hidden'\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonChange={onQueryChange}\n\t\t\t\t\t\t\t\t\tonInputType={onInputType}\n\t\t\t\t\t\t\t\t\tonInputTypeDebounce={0}\n\t\t\t\t\t\t\t\t\tonBlur={removeFocus}\n\t\t\t\t\t\t\t\t\tonFocus={addFocus}\n\t\t\t\t\t\t\t\t\tdisableOptions={disableOptions}\n\t\t\t\t\t\t\t\t\trequireUniqueChips={false}\n\t\t\t\t\t\t\t\t\twrap={'nowrap'}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</StyledContainer>\n\t\t\t\t\t\t</Container>\n\t\t\t\t\t</Container>\n\n\t\t\t\t\t{!searchButtonsAreDisabled && (\n\t\t\t\t\t\t<Padding left=\"small\">\n\t\t\t\t\t\t\t<Tooltip label={clearButtonPlaceholder} placement=\"bottom\">\n\t\t\t\t\t\t\t\t<OutlinedIconButton\n\t\t\t\t\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t\t\t\t\tcustomSize={{\n\t\t\t\t\t\t\t\t\t\ticonSize: 'large',\n\t\t\t\t\t\t\t\t\t\tpaddingSize: 'small'\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tdisabled={searchButtonsAreDisabled}\n\t\t\t\t\t\t\t\t\ticon=\"BackspaceOutline\"\n\t\t\t\t\t\t\t\t\ticonColor=\"primary\"\n\t\t\t\t\t\t\t\t\tonClick={clearSearch}\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</Padding>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<Padding left=\"small\">\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\tmaxWidth=\"100%\"\n\t\t\t\t\t\t\tdisabled={searchDisabled}\n\t\t\t\t\t\t\tlabel={searchBtnTooltipLabel}\n\t\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t\t\t\tcustomSize={{\n\t\t\t\t\t\t\t\t\ticonSize: 'large',\n\t\t\t\t\t\t\t\t\tpaddingSize: 'small'\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\ticon=\"Search\"\n\t\t\t\t\t\t\t\tdisabled={searchButtonsAreDisabled}\n\t\t\t\t\t\t\t\tbackgroundColor=\"primary\"\n\t\t\t\t\t\t\t\ticonColor=\"gray6\"\n\t\t\t\t\t\t\t\tonClick={onSearch}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t</Padding>\n\t\t\t\t</Container>\n\t\t\t</Tooltip>\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 */\n\nimport { isFunction } from 'lodash';\nimport { create } from 'zustand';\n\nimport type { QueryChip, SearchState } from '../../types';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useSearchStore = create<SearchState>()((set, get) => ({\n\tquery: [],\n\tsearchDisabled: false,\n\ttooltip: undefined,\n\tsetSearchDisabled: (searchDisabled: boolean, tooltip?: string): void =>\n\t\tset({ searchDisabled, tooltip }),\n\tupdateQuery: (query: Array<QueryChip> | ((q: Array<QueryChip>) => Array<QueryChip>)): void =>\n\t\tset({ query: isFunction(query) ? query(get().query) : query }),\n\tupdateModule: (module: string): void => set({ module })\n}));\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, useMemo, useState, useEffect, useRef } from 'react';\n\nimport { Container, useSnackbar } from '@zextras/carbonio-design-system';\nimport { TFunction } from 'i18next';\nimport { produce } from 'immer';\nimport { map, find, isEmpty, reduce, findIndex, filter, size } from 'lodash';\nimport { useTranslation } from 'react-i18next';\n\nimport AccountsList from './components/account-settings/accounts-list';\nimport Delegates, { DelegatesProps, DelegateType } from './components/account-settings/delegates';\nimport PersonaSettings from './components/account-settings/persona-settings';\nimport PrimaryAccountSettings from './components/account-settings/primary-account-settings';\nimport SettingsSentMessages from './components/account-settings/settings-sent-messages';\nimport SettingsHeader, { SettingsHeaderProps } from './components/settings-header';\nimport {\n\tcalculateNewIdentitiesState,\n\tdefaultAsFirstOrderIdentities,\n\tgetAvailableEmailAddresses,\n\tisPrimary,\n\tResetComponentImperativeHandler\n} from './components/utils';\nimport {\n\tBatchRequest,\n\tCreateIdentityResponse,\n\tDeleteIdentityResponse,\n\tModifyIdentityResponse,\n\tModifyPrefsResponse,\n\tCreateIdentityRequest,\n\tDeleteIdentityRequest,\n\tIdentityAttrs,\n\tAccountSettingsPrefs,\n\tModifyPrefsRequest,\n\tGetRightsRequest,\n\tGetRightsResponse,\n\tAccountState\n} from '../../types';\nimport type { ModifyIdentityRequest } from '../../types';\nimport { AccountACEInfo } from '../../types/network/entities';\nimport { SHELL_APP_ID } from '../constants';\nimport { getSoapFetch } from '../network/fetch';\nimport { useAccountStore, useUserAccount, useUserSettings } from '../store/account';\n\nfunction mapToCreateIdentityRequests(\n\tcreateRecord: Record<string, IdentityAttrs>\n): Array<CreateIdentityRequest> {\n\treturn map(\n\t\tcreateRecord,\n\t\t(item): CreateIdentityRequest => ({\n\t\t\t_jsns: 'urn:zimbraAccount',\n\t\t\tidentity: {\n\t\t\t\tname: item.zimbraPrefIdentityName,\n\t\t\t\t_attrs: {\n\t\t\t\t\t...item,\n\t\t\t\t\tzimbraPrefFromAddressType: item.zimbraPrefFromAddressType || 'sendAs'\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t);\n}\n\nfunction mapToDeleteIdentityRequests(deleteArray: Array<string>): Array<DeleteIdentityRequest> {\n\treturn map(\n\t\tdeleteArray,\n\t\t(identityId, index): DeleteIdentityRequest => ({\n\t\t\t_jsns: 'urn:zimbraAccount',\n\t\t\tidentity: { id: identityId },\n\t\t\trequestId: index.toString()\n\t\t})\n\t);\n}\n\nfunction mapToModifyIdentityRequests(\n\tmodifyRecord: Record<string, Partial<IdentityAttrs>>\n): Array<ModifyIdentityRequest> {\n\treturn map<typeof modifyRecord, ModifyIdentityRequest>(\n\t\tmodifyRecord,\n\t\t(item, index): ModifyIdentityRequest => ({\n\t\t\t_jsns: 'urn:zimbraAccount',\n\t\t\tidentity: {\n\t\t\t\tid: index,\n\t\t\t\t_attrs: item\n\t\t\t}\n\t\t})\n\t);\n}\n\nfunction generateDelegateList(ace: AccountACEInfo[] | undefined, t: TFunction): DelegateType[] {\n\treturn reduce(\n\t\tace,\n\t\t(accumulator: Array<DelegateType>, item, idx) => {\n\t\t\tconst index = findIndex(accumulator, { email: item.d });\n\t\t\tconst translatedRight = t('settings.account.delegates.right', {\n\t\t\t\tcontext: item.right.toLowerCase(),\n\t\t\t\tdefaultValue: item.right\n\t\t\t});\n\t\t\tif (index === -1) {\n\t\t\t\taccumulator.push({ email: item.d || '', right: translatedRight, id: idx.toString() });\n\t\t\t} else {\n\t\t\t\taccumulator[index] = {\n\t\t\t\t\temail: item.d || '',\n\t\t\t\t\tright: t('settings.account.delegates.multiple_rights', {\n\t\t\t\t\t\tdefaultValue: `{{rights.0]}} and {{rights.1}}`,\n\t\t\t\t\t\trights: [translatedRight, accumulator[index].right]\n\t\t\t\t\t}),\n\t\t\t\t\tid: idx.toString()\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n}\n\nexport const AccountsSettings = (): React.JSX.Element => {\n\tconst [t] = useTranslation();\n\tconst createSnackbar = useSnackbar();\n\n\tconst account = useUserAccount();\n\tconst settings = useUserSettings();\n\n\tconst createRecordRef = useRef<Record<string, IdentityAttrs>>({});\n\tconst deleteArrayRef = useRef<Array<string>>([]);\n\tconst modifyRecordRef = useRef<Record<string, Partial<IdentityAttrs>>>({});\n\n\tconst delegatedSendSaveTargetRef = useRef<\n\t\tAccountSettingsPrefs['zimbraPrefDelegatedSendSaveTarget']\n\t>(settings.prefs.zimbraPrefDelegatedSendSaveTarget);\n\n\tconst [isDirty, setIsDirty] = useState(false);\n\tconst calculateIsDirty = useCallback(() => {\n\t\tsetIsDirty(\n\t\t\t!isEmpty(createRecordRef.current) ||\n\t\t\t\t!isEmpty(deleteArrayRef.current) ||\n\t\t\t\t!isEmpty(modifyRecordRef.current) ||\n\t\t\t\tsettings.prefs.zimbraPrefDelegatedSendSaveTarget !== delegatedSendSaveTargetRef.current\n\t\t);\n\t}, [settings.prefs.zimbraPrefDelegatedSendSaveTarget]);\n\n\tconst updateDelegatedSendSaveTarget = useCallback<\n\t\tDelegatesProps['updateDelegatedSendSaveTarget']\n\t>(\n\t\t(updatedValue) => {\n\t\t\tdelegatedSendSaveTargetRef.current = updatedValue;\n\t\t\tcalculateIsDirty();\n\t\t},\n\t\t[calculateIsDirty]\n\t);\n\n\tconst resetLists = useCallback(() => {\n\t\tcreateRecordRef.current = {};\n\t\tdeleteArrayRef.current = [];\n\t\tmodifyRecordRef.current = {};\n\t\tcalculateIsDirty();\n\t}, [calculateIsDirty]);\n\n\tconst [selectedIdentityId, setSelectedIdentityId] = useState(0);\n\n\tconst identitiesDefault = useMemo(\n\t\t() => defaultAsFirstOrderIdentities(account.identities.identity),\n\t\t[account.identities.identity]\n\t);\n\n\tconst [identities, setIdentities] = useState<typeof identitiesDefault>(identitiesDefault);\n\tconst maxIdentities = settings.attrs.zimbraIdentityMaxNumEntries || 0;\n\n\tconst addIdentity = useCallback<(id: string, identityAttrs: IdentityAttrs) => void>(\n\t\t(id, identityAttrs) => {\n\t\t\tcreateRecordRef.current[id] = identityAttrs;\n\t\t\tcalculateIsDirty();\n\t\t\tsetIdentities((prevState) => [\n\t\t\t\t...prevState,\n\t\t\t\t{\n\t\t\t\t\tid,\n\t\t\t\t\tname: identityAttrs.zimbraPrefIdentityName,\n\t\t\t\t\t_attrs: { ...identityAttrs, zimbraPrefIdentityId: id }\n\t\t\t\t}\n\t\t\t]);\n\t\t},\n\t\t[calculateIsDirty]\n\t);\n\n\tconst updateIdentities = useCallback<\n\t\t<K extends keyof IdentityAttrs>(id: string, key: K, value: IdentityAttrs[K]) => void\n\t>(\n\t\t(id, key, value) => {\n\t\t\tif (createRecordRef.current[id]) {\n\t\t\t\tcreateRecordRef.current[id][key] = value;\n\t\t\t} else if (modifyRecordRef.current[id]) {\n\t\t\t\tconst actualIdentity = find(identitiesDefault, (item) => item.id === id);\n\t\t\t\tmodifyRecordRef.current[id][key] = value;\n\t\t\t\tif (actualIdentity && actualIdentity._attrs[key] === value) {\n\t\t\t\t\tdelete modifyRecordRef.current[id][key];\n\t\t\t\t}\n\t\t\t\tif (size(modifyRecordRef.current[id]) === 0) {\n\t\t\t\t\tdelete modifyRecordRef.current[id];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmodifyRecordRef.current[id] = {\n\t\t\t\t\t[key]: value\n\t\t\t\t};\n\t\t\t}\n\t\t\tcalculateIsDirty();\n\t\t\tsetIdentities((prevState) =>\n\t\t\t\tmap(prevState, (item) =>\n\t\t\t\t\titem.id === id\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\t_attrs: {\n\t\t\t\t\t\t\t\t\t...item._attrs,\n\t\t\t\t\t\t\t\t\t[key]: value\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: item\n\t\t\t\t)\n\t\t\t);\n\t\t},\n\t\t[calculateIsDirty, identitiesDefault]\n\t);\n\n\tconst removeIdentity = useCallback(\n\t\t(identityId: string) => {\n\t\t\tif (createRecordRef.current[identityId]) {\n\t\t\t\tdelete createRecordRef.current[identityId];\n\t\t\t} else {\n\t\t\t\tdeleteArrayRef.current = [...deleteArrayRef.current, identityId];\n\t\t\t\tdelete modifyRecordRef.current[identityId];\n\t\t\t}\n\t\t\tcalculateIsDirty();\n\t\t\tsetIdentities((prevState) => filter(prevState, (identity) => identity.id !== identityId));\n\t\t},\n\t\t[calculateIsDirty]\n\t);\n\n\tuseEffect(() => {\n\t\tsetIdentities(identitiesDefault);\n\t\tresetLists();\n\t}, [identitiesDefault, resetLists]);\n\n\tconst onSave = useCallback<SettingsHeaderProps['onSave']>(() => {\n\t\tif (\n\t\t\tidentitiesDefault.length + size(createRecordRef.current) - deleteArrayRef.current.length >\n\t\t\tmaxIdentities\n\t\t) {\n\t\t\tcreateSnackbar({\n\t\t\t\tkey: `new`,\n\t\t\t\treplace: true,\n\t\t\t\ttype: 'error',\n\t\t\t\tlabel: t(\n\t\t\t\t\t'message.snackbar.identities_quota_exceeded',\n\t\t\t\t\t'The identity could not be created because you have exceeded your identity quota'\n\t\t\t\t),\n\t\t\t\tautoHideTimeout: 5000,\n\t\t\t\thideButton: true\n\t\t\t});\n\t\t\treturn Promise.allSettled([\n\t\t\t\tPromise.reject(\n\t\t\t\t\tnew Error(\n\t\t\t\t\t\t'The identity could not be created because you have exceeded your identity quota'\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t]);\n\t\t}\n\n\t\tlet modifyPrefsRequest: ModifyPrefsRequest | undefined;\n\n\t\tif (\n\t\t\tdelegatedSendSaveTargetRef.current &&\n\t\t\tsettings.prefs.zimbraPrefDelegatedSendSaveTarget !== delegatedSendSaveTargetRef.current\n\t\t) {\n\t\t\tmodifyPrefsRequest = {\n\t\t\t\t_jsns: 'urn:zimbraAccount',\n\t\t\t\t_attrs: { zimbraPrefDelegatedSendSaveTarget: delegatedSendSaveTargetRef.current }\n\t\t\t};\n\t\t}\n\n\t\tconst createIdentityRequests: Array<CreateIdentityRequest> = mapToCreateIdentityRequests(\n\t\t\tcreateRecordRef.current\n\t\t);\n\t\tconst deleteRequests: Array<DeleteIdentityRequest> = mapToDeleteIdentityRequests(\n\t\t\tdeleteArrayRef.current\n\t\t);\n\n\t\tconst modifyIdentityRequests: Array<ModifyIdentityRequest> = mapToModifyIdentityRequests(\n\t\t\tmodifyRecordRef.current\n\t\t);\n\n\t\tconst promise = getSoapFetch(SHELL_APP_ID)<\n\t\t\tBatchRequest,\n\t\t\t{\n\t\t\t\tModifyIdentityResponse?: ModifyIdentityResponse[];\n\t\t\t\tDeleteIdentityResponse?: DeleteIdentityResponse[];\n\t\t\t\tCreateIdentityResponse?: CreateIdentityResponse[];\n\t\t\t\tModifyPrefsResponse?: ModifyPrefsResponse;\n\t\t\t}\n\t\t>('Batch', {\n\t\t\t_jsns: 'urn:zimbra',\n\t\t\tDeleteIdentityRequest: deleteRequests.length > 0 ? deleteRequests : undefined,\n\t\t\tCreateIdentityRequest: createIdentityRequests.length > 0 ? createIdentityRequests : undefined,\n\t\t\tModifyIdentityRequest: modifyIdentityRequests.length > 0 ? modifyIdentityRequests : undefined,\n\t\t\tModifyPrefsRequest: modifyPrefsRequest\n\t\t})\n\t\t\t.then((res) => {\n\t\t\t\tcreateSnackbar({\n\t\t\t\t\tkey: `new`,\n\t\t\t\t\treplace: true,\n\t\t\t\t\ttype: 'info',\n\t\t\t\t\tlabel: t('message.snackbar.settings_saved', 'Edits saved correctly'),\n\t\t\t\t\tautoHideTimeout: 3000,\n\t\t\t\t\thideButton: true\n\t\t\t\t});\n\t\t\t\tresetLists();\n\t\t\t\tuseAccountStore.setState(\n\t\t\t\t\tproduce((prevState: AccountState) => {\n\t\t\t\t\t\tif (prevState.account) {\n\t\t\t\t\t\t\tprevState.account.identities.identity = calculateNewIdentitiesState(\n\t\t\t\t\t\t\t\tprevState.account.identities.identity,\n\t\t\t\t\t\t\t\tdeleteArrayRef.current,\n\t\t\t\t\t\t\t\tmap(res.CreateIdentityResponse, (item) => item.identity[0]),\n\t\t\t\t\t\t\t\tmodifyRecordRef.current\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tprevState.account.displayName =\n\t\t\t\t\t\t\t\tfind(\n\t\t\t\t\t\t\t\t\tmodifyRecordRef.current,\n\t\t\t\t\t\t\t\t\t(item) => item.zimbraPrefIdentityId === prevState?.account?.id\n\t\t\t\t\t\t\t\t)?.zimbraPrefIdentityName || prevState.account?.displayName;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tprevState.settings.prefs.zimbraPrefDelegatedSendSaveTarget =\n\t\t\t\t\t\t\tdelegatedSendSaveTargetRef.current || '';\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t})\n\t\t\t.catch((error: unknown) => {\n\t\t\t\tcreateSnackbar({\n\t\t\t\t\tkey: `new`,\n\t\t\t\t\treplace: true,\n\t\t\t\t\ttype: 'error',\n\t\t\t\t\tlabel: t('snackbar.error', 'Something went wrong, please try again'),\n\t\t\t\t\tautoHideTimeout: 3000,\n\t\t\t\t\thideButton: true\n\t\t\t\t});\n\t\t\t\tif (error instanceof Error) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tthrow new Error(typeof error === 'string' ? error : 'edit setting error');\n\t\t\t});\n\t\treturn Promise.allSettled([promise]);\n\t}, [\n\t\tmaxIdentities,\n\t\tidentitiesDefault.length,\n\t\tsettings.prefs.zimbraPrefDelegatedSendSaveTarget,\n\t\tcreateSnackbar,\n\t\tt,\n\t\tresetLists\n\t]);\n\n\tconst availableEmailAddresses = useMemo(\n\t\t() => getAvailableEmailAddresses(account, settings),\n\t\t[account, settings]\n\t);\n\n\tconst delegatesSettingsSectionRef = useRef<ResetComponentImperativeHandler>(null);\n\n\tconst onCancel = useCallback(() => {\n\t\tresetLists();\n\t\tsetIdentities(identitiesDefault);\n\t\tdelegatesSettingsSectionRef.current?.reset();\n\t\tsetSelectedIdentityId(size(identitiesDefault) - 1);\n\t}, [identitiesDefault, resetLists]);\n\n\tconst [delegates, setDelegates] = useState<DelegateType[]>([]);\n\n\tconst rights = useAccountStore((state) => state.rights);\n\n\tuseEffect(() => {\n\t\tif (!rights) {\n\t\t\tgetSoapFetch(SHELL_APP_ID)<GetRightsRequest, GetRightsResponse>('GetRights', {\n\t\t\t\t_jsns: 'urn:zimbraAccount',\n\t\t\t\tace: [{ right: 'sendAs' }, { right: 'sendOnBehalfOf' }]\n\t\t\t}).then((value) => {\n\t\t\t\tif (value.ace) {\n\t\t\t\t\tconst { ace } = value;\n\t\t\t\t\tsetDelegates(generateDelegateList(ace, t));\n\t\t\t\t}\n\t\t\t\tuseAccountStore.setState((state) => ({\n\t\t\t\t\t...state,\n\t\t\t\t\trights: value.ace ?? []\n\t\t\t\t}));\n\t\t\t});\n\t\t} else {\n\t\t\tsetDelegates(generateDelegateList(rights, t));\n\t\t}\n\t}, [t, rights]);\n\n\tconst personaSettings = useMemo<React.JSX.Element | null>(() => {\n\t\tconst identity = identities[selectedIdentityId];\n\t\tif (identity) {\n\t\t\treturn (\n\t\t\t\t<PersonaSettings identityAttrs={identity._attrs} updateIdentities={updateIdentities} />\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}, [identities, selectedIdentityId, updateIdentities]);\n\n\tconst settingsSentMessages = useMemo<React.JSX.Element | null>(() => {\n\t\tconst identity = identities[selectedIdentityId];\n\t\tif (identity) {\n\t\t\treturn (\n\t\t\t\t<SettingsSentMessages\n\t\t\t\t\tidentityAttrs={identity._attrs}\n\t\t\t\t\tupdateIdentities={updateIdentities}\n\t\t\t\t\tavailableEmailAddresses={availableEmailAddresses}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}, [availableEmailAddresses, identities, selectedIdentityId, updateIdentities]);\n\n\treturn (\n\t\t<>\n\t\t\t<SettingsHeader\n\t\t\t\tonSave={onSave}\n\t\t\t\tonCancel={onCancel}\n\t\t\t\tisDirty={isDirty}\n\t\t\t\ttitle={t('label.accounts', 'Accounts')}\n\t\t\t/>\n\t\t\t<Container background={'gray5'} padding={{ top: 'large' }} height=\"fit\" />\n\t\t\t<Container\n\t\t\t\tbackground={'gray5'}\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\tpadding={{ all: 'large' }}\n\t\t\t\tstyle={{ overflow: 'auto' }}\n\t\t\t>\n\t\t\t\t<AccountsList\n\t\t\t\t\taccountName={account.name}\n\t\t\t\t\tidentities={identities}\n\t\t\t\t\tselectedIdentityId={selectedIdentityId}\n\t\t\t\t\tsetSelectedIdentityId={setSelectedIdentityId}\n\t\t\t\t\tremoveIdentity={removeIdentity}\n\t\t\t\t\taddIdentity={addIdentity}\n\t\t\t\t\tidentitiesDefault={identitiesDefault}\n\t\t\t\t/>\n\t\t\t\t{isPrimary(identities[selectedIdentityId]) ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<PrimaryAccountSettings\n\t\t\t\t\t\t\taccount={account}\n\t\t\t\t\t\t\tidentity={identities[0]}\n\t\t\t\t\t\t\tupdateIdentities={updateIdentities}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{settingsSentMessages}\n\t\t\t\t\t\t<Delegates\n\t\t\t\t\t\t\tupdateDelegatedSendSaveTarget={updateDelegatedSendSaveTarget}\n\t\t\t\t\t\t\tdelegatedSendSaveTarget={settings.prefs.zimbraPrefDelegatedSendSaveTarget}\n\t\t\t\t\t\t\tresetRef={delegatesSettingsSectionRef}\n\t\t\t\t\t\t\tdelegates={delegates}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{personaSettings}\n\t\t\t\t\t\t{settingsSentMessages}\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: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, ReactElement, useContext, useRef, useMemo } from 'react';\n\nimport {\n\tContainer,\n\tText,\n\tDivider,\n\tRow,\n\tPadding,\n\tButton,\n\tIcon,\n\tModalManagerContext,\n\tListV2,\n\tListItem\n} from '@zextras/carbonio-design-system';\nimport type { TFunction } from 'i18next';\nimport { map } from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\n\nimport { Identity, IdentityAttrs } from '../../../../types';\nimport { isPrimary } from '../utils';\n\nconst List = styled(ListV2)`\n\tflex-shrink: 0;\n`;\n\nfunction getNewPersonaNextIdentityName(\n\tnumberToCheck: number,\n\tunavailableIdentityNames: Array<string>,\n\tt: TFunction\n): string {\n\tconst newPersonaNextIdentityName = t('settings.account.new_identity', {\n\t\tdefaultValue: `New Persona {{number}}`,\n\t\tnumber: numberToCheck\n\t});\n\tif (unavailableIdentityNames.includes(newPersonaNextIdentityName)) {\n\t\treturn getNewPersonaNextIdentityName(numberToCheck + 1, unavailableIdentityNames, t);\n\t}\n\treturn newPersonaNextIdentityName;\n}\n\nexport type AccountsListProps = {\n\taccountName: string;\n\tidentities: Array<Identity>;\n\tidentitiesDefault: Array<Identity>;\n\tselectedIdentityId: number;\n\tsetSelectedIdentityId: (value: number) => void;\n\tremoveIdentity: (identityId: string) => void;\n\taddIdentity: (id: string, identityAttrs: IdentityAttrs) => void;\n};\n\nconst AccountsList = ({\n\taccountName,\n\tselectedIdentityId,\n\tidentities,\n\tidentitiesDefault,\n\tsetSelectedIdentityId,\n\tremoveIdentity,\n\taddIdentity\n}: AccountsListProps): ReactElement => {\n\tconst [t] = useTranslation();\n\n\tconst createModal = useContext(ModalManagerContext);\n\n\tconst createListRequestIdRef = useRef(0);\n\tconst addNewPersona = useCallback(() => {\n\t\tconst unavailableIdentityNames = map<Identity, string>(\n\t\t\t[...identitiesDefault, ...identities],\n\t\t\t(item) => item._attrs?.zimbraPrefIdentityName || ''\n\t\t);\n\t\tconst newPersonaName = getNewPersonaNextIdentityName(1, unavailableIdentityNames, t);\n\n\t\taddIdentity(`${createListRequestIdRef.current}`, {\n\t\t\tzimbraPrefIdentityName: newPersonaName,\n\t\t\tzimbraPrefFromDisplay: identities[0]._attrs?.zimbraPrefFromDisplay,\n\t\t\tzimbraPrefFromAddress: identities[0]._attrs?.zimbraPrefFromAddress,\n\t\t\tzimbraPrefFromAddressType: 'sendAs',\n\t\t\tzimbraPrefReplyToEnabled: 'FALSE'\n\t\t});\n\t\tcreateListRequestIdRef.current += 1;\n\t\tsetSelectedIdentityId(identities.length);\n\t}, [identitiesDefault, identities, addIdentity, setSelectedIdentityId, t]);\n\n\tconst onConfirmDelete = useCallback((): void => {\n\t\tremoveIdentity(identities[selectedIdentityId].id);\n\t\tsetSelectedIdentityId(selectedIdentityId - 1);\n\t}, [identities, removeIdentity, selectedIdentityId, setSelectedIdentityId]);\n\n\tconst onDelete = useCallback((): void => {\n\t\tconst closeModal = createModal({\n\t\t\ttitle: t('label.permanent_delete_title', 'Are you sure to permanently delete this Persona?'),\n\t\t\tonConfirm: () => {\n\t\t\t\tonConfirmDelete();\n\t\t\t\tcloseModal();\n\t\t\t},\n\t\t\tconfirmLabel: t('label.delete_permanently', 'Delete permanently'),\n\t\t\tconfirmColor: 'error',\n\t\t\tshowCloseIcon: true,\n\t\t\tonClose: () => closeModal(),\n\t\t\tchildren: (\n\t\t\t\t<Padding all=\"small\">\n\t\t\t\t\t<Text overflow=\"break-word\">\n\t\t\t\t\t\t{t(\n\t\t\t\t\t\t\t'messages.permanent_delete_body',\n\t\t\t\t\t\t\t'If you permanently delete this Persona you will not be able to recover it. Continue?'\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Text>\n\t\t\t\t</Padding>\n\t\t\t)\n\t\t});\n\t}, [createModal, t, onConfirmDelete]);\n\n\tconst items = useMemo(\n\t\t() =>\n\t\t\tmap(identities, (item, index) => (\n\t\t\t\t<ListItem key={item.id} active={selectedIdentityId === index}>\n\t\t\t\t\t{(): React.JSX.Element => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Container\n\t\t\t\t\t\t\t\trole={'listitem'}\n\t\t\t\t\t\t\t\tdata-testid={`account-list-item-${item._attrs?.zimbraPrefIdentityId}`}\n\t\t\t\t\t\t\t\tonClick={(): void => {\n\t\t\t\t\t\t\t\t\tsetSelectedIdentityId(index);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\t\t\t\t\tpadding={{ all: 'small' }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Row width=\"fill\" mainAlignment=\"space-between\">\n\t\t\t\t\t\t\t\t\t<Container orientation=\"horizontal\" mainAlignment=\"flex-start\" width=\"fit\">\n\t\t\t\t\t\t\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon=\"CheckmarkCircle2Outline\" size=\"large\" color=\"primary\" />\n\t\t\t\t\t\t\t\t\t\t</Padding>\n\t\t\t\t\t\t\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t\t\t\t\t\t\t<Text weight=\"regular\" size=\"small\">\n\t\t\t\t\t\t\t\t\t\t\t\t{item._attrs?.zimbraPrefIdentityName}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t</Padding>\n\t\t\t\t\t\t\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t\t\t\t\t\t\t<Text weight=\"regular\" size=\"small\" color=\"secondary\">\n\t\t\t\t\t\t\t\t\t\t\t\t({isPrimary(item) ? accountName : item._attrs?.zimbraPrefFromAddress})\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t</Padding>\n\t\t\t\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t\t\t\t<Container width=\"fit\" mainAlignment=\"flex-end\">\n\t\t\t\t\t\t\t\t\t\t<Text weight=\"regular\" size=\"small\">\n\t\t\t\t\t\t\t\t\t\t\t{isPrimary(item)\n\t\t\t\t\t\t\t\t\t\t\t\t? t('label.primary', 'Primary')\n\t\t\t\t\t\t\t\t\t\t\t\t: t('label.persona', 'Persona')}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t\t\t</Row>\n\t\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t\t<Divider />\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</ListItem>\n\t\t\t)),\n\t\t[accountName, identities, selectedIdentityId, setSelectedIdentityId, t]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<Container\n\t\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ all: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground=\"gray6\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Padding horizontal=\"medium\" bottom=\"large\" width=\"100%\">\n\t\t\t\t\t<Text weight=\"bold\">{t('label.accounts_list', 'Accounts list')}</Text>\n\t\t\t\t</Padding>\n\t\t\t\t<List>{items}</List>\n\t\t\t</Container>\n\t\t\t<Row\n\t\t\t\tpadding={{ horizontal: 'large', bottom: 'large' }}\n\t\t\t\twidth=\"fill\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\tbackground=\"gray6\"\n\t\t\t>\n\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={t('label.add_persona', 'Add persona')}\n\t\t\t\t\t\tonClick={addNewPersona}\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\ttype=\"outlined\"\n\t\t\t\t\t/>\n\t\t\t\t</Padding>\n\t\t\t\t<Button\n\t\t\t\t\tlabel={t('label.delete', 'Delete')}\n\t\t\t\t\tonClick={onDelete}\n\t\t\t\t\tcolor=\"error\"\n\t\t\t\t\ttype=\"outlined\"\n\t\t\t\t\tdisabled={isPrimary(identities[selectedIdentityId])}\n\t\t\t\t/>\n\t\t\t</Row>\n\t\t\t<Padding bottom=\"large\" />\n\t\t</>\n\t);\n};\n\nexport default AccountsList;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { ReactElement, useCallback, useState } from 'react';\n\nimport {\n\tContainer,\n\tText,\n\tList,\n\tDivider,\n\tRow,\n\tPadding,\n\tButton,\n\tRadio,\n\tRadioGroup,\n\tItemType,\n\tItemComponentProps,\n\tRadioGroupProps\n} from '@zextras/carbonio-design-system';\nimport { noop } from 'lodash';\nimport { useTranslation } from 'react-i18next';\n\nimport { AccountSettingsPrefs } from '../../../../types';\nimport { DELEGATED_SEND_SAVE_TARGET } from '../../../constants';\nimport { useReset } from '../../hooks/use-reset';\nimport { SettingsSectionProps } from '../utils';\n\nexport interface DelegateType extends ItemType {\n\temail: string;\n\tright: string;\n\tlabel?: string;\n}\n\nexport type DelegatesProps = {\n\tdelegatedSendSaveTarget: AccountSettingsPrefs['zimbraPrefDelegatedSendSaveTarget'];\n\tupdateDelegatedSendSaveTarget: (\n\t\tupdatedValue: AccountSettingsPrefs['zimbraPrefDelegatedSendSaveTarget']\n\t) => void;\n\tdelegates: DelegateType[];\n} & SettingsSectionProps;\nconst Delegates = ({\n\tdelegatedSendSaveTarget,\n\tupdateDelegatedSendSaveTarget,\n\tresetRef,\n\tdelegates\n}: DelegatesProps): React.JSX.Element => {\n\tconst [t] = useTranslation();\n\n\tconst [activeDelegate, setActiveDelegate] = useState<string>('0');\n\n\tconst [activeValue, setActiveValue] =\n\t\tuseState<AccountSettingsPrefs['zimbraPrefDelegatedSendSaveTarget']>(delegatedSendSaveTarget);\n\n\tconst radioGroupOnChange = useCallback<NonNullable<RadioGroupProps<string>['onChange']>>(\n\t\t(newValue) => {\n\t\t\tfunction isZimbraPrefDelegatedSendSaveTarget(\n\t\t\t\targ: string\n\t\t\t): arg is NonNullable<AccountSettingsPrefs['zimbraPrefDelegatedSendSaveTarget']> {\n\t\t\t\treturn DELEGATED_SEND_SAVE_TARGET.includes(arg);\n\t\t\t}\n\t\t\tif (newValue && isZimbraPrefDelegatedSendSaveTarget(newValue)) {\n\t\t\t\tsetActiveValue(newValue);\n\t\t\t\tupdateDelegatedSendSaveTarget(newValue);\n\t\t\t} else {\n\t\t\t\tthrow new Error('invalid zimbraPrefDelegatedSendSaveTarget value');\n\t\t\t}\n\t\t},\n\t\t[updateDelegatedSendSaveTarget]\n\t);\n\n\tconst resetHandler = useCallback((): void => {\n\t\tsetActiveValue(delegatedSendSaveTarget);\n\t\tupdateDelegatedSendSaveTarget(delegatedSendSaveTarget);\n\t}, [delegatedSendSaveTarget, updateDelegatedSendSaveTarget]);\n\n\tuseReset(resetRef, resetHandler);\n\n\tconst ListItem = ({ item }: ItemComponentProps<DelegateType>): ReactElement => {\n\t\tconst setActiveDelegateCallback = useCallback(() => setActiveDelegate(item.id), [item.id]);\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Container\n\t\t\t\t\tonClick={setActiveDelegateCallback}\n\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\t\tpadding={{ all: 'small' }}\n\t\t\t\t>\n\t\t\t\t\t<Row width=\"fill\" mainAlignment=\"space-between\">\n\t\t\t\t\t\t<Container orientation=\"horizontal\" mainAlignment=\"flex-start\" width=\"fit\">\n\t\t\t\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t\t\t\t<Text weight=\"regular\" size=\"small\">\n\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</Padding>\n\t\t\t\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t\t\t\t<Text weight=\"regular\" size=\"small\" color=\"secondary\">\n\t\t\t\t\t\t\t\t\t{item.email}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</Padding>\n\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t<Container width=\"fit\" mainAlignment=\"flex-end\">\n\t\t\t\t\t\t\t<Text weight=\"regular\" size=\"small\">\n\t\t\t\t\t\t\t\t{item.right}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</Container>\n\t\t\t\t\t</Row>\n\n\t\t\t\t\t<Row width=\"fit\"></Row>\n\t\t\t\t</Container>\n\t\t\t\t<Divider />\n\t\t\t</>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Container\n\t\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ all: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground=\"gray6\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Padding horizontal=\"medium\" bottom=\"large\" width=\"100%\">\n\t\t\t\t\t<Text weight=\"bold\">{t('label.delegates', 'Delegates')}</Text>\n\t\t\t\t</Padding>\n\t\t\t\t<List items={delegates} ItemComponent={ListItem} active={activeDelegate} height=\"fit\" />\n\t\t\t</Container>\n\t\t\t<Row\n\t\t\t\tpadding={{ horizontal: 'large' }}\n\t\t\t\twidth=\"fill\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\tbackground=\"gray6\"\n\t\t\t>\n\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={t('label.add_delegate', 'Add delegate')}\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\ttype=\"outlined\"\n\t\t\t\t\t\tdisabled\n\t\t\t\t\t\tonClick={noop}\n\t\t\t\t\t/>\n\t\t\t\t</Padding>\n\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={t('label.edit_permissions', 'Edit permissions')}\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\ttype=\"outlined\"\n\t\t\t\t\t\tdisabled\n\t\t\t\t\t\tonClick={noop}\n\t\t\t\t\t/>\n\t\t\t\t</Padding>\n\t\t\t\t<Button\n\t\t\t\t\tlabel={t('label.remove', 'remove')}\n\t\t\t\t\tcolor=\"error\"\n\t\t\t\t\ttype=\"outlined\"\n\t\t\t\t\tdisabled\n\t\t\t\t\tonClick={noop}\n\t\t\t\t/>\n\t\t\t</Row>\n\t\t\t<Container\n\t\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\t\twidth=\"100%\"\n\t\t\t\tpadding={{ all: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground=\"gray6\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<RadioGroup\n\t\t\t\t\tstyle={{ width: '100%', justifyContent: 'flex-start' }}\n\t\t\t\t\tvalue={activeValue}\n\t\t\t\t\tonChange={radioGroupOnChange}\n\t\t\t\t>\n\t\t\t\t\t<Radio\n\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\tlabel={t(\n\t\t\t\t\t\t\t'label.save_to_my_sent_folder',\n\t\t\t\t\t\t\t'Save a copy of sent messages to my Sent folder'\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tvalue={'owner'}\n\t\t\t\t\t/>\n\t\t\t\t\t<Radio\n\t\t\t\t\t\tlabel={t(\n\t\t\t\t\t\t\t'label.save_delegate_folder',\n\t\t\t\t\t\t\t'Save a copy of sent messages to delegate’s Sent folder'\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tvalue={'sender'}\n\t\t\t\t\t/>\n\t\t\t\t\t<Radio\n\t\t\t\t\t\tlabel={t(\n\t\t\t\t\t\t\t'label.save_both_folders',\n\t\t\t\t\t\t\t'Save a copy of sent messages to my Sent folder and delegate’s folder'\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tvalue={'both'}\n\t\t\t\t\t/>\n\t\t\t\t\t<Radio\n\t\t\t\t\t\tlabel={t('label.dont_save', 'Don’t save a copy of sent messages')}\n\t\t\t\t\t\tvalue={'none'}\n\t\t\t\t\t/>\n\t\t\t\t</RadioGroup>\n\t\t\t\t<Padding bottom=\"large\" />\n\t\t\t</Container>\n\t\t</>\n\t);\n};\n\nexport default Delegates;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useState, useCallback, ReactElement, useEffect, useMemo } from 'react';\n\nimport { Container, Text, Padding, Input, Row, InputProps } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\n\nimport { IdentityAttrs } from '../../../../types';\n\ninterface PersonaSettingsProps {\n\tidentityAttrs: IdentityAttrs;\n\tupdateIdentities: <K extends keyof IdentityAttrs>(\n\t\tid: string,\n\t\tkey: K,\n\t\tvalue: IdentityAttrs[K]\n\t) => void;\n}\n\nconst PersonaSettings = ({\n\tidentityAttrs,\n\tupdateIdentities\n}: PersonaSettingsProps): ReactElement => {\n\tconst [t] = useTranslation();\n\tconst [personaValue, setPersonaValue] = useState(identityAttrs.zimbraPrefIdentityName);\n\tconst personaLabel = useMemo(() => t('label.persona_name', 'Persona Name'), [t]);\n\tuseEffect(() => {\n\t\tsetPersonaValue(identityAttrs.zimbraPrefIdentityName);\n\t}, [identityAttrs.zimbraPrefIdentityName]);\n\n\tconst onChange = useCallback<NonNullable<InputProps['onChange']>>(\n\t\t(ev) => {\n\t\t\tsetPersonaValue(ev.target.value);\n\t\t\tif (identityAttrs.zimbraPrefIdentityId) {\n\t\t\t\tupdateIdentities(\n\t\t\t\t\tidentityAttrs.zimbraPrefIdentityId,\n\t\t\t\t\t'zimbraPrefIdentityName',\n\t\t\t\t\tev.target.value\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[identityAttrs.zimbraPrefIdentityId, updateIdentities]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<Container\n\t\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ all: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground={'gray6'}\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Padding horizontal=\"medium\" width=\"100%\">\n\t\t\t\t\t<Text weight=\"bold\">{t('label.persona_settings', 'Persona Settings')}</Text>\n\t\t\t\t</Padding>\n\t\t\t</Container>\n\t\t\t<Row\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ horizontal: 'large', bottom: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground={'gray6'}\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Row orientation=\"vertical\" mainAlignment=\"flex-start\" width=\"fill\">\n\t\t\t\t\t<Row orientation=\"horizontal\" width=\"100%\" mainAlignment=\"flex-start\">\n\t\t\t\t\t\t<Text color=\"secondary\">\n\t\t\t\t\t\t\t{t(\n\t\t\t\t\t\t\t\t'label.use_personas_line1',\n\t\t\t\t\t\t\t\t'Use personas to quickly change many settings when sending e-mail messages.'\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</Row>\n\t\t\t\t\t<Row orientation=\"horizontal\" width=\"100%\" mainAlignment=\"flex-start\">\n\t\t\t\t\t\t<Text color=\"secondary\">\n\t\t\t\t\t\t\t{t(\n\t\t\t\t\t\t\t\t'label.use_personas_line2',\n\t\t\t\t\t\t\t\t'For example, if you sometimes send e-mails in a particular role at work, create a persona for that.'\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</Row>\n\t\t\t\t</Row>\n\t\t\t</Row>\n\t\t\t<Row\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ horizontal: 'large', bottom: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground={'gray6'}\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Row takeAvailableSpace>\n\t\t\t\t\t<Input label={personaLabel} value={personaValue} onChange={onChange} />\n\t\t\t\t</Row>\n\t\t\t</Row>\n\n\t\t\t<Padding bottom=\"large\" />\n\t\t</>\n\t);\n};\n\nexport default PersonaSettings;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useMemo, useCallback, ReactElement, useState, useEffect } from 'react';\n\nimport { Container, Text, Padding, Input, Row, InputProps } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\n\nimport { Account, Identity, IdentityAttrs } from '../../../../types';\n\ninterface PrimaryAccountSettingsProps {\n\taccount: Account;\n\tidentity: Identity;\n\tupdateIdentities: <K extends keyof IdentityAttrs>(\n\t\tid: string,\n\t\tkey: K,\n\t\tvalue: IdentityAttrs[K]\n\t) => void;\n}\n\nconst PrimaryAccountSettings = ({\n\taccount,\n\tidentity,\n\tupdateIdentities\n}: PrimaryAccountSettingsProps): ReactElement => {\n\tconst [t] = useTranslation();\n\tconst emailLabel = useMemo(() => t('label.email_address', 'E-mail address'), [t]);\n\tconst [accountNameValue, setAccountNameValue] = useState(\n\t\tidentity?._attrs?.zimbraPrefIdentityName\n\t);\n\n\tuseEffect(\n\t\t() => setAccountNameValue(identity._attrs?.zimbraPrefIdentityName),\n\t\t[identity._attrs?.zimbraPrefIdentityName]\n\t);\n\tconst accountLabel = useMemo(() => t('label.account_name', 'Account Name'), [t]);\n\n\tconst onChangeDisabled = useCallback(() => null, []);\n\tconst onChange = useCallback<NonNullable<InputProps['onChange']>>(\n\t\t(ev): void => {\n\t\t\tsetAccountNameValue(ev.target.value);\n\t\t\tupdateIdentities(identity.id, 'zimbraPrefIdentityName', ev.target.value);\n\t\t},\n\t\t[identity.id, updateIdentities]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<Container\n\t\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ all: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground=\"gray6\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Padding horizontal=\"medium\" width=\"100%\">\n\t\t\t\t\t<Text weight=\"bold\">{t('primary_account.title', 'Primary Account Settings')}</Text>\n\t\t\t\t</Padding>\n\t\t\t</Container>\n\t\t\t<Row\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ horizontal: 'large', bottom: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground=\"gray6\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Row width=\"50%\" padding={{ right: 'small' }}>\n\t\t\t\t\t<Input label={emailLabel} value={account.name || ' '} onChange={onChangeDisabled} />\n\t\t\t\t</Row>\n\t\t\t\t<Row width=\"50%\">\n\t\t\t\t\t<Input label={accountLabel} value={accountNameValue} onChange={onChange} />\n\t\t\t\t</Row>\n\t\t\t</Row>\n\t\t\t<Padding bottom=\"large\" />\n\t\t</>\n\t);\n};\n\nexport default PrimaryAccountSettings;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { ReactElement, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport {\n\tCheckbox,\n\tContainer,\n\tDropdown,\n\tDropdownItem,\n\tIcon,\n\tInput,\n\tInputProps,\n\tPadding,\n\tRow,\n\tSelect,\n\tSelectItem,\n\tSingleSelectionOnChange,\n\tText\n} from '@zextras/carbonio-design-system';\nimport { filter, find } from 'lodash';\nimport { useTranslation } from 'react-i18next';\n\nimport { IdentityAttrs } from '../../../../types';\nimport { EMAIL_VALIDATION_REGEX } from '../../../constants';\n\ntype SettingsSentMessagesProps = {\n\tidentityAttrs: IdentityAttrs;\n\tupdateIdentities: <K extends keyof IdentityAttrs>(\n\t\tid: string,\n\t\tkey: K,\n\t\tvalue: IdentityAttrs[K]\n\t) => void;\n\tavailableEmailAddresses?: string[];\n};\n\nconst blankItem: SelectItem = { label: '', value: '' };\n\nconst SettingsSentMessages = ({\n\tidentityAttrs,\n\tupdateIdentities,\n\tavailableEmailAddresses\n}: SettingsSentMessagesProps): ReactElement => {\n\tconst [t] = useTranslation();\n\tconst title = useMemo(() => t('label.settings_sent_messages', 'Settings for Sent Messages'), [t]);\n\tconst [replyToEnabledValue, setReplyToEnabledValue] = useState(\n\t\tidentityAttrs.zimbraPrefReplyToEnabled === 'TRUE'\n\t);\n\tconst [replyToAddress, setReplyToAddress] = useState<string>(\n\t\tidentityAttrs.zimbraPrefReplyToAddress || ''\n\t);\n\tconst [dropdownOpen, setDropdownOpen] = useState(false);\n\tconst [fromDisplayValue, setFromDisplayValue] = useState<string>(\n\t\tidentityAttrs.zimbraPrefFromDisplay || ''\n\t);\n\tconst [replyToDisplay, setReplyToDisplay] = useState<string>(\n\t\tidentityAttrs.zimbraPrefReplyToDisplay || ''\n\t);\n\tconst fromAddressArray = useMemo(\n\t\t(): SelectItem[] =>\n\t\t\tavailableEmailAddresses\n\t\t\t\t? availableEmailAddresses.map((address): SelectItem => ({ value: address, label: address }))\n\t\t\t\t: [blankItem],\n\t\t[availableEmailAddresses]\n\t);\n\tconst [fromAddress, setFromAddress] = useState(\n\t\t() =>\n\t\t\tfind(fromAddressArray, (item) => item.value === identityAttrs.zimbraPrefFromAddress) ??\n\t\t\tblankItem\n\t);\n\n\tuseEffect(() => {\n\t\tsetReplyToEnabledValue(identityAttrs.zimbraPrefReplyToEnabled === 'TRUE');\n\t}, [identityAttrs.zimbraPrefReplyToEnabled]);\n\tuseEffect(() => {\n\t\tsetFromDisplayValue(identityAttrs.zimbraPrefFromDisplay || '');\n\t}, [identityAttrs.zimbraPrefFromDisplay]);\n\tuseEffect(() => {\n\t\tsetFromAddress(\n\t\t\tfind(fromAddressArray, (item) => item.value === identityAttrs.zimbraPrefFromAddress) ??\n\t\t\t\tblankItem\n\t\t);\n\t}, [fromAddressArray, identityAttrs.zimbraPrefFromAddress]);\n\tuseEffect(() => {\n\t\tsetReplyToDisplay(identityAttrs.zimbraPrefReplyToDisplay ?? '');\n\t}, [identityAttrs.zimbraPrefReplyToDisplay]);\n\tuseEffect(() => {\n\t\tsetReplyToAddress(identityAttrs.zimbraPrefReplyToAddress || '');\n\t}, [identityAttrs.zimbraPrefReplyToAddress]);\n\n\tconst onClickReplyToEnabled = useCallback(() => {\n\t\tsetReplyToEnabledValue((prevState) => {\n\t\t\tconst newState = !prevState;\n\t\t\tif (identityAttrs.zimbraPrefIdentityId) {\n\t\t\t\tupdateIdentities(\n\t\t\t\t\tidentityAttrs.zimbraPrefIdentityId,\n\t\t\t\t\t'zimbraPrefReplyToEnabled',\n\t\t\t\t\tprevState ? 'FALSE' : 'TRUE'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn newState;\n\t\t});\n\t}, [identityAttrs.zimbraPrefIdentityId, updateIdentities]);\n\n\tconst fromDisplayLabel = useMemo(() => t('label.from_name', 'From: \"Name\"'), [t]);\n\tconst onChangeFromDisplayValue: InputProps['onChange'] = (e) => {\n\t\tsetFromDisplayValue(e.target.value);\n\t\tif (identityAttrs.zimbraPrefIdentityId) {\n\t\t\tupdateIdentities(identityAttrs.zimbraPrefIdentityId, 'zimbraPrefFromDisplay', e.target.value);\n\t\t}\n\t};\n\n\tconst fromAddressLabel = useMemo(() => t('label.address', 'Address'), [t]);\n\n\tconst onChangeFromAddress = useCallback<SingleSelectionOnChange>(\n\t\t(newAddress) => {\n\t\t\tif (!newAddress) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (fromAddress?.value === newAddress) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetFromAddress(filter(fromAddressArray, (item) => item.value === newAddress)[0]);\n\t\t\tif (identityAttrs.zimbraPrefIdentityId) {\n\t\t\t\tupdateIdentities(identityAttrs.zimbraPrefIdentityId, 'zimbraPrefFromAddress', newAddress);\n\t\t\t}\n\t\t},\n\t\t[fromAddress?.value, fromAddressArray, identityAttrs.zimbraPrefIdentityId, updateIdentities]\n\t);\n\n\tconst replyToEnabledLabel = t(\n\t\t'label.set_reply_to_field',\n\t\t'Set the \"Reply-to\" field of e-mail message to:'\n\t);\n\n\tconst replyToDisplayLabel = useMemo(\n\t\t() => t('label.reply_to_field_example', 'e.g. Bob Smith'),\n\t\t[t]\n\t);\n\tconst onChangePrefReplyToDisplay = useCallback<NonNullable<InputProps['onChange']>>(\n\t\t(e) => {\n\t\t\tsetReplyToDisplay(e.target.value);\n\t\t\tif (identityAttrs.zimbraPrefIdentityId) {\n\t\t\t\tupdateIdentities(\n\t\t\t\t\tidentityAttrs.zimbraPrefIdentityId,\n\t\t\t\t\t'zimbraPrefReplyToDisplay',\n\t\t\t\t\te.target.value\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[identityAttrs.zimbraPrefIdentityId, updateIdentities]\n\t);\n\n\tconst replyToAddressLabel = useMemo(() => t('label.choose_account', 'Choose an account'), [t]);\n\n\tconst onChangeReplyToAddress = useCallback(\n\t\t(value: string) => {\n\t\t\tsetReplyToAddress(value);\n\t\t\tif (identityAttrs.zimbraPrefIdentityId) {\n\t\t\t\tupdateIdentities(identityAttrs.zimbraPrefIdentityId, 'zimbraPrefReplyToAddress', value);\n\t\t\t}\n\t\t},\n\t\t[updateIdentities, identityAttrs.zimbraPrefIdentityId]\n\t);\n\n\tconst replyToAddressArray = useMemo(\n\t\t(): DropdownItem[] => [\n\t\t\t{\n\t\t\t\tid: '0',\n\t\t\t\tlabel: identityAttrs.zimbraPrefFromAddress ?? '',\n\t\t\t\tonClick: () => onChangeReplyToAddress(identityAttrs.zimbraPrefFromAddress ?? '')\n\t\t\t}\n\t\t],\n\t\t[identityAttrs.zimbraPrefFromAddress, onChangeReplyToAddress]\n\t);\n\n\tconst isValidEmail = useMemo(\n\t\t() => replyToEnabledValue && !EMAIL_VALIDATION_REGEX.test(replyToAddress || ''),\n\t\t[replyToEnabledValue, replyToAddress]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<Container\n\t\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ all: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground={'gray6'}\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Padding horizontal=\"medium\" width=\"100%\">\n\t\t\t\t\t<Text weight=\"bold\">{title}</Text>\n\t\t\t\t</Padding>\n\t\t\t</Container>\n\t\t\t<Row\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ horizontal: 'large', bottom: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground={'gray6'}\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Row width={'50%'} padding={{ right: 'small' }}>\n\t\t\t\t\t{/* zimbraPrefFromDisplay */}\n\t\t\t\t\t<Input\n\t\t\t\t\t\tlabel={fromDisplayLabel}\n\t\t\t\t\t\tvalue={fromDisplayValue}\n\t\t\t\t\t\tonChange={onChangeFromDisplayValue}\n\t\t\t\t\t/>\n\t\t\t\t</Row>\n\t\t\t\t<Row width=\"50%\">\n\t\t\t\t\t{/* zimbraPrefFromAddress */}\n\t\t\t\t\t<Select\n\t\t\t\t\t\tlabel={fromAddressLabel}\n\t\t\t\t\t\tselection={fromAddress}\n\t\t\t\t\t\titems={fromAddressArray}\n\t\t\t\t\t\tshowCheckbox={false}\n\t\t\t\t\t\tbackground={'gray5'}\n\t\t\t\t\t\tonChange={onChangeFromAddress}\n\t\t\t\t\t/>\n\t\t\t\t</Row>\n\t\t\t</Row>\n\t\t\t<Row\n\t\t\t\twidth=\"fill\"\n\t\t\t\tbackground={'gray6'}\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\tpadding={{ horizontal: 'large', bottom: 'large' }}\n\t\t\t>\n\t\t\t\t{/* zimbraPrefReplyToEnabled */}\n\t\t\t\t<Checkbox\n\t\t\t\t\tlabel={replyToEnabledLabel}\n\t\t\t\t\tvalue={replyToEnabledValue}\n\t\t\t\t\tonClick={onClickReplyToEnabled}\n\t\t\t\t/>\n\t\t\t</Row>\n\t\t\t<Row\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ horizontal: 'large', bottom: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground={'gray6'}\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Row width=\"50%\" padding={{ right: 'small' }}>\n\t\t\t\t\t{/* zimbraPrefReplyToDisplay */}\n\t\t\t\t\t<Input\n\t\t\t\t\t\tlabel={replyToDisplayLabel}\n\t\t\t\t\t\tvalue={replyToDisplay}\n\t\t\t\t\t\tdisabled={!replyToEnabledValue}\n\t\t\t\t\t\tonChange={onChangePrefReplyToDisplay}\n\t\t\t\t\t/>\n\t\t\t\t</Row>\n\t\t\t\t<Row width=\"50%\">\n\t\t\t\t\t{/* zimbraPrefReplyToAddress */}\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\titems={replyToAddressArray}\n\t\t\t\t\t\tplacement=\"bottom-start\"\n\t\t\t\t\t\tstyle={{ flexGrow: '1' }}\n\t\t\t\t\t\tonClose={(): void => setDropdownOpen(false)}\n\t\t\t\t\t\tonOpen={(): void => setDropdownOpen(true)}\n\t\t\t\t\t\tdisabled={!replyToEnabledValue}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\tlabel={replyToAddressLabel}\n\t\t\t\t\t\t\tvalue={replyToAddress}\n\t\t\t\t\t\t\tonChange={(ev): void => onChangeReplyToAddress(ev.target.value)}\n\t\t\t\t\t\t\thasError={isValidEmail}\n\t\t\t\t\t\t\tCustomIcon={(): ReactElement => (\n\t\t\t\t\t\t\t\t<Icon icon={dropdownOpen ? 'ArrowUp' : 'ArrowDown'} />\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tdisabled={!replyToEnabledValue}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Dropdown>\n\t\t\t\t</Row>\n\t\t\t</Row>\n\t\t\t<Padding bottom=\"large\" />\n\t\t</>\n\t);\n};\n\nexport default SettingsSentMessages;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useMemo } from 'react';\n\nimport { Container, Text } from '@zextras/carbonio-design-system';\n\nimport { getT } from '../../../store/i18n';\nimport { appearanceSubSection } from '../../general-settings-sub-sections';\n\ninterface AppearanceSettingsProps {\n\tchildren: React.ReactElement | React.ReactElement[];\n}\n\nconst AppearanceSettings = ({ children }: AppearanceSettingsProps): React.JSX.Element => {\n\tconst t = getT();\n\tconst subSection = useMemo(() => appearanceSubSection(t), [t]);\n\treturn (\n\t\t<Container\n\t\t\tmainAlignment=\"flex-start\"\n\t\t\tcrossAlignment=\"flex-start\"\n\t\t\tgap=\"1rem\"\n\t\t\tpadding={'large'}\n\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\twidth=\"50%\"\n\t\t\theight={'fit'}\n\t\t\tid={subSection.id}\n\t\t\tbackground={'gray6'}\n\t\t>\n\t\t\t<Text weight={'bold'} size={'medium'}>\n\t\t\t\t{subSection.label}\n\t\t\t</Text>\n\t\t\t{children}\n\t\t</Container>\n\t);\n};\n\nexport default AppearanceSettings;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\n\nimport { Select, SelectItem, SingleSelectionOnChange, Text } from '@zextras/carbonio-design-system';\nimport { find } from 'lodash';\n\nimport type { AddMod, DarkReaderPropValues, RemoveMod } from '../../../../types';\nimport { ThemeCallbacksContext } from '../../../boot/theme-provider';\nimport { DARK_READER_PROP_KEY, SHELL_APP_ID } from '../../../constants';\nimport {\n\tisDarkReaderPropValues,\n\tuseDarkReaderResultValue\n} from '../../../dark-mode/use-dark-reader-result-value';\nimport { getT } from '../../../store/i18n';\n\ntype DarkReaderSelectItem = Array<SelectItem & { value: DarkReaderPropValues }>;\n\ninterface DarkThemeSettingSectionProps {\n\taddMod: AddMod;\n\tremoveMod: RemoveMod;\n}\n\nconst DarkThemeSettingSection = ({\n\taddMod,\n\tremoveMod\n}: DarkThemeSettingSectionProps): React.JSX.Element | null => {\n\tconst { setDarkReaderState } = useContext(ThemeCallbacksContext);\n\tconst darkReaderResultValue = useDarkReaderResultValue();\n\tconst [selection, setSelection] = useState<SelectItem>();\n\n\tconst t = getT();\n\tconst items = useMemo(\n\t\t(): DarkReaderSelectItem => [\n\t\t\t{\n\t\t\t\tlabel: t('settings.general.theme_auto', 'Auto'),\n\t\t\t\tvalue: 'auto'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: t('settings.general.theme_enabled', 'Enabled'),\n\t\t\t\tvalue: 'enabled'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: t('settings.general.theme_disabled', 'Disabled'),\n\t\t\t\tvalue: 'disabled'\n\t\t\t}\n\t\t],\n\t\t[t]\n\t);\n\n\tconst setSelectNewValue = useCallback(\n\t\t(value: DarkReaderPropValues) => {\n\t\t\tconst item = find(items, { value });\n\t\t\tif (item) {\n\t\t\t\tsetSelection(item);\n\t\t\t}\n\t\t\tsetDarkReaderState(value);\n\t\t},\n\t\t[items, setDarkReaderState]\n\t);\n\n\tconst onSelectionChange = useCallback<SingleSelectionOnChange>(\n\t\t(value) => {\n\t\t\tif (isDarkReaderPropValues(value)) {\n\t\t\t\tif (value) {\n\t\t\t\t\tsetSelectNewValue(value);\n\t\t\t\t}\n\t\t\t\tif (value !== darkReaderResultValue) {\n\t\t\t\t\taddMod('props', DARK_READER_PROP_KEY, { app: SHELL_APP_ID, value });\n\t\t\t\t} else {\n\t\t\t\t\tremoveMod('props', DARK_READER_PROP_KEY);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[addMod, darkReaderResultValue, removeMod, setSelectNewValue]\n\t);\n\n\tuseEffect(() => {\n\t\tif (darkReaderResultValue) {\n\t\t\tsetSelectNewValue(darkReaderResultValue);\n\t\t}\n\t}, [darkReaderResultValue, items, setSelectNewValue]);\n\n\tif (!selection) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t<Text size=\"medium\" weight=\"bold\">\n\t\t\t\t{t('settings.general.theme_options', 'Theme Options')}\n\t\t\t</Text>\n\t\t\t<Select\n\t\t\t\titems={items}\n\t\t\t\tselection={selection}\n\t\t\t\tlabel={t('settings.general.dark_mode', 'Dark Mode')}\n\t\t\t\tonChange={onSelectionChange}\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default DarkThemeSettingSection;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useMemo } from 'react';\n\nimport { Button, FormSubSection } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\n\nimport { logout } from '../../../network/logout';\nimport { accountSubSection } from '../../general-settings-sub-sections';\n\nexport const Logout = (): React.JSX.Element => {\n\tconst [t] = useTranslation();\n\n\tconst sectionTitle = useMemo(() => accountSubSection(t), [t]);\n\n\treturn (\n\t\t<FormSubSection\n\t\t\tlabel={sectionTitle.label}\n\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\twidth=\"50%\"\n\t\t\tid={sectionTitle.id}\n\t\t>\n\t\t\t<Button label={t('settings.general.account_logout', 'Logout')} onClick={logout} />\n\t\t</FormSubSection>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport {\n\tBadge,\n\tContainer,\n\tDivider,\n\tFormSubSection,\n\tText,\n\tTextProps,\n\tTooltip,\n\tuseTheme\n} from '@zextras/carbonio-design-system';\nimport { map } from 'lodash';\n\nimport { CarbonioModule } from '../../../../types';\nimport { SEARCH_APP_ID, SETTINGS_APP_ID } from '../../../constants';\nimport { useAppList } from '../../../store/app';\nimport { getT } from '../../../store/i18n';\nimport { versionsSubSection } from '../../general-settings-sub-sections';\n\nconst ModuleVersionSettings = (): React.JSX.Element => {\n\tconst apps = useAppList();\n\tconst t = getT();\n\tconst theme = useTheme();\n\n\tconst copyToClipboard = useCallback<NonNullable<TextProps['onClick']>>((e) => {\n\t\te.preventDefault();\n\t\tif (e.target instanceof HTMLElement) {\n\t\t\tnavigator.clipboard.writeText(e.target.innerText);\n\t\t}\n\t}, []);\n\n\tconst filteredList = useMemo(\n\t\t() => apps.filter((app) => app.name !== SEARCH_APP_ID && app.name !== SETTINGS_APP_ID),\n\t\t[apps]\n\t);\n\tconst sectionTitle = useMemo(() => versionsSubSection(t), [t]);\n\n\treturn (\n\t\t<>\n\t\t\t<FormSubSection\n\t\t\t\tlabel={sectionTitle.label}\n\t\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\t\twidth=\"50%\"\n\t\t\t\tid={sectionTitle.id}\n\t\t\t>\n\t\t\t\t{map(filteredList, (app: CarbonioModule) => (\n\t\t\t\t\t<Container key={app.name} padding={{ horizontal: 'large', vertical: 'small' }}>\n\t\t\t\t\t\t<Container orientation=\"horizontal\" mainAlignment=\"space-between\">\n\t\t\t\t\t\t\t<Text>{app.display}</Text>\n\t\t\t\t\t\t\t<Tooltip placement=\"top\" label={t('label.click_to_copy', 'Click to copy')}>\n\t\t\t\t\t\t\t\t<Text style={{ cursor: 'pointer' }} onClick={copyToClipboard}>\n\t\t\t\t\t\t\t\t\tVersion: {app.version}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t<Container\n\t\t\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\t\t\tmainAlignment=\"space-between\"\n\t\t\t\t\t\t\tpadding={{ top: 'extrasmall', bottom: 'medium' }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text color=\"secondary\">{app.description}</Text>\n\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\tvalue=\"Active\"\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette.success.regular,\n\t\t\t\t\t\t\t\t\tcolor: theme.palette.gray6.regular\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t<Divider color=\"gray2\" />\n\t\t\t\t\t</Container>\n\t\t\t\t))}\n\t\t\t</FormSubSection>\n\t\t</>\n\t);\n};\n\nexport default ModuleVersionSettings;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport {\n\tCheckbox,\n\tContainer,\n\tFormSubSection,\n\tPadding,\n\tRow,\n\tSelect,\n\tSelectItem,\n\tSingleSelectionOnChange,\n\tText,\n\tTextArea,\n\tTextAreaProps\n} from '@zextras/carbonio-design-system';\nimport { type TFunction } from 'i18next';\nimport { find } from 'lodash';\n\nimport { OutOfOfficeTimePeriodSection } from './out-of-office-time-period-section';\nimport { AccountSettings, AccountSettingsPrefs, AddMod, BooleanString } from '../../../../types';\nimport { getT } from '../../../store/i18n';\nimport { outOfOfficeSubSection } from '../../general-settings-sub-sections';\nimport { useReset } from '../../hooks/use-reset';\nimport {\n\tdateToGenTime,\n\tResetComponentImperativeHandler,\n\tSettingsSectionProps,\n\tupsertPrefOnUnsavedChanges\n} from '../utils';\n\ntype CoercedPrefType<T> = T extends BooleanString | undefined ? boolean | undefined : T;\n\nexport const buildItemsPrefOutOfOfficeReplyEnabled = (\n\tt: TFunction\n): Array<\n\tSelectItem<\n\t\tNonNullable<CoercedPrefType<AccountSettingsPrefs['zimbraPrefOutOfOfficeReplyEnabled']>>\n\t>\n> => [\n\t{\n\t\tlabel: t('settings.out_of_office.send_auto_replies', 'Send auto-replies'),\n\t\tvalue: true\n\t},\n\t{\n\t\tlabel: t('settings.out_of_office.do_not_send_auto_replies', 'Do not send auto-replies'),\n\t\tvalue: false\n\t}\n];\n\ntype ExternalSenders =\n\t| 'SEND_AUTO_REPLY'\n\t| 'SHOW_EXTERNAL_INPUT'\n\t| 'SEND_NOT_IN_ORG'\n\t| 'SUPPRESS_EXTERNAL';\n\nexport const buildItemsExternalSenders = (\n\tt: TFunction\n): Record<ExternalSenders, SelectItem<ExternalSenders>> => ({\n\tSEND_AUTO_REPLY: {\n\t\tlabel: t(\n\t\t\t'settings.out_of_office.external_senders.send_standard_auto_reply',\n\t\t\t'Send standard auto-reply message'\n\t\t),\n\t\tvalue: 'SEND_AUTO_REPLY'\n\t},\n\tSHOW_EXTERNAL_INPUT: {\n\t\tlabel: t(\n\t\t\t'settings.out_of_office.external_senders.send_custom_in_organisation',\n\t\t\t'Send custom message to those who are not in my organization'\n\t\t),\n\t\tvalue: 'SHOW_EXTERNAL_INPUT'\n\t},\n\tSEND_NOT_IN_ORG: {\n\t\tlabel: t(\n\t\t\t'settings.out_of_office.external_senders.send_custom_not_in_organisation',\n\t\t\t'Send custom message to those who are not in my organization or address book'\n\t\t),\n\t\tvalue: 'SEND_NOT_IN_ORG'\n\t},\n\tSUPPRESS_EXTERNAL: {\n\t\tlabel: t(\n\t\t\t'settings.out_of_office.external_senders.do_not_send_to_external',\n\t\t\t\"Don't send an auto-reply message to external sender\"\n\t\t),\n\t\tvalue: 'SUPPRESS_EXTERNAL'\n\t}\n});\n\nexport const getExternalSendersPrefsData = (\n\tsettings: AccountSettings,\n\tt: TFunction\n): SelectItem<ExternalSenders> => {\n\tconst itemsExternalSenders = buildItemsExternalSenders(t);\n\tif (\n\t\tsettings.prefs.zimbraPrefOutOfOfficeSuppressExternalReply === 'FALSE' &&\n\t\tsettings.prefs.zimbraPrefOutOfOfficeExternalReplyEnabled === 'FALSE'\n\t) {\n\t\treturn itemsExternalSenders.SEND_AUTO_REPLY;\n\t}\n\tif (\n\t\tsettings.prefs.zimbraPrefExternalSendersType === 'ALL' &&\n\t\tsettings.prefs.zimbraPrefOutOfOfficeExternalReplyEnabled === 'TRUE'\n\t) {\n\t\treturn itemsExternalSenders.SHOW_EXTERNAL_INPUT;\n\t}\n\tif (\n\t\tsettings.prefs.zimbraPrefExternalSendersType === 'ALLNOTINAB' &&\n\t\tsettings.prefs.zimbraPrefOutOfOfficeExternalReplyEnabled === 'TRUE'\n\t) {\n\t\treturn itemsExternalSenders.SEND_NOT_IN_ORG;\n\t}\n\treturn itemsExternalSenders.SUPPRESS_EXTERNAL;\n};\n\ninterface OutOfOfficeViewProps extends SettingsSectionProps {\n\tsettings: AccountSettings;\n\taddMod: AddMod;\n}\n\nexport const OutOfOfficeSettings = ({\n\tsettings,\n\taddMod,\n\tresetRef\n}: OutOfOfficeViewProps): React.JSX.Element => {\n\tconst t = getT();\n\tconst outOfOfficeSectionTitle = useMemo(() => outOfOfficeSubSection(t), [t]);\n\tconst [prefOutOfOfficeReplyEnabled, setPrefOutOfOfficeReplyEnabled] = useState<boolean>(\n\t\tsettings.prefs.zimbraPrefOutOfOfficeReplyEnabled === 'TRUE'\n\t);\n\tconst [prefOutOfOfficeReply, setPrefOutOfOfficeReply] = useState<string>(\n\t\tsettings.prefs.zimbraPrefOutOfOfficeReply ?? ''\n\t);\n\tconst [prefOutOfOfficeExternalReplyEnabled, setPrefOutOfOfficeExternalReplyEnabled] =\n\t\tuseState<boolean>(settings.prefs.zimbraPrefOutOfOfficeExternalReplyEnabled === 'TRUE');\n\tconst [prefOutOfOfficeExternalReply, setPrefOutOfOfficeExternalReply] = useState<string>(\n\t\tsettings.prefs.zimbraPrefOutOfOfficeExternalReply ?? ''\n\t);\n\tconst [externalSendersSelectedItem, setExternalSendersSelectedItem] = useState<\n\t\tSelectItem<ExternalSenders>\n\t>(getExternalSendersPrefsData(settings, t));\n\tconst [sendAutoReplyTimePeriodEnabled, setSendAutoReplyTimePeriodEnabled] = useState<boolean>(\n\t\t!!settings.prefs.zimbraPrefOutOfOfficeFromDate &&\n\t\t\t!!settings.prefs.zimbraPrefOutOfOfficeUntilDate\n\t);\n\n\tconst outOfOfficeTimePeriodResetRef = useRef<ResetComponentImperativeHandler>(null);\n\n\tconst initPrefs = useCallback(() => {\n\t\tsetPrefOutOfOfficeReplyEnabled(settings.prefs.zimbraPrefOutOfOfficeReplyEnabled === 'TRUE');\n\t\tsetPrefOutOfOfficeReply(settings.prefs.zimbraPrefOutOfOfficeReply ?? '');\n\t\tsetPrefOutOfOfficeExternalReplyEnabled(\n\t\t\tsettings.prefs.zimbraPrefOutOfOfficeExternalReplyEnabled === 'TRUE'\n\t\t);\n\t\tsetPrefOutOfOfficeExternalReply(settings.prefs.zimbraPrefOutOfOfficeExternalReply ?? '');\n\t\tsetExternalSendersSelectedItem(getExternalSendersPrefsData(settings, t));\n\t\tsetSendAutoReplyTimePeriodEnabled(\n\t\t\t!!settings.prefs.zimbraPrefOutOfOfficeFromDate &&\n\t\t\t\t!!settings.prefs.zimbraPrefOutOfOfficeUntilDate\n\t\t);\n\t\toutOfOfficeTimePeriodResetRef.current?.reset();\n\t}, [settings, t]);\n\n\tuseEffect(() => {\n\t\tinitPrefs();\n\t}, [initPrefs]);\n\n\tuseReset(resetRef, initPrefs);\n\n\tconst updatePref = useMemo(() => upsertPrefOnUnsavedChanges(addMod), [addMod]);\n\n\tconst prefOutOfOfficeReplyEnabledSelectItems = useMemo(\n\t\t() => buildItemsPrefOutOfOfficeReplyEnabled(t),\n\t\t[t]\n\t);\n\n\tconst prefOutOfOfficeReplyEnabledSelectedValue = useMemo<SelectItem<boolean>>(\n\t\t() =>\n\t\t\tfind(\n\t\t\t\tprefOutOfOfficeReplyEnabledSelectItems,\n\t\t\t\t(item) => item.value === prefOutOfOfficeReplyEnabled\n\t\t\t) as SelectItem<boolean>,\n\t\t[prefOutOfOfficeReplyEnabled, prefOutOfOfficeReplyEnabledSelectItems]\n\t);\n\n\tconst prefOutOfOfficeReplyEnabledOnChange = useCallback<\n\t\tSingleSelectionOnChange<\n\t\t\tNonNullable<CoercedPrefType<AccountSettingsPrefs['zimbraPrefOutOfOfficeReplyEnabled']>>\n\t\t>\n\t>(\n\t\t(value): void => {\n\t\t\tif (value !== null) {\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeReplyEnabled', value);\n\t\t\t\tsetPrefOutOfOfficeReplyEnabled(value);\n\t\t\t}\n\t\t},\n\t\t[updatePref]\n\t);\n\n\tconst externalSendersSelectItems = useMemo(\n\t\t() => Object.values(buildItemsExternalSenders(t)),\n\t\t[t]\n\t);\n\n\tconst externalSendersHandler = useCallback(\n\t\t(value: ExternalSenders) => {\n\t\t\tif (value === 'SEND_AUTO_REPLY') {\n\t\t\t\tupdatePref('zimbraPrefExternalSendersType', 'INSD');\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeExternalReplyEnabled', false);\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeSuppressExternalReply', false);\n\t\t\t\tsetPrefOutOfOfficeExternalReplyEnabled(false);\n\t\t\t} else if (value === 'SHOW_EXTERNAL_INPUT') {\n\t\t\t\tupdatePref('zimbraPrefExternalSendersType', 'ALL');\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeExternalReplyEnabled', true);\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeSuppressExternalReply', false);\n\t\t\t\tsetPrefOutOfOfficeExternalReplyEnabled(true);\n\t\t\t} else if (value === 'SEND_NOT_IN_ORG') {\n\t\t\t\tupdatePref('zimbraPrefExternalSendersType', 'ALLNOTINAB');\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeExternalReplyEnabled', true);\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeSuppressExternalReply', false);\n\t\t\t\tsetPrefOutOfOfficeExternalReplyEnabled(true);\n\t\t\t} else if (value === 'SUPPRESS_EXTERNAL') {\n\t\t\t\tupdatePref('zimbraPrefExternalSendersType', 'INAB');\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeExternalReplyEnabled', false);\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeSuppressExternalReply', true);\n\t\t\t\tsetPrefOutOfOfficeExternalReplyEnabled(false);\n\t\t\t}\n\t\t},\n\t\t[updatePref]\n\t);\n\n\tconst externalSendersOnChange = useCallback<SingleSelectionOnChange<ExternalSenders>>(\n\t\t(value) => {\n\t\t\tif (value !== null) {\n\t\t\t\texternalSendersHandler(value);\n\t\t\t\tconst newSelectItem = find(externalSendersSelectItems, (item) => item.value === value);\n\t\t\t\tnewSelectItem && setExternalSendersSelectedItem(newSelectItem);\n\t\t\t}\n\t\t},\n\t\t[externalSendersHandler, externalSendersSelectItems]\n\t);\n\n\tconst prefOutOfOfficeReplyOnChange = useCallback<NonNullable<TextAreaProps['onChange']>>(\n\t\t(ev) => {\n\t\t\tsetPrefOutOfOfficeReply(ev.target.value);\n\t\t\tupdatePref('zimbraPrefOutOfOfficeReply', ev.target.value);\n\t\t},\n\t\t[updatePref]\n\t);\n\n\tconst prefOutOfOfficeExternalReplyOnChange = useCallback<NonNullable<TextAreaProps['onChange']>>(\n\t\t(ev) => {\n\t\t\tsetPrefOutOfOfficeExternalReply(ev.target.value);\n\t\t\tupdatePref('zimbraPrefOutOfOfficeExternalReply', ev.target.value);\n\t\t},\n\t\t[updatePref]\n\t);\n\n\tconst toggleSendAutoReplyTimePeriod = useCallback(() => {\n\t\tsetSendAutoReplyTimePeriodEnabled((prevState) => {\n\t\t\tconst nextState = !prevState;\n\t\t\tif (!nextState) {\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeFromDate', undefined);\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeUntilDate', undefined);\n\t\t\t} else {\n\t\t\t\tif (!settings.prefs.zimbraPrefOutOfOfficeFromDate) {\n\t\t\t\t\tupdatePref('zimbraPrefOutOfOfficeFromDate', dateToGenTime(new Date()));\n\t\t\t\t}\n\t\t\t\tif (!settings.prefs.zimbraPrefOutOfOfficeUntilDate) {\n\t\t\t\t\tupdatePref('zimbraPrefOutOfOfficeUntilDate', dateToGenTime(new Date()));\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nextState;\n\t\t});\n\t}, [\n\t\tsettings.prefs.zimbraPrefOutOfOfficeFromDate,\n\t\tsettings.prefs.zimbraPrefOutOfOfficeUntilDate,\n\t\tupdatePref\n\t]);\n\n\treturn (\n\t\t<FormSubSection\n\t\t\tlabel={outOfOfficeSectionTitle.label}\n\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\twidth=\"50%\"\n\t\t\tid={outOfOfficeSectionTitle.id}\n\t\t>\n\t\t\t<Container crossAlignment=\"baseline\" padding={{ all: 'small' }} gap={'0.5rem'}>\n\t\t\t\t<Select\n\t\t\t\t\titems={prefOutOfOfficeReplyEnabledSelectItems}\n\t\t\t\t\tlabel={t('label.out_of_office', 'Out of Office')}\n\t\t\t\t\tonChange={prefOutOfOfficeReplyEnabledOnChange}\n\t\t\t\t\tselection={prefOutOfOfficeReplyEnabledSelectedValue}\n\t\t\t\t/>\n\t\t\t\t<TextArea\n\t\t\t\t\tvalue={prefOutOfOfficeReply}\n\t\t\t\t\tdisabled={!prefOutOfOfficeReplyEnabled}\n\t\t\t\t\tlabel={t('settings.out_of_office.labels.auto_reply_message', 'Auto-Reply Message:')}\n\t\t\t\t\tonChange={prefOutOfOfficeReplyOnChange}\n\t\t\t\t/>\n\t\t\t\t<Select\n\t\t\t\t\tdisabled={!prefOutOfOfficeReplyEnabled}\n\t\t\t\t\titems={externalSendersSelectItems}\n\t\t\t\t\tlabel={t('settings.out_of_office.labels.external_senders', 'External Senders')}\n\t\t\t\t\tonChange={externalSendersOnChange}\n\t\t\t\t\tselection={externalSendersSelectedItem}\n\t\t\t\t\tdropdownWidth={'auto'}\n\t\t\t\t\tdropdownMaxWidth={'unset'}\n\t\t\t\t\tplacement={'bottom-start'}\n\t\t\t\t/>\n\t\t\t\t{prefOutOfOfficeExternalReplyEnabled && (\n\t\t\t\t\t<TextArea\n\t\t\t\t\t\tvalue={prefOutOfOfficeExternalReply}\n\t\t\t\t\t\tdisabled={!prefOutOfOfficeReplyEnabled}\n\t\t\t\t\t\tlabel={t(\n\t\t\t\t\t\t\t'settings.out_of_office.labels.auto_reply_message_external',\n\t\t\t\t\t\t\t'Auto-Reply Message for External senders:'\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonChange={prefOutOfOfficeExternalReplyOnChange}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</Container>\n\t\t\t<Container crossAlignment=\"baseline\" padding={{ all: 'small' }}>\n\t\t\t\t<Row\n\t\t\t\t\tpadding={{ all: 'small' }}\n\t\t\t\t\tmainAlignment=\"baseline\"\n\t\t\t\t\tcrossAlignment=\"baseline\"\n\t\t\t\t\twidth=\"100%\"\n\t\t\t\t>\n\t\t\t\t\t<Text size=\"large\" weight=\"bold\">\n\t\t\t\t\t\t{t('settings.out_of_office.headings.time_period', 'Time Period')}\n\t\t\t\t\t</Text>\n\t\t\t\t</Row>\n\t\t\t\t<Padding vertical=\"small\" />\n\t\t\t\t<Checkbox\n\t\t\t\t\tlabel={t(\n\t\t\t\t\t\t'settings.out_of_office.labels.send_auto_reply_period',\n\t\t\t\t\t\t'Send auto-replies during the following period:'\n\t\t\t\t\t)}\n\t\t\t\t\tvalue={sendAutoReplyTimePeriodEnabled}\n\t\t\t\t\tonClick={toggleSendAutoReplyTimePeriod}\n\t\t\t\t\tdisabled={!prefOutOfOfficeReplyEnabled}\n\t\t\t\t/>\n\t\t\t\t<OutOfOfficeTimePeriodSection\n\t\t\t\t\taddMod={addMod}\n\t\t\t\t\tdisabled={!prefOutOfOfficeReplyEnabled || !sendAutoReplyTimePeriodEnabled}\n\t\t\t\t\tprefOutOfOfficeFromDate={settings.prefs.zimbraPrefOutOfOfficeFromDate}\n\t\t\t\t\tprefOutOfOfficeUntilDate={settings.prefs.zimbraPrefOutOfOfficeUntilDate}\n\t\t\t\t\tresetRef={outOfOfficeTimePeriodResetRef}\n\t\t\t\t/>\n\t\t\t</Container>\n\t\t</FormSubSection>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport {\n\tCheckbox,\n\tContainer,\n\tDateTimePicker,\n\tDateTimePickerProps\n} from '@zextras/carbonio-design-system';\n\nimport { AddMod, GeneralizedTime } from '../../../../types';\nimport { getT } from '../../../store/i18n';\nimport { useReset } from '../../hooks/use-reset';\nimport {\n\tdateToGenTime,\n\tendOfDay,\n\tgenTimeToDate,\n\tSettingsSectionProps,\n\tstartOfDay,\n\tupsertPrefOnUnsavedChanges\n} from '../utils';\n\ninterface OutOfOfficeTimePeriodSectionProps extends SettingsSectionProps {\n\taddMod: AddMod;\n\tdisabled: boolean;\n\tprefOutOfOfficeFromDate: GeneralizedTime | undefined;\n\tprefOutOfOfficeUntilDate: GeneralizedTime | undefined;\n}\n\nfunction coerceGenTime(genTime: GeneralizedTime | undefined): Date {\n\treturn genTime ? genTimeToDate(genTime) : new Date();\n}\n\nexport const OutOfOfficeTimePeriodSection = ({\n\taddMod,\n\tdisabled,\n\tprefOutOfOfficeFromDate,\n\tprefOutOfOfficeUntilDate,\n\tresetRef\n}: OutOfOfficeTimePeriodSectionProps): React.JSX.Element => {\n\tconst t = getT();\n\tconst [fromDate, setFromDate] = useState<Date>(coerceGenTime(prefOutOfOfficeFromDate));\n\tconst [untilDate, setUntilDate] = useState<Date>(coerceGenTime(prefOutOfOfficeUntilDate));\n\tconst [allDayEnabled, setAllDayEnabled] = useState<boolean>(false);\n\tconst editTimeIsDisabled = useMemo(() => disabled || allDayEnabled, [disabled, allDayEnabled]);\n\n\tconst updatePref = useMemo(() => upsertPrefOnUnsavedChanges(addMod), [addMod]);\n\n\tconst initPrefs = useCallback(() => {\n\t\tconst fromDatePref = coerceGenTime(prefOutOfOfficeFromDate);\n\t\tconst untilDatePref = coerceGenTime(prefOutOfOfficeUntilDate);\n\t\tsetFromDate(fromDatePref);\n\t\tsetUntilDate(untilDatePref);\n\t\t// there is no pref for the all day check. It is considered all day if the start date time is midnight\n\t\t// and the until date time is 23:59:59:00\n\t\tconst fromDateAllDay = startOfDay(fromDatePref);\n\t\tconst untilDateAllDay = endOfDay(untilDatePref);\n\t\tsetAllDayEnabled(\n\t\t\tfromDatePref.getTime() === fromDateAllDay.getTime() &&\n\t\t\t\tuntilDatePref.getTime() === untilDateAllDay.getTime()\n\t\t);\n\t}, [prefOutOfOfficeFromDate, prefOutOfOfficeUntilDate]);\n\n\tuseEffect(() => {\n\t\tinitPrefs();\n\t}, [initPrefs]);\n\n\tuseReset(resetRef, initPrefs);\n\n\tconst outOfOfficeFromDateOnChange = useCallback<NonNullable<DateTimePickerProps['onChange']>>(\n\t\t(newFromDate) => {\n\t\t\tif (newFromDate) {\n\t\t\t\tsetFromDate((prevState) => {\n\t\t\t\t\tif (newFromDate.getTime() !== prevState.getTime()) {\n\t\t\t\t\t\tupdatePref('zimbraPrefOutOfOfficeFromDate', dateToGenTime(newFromDate));\n\t\t\t\t\t}\n\t\t\t\t\treturn newFromDate;\n\t\t\t\t});\n\t\t\t\tif (newFromDate.getTime() > untilDate.getTime()) {\n\t\t\t\t\tconst newUntilDate = new Date(newFromDate);\n\t\t\t\t\tsetUntilDate(newUntilDate);\n\t\t\t\t\tupdatePref('zimbraPrefOutOfOfficeUntilDate', dateToGenTime(newUntilDate));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// force an update by cloning the date, so that the input is not left empty\n\t\t\t\tsetFromDate((prevState) => new Date(prevState));\n\t\t\t}\n\t\t},\n\t\t[untilDate, updatePref]\n\t);\n\n\tconst outOfOfficeUntilDateOnChange = useCallback<NonNullable<DateTimePickerProps['onChange']>>(\n\t\t(newUntilDate) => {\n\t\t\tif (newUntilDate) {\n\t\t\t\tsetUntilDate((prevState) => {\n\t\t\t\t\tif (newUntilDate.getTime() !== prevState.getTime()) {\n\t\t\t\t\t\tupdatePref('zimbraPrefOutOfOfficeUntilDate', dateToGenTime(newUntilDate));\n\t\t\t\t\t}\n\t\t\t\t\treturn newUntilDate;\n\t\t\t\t});\n\t\t\t\tif (newUntilDate.getTime() < fromDate.getTime()) {\n\t\t\t\t\tconst newFromDate = new Date(newUntilDate);\n\t\t\t\t\tsetFromDate(newFromDate);\n\t\t\t\t\tupdatePref('zimbraPrefOutOfOfficeFromDate', dateToGenTime(newFromDate));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// force an update by cloning the date, so that the input is not left empty\n\t\t\t\tsetUntilDate((prevState) => new Date(prevState));\n\t\t\t}\n\t\t},\n\t\t[fromDate, updatePref]\n\t);\n\n\tconst toggleAllDay = useCallback(() => {\n\t\tsetAllDayEnabled((prevWasEnabled) => {\n\t\t\tconst nowIsEnabled = !prevWasEnabled;\n\t\t\tif (nowIsEnabled) {\n\t\t\t\tsetFromDate((prevState) => {\n\t\t\t\t\tconst startOfFromDate = startOfDay(prevState);\n\t\t\t\t\tif (startOfFromDate.getTime() !== prevState.getTime()) {\n\t\t\t\t\t\tupdatePref('zimbraPrefOutOfOfficeFromDate', dateToGenTime(startOfFromDate));\n\t\t\t\t\t}\n\t\t\t\t\treturn startOfFromDate;\n\t\t\t\t});\n\t\t\t\tsetUntilDate((prevState) => {\n\t\t\t\t\tconst endOfUntilDate = endOfDay(prevState);\n\t\t\t\t\tif (endOfUntilDate.getTime() !== prevState.getTime()) {\n\t\t\t\t\t\tupdatePref('zimbraPrefOutOfOfficeUntilDate', dateToGenTime(endOfUntilDate));\n\t\t\t\t\t}\n\t\t\t\t\treturn endOfUntilDate;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn nowIsEnabled;\n\t\t});\n\t}, [updatePref]);\n\n\treturn (\n\t\t<Container padding={{ vertical: 'small' }} gap={'0.5rem'} crossAlignment={'flex-start'}>\n\t\t\t<Container orientation={'horizontal'} gap={'0.5rem'}>\n\t\t\t\t<DateTimePicker\n\t\t\t\t\tlabel={t('settings.out_of_office.labels.start_date', 'Start Date')}\n\t\t\t\t\tdateFormat={'P'}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tdefaultValue={fromDate}\n\t\t\t\t\tonChange={outOfOfficeFromDateOnChange}\n\t\t\t\t\tincludeTime={false}\n\t\t\t\t\twidth={'fill'}\n\t\t\t\t/>\n\t\t\t\t<DateTimePicker\n\t\t\t\t\tlabel={t('settings.out_of_office.labels.end_date', 'End Date')}\n\t\t\t\t\tdateFormat={'P'}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\ttimeLabel={''}\n\t\t\t\t\tdefaultValue={untilDate}\n\t\t\t\t\tonChange={outOfOfficeUntilDateOnChange}\n\t\t\t\t\tincludeTime={false}\n\t\t\t\t\twidth={'fill'}\n\t\t\t\t/>\n\t\t\t</Container>\n\t\t\t<Checkbox\n\t\t\t\tdisabled={disabled}\n\t\t\t\tlabel={t('settings.out_of_office.labels.all_day', 'All Day:')}\n\t\t\t\tvalue={allDayEnabled}\n\t\t\t\tonClick={toggleAllDay}\n\t\t\t/>\n\t\t\t<Container orientation={'horizontal'} gap={'0.5rem'}>\n\t\t\t\t<DateTimePicker\n\t\t\t\t\tlabel={t('settings.out_of_office.labels.start_time', 'Start Time')}\n\t\t\t\t\tshowTimeSelect\n\t\t\t\t\tshowTimeSelectOnly\n\t\t\t\t\ttimeLabel=\"\"\n\t\t\t\t\tdateFormat=\"p\"\n\t\t\t\t\tdefaultValue={fromDate}\n\t\t\t\t\tonChange={outOfOfficeFromDateOnChange}\n\t\t\t\t\tdisabled={editTimeIsDisabled}\n\t\t\t\t\twidth={'fill'}\n\t\t\t\t/>\n\t\t\t\t<DateTimePicker\n\t\t\t\t\tlabel={t('settings.out_of_office.labels.end_time', 'End Time')}\n\t\t\t\t\tshowTimeSelect\n\t\t\t\t\tshowTimeSelectOnly\n\t\t\t\t\ttimeLabel=\"\"\n\t\t\t\t\tdateFormat=\"p\"\n\t\t\t\t\tdefaultValue={untilDate}\n\t\t\t\t\tonChange={outOfOfficeUntilDateOnChange}\n\t\t\t\t\tdisabled={editTimeIsDisabled}\n\t\t\t\t\twidth={'fill'}\n\t\t\t\t/>\n\t\t\t</Container>\n\t\t</Container>\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, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport {\n\tButton,\n\tCheckbox,\n\tContainer,\n\tSlider,\n\tSliderProps,\n\tText,\n\tTooltip\n} from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\nimport styled, { SimpleInterpolation } from 'styled-components';\n\nimport { ScalingSettings } from '../../../../types/settings';\nimport { BASE_FONT_SIZE, SCALING_OPTIONS } from '../../../constants';\nimport { useReset } from '../../hooks/use-reset';\nimport { getAutoScalingFontSize, ResetComponentImperativeHandler } from '../utils';\n\nconst ScalingSliderContainer = styled(Container)`\n\tbox-shadow: 0px 0px 4px rgba(166, 166, 166, 0.5);\n\tborder-radius: 0.5rem;\n`;\n\nconst ExampleContainer = styled(Container)<{ $fontSize: number | undefined }>`\n\tfont-size: ${({ $fontSize }): SimpleInterpolation => $fontSize && `${$fontSize}%`};\n`;\n\nconst ExampleText = styled(Text)`\n\tfont-size: 1em; /* font-size needs to be relative to ExampleContainer */\n`;\n\ninterface ScalingSettingSectionProps {\n\tscalingSettings: ScalingSettings;\n\taddLocalStoreChange: (\n\t\tkey: keyof ScalingSettings,\n\t\tvalue: ScalingSettings[keyof ScalingSettings]\n\t) => void;\n\tcleanLocalStoreChange: (key: keyof ScalingSettings) => void;\n\tresetRef: React.RefObject<ResetComponentImperativeHandler>;\n}\n\nconst BASE_FONT_OPTION_INDEX = SCALING_OPTIONS.findIndex(\n\t(option) => option.value === BASE_FONT_SIZE\n);\n\nconst AUTOSCALING_FONT_SIZE = getAutoScalingFontSize();\nconst AUTOSCALING_FONT_OPTION_INDEX = SCALING_OPTIONS.findIndex(\n\t(option) => option.value === AUTOSCALING_FONT_SIZE\n);\n\nexport const ScalingSettingSection = ({\n\tscalingSettings,\n\taddLocalStoreChange,\n\tcleanLocalStoreChange,\n\tresetRef\n}: ScalingSettingSectionProps): React.JSX.Element => {\n\tconst [t] = useTranslation();\n\n\tconst [scalingOptionValues, scalingOptionLabels] = useMemo<[number[], string[]]>(\n\t\t() =>\n\t\t\tSCALING_OPTIONS.reduce<[number[], string[]]>(\n\t\t\t\t([values, labels], option) => {\n\t\t\t\t\tvalues.push(option.value);\n\t\t\t\t\tlabels.push(t('settings.appearance.option', { context: option.label }));\n\t\t\t\t\treturn [values, labels];\n\t\t\t\t},\n\t\t\t\t[[], []]\n\t\t\t),\n\t\t[t]\n\t);\n\n\tconst savedOptionIndex = useMemo<number>(() => {\n\t\tconst savedScalingValueSetting = scalingSettings['settings.appearance_setting.scaling'];\n\t\tif (savedScalingValueSetting !== undefined) {\n\t\t\tconst optionIndex = scalingOptionValues.findIndex(\n\t\t\t\t(option) => option === savedScalingValueSetting\n\t\t\t);\n\t\t\tif (optionIndex >= 0) {\n\t\t\t\treturn optionIndex;\n\t\t\t}\n\t\t}\n\t\treturn AUTOSCALING_FONT_OPTION_INDEX;\n\t}, [scalingOptionValues, scalingSettings]);\n\n\tconst [autoScaling, setAutoScaling] = useState(\n\t\tscalingSettings['settings.appearance_setting.auto'] ?? true\n\t);\n\tconst [scalingValue, setScalingValue] = useState<number>(savedOptionIndex);\n\n\tuseEffect(() => {\n\t\t// update input value when setting is updated\n\t\tsetScalingValue(savedOptionIndex);\n\t}, [savedOptionIndex]);\n\n\tuseEffect(() => {\n\t\tif (scalingOptionValues[scalingValue]) {\n\t\t\tif (scalingValue !== savedOptionIndex) {\n\t\t\t\taddLocalStoreChange(\n\t\t\t\t\t'settings.appearance_setting.scaling',\n\t\t\t\t\tscalingOptionValues[scalingValue]\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcleanLocalStoreChange('settings.appearance_setting.scaling');\n\t\t\t}\n\t\t}\n\t}, [\n\t\taddLocalStoreChange,\n\t\tcleanLocalStoreChange,\n\t\tsavedOptionIndex,\n\t\tscalingOptionValues,\n\t\tscalingSettings,\n\t\tscalingValue\n\t]);\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\t(scalingSettings['settings.appearance_setting.auto'] !== undefined &&\n\t\t\t\tautoScaling !== scalingSettings['settings.appearance_setting.auto']) ||\n\t\t\t(scalingSettings['settings.appearance_setting.auto'] === undefined && !autoScaling)\n\t\t) {\n\t\t\taddLocalStoreChange('settings.appearance_setting.auto', autoScaling);\n\t\t\tif (autoScaling) {\n\t\t\t\taddLocalStoreChange('settings.appearance_setting.scaling', undefined);\n\t\t\t}\n\t\t} else {\n\t\t\tcleanLocalStoreChange('settings.appearance_setting.auto');\n\t\t}\n\t}, [addLocalStoreChange, autoScaling, cleanLocalStoreChange, scalingSettings]);\n\n\tconst increaseScalingByStep = useCallback(() => {\n\t\tsetScalingValue((prevState) =>\n\t\t\tprevState < SCALING_OPTIONS.length - 1 ? prevState + 1 : prevState\n\t\t);\n\t}, []);\n\n\tconst decreaseScalingByStep = useCallback(() => {\n\t\tsetScalingValue((prevState) => (prevState > 0 ? prevState - 1 : prevState));\n\t}, []);\n\n\tconst toggleAutoScaling = useCallback(() => {\n\t\tsetAutoScaling((prevState) => !prevState);\n\t\tsetScalingValue(savedOptionIndex);\n\t}, [savedOptionIndex]);\n\n\tconst onChangeScalingValue = useCallback<NonNullable<SliderProps['onChange']>>(\n\t\t(ev, newValueIndex) => {\n\t\t\tsetScalingValue(newValueIndex);\n\t\t},\n\t\t[]\n\t);\n\n\tconst resetHandler = useCallback((): void => {\n\t\tsetScalingValue(savedOptionIndex);\n\t\tsetAutoScaling(scalingSettings['settings.appearance_setting.auto'] ?? true);\n\t}, [savedOptionIndex, scalingSettings]);\n\n\tuseReset(resetRef, resetHandler);\n\n\tconst exampleText = useMemo(\n\t\t() =>\n\t\t\tt(\n\t\t\t\t'settings.appearance.labels.choose_size_pangram',\n\t\t\t\t'The quick brown fox jumps over the lazy dog.'\n\t\t\t),\n\t\t[t]\n\t);\n\n\tconst exampleFontSize = useMemo<number>(\n\t\t() =>\n\t\t\t// Revert the percentage and then apply the new value to use the browser base font-size and not the html font-size rule\n\t\t\t// Explanation:\n\t\t\t// - reverting factor (factor to apply to current font to obtain the browser font size) = unsaved input value / local storage value\n\t\t\t// - new font size percentage = reverting factor * 100\n\t\t\t// The resulting value is the percentage to apply to current html font-size to obtain the same calculated value\n\t\t\t// as if the scalingValue was set in the html.\n\t\t\t// E.g.: html: 75%, scalingValue: 100 -> 1 rem is 12px (because of the 75%). In the browser the base font is set to 16px.\n\t\t\t// To make scalingValue 100 equals to 16px, we need to get the reverting factor (100 / 75 = 1.3333).\n\t\t\t// This is the factor required to have 16 starting from 12 (12*1.3333 ~= 16)\n\t\t\t// The percentage to apply to the example container is then 1.3333 * 100 = 133.33 (133.33%(75) ~= 100 ~= 16px)\n\t\t\t((scalingOptionValues[Math.round(scalingValue)] || 100) /\n\t\t\t\tscalingOptionValues[savedOptionIndex]) *\n\t\t\t100,\n\t\t[savedOptionIndex, scalingOptionValues, scalingValue]\n\t);\n\n\treturn (\n\t\t<Container\n\t\t\torientation={'vertical'}\n\t\t\tmainAlignment={'flex-start'}\n\t\t\tcrossAlignment={'flex-start'}\n\t\t\tgap={'1rem'}\n\t\t\theight={'fit'}\n\t\t\twidth={'fill'}\n\t\t>\n\t\t\t<Container\n\t\t\t\torientation={'vertical'}\n\t\t\t\tgap={'1rem'}\n\t\t\t\theight={'fit'}\n\t\t\t\twidth={'fit'}\n\t\t\t\tmainAlignment={'flex-start'}\n\t\t\t\tcrossAlignment={'flex-start'}\n\t\t\t\tmaxWidth={'100%'}\n\t\t\t>\n\t\t\t\t<Text size=\"small\" overflow={'break-word'}>\n\t\t\t\t\t{t(\n\t\t\t\t\t\t'settings.appearance.labels.choose_size_description',\n\t\t\t\t\t\t'Choose Type Size and Styles for Carbonio Environment'\n\t\t\t\t\t)}\n\t\t\t\t</Text>\n\t\t\t\t<ScalingSliderContainer\n\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\twidth=\"fill\"\n\t\t\t\t\theight=\"auto\"\n\t\t\t\t\tpadding={{ vertical: 'small', horizontal: 'large' }}\n\t\t\t\t\tgap={'0.5rem'}\n\t\t\t\t\tflexGrow={1}\n\t\t\t\t>\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\tlabel={t('settings.appearance.labels.decrease', 'Decrease', {\n\t\t\t\t\t\t\tcontext: scalingValue === 0 ? 'disabled' : ''\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Container width=\"fit\" height=\"fit\" minWidth={'fit-content'}>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={autoScaling || scalingValue === 0}\n\t\t\t\t\t\t\t\tlabel={t('settings.appearance.labels.a', 'A')}\n\t\t\t\t\t\t\t\ttype={'ghost'}\n\t\t\t\t\t\t\t\tsize={'extrasmall'}\n\t\t\t\t\t\t\t\tcolor={'text'}\n\t\t\t\t\t\t\t\tonClick={decreaseScalingByStep}\n\t\t\t\t\t\t\t\tminWidth={'fit-content'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Container>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t\t<Slider\n\t\t\t\t\t\tdisabled={autoScaling}\n\t\t\t\t\t\toptions={scalingOptionLabels}\n\t\t\t\t\t\tonChange={onChangeScalingValue}\n\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\tautoScaling && BASE_FONT_OPTION_INDEX >= 0 ? BASE_FONT_OPTION_INDEX : scalingValue\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\tlabel={t('settings.appearance.labels.increase', 'Increase', {\n\t\t\t\t\t\t\tcontext: scalingValue === SCALING_OPTIONS.length - 1 ? 'disabled' : ''\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Container width=\"fit\" height=\"fit\" minWidth={'fit-content'}>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={autoScaling || scalingValue === SCALING_OPTIONS.length - 1}\n\t\t\t\t\t\t\t\tlabel={t('settings.appearance.labels.a', 'A')}\n\t\t\t\t\t\t\t\ttype={'ghost'}\n\t\t\t\t\t\t\t\tsize={'extralarge'}\n\t\t\t\t\t\t\t\tonClick={increaseScalingByStep}\n\t\t\t\t\t\t\t\tcolor={'text'}\n\t\t\t\t\t\t\t\tminWidth={'fit-content'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Container>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t</ScalingSliderContainer>\n\t\t\t\t<Checkbox\n\t\t\t\t\tvalue={autoScaling}\n\t\t\t\t\tonClick={toggleAutoScaling}\n\t\t\t\t\tlabel={t(\n\t\t\t\t\t\t'settings.appearance.labels.choose_size_auto',\n\t\t\t\t\t\t'Automatically resize the text size depending on the device'\n\t\t\t\t\t)}\n\t\t\t\t\tsize={'small'}\n\t\t\t\t/>\n\t\t\t</Container>\n\t\t\t<ExampleContainer\n\t\t\t\tbackground={'gray5'}\n\t\t\t\tpadding={'large'}\n\t\t\t\tgap={'0.5rem'}\n\t\t\t\torientation={'vertical'}\n\t\t\t\tmainAlignment={'flex-start'}\n\t\t\t\tcrossAlignment={'flex-start'}\n\t\t\t\twidth={'fill'}\n\t\t\t\t$fontSize={exampleFontSize}\n\t\t\t>\n\t\t\t\t<ExampleText weight={'light'} overflow={'break-word'}>\n\t\t\t\t\t{exampleText}\n\t\t\t\t</ExampleText>\n\t\t\t\t<ExampleText weight={'regular'} overflow={'break-word'}>\n\t\t\t\t\t{exampleText}\n\t\t\t\t</ExampleText>\n\t\t\t\t<ExampleText weight={'bold'} overflow={'break-word'}>\n\t\t\t\t\t{exampleText}\n\t\t\t\t</ExampleText>\n\t\t\t</ExampleContainer>\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 */\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { Checkbox, Container, FormSubSection } from '@zextras/carbonio-design-system';\n\nimport { AccountSettings, AddMod } from '../../../../types';\nimport { getT } from '../../../store/i18n';\nimport { searchPrefsSubSection } from '../../general-settings-sub-sections';\nimport { useReset } from '../../hooks/use-reset';\nimport { SettingsSectionProps, upsertPrefOnUnsavedChanges } from '../utils';\n\ntype SearchSettingsViewProps = SettingsSectionProps & {\n\tsettings: AccountSettings;\n\taddMod: AddMod;\n};\n\nexport const SearchSettings = ({\n\tsettings,\n\taddMod,\n\tresetRef\n}: SearchSettingsViewProps): React.JSX.Element => {\n\tconst t = getT();\n\tconst [searchInSpamFolder, setSearchInSpamFolder] = useState<boolean>(\n\t\tsettings.prefs.zimbraPrefIncludeSpamInSearch === 'TRUE'\n\t);\n\tconst [searchInTrashFolder, setSearchInTrashFolder] = useState<boolean>(\n\t\tsettings.prefs.zimbraPrefIncludeTrashInSearch === 'TRUE'\n\t);\n\tconst [searchInSharedFolder, setSearchInSharedFolder] = useState<boolean>(\n\t\tsettings.prefs.zimbraPrefIncludeSharedItemsInSearch === 'TRUE'\n\t);\n\tconst setMode = useMemo(() => upsertPrefOnUnsavedChanges(addMod), [addMod]);\n\n\tconst init = useCallback(() => {\n\t\tsetSearchInSpamFolder(settings.prefs.zimbraPrefIncludeSpamInSearch === 'TRUE');\n\t\tsetSearchInTrashFolder(settings.prefs.zimbraPrefIncludeTrashInSearch === 'TRUE');\n\t\tsetSearchInSharedFolder(settings.prefs.zimbraPrefIncludeSharedItemsInSearch === 'TRUE');\n\t}, [\n\t\tsettings.prefs.zimbraPrefIncludeSharedItemsInSearch,\n\t\tsettings.prefs.zimbraPrefIncludeSpamInSearch,\n\t\tsettings.prefs.zimbraPrefIncludeTrashInSearch\n\t]);\n\n\tuseReset(resetRef, init);\n\n\tuseEffect(() => {\n\t\tinit();\n\t}, [init]);\n\n\tconst onClickSpam = useCallback(() => {\n\t\tsetSearchInSpamFolder((prevState) => {\n\t\t\tconst newValue = !prevState;\n\t\t\tsetMode('zimbraPrefIncludeSpamInSearch', newValue);\n\t\t\treturn newValue;\n\t\t});\n\t}, [setMode]);\n\n\tconst onClickTrash = useCallback(() => {\n\t\tsetSearchInTrashFolder((prevState) => {\n\t\t\tconst newValue = !prevState;\n\t\t\tsetMode('zimbraPrefIncludeTrashInSearch', newValue);\n\t\t\treturn newValue;\n\t\t});\n\t}, [setMode]);\n\n\tconst onClickShared = useCallback(() => {\n\t\tsetSearchInSharedFolder((prevState) => {\n\t\t\tconst newValue = !prevState;\n\t\t\tsetMode('zimbraPrefIncludeSharedItemsInSearch', newValue);\n\t\t\treturn newValue;\n\t\t});\n\t}, [setMode]);\n\n\tconst sectionTitle = useMemo(() => searchPrefsSubSection(t), [t]);\n\n\treturn (\n\t\t<FormSubSection\n\t\t\tlabel={sectionTitle.label}\n\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\twidth=\"50%\"\n\t\t\tid={sectionTitle.id}\n\t\t>\n\t\t\t<Container crossAlignment=\"baseline\" padding={{ all: 'small' }}>\n\t\t\t\t<Checkbox\n\t\t\t\t\tlabel={t(\n\t\t\t\t\t\t'settings.search_settings.labels.include_search_in_spam_folder',\n\t\t\t\t\t\t'Include Spam Folder in Searches'\n\t\t\t\t\t)}\n\t\t\t\t\tvalue={searchInSpamFolder}\n\t\t\t\t\tonClick={onClickSpam}\n\t\t\t\t/>\n\t\t\t\t<Checkbox\n\t\t\t\t\tlabel={t(\n\t\t\t\t\t\t'settings.search_settings.labels.include_search_in_trash_folder',\n\t\t\t\t\t\t'Include Trash Folder in Searches'\n\t\t\t\t\t)}\n\t\t\t\t\tvalue={searchInTrashFolder}\n\t\t\t\t\tonClick={onClickTrash}\n\t\t\t\t/>\n\t\t\t\t<Checkbox\n\t\t\t\t\tlabel={t(\n\t\t\t\t\t\t'settings.search_settings.labels.include_search_in_shared_folder',\n\t\t\t\t\t\t'Include Shared Folder in Searches'\n\t\t\t\t\t)}\n\t\t\t\t\tvalue={searchInSharedFolder}\n\t\t\t\t\tonClick={onClickShared}\n\t\t\t\t/>\n\t\t\t</Container>\n\t\t</FormSubSection>\n\t);\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, useMemo } from 'react';\n\nimport { Container, FormSubSection, Quota, Text, Tooltip } from '@zextras/carbonio-design-system';\n\nimport { useUserSettings } from '../../../store/account/hooks';\nimport { useAccountStore } from '../../../store/account/store';\nimport { getT } from '../../../store/i18n';\nimport { quotaSubSection } from '../../general-settings-sub-sections';\n\ninterface UserQuotaProps {\n\tmobileView: boolean;\n}\n\nconst UserQuota: FC<UserQuotaProps> = ({ mobileView }) => {\n\tconst t = getT();\n\n\tconst settings = useUserSettings();\n\tconst used = useAccountStore((s) => s.usedQuota);\n\tconst quota = useMemo(() => {\n\t\tconst userQuota = Number(settings?.attrs?.zimbraMailQuota);\n\t\tif (used && userQuota && userQuota > 0) {\n\t\t\treturn Math.round((used / userQuota) * 100);\n\t\t}\n\t\treturn -1;\n\t}, [settings?.attrs?.zimbraMailQuota, used]);\n\n\tconst filledQuota = useMemo(() => {\n\t\tif (quota === -1 || quota >= 100) {\n\t\t\treturn 100;\n\t\t}\n\t\treturn quota;\n\t}, [quota]);\n\n\tconst description = useMemo(() => {\n\t\tswitch (true) {\n\t\t\tcase !quota || quota < 0:\n\t\t\t\treturn t('user_quota.unlimited', 'You have unlimited space available');\n\t\t\tcase quota === 100:\n\t\t\t\treturn t('user_quota.space_full', 'It seems that all available space is full');\n\t\t\tdefault:\n\t\t\t\treturn t('user_quota.limited', {\n\t\t\t\t\tdefaultValue: 'You have filled {{quota}}% of the available space',\n\t\t\t\t\tquota\n\t\t\t\t});\n\t\t}\n\t}, [quota, t]);\n\n\tconst fillBackground = useMemo(() => {\n\t\tswitch (true) {\n\t\t\tcase quota >= 95:\n\t\t\t\treturn 'error';\n\t\t\tcase quota >= 90:\n\t\t\t\treturn 'warning';\n\t\t\tcase quota === -1:\n\t\t\t\treturn 'gray4';\n\t\t\tdefault:\n\t\t\t\treturn 'primary';\n\t\t}\n\t}, [quota]);\n\tconst sectionTitle = useMemo(() => quotaSubSection(t), [t]);\n\treturn mobileView ? (\n\t\t<Container width=\"fit\" padding={{ right: 'medium' }}>\n\t\t\t<Tooltip label={description} placement=\"bottom\">\n\t\t\t\t<Quota fill={filledQuota} fillBackground={fillBackground} />\n\t\t\t</Tooltip>\n\t\t</Container>\n\t) : (\n\t\t<FormSubSection\n\t\t\tlabel={sectionTitle.label}\n\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\twidth=\"50%\"\n\t\t\tid={sectionTitle.id}\n\t\t>\n\t\t\t<Container width=\"fill\" padding={{ vertical: 'medium' }}>\n\t\t\t\t<Container\n\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\t\tpadding={{ bottom: 'medium' }}\n\t\t\t\t>\n\t\t\t\t\t<Text>{description}</Text>\n\t\t\t\t</Container>\n\t\t\t\t<Quota fill={filledQuota} fillBackground={fillBackground} />\n\t\t\t</Container>\n\t\t</FormSubSection>\n\t);\n};\n\nexport default UserQuota;\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useEffect, useMemo } from 'react';\n\nimport {\n\tBreadcrumbs,\n\tButton,\n\tContainer,\n\ttype Crumb,\n\tDivider,\n\tPadding,\n\tRow,\n\tText\n} from '@zextras/carbonio-design-system';\nimport { useHistory, useParams } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { getT } from '../../store/i18n';\nimport { RouteLeavingGuard, RouteLeavingGuardProps } from '../../ui-extras/nav-guard';\n\nconst CustomBreadcrumbs = styled(Breadcrumbs)`\n\t.breadcrumbCrumb {\n\t\tcursor: default;\n\t}\n`;\n\nexport type SettingsHeaderProps = {\n\ttitle: string;\n\tonSave: RouteLeavingGuardProps['onSave'];\n\tonCancel: () => void;\n\tisDirty: boolean;\n};\n\nconst SettingsHeader = ({\n\tonSave,\n\tonCancel,\n\tisDirty,\n\ttitle\n}: SettingsHeaderProps): React.JSX.Element => {\n\tconst t = getT();\n\tconst history = useHistory();\n\tconst params = useParams();\n\tconst crumbs = useMemo(\n\t\t(): Crumb[] => [\n\t\t\t{\n\t\t\t\tid: 'settings',\n\t\t\t\tlabel: t('settings.app', 'Settings'),\n\t\t\t\tclassName: 'breadcrumbCrumb'\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'general',\n\t\t\t\tlabel: title,\n\t\t\t\tclassName: 'breadcrumbCrumb'\n\t\t\t}\n\t\t],\n\t\t[t, title]\n\t);\n\n\tconst search: string | undefined = history.location?.search;\n\n\tuseEffect(() => {\n\t\tif (search) {\n\t\t\t// TODO: why not using anchor links instead of js?\n\t\t\tsetTimeout(\n\t\t\t\t() =>\n\t\t\t\t\tdocument\n\t\t\t\t\t\t.querySelector(`#${history.location.search}`.replace('?section=', ''))\n\t\t\t\t\t\t?.scrollIntoView(),\n\t\t\t\t1\n\t\t\t);\n\t\t}\n\t}, [history, history.location, history.location.search, search, params]);\n\treturn (\n\t\t<>\n\t\t\t<RouteLeavingGuard when={isDirty} onSave={onSave}>\n\t\t\t\t<Text>\n\t\t\t\t\t{t(\n\t\t\t\t\t\t'label.unsaved_changes_line1',\n\t\t\t\t\t\t'Are you sure you want to leave this page without saving?'\n\t\t\t\t\t)}\n\t\t\t\t</Text>\n\t\t\t\t<Text>{t('label.unsaved_changes_line2', 'All your unsaved changes will be lost')}</Text>\n\t\t\t</RouteLeavingGuard>\n\t\t\t<Container\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tmainAlignment=\"space-around\"\n\t\t\t\tbackground={'gray5'}\n\t\t\t\theight=\"fit\"\n\t\t\t>\n\t\t\t\t<Row orientation=\"horizontal\" width=\"100%\">\n\t\t\t\t\t<Row\n\t\t\t\t\t\tpadding={{ all: 'small' }}\n\t\t\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\t\t\twidth=\"50%\"\n\t\t\t\t\t\tcrossAlignment=\"flex-start\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<CustomBreadcrumbs crumbs={crumbs} />\n\t\t\t\t\t</Row>\n\t\t\t\t\t<Row\n\t\t\t\t\t\tpadding={{ all: 'small' }}\n\t\t\t\t\t\twidth=\"50%\"\n\t\t\t\t\t\tmainAlignment=\"flex-end\"\n\t\t\t\t\t\tcrossAlignment=\"flex-end\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={t('label.discard_changes', 'DISCARD CHANGES')}\n\t\t\t\t\t\t\t\tonClick={onCancel}\n\t\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\t\t\tdisabled={!isDirty}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Padding>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tlabel={t('label.save', 'Save')}\n\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\tonClick={onSave}\n\t\t\t\t\t\t\tdisabled={!isDirty}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Row>\n\t\t\t\t</Row>\n\t\t\t</Container>\n\t\t\t<Divider />\n\t\t</>\n\t);\n};\n\nexport default SettingsHeader;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React from 'react';\n\nimport type { TFunction } from 'i18next';\nimport { cloneDeep, filter, findIndex, isArray, isBoolean, reduce, uniq } from 'lodash';\nimport moment, { Moment } from 'moment';\n\nimport {\n\tAccount,\n\tAccountSettings,\n\tAddMod,\n\tBooleanString,\n\tGeneralizedTime,\n\tIdentity,\n\tIdentityAttrs,\n\tPrefsMods\n} from '../../../types';\nimport { BASE_FONT_SIZE, SCALING_LIMIT, SCALING_OPTIONS } from '../../constants';\nimport { LocaleDescriptor, SUPPORTED_LOCALES } from '../../constants/locales';\n\nexport const GEN_TIME_FORMAT = 'YYYYMMDDHHmmss[Z]';\n\nfunction getGenTimeMoment(date: Date | string | Moment): Moment {\n\treturn moment.utc(date, GEN_TIME_FORMAT);\n}\n\nexport function dateToGenTime(date: Date | Moment): GeneralizedTime {\n\treturn getGenTimeMoment(date).format(GEN_TIME_FORMAT) as GeneralizedTime;\n}\n\nexport function genTimeToDate(genTime: string): Date {\n\treturn getGenTimeMoment(genTime).local().toDate();\n}\n\nexport const startOfDay = (date: Date): Date => new Date(new Date(date).setHours(0, 0, 0, 0));\n\nexport const endOfDay = (date: Date): Date => new Date(new Date(date).setHours(23, 59, 59, 0));\n\nexport type LocaleDescriptorWithLabels = LocaleDescriptor & {\n\tid: string;\n\tlabel: string;\n\tlocalName: string;\n};\n\nexport const localeList = (t: TFunction): Array<LocaleDescriptorWithLabels> => [\n\t{\n\t\tid: 'zh_CN',\n\t\t...SUPPORTED_LOCALES.zh_CN,\n\t\tlocalName: t('locale.chinese_china', 'Chinese (China)'),\n\t\tlabel: t('locale.label_chinese', {\n\t\t\tvalue: SUPPORTED_LOCALES.zh_CN.name,\n\t\t\tdefaultValue: 'Chinese (China) - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'nl',\n\t\t...SUPPORTED_LOCALES.nl,\n\t\tlocalName: t('locale.dutch', 'Dutch'),\n\t\tlabel: t('locale.label_dutch', {\n\t\t\tvalue: SUPPORTED_LOCALES.nl.name,\n\t\t\tdefaultValue: 'Dutch - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'en',\n\t\t...SUPPORTED_LOCALES.en,\n\t\tlocalName: t('locale.English', 'English'),\n\t\tlabel: t('locale.label_english', {\n\t\t\tvalue: SUPPORTED_LOCALES.en.name,\n\t\t\tdefaultValue: 'English - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'de',\n\t\t...SUPPORTED_LOCALES.de,\n\t\tlocalName: t('locale.german', 'German'),\n\t\tlabel: t('locale.label_german', {\n\t\t\tvalue: SUPPORTED_LOCALES.de.name,\n\t\t\tdefaultValue: 'German - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'hi',\n\t\t...SUPPORTED_LOCALES.hi,\n\t\tlocalName: t('locale.hindi', 'Hindi'),\n\t\tlabel: t('locale.label_hindi', {\n\t\t\tvalue: SUPPORTED_LOCALES.hi.name,\n\t\t\tdefaultValue: 'Hindi - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'it',\n\t\t...SUPPORTED_LOCALES.it,\n\t\tlocalName: t('locale.italian', 'Italian'),\n\t\tlabel: t('locale.label_italian', {\n\t\t\tvalue: SUPPORTED_LOCALES.it.name,\n\t\t\tdefaultValue: 'Italian - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'ja',\n\t\t...SUPPORTED_LOCALES.ja,\n\t\tlocalName: t('locale.japanese', 'Japanese'),\n\t\tlabel: t('locale.label_japanese', {\n\t\t\tvalue: SUPPORTED_LOCALES.ja.name,\n\t\t\tdefaultValue: 'Japanese - {{value}}'\n\t\t})\n\t},\n\n\t{\n\t\tid: 'pt',\n\t\t...SUPPORTED_LOCALES.pt,\n\t\tlocalName: t('locale.portuguese', 'Portuguese'),\n\t\tlabel: t('locale.label_portuguese', {\n\t\t\tvalue: SUPPORTED_LOCALES.pt.name,\n\t\t\tdefaultValue: 'Portuguese - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'pl',\n\t\t...SUPPORTED_LOCALES.pl,\n\t\tlocalName: t('locale.polish', 'Polish'),\n\t\tlabel: t('locale.label_polish', {\n\t\t\tvalue: SUPPORTED_LOCALES.pl.name,\n\t\t\tdefaultValue: 'Polish - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'pt_BR',\n\t\t...SUPPORTED_LOCALES.pt_BR,\n\t\tlocalName: t('locale.portuguese_brazil', 'Portuguese (Brazil)'),\n\t\tlabel: t('locale.label_portuguese_brazil', {\n\t\t\tvalue: SUPPORTED_LOCALES.pt_BR.name,\n\t\t\tdefaultValue: 'Portuguese - {{value}}'\n\t\t})\n\t},\n\n\t{\n\t\tid: 'ro',\n\t\t...SUPPORTED_LOCALES.ro,\n\t\tlocalName: t('locale.romanian', 'Romanian'),\n\t\tlabel: t('locale.label_romanian', {\n\t\t\tvalue: SUPPORTED_LOCALES.ro.name,\n\t\t\tdefaultValue: 'Romanian - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'ru',\n\t\t...SUPPORTED_LOCALES.ru,\n\t\tlocalName: t('locale.russian', 'Russian'),\n\t\tlabel: t('locale.label_russian', {\n\t\t\tvalue: SUPPORTED_LOCALES.ru.name,\n\t\t\tdefaultValue: 'Russian - {{value}}'\n\t\t})\n\t},\n\n\t{\n\t\tid: 'es',\n\t\t...SUPPORTED_LOCALES.es,\n\t\tlocalName: t('locale.spanish', 'Spanish'),\n\t\tlabel: t('locale.label_spanish', {\n\t\t\tvalue: SUPPORTED_LOCALES.es.name,\n\t\t\tdefaultValue: 'Spanish - {{value}}'\n\t\t})\n\t},\n\n\t{\n\t\tid: 'th',\n\t\t...SUPPORTED_LOCALES.th,\n\t\tlocalName: t('locale.thai', 'Thai'),\n\t\tlabel: t('locale.label_thai', {\n\t\t\tvalue: SUPPORTED_LOCALES.th.name,\n\t\t\tdefaultValue: 'Thai - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'tr',\n\t\t...SUPPORTED_LOCALES.tr,\n\t\tlocalName: t('locale.turkish', 'Turkish'),\n\t\tlabel: t('locale.label_turkish', {\n\t\t\tvalue: SUPPORTED_LOCALES.tr.name,\n\t\t\tdefaultValue: 'Turkish - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'fr',\n\t\t...SUPPORTED_LOCALES.fr,\n\t\tlocalName: t('locale.french', 'French'),\n\t\tlabel: t('locale.label_french', {\n\t\t\tvalue: SUPPORTED_LOCALES.fr.name,\n\t\t\tdefaultValue: 'French - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'vi',\n\t\t...SUPPORTED_LOCALES.vi,\n\t\tlocalName: t('locale.vietnamese', 'Vietnamese'),\n\t\tlabel: t('locale.label_vietnamese', {\n\t\t\tvalue: SUPPORTED_LOCALES.vi.name,\n\t\t\tdefaultValue: 'Vietnamese - {{value}}'\n\t\t})\n\t}\n];\n// TODO: For future languages\n// export const localeList = (t: TFunction): any => [\n// \t{\n// \t\tid: 'ar',\n// \t\tname: 'العربية',\n// \t\tlocalName: t('locale.arabic', 'Arabic'),\n// \t\tlabel: t('locale.label_arabic', { value: 'لعربية', defaultValue: 'Arabic - {{value}}' }),\n// \t\tvalue: 'ar'\n// \t},\n// \t{\n// \t\tid: 'eu',\n// \t\tname: 'Euskara',\n// \t\tlocalName: t('locale.basque', 'Basque'),\n// \t\tlabel: t('locale.label_basque', { value: 'Euskara', defaultValue: 'Basque - {{value}}' }),\n// \t\tvalue: 'eu'\n// \t},\n// \t{\n// \t\tid: 'bg',\n// \t\tname: 'български',\n// \t\tlocalName: t('locale.bulgarian', 'Bulgarian'),\n// \t\tlabel: t('locale.label_bulgarian', {\n// \t\t\tvalue: 'български',\n// \t\t\tdefaultValue: 'Bulgarian - {{value}}'\n// \t\t}),\n// \t\tvalue: 'bg'\n// \t},\n// \t{\n// \t\tid: 'ca',\n// \t\tname: 'català',\n// \t\tlocalName: t('locale.catalan', 'Catalan'),\n// \t\tlabel: 'Catalan - català',\n// \t\tvalue: 'ca'\n// \t},\n// \t{\n// \t\tid: 'zh',\n// \t\tname: '中文',\n// \t\tlocalName: t('locale.chinese', 'Chinese'),\n// \t\tlabel: 'Chinese - 中文',\n// \t\tvalue: 'zh'\n// \t},\n// \t{\n// \t\tid: 'zh_CN',\n// \t\tname: '中文 (中国)',\n// \t\tlocalName: t('locale.chinese_china', 'Chinese (China)'),\n// \t\tlabel: 'Chinese (China) - 中文 (中国)',\n// \t\tvalue: 'zh_CN'\n// \t},\n// \t{\n// \t\tid: 'zh_HK',\n// \t\tname: '中文 (香港)',\n// \t\tlocalName: t('locale.chinese_hong_kong', 'Chinese (Hong Kong SAR China)'),\n// \t\tlabel: 'Chinese (Hong Kong SAR China) - 中文 (香港)',\n// \t\tvalue: 'zh_HK'\n// \t},\n// \t{\n// \t\tid: 'zh_TW',\n// \t\tname: '中文 (台灣)',\n// \t\tlocalName: t('locale.chinese_taiwan', 'Chinese (Taiwan)'),\n// \t\tlabel: 'Chinese (Taiwan) - 中文 (台灣)',\n// \t\tvalue: 'zh_TW'\n// \t},\n// \t{\n// \t\tid: 'hr',\n// \t\tname: 'hrvatski',\n// \t\tlocalName: t('locale.croatian', 'Croatian'),\n// \t\tlabel: 'Croatian - hrvatski',\n// \t\tvalue: 'hr'\n// \t},\n// \t{\n// \t\tid: 'da',\n// \t\tname: 'Dansk',\n// \t\tlocalName: t('locale.danish', 'Danish'),\n// \t\tlabel: 'Danish - Dansk',\n// \t\tvalue: 'da'\n// \t},\n\n// \t{\n// \t\tid: 'en_AU',\n// \t\tname: 'English (Australia)',\n// \t\tlocalName: t('locale.english_australia', 'English (Australia)'),\n// \t\tlabel: 'English (Australia) - English (Australia)',\n// \t\tvalue: 'en_AU'\n// \t},\n// \t{\n// \t\tid: 'en_GB',\n// \t\tname: 'English (United Kingdom)',\n// \t\tlocalName: t('locale.english_united_kingdom', 'English (United Kingdom)'),\n// \t\tlabel: 'English (United Kingdom) - English (United Kingdom)',\n// \t\tvalue: 'en_GB'\n// \t},\n// \t{\n// \t\tid: 'en_US',\n// \t\tname: 'English (United States)',\n// \t\tlocalName: t('locale.english_united_states', 'English (United States)'),\n// \t\tlabel: 'English (United States) - English (United States)',\n// \t\tvalue: 'en_US'\n// \t},\n// \t{\n// \t\tid: 'fr',\n// \t\tname: 'français',\n// \t\tlocalName: t('locale.french', 'French'),\n// \t\tlabel: 'French - français',\n// \t\tvalue: 'fr'\n// \t},\n// \t{\n// \t\tid: 'fr_CA',\n// \t\tname: 'français (Canada)',\n// \t\tlocalName: t('locale.french_canada', 'French (Canada)'),\n// \t\tlabel: 'French (Canada) - français (Canada)',\n// \t\tvalue: 'fr_CA'\n// \t},\n// \t{\n// \t\tid: 'fr_FR',\n// \t\tname: 'français (France)',\n// \t\tlocalName: t('locale.french_france', 'French (France)'),\n// \t\tlabel: 'French (France) - français (France)',\n// \t\tvalue: 'fr_FR'\n// \t},\n\n// \t{\n// \t\tid: 'iw',\n// \t\tname: 'עברית',\n// \t\tlocalName: t('locale.hebrew', 'Hebrew'),\n// \t\tlabel: 'Hebrew - עברית',\n// \t\tvalue: 'iw'\n// \t},\n\n// \t{\n// \t\tid: 'hu',\n// \t\tname: 'magyar',\n// \t\tlocalName: t('locale.hungarian', 'Hungarian'),\n// \t\tlabel: 'Hungarian - magyar',\n// \t\tvalue: 'hu'\n// \t},\n// \t{\n// \t\tid: 'in',\n// \t\tname: 'Bahasa Indonesia',\n// \t\tlocalName: t('locale.indonesian', 'Indonesian'),\n// \t\tlabel: 'Indonesian - Bahasa Indonesia',\n// \t\tvalue: 'in'\n// \t},\n\n// \t{\n// \t\tid: 'ko',\n// \t\tname: '한국어',\n// \t\tlocalName: t('locale.korean', 'Korean'),\n// \t\tlabel: 'Korean - 한국어',\n// \t\tvalue: 'ko'\n// \t},\n// \t{\n// \t\tid: 'lo',\n// eslint-disable-next-line no-irregular-whitespace\n// \t\tname: 'ພາສາລາວ',\n// \t\tlocalName: t('locale.lao', 'Lao'),\n// eslint-disable-next-line no-irregular-whitespace\n// \t\tlabel: 'Lao - ພາສາລາວ',\n// \t\tvalue: 'lo'\n// \t},\n// \t{\n// \t\tid: 'ms',\n// \t\tname: 'Bahasa Melayu',\n// \t\tlocalName: t('locale.malay', 'Malay'),\n// \t\tlabel: 'Malay - Bahasa Melayu',\n// \t\tvalue: 'ms'\n// \t},\n// \t{\n// \t\tid: 'no',\n// \t\tname: 'norsk',\n// \t\tlocalName: t('locale.norwegian', 'Norwegian'),\n// \t\tlabel: 'Norwegian - norsk',\n// \t\tvalue: 'no'\n// \t},\n\n// \t{\n// \t\tid: 'pt_PT',\n// \t\tname: 'português (Portugal)',\n// \t\tlocalName: t('locale.potuguese_portugal', 'Portuguese (Portugal)'),\n// \t\tlabel: 'Portuguese (Portugal) - português (Portugal)',\n// \t\tvalue: 'pt_PT'\n// \t},\n\n// \t{\n// \t\tid: 'sl',\n// \t\tname: 'Slovenščina',\n// \t\tlocalName: t('locale.slovenian', 'Slovenian'),\n// \t\tlabel: 'Slovenian - Slovenščina',\n// \t\tvalue: 'sl'\n// \t},\n\n// \t{\n// \t\tid: 'sv',\n// \t\tname: 'svenska',\n// \t\tlocalName: t('locale.swedish', 'Swedish'),\n// \t\tlabel: 'Swedish - svenska',\n// \t\tvalue: 'sv'\n// \t},\n// \t{\n// \t\tid: 'ta',\n// \t\tname: 'தமிழ்',\n// \t\tlocalName: t('locale.tamil', 'Tamil'),\n// \t\tlabel: 'Tamil - தமிழ்',\n// \t\tvalue: 'ta'\n// \t},\n\n// \t{\n// \t\tid: 'uk',\n// \t\tname: 'українська',\n// \t\tlocalName: t('locale.ukrainian', 'Ukrainian'),\n// \t\tlabel: 'Ukrainian - українська',\n// \t\tvalue: 'uk'\n// \t},\n\n// ];\n\nexport type TimeZoneDescriptor = {\n\tvalue: string;\n\tlabel: string;\n\toffSet?: string;\n};\n\nexport const timeZoneList = (t: TFunction): Array<TimeZoneDescriptor> => [\n\t{\n\t\tvalue: 'Etc/GMT+12',\n\t\tlabel: t('timezone.etc_gmt+12', { value: 'GMT -12:00', defaultValue: '{{value}} Dateline' })\n\t},\n\t{\n\t\tvalue: 'Pacific/Midway',\n\t\tlabel: t('timezone.pacific_midway', { value: 'GMT -11:00', defaultValue: '{{value}} Samoa' })\n\t},\n\t{\n\t\tvalue: 'America/Adak',\n\t\tlabel: t('timezone.america_adak', { value: 'GMT -10:00', defaultValue: '{{value}} Adak' })\n\t},\n\t{\n\t\tvalue: 'Pacific/Honolulu',\n\t\tlabel: t('timezone.pacific_honolulu', { value: 'GMT -10:00', defaultValue: '{{value}} Hawaii' })\n\t},\n\t{\n\t\tvalue: 'Pacific/Marquesas',\n\t\tlabel: t('timezone.pacific_marquesas', {\n\t\t\tvalue: 'GMT -09:30',\n\t\t\tdefaultValue: '{{value}} Marquesas'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Anchorage',\n\t\tlabel: t('timezone.america_anchorage', {\n\t\t\tvalue: 'GMT -09:00',\n\t\t\tdefaultValue: '{{value}} Alaska'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Los_Angeles',\n\t\tlabel: t('timezone.america_los_angeles', {\n\t\t\tvalue: 'GMT -08:00',\n\t\t\tdefaultValue: '{{value}} US/Canada Pacific'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Tijuana',\n\t\tlabel: t('timezone.america_tijuana', {\n\t\t\tvalue: 'GMT -08:00',\n\t\t\tdefaultValue: '{{value}} Baja California'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Chihuahua',\n\t\tlabel: t('timezone.america_chihuahua', {\n\t\t\tvalue: 'GMT -07:00',\n\t\t\tdefaultValue: '{{value}} Chihuahua, La Paz, Mazatlan'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Denver',\n\t\tlabel: t('timezone.america_denver', {\n\t\t\tvalue: 'GMT -07:00',\n\t\t\tdefaultValue: '{{value}} US/Canada Mountain'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Fort_Nelson',\n\t\tlabel: t('timezone.america_fort_nelson', {\n\t\t\tvalue: 'GMT -07:00',\n\t\t\tdefaultValue: '{{value}} Fort Nelson'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Phoenix',\n\t\tlabel: t('timezone.america_phoenix', { value: 'GMT -07:00', defaultValue: '{{value}} Arizona' })\n\t},\n\t{\n\t\tvalue: 'America/Whitehorse',\n\t\tlabel: t('timezone.america_whitehorse', {\n\t\t\tvalue: 'GMT -07:00',\n\t\t\tdefaultValue: '{{value}} Yukon'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Chicago',\n\t\tlabel: t('timezone.america_chicago', {\n\t\t\tvalue: 'GMT -06:00',\n\t\t\tdefaultValue: '{{value}} US/Canada Central'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Guatemala',\n\t\tlabel: t('timezone.america_guatemala', {\n\t\t\tvalue: 'GMT -06:00',\n\t\t\tdefaultValue: '{{value}} Central America'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Mexico_City',\n\t\tlabel: t('timezone.america_mexico_city', {\n\t\t\tvalue: 'GMT -06:00',\n\t\t\tdefaultValue: '{{value}} Guadalajara, Mexico City, Monterrey'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Regina',\n\t\tlabel: t('timezone.america_regina', {\n\t\t\tvalue: 'GMT -06:00',\n\t\t\tdefaultValue: '{{value}} Saskatchewan'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Pacific/Easter',\n\t\tlabel: t('timezone.pacific_easter', { value: 'GMT -06:00', defaultValue: '{{value}} Easter' })\n\t},\n\t{\n\t\tvalue: 'America/Bogota',\n\t\tlabel: t('timezone.america_bogota', { value: 'GMT -05:00', defaultValue: '{{value}} Colombia' })\n\t},\n\t{\n\t\tvalue: 'America/Cancun',\n\t\tlabel: t('timezone.america_cancun', {\n\t\t\tvalue: 'GMT -05:00',\n\t\t\tdefaultValue: '{{value}} Cancun, Chetumal'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Grand_Turk',\n\t\tlabel: t('timezone.america_grand_turk', {\n\t\t\tvalue: 'GMT -05:00',\n\t\t\tdefaultValue: '{{value}} Turks and Caicos Islands'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Havana',\n\t\tlabel: t('timezone.america_havana', { value: 'GMT -05:00', defaultValue: '{{value}} Havana' })\n\t},\n\t{\n\t\tvalue: 'America/Indiana/Indianapolis',\n\t\tlabel: t('timezone.america_indiana_indianapolis', {\n\t\t\tvalue: 'GMT -05:00',\n\t\t\tdefaultValue: '{{value}} Indiana (East)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/New_York',\n\t\tlabel: t('timezone.america_new_york', {\n\t\t\tvalue: 'GMT -05:00',\n\t\t\tdefaultValue: '{{value}} US/Canada Eastern'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Port-au-Prince',\n\t\tlabel: t('timezone.america_port-au-prince', {\n\t\t\tvalue: 'GMT -05:00',\n\t\t\tdefaultValue: '{{value}} Port-au-Prince'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Asuncion',\n\t\tlabel: t('timezone.america_asuncion', {\n\t\t\tvalue: 'GMT -04:00',\n\t\t\tdefaultValue: '{{value}} Asuncion'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Caracas',\n\t\tlabel: t('timezone.america_caracas', { value: 'GMT -04:00', defaultValue: '{{value}} Caracas' })\n\t},\n\t{\n\t\tvalue: 'America/Cuiaba',\n\t\tlabel: t('timezone.america_cuiaba', { value: 'GMT -04:00', defaultValue: '{{value}} Cuiaba' })\n\t},\n\t{\n\t\tvalue: 'America/Guyana',\n\t\tlabel: t('timezone.america_guyana', {\n\t\t\tvalue: 'GMT -04:00',\n\t\t\tdefaultValue: '{{value}} Georgetown, La Paz, Manaus, San Juan'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Halifax',\n\t\tlabel: t('timezone.america_halifax', {\n\t\t\tvalue: 'GMT -04:00',\n\t\t\tdefaultValue: '{{value}} Atlantic Time (Canada)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Santiago',\n\t\tlabel: t('timezone.america_santiago', {\n\t\t\tvalue: 'GMT -04:00',\n\t\t\tdefaultValue: '{{value}} Pacific South America'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/St_Johns',\n\t\tlabel: t('timezone.america_st_johns', {\n\t\t\tvalue: 'GMT -03:30',\n\t\t\tdefaultValue: '{{value}} Newfoundland'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Araguaina',\n\t\tlabel: t('timezone.america_araguaina', {\n\t\t\tvalue: 'GMT -03:00',\n\t\t\tdefaultValue: '{{value}} Araguaina'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Argentina/Buenos_Aires',\n\t\tlabel: t('timezone.america_argentina_buenos_aires', {\n\t\t\tvalue: 'GMT -03:00',\n\t\t\tdefaultValue: '{{value}} Argentina'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Bahia',\n\t\tlabel: t('timezone.america_bahia', { value: 'GMT -03:00', defaultValue: '{{value}} Salvador' })\n\t},\n\t{\n\t\tvalue: 'America/Cayenne',\n\t\tlabel: t('timezone.america_cayenne', {\n\t\t\tvalue: 'GMT -03:00',\n\t\t\tdefaultValue: '{{value}} Cayenne, Fortaleza'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Miquelon',\n\t\tlabel: t('timezone.america_miquelon', {\n\t\t\tvalue: 'GMT -03:00',\n\t\t\tdefaultValue: '{{value}} Miquelon'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Montevideo',\n\t\tlabel: t('timezone.america_montevideo', {\n\t\t\tvalue: 'GMT -03:00',\n\t\t\tdefaultValue: '{{value}} Montevideo'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Punta_Arenas',\n\t\tlabel: t('timezone.america_punta_arenas', {\n\t\t\tvalue: 'GMT -03:00',\n\t\t\tdefaultValue: '{{value}} Punta_Arenas'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Sao_Paulo',\n\t\tlabel: t('timezone.america_sao_paulo', {\n\t\t\tvalue: 'GMT -03:00',\n\t\t\tdefaultValue: '{{value}} Brasilia'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Atlantic/South_Georgia',\n\t\tlabel: t('timezone.atlantic_south_georgia', {\n\t\t\tvalue: 'GMT -02:00',\n\t\t\tdefaultValue: '{{value}} Mid-Atlantic'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Atlantic/Azores',\n\t\tlabel: t('timezone.atlantic_azores', { value: 'GMT -01:00', defaultValue: '{{value}} Azores' })\n\t},\n\t{\n\t\tvalue: 'Atlantic/Cape_Verde',\n\t\tlabel: t('timezone.atlantic_cape_verde', {\n\t\t\tvalue: 'GMT -01:00',\n\t\t\tdefaultValue: '{{value}} Cape Verde Is.'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Africa/Monrovia',\n\t\tlabel: t('timezone.africa_monrovia', {\n\t\t\tvalue: 'GMT +00:00',\n\t\t\tdefaultValue: '{{value}} Monrovia'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Africa/Sao_Tome',\n\t\tlabel: t('timezone.africa_sao_tome', {\n\t\t\tvalue: 'GMT +00:00',\n\t\t\tdefaultValue: '{{value}} Sao Tome'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/London',\n\t\tlabel: t('timezone.europe_london', {\n\t\t\tvalue: 'GMT +00:00',\n\t\t\tdefaultValue: '{{value}} Britain, Ireland, Portugal'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'UTC',\n\t\tlabel: t('timezone.utc', {\n\t\t\tvalue: 'GMT/UTC',\n\t\t\tdefaultValue: '{{value}} Coordinated Universal Time'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Africa/Algiers',\n\t\tlabel: t('timezone.africa_algiers', {\n\t\t\tvalue: 'GMT +01:00',\n\t\t\tdefaultValue: '{{value}} West Central Africa'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Africa/Casablanca',\n\t\tlabel: t('timezone.africa_casablanca', {\n\t\t\tvalue: 'GMT +01:00',\n\t\t\tdefaultValue: '{{value}} Casablanca'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Belgrade',\n\t\tlabel: t('timezone.europe_belgrade', {\n\t\t\tvalue: 'GMT +01:00',\n\t\t\tdefaultValue: '{{value}} Belgrade, Bratislava, Budapest, Ljubljana, Prague'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Berlin',\n\t\tlabel: t('timezone.europe_berlin', {\n\t\t\tvalue: 'GMT +01:00',\n\t\t\tdefaultValue: '{{value}} Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Brussels',\n\t\tlabel: t('timezone.europe_brussels', {\n\t\t\tvalue: 'GMT +01:00',\n\t\t\tdefaultValue: '{{value}} Brussels, Copenhagen, Madrid, Paris'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Warsaw',\n\t\tlabel: t('timezone.europe_warsaw', {\n\t\t\tvalue: 'GMT +01:00',\n\t\t\tdefaultValue: '{{value}} Sarajevo, Skopje, Warsaw, Zagreb'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Africa/Cairo',\n\t\tlabel: t('timezone.africa_cairo', { value: 'GMT +02:00', defaultValue: '{{value}} Egypt' })\n\t},\n\t{\n\t\tvalue: 'Africa/Harare',\n\t\tlabel: t('timezone.africa_harare', {\n\t\t\tvalue: 'GMT +02:00',\n\t\t\tdefaultValue: '{{value}} Harare, Pretoria'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Africa/Juba',\n\t\tlabel: t('timezone.africa_juba', { value: 'GMT +02:00', defaultValue: '{{value}} Juba' })\n\t},\n\t{\n\t\tvalue: 'Africa/Khartoum',\n\t\tlabel: t('timezone.africa_khartoum', {\n\t\t\tvalue: 'GMT +02:00',\n\t\t\tdefaultValue: '{{value}} Khartoum'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Africa/Tripoli',\n\t\tlabel: t('timezone.africa_tripoli', { value: 'GMT +02:00', defaultValue: '{{value}} Tripoli' })\n\t},\n\t{\n\t\tvalue: 'Africa/Windhoek',\n\t\tlabel: t('timezone.africa_windhoek', { value: 'GMT +02:00', defaultValue: '{{value}} Namibia' })\n\t},\n\t{\n\t\tvalue: 'Asia/Amman',\n\t\tlabel: t('timezone.asia_amman', { value: 'GMT +02:00', defaultValue: '{{value}} Jordan' })\n\t},\n\t{\n\t\tvalue: 'Asia/Beirut',\n\t\tlabel: t('timezone.asia_beirut', { value: 'GMT +02:00', defaultValue: '{{value}} Beirut' })\n\t},\n\t{\n\t\tvalue: 'Asia/Damascus',\n\t\tlabel: t('timezone.asia_damascus', { value: 'GMT +02:00', defaultValue: '{{value}} Damascus' })\n\t},\n\t{\n\t\tvalue: 'Asia/Gaza',\n\t\tlabel: t('timezone.asia_gaza', { value: 'GMT +02:00', defaultValue: '{{value}} Gaza' })\n\t},\n\t{\n\t\tvalue: 'Asia/Jerusalem',\n\t\tlabel: t('timezone.asia_jerusalem', {\n\t\t\tvalue: 'GMT +02:00',\n\t\t\tdefaultValue: '{{value}} Jerusalem'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Athens',\n\t\tlabel: t('timezone.europe_athens', {\n\t\t\tvalue: 'GMT +02:00',\n\t\t\tdefaultValue: '{{value}} Athens, Beirut, Bucharest, Istanbul'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Bucharest',\n\t\tlabel: t('timezone.europe_bucharest', {\n\t\t\tvalue: 'GMT +02:00',\n\t\t\tdefaultValue: '{{value}} Bucharest'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Chisinau',\n\t\tlabel: t('timezone.europe_chisinau', {\n\t\t\tvalue: 'GMT +02:00',\n\t\t\tdefaultValue: '{{value}} Chisinau'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Helsinki',\n\t\tlabel: t('timezone.europe_helsinki', {\n\t\t\tvalue: 'GMT +02:00',\n\t\t\tdefaultValue: '{{value}} Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Kaliningrad',\n\t\tlabel: t('timezone.europe_kaliningrad', {\n\t\t\tvalue: 'GMT +02:00',\n\t\t\tdefaultValue: '{{value}} Kaliningrad (RTZ 1)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Africa/Nairobi',\n\t\tlabel: t('timezone.africa_nairobi', { value: 'GMT +03:00', defaultValue: '{{value}} Nairobi' })\n\t},\n\t{\n\t\tvalue: 'Asia/Baghdad',\n\t\tlabel: t('timezone.asia_baghdad', { value: 'GMT +03:00', defaultValue: '{{value}} Iraq' })\n\t},\n\t{\n\t\tvalue: 'Asia/Kuwait',\n\t\tlabel: t('timezone.asia_kuwait', {\n\t\t\tvalue: 'GMT +03:00',\n\t\t\tdefaultValue: '{{value}} Kuwait, Riyadh'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Istanbul',\n\t\tlabel: t('timezone.europe_istanbul', {\n\t\t\tvalue: 'GMT +03:00',\n\t\t\tdefaultValue: '{{value}} Istanbul'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Minsk',\n\t\tlabel: t('timezone.europe_minsk', { value: 'GMT +03:00', defaultValue: '{{value}} Minsk' })\n\t},\n\t{\n\t\tvalue: 'Europe/Moscow',\n\t\tlabel: t('timezone.europe_moscow', {\n\t\t\tvalue: 'GMT +03:00',\n\t\t\tdefaultValue: '{{value}} Moscow, St. Petersburg, Volgograd (RTZ 2)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Volgograd',\n\t\tlabel: t('timezone.europe_volgograd', {\n\t\t\tvalue: 'GMT +03:00',\n\t\t\tdefaultValue: '{{value}} Volgograd'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Tehran',\n\t\tlabel: t('timezone.asia_tehran', { value: 'GMT +03:30', defaultValue: '{{value}} Tehran' })\n\t},\n\t{\n\t\tvalue: 'Asia/Baku',\n\t\tlabel: t('timezone.asia_baku', { value: 'GMT +04:00', defaultValue: '{{value}} Baku' })\n\t},\n\t{\n\t\tvalue: 'Asia/Muscat',\n\t\tlabel: t('timezone.asia_muscat', {\n\t\t\tvalue: 'GMT +04:00',\n\t\t\tdefaultValue: '{{value}} Abu Dhabi, Muscat'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Tbilisi',\n\t\tlabel: t('timezone.asia_tbilisi', { value: 'GMT +04:00', defaultValue: '{{value}} Tbilisi' })\n\t},\n\t{\n\t\tvalue: 'Asia/Yerevan',\n\t\tlabel: t('timezone.asia_yerevan', { value: 'GMT +04:00', defaultValue: '{{value}} Yerevan' })\n\t},\n\t{\n\t\tvalue: 'Europe/Astrakhan',\n\t\tlabel: t('timezone.europe_astrakhan', {\n\t\t\tvalue: 'GMT +04:00',\n\t\t\tdefaultValue: '{{value}} Astrakhan'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Samara',\n\t\tlabel: t('timezone.europe_samara', {\n\t\t\tvalue: 'GMT +04:00',\n\t\t\tdefaultValue: '{{value}} Izhevsk, Samara (RTZ 3)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Saratov',\n\t\tlabel: t('timezone.europe_saratov', { value: 'GMT +04:00', defaultValue: '{{value}} Saratov' })\n\t},\n\t{\n\t\tvalue: 'Indian/Mauritius',\n\t\tlabel: t('timezone.indian_mauritius', {\n\t\t\tvalue: 'GMT +04:00',\n\t\t\tdefaultValue: '{{value}} Port Louis'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Kabul',\n\t\tlabel: t('timezone.asia_kabul', { value: 'GMT +04:30', defaultValue: '{{value}} Kabul' })\n\t},\n\t{\n\t\tvalue: 'Asia/Karachi',\n\t\tlabel: t('timezone.asia_karachi', {\n\t\t\tvalue: 'GMT +05:00',\n\t\t\tdefaultValue: '{{value}} Islamabad, Karachi'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Qyzylorda',\n\t\tlabel: t('timezone.asia_qyzylorda', {\n\t\t\tvalue: 'GMT +05:00',\n\t\t\tdefaultValue: '{{value}} Qyzylorda'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Tashkent',\n\t\tlabel: t('timezone.asia_tashkent', { value: 'GMT +05:00', defaultValue: '{{value}} Tashkent' })\n\t},\n\t{\n\t\tvalue: 'Asia/Yekaterinburg',\n\t\tlabel: t('timezone.asia_yekaterinburg', {\n\t\t\tvalue: 'GMT +05:00',\n\t\t\tdefaultValue: '{{value}} Ekaterinburg (RTZ 4)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Colombo',\n\t\tlabel: t('timezone.asia_colombo', {\n\t\t\tvalue: 'GMT +05:30',\n\t\t\tdefaultValue: '{{value}} Sri Jayawardenepura Kotte'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Kolkata',\n\t\tlabel: t('timezone.asia_kolkata', {\n\t\t\tvalue: 'GMT +05:30',\n\t\t\tdefaultValue: '{{value}} Chennai, Kolkata, Mumbai, New Delhi'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Kathmandu',\n\t\tlabel: t('timezone.asia_kathmandu', {\n\t\t\tvalue: 'GMT +05:45',\n\t\t\tdefaultValue: '{{value}} Kathmandu'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Almaty',\n\t\tlabel: t('timezone.asia_almaty', { value: 'GMT +06:00', defaultValue: '{{value}} Astana' })\n\t},\n\t{\n\t\tvalue: 'Asia/Dhaka',\n\t\tlabel: t('timezone.asia_dhaka', { value: 'GMT +06:00', defaultValue: '{{value}} Dhaka' })\n\t},\n\t{\n\t\tvalue: 'Asia/Omsk',\n\t\tlabel: t('timezone.asia_omsk', { value: 'GMT +06:00', defaultValue: '{{value}} Omsk' })\n\t},\n\t{\n\t\tvalue: 'Asia/Yangon',\n\t\tlabel: t('timezone.asia_yangon', { value: 'GMT +06:30', defaultValue: '{{value}} Yangon' })\n\t},\n\t{\n\t\tvalue: 'Asia/Bangkok',\n\t\tlabel: t('timezone.asia_bangkok', {\n\t\t\tvalue: 'GMT +07:00',\n\t\t\tdefaultValue: '{{value}} Bangkok, Hanoi, Jakarta'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Barnaul',\n\t\tlabel: t('timezone.asia_barnaul', { value: 'GMT +07:00', defaultValue: '{{value}} Barnaul' })\n\t},\n\t{\n\t\tvalue: 'Asia/Hovd',\n\t\tlabel: t('timezone.asia_hovd', { value: 'GMT +07:00', defaultValue: '{{value}} Hovd' })\n\t},\n\t{\n\t\tvalue: 'Asia/Krasnoyarsk',\n\t\tlabel: t('timezone.asia_krasnoyarsk', {\n\t\t\tvalue: 'GMT +07:00',\n\t\t\tdefaultValue: '{{value}} Krasnoyarsk (RTZ 6)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Novosibirsk',\n\t\tlabel: t('timezone.asia_novosibirsk', {\n\t\t\tvalue: 'GMT +07:00',\n\t\t\tdefaultValue: '{{value}} Novosibirsk (RTZ 5)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Tomsk',\n\t\tlabel: t('timezone.asia_tomsk', { value: 'GMT +07:00', defaultValue: '{{value}} Tomsk' })\n\t},\n\t{\n\t\tvalue: 'Asia/Hong_Kong',\n\t\tlabel: t('timezone.asia_hong_kong', {\n\t\t\tvalue: 'GMT +08:00',\n\t\t\tdefaultValue: '{{value}} Beijing, Chongqing, Hong Kong, Urumqi'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Irkutsk',\n\t\tlabel: t('timezone.asia_irkutsk', {\n\t\t\tvalue: 'GMT +08:00',\n\t\t\tdefaultValue: '{{value}} Irkutsk (RTZ 7)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Kuala_Lumpur',\n\t\tlabel: t('timezone.asia_kuala_lumpur', {\n\t\t\tvalue: 'GMT +08:00',\n\t\t\tdefaultValue: '{{value}} Kuala Lumpur'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Singapore',\n\t\tlabel: t('timezone.asia_singapore', {\n\t\t\tvalue: 'GMT +08:00',\n\t\t\tdefaultValue: '{{value}} Singapore'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Taipei',\n\t\tlabel: t('timezone.asia_taipei', { value: 'GMT +08:00', defaultValue: '{{value}} Taipei' })\n\t},\n\t{\n\t\tvalue: 'Asia/Ulaanbaatar',\n\t\tlabel: t('timezone.asia_ulaanbaatar', {\n\t\t\tvalue: 'GMT +08:00',\n\t\t\tdefaultValue: '{{value}} Ulaanbaatar'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Australia/Perth',\n\t\tlabel: t('timezone.australia_perth', { value: 'GMT +08:00', defaultValue: '{{value}} Perth' })\n\t},\n\t{\n\t\tvalue: 'Australia/Eucla',\n\t\tlabel: t('timezone.australia_eucla', { value: 'GMT +08:45', defaultValue: '{{value}} Eucla' })\n\t},\n\t{\n\t\tvalue: 'Asia/Chita',\n\t\tlabel: t('timezone.asia_chita', { value: 'GMT +09:00', defaultValue: '{{value}} Chita' })\n\t},\n\t{\n\t\tvalue: 'Asia/Pyongyang',\n\t\tlabel: t('timezone.asia_pyongyang', {\n\t\t\tvalue: 'GMT +09:00',\n\t\t\tdefaultValue: '{{value}} Pyongyang'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Seoul',\n\t\tlabel: t('timezone.asia_seoul', { value: 'GMT +09:00', defaultValue: '{{value}} Korea' })\n\t},\n\t{\n\t\tvalue: 'Asia/Tokyo',\n\t\tlabel: t('timezone.asia_tokyo', { value: 'GMT +09:00', defaultValue: '{{value}} Japan' })\n\t},\n\t{\n\t\tvalue: 'Asia/Yakutsk',\n\t\tlabel: t('timezone.asia_yakutsk', {\n\t\t\tvalue: 'GMT +09:00',\n\t\t\tdefaultValue: '{{value}} Yakutsk (RTZ 8)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Australia/Adelaide',\n\t\tlabel: t('timezone.australia_adelaide', {\n\t\t\tvalue: 'GMT +09:30',\n\t\t\tdefaultValue: '{{value}} Adelaide'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Australia/Darwin',\n\t\tlabel: t('timezone.australia_darwin', { value: 'GMT +09:30', defaultValue: '{{value}} Darwin' })\n\t},\n\t{\n\t\tvalue: 'Asia/Vladivostok',\n\t\tlabel: t('timezone.asia_vladivostok', {\n\t\t\tvalue: 'GMT +10:00',\n\t\t\tdefaultValue: '{{value}} Vladivostok, Magadan (RTZ 9)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Australia/Brisbane',\n\t\tlabel: t('timezone.australia_brisbane', {\n\t\t\tvalue: 'GMT +10:00',\n\t\t\tdefaultValue: '{{value}} Brisbane'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Australia/Hobart',\n\t\tlabel: t('timezone.australia_hobart', { value: 'GMT +10:00', defaultValue: '{{value}} Hobart' })\n\t},\n\t{\n\t\tvalue: 'Australia/Sydney',\n\t\tlabel: t('timezone.australia_sydney', {\n\t\t\tvalue: 'GMT +10:00',\n\t\t\tdefaultValue: '{{value}} Canberra, Melbourne, Sydney'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Pacific/Guam',\n\t\tlabel: t('timezone.pacific_guam', {\n\t\t\tvalue: 'GMT +10:00',\n\t\t\tdefaultValue: '{{value}} Guam, Port Moresby'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Australia/Lord_Howe',\n\t\tlabel: t('timezone.australia_lord_howe', {\n\t\t\tvalue: 'GMT +10:30',\n\t\t\tdefaultValue: '{{value}} Lord_Howe'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Magadan',\n\t\tlabel: t('timezone.asia_magadan', { value: 'GMT +11:00', defaultValue: '{{value}} Magadan' })\n\t},\n\t{\n\t\tvalue: 'Asia/Sakhalin',\n\t\tlabel: t('timezone.asia_sakhalin', { value: 'GMT +11:00', defaultValue: '{{value}} Sakhalin' })\n\t},\n\t{\n\t\tvalue: 'Asia/Srednekolymsk',\n\t\tlabel: t('timezone.asia_srednekolymsk', {\n\t\t\tvalue: 'GMT +11:00',\n\t\t\tdefaultValue: '{{value}} Chokurdakh (RTZ 10)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Pacific/Bougainville',\n\t\tlabel: t('timezone.pacific_bougainville', {\n\t\t\tvalue: 'GMT +11:00',\n\t\t\tdefaultValue: '{{value}} Bougainville Standard Time'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Pacific/Guadalcanal',\n\t\tlabel: t('timezone.pacific_guadalcanal', {\n\t\t\tvalue: 'GMT +11:00',\n\t\t\tdefaultValue: '{{value}} Solomon Is. / New Caledonia'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Pacific/Norfolk',\n\t\tlabel: t('timezone.pacific_norfolk', { value: 'GMT +11:00', defaultValue: '{{value}} Norfolk' })\n\t},\n\t{\n\t\tvalue: 'Asia/Kamchatka',\n\t\tlabel: t('timezone.asia_kamchatka', {\n\t\t\tvalue: 'GMT +12:00',\n\t\t\tdefaultValue: '{{value}} Anadyr, Petropavlovsk-Kamchatsky (RTZ 11)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Pacific/Auckland',\n\t\tlabel: t('timezone.pacific_auckland', {\n\t\t\tvalue: 'GMT +12:00',\n\t\t\tdefaultValue: '{{value}} New Zealand'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Pacific/Fiji',\n\t\tlabel: t('timezone.pacific_fiji', { value: 'GMT +12:00', defaultValue: '{{value}} Fiji' })\n\t},\n\t{\n\t\tvalue: 'Pacific/Chatham',\n\t\tlabel: t('timezone.pacific_chatham', { value: 'GMT +12:45', defaultValue: '{{value}} Chatham' })\n\t},\n\t{\n\t\tvalue: 'Pacific/Apia',\n\t\tlabel: t('timezone.pacific_apia', { value: 'GMT +13:00', defaultValue: '{{value}} Samoa' })\n\t},\n\t{\n\t\tvalue: 'Pacific/Tongatapu',\n\t\tlabel: t('timezone.pacific_tongatapu', {\n\t\t\tvalue: 'GMT +13:00',\n\t\t\tdefaultValue: '{{value}} Nuku’alofa'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Pacific/Kiritimati',\n\t\tlabel: t('timezone.pacific_kiritimati', {\n\t\t\tvalue: 'GMT +14:00',\n\t\t\tdefaultValue: '{{value}} Kiritimati Island'\n\t\t})\n\t}\n];\n\nexport const getAutoScalingFontSize = (): number => {\n\tif (\n\t\twindow.screen.width <= SCALING_LIMIT.WIDTH &&\n\t\twindow.screen.height <= SCALING_LIMIT.HEIGHT &&\n\t\twindow.devicePixelRatio >= SCALING_LIMIT.DPR\n\t) {\n\t\tconst baseFontIndex = SCALING_OPTIONS.findIndex((option) => option.value === BASE_FONT_SIZE);\n\t\tif (baseFontIndex > 0) {\n\t\t\treturn SCALING_OPTIONS[baseFontIndex - 1].value;\n\t\t}\n\t}\n\treturn BASE_FONT_SIZE;\n};\n\nexport type ResetComponentImperativeHandler = { reset: () => void };\n\ntype UpsertPrefOnUnsavedChangesFn = <K extends keyof PrefsMods>(\n\tprefKey: K,\n\tprefValue: PrefsMods[K] extends BooleanString | undefined ? boolean | undefined : PrefsMods[K]\n) => void;\n\nexport function upsertPrefOnUnsavedChanges(\n\taddModifiedValueCallback: AddMod\n): UpsertPrefOnUnsavedChangesFn {\n\treturn (prefKey, prefValue) => {\n\t\tif (prefValue === undefined) {\n\t\t\taddModifiedValueCallback('prefs', prefKey, '');\n\t\t} else if (isBoolean(prefValue)) {\n\t\t\taddModifiedValueCallback('prefs', prefKey, (prefValue && 'TRUE') || 'FALSE');\n\t\t} else {\n\t\t\taddModifiedValueCallback('prefs', prefKey, prefValue as PrefsMods[typeof prefKey]);\n\t\t}\n\t};\n}\n\nexport type SettingsSectionProps = {\n\tresetRef?: React.Ref<ResetComponentImperativeHandler>;\n};\n\nexport function isPrimary(identity: Identity): boolean {\n\treturn identity.name === 'DEFAULT';\n}\n\nexport function defaultAsFirstOrderIdentities(identities: Array<Identity>): Array<Identity> {\n\tconst defaultIdx = identities.findIndex(isPrimary);\n\tconst result = cloneDeep(identities);\n\tconst defaultIdentity = result.splice(defaultIdx, 1);\n\tresult.unshift(defaultIdentity[0]);\n\treturn result;\n}\n\n/**\n * Compose a unique list of all identities' email addresses\n *\n * The list is composed of:\n * - the email address of the current account\n * - the email addresses of all the shared accounts (taken from the rights infos)\n * - all the aliases\n *\n * @param account\n * @param settings\n *\n * @returns a list of unique email addresses\n */\nexport const getAvailableEmailAddresses = (\n\taccount: Account,\n\tsettings: AccountSettings\n): string[] => {\n\tconst result: string[] = [];\n\n\t// Adds the email address of the primary account\n\tresult.push(account.name);\n\n\t// Adds the email addresses of all the shared 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(email.addr);\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\t// Adds all the aliases\n\tif (settings.attrs.zimbraMailAlias) {\n\t\tif (isArray(settings.attrs.zimbraMailAlias)) {\n\t\t\tresult.push(...(settings.attrs.zimbraMailAlias as string[]));\n\t\t} else {\n\t\t\tresult.push(String(settings.attrs.zimbraMailAlias));\n\t\t}\n\t}\n\n\treturn uniq(result);\n};\n\nexport function calculateNewIdentitiesState(\n\tcurrentIdentities: Array<Identity>,\n\tdeletedIdentities: Array<string>,\n\taddedIdentities: Array<Identity>,\n\tmodifiedIdentitiesAttrs: Record<string, Partial<IdentityAttrs>>\n): Array<Identity> {\n\tconst filteredIdentities = filter(\n\t\tcurrentIdentities,\n\t\t(item) => !deletedIdentities.includes(item.id)\n\t);\n\n\tconst filteredAndModified = reduce(\n\t\tmodifiedIdentitiesAttrs,\n\t\t(accumulator, attrs, id) => {\n\t\t\tconst propIndex = findIndex(accumulator, (identity) => identity.id === id);\n\t\t\tif (propIndex > -1) {\n\t\t\t\taccumulator[propIndex]._attrs = {\n\t\t\t\t\t...accumulator[propIndex]._attrs,\n\t\t\t\t\t...attrs\n\t\t\t\t};\n\t\t\t\tif (attrs.zimbraPrefIdentityName && !isPrimary(accumulator[propIndex])) {\n\t\t\t\t\taccumulator[propIndex].name = attrs.zimbraPrefIdentityName;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\tfilteredIdentities\n\t);\n\n\tfilteredAndModified.splice(-1, 0, ...addedIdentities);\n\treturn filteredAndModified;\n}\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport type { TFunction } from 'i18next';\n\nimport type { SettingsSubSection } from '../../types';\n\nexport const appearanceSubSection = (t: TFunction): SettingsSubSection => ({\n\tlabel: t('settings.general.appearance', 'Appearance'),\n\tid: 'appearance'\n});\nexport const timezoneAndLanguageSubSection = (t: TFunction): SettingsSubSection => ({\n\tlabel: t('settings.timezone_and_language', 'Time Zone and Language'),\n\tid: 'timezone_and_language'\n});\nexport const outOfOfficeSubSection = (t: TFunction): SettingsSubSection => ({\n\tlabel: t('settings.out_of_office.headings.settings_label', 'Out of Office Settings'),\n\tid: 'out_of_office'\n});\nexport const searchPrefsSubSection = (t: TFunction): SettingsSubSection => ({\n\tlabel: t('search.app', 'Search'),\n\tid: 'search_prefs'\n});\nexport const versionsSubSection = (t: TFunction): SettingsSubSection => ({\n\tlabel: t('module.app.version', 'Application versions'),\n\tid: 'app_version'\n});\nexport const quotaSubSection = (t: TFunction): SettingsSubSection => ({\n\tlabel: t('user_quota.title', \"User's quota\"),\n\tid: 'user_quota'\n});\nexport const accountSubSection = (t: TFunction): SettingsSubSection => ({\n\tlabel: t('settings.general.account', 'Account'),\n\tid: 'account'\n});\n\nexport const settingsSubSections = (t: TFunction): Array<SettingsSubSection> => [\n\tappearanceSubSection(t),\n\ttimezoneAndLanguageSubSection(t),\n\toutOfOfficeSubSection(t),\n\tsearchPrefsSubSection(t),\n\tversionsSubSection(t),\n\tquotaSubSection(t),\n\taccountSubSection(t)\n];\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { Container, useSnackbar } from '@zextras/carbonio-design-system';\nimport { findIndex, includes, isEmpty, map, reduce, size } from 'lodash';\n\nimport AppearanceSettings from './components/general-settings/appearance-settings';\nimport DarkThemeSettingSection from './components/general-settings/dark-theme-settings-section';\nimport { Logout } from './components/general-settings/logout';\nimport ModuleVersionSettings from './components/general-settings/module-version-settings';\nimport { OutOfOfficeSettings } from './components/general-settings/out-of-office-settings';\nimport { ScalingSettingSection } from './components/general-settings/scaling-setting-section';\nimport { SearchSettings } from './components/general-settings/search-settings';\nimport UserQuota from './components/general-settings/user-quota';\nimport SettingsHeader, { SettingsHeaderProps } from './components/settings-header';\nimport { ResetComponentImperativeHandler } from './components/utils';\nimport LanguageAndTimeZoneSettings from './language-and-timezone-settings';\nimport {\n\tAccountState,\n\tAddMod,\n\tBatchRequest,\n\tModifyPrefsRequest,\n\tModifyPrefsResponse,\n\tModifyPropertiesRequest,\n\tModifyPropertiesResponse,\n\tMods,\n\tRemoveMod\n} from '../../types';\nimport { ScalingSettings } from '../../types/settings';\nimport { LOCAL_STORAGE_SETTINGS_KEY, SHELL_APP_ID } from '../constants';\nimport { getSoapFetch } from '../network/fetch';\nimport { useLocalStorage } from '../shell/hooks/useLocalStorage';\nimport { useAccountStore, useUserSettings } from '../store/account';\nimport { getT } from '../store/i18n';\n\nconst GeneralSettings = (): React.JSX.Element => {\n\tconst [mods, setMods] = useState<Mods>({});\n\tconst t = getT();\n\tconst userSettings = useUserSettings();\n\tconst [localStorageUnAppliedChanges, setLocalStorageUnAppliedChanges] = useState<ScalingSettings>(\n\t\t{}\n\t);\n\tconst [localStorageSettings, setLocalStorageSettings] = useLocalStorage<ScalingSettings>(\n\t\tLOCAL_STORAGE_SETTINGS_KEY,\n\t\t{}\n\t);\n\tconst [open, setOpen] = useState(false);\n\n\tconst addLocalStoreChange = useCallback((key, value) => {\n\t\tsetLocalStorageUnAppliedChanges((prevState) => ({\n\t\t\t...prevState,\n\t\t\t[key]: value\n\t\t}));\n\t}, []);\n\n\tconst cleanLocalStoreChange = useCallback<(key: keyof ScalingSettings) => void>((key) => {\n\t\tsetLocalStorageUnAppliedChanges((prevState) => {\n\t\t\tconst nextState = { ...prevState };\n\t\t\tdelete nextState[key];\n\t\t\treturn nextState;\n\t\t});\n\t}, []);\n\n\tconst addMod = useCallback<AddMod>((type, key, value) => {\n\t\tsetMods((prevState) => ({\n\t\t\t...prevState,\n\t\t\t[type]: {\n\t\t\t\t...prevState?.[type],\n\t\t\t\t[key]: value\n\t\t\t}\n\t\t}));\n\t}, []);\n\n\tconst removeMod = useCallback<RemoveMod>((type, key) => {\n\t\tsetMods((prevState) => {\n\t\t\tconst prevType = prevState[type];\n\t\t\tif (prevType && prevType[key] !== undefined) {\n\t\t\t\tconst nextState = { ...prevState, [type]: { ...prevState[type] } };\n\t\t\t\tconst nextType = nextState[type];\n\t\t\t\tif (nextType && nextType[key] !== undefined) {\n\t\t\t\t\tdelete nextType[key];\n\t\t\t\t}\n\t\t\t\tif (size(nextState[type]) === 0) {\n\t\t\t\t\tdelete nextState[type];\n\t\t\t\t}\n\t\t\t\treturn nextState;\n\t\t\t}\n\t\t\treturn prevState;\n\t\t});\n\t}, []);\n\tconst createSnackbar = useSnackbar();\n\n\tconst onSave = useCallback<SettingsHeaderProps['onSave']>(() => {\n\t\tsetLocalStorageUnAppliedChanges((unAppliedPrevState) => {\n\t\t\tif (size(unAppliedPrevState) > 0) {\n\t\t\t\tsetLocalStorageSettings((localStorageSettingsPrevState) => ({\n\t\t\t\t\t...localStorageSettingsPrevState,\n\t\t\t\t\t...unAppliedPrevState\n\t\t\t\t}));\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\treturn unAppliedPrevState;\n\t\t});\n\t\tif (size(mods) > 0) {\n\t\t\tlet modifyPropertiesRequest: ModifyPropertiesRequest | undefined;\n\t\t\tif (mods.props) {\n\t\t\t\tconst mappedProperties = map(\n\t\t\t\t\tmods.props,\n\t\t\t\t\t(prop, key): ModifyPropertiesRequest['prop'][0] => ({\n\t\t\t\t\t\tname: key,\n\t\t\t\t\t\tzimlet: prop.app,\n\t\t\t\t\t\t_content: prop.value\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t\tmodifyPropertiesRequest = { _jsns: 'urn:zimbraAccount', prop: mappedProperties };\n\t\t\t}\n\n\t\t\tlet modifyPrefsRequest: ModifyPrefsRequest | undefined;\n\n\t\t\tif (mods.prefs) {\n\t\t\t\tconst attrs = mods.prefs;\n\t\t\t\tif ('zimbraPrefMailTrustedSenderList' in attrs) {\n\t\t\t\t\tattrs.zimbraPrefMailTrustedSenderList =\n\t\t\t\t\t\tattrs.zimbraPrefMailTrustedSenderList instanceof Array &&\n\t\t\t\t\t\tattrs.zimbraPrefMailTrustedSenderList.length === 0\n\t\t\t\t\t\t\t? ''\n\t\t\t\t\t\t\t: attrs.zimbraPrefMailTrustedSenderList;\n\t\t\t\t}\n\t\t\t\tmodifyPrefsRequest = { _jsns: 'urn:zimbraAccount', _attrs: attrs };\n\t\t\t}\n\n\t\t\tconst promise = getSoapFetch(SHELL_APP_ID)<\n\t\t\t\tBatchRequest,\n\t\t\t\t{\n\t\t\t\t\tModifyPropertiesResponse?: ModifyPropertiesResponse;\n\t\t\t\t\tModifyPrefsResponse?: ModifyPrefsResponse;\n\t\t\t\t}\n\t\t\t>('Batch', {\n\t\t\t\t_jsns: 'urn:zimbra',\n\t\t\t\tModifyPropertiesRequest: modifyPropertiesRequest,\n\t\t\t\tModifyPrefsRequest: modifyPrefsRequest\n\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tuseAccountStore.setState((s: AccountState) => ({\n\t\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\t...s.settings,\n\t\t\t\t\t\t\tprefs: reduce(\n\t\t\t\t\t\t\t\tmods.prefs,\n\t\t\t\t\t\t\t\t(acc, pref, key) => ({\n\t\t\t\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t\t\t\t[key]: pref as string\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\ts.settings.prefs\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tprops: reduce(\n\t\t\t\t\t\t\t\tmods.props,\n\t\t\t\t\t\t\t\t(acc, { app, value }, key) => {\n\t\t\t\t\t\t\t\t\tconst propIndex = findIndex(acc, (p) => p.name === key && p.zimlet === app);\n\t\t\t\t\t\t\t\t\tif (propIndex >= 0) {\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\t\t\t\t\t\t\tacc[propIndex] = {\n\t\t\t\t\t\t\t\t\t\t\tname: key,\n\t\t\t\t\t\t\t\t\t\t\tzimlet: app,\n\t\t\t\t\t\t\t\t\t\t\t_content: value as string\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tacc.push({\n\t\t\t\t\t\t\t\t\t\t\tname: key,\n\t\t\t\t\t\t\t\t\t\t\tzimlet: app,\n\t\t\t\t\t\t\t\t\t\t\t_content: value as string\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\treturn acc;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\ts.settings.props\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\n\t\t\t\t\tif (mods.prefs && includes(Object.keys(mods.prefs), 'zimbraPrefLocale')) {\n\t\t\t\t\t\tsetOpen(true);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSnackbar({\n\t\t\t\t\t\tkey: `new`,\n\t\t\t\t\t\treplace: true,\n\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\tlabel: t('message.snackbar.settings_saved', 'Edits saved correctly'),\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\tsetMods({});\n\t\t\t\t})\n\t\t\t\t.catch((error: unknown) => {\n\t\t\t\t\tcreateSnackbar({\n\t\t\t\t\t\tkey: `new`,\n\t\t\t\t\t\treplace: true,\n\t\t\t\t\t\ttype: 'error',\n\t\t\t\t\t\tlabel: t('snackbar.error', 'Something went wrong, please try again'),\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\tif (error instanceof Error) {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\t\t\t\t\tthrow new Error(typeof error === 'string' ? error : 'edit setting error');\n\t\t\t\t});\n\t\t\treturn Promise.allSettled([promise]);\n\t\t}\n\t\treturn Promise.allSettled([Promise.resolve()]);\n\t}, [mods, setLocalStorageSettings, createSnackbar, t]);\n\n\tconst scalingSettingSectionRef = useRef<ResetComponentImperativeHandler>(null);\n\tconst outOfOfficeSettingsSectionRef = useRef<ResetComponentImperativeHandler>(null);\n\tconst searchSettingsSectionRef = useRef<ResetComponentImperativeHandler>(null);\n\n\tconst onCancel = useCallback(() => {\n\t\tsetMods({});\n\t\tif (size(localStorageUnAppliedChanges) > 0) {\n\t\t\tscalingSettingSectionRef.current?.reset();\n\t\t}\n\t\toutOfOfficeSettingsSectionRef.current?.reset();\n\t\tsearchSettingsSectionRef?.current?.reset();\n\t}, [localStorageUnAppliedChanges]);\n\n\tconst isDirty = useMemo(\n\t\t() => !isEmpty(mods) || !isEmpty(localStorageUnAppliedChanges),\n\t\t[mods, localStorageUnAppliedChanges]\n\t);\n\n\tconst title = useMemo(() => t('settings.general.general', 'General Settings'), [t]);\n\n\treturn (\n\t\t<>\n\t\t\t<SettingsHeader title={title} onCancel={onCancel} onSave={onSave} isDirty={isDirty} />\n\t\t\t<Container\n\t\t\t\tbackground={'gray5'}\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\tcrossAlignment={'flex-start'}\n\t\t\t\tgap=\"0.5rem\"\n\t\t\t\tpadding={{ all: 'medium' }}\n\t\t\t\tstyle={{ overflow: 'auto' }}\n\t\t\t>\n\t\t\t\t<AppearanceSettings>\n\t\t\t\t\t<ScalingSettingSection\n\t\t\t\t\t\tresetRef={scalingSettingSectionRef}\n\t\t\t\t\t\tscalingSettings={localStorageSettings}\n\t\t\t\t\t\taddLocalStoreChange={addLocalStoreChange}\n\t\t\t\t\t\tcleanLocalStoreChange={cleanLocalStoreChange}\n\t\t\t\t\t/>\n\t\t\t\t\t<DarkThemeSettingSection addMod={addMod} removeMod={removeMod} />\n\t\t\t\t</AppearanceSettings>\n\t\t\t\t<LanguageAndTimeZoneSettings\n\t\t\t\t\tsettings={userSettings}\n\t\t\t\t\taddMod={addMod}\n\t\t\t\t\topen={open}\n\t\t\t\t\tsetOpen={setOpen}\n\t\t\t\t/>\n\n\t\t\t\t<OutOfOfficeSettings\n\t\t\t\t\tsettings={userSettings}\n\t\t\t\t\taddMod={addMod}\n\t\t\t\t\tresetRef={outOfOfficeSettingsSectionRef}\n\t\t\t\t/>\n\t\t\t\t<SearchSettings\n\t\t\t\t\tsettings={userSettings}\n\t\t\t\t\taddMod={addMod}\n\t\t\t\t\tresetRef={searchSettingsSectionRef}\n\t\t\t\t/>\n\t\t\t\t<ModuleVersionSettings />\n\t\t\t\t<UserQuota mobileView={false} />\n\t\t\t\t<Logout />\n\t\t\t</Container>\n\t\t</>\n\t);\n};\n\nexport default GeneralSettings;\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useImperativeHandle } from 'react';\n\nimport { SettingsSectionProps } from '../components/utils';\n\nexport function useReset(ref: SettingsSectionProps['resetRef'], resetFn: () => void): void {\n\tuseImperativeHandle(\n\t\tref,\n\t\t() => ({\n\t\t\treset: resetFn\n\t\t}),\n\t\t[resetFn]\n\t);\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, useMemo } from 'react';\n\nimport {\n\tContainer,\n\tFormSubSection,\n\tModal,\n\tPadding,\n\tSelect,\n\tSingleSelectionOnChange,\n\tText\n} from '@zextras/carbonio-design-system';\nimport { find } from 'lodash';\n\nimport { localeList, timeZoneList } from './components/utils';\nimport { timezoneAndLanguageSubSection } from './general-settings-sub-sections';\nimport { AccountSettings, AddMod, PrefsMods } from '../../types';\nimport { getT } from '../store/i18n';\n\nconst LanguageAndTimeZone: FC<{\n\tsettings: AccountSettings;\n\topen: boolean;\n\tsetOpen: (arg: boolean) => void;\n\taddMod: AddMod;\n}> = ({ settings, addMod, open, setOpen }) => {\n\tconst t = getT();\n\tconst locales = useMemo(() => localeList(t), [t]);\n\tconst timezones = useMemo(() => timeZoneList(t), [t]);\n\tconst sectionTitle = useMemo(() => timezoneAndLanguageSubSection(t), [t]);\n\n\tconst updatePrefs = useCallback(\n\t\t(prefValue: PrefsMods[keyof PrefsMods], prefKey: keyof PrefsMods) => {\n\t\t\taddMod('prefs', prefKey, prefValue);\n\t\t},\n\t\t[addMod]\n\t);\n\n\tconst defaultLocale = useMemo(\n\t\t() =>\n\t\t\t(settings.prefs.zimbraPrefLocale &&\n\t\t\t\tfind(locales, { id: `${settings.prefs.zimbraPrefLocale}` })) ||\n\t\t\tfind(locales, { id: 'en' }),\n\t\t[locales, settings.prefs.zimbraPrefLocale]\n\t);\n\n\tconst onLocaleChange = useCallback<SingleSelectionOnChange>(\n\t\t(value) => {\n\t\t\tif (value && value !== settings.prefs.zimbraPrefLocale)\n\t\t\t\tupdatePrefs(value, 'zimbraPrefLocale');\n\t\t},\n\t\t[settings.prefs.zimbraPrefLocale, updatePrefs]\n\t);\n\n\tconst defaultTimeZone = useMemo(\n\t\t() =>\n\t\t\t(settings.prefs.zimbraPrefTimeZoneId &&\n\t\t\t\tfind(timezones, { value: `${settings.prefs.zimbraPrefTimeZoneId}` })) ||\n\t\t\tfind(timezones, { value: 'UTC' }),\n\t\t[timezones, settings.prefs.zimbraPrefTimeZoneId]\n\t);\n\n\tconst onTimeZoneChange = useCallback<SingleSelectionOnChange>(\n\t\t(value) => {\n\t\t\tif (value && value !== settings.prefs.zimbraPrefTimeZoneId)\n\t\t\t\tupdatePrefs(value, 'zimbraPrefTimeZoneId');\n\t\t},\n\t\t[settings.prefs.zimbraPrefTimeZoneId, updatePrefs]\n\t);\n\n\treturn (\n\t\t<FormSubSection\n\t\t\tlabel={sectionTitle.label}\n\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\twidth=\"50%\"\n\t\t\tid={sectionTitle.id}\n\t\t>\n\t\t\t<Container crossAlignment=\"baseline\" padding={{ all: 'small' }}>\n\t\t\t\t{Object.keys(settings.prefs).length > 0 && (\n\t\t\t\t\t<Select\n\t\t\t\t\t\titems={locales}\n\t\t\t\t\t\tbackground={'gray5'}\n\t\t\t\t\t\tlabel={t('label.language', 'Language')}\n\t\t\t\t\t\tonChange={onLocaleChange}\n\t\t\t\t\t\tdefaultSelection={defaultLocale}\n\t\t\t\t\t\tshowCheckbox={false}\n\t\t\t\t\t\tdropdownMaxHeight=\"12.5rem\"\n\t\t\t\t\t\tselectedBackgroundColor=\"highlight\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<Padding top=\"small\" width=\"100%\">\n\t\t\t\t\t{Object.keys(settings.prefs).length > 0 && timezones && defaultTimeZone && (\n\t\t\t\t\t\t<Select\n\t\t\t\t\t\t\titems={timezones}\n\t\t\t\t\t\t\tbackground={'gray5'}\n\t\t\t\t\t\t\tlabel={t('label.time_zone', 'Time Zone')}\n\t\t\t\t\t\t\tonChange={onTimeZoneChange}\n\t\t\t\t\t\t\tselection={defaultTimeZone}\n\t\t\t\t\t\t\tshowCheckbox={false}\n\t\t\t\t\t\t\tdropdownMaxHeight=\"12.5rem\"\n\t\t\t\t\t\t\tselectedBackgroundColor=\"highlight\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</Padding>\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={t('label.reload', 'Reload')}\n\t\t\t\t\topen={open}\n\t\t\t\t\tdismissLabel={t('label.no', 'No')}\n\t\t\t\t\tonConfirm={(): void => window.location.reload()}\n\t\t\t\t\tconfirmLabel={t('label.reload', 'Reload')}\n\t\t\t\t\tonClose={(): void => setOpen(false)}\n\t\t\t\t>\n\t\t\t\t\t<Text overflow=\"break-word\">\n\t\t\t\t\t\t{t(\n\t\t\t\t\t\t\t'message.reload',\n\t\t\t\t\t\t\t`\tWould you like to reload the application now to show the new language?\n\t\t\t\t\t\t\t(Otherwise, the new language will appear the next time you sign in.)`\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Text>\n\t\t\t\t</Modal>\n\t\t\t</Container>\n\t\t</FormSubSection>\n\t);\n};\n\nexport default LanguageAndTimeZone;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { FC, useMemo } from 'react';\n\nimport { map } from 'lodash';\nimport { Redirect, Route, Switch } from 'react-router-dom';\n\nimport AppContextProvider from '../boot/app/app-context-provider';\nimport { SETTINGS_APP_ID } from '../constants';\nimport { useAppStore } from '../store/app';\n\nexport const SettingsAppView: FC = () => {\n\tconst settingsViews = useAppStore((s) => s.views.settings);\n\tconst routes = useMemo(\n\t\t() =>\n\t\t\tmap(settingsViews, (view) => (\n\t\t\t\t<Route key={view.route} exact path={`/${SETTINGS_APP_ID}/${view.route}`}>\n\t\t\t\t\t<AppContextProvider pkg={view.app}>\n\t\t\t\t\t\t<view.component />\n\t\t\t\t\t</AppContextProvider>\n\t\t\t\t</Route>\n\t\t\t)),\n\t\t[settingsViews]\n\t);\n\treturn (\n\t\t<Switch>\n\t\t\t{routes}\n\t\t\t<Redirect from={`/${SETTINGS_APP_ID}`} exact strict to={`/${SETTINGS_APP_ID}/general`} />\n\t\t</Switch>\n\t);\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, useMemo } from 'react';\n\nimport { Accordion, IconButton, Tooltip } from '@zextras/carbonio-design-system';\nimport { map } from 'lodash';\nimport { useHistory, useLocation } from 'react-router-dom';\n\nimport { SETTINGS_APP_ID } from '../constants';\nimport { useAppStore } from '../store/app';\n\nexport const SettingsSidebar: FC<{ expanded: boolean }> = ({ expanded }) => {\n\tconst settingsViews = useAppStore((s) => s.views.settings);\n\tconst history = useHistory();\n\tconst location = useLocation();\n\tconst items = useMemo(\n\t\t() =>\n\t\t\tsettingsViews.map((view) => ({\n\t\t\t\tid: view.route,\n\t\t\t\tlabel: view.label,\n\t\t\t\ticon: view.icon,\n\t\t\t\tactive: location.pathname === `/${SETTINGS_APP_ID}/${view.route}` && location.search === '',\n\t\t\t\tdisableHover:\n\t\t\t\t\tlocation.pathname === `/${SETTINGS_APP_ID}/${view.route}` && location.search === '',\n\t\t\t\tonClick: (e: KeyboardEvent | React.SyntheticEvent): void => {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\thistory.push(`/${SETTINGS_APP_ID}/${view.route}`);\n\t\t\t\t},\n\t\t\t\titems: map(view.subSections, (item) => ({\n\t\t\t\t\t...item,\n\t\t\t\t\tactive: location.search === `?section=${item.id}`,\n\t\t\t\t\tdisableHover: location.search === `?section=${item.id}`,\n\t\t\t\t\tonClick: (e: KeyboardEvent | React.SyntheticEvent): void => {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\thistory.replace(`/${SETTINGS_APP_ID}/${view.route}?section=${item.id}`);\n\t\t\t\t\t}\n\t\t\t\t}))\n\t\t\t})),\n\t\t[history, location.pathname, location.search, settingsViews]\n\t);\n\tconst collapsedItems = useMemo(\n\t\t() =>\n\t\t\tsettingsViews.map((v) => (\n\t\t\t\t<Tooltip label={v.label} placement=\"right\" key={v.id}>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\ticon={v.icon}\n\t\t\t\t\t\t\tonClick={(): void => history.push(`/${SETTINGS_APP_ID}/${v.route}`)}\n\t\t\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Tooltip>\n\t\t\t)),\n\t\t[history, settingsViews]\n\t);\n\treturn expanded ? <Accordion items={items} /> : <>{collapsedItems}</>;\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, useMemo } from 'react';\n\nimport { Container } from '@zextras/carbonio-design-system';\nimport { map, find } from 'lodash';\nimport { Redirect, Route, Switch, useLocation } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport AppContextProvider from '../boot/app/app-context-provider';\nimport { useAppList, useAppStore, useRoutes } from '../store/app';\n\nconst _BoardsRouterContainer = styled(Container)`\n\tflex-grow: 1;\n\tflex-basis: 0;\n\tmin-width: 0.0625rem;\n\tmax-height: calc(100vh - 3.75rem);\n\toverflow-y: auto;\n`;\n\nconst FirstAppRedirect: FC = () => {\n\tconst apps = useAppList();\n\tconst routes = useRoutes();\n\tconst location = useLocation();\n\tconst mainRoute = useMemo(\n\t\t() => find(routes, (r) => apps[0]?.name === r.app)?.route,\n\t\t[apps, routes]\n\t);\n\treturn mainRoute && location?.pathname === '/' ? (\n\t\t<Redirect exact strict from=\"/\" to={`/${mainRoute}`} />\n\t) : null;\n};\n\nconst AppViewContainer: FC = () => {\n\tconst appViews = useAppStore((s) => s.views.appView);\n\tconst routes = useMemo(\n\t\t() => [\n\t\t\t...map(appViews, (view) => (\n\t\t\t\t<Route key={view.id} path={`/${view.route}`}>\n\t\t\t\t\t<AppContextProvider key={view.app} pkg={view.app}>\n\t\t\t\t\t\t<view.component />\n\t\t\t\t\t</AppContextProvider>\n\t\t\t\t</Route>\n\t\t\t))\n\t\t],\n\t\t[appViews]\n\t);\n\n\treturn (\n\t\t<_BoardsRouterContainer>\n\t\t\t<Container mainAlignment=\"flex-start\">\n\t\t\t\t<Switch>{routes}</Switch>\n\t\t\t\t<FirstAppRedirect />\n\t\t\t</Container>\n\t\t</_BoardsRouterContainer>\n\t);\n};\n\nexport default AppViewContainer;\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { FC, forwardRef } from 'react';\n\nimport { Container, Text } from '@zextras/carbonio-design-system';\nimport styled from 'styled-components';\n\nimport { BadgeInfo } from '../../types';\n\nconst MiniBadge = styled(Container)<{ badge: BadgeInfo }>`\n\tposition: absolute;\n\tbottom: 25%;\n\tright: 25%;\n\ttransform: translate(30%, 30%);\n\tbackground: ${({ badge, theme }): string => theme.palette[badge?.color ?? 'primary'].regular};\n\tmin-width: 0.75rem;\n\tmin-height: 0.75rem;\n\tline-height: 0.75rem;\n\tborder-radius: 0.5rem;\n\tuser-select: none;\n\tcursor: pointer;\n\tpointer-events: none;\n\tz-index: 99;\n`;\n\n// eslint-disable-next-line react/display-name\nconst BadgeWrap: FC<{ badge: BadgeInfo }> = forwardRef<HTMLDivElement, { badge: BadgeInfo }>(\n\t({ badge, children }, ref) => (\n\t\t<Container width={'3rem'} height={'3rem'} style={{ position: 'relative' }} ref={ref}>\n\t\t\t{badge.show && (\n\t\t\t\t<MiniBadge badge={badge} height=\"fit\" width=\"fit\">\n\t\t\t\t\t{badge.showCount ? (\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tsize=\"extrasmall\"\n\t\t\t\t\t\t\tstyle={{ padding: '0.125rem 0.25rem', fontSize: '0.625rem' }}\n\t\t\t\t\t\t\tcolor=\"gray6\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{badge.count ?? 0}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : null}\n\t\t\t\t</MiniBadge>\n\t\t\t)}\n\t\t\t{children}\n\t\t</Container>\n\t)\n);\n\nexport default BadgeWrap;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { CSSProperties, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport {\n\tContainer,\n\tDivider,\n\tDropdown,\n\tDropdownItem,\n\tIcon,\n\tIconButton,\n\tIconButtonProps,\n\tPadding,\n\tRow,\n\tText,\n\tTooltip\n} from '@zextras/carbonio-design-system';\nimport { debounce, isEmpty, map, noop, size } from 'lodash';\nimport styled, { css, SimpleInterpolation } from 'styled-components';\n\nimport { AppBoard } from './board';\nimport { TabsList } from './board-tab-list';\nimport { ResizableContainer } from './resizable-container';\nimport {\n\tBOARD_CONTAINER_ZINDEX,\n\tBOARD_HEADER_HEIGHT,\n\tBOARD_MIN_VISIBILITY,\n\tBOARD_TAB_WIDTH,\n\tHEADER_BAR_HEIGHT,\n\tLOCAL_STORAGE_BOARD_SIZE,\n\tPRIMARY_BAR_WIDTH\n} from '../../constants';\nimport { getApp } from '../../store/app';\nimport {\n\tcloseAllBoards,\n\tcloseBoard,\n\texpandBoards,\n\tminimizeBoards,\n\tonGoToPanel,\n\treduceBoards,\n\tsetCurrentBoard,\n\tuseBoardStore\n} from '../../store/boards';\nimport { getT } from '../../store/i18n';\nimport { setElementSizeAndPosition, SizeAndPosition } from '../../utils/utils';\nimport { useLocalStorage } from '../hooks/useLocalStorage';\nimport { useMove } from '../hooks/useMove';\n\nexport const BOARD_DEFAULT_POSITION: Pick<CSSProperties, 'top' | 'left' | 'right' | 'bottom'> = {\n\tleft: '1.5rem',\n\tbottom: '0'\n};\n\nconst BoardContainerComp = styled.div<{ expanded: boolean; minimized: boolean }>`\n\tposition: fixed;\n\twidth: calc(100vw - ${PRIMARY_BAR_WIDTH});\n\theight: calc(100vh - ${HEADER_BAR_HEIGHT});\n\ttop: ${HEADER_BAR_HEIGHT};\n\tleft: ${PRIMARY_BAR_WIDTH};\n\tbackground-color: rgba(0, 0, 0, 0);\n\tpointer-events: none;\n\tz-index: ${BOARD_CONTAINER_ZINDEX};\n\t${({ expanded }): SimpleInterpolation =>\n\t\texpanded &&\n\t\tcss`\n\t\t\tbackground-color: rgba(0, 0, 0, 0.5);\n\t\t\tpointer-events: auto;\n\t\t`}\n\t${({ minimized }): SimpleInterpolation =>\n\t\tminimized &&\n\t\tcss`\n\t\t\tdisplay: none;\n\t\t`}\n`;\n\nconst OverflowContainer = styled(Container)`\n\toverflow: auto;\n`;\n\nconst Board = styled(Container)<{ expanded: boolean }>`\n\tz-index: 5;\n\tposition: absolute;\n\t${BOARD_DEFAULT_POSITION};\n\n\t${({ width }): SimpleInterpolation =>\n\t\t!width &&\n\t\tcss`\n\t\t\t/* default width and aspect ratio */\n\t\t\taspect-ratio: 4 / 3;\n\t\t\twidth: auto;\n\t\t`}\n\n\t${({ height }): SimpleInterpolation =>\n\t\t!height &&\n\t\tcss`\n\t\t\t/* default height */\n\t\t\theight: 70vh;\n\t\t\t/* on higher screen, reduce the default height */\n\t\t\t@media (min-height: 800px) {\n\t\t\t\theight: 60vh;\n\t\t\t}\n\t\t\t@media (min-height: 1000px) {\n\t\t\t\theight: 50vh;\n\t\t\t}\n\t\t`}\n\n\tmin-height: calc(${BOARD_HEADER_HEIGHT} * 3);\n\tmin-width: calc(${BOARD_TAB_WIDTH} * 2);\n\tbox-shadow: 0 0.125rem 0.3125rem 0 rgba(125, 125, 125, 0.5);\n\tpointer-events: auto;\n\tmax-height: 100%;\n\tmax-width: 100%;\n\t${({ expanded }): SimpleInterpolation =>\n\t\texpanded &&\n\t\tcss`\n\t\t\theight: calc(100% - 1.5rem) !important;\n\t\t\twidth: calc(100% - 3rem) !important;\n\t\t\ttop: 1.5rem !important;\n\t\t\tleft: 1.5rem !important;\n\t\t\tmin-height: auto;\n\t\t`};\n`;\n\nconst BoardHeader = styled(Row)`\n\tposition: relative;\n`;\n\nconst BoardDetailContainer = styled(Row)`\n\tmin-height: 0;\n`;\nconst BackButton = styled(IconButton)``;\nconst Actions = styled(Row)``;\n\ninterface ListItemContentProps {\n\ticon?: string;\n\tlabel: string;\n\tselected?: boolean;\n\tapp?: string;\n\tboardId: string;\n}\n\nfunction ListItemContent({\n\ticon,\n\tlabel,\n\tselected,\n\tapp,\n\tboardId\n}: ListItemContentProps): React.JSX.Element {\n\tconst t = getT();\n\tconst onClose = useCallback<IconButtonProps['onClick']>(\n\t\t(ev) => {\n\t\t\tev.stopPropagation();\n\t\t\tcloseBoard(boardId);\n\t\t},\n\t\t[boardId]\n\t);\n\treturn (\n\t\t<Container orientation=\"horizontal\" mainAlignment=\"flex-start\" gap={'0.5rem'}>\n\t\t\t{icon && <Icon icon={icon} size={'large'} color={'text'} style={{ pointerEvents: 'none' }} />}\n\t\t\t<OverflowContainer crossAlignment={'flex-start'}>\n\t\t\t\t<Text size={'medium'} weight={selected ? 'bold' : 'regular'} color={'gray0'}>\n\t\t\t\t\t{label}\n\t\t\t\t</Text>\n\t\t\t\t<Text size={'small'} weight={selected ? 'bold' : 'regular'} color={'secondary'}>\n\t\t\t\t\t{app &&\n\t\t\t\t\t\tt('board.from_app', 'From {{app}}', {\n\t\t\t\t\t\t\tapp\n\t\t\t\t\t\t})}\n\t\t\t\t</Text>\n\t\t\t</OverflowContainer>\n\t\t\t<IconButton icon={'CloseOutline'} size={'large'} onClick={onClose} />\n\t\t</Container>\n\t);\n}\n\nfunction calcPositionToRemainVisible(\n\tlastSavedPosition: number,\n\tcontainerSize: number,\n\tminVisibility: number\n): number {\n\tconst limit = containerSize - minVisibility;\n\tif (lastSavedPosition > limit) {\n\t\treturn limit > 0 ? limit : 0;\n\t}\n\treturn lastSavedPosition;\n}\n\nexport const BoardContainer = (): React.JSX.Element | null => {\n\tconst t = getT();\n\tconst { boards, minimized, expanded, current, orderedBoards } = useBoardStore();\n\n\tconst boardDropdownItems = useMemo(\n\t\t(): DropdownItem[] =>\n\t\t\tmap(\n\t\t\t\torderedBoards,\n\t\t\t\t(boardId): DropdownItem => ({\n\t\t\t\t\tid: boardId,\n\t\t\t\t\tlabel: boards[boardId].title,\n\t\t\t\t\ticon: boards[boardId].icon,\n\t\t\t\t\tonClick: () => setCurrentBoard(boardId),\n\t\t\t\t\tselected: boardId === current,\n\t\t\t\t\tcustomComponent: (\n\t\t\t\t\t\t<ListItemContent\n\t\t\t\t\t\t\tlabel={boards[boardId].title}\n\t\t\t\t\t\t\ticon={boards[boardId].icon}\n\t\t\t\t\t\t\tselected={boardId === current}\n\t\t\t\t\t\t\tapp={getApp(boards[boardId].app)()?.display}\n\t\t\t\t\t\t\tboardId={boardId}\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[boards, current, orderedBoards]\n\t);\n\n\tconst boardRef = useRef<HTMLDivElement>(null);\n\tconst boardContainerRef = useRef<HTMLDivElement>(null);\n\tconst [lastSavedBoardSizeAndPosition, setLastSavedBoardSizeAndPosition] = useLocalStorage<\n\t\tPartial<SizeAndPosition>\n\t>(LOCAL_STORAGE_BOARD_SIZE, {});\n\tconst [currentBoardSizeAndPosition, setCurrentBoardSizeAndPosition] = useState(\n\t\tlastSavedBoardSizeAndPosition\n\t);\n\tconst lastSavedBoardSizeAndPositionRef = useRef(lastSavedBoardSizeAndPosition);\n\tconst [isMoving, moveElementHandler] = useMove(boardRef, {\n\t\tlocalStorageKey: LOCAL_STORAGE_BOARD_SIZE\n\t});\n\n\tconst isDefaultSizeAndPosition = useMemo(\n\t\t() => size(currentBoardSizeAndPosition) === 0,\n\t\t[currentBoardSizeAndPosition]\n\t);\n\tconst isBoardEmpty = useMemo(() => isEmpty(boards), [boards]);\n\n\tconst resetSizeAndPosition = useCallback(() => {\n\t\tsetLastSavedBoardSizeAndPosition({});\n\t\treduceBoards();\n\t}, [setLastSavedBoardSizeAndPosition]);\n\n\tuseEffect(() => {\n\t\t// reset position when the board is closed\n\t\tif (isBoardEmpty) {\n\t\t\tsetLastSavedBoardSizeAndPosition((prevState) => {\n\t\t\t\tconst newState = { ...prevState };\n\t\t\t\tdelete newState.left;\n\t\t\t\tdelete newState.top;\n\t\t\t\treturn newState;\n\t\t\t});\n\t\t}\n\t}, [isBoardEmpty, setLastSavedBoardSizeAndPosition]);\n\n\tuseEffect(() => {\n\t\tif (boardRef.current) {\n\t\t\tconst boardElement = boardRef.current;\n\t\t\tsetElementSizeAndPosition(boardElement, 'width', currentBoardSizeAndPosition.width);\n\t\t\tsetElementSizeAndPosition(boardElement, 'height', currentBoardSizeAndPosition.height);\n\t\t\tsetElementSizeAndPosition(boardElement, 'top', currentBoardSizeAndPosition.top);\n\t\t\tsetElementSizeAndPosition(boardElement, 'left', currentBoardSizeAndPosition.left);\n\t\t}\n\t}, [currentBoardSizeAndPosition]);\n\n\tconst updateBoardPosition = useMemo(\n\t\t() =>\n\t\t\tdebounce(\n\t\t\t\t() => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tboardContainerRef.current &&\n\t\t\t\t\t\tboardContainerRef.current.clientHeight > 0 &&\n\t\t\t\t\t\tboardContainerRef.current.clientWidth > 0\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst newSizeAndPosition: Partial<SizeAndPosition> = {};\n\t\t\t\t\t\tif (lastSavedBoardSizeAndPositionRef.current.width !== undefined) {\n\t\t\t\t\t\t\tnewSizeAndPosition.width = lastSavedBoardSizeAndPositionRef.current.width;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (lastSavedBoardSizeAndPositionRef.current.height !== undefined) {\n\t\t\t\t\t\t\tnewSizeAndPosition.height = lastSavedBoardSizeAndPositionRef.current.height;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst boardContainer = boardContainerRef.current;\n\t\t\t\t\t\tif (lastSavedBoardSizeAndPositionRef.current.top !== undefined) {\n\t\t\t\t\t\t\tnewSizeAndPosition.top = calcPositionToRemainVisible(\n\t\t\t\t\t\t\t\tlastSavedBoardSizeAndPositionRef.current.top,\n\t\t\t\t\t\t\t\tboardContainer.clientHeight,\n\t\t\t\t\t\t\t\tBOARD_MIN_VISIBILITY.top\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (lastSavedBoardSizeAndPositionRef.current.left !== undefined) {\n\t\t\t\t\t\t\tnewSizeAndPosition.left = calcPositionToRemainVisible(\n\t\t\t\t\t\t\t\tlastSavedBoardSizeAndPositionRef.current.left,\n\t\t\t\t\t\t\t\tboardContainer.clientWidth,\n\t\t\t\t\t\t\t\tBOARD_MIN_VISIBILITY.left\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetCurrentBoardSizeAndPosition(newSizeAndPosition);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t0,\n\t\t\t\t{ leading: false, trailing: true }\n\t\t\t),\n\t\t[]\n\t);\n\n\tuseEffect(() => {\n\t\twindow.addEventListener('resize', updateBoardPosition);\n\t\treturn (): void => {\n\t\t\twindow.removeEventListener('resize', updateBoardPosition);\n\t\t};\n\t}, [updateBoardPosition]);\n\n\tuseEffect(() => {\n\t\tlastSavedBoardSizeAndPositionRef.current = { ...lastSavedBoardSizeAndPosition };\n\t\t// if there is a board open, then update the size and position based on the window\n\t\tif (boardRef.current) {\n\t\t\tif (size(lastSavedBoardSizeAndPosition) > 0) {\n\t\t\t\tupdateBoardPosition();\n\t\t\t} else {\n\t\t\t\tsetCurrentBoardSizeAndPosition({});\n\t\t\t}\n\t\t} else {\n\t\t\t// otherwise just align the current with the local storage data (refresh case, board is closed)\n\t\t\tsetCurrentBoardSizeAndPosition({ ...lastSavedBoardSizeAndPosition });\n\t\t}\n\n\t\treturn (): void => {\n\t\t\tupdateBoardPosition.cancel();\n\t\t};\n\t}, [lastSavedBoardSizeAndPosition, updateBoardPosition]);\n\n\tconst clickHandler = useCallback<\n\t\t(onClickFn: IconButtonProps['onClick']) => IconButtonProps['onClick']\n\t>(\n\t\t(clickFn) => (event) => {\n\t\t\tif (event.type !== 'click' || !event.defaultPrevented) {\n\t\t\t\tclickFn(event);\n\t\t\t}\n\t\t},\n\t\t[]\n\t);\n\n\treturn (\n\t\t(!isBoardEmpty && current && (\n\t\t\t<BoardContainerComp expanded={expanded} minimized={minimized} ref={boardContainerRef}>\n\t\t\t\t<Board\n\t\t\t\t\tdata-testid=\"NewItemContainer\"\n\t\t\t\t\tbackground={'gray6'}\n\t\t\t\t\tcrossAlignment=\"unset\"\n\t\t\t\t\texpanded={expanded}\n\t\t\t\t\tref={boardRef}\n\t\t\t\t\twidth={currentBoardSizeAndPosition.width}\n\t\t\t\t\theight={currentBoardSizeAndPosition.height}\n\t\t\t\t\tonMouseDown={(!expanded && moveElementHandler) || undefined}\n\t\t\t\t>\n\t\t\t\t\t<ResizableContainer\n\t\t\t\t\t\tcrossAlignment={'unset'}\n\t\t\t\t\t\telementToResize={boardRef}\n\t\t\t\t\t\tlocalStorageKey={LOCAL_STORAGE_BOARD_SIZE}\n\t\t\t\t\t\tdisabled={expanded}\n\t\t\t\t\t>\n\t\t\t\t\t\t<BoardHeader background={'gray5'}>\n\t\t\t\t\t\t\t<Padding all=\"extrasmall\">\n\t\t\t\t\t\t\t\t<Tooltip label={t('board.hide', 'Hide board')} placement=\"top\" disabled={isMoving}>\n\t\t\t\t\t\t\t\t\t<BackButton icon=\"BoardCollapseOutline\" onClick={clickHandler(minimizeBoards)} />\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t</Padding>\n\t\t\t\t\t\t\t<TabsList />\n\t\t\t\t\t\t\t<Actions padding={{ all: 'extrasmall' }}>\n\t\t\t\t\t\t\t\t{boards[current]?.context?.onReturnToApp && (\n\t\t\t\t\t\t\t\t\t<Padding right=\"extrasmall\">\n\t\t\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\t\t\tlabel={t('board.open_app', 'Open in app')}\n\t\t\t\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\t\t\t\tdisabled={isMoving}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\t\t\ticon={'DiagonalArrowRightUp'}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={clickHandler(onGoToPanel)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t</Padding>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<Container gap={'0.25rem'} orientation={'horizontal'} width={'fit'} height={'fit'}>\n\t\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\t\tlabel={t('board.show_tabs', 'Show other tabs')}\n\t\t\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\t\t\tdisabled={isMoving}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Dropdown items={boardDropdownItems}>\n\t\t\t\t\t\t\t\t\t\t\t<IconButton icon={'ChevronDown'} onClick={clickHandler(noop)} />\n\t\t\t\t\t\t\t\t\t\t</Dropdown>\n\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\tisDefaultSizeAndPosition\n\t\t\t\t\t\t\t\t\t\t\t\t? t('board.reset_size.disabled', 'Board already at the default position')\n\t\t\t\t\t\t\t\t\t\t\t\t: t('board.reset_size.enabled', 'Return to default position and size')\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\t\t\tdisabled={isMoving}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\t\ticon={'DiagonalArrowLeftDown'}\n\t\t\t\t\t\t\t\t\t\t\tonClick={clickHandler(resetSizeAndPosition)}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={isDefaultSizeAndPosition}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\t\t\t\t\t? t('board.reduce', 'Reduce board')\n\t\t\t\t\t\t\t\t\t\t\t\t: t('board.enlarge', 'Enlarge board')\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\t\t\tdisabled={isMoving}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\t\ticon={expanded ? 'CollapseOutline' : 'ExpandOutline'}\n\t\t\t\t\t\t\t\t\t\t\tonClick={clickHandler(expanded ? reduceBoards : expandBoards)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\tlabel={t('board.close_tabs', 'Close all your tabs')}\n\t\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\t\tdisabled={isMoving}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<IconButton icon=\"CloseOutline\" onClick={clickHandler(closeAllBoards)} />\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t</Actions>\n\t\t\t\t\t\t</BoardHeader>\n\t\t\t\t\t\t<Divider style={{ height: '0.125rem' }} />\n\t\t\t\t\t\t<BoardDetailContainer takeAvailableSpace>\n\t\t\t\t\t\t\t{map(boards, (b) => (\n\t\t\t\t\t\t\t\t<AppBoard key={b.id} board={b} />\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</BoardDetailContainer>\n\t\t\t\t\t</ResizableContainer>\n\t\t\t\t</Board>\n\t\t\t</BoardContainerComp>\n\t\t)) ||\n\t\tnull\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 React from 'react';\n\nimport { Row } from '@zextras/carbonio-design-system';\nimport { isEmpty, map } from 'lodash';\nimport styled from 'styled-components';\n\nimport { AppBoardTab } from './board-tab';\nimport { useBoardStore } from '../../store/boards';\n\nconst CustomRow = styled(Row)`\n\toverflow-x: auto;\n\t&::-webkit-scrollbar {\n\t\theight: 0.5rem;\n\t}\n`;\n\nexport const TabsList = (): React.JSX.Element => {\n\tconst { boards, orderedBoards } = useBoardStore();\n\treturn (\n\t\t<CustomRow wrap=\"nowrap\" height=\"100%\" mainAlignment=\"flex-start\" takeAvailableSpace>\n\t\t\t{boards &&\n\t\t\t\t!isEmpty(orderedBoards) &&\n\t\t\t\tmap(orderedBoards, (boardId, idx) => (\n\t\t\t\t\t<AppBoardTab\n\t\t\t\t\t\tkey={boardId}\n\t\t\t\t\t\tid={boardId}\n\t\t\t\t\t\ttitle={boards[boardId].title}\n\t\t\t\t\t\ticon={boards[boardId].icon}\n\t\t\t\t\t\tfirstTab={idx === 0}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t</CustomRow>\n\t);\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, useEffect, useRef, useState } from 'react';\n\nimport {\n\tContainer,\n\tIcon,\n\tIconButton,\n\tRow,\n\tRowProps,\n\tText,\n\tTooltip\n} from '@zextras/carbonio-design-system';\nimport styled, { css, SimpleInterpolation } from 'styled-components';\n\nimport { closeBoard, setCurrentBoard, useBoardStore } from '../../store/boards';\nimport { getT } from '../../store/i18n';\nimport './board-tab.css';\n\nconst TabContainer = styled(Row)<RowProps & { active: boolean }>`\n\tcontainer-type: inline-size;\n\tcontainer-name: tab;\n\tmax-width: calc(3rem + 15ch);\n\tmin-width: 1rem;\n\tflex-grow: 1;\n\tflex-basis: 0;\n\tcursor: pointer;\n\theight: 1.75rem;\n\tuser-select: none;\n\tbackground-color: ${({ theme, active }): string =>\n\t\tactive ? theme.palette.gray3.regular : theme.palette.gray5.regular};\n\tgap: 0.25rem;\n\tborder-radius: 0.25rem;\n\tmargin-left: 0.25rem;\n\tmargin-right: 0.25rem;\n\toverflow: hidden;\n\t${({ active }): SimpleInterpolation =>\n\t\tactive &&\n\t\tcss`\n\t\t\tmin-width: calc(3rem + 15ch);\n\t\t`}\n`;\n\nconst CloseContainer = styled(Container)`\n\tmargin-left: auto;\n`;\n\nconst TabIcon = styled(Icon)`\n\tmin-width: 1.5rem;\n`;\n\nconst CustomText = styled(Text)<{ overflowing: boolean }>`\n\t${({ overflowing }): SimpleInterpolation =>\n\t\toverflowing &&\n\t\tcss`\n\t\t\tmask-image: linear-gradient(90deg, #000 60%, transparent);\n\t\t`}\n\ttext-overflow: unset;\n`;\n\nconst VerticalDivider = styled(Container)`\n\twidth: 0.0625rem;\n\tmin-width: 0.0625rem;\n\theight: 2.25rem;\n\tbackground: ${({ theme }): string => theme.palette.gray3.regular};\n`;\n\nexport const AppBoardTab: FC<{ id: string; icon: string; title: string; firstTab: boolean }> = ({\n\tid,\n\ticon,\n\ttitle,\n\tfirstTab\n}) => {\n\tconst current = useBoardStore((s) => s.current);\n\tconst t = getT();\n\tconst onClick = useCallback(\n\t\t(event: React.SyntheticEvent<HTMLDivElement>) => {\n\t\t\tif (!event.defaultPrevented) {\n\t\t\t\tsetCurrentBoard(id);\n\t\t\t}\n\t\t},\n\t\t[id]\n\t);\n\tconst onRemove = useCallback(\n\t\t(ev: React.SyntheticEvent | Event) => {\n\t\t\tif (!ev.defaultPrevented) {\n\t\t\t\tev.stopPropagation();\n\t\t\t\tcloseBoard(id);\n\t\t\t}\n\t\t},\n\t\t[id]\n\t);\n\n\tconst textRef = useRef<HTMLDivElement>(null);\n\tconst [textOverflowing, setTextOverflowing] = useState(false);\n\tconst resizeObserverRef = useRef<ResizeObserver>();\n\tuseEffect(() => {\n\t\tif (textRef.current && !resizeObserverRef.current) {\n\t\t\tresizeObserverRef.current = new ResizeObserver(() => {\n\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\tif (textRef.current) {\n\t\t\t\t\t\tsetTextOverflowing(textRef.current.offsetWidth < textRef.current.scrollWidth);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t\tresizeObserverRef.current.observe(textRef.current);\n\t\t}\n\n\t\treturn (): void => {\n\t\t\tresizeObserverRef.current?.disconnect();\n\t\t};\n\t}, [textRef]);\n\n\treturn (\n\t\t<>\n\t\t\t{!firstTab && <VerticalDivider />}\n\t\t\t<TabContainer\n\t\t\t\twrap={'nowrap'}\n\t\t\t\torientation=\"row\"\n\t\t\t\tmainAlignment={'flex-start'}\n\t\t\t\tonClick={onClick}\n\t\t\t\tdata-testid={`board-tab-${id}`}\n\t\t\t\tpadding={{ horizontal: 'extrasmall' }}\n\t\t\t\tactive={current === id}\n\t\t\t>\n\t\t\t\t<TabIcon icon={icon} size=\"large\" />\n\t\t\t\t<Tooltip label={title} placement=\"top\" maxWidth=\"700px\" triggerRef={textRef}>\n\t\t\t\t\t<CustomText\n\t\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\t\tweight=\"regular\"\n\t\t\t\t\t\tcolor={current === id ? 'text' : 'secondary'}\n\t\t\t\t\t\toverflowing={textOverflowing}\n\t\t\t\t\t\tclassName=\"tab-text\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</CustomText>\n\t\t\t\t</Tooltip>\n\t\t\t\t<CloseContainer orientation={'row'} width={'fit'}>\n\t\t\t\t\t<Tooltip label={t('board.close_tab', 'Close Tab')} placement=\"top\">\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tclassName=\"tab-close-icon-button\"\n\t\t\t\t\t\t\ticonColor=\"secondary\"\n\t\t\t\t\t\t\ticon=\"Close\"\n\t\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\t\tstyle={{ padding: '0.125rem', width: '1.5rem', height: '1.5rem' }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t</CloseContainer>\n\t\t\t</TabContainer>\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 */\n\nimport React, { FC, useEffect, useMemo } from 'react';\n\nimport { createMemoryHistory } from 'history';\nimport { find, startsWith } from 'lodash';\nimport { Route, Router, useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { Board } from '../../../types';\nimport AppContextProvider from '../../boot/app/app-context-provider';\nimport { useAppStore } from '../../store/app';\nimport { BoardProvider, updateBoard, useBoardStore } from '../../store/boards';\nimport { stopPropagation } from '../../utils/utils';\n\nconst BoardContainer = styled.div<{ show: boolean }>`\n\tdisplay: ${(props): string => (props.show ? 'block' : 'none')};\n\theight: 100%;\n\twidth: 100%;\n\toverflow-y: auto;\n\t&::-webkit-scrollbar {\n\t\twidth: 0.5rem;\n\t}\n\n\t&::-webkit-scrollbar-track {\n\t\tbackground-color: transparent;\n\t}\n\n\t&::-webkit-scrollbar-thumb {\n\t\tbackground-color: ${({ theme }): string => theme.palette.gray3.regular};\n\t\tborder-radius: 0.25rem;\n\t}\n`;\n\nexport const AppBoard: FC<{ board: Board }> = ({ board }) => {\n\tconst current = useBoardStore((s) => s.current);\n\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\tconst history = useMemo(() => createMemoryHistory({ initialEntries: [board.url] }), []);\n\tconst boardViews = useAppStore((s) => s.views.board);\n\tconst windowHistory = useHistory();\n\tconst route = useMemo(() => {\n\t\tconst view = find(boardViews, (v) => v.id === board.url || startsWith(board.url, v.route));\n\t\tif (view)\n\t\t\treturn (\n\t\t\t\t<Route key={view.id} path={view.route}>\n\t\t\t\t\t<AppContextProvider key={view.id} pkg={view.app}>\n\t\t\t\t\t\t<BoardProvider id={board.id}>\n\t\t\t\t\t\t\t<view.component windowHistory={windowHistory} />\n\t\t\t\t\t\t</BoardProvider>\n\t\t\t\t\t</AppContextProvider>\n\t\t\t\t</Route>\n\t\t\t);\n\t\treturn null;\n\t}, [board.id, board.url, boardViews, windowHistory]);\n\tuseEffect(() => {\n\t\tconst unlisten = history.listen(({ location }) => {\n\t\t\tif (`${location.pathname}${location.search}${location.hash}` !== board.url) {\n\t\t\t\tupdateBoard(board.id, { url: `${location.pathname}${location.search}${location.hash}` });\n\t\t\t}\n\t\t});\n\t\treturn () => {\n\t\t\tunlisten();\n\t\t};\n\t}, [board.url, board.id, history]);\n\n\tuseEffect(() => {\n\t\tconst l = history.location;\n\t\tif (`${l.pathname}${l.search}${l.hash}` !== board.url) {\n\t\t\thistory.push(board.url);\n\t\t}\n\t}, [board.url, history]);\n\n\treturn (\n\t\t<BoardContainer show={current === board.id} onMouseDown={stopPropagation}>\n\t\t\t<Router history={history}>{route}</Router>\n\t\t</BoardContainer>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { CSSProperties, useMemo, useRef } from 'react';\n\nimport { Container, ContainerProps } from '@zextras/carbonio-design-system';\nimport styled, { css, SimpleInterpolation } from 'styled-components';\n\nimport { Border, BORDERS, getCursorFromBorder, useResize } from '../hooks/useResize';\n\ninterface ResizableBorderProps {\n\tborder: Border;\n\telementToResize: React.RefObject<HTMLElement>;\n\tlocalStorageKey?: string;\n\tkeepSynchedWithStorage?: boolean;\n}\n\ninterface ResizableContainerProps extends ContainerProps {\n\telementToResize: React.RefObject<HTMLElement>;\n\tlocalStorageKey?: string;\n\tkeepSynchedWithStorage?: boolean;\n\tdisabled?: boolean;\n\tminSize?: { width: number; height: number };\n}\n\ninterface BorderWithResizeProps {\n\t$cursor: CSSProperties['cursor'];\n\t$width: string;\n\t$height: string;\n\t$position: {\n\t\ttop?: number;\n\t\tbottom?: number;\n\t\tleft?: number;\n\t\tright?: number;\n\t};\n\t$translateTransform?: { x?: string; y?: string };\n}\n\nconst MainContainer = styled(Container)`\n\tposition: relative;\n\twidth: 100%;\n\theight: 100%;\n`;\n\nconst BorderWithResize = styled.div<\n\tBorderWithResizeProps & {\n\t\theight?: never;\n\t\twidth?: never;\n\t}\n>`\n\tposition: absolute;\n\tz-index: 2;\n\tcursor: ${({ $cursor }): CSSProperties['cursor'] => $cursor};\n\twidth: ${({ $width }): string => $width};\n\theight: ${({ $height }): string => $height};\n\t${({ $position }): SimpleInterpolation => $position};\n\t${({ $translateTransform }): SimpleInterpolation =>\n\t\t($translateTransform?.x || $translateTransform?.y) &&\n\t\tcss`\n\t\t\ttransform: translate(${$translateTransform?.x || 0}, ${$translateTransform?.y || 0});\n\t\t`}\n`;\n\nconst ResizableBorder = ({\n\tborder,\n\telementToResize,\n\tlocalStorageKey,\n\tkeepSynchedWithStorage\n}: ResizableBorderProps): React.JSX.Element => {\n\tconst borderRef = useRef<HTMLDivElement>(null);\n\tconst resizeHandler = useResize(elementToResize, border, {\n\t\tlocalStorageKey,\n\t\tkeepSynchedWithStorage\n\t});\n\n\tconst sizes = useMemo<Pick<BorderWithResizeProps, '$width' | '$height'>>(() => {\n\t\tswitch (border) {\n\t\t\tcase 'n':\n\t\t\tcase 's':\n\t\t\t\treturn {\n\t\t\t\t\t$width: '100%',\n\t\t\t\t\t$height: '0.25rem'\n\t\t\t\t};\n\t\t\tcase 'e':\n\t\t\tcase 'w':\n\t\t\t\treturn {\n\t\t\t\t\t$width: '0.25rem',\n\t\t\t\t\t$height: '100%'\n\t\t\t\t};\n\t\t\tcase 'ne':\n\t\t\tcase 'nw':\n\t\t\tcase 'se':\n\t\t\tcase 'sw':\n\t\t\tdefault:\n\t\t\t\treturn {\n\t\t\t\t\t$width: '0.25rem',\n\t\t\t\t\t$height: '0.25rem'\n\t\t\t\t};\n\t\t}\n\t}, [border]);\n\n\tconst positions = useMemo<\n\t\tPick<BorderWithResizeProps, '$position' | '$translateTransform'>\n\t>(() => {\n\t\tconst $position: BorderWithResizeProps['$position'] = {};\n\t\tconst $translateTransform: BorderWithResizeProps['$translateTransform'] = {};\n\t\tif (border.includes('n')) {\n\t\t\t$position.top = 0;\n\t\t\t$translateTransform.y = '-50%';\n\t\t}\n\t\tif (border.includes('s')) {\n\t\t\t$position.bottom = 0;\n\t\t\t$translateTransform.y = '50%';\n\t\t}\n\t\tif (border.includes('e')) {\n\t\t\t$position.right = 0;\n\t\t\t$translateTransform.x = '50%';\n\t\t}\n\t\tif (border.includes('w')) {\n\t\t\t$position.left = 0;\n\t\t\t$translateTransform.x = '-50%';\n\t\t}\n\t\treturn { $position, $translateTransform };\n\t}, [border]);\n\n\treturn (\n\t\t<BorderWithResize\n\t\t\tref={borderRef}\n\t\t\t{...sizes}\n\t\t\t{...positions}\n\t\t\t$cursor={getCursorFromBorder(border)}\n\t\t\tonMouseDown={resizeHandler}\n\t\t\tdata-testid={`resizable-border-${border}`}\n\t\t/>\n\t);\n};\n\nexport const ResizableContainer = ({\n\telementToResize,\n\tchildren,\n\tlocalStorageKey,\n\tdisabled = false,\n\tkeepSynchedWithStorage,\n\t...rest\n}: ResizableContainerProps): React.JSX.Element => {\n\tconst borders = useMemo(\n\t\t() =>\n\t\t\tBORDERS.map((border) => (\n\t\t\t\t<ResizableBorder\n\t\t\t\t\tkey={`resizable-border-${border}`}\n\t\t\t\t\tborder={border}\n\t\t\t\t\telementToResize={elementToResize}\n\t\t\t\t\tlocalStorageKey={localStorageKey}\n\t\t\t\t\tkeepSynchedWithStorage={keepSynchedWithStorage}\n\t\t\t\t/>\n\t\t\t)),\n\t\t[elementToResize, keepSynchedWithStorage, localStorageKey]\n\t);\n\n\treturn (\n\t\t<MainContainer {...rest}>\n\t\t\t{!disabled && borders}\n\t\t\t{children}\n\t\t</MainContainer>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { FunctionComponent } from 'react';\n\nimport { Icon } from '@zextras/carbonio-design-system';\nimport styled from 'styled-components';\n\nconst VerticalDivider = styled.div`\n\tposition: relative;\n\toverflow: visible;\n\theight: 100%;\n\twidth: 0.0625rem;\n\tmax-width: 0.0625rem;\n\tmin-width: 0.0625rem;\n\tbackground-color: ${({ theme }): string => theme.palette.gray2.regular};\n\ttransition: background 0.2s;\n\t&:hover {\n\t\tbackground-color: ${({ theme }): string => theme.palette.gray2.hover};\n\t}\n`;\n\nconst Bubble = styled.div<{ open: boolean }>`\n\tcursor: pointer;\n\tz-index: 2;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tposition: absolute;\n\ttop: 50%;\n\tleft: -0.75rem;\n\twidth: 1.5rem;\n\theight: 1.5rem;\n\tborder-radius: 50%;\n\tbackground-color: ${({ theme }): string => theme.palette.gray2.regular};\n\ttransition: background-color 0.2s, transform 0.2s;\n\ttransform: scaleX(${({ open }): number => (open ? 1 : -1)});\n\t&:hover {\n\t\tbackground-color: ${({ theme }): string => theme.palette.gray2.hover};\n\t}\n\t&:active {\n\t\tbackground-color: ${({ theme }): string => theme.palette.gray2.active};\n\t}\n`;\n\nexport const Collapser: FunctionComponent<{ open: boolean; onClick: () => void }> = ({\n\topen,\n\tonClick\n}) => (\n\t<VerticalDivider>\n\t\t<Bubble onClick={onClick} open={open}>\n\t\t\t<Icon size=\"medium\" icon=\"ChevronLeft\" />\n\t\t</Bubble>\n\t</VerticalDivider>\n);\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, useState } from 'react';\n\nimport {\n\tButton,\n\tContainer,\n\tDropdown,\n\ttype DropdownItem,\n\tMultiButton\n} from '@zextras/carbonio-design-system';\nimport { Location } from 'history';\nimport { find, groupBy, noop, reduce } from 'lodash';\nimport { useLocation } from 'react-router-dom';\n\nimport { AppRoute, CarbonioModule } from '../../types';\nimport { ACTION_TYPES } from '../constants';\nimport { useCurrentRoute } from '../history/hooks';\nimport { useAppList } from '../store/app';\nimport { getT } from '../store/i18n';\nimport { useActions } from '../store/integrations/hooks';\n\ninterface CreationButtonProps {\n\tactiveRoute: AppRoute;\n\tlocation: Location;\n}\n\nexport const CreationButtonComponent = ({\n\tactiveRoute,\n\tlocation\n}: CreationButtonProps): React.JSX.Element => {\n\tconst t = getT();\n\tconst actions = useActions({ activeRoute, location }, ACTION_TYPES.NEW);\n\tconst [open, setOpen] = useState(false);\n\tconst primaryAction = useMemo(\n\t\t() =>\n\t\t\tfind(\n\t\t\t\tactions,\n\t\t\t\t(action) =>\n\t\t\t\t\t(action.group === activeRoute?.id || action.group === activeRoute?.app) &&\n\t\t\t\t\taction.primary === true\n\t\t\t),\n\t\t[actions, activeRoute?.app, activeRoute?.id]\n\t);\n\tconst apps = useAppList();\n\tconst byApp = useMemo(() => groupBy(actions, 'group'), [actions]);\n\n\tconst secondaryActions = useMemo<DropdownItem[]>(\n\t\t(): DropdownItem[] => [\n\t\t\t...(byApp[activeRoute?.app ?? ''] ?? []),\n\t\t\t...reduce<CarbonioModule, DropdownItem[]>(\n\t\t\t\tapps,\n\t\t\t\t(acc, app, i): DropdownItem[] => {\n\t\t\t\t\tif (app.name !== activeRoute?.app && byApp[app.name]?.length > 0) {\n\t\t\t\t\t\tacc.push({ type: 'divider', label: '', id: `divider-${i}` }, ...byApp[app.name]);\n\t\t\t\t\t}\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\t[]\n\t\t\t)\n\t\t],\n\t\t[activeRoute?.app, apps, byApp]\n\t);\n\n\tconst onClose = useCallback(() => {\n\t\tsetOpen(false);\n\t}, []);\n\tconst onOpen = useCallback(() => {\n\t\tsetOpen(true);\n\t}, []);\n\n\treturn primaryAction ? (\n\t\t<Container minWidth=\"80px\">\n\t\t\t<MultiButton\n\t\t\t\tdata-testid=\"NewItemButton\"\n\t\t\t\tsize=\"extralarge\"\n\t\t\t\tbackground={'primary'}\n\t\t\t\tlabel={t('new', 'New')}\n\t\t\t\tonClick={primaryAction.onClick || primaryAction.click || noop}\n\t\t\t\titems={secondaryActions}\n\t\t\t\tdisabledPrimary={!primaryAction || primaryAction?.disabled}\n\t\t\t\tdisabledSecondary={!secondaryActions?.length}\n\t\t\t/>\n\t\t</Container>\n\t) : (\n\t\t<Dropdown items={secondaryActions} onClose={onClose} onOpen={onOpen}>\n\t\t\t<Button\n\t\t\t\tdata-testid=\"NewItemButton\"\n\t\t\t\tsize=\"extralarge\"\n\t\t\t\tbackgroundColor=\"primary\"\n\t\t\t\tlabel={t('new', 'New')}\n\t\t\t\ticon={open ? 'ChevronUp' : 'ChevronDown'}\n\t\t\t\tonClick={noop}\n\t\t\t/>\n\t\t</Dropdown>\n\t);\n};\n\nconst MemoCreationButton = React.memo(CreationButtonComponent);\n\nexport const CreationButton: FC = () => {\n\tconst locationFull = useLocation() as Location;\n\tconst activeRoute = useCurrentRoute() as AppRoute;\n\n\tconst truncateLocation = (location: Location): Location => ({\n\t\t...location,\n\t\tpathname: location?.pathname?.split('/').slice(0, 2).join('/'),\n\t\tkey: ''\n\t});\n\n\tconst location = useMemo(() => truncateLocation(locationFull), [locationFull]);\n\treturn <MemoCreationButton activeRoute={activeRoute} location={location} />;\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useContext } from 'react';\n\nimport ShellContext from '../shell-context';\n\nexport function useIsMobile(): boolean {\n\tconst { isMobile } = useContext(ShellContext);\n\treturn isMobile;\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, useMemo, useRef } from 'react';\n\nimport { create } from 'zustand';\n\nimport { createExportForTestOnly } from '../../utils/utils';\n\nfunction isSameLocalStorageValue(valueA: unknown, valueB: unknown): boolean {\n\treturn JSON.stringify(valueA) === JSON.stringify(valueB);\n}\n\ntype LocalStorageOptions = { keepSynchedWithStorage?: boolean };\n\ntype LocalStorageState = {\n\tstorage: Record<string, any>;\n\treadValue: <T>(key: string, fallback: T) => void;\n\tsetValue: <T>(key: string, value: React.SetStateAction<T>) => void;\n};\n\nconst useLocalStorageStore = create<LocalStorageState>()((setState) => ({\n\tstorage: {},\n\treadValue<T>(key: string, fallback: T): void {\n\t\ttry {\n\t\t\tconst localStorageItem = window.localStorage.getItem(key);\n\t\t\tconst item = localStorageItem !== null ? JSON.parse(localStorageItem) : fallback;\n\t\t\tsetState((state) => {\n\t\t\t\tif (state.storage[key] === undefined) {\n\t\t\t\t\treturn { storage: { ...state.storage, [key]: item } };\n\t\t\t\t}\n\t\t\t\treturn state;\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tconsole.error(error);\n\t\t\tsetState((state) => ({ storage: { ...state.storage, [key]: fallback } }));\n\t\t}\n\t},\n\tsetValue<T>(key: string, value: React.SetStateAction<T>): void {\n\t\tsetState((state) => {\n\t\t\tconst valueToStore = value instanceof Function ? value(state.storage[key]) : value;\n\t\t\tif (!isSameLocalStorageValue(valueToStore, state.storage[key])) {\n\t\t\t\twindow.localStorage.setItem(key, JSON.stringify(valueToStore));\n\t\t\t\treturn { storage: { ...state.storage, [key]: valueToStore } };\n\t\t\t}\n\t\t\treturn state;\n\t\t});\n\t}\n}));\n\nconst DEFAULT_OPTIONS: LocalStorageOptions = {\n\tkeepSynchedWithStorage: true\n};\n\nexport function useLocalStorage<T>(\n\tkey: string,\n\tinitialValue: T,\n\toptions = DEFAULT_OPTIONS\n): [T, React.Dispatch<React.SetStateAction<T>>] {\n\tconst storedValue = useLocalStorageStore((state) => state.storage[key] || initialValue);\n\tconst shouldDispatchStorageEventRef = useRef(false);\n\tconst localStorageOptions = useMemo(() => ({ ...DEFAULT_OPTIONS, ...options }), [options]);\n\n\tconst readValueForKey = useCallback(() => {\n\t\tuseLocalStorageStore.getState().readValue(key, initialValue);\n\t}, [key, initialValue]);\n\n\tuseEffect(() => {\n\t\treadValueForKey();\n\t}, [readValueForKey]);\n\n\tconst setValueForKey = useCallback<React.Dispatch<React.SetStateAction<T>>>(\n\t\t(value) => {\n\t\t\tuseLocalStorageStore.getState().setValue(key, value);\n\t\t\tshouldDispatchStorageEventRef.current = true;\n\t\t},\n\t\t[key]\n\t);\n\n\tuseEffect(() => {\n\t\tif (localStorageOptions?.keepSynchedWithStorage) {\n\t\t\twindow.addEventListener('storage', readValueForKey);\n\t\t}\n\n\t\treturn (): void => {\n\t\t\twindow.removeEventListener('storage', readValueForKey);\n\t\t};\n\t}, [localStorageOptions?.keepSynchedWithStorage, readValueForKey]);\n\n\tuseEffect(() => {\n\t\tif (shouldDispatchStorageEventRef.current) {\n\t\t\t// dispatch event when stored value change,\n\t\t\t// but only after render to avoid possible update of parent component during render\n\t\t\twindow.dispatchEvent(new Event('storage'));\n\t\t\tshouldDispatchStorageEventRef.current = false;\n\t\t}\n\t}, [storedValue]);\n\n\treturn [storedValue, setValueForKey];\n}\n\nexport const exportForTest = createExportForTestOnly({ useLocalStorageStore });\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, useState } from 'react';\n\nimport { forEach } from 'lodash';\n\nimport { useLocalStorage } from './useLocalStorage';\nimport {\n\tElementPosition,\n\tsetElementSizeAndPosition,\n\tsetGlobalCursor,\n\tSizeAndPosition\n} from '../../utils/utils';\n\ntype UseMoveReturnType = [isMoving: boolean, moveHandler: React.MouseEventHandler];\ntype MoveOptions = {\n\tlocalStorageKey?: string;\n\tkeepSynchedWithStorage?: boolean;\n};\n\nexport const BOARD_CURSOR_TIMEOUT = 250;\n\nfunction calcNewPosition(\n\tfrom: SizeAndPosition & {\n\t\tclientTop: number;\n\t\tclientLeft: number;\n\t\tmouseClientX: number;\n\t\tmouseClientY: number;\n\t},\n\tlimitContainer: HTMLElement,\n\tmouseEvent: MouseEvent\n): ElementPosition {\n\tconst limitClientRect = limitContainer.getBoundingClientRect();\n\tconst clientTopLimit = limitClientRect.top ?? 0;\n\tconst moveTopDelta = mouseEvent.clientY - from.mouseClientY;\n\tconst newClientTop = from.clientTop + moveTopDelta;\n\tconst newTop = from.top + moveTopDelta;\n\tconst clientLeftLimit = limitClientRect.left ?? 0;\n\tconst moveLeftDelta = mouseEvent.clientX - from.mouseClientX;\n\tconst newClientLeft = from.clientLeft + moveLeftDelta;\n\tconst newLeft = from.left + moveLeftDelta;\n\treturn {\n\t\tleft: newClientLeft > clientLeftLimit ? newLeft : 0,\n\t\ttop: newClientTop > clientTopLimit ? newTop : 0\n\t};\n}\n\nexport const useMove = (\n\telementToMoveRef: React.RefObject<HTMLElement>,\n\toptions?: MoveOptions\n): UseMoveReturnType => {\n\tconst [isMoving, setIsMoving] = useState(false);\n\tconst isMoveEnabledRef = useRef(false);\n\tconst initialSizeAndPositionRef = useRef<Parameters<typeof calcNewPosition>[0]>();\n\tconst [lastSavedPosition, setLastSavedPosition] = useLocalStorage<Partial<SizeAndPosition>>(\n\t\toptions?.localStorageKey || 'use-move-data',\n\t\t{},\n\t\t{ keepSynchedWithStorage: options?.keepSynchedWithStorage }\n\t);\n\tconst lastPositionRef = useRef<Partial<ElementPosition>>(lastSavedPosition);\n\tconst globalCursorSetterTimerRef = useRef<ReturnType<typeof setTimeout>>();\n\tconst shouldUpdateLocalStorageRef = useRef(false);\n\n\tconst moveElement = useCallback(\n\t\t({ left, top }: ElementPosition) => {\n\t\t\tif (elementToMoveRef.current) {\n\t\t\t\tconst elementToMove = elementToMoveRef.current;\n\t\t\t\tconst positionToApply: Partial<ElementPosition> = lastPositionRef.current;\n\t\t\t\tif (top >= 0) {\n\t\t\t\t\tpositionToApply.top = top;\n\t\t\t\t}\n\t\t\t\tif (left >= 0) {\n\t\t\t\t\tpositionToApply.left = left;\n\t\t\t\t}\n\t\t\t\tforEach(positionToApply, (value, key) => {\n\t\t\t\t\tsetElementSizeAndPosition(elementToMove, key as keyof ElementPosition, value);\n\t\t\t\t});\n\t\t\t\tlastPositionRef.current = positionToApply;\n\t\t\t}\n\t\t},\n\t\t[elementToMoveRef]\n\t);\n\n\tuseEffect(() => {\n\t\tlastPositionRef.current = { ...lastSavedPosition };\n\t}, [elementToMoveRef, lastSavedPosition]);\n\n\tconst preventClick = useCallback((event: MouseEvent) => {\n\t\tevent.preventDefault();\n\t\tdocument.body.removeEventListener('click', preventClick, { capture: true });\n\t}, []);\n\n\tconst onMouseMove = useCallback(\n\t\t(mouseMoveEvent: MouseEvent) => {\n\t\t\t// prevent clickable elements from being clicked if a move has been made\n\t\t\tdocument.body.addEventListener('click', preventClick, { capture: true });\n\t\t\tif (initialSizeAndPositionRef.current && elementToMoveRef.current) {\n\t\t\t\tconst offsetParent =\n\t\t\t\t\t(elementToMoveRef.current.offsetParent instanceof HTMLElement &&\n\t\t\t\t\t\telementToMoveRef.current.offsetParent) ||\n\t\t\t\t\tdocument.body;\n\n\t\t\t\tconst newPosition = calcNewPosition(\n\t\t\t\t\tinitialSizeAndPositionRef.current,\n\t\t\t\t\toffsetParent,\n\t\t\t\t\tmouseMoveEvent\n\t\t\t\t);\n\t\t\t\tmoveElement({\n\t\t\t\t\tleft: newPosition.left,\n\t\t\t\t\ttop: newPosition.top\n\t\t\t\t});\n\t\t\t\tshouldUpdateLocalStorageRef.current = true;\n\t\t\t}\n\t\t},\n\t\t[elementToMoveRef, moveElement, preventClick]\n\t);\n\n\tconst enableMove = useCallback(() => {\n\t\tif (document.activeElement && document.activeElement instanceof HTMLElement) {\n\t\t\tdocument.activeElement.classList.add('no-active-background');\n\t\t}\n\t\tdocument.body.addEventListener('mousemove', onMouseMove);\n\t\tsetGlobalCursor('move');\n\t\tisMoveEnabledRef.current = true;\n\t\tsetIsMoving(true);\n\t}, [onMouseMove]);\n\n\tconst disableMove = useCallback(() => {\n\t\tif (document.activeElement && document.activeElement instanceof HTMLElement) {\n\t\t\tdocument.activeElement.classList.remove('no-active-background');\n\t\t}\n\t\tdocument.body.removeEventListener('mousemove', onMouseMove);\n\t\tsetGlobalCursor(undefined);\n\t\tisMoveEnabledRef.current = false;\n\t\tsetIsMoving(false);\n\t}, [onMouseMove]);\n\n\tconst onMouseUp = useCallback(() => {\n\t\tif (globalCursorSetterTimerRef.current) {\n\t\t\tclearTimeout(globalCursorSetterTimerRef.current);\n\t\t}\n\t\tif (isMoveEnabledRef.current) {\n\t\t\tdisableMove();\n\t\t}\n\t\tdocument.body.removeEventListener('mouseup', onMouseUp);\n\t\tif (options?.localStorageKey && shouldUpdateLocalStorageRef.current) {\n\t\t\tsetLastSavedPosition(lastPositionRef.current);\n\t\t\tshouldUpdateLocalStorageRef.current = false;\n\t\t}\n\t}, [disableMove, options?.localStorageKey, setLastSavedPosition]);\n\n\tconst moveHandler = useCallback(\n\t\t(mouseDownEvent: React.MouseEvent) => {\n\t\t\tif (!mouseDownEvent.defaultPrevented && elementToMoveRef.current) {\n\t\t\t\tconst clientRect = elementToMoveRef.current.getBoundingClientRect();\n\t\t\t\tinitialSizeAndPositionRef.current = {\n\t\t\t\t\twidth: elementToMoveRef.current.offsetWidth,\n\t\t\t\t\theight: elementToMoveRef.current.offsetHeight,\n\t\t\t\t\tleft: elementToMoveRef.current.offsetLeft,\n\t\t\t\t\ttop: elementToMoveRef.current.offsetTop,\n\t\t\t\t\tclientTop: clientRect.top,\n\t\t\t\t\tclientLeft: clientRect.left,\n\t\t\t\t\tmouseClientY: mouseDownEvent.clientY,\n\t\t\t\t\tmouseClientX: mouseDownEvent.clientX\n\t\t\t\t};\n\t\t\t\tglobalCursorSetterTimerRef.current = setTimeout(enableMove, BOARD_CURSOR_TIMEOUT);\n\t\t\t\tdocument.body.addEventListener('mouseup', onMouseUp);\n\t\t\t}\n\t\t},\n\t\t[elementToMoveRef, enableMove, onMouseUp]\n\t);\n\n\treturn [isMoving, moveHandler];\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { CSSProperties, useCallback, useEffect, useRef } from 'react';\n\nimport { find, forEach } from 'lodash';\n\nimport { useLocalStorage } from './useLocalStorage';\nimport {\n\tcreateExportForTestOnly,\n\tsetElementSizeAndPosition,\n\tsetGlobalCursor,\n\tSizeAndPosition\n} from '../../utils/utils';\n\n/**\n * Define the border following the cardinal points (north, south, west, east).\n * Similar to the definition of the cursor for the pointer\n */\nexport type Border = 'n' | 's' | 'e' | 'w' | 'ne' | 'sw' | 'nw' | 'se';\n\ntype UseResizableReturnType = React.MouseEventHandler;\n\ntype ResizeOptions = {\n\tlocalStorageKey?: string;\n\tkeepSynchedWithStorage?: boolean;\n};\n\nexport const BORDERS: Border[] = ['n', 's', 'e', 'w', 'ne', 'se', 'sw', 'nw'];\n\nexport function getCursorFromBorder(border: Border): NonNullable<CSSProperties['cursor']> {\n\tconst direction = find(\n\t\t[\n\t\t\t['n', 's'],\n\t\t\t['e', 'w'],\n\t\t\t['ne', 'sw'],\n\t\t\t['nw', 'se']\n\t\t],\n\t\t(borders) => borders.includes(border)\n\t)?.join('');\n\treturn (direction && direction.concat('-resize')) || '';\n}\n\nfunction calcNewSizeAndPosition(\n\tborder: Border,\n\tfrom: { clientTop: number; clientLeft: number } & SizeAndPosition,\n\tmouseEvent: MouseEvent\n): SizeAndPosition {\n\tconst newSizeAndPosition = {\n\t\ttop: from.top,\n\t\tleft: from.left,\n\t\theight: from.height,\n\t\twidth: from.width\n\t};\n\tif (border.includes('n')) {\n\t\tconst heightDifference = from.clientTop - mouseEvent.clientY;\n\t\tnewSizeAndPosition.height = from.height + heightDifference;\n\t\tnewSizeAndPosition.top = from.top - heightDifference;\n\t}\n\tif (border.includes('s')) {\n\t\tnewSizeAndPosition.height = mouseEvent.clientY - from.clientTop;\n\t}\n\tif (border.includes('e')) {\n\t\tnewSizeAndPosition.width = mouseEvent.clientX - from.clientLeft;\n\t}\n\tif (border.includes('w')) {\n\t\tconst widthDifference = from.clientLeft - mouseEvent.clientX;\n\t\tnewSizeAndPosition.width = from.width + widthDifference;\n\t\tnewSizeAndPosition.left = from.left - widthDifference;\n\t}\n\treturn newSizeAndPosition;\n}\n\nexport const useResize = (\n\telementToResizeRef: React.RefObject<HTMLElement>,\n\tborder: Border,\n\toptions?: ResizeOptions\n): UseResizableReturnType => {\n\tconst initialSizeAndPositionRef = useRef<Parameters<typeof calcNewSizeAndPosition>[1]>();\n\tconst [lastSavedSizeAndPosition, setLastSavedSizeAndPosition] = useLocalStorage<\n\t\tPartial<SizeAndPosition>\n\t>(\n\t\toptions?.localStorageKey || 'use-resize-data',\n\t\t{},\n\t\t{ keepSynchedWithStorage: options?.keepSynchedWithStorage }\n\t);\n\tconst lastSizeAndPositionRef = useRef<Partial<SizeAndPosition>>(lastSavedSizeAndPosition);\n\n\tuseEffect(() => {\n\t\tlastSizeAndPositionRef.current = { ...lastSavedSizeAndPosition };\n\t}, [lastSavedSizeAndPosition]);\n\n\tconst resizeElement = useCallback(\n\t\t({ width, height, top, left }: SizeAndPosition) => {\n\t\t\tif (elementToResizeRef.current) {\n\t\t\t\tconst elementToResize = elementToResizeRef.current;\n\t\t\t\tconst sizeAndPositionToApply: Partial<SizeAndPosition> = lastSizeAndPositionRef.current;\n\t\t\t\tconst computedStyle = getComputedStyle(elementToResizeRef.current);\n\t\t\t\tconst minHeight = parseFloat(computedStyle.minHeight) || 0;\n\t\t\t\tconst minWidth = parseFloat(computedStyle.minWidth) || 0;\n\t\t\t\tif (top >= 0 && height >= minHeight) {\n\t\t\t\t\tsizeAndPositionToApply.height = height;\n\t\t\t\t\tsizeAndPositionToApply.top = top;\n\t\t\t\t}\n\t\t\t\tif (left >= 0 && width >= minWidth) {\n\t\t\t\t\tsizeAndPositionToApply.width = width;\n\t\t\t\t\tsizeAndPositionToApply.left = left;\n\t\t\t\t}\n\t\t\t\tforEach(sizeAndPositionToApply, (value, key) => {\n\t\t\t\t\tsetElementSizeAndPosition(elementToResize, key as keyof SizeAndPosition, value);\n\t\t\t\t});\n\t\t\t\t// reset bottom in favor of top\n\t\t\t\telementToResize.style.bottom = '';\n\t\t\t\t// reset right in favor of left\n\t\t\t\telementToResize.style.right = '';\n\t\t\t\tlastSizeAndPositionRef.current = sizeAndPositionToApply;\n\t\t\t}\n\t\t},\n\t\t[elementToResizeRef]\n\t);\n\n\tconst onMouseMove = useCallback(\n\t\t(mouseMoveEvent: MouseEvent) => {\n\t\t\tif (initialSizeAndPositionRef.current) {\n\t\t\t\tconst newSizeAndPosition = calcNewSizeAndPosition(\n\t\t\t\t\tborder,\n\t\t\t\t\tinitialSizeAndPositionRef.current,\n\t\t\t\t\tmouseMoveEvent\n\t\t\t\t);\n\t\t\t\tresizeElement(newSizeAndPosition);\n\t\t\t}\n\t\t},\n\t\t[border, resizeElement]\n\t);\n\n\tconst onMouseUp = useCallback(() => {\n\t\tsetGlobalCursor(undefined);\n\t\tdocument.body.removeEventListener('mousemove', onMouseMove);\n\t\tdocument.body.removeEventListener('mouseup', onMouseUp);\n\t\tif (options?.localStorageKey) {\n\t\t\tsetLastSavedSizeAndPosition(lastSizeAndPositionRef.current);\n\t\t}\n\t}, [onMouseMove, options?.localStorageKey, setLastSavedSizeAndPosition]);\n\n\treturn useCallback(\n\t\t(mouseDownEvent: React.MouseEvent | MouseEvent) => {\n\t\t\tif (!mouseDownEvent.defaultPrevented && elementToResizeRef.current) {\n\t\t\t\tmouseDownEvent.preventDefault();\n\t\t\t\tconst clientRect = elementToResizeRef.current.getBoundingClientRect();\n\t\t\t\tinitialSizeAndPositionRef.current = {\n\t\t\t\t\twidth: elementToResizeRef.current.offsetWidth,\n\t\t\t\t\theight: elementToResizeRef.current.offsetHeight,\n\t\t\t\t\ttop: elementToResizeRef.current.offsetTop,\n\t\t\t\t\tleft: elementToResizeRef.current.offsetLeft,\n\t\t\t\t\tclientTop: clientRect.top,\n\t\t\t\t\tclientLeft: clientRect.left\n\t\t\t\t};\n\t\t\t\tsetGlobalCursor(getCursorFromBorder(border));\n\t\t\t\tdocument.body.addEventListener('mousemove', onMouseMove);\n\t\t\t\tdocument.body.addEventListener('mouseup', onMouseUp);\n\t\t\t}\n\t\t},\n\t\t[border, elementToResizeRef, onMouseMove, onMouseUp]\n\t);\n};\n\nexport const exportForTest = createExportForTestOnly({ calcNewSizeAndPosition });\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 { useLogo } from '../store/login/hooks';\nimport { useLoginConfigStore } from '../store/login/store';\n\nexport const Logo = (props: Record<string, unknown>): React.JSX.Element => {\n\tconst { loaded } = useLoginConfigStore();\n\tconst LogoElement = useLogo();\n\n\treturn loaded ? (\n\t\t(typeof LogoElement === 'string' && <img alt={''} {...props} src={LogoElement} />) || (\n\t\t\t<LogoElement {...props} />\n\t\t)\n\t) : (\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 */\n\nimport React, { useMemo } from 'react';\n\nimport { useScreenMode } from '@zextras/carbonio-design-system';\n\nimport ShellContext from './shell-context';\n\ninterface ShellContextProviderProps {\n\tchildren: React.ReactNode;\n}\n\nconst ShellContextProvider = ({ children }: ShellContextProviderProps): React.JSX.Element => {\n\tconst screenMode = useScreenMode();\n\n\tconst value = useMemo(\n\t\t() => ({\n\t\t\tisMobile: screenMode === 'mobile'\n\t\t}),\n\t\t[screenMode]\n\t);\n\n\treturn <ShellContext.Provider value={value}>{children}</ShellContext.Provider>;\n};\n\nexport default ShellContextProvider;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { createContext } from 'react';\n\nconst ShellContext = createContext({ isMobile: true });\n\nexport default ShellContext;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React from 'react';\n\nimport {\n\tCatcher,\n\tContainer,\n\tPadding,\n\tResponsive,\n\tuseScreenMode\n} from '@zextras/carbonio-design-system';\nimport styled from 'styled-components';\n\nimport { CreationButton } from './creation-button';\nimport { Logo } from './logo';\nimport { BOARD_CONTAINER_ZINDEX, HEADER_BAR_HEIGHT } from '../constants';\nimport { useDarkMode } from '../dark-mode/use-dark-mode';\nimport { SearchBar } from '../search/search-bar';\nimport { useAppStore } from '../store/app';\n\nconst StyledLogo = styled(Logo)`\n\theight: 2rem;\n`;\n\nconst ShellHeaderContainer = styled(Container)`\n\tz-index: ${BOARD_CONTAINER_ZINDEX + 1};\n`;\n\ninterface ShellHeaderProps {\n\tchildren: React.ReactNode | React.ReactNode[];\n}\n\nconst ShellHeader = ({ children }: ShellHeaderProps): React.JSX.Element => {\n\tconst { darkReaderStatus } = useDarkMode();\n\n\tconst screenMode = useScreenMode();\n\tconst searchEnabled = useAppStore((s) => s.views.search.length > 0);\n\treturn (\n\t\t<ShellHeaderContainer\n\t\t\tdata-testid=\"MainHeaderContainer\"\n\t\t\torientation=\"horizontal\"\n\t\t\tbackground={'gray3'}\n\t\t\twidth=\"fill\"\n\t\t\theight={HEADER_BAR_HEIGHT}\n\t\t\tminHeight={HEADER_BAR_HEIGHT}\n\t\t\tmaxHeight={HEADER_BAR_HEIGHT}\n\t\t\tmainAlignment=\"space-between\"\n\t\t\tpadding={{\n\t\t\t\thorizontal: screenMode === 'desktop' ? 'large' : 'extrasmall',\n\t\t\t\tvertical: 'small'\n\t\t\t}}\n\t\t>\n\t\t\t<Catcher>\n\t\t\t\t<Container\n\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\t\tminWidth=\"fit-content\"\n\t\t\t\t\tdata-testid=\"HeaderMainLogoContainer\"\n\t\t\t\t>\n\t\t\t\t\t<Container width=\"15.625rem\" height=\"2rem\" crossAlignment=\"flex-start\">\n\t\t\t\t\t\t{darkReaderStatus && <StyledLogo />}\n\t\t\t\t\t</Container>\n\t\t\t\t\t<Padding horizontal=\"large\">\n\t\t\t\t\t\t<CreationButton />\n\t\t\t\t\t</Padding>\n\t\t\t\t\t<Responsive mode=\"desktop\">{searchEnabled && <SearchBar />}</Responsive>\n\t\t\t\t</Container>\n\t\t\t\t<Container orientation=\"horizontal\" width=\"auto\" mainAlignment=\"flex-end\">\n\t\t\t\t\t<Responsive mode=\"desktop\">{children}</Responsive>\n\t\t\t\t</Container>\n\t\t\t</Catcher>\n\t\t</ShellHeaderContainer>\n\t);\n};\nexport default ShellHeader;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useEffect, useMemo, useRef } from 'react';\n\nimport { Container, IconButton, Row, Tooltip } from '@zextras/carbonio-design-system';\nimport { map, isEmpty, trim, filter, sortBy, noop } from 'lodash';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport BadgeWrap from './badge-wrap';\nimport { PrimaryAccessoryView, PrimaryBarView } from '../../types';\nimport AppContextProvider from '../boot/app/app-context-provider';\nimport {\n\tBOARD_CONTAINER_ZINDEX,\n\tIS_STANDALONE,\n\tPRIMARY_BAR_WIDTH,\n\tSEARCH_APP_ID\n} from '../constants';\nimport { useCurrentRoute } from '../history/hooks';\nimport { useAppStore } from '../store/app';\nimport { minimizeBoards, reopenBoards, useBoardStore } from '../store/boards';\nimport { checkRoute } from '../utility-bar/utils';\n\nconst PrimaryBarContainer = styled(Container)`\n\tborder-right: 0.0625rem solid ${({ theme }): string => theme.palette.gray3.regular};\n\tz-index: ${BOARD_CONTAINER_ZINDEX + 1};\n`;\n\nconst ToggleBoardIcon = (): React.JSX.Element | null => {\n\tconst { minimized, boards } = useBoardStore();\n\n\treturn isEmpty(boards) ? null : (\n\t\t<Container width={'3rem'} height={'3rem'}>\n\t\t\t<IconButton\n\t\t\t\ticonColor=\"primary\"\n\t\t\t\ticon={minimized ? 'BoardOpen' : 'BoardCollapse'}\n\t\t\t\tonClick={minimized ? reopenBoards : minimizeBoards}\n\t\t\t\tsize=\"large\"\n\t\t\t/>\n\t\t</Container>\n\t);\n};\n\ntype PrimaryBarItemProps = {\n\tview: PrimaryBarView;\n\tactive: boolean;\n\tonClick: () => void;\n};\n\ntype PrimaryBarAccessoryItemProps = {\n\tview: PrimaryAccessoryView;\n};\n\nconst PrimaryBarElement = ({ view, active, onClick }: PrimaryBarItemProps): React.JSX.Element => (\n\t<Tooltip label={view.label} placement=\"right\" key={view.id}>\n\t\t<BadgeWrap badge={view.badge}>\n\t\t\t{typeof view.component === 'string' ? (\n\t\t\t\t<IconButton\n\t\t\t\t\ticon={view.component}\n\t\t\t\t\tbackgroundColor={active ? 'gray4' : 'gray6'}\n\t\t\t\t\ticonColor={active ? 'primary' : 'text'}\n\t\t\t\t\tonClick={onClick}\n\t\t\t\t\tsize=\"large\"\n\t\t\t\t\tdata-isselected={active}\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<view.component active={active} />\n\t\t\t)}\n\t\t</BadgeWrap>\n\t</Tooltip>\n);\n\nconst PrimaryBarAccessoryElement = ({ view }: PrimaryBarAccessoryItemProps): React.JSX.Element => (\n\t<Tooltip label={view.label} placement=\"right\" key={view.id}>\n\t\t<AppContextProvider key={view.id} pkg={view.app}>\n\t\t\t{typeof view.component === 'string' ? (\n\t\t\t\t<IconButton\n\t\t\t\t\ticon={view.component}\n\t\t\t\t\tbackgroundColor=\"gray6\"\n\t\t\t\t\ticonColor=\"text\"\n\t\t\t\t\tonClick={view.onClick ?? noop}\n\t\t\t\t\tsize=\"large\"\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<view.component />\n\t\t\t)}\n\t\t</AppContextProvider>\n\t</Tooltip>\n);\n\nconst OverlayRow = styled(Row)`\n\tmin-height: 0.0625rem;\n\toverflow-y: auto;\n\toverflow-y: overlay;\n`;\n\nconst ShellPrimaryBar = (): React.JSX.Element | null => {\n\tconst activeRoute = useCurrentRoute();\n\tconst primaryBarViews = useAppStore((s) => s.views.primaryBar);\n\tconst { push } = useHistory();\n\n\tconst { pathname, search } = useLocation();\n\tconst routesRef = useRef<Record<string, string>>({});\n\n\tuseEffect(() => {\n\t\troutesRef.current = primaryBarViews.reduce((accumulator, view) => {\n\t\t\tif (!accumulator[view.id]) {\n\t\t\t\taccumulator[view.id] = view.route;\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, routesRef.current);\n\t}, [primaryBarViews]);\n\n\tuseEffect(() => {\n\t\tif (activeRoute && activeRoute.id !== SEARCH_APP_ID) {\n\t\t\troutesRef.current = {\n\t\t\t\t...routesRef.current,\n\t\t\t\t[activeRoute.id]: `${trim(pathname, '/')}${search}`\n\t\t\t};\n\t\t}\n\t}, [activeRoute, pathname, search]);\n\n\tconst primaryBarAccessoryViews = useAppStore((s) => s.views.primaryBarAccessories);\n\n\tconst accessoryViews = useMemo(\n\t\t() =>\n\t\t\tsortBy(\n\t\t\t\tfilter(primaryBarAccessoryViews, (v) => checkRoute(v, activeRoute)),\n\t\t\t\t'position'\n\t\t\t),\n\t\t[activeRoute, primaryBarAccessoryViews]\n\t);\n\n\tconst primaryBarItems = useMemo(\n\t\t() =>\n\t\t\tmap(primaryBarViews, (view) =>\n\t\t\t\tview.visible ? (\n\t\t\t\t\t<PrimaryBarElement\n\t\t\t\t\t\tkey={view.id}\n\t\t\t\t\t\tonClick={(): void => push(`/${routesRef.current[view.id]}`)}\n\t\t\t\t\t\tview={view}\n\t\t\t\t\t\tactive={activeRoute?.id === view.id}\n\t\t\t\t\t/>\n\t\t\t\t) : null\n\t\t\t),\n\t\t[activeRoute?.id, push, primaryBarViews]\n\t);\n\n\tconst accessoryItems = useMemo(\n\t\t() => accessoryViews.map((view) => <PrimaryBarAccessoryElement view={view} key={view.id} />),\n\t\t[accessoryViews]\n\t);\n\n\tif (IS_STANDALONE && activeRoute?.standalone?.hidePrimaryBar) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PrimaryBarContainer\n\t\t\twidth={PRIMARY_BAR_WIDTH}\n\t\t\theight=\"fill\"\n\t\t\tbackground={'gray6'}\n\t\t\torientation=\"vertical\"\n\t\t\tmainAlignment=\"flex-start\"\n\t\t\tcrossAlignment=\"flex-start\"\n\t\t\tdata-testid=\"SideMenuContainer\"\n\t\t>\n\t\t\t<OverlayRow\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\tcrossAlignment=\"flex-start\"\n\t\t\t\torientation=\"vertical\"\n\t\t\t\ttakeAvailableSpace\n\t\t\t\twrap=\"nowrap\"\n\t\t\t>\n\t\t\t\t{primaryBarItems}\n\t\t\t\t<ToggleBoardIcon />\n\t\t\t</OverlayRow>\n\t\t\t<OverlayRow mainAlignment=\"flex-end\" orientation=\"vertical\" wrap=\"nowrap\">\n\t\t\t\t{accessoryItems}\n\t\t\t</OverlayRow>\n\t\t</PrimaryBarContainer>\n\t);\n};\n\nexport default ShellPrimaryBar;\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, useMemo } from 'react';\n\nimport { Container, ContainerProps } from '@zextras/carbonio-design-system';\nimport { filter, findIndex, map, sortBy } from 'lodash';\nimport { Route, Switch } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { Collapser } from './collapser';\nimport { AppRoute } from '../../types';\nimport AppContextProvider from '../boot/app/app-context-provider';\nimport { useCurrentRoute } from '../history/hooks';\nimport { useAppStore } from '../store/app';\nimport { useUtilityBarStore } from '../utility-bar/store';\nimport { checkRoute } from '../utility-bar/utils';\n\nconst SidebarContainer = styled(Container)<ContainerProps & { sidebarIsOpen?: boolean }>`\n\tmin-width: 3rem;\n\tmax-width: 19.625rem;\n\twidth: ${({ sidebarIsOpen }): number => (sidebarIsOpen ? 19.625 : 3)}rem;\n\ttransition: width 300ms;\n\toverflow-x: hidden;\n`;\n\nconst ShellSecondaryBarComponent: FC<{ activeRoute: AppRoute }> = ({ activeRoute }) => {\n\tconst isOpen = useUtilityBarStore((s) => s.secondaryBarState);\n\tconst setIsOpen = useUtilityBarStore((s) => s.setSecondaryBarState);\n\tconst onCollapserClick = useCallback(() => setIsOpen(!isOpen), [isOpen, setIsOpen]);\n\tconst secondaryBarViews = useAppStore((s) => s.views.secondaryBar);\n\tconst secondaryBarAccessoryViews = useAppStore((s) => s.views.secondaryBarAccessories);\n\tconst accessories = useMemo(\n\t\t() =>\n\t\t\tsortBy(\n\t\t\t\tfilter(secondaryBarAccessoryViews, (v) => checkRoute(v, activeRoute)),\n\t\t\t\t'position'\n\t\t\t),\n\t\t[activeRoute, secondaryBarAccessoryViews]\n\t);\n\tconst disabled = useMemo(\n\t\t() => findIndex(secondaryBarViews, (view) => view.id === activeRoute?.id) < 0,\n\t\t[activeRoute?.id, secondaryBarViews]\n\t);\n\treturn disabled ? null : (\n\t\t<>\n\t\t\t<SidebarContainer\n\t\t\t\tdata-testid=\"SideSecondaryBarContainer\"\n\t\t\t\tsidebarIsOpen={isOpen}\n\t\t\t\trole=\"menu\"\n\t\t\t\theight=\"fill\"\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tmainAlignment=\"space-between\"\n\t\t\t\tonClick={isOpen ? undefined : onCollapserClick}\n\t\t\t\tstyle={{\n\t\t\t\t\tmaxHeight: 'calc(100vh - 3.75rem)',\n\t\t\t\t\toverflowY: 'auto'\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<Container mainAlignment=\"flex-start\">\n\t\t\t\t\t<Switch>\n\t\t\t\t\t\t{map(secondaryBarViews, (view) => (\n\t\t\t\t\t\t\t<Route key={view.id} path={`/${view.route}`}>\n\t\t\t\t\t\t\t\t<AppContextProvider pkg={view.app}>\n\t\t\t\t\t\t\t\t\t<view.component expanded={isOpen} />\n\t\t\t\t\t\t\t\t</AppContextProvider>\n\t\t\t\t\t\t\t</Route>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</Switch>\n\t\t\t\t</Container>\n\t\t\t\t<Container mainAlignment=\"flex-end\" height=\"fit\">\n\t\t\t\t\t{accessories.map((view) => (\n\t\t\t\t\t\t<AppContextProvider key={view.id} pkg={view.app}>\n\t\t\t\t\t\t\t<view.component expanded={isOpen} />\n\t\t\t\t\t\t</AppContextProvider>\n\t\t\t\t\t))}\n\t\t\t\t</Container>\n\t\t\t</SidebarContainer>\n\t\t\t<Collapser onClick={onCollapserClick} open={isOpen} />\n\t\t</>\n\t);\n};\n\nconst MemoShellSecondaryBar = React.memo(ShellSecondaryBarComponent);\n\nconst ShellSecondaryBar: FC = () => {\n\tconst activeRoute = useCurrentRoute() as AppRoute;\n\treturn <MemoShellSecondaryBar activeRoute={activeRoute} />;\n};\n\nexport default ShellSecondaryBar;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useContext, useEffect } from 'react';\n\nimport { Container, Row } from '@zextras/carbonio-design-system';\nimport { PreviewManager } from '@zextras/carbonio-ui-preview';\nimport styled from 'styled-components';\n\nimport AppViewContainer from './app-view-container';\nimport { BoardContainer } from './boards/board-container';\nimport ShellContextProvider from './shell-context-provider';\nimport ShellHeader from './shell-header';\nimport ShellPrimaryBar from './shell-primary-bar';\nimport ShellSecondaryBar from './shell-secondary-bar';\nimport { ThemeCallbacksContext } from '../boot/theme-provider';\nimport { IS_STANDALONE } from '../constants';\nimport { useDarkReaderResultValue } from '../dark-mode/use-dark-reader-result-value';\nimport { useCurrentRoute } from '../history/hooks';\nimport { goToLogin } from '../network/utils';\nimport { useAccountStore } from '../store/account';\nimport { ShellUtilityBar } from '../utility-bar/bar';\nimport { ShellUtilityPanel } from '../utility-bar/panel';\n\nconst Background = styled.div`\n\tbackground: ${({ theme }): string => theme.palette.gray6.regular};\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n\tmin-height: 100%;\n\tmax-height: 100%;\n\twidth: 100%;\n\tmin-width: 60rem;\n\tmax-width: 100%;\n`;\n\nfunction DarkReaderListener(): null {\n\tconst { setDarkReaderState } = useContext(ThemeCallbacksContext);\n\tconst darkReaderResultValue = useDarkReaderResultValue();\n\tuseEffect(() => {\n\t\tif (darkReaderResultValue) {\n\t\t\tsetDarkReaderState(darkReaderResultValue);\n\t\t}\n\t}, [darkReaderResultValue, setDarkReaderState]);\n\treturn null;\n}\n\nconst useLoginRedirection = (allowUnauthenticated?: boolean): void => {\n\tconst auth = useAccountStore((s) => s.authenticated);\n\tuseEffect(() => {\n\t\tif (IS_STANDALONE && !auth && !allowUnauthenticated) {\n\t\t\tgoToLogin();\n\t\t}\n\t}, [allowUnauthenticated, auth]);\n};\n\ninterface ShellComponentProps {\n\tallowUnauthenticated?: boolean;\n\thideShellHeader?: boolean;\n}\n\nconst ShellComponent = ({\n\tallowUnauthenticated,\n\thideShellHeader\n}: ShellComponentProps): React.JSX.Element => {\n\tuseLoginRedirection(allowUnauthenticated);\n\treturn (\n\t\t<Background>\n\t\t\t<DarkReaderListener />\n\t\t\t{!(IS_STANDALONE && hideShellHeader) && (\n\t\t\t\t<ShellHeader>\n\t\t\t\t\t<ShellUtilityBar />\n\t\t\t\t</ShellHeader>\n\t\t\t)}\n\t\t\t<Row crossAlignment=\"unset\" style={{ position: 'relative', flexGrow: '1' }}>\n\t\t\t\t<Container\n\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\tbackground=\"gray5\"\n\t\t\t\t\twidth=\"fit\"\n\t\t\t\t\theight=\"fill\"\n\t\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\t\tcrossAlignment=\"flex-start\"\n\t\t\t\t>\n\t\t\t\t\t<ShellPrimaryBar />\n\t\t\t\t\t<ShellSecondaryBar />\n\t\t\t\t</Container>\n\t\t\t\t<AppViewContainer />\n\t\t\t\t<ShellUtilityPanel />\n\t\t\t</Row>\n\t\t\t<BoardContainer />\n\t\t</Background>\n\t);\n};\n\nconst MemoShell = React.memo(ShellComponent);\n\nconst ShellView = (): React.JSX.Element => {\n\tconst activeRoute = useCurrentRoute();\n\tconst allowUnauthenticated = activeRoute?.standalone?.allowUnauthenticated;\n\tconst hideShellHeader = activeRoute?.standalone?.hideShellHeader;\n\treturn (\n\t\t<ShellContextProvider>\n\t\t\t<PreviewManager>\n\t\t\t\t<MemoShell allowUnauthenticated={allowUnauthenticated} hideShellHeader={hideShellHeader} />\n\t\t\t</PreviewManager>\n\t\t</ShellContextProvider>\n\t);\n};\n\nexport default ShellView;\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 { find, get, join } from 'lodash';\n\nimport { useAccountStore } from './store';\nimport {\n\tAccount,\n\tAccountRightName,\n\tAccountRights,\n\tAccountRightTarget,\n\tAccountSettings\n} from '../../../types';\n\nexport const useUserAccount = (): Account => useAccountStore((s) => s.account as Account);\nexport const useUserAccounts = (): Array<Account> => {\n\tconst acct = useAccountStore((s) => s.account);\n\treturn useMemo(() => (acct ? [acct as Account] : []), [acct]);\n};\n\nexport const useUserRights = (): AccountRights =>\n\tuseAccountStore((s) => s.account?.rights ?? { targets: [] });\n\nexport const useUserRight = (right: AccountRightName): Array<AccountRightTarget> => {\n\tconst { targets } = useUserRights();\n\treturn useMemo(\n\t\t() => find(targets, ['right', right])?.target ?? ([] as Array<AccountRightTarget>),\n\t\t[right, targets]\n\t);\n};\nexport const useUserSettings = (): AccountSettings => useAccountStore((s) => s.settings);\nexport const useUserSetting = <T = void>(...path: Array<string>): string | T =>\n\tuseAccountStore((s) => get(s.settings, join(path, '.')));\n\nexport const getUserAccount = (): Account => useAccountStore.getState().account as Account;\nexport const getUserAccounts = (): Array<Account> => [\n\tuseAccountStore.getState().account as Account\n];\nexport const getUserSettings = (): AccountSettings => useAccountStore.getState().settings;\nexport const getUserSetting = <T = void>(...path: Array<string>): string | T =>\n\tget(useAccountStore.getState().settings, join(path, '.'));\n\nexport const getUserRights = (): AccountRights =>\n\tuseAccountStore.getState().account?.rights ?? { targets: [] };\n\nexport const getUserRight = (right: AccountRightName): Array<AccountRightTarget> =>\n\tfind(getUserRights().targets, ['right', right])?.target ?? ([] as Array<AccountRightTarget>);\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nexport * from './hooks';\nexport * from './store';\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { GetInfoResponse, Account, AccountSettings } from '../../../types';\n\nconst normalizeSettings = (\n\tsettings: Pick<GetInfoResponse, 'attrs' | 'prefs' | 'props'>\n): AccountSettings => ({\n\tattrs: settings.attrs._attrs,\n\tprefs: settings.prefs._attrs,\n\tprops: settings.props.prop ?? []\n});\n\nexport const normalizeAccount = ({\n\tid,\n\tname,\n\tattrs,\n\tprefs,\n\tidentities,\n\tsignatures,\n\tprops,\n\tversion,\n\trights\n}: GetInfoResponse): {\n\taccount: Account;\n\tsettings: AccountSettings;\n\tversion: string;\n} => {\n\tconst settings = normalizeSettings({ attrs, prefs, props });\n\treturn {\n\t\taccount: {\n\t\t\tid,\n\t\t\tname,\n\t\t\tdisplayName: attrs._attrs.displayName,\n\t\t\tidentities,\n\t\t\tsignatures,\n\t\t\trights\n\t\t},\n\t\tsettings,\n\t\tversion\n\t};\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { create } from 'zustand';\n\nimport type { AccountState } from '../../../types';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useAccountStore = create<AccountState>()(() => ({\n\tauthenticated: false,\n\taccount: undefined,\n\trights: undefined,\n\tversion: '',\n\tsettings: {\n\t\tprefs: {},\n\t\tattrs: {},\n\t\tprops: []\n\t},\n\tusedQuota: 0,\n\tlastNotificationTime: Date.now()\n}));\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\n/* eslint-disable react-hooks/rules-of-hooks */\n/* THIS FILE CONTAINS HOOKS, BUT ESLINT IS DUMB */\n\nimport { useMemo } from 'react';\n\nimport { sortBy } from 'lodash';\n\nimport { useAppStore } from './store';\nimport { AppRoute, CarbonioModule } from '../../../types';\n\nexport const useApp = (appId: string) => (): CarbonioModule => useAppStore((s) => s.apps[appId]);\nexport const useApps = (): Record<string, CarbonioModule> => useAppStore((s) => s.apps);\nexport const useAppList = (): Array<CarbonioModule> => {\n\tconst apps = useApps();\n\treturn useMemo(() => sortBy(apps, (a) => a.priority), [apps]);\n};\nexport const getAppList = (): Array<CarbonioModule> =>\n\tsortBy(useAppStore.getState().apps, (a) => a.priority);\n\nexport const getApp = (appId: string) => (): CarbonioModule | undefined =>\n\tuseAppStore.getState().apps[appId];\nexport const getApps = (): Record<string, CarbonioModule> => useAppStore.getState().apps;\n\nexport const useAppContext = (appId: string) => (): unknown =>\n\tuseAppStore((s) => s.appContexts[appId]);\nexport const getAppContext = (appId: string) => (): unknown =>\n\tuseAppStore.getState().appContexts[appId];\nexport const getShell = (): CarbonioModule => useAppStore.getState().shell;\nexport const getRoutes = (): Record<string, AppRoute> => useAppStore.getState().routes;\nexport const useRoutes = (): Record<string, AppRoute> => useAppStore((s) => s.routes);\nexport const getRoute = (id: string): AppRoute => useAppStore.getState().routes[id];\nexport const useRoute = (id: string): AppRoute => useAppStore((s) => s.routes[id]);\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nexport * from './hooks';\nexport * from './store';\nexport * from './utils';\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { produce } from 'immer';\nimport { findIndex, merge, reduce, some } from 'lodash';\nimport { create } from 'zustand';\n\nimport { normalizeApp } from './utils';\nimport type { AppState, CarbonioModule } from '../../../types';\nimport { SHELL_APP_ID } from '../../constants';\n\nconst STANDALONE_RESPONSE = 'standalone';\n\nfunction addIfNotPresent<T extends { id: unknown }>(\n\titems: T[],\n\titemToAdd: T,\n\tonAdd?: (items: T[], item: T) => void\n): void {\n\tif (!some(items, (item) => item.id === itemToAdd.id)) {\n\t\titems.push(itemToAdd);\n\t\tonAdd?.(items, itemToAdd);\n\t}\n}\n\nfunction sortByPosition<T extends { position: number }>(items: T[]): void {\n\titems.sort((a, b) => a.position - b.position);\n}\n\nfunction addAndSort<T extends { id: unknown; position: number }>(items: T[], itemToAdd: T): void {\n\taddIfNotPresent(items, itemToAdd, sortByPosition);\n}\n\nfunction removeById<T extends { id: unknown }>(items: T[], id: unknown): void {\n\tconst index = findIndex(items, (item) => item.id === id);\n\tif (index !== -1) {\n\t\titems.splice(index, 1);\n\t}\n}\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useAppStore = create<AppState>()((set, get) => ({\n\tstandalone: false,\n\tapps: {},\n\tappContexts: {},\n\tshell: {\n\t\tcommit: '',\n\t\tdescription: '',\n\t\tjs_entrypoint: '',\n\t\tname: SHELL_APP_ID,\n\t\tpriority: -1,\n\t\tversion: '',\n\t\ttype: 'shell',\n\t\tattrKey: '',\n\t\ticon: '',\n\t\tdisplay: 'Shell'\n\t},\n\tentryPoints: {},\n\troutes: {},\n\tviews: {\n\t\tprimaryBar: [],\n\t\tsecondaryBar: [],\n\t\tappView: [],\n\t\tboard: [],\n\t\tutilityBar: [],\n\t\tsettings: [],\n\t\tsearch: [],\n\t\tprimaryBarAccessories: [],\n\t\tsecondaryBarAccessories: []\n\t},\n\tsetters: {\n\t\tsetApps: (apps): void => {\n\t\t\tset(() => {\n\t\t\t\tconst { moduleApps, shellApp, appContexts } = reduce<\n\t\t\t\t\tPartial<CarbonioModule>,\n\t\t\t\t\t{\n\t\t\t\t\t\tmoduleApps: AppState['apps'];\n\t\t\t\t\t\tshellApp: AppState['shell'];\n\t\t\t\t\t\tappContexts: AppState['appContexts'];\n\t\t\t\t\t}\n\t\t\t\t>(\n\t\t\t\t\tapps,\n\t\t\t\t\t(accumulator, app) => {\n\t\t\t\t\t\tif (app.name) {\n\t\t\t\t\t\t\tconst normalizedApp = normalizeApp(app);\n\t\t\t\t\t\t\tif (app.name !== SHELL_APP_ID) {\n\t\t\t\t\t\t\t\taccumulator.moduleApps[app.name] = normalizedApp;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\taccumulator.shellApp = normalizedApp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taccumulator.appContexts[app.name] = {};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t},\n\t\t\t\t\t{ moduleApps: {}, shellApp: {} as CarbonioModule, appContexts: {} }\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\tapps: moduleApps,\n\t\t\t\t\tshell: shellApp,\n\t\t\t\t\tappContexts\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\t\tsetAppContext:\n\t\t\t(app) =>\n\t\t\t(context): void => {\n\t\t\t\tset(\n\t\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\t\tstate.appContexts[app] = merge(state.appContexts[app], context);\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t},\n\t\t// add route (id route primaryBar secondaryBar app)\n\t\taddRoute: (routeData): string => {\n\t\t\tconst { standalone } = get();\n\t\t\tif (standalone && routeData.route !== standalone) {\n\t\t\t\treturn STANDALONE_RESPONSE;\n\t\t\t}\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tstate.routes[routeData.id] = routeData;\n\t\t\t\t\tif (routeData.primaryBar) {\n\t\t\t\t\t\taddAndSort(state.views.primaryBar, {\n\t\t\t\t\t\t\tapp: routeData.app,\n\t\t\t\t\t\t\tid: routeData.id,\n\t\t\t\t\t\t\troute: routeData.route,\n\t\t\t\t\t\t\tcomponent: routeData.primaryBar,\n\t\t\t\t\t\t\tbadge: routeData.badge,\n\t\t\t\t\t\t\tposition: routeData.position,\n\t\t\t\t\t\t\tvisible: routeData.visible,\n\t\t\t\t\t\t\tlabel: routeData.label\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif (routeData.secondaryBar) {\n\t\t\t\t\t\taddIfNotPresent(state.views.secondaryBar, {\n\t\t\t\t\t\t\tapp: routeData.app,\n\t\t\t\t\t\t\tid: routeData.id,\n\t\t\t\t\t\t\troute: routeData.route,\n\t\t\t\t\t\t\tcomponent: routeData.secondaryBar\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif (routeData.appView) {\n\t\t\t\t\t\taddIfNotPresent(state.views.appView, {\n\t\t\t\t\t\t\tapp: routeData.app,\n\t\t\t\t\t\t\tid: routeData.id,\n\t\t\t\t\t\t\troute: routeData.route,\n\t\t\t\t\t\t\tcomponent: routeData.appView\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif (routeData.app && state.apps[routeData.app]) {\n\t\t\t\t\t\tstate.apps[routeData.app].display = routeData.label;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn routeData.id;\n\t\t},\n\t\tsetRouteVisibility: (id, visible): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tconst idx = findIndex(state.views.primaryBar, (view) => view.id === id);\n\t\t\t\t\tif (idx >= 0) {\n\t\t\t\t\t\tstate.views.primaryBar[idx].visible = visible;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\n\t\t// remove route (id | route)\n\t\tremoveRoute: (id): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tdelete state.routes[id];\n\t\t\t\t\tremoveById(state.views.primaryBar, id);\n\t\t\t\t\tremoveById(state.views.secondaryBar, id);\n\t\t\t\t\tremoveById(state.views.appView, id);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\t\t// add board\n\t\taddBoardView: (data): string => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\taddIfNotPresent(state.views.board, data);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn data.id;\n\t\t},\n\n\t\t// remove board\n\t\tremoveBoardView: (id): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tremoveById(state.views.board, id);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\n\t\t// add settings\n\t\taddSettingsView: (data): string => {\n\t\t\tconst { standalone } = get();\n\t\t\tif (standalone && data.route !== standalone) {\n\t\t\t\treturn STANDALONE_RESPONSE;\n\t\t\t}\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\taddAndSort(state.views.settings, data);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn data.id;\n\t\t},\n\n\t\t// remove settings\n\t\tremoveSettingsView: (id): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tremoveById(state.views.settings, id);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\t\t//\n\t\t// add search\n\t\taddSearchView: (data): string => {\n\t\t\tconst { standalone } = get();\n\t\t\tif (standalone && data.route !== standalone) {\n\t\t\t\treturn STANDALONE_RESPONSE;\n\t\t\t}\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\taddAndSort(state.views.search, data);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn data.id;\n\t\t},\n\t\t// remove search\n\t\tremoveSearchView: (id): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tremoveById(state.views.search, id);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\t\t//\n\t\t// add utility\n\t\taddUtilityView: (data): string => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\taddAndSort(state.views.utilityBar, data);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn data.id;\n\t\t},\n\t\t// remove utility\n\t\tremoveUtilityView: (id): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tremoveById(state.views.utilityBar, id);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\t\t//\n\t\t// add primaryAccessory\n\t\taddPrimaryAccessoryView: (data): string => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\taddAndSort(state.views.primaryBarAccessories, data);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn data.id;\n\t\t},\n\t\t// remove primaryAccessory\n\t\tremovePrimaryAccessoryView: (id): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tremoveById(state.views.primaryBarAccessories, id);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\t\t//\n\t\t// add secondaryAccessory\n\t\taddSecondaryAccessoryView: (data): string => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\taddAndSort(state.views.secondaryBarAccessories, data);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn data.id;\n\t\t},\n\t\t// remove secondaryAccessory\n\t\tremoveSecondaryAccessoryView: (id): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tremoveById(state.views.secondaryBarAccessories, id);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\t\tupdatePrimaryBadge: (badge, id): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tconst idx = findIndex(state.views.primaryBar, (bar) => bar.id === id);\n\t\t\t\t\tif (idx >= 0) {\n\t\t\t\t\t\tstate.views.primaryBar[idx].badge = {\n\t\t\t\t\t\t\t...state.views.primaryBar[idx].badge,\n\t\t\t\t\t\t\t...badge\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\tupdateUtilityBadge: (badge, id): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tconst idx = findIndex(state.views.utilityBar, (bar) => bar.id === id);\n\t\t\t\t\tif (idx >= 0) {\n\t\t\t\t\t\tstate.views.utilityBar[idx].badge = {\n\t\t\t\t\t\t\t...state.views.utilityBar[idx].badge,\n\t\t\t\t\t\t\t...badge\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","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { FC } from 'react';\n\nimport { trim } from 'lodash';\n\nimport {\n\tAppRouteDescriptor,\n\tBadgeInfo,\n\tBoardView,\n\tCarbonioModule,\n\tPrimaryAccessoryView,\n\tSearchView,\n\tSecondaryAccessoryView,\n\tSettingsView,\n\tUtilityView\n} from '../../../types';\n\nexport const normalizeApp = (app: Partial<CarbonioModule>): CarbonioModule => ({\n\tcommit: app.commit ?? '',\n\tdescription: app.description ?? 'A carbonio Module',\n\t// eslint-disable-next-line camelcase\n\tjs_entrypoint: app.js_entrypoint ?? '',\n\tname: app.name ?? 'module',\n\tpriority: app.priority ?? 99,\n\tversion: app.version ?? '',\n\ttype: app.type ?? 'carbonio',\n\tattrKey: app.attrKey,\n\ticon: app.icon ?? 'Cube',\n\tdisplay: app.display ?? 'Module',\n\tsentryDsn: app.sentryDsn\n});\n\nconst FallbackView: FC = () => <p>Missing Component</p>;\n\nexport const normalizeBadgeInfo = (badge: Partial<BadgeInfo>): BadgeInfo => ({\n\tshow: badge.show ?? false,\n\tcount: badge.count ?? 0,\n\tshowCount: badge.showCount ?? false,\n\tcolor: badge.color ?? 'primary'\n});\n\nexport const normalizeRoute = (\n\tdata: Partial<AppRouteDescriptor>,\n\tapp: CarbonioModule\n): AppRouteDescriptor => {\n\tconst route = trim(data.route ?? app.name, '/');\n\treturn {\n\t\tapp: app.name,\n\t\troute,\n\t\tid: data.id ?? route,\n\t\tbadge: normalizeBadgeInfo(data?.badge ?? {}),\n\t\tposition: data?.position ?? app.priority,\n\t\tvisible: data?.visible ?? true,\n\t\tlabel: data?.label ?? '',\n\t\tprimaryBar: data.primaryBar ?? app.icon ?? 'CubeOutline',\n\t\tsecondaryBar: data.secondaryBar,\n\t\tappView: data.appView ?? FallbackView,\n\t\tstandalone: {\n\t\t\thidePrimaryBar: data?.standalone?.hidePrimaryBar,\n\t\t\thideShellHeader: data?.standalone?.hideShellHeader,\n\t\t\tallowUnauthenticated: data?.standalone?.allowUnauthenticated\n\t\t}\n\t};\n};\n\nexport const normalizeSettingsView = (\n\tdata: Partial<SettingsView>,\n\tapp: CarbonioModule\n): SettingsView => {\n\tconst route = trim(data.route ?? app.name, '/');\n\treturn {\n\t\tapp: app.name,\n\t\troute,\n\t\tid: data?.id ?? route,\n\t\tcomponent: data?.component ?? FallbackView,\n\t\tlabel: data.label ?? app.display,\n\t\ticon: data.icon ?? app.icon,\n\t\tposition: data.position ?? app.priority ?? 99,\n\t\tsubSections: data.subSections ?? []\n\t};\n};\nexport const normalizeSearchView = (data: Partial<SearchView>, app: CarbonioModule): SearchView => {\n\tconst route = trim(data.route ?? app.name, '/');\n\treturn {\n\t\tapp: app.name,\n\t\troute,\n\t\tid: data?.id ?? route,\n\t\tcomponent: data?.component ?? FallbackView,\n\t\tlabel: data.label ?? app.display,\n\t\ticon: data.icon ?? app.icon,\n\t\tposition: data.position ?? app.priority ?? 99\n\t};\n};\nexport const normalizeUtilityView = (\n\tdata: Partial<UtilityView>,\n\tapp: CarbonioModule\n): UtilityView => ({\n\tapp: app.name,\n\tid: data?.id ?? app.name,\n\twhitelistRoutes: data?.whitelistRoutes,\n\tblacklistRoutes: data?.blacklistRoutes,\n\tcomponent: data?.component ?? FallbackView,\n\tbutton: data?.button ?? 'Cube',\n\tbadge: normalizeBadgeInfo(data?.badge ?? {}),\n\tposition: data?.position ?? app.priority,\n\tlabel: data?.label ?? app.display\n});\nexport const normalizePrimaryAccessoryView = (\n\tdata: Partial<PrimaryAccessoryView>,\n\tapp: CarbonioModule\n): PrimaryAccessoryView => ({\n\tapp: app.name,\n\tonClick: data?.onClick,\n\tlabel: data?.label ?? app.display,\n\tposition: data?.position ?? app.priority,\n\twhitelistRoutes: data?.whitelistRoutes,\n\tblacklistRoutes: data?.blacklistRoutes,\n\tid: data?.id ?? app.name,\n\tcomponent: data?.component ?? FallbackView\n});\nexport const normalizeSecondaryAccessoryView = (\n\tdata: Partial<SecondaryAccessoryView>,\n\tapp: CarbonioModule\n): SecondaryAccessoryView => ({\n\tapp: app.name,\n\tposition: data?.position ?? app.priority,\n\twhitelistRoutes: data?.whitelistRoutes,\n\tblacklistRoutes: data?.blacklistRoutes,\n\tid: data?.id ?? app.name,\n\tcomponent: data?.component ?? FallbackView\n});\n\nexport const normalizeBoardView = (data: Partial<BoardView>, app: CarbonioModule): BoardView => {\n\tconst route = trim(data.route ?? app.name, '/');\n\treturn {\n\t\tapp: app.name,\n\t\troute,\n\t\tid: data?.id ?? route,\n\t\tcomponent: data?.component ?? FallbackView\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, { FC, useContext, useMemo, createContext } from 'react';\n\nimport { closeBoard, setCurrentBoard, updateBoard, useBoardStore } from './store';\nimport { Board, BoardHooksContext } from '../../../types';\n\nexport const useBoardById = <T,>(id: string): Board<T> => useBoardStore((s) => s.boards[id]);\nexport const getBoardById = <T,>(id: string): Board<T> => useBoardStore.getState().boards[id];\nexport const useBoardContextById = <T,>(id: string): T =>\n\tuseBoardStore((s) => s.boards[id].context);\nexport const getBoardContextById = <T,>(id: string): T =>\n\tuseBoardStore.getState().boards[id].context;\n\n// Must be empty if no board is available\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nexport const boardContext = createContext<Board>();\n// Must be empty if no board is available\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nexport const boardHooksContext = createContext<BoardHooksContext>();\n\nexport const BoardProvider: FC<{ id: string }> = ({ children, id }) => {\n\tconst board = useBoardById(id);\n\tconst callbacks = useMemo<BoardHooksContext>(\n\t\t() => ({\n\t\t\tgetBoardContext: () => getBoardContextById(id),\n\t\t\tgetBoard: () => getBoardById(id),\n\t\t\tcloseBoard: () => closeBoard(id),\n\t\t\tupdateBoard: (b) => updateBoard(id, b),\n\t\t\tsetCurrentBoard: () => setCurrentBoard(id)\n\t\t}),\n\t\t[id]\n\t);\n\treturn (\n\t\t<boardHooksContext.Provider value={callbacks}>\n\t\t\t<boardContext.Provider value={board}>{children}</boardContext.Provider>\n\t\t</boardHooksContext.Provider>\n\t);\n};\n\nexport const useBoardHooks = (): BoardHooksContext => useContext(boardHooksContext);\nexport const useBoard = (): Board => useContext(boardContext);\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nexport * from './hooks';\nexport * from './store';\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { produce } from 'immer';\nimport { forEach, trimStart, uniqueId } from 'lodash';\nimport { create } from 'zustand';\n\nimport type { BoardState, Board } from '../../../types';\nimport { getApp } from '../app';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useBoardStore = create<BoardState>()(() => ({\n\torderedBoards: [],\n\tboards: {},\n\texpanded: false,\n\tminimized: false\n}));\n\nexport const addBoard =\n\t(app: string) =>\n\t<T = unknown>(\n\t\tboard: Omit<Board<T>, 'app' | 'icon' | 'id'> & { id?: string; icon?: string },\n\t\texpanded?: BoardState['expanded']\n\t): Board => {\n\t\tconst id = board.id ?? uniqueId('board-');\n\t\tuseBoardStore.setState(\n\t\t\tproduce((state: BoardState) => {\n\t\t\t\tstate.boards[id] = {\n\t\t\t\t\t...board,\n\t\t\t\t\tapp,\n\t\t\t\t\tid,\n\t\t\t\t\ticon: board.icon ?? getApp(app)()?.icon ?? 'CubeOutline',\n\t\t\t\t\turl: trimStart(board.url, '/')\n\t\t\t\t};\n\t\t\t\tstate.current = id;\n\t\t\t\tstate.minimized = false;\n\t\t\t\tstate.expanded = expanded ?? state.expanded;\n\t\t\t\tstate.orderedBoards.unshift(id);\n\t\t\t})\n\t\t);\n\t\treturn useBoardStore.getState().boards[id];\n\t};\nexport const closeBoard = (id: string): void => {\n\tuseBoardStore.setState(\n\t\tproduce((state: BoardState) => {\n\t\t\tstate.boards[id]?.onClose?.(state.boards[id]);\n\t\t\tdelete state.boards[id];\n\t\t\tconst index = state.orderedBoards.findIndex((boardId) => boardId === id);\n\t\t\tif (state.current === id) {\n\t\t\t\tstate.current = state.orderedBoards[index + 1] || state.orderedBoards[index - 1];\n\t\t\t}\n\t\t\tif (index !== -1) {\n\t\t\t\tstate.orderedBoards.splice(index, 1);\n\t\t\t}\n\t\t})\n\t);\n};\nexport const closeAllBoards = (): void => {\n\tuseBoardStore.setState(\n\t\tproduce((state: BoardState) => {\n\t\t\tforEach(state.boards, (b) => {\n\t\t\t\tb?.onClose?.(b);\n\t\t\t\tdelete state.boards[b.id];\n\t\t\t});\n\t\t\tstate.orderedBoards = [];\n\t\t})\n\t);\n};\nexport const onGoToPanel = (): void => {\n\tuseBoardStore.setState(\n\t\tproduce((state: BoardState) => {\n\t\t\tconst id = state.current;\n\t\t\tif (id) {\n\t\t\t\tstate.boards[id]?.onGoToPanel?.(state.boards[id]);\n\t\t\t\tdelete state.boards[id];\n\t\t\t\tconst index = state.orderedBoards.findIndex((boardId) => boardId === id);\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\tstate.orderedBoards.splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t);\n};\nexport const minimizeBoards = (): void => {\n\tuseBoardStore.setState({\n\t\tminimized: true\n\t});\n};\nexport const reopenBoards = (): void => {\n\tuseBoardStore.setState({\n\t\tminimized: false\n\t});\n};\nexport const expandBoards = (): void => {\n\tuseBoardStore.setState({\n\t\texpanded: true\n\t});\n};\nexport const reduceBoards = (): void => {\n\tuseBoardStore.setState({\n\t\texpanded: false\n\t});\n};\nexport const setCurrentBoard = (id: string): void => {\n\tuseBoardStore.setState({\n\t\tcurrent: id\n\t});\n};\nexport const updateBoard = <T = unknown>(id: string, board: Partial<Board<T>>): void => {\n\tuseBoardStore.setState(\n\t\tproduce((state: BoardState) => {\n\t\t\tif (state.boards[id])\n\t\t\t\tstate.boards[id] = {\n\t\t\t\t\t...state.boards[id],\n\t\t\t\t\t...board\n\t\t\t\t};\n\t\t})\n\t);\n};\nexport const updateBoardContext = <T = unknown>(id: string, context: T): void => {\n\tuseBoardStore.setState(\n\t\tproduce((state: BoardState) => {\n\t\t\tif (state.boards[id]) {\n\t\t\t\tstate.boards[id].context = context;\n\t\t\t}\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 */\n\nimport { useEffect } from 'react';\n\nimport { reduce } from 'lodash';\nimport { create } from 'zustand';\n\nimport type { ContextBridgeState } from '../../types';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useContextBridge = create<ContextBridgeState>()((set) => ({\n\tpackageDependentFunctions: {},\n\tfunctions: {},\n\tadd: ({ packageDependentFunctions, functions }): void => {\n\t\tset((s) => ({\n\t\t\tpackageDependentFunctions: reduce(\n\t\t\t\tpackageDependentFunctions ?? {},\n\t\t\t\t(acc, f, key) => {\n\t\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\t\tacc[key] = f;\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\ts.packageDependentFunctions\n\t\t\t),\n\t\t\tfunctions: reduce(\n\t\t\t\tfunctions ?? {},\n\t\t\t\t(acc, f, key) => {\n\t\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\t\tacc[key] = f;\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\ts.functions\n\t\t\t)\n\t\t}));\n\t}\n}));\n\nexport const useBridge = (content: Partial<Omit<ContextBridgeState, 'add'>>): void => {\n\tconst addFunctions = useContextBridge(({ add }) => add);\n\tuseEffect(() => {\n\t\taddFunctions(content);\n\t}, [content, addFunctions]);\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { ComponentType, useMemo } from 'react';\n\nimport { useFolderStore } from './store';\nimport { filterNodes, folderViewFilter, isRoot, mapNodes, sortFolders } from './utils';\nimport {\n\tAccordionFolder,\n\tFolder,\n\tFolders,\n\tFolderView,\n\tSearches,\n\tSearchFolder\n} from '../../../types';\n\n// FOLDERS\nexport const useFolder = (id: string): Folder | undefined => useFolderStore((s) => s.folders?.[id]);\nexport const getFolder = (id: string): Folder | undefined =>\n\tuseFolderStore.getState()?.folders?.[id];\nexport const useFolders = (): Folders => useFolderStore((s) => s.folders);\nexport const getFolders = (): Folders => useFolderStore.getState().folders;\n\n// ROOTS\nexport const useRoot = (id: string): Folder | undefined => useFolderStore((s) => s.roots?.[id]);\nexport const getRoot = (id: string): Folder | undefined => useFolderStore.getState().roots?.[id];\nexport const useRoots = (): Folders => useFolderStore((s) => s.roots);\nexport const getRoots = (): Folders => useFolderStore.getState().roots;\n\n// ROOTS BY VIEW\nexport const useRootByUser = (userId: string): Folder | SearchFolder | Record<string, never> =>\n\tuseFolderStore((s) => (s.roots ? s.roots[userId] : {}));\nexport const getRootByUser = (userId: string): Folder | SearchFolder | Record<string, never> => {\n\tconst folders = useFolderStore.getState();\n\treturn folders.roots ? folders.roots[userId] : {};\n};\n\n// SEARCHES\n\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// Accordion-ize\n\nexport const useFoldersByView = (view: FolderView): Array<Folder> => {\n\tconst roots = useRoots();\n\treturn useMemo(\n\t\t() =>\n\t\t\troots ? filterNodes<Folder>(Object.values(roots), folderViewFilter(view), sortFolders) : [],\n\t\t[roots, view]\n\t);\n};\n\nexport const useFoldersAccordionByView = (\n\tview: FolderView,\n\tCustomComponent: ComponentType<{ folder: Folder }>,\n\titemProps?: (item: AccordionFolder) => Record<string, any>\n): Array<AccordionFolder> => {\n\tconst roots = useRoots();\n\treturn useMemo(\n\t\t() =>\n\t\t\troots\n\t\t\t\t? mapNodes<Folder, AccordionFolder>(Object.values(roots), {\n\t\t\t\t\t\tmapFunction: (f) => {\n\t\t\t\t\t\t\tconst item = {\n\t\t\t\t\t\t\t\tid: f.id,\n\t\t\t\t\t\t\t\tlabel: f.name,\n\t\t\t\t\t\t\t\tCustomComponent,\n\t\t\t\t\t\t\t\titems: [],\n\t\t\t\t\t\t\t\tfolder: f,\n\t\t\t\t\t\t\t\tdisableHover: isRoot(f)\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tconst props = itemProps?.(item) ?? {};\n\t\t\t\t\t\t\treturn { ...item, ...props };\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfilterFunction: folderViewFilter(view),\n\t\t\t\t\t\trecursionKey: 'items',\n\t\t\t\t\t\tsortFunction: sortFolders,\n\t\t\t\t\t\tdeep: false\n\t\t\t\t })\n\t\t\t\t: [],\n\t\t[CustomComponent, itemProps, roots, view]\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 * from './store';\nexport * from './hooks';\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 type { FolderState } from '../../../types';\nimport { folderWorker } from '../../workers';\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>()(() => ({\n\tfolders: {},\n\troots: {},\n\tsearches: {}\n}));\n\nfolderWorker.onmessage = ({ data }): void => {\n\tuseFolderStore.setState(data);\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { sortBy } from 'lodash';\n\nimport { Folder, FolderView, LinkFolder, TreeNode } from '../../../types';\nimport { FOLDERS, ROOT_NAME } from '../../constants';\n\nconst hasId = (f: Folder | TreeNode<unknown>, id: string): boolean => f.id.split(':').includes(id);\nconst getOriginalId = (f: Folder): string => {\n\tconst parts = f.id.split(':');\n\treturn parts[1] ?? parts[0];\n};\nexport const sortFolders = (f: Folder): string => {\n\tconst id = getOriginalId(f);\n\tif (id === FOLDERS.TRASH) {\n\t\treturn FOLDERS.LAST_SYSTEM_FOLDER_POSITION;\n\t}\n\treturn parseInt(id, 10) < 17 ? ` ${id}` : f.name.toLowerCase();\n};\n\nexport const isTrash = (f: Folder): boolean => hasId(f, FOLDERS.TRASH);\n\nexport const isRoot = (f: Folder): boolean =>\n\tf.id === FOLDERS.USER_ROOT || (f as LinkFolder).oname === ROOT_NAME;\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));\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 * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { i18n, TFunction } from 'i18next';\n\nimport { useI18nStore } from './store';\nimport { SHELL_APP_ID } from '../../constants';\n\nexport const getI18n = (app: string) => (): i18n => {\n\tconst { instances, defaultI18n } = useI18nStore.getState();\n\treturn instances[app] ?? instances[SHELL_APP_ID] ?? defaultI18n;\n};\n\nexport const getTFunction = (app: string): TFunction => {\n\tconst { instances, defaultI18n } = useI18nStore.getState();\n\treturn instances[app]?.t ?? defaultI18n.t;\n};\n\nexport const getT = (): TFunction => {\n\tconst { instances, defaultI18n } = useI18nStore.getState();\n\treturn instances[SHELL_APP_ID]?.t ?? defaultI18n.t;\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nexport * from './hooks';\nexport * from './store';\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport i18next, { i18n, InitOptions } from 'i18next';\nimport Backend from 'i18next-http-backend';\nimport { produce } from 'immer';\nimport { dropRight, forEach, reduce } from 'lodash';\nimport { initReactI18next } from 'react-i18next';\nimport { create } from 'zustand';\n\nimport type { CarbonioModule, I18nState } from '../../../types';\nimport { SHELL_APP_ID } from '../../constants';\nimport { useAccountStore } from '../account';\n\nconst addShell = (apps: Array<CarbonioModule>): Array<CarbonioModule> => [\n\t...apps,\n\t{\n\t\tcommit: '',\n\t\tdescription: '',\n\t\tjs_entrypoint: '',\n\t\tname: SHELL_APP_ID,\n\t\tpriority: -1,\n\t\tversion: '',\n\t\ttype: 'shell',\n\t\tattrKey: '',\n\t\ticon: '',\n\t\tdisplay: 'Shell'\n\t}\n];\n\nconst { settings } = useAccountStore.getState();\n\nconst defaultLng =\n\t(settings?.prefs?.zimbraPrefLocale as string) ??\n\t(settings?.attrs?.zimbraLocale as string) ??\n\t'en';\n\nconst defaultI18n = i18next.createInstance({ lng: defaultLng });\n\nconst defaultI18nInitOptions: InitOptions = {\n\treturnEmptyString: true,\n\treturnNull: false,\n\tcompatibilityJSON: 'v3',\n\tlng: defaultLng,\n\tfallbackLng: 'en',\n\tdebug: false,\n\tinterpolation: {\n\t\tescapeValue: false // not needed for react as it escapes by default\n\t},\n\tmissingKeyHandler: (_, __, key) => {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(`Missing translation with key '${key}'`);\n\t},\n\tbackend: {\n\t\tloadPath: `${BASE_PATH}/i18n/{{lng}}.json`\n\t}\n};\n\nexport const useI18nStore = create<I18nState>()((set) => ({\n\tinstances: {},\n\tdefaultI18n,\n\tlocale: 'en',\n\tsetters: {\n\t\tsetLocale: (locale: string): void => {\n\t\t\tset(\n\t\t\t\tproduce((state: I18nState) => {\n\t\t\t\t\tstate.locale = locale;\n\t\t\t\t\tforEach(state.instances, (i18nInst) => i18nInst.changeLanguage(locale));\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t},\n\tgetters: {\n\t\tgetLocale: (state: I18nState): string => state.locale\n\t},\n\tactions: {\n\t\taddI18n: (apps: Array<CarbonioModule>, locale: string): void => {\n\t\t\tconst appsWithShell = addShell(apps);\n\t\t\tset(\n\t\t\t\tproduce((state: I18nState) => {\n\t\t\t\t\tstate.instances = reduce<CarbonioModule, Record<string, i18n>>(\n\t\t\t\t\t\tappsWithShell,\n\t\t\t\t\t\t(acc, app): Record<string, i18n> => {\n\t\t\t\t\t\t\tconst newI18n = i18next.createInstance();\n\t\t\t\t\t\t\tnewI18n\n\t\t\t\t\t\t\t\t// load translation using http -> see /public/locales (i.e. https://github.com/i18next/react-i18next/tree/master/example/react/public/locales)\n\t\t\t\t\t\t\t\t// learn more: https://github.com/i18next/i18next-http-backend\n\t\t\t\t\t\t\t\t.use(Backend)\n\t\t\t\t\t\t\t\t// init i18next\n\t\t\t\t\t\t\t\t// for all options read: https://www.i18next.com/overview/configuration-options\n\t\t\t\t\t\t\t\t.init({\n\t\t\t\t\t\t\t\t\t...defaultI18nInitOptions,\n\t\t\t\t\t\t\t\t\tlng: locale,\n\t\t\t\t\t\t\t\t\tbackend: {\n\t\t\t\t\t\t\t\t\t\tloadPath:\n\t\t\t\t\t\t\t\t\t\t\tapp.name === SHELL_APP_ID\n\t\t\t\t\t\t\t\t\t\t\t\t? `${BASE_PATH}/i18n/{{lng}}.json`\n\t\t\t\t\t\t\t\t\t\t\t\t: `${dropRight(app.js_entrypoint.split('/')).join('/')}/i18n/{{lng}}.json`\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// eslint-disable-next-line no-param-reassign\n\t\t\t\t\t\t\tacc[app.name] = newI18n;\n\t\t\t\t\t\t\treturn acc;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{}\n\t\t\t\t\t);\n\t\t\t\t\tstate.defaultI18n.t = state.instances[SHELL_APP_ID].t;\n\t\t\t\t\tstate.locale = locale;\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}\n}));\n\ndefaultI18n\n\t.use(Backend)\n\t// pass the i18n instance to react-i18next.\n\t.use(initReactI18next)\n\t// init i18next\n\t// for all options read: https://www.i18next.com/overview/configuration-options\n\t.init(defaultI18nInitOptions);\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { FC, useCallback, useMemo, useRef } from 'react';\n\nimport { Editor, IAllProps as EditorProps } from '@tinymce/tinymce-react';\nimport { Container } from '@zextras/carbonio-design-system';\nimport styled from 'styled-components';\nimport type { EditorOptions, TinyMCE, Ui } from 'tinymce/tinymce';\n// TinyMCE so the global var exists\nimport tinymce from 'tinymce/tinymce';\nimport 'tinymce/models/dom';\n// Theme\nimport 'tinymce/themes/silver';\n// Toolbar icons\nimport 'tinymce/icons/default';\n// Editor styles\nimport 'tinymce/skins/ui/oxide/skin.min.css';\n// importing the plugin js.\nimport 'tinymce/plugins/advlist';\nimport 'tinymce/plugins/anchor';\nimport 'tinymce/plugins/autolink';\nimport 'tinymce/plugins/autoresize';\nimport 'tinymce/plugins/charmap';\nimport 'tinymce/plugins/code';\nimport 'tinymce/plugins/directionality';\nimport 'tinymce/plugins/fullscreen';\nimport 'tinymce/plugins/help';\nimport 'tinymce/plugins/image';\nimport 'tinymce/plugins/insertdatetime';\nimport 'tinymce/plugins/link';\nimport 'tinymce/plugins/lists';\nimport 'tinymce/plugins/media';\nimport 'tinymce/plugins/preview';\nimport 'tinymce/plugins/quickbars';\nimport 'tinymce/plugins/searchreplace';\nimport 'tinymce/plugins/table';\nimport 'tinymce/plugins/visualblocks';\nimport 'tinymce/plugins/wordcount';\n\nimport { SUPPORTED_LOCALES } from '../../constants/locales';\nimport { useUserSettings } from '../account';\nimport { getT, useI18nStore } from '../i18n';\n\ntype ComposerProps = EditorProps & {\n\t/** The callback invoked when an edit is performed into the editor. `([text, html]) => {}` */\n\tonEditorChange?: (values: [string, string]) => void;\n\t/** Enable the distraction-free mode */\n\tinline?: boolean;\n\t/** The initial content of the editor */\n\tinitialValue?: EditorProps['initialValue'];\n\t/** The content of the editor (controlled mode) */\n\tvalue?: EditorProps['value'];\n\t/**\n\t * Callback called when user choose some file from the os.\n\t * If defined, a menu item to add inline images is added to the composer.\n\t */\n\tonFileSelect?: (arg: { editor: TinyMCE; files: HTMLInputElement['files'] | undefined }) => void;\n\tcustomInitOptions?: Partial<EditorProps['init']>;\n};\n\nexport const FileInput = styled.input`\n\tdisplay: none;\n`;\n\nconst Composer: FC<ComposerProps> = ({\n\tonEditorChange,\n\tonFileSelect,\n\tinline = false,\n\tvalue,\n\tinitialValue,\n\tcustomInitOptions,\n\t...rest\n}) => {\n\tconst _onEditorChange = useCallback<NonNullable<EditorProps['onEditorChange']>>(\n\t\t(newContent, editor) => {\n\t\t\tonEditorChange?.([\n\t\t\t\teditor.getContent({ format: 'text' }),\n\t\t\t\teditor.getContent({ format: 'html' })\n\t\t\t]);\n\t\t},\n\t\t[onEditorChange]\n\t);\n\tconst { prefs } = useUserSettings();\n\tconst defaultStyle = useMemo(\n\t\t() => ({\n\t\t\tfont: prefs?.zimbraPrefHtmlEditorDefaultFontFamily,\n\t\t\tfontSize: prefs?.zimbraPrefHtmlEditorDefaultFontSize,\n\t\t\tcolor: prefs?.zimbraPrefHtmlEditorDefaultFontColor\n\t\t}),\n\t\t[prefs]\n\t);\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst onFileClick = useCallback(() => {\n\t\tif (inputRef.current) {\n\t\t\tinputRef.current.value = '';\n\t\t\tinputRef.current.click();\n\t\t}\n\t}, []);\n\tconst t = getT();\n\tconst { locale } = useI18nStore.getState();\n\tconst language = useMemo(() => {\n\t\tconst localeObj =\n\t\t\tlocale in SUPPORTED_LOCALES && SUPPORTED_LOCALES[locale as keyof typeof SUPPORTED_LOCALES];\n\t\treturn (\n\t\t\t(localeObj &&\n\t\t\t\t(('tinymceLocale' in localeObj && localeObj?.tinymceLocale) || localeObj?.value)) ||\n\t\t\tlocale\n\t\t);\n\t}, [locale]);\n\tconst inlineLabel = useMemo(() => t('label.add_inline_image', 'Add inline image'), [t]);\n\n\tconst setupCallback = useCallback<NonNullable<EditorOptions['setup']>>(\n\t\t(editor) => {\n\t\t\tif (onFileSelect)\n\t\t\t\teditor.ui.registry.addMenuButton('imageSelector', {\n\t\t\t\t\ticon: 'gallery',\n\t\t\t\t\ttooltip: t('label.select_image', 'Select image'),\n\t\t\t\t\tfetch: (callback) => {\n\t\t\t\t\t\tconst items: Ui.Menu.MenuItemSpec[] = [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'menuitem',\n\t\t\t\t\t\t\t\ttext: inlineLabel,\n\t\t\t\t\t\t\t\tonAction: (): void => {\n\t\t\t\t\t\t\t\t\tonFileClick();\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\tcallback(items);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t},\n\t\t[inlineLabel, onFileClick, onFileSelect, t]\n\t);\n\n\tconst editorInitConfig = useMemo<EditorProps['init']>(\n\t\t() => ({\n\t\t\tcontent_css: `${BASE_PATH}/tinymce/skins/content/default/content.css`,\n\t\t\tlanguage_url: `${BASE_PATH}tinymce/langs/${language}.js`,\n\t\t\tlanguage,\n\t\t\tsetup: setupCallback,\n\t\t\tmin_height: 350,\n\t\t\tauto_focus: true,\n\t\t\tmenubar: false,\n\t\t\tstatusbar: false,\n\t\t\tbranding: false,\n\t\t\tresize: true,\n\t\t\tinline,\n\t\t\tfont_size_formats:\n\t\t\t\t'8pt 9pt 10pt 11pt 12pt 13pt 14pt 16pt 18pt 24pt 30pt 36pt 48pt 60pt 72pt 96pt',\n\t\t\tobject_resizing: 'img',\n\t\t\tstyle_formats: [\n\t\t\t\t{\n\t\t\t\t\ttitle: 'Headers',\n\t\t\t\t\titems: [\n\t\t\t\t\t\t{ title: 'h1', block: 'h1' },\n\t\t\t\t\t\t{ title: 'h2', block: 'h2' },\n\t\t\t\t\t\t{ title: 'h3', block: 'h3' },\n\t\t\t\t\t\t{ title: 'h4', block: 'h4' },\n\t\t\t\t\t\t{ title: 'h5', block: 'h5' },\n\t\t\t\t\t\t{ title: 'h6', block: 'h6' }\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttitle: 'Blocks',\n\t\t\t\t\titems: [\n\t\t\t\t\t\t{ title: 'p', block: 'p' },\n\t\t\t\t\t\t{ title: 'div', block: 'div' },\n\t\t\t\t\t\t{ title: 'pre', block: 'pre' }\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttitle: 'Containers',\n\t\t\t\t\titems: [\n\t\t\t\t\t\t{ title: 'section', block: 'section', wrapper: true, merge_siblings: false },\n\t\t\t\t\t\t{ title: 'article', block: 'article', wrapper: true, merge_siblings: false },\n\t\t\t\t\t\t{ title: 'blockquote', block: 'blockquote', wrapper: true },\n\t\t\t\t\t\t{ title: 'hgroup', block: 'hgroup', wrapper: true },\n\t\t\t\t\t\t{ title: 'aside', block: 'aside', wrapper: true },\n\t\t\t\t\t\t{ title: 'figure', block: 'figure', wrapper: true }\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t],\n\t\t\tplugins: [\n\t\t\t\t'advlist',\n\t\t\t\t'autolink',\n\t\t\t\t'lists',\n\t\t\t\t'link',\n\t\t\t\t'image',\n\t\t\t\t'charmap',\n\t\t\t\t'preview',\n\t\t\t\t'anchor',\n\t\t\t\t'searchreplace',\n\t\t\t\t'code',\n\t\t\t\t'fullscreen',\n\t\t\t\t'insertdatetime',\n\t\t\t\t'media',\n\t\t\t\t'table',\n\t\t\t\t'code',\n\t\t\t\t'help',\n\t\t\t\t'quickbars',\n\t\t\t\t'directionality',\n\t\t\t\t'autoresize',\n\t\t\t\t'visualblocks'\n\t\t\t],\n\t\t\ttoolbar: inline\n\t\t\t\t? false\n\t\t\t\t: [\n\t\t\t\t\t\t'fontfamily fontsize styles visualblocks',\n\t\t\t\t\t\t'bold italic underline strikethrough',\n\t\t\t\t\t\t'removeformat code',\n\t\t\t\t\t\t'alignleft aligncenter alignright alignjustify',\n\t\t\t\t\t\t'forecolor backcolor',\n\t\t\t\t\t\t'bullist numlist outdent indent',\n\t\t\t\t\t\t'ltr rtl',\n\t\t\t\t\t\t'insertfile image',\n\t\t\t\t\t\t'imageSelector'\n\t\t\t\t ].join(' | '),\n\t\t\tquickbars_insert_toolbar: inline ? 'bullist numlist' : '',\n\t\t\tquickbars_selection_toolbar: inline\n\t\t\t\t? 'bold italic underline | forecolor backcolor | removeformat | quicklink'\n\t\t\t\t: 'quicklink',\n\t\t\tcontextmenu: '',\n\t\t\ttoolbar_mode: 'wrap',\n\t\t\tcontent_style: `body { color: ${defaultStyle?.color}; font-size: ${defaultStyle?.fontSize}; font-family: ${defaultStyle?.font}; }`,\n\t\t\tvisualblocks_default_state: false,\n\t\t\tend_container_on_empty_block: true,\n\t\t\trelative_urls: false,\n\t\t\tremove_script_host: false,\n\t\t\tnewline_behavior: 'default',\n\t\t\tbrowser_spellcheck: true,\n\t\t\t...customInitOptions\n\t\t}),\n\t\t[\n\t\t\tlanguage,\n\t\t\tsetupCallback,\n\t\t\tinline,\n\t\t\tdefaultStyle?.color,\n\t\t\tdefaultStyle?.fontSize,\n\t\t\tdefaultStyle?.font,\n\t\t\tcustomInitOptions\n\t\t]\n\t);\n\n\tconst fileInputOnChange = useCallback((): void => {\n\t\tonFileSelect?.({ editor: tinymce, files: inputRef?.current?.files });\n\t}, [onFileSelect]);\n\n\treturn (\n\t\t<Container\n\t\t\theight=\"100%\"\n\t\t\tcrossAlignment=\"baseline\"\n\t\t\tmainAlignment=\"flex-start\"\n\t\t\tstyle={{ overflowY: 'hidden' }}\n\t\t>\n\t\t\t<FileInput\n\t\t\t\ttype=\"file\"\n\t\t\t\tref={inputRef}\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tonChange={fileInputOnChange}\n\t\t\t\tmultiple\n\t\t\t/>\n\n\t\t\t<Editor\n\t\t\t\tinitialValue={initialValue}\n\t\t\t\tvalue={value}\n\t\t\t\tinit={editorInitConfig}\n\t\t\t\tonEditorChange={_onEditorChange}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t</Container>\n\t);\n};\n\nexport default Composer;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\n/* THIS FILE CONTAINS HOOKS, BUT ESLINT IS DUMB */\n\nimport React, { FC, FunctionComponent } from 'react';\n\nimport { compact, map } from 'lodash';\n\nimport { useIntegrationsStore } from './store';\nimport { Action, ActionFactory } from '../../../types';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport AppContextProvider from '../../boot/app/app-context-provider';\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const getIntegratedFunction = (id: string): [Function, boolean] => {\n\tconst integration = useIntegrationsStore.getState().functions?.[id];\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\treturn integration ? [integration, true] : [(): void => {}, false];\n};\n\nexport const getIntegratedComponent = (id: string): [FunctionComponent<unknown>, boolean] => {\n\tconst Integration = useIntegrationsStore.getState().components?.[id];\n\tif (Integration) {\n\t\tconst C: FC = (props: unknown) => (\n\t\t\t<AppContextProvider pkg={Integration.app}>\n\t\t\t\t{/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}\n\t\t\t\t{/* @ts-ignore */}\n\t\t\t\t<Integration.item {...props} />\n\t\t\t</AppContextProvider>\n\t\t);\n\t\treturn [C, true];\n\t}\n\treturn [(): null => null, false];\n};\n\nexport const getActions = <T,>(target: T, type: string): Array<Action> => {\n\tconst factories = useIntegrationsStore.getState().actions[type];\n\treturn compact(\n\t\tmap(factories, (f) => {\n\t\t\ttry {\n\t\t\t\treturn f(target);\n\t\t\t} catch (e) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error(e);\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t})\n\t);\n};\n\nexport const getActionsFactory = (type: string): (<T>(target: T) => Array<Action>) => {\n\tconst factories = useIntegrationsStore.getState().actions[type];\n\treturn <T,>(target: T): Array<Action> =>\n\t\tcompact(\n\t\t\tmap(factories, (f) => {\n\t\t\t\ttry {\n\t\t\t\t\treturn f(target);\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t})\n\t\t);\n};\n\nexport const getAction = <T,>(\n\ttype: string,\n\tid: string,\n\ttarget?: T\n): [Action | undefined, boolean] => {\n\tconst factory = useIntegrationsStore.getState().actions[type]?.[id];\n\tconst action = factory?.(target);\n\treturn [action, !!action];\n};\n\nexport const getActionFactory = <T,>(\n\ttype: string,\n\tid: string\n): [ActionFactory<T> | undefined, boolean] => {\n\tconst factory = useIntegrationsStore.getState().actions[type]?.[id];\n\treturn [factory, !!factory];\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\n/* THIS FILE CONTAINS HOOKS, BUT ESLINT IS DUMB */\n\nimport React, { useMemo, FC, FunctionComponent, useCallback } from 'react';\n\nimport { compact, map } from 'lodash';\n\nimport { useIntegrationsStore } from './store';\nimport { Action, ActionFactory, CombinedActionFactory } from '../../../types';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport AppContextProvider from '../../boot/app/app-context-provider';\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const useIntegratedFunction = (id: string): [Function, boolean] => {\n\tconst integration = useIntegrationsStore((s) => s.functions?.[id]);\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\treturn integration ? [integration, true] : [(): void => {}, false];\n};\n\nexport const useIntegratedComponent = (id: string): [FunctionComponent<unknown>, boolean] => {\n\tconst Integration = useIntegrationsStore((s) => s.components?.[id]);\n\treturn useMemo(() => {\n\t\tif (Integration) {\n\t\t\tconst C: FC = (props: unknown) => (\n\t\t\t\t<AppContextProvider pkg={Integration.app}>\n\t\t\t\t\t{/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}\n\t\t\t\t\t{/* @ts-ignore */}\n\t\t\t\t\t<Integration.item {...props} />\n\t\t\t\t</AppContextProvider>\n\t\t\t);\n\t\t\treturn [C, true];\n\t\t}\n\t\treturn [(): null => null, false];\n\t}, [Integration]);\n};\n\nexport const useActions = <T,>(target: T, type: string): Array<Action> => {\n\tconst factories = useIntegrationsStore((s) => s.actions[type]);\n\treturn useMemo(\n\t\t() =>\n\t\t\tcompact(\n\t\t\t\tmap(factories, (f) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn f(target);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t) ?? [],\n\t\t[factories, target]\n\t);\n};\n\nexport const useActionsFactory = <T,>(type: string): CombinedActionFactory<T> => {\n\tconst factories = useIntegrationsStore((s) => s.actions[type]);\n\treturn useCallback(\n\t\t(target: unknown) =>\n\t\t\tcompact(\n\t\t\t\tmap(factories, (f) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn f(target);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t),\n\t\t[factories]\n\t);\n};\n\nexport const useAction = <T,>(\n\ttype: string,\n\tid: string,\n\ttarget?: T\n): [Action | undefined, boolean] => {\n\tconst factory = useIntegrationsStore((s) => s.actions[type][id]);\n\tconst action = useMemo(() => {\n\t\ttry {\n\t\t\treturn factory?.(target);\n\t\t} catch (e) {\n\t\t\treturn undefined;\n\t\t}\n\t}, [factory, target]);\n\treturn [action, !!action];\n};\n\nexport const useActionFactory = <T,>(\n\ttype: string,\n\tid: string\n): [ActionFactory<T> | undefined, boolean] => {\n\tconst factory = useIntegrationsStore((s) => s.actions[type][id]);\n\treturn [factory, !!factory];\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { ComponentType } from 'react';\n\nimport { produce } from 'immer';\nimport { forEach, includes, omit } from 'lodash';\nimport { create } from 'zustand';\n\nimport Composer from './composer';\nimport type { ActionFactory, AnyFunction, IntegrationsState } from '../../../types';\nimport { SHELL_APP_ID } from '../../constants';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useIntegrationsStore = create<IntegrationsState>()((set) => ({\n\tactions: {},\n\tcomponents: {\n\t\tcomposer: {\n\t\t\titem: Composer,\n\t\t\tapp: SHELL_APP_ID\n\t\t}\n\t},\n\tfunctions: {},\n\tregisterActions: <T>(\n\t\t...items: Array<{ id: string; action: ActionFactory<T>; type: string }>\n\t): void =>\n\t\tset(\n\t\t\tproduce((state) => {\n\t\t\t\tforEach(items, ({ id, action, type }) => {\n\t\t\t\t\tif (!state.actions[type]) state.actions[type] = {};\n\t\t\t\t\tstate.actions[type][id] = action;\n\t\t\t\t});\n\t\t\t})\n\t\t),\n\tregisterComponents:\n\t\t(app: string) =>\n\t\t(...items: Array<{ id: string; component: ComponentType }>): void =>\n\t\t\tset(\n\t\t\t\tproduce((state) => {\n\t\t\t\t\tforEach(items, ({ id, component }) => {\n\t\t\t\t\t\tstate.components[id] = { app, item: component };\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t),\n\tregisterFunctions: (...items: Array<{ id: string; fn: AnyFunction }>): void =>\n\t\tset(\n\t\t\tproduce((state) => {\n\t\t\t\tforEach(items, ({ id, fn }) => {\n\t\t\t\t\tstate.functions[id] = fn;\n\t\t\t\t});\n\t\t\t})\n\t\t),\n\tremoveActions: (...ids: Array<string>): void =>\n\t\tset(\n\t\t\tproduce((state) => {\n\t\t\t\tforEach(state.actions, (actionTypeMap, type) => {\n\t\t\t\t\tforEach(actionTypeMap, (actionFactory, actionFactoryId) => {\n\t\t\t\t\t\tif (includes(ids, actionFactoryId)) {\n\t\t\t\t\t\t\tdelete state.actions[type][actionFactoryId];\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\tremoveComponents: (...ids: Array<string>): void =>\n\t\tset((s) => ({\n\t\t\t...s,\n\t\t\tcomponents: omit(s.components, ids)\n\t\t})),\n\tremoveFunctions: (...ids: Array<string>): void =>\n\t\tset((s) => ({\n\t\t\t...s,\n\t\t\tfunctions: omit(s.functions, ids)\n\t\t}))\n}));\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useLoginConfigStore } from './store';\n\nexport function getFavicon(): string {\n\treturn useLoginConfigStore.getState().carbonioWebUiFavicon;\n}\n\nexport function getClientTitle(): string {\n\treturn useLoginConfigStore.getState().carbonioWebUiTitle;\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { useMemo } from 'react';\n\nimport { useLoginConfigStore } from './store';\nimport DefaultLogo from '../../../assets/carbonio.svg';\nimport { useDarkMode } from '../../dark-mode/use-dark-mode';\n\nexport function useLogo(): string | React.ComponentType {\n\tconst { carbonioWebUiAppLogo, carbonioWebUiDarkAppLogo } = useLoginConfigStore();\n\n\tconst { darkModeEnabled } = useDarkMode();\n\n\treturn useMemo(() => {\n\t\tif (darkModeEnabled) {\n\t\t\treturn carbonioWebUiDarkAppLogo || carbonioWebUiAppLogo || DefaultLogo;\n\t\t}\n\t\treturn carbonioWebUiAppLogo || carbonioWebUiDarkAppLogo || DefaultLogo;\n\t}, [carbonioWebUiDarkAppLogo, carbonioWebUiAppLogo, darkModeEnabled]);\n}\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { create } from 'zustand';\n\nimport type { LoginConfigStore } from '../../../types/loginConfig';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useLoginConfigStore = create<LoginConfigStore>()(() => ({\n\tloaded: false,\n\t// setup defaults for fields which does not depend on dark mode\n\tcarbonioWebUiTitle: 'Carbonio Client',\n\t// default to png because this icon is used also in notification, and svg are not supported there\n\tcarbonioWebUiFavicon: `${BASE_PATH}favicon.png`\n}));\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useNetworkStore } from './store';\nimport { SoapNotify, SoapRefresh } from '../../../types';\n\nexport const useNotify = (): SoapNotify[] => useNetworkStore((s) => s.notify ?? []);\nexport const useRefresh = (): SoapRefresh => useNetworkStore((s) => s.refresh ?? {});\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nexport * from './store';\nexport * from './hooks';\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { create } from 'zustand';\n\nimport type { NetworkState } from '../../../types';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useNetworkStore = create<NetworkState>()(() => ({\n\tpollingInterval: 30000,\n\tseq: 0\n}));\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { forEach } from 'lodash';\n\nimport { useNetworkStore } from './store';\nimport { AccountSettings, SoapContext, SoapResponse } from '../../../types';\nimport { folderWorker, tagWorker } from '../../workers';\nimport { useAccountStore } from '../account';\nimport { useFolderStore } from '../folder';\nimport { useTagStore } from '../tags';\n\n/**\n * Polling interval to use if the long polling delay\n * is not allowed for the user\n */\nconst POLLING_NOWAIT_INTERVAL = 10_000;\n\n/**\n * Polling interval to use if a previous request failed\n * with a 500 error\n */\nconst POLLING_RETRY_INTERVAL = 60_000;\n\nexport const parsePollingInterval = (settings: AccountSettings): number => {\n\tconst pollingPref = settings.prefs?.zimbraPrefMailPollingInterval ?? '';\n\tif (pollingPref === '500') {\n\t\treturn 500;\n\t}\n\tconst pollingValue = parseInt(pollingPref, 10);\n\tif (Number.isNaN(pollingValue)) {\n\t\treturn 30000;\n\t}\n\tif (pollingPref.includes('m')) {\n\t\treturn pollingValue * 60 * 1000;\n\t}\n\treturn pollingValue * 1000;\n};\n\n/**\n * Return the polling interval for the next NoOp request.\n * The interval length depends on the user settings, but it can be\n * overridden by the server response/errors\n * @param res\n */\nexport const getPollingInterval = <R>(res: SoapResponse<R>): number => {\n\tconst { pollingInterval } = useNetworkStore.getState();\n\tconst { settings } = useAccountStore.getState();\n\tconst waitDisallowed = (res?.Body as { waitDisallowed?: number })?.waitDisallowed;\n\tconst fault = res?.Body?.Fault;\n\tif (fault) {\n\t\treturn POLLING_RETRY_INTERVAL;\n\t}\n\tif (waitDisallowed) {\n\t\treturn POLLING_NOWAIT_INTERVAL;\n\t}\n\tif (!fault) {\n\t\treturn parsePollingInterval(settings);\n\t}\n\treturn pollingInterval;\n};\n\nexport const handleSync = ({ refresh, notify }: SoapContext): Promise<void> =>\n\tnew Promise((r) => {\n\t\tconst { seq } = useNetworkStore.getState();\n\t\tif (refresh) {\n\t\t\ttagWorker.postMessage({\n\t\t\t\top: 'refresh',\n\t\t\t\ttags: refresh.tags\n\t\t\t});\n\t\t\tfolderWorker.postMessage({\n\t\t\t\top: 'refresh',\n\t\t\t\tfolder: refresh.folder ?? []\n\t\t\t});\n\t\t}\n\t\tif (notify?.length) {\n\t\t\tforEach(notify, (item) => {\n\t\t\t\tif (item.seq > seq) {\n\t\t\t\t\ttagWorker.postMessage({\n\t\t\t\t\t\top: 'notify',\n\t\t\t\t\t\tnotify: item,\n\t\t\t\t\t\tstate: useTagStore.getState().tags\n\t\t\t\t\t});\n\t\t\t\t\tfolderWorker.postMessage({\n\t\t\t\t\t\top: 'notify',\n\t\t\t\t\t\tnotify: item,\n\t\t\t\t\t\tstate: useFolderStore.getState().folders\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tr();\n\t});\n// export const noOp = (): void => {\n// \t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n// \tgetSoapFetch(SHELL_APP_ID)(\n// \t\t'NoOp',\n// \t\tuseNetworkStore.getState().pollingInterval === 500\n// \t\t\t? { _jsns: 'urn:zimbraMail', limitToOneBlocked: 1, wait: 1 }\n// \t\t\t: { _jsns: 'urn:zimbraMail' }\n// \t);\n// };\n// export const handleSoapContext = ({ notify, refresh, session, change }: SoapContext): void =>\n// \tuseNetworkStore.setState({\n// \t\tsession,\n// \t\tchange,\n// \t\trefresh,\n// \t\tseq: maxBy(notify, 'seq'),\n// \t\tnoOpTimeout: setTimeout(() => noOp(), pollingInterval),\n// \t\tnotify: map(notify, (notifyItem) => ({\n// \t\t\t...notifyItem,\n// \t\t\tdeleted: notifyItem.deleted?.id?.split(',')\n// \t\t}))\n// \t});\n// // handleTagSync(_context);\n// // useNetworkStore.setState({\n// // \tnoOpTimeout: setTimeout(() => noOp(), pollingInterval),\n// // \t,\n// // \t...res?.Header?.context\n// // });\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { pick } from 'lodash';\n\nimport { useTagStore } from './store';\nimport { Tags } from '../../../types';\n\n/* eslint-disable react-hooks/rules-of-hooks */\n/* THIS FILE CONTAINS HOOKS, BUT ESLINT IS DUMB */\n\nexport const useTags = (ids?: Array<string> | string): Tags =>\n\tuseTagStore((s) => (ids ? pick(s.tags, ids) : s.tags));\nexport const getTags = (ids?: Array<string> | string): Tags =>\n\tids ? pick(useTagStore.getState().tags, ids) : useTagStore.getState().tags;\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nexport * from './hooks';\nexport * from './store';\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 type { TagState } from '../../../types';\nimport { tagWorker } from '../../workers';\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\ntagWorker.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 React, { FC, useMemo } from 'react';\n\nimport { Link as RRLink, LinkProps } from 'react-router-dom';\n\nimport { parseParams } from '../history/hooks';\n\ntype AppLinkProps = LinkProps & {\n\troute?: string;\n};\nexport const AppLink: FC<AppLinkProps> = ({ to, route, ...rest }) => {\n\tconst _to = useMemo(() => parseParams({ path: to, route }), [route, to]);\n\treturn <RRLink style={{ textDecoration: 'none' }} to={_to} {...rest} />;\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useEffect, useState, useMemo } from 'react';\n\nimport { Modal, Button, ModalProps } from '@zextras/carbonio-design-system';\nimport { Location } from 'history';\nimport { filter } from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { Prompt, useHistory } from 'react-router-dom';\n\nexport interface RouteLeavingGuardProps {\n\tchildren: ModalProps['children'];\n\twhen?: boolean;\n\tonSave: () => Promise<PromiseSettledResult<Awaited<unknown>>[]>;\n\tdataHasError?: boolean;\n}\n\nexport const RouteLeavingGuard = ({\n\tchildren,\n\twhen,\n\tonSave,\n\tdataHasError = false\n}: RouteLeavingGuardProps): React.JSX.Element => {\n\tconst history = useHistory();\n\tconst lastLocationInitial = useMemo(() => history.location, [history]);\n\tconst [modalVisible, setModalVisible] = useState(false);\n\tconst [lastLocation, setLastLocation] = useState<Location>(lastLocationInitial);\n\tconst [confirmedNavigation, setConfirmedNavigation] = useState(false);\n\tconst [t] = useTranslation();\n\tconst cancel = (): void => {\n\t\tsetModalVisible(false);\n\t\tsetConfirmedNavigation(false);\n\t};\n\n\tconst handleBlockedNavigation = (nextLocation: Location): boolean => {\n\t\tif (\n\t\t\t!confirmedNavigation &&\n\t\t\t`${nextLocation.pathname}${nextLocation.search || ''}` !==\n\t\t\t\t`${history.location.pathname}${history.location.search}`\n\t\t) {\n\t\t\tsetModalVisible(true);\n\t\t\tsetLastLocation(nextLocation);\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t};\n\n\tconst onConfirm = (): void => {\n\t\tonSave()\n\t\t\t.then((results) => {\n\t\t\t\tconst rejected = filter(\n\t\t\t\t\tresults,\n\t\t\t\t\t(result): result is PromiseRejectedResult => result.status === 'rejected'\n\t\t\t\t);\n\t\t\t\tif (rejected.length > 0) {\n\t\t\t\t\tconsole.error(rejected);\n\t\t\t\t\tcancel();\n\t\t\t\t} else {\n\t\t\t\t\tsetModalVisible(false);\n\t\t\t\t\tsetConfirmedNavigation(true);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((reason) => {\n\t\t\t\tconsole.error(reason);\n\t\t\t\tcancel();\n\t\t\t});\n\t};\n\n\tconst onSecondaryAction = (): void => {\n\t\tsetModalVisible(false);\n\t\tsetConfirmedNavigation(true);\n\t};\n\n\tuseEffect(() => {\n\t\tif (confirmedNavigation && lastLocation) {\n\t\t\t// Navigate to the previous blocked location with your navigate function\n\t\t\thistory.push(lastLocation);\n\t\t}\n\t}, [confirmedNavigation, history, lastLocation]);\n\n\treturn (\n\t\t<>\n\t\t\t<Prompt when={when} message={handleBlockedNavigation} />\n\t\t\t{/* Your own alert/dialog/modal component */}\n\t\t\t<Modal\n\t\t\t\tshowCloseIcon\n\t\t\t\tcloseIconTooltip={t('label.close', 'Close')}\n\t\t\t\topen={modalVisible}\n\t\t\t\ttitle={\n\t\t\t\t\tdataHasError\n\t\t\t\t\t\t? t('label.cannot_save_changes', 'Some changes cannot be saved')\n\t\t\t\t\t\t: t('label.unsaved_changes', 'You have unsaved changes')\n\t\t\t\t}\n\t\t\t\tonClose={cancel}\n\t\t\t\tonConfirm={dataHasError ? onSecondaryAction : onConfirm}\n\t\t\t\tconfirmLabel={\n\t\t\t\t\tdataHasError\n\t\t\t\t\t\t? t('label.leave_anyway', 'Leave anyway')\n\t\t\t\t\t\t: t('label.save_and_leave', 'Save and leave')\n\t\t\t\t}\n\t\t\t\tonSecondaryAction={dataHasError ? cancel : onSecondaryAction}\n\t\t\t\tsecondaryActionLabel={\n\t\t\t\t\tdataHasError ? t('label.cancel', 'Cancel') : t('label.leave_anyway', 'Leave anyway')\n\t\t\t\t}\n\t\t\t\toptionalFooter={\n\t\t\t\t\t!dataHasError ? (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\t\ttype=\"outlined\"\n\t\t\t\t\t\t\tlabel={t('label.cancel', 'Cancel')}\n\t\t\t\t\t\t\tonClick={cancel}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Modal>\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 */\n\nimport React, { FC } from 'react';\n\nimport { Button, Container } from '@zextras/carbonio-design-system';\nimport { noop } from 'lodash';\n\nexport const Spinner: FC = () => (\n\t<Container width=\"fill\" height=\"fill\" mainAlignment=\"center\" crossAlignment=\"center\">\n\t\t{/* the \"Button\" string doesn't need to be translated as it's not rendered */}\n\t\t<Button type=\"ghost\" label=\"Button\" color=\"primary\" loading onClick={noop} />\n\t</Container>\n);\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { FC, useCallback, useMemo } from 'react';\n\nimport {\n\tContainer,\n\tDropdown,\n\tDropdownItem,\n\tIconButton,\n\tTooltip\n} from '@zextras/carbonio-design-system';\nimport { map, noop } from 'lodash';\n\nimport { useUtilityBarStore } from './store';\nimport { useUtilityViews } from './utils';\nimport type { UtilityView } from '../../types';\nimport { fetchNoOp } from '../network/fetch';\nimport { logout } from '../network/logout';\nimport { useUserAccount } from '../store/account';\nimport { getT } from '../store/i18n';\n\nconst UtilityBarItem: FC<{ view: UtilityView }> = ({ view }) => {\n\tconst { mode, setMode, current, setCurrent } = useUtilityBarStore();\n\tconst onClick = useCallback((): void => {\n\t\t// eslint-disable-next-line no-nested-ternary\n\t\tsetMode(current !== view.id ? 'open' : mode !== 'open' ? 'open' : 'closed');\n\t\tsetCurrent(view.id);\n\t}, [current, mode, setCurrent, setMode, view.id]);\n\tif (typeof view.button === 'string') {\n\t\treturn (\n\t\t\t<Tooltip label={view.label} placement=\"bottom-end\">\n\t\t\t\t<IconButton\n\t\t\t\t\ticon={view.button}\n\t\t\t\t\ticonColor={current === view.id ? 'primary' : 'text'}\n\t\t\t\t\tonClick={onClick}\n\t\t\t\t\tsize=\"large\"\n\t\t\t\t/>\n\t\t\t</Tooltip>\n\t\t);\n\t}\n\treturn <view.button mode={mode} setMode={setMode} />;\n};\n\nexport const ShellUtilityBar = (): React.JSX.Element => {\n\tconst views = useUtilityViews();\n\tconst t = getT();\n\tconst account = useUserAccount();\n\tconst accountItems = useMemo(\n\t\t(): DropdownItem[] => [\n\t\t\t{\n\t\t\t\tid: 'account',\n\t\t\t\tlabel: account?.displayName ?? 'Account',\n\t\t\t\tdisabled: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'email',\n\t\t\t\tlabel: account?.name ?? '',\n\t\t\t\tdisabled: true\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'divider',\n\t\t\t\tid: 'divider',\n\t\t\t\tlabel: 'divider'\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'update',\n\t\t\t\tlabel: t('label.update_view', 'Update view'),\n\t\t\t\tonClick: fetchNoOp,\n\t\t\t\ticon: 'Refresh'\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'docs',\n\t\t\t\tlabel: t('label.documentation', 'Documentation'),\n\t\t\t\tonClick: noop,\n\t\t\t\tdisabled: true,\n\t\t\t\ticon: 'InfoOutline'\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'logout',\n\t\t\t\tlabel: t('label.logout', 'Logout'),\n\t\t\t\tonClick: logout,\n\t\t\t\ticon: 'LogOut'\n\t\t\t}\n\t\t],\n\t\t[account, t]\n\t);\n\n\tconst viewItems = useMemo(\n\t\t() => map(views, (view) => <UtilityBarItem view={view} key={view.id} />),\n\t\t[views]\n\t);\n\n\treturn (\n\t\t<Container orientation=\"horizontal\" width=\"fit\">\n\t\t\t{viewItems}\n\t\t\t<Tooltip label={account?.displayName ?? account?.name} placement=\"bottom-end\">\n\t\t\t\t<Dropdown items={accountItems} maxWidth=\"18.75rem\" disableAutoFocus>\n\t\t\t\t\t<IconButton icon=\"PersonOutline\" size=\"large\" onClick={noop} />\n\t\t\t\t</Dropdown>\n\t\t\t</Tooltip>\n\t\t</Container>\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, { FC, useEffect, useMemo } from 'react';\n\nimport { Container, Responsive } from '@zextras/carbonio-design-system';\nimport { find } from 'lodash';\nimport styled from 'styled-components';\n\nimport { useUtilityBarStore } from './store';\nimport { useUtilityViews } from './utils';\nimport AppContextProvider from '../boot/app/app-context-provider';\n\nconst Panel = styled(Container)<{ mode: string }>`\n\twidth: ${({ mode }): number => (mode !== 'closed' ? 16 : 3)}rem;\n\tborder-radius: 0;\n\theight: 100%;\n\tposition: absolute;\n\tright: 0;\n\ttop: 0;\n\tbottom: 0;\n\ttransition: width 0.2s;\n\tborder-left: 0.0625rem solid ${({ theme }): string => theme.palette.gray2.regular};\n`;\nconst Spacer = styled.div<{ mode: string }>`\n\tposition: relative;\n\twidth: ${({ mode }): number => (mode === 'open' ? 16 : 3)}rem;\n\theight: 100%;\n\ttransition: width 0.2s;\n`;\n\nexport const ShellUtilityPanel: FC = () => {\n\tconst { mode, setMode, current, setCurrent } = useUtilityBarStore();\n\tconst views = useUtilityViews();\n\tconst currentPanel = useMemo(() => find(views, (view) => view.id === current), [current, views]);\n\tuseEffect(() => {\n\t\tif (!(current && currentPanel)) {\n\t\t\tsetCurrent(views[0]?.id);\n\t\t}\n\t}, [current, currentPanel, setCurrent, views]);\n\treturn currentPanel ? (\n\t\t<Responsive mode=\"desktop\">\n\t\t\t<Spacer mode={mode}>\n\t\t\t\t<Panel mode={mode} mainAlignment=\"flex-start\">\n\t\t\t\t\t{currentPanel && (\n\t\t\t\t\t\t<AppContextProvider pkg={currentPanel?.id}>\n\t\t\t\t\t\t\t<currentPanel.component mode={mode} setMode={setMode} />\n\t\t\t\t\t\t</AppContextProvider>\n\t\t\t\t\t)}\n\t\t\t\t</Panel>\n\t\t\t</Spacer>\n\t\t</Responsive>\n\t) : null;\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { create } from 'zustand';\n\nimport type { UtilityBarStore } from '../../types';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useUtilityBarStore = create<UtilityBarStore>()((set) => ({\n\tmode: 'closed',\n\tcurrent: undefined,\n\tsecondaryBarState: true,\n\tsetMode: (mode): void =>\n\t\tset((s) => ({ mode, secondaryBarState: mode === 'open' ? false : s.secondaryBarState })),\n\tsetCurrent: (current): void => set({ current }),\n\tsetSecondaryBarState: (secondaryBarState: boolean): void => set({ secondaryBarState })\n}));\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { useMemo } from 'react';\n\nimport { filter, intersection, omit } from 'lodash';\n\nimport { AppRoute, PrimaryAccessoryView, SecondaryAccessoryView, UtilityView } from '../../types';\nimport { useCurrentRoute } from '../history/hooks';\nimport { useAppStore } from '../store/app';\n\nexport const checkList = (l1: Array<string>, l2?: Array<string>): boolean =>\n\tintersection(l1, l2).length > 0;\n\nexport const checkRoute = (\n\tview: UtilityView | PrimaryAccessoryView | SecondaryAccessoryView,\n\tactiveRoute?: AppRoute\n): boolean => {\n\tconst activeRouteValues = Object.values(omit(activeRoute, 'standalone') ?? {});\n\tif (view.blacklistRoutes) return !checkList(activeRouteValues, view.blacklistRoutes);\n\tif (view.whitelistRoutes) return checkList(activeRouteValues, view.whitelistRoutes);\n\treturn true;\n};\nexport const useUtilityViews = (): Array<UtilityView> => {\n\tconst utilityViews = useAppStore((s) => s.views.utilityBar);\n\n\tconst activeRoute = useCurrentRoute();\n\treturn useMemo(\n\t\t() => filter(utilityViews, (v) => checkRoute(v, activeRoute)),\n\t\t[activeRoute, utilityViews]\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { CSSProperties } from 'react';\n\nimport { reduce } from 'lodash';\n\nexport type ElementPosition = {\n\ttop: number;\n\tleft: number;\n};\n\nexport type ElementSize = {\n\twidth: number;\n\theight: number;\n};\n\nexport type SizeAndPosition = ElementPosition & ElementSize;\n\nexport const testFolderIsChecked = ({ string }: { string: string | undefined }): boolean =>\n\t/#/.test(string || '');\n\nexport function setGlobalCursor(cursor: CSSProperties['cursor']): void {\n\t// remove previously set cursor\n\tconst cursors: string[] = [];\n\tdocument.body.classList.forEach((item) => {\n\t\tif (item.startsWith('global-cursor-')) {\n\t\t\tcursors.push(item);\n\t\t}\n\t});\n\tdocument.body.classList.remove(...cursors);\n\tif (cursor) {\n\t\tdocument.body.classList.add(`global-cursor-${cursor}`);\n\t}\n}\n\nexport function setElementSizeAndPosition(\n\telement: HTMLElement,\n\tkey: keyof SizeAndPosition,\n\tvalue: number | undefined\n): void {\n\t// eslint-disable-next-line no-param-reassign\n\telement.style[key] = value !== undefined ? `${value}px` : '';\n}\n\nexport function stopPropagation(event: Event | React.SyntheticEvent): void {\n\tevent.stopPropagation();\n}\n\nexport function createExportForTestOnly<TObj extends Record<string, unknown>>(\n\tobjToExport: TObj\n): { [K in keyof TObj]: TObj[K] | undefined } {\n\treturn process.env.NODE_ENV === 'test'\n\t\t? objToExport\n\t\t: reduce(\n\t\t\t\tobjToExport,\n\t\t\t\t(accumulator, value, key) => {\n\t\t\t\t\taccumulator[key as keyof TObj] = undefined;\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{} as Record<keyof TObj, undefined>\n\t\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 @typescript-eslint/ban-ts-comment\n// @ts-ignore\nexport const tagWorker = new Worker(new URL('./tag', import.meta.url));\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nexport const folderWorker = new Worker(new URL('./folder', import.meta.url));\n","var map = {\n\t\"./de/index.js\": [\n\t\t\"./node_modules/date-fns/locale/de/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_de_index_js\"\n\t],\n\t\"./en-US/index.js\": [\n\t\t\"./node_modules/date-fns/locale/en-US/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_en-US_index_js\"\n\t],\n\t\"./es/index.js\": [\n\t\t\"./node_modules/date-fns/locale/es/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_es_index_js\"\n\t],\n\t\"./fr/index.js\": [\n\t\t\"./node_modules/date-fns/locale/fr/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_fr_index_js\"\n\t],\n\t\"./hi/index.js\": [\n\t\t\"./node_modules/date-fns/locale/hi/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_hi_index_js\"\n\t],\n\t\"./it/index.js\": [\n\t\t\"./node_modules/date-fns/locale/it/index.js\",\n\t\t\"vendors-node_modules_date-fns__lib_isSameUTCWeek_index_js-node_modules_date-fns_locale__lib_b-41ea83\",\n\t\t\"vendors-node_modules_date-fns_locale_it_index_js\"\n\t],\n\t\"./ja/index.js\": [\n\t\t\"./node_modules/date-fns/locale/ja/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_ja_index_js\"\n\t],\n\t\"./nl/index.js\": [\n\t\t\"./node_modules/date-fns/locale/nl/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_nl_index_js\"\n\t],\n\t\"./pl/index.js\": [\n\t\t\"./node_modules/date-fns/locale/pl/index.js\",\n\t\t\"vendors-node_modules_date-fns__lib_isSameUTCWeek_index_js-node_modules_date-fns_locale__lib_b-41ea83\",\n\t\t\"vendors-node_modules_date-fns_locale_pl_index_js\"\n\t],\n\t\"./pt-BR/index.js\": [\n\t\t\"./node_modules/date-fns/locale/pt-BR/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_pt-BR_index_js\"\n\t],\n\t\"./pt/index.js\": [\n\t\t\"./node_modules/date-fns/locale/pt/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_pt_index_js\"\n\t],\n\t\"./ro/index.js\": [\n\t\t\"./node_modules/date-fns/locale/ro/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_ro_index_js\"\n\t],\n\t\"./ru/index.js\": [\n\t\t\"./node_modules/date-fns/locale/ru/index.js\",\n\t\t\"vendors-node_modules_date-fns__lib_isSameUTCWeek_index_js-node_modules_date-fns_locale__lib_b-41ea83\",\n\t\t\"vendors-node_modules_date-fns_locale_ru_index_js\"\n\t],\n\t\"./th/index.js\": [\n\t\t\"./node_modules/date-fns/locale/th/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_th_index_js\"\n\t],\n\t\"./tr/index.js\": [\n\t\t\"./node_modules/date-fns/locale/tr/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_tr_index_js\"\n\t],\n\t\"./vi/index.js\": [\n\t\t\"./node_modules/date-fns/locale/vi/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_vi_index_js\"\n\t],\n\t\"./zh-CN/index.js\": [\n\t\t\"./node_modules/date-fns/locale/zh-CN/index.js\",\n\t\t\"vendors-node_modules_date-fns__lib_isSameUTCWeek_index_js-node_modules_date-fns_locale__lib_b-41ea83\",\n\t\t\"vendors-node_modules_date-fns_locale_zh-CN_index_js\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__.t(id, 7 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = \"./node_modules/date-fns/locale lazy recursive \\\\.[/\\\\\\\\](zh-CN%7Cnl%7Cen-US%7Cde%7Chi%7Cit%7Cja%7Cpt%7Cpl%7Cpt-BR%7Cro%7Cru%7Ces%7Cth%7Ctr%7Cfr%7Cvi)[/\\\\\\\\]index\\\\.js$\";\nmodule.exports = webpackAsyncContext;","// extracted by mini-css-extract-plugin\nexport {};","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"names":["React","I18nextProvider","AppErrorCatcher","SHELL_APP_ID","useI18nStore","AppContextProvider","_ref","pkg","children","instances","defaultI18n","getState","i18n","createElement","useCallback","Catcher","onError","error","console","reduce","usePushHistoryCallback","useGoBackHistoryCallback","useReplaceHistoryCallback","getCurrentRoute","useCurrentRoute","replaceHistory","goBackHistory","pushHistory","getSoapFetch","getXmlSoapFetch","changeTagColor","createTag","deleteTag","renameTag","getNotificationManager","runSearch","useIsMobile","useLocalStorage","getUserAccount","getUserAccounts","getUserSetting","getUserSettings","useUserAccount","useUserAccounts","useUserSetting","useUserSettings","useUserRight","useUserRights","getUserRight","getUserRights","getApp","getAppContext","useApp","useAppContext","addBoard","closeBoard","updateBoard","updateBoardContext","getBoardById","getBoardContextById","useBoardContextById","useBoardById","useBoard","minimizeBoards","reopenBoards","setCurrentBoard","useBoardHooks","useContextBridge","getFolder","getFolders","useFolder","useFolders","useRoot","getRoot","useRoots","getRoots","useSearchFolder","useSearchFolders","getSearchFolder","getSearchFolders","useFoldersByView","useFoldersAccordionByView","useRootByUser","getRootByUser","getI18n","getTFunction","getAction","getActions","getActionsFactory","getActionFactory","getIntegratedComponent","getIntegratedFunction","useAction","useActions","useActionsFactory","useActionFactory","useIntegratedComponent","useIntegratedFunction","useNotify","useRefresh","getTags","useTags","getAppFunctions","name","t","soapFetch","xmlSoapFetch","getBridgedFunctions","packageDependentFunctions","functions","acc","f","Suspense","useMemo","map","useAppStore","Mounter","appId","key","id","fallback","AppLoaderMounter","entryPoints","s","entries","Comp","hidden","style","height","overflow","getEditSettingsForApp","normalizeRoute","normalizeSettingsView","normalizeSearchView","normalizeUtilityView","normalizePrimaryAccessoryView","normalizeSecondaryAccessoryView","normalizeBoardView","useIntegrationsStore","getAppSetters","appSetters","setters","integrations","updatePrimaryBadge","updateUtilityBadge","setAppContext","addRoute","route","setRouteVisibility","routeId","visible","removeRoute","addBoardView","data","removeBoardView","addSettingsView","removeSettingsView","addSearchView","removeSearchView","addUtilityView","removeUtilityView","addPrimaryAccessoryView","removePrimaryAccessoryView","addSecondaryAccessoryView","removeSecondaryAccessoryView","registerFunctions","removeFunctions","registerActions","removeActions","registerComponents","removeComponents","editSettings","size","SEARCH_APP_ID","SETTINGS_APP_ID","SearchAppView","AccountsSettings","GeneralSettings","settingsSubSections","SettingsAppView","SettingsSidebar","useAccountStore","settingsGeneralView","app","component","icon","label","position","subSections","settingsAccountsView","searchRouteDescriptor","appView","badge","show","primaryBar","settingsRouteDescriptor","secondaryBar","registerDefaultViews","attrs","settings","zimbraFeatureOptionsEnabled","memo","forOwn","CONSTANTS","report","SettingsHeader","AppLink","Spinner","_scripts","_scriptId","loadApp","appPkg","Promise","resolve","reject","window","__ZAPP_SHARED_LIBRARIES__","__ZAPP_HMR_EXPORT__","appComponent","setState","state","info","script","document","setAttribute","version","js_entrypoint","body","appendChild","err","unloadApps","parentNode","removeChild","registerLocale","setDefaultLocale","filter","injectSharedLibraries","SUPPORTED_LOCALES","useReporter","getDateFnsLocale","locale","loadApps","apps","appsToLoad","attrKey","log","prefs","zimbraPrefLocale","zimbraLocale","actions","addI18n","localeObj","localeDateFnsKey","dateFnsLocale","value","then","localeDateFns","setClients","allSettled","unloadAllApps","ReduxJSToolkit","ZappUI","Preview","Lodash","Moment","ReactDOM","ReactI18n","ReactRedux","ReactRouterDom","StyledComponents","react","lodash","moment","useEffect","ModalManager","SnackbarManager","useTranslation","BrowserRouter","Route","Switch","useParams","ContextBridge","Loader","ShellI18nextProvider","ThemeProvider","BASENAME","IS_STANDALONE","NotificationPermissionChecker","ShellView","StandaloneListener","standalone","DefaultViewsRegister","Bootstrapper","basename","path","useModal","useSnackbar","useHistory","useBridge","history","createSnackbar","createModal","getHistory","useState","Modal","Padding","Text","find","getComponents","getInfo","loginConfig","goToLogin","isPromiseRejectedResult","promiseSettledResult","status","isPromiseFulfilledResult","LoaderFailureModal","open","closeHandler","onConfirm","location","reload","showCloseIcon","onSecondaryAction","title","confirmLabel","secondaryActionLabel","onClose","all","setOpen","promiseSettledResultArray","getComponentsPromiseSettledResult","getInfoPromiseSettledResult","promiseRejectedResult","reason","message","Object","values","createContext","useLayoutEffect","generateColorSet","UIThemeProvider","auto","disable","enable","setFetchMethod","createGlobalStyle","css","useGetPrimaryColor","darkReaderDynamicThemeFixes","LOCAL_STORAGE_SETTINGS_KEY","getAutoScalingFontSize","fetch","ThemeCallbacksContext","addExtension","Error","setDarkReaderState","paletteExtension","customTheme","arguments","length","undefined","theme","palette","shared","regular","hover","active","focus","disabled","linked","iconExtension","icons","Shared","ArrowCircleRight","Linked","ArrowCircleLeft","globalCursorsExtension","globalCursors","GlobalStyle","baseFontSize","_ref2","cursor","_ref3","localStorageSettings","extensions","setExtensions","primaryColor","customThemePalette","primary","extension","darkReaderState","aggregatedExtensions","themeAccumulator","themeExtensionFn","newExtension","ext","savedScalingValueSetting","themeCallbacksContextValue","Provider","useTheme","LOCAL_STORAGE_LAST_PRIMARY_KEY","useDarkMode","useLoginConfigStore","localStorageLastPrimary","setLocalStorageLastPrimary","carbonioWebUiPrimaryColor","carbonioWebUiDarkPrimaryColor","darkModeEnabled","darkReaderStatus","dark","light","prevState","ZIMBRA_STANDARD_COLORS","zValue","hex","zLabel","FOLDERS","USER_ROOT","INBOX","TRASH","SPAM","SENT","DRAFTS","CONTACTS","TAGS","CONVERSATIONS","CALENDAR","ROOT","NOTEBOOK","AUTO_CONTACTS","IM_LOGS","TASKS","BRIEFCASE","LAST_SYSTEM_FOLDER_POSITION","ACCOUNTS_APP_ID","ACTION_TYPES","CONVERSATION","CONVERSATION_lIST","MESSAGE","MESSAGE_lIST","CONTACT","CONTACT_lIST","INVITE","INVITE_lIST","APPOINTMENT","APPOINTMENT_lIST","FOLDER","FOLDER_lIST","CALENDAR_lIST","NEW","ignoreImageAnalysis","invert","ignoreInlineStyle","disableStyleSheetsProxy","base","standaloneBase","pathname","startsWith","EMAIL_VALIDATION_REGEX","ROOT_NAME","DARK_READER_VALUES","FOLDER_VIEW","search_folder","tag","conversation","contact","appointment","virtual_conversation","remote_folder","wiki","task","chat","LOCAL_STORAGE_SEARCH_KEY","LOCAL_STORAGE_BOARD_SIZE","SCALING_OPTIONS","BASE_FONT_SIZE","SCALING_LIMIT","WIDTH","HEIGHT","DPR","LOGIN_V3_CONFIG_PATH","DARK_READER_PROP_KEY","SENTRY_SHELL_DSN","ResultLabelType","HEADER_BAR_HEIGHT","PRIMARY_BAR_WIDTH","BOARD_HEADER_HEIGHT","BOARD_TAB_WIDTH","BOARD_CONTAINER_ZINDEX","BOARD_MIN_VISIBILITY","top","left","DELEGATED_SEND_SAVE_TARGET","defineProperty","exports","zh_CN","tinymceLocale","nl","en","de","hi","it","ja","pt","pl","pt_BR","ro","ru","es","th","tr","fr","vi","useDarkReaderResultValue","getPrefersColorSchemeDarkMedia","darkReaderResultValue","setDarkModeEnabled","matches","setCallback","event","addEventListener","removeEventListener","isZappDarkreaderModeZimletProp","prop","zimlet","isDarkReaderPropValues","maybeDarkReaderPropValue","includes","carbonioWebUiDarkMode","settingReceived","props","result","_content","matchMedia","replace","trim","useLocation","useSearchStore","useRoutes","getRoutes","routes","r","module","parseParams","params","routeToApply","search","hash","push","goBack","findIndex","isArray","mods","pref","p","join","identity","modifyList","item","deleteList","createList","index","zimbraPrefIdentityName","zimbraPrefFromDisplay","zimbraPrefFromAddress","zimbraPrefReplyToEnabled","zimbraPrefReplyToDisplay","zimbraPrefReplyToAddress","zimbraPrefDefaultSignatureId","zimbraPrefForwardReplySignatureId","zimbraPrefWhenSentToEnabled","zimbraPrefWhenInFoldersEnabled","permissions","freeBusy","current","right","gt","zid","deny","d","inviteRight","new","u","email","propIndex","account","displayName","identities","itemMods","indexAccount","_attrs","i","CreateIdentityResponse","type","maxBy","userAgent","useNetworkStore","getPollingInterval","handleSync","fetchNoOp","pollingInterval","_jsns","limitToOneBlocked","wait","getAccount","otherAccount","by","getXmlAccount","getXmlSession","sessionId","session","normalizeContext","context","notify","deleted","split","handleResponse","api","res","noOpTimeout","usedQuota","clearTimeout","Body","Fault","code","Detail","Code","authenticated","Reason","Header","responseUsedQuota","refresh","mbx","modified","_context","seq","nextPollingInterval","setTimeout","signal","zimbraVersion","method","headers","JSON","stringify","json","catch","e","shellSoap","response","ok","statusText","components","setApps","normalizeAccount","parsePollingInterval","rights","getClientTitle","getFavicon","finally","loaded","favicon","getElementById","HTMLLinkElement","href","goTo","logout","logoff","redirect","customLogoutUrl","carbonioWebUiLogoutURL","action","op","color","rgb","UAParser","os","browser","assign","origin","debounce","noop","defaultAudio","NotificationManager","DEBOUNCE_TIME","PopupNotificationDefaultConfig","vibrate","AudioNotificationDefaultConfig","sound","NotificationDefaultConfig","showPopup","playSound","Map","getAudioFileFunction","has","set","Audio","play","delete","get","config","defConfig","n","Notification","onClick","multipleNotify","forEach","conf","getInstance","instance","warn","requestPermission","Fragment","hint","reporter","eventId","clients","captureException","BrowserClient","defaultIntegrations","defaultStackParser","Hub","makeFetchTransport","create","transport","stackParser","dsn","release","maxValueLength","sentryDsn","Container","Row","Icon","Dropdown","styled","SelectorContainer","withConfig","componentId","gray4","ModuleSelectorComponent","_ref4","modules","views","updateModule","fullModule","m","dropdownItems","_ref5","openDropdown","closeDropdown","items","onOpen","orientation","width","minWidth","crossAlignment","mainAlignment","borderRadius","takeAvailableSpace","padding","alignSelf","MemoModuleSelector","ModuleSelector","activeRoute","query","searchDisabled","Button","Chip","Divider","Redirect","getT","useQuery","updateQuery","useDisableSearch","setSearchDisabled","getIconAndColor","labelType","WARNING","ERROR","ResultsHeader","NORMAL","setDisabled","resetQuery","labelTypeElem","chipItems","queryChip","_extends","background","minHeight","maxHeight","horizontal","vertical","wrap","searchViews","view","exact","strict","from","to","useRef","ChipInput","IconButton","Tooltip","some","OutlinedIconButton","StyledChipInput","gray5","StyledContainer","SearchBar","inputRef","storedSuggestions","setStoredSuggestions","inputTyped","setInputTyped","currentSearchModuleRoute","tooltip","moduleLabel","isTyping","setIsTyping","options","setOptions","inputHasFocus","setInputHasFocus","searchInputValue","setSearchInputValue","showClear","clearSearch","onSearch","currentQuery","ref","newInputValue","hasAvatar","newInputChip","currentQueryChip","searchInputChip","appSuggestions","v","reverse","updateOptions","textContent","queryChips","suggestion","slice","onQueryChange","newQuery","lastChipLabel","newSuggestion","onInputType","ev","suggestions","containerRef","addFocus","removeFocus","runSearchOnKeyUp","disableOptions","placeholder","clearButtonPlaceholder","searchButtonsAreDisabled","searchBtnTooltipLabel","onChipAdd","newChip","flexGrow","maxWidth","onAdd","confirmChipOnBlur","separators","overflowX","onChange","onInputTypeDebounce","onBlur","onFocus","requireUniqueChips","placement","customSize","iconSize","paddingSize","iconColor","backgroundColor","isFunction","produce","isEmpty","AccountsList","Delegates","PersonaSettings","PrimaryAccountSettings","SettingsSentMessages","calculateNewIdentitiesState","defaultAsFirstOrderIdentities","getAvailableEmailAddresses","isPrimary","mapToCreateIdentityRequests","createRecord","zimbraPrefFromAddressType","mapToDeleteIdentityRequests","deleteArray","identityId","requestId","toString","mapToModifyIdentityRequests","modifyRecord","generateDelegateList","ace","accumulator","idx","translatedRight","toLowerCase","defaultValue","createRecordRef","deleteArrayRef","modifyRecordRef","delegatedSendSaveTargetRef","zimbraPrefDelegatedSendSaveTarget","isDirty","setIsDirty","calculateIsDirty","updateDelegatedSendSaveTarget","updatedValue","resetLists","selectedIdentityId","setSelectedIdentityId","identitiesDefault","setIdentities","maxIdentities","zimbraIdentityMaxNumEntries","addIdentity","identityAttrs","zimbraPrefIdentityId","updateIdentities","actualIdentity","removeIdentity","onSave","autoHideTimeout","hideButton","modifyPrefsRequest","createIdentityRequests","deleteRequests","modifyIdentityRequests","promise","DeleteIdentityRequest","CreateIdentityRequest","ModifyIdentityRequest","ModifyPrefsRequest","availableEmailAddresses","delegatesSettingsSectionRef","onCancel","reset","delegates","setDelegates","personaSettings","settingsSentMessages","accountName","delegatedSendSaveTarget","resetRef","useContext","ModalManagerContext","ListV2","ListItem","List","getNewPersonaNextIdentityName","numberToCheck","unavailableIdentityNames","newPersonaNextIdentityName","number","createListRequestIdRef","addNewPersona","newPersonaName","onConfirmDelete","onDelete","closeModal","confirmColor","role","weight","bottom","Radio","RadioGroup","useReset","activeDelegate","setActiveDelegate","activeValue","setActiveValue","radioGroupOnChange","newValue","isZimbraPrefDelegatedSendSaveTarget","arg","resetHandler","setActiveDelegateCallback","ItemComponent","justifyContent","Input","personaValue","setPersonaValue","personaLabel","target","emailLabel","accountNameValue","setAccountNameValue","accountLabel","onChangeDisabled","Checkbox","Select","blankItem","replyToEnabledValue","setReplyToEnabledValue","replyToAddress","setReplyToAddress","dropdownOpen","setDropdownOpen","fromDisplayValue","setFromDisplayValue","replyToDisplay","setReplyToDisplay","fromAddressArray","address","fromAddress","setFromAddress","onClickReplyToEnabled","newState","fromDisplayLabel","onChangeFromDisplayValue","fromAddressLabel","onChangeFromAddress","newAddress","replyToEnabledLabel","replyToDisplayLabel","onChangePrefReplyToDisplay","replyToAddressLabel","onChangeReplyToAddress","replyToAddressArray","isValidEmail","test","selection","showCheckbox","hasError","CustomIcon","appearanceSubSection","AppearanceSettings","subSection","gap","DarkThemeSettingSection","addMod","removeMod","setSelection","setSelectNewValue","onSelectionChange","FormSubSection","accountSubSection","Logout","sectionTitle","Badge","useAppList","versionsSubSection","ModuleVersionSettings","copyToClipboard","preventDefault","HTMLElement","navigator","clipboard","writeText","innerText","filteredList","display","description","success","gray6","TextArea","OutOfOfficeTimePeriodSection","outOfOfficeSubSection","dateToGenTime","upsertPrefOnUnsavedChanges","buildItemsPrefOutOfOfficeReplyEnabled","buildItemsExternalSenders","SEND_AUTO_REPLY","SHOW_EXTERNAL_INPUT","SEND_NOT_IN_ORG","SUPPRESS_EXTERNAL","getExternalSendersPrefsData","itemsExternalSenders","zimbraPrefOutOfOfficeSuppressExternalReply","zimbraPrefOutOfOfficeExternalReplyEnabled","zimbraPrefExternalSendersType","OutOfOfficeSettings","outOfOfficeSectionTitle","prefOutOfOfficeReplyEnabled","setPrefOutOfOfficeReplyEnabled","zimbraPrefOutOfOfficeReplyEnabled","prefOutOfOfficeReply","setPrefOutOfOfficeReply","zimbraPrefOutOfOfficeReply","prefOutOfOfficeExternalReplyEnabled","setPrefOutOfOfficeExternalReplyEnabled","prefOutOfOfficeExternalReply","setPrefOutOfOfficeExternalReply","zimbraPrefOutOfOfficeExternalReply","externalSendersSelectedItem","setExternalSendersSelectedItem","sendAutoReplyTimePeriodEnabled","setSendAutoReplyTimePeriodEnabled","zimbraPrefOutOfOfficeFromDate","zimbraPrefOutOfOfficeUntilDate","outOfOfficeTimePeriodResetRef","initPrefs","updatePref","prefOutOfOfficeReplyEnabledSelectItems","prefOutOfOfficeReplyEnabledSelectedValue","prefOutOfOfficeReplyEnabledOnChange","externalSendersSelectItems","externalSendersHandler","externalSendersOnChange","newSelectItem","prefOutOfOfficeReplyOnChange","prefOutOfOfficeExternalReplyOnChange","toggleSendAutoReplyTimePeriod","nextState","Date","dropdownWidth","dropdownMaxWidth","prefOutOfOfficeFromDate","prefOutOfOfficeUntilDate","DateTimePicker","endOfDay","genTimeToDate","startOfDay","coerceGenTime","genTime","fromDate","setFromDate","untilDate","setUntilDate","allDayEnabled","setAllDayEnabled","editTimeIsDisabled","fromDatePref","untilDatePref","fromDateAllDay","untilDateAllDay","getTime","outOfOfficeFromDateOnChange","newFromDate","newUntilDate","outOfOfficeUntilDateOnChange","toggleAllDay","prevWasEnabled","nowIsEnabled","startOfFromDate","endOfUntilDate","dateFormat","includeTime","timeLabel","showTimeSelect","showTimeSelectOnly","Slider","ScalingSliderContainer","ExampleContainer","$fontSize","ExampleText","BASE_FONT_OPTION_INDEX","option","AUTOSCALING_FONT_SIZE","AUTOSCALING_FONT_OPTION_INDEX","ScalingSettingSection","scalingSettings","addLocalStoreChange","cleanLocalStoreChange","scalingOptionValues","scalingOptionLabels","labels","savedOptionIndex","optionIndex","autoScaling","setAutoScaling","scalingValue","setScalingValue","increaseScalingByStep","decreaseScalingByStep","toggleAutoScaling","onChangeScalingValue","newValueIndex","exampleText","exampleFontSize","Math","round","searchPrefsSubSection","SearchSettings","searchInSpamFolder","setSearchInSpamFolder","zimbraPrefIncludeSpamInSearch","searchInTrashFolder","setSearchInTrashFolder","zimbraPrefIncludeTrashInSearch","searchInSharedFolder","setSearchInSharedFolder","zimbraPrefIncludeSharedItemsInSearch","setMode","init","onClickSpam","onClickTrash","onClickShared","Quota","quotaSubSection","UserQuota","mobileView","used","quota","userQuota","Number","zimbraMailQuota","filledQuota","fillBackground","fill","Breadcrumbs","RouteLeavingGuard","CustomBreadcrumbs","crumbs","className","querySelector","scrollIntoView","when","cloneDeep","isBoolean","uniq","GEN_TIME_FORMAT","getGenTimeMoment","date","utc","format","local","toDate","setHours","localeList","localName","timeZoneList","screen","devicePixelRatio","baseFontIndex","addModifiedValueCallback","prefKey","prefValue","defaultIdx","defaultIdentity","splice","unshift","targets","user","addr","zimbraMailAlias","String","currentIdentities","deletedIdentities","addedIdentities","modifiedIdentitiesAttrs","filteredIdentities","filteredAndModified","timezoneAndLanguageSubSection","LanguageAndTimeZoneSettings","setMods","userSettings","localStorageUnAppliedChanges","setLocalStorageUnAppliedChanges","setLocalStorageSettings","prevType","nextType","unAppliedPrevState","localStorageSettingsPrevState","modifyPropertiesRequest","mappedProperties","zimbraPrefMailTrustedSenderList","Array","ModifyPropertiesRequest","keys","scalingSettingSectionRef","outOfOfficeSettingsSectionRef","searchSettingsSectionRef","useImperativeHandle","resetFn","LanguageAndTimeZone","locales","timezones","updatePrefs","defaultLocale","onLocaleChange","defaultTimeZone","zimbraPrefTimeZoneId","onTimeZoneChange","defaultSelection","dropdownMaxHeight","selectedBackgroundColor","dismissLabel","settingsViews","Accordion","expanded","disableHover","stopPropagation","collapsedItems","_BoardsRouterContainer","FirstAppRedirect","mainRoute","AppViewContainer","appViews","forwardRef","MiniBadge","BadgeWrap","showCount","fontSize","count","AppBoard","TabsList","ResizableContainer","closeAllBoards","expandBoards","onGoToPanel","reduceBoards","useBoardStore","setElementSizeAndPosition","useMove","BOARD_DEFAULT_POSITION","BoardContainerComp","div","minimized","OverflowContainer","Board","BoardHeader","BoardDetailContainer","BackButton","Actions","ListItemContent","_ref6","selected","boardId","pointerEvents","calcPositionToRemainVisible","lastSavedPosition","containerSize","minVisibility","limit","BoardContainer","boards","orderedBoards","boardDropdownItems","customComponent","boardRef","boardContainerRef","lastSavedBoardSizeAndPosition","setLastSavedBoardSizeAndPosition","currentBoardSizeAndPosition","setCurrentBoardSizeAndPosition","lastSavedBoardSizeAndPositionRef","isMoving","moveElementHandler","localStorageKey","isDefaultSizeAndPosition","isBoardEmpty","resetSizeAndPosition","boardElement","updateBoardPosition","clientHeight","clientWidth","newSizeAndPosition","boardContainer","leading","trailing","cancel","clickHandler","clickFn","defaultPrevented","onMouseDown","elementToResize","onReturnToApp","b","board","AppBoardTab","CustomRow","firstTab","TabContainer","gray3","CloseContainer","TabIcon","CustomText","overflowing","VerticalDivider","onRemove","textRef","textOverflowing","setTextOverflowing","resizeObserverRef","ResizeObserver","requestAnimationFrame","offsetWidth","scrollWidth","observe","disconnect","triggerRef","createMemoryHistory","Router","BoardProvider","initialEntries","url","boardViews","windowHistory","unlisten","listen","l","BORDERS","getCursorFromBorder","useResize","MainContainer","BorderWithResize","$cursor","$width","$height","$position","$translateTransform","x","y","ResizableBorder","border","keepSynchedWithStorage","borderRef","resizeHandler","sizes","positions","_ref7","rest","borders","gray2","Bubble","Collapser","MultiButton","groupBy","CreationButtonComponent","primaryAction","group","byApp","secondaryActions","click","disabledPrimary","disabledSecondary","MemoCreationButton","CreationButton","locationFull","truncateLocation","ShellContext","isMobile","createExportForTestOnly","isSameLocalStorageValue","valueA","valueB","useLocalStorageStore","storage","readValue","localStorageItem","localStorage","getItem","parse","setValue","valueToStore","Function","setItem","DEFAULT_OPTIONS","initialValue","storedValue","shouldDispatchStorageEventRef","localStorageOptions","readValueForKey","setValueForKey","dispatchEvent","Event","exportForTest","setGlobalCursor","BOARD_CURSOR_TIMEOUT","calcNewPosition","limitContainer","mouseEvent","limitClientRect","getBoundingClientRect","clientTopLimit","moveTopDelta","clientY","mouseClientY","newClientTop","clientTop","newTop","clientLeftLimit","moveLeftDelta","clientX","mouseClientX","newClientLeft","clientLeft","newLeft","elementToMoveRef","setIsMoving","isMoveEnabledRef","initialSizeAndPositionRef","setLastSavedPosition","lastPositionRef","globalCursorSetterTimerRef","shouldUpdateLocalStorageRef","moveElement","elementToMove","positionToApply","preventClick","capture","onMouseMove","mouseMoveEvent","offsetParent","newPosition","enableMove","activeElement","classList","add","disableMove","remove","onMouseUp","moveHandler","mouseDownEvent","clientRect","offsetHeight","offsetLeft","offsetTop","direction","concat","calcNewSizeAndPosition","heightDifference","widthDifference","elementToResizeRef","lastSavedSizeAndPosition","setLastSavedSizeAndPosition","lastSizeAndPositionRef","resizeElement","sizeAndPositionToApply","computedStyle","getComputedStyle","parseFloat","useLogo","Logo","LogoElement","alt","src","useScreenMode","ShellContextProvider","screenMode","Responsive","StyledLogo","ShellHeaderContainer","ShellHeader","searchEnabled","mode","sortBy","checkRoute","PrimaryBarContainer","ToggleBoardIcon","PrimaryBarElement","PrimaryBarAccessoryElement","OverlayRow","ShellPrimaryBar","primaryBarViews","routesRef","primaryBarAccessoryViews","primaryBarAccessories","accessoryViews","primaryBarItems","accessoryItems","hidePrimaryBar","useUtilityBarStore","SidebarContainer","sidebarIsOpen","ShellSecondaryBarComponent","isOpen","secondaryBarState","setIsOpen","setSecondaryBarState","onCollapserClick","secondaryBarViews","secondaryBarAccessoryViews","secondaryBarAccessories","accessories","overflowY","MemoShellSecondaryBar","ShellSecondaryBar","PreviewManager","ShellUtilityBar","ShellUtilityPanel","Background","DarkReaderListener","useLoginRedirection","allowUnauthenticated","auth","ShellComponent","hideShellHeader","MemoShell","acct","_len","_key","_len2","_key2","normalizeSettings","signatures","lastNotificationTime","now","useApps","a","priority","getAppList","getApps","appContexts","getShell","shell","getRoute","useRoute","merge","normalizeApp","STANDALONE_RESPONSE","addIfNotPresent","itemToAdd","sortByPosition","sort","addAndSort","removeById","commit","utilityBar","moduleApps","shellApp","normalizedApp","routeData","bar","FallbackView","normalizeBadgeInfo","whitelistRoutes","blacklistRoutes","button","boardContext","boardHooksContext","callbacks","getBoardContext","getBoard","trimStart","uniqueId","content","addFunctions","useFolderStore","filterNodes","folderViewFilter","isRoot","mapNodes","sortFolders","folders","roots","userId","searches","CustomComponent","itemProps","mapFunction","folder","filterFunction","recursionKey","sortFunction","deep","folderWorker","onmessage","hasId","getOriginalId","parts","parseInt","isTrash","oname","childrenSorted","i18next","Backend","dropRight","initReactI18next","addShell","defaultLng","createInstance","lng","defaultI18nInitOptions","returnEmptyString","returnNull","compatibilityJSON","fallbackLng","debug","interpolation","escapeValue","missingKeyHandler","_","__","backend","loadPath","BASE_PATH","setLocale","i18nInst","changeLanguage","getters","getLocale","appsWithShell","newI18n","use","Editor","tinymce","FileInput","input","Composer","onEditorChange","onFileSelect","inline","customInitOptions","_onEditorChange","newContent","editor","getContent","defaultStyle","font","zimbraPrefHtmlEditorDefaultFontFamily","zimbraPrefHtmlEditorDefaultFontSize","zimbraPrefHtmlEditorDefaultFontColor","onFileClick","language","inlineLabel","setupCallback","ui","registry","addMenuButton","callback","text","onAction","editorInitConfig","content_css","language_url","setup","min_height","auto_focus","menubar","statusbar","branding","resize","font_size_formats","object_resizing","style_formats","block","wrapper","merge_siblings","plugins","toolbar","quickbars_insert_toolbar","quickbars_selection_toolbar","contextmenu","toolbar_mode","content_style","visualblocks_default_state","end_container_on_empty_block","relative_urls","remove_script_host","newline_behavior","browser_spellcheck","fileInputOnChange","files","accept","multiple","compact","integration","Integration","C","factories","factory","omit","composer","_len3","_key3","fn","_len4","ids","_key4","actionTypeMap","actionFactory","actionFactoryId","_len5","_key5","_len6","_key6","carbonioWebUiFavicon","carbonioWebUiTitle","DefaultLogo","carbonioWebUiAppLogo","carbonioWebUiDarkAppLogo","tagWorker","useTagStore","POLLING_NOWAIT_INTERVAL","POLLING_RETRY_INTERVAL","pollingPref","zimbraPrefMailPollingInterval","pollingValue","isNaN","waitDisallowed","fault","postMessage","tags","pick","Link","RRLink","_to","textDecoration","Prompt","dataHasError","lastLocationInitial","modalVisible","setModalVisible","lastLocation","setLastLocation","confirmedNavigation","setConfirmedNavigation","handleBlockedNavigation","nextLocation","results","rejected","closeIconTooltip","optionalFooter","loading","useUtilityViews","UtilityBarItem","setCurrent","accountItems","viewItems","disableAutoFocus","Panel","Spacer","currentPanel","intersection","checkList","l1","l2","activeRouteValues","utilityViews","testFolderIsChecked","string","cursors","element","objToExport","process","env","NODE_ENV","Worker","URL","import","meta"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"src_boot_bootstrapper_tsx-node_modules_moment_locale_sync_recursive_.b3482d24.chunk.js","mappings":";;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;;AAEkC;AAEc;AAEE;AACH;AACC;AAEhD,MAAMK,kBAAuC,GAAGC,IAAA,IAAuB;EAAA,IAAtB;IAAEC,GAAG;IAAEC;EAAS,CAAC,GAAAF,IAAA;EACjE,MAAM;IAAEG,SAAS;IAAEC;EAAY,CAAC,GAAGN,qDAAY,CAACO,QAAQ,CAAC,CAAC;EAC1D,MAAMC,IAAI,GAAGH,SAAS,CAACF,GAAG,CAAC,IAAIE,SAAS,CAACN,oDAAY,CAAC,IAAIO,WAAW;EACrE,oBACCV,0DAAA,CAACC,0DAAe;IAACW,IAAI,EAAEA;EAAK,gBAC3BZ,0DAAA,CAACE,0DAAe,QAAEM,QAA0B,CAC5B,CAAC;AAEpB,CAAC;AAED,iEAAeH,kBAAkB;;;;;;;;;;;;;;;;;;;ACxBjC;AACA;AACA;AACA;AACA;;AAE+C;AAEW;AAE1D,MAAMH,eAAmB,GAAGI,IAAA,IAAkB;EAAA,IAAjB;IAAEE;EAAS,CAAC,GAAAF,IAAA;EACxC,MAAMU,OAAO,GAAGF,kDAAW,CAAEG,KAAK,IAAK;IACtCC,OAAO,CAACD,KAAK,CAACA,KAAK,CAAC;IACpB;EACD,CAAC,EAAE,EAAE,CAAC;EACN,oBAAOjB,0DAAA,CAACe,oEAAO;IAACC,OAAO,EAAEA;EAAQ,GAAER,QAAkB,CAAC;AACvD,CAAC;AACD,iEAAeN,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjB9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEgC;AAYH;AACuC;AACiB;AACL;AAC5B;AACQ;AACQ;AAcvC;AACkD;AAenD;AACkC;AAkBlC;AAC6B;AAQf;AAQF;AACoB;AACR;;AAEpD;AACO,MAAMoG,eAAe,GAAI/F,GAAmB,KAAgC;EAClF;EACA6E,OAAO,EAAEA,qDAAO,CAAC7E,GAAG,CAACgG,IAAI,CAAC;EAC1BC,CAAC,EAAEnB,0DAAY,CAAC9E,GAAG,CAACgG,IAAI,CAAC;EACzB;EACAE,SAAS,EAAE7E,4DAAY,CAACrB,GAAG,CAACgG,IAAI,CAAC;EACjCG,YAAY,EAAE7E,+DAAe,CAACtB,GAAG,CAACgG,IAAI,CAAC;EAEvC;EACAlD,aAAa,EAAEA,yDAAa,CAAC9C,GAAG,CAACgG,IAAI,CAAC;EACtCpD,aAAa,EAAEA,yDAAa,CAAC5C,GAAG,CAACgG,IAAI,CAAC;EACtCnD,MAAM,EAAEA,kDAAM,CAAC7C,GAAG,CAACgG,IAAI,CAAC;EACxBrD,MAAM,EAAEA,kDAAM,CAAC3C,GAAG,CAACgG,IAAI,CAAC;EAExB;EACAN,qBAAqB;EACrBN,qBAAqB;EACrBK,sBAAsB;EACtBN,sBAAsB;EACtBE,SAAS;EACTN,SAAS;EACTO,UAAU;EACVN,UAAU;EACVO,iBAAiB;EACjBN,iBAAiB;EACjBO,gBAAgB;EAChBN,gBAAgB;EAChB;EACA/C,cAAc;EACdJ,cAAc;EACdK,eAAe;EACfJ,eAAe;EACfM,eAAe;EACfJ,eAAe;EACfD,cAAc;EACdI,cAAc;EACdE,YAAY;EACZC,aAAa;EACbC,YAAY;EACZC,aAAa;EACboD,OAAO;EACPD,OAAO;EACPF,SAAS;EACTC,UAAU;EACV;EACAnB,gBAAgB;EAChBC,yBAAyB;EACzBX,SAAS;EACTF,SAAS;EACTG,UAAU;EACVF,UAAU;EACVG,OAAO;EACPC,OAAO;EACPC,QAAQ;EACRC,QAAQ;EACRC,eAAe;EACfC,gBAAgB;EAChBC,eAAe;EACfC,gBAAgB;EAChBG,aAAa;EACbC,aAAa;EACb;EACA7B,QAAQ,EAAEA,wDAAQ,CAAC/C,GAAG,CAACgG,IAAI,CAAC;EAC5BhD,UAAU;EACVC,WAAW;EACXC,kBAAkB;EAClBC,YAAY;EACZC,mBAAmB;EACnBG,QAAQ;EACRD,YAAY;EACZD,mBAAmB;EACnBG,cAAc;EACdC,YAAY;EACZC,eAAe;EACfC,aAAa;EACb;EACA9C,sBAAsB;EACtBC,wBAAwB;EACxBC,yBAAyB;EACzBE,eAAe;EACfD,eAAe;EACfI,WAAW;EACXD,aAAa;EACbD,cAAc;EACd;EACAM,SAAS;EACTE,SAAS;EACTH,cAAc;EACdE,SAAS;EACT;EACAE,sBAAsB;EAEtB;EACAC,SAAS;EACTC,WAAW;EACXC,eAAe;EACfsE,mBAAmB,EAAEA,CAAA,KAAe;IACnC,MAAM;MAAEC,yBAAyB;MAAEC;IAAU,CAAC,GAAG1C,oEAAgB,CAACxD,QAAQ,CAAC,CAAC;IAC5E,OAAO;MACN,GAAGkG,SAAS;MACZ,GAAG1F,8CAAM,CAACyF,yBAAyB,EAAE,CAACE,GAAG,EAAEC,CAAC,EAAER,IAAI,MAAM;QAAE,GAAGO,GAAG;QAAE,CAACP,IAAI,GAAGQ,CAAC,CAACxG,GAAG,CAACgG,IAAI;MAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7F,CAAC;EACF;AACD,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;ACxMF;AACA;AACA;AACA;AACA;;AAEqD;AAExB;AAE2B;AACV;AAE9C,MAAMa,OAA8B,GAAG9G,IAAA;EAAA,IAAC;IAAEE,QAAQ;IAAE6G;EAAM,CAAC,GAAA/G,IAAA;EAAA,oBAC1DN,0DAAA;IAAKsH,GAAG,EAAED,KAAM;IAACE,EAAE,EAAEF;EAAM,gBAC1BrH,0DAAA,CAACK,6DAAkB;IAACiH,GAAG,EAAED,KAAM;IAAC9G,GAAG,EAAE8G;EAAM,gBAC1CrH,0DAAA,CAACgH,2CAAQ;IAACQ,QAAQ,EAAE;EAAG,GAAEhH,QAAmB,CACzB,CAChB,CAAC;AAAA,CACN;AAED,MAAMiH,gBAAoB,GAAGA,CAAA,KAAM;EAClC,MAAMC,WAAW,GAAGP,uDAAW,CAAEQ,CAAC,IAAKA,CAAC,CAACD,WAAW,CAAC;EACrD,MAAME,OAAO,GAAGX,8CAAO,CACtB,MACCC,2CAAG,CAACQ,WAAW,EAAE,CAACG,IAAI,EAAER,KAAK,kBAC5BrH,0DAAA,CAACoH,OAAO;IAACE,GAAG,EAAED,KAAM;IAACA,KAAK,EAAEA;EAAM,gBACjCrH,0DAAA,CAAC6H,IAAI,MAAE,CACC,CACT,CAAC,EACH,CAACH,WAAW,CACb,CAAC;EAED,oBACC1H,0DAAA;IACC,eAAY,aAAa;IACzBsH,GAAG,EAAC,aAAa;IACjBQ,MAAM;IACNC,KAAK,EAAE;MAAEC,MAAM,EAAE,CAAC;MAAEC,QAAQ,EAAE;IAAS;EAAE,GAExCL,OACG,CAAC;AAER,CAAC;AAED,iEAAeH,gBAAgB;;;;;;;;;;;;;;;;;;;AC7C/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAYoE;AACtB;AASf;AACuC;;AAEtE;AACO,MAAMkB,aAAa,GAAIpI,GAAmB,IAA+B;EAC/E,MAAMqI,UAAU,GAAGzB,mDAAW,CAACxG,QAAQ,CAAC,CAAC,CAACkI,OAAO;EACjD,MAAMC,YAAY,GAAGJ,2EAAoB,CAAC/H,QAAQ,CAAC,CAAC;EACpD,OAAO;IACNoI,kBAAkB,EAAEH,UAAU,CAACG,kBAAkB;IACjDC,kBAAkB,EAAEJ,UAAU,CAACI,kBAAkB;IACjDC,aAAa,EAAEL,UAAU,CAACK,aAAa,CAAC1I,GAAG,CAACgG,IAAI,CAAC;IACjD2C,QAAQ,EAAGC,KAAkC,IAC5CP,UAAU,CAACM,QAAQ,CAACf,gEAAc,CAACgB,KAAK,EAAE5I,GAAG,CAAC,CAAC;IAChD6I,kBAAkB,EAAEA,CAACC,OAAe,EAAEC,OAAgB,KACrDV,UAAU,CAACQ,kBAAkB,CAACC,OAAO,EAAEC,OAAO,CAAC;IAChDC,WAAW,EAAGF,OAAe,IAAKT,UAAU,CAACW,WAAW,CAACF,OAAO,CAAC;IACjE;IACAG,YAAY,EAAGC,IAAwB,IACtCb,UAAU,CAACY,YAAY,CAACf,oEAAkB,CAACgB,IAAI,EAAElJ,GAAG,CAAC,CAAC;IACvD;IACAmJ,eAAe,EAAEd,UAAU,CAACc,eAAe;IAC3C;IACA;IACAC,eAAe,EAAGF,IAA2B,IAC5Cb,UAAU,CAACe,eAAe,CAACvB,uEAAqB,CAACqB,IAAI,EAAElJ,GAAG,CAAC,CAAC;IAC7D;IACAqJ,kBAAkB,EAAEhB,UAAU,CAACgB,kBAAkB;IACjD;IACA;IACAC,aAAa,EAAGJ,IAAyB,IACxCb,UAAU,CAACiB,aAAa,CAACxB,qEAAmB,CAACoB,IAAI,EAAElJ,GAAG,CAAC,CAAC;IACzD;IACAuJ,gBAAgB,EAAElB,UAAU,CAACkB,gBAAgB;IAC7C;IACA;IACAC,cAAc,EAAGN,IAA0B,IAC1Cb,UAAU,CAACmB,cAAc,CAACzB,sEAAoB,CAACmB,IAAI,EAAElJ,GAAG,CAAC,CAAC;IAC3D;IACAyJ,iBAAiB,EAAEpB,UAAU,CAACoB,iBAAiB;IAC/C;IACA;IACAC,uBAAuB,EAAGR,IAAmC,IAC5Db,UAAU,CAACqB,uBAAuB,CAAC1B,+EAA6B,CAACkB,IAAI,EAAElJ,GAAG,CAAC,CAAC;IAC7E;IACA2J,0BAA0B,EAAEtB,UAAU,CAACsB,0BAA0B;IACjE;IACA;IACAC,yBAAyB,EAAGV,IAAqC,IAChEb,UAAU,CAACuB,yBAAyB,CAAC3B,iFAA+B,CAACiB,IAAI,EAAElJ,GAAG,CAAC,CAAC;IACjF;IACA6J,4BAA4B,EAAExB,UAAU,CAACwB,4BAA4B;IACrEC,iBAAiB,EAAEvB,YAAY,CAACuB,iBAAiB;IACjDC,eAAe,EAAExB,YAAY,CAACwB,eAAe;IAC7CC,eAAe,EAAEzB,YAAY,CAACyB,eAAe;IAC7CC,aAAa,EAAE1B,YAAY,CAAC0B,aAAa;IACzCC,kBAAkB,EAAE3B,YAAY,CAAC2B,kBAAkB,CAAClK,GAAG,CAACgG,IAAI,CAAC;IAC7DmE,gBAAgB,EAAE5B,YAAY,CAAC4B,gBAAgB;IAC/C;IACAC,YAAY,EAAEzC,6EAAqB,CAAC3H,GAAG,CAACgG,IAAI;EAC7C,CAAC;AACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACxFD;AACA;AACA;AACA;AACA;AACA;;AAG8B;AAGiD;AAClB;AACO;AACN;AACqB;AAChB;AACD;AACZ;AACR;AAE9C,MAAM+E,mBAAmB,GAAI9E,CAAY,KAAoB;EAC5De,EAAE,EAAE,SAAS;EACb4B,KAAK,EAAE,SAAS;EAChBoC,GAAG,EAAEpL,oDAAY;EACjBqL,SAAS,EAAEP,kEAAe;EAC1BQ,IAAI,EAAE,oBAAoB;EAC1BC,KAAK,EAAElF,CAAC,CAAC,0BAA0B,EAAE,kBAAkB,CAAC;EACxDmF,QAAQ,EAAE,CAAC;EACXC,WAAW,EAAEV,4FAAmB,CAAC1E,CAAC;AACnC,CAAC,CAAC;AAEF,MAAMqF,oBAAoB,GAAIrF,CAAY,KAAoB;EAC7De,EAAE,EAAE,UAAU;EACd4B,KAAK,EAAE,UAAU;EACjBoC,GAAG,EAAEpL,oDAAY;EACjBqL,SAAS,EAAER,yEAAgB;EAC3BS,IAAI,EAAE,eAAe;EACrBC,KAAK,EAAElF,CAAC,CAAC,mBAAmB,EAAE,UAAU,CAAC;EACzCmF,QAAQ,EAAE;AACX,CAAC,CAAC;AAEF,MAAMG,qBAAqB,GAAItF,CAAY,KAA0B;EACpEe,EAAE,EAAEsD,qDAAa;EACjBU,GAAG,EAAEV,qDAAa;EAClB1B,KAAK,EAAE0B,qDAAa;EACpBkB,OAAO,EAAEhB,kEAAa;EACtBiB,KAAK,EAAE;IACNC,IAAI,EAAE;EACP,CAAC;EACDP,KAAK,EAAElF,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC;EAChCmF,QAAQ,EAAE,EAAE;EACZrC,OAAO,EAAE,IAAI;EACb4C,UAAU,EAAE;AACb,CAAC,CAAC;AAEF,MAAMC,uBAAuB,GAAI3F,CAAY,KAA0B;EACtEe,EAAE,EAAEuD,uDAAe;EACnBS,GAAG,EAAET,uDAAe;EACpB3B,KAAK,EAAE2B,uDAAe;EACtBiB,OAAO,EAAEZ,wEAAe;EACxBa,KAAK,EAAE;IACNC,IAAI,EAAE;EACP,CAAC;EACDP,KAAK,EAAElF,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC;EACpCmF,QAAQ,EAAE,EAAE;EACZrC,OAAO,EAAE,IAAI;EACb4C,UAAU,EAAE,oBAAoB;EAChCE,YAAY,EAAEhB,uEAAeA;AAC9B,CAAC,CAAC;AAEK,MAAMiB,oBAAoB,GAAI7F,CAAY,IAAW;EAC3D,MAAM;IAAE8F;EAAM,CAAC,GAAGjB,2DAAe,CAAC1K,QAAQ,CAAC,CAAC,CAAC4L,QAAQ;EACrD,IAAI3B,4CAAI,CAAC0B,KAAK,CAAC,GAAG,CAAC,IAAIA,KAAK,CAACE,2BAA2B,KAAK,OAAO,EAAE;IACrErF,mDAAW,CAACxG,QAAQ,CAAC,CAAC,CAACkI,OAAO,CAACK,QAAQ,CAACiD,uBAAuB,CAAC3F,CAAC,CAAC,CAAC;IACnEW,mDAAW,CAACxG,QAAQ,CAAC,CAAC,CAACkI,OAAO,CAACc,eAAe,CAAC2B,mBAAmB,CAAC9E,CAAC,CAAC,CAAC;IACtEW,mDAAW,CAACxG,QAAQ,CAAC,CAAC,CAACkI,OAAO,CAACc,eAAe,CAACkC,oBAAoB,CAACrF,CAAC,CAAC,CAAC;EACxE;EACAW,mDAAW,CAACxG,QAAQ,CAAC,CAAC,CAACkI,OAAO,CAACK,QAAQ,CAAC4C,qBAAqB,CAACtF,CAAC,CAAC,CAAC;AAClE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/ED;AACA;AACA;AACA;AACA;;AAE4C;AAEZ;AAEyB;AACJ;AAER;AACM;AACoB;AACzB;AACK;AACD;AAE3C,MAAMwG,QAAkD,GAAG,CAAC,CAAC;AACpE,IAAIC,SAAS,GAAG,CAAC;AAEV,SAASC,OAAOA,CAACC,MAAsB,EAA2B;EACxE,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACvC,IAAI;MACH,IACCC,MAAM,CAACC,yBAAyB,IAChCD,MAAM,CAACC,yBAAyB,CAAC,4BAA4B,CAAC,EAC7D;QACDD,MAAM,CAACC,yBAAyB,CAAC,4BAA4B,CAAC,CAACL,MAAM,CAAC5G,IAAI,CAAC,GAAG;UAC7EqG,MAAM,EAAEA,4DAAM,CAACO,MAAM,CAAC5G,IAAI,CAAC;UAC3BuG,OAAO;UACPC,OAAO;UACPF,cAAc;UACd,GAAGlE,kEAAa,CAACwE,MAAM,CAAC;UACxB,GAAG7G,sEAAe,CAAC6G,MAAM,CAAC;UAC1B,GAAGR,uCAASA;QACb,CAAC;MACF;MAEAY,MAAM,CAACE,mBAAmB,CAACN,MAAM,CAAC5G,IAAI,CAAC,GAAImH,YAA2B,IAAW;QAChFvG,mDAAW,CAACwG,QAAQ,CAAEC,KAAK,KAAM;UAChClG,WAAW,EAAE;YACZ,GAAGkG,KAAK,CAAClG,WAAW;YACpB,CAACyF,MAAM,CAAC5G,IAAI,gBAAGkG,2CAAI,CAACiB,YAAY;UACjC;QACD,CAAC,CAAC,CAAC;QACH;QACAxM,OAAO,CAAC2M,IAAI,CACV,aAAYV,MAAM,CAAC5G,IAAK,EAAC,EAC1B,uHACD,CAAC;QACD8G,OAAO,CAACF,MAAM,CAAC;MAChB,CAAC;MAED,MAAMW,MAAM,GAAGC,QAAQ,CAAClN,aAAa,CAAC,QAAQ,CAAC;MAC/CiN,MAAM,CAACE,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC;MAC9CF,MAAM,CAACE,YAAY,CAAC,eAAe,EAAEb,MAAM,CAAC5G,IAAI,CAAC;MACjDuH,MAAM,CAACE,YAAY,CAAC,kBAAkB,EAAEb,MAAM,CAACc,OAAO,CAAC;MACvDH,MAAM,CAACE,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;MAC1CF,MAAM,CAACE,YAAY,CAAC,KAAK,EAAG,GAAEb,MAAM,CAACe,aAAc,EAAC,CAAC;MACrDH,QAAQ,CAACI,IAAI,CAACC,WAAW,CAACN,MAAM,CAAC;MACjCb,SAAS,IAAI,CAAC;MACdD,QAAQ,CAAE,GAAEG,MAAM,CAAC5G,IAAK,WAAU0G,SAAU,EAAC,CAAC,GAAGa,MAAM;IACxD,CAAC,CAAC,OAAOO,GAAY,EAAE;MACtBnN,OAAO,CAACD,KAAK,CAACoN,GAAG,CAAC;MAClBf,MAAM,CAACe,GAAG,CAAC;IACZ;EACD,CAAC,CAAC;AACH;AAEO,SAASC,UAAUA,CAAA,EAAkB;EAC3C,OAAO,IAAIlB,OAAO,CAAEC,OAAO,IAAK;IAC/BX,8CAAM,CAACM,QAAQ,EAAGc,MAAM,IAAK;MAC5B,IAAIA,MAAM,CAACS,UAAU,EAAE;QACtBT,MAAM,CAACS,UAAU,CAACC,WAAW,CAACV,MAAM,CAAC;MACtC;IACD,CAAC,CAAC;IACFT,OAAO,CAAC,CAAC;EACV,CAAC,CAAC;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjFA;AACA;AACA;AACA;AACA;;AAEmF;AAE9C;AAEY;AACU;AAEZ;AACa;AACR;AACkB;AACtB;AAEhD,MAAM0B,gBAAgB,GAAIC,MAAc,IACvC,+LAAQ,KAAkBA,MAAO,WAAU,CAAC;AAEtC,SAASC,QAAQA,CACvBC,IAA2B,EACuB;EAClDN,wEAAqB,CAAC,CAAC;EACvB,MAAMO,UAAU,GAAGR,8CAAM,CAACO,IAAI,EAAG3D,GAAG,IAAK;IACxC,IAAIA,GAAG,CAAChF,IAAI,KAAKpG,oDAAY,EAAE,OAAO,KAAK;IAC3C,OAAO,EAAEoL,GAAG,CAAC6D,OAAO,IAAI5M,8DAAc,CAAC,OAAO,EAAE+I,GAAG,CAAC6D,OAAO,CAAC,KAAK,OAAO,CAAC;EAC1E,CAAC,CAAC;EACF;EACAlO,OAAO,CAACmO,GAAG,CACV,gBAAgB,EAChB,uHACD,CAAC;EACD,MAAM;IAAE9C;EAAS,CAAC,GAAGlB,2DAAe,CAAC1K,QAAQ,CAAC,CAAC;EAC/C,MAAMqO,MAAM,GACVzC,QAAQ,EAAE+C,KAAK,EAAEC,gBAAgB,IACjChD,QAAQ,EAAED,KAAK,EAAEkD,YAAuB,IACzC,IAAI;EACLpP,qDAAY,CAACO,QAAQ,CAAC,CAAC,CAAC8O,OAAO,CAACC,OAAO,CAACP,UAAU,EAAEH,MAAM,CAAC;EAC3D,MAAMW,SAAS,GACdX,MAAM,IAAIH,iEAAiB,IAAIA,iEAAiB,CAACG,MAAM,CAAmC;EAC3F,IAAIW,SAAS,EAAE;IACd,MAAMC,gBAAgB,GACpB,eAAe,IAAID,SAAS,IAAIA,SAAS,CAACE,aAAa,IAAKF,SAAS,CAACG,KAAK;IAC7Ef,gBAAgB,CAACa,gBAAgB,CAAC,CAACG,IAAI,CAAEC,aAAa,IAAK;MAC1DvB,+EAAc,CAACmB,gBAAgB,EAAEI,aAAa,CAAC;MAC/CtB,iFAAgB,CAACkB,gBAAgB,CAAC;IACnC,CAAC,CAAC;EACH;EACAd,yDAAW,CAACnO,QAAQ,CAAC,CAAC,CAACsP,UAAU,CAACd,UAAU,CAAC;EAC7C,OAAO/B,OAAO,CAAC8C,UAAU,CAAChJ,2CAAG,CAACiI,UAAU,EAAG5D,GAAG,IAAK2B,kDAAO,CAAC3B,GAAG,CAAC,CAAC,CAAC;AAClE;AAEO,SAAS4E,aAAaA,CAAA,EAAkB;EAC9C,OAAO7B,qDAAU,CAAC,CAAC;AACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;;AAE0B;AAEyB;AACO;AACF;AACvB;AACA;AACK;AACK;AACD;AACS;AACG;AAE/C,SAASM,qBAAqBA,CAAA,EAAS;EAC7C,IAAI,CAACrB,MAAM,CAACC,yBAAyB,EAAE;IACtCD,MAAM,CAACC,yBAAyB,GAAG;MAClCsD,KAAK,EAAE9Q,8CAAK;MACZ,WAAW,EAAEyQ,sCAAQ;MACrB,eAAe,EAAEC,0CAAS;MAC1B,aAAa,EAAEC,wCAAU;MACzBI,MAAM,EAAER,mCAAM;MACd,kBAAkB,EAAEK,6CAAc;MAClCI,MAAM,EAAER,mCAAM;MACd,mBAAmB,EAAEK,8CAAgB;MACrC,kBAAkB,EAAET,6CAAc;MAClC,4BAA4B,EAAE,CAAC,CAAC;MAChC,iCAAiC,EAAEC,6DAAM;MACzC,8BAA8B,EAAEC,yDAAOA;IACxC,CAAC;IACD/C,MAAM,CAACE,mBAAmB,GAAG,CAAC,CAAC;EAChC;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;;AAE6C;AAEmC;AACjC;AAC4B;AAEnB;AACG;AACV;AACf;AACuB;AACR;AACM;AACuC;AAClD;AACD;AAE3C,MAAMwE,kBAAkB,GAAGA,CAAA,KAAY;EACtC,MAAM;IAAE9I;EAAM,CAAC,GAAGqI,4DAAS,CAAqB,CAAC;EACjDP,gDAAS,CAAC,MAAM;IACf,IAAI9H,KAAK,EAAEhC,oDAAW,CAACwG,QAAQ,CAAC;MAAEuE,UAAU,EAAE/I;IAAM,CAAC,CAAC;EACvD,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EACX,OAAO,IAAI;AACZ,CAAC;AAEM,MAAMgJ,oBAAoB,GAAGA,CAAA,KAAY;EAC/C,MAAM,CAAC3L,CAAC,CAAC,GAAG4K,6DAAc,CAAC,CAAC;EAC5BH,gDAAS,CAAC,MAAM;IACf5E,wEAAoB,CAAC7F,CAAC,CAAC;EACxB,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC;EACP,OAAO,IAAI;AACZ,CAAC;AAED,MAAM4L,YAAgB,GAAGA,CAAA,kBACxBpS,0DAAA,CAAC4R,0DAAa,qBACb5R,0DAAA,CAAC2R,4DAAoB,qBACpB3R,0DAAA,CAACqR,4DAAa;EAACgB,QAAQ,EAAER,gDAAQA;AAAC,gBACjC7R,0DAAA,CAACmR,6EAAe,qBACfnR,0DAAA,CAACkR,0EAAY,qBACZlR,0DAAA,CAAC0R,2CAAM,MAAE,CAAC,EACTI,qDAAa,iBACb9R,0DAAA,CAACuR,qDAAM,qBACNvR,0DAAA,CAACsR,oDAAK;EAACgB,IAAI,EAAE;AAAU,gBACtBtS,0DAAA,CAACiS,kBAAkB,MAAE,CACf,CACA,CACR,eACDjS,0DAAA,CAACmS,oBAAoB,MAAE,CAAC,eACxBnS,0DAAA,CAAC+R,sGAA6B,MAAE,CAAC,eACjC/R,0DAAA,CAACyR,0DAAa,MAAE,CAAC,eACjBzR,0DAAA,CAACyH,+DAAgB,MAAE,CAAC,eACpBzH,0DAAA,CAACgS,0DAAS,MAAE,CACC,CACE,CACH,CACM,CACR,CACf;AAED,iEAAeI,YAAY;;;;;;;;;;;;;;;;;;;ACjE3B;AACA;AACA;AACA;AACA;AACwE;AAC1B;AAEM;AAE7C,MAAMX,aAAa,GAAGA,CAAA,KAAY;EACxC,MAAMkB,OAAO,GAAGF,4DAAU,CAAC,CAAC;EAC5B,MAAMG,cAAc,GAAGJ,4EAAW,CAAC,CAAC;EACpC,MAAMK,WAAW,GAAGN,yEAAQ,CAAC,CAAC;EAC9BG,gEAAS,CAAC;IACT7L,SAAS,EAAE;MACViM,UAAU,EAAEA,CAAA,KAAMH,OAAO;MACzBC,cAAc;MACdC;IACD;EACD,CAAC,CAAC;EACF,OAAO,IAAI;AACZ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBD;AACA;AACA;AACA;AACA;;AAEgE;AAEO;AACzC;AACiB;AAEW;AACA;AACZ;AACQ;AACT;AACF;AAEpC,SAASW,uBAAuBA,CACtCC,oBAA6C,EACG;EAChD,OAAOA,oBAAoB,CAACC,MAAM,KAAK,UAAU;AAClD;AAEO,SAASC,wBAAwBA,CACvCF,oBAA6C,EACO;EACpD,OAAOA,oBAAoB,CAACC,MAAM,KAAK,WAAW;AACnD;AAIO,MAAME,kBAAkB,GAAGtT,IAAA,IAGgB;EAAA,IAHf;IAClCuT,IAAI;IACJC;EACwB,CAAC,GAAAxT,IAAA;EACzB,MAAM,CAACkG,CAAC,CAAC,GAAG4K,6DAAc,CAAC,CAAC;EAC5B,MAAM2C,SAAS,GAAGjT,kDAAW,CAAC,MAAMyM,MAAM,CAACyG,QAAQ,CAACC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;EACjE,oBACCjU,0DAAA,CAACgT,kEAAK;IACLa,IAAI,EAAEA,IAAK;IACXK,aAAa,EAAE,KAAM;IACrBC,iBAAiB,EAAEZ,qDAAU;IAC7Ba,KAAK,EAAE5N,CAAC,CAAC,+BAA+B,EAAE,yBAAyB,CAAE;IACrE6N,YAAY,EAAE7N,CAAC,CAAC,4CAA4C,EAAE,SAAS,CAAE;IACzE8N,oBAAoB,EAAE9N,CAAC,CAAC,8CAA8C,EAAE,YAAY,CAAE;IACtFuN,SAAS,EAAEA,SAAU;IACrBQ,OAAO,EAAET;EAAa,gBAEtB9T,0DAAA,CAACiT,oEAAO;IAACuB,GAAG,EAAC;EAAO,gBACnBxU,0DAAA,CAACkT,iEAAI;IAACjL,QAAQ,EAAC;EAAY,GACzBzB,CAAC,CACD,8BAA8B,EAC9B,4HACD,CACK,CACE,CACH,CAAC;AAEV,CAAC;AAEM,MAAMkL,MAAM,GAAGA,CAAA,KAAyB;EAC9C,MAAM,CAACmC,IAAI,EAAEY,OAAO,CAAC,GAAG1B,+CAAQ,CAAC,KAAK,CAAC;EACvC,MAAMe,YAAY,GAAGhT,kDAAW,CAAC,MAAM2T,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;EAE1DxD,gDAAS,CAAC,MAAM;IACf7D,OAAO,CAAC8C,UAAU,CAAC,CAACoD,kEAAW,CAAC,CAAC,EAAEF,sEAAa,CAAC,CAAC,EAAEC,0DAAO,CAAC,CAAC,CAAC,CAAC,CAACtD,IAAI,CAClE2E,yBAAyB,IAAK;MAC9B,MAAM,GAAGC,iCAAiC,EAAEC,2BAA2B,CAAC,GACvEF,yBAAyB;MAE1B,MAAMG,qBAAqB,GAAG1B,4CAAI,CACjC,CAACwB,iCAAiC,EAAEC,2BAA2B,CAAC,EAChEpB,uBACD,CAAC;MACD,IAAIqB,qBAAqB,EAAE;QAC1B,IAAI,OAAOA,qBAAqB,CAACC,MAAM,KAAK,QAAQ,EAAE;UACrD5T,OAAO,CAACD,KAAK,CAAC4T,qBAAqB,CAACC,MAAM,CAAC;QAC5C,CAAC,MAAM,IAAI,SAAS,IAAID,qBAAqB,CAACC,MAAM,EAAE;UACrD5T,OAAO,CAACD,KAAK,CAAC4T,qBAAqB,CAACC,MAAM,CAACC,OAAO,CAAC;QACpD;QACAN,OAAO,CAAC,IAAI,CAAC;MACd;MACA,IAAId,wBAAwB,CAACgB,iCAAiC,CAAC,EAAE;QAChE1F,wDAAQ,CAAC+F,MAAM,CAACC,MAAM,CAAC9N,mDAAW,CAACxG,QAAQ,CAAC,CAAC,CAACuO,IAAI,CAAC,CAAC;MACrD;IACD,CACD,CAAC;IACD,OAAO,MAAM;MACZiB,6DAAa,CAAC,CAAC;IAChB,CAAC;EACF,CAAC,EAAE,EAAE,CAAC;EACN,oBAAOnQ,0DAAA,CAAC4T,kBAAkB;IAACC,IAAI,EAAEA,IAAK;IAACC,YAAY,EAAEA;EAAa,CAAE,CAAC;AACtE,CAAC;;;;;;;;;;;;;;;;;;;;AC9FD;AACA;AACA;AACA;AACA;;AAEkC;AAEc;AAEJ;AACC;AAE7C,MAAMnC,oBAAwB,GAAGrR,IAAA,IAAkB;EAAA,IAAjB;IAAEE;EAAS,CAAC,GAAAF,IAAA;EAC7C,MAAMM,IAAI,GAAGR,yDAAY,CAAEuH,CAAC,IAAKA,CAAC,CAAClH,SAAS,CAACN,oDAAY,CAAC,CAAC;EAC3D,oBAAOH,0DAAA,CAACC,0DAAe;IAACW,IAAI,EAAEA;EAAK,GAAEJ,QAA0B,CAAC;AACjE,CAAC;AACD,iEAAemR,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBnC;AACA;AACA;AACA;AACA;;AASe;AAM0B;AAC0B;AAC9B;AACyD;AAEjC;AAG0B;AACjB;AACL;AAEjE8D,0DAAc,CAAClI,MAAM,CAACyI,KAAK,CAAC;AAOrB,MAAMC,qBAAqB,gBAAGf,oDAAa,CAAiB;EAClEgB,YAAY,EAAEA,CAAA,KAAM;IACnB,MAAMC,KAAK,CAAC,iBAAiB,CAAC;EAC/B,CAAC;EACDC,kBAAkB,EAAEA,CAAA,KAAM;IACzB,MAAMD,KAAK,CAAC,iBAAiB,CAAC;EAC/B;AACD,CAAC,CAAC;AAMF,MAAME,gBAAgB,GACrB,SAAAA,CAAA;EAAA,IAACC,WAAwB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,OAC7BG,KAAmB,KAAoB;IACvC,GAAGA,KAAK;IACR,GAAGJ,WAAW;IACdK,OAAO,EAAE;MACR,GAAGD,KAAK,CAACC,OAAO;MAChB,GAAGL,WAAW,CAACK,OAAO;MACtBC,MAAM,EAAE;QACPC,OAAO,EAAE,SAAS;QAClBC,KAAK,EAAE,SAAS;QAChBC,MAAM,EAAE,SAAS;QACjBC,KAAK,EAAE,SAAS;QAChBC,QAAQ,EAAE;MACX,CAAC;MACDC,MAAM,EAAE;QACPL,OAAO,EAAE,SAAS;QAClBC,KAAK,EAAE,SAAS;QAChBC,MAAM,EAAE,SAAS;QACjBC,KAAK,EAAE,SAAS;QAChBC,QAAQ,EAAE;MACX;IACD;EACD,CAAC,CAAC;AAAA;AAEH,MAAME,aAA6B,GAAIT,KAAK,KAAM;EACjD,GAAGA,KAAK;EACRU,KAAK,EAAE;IACN,GAAGV,KAAK,CAACU,KAAK;IACdC,MAAM,EAAEX,KAAK,CAACU,KAAK,CAACE,gBAAgB;IACpCC,MAAM,EAAEb,KAAK,CAACU,KAAK,CAACI;EACrB;AACD,CAAC,CAAC;AAEF,MAAMC,sBAAsC,GAAIf,KAAK,KAAM;EAC1D,GAAGA,KAAK;EACRgB,aAAa,EAAE,CACd,IAAIhB,KAAK,CAACgB,aAAa,IAAI,EAAE,CAAC,EAC9B,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,MAAM;AAER,CAAC,CAAC;AAMF,MAAMC,WAAW,GAAGjC,oEAAiB,wFAEpBpV,IAAA;EAAA,IAAC;IAAEsX;EAAa,CAAC,GAAAtX,IAAA;EAAA,OAAc,GAAEsX,YAAa,GAAE;AAAA,GAE7DC,KAAA;EAAA,IAAC;IAAEnB;EAAM,CAAC,GAAAmB,KAAA;EAAA,OACZ3Q,2CAAG,CACFwP,KAAK,CAACgB,aAAa,EAClBI,MAAM,IAAKnC,sDAAG,qDACGmC,MAAM,EACZA,MAAM,CAGnB,CAAC;AAAA,EAIF;AAKM,MAAMlG,aAAa,GAAGmG,KAAA,IAAyD;EAAA,IAAxD;IAAEvX;EAA6B,CAAC,GAAAuX,KAAA;EAC7D,MAAM,CAACC,oBAAoB,CAAC,GAAG3V,6EAAe,CAAkByT,kEAA0B,EAAE,CAAC,CAAC,CAAC;EAE/F,MAAM,CAACmC,UAAU,EAAEC,aAAa,CAAC,GAAGnF,+CAAQ,CAC3C,CAAC,CACF,CAAC;EAED,MAAMoF,YAAY,GAAGvC,0EAAkB,CAAC,CAAC;EAEzCT,sDAAe,CAAC,MAAM;IACrB,MAAMiD,kBAAoD,GAAGD,YAAY,GACtE;MAAEE,OAAO,EAAEjD,iFAAgB,CAAC;QAAEyB,OAAO,EAAEsB;MAAa,CAAC;IAAE,CAAC,GACxD,CAAC,CAAC;IACLD,aAAa,CAAEI,SAAS,KAAM;MAC7B,GAAGA,SAAS;MACZ3B,OAAO,EAAEN,gBAAgB,CAAC;QACzBM,OAAO,EAAEyB;MACV,CAAC,CAAC;MACFhB,KAAK,EAAED,aAAa;MACpBO,aAAa,EAAED;IAChB,CAAC,CAAC,CAAC;EACJ,CAAC,EAAE,CAACU,YAAY,CAAC,CAAC;EAElB,MAAM,CAACI,eAAe,EAAEnC,kBAAkB,CAAC,GAAGrD,+CAAQ,CAAuB,UAAU,CAAC;EAExF9B,gDAAS,CAAC,MAAM;IACf,QAAQsH,eAAe;MACtB,KAAK,UAAU;QACdjD,gDAAI,CAAC,KAAK,CAAC;QACXC,mDAAO,CAAC,CAAC;QACT;MACD,KAAK,SAAS;QACbD,gDAAI,CAAC,KAAK,CAAC;QACXE,kDAAM,CAAC,CAAC,CAAC,EAAEK,mEAA2B,CAAC;QACvC;MACD,KAAK,MAAM;MACX;QACCP,gDAAI,CAAC,CAAC,CAAC,EAAEO,mEAA2B,CAAC;QACrC;IACF;EACD,CAAC,EAAE,CAAC0C,eAAe,CAAC,CAAC;EAErB,MAAMC,oBAAoB,GAAG1X,kDAAW,CACtC4V,KAAK,IACLvV,8CAAM,CACL8W,UAAU,EACV,CAACQ,gBAAgB,EAAEC,gBAAgB,KAAK;IACvC,IAAIA,gBAAgB,EAAE;MACrB,OAAOA,gBAAgB,CAACD,gBAAgB,CAAC;IAC1C;IACA,OAAOA,gBAAgB;EACxB,CAAC,EACD/B,KACD,CAAC,EACF,CAACuB,UAAU,CACZ,CAAC;EAED,MAAM/B,YAAY,GAAGpV,kDAAW,CAAiC,CAAC6X,YAAY,EAAEpR,EAAE,KAAK;IACtF2Q,aAAa,CAAEU,GAAG,KAAM;MAAE,GAAGA,GAAG;MAAE,CAACrR,EAAE,GAAGoR;IAAa,CAAC,CAAC,CAAC;EACzD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMf,YAAY,GAAG3Q,8CAAO,CAAoC,MAAM;IACrE,MAAM4R,wBAAwB,GAAGb,oBAAoB,CAAC,qCAAqC,CAAC;IAC5F,IAAIa,wBAAwB,KAAKpC,SAAS,EAAE;MAC3C,OAAOoC,wBAAwB;IAChC;IACA,OAAO9C,kFAAsB,CAAC,CAAC;EAChC,CAAC,EAAE,CAACiC,oBAAoB,CAAC,CAAC;EAE1B,MAAMc,0BAA0B,GAAG7R,8CAAO,CACzC,OAAO;IAAEiP,YAAY;IAAEE;EAAmB,CAAC,CAAC,EAC5C,CAACF,YAAY,CACd,CAAC;EAED,oBACClW,0DAAA,CAACqV,0EAAe;IAACiD,SAAS,EAAEE;EAAqB,gBAChDxY,0DAAA,CAACiW,qBAAqB,CAAC8C,QAAQ;IAACjJ,KAAK,EAAEgJ;EAA2B,gBACjE9Y,0DAAA,CAAC2X,WAAW;IAACC,YAAY,EAAEA;EAAa,CAAE,CAAC,EAC1CpX,QAC8B,CAChB,CAAC;AAEpB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;AC5MD;AACA;AACA;AACA;AACA;AAC2C;AAEgB;AAC7B;AAEgC;AACL;AACQ;AACN;AAEpD,SAASoV,kBAAkBA,CAAA,EAAuB;EACxD,MAAM,CAACwD,uBAAuB,EAAEC,0BAA0B,CAAC,GAAGhX,6EAAe,CAE3E4W,sEAA8B,EAAExC,SAAS,CAAC;EAC5C,MAAM;IAAE6C,yBAAyB;IAAEC;EAA8B,CAAC,GAAGJ,uEAAmB,CAAC,CAAC;EAC1F,MAAM;IAAEK,eAAe;IAAEC;EAAiB,CAAC,GAAGP,qEAAW,CAAC,CAAC;EAC3D,MAAMxC,KAAK,GAAGsC,yEAAQ,CAAC,CAAC;EAExB,MAAMb,YAAY,GAAGlR,8CAAO,CAAC,MAAM;IAClC,IACCwS,gBAAgB,KAAKhD,SAAS,KAC7B6C,yBAAyB,IAAIC,6BAA6B,CAAC,EAC3D;MACD,IAAIC,eAAe,EAAE;QACpB,OAAOD,6BAA6B,IAAID,yBAAyB;MAClE;MACA,OAAOA,yBAAyB,IAAIC,6BAA6B;IAClE;IACA,IAAIH,uBAAuB,IAAIxO,4CAAI,CAACwO,uBAAuB,CAAC,GAAG,CAAC,EAAE;MACjE,OACEI,eAAe,KAAKJ,uBAAuB,CAACM,IAAI,IAAIN,uBAAuB,CAACO,KAAK,CAAC,IACnFP,uBAAuB,CAACO,KAAK,IAC7BP,uBAAuB,CAACM,IAAI;IAE9B;IACA,IAAIhD,KAAK,EAAE;MACV,OAAOA,KAAK,CAACC,OAAO,CAAC0B,OAAO,CAACxB,OAAO;IACrC;IACA,OAAOJ,SAAS;EACjB,CAAC,EAAE,CACF8C,6BAA6B,EAC7BD,yBAAyB,EACzBE,eAAe,EACfC,gBAAgB,EAChBL,uBAAuB,EACvB1C,KAAK,CACL,CAAC;EAEFzF,gDAAS,CAAC,MAAM;IACf,IAAIwI,gBAAgB,KAAKhD,SAAS,EAAE;MACnC4C,0BAA0B,CAAEO,SAAS,KAAM;QAC1C,GAAGA,SAAS;QACZ,CAACJ,eAAe,GAAG,MAAM,GAAG,OAAO,GAAGrB;MACvC,CAAC,CAAC,CAAC;IACJ;EACD,CAAC,EAAE,CAACqB,eAAe,EAAEC,gBAAgB,EAAEtB,YAAY,EAAEkB,0BAA0B,CAAC,CAAC;EAEjF,OAAOlB,YAAY;AACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACO,MAAM0B,sBAAsB,GAAG,CACrC;EAAEC,MAAM,EAAE,CAAC;EAAEC,GAAG,EAAE,SAAS;EAAEC,MAAM,EAAE;AAAQ,CAAC,EAC9C;EAAEF,MAAM,EAAE,CAAC;EAAEC,GAAG,EAAE,SAAS;EAAEC,MAAM,EAAE;AAAO,CAAC,EAC7C;EAAEF,MAAM,EAAE,CAAC;EAAEC,GAAG,EAAE,SAAS;EAAEC,MAAM,EAAE;AAAO,CAAC,EAC7C;EAAEF,MAAM,EAAE,CAAC;EAAEC,GAAG,EAAE,SAAS;EAAEC,MAAM,EAAE;AAAQ,CAAC,EAC9C;EAAEF,MAAM,EAAE,CAAC;EAAEC,GAAG,EAAE,SAAS;EAAEC,MAAM,EAAE;AAAS,CAAC,EAC/C;EAAEF,MAAM,EAAE,CAAC;EAAEC,GAAG,EAAE,SAAS;EAAEC,MAAM,EAAE;AAAM,CAAC,EAC5C;EAAEF,MAAM,EAAE,CAAC;EAAEC,GAAG,EAAE,SAAS;EAAEC,MAAM,EAAE;AAAS,CAAC,EAC/C;EAAEF,MAAM,EAAE,CAAC;EAAEC,GAAG,EAAE,SAAS;EAAEC,MAAM,EAAE;AAAO,CAAC,EAC7C;EAAEF,MAAM,EAAE,CAAC;EAAEC,GAAG,EAAE,SAAS;EAAEC,MAAM,EAAE;AAAO,CAAC,EAC7C;EAAEF,MAAM,EAAE,CAAC;EAAEC,GAAG,EAAE,SAAS;EAAEC,MAAM,EAAE;AAAS,CAAC,CAC/C;AAEM,MAAMC,OAAO,GAAG;EACtBC,SAAS,EAAE,GAAG;EACdC,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE,GAAG;EACVC,IAAI,EAAE,GAAG;EACTC,IAAI,EAAE,GAAG;EACTC,MAAM,EAAE,GAAG;EACXC,QAAQ,EAAE,GAAG;EACbC,IAAI,EAAE,GAAG;EACTC,aAAa,EAAE,GAAG;EAClBC,QAAQ,EAAE,IAAI;EACdC,IAAI,EAAE,IAAI;EACVC,QAAQ,EAAE,IAAI;EAAE;EAChBC,aAAa,EAAE,IAAI;EACnBC,OAAO,EAAE,IAAI;EACbC,KAAK,EAAE,IAAI;EACXC,SAAS,EAAE,IAAI;EACfC,2BAA2B,EAAE;AAC9B,CAAC;AAEM,MAAM/a,YAAY,GAAG,mBAAmB;AACxC,MAAM2K,eAAe,GAAG,UAAU;AAClC,MAAMqQ,eAAe,GAAG,UAAU;AAClC,MAAMtQ,aAAa,GAAG,QAAQ;AAC9B,MAAMuQ,YAAY,GAAG;EAC3BC,YAAY,EAAE,cAAc;EAC5BC,iBAAiB,EAAE,mBAAmB;EACtCC,OAAO,EAAE,SAAS;EAClBC,YAAY,EAAE,cAAc;EAC5BC,OAAO,EAAE,SAAS;EAClBC,YAAY,EAAE,cAAc;EAC5BC,MAAM,EAAE,QAAQ;EAChBC,WAAW,EAAE,aAAa;EAC1BC,WAAW,EAAE,aAAa;EAC1BC,gBAAgB,EAAE,kBAAkB;EACpCC,MAAM,EAAE,QAAQ;EAChBC,WAAW,EAAE,aAAa;EAC1BrB,QAAQ,EAAE,UAAU;EACpBsB,aAAa,EAAE,eAAe;EAC9BC,GAAG,EAAE;AACN,CAAC;AAEM,MAAMrG,2BAA4C,GAAG;EAC3DsG,mBAAmB,EAAE,CAAC,iBAAiB,CAAC;EACxCC,MAAM,EAAE,EAAE;EACVzG,GAAG,EAAG;AACP;AACA;AACA;AACA;AACA,EAAE;EACD0G,iBAAiB,EAAE,CAAC,aAAa,CAAC;EAClCC,uBAAuB,EAAE;AAC1B,CAAC;AAED,MAAMC,IAAI,GAAG,YAAY;AAEzB,MAAMC,cAAc,GAAI,GAAED,IAAK,YAAW;AAEnC,MAAMzK,aAAa,GAAGvE,MAAM,CAACyG,QAAQ,CAACyI,QAAQ,CAACC,UAAU,CAACF,cAAc,CAAC;AACzE,MAAM3K,QAAQ,GAAGC,aAAa,GAAG0K,cAAc,GAAGD,IAAI;AACtD,MAAMI,sBAAsB;AAClC;AACA,4aAA4a;AAEta,MAAMC,SAAS,GAAG,WAAW;AAE7B,MAAMC,kBAAkB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAU;AAEnE,MAAMC,WAAW,GAAG;EAC1BC,aAAa,EAAE,eAAe;EAC9BC,GAAG,EAAE,KAAK;EACVC,YAAY,EAAE,cAAc;EAC5BlI,OAAO,EAAE,SAAS;EAClBmI,OAAO,EAAE,SAAS;EAClBnP,QAAQ,EAAE,UAAU;EACpBoP,WAAW,EAAE,aAAa;EAC1BC,oBAAoB,EAAE,sBAAsB;EAC5CC,aAAa,EAAE,eAAe;EAC9BC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE;AACP,CAAC;AACM,MAAM1H,0BAA0B,GAAG,UAAU;AAC7C,MAAMmD,8BAA8B,GAAG,QAAQ;AAC/C,MAAMwE,wBAAwB,GAAG,oBAAoB;AACrD,MAAMC,wBAAwB,GAAG,YAAY;AAC7C,MAAMC,eAAe,GAAG,CAC9B;EAAE7N,KAAK,EAAE,EAAE;EAAEpE,KAAK,EAAE;AAAK,CAAC,EAC1B;EAAEoE,KAAK,EAAE,IAAI;EAAEpE,KAAK,EAAE;AAAI,CAAC,EAC3B;EAAEoE,KAAK,EAAE,GAAG;EAAEpE,KAAK,EAAE;AAAI,CAAC,EAC1B;EAAEoE,KAAK,EAAE,KAAK;EAAEpE,KAAK,EAAE;AAAI,CAAC,EAC5B;EAAEoE,KAAK,EAAE,GAAG;EAAEpE,KAAK,EAAE;AAAK,CAAC,CAClB;AACH,MAAMkS,cAAc,GAAG,GAAG;AAC1B,MAAMC,aAAa,GAAG;EAC5BC,KAAK,EAAE,IAAI;EACXC,MAAM,EAAE,GAAG;EACXC,GAAG,EAAE,CAAC,CAAC;AACR,CAAU;;AAEH,MAAMC,oBAAoB,GAAG,qBAAqB;AAClD,MAAMC,oBAAoB,GAAG,oBAAoB;AACjD,MAAMC,gBAAgB,GAAG,mEAAmE;AAE5F,IAAKC,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAMpB,MAAMC,iBAAiB,GAAG,SAAS;AACnC,MAAMC,iBAAiB,GAAG,WAAW;AACrC,MAAMC,mBAAmB,GAAG,MAAM;AAClC,MAAMC,eAAe,GAAG,mBAAmB;AAC3C,MAAMC,sBAAsB,GAAG,EAAE;AACjC,MAAMC,oBAAoB,GAAG;EACnCC,GAAG,EAAE,EAAE;EACPC,IAAI,EAAE;AACP,CAAC;AAEM,MAAMC,0BAA0B,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;;;;;;;;;;;AChJhE;;AACb;AACA;AACA;AACA;AACA;AACA7J,8CAA6C;EAAElF,KAAK,EAAE;AAAK,CAAC,EAAC;AAC7DiP,yBAAyB,GAAG,KAAK,CAAC;AAClCA,yBAAyB,GAAG;EACxBC,KAAK,EAAE;IACHzY,IAAI,EAAE,SAAS;IACfuJ,KAAK,EAAE,OAAO;IACdD,aAAa,EAAE,OAAO;IACtBoP,aAAa,EAAE;EACnB,CAAC;EACDC,EAAE,EAAE;IACA3Y,IAAI,EAAE,YAAY;IAClBuJ,KAAK,EAAE;EACX,CAAC;EACDqP,EAAE,EAAE;IACA5Y,IAAI,EAAE,SAAS;IACfuJ,KAAK,EAAE,IAAI;IACXD,aAAa,EAAE;EACnB,CAAC;EACDuP,EAAE,EAAE;IACA7Y,IAAI,EAAE,SAAS;IACfuJ,KAAK,EAAE;EACX,CAAC;EACDuP,EAAE,EAAE;IACA9Y,IAAI,EAAE,OAAO;IACbuJ,KAAK,EAAE;EACX,CAAC;EACDwP,EAAE,EAAE;IACA/Y,IAAI,EAAE,UAAU;IAChBuJ,KAAK,EAAE;EACX,CAAC;EACDyP,EAAE,EAAE;IACAhZ,IAAI,EAAE,KAAK;IACXuJ,KAAK,EAAE;EACX,CAAC;EACD0P,EAAE,EAAE;IACAjZ,IAAI,EAAE,WAAW;IACjBuJ,KAAK,EAAE,IAAI;IACXmP,aAAa,EAAE;EACnB,CAAC;EACDQ,EAAE,EAAE;IACAlZ,IAAI,EAAE,QAAQ;IACduJ,KAAK,EAAE;EACX,CAAC;EACD4P,KAAK,EAAE;IACHnZ,IAAI,EAAE,oBAAoB;IAC1BuJ,KAAK,EAAE,OAAO;IACdD,aAAa,EAAE;EACnB,CAAC;EACD8P,EAAE,EAAE;IACApZ,IAAI,EAAE,QAAQ;IACduJ,KAAK,EAAE;EACX,CAAC;EACD8P,EAAE,EAAE;IACArZ,IAAI,EAAE,SAAS;IACfuJ,KAAK,EAAE;EACX,CAAC;EACD+P,EAAE,EAAE;IACAtZ,IAAI,EAAE,SAAS;IACfuJ,KAAK,EAAE;EACX,CAAC;EACDgQ,EAAE,EAAE;IACAvZ,IAAI,EAAE,KAAK;IACXuJ,KAAK,EAAE,IAAI;IACXmP,aAAa,EAAE;EACnB,CAAC;EACDc,EAAE,EAAE;IACAxZ,IAAI,EAAE,QAAQ;IACduJ,KAAK,EAAE;EACX,CAAC;EACDkQ,EAAE,EAAE;IACAzZ,IAAI,EAAE,UAAU;IAChBuJ,KAAK,EAAE,IAAI;IACXmP,aAAa,EAAE;EACnB,CAAC;EACDgB,EAAE,EAAE;IACA1Z,IAAI,EAAE,YAAY;IAClBuJ,KAAK,EAAE;EACX;AACJ,CAAC;;;;;;;;;;;;;;;;;;;ACpFD;AACA;AACA;AACA;AACA;AAC4C;AAE8B;AACjB;AAGlD,MAAMoJ,WAAW,GAAGA,CAAA,KAGtB;EACJ,MAAMkH,qBAAqB,GAAGF,uFAAwB,CAAC,CAAC;EAExD,MAAM,CAAC1G,eAAe,EAAE6G,kBAAkB,CAAC,GAAGtN,+CAAQ,CAAU,KAAK,CAAC;EAEtE9B,gDAAS,CAAC,MAAM;IACf,IAAImP,qBAAqB,EAAE;MAC1BC,kBAAkB,CAChBD,qBAAqB,KAAK,MAAM,IAAID,sEAA8B,CAAC,CAAC,CAACG,OAAO,IAC5EF,qBAAqB,KAAK,SAC5B,CAAC;IACF;EACD,CAAC,EAAE,CAACA,qBAAqB,CAAC,CAAC;EAE3BnP,gDAAS,CAAC,MAAM;IACf,MAAMsP,WAAW,GAAIC,KAA0B,IAAW;MACzDH,kBAAkB,CAACG,KAAK,CAACF,OAAO,CAAC;IAClC,CAAC;IACDH,sEAA8B,CAAC,CAAC,CAACM,gBAAgB,CAAC,QAAQ,EAAEF,WAAW,CAAC;IACxE,OAAO,MAAY;MAClBJ,sEAA8B,CAAC,CAAC,CAACO,mBAAmB,CAAC,QAAQ,EAAEH,WAAW,CAAC;IAC5E,CAAC;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAE/G,eAAe;IAAEC,gBAAgB,EAAE2G;EAAsB,CAAC;AACpE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACvCD;AACA;AACA;AACA;AACA;;AAEgC;AAEI;AAGkD;AACnC;AACQ;AAEpD,SAASO,8BAA8BA,CAC7CC,IAAgB,EACuB;EACvC,OAAOA,IAAI,CAACra,IAAI,KAAK2X,4DAAoB,IAAI0C,IAAI,CAACC,MAAM,KAAK1gB,oDAAY;AAC1E;AAEO,SAAS2gB,sBAAsBA,CACrCC,wBAAiC,EACkB;EACnD,OACC,OAAOA,wBAAwB,KAAK,QAAQ,IAC5ClE,0DAAkB,CAACmE,QAAQ,CAACD,wBAAgD,CAAC;AAE/E;;AAEA;AACO,SAASb,wBAAwBA,CAAA,EAAqC;EAC5E,MAAM3T,QAAQ,GAAG1J,+DAAe,CAAC,CAAC;EAClC,MAAM;IAAEoe;EAAsB,CAAC,GAAG9H,uEAAmB,CAAC,CAAC;EAEvD,MAAM+H,eAAe,GAAGja,8CAAO,CAC9B,MAAM2D,4CAAI,CAAC2B,QAAQ,CAAC+C,KAAK,CAAC,GAAG,CAAC,IAAI1E,4CAAI,CAAC2B,QAAQ,CAACD,KAAK,CAAC,GAAG,CAAC,IAAI1B,4CAAI,CAAC2B,QAAQ,CAAC4U,KAAK,CAAC,GAAG,CAAC,EACtF,CAAC5U,QAAQ,CACV,CAAC;EAED,OAAOtF,8CAAO,CAAC,MAAM;IACpB,IAAIia,eAAe,EAAE;MACpB,MAAME,MAAM,GAAGjO,4CAAI,CAClB5G,QAAQ,CAAC4U,KAAK,EACbrR,KAAK,IAA4C6Q,8BAA8B,CAAC7Q,KAAK,CACvF,CAAC,EAAEuR,QAAQ;MAEX,OAAOD,MAAM,IAAKH,qBAAqB,IAAI,SAAU,IAAI,UAAU;IACpE;IACA,OAAOxK,SAAS;EACjB,CAAC,EAAE,CAACyK,eAAe,EAAE3U,QAAQ,EAAE0U,qBAAqB,CAAC,CAAC;AACvD;;;;;;;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;;AAEO,MAAMd,8BAA8B,GAAGA,CAAA,KAC7C5S,MAAM,CAAC+T,UAAU,CAAC,8BAA8B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPlD;AACA;AACA;AACA;AACA;;AAE6C;AAGY;AACE;AAGd;AACW;AACJ;AACO;AAEpD,MAAM9f,eAAe,GAAGA,CAAA,KAA4B;EAC1D,MAAMwS,QAAQ,GAAGyN,6DAAW,CAAC,CAAC;EAC9B,MAAMI,MAAM,GAAGF,qDAAS,CAAC,CAAC;EAC1B,OAAO1a,8CAAO,CACb,MAAMkM,4CAAI,CAAC0O,MAAM,EAAEvhB,IAAA;IAAA,IAAC;MAAE6I;IAAM,CAAC,GAAA7I,IAAA;IAAA,OAAKoc,kDAAU,CAAC8E,4CAAI,CAACxN,QAAQ,CAACyI,QAAQ,EAAE,GAAG,CAAC,EAAEtT,KAAK,CAAC;EAAA,EAAC,EAClF,CAAC6K,QAAQ,CAACyI,QAAQ,EAAEoF,MAAM,CAC3B,CAAC;AACF,CAAC;AACM,MAAMtgB,eAAe,GAAGA,CAAA,KAA4B;EAC1D,MAAMoR,OAAO,GAAGxO,mEAAgB,CAACxD,QAAQ,CAAC,CAAC,CAACkG,SAAS,CAACiM,UAAU,GAAG,CAAC;EACpE,MAAM+O,MAAM,GAAGD,qDAAS,CAAC,CAAC;EAC1B,MAAMzY,KAAK,GAAGgK,4CAAI,CAAC0O,MAAM,EAAGC,CAAC,IAAKpF,kDAAU,CAAC8E,4CAAI,CAAC7O,OAAO,CAACqB,QAAQ,CAACyI,QAAQ,EAAE,GAAG,CAAC,EAAEqF,CAAC,CAAC3Y,KAAK,CAAC,CAAC;EAC5F,IAAIA,KAAK,EAAEA,KAAK,KAAK0B,qDAAa,EAAE;IACnC,OAAO;MACN,GAAG1B,KAAK;MACRA,KAAK,EAAG,GAAEA,KAAK,CAACA,KAAM,IAAGuY,gEAAc,CAAC/gB,QAAQ,CAAC,CAAC,CAACohB,MAAO;IAC3D,CAAC;EACF;EACA,OAAO5Y,KAAK;AACb,CAAC;AAEM,MAAM6Y,WAAW,GAAIC,MAAqB,IAAS;EACzD,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;IAC/B,OAAOV,+CAAO,CAAE,IAAGhgB,eAAe,CAAC,CAAC,EAAE4H,KAAM,IAAG8Y,MAAO,EAAC,EAAE,IAAI,EAAE,GAAG,CAAC;EACpE;EACA,MAAMC,YAAY,GAAGD,MAAM,CAAC9Y,KAAK,GAC9BgK,4CAAI,CAACyO,qDAAS,CAAC,CAAC,EAAGE,CAAC,IAAKA,CAAC,CAACva,EAAE,KAAK0a,MAAM,CAAC9Y,KAAK,IAAI2Y,CAAC,CAAC3Y,KAAK,KAAK8Y,MAAM,CAAC9Y,KAAK,CAAC,GAC3E5H,eAAe,CAAC,CAAC;EACpB,OAAO,OAAO0gB,MAAM,CAAC3P,IAAI,KAAK,QAAQ,GACnCiP,+CAAO,CAAE,IAAGW,YAAY,EAAE/Y,KAAM,IAAG8Y,MAAM,CAAC3P,IAAK,EAAC,EAAE,IAAI,EAAE,GAAG,CAAC,GAC5D;IACA6P,MAAM,EAAEF,MAAM,CAAC3P,IAAI,CAAC6P,MAAM;IAC1BC,IAAI,EAAEH,MAAM,CAAC3P,IAAI,CAAC8P,IAAI;IACtB3F,QAAQ,EAAE8E,+CAAO,CAAE,IAAGW,YAAY,EAAE/Y,KAAM,IAAG8Y,MAAM,CAAC3P,IAAI,CAACmK,QAAS,EAAC,EAAE,IAAI,EAAE,GAAG;EAC9E,CAAC;AACL,CAAC;AAEM,MAAMrb,sBAAsB,GAAGA,CAAA,KAAyC;EAC9E,MAAMuR,OAAO,GAAGF,4DAAU,CAAC,CAAC;EAC5B,OAAO3R,kDAAW,CAAEmhB,MAAqB,IAAWtP,OAAO,CAAC0P,IAAI,CAACL,WAAW,CAACC,MAAM,CAAC,CAAC,EAAE,CAACtP,OAAO,CAAC,CAAC;AAClG,CAAC;AAEM,MAAMrR,yBAAyB,GAAGA,CAAA,KAAyC;EACjF,MAAMqR,OAAO,GAAGF,4DAAU,CAAC,CAAC;EAC5B,OAAO3R,kDAAW,CAChBmhB,MAAqB,IAAWtP,OAAO,CAAC4O,OAAO,CAACS,WAAW,CAACC,MAAM,CAAC,CAAC,EACrE,CAACtP,OAAO,CACT,CAAC;AACF,CAAC;AAEM,SAAStR,wBAAwBA,CAAA,EAAe;EACtD,MAAMsR,OAAO,GAAGF,4DAAU,CAAC,CAAC;EAC5B,OAAOE,OAAO,CAAC2P,MAAM;AACtB;AAEO,MAAM3gB,WAAW,GAAIsgB,MAAqB,IAAW;EAC3D,MAAMtP,OAAO,GAAGxO,mEAAgB,CAACxD,QAAQ,CAAC,CAAC,CAACkG,SAAS,CAACiM,UAAU,GAAG,CAAC;EACpEH,OAAO,CAAC0P,IAAI,CAACL,WAAW,CAACC,MAAM,CAAC,CAAC;AAClC,CAAC;AAEM,MAAMxgB,cAAc,GAAIwgB,MAAqB,IAAW;EAC9D,MAAMtP,OAAO,GAAGxO,mEAAgB,CAACxD,QAAQ,CAAC,CAAC,CAACkG,SAAS,CAACiM,UAAU,GAAG,CAAC;EACpEH,OAAO,CAAC4O,OAAO,CAACS,WAAW,CAACC,MAAM,CAAC,CAAC;AACrC,CAAC;AAEM,MAAMvgB,aAAa,GAAGA,CAAA,KAC5ByC,mEAAgB,CAACxD,QAAQ,CAAC,CAAC,CAACkG,SAAS,CAACiM,UAAU,GAAG,CAAC,CAACwP,MAAM,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACpF9D;AACA;AACA;AACA;AACA;;AAEuE;AAE7B;AAaE;AACO;AAY5C,MAAM3X,YAAY,GAAG,SAAAA,CAC3B8X,IAAmB;EAAA,IACnBpb,KAAa,GAAAkP,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGpW,oDAAY;EAAA,OAE5B0B,uDAAe,CAAC1B,oDAAY,CAAC,CAC5B,OAAO,EACN,mDACAsiB,IAAI,CAACtB,KAAK,GACN,sDAAqDja,2CAAG,CACzDub,IAAI,CAACtB,KAAK,EACV,CAACP,IAAI,EAAEtZ,GAAG,KAAM,eAAcA,GAAI,aAAYsZ,IAAI,CAACrV,GAAG,IAAIlE,KAAM,KAAIuZ,IAAI,CAAC9Q,KAAM,SAC/E,CAAE,4BAA2B,GAC7B,EACH,GACA2S,IAAI,CAACnT,KAAK,GACN,iDAAgDpI,2CAAG,CAACub,IAAI,CAACnT,KAAK,EAAE,CAACoT,IAAI,EAAEpb,GAAG,KAC3Ekb,+CAAO,CAACE,IAAI,CAAC,GACVxb,2CAAG,CAACwb,IAAI,EAAGC,CAAC,IAAM,eAAcrb,GAAI,KAAIqb,CAAE,SAAQ,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC,GAC3D,eAActb,GAAI,KAAIob,IAAK,SAC/B,CAAC,CAACE,IAAI,CAAC,EAAE,CAAE,uBAAsB,GACjC,EACH,GACAH,IAAI,CAACI,QAAQ,EAAEC,UAAU,GACtB5b,2CAAG,CACHub,IAAI,CAACI,QAAQ,CAACC,UAAU,EACvBC,IAAI,IACH,gFACAA,IAAI,CAACxb,EACL,KAAIL,2CAAG,CAAC6b,IAAI,CAACzT,KAAK,EAAE,CAACQ,KAAK,EAAExI,GAAG,KAAM,YAAWA,GAAI,KAAIwI,KAAM,MAAK,CAAC,CAAC8S,IAAI,CACzE,EACD,CAAE,qCACH,CAAC,CAACA,IAAI,CAAC,EAAE,CAAC,GACV,EACH,GACAH,IAAI,CAACI,QAAQ,EAAEG,UAAU,GACtB9b,2CAAG,CACHub,IAAI,CAACI,QAAQ,CAACG,UAAU,EACvBD,IAAI,IACH,gFAA+EA,IAAK,6BACtF,CAAC,CAACH,IAAI,CAAC,EAAE,CAAC,GACV,EACH,GACAH,IAAI,CAACI,QAAQ,EAAEI,UAAU,GACtB/b,2CAAG,CACHub,IAAI,CAACI,QAAQ,CAACI,UAAU,EACxB,CAACF,IAAI,EAAEG,KAAK,KACV,+DAA8DA,KAAM,qBAAoBH,IAAI,CAACzT,KAAK,CAAC6T,sBAAuB,sCAAqCJ,IAAI,CAACzT,KAAK,CAAC6T,sBAAuB,uCAAsCJ,IAAI,CAACzT,KAAK,CAAC8T,qBAAsB,uCAAsCL,IAAI,CAACzT,KAAK,CAAC+T,qBAAsB,wFAAuFN,IAAI,CAACzT,KAAK,CAACgU,wBAAyB,0CAAyCP,IAAI,CAACzT,KAAK,CAACiU,wBAAyB,0CAAyCR,IAAI,CAACzT,KAAK,CAACkU,wBAAyB,8CAA6CT,IAAI,CAACzT,KAAK,CAACmU,4BAA6B,mDAAkDV,IAAI,CAACzT,KAAK,CAACoU,iCAAkC,6CAA4CX,IAAI,CAACzT,KAAK,CAACqU,2BAA4B,gDAA+CZ,IAAI,CAACzT,KAAK,CAACsU,8BAA+B,yCACt8B,CAAC,CAAChB,IAAI,CAAC,EAAE,CAAC,GACV,EACH,GACAH,IAAI,CAACoB,WAAW,GACZ,gEACDpB,IAAI,CAACoB,WAAW,CAACC,QAAQ,GACtB5c,2CAAG,CAACub,IAAI,CAACoB,WAAW,CAACC,QAAQ,CAACC,OAAO,EAAGC,KAAK,IAAK;IAClD,IAAIA,KAAK,CAACC,EAAE,KAAK,KAAK,EACrB,OAAQ,iCAAgCD,KAAK,CAACC,EAAG,UAASD,KAAK,CAACE,GAAI,qBAAoB;IACzF,IAAIF,KAAK,CAACC,EAAE,KAAK,KAAK,IAAID,KAAK,CAACG,IAAI,EACnC,OAAQ,iCAAgCH,KAAK,CAACC,EAAG,UAASD,KAAK,CAACE,GAAI,cAAa;IAClF,IAAIF,KAAK,CAACC,EAAE,KAAK,KAAK,EACrB,OAAQ,iCAAgCD,KAAK,CAACC,EAAG,UAASD,KAAK,CAACE,GAAI,QAAOF,KAAK,CAACI,CAAE,KAAI;IACxF,OAAQ,iCAAgCJ,KAAK,CAACC,EAAG,UAASD,KAAK,CAACE,GAAI,MAAK;EACzE,CAAC,CAAC,CAACtB,IAAI,CAAC,EAAE,CAAC,GACX,EACF,GACDH,IAAI,CAACoB,WAAW,CAACQ,WAAW,GACzBnd,2CAAG,CAACub,IAAI,CAACoB,WAAW,CAACQ,WAAW,CAACN,OAAO,EAAGC,KAAK,IAAK;IACrD,IAAIA,KAAK,CAACC,EAAE,KAAK,KAAK,IAAID,KAAK,CAACG,IAAI,EACnC,OAAQ,2BAA0BH,KAAK,CAACC,EAAG,UAASD,KAAK,CAACE,GAAI,cAAa;IAC5E,IAAIF,KAAK,CAACC,EAAE,KAAK,KAAK,EACrB,OAAQ,2BAA0BD,KAAK,CAACC,EAAG,UAASD,KAAK,CAACE,GAAI,QAAOF,KAAK,CAACI,CAAE,KAAI;IAClF,OAAQ,2BAA0BJ,KAAK,CAACC,EAAG,UAASD,KAAK,CAACE,GAAI,MAAK;EACnE,CAAC,CAAC,CAACtB,IAAI,CAAC,EAAE,CAAC,GACX,EACF,qFACDH,IAAI,CAACoB,WAAW,CAACC,QAAQ,GACrB,GAAE,CAAC,MAAc;IAClB,IAAIrB,IAAI,CAACoB,WAAW,CAACC,QAAQ,CAACQ,GAAG,CAACL,EAAE,KAAK,KAAK,EAAE;MAC/C,OAAQ,iCAAgCxB,IAAI,CAACoB,WAAW,CAACC,QAAQ,CAACQ,GAAG,CAACL,EAAG,qBAAoB;IAC9F;IACA,IACCxB,IAAI,CAACoB,WAAW,CAACC,QAAQ,CAACQ,GAAG,CAACL,EAAE,KAAK,KAAK,IAC1CxB,IAAI,CAACoB,WAAW,CAACC,QAAQ,CAACQ,GAAG,CAACH,IAAI,EACjC;MACD,OAAQ,iCAAgC1B,IAAI,CAACoB,WAAW,CAACC,QAAQ,CAACQ,GAAG,CAACL,EAAG,cAAa;IACvF;IACA,IAAIxB,IAAI,CAACoB,WAAW,CAACC,QAAQ,CAACQ,GAAG,CAACL,EAAE,KAAK,KAAK,EAAE;MAC/C,OAAO/c,2CAAG,CACTub,IAAI,CAACoB,WAAW,CAACC,QAAQ,CAACQ,GAAG,CAACF,CAAC,EAC9BG,CAAC;MACD;MACA;MACA;MACC,iCAAgC9B,IAAI,CAACoB,WAAW,EAAEC,QAAQ,CAACQ,GAAG,CAACL,EAAG,QAAOM,CAAC,CAACC,KAAM,KACpF,CAAC,CAAC5B,IAAI,CAAC,EAAE,CAAC;IACX;IACA,OAAQ,iCAAgCH,IAAI,CAACoB,WAAW,CAACC,QAAQ,CAACQ,GAAG,CAACL,EAAG,MAAK;EAC9E,CAAC,EAAE,CAAE,EAAC,GACN,EACF,GACDxB,IAAI,CAACoB,WAAW,CAACQ,WAAW,GACxB,GAAE,CAAC,MAAc;IAClB,IACC5B,IAAI,CAACoB,WAAW,CAACQ,WAAW,CAACC,GAAG,CAACL,EAAE,KAAK,KAAK,IAC7CxB,IAAI,CAACoB,WAAW,CAACQ,WAAW,CAACC,GAAG,CAACH,IAAI,EACpC;MACD,OAAQ,2BAA0B1B,IAAI,CAACoB,WAAW,CAACQ,WAAW,CAACC,GAAG,CAACL,EAAG,cAAa;IACpF;IACA,IAAIxB,IAAI,CAACoB,WAAW,CAACQ,WAAW,CAACC,GAAG,CAACL,EAAE,KAAK,KAAK,EAAE;MAClD,OAAO/c,2CAAG,CACTub,IAAI,CAACoB,WAAW,CAACQ,WAAW,CAACC,GAAG,CAACF,CAAC,EACjCG,CAAC;MACD;MACA;MACA;MACC,2BAA0B9B,IAAI,CAACoB,WAAW,EAAEQ,WAAW,CAACC,GAAG,CAACL,EAAG,QAAOM,CAAC,CAACC,KAAM,KACjF,CAAC,CAAC5B,IAAI,CAAC,EAAE,CAAC;IACX;IACA,OAAQ,2BAA0BH,IAAI,CAACoB,WAAW,EAAEQ,WAAW,CAACC,GAAG,CAACL,EAAG,MAAK;EAC5E,CAAC,EAAE,CAAE,EAAC,GACN,EACF;AACP,uBAAuB,GACjB,EACH,iBACF,CAAC,CAAClU,IAAI,CAAE+R,CAAC,IAAK;IACbzW,2DAAe,CAACsC,QAAQ,CAAEhG,CAAe,KAAM;MAC9C4E,QAAQ,EAAE;QACT,GAAG5E,CAAC,CAAC4E,QAAQ;QACb+C,KAAK,EAAEnO,8CAAM,CACZshB,IAAI,CAACnT,KAAK,EACV,CAACxI,GAAG,EAAE4b,IAAI,EAAEpb,GAAG,MAAM;UACpB,GAAGR,GAAG;UACN,CAACQ,GAAG,GAAGob;QACR,CAAC,CAAC,EACF/a,CAAC,CAAC4E,QAAQ,CAAC+C,KACZ,CAAC;QACD6R,KAAK,EAAEhgB,8CAAM,CACZshB,IAAI,CAACtB,KAAK,EACV,CAACra,GAAG,EAAAxG,IAAA,EAAkBgH,GAAG,KAAK;UAAA,IAAxB;YAAEiE,GAAG;YAAEuE;UAAM,CAAC,GAAAxP,IAAA;UACnB,MAAMmkB,SAAS,GAAGlC,iDAAS,CAACzb,GAAG,EAAG6b,CAAC,IAAKA,CAAC,CAACpc,IAAI,KAAKe,GAAG,IAAIqb,CAAC,CAAC9B,MAAM,KAAKtV,GAAG,CAAC;UAC3E,IAAIkZ,SAAS,IAAI,CAAC,EAAE;YACnB;YACA3d,GAAG,CAAC2d,SAAS,CAAC,GAAG;cAChBle,IAAI,EAAEe,GAAG;cACTuZ,MAAM,EAAEtV,GAAG;cACX8V,QAAQ,EAAEvR;YACX,CAAC;UACF,CAAC,MAAM;YACNhJ,GAAG,CAACub,IAAI,CAAC;cACR9b,IAAI,EAAEe,GAAG;cACTuZ,MAAM,EAAEtV,GAAG;cACX8V,QAAQ,EAAEvR;YACX,CAAC,CAAC;UACH;UACA,OAAOhJ,GAAG;QACX,CAAC,EACDa,CAAC,CAAC4E,QAAQ,CAAC4U,KACZ;MACD,CAAC;MACDuD,OAAO,EAAE;QACR,GAAG/c,CAAC,CAAC+c,OAAO;QACZC,WAAW,EACVxR,4CAAI,CAACsP,IAAI,EAAEI,QAAQ,EAAEC,UAAU,EAAGC,IAAI,IAAKA,IAAI,CAACxb,EAAE,KAAKI,CAAC,EAAE+c,OAAO,EAAEnd,EAAE,CAAC,EAAE+H,KAAK,CAC3E6T,sBAAsB,IAAIxb,CAAC,CAAC+c,OAAO,EAAEC,WAAW;QACnDC,UAAU,EAAE;UACX/B,QAAQ,EACP,OAAOlb,CAAC,CAAC+c,OAAO,KAAK,WAAW,GAC7BvjB,8CAAM,CACNshB,IAAI,EAAEI,QAAQ,EAAEC,UAAU,EAC1B,CAAChc,GAAG,EAAA+Q,KAAA,KAAoB;YAAA,IAAlB;cAAEtQ,EAAE;cAAE+H;YAAM,CAAC,GAAAuI,KAAA;YAClB,MAAM4M,SAAS,GAAGlC,iDAAS,CAC1Bzb,GAAG,EACH,CAAC+d,QAAQ,EAAEC,YAAY,KAAKhe,GAAG,CAACge,YAAY,CAAC,CAACvd,EAAE,KAAKA,EACtD,CAAC;YACD,IAAIkd,SAAS,GAAG,CAAC,CAAC,EAAE;cACnB;cACA3d,GAAG,CAAC2d,SAAS,CAAC,CAACM,MAAM,GAAG;gBACvB,GAAGje,GAAG,CAAC2d,SAAS,CAAC,CAACM,MAAM;gBACxB,GAAGzV;cACJ,CAAC;cACD,IAAIA,KAAK,CAAC6T,sBAAsB,IAAIrc,GAAG,CAAC2d,SAAS,CAAC,CAACle,IAAI,KAAK,SAAS,EAAE;gBACtE;gBACAO,GAAG,CAAC2d,SAAS,CAAC,CAACle,IAAI,GAAG+I,KAAK,CAAC6T,sBAAsB;cACnD;YACD;YACA,OAAOrc,GAAG;UACX,CAAC,EACD,CACC,GAAG6H,8CAAM,CACRhH,CAAC,CAAC+c,OAAO,CAACE,UAAU,CAAC/B,QAAQ,EAC5BE,IAAI,IAAK,CAACN,IAAI,EAAEI,QAAQ,EAAEG,UAAU,EAAEhC,QAAQ,CAAC+B,IAAI,CAACxb,EAAE,CACxD,CAAC,CAACoH,MAAM,CAAEqW,CAAC,IAAKA,CAAC,CAACze,IAAI,KAAK,SAAS,CAAC,EACrC,GAAGW,2CAAG,CAAC4a,CAAC,EAAEmD,sBAAsB,EAAGlC,IAAI,IAAKA,IAAI,CAACF,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC7D,GAAGlU,8CAAM,CACRhH,CAAC,CAAC+c,OAAO,CAACE,UAAU,CAAC/B,QAAQ,EAC5BE,IAAI,IAAK,CAACN,IAAI,EAAEI,QAAQ,EAAEG,UAAU,EAAEhC,QAAQ,CAAC+B,IAAI,CAACxb,EAAE,CACxD,CAAC,CAACoH,MAAM,CAAEqW,CAAC,IAAKA,CAAC,CAACze,IAAI,KAAK,SAAS,CAAC,CAEtC,CAAC,GACDkQ;QACL;MACD;IACD,CAAC,CAAC,CAAC;IACH,OAAOqL,CAAC;EACT,CAAC,CAAC;AAAA;AAEI,MAAM5Z,qBAAqB,GAChCqD,GAAW,IACXkX,IAAU,IACV9X,YAAY,CAAC8X,IAAI,EAAElX,GAAG,CAAC,CAACwE,IAAI,CAAE+R,CAAC,KAAM;EACpC,GAAGA,CAAC;EACJoD,IAAI,EAAE;AACP,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtPL;AACA;AACA;AACA;AACA;;AAE0C;AAED;AACL;AAQuB;AACX;AACG;AACA;AACqB;AAEjE,MAAMM,SAAS,GAAGA,CAAA,KAAY;EACpC;EACA5jB,YAAY,CAACzB,oDAAY,CAAC,CACzB,MAAM,EACNklB,2DAAe,CAAC1kB,QAAQ,CAAC,CAAC,CAAC8kB,eAAe,KAAK,GAAG,GAC/C;IAAEC,KAAK,EAAE,gBAAgB;IAAEC,iBAAiB,EAAE,CAAC;IAAEC,IAAI,EAAE;EAAE,CAAC,GAC1D;IAAEF,KAAK,EAAE;EAAiB,CAC9B,CAAC;AACF,CAAC;AAED,MAAMG,UAAU,GAAGA,CAClB/e,GAAa,EACbgf,YAAqB,KAC6B;EAClD,IAAIA,YAAY,EAAE;IACjB,OAAO;MACNC,EAAE,EAAE,MAAM;MACV1E,QAAQ,EAAEyE;IACX,CAAC;EACF;EACA,IAAIhf,GAAG,EAAE;IACR,IAAIA,GAAG,CAACP,IAAI,EAAE;MACb,OAAO;QACNwf,EAAE,EAAE,MAAM;QACV1E,QAAQ,EAAEva,GAAG,CAACP;MACf,CAAC;IACF;IACA,IAAIO,GAAG,CAACS,EAAE,EAAE;MACX,OAAO;QACNwe,EAAE,EAAE,IAAI;QACR1E,QAAQ,EAAEva,GAAG,CAACS;MACf,CAAC;IACF;EACD;EACA,OAAOkP,SAAS;AACjB,CAAC;AAED,MAAMuP,aAAa,GAAGA,CAAClf,GAAa,EAAEgf,YAAqB,KAAa;EACvE,IAAIA,YAAY,EAAE;IACjB,OAAQ,sBAAqBA,YAAa,YAAW;EACtD;EACA,IAAIhf,GAAG,EAAE;IACR,IAAIA,GAAG,CAACP,IAAI,EAAE;MACb,OAAQ,sBAAqBO,GAAG,CAACP,IAAK,YAAW;IAClD;IACA,IAAIO,GAAG,CAACS,EAAE,EAAE;MACX,OAAQ,oBAAmBT,GAAG,CAACS,EAAG,YAAW;IAC9C;EACD;EACA,OAAO,EAAE;AACV,CAAC;AAED,MAAM0e,aAAa,GAAGA,CAAA,KAAc;EACnC,MAAMC,SAAS,GAAGb,2DAAe,CAAC1kB,QAAQ,CAAC,CAAC,CAACwlB,OAAO,EAAE5e,EAAE;EACxD,IAAI2e,SAAS,EAAE;IACd,OAAQ,gBAAeA,SAAU,KAAI;EACtC;EACA,OAAO,EAAE;AACV,CAAC;AAED,MAAME,gBAAgB,GAAIC,OAAY,IAAkB;EACvD,IAAIA,OAAO,CAACC,MAAM,EAAE;IACnB;IACAD,OAAO,CAACC,MAAM,GAAGpf,2CAAG,CAACmf,OAAO,CAACC,MAAM,EAAGA,MAAM,KAAM;MACjD,GAAGA,MAAM;MACTC,OAAO,EAAED,MAAM,CAACC,OAAO,EAAEhf,EAAE,EAAEif,KAAK,CAAC,GAAG;IACvC,CAAC,CAAC,CAAC;EACJ;EACA,OAAOH,OAAO;AACf,CAAC;AAED,MAAMI,cAAc,GAAGA,CAAIC,GAAW,EAAEC,GAAoB,KAAgC;EAC3F,MAAM;IAAEC;EAAY,CAAC,GAAGvB,2DAAe,CAAC1kB,QAAQ,CAAC,CAAC;EAClD,MAAM;IAAEkmB;EAAU,CAAC,GAAGxb,2DAAe,CAAC1K,QAAQ,CAAC,CAAC;EAChDmmB,YAAY,CAACF,WAAW,CAAC;EACzB,IAAID,GAAG,CAACI,IAAI,CAACC,KAAK,EAAE;IACnB,IACC7T,4CAAI,CACH,CAAC,uBAAuB,EAAE,sBAAsB,CAAC,EAChD8T,IAAI,IAAKA,IAAI,KAAyBN,GAAG,CAAEI,IAAI,CAACC,KAAK,CAACE,MAAM,EAAE/Q,KAAK,EAAEgR,IACvE,CAAC,EACA;MACD,IAAIrV,qDAAa,EAAE;QAClBzG,2DAAe,CAACsC,QAAQ,CAAC;UAAEyZ,aAAa,EAAE;QAAM,CAAC,CAAC;MACnD,CAAC,MAAM;QACN7T,iDAAS,CAAC,CAAC;MACZ;IACD;IACArS,OAAO,CAACD,KAAK,CACZ,IAAIkV,KAAK,CACP,GAAsBwQ,GAAG,CAAEI,IAAI,CAACC,KAAK,CAACE,MAAM,EAAE/Q,KAAK,EAAE+Q,MAAO,KACxCP,GAAG,CAAEI,IAAI,CAACC,KAAK,CAACK,MAAM,EAAEnU,IAC5C,EACF,CACD,CAAC;EACF;EACA,IAAIyT,GAAG,CAACW,MAAM,EAAEjB,OAAO,EAAE;IACxB,MAAMkB,iBAAiB,GACtBZ,GAAG,CAACW,MAAM,CAACjB,OAAO,EAAEmB,OAAO,EAAEC,GAAG,GAAG,CAAC,CAAC,EAAE9f,CAAC,IACxCgf,GAAG,CAACW,MAAM,CAACjB,OAAO,EAAEC,MAAM,GAAG,CAAC,CAAC,EAAEoB,QAAQ,EAAED,GAAG,GAAG,CAAC,CAAC,EAAE9f,CAAC;IACvD,MAAMggB,QAAQ,GAAGvB,gBAAgB,CAACO,GAAG,CAACW,MAAM,CAACjB,OAAO,CAAC;IACrD,MAAMuB,GAAG,GAAGzC,6CAAK,CAACwC,QAAQ,CAACrB,MAAM,EAAE,KAAK,CAAC,EAAEsB,GAAG,IAAI,CAAC;IACnDrC,gEAAU,CAACoC,QAAQ,CAAC;IACpBtc,2DAAe,CAACsC,QAAQ,CAAC;MACxBkZ,SAAS,EAAEU,iBAAiB,IAAIV;IACjC,CAAC,CAAC;IAEF,MAAMgB,mBAAmB,GAAGvC,wEAAkB,CAACqB,GAAG,CAAC;IACnDtB,2DAAe,CAAC1X,QAAQ,CAAC;MACxBiZ,WAAW,EAAEkB,UAAU,CAAC,MAAMtC,SAAS,CAAC,CAAC,EAAEqC,mBAAmB,CAAC;MAC/DpC,eAAe,EAAEoC,mBAAmB;MACpCD,GAAG;MACH,GAAGD;IACJ,CAAC,CAAC;EACH;;EAEA;EACA;EACA,OAAOhB,GAAG,EAAEI,IAAI,EAAEC,KAAK,GAAIL,GAAG,CAACI,IAAI,GAA8BJ,GAAG,CAACI,IAAI,CAAE,GAAEL,GAAI,UAAS,CAAO;AAClG,CAAC;AACM,MAAM9kB,YAAY,GACvB2J,GAAW,IACZ,CACCmb,GAAW,EACXvY,IAAa,EACb2X,YAAqB,EACrBiC,MAAoB,KACG;EACvB,MAAM;IAAEC,aAAa;IAAEtD;EAAQ,CAAC,GAAGrZ,2DAAe,CAAC1K,QAAQ,CAAC,CAAC;EAC7D,MAAM;IAAE2lB,MAAM;IAAEH;EAAQ,CAAC,GAAGd,2DAAe,CAAC1kB,QAAQ,CAAC,CAAC;EACtD,OAAOqV,KAAK,CAAE,iBAAgB0Q,GAAI,SAAQ,EAAE;IAC3CqB,MAAM;IACNE,MAAM,EAAE,MAAM;IACdC,OAAO,EAAE;MACR,cAAc,EAAE;IACjB,CAAC;IACD/Z,IAAI,EAAEga,IAAI,CAACC,SAAS,CAAC;MACpBrB,IAAI,EAAE;QACL,CAAE,GAAEL,GAAI,SAAQ,GAAGvY;MACpB,CAAC;MACDmZ,MAAM,EAAE;QACPjB,OAAO,EAAE;UACRX,KAAK,EAAE,YAAY;UACnBY,MAAM,EAAEA,MAAM,GAAG,CAAC,CAAC,EAAEsB,GAAG,GACrB;YACAA,GAAG,EAAEtB,MAAM,GAAG,CAAC,CAAC,EAAEsB;UAClB,CAAC,GACDnR,SAAS;UACZ0P,OAAO,EAAEA,OAAO,IAAI,CAAC,CAAC;UACtBzB,OAAO,EAAEmB,UAAU,CAACnB,OAAO,EAAaoB,YAAY,CAAC;UACrDV,SAAS,EAAE;YACV7e,IAAI,EAAE6e,kDAAS;YACfnX,OAAO,EAAE+Z;UACV;QACD;MACD;IACD,CAAC;EACF,CAAC,CAAC,CAAC;EAAA,CACDjY,IAAI,CAAE4W,GAAG,IAAKA,GAAG,EAAE0B,IAAI,CAAC,CAAC,CAAC,CAC1BtY,IAAI,CAAE4W,GAA2B,IAAKF,cAAc,CAACC,GAAG,EAAEC,GAAG,CAAC,CAAC,CAC/D2B,KAAK,CAAEC,CAAC,IAAK;IACb3b,4DAAM,CAACrB,GAAG,CAAC,CAACgd,CAAC,CAAC;IACd,MAAMA,CAAC;EACR,CAAC,CAAC;AACJ,CAAC;AAEK,MAAM1mB,eAAe,GAC1B0J,GAAW,IACZ,CAAoBmb,GAAW,EAAEvY,IAAa,EAAE2X,YAAqB,KAAwB;EAC5F,MAAM;IAAEkC,aAAa;IAAEtD;EAAQ,CAAC,GAAGrZ,2DAAe,CAAC1K,QAAQ,CAAC,CAAC;EAC7D,OAAOqV,KAAK,CAAE,iBAAgB0Q,GAAI,SAAQ,EAAE;IAC3CuB,MAAM,EAAE,MAAM;IACdC,OAAO,EAAE;MACR,cAAc,EAAE;IACjB,CAAC;IACD/Z,IAAI,EAAG;AACV;AACA,+DAA+DiX,kDAAU,cAAa4C,aAAc,MAAK/B,aAAa,CAAC,CAAE,GAAED,aAAa,CACpItB,OAAO,EACPoB,YACD,CAAE;AACL,gBAAgB3X,IAAK;AACrB;EACE,CAAC,CAAC,CAAC;EAAA,CACD4B,IAAI,CAAE4W,GAAG,IAAKA,GAAG,EAAE0B,IAAI,CAAC,CAAC,CAAC,CAC1BtY,IAAI,CAAE4W,GAA2B,IAAKF,cAAc,CAACC,GAAG,EAAEC,GAAG,CAAC,CAAC,CAC/D2B,KAAK,CAAEC,CAAC,IAAK;IACb3b,4DAAM,CAACrB,GAAG,CAAC,CAACgd,CAAC,CAAC;IACd,MAAMA,CAAC;EACR,CAAC,CAAC;AACJ,CAAC;AAEK,MAAMC,SAAS,GAAG5mB,YAAY,CAACzB,oDAAY,CAAC;;;;;;;;;;;;;;;;;;ACvNnD;AACA;AACA;AACA;AACA;;AAEgC;AAGW;AAEpC,MAAMiT,aAAa,GAAGA,CAAA,KAC5B4C,KAAK,CAAC,8BAA8B,CAAC,CACnCjG,IAAI,CAAE0Y,QAAQ,IAAK;EACnB,IAAIA,QAAQ,CAACC,EAAE,EAAE;IAChB,OAAOD,QAAQ,CAACJ,IAAI,CAAC,CAAC;EACvB;EACA,MAAMlS,KAAK,CAACsS,QAAQ,CAACE,UAAU,CAAC;AACjC,CAAC,CAAC,CACD5Y,IAAI,CAACzP,IAAA,IAA2D;EAAA,IAA1D;IAAEsoB;EAAkD,CAAC,GAAAtoB,IAAA;EAC3D6G,mDAAW,CACTxG,QAAQ,CAAC,CAAC,CACVkI,OAAO,CAACggB,OAAO,CAACla,8CAAM,CAACia,UAAU,EAAE/Q,KAAA;IAAA,IAAC;MAAEqN;IAAK,CAAC,GAAArN,KAAA;IAAA,OAAKqN,IAAI,KAAK,OAAO,IAAIA,IAAI,KAAK,UAAU;EAAA,EAAC,CAAC;AAC7F,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;ACvBJ;AACA;AACA;AACA;AACA;;AAEuC;AAEK;AACO;AACe;AACf;AACW;AAEvD,MAAM7R,OAAO,GAAGA,CAAA,KACtBzR,oDAAY,CAACzB,oDAAY,CAAC,CAAqD,SAAS,EAAE;EACzFulB,KAAK,EAAE,mBAAmB;EAC1BsD,MAAM,EAAE;AACT,CAAC,CAAC,CAACjZ,IAAI,CAAE4W,GAAoB,IAAW;EACvC,IAAIA,GAAG,EAAE;IACR,MAAM;MAAEjC,OAAO;MAAEnY,QAAQ;MAAE0B;IAAQ,CAAC,GAAG6a,8EAAgB,CAACnC,GAAG,CAAC;IAC5DtB,2DAAe,CAAC1X,QAAQ,CAAC;MACxB8X,eAAe,EAAEsD,0EAAoB,CAACxc,QAAQ;IAC/C,CAAC,CAAC;IACFlB,2DAAe,CAACsC,QAAQ,CAAC;MACxByZ,aAAa,EAAE,IAAI;MACnB1C,OAAO;MACPnY,QAAQ;MACRyb,aAAa,EAAE/Z;IAChB,CAAC,CAAC;EACH;AACD,CAAC,CAAC;;;;;;;;;;;;;;;;;;AC/BH;AACA;AACA;AACA;AACA;;AAGoD;AACgB;AACT;AAEpD,MAAMqF,WAAW,GAAGA,CAAA,KAC1B0C,KAAK,CAACiI,4DAAoB,CAAC,CACzBlO,IAAI,CAAE0Y,QAAQ,IAAKA,QAAQ,CAACJ,IAAI,CAAC,CAAC,CAAC,CACnCtY,IAAI,CAAEtG,IAAsB,IAAK;EACjC0P,mEAAmB,CAACxL,QAAQ,CAAClE,IAAI,CAAC;AACnC,CAAC,CAAC,CACD0f,OAAO,CAAC,MAAM;EACdhQ,mEAAmB,CAACxL,QAAQ,CAAC;IAAEyb,MAAM,EAAE;EAAK,CAAC,CAAC;EAC9C,MAAMC,OAAO,GAAGtb,QAAQ,CAACub,cAAc,CAAC,SAAS,CAAC;EAClD,IAAID,OAAO,IAAIA,OAAO,YAAYE,eAAe,EAAE;IAClDF,OAAO,CAACG,IAAI,GAAGN,gEAAU,CAAC,CAAC;EAC5B;EACAnb,QAAQ,CAACqG,KAAK,GAAG6U,oEAAc,CAAC,CAAC;AAClC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;ACxBJ;AACA;AACA;AACA;AACA;;AAEuC;AACG;AACE;AACe;AAEpD,SAASS,MAAMA,CAAA,EAAkB;EACvC,OAAO9nB,oDAAY,CAACzB,oDAAY,CAAC,CAAC,YAAY,EAAE;IAC/CulB,KAAK,EAAE,mBAAmB;IAC1BiE,MAAM,EAAE;EACT,CAAC,CAAC,CACA5Z,IAAI,CAAC,MAAMiG,KAAK,CAAC,SAAS,EAAE;IAAE4T,QAAQ,EAAE;EAAS,CAAC,CAAC,CAAC,CACpD7Z,IAAI,CAAC,MAAM;IACX,MAAM8Z,eAAe,GAAG1Q,mEAAmB,CAACxY,QAAQ,CAAC,CAAC,CAACmpB,sBAAsB;IAC7ED,eAAe,GAAGJ,4CAAI,CAACI,eAAe,CAAC,GAAGtW,iDAAS,CAAC,CAAC;EACtD,CAAC,CAAC,CACD+U,KAAK,CAAErnB,KAAK,IAAK;IACjBC,OAAO,CAACD,KAAK,CAACA,KAAK,CAAC;EACrB,CAAC,CAAC;AACJ;;;;;;;;;;;;;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;;AAEuC;AAQK;AAErC,MAAMc,SAAS,GAAIib,GAAoB,IAC7Cpb,oDAAY,CAACzB,oDAAY,CAAC,CAAsC,WAAW,EAAE;EAC5EulB,KAAK,EAAE,gBAAgB;EACvB1I;AACD,CAAC,CAAC;AACI,MAAMhb,SAAS,GAAIuF,EAAU,IACnC3F,oDAAY,CAACzB,oDAAY,CAAC,CAAsC,WAAW,EAAE;EAC5EulB,KAAK,EAAE,gBAAgB;EACvBqE,MAAM,EAAE;IAAEC,EAAE,EAAE,QAAQ;IAAEziB;EAAG;AAC5B,CAAC,CAAC;AAEI,MAAMtF,SAAS,GAAGA,CAACsF,EAAU,EAAEhB,IAAY,KACjD3E,oDAAY,CAACzB,oDAAY,CAAC,CAAsC,WAAW,EAAE;EAC5EulB,KAAK,EAAE,gBAAgB;EACvBqE,MAAM,EAAE;IAAEC,EAAE,EAAE,QAAQ;IAAEziB,EAAE;IAAEhB;EAAK;AAClC,CAAC,CAAC;AAEI,MAAMzE,cAAc,GAAGA,CAACyF,EAAU,EAAE0iB,KAAsB,KAChEroB,oDAAY,CAACzB,oDAAY,CAAC,CAAsC,WAAW,EAAE;EAC5EulB,KAAK,EAAE,gBAAgB;EACvBqE,MAAM,EAAE,OAAOE,KAAK,KAAK,QAAQ,GAAG;IAAED,EAAE,EAAE,OAAO;IAAEC,KAAK;IAAE1iB;EAAG,CAAC,GAAG;IAAEyiB,EAAE,EAAE,OAAO;IAAEE,GAAG,EAAED,KAAK;IAAE1iB;EAAG;AAChG,CAAC,CAAC;;;;;;;;;;;;;;;;;ACrCH;AACA;AACA;AACA;AACA;;AAEoC;AAEpC,MAAM;EAAE6iB,EAAE;EAAEC;AAAQ,CAAC,GAAGF,mDAAQ,CAAC,CAAC;AAC3B,MAAM/E,SAAS,GAAI,uBAAsBiF,OAAO,CAAC9jB,IAAK,IAAG8jB,OAAO,CAACpc,OAAQ,KAAImc,EAAE,CAAC7jB,IAAK,GAAE;;;;;;;;;;;;;;;;ACT9F;AACA;AACA;AACA;AACA;;AAEO,SAASgN,SAASA,CAAA,EAAS;EACjChG,MAAM,CAACyG,QAAQ,CAACsW,MAAM,CAAE,GAAE/c,MAAM,CAACyG,QAAQ,CAACuW,MAAO,eAAc,CAAC;AACjE;AAEO,SAASd,IAAIA,CAACzV,QAAgB,EAAQ;EAC5CzG,MAAM,CAACyG,QAAQ,CAACsW,MAAM,CAACtW,QAAQ,CAAC;AACjC;;;;;;;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;;AAEwC;AAEiB;AAOL;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM2W,mBAAmB,CAAiC;EAGhE;AACD;AACA;AACA;EACC,OAAeC,aAAa,GAAG,IAAI;;EAEnC;AACD;AACA;AACA;EACSC,8BAA8B,GAAG;IACxCzW,KAAK,EAAE,EAAE;IACT0W,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACxBrf,IAAI,EAAEyd,gEAAU,CAAC;EAClB,CAAC;;EAED;AACD;AACA;AACA;EACS6B,8BAA8B,GAA4B;IACjEC,KAAK,EAAEN,qDAAYA;EACpB,CAAC;;EAED;AACD;AACA;AACA;EACSO,yBAAyB,GAAuB;IACvD,GAAG,IAAI,CAACJ,8BAA8B;IACtC,GAAG,IAAI,CAACE,8BAA8B;IACtCG,SAAS,EAAE,IAAI;IACfC,SAAS,EAAE;EACZ,CAAC;;EAED;AACD;AACA;AACA;EACStkB,SAAS,GAAG,IAAIukB,GAAG,CAAqB,CAAC;;EAEjD;AACD;AACA;AACA;EACSC,oBAAoB,GAAIL,KAAa,IAAmB;IAC/D,IAAI,CAAC,IAAI,CAACnkB,SAAS,CAACykB,GAAG,CAACN,KAAK,CAAC,EAAE;MAC/B,IAAI,CAACnkB,SAAS,CAAC0kB,GAAG,CACjBP,KAAK,EACLR,gDAAQ,CAAC,MAAM;QACd,IAAIgB,KAAK,CAACR,KAAK,CAAC,CAACS,IAAI,CAAC,CAAC,CAAC1b,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAClJ,SAAS,CAAC6kB,MAAM,CAACV,KAAK,CAAC;MAC7B,CAAC,EAAEL,mBAAmB,CAACC,aAAa,CACrC,CAAC;IACF;IACA,MAAMxJ,MAAM,GAAG,IAAI,CAACva,SAAS,CAAC8kB,GAAG,CAACX,KAAK,CAAC;IACxC,OAAO5J,MAAM,IAAIqJ,wCAAI;EACtB,CAAC;;EAED;AACD;AACA;AACA;AACA;EACQU,SAAS,GAAIS,MAA+B,IAAW;IAC7D,MAAMC,SAAS,GAAG;MACjB,GAAG,IAAI,CAACd,8BAA8B;MACtC,GAAGa;IACJ,CAAC;IACD,IAAI,CAACC,SAAS,CAACb,KAAK,EAAE;MACrB;IACD;IAEA,IAAI,CAACK,oBAAoB,CAACQ,SAAS,CAACb,KAAK,CAAC,CAAC,CAAC;EAC7C,CAAC;;EAED;AACD;AACA;AACA;AACA;EACQE,SAAS,GAAIU,MAA+B,IAAW;IAC7D,MAAMC,SAAS,GAAG;MACjB,GAAG,IAAI,CAAChB,8BAA8B;MACtC,GAAGe;IACJ,CAAC;IAED,MAAME,CAAC,GAAG,IAAIC,YAAY,CAACF,SAAS,CAACzX,KAAK,EAAE;MAC3CjG,IAAI,EAAE0d,SAAS,CAAC9W,OAAO;MACvB+V,OAAO,EAAEe,SAAS,CAACf,OAAO;MAC1Brf,IAAI,EAAEogB,SAAS,CAACpgB,IAAI;MACpBuR,GAAG,EAAE6O,SAAS,EAAE7O;IACjB,CAAC,CAAC;IAEF,IAAI6O,SAAS,CAACG,OAAO,EAAE;MACtBF,CAAC,CAACrL,gBAAgB,CAAC,OAAO,EAAEoL,SAAS,CAACG,OAAO,CAAC;IAC/C;EACD,CAAC;;EAED;AACD;AACA;AACA;AACA;EACQ1F,MAAM,GAAIsF,MAA0B,IAAW;IACrD,MAAMC,SAAS,GAAG;MACjB,GAAG,IAAI,CAACZ,yBAAyB;MACjC,GAAGW;IACJ,CAAC;IAED,IAAIC,SAAS,EAAEX,SAAS,EAAE;MACzB,IAAI,CAACA,SAAS,CAACW,SAAS,CAAC;IAC1B;IAEA,IAAIA,SAAS,EAAEV,SAAS,EAAE;MACzB,IAAI,CAACA,SAAS,CAACU,SAAS,CAAC;IAC1B;EACD,CAAC;;EAED;AACD;AACA;AACA;AACA;EACQI,cAAc,GAAIL,MAA4B,IAAW;IAC/DA,MAAM,CAACM,OAAO,CAAEC,IAAI,IAAK,IAAI,CAAC7F,MAAM,CAAC6F,IAAI,CAAC,CAAC;EAC5C,CAAC;;EAED;AACD;AACA;EACC,OAAcC,WAAWA,CAAA,EAAwB;IAChD,IAAI,CAACzB,mBAAmB,CAAC0B,QAAQ,EAAE;MAClC1B,mBAAmB,CAAC0B,QAAQ,GAAG,IAAI1B,mBAAmB,CAAC,CAAC;IACzD;IAEA,OAAOA,mBAAmB,CAAC0B,QAAQ;EACpC;AACD;AAEO,MAAMnqB,sBAAsB,GAAGA,CAAA,KAA4ByoB,mBAAmB,CAACyB,WAAW,CAAC,CAAC;;;;;;;;;;;;;;;;;AC9KnG;AACA;AACA;AACA;AACA;AAC2D;AAEpD,MAAMra,6BAAiC,GAAGA,CAAA,KAAoB;EACpEd,gDAAS,CAAC,MAAM;IACf,IAAI,EAAE,cAAc,IAAI1D,MAAM,CAAC,EAAE;MAChC;MACArM,OAAO,CAACorB,IAAI,CAAC,qDAAqD,CAAC;IACpE,CAAC,MAAM;MACNP,YAAY,CAACQ,iBAAiB,CAAC,CAAC;IACjC;EACD,CAAC,EAAE,EAAE,CAAC;EAEN,oBAAOvsB,0DAAA,CAAAA,uDAAA,MAAI,CAAC;AACb,CAAC;;;;;;;;;;;;;;;;AClBD;AACA;AACA;AACA;AACA;;AAGsC;AAE/B,MAAM4M,MAAM,GACjBvF,KAAa,IACd,CAACpG,KAAY,EAAEwrB,IAAgB,KAAa;EAC3C,MAAMC,QAAQ,GAAG5d,+CAAW,CAACnO,QAAQ,CAAC,CAAC;EACvC,MAAMgsB,OAAO,GAAGD,QAAQ,CAACE,OAAO,CAACvlB,KAAK,CAAC,EAAEwlB,gBAAgB,CAAC5rB,KAAK,EAAE;IAAE,GAAGwrB;EAAK,CAAC,CAAC;EAC7E,IAAIE,OAAO,EAAE;IACZzrB,OAAO,CAAC2M,IAAI,CAAC,iBAAiB,EAAE8e,OAAO,CAAC;EACzC;EACA,OAAOA,OAAO;AACf,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AClBF;AACA;AACA;AACA;AACA;;AAQyB;AACO;AACC;AAG6B;AAOvD,MAAM7d,WAAW,GAAGqe,+CAAM,CAAgB,CAAC,CAAE5B,GAAG,KAAM;EAC5DqB,OAAO,EAAE;IACR,CAACzsB,oDAAY,GAAG,IAAI8sB,gDAAG,CACtB,IAAIH,0DAAa,CAAC;MACjBM,SAAS,EAAEF,+DAAkB;MAC7BG,WAAW,EAAEL,+DAAkB;MAC/BlkB,YAAY,EAAEikB,gEAAmB;MACjCO,GAAG,EAAEnP,wDAAgB;MACrBoP,OAAO,EAAE,GAAG;MACZC,cAAc,EAAE;IACjB,CAAC,CACF;EACD,CAAC;EACDvd,UAAU,EAAGf,IAAI,IAAW;IAC3Bqc,GAAG,CAAE5jB,CAAC,KAAM;MACXilB,OAAO,EAAEzrB,8CAAM,CACd+N,IAAI,EACJ,CAACpI,GAAG,EAAEyE,GAAG,KAAK;QACb,IAAIA,GAAG,CAACkiB,SAAS,EAAE;UAClB;UACA9lB,CAAC,CAACilB,OAAO,CAACrhB,GAAG,CAAChF,IAAI,CAAC,GAAG,IAAI0mB,gDAAG,CAC5B,IAAIH,0DAAa,CAAC;YACjBM,SAAS,EAAEF,+DAAkB;YAC7BG,WAAW,EAAEL,+DAAkB;YAC/BlkB,YAAY,EAAEikB,gEAAmB;YACjCO,GAAG,EAAE/hB,GAAG,CAACkiB,SAAS;YAClBF,OAAO,EAAEhiB,GAAG,CAAC0C,OAAO;YACpBuf,cAAc,EAAE;UACjB,CAAC,CACF,CAAC;QACF;QACA,OAAO1mB,GAAG;MACX,CAAC,EACDa,CAAC,CAACilB,OACH;IACD,CAAC,CAAC,CAAC;EACJ;AACD,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AC7DH;AACA;AACA;AACA;AACA;AACyE;AAShC;AACF;AAES;AACH;AACmB;AACrB;AAE3C,MAAMmB,iBAAiB,GAAGD,6DAAM,CAACJ,sEAAS,CAAC,CAAAM,UAAA;EAAArJ,WAAA;EAAAsJ,WAAA;AAAA,mGACV3tB,IAAA;EAAA,IAAC;IAAEoW;EAAM,CAAC,GAAApW,IAAA;EAAA,OAAaoW,KAAK,CAACC,OAAO,CAACuX,KAAK,CAACrX,OAAO;AAAA,GAEpEgB,KAAA;EAAA,IAAC;IAAEnB,KAAK;IAAE7C;EAAK,CAAC,GAAAgE,KAAA;EAAA,OAAanB,KAAK,CAACC,OAAO,CAAC9C,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,CAACgD,OAAO;AAAA,GAG3EkB,KAAA;EAAA,IAAC;IAAErB,KAAK;IAAE7C;EAAK,CAAC,GAAAkE,KAAA;EAAA,OAAarB,KAAK,CAACC,OAAO,CAAC9C,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,CAACiD,KAAK;AAAA,EAEzF;AAMD,MAAMqX,uBAAuB,GAAGC,KAAA,IAA4D;EAAA,IAA3D;IAAE7iB;EAAyB,CAAC,GAAA6iB,KAAA;EAC5D,MAAMC,OAAO,GAAGlnB,uDAAW,CAAEQ,CAAC,IAAKA,CAAC,CAAC2mB,KAAK,CAACnM,MAAM,CAAC;EAClD,MAAM;IAAEJ,MAAM;IAAEwM;EAAa,CAAC,GAAG7M,6DAAc,CAAC,CAAC;EAEjD,MAAM8M,UAAU,GAAGvnB,8CAAO,CACzB,MAAMonB,OAAO,CAAClb,IAAI,CAAEsb,CAAC,IAAKA,CAAC,CAACtlB,KAAK,KAAK4Y,MAAM,CAAC,IAAIsM,OAAO,CAAC,CAAC,CAAC,EAC3D,CAACtM,MAAM,EAAEsM,OAAO,CACjB,CAAC;EAED,MAAM,CAACxa,IAAI,EAAEY,OAAO,CAAC,GAAG1B,+CAAQ,CAAC,KAAK,CAAC;EAEvC,MAAM2b,aAAa,GAAGznB,8CAAO,CAC5B,MACConB,OAAO,CAACnnB,GAAG,CACVynB,KAAA;IAAA,IAAC;MAAEpnB,EAAE;MAAEmE,KAAK;MAAED,IAAI;MAAEtC;IAAM,CAAC,GAAAwlB,KAAA;IAAA,OAAoB;MAC9CpnB,EAAE;MACFmE,KAAK;MACLD,IAAI;MACJugB,OAAO,EAAEA,CAAA,KAAY;QACpBuC,YAAY,CAACplB,KAAK,CAAC;QACnBxH,2DAAW,CAAC;UAAEwH,KAAK,EAAE0B,qDAAa;UAAEyH,IAAI,EAAG,IAAGnJ,KAAM;QAAE,CAAC,CAAC;MACzD;IACD,CAAC;EAAA,CACF,CAAC,EACF,CAACklB,OAAO,EAAEE,YAAY,CACvB,CAAC;EAEDtd,gDAAS,CAAC,MAAM;IACf,IAAI1F,GAAG,KAAKV,qDAAa,KAAK,CAAC2jB,UAAU,IAAIA,UAAU,EAAEjjB,GAAG,KAAKA,GAAG,CAAC,EAAE;MACtEgjB,YAAY,CAAC,CAACF,OAAO,CAAClb,IAAI,CAAEsb,CAAC,IAAKA,CAAC,CAACljB,GAAG,KAAKA,GAAG,CAAC,IAAI8iB,OAAO,CAAC,CAAC,CAAC,GAAGllB,KAAK,CAAC;IACxE;EACD,CAAC,EAAE,CAACoC,GAAG,EAAEijB,UAAU,EAAEH,OAAO,EAAEE,YAAY,CAAC,CAAC;EAE5C,MAAMK,YAAY,GAAG9tB,kDAAW,CAAC,MAAM;IACtC2T,OAAO,CAAC,IAAI,CAAC;EACd,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMoa,aAAa,GAAG/tB,kDAAW,CAAC,MAAM;IACvC2T,OAAO,CAAC,KAAK,CAAC;EACf,CAAC,EAAE,EAAE,CAAC;EAEN,IAAI,CAAC+Z,UAAU,EAAE;IAChB,OAAO,IAAI;EACZ;;EAEA;EACA,oBACCxuB,0DAAA,CAAC6tB,qEAAQ;IAACiB,KAAK,EAAEJ,aAAc;IAACK,MAAM,EAAEH,YAAa;IAACra,OAAO,EAAEsa;EAAc,gBAC5E7uB,0DAAA,CAAC+tB,iBAAiB;IACjB,eAAY,sBAAsB;IAClCiB,WAAW,EAAC,YAAY;IACxBhnB,MAAM,EAAC,UAAU;IACjBinB,KAAK,EAAC,KAAK;IACXC,QAAQ,EAAC,UAAU;IACnBC,cAAc,EAAC,QAAQ;IACvBC,aAAa,EAAC,eAAe;IAC7BC,YAAY,EAAC;EAAM,gBAEnBrvB,0DAAA,CAAC2tB,gEAAG;IAAC2B,kBAAkB;IAACF,aAAa,EAAC,OAAO;IAACG,OAAO,EAAE;MAAE3Q,IAAI,EAAE;IAAQ;EAAE,gBACxE5e,0DAAA,CAACkT,iEAAI;IAACtI,IAAI,EAAC,OAAO;IAACqf,KAAK,EAAEpW,IAAI,GAAG,SAAS,GAAG;EAAO,GAClD2a,UAAU,EAAE9iB,KACR,CACF,CAAC,eACN1L,0DAAA,CAAC4tB,iEAAI;IACJhjB,IAAI,EAAC,OAAO;IACZa,IAAI,EAAEoI,IAAI,GAAG,kBAAkB,GAAG,oBAAqB;IACvDoW,KAAK,EAAEpW,IAAI,GAAG,SAAS,GAAG,MAAO;IACjC9L,KAAK,EAAE;MAAEynB,SAAS,EAAE;IAAS;EAAE,CAC/B,CACiB,CACV,CAAC;AAEb,CAAC;AAED,MAAMC,kBAAkB,gBAAGzvB,iDAAU,CAACmuB,uBAAuB,CAAC;AAEvD,MAAMuB,cAAc,GAAGA,CAAA,KAAyB;EACtD,MAAMC,WAAW,GAAGnuB,+DAAe,CAAC,CAAC;EACrC,oBAAOxB,0DAAA,CAACyvB,kBAAkB;IAAClkB,GAAG,EAAEokB,WAAW,EAAEpkB;EAAI,CAAE,CAAC;AACrD,CAAC;;;;;;;;;;;;;;;;;;ACnHD;AACA;AACA;AACA;AACA;AACgD;AAEH;AACE;AAExC,MAAMpJ,SAAS,GAAGA,CAACytB,KAAuB,EAAE7N,MAAc,KAAW;EAC3EL,yDAAc,CAAC/T,QAAQ,CAAC;IAAEiiB,KAAK;IAAE7N,MAAM;IAAE8N,cAAc,EAAE;EAAM,CAAC,CAAC;EACjEluB,2DAAW,CAAC;IAAEwH,KAAK,EAAE0B,qDAAa;IAAEyH,IAAI,EAAG,IAAGyP,MAAO;EAAE,CAAC,CAAC;AAC1D,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbD;AACA;AACA;AACA;AACA;;AAEoD;AAUX;AACZ;AAC8B;AAEX;AAEkB;AACJ;AACnB;AACN;AAErC,MAAMoO,QAAQ,GAAGA,CAAA,KAChBzO,6DAAc,CAAE/Z,CAAC,IAAK,CAACA,CAAC,CAACioB,KAAK,EAAEjoB,CAAC,CAACyoB,WAAW,CAAC,CAAC;AAEhD,MAAMC,gBAAgB,GAAGA,CAAA,KAGpB3O,6DAAc,CAAE/Z,CAAC,IAAK,CAACA,CAAC,CAACkoB,cAAc,EAAEloB,CAAC,CAAC2oB,iBAAiB,CAAC,CAAC;AAEnE,MAAMC,eAAe,GAAIC,SAA0B,IAAoC;EACtF,IAAIA,SAAS,KAAKpS,uDAAe,CAACqS,OAAO,EAAE;IAC1C,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC;EACpC;EACA,IAAID,SAAS,KAAKpS,uDAAe,CAACsS,KAAK,EAAE;IACxC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC;EAChC;EACA,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AAChB,CAAC;AAOD,MAAMC,aAAa,GAAGrwB,IAAA,IAGuB;EAAA,IAHtB;IACtBoL,KAAK;IACL8kB,SAAS,GAAGpS,uDAAe,CAACwS;EACT,CAAC,GAAAtwB,IAAA;EACpB,MAAMkG,CAAC,GAAG0pB,iDAAI,CAAC,CAAC;EAChB,MAAM,CAACN,KAAK,EAAEQ,WAAW,CAAC,GAAGD,QAAQ,CAAC,CAAC;EACvC,MAAM,GAAGU,WAAW,CAAC,GAAGR,gBAAgB,CAAC,CAAC;EAE1C,MAAMS,UAAU,GAAGhwB,kDAAW,CAAC,MAAM;IACpCsvB,WAAW,CAAC,EAAE,CAAC;IACfS,WAAW,CAAC,KAAK,CAAC;EACnB,CAAC,EAAE,CAACT,WAAW,EAAES,WAAW,CAAC,CAAC;EAE9B,MAAME,aAAa,GAAG9pB,8CAAO,CAAoB,MAAM;IACtD,IAAIupB,SAAS,KAAKpS,uDAAe,CAACwS,MAAM,EAAE;MACzC,oBAAO5wB,0DAAA,CAAAA,uDAAA,MAAI,CAAC;IACb;IAEA,MAAM,CAACyL,IAAI,EAAEwe,KAAK,CAAC,GAAGsG,eAAe,CAACC,SAAS,CAAC;IAChD,oBACCxwB,0DAAA,CAACiT,oEAAO;MAAC+Q,KAAK,EAAC;IAAO,gBACrBhkB,0DAAA,CAAC4tB,iEAAI;MAACniB,IAAI,EAAEA,IAAK;MAACb,IAAI,EAAC,OAAO;MAACqf,KAAK,EAAEA;IAAM,CAAE,CACtC,CAAC;EAEZ,CAAC,EAAE,CAACuG,SAAS,CAAC,CAAC;EAEf,MAAMQ,SAAS,GAAG/pB,8CAAO,CACxB,MACCC,2CAAG,CAAC0oB,KAAK,EAAE,CAACqB,SAAS,EAAE/N,KAAK,kBAC3BljB,0DAAA,CAACiT,oEAAO;IAAC3L,GAAG,EAAG,GAAE4b,KAAM,GAAE+N,SAAS,CAACvlB,KAAM,EAAE;IAAC8I,GAAG,EAAC;EAAY,gBAC3DxU,0DAAA,CAAC+vB,iEAAI,EAAAmB,QAAA,KAAKD,SAAS;IAAEE,UAAU,EAAE;EAAQ,EAAE,CACnC,CACT,CAAC,EACH,CAACvB,KAAK,CACP,CAAC;EAED,oBACC5vB,0DAAA,CAAAA,uDAAA,qBACCA,0DAAA,CAAC0tB,sEAAS;IACTsB,WAAW,EAAC,YAAY;IACxBI,aAAa,EAAC,YAAY;IAC1BH,KAAK,EAAC,MAAM;IACZkC,UAAU,EAAE,OAAQ;IACpBnpB,MAAM,EAAC,KAAK;IACZopB,SAAS,EAAC,MAAM;IAChBC,SAAS,EAAC,QAAQ;IAClBtpB,KAAK,EAAE;MAAEE,QAAQ,EAAE;IAAS,CAAE;IAC9BsnB,OAAO,EAAE;MAAE+B,UAAU,EAAE,OAAO;MAAEC,QAAQ,EAAE;IAAS;EAAE,gBAErDvxB,0DAAA,CAAC0tB,sEAAS;IAACuB,KAAK,EAAC,KAAK;IAACD,WAAW,EAAC,YAAY;IAACwC,IAAI,EAAC,MAAM;IAACpC,aAAa,EAAC;EAAY,GACpF2B,aAAa,eACd/wB,0DAAA,CAACkT,iEAAI;IAAC+W,KAAK,EAAC;EAAW,GAAEve,KAAY,CAAC,EACrCslB,SACS,CAAC,EACXpB,KAAK,EAAEpZ,MAAM,GAAG,CAAC,iBACjBxW,0DAAA,CAAC0tB,sEAAS;IAACuB,KAAK,EAAC,KAAK;IAACG,aAAa,EAAC,YAAY;IAACD,cAAc,EAAC;EAAY,gBAC5EnvB,0DAAA,CAAC8vB,mEAAM;IACNpkB,KAAK,EAAElF,CAAC,CAAC,0BAA0B,EAAE,cAAc,CAAE;IACrDiF,IAAI,EAAC,cAAc;IACnBwe,KAAK,EAAC,SAAS;IACfgF,KAAK,EAAC,MAAM;IACZ/J,IAAI,EAAC,OAAO;IACZ8G,OAAO,EAAE8E;EAAW,CACpB,CACS,CAEF,CAAC,eACZ9wB,0DAAA,CAACgwB,oEAAO;IAAC/F,KAAK,EAAC;EAAO,CAAE,CACvB,CAAC;AAEL,CAAC;AAEM,MAAMlf,aAAa,GAAGA,CAAA,KAAyB;EACrD,MAAM0mB,WAAW,GAAGtqB,uDAAW,CAAEQ,CAAC,IAAKA,CAAC,CAAC2mB,KAAK,CAACnM,MAAM,CAAC;EACtD,MAAM;IAAEJ;EAAO,CAAC,GAAGL,6DAAc,CAAC,CAAC;EACnC,MAAM2M,OAAO,GAAGlnB,uDAAW,CAAEQ,CAAC,IAAKA,CAAC,CAAC2mB,KAAK,CAACnM,MAAM,CAAC;EAElD,MAAMqM,UAAU,GAAGvnB,8CAAO,CAAC,MAAMonB,OAAO,CAAClb,IAAI,CAAEsb,CAAC,IAAKA,CAAC,CAACtlB,KAAK,KAAK4Y,MAAM,CAAC,EAAE,CAACA,MAAM,EAAEsM,OAAO,CAAC,CAAC;EAE5F,MAAMxM,MAAM,GAAG5a,8CAAO,CACrB,MACCC,2CAAG,CAACuqB,WAAW,EAAGC,IAAI,iBACrB1xB,0DAAA,CAACsR,mDAAK;IAAChK,GAAG,EAAG,IAAGoqB,IAAI,CAACvoB,KAAM,EAAE;IAACmJ,IAAI,EAAG,IAAGzH,qDAAc,IAAG6mB,IAAI,CAACvoB,KAAM;EAAE,gBACrEnJ,0DAAA,CAACK,sEAAkB;IAACE,GAAG,EAAEmxB,IAAI,CAACnmB;EAAI,gBACjCvL,0DAAA,CAAC0xB,IAAI,CAAClmB,SAAS;IACd2kB,QAAQ,EAAEA,QAAS;IACnBQ,aAAa,EAAEA,aAAc;IAC7BN,gBAAgB,EAAEA;EAAiB,CACnC,CACkB,CACd,CACP,CAAC,EACH,CAACoB,WAAW,CACb,CAAC;EAED,oBACCzxB,0DAAA,CAACuR,oDAAM,QACLsQ,MAAM,eACP7hB,0DAAA,CAACiwB,sDAAQ;IACR0B,KAAK;IACLC,MAAM;IACNC,IAAI,EAAG,IAAGhnB,qDAAc,EAAE;IAC1BinB,EAAE,EAAG,IAAGjnB,qDAAc,IAAG2jB,UAAU,GAAGA,UAAU,CAACrlB,KAAK,GAAGsoB,WAAW,CAAC,CAAC,CAAC,EAAEtoB,KAAM;EAAE,CACjF,CACM,CAAC;AAEX,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5JD;AACA;AACA;AACA;AACA;;AAEiF;AASxC;AACgB;AACX;AACP;AAEY;AACH;AAEuB;AACN;AACtB;AACN;AAErC,MAAMipB,kBAAkB,GAAGtE,6DAAM,CAACmE,wEAAU,CAAC,CAAAjE,UAAA;EAAArJ,WAAA;EAAAsJ,WAAA;AAAA,sEAEzC3tB,IAAA;EAAA,IAAC;IAAEoW,KAAK;IAAEO;EAAS,CAAC,GAAA3W,IAAA;EAAA,OACrB2W,QAAQ,GAAGP,KAAK,CAACC,OAAO,CAAC0B,OAAO,CAACpB,QAAQ,GAAGP,KAAK,CAACC,OAAO,CAAC0B,OAAO,CAACxB,OAAO;AAAA,EAK3E;AAED,MAAMwb,eAAe,GAAGvE,6DAAM,CAACkE,uEAAS,CAAC,CAAAhE,UAAA;EAAArJ,WAAA;EAAAsJ,WAAA;AAAA,8DAIzBpW,KAAA;EAAA,IAAC;IAAEnB,KAAK;IAAEO;EAAS,CAAC,GAAAY,KAAA;EAAA,OACjCZ,QAAQ,GAAG,OAAO,GAAGP,KAAK,CAACC,OAAO,CAAC2b,KAAK,CAACxb,KAAK;AAAA,EAEhD;AAED,MAAMyb,eAAe,GAAGzE,6DAAM,CAACJ,uEAAS,CAAC,CAAAM,UAAA;EAAArJ,WAAA;EAAAsJ,WAAA;AAAA,yFAMxC;AAIM,MAAMuE,SAAS,GAAGA,CAAA,KAAyB;EACjD,MAAMC,QAAQ,GAAGV,6CAAM,CAAmB,IAAI,CAAC;EAC/C,MAAMvrB,CAAC,GAAG0pB,iDAAI,CAAC,CAAC;EAChB,MAAM,CAACwC,iBAAiB,EAAEC,oBAAoB,CAAC,GAAGtwB,6EAAe,CAChEob,gEAAwB,EACxB,EACD,CAAC;EACD,MAAM,CAACmV,UAAU,EAAEC,aAAa,CAAC,GAAG9f,+CAAQ,CAAS,EAAE,CAAC;EACxD,MAAMJ,OAAO,GAAGF,6DAAU,CAAC,CAAC;EAC5B,MAAM;IACL2d,WAAW;IACXrO,MAAM,EAAE+Q,wBAAwB;IAChClD,KAAK;IACLC,cAAc;IACdS,iBAAiB;IACjByC;EACD,CAAC,GAAGrR,6DAAc,CAAC,CAAC;EACpB,MAAM2M,OAAO,GAAGlnB,uDAAW,CAAEQ,CAAC,IAAKA,CAAC,CAAC2mB,KAAK,CAACnM,MAAM,CAAC;EAClD,MAAM6Q,WAAW,GAAG/rB,8CAAO,CAC1B,MACConB,OAAO,CAAClb,IAAI,CAAC4E,KAAA;IAAA,IAAC;MAAE5O;IAAM,CAAC,GAAA4O,KAAA;IAAA,OAAK5O,KAAK,KAAK2pB,wBAAwB;EAAA,EAAC,EAAEpnB,KAAK,IACtEonB,wBAAwB,EACzB,CAACA,wBAAwB,EAAEzE,OAAO,CACnC,CAAC;EAED,MAAM,CAAC4E,QAAQ,EAAEC,WAAW,CAAC,GAAGngB,+CAAQ,CAAC,KAAK,CAAC;EAE/C,MAAM,CAACogB,OAAO,EAAEC,UAAU,CAAC,GAAGrgB,+CAAQ,CAAiB,EAAE,CAAC;EAE1D,MAAM,CAACsgB,aAAa,EAAEC,gBAAgB,CAAC,GAAGvgB,+CAAQ,CAAC,KAAK,CAAC;EAEzD,MAAM,CAACwgB,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGzgB,+CAAQ,CAAc6c,KAAK,CAAC;EAE5E,MAAM6D,SAAS,GAAGxsB,8CAAO,CACxB,MACCssB,gBAAgB,CAAC/c,MAAM,GAAG,CAAC,IAC1Bic,QAAQ,CAAC1O,OAAO,EAAEjU,KAAK,IAAI2iB,QAAQ,CAAC1O,OAAO,EAAEjU,KAAK,EAAE0G,MAAM,GAAG,CAAE,EACjE,CAAC+c,gBAAgB,CAAC/c,MAAM,CACzB,CAAC;EACD,MAAMkd,WAAW,GAAG5yB,kDAAW,CAAC,MAAY;IAC3C,IAAI2xB,QAAQ,CAAC1O,OAAO,EAAE;MACrB0O,QAAQ,CAAC1O,OAAO,CAACjU,KAAK,GAAG,EAAE;MAC3B2iB,QAAQ,CAAC1O,OAAO,EAAE/M,KAAK,CAAC,CAAC;IAC1B;IACAkc,WAAW,CAAC,KAAK,CAAC;IAClBM,mBAAmB,CAAC,EAAE,CAAC;IACvBlD,iBAAiB,CAAC,KAAK,CAAC;IACxBF,WAAW,CAAC,EAAE,CAAC;IACfyC,aAAa,CAAC,EAAE,CAAC;EAClB,CAAC,EAAE,CAACvC,iBAAiB,EAAEF,WAAW,CAAC,CAAC;EAEpC,MAAMuD,QAAQ,GAAG7yB,kDAAW,CAAC,MAAM;IAClCsvB,WAAW,CAAEwD,YAAY,IAAK;MAC7B,MAAMC,GAAG,GAAGpB,QAAQ,EAAE1O,OAAO;MAC7B,IAAI8P,GAAG,EAAE;QACRA,GAAG,CAAC/jB,KAAK,GAAG,EAAE;MACf;MACA,IAAI8iB,UAAU,CAACpc,MAAM,GAAG,CAAC,EAAE;QAC1B,MAAMsd,aAAsC,GAAG,CAC9C,GAAGP,gBAAgB,EACnB,GAAGrsB,2CAAG,CACL0rB,UAAU,CAACpM,KAAK,CAAC,GAAG,CAAC,EACrB,CAAC9a,KAAK,EAAEnE,EAAE,MAAiB;UAC1BA,EAAE,EAAG,GAAEA,EAAG,EAAC;UACXmE,KAAK;UACLqoB,SAAS,EAAE;QACZ,CAAC,CACF,CAAC,CACD;QACDP,mBAAmB,CAACM,aAAa,CAAC;QAClCjB,aAAa,CAAC,EAAE,CAAC;QACjB,OAAO1xB,8CAAM,CACZ2yB,aAAa,EACb,CAAChtB,GAAG,EAAEktB,YAAY,KAAK;UACtB,IACC,CAAC7B,4CAAI,CACJyB,YAAY,EACXK,gBAAgB,IAAKA,gBAAgB,CAACvoB,KAAK,KAAKsoB,YAAY,CAACtoB,KAC/D,CAAC,EACA;YACD5E,GAAG,CAACub,IAAI,CAAC2R,YAAY,CAAC;UACvB;UACA,OAAOltB,GAAG;QACX,CAAC,EACD6H,8CAAM,CAACilB,YAAY,EAAGK,gBAAgB,IACrC9B,4CAAI,CACHoB,gBAAgB,EACfW,eAAe,IAAKA,eAAe,CAACxoB,KAAK,KAAKuoB,gBAAgB,CAACvoB,KACjE,CACD,CACD,CAAC;MACF;MAEAmnB,aAAa,CAAC,EAAE,CAAC;MAEjB,OAAO1xB,8CAAM,CACZoyB,gBAAgB,EAChB,CAACzsB,GAAG,EAAEotB,eAAe,KAAK;QACzB,IACC,CAAC/B,4CAAI,CACJyB,YAAY,EACXK,gBAAgB,IAAKA,gBAAgB,CAACvoB,KAAK,KAAKwoB,eAAe,CAACxoB,KAClE,CAAC,EACA;UACD5E,GAAG,CAACub,IAAI,CAAC6R,eAAe,CAAC;QAC1B;QACA,OAAOptB,GAAG;MACX,CAAC,EAED6H,8CAAM,CAACilB,YAAY,EAAGK,gBAA2B,IAChD9B,4CAAI,CACHoB,gBAAgB,EACfW,eAAe,IAAKA,eAAe,CAACxoB,KAAK,KAAKuoB,gBAAgB,CAACvoB,KACjE,CACD,CACD,CAAC;IACF,CAAC,CAAC;IACF;IACAiH,OAAO,CAAC0P,IAAI,CAAE,IAAGxX,qDAAc,IAAGioB,wBAAyB,EAAC,CAAC;EAC9D,CAAC,EAAE,CAAC1C,WAAW,EAAEzd,OAAO,EAAEmgB,wBAAwB,EAAEF,UAAU,EAAEW,gBAAgB,CAAC,CAAC;EAElF,MAAMY,cAAc,GAAGltB,8CAAO,CAC7B,MACC0H,8CAAM,CAAC+jB,iBAAiB,EAAG0B,CAAC,IAAKA,CAAC,CAAC7oB,GAAG,KAAKunB,wBAAwB,CAAC,CAClEuB,OAAO,CAAC,CAAC,CACTntB,GAAG,CACF6b,IAAI,KAAoB;IACxB,GAAGA,IAAI;IACP9L,QAAQ,EAAE4Y,cAAc;IACxB7D,OAAO,EAAEA,CAAA,KAAY;MACpB,MAAMgI,YAAuB,GAAG;QAAE,GAAGjR,IAAI;QAAEgR,SAAS,EAAE,KAAK;QAAE/H,OAAO,EAAEvV;MAAU,CAAC;MACjF+c,mBAAmB,CAAE5Z,SAAS,IAAK,CAAC,GAAGA,SAAS,EAAEoa,YAAY,CAAC,CAAC;IACjE;EACD,CAAC,CACF,CAAC,EACH,CAACtB,iBAAiB,EAAEI,wBAAwB,EAAEjD,cAAc,CAC7D,CAAC;EAED,MAAMyE,aAAa,GAAGxzB,kDAAW,CAChC,CAACyzB,WAAmB,EAAEC,UAAuB,KAAW;IACvD,IAAID,WAAW,CAAC/d,MAAM,GAAG,CAAC,EAAE;MAC3B4c,UAAU,CACTe,cAAc,CACZxlB,MAAM,CACL8lB,UAAU,IACVF,WAAW,IACXE,UAAU,CAAC/oB,KAAK,CAACsV,QAAQ,CAACuT,WAAW,CAAC,IACtC,CAACpC,4CAAI,CAACqC,UAAU,EAAGvD,SAAS,IAAKA,SAAS,CAACnhB,KAAK,KAAK2kB,UAAU,CAAC/oB,KAAK,CACvE,CAAC,CACAgpB,KAAK,CAAC,CAAC,EAAE,CAAC,CACb,CAAC;IACF,CAAC,MAAM;MACNtB,UAAU,CAACe,cAAc,CAACO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvC;EACD,CAAC,EACD,CAACP,cAAc,CAChB,CAAC;EAED,MAAMQ,aAAa,GAAG7zB,kDAAW,CAC/B8zB,QAAQ,IAAK;IACb;IACA;IACA;IACA,MAAMC,aAAa,GAAGD,QAAQ,CAACA,QAAQ,CAACpe,MAAM,GAAG,CAAC,CAAC,EAAE9K,KAAK;IAC1D,IACCmpB,aAAa,IACb,OAAOA,aAAa,KAAK,QAAQ,IACjC/B,wBAAwB,IACxB,CAAC3f,4CAAI,CAACghB,cAAc,EAAGM,UAAU,IAAKA,UAAU,CAAC/oB,KAAK,KAAKmpB,aAAa,CAAC,EACxE;MACDlC,oBAAoB,CAAE/Y,SAAS,IAAK;QACnC,MAAMkb,aAA2B,GAAG;UACnChlB,KAAK,EAAE+kB,aAAa;UACpBnpB,KAAK,EAAEmpB,aAAa;UACpBppB,IAAI,EAAE,cAAc;UACpBF,GAAG,EAAEunB,wBAAwB;UAC7BvrB,EAAE,EAAEstB;QACL,CAAC;QACD,OAAO,CAAC,GAAGjb,SAAS,EAAEkb,aAAa,CAAC;MACrC,CAAC,CAAC;IACH;;IAEA;IACAtB,mBAAmB,CAACoB,QAAuB,CAAC;EAC7C,CAAC,EACD,CAACT,cAAc,EAAErB,wBAAwB,EAAEH,oBAAoB,CAChE,CAAC;EAED,MAAMoC,WAAW,GAAGj0B,kDAAW,CAC7Bk0B,EAAE,IAAK;IACP,IAAI,CAACA,EAAE,CAACT,WAAW,EAAE;MACpBrB,WAAW,CAAC,KAAK,CAAC;IACnB,CAAC,MAAM;MACNA,WAAW,CAAC,IAAI,CAAC;IAClB;IACAL,aAAa,CAACmC,EAAE,CAACT,WAAW,IAAI,EAAE,CAAC;IACnCD,aAAa,CAACU,EAAE,CAACT,WAAW,IAAI,EAAE,EAAE3E,KAAK,CAAC;EAC3C,CAAC,EACD,CAACA,KAAK,EAAE0E,aAAa,CACtB,CAAC;EAEDrjB,gDAAS,CAAC,MAAM;IACf,IAAI6hB,wBAAwB,EAAE;MAC7B,MAAMmC,WAAW,GAAGtmB,8CAAM,CACzBwlB,cAAc,EACbM,UAAU,IAAKA,UAAU,CAAClpB,GAAG,KAAKunB,wBACpC,CAAC,CAAC4B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;MAEbtB,UAAU,CAAC6B,WAAW,CAAC;IACxB;EACD,CAAC,EAAE,CAACd,cAAc,EAAErB,wBAAwB,CAAC,CAAC;EAE9C,MAAMoC,YAAY,GAAGnD,6CAAM,CAAiB,IAAI,CAAC;EACjD,MAAMoD,QAAQ,GAAGr0B,kDAAW,CAAC,MAAMwyB,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;EAC9D,MAAM8B,WAAW,GAAGt0B,kDAAW,CAAC,MAAMwyB,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;EAElEriB,gDAAS,CAAC,MAAM;IACf,MAAM4iB,GAAG,GAAGpB,QAAQ,CAAC1O,OAAO;IAC5B,MAAMsR,gBAAgB,GAAIL,EAAiB,IAAW;MACrD,IAAIA,EAAE,CAAC1tB,GAAG,KAAK,OAAO,EAAE;QACvBqsB,QAAQ,CAAC,CAAC;QACVyB,WAAW,CAAC,CAAC;MACd;IACD,CAAC;IACD,IAAIvB,GAAG,EAAE;MACRA,GAAG,CAACpT,gBAAgB,CAAC,OAAO,EAAE4U,gBAAgB,CAAC;IAChD;IAEA,OAAO,MAAY;MAClB,IAAIxB,GAAG,EAAE;QACRA,GAAG,CAACnT,mBAAmB,CAAC,OAAO,EAAE2U,gBAAgB,CAAC;MACnD;IACD,CAAC;EACF,CAAC,EAAE,CAAC1B,QAAQ,EAAEyB,WAAW,CAAC,CAAC;EAE3B,MAAME,cAAc,GAAGruB,8CAAO,CAAC,MAAMksB,OAAO,CAAC3c,MAAM,IAAI,CAAC,IAAIyc,QAAQ,EAAE,CAACE,OAAO,EAAEF,QAAQ,CAAC,CAAC;EAE1F,MAAMsC,WAAW,GAAGtuB,8CAAO,CAC1B,MACCosB,aAAa,IAAIP,wBAAwB,GACtCtsB,CAAC,CAAC,2BAA2B,EAAE,mDAAmD,CAAC,GACnFA,CAAC,CAAC,yBAAyB,EAAE,sBAAsB,EAAE;IACrDub,MAAM,EAAEiR;EACR,CAAC,CAAC,EACN,CAACF,wBAAwB,EAAEO,aAAa,EAAEL,WAAW,EAAExsB,CAAC,CACzD,CAAC;EAED,MAAMgvB,sBAAsB,GAAGvuB,8CAAO,CACrC,MACCwsB,SAAS,IAAIR,QAAQ,GAClBzsB,CAAC,CAAC,cAAc,EAAE,oBAAoB,CAAC,GACvCA,CAAC,CAAC,sBAAsB,EAAE,+BAA+B,CAAC,EAC9D,CAACitB,SAAS,EAAEjtB,CAAC,EAAEysB,QAAQ,CACxB,CAAC;EAED,MAAMwC,wBAAwB,GAAGxuB,8CAAO,CACvC,MAAOgsB,QAAQ,GAAG,KAAK,GAAG,CAACQ,SAAU,EACrC,CAACA,SAAS,EAAER,QAAQ,CACrB,CAAC;EAED,MAAMyC,qBAAqB,GAAGzuB,8CAAO,CAAC,MAAM;IAC3C,IAAI,CAACwuB,wBAAwB,IAAIlC,gBAAgB,CAAC/c,MAAM,GAAG,CAAC,EAAE;MAC7D,OAAOhQ,CAAC,CAAC,cAAc,EAAE,cAAc,CAAC;IACzC;IACA,IAAI6sB,aAAa,EAAE;MAClB,OAAO7sB,CAAC,CACP,kCAAkC,EAClC,gDACD,CAAC;IACF;IACA,IAAIopB,KAAK,CAACpZ,MAAM,GAAG,CAAC,EAAE;MACrB,OAAOhQ,CAAC,CAAC,4BAA4B,EAAE,qCAAqC,CAAC;IAC9E;IACA,OAAOA,CAAC,CAAC,6BAA6B,EAAE,sCAAsC,CAAC;EAChF,CAAC,EAAE,CAACivB,wBAAwB,EAAElC,gBAAgB,CAAC/c,MAAM,EAAE6c,aAAa,EAAEzD,KAAK,CAACpZ,MAAM,EAAEhQ,CAAC,CAAC,CAAC;EAEvF,MAAMmvB,SAAS,GAAG70B,kDAAW,CAC3B80B,OAAO,IAAK;IACZ1C,WAAW,CAAC,KAAK,CAAC;IAClBL,aAAa,CAAC,EAAE,CAAC;IACjB,IAAIC,wBAAwB,EAAE;MAC7B,MAAMmC,WAAW,GAAGtmB,8CAAM,CACzBwlB,cAAc,EACbM,UAAU,IAAKA,UAAU,EAAElpB,GAAG,KAAKunB,wBACrC,CAAC,CAAC4B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;MAEbtB,UAAU,CAAC6B,WAAW,CAAC;IACxB;IACA,OAAO;MACNvpB,KAAK,EAAE,OAAOkqB,OAAO,KAAK,QAAQ,GAAGA,OAAO,GAAG,EAAE;MACjD9lB,KAAK,EAAE8lB,OAAO;MACd7B,SAAS,EAAE;IACZ,CAAC;EACF,CAAC,EACD,CAACI,cAAc,EAAErB,wBAAwB,CAC1C,CAAC;EAED7hB,gDAAS,CAAC,MAAM;IACfuiB,mBAAmB,CAACtsB,2CAAG,CAAC0oB,KAAK,EAAGqB,SAAS,KAAM;MAAE,GAAGA,SAAS;MAAEha,QAAQ,EAAE4Y;IAAe,CAAC,CAAC,CAAC,CAAC;EAC7F,CAAC,EAAE,CAACA,cAAc,EAAED,KAAK,CAAC,CAAC;EAE3B,oBACC5vB,0DAAA,CAAC0tB,uEAAS;IACTuB,KAAK,EAAC,KAAK;IACX4G,QAAQ,EAAC,GAAG;IACZ7G,WAAW,EAAC,YAAY;IACxB6E,GAAG,EAAEqB,YAAa;IAClB9F,aAAa,EAAC,YAAY;IAC1BD,cAAc,EAAC;EAAY,gBAE3BnvB,0DAAA,CAACkyB,qEAAO;IACPjb,QAAQ,EAAE,CAAC4Y,cAAe;IAC1BiG,QAAQ,EAAC,MAAM;IACfpqB,KAAK,EACJqnB,OAAO,IACPvsB,CAAC,CAAC,8BAA8B,EAAE,mDAAmD;EACrF,gBAEDxG,0DAAA,CAAC0tB,uEAAS;IAACsB,WAAW,EAAC,YAAY;IAACC,KAAK,EAAC,MAAM;IAAC6G,QAAQ,EAAE,MAAO;IAAC5G,QAAQ,EAAE;EAAQ,gBACpFlvB,0DAAA,CAAC0tB,uEAAS;IAACwB,QAAQ,EAAC,OAAO;IAACD,KAAK,EAAC;EAAM,gBACvCjvB,0DAAA,CAAC0tB,uEAAS;IAACsB,WAAW,EAAC,YAAY;IAACC,KAAK,EAAC;EAAM,gBAC/CjvB,0DAAA,CAAC0tB,uEAAS;IAACuB,KAAK,EAAC;EAAK,gBACrBjvB,0DAAA,CAAC0vB,4DAAc,MAAE,CACP,CAAC,eACZ1vB,0DAAA,CAACuyB,eAAe;IAACvD,WAAW,EAAC;EAAY,gBACxChvB,0DAAA,CAACqyB,eAAe;IACfpb,QAAQ,EAAE4Y,cAAe;IACzB4C,QAAQ,EAAEA,QAAS;IACnB3iB,KAAK,EAAEyjB,gBAAiB;IACxBwC,KAAK,EAAEJ,SAAU;IACjBxC,OAAO,EAAEA,OAAQ;IACjBoC,WAAW,EAAEA,WAAY;IACzBS,iBAAiB,EAAE,KAAM;IACzBC,UAAU,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAE;IACvD9E,UAAU,EAAEtB,cAAc,GAAG,OAAO,GAAG,OAAQ;IAC/C9nB,KAAK,EAAE;MACN+P,MAAM,EAAE,SAAS;MACjBoe,SAAS,EAAE;IACZ,CAAE;IACFC,QAAQ,EAAExB,aAAc;IACxBI,WAAW,EAAEA,WAAY;IACzBqB,mBAAmB,EAAE,CAAE;IACvBC,MAAM,EAAEjB,WAAY;IACpBkB,OAAO,EAAEnB,QAAS;IAClBG,cAAc,EAAEA,cAAe;IAC/BiB,kBAAkB,EAAE,KAAM;IAC1B/E,IAAI,EAAE;EAAS,CACf,CACe,CACP,CACD,CAAC,EAEX,CAACiE,wBAAwB,iBACzBz1B,0DAAA,CAACiT,qEAAO;IAAC2L,IAAI,EAAC;EAAO,gBACpB5e,0DAAA,CAACkyB,qEAAO;IAACxmB,KAAK,EAAE8pB,sBAAuB;IAACgB,SAAS,EAAC;EAAQ,gBACzDx2B,0DAAA,CAACoyB,kBAAkB;IAClBxnB,IAAI,EAAC,OAAO;IACZ6rB,UAAU,EAAE;MACXC,QAAQ,EAAE,OAAO;MACjBC,WAAW,EAAE;IACd,CAAE;IACF1f,QAAQ,EAAEwe,wBAAyB;IACnChqB,IAAI,EAAC,kBAAkB;IACvBmrB,SAAS,EAAC,SAAS;IACnB5K,OAAO,EAAE0H;EAAY,CACrB,CACO,CACD,CACT,eAED1zB,0DAAA,CAACiT,qEAAO;IAAC2L,IAAI,EAAC;EAAO,gBACpB5e,0DAAA,CAACkyB,qEAAO;IACP4D,QAAQ,EAAC,MAAM;IACf7e,QAAQ,EAAE4Y,cAAe;IACzBnkB,KAAK,EAAEgqB,qBAAsB;IAC7Bc,SAAS,EAAC;EAAQ,gBAElBx2B,0DAAA,CAACiyB,wEAAU;IACVrnB,IAAI,EAAC,OAAO;IACZ6rB,UAAU,EAAE;MACXC,QAAQ,EAAE,OAAO;MACjBC,WAAW,EAAE;IACd,CAAE;IACFlrB,IAAI,EAAC,QAAQ;IACbwL,QAAQ,EAAEwe,wBAAyB;IACnCoB,eAAe,EAAC,SAAS;IACzBD,SAAS,EAAC,OAAO;IACjB5K,OAAO,EAAE2H;EAAS,CAClB,CACO,CACD,CACC,CACH,CACC,CAAC;AAEd,CAAC;;;;;;;;;;;;;;;;;;ACpcD;AACA;AACA;AACA;AACA;;AAEoC;AACH;AAIjC;AACO,MAAMjS,cAAc,GAAGyL,+CAAM,CAAc,CAAC,CAAC,CAAC5B,GAAG,EAAEI,GAAG,MAAM;EAClEiE,KAAK,EAAE,EAAE;EACTC,cAAc,EAAE,KAAK;EACrBkD,OAAO,EAAEtc,SAAS;EAClB6Z,iBAAiB,EAAEA,CAACT,cAAuB,EAAEkD,OAAgB,KAC5DxH,GAAG,CAAC;IAAEsE,cAAc;IAAEkD;EAAQ,CAAC,CAAC;EACjC3C,WAAW,EAAGR,KAAqE,IAClFrE,GAAG,CAAC;IAAEqE,KAAK,EAAEkH,kDAAU,CAAClH,KAAK,CAAC,GAAGA,KAAK,CAACjE,GAAG,CAAC,CAAC,CAACiE,KAAK,CAAC,GAAGA;EAAM,CAAC,CAAC;EAC/DrB,YAAY,EAAGxM,MAAc,IAAWwJ,GAAG,CAAC;IAAExJ;EAAO,CAAC;AACvD,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBH;AACA;AACA;AACA;AACA;;AAEiF;AAER;AAEzC;AAC6C;AAC9B;AAEwB;AAC2B;AACrB;AACe;AACJ;AACL;AAOvD;AAkBgB;AACI;AACoC;AAEpF,SAAS2V,2BAA2BA,CACnCC,YAA2C,EACZ;EAC/B,OAAOzwB,2CAAG,CACTywB,YAAY,EACX5U,IAAI,KAA6B;IACjC2C,KAAK,EAAE,mBAAmB;IAC1B7C,QAAQ,EAAE;MACTtc,IAAI,EAAEwc,IAAI,CAACI,sBAAsB;MACjC4B,MAAM,EAAE;QACP,GAAGhC,IAAI;QACP6U,yBAAyB,EAAE7U,IAAI,CAAC6U,yBAAyB,IAAI;MAC9D;IACD;EACD,CAAC,CACF,CAAC;AACF;AAEA,SAASC,2BAA2BA,CAACC,WAA0B,EAAgC;EAC9F,OAAO5wB,2CAAG,CACT4wB,WAAW,EACX,CAACC,UAAU,EAAE7U,KAAK,MAA6B;IAC9CwC,KAAK,EAAE,mBAAmB;IAC1B7C,QAAQ,EAAE;MAAEtb,EAAE,EAAEwwB;IAAW,CAAC;IAC5BC,SAAS,EAAE9U,KAAK,CAAC+U,QAAQ,CAAC;EAC3B,CAAC,CACF,CAAC;AACF;AAEA,SAASC,2BAA2BA,CACnCC,YAAoD,EACrB;EAC/B,OAAOjxB,2CAAG,CACTixB,YAAY,EACZ,CAACpV,IAAI,EAAEG,KAAK,MAA6B;IACxCwC,KAAK,EAAE,mBAAmB;IAC1B7C,QAAQ,EAAE;MACTtb,EAAE,EAAE2b,KAAK;MACT6B,MAAM,EAAEhC;IACT;EACD,CAAC,CACF,CAAC;AACF;AAEA,SAASqV,oBAAoBA,CAACC,GAAiC,EAAE7xB,CAAY,EAAkB;EAC9F,OAAOrF,8CAAM,CACZk3B,GAAG,EACH,CAACC,WAAgC,EAAEvV,IAAI,EAAEwV,GAAG,KAAK;IAChD,MAAMrV,KAAK,GAAGX,iDAAS,CAAC+V,WAAW,EAAE;MAAE9T,KAAK,EAAEzB,IAAI,CAACqB;IAAE,CAAC,CAAC;IACvD,MAAMoU,eAAe,GAAGhyB,CAAC,CAAC,kCAAkC,EAAE;MAC7D6f,OAAO,EAAEtD,IAAI,CAACiB,KAAK,CAACyU,WAAW,CAAC,CAAC;MACjCC,YAAY,EAAE3V,IAAI,CAACiB;IACpB,CAAC,CAAC;IACF,IAAId,KAAK,KAAK,CAAC,CAAC,EAAE;MACjBoV,WAAW,CAACjW,IAAI,CAAC;QAAEmC,KAAK,EAAEzB,IAAI,CAACqB,CAAC,IAAI,EAAE;QAAEJ,KAAK,EAAEwU,eAAe;QAAEjxB,EAAE,EAAEgxB,GAAG,CAACN,QAAQ,CAAC;MAAE,CAAC,CAAC;IACtF,CAAC,MAAM;MACNK,WAAW,CAACpV,KAAK,CAAC,GAAG;QACpBsB,KAAK,EAAEzB,IAAI,CAACqB,CAAC,IAAI,EAAE;QACnBJ,KAAK,EAAExd,CAAC,CAAC,4CAA4C,EAAE;UACtDkyB,YAAY,EAAG,gCAA+B;UAC9C1P,MAAM,EAAE,CAACwP,eAAe,EAAEF,WAAW,CAACpV,KAAK,CAAC,CAACc,KAAK;QACnD,CAAC,CAAC;QACFzc,EAAE,EAAEgxB,GAAG,CAACN,QAAQ,CAAC;MAClB,CAAC;IACF;IACA,OAAOK,WAAW;EACnB,CAAC,EACD,EACD,CAAC;AACF;AAEO,MAAMttB,gBAAgB,GAAGA,CAAA,KAAyB;EACxD,MAAM,CAACxE,CAAC,CAAC,GAAG4K,6DAAc,CAAC,CAAC;EAC5B,MAAMwB,cAAc,GAAGJ,6EAAW,CAAC,CAAC;EAEpC,MAAMkS,OAAO,GAAGhiB,+DAAc,CAAC,CAAC;EAChC,MAAM6J,QAAQ,GAAG1J,gEAAe,CAAC,CAAC;EAElC,MAAM81B,eAAe,GAAG5G,6CAAM,CAAgC,CAAC,CAAC,CAAC;EACjE,MAAM6G,cAAc,GAAG7G,6CAAM,CAAgB,EAAE,CAAC;EAChD,MAAM8G,eAAe,GAAG9G,6CAAM,CAAyC,CAAC,CAAC,CAAC;EAE1E,MAAM+G,0BAA0B,GAAG/G,6CAAM,CAEvCxlB,QAAQ,CAAC+C,KAAK,CAACypB,iCAAiC,CAAC;EAEnD,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGlmB,+CAAQ,CAAC,KAAK,CAAC;EAC7C,MAAMmmB,gBAAgB,GAAGp4B,kDAAW,CAAC,MAAM;IAC1Cm4B,UAAU,CACT,CAACjC,+CAAO,CAAC2B,eAAe,CAAC5U,OAAO,CAAC,IAChC,CAACiT,+CAAO,CAAC4B,cAAc,CAAC7U,OAAO,CAAC,IAChC,CAACiT,+CAAO,CAAC6B,eAAe,CAAC9U,OAAO,CAAC,IACjCxX,QAAQ,CAAC+C,KAAK,CAACypB,iCAAiC,KAAKD,0BAA0B,CAAC/U,OAClF,CAAC;EACF,CAAC,EAAE,CAACxX,QAAQ,CAAC+C,KAAK,CAACypB,iCAAiC,CAAC,CAAC;EAEtD,MAAMI,6BAA6B,GAAGr4B,kDAAW,CAG/Cs4B,YAAY,IAAK;IACjBN,0BAA0B,CAAC/U,OAAO,GAAGqV,YAAY;IACjDF,gBAAgB,CAAC,CAAC;EACnB,CAAC,EACD,CAACA,gBAAgB,CAClB,CAAC;EAED,MAAMG,UAAU,GAAGv4B,kDAAW,CAAC,MAAM;IACpC63B,eAAe,CAAC5U,OAAO,GAAG,CAAC,CAAC;IAC5B6U,cAAc,CAAC7U,OAAO,GAAG,EAAE;IAC3B8U,eAAe,CAAC9U,OAAO,GAAG,CAAC,CAAC;IAC5BmV,gBAAgB,CAAC,CAAC;EACnB,CAAC,EAAE,CAACA,gBAAgB,CAAC,CAAC;EAEtB,MAAM,CAACI,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGxmB,+CAAQ,CAAC,CAAC,CAAC;EAE/D,MAAMymB,iBAAiB,GAAGvyB,8CAAO,CAChC,MAAMswB,iFAA6B,CAAC7S,OAAO,CAACE,UAAU,CAAC/B,QAAQ,CAAC,EAChE,CAAC6B,OAAO,CAACE,UAAU,CAAC/B,QAAQ,CAC7B,CAAC;EAED,MAAM,CAAC+B,UAAU,EAAE6U,aAAa,CAAC,GAAG1mB,+CAAQ,CAA2BymB,iBAAiB,CAAC;EACzF,MAAME,aAAa,GAAGntB,QAAQ,CAACD,KAAK,CAACqtB,2BAA2B,IAAI,CAAC;EAErE,MAAMC,WAAW,GAAG94B,kDAAW,CAC9B,CAACyG,EAAE,EAAEsyB,aAAa,KAAK;IACtBlB,eAAe,CAAC5U,OAAO,CAACxc,EAAE,CAAC,GAAGsyB,aAAa;IAC3CX,gBAAgB,CAAC,CAAC;IAClBO,aAAa,CAAE7f,SAAS,IAAK,CAC5B,GAAGA,SAAS,EACZ;MACCrS,EAAE;MACFhB,IAAI,EAAEszB,aAAa,CAAC1W,sBAAsB;MAC1C4B,MAAM,EAAE;QAAE,GAAG8U,aAAa;QAAEC,oBAAoB,EAAEvyB;MAAG;IACtD,CAAC,CACD,CAAC;EACH,CAAC,EACD,CAAC2xB,gBAAgB,CAClB,CAAC;EAED,MAAMa,gBAAgB,GAAGj5B,kDAAW,CAGnC,CAACyG,EAAE,EAAED,GAAG,EAAEwI,KAAK,KAAK;IACnB,IAAI6oB,eAAe,CAAC5U,OAAO,CAACxc,EAAE,CAAC,EAAE;MAChCoxB,eAAe,CAAC5U,OAAO,CAACxc,EAAE,CAAC,CAACD,GAAG,CAAC,GAAGwI,KAAK;IACzC,CAAC,MAAM,IAAI+oB,eAAe,CAAC9U,OAAO,CAACxc,EAAE,CAAC,EAAE;MACvC,MAAMyyB,cAAc,GAAG7mB,4CAAI,CAACqmB,iBAAiB,EAAGzW,IAAI,IAAKA,IAAI,CAACxb,EAAE,KAAKA,EAAE,CAAC;MACxEsxB,eAAe,CAAC9U,OAAO,CAACxc,EAAE,CAAC,CAACD,GAAG,CAAC,GAAGwI,KAAK;MACxC,IAAIkqB,cAAc,IAAIA,cAAc,CAACjV,MAAM,CAACzd,GAAG,CAAC,KAAKwI,KAAK,EAAE;QAC3D,OAAO+oB,eAAe,CAAC9U,OAAO,CAACxc,EAAE,CAAC,CAACD,GAAG,CAAC;MACxC;MACA,IAAIsD,4CAAI,CAACiuB,eAAe,CAAC9U,OAAO,CAACxc,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;QAC5C,OAAOsxB,eAAe,CAAC9U,OAAO,CAACxc,EAAE,CAAC;MACnC;IACD,CAAC,MAAM;MACNsxB,eAAe,CAAC9U,OAAO,CAACxc,EAAE,CAAC,GAAG;QAC7B,CAACD,GAAG,GAAGwI;MACR,CAAC;IACF;IACAopB,gBAAgB,CAAC,CAAC;IAClBO,aAAa,CAAE7f,SAAS,IACvB1S,2CAAG,CAAC0S,SAAS,EAAGmJ,IAAI,IACnBA,IAAI,CAACxb,EAAE,KAAKA,EAAE,GACX;MACA,GAAGwb,IAAI;MACPgC,MAAM,EAAE;QACP,GAAGhC,IAAI,CAACgC,MAAM;QACd,CAACzd,GAAG,GAAGwI;MACR;IACA,CAAC,GACDiT,IACJ,CACD,CAAC;EACF,CAAC,EACD,CAACmW,gBAAgB,EAAEM,iBAAiB,CACrC,CAAC;EAED,MAAMS,cAAc,GAAGn5B,kDAAW,CAChCi3B,UAAkB,IAAK;IACvB,IAAIY,eAAe,CAAC5U,OAAO,CAACgU,UAAU,CAAC,EAAE;MACxC,OAAOY,eAAe,CAAC5U,OAAO,CAACgU,UAAU,CAAC;IAC3C,CAAC,MAAM;MACNa,cAAc,CAAC7U,OAAO,GAAG,CAAC,GAAG6U,cAAc,CAAC7U,OAAO,EAAEgU,UAAU,CAAC;MAChE,OAAOc,eAAe,CAAC9U,OAAO,CAACgU,UAAU,CAAC;IAC3C;IACAmB,gBAAgB,CAAC,CAAC;IAClBO,aAAa,CAAE7f,SAAS,IAAKjL,8CAAM,CAACiL,SAAS,EAAGiJ,QAAQ,IAAKA,QAAQ,CAACtb,EAAE,KAAKwwB,UAAU,CAAC,CAAC;EAC1F,CAAC,EACD,CAACmB,gBAAgB,CAClB,CAAC;EAEDjoB,gDAAS,CAAC,MAAM;IACfwoB,aAAa,CAACD,iBAAiB,CAAC;IAChCH,UAAU,CAAC,CAAC;EACb,CAAC,EAAE,CAACG,iBAAiB,EAAEH,UAAU,CAAC,CAAC;EAEnC,MAAMa,MAAM,GAAGp5B,kDAAW,CAAgC,MAAM;IAC/D,IACC04B,iBAAiB,CAAChjB,MAAM,GAAG5L,4CAAI,CAAC+tB,eAAe,CAAC5U,OAAO,CAAC,GAAG6U,cAAc,CAAC7U,OAAO,CAACvN,MAAM,GACxFkjB,aAAa,EACZ;MACD9mB,cAAc,CAAC;QACdtL,GAAG,EAAG,KAAI;QACVia,OAAO,EAAE,IAAI;QACb2D,IAAI,EAAE,OAAO;QACbxZ,KAAK,EAAElF,CAAC,CACP,4CAA4C,EAC5C,iFACD,CAAC;QACD2zB,eAAe,EAAE,IAAI;QACrBC,UAAU,EAAE;MACb,CAAC,CAAC;MACF,OAAOhtB,OAAO,CAAC8C,UAAU,CAAC,CACzB9C,OAAO,CAACE,MAAM,CACb,IAAI6I,KAAK,CACR,iFACD,CACD,CAAC,CACD,CAAC;IACH;IAEA,IAAIkkB,kBAAkD;IAEtD,IACCvB,0BAA0B,CAAC/U,OAAO,IAClCxX,QAAQ,CAAC+C,KAAK,CAACypB,iCAAiC,KAAKD,0BAA0B,CAAC/U,OAAO,EACtF;MACDsW,kBAAkB,GAAG;QACpB3U,KAAK,EAAE,mBAAmB;QAC1BX,MAAM,EAAE;UAAEgU,iCAAiC,EAAED,0BAA0B,CAAC/U;QAAQ;MACjF,CAAC;IACF;IAEA,MAAMuW,sBAAoD,GAAG5C,2BAA2B,CACvFiB,eAAe,CAAC5U,OACjB,CAAC;IACD,MAAMwW,cAA4C,GAAG1C,2BAA2B,CAC/Ee,cAAc,CAAC7U,OAChB,CAAC;IAED,MAAMyW,sBAAoD,GAAGtC,2BAA2B,CACvFW,eAAe,CAAC9U,OACjB,CAAC;IAED,MAAM0W,OAAO,GAAG74B,6DAAY,CAACzB,qDAAY,CAAC,CAQxC,OAAO,EAAE;MACVulB,KAAK,EAAE,YAAY;MACnBgV,qBAAqB,EAAEH,cAAc,CAAC/jB,MAAM,GAAG,CAAC,GAAG+jB,cAAc,GAAG9jB,SAAS;MAC7EkkB,qBAAqB,EAAEL,sBAAsB,CAAC9jB,MAAM,GAAG,CAAC,GAAG8jB,sBAAsB,GAAG7jB,SAAS;MAC7FmkB,qBAAqB,EAAEJ,sBAAsB,CAAChkB,MAAM,GAAG,CAAC,GAAGgkB,sBAAsB,GAAG/jB,SAAS;MAC7FokB,kBAAkB,EAAER;IACrB,CAAC,CAAC,CACAtqB,IAAI,CAAE4W,GAAG,IAAK;MACd/T,cAAc,CAAC;QACdtL,GAAG,EAAG,KAAI;QACVia,OAAO,EAAE,IAAI;QACb2D,IAAI,EAAE,MAAM;QACZxZ,KAAK,EAAElF,CAAC,CAAC,iCAAiC,EAAE,uBAAuB,CAAC;QACpE2zB,eAAe,EAAE,IAAI;QACrBC,UAAU,EAAE;MACb,CAAC,CAAC;MACFf,UAAU,CAAC,CAAC;MACZhuB,4DAAe,CAACsC,QAAQ,CACvBopB,+CAAO,CAAEnd,SAAuB,IAAK;QACpC,IAAIA,SAAS,CAAC8K,OAAO,EAAE;UACtB9K,SAAS,CAAC8K,OAAO,CAACE,UAAU,CAAC/B,QAAQ,GAAGyU,+EAA2B,CAClE1d,SAAS,CAAC8K,OAAO,CAACE,UAAU,CAAC/B,QAAQ,EACrC+V,cAAc,CAAC7U,OAAO,EACtB7c,2CAAG,CAACyf,GAAG,CAAC1B,sBAAsB,EAAGlC,IAAI,IAAKA,IAAI,CAACF,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC3DgW,eAAe,CAAC9U,OACjB,CAAC;UACDnK,SAAS,CAAC8K,OAAO,CAACC,WAAW,GAC5BxR,4CAAI,CACH0lB,eAAe,CAAC9U,OAAO,EACtBhB,IAAI,IAAKA,IAAI,CAAC+W,oBAAoB,KAAKlgB,SAAS,EAAE8K,OAAO,EAAEnd,EAC7D,CAAC,EAAE4b,sBAAsB,IAAIvJ,SAAS,CAAC8K,OAAO,EAAEC,WAAW;QAC7D;QACA/K,SAAS,CAACrN,QAAQ,CAAC+C,KAAK,CAACypB,iCAAiC,GACzDD,0BAA0B,CAAC/U,OAAO,IAAI,EAAE;MAC1C,CAAC,CACF,CAAC;IACF,CAAC,CAAC,CACDuE,KAAK,CAAErnB,KAAc,IAAK;MAC1B2R,cAAc,CAAC;QACdtL,GAAG,EAAG,KAAI;QACVia,OAAO,EAAE,IAAI;QACb2D,IAAI,EAAE,OAAO;QACbxZ,KAAK,EAAElF,CAAC,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;QACpE2zB,eAAe,EAAE,IAAI;QACrBC,UAAU,EAAE;MACb,CAAC,CAAC;MACF,IAAIn5B,KAAK,YAAYkV,KAAK,EAAE;QAC3B,MAAMlV,KAAK;MACZ;MACA,MAAM,IAAIkV,KAAK,CAAC,OAAOlV,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAG,oBAAoB,CAAC;IAC1E,CAAC,CAAC;IACH,OAAOmM,OAAO,CAAC8C,UAAU,CAAC,CAACuqB,OAAO,CAAC,CAAC;EACrC,CAAC,EAAE,CACFf,aAAa,EACbF,iBAAiB,CAAChjB,MAAM,EACxBjK,QAAQ,CAAC+C,KAAK,CAACypB,iCAAiC,EAChDnmB,cAAc,EACdpM,CAAC,EACD6yB,UAAU,CACV,CAAC;EAEF,MAAMyB,uBAAuB,GAAG7zB,8CAAO,CACtC,MAAMuwB,8EAA0B,CAAC9S,OAAO,EAAEnY,QAAQ,CAAC,EACnD,CAACmY,OAAO,EAAEnY,QAAQ,CACnB,CAAC;EAED,MAAMwuB,2BAA2B,GAAGhJ,6CAAM,CAAkC,IAAI,CAAC;EAEjF,MAAMiJ,QAAQ,GAAGl6B,kDAAW,CAAC,MAAM;IAClCu4B,UAAU,CAAC,CAAC;IACZI,aAAa,CAACD,iBAAiB,CAAC;IAChCuB,2BAA2B,CAAChX,OAAO,EAAEkX,KAAK,CAAC,CAAC;IAC5C1B,qBAAqB,CAAC3uB,4CAAI,CAAC4uB,iBAAiB,CAAC,GAAG,CAAC,CAAC;EACnD,CAAC,EAAE,CAACA,iBAAiB,EAAEH,UAAU,CAAC,CAAC;EAEnC,MAAM,CAAC6B,SAAS,EAAEC,YAAY,CAAC,GAAGpoB,+CAAQ,CAAiB,EAAE,CAAC;EAE9D,MAAMiW,MAAM,GAAG3d,gEAAe,CAAEuC,KAAK,IAAKA,KAAK,CAACob,MAAM,CAAC;EAEvD/X,gDAAS,CAAC,MAAM;IACf,IAAI,CAAC+X,MAAM,EAAE;MACZpnB,6DAAY,CAACzB,qDAAY,CAAC,CAAsC,WAAW,EAAE;QAC5EulB,KAAK,EAAE,mBAAmB;QAC1B2S,GAAG,EAAE,CAAC;UAAErU,KAAK,EAAE;QAAS,CAAC,EAAE;UAAEA,KAAK,EAAE;QAAiB,CAAC;MACvD,CAAC,CAAC,CAACjU,IAAI,CAAED,KAAK,IAAK;QAClB,IAAIA,KAAK,CAACuoB,GAAG,EAAE;UACd,MAAM;YAAEA;UAAI,CAAC,GAAGvoB,KAAK;UACrBqrB,YAAY,CAAC/C,oBAAoB,CAACC,GAAG,EAAE7xB,CAAC,CAAC,CAAC;QAC3C;QACA6E,4DAAe,CAACsC,QAAQ,CAAEC,KAAK,KAAM;UACpC,GAAGA,KAAK;UACRob,MAAM,EAAElZ,KAAK,CAACuoB,GAAG,IAAI;QACtB,CAAC,CAAC,CAAC;MACJ,CAAC,CAAC;IACH,CAAC,MAAM;MACN8C,YAAY,CAAC/C,oBAAoB,CAACpP,MAAM,EAAExiB,CAAC,CAAC,CAAC;IAC9C;EACD,CAAC,EAAE,CAACA,CAAC,EAAEwiB,MAAM,CAAC,CAAC;EAEf,MAAMoS,eAAe,GAAGn0B,8CAAO,CAA2B,MAAM;IAC/D,MAAM4b,QAAQ,GAAG+B,UAAU,CAAC0U,kBAAkB,CAAC;IAC/C,IAAIzW,QAAQ,EAAE;MACb,oBACC7iB,0DAAA,CAACm3B,qFAAe;QAAC0C,aAAa,EAAEhX,QAAQ,CAACkC,MAAO;QAACgV,gBAAgB,EAAEA;MAAiB,CAAE,CAAC;IAEzF;IACA,OAAO,IAAI;EACZ,CAAC,EAAE,CAACnV,UAAU,EAAE0U,kBAAkB,EAAES,gBAAgB,CAAC,CAAC;EAEtD,MAAMsB,oBAAoB,GAAGp0B,8CAAO,CAA2B,MAAM;IACpE,MAAM4b,QAAQ,GAAG+B,UAAU,CAAC0U,kBAAkB,CAAC;IAC/C,IAAIzW,QAAQ,EAAE;MACb,oBACC7iB,0DAAA,CAACq3B,2FAAoB;QACpBwC,aAAa,EAAEhX,QAAQ,CAACkC,MAAO;QAC/BgV,gBAAgB,EAAEA,gBAAiB;QACnCe,uBAAuB,EAAEA;MAAwB,CACjD,CAAC;IAEJ;IACA,OAAO,IAAI;EACZ,CAAC,EAAE,CAACA,uBAAuB,EAAElW,UAAU,EAAE0U,kBAAkB,EAAES,gBAAgB,CAAC,CAAC;EAE/E,oBACC/5B,0DAAA,CAAAA,uDAAA,qBACCA,0DAAA,CAAC6M,mEAAc;IACdqtB,MAAM,EAAEA,MAAO;IACfc,QAAQ,EAAEA,QAAS;IACnBhC,OAAO,EAAEA,OAAQ;IACjB5kB,KAAK,EAAE5N,CAAC,CAAC,gBAAgB,EAAE,UAAU;EAAE,CACvC,CAAC,eACFxG,0DAAA,CAAC0tB,uEAAS;IAACyD,UAAU,EAAE,OAAQ;IAAC5B,OAAO,EAAE;MAAE5Q,GAAG,EAAE;IAAQ,CAAE;IAAC3W,MAAM,EAAC;EAAK,CAAE,CAAC,eAC1EhI,0DAAA,CAAC0tB,uEAAS;IACTyD,UAAU,EAAE,OAAQ;IACpB/B,aAAa,EAAC,YAAY;IAC1BG,OAAO,EAAE;MAAE/a,GAAG,EAAE;IAAQ,CAAE;IAC1BzM,KAAK,EAAE;MAAEE,QAAQ,EAAE;IAAO;EAAE,gBAE5BjI,0DAAA,CAACi3B,kFAAY;IACZqE,WAAW,EAAE5W,OAAO,CAACne,IAAK;IAC1Bqe,UAAU,EAAEA,UAAW;IACvB0U,kBAAkB,EAAEA,kBAAmB;IACvCC,qBAAqB,EAAEA,qBAAsB;IAC7CU,cAAc,EAAEA,cAAe;IAC/BL,WAAW,EAAEA,WAAY;IACzBJ,iBAAiB,EAAEA;EAAkB,CACrC,CAAC,EACD/B,6DAAS,CAAC7S,UAAU,CAAC0U,kBAAkB,CAAC,CAAC,gBACzCt5B,0DAAA,CAAAA,uDAAA,qBACCA,0DAAA,CAACo3B,6FAAsB;IACtB1S,OAAO,EAAEA,OAAQ;IACjB7B,QAAQ,EAAE+B,UAAU,CAAC,CAAC,CAAE;IACxBmV,gBAAgB,EAAEA;EAAiB,CACnC,CAAC,EACDsB,oBAAoB,eACrBr7B,0DAAA,CAACk3B,8EAAS;IACTiC,6BAA6B,EAAEA,6BAA8B;IAC7DoC,uBAAuB,EAAEhvB,QAAQ,CAAC+C,KAAK,CAACypB,iCAAkC;IAC1EyC,QAAQ,EAAET,2BAA4B;IACtCG,SAAS,EAAEA;EAAU,CACrB,CACA,CAAC,gBAEHl7B,0DAAA,CAAAA,uDAAA,QACEo7B,eAAe,EACfC,oBACA,CAEO,CACV,CAAC;AAEL,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACvdD;AACA;AACA;AACA;AACA;;AAEsF;AAa7C;AAEZ;AACkB;AACR;AAGF;AAErC,MAAMQ,IAAI,GAAG/N,6DAAM,CAAC6N,mEAAM,CAAC,CAAA3N,UAAA;EAAArJ,WAAA;EAAAsJ,WAAA;AAAA,sBAE1B;AAED,SAAS6N,6BAA6BA,CACrCC,aAAqB,EACrBC,wBAAuC,EACvCx1B,CAAY,EACH;EACT,MAAMy1B,0BAA0B,GAAGz1B,CAAC,CAAC,+BAA+B,EAAE;IACrEkyB,YAAY,EAAG,wBAAuB;IACtCwD,MAAM,EAAEH;EACT,CAAC,CAAC;EACF,IAAIC,wBAAwB,CAAChb,QAAQ,CAACib,0BAA0B,CAAC,EAAE;IAClE,OAAOH,6BAA6B,CAACC,aAAa,GAAG,CAAC,EAAEC,wBAAwB,EAAEx1B,CAAC,CAAC;EACrF;EACA,OAAOy1B,0BAA0B;AAClC;AAYA,MAAMhF,YAAY,GAAG32B,IAAA,IAQkB;EAAA,IARjB;IACrBg7B,WAAW;IACXhC,kBAAkB;IAClB1U,UAAU;IACV4U,iBAAiB;IACjBD,qBAAqB;IACrBU,cAAc;IACdL;EACkB,CAAC,GAAAt5B,IAAA;EACnB,MAAM,CAACkG,CAAC,CAAC,GAAG4K,6DAAc,CAAC,CAAC;EAE5B,MAAMyB,WAAW,GAAG4oB,iDAAU,CAACC,gFAAmB,CAAC;EAEnD,MAAMS,sBAAsB,GAAGpK,6CAAM,CAAC,CAAC,CAAC;EACxC,MAAMqK,aAAa,GAAGt7B,kDAAW,CAAC,MAAM;IACvC,MAAMk7B,wBAAwB,GAAG90B,2CAAG,CACnC,CAAC,GAAGsyB,iBAAiB,EAAE,GAAG5U,UAAU,CAAC,EACpC7B,IAAI,IAAKA,IAAI,CAACgC,MAAM,EAAE5B,sBAAsB,IAAI,EAClD,CAAC;IACD,MAAMkZ,cAAc,GAAGP,6BAA6B,CAAC,CAAC,EAAEE,wBAAwB,EAAEx1B,CAAC,CAAC;IAEpFozB,WAAW,CAAE,GAAEuC,sBAAsB,CAACpY,OAAQ,EAAC,EAAE;MAChDZ,sBAAsB,EAAEkZ,cAAc;MACtCjZ,qBAAqB,EAAEwB,UAAU,CAAC,CAAC,CAAC,CAACG,MAAM,EAAE3B,qBAAqB;MAClEC,qBAAqB,EAAEuB,UAAU,CAAC,CAAC,CAAC,CAACG,MAAM,EAAE1B,qBAAqB;MAClEuU,yBAAyB,EAAE,QAAQ;MACnCtU,wBAAwB,EAAE;IAC3B,CAAC,CAAC;IACF6Y,sBAAsB,CAACpY,OAAO,IAAI,CAAC;IACnCwV,qBAAqB,CAAC3U,UAAU,CAACpO,MAAM,CAAC;EACzC,CAAC,EAAE,CAACgjB,iBAAiB,EAAE5U,UAAU,EAAEgV,WAAW,EAAEL,qBAAqB,EAAE/yB,CAAC,CAAC,CAAC;EAE1E,MAAM81B,eAAe,GAAGx7B,kDAAW,CAAC,MAAY;IAC/Cm5B,cAAc,CAACrV,UAAU,CAAC0U,kBAAkB,CAAC,CAAC/xB,EAAE,CAAC;IACjDgyB,qBAAqB,CAACD,kBAAkB,GAAG,CAAC,CAAC;EAC9C,CAAC,EAAE,CAAC1U,UAAU,EAAEqV,cAAc,EAAEX,kBAAkB,EAAEC,qBAAqB,CAAC,CAAC;EAE3E,MAAMgD,QAAQ,GAAGz7B,kDAAW,CAAC,MAAY;IACxC,MAAM07B,UAAU,GAAG3pB,WAAW,CAAC;MAC9BuB,KAAK,EAAE5N,CAAC,CAAC,8BAA8B,EAAE,kDAAkD,CAAC;MAC5FuN,SAAS,EAAEA,CAAA,KAAM;QAChBuoB,eAAe,CAAC,CAAC;QACjBE,UAAU,CAAC,CAAC;MACb,CAAC;MACDnoB,YAAY,EAAE7N,CAAC,CAAC,0BAA0B,EAAE,oBAAoB,CAAC;MACjEi2B,YAAY,EAAE,OAAO;MACrBvoB,aAAa,EAAE,IAAI;MACnBK,OAAO,EAAEA,CAAA,KAAMioB,UAAU,CAAC,CAAC;MAC3Bh8B,QAAQ,eACPR,0DAAA,CAACiT,oEAAO;QAACuB,GAAG,EAAC;MAAO,gBACnBxU,0DAAA,CAACkT,iEAAI;QAACjL,QAAQ,EAAC;MAAY,GACzBzB,CAAC,CACD,gCAAgC,EAChC,sFACD,CACK,CACE;IAEX,CAAC,CAAC;EACH,CAAC,EAAE,CAACqM,WAAW,EAAErM,CAAC,EAAE81B,eAAe,CAAC,CAAC;EAErC,MAAMxN,KAAK,GAAG7nB,8CAAO,CACpB,MACCC,2CAAG,CAAC0d,UAAU,EAAE,CAAC7B,IAAI,EAAEG,KAAK,kBAC3BljB,0DAAA,CAAC47B,qEAAQ;IAACt0B,GAAG,EAAEyb,IAAI,CAACxb,EAAG;IAACwP,MAAM,EAAEuiB,kBAAkB,KAAKpW;EAAM,GAC3D,mBACAljB,0DAAA,CAAAA,uDAAA,qBACCA,0DAAA,CAAC0tB,sEAAS;IACTgP,IAAI,EAAE,UAAW;IACjB,eAAc,qBAAoB3Z,IAAI,CAACgC,MAAM,EAAE+U,oBAAqB,EAAE;IACtE9N,OAAO,EAAEA,CAAA,KAAY;MACpBuN,qBAAqB,CAACrW,KAAK,CAAC;IAC7B,CAAE;IACF8L,WAAW,EAAC,YAAY;IACxBI,aAAa,EAAC,YAAY;IAC1BG,OAAO,EAAE;MAAE/a,GAAG,EAAE;IAAQ;EAAE,gBAE1BxU,0DAAA,CAAC2tB,gEAAG;IAACsB,KAAK,EAAC,MAAM;IAACG,aAAa,EAAC;EAAe,gBAC9CpvB,0DAAA,CAAC0tB,sEAAS;IAACsB,WAAW,EAAC,YAAY;IAACI,aAAa,EAAC,YAAY;IAACH,KAAK,EAAC;EAAK,gBACzEjvB,0DAAA,CAACiT,oEAAO;IAAC+Q,KAAK,EAAC;EAAO,gBACrBhkB,0DAAA,CAAC4tB,iEAAI;IAACniB,IAAI,EAAC,yBAAyB;IAACb,IAAI,EAAC,OAAO;IAACqf,KAAK,EAAC;EAAS,CAAE,CAC3D,CAAC,eACVjqB,0DAAA,CAACiT,oEAAO;IAAC+Q,KAAK,EAAC;EAAO,gBACrBhkB,0DAAA,CAACkT,iEAAI;IAACypB,MAAM,EAAC,SAAS;IAAC/xB,IAAI,EAAC;EAAO,GACjCmY,IAAI,CAACgC,MAAM,EAAE5B,sBACT,CACE,CAAC,eACVnjB,0DAAA,CAACiT,oEAAO;IAAC+Q,KAAK,EAAC;EAAO,gBACrBhkB,0DAAA,CAACkT,iEAAI;IAACypB,MAAM,EAAC,SAAS;IAAC/xB,IAAI,EAAC,OAAO;IAACqf,KAAK,EAAC;EAAW,GAAC,GACpD,EAACwN,iDAAS,CAAC1U,IAAI,CAAC,GAAGuY,WAAW,GAAGvY,IAAI,CAACgC,MAAM,EAAE1B,qBAAqB,EAAC,GAChE,CACE,CACC,CAAC,eACZrjB,0DAAA,CAAC0tB,sEAAS;IAACuB,KAAK,EAAC,KAAK;IAACG,aAAa,EAAC;EAAU,gBAC9CpvB,0DAAA,CAACkT,iEAAI;IAACypB,MAAM,EAAC,SAAS;IAAC/xB,IAAI,EAAC;EAAO,GACjC6sB,iDAAS,CAAC1U,IAAI,CAAC,GACbvc,CAAC,CAAC,eAAe,EAAE,SAAS,CAAC,GAC7BA,CAAC,CAAC,eAAe,EAAE,SAAS,CAC1B,CACI,CACP,CACK,CAAC,eACZxG,0DAAA,CAACgwB,oEAAO,MAAE,CACT,CAEM,CACV,CAAC,EACH,CAACsL,WAAW,EAAE1W,UAAU,EAAE0U,kBAAkB,EAAEC,qBAAqB,EAAE/yB,CAAC,CACvE,CAAC;EAED,oBACCxG,0DAAA,CAAAA,uDAAA,qBACCA,0DAAA,CAAC0tB,sEAAS;IACTwB,QAAQ,EAAC,wBAAwB;IACjCD,KAAK,EAAC,MAAM;IACZM,OAAO,EAAE;MAAE/a,GAAG,EAAE;IAAQ,CAAE;IAC1BxM,MAAM,EAAC,KAAK;IACZmpB,UAAU,EAAC,OAAO;IAClB/B,aAAa,EAAC;EAAY,gBAE1BpvB,0DAAA,CAACiT,oEAAO;IAACqe,UAAU,EAAC,QAAQ;IAACsL,MAAM,EAAC,OAAO;IAAC3N,KAAK,EAAC;EAAM,gBACvDjvB,0DAAA,CAACkT,iEAAI;IAACypB,MAAM,EAAC;EAAM,GAAEn2B,CAAC,CAAC,qBAAqB,EAAE,eAAe,CAAQ,CAC7D,CAAC,eACVxG,0DAAA,CAAC67B,IAAI,QAAE/M,KAAY,CACT,CAAC,eACZ9uB,0DAAA,CAAC2tB,gEAAG;IACH4B,OAAO,EAAE;MAAE+B,UAAU,EAAE,OAAO;MAAEsL,MAAM,EAAE;IAAQ,CAAE;IAClD3N,KAAK,EAAC,MAAM;IACZG,aAAa,EAAC,YAAY;IAC1B+B,UAAU,EAAC;EAAO,gBAElBnxB,0DAAA,CAACiT,oEAAO;IAAC+Q,KAAK,EAAC;EAAO,gBACrBhkB,0DAAA,CAAC8vB,mEAAM;IACNpkB,KAAK,EAAElF,CAAC,CAAC,mBAAmB,EAAE,aAAa,CAAE;IAC7CwlB,OAAO,EAAEoQ,aAAc;IACvBnS,KAAK,EAAC,SAAS;IACf/E,IAAI,EAAC;EAAU,CACf,CACO,CAAC,eACVllB,0DAAA,CAAC8vB,mEAAM;IACNpkB,KAAK,EAAElF,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAE;IACnCwlB,OAAO,EAAEuQ,QAAS;IAClBtS,KAAK,EAAC,OAAO;IACb/E,IAAI,EAAC,UAAU;IACfjO,QAAQ,EAAEwgB,iDAAS,CAAC7S,UAAU,CAAC0U,kBAAkB,CAAC;EAAE,CACpD,CACG,CAAC,eACNt5B,0DAAA,CAACiT,oEAAO;IAAC2pB,MAAM,EAAC;EAAO,CAAE,CACxB,CAAC;AAEL,CAAC;AAED,iEAAe3F,YAAY;;;;;;;;;;;;;;;;;;;;;;;;ACjN3B;AACA;AACA;AACA;AACA;;AAEmE;AAe1B;AACX;AACiB;AAGiB;AACf;AAgBjD,MAAMC,SAAS,GAAG52B,IAAA,IAKuB;EAAA,IALtB;IAClBi7B,uBAAuB;IACvBpC,6BAA6B;IAC7BqC,QAAQ;IACRN;EACe,CAAC,GAAA56B,IAAA;EAChB,MAAM,CAACkG,CAAC,CAAC,GAAG4K,6DAAc,CAAC,CAAC;EAE5B,MAAM,CAAC4rB,cAAc,EAAEC,iBAAiB,CAAC,GAAGlqB,+CAAQ,CAAS,GAAG,CAAC;EAEjE,MAAM,CAACmqB,WAAW,EAAEC,cAAc,CAAC,GAClCpqB,+CAAQ,CAA4DwoB,uBAAuB,CAAC;EAE7F,MAAM6B,kBAAkB,GAAGt8B,kDAAW,CACpCu8B,QAAQ,IAAK;IACb,SAASC,mCAAmCA,CAC3CC,GAAW,EACqE;MAChF,OAAO1e,kEAA0B,CAACmC,QAAQ,CAACuc,GAAG,CAAC;IAChD;IACA,IAAIF,QAAQ,IAAIC,mCAAmC,CAACD,QAAQ,CAAC,EAAE;MAC9DF,cAAc,CAACE,QAAQ,CAAC;MACxBlE,6BAA6B,CAACkE,QAAQ,CAAC;IACxC,CAAC,MAAM;MACN,MAAM,IAAIlnB,KAAK,CAAC,iDAAiD,CAAC;IACnE;EACD,CAAC,EACD,CAACgjB,6BAA6B,CAC/B,CAAC;EAED,MAAMqE,YAAY,GAAG18B,kDAAW,CAAC,MAAY;IAC5Cq8B,cAAc,CAAC5B,uBAAuB,CAAC;IACvCpC,6BAA6B,CAACoC,uBAAuB,CAAC;EACvD,CAAC,EAAE,CAACA,uBAAuB,EAAEpC,6BAA6B,CAAC,CAAC;EAE5D4D,0DAAQ,CAACvB,QAAQ,EAAEgC,YAAY,CAAC;EAEhC,MAAM5B,QAAQ,GAAG/jB,KAAA,IAA8D;IAAA,IAA7D;MAAEkL;IAAuC,CAAC,GAAAlL,KAAA;IAC3D,MAAM4lB,yBAAyB,GAAG38B,kDAAW,CAAC,MAAMm8B,iBAAiB,CAACla,IAAI,CAACxb,EAAE,CAAC,EAAE,CAACwb,IAAI,CAACxb,EAAE,CAAC,CAAC;IAC1F,oBACCvH,0DAAA,CAAAA,uDAAA,qBACCA,0DAAA,CAAC0tB,sEAAS;MACT1B,OAAO,EAAEyR,yBAA0B;MACnCzO,WAAW,EAAC,YAAY;MACxBI,aAAa,EAAC,YAAY;MAC1BG,OAAO,EAAE;QAAE/a,GAAG,EAAE;MAAQ;IAAE,gBAE1BxU,0DAAA,CAAC2tB,gEAAG;MAACsB,KAAK,EAAC,MAAM;MAACG,aAAa,EAAC;IAAe,gBAC9CpvB,0DAAA,CAAC0tB,sEAAS;MAACsB,WAAW,EAAC,YAAY;MAACI,aAAa,EAAC,YAAY;MAACH,KAAK,EAAC;IAAK,gBACzEjvB,0DAAA,CAACiT,oEAAO;MAAC+Q,KAAK,EAAC;IAAO,gBACrBhkB,0DAAA,CAACkT,iEAAI;MAACypB,MAAM,EAAC,SAAS;MAAC/xB,IAAI,EAAC;IAAO,GACjCmY,IAAI,CAACrX,KACD,CACE,CAAC,eACV1L,0DAAA,CAACiT,oEAAO;MAAC+Q,KAAK,EAAC;IAAO,gBACrBhkB,0DAAA,CAACkT,iEAAI;MAACypB,MAAM,EAAC,SAAS;MAAC/xB,IAAI,EAAC,OAAO;MAACqf,KAAK,EAAC;IAAW,GACnDlH,IAAI,CAACyB,KACD,CACE,CACC,CAAC,eACZxkB,0DAAA,CAAC0tB,sEAAS;MAACuB,KAAK,EAAC,KAAK;MAACG,aAAa,EAAC;IAAU,gBAC9CpvB,0DAAA,CAACkT,iEAAI;MAACypB,MAAM,EAAC,SAAS;MAAC/xB,IAAI,EAAC;IAAO,GACjCmY,IAAI,CAACiB,KACD,CACI,CACP,CAAC,eAENhkB,0DAAA,CAAC2tB,gEAAG;MAACsB,KAAK,EAAC;IAAK,CAAM,CACZ,CAAC,eACZjvB,0DAAA,CAACgwB,oEAAO,MAAE,CACT,CAAC;EAEL,CAAC;EAED,oBACChwB,0DAAA,CAAAA,uDAAA,qBACCA,0DAAA,CAAC0tB,sEAAS;IACTwB,QAAQ,EAAC,wBAAwB;IACjCD,KAAK,EAAC,MAAM;IACZM,OAAO,EAAE;MAAE/a,GAAG,EAAE;IAAQ,CAAE;IAC1BxM,MAAM,EAAC,KAAK;IACZmpB,UAAU,EAAC,OAAO;IAClB/B,aAAa,EAAC;EAAY,gBAE1BpvB,0DAAA,CAACiT,oEAAO;IAACqe,UAAU,EAAC,QAAQ;IAACsL,MAAM,EAAC,OAAO;IAAC3N,KAAK,EAAC;EAAM,gBACvDjvB,0DAAA,CAACkT,iEAAI;IAACypB,MAAM,EAAC;EAAM,GAAEn2B,CAAC,CAAC,iBAAiB,EAAE,WAAW,CAAQ,CACrD,CAAC,eACVxG,0DAAA,CAAC67B,iEAAI;IAAC/M,KAAK,EAAEoM,SAAU;IAACwC,aAAa,EAAE9B,QAAS;IAAC7kB,MAAM,EAAEimB,cAAe;IAACh1B,MAAM,EAAC;EAAK,CAAE,CAC7E,CAAC,eACZhI,0DAAA,CAAC2tB,gEAAG;IACH4B,OAAO,EAAE;MAAE+B,UAAU,EAAE;IAAQ,CAAE;IACjCrC,KAAK,EAAC,MAAM;IACZG,aAAa,EAAC,YAAY;IAC1B+B,UAAU,EAAC;EAAO,gBAElBnxB,0DAAA,CAACiT,oEAAO;IAAC+Q,KAAK,EAAC;EAAO,gBACrBhkB,0DAAA,CAAC8vB,mEAAM;IACNpkB,KAAK,EAAElF,CAAC,CAAC,oBAAoB,EAAE,cAAc,CAAE;IAC/CyjB,KAAK,EAAC,SAAS;IACf/E,IAAI,EAAC,UAAU;IACfjO,QAAQ;IACR+U,OAAO,EAAEvB,wCAAIA;EAAC,CACd,CACO,CAAC,eACVzqB,0DAAA,CAACiT,oEAAO;IAAC+Q,KAAK,EAAC;EAAO,gBACrBhkB,0DAAA,CAAC8vB,mEAAM;IACNpkB,KAAK,EAAElF,CAAC,CAAC,wBAAwB,EAAE,kBAAkB,CAAE;IACvDyjB,KAAK,EAAC,SAAS;IACf/E,IAAI,EAAC,UAAU;IACfjO,QAAQ;IACR+U,OAAO,EAAEvB,wCAAIA;EAAC,CACd,CACO,CAAC,eACVzqB,0DAAA,CAAC8vB,mEAAM;IACNpkB,KAAK,EAAElF,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAE;IACnCyjB,KAAK,EAAC,OAAO;IACb/E,IAAI,EAAC,UAAU;IACfjO,QAAQ;IACR+U,OAAO,EAAEvB,wCAAIA;EAAC,CACd,CACG,CAAC,eACNzqB,0DAAA,CAAC0tB,sEAAS;IACTwB,QAAQ,EAAC,wBAAwB;IACjCD,KAAK,EAAC,MAAM;IACZM,OAAO,EAAE;MAAE/a,GAAG,EAAE;IAAQ,CAAE;IAC1BxM,MAAM,EAAC,KAAK;IACZmpB,UAAU,EAAC,OAAO;IAClB/B,aAAa,EAAC;EAAY,gBAE1BpvB,0DAAA,CAAC88B,uEAAU;IACV/0B,KAAK,EAAE;MAAEknB,KAAK,EAAE,MAAM;MAAE0O,cAAc,EAAE;IAAa,CAAE;IACvD7tB,KAAK,EAAEotB,WAAY;IACnB/G,QAAQ,EAAEiH;EAAmB,gBAE7Bp9B,0DAAA,CAAC68B,kEAAK;IACL5N,KAAK,EAAC,MAAM;IACZvjB,KAAK,EAAElF,CAAC,CACP,8BAA8B,EAC9B,gDACD,CAAE;IACFsJ,KAAK,EAAE;EAAQ,CACf,CAAC,eACF9P,0DAAA,CAAC68B,kEAAK;IACLnxB,KAAK,EAAElF,CAAC,CACP,4BAA4B,EAC5B,wDACD,CAAE;IACFsJ,KAAK,EAAE;EAAS,CAChB,CAAC,eACF9P,0DAAA,CAAC68B,kEAAK;IACLnxB,KAAK,EAAElF,CAAC,CACP,yBAAyB,EACzB,sEACD,CAAE;IACFsJ,KAAK,EAAE;EAAO,CACd,CAAC,eACF9P,0DAAA,CAAC68B,kEAAK;IACLnxB,KAAK,EAAElF,CAAC,CAAC,iBAAiB,EAAE,oCAAoC,CAAE;IAClEsJ,KAAK,EAAE;EAAO,CACd,CACU,CAAC,eACb9P,0DAAA,CAACiT,oEAAO;IAAC2pB,MAAM,EAAC;EAAO,CAAE,CACf,CACV,CAAC;AAEL,CAAC;AAED,iEAAe1F,SAAS;;;;;;;;;;;;;;;;;;;;AClNxB;AACA;AACA;AACA;AACA;;AAEuF;AAEY;AACpD;AAa/C,MAAMC,eAAe,GAAG72B,IAAA,IAGkB;EAAA,IAHjB;IACxBu5B,aAAa;IACbE;EACqB,CAAC,GAAAz5B,IAAA;EACtB,MAAM,CAACkG,CAAC,CAAC,GAAG4K,6DAAc,CAAC,CAAC;EAC5B,MAAM,CAACysB,YAAY,EAAEC,eAAe,CAAC,GAAG/qB,+CAAQ,CAAC8mB,aAAa,CAAC1W,sBAAsB,CAAC;EACtF,MAAM4a,YAAY,GAAG92B,8CAAO,CAAC,MAAMT,CAAC,CAAC,oBAAoB,EAAE,cAAc,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC;EAChFyK,gDAAS,CAAC,MAAM;IACf6sB,eAAe,CAACjE,aAAa,CAAC1W,sBAAsB,CAAC;EACtD,CAAC,EAAE,CAAC0W,aAAa,CAAC1W,sBAAsB,CAAC,CAAC;EAE1C,MAAMgT,QAAQ,GAAGr1B,kDAAW,CAC1Bk0B,EAAE,IAAK;IACP8I,eAAe,CAAC9I,EAAE,CAACgJ,MAAM,CAACluB,KAAK,CAAC;IAChC,IAAI+pB,aAAa,CAACC,oBAAoB,EAAE;MACvCC,gBAAgB,CACfF,aAAa,CAACC,oBAAoB,EAClC,wBAAwB,EACxB9E,EAAE,CAACgJ,MAAM,CAACluB,KACX,CAAC;IACF;EACD,CAAC,EACD,CAAC+pB,aAAa,CAACC,oBAAoB,EAAEC,gBAAgB,CACtD,CAAC;EAED,oBACC/5B,0DAAA,CAAAA,uDAAA,qBACCA,0DAAA,CAAC0tB,sEAAS;IACTwB,QAAQ,EAAC,wBAAwB;IACjCD,KAAK,EAAC,MAAM;IACZM,OAAO,EAAE;MAAE/a,GAAG,EAAE;IAAQ,CAAE;IAC1BxM,MAAM,EAAC,KAAK;IACZmpB,UAAU,EAAE,OAAQ;IACpB/B,aAAa,EAAC;EAAY,gBAE1BpvB,0DAAA,CAACiT,oEAAO;IAACqe,UAAU,EAAC,QAAQ;IAACrC,KAAK,EAAC;EAAM,gBACxCjvB,0DAAA,CAACkT,iEAAI;IAACypB,MAAM,EAAC;EAAM,GAAEn2B,CAAC,CAAC,wBAAwB,EAAE,kBAAkB,CAAQ,CACnE,CACC,CAAC,eACZxG,0DAAA,CAAC2tB,gEAAG;IACHsB,KAAK,EAAC,MAAM;IACZM,OAAO,EAAE;MAAE+B,UAAU,EAAE,OAAO;MAAEsL,MAAM,EAAE;IAAQ,CAAE;IAClD50B,MAAM,EAAC,KAAK;IACZmpB,UAAU,EAAE,OAAQ;IACpB/B,aAAa,EAAC;EAAY,gBAE1BpvB,0DAAA,CAAC2tB,gEAAG;IAACqB,WAAW,EAAC,UAAU;IAACI,aAAa,EAAC,YAAY;IAACH,KAAK,EAAC;EAAM,gBAClEjvB,0DAAA,CAAC2tB,gEAAG;IAACqB,WAAW,EAAC,YAAY;IAACC,KAAK,EAAC,MAAM;IAACG,aAAa,EAAC;EAAY,gBACpEpvB,0DAAA,CAACkT,iEAAI;IAAC+W,KAAK,EAAC;EAAW,GACrBzjB,CAAC,CACD,0BAA0B,EAC1B,4EACD,CACK,CACF,CAAC,eACNxG,0DAAA,CAAC2tB,gEAAG;IAACqB,WAAW,EAAC,YAAY;IAACC,KAAK,EAAC,MAAM;IAACG,aAAa,EAAC;EAAY,gBACpEpvB,0DAAA,CAACkT,iEAAI;IAAC+W,KAAK,EAAC;EAAW,GACrBzjB,CAAC,CACD,0BAA0B,EAC1B,qGACD,CACK,CACF,CACD,CACD,CAAC,eACNxG,0DAAA,CAAC2tB,gEAAG;IACHsB,KAAK,EAAC,MAAM;IACZM,OAAO,EAAE;MAAE+B,UAAU,EAAE,OAAO;MAAEsL,MAAM,EAAE;IAAQ,CAAE;IAClD50B,MAAM,EAAC,KAAK;IACZmpB,UAAU,EAAE,OAAQ;IACpB/B,aAAa,EAAC;EAAY,gBAE1BpvB,0DAAA,CAAC2tB,gEAAG;IAAC2B,kBAAkB;EAAA,gBACtBtvB,0DAAA,CAAC49B,kEAAK;IAAClyB,KAAK,EAAEqyB,YAAa;IAACjuB,KAAK,EAAE+tB,YAAa;IAAC1H,QAAQ,EAAEA;EAAS,CAAE,CAClE,CACD,CAAC,eAENn2B,0DAAA,CAACiT,oEAAO;IAAC2pB,MAAM,EAAC;EAAO,CAAE,CACxB,CAAC;AAEL,CAAC;AAED,iEAAezF,eAAe;;;;;;;;;;;;;;;;;;;;ACxG9B;AACA;AACA;AACA;AACA;;AAEuF;AAEY;AACpD;AAc/C,MAAMC,sBAAsB,GAAG92B,IAAA,IAIkB;EAAA,IAJjB;IAC/BokB,OAAO;IACP7B,QAAQ;IACRkX;EAC4B,CAAC,GAAAz5B,IAAA;EAC7B,MAAM,CAACkG,CAAC,CAAC,GAAG4K,6DAAc,CAAC,CAAC;EAC5B,MAAM6sB,UAAU,GAAGh3B,8CAAO,CAAC,MAAMT,CAAC,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC;EACjF,MAAM,CAAC03B,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGprB,+CAAQ,CACvD8P,QAAQ,EAAEkC,MAAM,EAAE5B,sBACnB,CAAC;EAEDlS,gDAAS,CACR,MAAMktB,mBAAmB,CAACtb,QAAQ,CAACkC,MAAM,EAAE5B,sBAAsB,CAAC,EAClE,CAACN,QAAQ,CAACkC,MAAM,EAAE5B,sBAAsB,CACzC,CAAC;EACD,MAAMib,YAAY,GAAGn3B,8CAAO,CAAC,MAAMT,CAAC,CAAC,oBAAoB,EAAE,cAAc,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC;EAEhF,MAAM63B,gBAAgB,GAAGv9B,kDAAW,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;EACpD,MAAMq1B,QAAQ,GAAGr1B,kDAAW,CAC1Bk0B,EAAE,IAAW;IACbmJ,mBAAmB,CAACnJ,EAAE,CAACgJ,MAAM,CAACluB,KAAK,CAAC;IACpCiqB,gBAAgB,CAAClX,QAAQ,CAACtb,EAAE,EAAE,wBAAwB,EAAEytB,EAAE,CAACgJ,MAAM,CAACluB,KAAK,CAAC;EACzE,CAAC,EACD,CAAC+S,QAAQ,CAACtb,EAAE,EAAEwyB,gBAAgB,CAC/B,CAAC;EAED,oBACC/5B,0DAAA,CAAAA,uDAAA,qBACCA,0DAAA,CAAC0tB,sEAAS;IACTwB,QAAQ,EAAC,wBAAwB;IACjCD,KAAK,EAAC,MAAM;IACZM,OAAO,EAAE;MAAE/a,GAAG,EAAE;IAAQ,CAAE;IAC1BxM,MAAM,EAAC,KAAK;IACZmpB,UAAU,EAAC,OAAO;IAClB/B,aAAa,EAAC;EAAY,gBAE1BpvB,0DAAA,CAACiT,oEAAO;IAACqe,UAAU,EAAC,QAAQ;IAACrC,KAAK,EAAC;EAAM,gBACxCjvB,0DAAA,CAACkT,iEAAI;IAACypB,MAAM,EAAC;EAAM,GAAEn2B,CAAC,CAAC,uBAAuB,EAAE,0BAA0B,CAAQ,CAC1E,CACC,CAAC,eACZxG,0DAAA,CAAC2tB,gEAAG;IACHsB,KAAK,EAAC,MAAM;IACZM,OAAO,EAAE;MAAE+B,UAAU,EAAE,OAAO;MAAEsL,MAAM,EAAE;IAAQ,CAAE;IAClD50B,MAAM,EAAC,KAAK;IACZmpB,UAAU,EAAC,OAAO;IAClB/B,aAAa,EAAC;EAAY,gBAE1BpvB,0DAAA,CAAC2tB,gEAAG;IAACsB,KAAK,EAAC,KAAK;IAACM,OAAO,EAAE;MAAEvL,KAAK,EAAE;IAAQ;EAAE,gBAC5ChkB,0DAAA,CAAC49B,kEAAK;IAAClyB,KAAK,EAAEuyB,UAAW;IAACnuB,KAAK,EAAE4U,OAAO,CAACne,IAAI,IAAI,GAAI;IAAC4vB,QAAQ,EAAEkI;EAAiB,CAAE,CAC/E,CAAC,eACNr+B,0DAAA,CAAC2tB,gEAAG;IAACsB,KAAK,EAAC;EAAK,gBACfjvB,0DAAA,CAAC49B,kEAAK;IAAClyB,KAAK,EAAE0yB,YAAa;IAACtuB,KAAK,EAAEouB,gBAAiB;IAAC/H,QAAQ,EAAEA;EAAS,CAAE,CACtE,CACD,CAAC,eACNn2B,0DAAA,CAACiT,oEAAO;IAAC2pB,MAAM,EAAC;EAAO,CAAE,CACxB,CAAC;AAEL,CAAC;AAED,iEAAexF,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;AClFrC;AACA;AACA;AACA;AACA;;AAEuF;AAgB9C;AACH;AACS;AAGa;AAY5D,MAAMoH,SAAqB,GAAG;EAAE9yB,KAAK,EAAE,EAAE;EAAEoE,KAAK,EAAE;AAAG,CAAC;AAEtD,MAAMunB,oBAAoB,GAAG/2B,IAAA,IAIkB;EAAA,IAJjB;IAC7Bu5B,aAAa;IACbE,gBAAgB;IAChBe;EAC0B,CAAC,GAAAx6B,IAAA;EAC3B,MAAM,CAACkG,CAAC,CAAC,GAAG4K,6DAAc,CAAC,CAAC;EAC5B,MAAMgD,KAAK,GAAGnN,8CAAO,CAAC,MAAMT,CAAC,CAAC,8BAA8B,EAAE,4BAA4B,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC;EACjG,MAAM,CAACi4B,mBAAmB,EAAEC,sBAAsB,CAAC,GAAG3rB,+CAAQ,CAC7D8mB,aAAa,CAACvW,wBAAwB,KAAK,MAC5C,CAAC;EACD,MAAM,CAACqb,cAAc,EAAEC,iBAAiB,CAAC,GAAG7rB,+CAAQ,CACnD8mB,aAAa,CAACrW,wBAAwB,IAAI,EAC3C,CAAC;EACD,MAAM,CAACqb,YAAY,EAAEC,eAAe,CAAC,GAAG/rB,+CAAQ,CAAC,KAAK,CAAC;EACvD,MAAM,CAACgsB,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGjsB,+CAAQ,CACvD8mB,aAAa,CAACzW,qBAAqB,IAAI,EACxC,CAAC;EACD,MAAM,CAAC6b,cAAc,EAAEC,iBAAiB,CAAC,GAAGnsB,+CAAQ,CACnD8mB,aAAa,CAACtW,wBAAwB,IAAI,EAC3C,CAAC;EACD,MAAM4b,gBAAgB,GAAGl4B,8CAAO,CAC/B,MACC6zB,uBAAuB,GACpBA,uBAAuB,CAAC5zB,GAAG,CAAEk4B,OAAO,KAAkB;IAAEtvB,KAAK,EAAEsvB,OAAO;IAAE1zB,KAAK,EAAE0zB;EAAQ,CAAC,CAAC,CAAC,GAC1F,CAACZ,SAAS,CAAC,EACf,CAAC1D,uBAAuB,CACzB,CAAC;EACD,MAAM,CAACuE,WAAW,EAAEC,cAAc,CAAC,GAAGvsB,+CAAQ,CAC7C,MACCI,4CAAI,CAACgsB,gBAAgB,EAAGpc,IAAI,IAAKA,IAAI,CAACjT,KAAK,KAAK+pB,aAAa,CAACxW,qBAAqB,CAAC,IACpFmb,SACF,CAAC;EAEDvtB,gDAAS,CAAC,MAAM;IACfytB,sBAAsB,CAAC7E,aAAa,CAACvW,wBAAwB,KAAK,MAAM,CAAC;EAC1E,CAAC,EAAE,CAACuW,aAAa,CAACvW,wBAAwB,CAAC,CAAC;EAC5CrS,gDAAS,CAAC,MAAM;IACf+tB,mBAAmB,CAACnF,aAAa,CAACzW,qBAAqB,IAAI,EAAE,CAAC;EAC/D,CAAC,EAAE,CAACyW,aAAa,CAACzW,qBAAqB,CAAC,CAAC;EACzCnS,gDAAS,CAAC,MAAM;IACfquB,cAAc,CACbnsB,4CAAI,CAACgsB,gBAAgB,EAAGpc,IAAI,IAAKA,IAAI,CAACjT,KAAK,KAAK+pB,aAAa,CAACxW,qBAAqB,CAAC,IACnFmb,SACF,CAAC;EACF,CAAC,EAAE,CAACW,gBAAgB,EAAEtF,aAAa,CAACxW,qBAAqB,CAAC,CAAC;EAC3DpS,gDAAS,CAAC,MAAM;IACfiuB,iBAAiB,CAACrF,aAAa,CAACtW,wBAAwB,IAAI,EAAE,CAAC;EAChE,CAAC,EAAE,CAACsW,aAAa,CAACtW,wBAAwB,CAAC,CAAC;EAC5CtS,gDAAS,CAAC,MAAM;IACf2tB,iBAAiB,CAAC/E,aAAa,CAACrW,wBAAwB,IAAI,EAAE,CAAC;EAChE,CAAC,EAAE,CAACqW,aAAa,CAACrW,wBAAwB,CAAC,CAAC;EAE5C,MAAM+b,qBAAqB,GAAGz+B,kDAAW,CAAC,MAAM;IAC/C49B,sBAAsB,CAAE9kB,SAAS,IAAK;MACrC,MAAM4lB,QAAQ,GAAG,CAAC5lB,SAAS;MAC3B,IAAIigB,aAAa,CAACC,oBAAoB,EAAE;QACvCC,gBAAgB,CACfF,aAAa,CAACC,oBAAoB,EAClC,0BAA0B,EAC1BlgB,SAAS,GAAG,OAAO,GAAG,MACvB,CAAC;MACF;MACA,OAAO4lB,QAAQ;IAChB,CAAC,CAAC;EACH,CAAC,EAAE,CAAC3F,aAAa,CAACC,oBAAoB,EAAEC,gBAAgB,CAAC,CAAC;EAE1D,MAAM0F,gBAAgB,GAAGx4B,8CAAO,CAAC,MAAMT,CAAC,CAAC,iBAAiB,EAAE,cAAc,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC;EACjF,MAAMk5B,wBAAgD,GAAInX,CAAC,IAAK;IAC/DyW,mBAAmB,CAACzW,CAAC,CAACyV,MAAM,CAACluB,KAAK,CAAC;IACnC,IAAI+pB,aAAa,CAACC,oBAAoB,EAAE;MACvCC,gBAAgB,CAACF,aAAa,CAACC,oBAAoB,EAAE,uBAAuB,EAAEvR,CAAC,CAACyV,MAAM,CAACluB,KAAK,CAAC;IAC9F;EACD,CAAC;EAED,MAAM6vB,gBAAgB,GAAG14B,8CAAO,CAAC,MAAMT,CAAC,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC;EAE1E,MAAMo5B,mBAAmB,GAAG9+B,kDAAW,CACrC++B,UAAU,IAAK;IACf,IAAI,CAACA,UAAU,EAAE;MAChB;IACD;IAEA,IAAIR,WAAW,EAAEvvB,KAAK,KAAK+vB,UAAU,EAAE;MACtC;IACD;IACAP,cAAc,CAAC3wB,8CAAM,CAACwwB,gBAAgB,EAAGpc,IAAI,IAAKA,IAAI,CAACjT,KAAK,KAAK+vB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,IAAIhG,aAAa,CAACC,oBAAoB,EAAE;MACvCC,gBAAgB,CAACF,aAAa,CAACC,oBAAoB,EAAE,uBAAuB,EAAE+F,UAAU,CAAC;IAC1F;EACD,CAAC,EACD,CAACR,WAAW,EAAEvvB,KAAK,EAAEqvB,gBAAgB,EAAEtF,aAAa,CAACC,oBAAoB,EAAEC,gBAAgB,CAC5F,CAAC;EAED,MAAM+F,mBAAmB,GAAGt5B,CAAC,CAC5B,0BAA0B,EAC1B,gDACD,CAAC;EAED,MAAMu5B,mBAAmB,GAAG94B,8CAAO,CAClC,MAAMT,CAAC,CAAC,8BAA8B,EAAE,gBAAgB,CAAC,EACzD,CAACA,CAAC,CACH,CAAC;EACD,MAAMw5B,0BAA0B,GAAGl/B,kDAAW,CAC5CynB,CAAC,IAAK;IACN2W,iBAAiB,CAAC3W,CAAC,CAACyV,MAAM,CAACluB,KAAK,CAAC;IACjC,IAAI+pB,aAAa,CAACC,oBAAoB,EAAE;MACvCC,gBAAgB,CACfF,aAAa,CAACC,oBAAoB,EAClC,0BAA0B,EAC1BvR,CAAC,CAACyV,MAAM,CAACluB,KACV,CAAC;IACF;EACD,CAAC,EACD,CAAC+pB,aAAa,CAACC,oBAAoB,EAAEC,gBAAgB,CACtD,CAAC;EAED,MAAMkG,mBAAmB,GAAGh5B,8CAAO,CAAC,MAAMT,CAAC,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC;EAE9F,MAAM05B,sBAAsB,GAAGp/B,kDAAW,CACxCgP,KAAa,IAAK;IAClB8uB,iBAAiB,CAAC9uB,KAAK,CAAC;IACxB,IAAI+pB,aAAa,CAACC,oBAAoB,EAAE;MACvCC,gBAAgB,CAACF,aAAa,CAACC,oBAAoB,EAAE,0BAA0B,EAAEhqB,KAAK,CAAC;IACxF;EACD,CAAC,EACD,CAACiqB,gBAAgB,EAAEF,aAAa,CAACC,oBAAoB,CACtD,CAAC;EAED,MAAMqG,mBAAmB,GAAGl5B,8CAAO,CAClC,MAAsB,CACrB;IACCM,EAAE,EAAE,GAAG;IACPmE,KAAK,EAAEmuB,aAAa,CAACxW,qBAAqB,IAAI,EAAE;IAChD2I,OAAO,EAAEA,CAAA,KAAMkU,sBAAsB,CAACrG,aAAa,CAACxW,qBAAqB,IAAI,EAAE;EAChF,CAAC,CACD,EACD,CAACwW,aAAa,CAACxW,qBAAqB,EAAE6c,sBAAsB,CAC7D,CAAC;EAED,MAAME,YAAY,GAAGn5B,8CAAO,CAC3B,MAAMw3B,mBAAmB,IAAI,CAAC9hB,8DAAsB,CAAC0jB,IAAI,CAAC1B,cAAc,IAAI,EAAE,CAAC,EAC/E,CAACF,mBAAmB,EAAEE,cAAc,CACrC,CAAC;EAED,oBACC3+B,0DAAA,CAAAA,uDAAA,qBACCA,0DAAA,CAAC0tB,sEAAS;IACTwB,QAAQ,EAAC,wBAAwB;IACjCD,KAAK,EAAC,MAAM;IACZM,OAAO,EAAE;MAAE/a,GAAG,EAAE;IAAQ,CAAE;IAC1BxM,MAAM,EAAC,KAAK;IACZmpB,UAAU,EAAE,OAAQ;IACpB/B,aAAa,EAAC;EAAY,gBAE1BpvB,0DAAA,CAACiT,oEAAO;IAACqe,UAAU,EAAC,QAAQ;IAACrC,KAAK,EAAC;EAAM,gBACxCjvB,0DAAA,CAACkT,iEAAI;IAACypB,MAAM,EAAC;EAAM,GAAEvoB,KAAY,CACzB,CACC,CAAC,eACZpU,0DAAA,CAAC2tB,gEAAG;IACHsB,KAAK,EAAC,MAAM;IACZM,OAAO,EAAE;MAAE+B,UAAU,EAAE,OAAO;MAAEsL,MAAM,EAAE;IAAQ,CAAE;IAClD50B,MAAM,EAAC,KAAK;IACZmpB,UAAU,EAAE,OAAQ;IACpB/B,aAAa,EAAC;EAAY,gBAE1BpvB,0DAAA,CAAC2tB,gEAAG;IAACsB,KAAK,EAAE,KAAM;IAACM,OAAO,EAAE;MAAEvL,KAAK,EAAE;IAAQ;EAAE,gBAE9ChkB,0DAAA,CAAC49B,kEAAK;IACLlyB,KAAK,EAAE+zB,gBAAiB;IACxB3vB,KAAK,EAAEivB,gBAAiB;IACxB5I,QAAQ,EAAEuJ;EAAyB,CACnC,CACG,CAAC,eACN1/B,0DAAA,CAAC2tB,gEAAG;IAACsB,KAAK,EAAC;EAAK,gBAEfjvB,0DAAA,CAACu+B,mEAAM;IACN7yB,KAAK,EAAEi0B,gBAAiB;IACxBW,SAAS,EAAEjB,WAAY;IACvBvQ,KAAK,EAAEqQ,gBAAiB;IACxBoB,YAAY,EAAE,KAAM;IACpBpP,UAAU,EAAE,OAAQ;IACpBgF,QAAQ,EAAEyJ;EAAoB,CAC9B,CACG,CACD,CAAC,eACN5/B,0DAAA,CAAC2tB,gEAAG;IACHsB,KAAK,EAAC,MAAM;IACZkC,UAAU,EAAE,OAAQ;IACpB/B,aAAa,EAAC,YAAY;IAC1BG,OAAO,EAAE;MAAE+B,UAAU,EAAE,OAAO;MAAEsL,MAAM,EAAE;IAAQ;EAAE,gBAGlD58B,0DAAA,CAACs+B,qEAAQ;IACR5yB,KAAK,EAAEo0B,mBAAoB;IAC3BhwB,KAAK,EAAE2uB,mBAAoB;IAC3BzS,OAAO,EAAEuT;EAAsB,CAC/B,CACG,CAAC,eACNv/B,0DAAA,CAAC2tB,gEAAG;IACHsB,KAAK,EAAC,MAAM;IACZM,OAAO,EAAE;MAAE+B,UAAU,EAAE,OAAO;MAAEsL,MAAM,EAAE;IAAQ,CAAE;IAClD50B,MAAM,EAAC,KAAK;IACZmpB,UAAU,EAAE,OAAQ;IACpB/B,aAAa,EAAC;EAAY,gBAE1BpvB,0DAAA,CAAC2tB,gEAAG;IAACsB,KAAK,EAAC,KAAK;IAACM,OAAO,EAAE;MAAEvL,KAAK,EAAE;IAAQ;EAAE,gBAE5ChkB,0DAAA,CAAC49B,kEAAK;IACLlyB,KAAK,EAAEq0B,mBAAoB;IAC3BjwB,KAAK,EAAEmvB,cAAe;IACtBhoB,QAAQ,EAAE,CAACwnB,mBAAoB;IAC/BtI,QAAQ,EAAE6J;EAA2B,CACrC,CACG,CAAC,eACNhgC,0DAAA,CAAC2tB,gEAAG;IAACsB,KAAK,EAAC;EAAK,gBAEfjvB,0DAAA,CAAC6tB,qEAAQ;IACRiB,KAAK,EAAEqR,mBAAoB;IAC3B3J,SAAS,EAAC,cAAc;IACxBzuB,KAAK,EAAE;MAAE8tB,QAAQ,EAAE;IAAI,CAAE;IACzBthB,OAAO,EAAEA,CAAA,KAAYuqB,eAAe,CAAC,KAAK,CAAE;IAC5C/P,MAAM,EAAEA,CAAA,KAAY+P,eAAe,CAAC,IAAI,CAAE;IAC1C7nB,QAAQ,EAAE,CAACwnB;EAAoB,gBAE/Bz+B,0DAAA,CAAC49B,kEAAK;IACLlyB,KAAK,EAAEu0B,mBAAoB;IAC3BnwB,KAAK,EAAE6uB,cAAe;IACtBxI,QAAQ,EAAGnB,EAAE,IAAWkL,sBAAsB,CAAClL,EAAE,CAACgJ,MAAM,CAACluB,KAAK,CAAE;IAChE0wB,QAAQ,EAAEJ,YAAa;IACvBK,UAAU,EAAEA,CAAA,kBACXzgC,0DAAA,CAAC4tB,iEAAI;MAACniB,IAAI,EAAEozB,YAAY,GAAG,SAAS,GAAG;IAAY,CAAE,CACpD;IACF5nB,QAAQ,EAAE,CAACwnB;EAAoB,CAC/B,CACQ,CACN,CACD,CAAC,eACNz+B,0DAAA,CAACiT,oEAAO;IAAC2pB,MAAM,EAAC;EAAO,CAAE,CACxB,CAAC;AAEL,CAAC;AAED,iEAAevF,oBAAoB;;;;;;;;;;;;;;;;;;;;;AC3RnC;AACA;AACA;AACA;AACA;;AAEuC;AAE2B;AAEvB;AACgC;AAM3E,MAAMsJ,kBAAkB,GAAGrgC,IAAA,IAA8D;EAAA,IAA7D;IAAEE;EAAkC,CAAC,GAAAF,IAAA;EAChE,MAAMkG,CAAC,GAAG0pB,iDAAI,CAAC,CAAC;EAChB,MAAM0Q,UAAU,GAAG35B,8CAAO,CAAC,MAAMy5B,oFAAoB,CAACl6B,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC;EAC9D,oBACCxG,0DAAA,CAAC0tB,sEAAS;IACT0B,aAAa,EAAC,YAAY;IAC1BD,cAAc,EAAC,YAAY;IAC3B0R,GAAG,EAAC,MAAM;IACVtR,OAAO,EAAE,OAAQ;IACjBL,QAAQ,EAAC,wBAAwB;IACjCD,KAAK,EAAC,KAAK;IACXjnB,MAAM,EAAE,KAAM;IACdT,EAAE,EAAEq5B,UAAU,CAACr5B,EAAG;IAClB4pB,UAAU,EAAE;EAAQ,gBAEpBnxB,0DAAA,CAACkT,iEAAI;IAACypB,MAAM,EAAE,MAAO;IAAC/xB,IAAI,EAAE;EAAS,GACnCg2B,UAAU,CAACl1B,KACP,CAAC,EACNlL,QACS,CAAC;AAEd,CAAC;AAED,iEAAemgC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;ACxCjC;AACA;AACA;AACA;AACA;;AAEqF;AAEe;AACtE;AAGuC;AACG;AAIf;AACd;AAS3C,MAAMG,uBAAuB,GAAGxgC,IAAA,IAG8B;EAAA,IAH7B;IAChCygC,MAAM;IACNC;EAC6B,CAAC,GAAA1gC,IAAA;EAC9B,MAAM;IAAE8V;EAAmB,CAAC,GAAGqlB,iDAAU,CAACxlB,uEAAqB,CAAC;EAChE,MAAMmK,qBAAqB,GAAGF,iGAAwB,CAAC,CAAC;EACxD,MAAM,CAACogB,SAAS,EAAEW,YAAY,CAAC,GAAGluB,+CAAQ,CAAa,CAAC;EAExD,MAAMvM,CAAC,GAAG0pB,iDAAI,CAAC,CAAC;EAChB,MAAMpB,KAAK,GAAG7nB,8CAAO,CACpB,MAA4B,CAC3B;IACCyE,KAAK,EAAElF,CAAC,CAAC,6BAA6B,EAAE,MAAM,CAAC;IAC/CsJ,KAAK,EAAE;EACR,CAAC,EACD;IACCpE,KAAK,EAAElF,CAAC,CAAC,gCAAgC,EAAE,SAAS,CAAC;IACrDsJ,KAAK,EAAE;EACR,CAAC,EACD;IACCpE,KAAK,EAAElF,CAAC,CAAC,iCAAiC,EAAE,UAAU,CAAC;IACvDsJ,KAAK,EAAE;EACR,CAAC,CACD,EACD,CAACtJ,CAAC,CACH,CAAC;EAED,MAAM06B,iBAAiB,GAAGpgC,kDAAW,CACnCgP,KAA2B,IAAK;IAChC,MAAMiT,IAAI,GAAG5P,4CAAI,CAAC2b,KAAK,EAAE;MAAEhf;IAAM,CAAC,CAAC;IACnC,IAAIiT,IAAI,EAAE;MACTke,YAAY,CAACle,IAAI,CAAC;IACnB;IACA3M,kBAAkB,CAACtG,KAAK,CAAC;EAC1B,CAAC,EACD,CAACgf,KAAK,EAAE1Y,kBAAkB,CAC3B,CAAC;EAED,MAAM+qB,iBAAiB,GAAGrgC,kDAAW,CACnCgP,KAAK,IAAK;IACV,IAAIgR,+FAAsB,CAAChR,KAAK,CAAC,EAAE;MAClC,IAAIA,KAAK,EAAE;QACVoxB,iBAAiB,CAACpxB,KAAK,CAAC;MACzB;MACA,IAAIA,KAAK,KAAKsQ,qBAAqB,EAAE;QACpC2gB,MAAM,CAAC,OAAO,EAAE7iB,4DAAoB,EAAE;UAAE3S,GAAG,EAAEpL,oDAAY;UAAE2P;QAAM,CAAC,CAAC;MACpE,CAAC,MAAM;QACNkxB,SAAS,CAAC,OAAO,EAAE9iB,4DAAoB,CAAC;MACzC;IACD;EACD,CAAC,EACD,CAAC6iB,MAAM,EAAE3gB,qBAAqB,EAAE4gB,SAAS,EAAEE,iBAAiB,CAC7D,CAAC;EAEDjwB,gDAAS,CAAC,MAAM;IACf,IAAImP,qBAAqB,EAAE;MAC1B8gB,iBAAiB,CAAC9gB,qBAAqB,CAAC;IACzC;EACD,CAAC,EAAE,CAACA,qBAAqB,EAAE0O,KAAK,EAAEoS,iBAAiB,CAAC,CAAC;EAErD,IAAI,CAACZ,SAAS,EAAE;IACf,OAAO,IAAI;EACZ;EACA,oBACCtgC,0DAAA,CAAAA,uDAAA,qBACCA,0DAAA,CAACkT,iEAAI;IAACtI,IAAI,EAAC,QAAQ;IAAC+xB,MAAM,EAAC;EAAM,GAC/Bn2B,CAAC,CAAC,gCAAgC,EAAE,eAAe,CAC/C,CAAC,eACPxG,0DAAA,CAACu+B,mEAAM;IACNzP,KAAK,EAAEA,KAAM;IACbwR,SAAS,EAAEA,SAAU;IACrB50B,KAAK,EAAElF,CAAC,CAAC,4BAA4B,EAAE,WAAW,CAAE;IACpD2vB,QAAQ,EAAEgL;EAAkB,CAC5B,CACA,CAAC;AAEL,CAAC;AAED,iEAAeL,uBAAuB;;;;;;;;;;;;;;;;;;;;;;ACzGtC;AACA;AACA;AACA;AACA;;AAEuC;AAEkC;AAC1B;AAEE;AACuB;AAEjE,MAAMQ,MAAM,GAAGA,CAAA,KAAyB;EAC9C,MAAM,CAAC96B,CAAC,CAAC,GAAG4K,6DAAc,CAAC,CAAC;EAE5B,MAAMmwB,YAAY,GAAGt6B,8CAAO,CAAC,MAAMo6B,iFAAiB,CAAC76B,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC;EAE7D,oBACCxG,0DAAA,CAACohC,2EAAc;IACd11B,KAAK,EAAE61B,YAAY,CAAC71B,KAAM;IAC1BwjB,QAAQ,EAAC,wBAAwB;IACjCD,KAAK,EAAC,KAAK;IACX1nB,EAAE,EAAEg6B,YAAY,CAACh6B;EAAG,gBAEpBvH,0DAAA,CAAC8vB,mEAAM;IAACpkB,KAAK,EAAElF,CAAC,CAAC,iCAAiC,EAAE,QAAQ,CAAE;IAACwlB,OAAO,EAAEtC,mDAAMA;EAAC,CAAE,CAClE,CAAC;AAEnB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;AC7BD;AACA;AACA;AACA;AACA;;AAEoD;AAWX;AACZ;AAGuC;AACpB;AACL;AAC8B;AAEzE,MAAMiY,qBAAqB,GAAGA,CAAA,KAAyB;EACtD,MAAMzyB,IAAI,GAAGuyB,sDAAU,CAAC,CAAC;EACzB,MAAMj7B,CAAC,GAAG0pB,iDAAI,CAAC,CAAC;EAChB,MAAMxZ,KAAK,GAAGsC,yEAAQ,CAAC,CAAC;EAExB,MAAM4oB,eAAe,GAAG9gC,kDAAW,CAAqCynB,CAAC,IAAK;IAC7EA,CAAC,CAACsZ,cAAc,CAAC,CAAC;IAClB,IAAItZ,CAAC,CAACyV,MAAM,YAAY8D,WAAW,EAAE;MACpCC,SAAS,CAACC,SAAS,CAACC,SAAS,CAAC1Z,CAAC,CAACyV,MAAM,CAACkE,SAAS,CAAC;IAClD;EACD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,YAAY,GAAGl7B,8CAAO,CAC3B,MAAMiI,IAAI,CAACP,MAAM,CAAEpD,GAAG,IAAKA,GAAG,CAAChF,IAAI,KAAKsE,qDAAa,IAAIU,GAAG,CAAChF,IAAI,KAAKuE,uDAAe,CAAC,EACtF,CAACoE,IAAI,CACN,CAAC;EACD,MAAMqyB,YAAY,GAAGt6B,8CAAO,CAAC,MAAMy6B,kFAAkB,CAACl7B,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC;EAE9D,oBACCxG,0DAAA,CAAAA,uDAAA,qBACCA,0DAAA,CAACohC,2EAAc;IACd11B,KAAK,EAAE61B,YAAY,CAAC71B,KAAM;IAC1BwjB,QAAQ,EAAC,wBAAwB;IACjCD,KAAK,EAAC,KAAK;IACX1nB,EAAE,EAAEg6B,YAAY,CAACh6B;EAAG,GAEnBL,2CAAG,CAACi7B,YAAY,EAAG52B,GAAmB,iBACtCvL,0DAAA,CAAC0tB,sEAAS;IAACpmB,GAAG,EAAEiE,GAAG,CAAChF,IAAK;IAACgpB,OAAO,EAAE;MAAE+B,UAAU,EAAE,OAAO;MAAEC,QAAQ,EAAE;IAAQ;EAAE,gBAC7EvxB,0DAAA,CAAC0tB,sEAAS;IAACsB,WAAW,EAAC,YAAY;IAACI,aAAa,EAAC;EAAe,gBAChEpvB,0DAAA,CAACkT,iEAAI,QAAE3H,GAAG,CAAC62B,OAAc,CAAC,eAC1BpiC,0DAAA,CAACkyB,oEAAO;IAACsE,SAAS,EAAC,KAAK;IAAC9qB,KAAK,EAAElF,CAAC,CAAC,qBAAqB,EAAE,eAAe;EAAE,gBACzExG,0DAAA,CAACkT,iEAAI;IAACnL,KAAK,EAAE;MAAE+P,MAAM,EAAE;IAAU,CAAE;IAACkU,OAAO,EAAE4V;EAAgB,GAAC,WACpD,EAACr2B,GAAG,CAAC0C,OACT,CACE,CACC,CAAC,eACZjO,0DAAA,CAAC0tB,sEAAS;IACTsB,WAAW,EAAC,YAAY;IACxBI,aAAa,EAAC,eAAe;IAC7BG,OAAO,EAAE;MAAE5Q,GAAG,EAAE,YAAY;MAAEie,MAAM,EAAE;IAAS;EAAE,gBAEjD58B,0DAAA,CAACkT,iEAAI;IAAC+W,KAAK,EAAC;EAAW,GAAE1e,GAAG,CAAC82B,WAAkB,CAAC,eAChDriC,0DAAA,CAACwhC,kEAAK;IACL1xB,KAAK,EAAC,QAAQ;IACd/H,KAAK,EAAE;MACN8uB,eAAe,EAAEngB,KAAK,CAACC,OAAO,CAAC2rB,OAAO,CAACzrB,OAAO;MAC9CoT,KAAK,EAAEvT,KAAK,CAACC,OAAO,CAAC4rB,KAAK,CAAC1rB;IAC5B;EAAE,CACF,CACS,CAAC,eACZ7W,0DAAA,CAACgwB,oEAAO;IAAC/F,KAAK,EAAC;EAAO,CAAE,CACd,CACX,CACc,CACf,CAAC;AAEL,CAAC;AAED,iEAAe0X,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpFpC;AACA;AACA;AACA;AACA;;AAEiF;AAcxC;AAEX;AAEqD;AAExC;AACiC;AAC3B;AAM/B;AAIX,MAAMkB,qCAAqC,GACjDr8B,CAAY,IAKR,CACJ;EACCkF,KAAK,EAAElF,CAAC,CAAC,0CAA0C,EAAE,mBAAmB,CAAC;EACzEsJ,KAAK,EAAE;AACR,CAAC,EACD;EACCpE,KAAK,EAAElF,CAAC,CAAC,iDAAiD,EAAE,0BAA0B,CAAC;EACvFsJ,KAAK,EAAE;AACR,CAAC,CACD;AAQM,MAAMgzB,yBAAyB,GACrCt8B,CAAY,KAC+C;EAC3Du8B,eAAe,EAAE;IAChBr3B,KAAK,EAAElF,CAAC,CACP,kEAAkE,EAClE,kCACD,CAAC;IACDsJ,KAAK,EAAE;EACR,CAAC;EACDkzB,mBAAmB,EAAE;IACpBt3B,KAAK,EAAElF,CAAC,CACP,qEAAqE,EACrE,6DACD,CAAC;IACDsJ,KAAK,EAAE;EACR,CAAC;EACDmzB,eAAe,EAAE;IAChBv3B,KAAK,EAAElF,CAAC,CACP,yEAAyE,EACzE,6EACD,CAAC;IACDsJ,KAAK,EAAE;EACR,CAAC;EACDozB,iBAAiB,EAAE;IAClBx3B,KAAK,EAAElF,CAAC,CACP,iEAAiE,EACjE,qDACD,CAAC;IACDsJ,KAAK,EAAE;EACR;AACD,CAAC,CAAC;AAEK,MAAMqzB,2BAA2B,GAAGA,CAC1C52B,QAAyB,EACzB/F,CAAY,KACqB;EACjC,MAAM48B,oBAAoB,GAAGN,yBAAyB,CAACt8B,CAAC,CAAC;EACzD,IACC+F,QAAQ,CAAC+C,KAAK,CAAC+zB,0CAA0C,KAAK,OAAO,IACrE92B,QAAQ,CAAC+C,KAAK,CAACg0B,yCAAyC,KAAK,OAAO,EACnE;IACD,OAAOF,oBAAoB,CAACL,eAAe;EAC5C;EACA,IACCx2B,QAAQ,CAAC+C,KAAK,CAACi0B,6BAA6B,KAAK,KAAK,IACtDh3B,QAAQ,CAAC+C,KAAK,CAACg0B,yCAAyC,KAAK,MAAM,EAClE;IACD,OAAOF,oBAAoB,CAACJ,mBAAmB;EAChD;EACA,IACCz2B,QAAQ,CAAC+C,KAAK,CAACi0B,6BAA6B,KAAK,YAAY,IAC7Dh3B,QAAQ,CAAC+C,KAAK,CAACg0B,yCAAyC,KAAK,MAAM,EAClE;IACD,OAAOF,oBAAoB,CAACH,eAAe;EAC5C;EACA,OAAOG,oBAAoB,CAACF,iBAAiB;AAC9C,CAAC;AAOM,MAAMM,mBAAmB,GAAGljC,IAAA,IAIY;EAAA,IAJX;IACnCiM,QAAQ;IACRw0B,MAAM;IACNvF;EACqB,CAAC,GAAAl7B,IAAA;EACtB,MAAMkG,CAAC,GAAG0pB,iDAAI,CAAC,CAAC;EAChB,MAAMuT,uBAAuB,GAAGx8B,8CAAO,CAAC,MAAMy7B,qFAAqB,CAACl8B,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC;EAC5E,MAAM,CAACk9B,2BAA2B,EAAEC,8BAA8B,CAAC,GAAG5wB,+CAAQ,CAC7ExG,QAAQ,CAAC+C,KAAK,CAACs0B,iCAAiC,KAAK,MACtD,CAAC;EACD,MAAM,CAACC,oBAAoB,EAAEC,uBAAuB,CAAC,GAAG/wB,+CAAQ,CAC/DxG,QAAQ,CAAC+C,KAAK,CAACy0B,0BAA0B,IAAI,EAC9C,CAAC;EACD,MAAM,CAACC,mCAAmC,EAAEC,sCAAsC,CAAC,GAClFlxB,+CAAQ,CAAUxG,QAAQ,CAAC+C,KAAK,CAACg0B,yCAAyC,KAAK,MAAM,CAAC;EACvF,MAAM,CAACY,4BAA4B,EAAEC,+BAA+B,CAAC,GAAGpxB,+CAAQ,CAC/ExG,QAAQ,CAAC+C,KAAK,CAAC80B,kCAAkC,IAAI,EACtD,CAAC;EACD,MAAM,CAACC,2BAA2B,EAAEC,8BAA8B,CAAC,GAAGvxB,+CAAQ,CAE5EowB,2BAA2B,CAAC52B,QAAQ,EAAE/F,CAAC,CAAC,CAAC;EAC3C,MAAM,CAAC+9B,8BAA8B,EAAEC,iCAAiC,CAAC,GAAGzxB,+CAAQ,CACnF,CAAC,CAACxG,QAAQ,CAAC+C,KAAK,CAACm1B,6BAA6B,IAC7C,CAAC,CAACl4B,QAAQ,CAAC+C,KAAK,CAACo1B,8BACnB,CAAC;EAED,MAAMC,6BAA6B,GAAG5S,6CAAM,CAAkC,IAAI,CAAC;EAEnF,MAAM6S,SAAS,GAAG9jC,kDAAW,CAAC,MAAM;IACnC6iC,8BAA8B,CAACp3B,QAAQ,CAAC+C,KAAK,CAACs0B,iCAAiC,KAAK,MAAM,CAAC;IAC3FE,uBAAuB,CAACv3B,QAAQ,CAAC+C,KAAK,CAACy0B,0BAA0B,IAAI,EAAE,CAAC;IACxEE,sCAAsC,CACrC13B,QAAQ,CAAC+C,KAAK,CAACg0B,yCAAyC,KAAK,MAC9D,CAAC;IACDa,+BAA+B,CAAC53B,QAAQ,CAAC+C,KAAK,CAAC80B,kCAAkC,IAAI,EAAE,CAAC;IACxFE,8BAA8B,CAACnB,2BAA2B,CAAC52B,QAAQ,EAAE/F,CAAC,CAAC,CAAC;IACxEg+B,iCAAiC,CAChC,CAAC,CAACj4B,QAAQ,CAAC+C,KAAK,CAACm1B,6BAA6B,IAC7C,CAAC,CAACl4B,QAAQ,CAAC+C,KAAK,CAACo1B,8BACnB,CAAC;IACDC,6BAA6B,CAAC5gB,OAAO,EAAEkX,KAAK,CAAC,CAAC;EAC/C,CAAC,EAAE,CAAC1uB,QAAQ,EAAE/F,CAAC,CAAC,CAAC;EAEjByK,gDAAS,CAAC,MAAM;IACf2zB,SAAS,CAAC,CAAC;EACZ,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf7H,0DAAQ,CAACvB,QAAQ,EAAEoJ,SAAS,CAAC;EAE7B,MAAMC,UAAU,GAAG59B,8CAAO,CAAC,MAAM27B,kEAA0B,CAAC7B,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAE9E,MAAM+D,sCAAsC,GAAG79B,8CAAO,CACrD,MAAM47B,qCAAqC,CAACr8B,CAAC,CAAC,EAC9C,CAACA,CAAC,CACH,CAAC;EAED,MAAMu+B,wCAAwC,GAAG99B,8CAAO,CACvD,MACCkM,4CAAI,CACH2xB,sCAAsC,EACrC/hB,IAAI,IAAKA,IAAI,CAACjT,KAAK,KAAK4zB,2BAC1B,CAAwB,EACzB,CAACA,2BAA2B,EAAEoB,sCAAsC,CACrE,CAAC;EAED,MAAME,mCAAmC,GAAGlkC,kDAAW,CAKrDgP,KAAK,IAAW;IAChB,IAAIA,KAAK,KAAK,IAAI,EAAE;MACnB+0B,UAAU,CAAC,mCAAmC,EAAE/0B,KAAK,CAAC;MACtD6zB,8BAA8B,CAAC7zB,KAAK,CAAC;IACtC;EACD,CAAC,EACD,CAAC+0B,UAAU,CACZ,CAAC;EAED,MAAMI,0BAA0B,GAAGh+B,8CAAO,CACzC,MAAM+N,MAAM,CAACC,MAAM,CAAC6tB,yBAAyB,CAACt8B,CAAC,CAAC,CAAC,EACjD,CAACA,CAAC,CACH,CAAC;EAED,MAAM0+B,sBAAsB,GAAGpkC,kDAAW,CACxCgP,KAAsB,IAAK;IAC3B,IAAIA,KAAK,KAAK,iBAAiB,EAAE;MAChC+0B,UAAU,CAAC,+BAA+B,EAAE,MAAM,CAAC;MACnDA,UAAU,CAAC,2CAA2C,EAAE,KAAK,CAAC;MAC9DA,UAAU,CAAC,4CAA4C,EAAE,KAAK,CAAC;MAC/DZ,sCAAsC,CAAC,KAAK,CAAC;IAC9C,CAAC,MAAM,IAAIn0B,KAAK,KAAK,qBAAqB,EAAE;MAC3C+0B,UAAU,CAAC,+BAA+B,EAAE,KAAK,CAAC;MAClDA,UAAU,CAAC,2CAA2C,EAAE,IAAI,CAAC;MAC7DA,UAAU,CAAC,4CAA4C,EAAE,KAAK,CAAC;MAC/DZ,sCAAsC,CAAC,IAAI,CAAC;IAC7C,CAAC,MAAM,IAAIn0B,KAAK,KAAK,iBAAiB,EAAE;MACvC+0B,UAAU,CAAC,+BAA+B,EAAE,YAAY,CAAC;MACzDA,UAAU,CAAC,2CAA2C,EAAE,IAAI,CAAC;MAC7DA,UAAU,CAAC,4CAA4C,EAAE,KAAK,CAAC;MAC/DZ,sCAAsC,CAAC,IAAI,CAAC;IAC7C,CAAC,MAAM,IAAIn0B,KAAK,KAAK,mBAAmB,EAAE;MACzC+0B,UAAU,CAAC,+BAA+B,EAAE,MAAM,CAAC;MACnDA,UAAU,CAAC,2CAA2C,EAAE,KAAK,CAAC;MAC9DA,UAAU,CAAC,4CAA4C,EAAE,IAAI,CAAC;MAC9DZ,sCAAsC,CAAC,KAAK,CAAC;IAC9C;EACD,CAAC,EACD,CAACY,UAAU,CACZ,CAAC;EAED,MAAMM,uBAAuB,GAAGrkC,kDAAW,CACzCgP,KAAK,IAAK;IACV,IAAIA,KAAK,KAAK,IAAI,EAAE;MACnBo1B,sBAAsB,CAACp1B,KAAK,CAAC;MAC7B,MAAMs1B,aAAa,GAAGjyB,4CAAI,CAAC8xB,0BAA0B,EAAGliB,IAAI,IAAKA,IAAI,CAACjT,KAAK,KAAKA,KAAK,CAAC;MACtFs1B,aAAa,IAAId,8BAA8B,CAACc,aAAa,CAAC;IAC/D;EACD,CAAC,EACD,CAACF,sBAAsB,EAAED,0BAA0B,CACpD,CAAC;EAED,MAAMI,4BAA4B,GAAGvkC,kDAAW,CAC9Ck0B,EAAE,IAAK;IACP8O,uBAAuB,CAAC9O,EAAE,CAACgJ,MAAM,CAACluB,KAAK,CAAC;IACxC+0B,UAAU,CAAC,4BAA4B,EAAE7P,EAAE,CAACgJ,MAAM,CAACluB,KAAK,CAAC;EAC1D,CAAC,EACD,CAAC+0B,UAAU,CACZ,CAAC;EAED,MAAMS,oCAAoC,GAAGxkC,kDAAW,CACtDk0B,EAAE,IAAK;IACPmP,+BAA+B,CAACnP,EAAE,CAACgJ,MAAM,CAACluB,KAAK,CAAC;IAChD+0B,UAAU,CAAC,oCAAoC,EAAE7P,EAAE,CAACgJ,MAAM,CAACluB,KAAK,CAAC;EAClE,CAAC,EACD,CAAC+0B,UAAU,CACZ,CAAC;EAED,MAAMU,6BAA6B,GAAGzkC,kDAAW,CAAC,MAAM;IACvD0jC,iCAAiC,CAAE5qB,SAAS,IAAK;MAChD,MAAM4rB,SAAS,GAAG,CAAC5rB,SAAS;MAC5B,IAAI,CAAC4rB,SAAS,EAAE;QACfX,UAAU,CAAC,+BAA+B,EAAEpuB,SAAS,CAAC;QACtDouB,UAAU,CAAC,gCAAgC,EAAEpuB,SAAS,CAAC;MACxD,CAAC,MAAM;QACN,IAAI,CAAClK,QAAQ,CAAC+C,KAAK,CAACm1B,6BAA6B,EAAE;UAClDI,UAAU,CAAC,+BAA+B,EAAElC,qDAAa,CAAC,IAAI8C,IAAI,CAAC,CAAC,CAAC,CAAC;QACvE;QACA,IAAI,CAACl5B,QAAQ,CAAC+C,KAAK,CAACo1B,8BAA8B,EAAE;UACnDG,UAAU,CAAC,gCAAgC,EAAElC,qDAAa,CAAC,IAAI8C,IAAI,CAAC,CAAC,CAAC,CAAC;QACxE;MACD;MACA,OAAOD,SAAS;IACjB,CAAC,CAAC;EACH,CAAC,EAAE,CACFj5B,QAAQ,CAAC+C,KAAK,CAACm1B,6BAA6B,EAC5Cl4B,QAAQ,CAAC+C,KAAK,CAACo1B,8BAA8B,EAC7CG,UAAU,CACV,CAAC;EAEF,oBACC7kC,0DAAA,CAACohC,2EAAc;IACd11B,KAAK,EAAE+3B,uBAAuB,CAAC/3B,KAAM;IACrCwjB,QAAQ,EAAC,wBAAwB;IACjCD,KAAK,EAAC,KAAK;IACX1nB,EAAE,EAAEk8B,uBAAuB,CAACl8B;EAAG,gBAE/BvH,0DAAA,CAAC0tB,sEAAS;IAACyB,cAAc,EAAC,UAAU;IAACI,OAAO,EAAE;MAAE/a,GAAG,EAAE;IAAQ,CAAE;IAACqsB,GAAG,EAAE;EAAS,gBAC7E7gC,0DAAA,CAACu+B,mEAAM;IACNzP,KAAK,EAAEgW,sCAAuC;IAC9Cp5B,KAAK,EAAElF,CAAC,CAAC,qBAAqB,EAAE,eAAe,CAAE;IACjD2vB,QAAQ,EAAE6O,mCAAoC;IAC9C1E,SAAS,EAAEyE;EAAyC,CACpD,CAAC,eACF/kC,0DAAA,CAACwiC,qEAAQ;IACR1yB,KAAK,EAAE+zB,oBAAqB;IAC5B5sB,QAAQ,EAAE,CAACysB,2BAA4B;IACvCh4B,KAAK,EAAElF,CAAC,CAAC,kDAAkD,EAAE,qBAAqB,CAAE;IACpF2vB,QAAQ,EAAEkP;EAA6B,CACvC,CAAC,eACFrlC,0DAAA,CAACu+B,mEAAM;IACNtnB,QAAQ,EAAE,CAACysB,2BAA4B;IACvC5U,KAAK,EAAEmW,0BAA2B;IAClCv5B,KAAK,EAAElF,CAAC,CAAC,gDAAgD,EAAE,kBAAkB,CAAE;IAC/E2vB,QAAQ,EAAEgP,uBAAwB;IAClC7E,SAAS,EAAE+D,2BAA4B;IACvCqB,aAAa,EAAE,MAAO;IACtBC,gBAAgB,EAAE,OAAQ;IAC1BnP,SAAS,EAAE;EAAe,CAC1B,CAAC,EACDwN,mCAAmC,iBACnChkC,0DAAA,CAACwiC,qEAAQ;IACR1yB,KAAK,EAAEo0B,4BAA6B;IACpCjtB,QAAQ,EAAE,CAACysB,2BAA4B;IACvCh4B,KAAK,EAAElF,CAAC,CACP,2DAA2D,EAC3D,0CACD,CAAE;IACF2vB,QAAQ,EAAEmP;EAAqC,CAC/C,CAEQ,CAAC,eACZtlC,0DAAA,CAAC0tB,sEAAS;IAACyB,cAAc,EAAC,UAAU;IAACI,OAAO,EAAE;MAAE/a,GAAG,EAAE;IAAQ;EAAE,gBAC9DxU,0DAAA,CAAC2tB,gEAAG;IACH4B,OAAO,EAAE;MAAE/a,GAAG,EAAE;IAAQ,CAAE;IAC1B4a,aAAa,EAAC,UAAU;IACxBD,cAAc,EAAC,UAAU;IACzBF,KAAK,EAAC;EAAM,gBAEZjvB,0DAAA,CAACkT,iEAAI;IAACtI,IAAI,EAAC,OAAO;IAAC+xB,MAAM,EAAC;EAAM,GAC9Bn2B,CAAC,CAAC,6CAA6C,EAAE,aAAa,CAC1D,CACF,CAAC,eACNxG,0DAAA,CAACiT,oEAAO;IAACse,QAAQ,EAAC;EAAO,CAAE,CAAC,eAC5BvxB,0DAAA,CAACs+B,qEAAQ;IACR5yB,KAAK,EAAElF,CAAC,CACP,sDAAsD,EACtD,gDACD,CAAE;IACFsJ,KAAK,EAAEy0B,8BAA+B;IACtCvY,OAAO,EAAEuZ,6BAA8B;IACvCtuB,QAAQ,EAAE,CAACysB;EAA4B,CACvC,CAAC,eACF1jC,0DAAA,CAACyiC,4FAA4B;IAC5B1B,MAAM,EAAEA,MAAO;IACf9pB,QAAQ,EAAE,CAACysB,2BAA2B,IAAI,CAACa,8BAA+B;IAC1EqB,uBAAuB,EAAEr5B,QAAQ,CAAC+C,KAAK,CAACm1B,6BAA8B;IACtEoB,wBAAwB,EAAEt5B,QAAQ,CAAC+C,KAAK,CAACo1B,8BAA+B;IACxElJ,QAAQ,EAAEmJ;EAA8B,CACxC,CACS,CACI,CAAC;AAEnB,CAAC;;;;;;;;;;;;;;;;;;;;;;ACtWD;AACA;AACA;AACA;AACA;;AAEyE;AAOhC;AAGE;AACM;AAQ/B;AASlB,SAASuB,aAAaA,CAACC,OAAoC,EAAQ;EAClE,OAAOA,OAAO,GAAGH,qDAAa,CAACG,OAAO,CAAC,GAAG,IAAIV,IAAI,CAAC,CAAC;AACrD;AAEO,MAAMhD,4BAA4B,GAAGniC,IAAA,IAMgB;EAAA,IANf;IAC5CygC,MAAM;IACN9pB,QAAQ;IACR2uB,uBAAuB;IACvBC,wBAAwB;IACxBrK;EACkC,CAAC,GAAAl7B,IAAA;EACnC,MAAMkG,CAAC,GAAG0pB,iDAAI,CAAC,CAAC;EAChB,MAAM,CAACkW,QAAQ,EAAEC,WAAW,CAAC,GAAGtzB,+CAAQ,CAAOmzB,aAAa,CAACN,uBAAuB,CAAC,CAAC;EACtF,MAAM,CAACU,SAAS,EAAEC,YAAY,CAAC,GAAGxzB,+CAAQ,CAAOmzB,aAAa,CAACL,wBAAwB,CAAC,CAAC;EACzF,MAAM,CAACW,aAAa,EAAEC,gBAAgB,CAAC,GAAG1zB,+CAAQ,CAAU,KAAK,CAAC;EAClE,MAAM2zB,kBAAkB,GAAGz/B,8CAAO,CAAC,MAAMgQ,QAAQ,IAAIuvB,aAAa,EAAE,CAACvvB,QAAQ,EAAEuvB,aAAa,CAAC,CAAC;EAE9F,MAAM3B,UAAU,GAAG59B,8CAAO,CAAC,MAAM27B,kEAA0B,CAAC7B,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAE9E,MAAM6D,SAAS,GAAG9jC,kDAAW,CAAC,MAAM;IACnC,MAAM6lC,YAAY,GAAGT,aAAa,CAACN,uBAAuB,CAAC;IAC3D,MAAMgB,aAAa,GAAGV,aAAa,CAACL,wBAAwB,CAAC;IAC7DQ,WAAW,CAACM,YAAY,CAAC;IACzBJ,YAAY,CAACK,aAAa,CAAC;IAC3B;IACA;IACA,MAAMC,cAAc,GAAGZ,kDAAU,CAACU,YAAY,CAAC;IAC/C,MAAMG,eAAe,GAAGf,gDAAQ,CAACa,aAAa,CAAC;IAC/CH,gBAAgB,CACfE,YAAY,CAACI,OAAO,CAAC,CAAC,KAAKF,cAAc,CAACE,OAAO,CAAC,CAAC,IAClDH,aAAa,CAACG,OAAO,CAAC,CAAC,KAAKD,eAAe,CAACC,OAAO,CAAC,CACtD,CAAC;EACF,CAAC,EAAE,CAACnB,uBAAuB,EAAEC,wBAAwB,CAAC,CAAC;EAEvD50B,gDAAS,CAAC,MAAM;IACf2zB,SAAS,CAAC,CAAC;EACZ,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf7H,0DAAQ,CAACvB,QAAQ,EAAEoJ,SAAS,CAAC;EAE7B,MAAMoC,2BAA2B,GAAGlmC,kDAAW,CAC7CmmC,WAAW,IAAK;IAChB,IAAIA,WAAW,EAAE;MAChBZ,WAAW,CAAEzsB,SAAS,IAAK;QAC1B,IAAIqtB,WAAW,CAACF,OAAO,CAAC,CAAC,KAAKntB,SAAS,CAACmtB,OAAO,CAAC,CAAC,EAAE;UAClDlC,UAAU,CAAC,+BAA+B,EAAElC,qDAAa,CAACsE,WAAW,CAAC,CAAC;QACxE;QACA,OAAOA,WAAW;MACnB,CAAC,CAAC;MACF,IAAIA,WAAW,CAACF,OAAO,CAAC,CAAC,GAAGT,SAAS,CAACS,OAAO,CAAC,CAAC,EAAE;QAChD,MAAMG,YAAY,GAAG,IAAIzB,IAAI,CAACwB,WAAW,CAAC;QAC1CV,YAAY,CAACW,YAAY,CAAC;QAC1BrC,UAAU,CAAC,gCAAgC,EAAElC,qDAAa,CAACuE,YAAY,CAAC,CAAC;MAC1E;IACD,CAAC,MAAM;MACN;MACAb,WAAW,CAAEzsB,SAAS,IAAK,IAAI6rB,IAAI,CAAC7rB,SAAS,CAAC,CAAC;IAChD;EACD,CAAC,EACD,CAAC0sB,SAAS,EAAEzB,UAAU,CACvB,CAAC;EAED,MAAMsC,4BAA4B,GAAGrmC,kDAAW,CAC9ComC,YAAY,IAAK;IACjB,IAAIA,YAAY,EAAE;MACjBX,YAAY,CAAE3sB,SAAS,IAAK;QAC3B,IAAIstB,YAAY,CAACH,OAAO,CAAC,CAAC,KAAKntB,SAAS,CAACmtB,OAAO,CAAC,CAAC,EAAE;UACnDlC,UAAU,CAAC,gCAAgC,EAAElC,qDAAa,CAACuE,YAAY,CAAC,CAAC;QAC1E;QACA,OAAOA,YAAY;MACpB,CAAC,CAAC;MACF,IAAIA,YAAY,CAACH,OAAO,CAAC,CAAC,GAAGX,QAAQ,CAACW,OAAO,CAAC,CAAC,EAAE;QAChD,MAAME,WAAW,GAAG,IAAIxB,IAAI,CAACyB,YAAY,CAAC;QAC1Cb,WAAW,CAACY,WAAW,CAAC;QACxBpC,UAAU,CAAC,+BAA+B,EAAElC,qDAAa,CAACsE,WAAW,CAAC,CAAC;MACxE;IACD,CAAC,MAAM;MACN;MACAV,YAAY,CAAE3sB,SAAS,IAAK,IAAI6rB,IAAI,CAAC7rB,SAAS,CAAC,CAAC;IACjD;EACD,CAAC,EACD,CAACwsB,QAAQ,EAAEvB,UAAU,CACtB,CAAC;EAED,MAAMuC,YAAY,GAAGtmC,kDAAW,CAAC,MAAM;IACtC2lC,gBAAgB,CAAEY,cAAc,IAAK;MACpC,MAAMC,YAAY,GAAG,CAACD,cAAc;MACpC,IAAIC,YAAY,EAAE;QACjBjB,WAAW,CAAEzsB,SAAS,IAAK;UAC1B,MAAM2tB,eAAe,GAAGtB,kDAAU,CAACrsB,SAAS,CAAC;UAC7C,IAAI2tB,eAAe,CAACR,OAAO,CAAC,CAAC,KAAKntB,SAAS,CAACmtB,OAAO,CAAC,CAAC,EAAE;YACtDlC,UAAU,CAAC,+BAA+B,EAAElC,qDAAa,CAAC4E,eAAe,CAAC,CAAC;UAC5E;UACA,OAAOA,eAAe;QACvB,CAAC,CAAC;QACFhB,YAAY,CAAE3sB,SAAS,IAAK;UAC3B,MAAM4tB,cAAc,GAAGzB,gDAAQ,CAACnsB,SAAS,CAAC;UAC1C,IAAI4tB,cAAc,CAACT,OAAO,CAAC,CAAC,KAAKntB,SAAS,CAACmtB,OAAO,CAAC,CAAC,EAAE;YACrDlC,UAAU,CAAC,gCAAgC,EAAElC,qDAAa,CAAC6E,cAAc,CAAC,CAAC;UAC5E;UACA,OAAOA,cAAc;QACtB,CAAC,CAAC;MACH;MACA,OAAOF,YAAY;IACpB,CAAC,CAAC;EACH,CAAC,EAAE,CAACzC,UAAU,CAAC,CAAC;EAEhB,oBACC7kC,0DAAA,CAAC0tB,sEAAS;IAAC6B,OAAO,EAAE;MAAEgC,QAAQ,EAAE;IAAQ,CAAE;IAACsP,GAAG,EAAE,QAAS;IAAC1R,cAAc,EAAE;EAAa,gBACtFnvB,0DAAA,CAAC0tB,sEAAS;IAACsB,WAAW,EAAE,YAAa;IAAC6R,GAAG,EAAE;EAAS,gBACnD7gC,0DAAA,CAAC8lC,2EAAc;IACdp6B,KAAK,EAAElF,CAAC,CAAC,0CAA0C,EAAE,YAAY,CAAE;IACnEihC,UAAU,EAAE,GAAI;IAChBxwB,QAAQ,EAAEA,QAAS;IACnByhB,YAAY,EAAE0N,QAAS;IACvBjQ,QAAQ,EAAE6Q,2BAA4B;IACtCU,WAAW,EAAE,KAAM;IACnBzY,KAAK,EAAE;EAAO,CACd,CAAC,eACFjvB,0DAAA,CAAC8lC,2EAAc;IACdp6B,KAAK,EAAElF,CAAC,CAAC,wCAAwC,EAAE,UAAU,CAAE;IAC/DihC,UAAU,EAAE,GAAI;IAChBxwB,QAAQ,EAAEA,QAAS;IACnB0wB,SAAS,EAAE,EAAG;IACdjP,YAAY,EAAE4N,SAAU;IACxBnQ,QAAQ,EAAEgR,4BAA6B;IACvCO,WAAW,EAAE,KAAM;IACnBzY,KAAK,EAAE;EAAO,CACd,CACS,CAAC,eACZjvB,0DAAA,CAACs+B,qEAAQ;IACRrnB,QAAQ,EAAEA,QAAS;IACnBvL,KAAK,EAAElF,CAAC,CAAC,uCAAuC,EAAE,UAAU,CAAE;IAC9DsJ,KAAK,EAAE02B,aAAc;IACrBxa,OAAO,EAAEob;EAAa,CACtB,CAAC,eACFpnC,0DAAA,CAAC0tB,sEAAS;IAACsB,WAAW,EAAE,YAAa;IAAC6R,GAAG,EAAE;EAAS,gBACnD7gC,0DAAA,CAAC8lC,2EAAc;IACdp6B,KAAK,EAAElF,CAAC,CAAC,0CAA0C,EAAE,YAAY,CAAE;IACnEohC,cAAc;IACdC,kBAAkB;IAClBF,SAAS,EAAC,EAAE;IACZF,UAAU,EAAC,GAAG;IACd/O,YAAY,EAAE0N,QAAS;IACvBjQ,QAAQ,EAAE6Q,2BAA4B;IACtC/vB,QAAQ,EAAEyvB,kBAAmB;IAC7BzX,KAAK,EAAE;EAAO,CACd,CAAC,eACFjvB,0DAAA,CAAC8lC,2EAAc;IACdp6B,KAAK,EAAElF,CAAC,CAAC,wCAAwC,EAAE,UAAU,CAAE;IAC/DohC,cAAc;IACdC,kBAAkB;IAClBF,SAAS,EAAC,EAAE;IACZF,UAAU,EAAC,GAAG;IACd/O,YAAY,EAAE4N,SAAU;IACxBnQ,QAAQ,EAAEgR,4BAA6B;IACvClwB,QAAQ,EAAEyvB,kBAAmB;IAC7BzX,KAAK,EAAE;EAAO,CACd,CACS,CACD,CAAC;AAEd,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpMD;AACA;AACA;AACA;AACA;AACyE;AAUhC;AACM;AACiB;AAGK;AACpB;AACkC;AAEnF,MAAM8Y,sBAAsB,GAAGja,6DAAM,CAACJ,sEAAS,CAAC,CAAAM,UAAA;EAAArJ,WAAA;EAAAsJ,WAAA;AAAA,0EAG/C;AAED,MAAM+Z,gBAAgB,GAAGla,6DAAM,CAACJ,sEAAS,CAAC,CAAAM,UAAA;EAAArJ,WAAA;EAAAsJ,WAAA;AAAA,wBAC5B3tB,IAAA;EAAA,IAAC;IAAE2nC;EAAU,CAAC,GAAA3nC,IAAA;EAAA,OAA0B2nC,SAAS,IAAK,GAAEA,SAAU,GAAE;AAAA,EACjF;AAED,MAAMC,WAAW,GAAGpa,6DAAM,CAAC5a,iEAAI,CAAC,CAAA8a,UAAA;EAAArJ,WAAA;EAAAsJ,WAAA;AAAA,sBAE/B;AAYD,MAAMka,sBAAsB,GAAGxqB,uDAAe,CAAC4E,SAAS,CACtD6lB,MAAM,IAAKA,MAAM,CAACt4B,KAAK,KAAK8N,sDAC9B,CAAC;AAED,MAAMyqB,qBAAqB,GAAGtyB,8DAAsB,CAAC,CAAC;AACtD,MAAMuyB,6BAA6B,GAAG3qB,uDAAe,CAAC4E,SAAS,CAC7D6lB,MAAM,IAAKA,MAAM,CAACt4B,KAAK,KAAKu4B,qBAC9B,CAAC;AAEM,MAAME,qBAAqB,GAAG1wB,KAAA,IAKgB;EAAA,IALf;IACrC2wB,eAAe;IACfC,mBAAmB;IACnBC,qBAAqB;IACrBlN;EAC2B,CAAC,GAAA3jB,KAAA;EAC5B,MAAM,CAACrR,CAAC,CAAC,GAAG4K,6DAAc,CAAC,CAAC;EAE5B,MAAM,CAACu3B,mBAAmB,EAAEC,mBAAmB,CAAC,GAAG3hC,8CAAO,CACzD,MACC0W,uDAAe,CAACxc,MAAM,CACrB,CAAA4W,KAAA,EAAmBqwB,MAAM,KAAK;IAAA,IAA7B,CAACnzB,MAAM,EAAE4zB,MAAM,CAAC,GAAA9wB,KAAA;IAChB9C,MAAM,CAACoN,IAAI,CAAC+lB,MAAM,CAACt4B,KAAK,CAAC;IACzB+4B,MAAM,CAACxmB,IAAI,CAAC7b,CAAC,CAAC,4BAA4B,EAAE;MAAE6f,OAAO,EAAE+hB,MAAM,CAAC18B;IAAM,CAAC,CAAC,CAAC;IACvE,OAAO,CAACuJ,MAAM,EAAE4zB,MAAM,CAAC;EACxB,CAAC,EACD,CAAC,EAAE,EAAE,EAAE,CACR,CAAC,EACF,CAACriC,CAAC,CACH,CAAC;EAED,MAAMsiC,gBAAgB,GAAG7hC,8CAAO,CAAS,MAAM;IAC9C,MAAM4R,wBAAwB,GAAG2vB,eAAe,CAAC,qCAAqC,CAAC;IACvF,IAAI3vB,wBAAwB,KAAKpC,SAAS,EAAE;MAC3C,MAAMsyB,WAAW,GAAGJ,mBAAmB,CAACpmB,SAAS,CAC/C6lB,MAAM,IAAKA,MAAM,KAAKvvB,wBACxB,CAAC;MACD,IAAIkwB,WAAW,IAAI,CAAC,EAAE;QACrB,OAAOA,WAAW;MACnB;IACD;IACA,OAAOT,6BAA6B;EACrC,CAAC,EAAE,CAACK,mBAAmB,EAAEH,eAAe,CAAC,CAAC;EAE1C,MAAM,CAACQ,WAAW,EAAEC,cAAc,CAAC,GAAGl2B,+CAAQ,CAC7Cy1B,eAAe,CAAC,kCAAkC,CAAC,IAAI,IACxD,CAAC;EACD,MAAM,CAACU,YAAY,EAAEC,eAAe,CAAC,GAAGp2B,+CAAQ,CAAS+1B,gBAAgB,CAAC;EAE1E73B,gDAAS,CAAC,MAAM;IACf;IACAk4B,eAAe,CAACL,gBAAgB,CAAC;EAClC,CAAC,EAAE,CAACA,gBAAgB,CAAC,CAAC;EAEtB73B,gDAAS,CAAC,MAAM;IACf,IAAI03B,mBAAmB,CAACO,YAAY,CAAC,EAAE;MACtC,IAAIA,YAAY,KAAKJ,gBAAgB,EAAE;QACtCL,mBAAmB,CAClB,qCAAqC,EACrCE,mBAAmB,CAACO,YAAY,CACjC,CAAC;MACF,CAAC,MAAM;QACNR,qBAAqB,CAAC,qCAAqC,CAAC;MAC7D;IACD;EACD,CAAC,EAAE,CACFD,mBAAmB,EACnBC,qBAAqB,EACrBI,gBAAgB,EAChBH,mBAAmB,EACnBH,eAAe,EACfU,YAAY,CACZ,CAAC;EAEFj4B,gDAAS,CAAC,MAAM;IACf,IACEu3B,eAAe,CAAC,kCAAkC,CAAC,KAAK/xB,SAAS,IACjEuyB,WAAW,KAAKR,eAAe,CAAC,kCAAkC,CAAC,IACnEA,eAAe,CAAC,kCAAkC,CAAC,KAAK/xB,SAAS,IAAI,CAACuyB,WAAY,EAClF;MACDP,mBAAmB,CAAC,kCAAkC,EAAEO,WAAW,CAAC;MACpE,IAAIA,WAAW,EAAE;QAChBP,mBAAmB,CAAC,qCAAqC,EAAEhyB,SAAS,CAAC;MACtE;IACD,CAAC,MAAM;MACNiyB,qBAAqB,CAAC,kCAAkC,CAAC;IAC1D;EACD,CAAC,EAAE,CAACD,mBAAmB,EAAEO,WAAW,EAAEN,qBAAqB,EAAEF,eAAe,CAAC,CAAC;EAE9E,MAAMY,qBAAqB,GAAGtoC,kDAAW,CAAC,MAAM;IAC/CqoC,eAAe,CAAEvvB,SAAS,IACzBA,SAAS,GAAG+D,uDAAe,CAACnH,MAAM,GAAG,CAAC,GAAGoD,SAAS,GAAG,CAAC,GAAGA,SAC1D,CAAC;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMyvB,qBAAqB,GAAGvoC,kDAAW,CAAC,MAAM;IAC/CqoC,eAAe,CAAEvvB,SAAS,IAAMA,SAAS,GAAG,CAAC,GAAGA,SAAS,GAAG,CAAC,GAAGA,SAAU,CAAC;EAC5E,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM0vB,iBAAiB,GAAGxoC,kDAAW,CAAC,MAAM;IAC3CmoC,cAAc,CAAErvB,SAAS,IAAK,CAACA,SAAS,CAAC;IACzCuvB,eAAe,CAACL,gBAAgB,CAAC;EAClC,CAAC,EAAE,CAACA,gBAAgB,CAAC,CAAC;EAEtB,MAAMS,oBAAoB,GAAGzoC,kDAAW,CACvC,CAACk0B,EAAE,EAAEwU,aAAa,KAAK;IACtBL,eAAe,CAACK,aAAa,CAAC;EAC/B,CAAC,EACD,EACD,CAAC;EAED,MAAMhM,YAAY,GAAG18B,kDAAW,CAAC,MAAY;IAC5CqoC,eAAe,CAACL,gBAAgB,CAAC;IACjCG,cAAc,CAACT,eAAe,CAAC,kCAAkC,CAAC,IAAI,IAAI,CAAC;EAC5E,CAAC,EAAE,CAACM,gBAAgB,EAAEN,eAAe,CAAC,CAAC;EAEvCzL,0DAAQ,CAACvB,QAAQ,EAAEgC,YAAY,CAAC;EAEhC,MAAMiM,WAAW,GAAGxiC,8CAAO,CAC1B,MACCT,CAAC,CACA,gDAAgD,EAChD,8CACD,CAAC,EACF,CAACA,CAAC,CACH,CAAC;EAED,MAAMkjC,eAAe,GAAGziC,8CAAO,CAC9B;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACC,CAAC0hC,mBAAmB,CAACgB,IAAI,CAACC,KAAK,CAACV,YAAY,CAAC,CAAC,IAAI,GAAG,IACrDP,mBAAmB,CAACG,gBAAgB,CAAC,GACtC,GAAG,EACJ,CAACA,gBAAgB,EAAEH,mBAAmB,EAAEO,YAAY,CACrD,CAAC;EAED,oBACClpC,0DAAA,CAAC0tB,sEAAS;IACTsB,WAAW,EAAE,UAAW;IACxBI,aAAa,EAAE,YAAa;IAC5BD,cAAc,EAAE,YAAa;IAC7B0R,GAAG,EAAE,MAAO;IACZ74B,MAAM,EAAE,KAAM;IACdinB,KAAK,EAAE;EAAO,gBAEdjvB,0DAAA,CAAC0tB,sEAAS;IACTsB,WAAW,EAAE,UAAW;IACxB6R,GAAG,EAAE,MAAO;IACZ74B,MAAM,EAAE,KAAM;IACdinB,KAAK,EAAE,KAAM;IACbG,aAAa,EAAE,YAAa;IAC5BD,cAAc,EAAE,YAAa;IAC7B2G,QAAQ,EAAE;EAAO,gBAEjB91B,0DAAA,CAACkT,iEAAI;IAACtI,IAAI,EAAC,OAAO;IAAC3C,QAAQ,EAAE;EAAa,GACxCzB,CAAC,CACD,oDAAoD,EACpD,sDACD,CACK,CAAC,eACPxG,0DAAA,CAAC+nC,sBAAsB;IACtB/Y,WAAW,EAAC,YAAY;IACxBC,KAAK,EAAC,MAAM;IACZjnB,MAAM,EAAC,MAAM;IACbunB,OAAO,EAAE;MAAEgC,QAAQ,EAAE,OAAO;MAAED,UAAU,EAAE;IAAQ,CAAE;IACpDuP,GAAG,EAAE,QAAS;IACdhL,QAAQ,EAAE;EAAE,gBAEZ71B,0DAAA,CAACkyB,oEAAO;IACPxmB,KAAK,EAAElF,CAAC,CAAC,qCAAqC,EAAE,UAAU,EAAE;MAC3D6f,OAAO,EAAE6iB,YAAY,KAAK,CAAC,GAAG,UAAU,GAAG;IAC5C,CAAC;EAAE,gBAEHlpC,0DAAA,CAAC0tB,sEAAS;IAACuB,KAAK,EAAC,KAAK;IAACjnB,MAAM,EAAC,KAAK;IAACknB,QAAQ,EAAE;EAAc,gBAC3DlvB,0DAAA,CAAC8vB,mEAAM;IACN7Y,QAAQ,EAAE+xB,WAAW,IAAIE,YAAY,KAAK,CAAE;IAC5Cx9B,KAAK,EAAElF,CAAC,CAAC,8BAA8B,EAAE,GAAG,CAAE;IAC9C0e,IAAI,EAAE,OAAQ;IACdta,IAAI,EAAE,YAAa;IACnBqf,KAAK,EAAE,MAAO;IACd+B,OAAO,EAAEqd,qBAAsB;IAC/Bna,QAAQ,EAAE;EAAc,CACxB,CACS,CACH,CAAC,eACVlvB,0DAAA,CAAC8nC,mEAAM;IACN7wB,QAAQ,EAAE+xB,WAAY;IACtB7V,OAAO,EAAEyV,mBAAoB;IAC7BzS,QAAQ,EAAEoT,oBAAqB;IAC/Bz5B,KAAK,EACJk5B,WAAW,IAAIb,sBAAsB,IAAI,CAAC,GAAGA,sBAAsB,GAAGe;EACtE,CACD,CAAC,eACFlpC,0DAAA,CAACkyB,oEAAO;IACPxmB,KAAK,EAAElF,CAAC,CAAC,qCAAqC,EAAE,UAAU,EAAE;MAC3D6f,OAAO,EAAE6iB,YAAY,KAAKvrB,uDAAe,CAACnH,MAAM,GAAG,CAAC,GAAG,UAAU,GAAG;IACrE,CAAC;EAAE,gBAEHxW,0DAAA,CAAC0tB,sEAAS;IAACuB,KAAK,EAAC,KAAK;IAACjnB,MAAM,EAAC,KAAK;IAACknB,QAAQ,EAAE;EAAc,gBAC3DlvB,0DAAA,CAAC8vB,mEAAM;IACN7Y,QAAQ,EAAE+xB,WAAW,IAAIE,YAAY,KAAKvrB,uDAAe,CAACnH,MAAM,GAAG,CAAE;IACrE9K,KAAK,EAAElF,CAAC,CAAC,8BAA8B,EAAE,GAAG,CAAE;IAC9C0e,IAAI,EAAE,OAAQ;IACdta,IAAI,EAAE,YAAa;IACnBohB,OAAO,EAAEod,qBAAsB;IAC/Bnf,KAAK,EAAE,MAAO;IACdiF,QAAQ,EAAE;EAAc,CACxB,CACS,CACH,CACc,CAAC,eACzBlvB,0DAAA,CAACs+B,qEAAQ;IACRxuB,KAAK,EAAEk5B,WAAY;IACnBhd,OAAO,EAAEsd,iBAAkB;IAC3B59B,KAAK,EAAElF,CAAC,CACP,6CAA6C,EAC7C,4DACD,CAAE;IACFoE,IAAI,EAAE;EAAQ,CACd,CACS,CAAC,eACZ5K,0DAAA,CAACgoC,gBAAgB;IAChB7W,UAAU,EAAE,OAAQ;IACpB5B,OAAO,EAAE,OAAQ;IACjBsR,GAAG,EAAE,QAAS;IACd7R,WAAW,EAAE,UAAW;IACxBI,aAAa,EAAE,YAAa;IAC5BD,cAAc,EAAE,YAAa;IAC7BF,KAAK,EAAE,MAAO;IACdgZ,SAAS,EAAEyB;EAAgB,gBAE3B1pC,0DAAA,CAACkoC,WAAW;IAACvL,MAAM,EAAE,OAAQ;IAAC10B,QAAQ,EAAE;EAAa,GACnDwhC,WACW,CAAC,eACdzpC,0DAAA,CAACkoC,WAAW;IAACvL,MAAM,EAAE,SAAU;IAAC10B,QAAQ,EAAE;EAAa,GACrDwhC,WACW,CAAC,eACdzpC,0DAAA,CAACkoC,WAAW;IAACvL,MAAM,EAAE,MAAO;IAAC10B,QAAQ,EAAE;EAAa,GAClDwhC,WACW,CACI,CACR,CAAC;AAEd,CAAC;;;;;;;;;;;;;;;;;;;;;;;AC1SD;AACA;AACA;AACA;AACA;;AAEyE;AAEa;AAG3C;AACiC;AAC3B;AAC2B;AAOrE,MAAMK,cAAc,GAAGxpC,IAAA,IAIoB;EAAA,IAJnB;IAC9BiM,QAAQ;IACRw0B,MAAM;IACNvF;EACwB,CAAC,GAAAl7B,IAAA;EACzB,MAAMkG,CAAC,GAAG0pB,iDAAI,CAAC,CAAC;EAChB,MAAM,CAAC6Z,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGj3B,+CAAQ,CAC3DxG,QAAQ,CAAC+C,KAAK,CAAC26B,6BAA6B,KAAK,MAClD,CAAC;EACD,MAAM,CAACC,mBAAmB,EAAEC,sBAAsB,CAAC,GAAGp3B,+CAAQ,CAC7DxG,QAAQ,CAAC+C,KAAK,CAAC86B,8BAA8B,KAAK,MACnD,CAAC;EACD,MAAM,CAACC,oBAAoB,EAAEC,uBAAuB,CAAC,GAAGv3B,+CAAQ,CAC/DxG,QAAQ,CAAC+C,KAAK,CAACi7B,oCAAoC,KAAK,MACzD,CAAC;EACD,MAAMC,OAAO,GAAGvjC,8CAAO,CAAC,MAAM27B,kEAA0B,CAAC7B,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAE3E,MAAM0J,IAAI,GAAG3pC,kDAAW,CAAC,MAAM;IAC9BkpC,qBAAqB,CAACz9B,QAAQ,CAAC+C,KAAK,CAAC26B,6BAA6B,KAAK,MAAM,CAAC;IAC9EE,sBAAsB,CAAC59B,QAAQ,CAAC+C,KAAK,CAAC86B,8BAA8B,KAAK,MAAM,CAAC;IAChFE,uBAAuB,CAAC/9B,QAAQ,CAAC+C,KAAK,CAACi7B,oCAAoC,KAAK,MAAM,CAAC;EACxF,CAAC,EAAE,CACFh+B,QAAQ,CAAC+C,KAAK,CAACi7B,oCAAoC,EACnDh+B,QAAQ,CAAC+C,KAAK,CAAC26B,6BAA6B,EAC5C19B,QAAQ,CAAC+C,KAAK,CAAC86B,8BAA8B,CAC7C,CAAC;EAEFrN,0DAAQ,CAACvB,QAAQ,EAAEiP,IAAI,CAAC;EAExBx5B,gDAAS,CAAC,MAAM;IACfw5B,IAAI,CAAC,CAAC;EACP,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,MAAMC,WAAW,GAAG5pC,kDAAW,CAAC,MAAM;IACrCkpC,qBAAqB,CAAEpwB,SAAS,IAAK;MACpC,MAAMyjB,QAAQ,GAAG,CAACzjB,SAAS;MAC3B4wB,OAAO,CAAC,+BAA+B,EAAEnN,QAAQ,CAAC;MAClD,OAAOA,QAAQ;IAChB,CAAC,CAAC;EACH,CAAC,EAAE,CAACmN,OAAO,CAAC,CAAC;EAEb,MAAMG,YAAY,GAAG7pC,kDAAW,CAAC,MAAM;IACtCqpC,sBAAsB,CAAEvwB,SAAS,IAAK;MACrC,MAAMyjB,QAAQ,GAAG,CAACzjB,SAAS;MAC3B4wB,OAAO,CAAC,gCAAgC,EAAEnN,QAAQ,CAAC;MACnD,OAAOA,QAAQ;IAChB,CAAC,CAAC;EACH,CAAC,EAAE,CAACmN,OAAO,CAAC,CAAC;EAEb,MAAMI,aAAa,GAAG9pC,kDAAW,CAAC,MAAM;IACvCwpC,uBAAuB,CAAE1wB,SAAS,IAAK;MACtC,MAAMyjB,QAAQ,GAAG,CAACzjB,SAAS;MAC3B4wB,OAAO,CAAC,sCAAsC,EAAEnN,QAAQ,CAAC;MACzD,OAAOA,QAAQ;IAChB,CAAC,CAAC;EACH,CAAC,EAAE,CAACmN,OAAO,CAAC,CAAC;EAEb,MAAMjJ,YAAY,GAAGt6B,8CAAO,CAAC,MAAM4iC,qFAAqB,CAACrjC,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC;EAEjE,oBACCxG,0DAAA,CAACohC,2EAAc;IACd11B,KAAK,EAAE61B,YAAY,CAAC71B,KAAM;IAC1BwjB,QAAQ,EAAC,wBAAwB;IACjCD,KAAK,EAAC,KAAK;IACX1nB,EAAE,EAAEg6B,YAAY,CAACh6B;EAAG,gBAEpBvH,0DAAA,CAAC0tB,sEAAS;IAACyB,cAAc,EAAC,UAAU;IAACI,OAAO,EAAE;MAAE/a,GAAG,EAAE;IAAQ;EAAE,gBAC9DxU,0DAAA,CAACs+B,qEAAQ;IACR5yB,KAAK,EAAElF,CAAC,CACP,+DAA+D,EAC/D,iCACD,CAAE;IACFsJ,KAAK,EAAEi6B,kBAAmB;IAC1B/d,OAAO,EAAE0e;EAAY,CACrB,CAAC,eACF1qC,0DAAA,CAACs+B,qEAAQ;IACR5yB,KAAK,EAAElF,CAAC,CACP,gEAAgE,EAChE,kCACD,CAAE;IACFsJ,KAAK,EAAEo6B,mBAAoB;IAC3Ble,OAAO,EAAE2e;EAAa,CACtB,CAAC,eACF3qC,0DAAA,CAACs+B,qEAAQ;IACR5yB,KAAK,EAAElF,CAAC,CACP,iEAAiE,EACjE,mCACD,CAAE;IACFsJ,KAAK,EAAEu6B,oBAAqB;IAC5Bre,OAAO,EAAE4e;EAAc,CACvB,CACS,CACI,CAAC;AAEnB,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACnHD;AACA;AACA;AACA;AACA;;AAE2C;AAEuD;AAEnC;AACA;AACpB;AAC2B;AAMtE,MAAMG,SAA6B,GAAGzqC,IAAA,IAAoB;EAAA,IAAnB;IAAE0qC;EAAW,CAAC,GAAA1qC,IAAA;EACpD,MAAMkG,CAAC,GAAG0pB,iDAAI,CAAC,CAAC;EAEhB,MAAM3jB,QAAQ,GAAG1J,qEAAe,CAAC,CAAC;EAClC,MAAMooC,IAAI,GAAG5/B,qEAAe,CAAE1D,CAAC,IAAKA,CAAC,CAACkf,SAAS,CAAC;EAChD,MAAMqkB,KAAK,GAAGjkC,8CAAO,CAAC,MAAM;IAC3B,MAAMkkC,SAAS,GAAGC,MAAM,CAAC7+B,QAAQ,EAAED,KAAK,EAAE++B,eAAe,CAAC;IAC1D,IAAIJ,IAAI,IAAIE,SAAS,IAAIA,SAAS,GAAG,CAAC,EAAE;MACvC,OAAOxB,IAAI,CAACC,KAAK,CAAEqB,IAAI,GAAGE,SAAS,GAAI,GAAG,CAAC;IAC5C;IACA,OAAO,CAAC,CAAC;EACV,CAAC,EAAE,CAAC5+B,QAAQ,EAAED,KAAK,EAAE++B,eAAe,EAAEJ,IAAI,CAAC,CAAC;EAE5C,MAAMK,WAAW,GAAGrkC,8CAAO,CAAC,MAAM;IACjC,IAAIikC,KAAK,KAAK,CAAC,CAAC,IAAIA,KAAK,IAAI,GAAG,EAAE;MACjC,OAAO,GAAG;IACX;IACA,OAAOA,KAAK;EACb,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,MAAM7I,WAAW,GAAGp7B,8CAAO,CAAC,MAAM;IACjC,QAAQ,IAAI;MACX,KAAK,CAACikC,KAAK,IAAIA,KAAK,GAAG,CAAC;QACvB,OAAO1kC,CAAC,CAAC,sBAAsB,EAAE,oCAAoC,CAAC;MACvE,KAAK0kC,KAAK,KAAK,GAAG;QACjB,OAAO1kC,CAAC,CAAC,uBAAuB,EAAE,2CAA2C,CAAC;MAC/E;QACC,OAAOA,CAAC,CAAC,oBAAoB,EAAE;UAC9BkyB,YAAY,EAAE,mDAAmD;UACjEwS;QACD,CAAC,CAAC;IACJ;EACD,CAAC,EAAE,CAACA,KAAK,EAAE1kC,CAAC,CAAC,CAAC;EAEd,MAAM+kC,cAAc,GAAGtkC,8CAAO,CAAC,MAAM;IACpC,QAAQ,IAAI;MACX,KAAKikC,KAAK,IAAI,EAAE;QACf,OAAO,OAAO;MACf,KAAKA,KAAK,IAAI,EAAE;QACf,OAAO,SAAS;MACjB,KAAKA,KAAK,KAAK,CAAC,CAAC;QAChB,OAAO,OAAO;MACf;QACC,OAAO,SAAS;IAClB;EACD,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EACX,MAAM3J,YAAY,GAAGt6B,8CAAO,CAAC,MAAM6jC,+EAAe,CAACtkC,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,CAAC;EAC3D,OAAOwkC,UAAU,gBAChBhrC,0DAAA,CAAC0tB,sEAAS;IAACuB,KAAK,EAAC,KAAK;IAACM,OAAO,EAAE;MAAEvL,KAAK,EAAE;IAAS;EAAE,gBACnDhkB,0DAAA,CAACkyB,oEAAO;IAACxmB,KAAK,EAAE22B,WAAY;IAAC7L,SAAS,EAAC;EAAQ,gBAC9Cx2B,0DAAA,CAAC6qC,kEAAK;IAACW,IAAI,EAAEF,WAAY;IAACC,cAAc,EAAEA;EAAe,CAAE,CACnD,CACC,CAAC,gBAEZvrC,0DAAA,CAACohC,2EAAc;IACd11B,KAAK,EAAE61B,YAAY,CAAC71B,KAAM;IAC1BwjB,QAAQ,EAAC,wBAAwB;IACjCD,KAAK,EAAC,KAAK;IACX1nB,EAAE,EAAEg6B,YAAY,CAACh6B;EAAG,gBAEpBvH,0DAAA,CAAC0tB,sEAAS;IAACuB,KAAK,EAAC,MAAM;IAACM,OAAO,EAAE;MAAEgC,QAAQ,EAAE;IAAS;EAAE,gBACvDvxB,0DAAA,CAAC0tB,sEAAS;IACTsB,WAAW,EAAC,YAAY;IACxBI,aAAa,EAAC,YAAY;IAC1BG,OAAO,EAAE;MAAEqN,MAAM,EAAE;IAAS;EAAE,gBAE9B58B,0DAAA,CAACkT,iEAAI,QAAEmvB,WAAkB,CACf,CAAC,eACZriC,0DAAA,CAAC6qC,kEAAK;IAACW,IAAI,EAAEF,WAAY;IAACC,cAAc,EAAEA;EAAe,CAAE,CACjD,CACI,CAChB;AACF,CAAC;AAED,iEAAeR,SAAS;;;;;;;;;;;;;;;;;;;;;;;AC7FxB;AACA;AACA;AACA;AACA;;AAEkD;AAWT;AACgB;AAClB;AAEC;AAC8C;AAEtF,MAAMY,iBAAiB,GAAG7d,6DAAM,CAAC2d,wEAAW,CAAC,CAAAzd,UAAA;EAAArJ,WAAA;EAAAsJ,WAAA;AAAA,yCAI5C;AASD,MAAMphB,cAAc,GAAGvM,IAAA,IAKuB;EAAA,IALtB;IACvB45B,MAAM;IACNc,QAAQ;IACRhC,OAAO;IACP5kB;EACoB,CAAC,GAAA9T,IAAA;EACrB,MAAMkG,CAAC,GAAG0pB,iDAAI,CAAC,CAAC;EAChB,MAAMvd,OAAO,GAAGF,4DAAU,CAAC,CAAC;EAC5B,MAAMwP,MAAM,GAAGzQ,2DAAS,CAAC,CAAC;EAC1B,MAAMo6B,MAAM,GAAG3kC,8CAAO,CACrB,MAAe,CACd;IACCM,EAAE,EAAE,UAAU;IACdmE,KAAK,EAAElF,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC;IACpCqlC,SAAS,EAAE;EACZ,CAAC,EACD;IACCtkC,EAAE,EAAE,SAAS;IACbmE,KAAK,EAAE0I,KAAK;IACZy3B,SAAS,EAAE;EACZ,CAAC,CACD,EACD,CAACrlC,CAAC,EAAE4N,KAAK,CACV,CAAC;EAED,MAAM+N,MAA0B,GAAGxP,OAAO,CAACqB,QAAQ,EAAEmO,MAAM;EAE3DlR,gDAAS,CAAC,MAAM;IACf,IAAIkR,MAAM,EAAE;MACX;MACA2F,UAAU,CACT,MACC/Z,QAAQ,CACN+9B,aAAa,CAAE,IAAGn5B,OAAO,CAACqB,QAAQ,CAACmO,MAAO,EAAC,CAACZ,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,EACpEwqB,cAAc,CAAC,CAAC,EACpB,CACD,CAAC;IACF;EACD,CAAC,EAAE,CAACp5B,OAAO,EAAEA,OAAO,CAACqB,QAAQ,EAAErB,OAAO,CAACqB,QAAQ,CAACmO,MAAM,EAAEA,MAAM,EAAEF,MAAM,CAAC,CAAC;EACxE,oBACCjiB,0DAAA,CAAAA,uDAAA,qBACCA,0DAAA,CAAC0rC,mEAAiB;IAACM,IAAI,EAAEhT,OAAQ;IAACkB,MAAM,EAAEA;EAAO,gBAChDl6B,0DAAA,CAACkT,iEAAI,QACH1M,CAAC,CACD,6BAA6B,EAC7B,0DACD,CACK,CAAC,eACPxG,0DAAA,CAACkT,iEAAI,QAAE1M,CAAC,CAAC,6BAA6B,EAAE,uCAAuC,CAAQ,CACrE,CAAC,eACpBxG,0DAAA,CAAC0tB,sEAAS;IACTsB,WAAW,EAAC,UAAU;IACtBI,aAAa,EAAC,cAAc;IAC5B+B,UAAU,EAAE,OAAQ;IACpBnpB,MAAM,EAAC;EAAK,gBAEZhI,0DAAA,CAAC2tB,gEAAG;IAACqB,WAAW,EAAC,YAAY;IAACC,KAAK,EAAC;EAAM,gBACzCjvB,0DAAA,CAAC2tB,gEAAG;IACH4B,OAAO,EAAE;MAAE/a,GAAG,EAAE;IAAQ,CAAE;IAC1B4a,aAAa,EAAC,YAAY;IAC1BH,KAAK,EAAC,KAAK;IACXE,cAAc,EAAC;EAAY,gBAE3BnvB,0DAAA,CAAC2rC,iBAAiB;IAACC,MAAM,EAAEA;EAAO,CAAE,CAChC,CAAC,eACN5rC,0DAAA,CAAC2tB,gEAAG;IACH4B,OAAO,EAAE;MAAE/a,GAAG,EAAE;IAAQ,CAAE;IAC1Bya,KAAK,EAAC,KAAK;IACXG,aAAa,EAAC,UAAU;IACxBD,cAAc,EAAC;EAAU,gBAEzBnvB,0DAAA,CAACiT,oEAAO;IAAC+Q,KAAK,EAAC;EAAO,gBACrBhkB,0DAAA,CAAC8vB,mEAAM;IACNpkB,KAAK,EAAElF,CAAC,CAAC,uBAAuB,EAAE,iBAAiB,CAAE;IACrDwlB,OAAO,EAAEgP,QAAS;IAClB/Q,KAAK,EAAC,WAAW;IACjBhT,QAAQ,EAAE,CAAC+hB;EAAQ,CACnB,CACO,CAAC,eACVh5B,0DAAA,CAAC8vB,mEAAM;IACNpkB,KAAK,EAAElF,CAAC,CAAC,YAAY,EAAE,MAAM,CAAE;IAC/ByjB,KAAK,EAAC,SAAS;IACf+B,OAAO,EAAEkO,MAAO;IAChBjjB,QAAQ,EAAE,CAAC+hB;EAAQ,CACnB,CACG,CACD,CACK,CAAC,eACZh5B,0DAAA,CAACgwB,oEAAO,MAAE,CACT,CAAC;AAEL,CAAC;AAED,iEAAenjB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClI7B;AACA;AACA;AACA;AACA;;AAKwF;AAChD;AAYyC;AACH;AAEvE,MAAMu/B,eAAe,GAAG,mBAAmB;AAElD,SAASC,gBAAgBA,CAACC,IAA4B,EAAU;EAC/D,OAAOt7B,iDAAU,CAACs7B,IAAI,EAAEF,eAAe,CAAC;AACzC;AAEO,SAASzJ,aAAaA,CAAC2J,IAAmB,EAAmB;EACnE,OAAOD,gBAAgB,CAACC,IAAI,CAAC,CAACE,MAAM,CAACJ,eAAe,CAAC;AACtD;AAEO,SAASpG,aAAaA,CAACG,OAAe,EAAQ;EACpD,OAAOkG,gBAAgB,CAAClG,OAAO,CAAC,CAACsG,KAAK,CAAC,CAAC,CAACC,MAAM,CAAC,CAAC;AAClD;AAEO,MAAMzG,UAAU,GAAIqG,IAAU,IAAW,IAAI7G,IAAI,CAAC,IAAIA,IAAI,CAAC6G,IAAI,CAAC,CAACK,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEtF,MAAM5G,QAAQ,GAAIuG,IAAU,IAAW,IAAI7G,IAAI,CAAC,IAAIA,IAAI,CAAC6G,IAAI,CAAC,CAACK,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAQvF,MAAMC,UAAU,GAAIpmC,CAAY,IAAwC,CAC9E;EACCe,EAAE,EAAE,OAAO;EACX,GAAGsH,iEAAiB,CAACmQ,KAAK;EAC1B6tB,SAAS,EAAErmC,CAAC,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;EACvDkF,KAAK,EAAElF,CAAC,CAAC,sBAAsB,EAAE;IAChCsJ,KAAK,EAAEjB,iEAAiB,CAACmQ,KAAK,CAACzY,IAAI;IACnCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,EACD;EACCnxB,EAAE,EAAE,IAAI;EACR,GAAGsH,iEAAiB,CAACqQ,EAAE;EACvB2tB,SAAS,EAAErmC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC;EACrCkF,KAAK,EAAElF,CAAC,CAAC,oBAAoB,EAAE;IAC9BsJ,KAAK,EAAEjB,iEAAiB,CAACqQ,EAAE,CAAC3Y,IAAI;IAChCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,EACD;EACCnxB,EAAE,EAAE,IAAI;EACR,GAAGsH,iEAAiB,CAACsQ,EAAE;EACvB0tB,SAAS,EAAErmC,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC;EACzCkF,KAAK,EAAElF,CAAC,CAAC,sBAAsB,EAAE;IAChCsJ,KAAK,EAAEjB,iEAAiB,CAACsQ,EAAE,CAAC5Y,IAAI;IAChCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,EACD;EACCnxB,EAAE,EAAE,IAAI;EACR,GAAGsH,iEAAiB,CAACuQ,EAAE;EACvBytB,SAAS,EAAErmC,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC;EACvCkF,KAAK,EAAElF,CAAC,CAAC,qBAAqB,EAAE;IAC/BsJ,KAAK,EAAEjB,iEAAiB,CAACuQ,EAAE,CAAC7Y,IAAI;IAChCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,EACD;EACCnxB,EAAE,EAAE,IAAI;EACR,GAAGsH,iEAAiB,CAACwQ,EAAE;EACvBwtB,SAAS,EAAErmC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC;EACrCkF,KAAK,EAAElF,CAAC,CAAC,oBAAoB,EAAE;IAC9BsJ,KAAK,EAAEjB,iEAAiB,CAACwQ,EAAE,CAAC9Y,IAAI;IAChCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,EACD;EACCnxB,EAAE,EAAE,IAAI;EACR,GAAGsH,iEAAiB,CAACyQ,EAAE;EACvButB,SAAS,EAAErmC,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC;EACzCkF,KAAK,EAAElF,CAAC,CAAC,sBAAsB,EAAE;IAChCsJ,KAAK,EAAEjB,iEAAiB,CAACyQ,EAAE,CAAC/Y,IAAI;IAChCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,EACD;EACCnxB,EAAE,EAAE,IAAI;EACR,GAAGsH,iEAAiB,CAAC0Q,EAAE;EACvBstB,SAAS,EAAErmC,CAAC,CAAC,iBAAiB,EAAE,UAAU,CAAC;EAC3CkF,KAAK,EAAElF,CAAC,CAAC,uBAAuB,EAAE;IACjCsJ,KAAK,EAAEjB,iEAAiB,CAAC0Q,EAAE,CAAChZ,IAAI;IAChCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,EAED;EACCnxB,EAAE,EAAE,IAAI;EACR,GAAGsH,iEAAiB,CAAC2Q,EAAE;EACvBqtB,SAAS,EAAErmC,CAAC,CAAC,mBAAmB,EAAE,YAAY,CAAC;EAC/CkF,KAAK,EAAElF,CAAC,CAAC,yBAAyB,EAAE;IACnCsJ,KAAK,EAAEjB,iEAAiB,CAAC2Q,EAAE,CAACjZ,IAAI;IAChCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,EACD;EACCnxB,EAAE,EAAE,IAAI;EACR,GAAGsH,iEAAiB,CAAC4Q,EAAE;EACvBotB,SAAS,EAAErmC,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC;EACvCkF,KAAK,EAAElF,CAAC,CAAC,qBAAqB,EAAE;IAC/BsJ,KAAK,EAAEjB,iEAAiB,CAAC4Q,EAAE,CAAClZ,IAAI;IAChCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,EACD;EACCnxB,EAAE,EAAE,OAAO;EACX,GAAGsH,iEAAiB,CAAC6Q,KAAK;EAC1BmtB,SAAS,EAAErmC,CAAC,CAAC,0BAA0B,EAAE,qBAAqB,CAAC;EAC/DkF,KAAK,EAAElF,CAAC,CAAC,gCAAgC,EAAE;IAC1CsJ,KAAK,EAAEjB,iEAAiB,CAAC6Q,KAAK,CAACnZ,IAAI;IACnCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,EAED;EACCnxB,EAAE,EAAE,IAAI;EACR,GAAGsH,iEAAiB,CAAC8Q,EAAE;EACvBktB,SAAS,EAAErmC,CAAC,CAAC,iBAAiB,EAAE,UAAU,CAAC;EAC3CkF,KAAK,EAAElF,CAAC,CAAC,uBAAuB,EAAE;IACjCsJ,KAAK,EAAEjB,iEAAiB,CAAC8Q,EAAE,CAACpZ,IAAI;IAChCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,EACD;EACCnxB,EAAE,EAAE,IAAI;EACR,GAAGsH,iEAAiB,CAAC+Q,EAAE;EACvBitB,SAAS,EAAErmC,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC;EACzCkF,KAAK,EAAElF,CAAC,CAAC,sBAAsB,EAAE;IAChCsJ,KAAK,EAAEjB,iEAAiB,CAAC+Q,EAAE,CAACrZ,IAAI;IAChCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,EAED;EACCnxB,EAAE,EAAE,IAAI;EACR,GAAGsH,iEAAiB,CAACgR,EAAE;EACvBgtB,SAAS,EAAErmC,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC;EACzCkF,KAAK,EAAElF,CAAC,CAAC,sBAAsB,EAAE;IAChCsJ,KAAK,EAAEjB,iEAAiB,CAACgR,EAAE,CAACtZ,IAAI;IAChCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,EAED;EACCnxB,EAAE,EAAE,IAAI;EACR,GAAGsH,iEAAiB,CAACiR,EAAE;EACvB+sB,SAAS,EAAErmC,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC;EACnCkF,KAAK,EAAElF,CAAC,CAAC,mBAAmB,EAAE;IAC7BsJ,KAAK,EAAEjB,iEAAiB,CAACiR,EAAE,CAACvZ,IAAI;IAChCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,EACD;EACCnxB,EAAE,EAAE,IAAI;EACR,GAAGsH,iEAAiB,CAACkR,EAAE;EACvB8sB,SAAS,EAAErmC,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC;EACzCkF,KAAK,EAAElF,CAAC,CAAC,sBAAsB,EAAE;IAChCsJ,KAAK,EAAEjB,iEAAiB,CAACkR,EAAE,CAACxZ,IAAI;IAChCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,EACD;EACCnxB,EAAE,EAAE,IAAI;EACR,GAAGsH,iEAAiB,CAACmR,EAAE;EACvB6sB,SAAS,EAAErmC,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC;EACvCkF,KAAK,EAAElF,CAAC,CAAC,qBAAqB,EAAE;IAC/BsJ,KAAK,EAAEjB,iEAAiB,CAACmR,EAAE,CAACzZ,IAAI;IAChCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,EACD;EACCnxB,EAAE,EAAE,IAAI;EACR,GAAGsH,iEAAiB,CAACoR,EAAE;EACvB4sB,SAAS,EAAErmC,CAAC,CAAC,mBAAmB,EAAE,YAAY,CAAC;EAC/CkF,KAAK,EAAElF,CAAC,CAAC,yBAAyB,EAAE;IACnCsJ,KAAK,EAAEjB,iEAAiB,CAACoR,EAAE,CAAC1Z,IAAI;IAChCmyB,YAAY,EAAE;EACf,CAAC;AACF,CAAC,CACD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAQO,MAAMoU,YAAY,GAAItmC,CAAY,IAAgC,CACxE;EACCsJ,KAAK,EAAE,YAAY;EACnBpE,KAAK,EAAElF,CAAC,CAAC,qBAAqB,EAAE;IAAEsJ,KAAK,EAAE,YAAY;IAAE4oB,YAAY,EAAE;EAAqB,CAAC;AAC5F,CAAC,EACD;EACC5oB,KAAK,EAAE,gBAAgB;EACvBpE,KAAK,EAAElF,CAAC,CAAC,yBAAyB,EAAE;IAAEsJ,KAAK,EAAE,YAAY;IAAE4oB,YAAY,EAAE;EAAkB,CAAC;AAC7F,CAAC,EACD;EACC5oB,KAAK,EAAE,cAAc;EACrBpE,KAAK,EAAElF,CAAC,CAAC,uBAAuB,EAAE;IAAEsJ,KAAK,EAAE,YAAY;IAAE4oB,YAAY,EAAE;EAAiB,CAAC;AAC1F,CAAC,EACD;EACC5oB,KAAK,EAAE,kBAAkB;EACzBpE,KAAK,EAAElF,CAAC,CAAC,2BAA2B,EAAE;IAAEsJ,KAAK,EAAE,YAAY;IAAE4oB,YAAY,EAAE;EAAmB,CAAC;AAChG,CAAC,EACD;EACC5oB,KAAK,EAAE,mBAAmB;EAC1BpE,KAAK,EAAElF,CAAC,CAAC,4BAA4B,EAAE;IACtCsJ,KAAK,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O,SAASuJ,uBAAuBA,CACtCwY,WAAiB,EAC4B;EAC7C,OAAOC,MAA+B,GACnCD,CAAW,GACXvxD,8CAAM,CACNuxD,WAAW,EACX,CAACp6B,WAAW,EAAExoB,KAAK,EAAExI,GAAG,KAAK;IAC5BgxB,WAAW,CAAChxB,GAAG,CAAe,GAAGmP,SAAS;IAC1C,OAAO6hB,WAAW;EACnB,CAAC,EACD,CAAC,CACD,CAAC;AACL;;;;;;;;;;;;;;;;;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO,MAAMg3B,SAAS,GAAG,IAAIwD,MAAM,CAAC,IAAIC,GAAG,CAAC,8GAAwB,CAAC,CAAC;AACtE;AACA;AACO,MAAMvL,YAAY,GAAG,IAAIsL,MAAM,CAAC,IAAIC,GAAG,CAAC,iHAA2B,CAAC,CAAC;;;;;;;;;;ACX5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;;;;;;;;;;;AC1FA;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACnSA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA","sources":["webpack://@zextras/carbonio-shell-ui/./src/boot/app/app-context-provider.tsx","webpack://@zextras/carbonio-shell-ui/./src/boot/app/app-error-catcher.tsx","webpack://@zextras/carbonio-shell-ui/./src/boot/app/app-loader-functions.ts","webpack://@zextras/carbonio-shell-ui/./src/boot/app/app-loader-mounter.tsx","webpack://@zextras/carbonio-shell-ui/./src/boot/app/app-loader-setters.ts","webpack://@zextras/carbonio-shell-ui/./src/boot/app/default-views.ts","webpack://@zextras/carbonio-shell-ui/./src/boot/app/load-app.ts","webpack://@zextras/carbonio-shell-ui/./src/boot/app/load-apps.ts","webpack://@zextras/carbonio-shell-ui/./src/boot/app/shared-libraries.ts","webpack://@zextras/carbonio-shell-ui/./src/boot/bootstrapper.tsx","webpack://@zextras/carbonio-shell-ui/./src/boot/context-bridge.tsx","webpack://@zextras/carbonio-shell-ui/./src/boot/loader.tsx","webpack://@zextras/carbonio-shell-ui/./src/boot/shell-i18n-provider.tsx","webpack://@zextras/carbonio-shell-ui/./src/boot/theme-provider.tsx","webpack://@zextras/carbonio-shell-ui/./src/boot/use-get-primary-color.tsx","webpack://@zextras/carbonio-shell-ui/./src/constants/index.ts","webpack://@zextras/carbonio-shell-ui/./src/constants/locales.js","webpack://@zextras/carbonio-shell-ui/./src/dark-mode/use-dark-mode.ts","webpack://@zextras/carbonio-shell-ui/./src/dark-mode/use-dark-reader-result-value.ts","webpack://@zextras/carbonio-shell-ui/./src/dark-mode/utils.ts","webpack://@zextras/carbonio-shell-ui/./src/history/hooks.ts","webpack://@zextras/carbonio-shell-ui/./src/network/edit-settings.ts","webpack://@zextras/carbonio-shell-ui/./src/network/fetch.ts","webpack://@zextras/carbonio-shell-ui/./src/network/get-components.ts","webpack://@zextras/carbonio-shell-ui/./src/network/get-info.ts","webpack://@zextras/carbonio-shell-ui/./src/network/login-config.ts","webpack://@zextras/carbonio-shell-ui/./src/network/logout.ts","webpack://@zextras/carbonio-shell-ui/./src/network/tags.ts","webpack://@zextras/carbonio-shell-ui/./src/network/user-agent.ts","webpack://@zextras/carbonio-shell-ui/./src/network/utils.ts","webpack://@zextras/carbonio-shell-ui/./src/notification/NotificationManager.ts","webpack://@zextras/carbonio-shell-ui/./src/notification/NotificationPermissionChecker.tsx","webpack://@zextras/carbonio-shell-ui/./src/reporting/functions.ts","webpack://@zextras/carbonio-shell-ui/./src/reporting/store.ts","webpack://@zextras/carbonio-shell-ui/./src/search/module-selector.tsx","webpack://@zextras/carbonio-shell-ui/./src/search/run-search.ts","webpack://@zextras/carbonio-shell-ui/./src/search/search-app-view.tsx","webpack://@zextras/carbonio-shell-ui/./src/search/search-bar.tsx","webpack://@zextras/carbonio-shell-ui/./src/search/search-store.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/accounts-settings.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/account-settings/accounts-list.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/account-settings/delegates.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/account-settings/persona-settings.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/account-settings/primary-account-settings.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/account-settings/settings-sent-messages.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/general-settings/appearance-settings.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/general-settings/dark-theme-settings-section.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/general-settings/logout.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/general-settings/module-version-settings.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/general-settings/out-of-office-settings.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/general-settings/out-of-office-time-period-section.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/general-settings/scaling-setting-section.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/general-settings/search-settings.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/general-settings/user-quota.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/settings-header.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/components/utils.ts","webpack://@zextras/carbonio-shell-ui/./src/settings/general-settings-sub-sections.ts","webpack://@zextras/carbonio-shell-ui/./src/settings/general-settings.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/hooks/use-reset.ts","webpack://@zextras/carbonio-shell-ui/./src/settings/language-and-timezone-settings.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/settings-app-view.tsx","webpack://@zextras/carbonio-shell-ui/./src/settings/settings-sidebar.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/app-view-container.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/badge-wrap.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/boards/board-container.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/boards/board-tab-list.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/boards/board-tab.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/boards/board.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/boards/resizable-container.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/collapser.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/creation-button.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/hooks/useIsMobile.ts","webpack://@zextras/carbonio-shell-ui/./src/shell/hooks/useLocalStorage.ts","webpack://@zextras/carbonio-shell-ui/./src/shell/hooks/useMove.ts","webpack://@zextras/carbonio-shell-ui/./src/shell/hooks/useResize.ts","webpack://@zextras/carbonio-shell-ui/./src/shell/logo.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/shell-context-provider.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/shell-context.ts","webpack://@zextras/carbonio-shell-ui/./src/shell/shell-header.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/shell-primary-bar.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/shell-secondary-bar.tsx","webpack://@zextras/carbonio-shell-ui/./src/shell/shell-view.tsx","webpack://@zextras/carbonio-shell-ui/./src/store/account/hooks.ts","webpack://@zextras/carbonio-shell-ui/./src/store/account/index.ts","webpack://@zextras/carbonio-shell-ui/./src/store/account/normalization.ts","webpack://@zextras/carbonio-shell-ui/./src/store/account/store.ts","webpack://@zextras/carbonio-shell-ui/./src/store/app/hooks.ts","webpack://@zextras/carbonio-shell-ui/./src/store/app/index.ts","webpack://@zextras/carbonio-shell-ui/./src/store/app/store.ts","webpack://@zextras/carbonio-shell-ui/./src/store/app/utils.tsx","webpack://@zextras/carbonio-shell-ui/./src/store/boards/hooks.tsx","webpack://@zextras/carbonio-shell-ui/./src/store/boards/index.ts","webpack://@zextras/carbonio-shell-ui/./src/store/boards/store.ts","webpack://@zextras/carbonio-shell-ui/./src/store/context-bridge.ts","webpack://@zextras/carbonio-shell-ui/./src/store/folder/hooks.ts","webpack://@zextras/carbonio-shell-ui/./src/store/folder/index.ts","webpack://@zextras/carbonio-shell-ui/./src/store/folder/store.ts","webpack://@zextras/carbonio-shell-ui/./src/store/folder/utils.ts","webpack://@zextras/carbonio-shell-ui/./src/store/i18n/hooks.ts","webpack://@zextras/carbonio-shell-ui/./src/store/i18n/index.ts","webpack://@zextras/carbonio-shell-ui/./src/store/i18n/store.ts","webpack://@zextras/carbonio-shell-ui/./src/store/integrations/composer.tsx","webpack://@zextras/carbonio-shell-ui/./src/store/integrations/getters.tsx","webpack://@zextras/carbonio-shell-ui/./src/store/integrations/hooks.tsx","webpack://@zextras/carbonio-shell-ui/./src/store/integrations/store.ts","webpack://@zextras/carbonio-shell-ui/./src/store/login/getters.ts","webpack://@zextras/carbonio-shell-ui/./src/store/login/hooks.ts","webpack://@zextras/carbonio-shell-ui/./src/store/login/store.ts","webpack://@zextras/carbonio-shell-ui/./src/store/network/hooks.ts","webpack://@zextras/carbonio-shell-ui/./src/store/network/index.ts","webpack://@zextras/carbonio-shell-ui/./src/store/network/store.ts","webpack://@zextras/carbonio-shell-ui/./src/store/network/utils.ts","webpack://@zextras/carbonio-shell-ui/./src/store/tags/hooks.ts","webpack://@zextras/carbonio-shell-ui/./src/store/tags/index.ts","webpack://@zextras/carbonio-shell-ui/./src/store/tags/store.ts","webpack://@zextras/carbonio-shell-ui/./src/ui-extras/app-link.tsx","webpack://@zextras/carbonio-shell-ui/./src/ui-extras/nav-guard.tsx","webpack://@zextras/carbonio-shell-ui/./src/ui-extras/spinner.tsx","webpack://@zextras/carbonio-shell-ui/./src/utility-bar/bar.tsx","webpack://@zextras/carbonio-shell-ui/./src/utility-bar/panel.tsx","webpack://@zextras/carbonio-shell-ui/./src/utility-bar/store.ts","webpack://@zextras/carbonio-shell-ui/./src/utility-bar/utils.ts","webpack://@zextras/carbonio-shell-ui/./src/utils/utils.ts","webpack://@zextras/carbonio-shell-ui/./src/workers/index.ts","webpack://@zextras/carbonio-shell-ui/./node_modules/date-fns/locale/ lazy \\.[/\\\\](zh-CN%7Cnl%7Cen-US%7Cde%7Chi%7Cit%7Cja%7Cpt%7Cpl%7Cpt-BR%7Cro%7Cru%7Ces%7Cth%7Ctr%7Cfr%7Cvi)[/\\\\]index\\.js$ namespace object","webpack://@zextras/carbonio-shell-ui/./src/shell/boards/board-tab.css?0045","webpack://@zextras/carbonio-shell-ui/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://@zextras/carbonio-shell-ui/ignored|/tmp/workspace/extras_carbonio-shell-ui_release/node_modules/pdfjs-dist/build|canvas","webpack://@zextras/carbonio-shell-ui/ignored|/tmp/workspace/extras_carbonio-shell-ui_release/node_modules/pdfjs-dist/build|fs","webpack://@zextras/carbonio-shell-ui/ignored|/tmp/workspace/extras_carbonio-shell-ui_release/node_modules/pdfjs-dist/build|http","webpack://@zextras/carbonio-shell-ui/ignored|/tmp/workspace/extras_carbonio-shell-ui_release/node_modules/pdfjs-dist/build|https","webpack://@zextras/carbonio-shell-ui/ignored|/tmp/workspace/extras_carbonio-shell-ui_release/node_modules/pdfjs-dist/build|url","webpack://@zextras/carbonio-shell-ui/ignored|/tmp/workspace/extras_carbonio-shell-ui_release/node_modules/pdfjs-dist/build|zlib"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { FC } from 'react';\n\nimport { I18nextProvider } from 'react-i18next';\n\nimport AppErrorCatcher from './app-error-catcher';\nimport { SHELL_APP_ID } from '../../constants';\nimport { useI18nStore } from '../../store/i18n';\n\nconst AppContextProvider: FC<{ pkg: string }> = ({ pkg, children }) => {\n\tconst { instances, defaultI18n } = useI18nStore.getState();\n\tconst i18n = instances[pkg] ?? instances[SHELL_APP_ID] ?? defaultI18n;\n\treturn (\n\t\t<I18nextProvider i18n={i18n}>\n\t\t\t<AppErrorCatcher>{children}</AppErrorCatcher>\n\t\t</I18nextProvider>\n\t);\n};\n\nexport default AppContextProvider;\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 } from 'react';\n\nimport { Catcher } from '@zextras/carbonio-design-system';\n\nconst AppErrorCatcher: FC = ({ children }) => {\n\tconst onError = useCallback((error) => {\n\t\tconsole.error(error);\n\t\t// ({event: 'report-exception',data: { exception: error }});\n\t}, []);\n\treturn <Catcher onError={onError}>{children}</Catcher>;\n};\nexport default AppErrorCatcher;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n// The 'useXXX' functions actually return hooks\n/* eslint-disable react-hooks/rules-of-hooks */\n\nimport { reduce } from 'lodash';\n\nimport { CarbonioModule } from '../../../types';\nimport {\n\tusePushHistoryCallback,\n\tuseGoBackHistoryCallback,\n\tuseReplaceHistoryCallback,\n\tgetCurrentRoute,\n\tuseCurrentRoute,\n\treplaceHistory,\n\tgoBackHistory,\n\tpushHistory\n} from '../../history/hooks';\nimport { getSoapFetch, getXmlSoapFetch } from '../../network/fetch';\nimport { changeTagColor, createTag, deleteTag, renameTag } from '../../network/tags';\nimport { getNotificationManager } from '../../notification/NotificationManager';\nimport { runSearch } from '../../search/run-search';\nimport { useIsMobile } from '../../shell/hooks/useIsMobile';\nimport { useLocalStorage } from '../../shell/hooks/useLocalStorage';\nimport {\n\tgetUserAccount,\n\tgetUserAccounts,\n\tgetUserSetting,\n\tgetUserSettings,\n\tuseUserAccount,\n\tuseUserAccounts,\n\tuseUserSetting,\n\tuseUserSettings,\n\tuseUserRight,\n\tuseUserRights,\n\tgetUserRight,\n\tgetUserRights\n} from '../../store/account';\nimport { getApp, getAppContext, useApp, useAppContext } from '../../store/app';\nimport {\n\taddBoard,\n\tcloseBoard,\n\tupdateBoard,\n\tupdateBoardContext,\n\tgetBoardById,\n\tgetBoardContextById,\n\tuseBoardContextById,\n\tuseBoardById,\n\tuseBoard,\n\tminimizeBoards,\n\treopenBoards,\n\tsetCurrentBoard,\n\tuseBoardHooks\n} from '../../store/boards';\nimport { useContextBridge } from '../../store/context-bridge';\nimport {\n\tgetFolder,\n\tgetFolders,\n\tuseFolder,\n\tuseFolders,\n\tuseRoot,\n\tgetRoot,\n\tuseRoots,\n\tgetRoots,\n\tuseSearchFolder,\n\tuseSearchFolders,\n\tgetSearchFolder,\n\tgetSearchFolders,\n\tuseFoldersByView,\n\tuseFoldersAccordionByView,\n\tuseRootByUser,\n\tgetRootByUser\n} from '../../store/folder';\nimport { getI18n, getTFunction } from '../../store/i18n';\nimport {\n\tgetAction,\n\tgetActions,\n\tgetActionsFactory,\n\tgetActionFactory,\n\tgetIntegratedComponent,\n\tgetIntegratedFunction\n} from '../../store/integrations/getters';\nimport {\n\tuseAction,\n\tuseActions,\n\tuseActionsFactory,\n\tuseActionFactory,\n\tuseIntegratedComponent,\n\tuseIntegratedFunction\n} from '../../store/integrations/hooks';\nimport { useNotify, useRefresh } from '../../store/network';\nimport { getTags, useTags } from '../../store/tags';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const getAppFunctions = (pkg: CarbonioModule): Record<string, Function> => ({\n\t// I18N\n\tgetI18n: getI18n(pkg.name),\n\tt: getTFunction(pkg.name),\n\t// FETCH\n\tsoapFetch: getSoapFetch(pkg.name),\n\txmlSoapFetch: getXmlSoapFetch(pkg.name),\n\n\t// APP STORE FUNCTIONS\n\tuseAppContext: useAppContext(pkg.name),\n\tgetAppContext: getAppContext(pkg.name),\n\tuseApp: useApp(pkg.name),\n\tgetApp: getApp(pkg.name),\n\n\t// INTEGRATIONS\n\tuseIntegratedFunction,\n\tgetIntegratedFunction,\n\tuseIntegratedComponent,\n\tgetIntegratedComponent,\n\tuseAction,\n\tgetAction,\n\tuseActions,\n\tgetActions,\n\tuseActionsFactory,\n\tgetActionsFactory,\n\tuseActionFactory,\n\tgetActionFactory,\n\t// ACCOUNTS\n\tuseUserAccount,\n\tgetUserAccount,\n\tuseUserAccounts,\n\tgetUserAccounts,\n\tuseUserSettings,\n\tgetUserSettings,\n\tgetUserSetting,\n\tuseUserSetting,\n\tuseUserRight,\n\tuseUserRights,\n\tgetUserRight,\n\tgetUserRights,\n\tuseTags,\n\tgetTags,\n\tuseNotify,\n\tuseRefresh,\n\t// FOLDERS\n\tuseFoldersByView,\n\tuseFoldersAccordionByView,\n\tuseFolder,\n\tgetFolder,\n\tuseFolders,\n\tgetFolders,\n\tuseRoot,\n\tgetRoot,\n\tuseRoots,\n\tgetRoots,\n\tuseSearchFolder,\n\tuseSearchFolders,\n\tgetSearchFolder,\n\tgetSearchFolders,\n\tuseRootByUser,\n\tgetRootByUser,\n\t// BOARDS\n\taddBoard: addBoard(pkg.name),\n\tcloseBoard,\n\tupdateBoard,\n\tupdateBoardContext,\n\tgetBoardById,\n\tgetBoardContextById,\n\tuseBoard,\n\tuseBoardById,\n\tuseBoardContextById,\n\tminimizeBoards,\n\treopenBoards,\n\tsetCurrentBoard,\n\tuseBoardHooks,\n\t// HISTORY\n\tusePushHistoryCallback,\n\tuseGoBackHistoryCallback,\n\tuseReplaceHistoryCallback,\n\tuseCurrentRoute,\n\tgetCurrentRoute,\n\tpushHistory,\n\tgoBackHistory,\n\treplaceHistory,\n\t// TAGS\n\tcreateTag,\n\trenameTag,\n\tchangeTagColor,\n\tdeleteTag,\n\t// NOTIFICATION\n\tgetNotificationManager,\n\n\t// STUFF\n\trunSearch,\n\tuseIsMobile,\n\tuseLocalStorage,\n\tgetBridgedFunctions: (): unknown => {\n\t\tconst { packageDependentFunctions, functions } = useContextBridge.getState();\n\t\treturn {\n\t\t\t...functions,\n\t\t\t...reduce(packageDependentFunctions, (acc, f, name) => ({ ...acc, [name]: f(pkg.name) }), {})\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 */\n\nimport React, { FC, Suspense, useMemo } from 'react';\n\nimport { map } from 'lodash';\n\nimport AppContextProvider from './app-context-provider';\nimport { useAppStore } from '../../store/app';\n\nconst Mounter: FC<{ appId: string }> = ({ children, appId }) => (\n\t<div key={appId} id={appId}>\n\t\t<AppContextProvider key={appId} pkg={appId}>\n\t\t\t<Suspense fallback={''}>{children}</Suspense>\n\t\t</AppContextProvider>\n\t</div>\n);\n\nconst AppLoaderMounter: FC = () => {\n\tconst entryPoints = useAppStore((s) => s.entryPoints);\n\tconst entries = useMemo(\n\t\t() =>\n\t\t\tmap(entryPoints, (Comp, appId) => (\n\t\t\t\t<Mounter key={appId} appId={appId}>\n\t\t\t\t\t<Comp />\n\t\t\t\t</Mounter>\n\t\t\t)),\n\t\t[entryPoints]\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tdata-testid=\"app-mounter\"\n\t\t\tkey=\"app-mounter\"\n\t\t\thidden\n\t\t\tstyle={{ height: 0, overflow: 'hidden' }}\n\t\t>\n\t\t\t{entries}\n\t\t</div>\n\t);\n};\n\nexport default AppLoaderMounter;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n// The 'useXXX' functions actually return hooks\n/* eslint-disable react-hooks/rules-of-hooks */\n\nimport {\n\tAppRouteDescriptor,\n\tBoardView,\n\tCarbonioModule,\n\tPrimaryAccessoryView,\n\tSearchView,\n\tSecondaryAccessoryView,\n\tSettingsView,\n\tUtilityView\n} from '../../../types';\nimport { getEditSettingsForApp } from '../../network/edit-settings';\nimport { useAppStore } from '../../store/app';\nimport {\n\tnormalizeRoute,\n\tnormalizeSettingsView,\n\tnormalizeSearchView,\n\tnormalizeUtilityView,\n\tnormalizePrimaryAccessoryView,\n\tnormalizeSecondaryAccessoryView,\n\tnormalizeBoardView\n} from '../../store/app/utils';\nimport { useIntegrationsStore } from '../../store/integrations/store';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const getAppSetters = (pkg: CarbonioModule): Record<string, Function> => {\n\tconst appSetters = useAppStore.getState().setters;\n\tconst integrations = useIntegrationsStore.getState();\n\treturn {\n\t\tupdatePrimaryBadge: appSetters.updatePrimaryBadge,\n\t\tupdateUtilityBadge: appSetters.updateUtilityBadge,\n\t\tsetAppContext: appSetters.setAppContext(pkg.name),\n\t\taddRoute: (route: Partial<AppRouteDescriptor>) =>\n\t\t\tappSetters.addRoute(normalizeRoute(route, pkg)),\n\t\tsetRouteVisibility: (routeId: string, visible: boolean) =>\n\t\t\tappSetters.setRouteVisibility(routeId, visible),\n\t\tremoveRoute: (routeId: string) => appSetters.removeRoute(routeId),\n\t\t// add board\n\t\taddBoardView: (data: Partial<BoardView>) =>\n\t\t\tappSetters.addBoardView(normalizeBoardView(data, pkg)),\n\t\t// remove board\n\t\tremoveBoardView: appSetters.removeBoardView,\n\t\t//\n\t\t// add settings\n\t\taddSettingsView: (data: Partial<SettingsView>) =>\n\t\t\tappSetters.addSettingsView(normalizeSettingsView(data, pkg)),\n\t\t// remove settings\n\t\tremoveSettingsView: appSetters.removeSettingsView,\n\t\t//\n\t\t// add search\n\t\taddSearchView: (data: Partial<SearchView>) =>\n\t\t\tappSetters.addSearchView(normalizeSearchView(data, pkg)),\n\t\t// remove search\n\t\tremoveSearchView: appSetters.removeSearchView,\n\t\t//\n\t\t// add utility\n\t\taddUtilityView: (data: Partial<UtilityView>) =>\n\t\t\tappSetters.addUtilityView(normalizeUtilityView(data, pkg)),\n\t\t// remove utility\n\t\tremoveUtilityView: appSetters.removeUtilityView,\n\t\t//\n\t\t// add primaryAccessory\n\t\taddPrimaryAccessoryView: (data: Partial<PrimaryAccessoryView>) =>\n\t\t\tappSetters.addPrimaryAccessoryView(normalizePrimaryAccessoryView(data, pkg)),\n\t\t// remove primaryAccessory\n\t\tremovePrimaryAccessoryView: appSetters.removePrimaryAccessoryView,\n\t\t//\n\t\t// add secondaryAccessory\n\t\taddSecondaryAccessoryView: (data: Partial<SecondaryAccessoryView>) =>\n\t\t\tappSetters.addSecondaryAccessoryView(normalizeSecondaryAccessoryView(data, pkg)),\n\t\t// remove secondaryAccessory\n\t\tremoveSecondaryAccessoryView: appSetters.removeSecondaryAccessoryView,\n\t\tregisterFunctions: integrations.registerFunctions,\n\t\tremoveFunctions: integrations.removeFunctions,\n\t\tregisterActions: integrations.registerActions,\n\t\tremoveActions: integrations.removeActions,\n\t\tregisterComponents: integrations.registerComponents(pkg.name),\n\t\tremoveComponents: integrations.removeComponents,\n\t\t/** @deprecated */\n\t\teditSettings: getEditSettingsForApp(pkg.name)\n\t};\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n/* eslint-disable no-param-reassign */\n\nimport type { TFunction } from 'i18next';\nimport { size } from 'lodash';\n\nimport type { AppRouteDescriptor, SettingsView } from '../../../types';\nimport { SEARCH_APP_ID, SETTINGS_APP_ID, SHELL_APP_ID } from '../../constants';\nimport { SearchAppView } from '../../search/search-app-view';\nimport { AccountsSettings } from '../../settings/accounts-settings';\nimport GeneralSettings from '../../settings/general-settings';\nimport { settingsSubSections } from '../../settings/general-settings-sub-sections';\nimport { SettingsAppView } from '../../settings/settings-app-view';\nimport { SettingsSidebar } from '../../settings/settings-sidebar';\nimport { useAccountStore } from '../../store/account';\nimport { useAppStore } from '../../store/app';\n\nconst settingsGeneralView = (t: TFunction): SettingsView => ({\n\tid: 'general',\n\troute: 'general',\n\tapp: SHELL_APP_ID,\n\tcomponent: GeneralSettings,\n\ticon: 'SettingsModOutline',\n\tlabel: t('settings.general.general', 'General Settings'),\n\tposition: 1,\n\tsubSections: settingsSubSections(t)\n});\n\nconst settingsAccountsView = (t: TFunction): SettingsView => ({\n\tid: 'accounts',\n\troute: 'accounts',\n\tapp: SHELL_APP_ID,\n\tcomponent: AccountsSettings,\n\ticon: 'PersonOutline',\n\tlabel: t('settings.accounts', 'Accounts'),\n\tposition: 1\n});\n\nconst searchRouteDescriptor = (t: TFunction): AppRouteDescriptor => ({\n\tid: SEARCH_APP_ID,\n\tapp: SEARCH_APP_ID,\n\troute: SEARCH_APP_ID,\n\tappView: SearchAppView,\n\tbadge: {\n\t\tshow: false\n\t},\n\tlabel: t('search.app', 'Search'),\n\tposition: 15,\n\tvisible: true,\n\tprimaryBar: 'SearchModOutline'\n});\n\nconst settingsRouteDescriptor = (t: TFunction): AppRouteDescriptor => ({\n\tid: SETTINGS_APP_ID,\n\tapp: SETTINGS_APP_ID,\n\troute: SETTINGS_APP_ID,\n\tappView: SettingsAppView,\n\tbadge: {\n\t\tshow: false\n\t},\n\tlabel: t('settings.app', 'Settings'),\n\tposition: 16,\n\tvisible: true,\n\tprimaryBar: 'SettingsModOutline',\n\tsecondaryBar: SettingsSidebar\n});\n\nexport const registerDefaultViews = (t: TFunction): void => {\n\tconst { attrs } = useAccountStore.getState().settings;\n\tif (size(attrs) > 0 && attrs.zimbraFeatureOptionsEnabled !== 'FALSE') {\n\t\tuseAppStore.getState().setters.addRoute(settingsRouteDescriptor(t));\n\t\tuseAppStore.getState().setters.addSettingsView(settingsGeneralView(t));\n\t\tuseAppStore.getState().setters.addSettingsView(settingsAccountsView(t));\n\t}\n\tuseAppStore.getState().setters.addRoute(searchRouteDescriptor(t));\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { ComponentType, memo } from 'react';\n\nimport { forOwn } from 'lodash';\n\nimport { getAppFunctions } from './app-loader-functions';\nimport { getAppSetters } from './app-loader-setters';\nimport type { CarbonioModule } from '../../../types';\nimport * as CONSTANTS from '../../constants';\nimport { report } from '../../reporting/functions';\nimport SettingsHeader from '../../settings/components/settings-header';\nimport { useAppStore } from '../../store/app';\nimport { AppLink } from '../../ui-extras/app-link';\nimport { Spinner } from '../../ui-extras/spinner';\n\nexport const _scripts: { [pkgName: string]: HTMLScriptElement } = {};\nlet _scriptId = 0;\n\nexport function loadApp(appPkg: CarbonioModule): Promise<CarbonioModule> {\n\treturn new Promise((resolve, reject) => {\n\t\ttry {\n\t\t\tif (\n\t\t\t\twindow.__ZAPP_SHARED_LIBRARIES__ &&\n\t\t\t\twindow.__ZAPP_SHARED_LIBRARIES__['@zextras/carbonio-shell-ui']\n\t\t\t) {\n\t\t\t\twindow.__ZAPP_SHARED_LIBRARIES__['@zextras/carbonio-shell-ui'][appPkg.name] = {\n\t\t\t\t\treport: report(appPkg.name),\n\t\t\t\t\tAppLink,\n\t\t\t\t\tSpinner,\n\t\t\t\t\tSettingsHeader,\n\t\t\t\t\t...getAppSetters(appPkg),\n\t\t\t\t\t...getAppFunctions(appPkg),\n\t\t\t\t\t...CONSTANTS\n\t\t\t\t};\n\t\t\t}\n\n\t\t\twindow.__ZAPP_HMR_EXPORT__[appPkg.name] = (appComponent: ComponentType): void => {\n\t\t\t\tuseAppStore.setState((state) => ({\n\t\t\t\t\tentryPoints: {\n\t\t\t\t\t\t...state.entryPoints,\n\t\t\t\t\t\t[appPkg.name]: memo(appComponent)\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.info(\n\t\t\t\t\t`%c loaded ${appPkg.name}`,\n\t\t\t\t\t'color: white; background: #539507;padding: 4px 8px 2px 4px; font-family: sans-serif; border-radius: 12px; width: 100%'\n\t\t\t\t);\n\t\t\t\tresolve(appPkg);\n\t\t\t};\n\n\t\t\tconst script = document.createElement('script');\n\t\t\tscript.setAttribute('type', 'text/javascript');\n\t\t\tscript.setAttribute('data-pkg_name', appPkg.name);\n\t\t\tscript.setAttribute('data-pkg_version', appPkg.version);\n\t\t\tscript.setAttribute('data-is_app', 'true');\n\t\t\tscript.setAttribute('src', `${appPkg.js_entrypoint}`);\n\t\t\tdocument.body.appendChild(script);\n\t\t\t_scriptId += 1;\n\t\t\t_scripts[`${appPkg.name}-loader-${_scriptId}`] = script;\n\t\t} catch (err: unknown) {\n\t\t\tconsole.error(err);\n\t\t\treject(err);\n\t\t}\n\t});\n}\n\nexport function unloadApps(): Promise<void> {\n\treturn new Promise((resolve) => {\n\t\tforOwn(_scripts, (script) => {\n\t\t\tif (script.parentNode) {\n\t\t\t\tscript.parentNode.removeChild(script);\n\t\t\t}\n\t\t});\n\t\tresolve();\n\t});\n}\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { registerLocale, setDefaultLocale } from '@zextras/carbonio-design-system';\nimport type { Locale as DateFnsLocale } from 'date-fns';\nimport { filter, map } from 'lodash';\n\nimport { loadApp, unloadApps } from './load-app';\nimport { injectSharedLibraries } from './shared-libraries';\nimport { CarbonioModule } from '../../../types';\nimport { SHELL_APP_ID } from '../../constants';\nimport { SUPPORTED_LOCALES } from '../../constants/locales';\nimport { useReporter } from '../../reporting/store';\nimport { getUserSetting, useAccountStore } from '../../store/account';\nimport { useI18nStore } from '../../store/i18n';\n\nconst getDateFnsLocale = (locale: string): Promise<DateFnsLocale> =>\n\timport(`date-fns/locale/${locale}/index.js`);\n\nexport function loadApps(\n\tapps: Array<CarbonioModule>\n): Promise<PromiseSettledResult<CarbonioModule>[]> {\n\tinjectSharedLibraries();\n\tconst appsToLoad = filter(apps, (app) => {\n\t\tif (app.name === SHELL_APP_ID) return false;\n\t\treturn !(app.attrKey && getUserSetting('attrs', app.attrKey) === 'FALSE');\n\t});\n\t// eslint-disable-next-line no-console\n\tconsole.log(\n\t\t'%cLOADING APPS',\n\t\t'color: white; background: #2b73d2;padding: 4px 8px 2px 4px; font-family: sans-serif; border-radius: 12px; width: 100%'\n\t);\n\tconst { settings } = useAccountStore.getState();\n\tconst locale =\n\t\t(settings?.prefs?.zimbraPrefLocale as string) ??\n\t\t(settings?.attrs?.zimbraLocale as string) ??\n\t\t'en';\n\tuseI18nStore.getState().actions.addI18n(appsToLoad, locale);\n\tconst localeObj =\n\t\tlocale in SUPPORTED_LOCALES && SUPPORTED_LOCALES[locale as keyof typeof SUPPORTED_LOCALES];\n\tif (localeObj) {\n\t\tconst localeDateFnsKey =\n\t\t\t('dateFnsLocale' in localeObj && localeObj.dateFnsLocale) || localeObj.value;\n\t\tgetDateFnsLocale(localeDateFnsKey).then((localeDateFns) => {\n\t\t\tregisterLocale(localeDateFnsKey, localeDateFns);\n\t\t\tsetDefaultLocale(localeDateFnsKey);\n\t\t});\n\t}\n\tuseReporter.getState().setClients(appsToLoad);\n\treturn Promise.allSettled(map(appsToLoad, (app) => loadApp(app)));\n}\n\nexport function unloadAllApps(): Promise<void> {\n\treturn unloadApps();\n}\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React from 'react';\n\nimport * as ReduxJSToolkit from '@reduxjs/toolkit';\nimport * as ZappUI from '@zextras/carbonio-design-system';\nimport * as Preview from '@zextras/carbonio-ui-preview';\nimport * as Lodash from 'lodash';\nimport * as Moment from 'moment';\nimport * as ReactDOM from 'react-dom';\nimport * as ReactI18n from 'react-i18next';\nimport * as ReactRedux from 'react-redux';\nimport * as ReactRouterDom from 'react-router-dom';\nimport * as StyledComponents from 'styled-components';\n\nexport function injectSharedLibraries(): void {\n\tif (!window.__ZAPP_SHARED_LIBRARIES__) {\n\t\twindow.__ZAPP_SHARED_LIBRARIES__ = {\n\t\t\treact: React,\n\t\t\t'react-dom': ReactDOM,\n\t\t\t'react-i18next': ReactI18n,\n\t\t\t'react-redux': ReactRedux,\n\t\t\tlodash: Lodash,\n\t\t\t'react-router-dom': ReactRouterDom,\n\t\t\tmoment: Moment,\n\t\t\t'styled-components': StyledComponents,\n\t\t\t'@reduxjs/toolkit': ReduxJSToolkit,\n\t\t\t'@zextras/carbonio-shell-ui': {},\n\t\t\t'@zextras/carbonio-design-system': ZappUI,\n\t\t\t'@zextras/carbonio-ui-preview': Preview\n\t\t};\n\t\twindow.__ZAPP_HMR_EXPORT__ = {};\n\t}\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, useEffect } from 'react';\n\nimport { ModalManager, SnackbarManager } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\nimport { BrowserRouter, Route, Switch, useParams } from 'react-router-dom';\n\nimport AppLoaderMounter from './app/app-loader-mounter';\nimport { registerDefaultViews } from './app/default-views';\nimport { ContextBridge } from './context-bridge';\nimport { Loader } from './loader';\nimport ShellI18nextProvider from './shell-i18n-provider';\nimport { ThemeProvider } from './theme-provider';\nimport { BASENAME, IS_STANDALONE } from '../constants';\nimport { NotificationPermissionChecker } from '../notification/NotificationPermissionChecker';\nimport ShellView from '../shell/shell-view';\nimport { useAppStore } from '../store/app';\n\nconst StandaloneListener = (): null => {\n\tconst { route } = useParams<{ route?: string }>();\n\tuseEffect(() => {\n\t\tif (route) useAppStore.setState({ standalone: route });\n\t}, [route]);\n\treturn null;\n};\n\nexport const DefaultViewsRegister = (): null => {\n\tconst [t] = useTranslation();\n\tuseEffect(() => {\n\t\tregisterDefaultViews(t);\n\t}, [t]);\n\treturn null;\n};\n\nconst Bootstrapper: FC = () => (\n\t<ThemeProvider>\n\t\t<ShellI18nextProvider>\n\t\t\t<BrowserRouter basename={BASENAME}>\n\t\t\t\t<SnackbarManager>\n\t\t\t\t\t<ModalManager>\n\t\t\t\t\t\t<Loader />\n\t\t\t\t\t\t{IS_STANDALONE && (\n\t\t\t\t\t\t\t<Switch>\n\t\t\t\t\t\t\t\t<Route path={'/:route'}>\n\t\t\t\t\t\t\t\t\t<StandaloneListener />\n\t\t\t\t\t\t\t\t</Route>\n\t\t\t\t\t\t\t</Switch>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<DefaultViewsRegister />\n\t\t\t\t\t\t<NotificationPermissionChecker />\n\t\t\t\t\t\t<ContextBridge />\n\t\t\t\t\t\t<AppLoaderMounter />\n\t\t\t\t\t\t<ShellView />\n\t\t\t\t\t</ModalManager>\n\t\t\t\t</SnackbarManager>\n\t\t\t</BrowserRouter>\n\t\t</ShellI18nextProvider>\n\t</ThemeProvider>\n);\n\nexport default Bootstrapper;\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useModal, useSnackbar } from '@zextras/carbonio-design-system';\nimport { useHistory } from 'react-router-dom';\n\nimport { useBridge } from '../store/context-bridge';\n\nexport const ContextBridge = (): null => {\n\tconst history = useHistory();\n\tconst createSnackbar = useSnackbar();\n\tconst createModal = useModal();\n\tuseBridge({\n\t\tfunctions: {\n\t\t\tgetHistory: () => history,\n\t\t\tcreateSnackbar,\n\t\t\tcreateModal\n\t\t}\n\t});\n\treturn null;\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { Modal, Padding, Text } from '@zextras/carbonio-design-system';\nimport { find } from 'lodash';\nimport { useTranslation } from 'react-i18next';\n\nimport { loadApps, unloadAllApps } from './app/load-apps';\nimport { getComponents } from '../network/get-components';\nimport { getInfo } from '../network/get-info';\nimport { loginConfig } from '../network/login-config';\nimport { goToLogin } from '../network/utils';\nimport { useAppStore } from '../store/app';\n\nexport function isPromiseRejectedResult<T>(\n\tpromiseSettledResult: PromiseSettledResult<T>\n): promiseSettledResult is PromiseRejectedResult {\n\treturn promiseSettledResult.status === 'rejected';\n}\n\nexport function isPromiseFulfilledResult<T>(\n\tpromiseSettledResult: PromiseSettledResult<T>\n): promiseSettledResult is PromiseFulfilledResult<T> {\n\treturn promiseSettledResult.status === 'fulfilled';\n}\n\ntype LoaderFailureModalProps = { open: boolean; closeHandler: () => void };\n\nexport const LoaderFailureModal = ({\n\topen,\n\tcloseHandler\n}: LoaderFailureModalProps): React.JSX.Element => {\n\tconst [t] = useTranslation();\n\tconst onConfirm = useCallback(() => window.location.reload(), []);\n\treturn (\n\t\t<Modal\n\t\t\topen={open}\n\t\t\tshowCloseIcon={false}\n\t\t\tonSecondaryAction={goToLogin}\n\t\t\ttitle={t('bootstrap.failure.modal.title', 'Something went wrong...')}\n\t\t\tconfirmLabel={t('bootstrap.failure.modal.confirmButtonLabel', 'refresh')}\n\t\t\tsecondaryActionLabel={t('bootstrap.failure.modal.secondaryButtonLabel', 'login page')}\n\t\t\tonConfirm={onConfirm}\n\t\t\tonClose={closeHandler}\n\t\t>\n\t\t\t<Padding all=\"small\">\n\t\t\t\t<Text overflow=\"break-word\">\n\t\t\t\t\t{t(\n\t\t\t\t\t\t'bootstrap.failure.modal.body',\n\t\t\t\t\t\t'Some technical issues occurred while processing your request. Please try to refresh the page or go back to the login page.'\n\t\t\t\t\t)}\n\t\t\t\t</Text>\n\t\t\t</Padding>\n\t\t</Modal>\n\t);\n};\n\nexport const Loader = (): React.JSX.Element => {\n\tconst [open, setOpen] = useState(false);\n\tconst closeHandler = useCallback(() => setOpen(false), []);\n\n\tuseEffect(() => {\n\t\tPromise.allSettled([loginConfig(), getComponents(), getInfo()]).then(\n\t\t\t(promiseSettledResultArray) => {\n\t\t\t\tconst [, getComponentsPromiseSettledResult, getInfoPromiseSettledResult] =\n\t\t\t\t\tpromiseSettledResultArray;\n\n\t\t\t\tconst promiseRejectedResult = find(\n\t\t\t\t\t[getComponentsPromiseSettledResult, getInfoPromiseSettledResult],\n\t\t\t\t\tisPromiseRejectedResult\n\t\t\t\t);\n\t\t\t\tif (promiseRejectedResult) {\n\t\t\t\t\tif (typeof promiseRejectedResult.reason === 'string') {\n\t\t\t\t\t\tconsole.error(promiseRejectedResult.reason);\n\t\t\t\t\t} else if ('message' in promiseRejectedResult.reason) {\n\t\t\t\t\t\tconsole.error(promiseRejectedResult.reason.message);\n\t\t\t\t\t}\n\t\t\t\t\tsetOpen(true);\n\t\t\t\t}\n\t\t\t\tif (isPromiseFulfilledResult(getComponentsPromiseSettledResult)) {\n\t\t\t\t\tloadApps(Object.values(useAppStore.getState().apps));\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\treturn () => {\n\t\t\tunloadAllApps();\n\t\t};\n\t}, []);\n\treturn <LoaderFailureModal open={open} closeHandler={closeHandler} />;\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 } from 'react';\n\nimport { I18nextProvider } from 'react-i18next';\n\nimport { SHELL_APP_ID } from '../constants';\nimport { useI18nStore } from '../store/i18n';\n\nconst ShellI18nextProvider: FC = ({ children }) => {\n\tconst i18n = useI18nStore((s) => s.instances[SHELL_APP_ID]);\n\treturn <I18nextProvider i18n={i18n}>{children}</I18nextProvider>;\n};\nexport default ShellI18nextProvider;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, {\n\tcreateContext,\n\tuseCallback,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseMemo,\n\tuseState\n} from 'react';\n\nimport {\n\tgenerateColorSet,\n\tThemeProvider as UIThemeProvider,\n\tThemeProviderProps as UIThemeProviderProps\n} from '@zextras/carbonio-design-system';\nimport { auto, disable, enable, setFetchMethod } from 'darkreader';\nimport { map, reduce } from 'lodash';\nimport { createGlobalStyle, css, DefaultTheme, SimpleInterpolation } from 'styled-components';\n\nimport { useGetPrimaryColor } from './use-get-primary-color';\nimport { DarkReaderPropValues, ThemeExtension } from '../../types';\nimport { ScalingSettings } from '../../types/settings';\nimport { darkReaderDynamicThemeFixes, LOCAL_STORAGE_SETTINGS_KEY } from '../constants';\nimport { getAutoScalingFontSize } from '../settings/components/utils';\nimport { useLocalStorage } from '../shell/hooks/useLocalStorage';\n\nsetFetchMethod(window.fetch);\n\ninterface ThemeCallbacks {\n\taddExtension: (newExtension: ThemeExtension, id: string) => void;\n\tsetDarkReaderState: (newState: DarkReaderPropValues) => void;\n}\n\nexport const ThemeCallbacksContext = createContext<ThemeCallbacks>({\n\taddExtension: () => {\n\t\tthrow Error('Not implemented');\n\t},\n\tsetDarkReaderState: () => {\n\t\tthrow Error('not implemented');\n\t}\n});\n\ntype CustomTheme = Partial<Omit<DefaultTheme, 'palette'>> & {\n\tpalette?: Partial<DefaultTheme['palette']>;\n};\n\nconst paletteExtension =\n\t(customTheme: CustomTheme = {}) =>\n\t(theme: DefaultTheme): DefaultTheme => ({\n\t\t...theme,\n\t\t...customTheme,\n\t\tpalette: {\n\t\t\t...theme.palette,\n\t\t\t...customTheme.palette,\n\t\t\tshared: {\n\t\t\t\tregular: '#FFB74D',\n\t\t\t\thover: '#FFA21A',\n\t\t\t\tactive: '#FFA21A',\n\t\t\t\tfocus: '#FF9800',\n\t\t\t\tdisabled: '#FFD699'\n\t\t\t},\n\t\t\tlinked: {\n\t\t\t\tregular: '#AB47BC',\n\t\t\t\thover: '#8B3899',\n\t\t\t\tactive: '#8B3899',\n\t\t\t\tfocus: '#7A3187',\n\t\t\t\tdisabled: '#DDB4E4'\n\t\t\t}\n\t\t}\n\t});\n\nconst iconExtension: ThemeExtension = (theme) => ({\n\t...theme,\n\ticons: {\n\t\t...theme.icons,\n\t\tShared: theme.icons.ArrowCircleRight,\n\t\tLinked: theme.icons.ArrowCircleLeft\n\t}\n});\n\nconst globalCursorsExtension: ThemeExtension = (theme) => ({\n\t...theme,\n\tglobalCursors: [\n\t\t...(theme.globalCursors || []),\n\t\t'ns-resize',\n\t\t'ew-resize',\n\t\t'nesw-resize',\n\t\t'nwse-resize',\n\t\t'move'\n\t]\n});\n\ninterface GlobalStyledProps {\n\tbaseFontSize: number;\n}\n\nconst GlobalStyle = createGlobalStyle<GlobalStyledProps>`\n html {\n font-size: ${({ baseFontSize }): string => `${baseFontSize}%`};\n }\n ${({ theme }): SimpleInterpolation =>\n\t\tmap(\n\t\t\ttheme.globalCursors,\n\t\t\t(cursor) => css`\n\t\t\t\t.global-cursor-${cursor} * {\n\t\t\t\t\tcursor: ${cursor} !important;\n\t\t\t\t}\n\t\t\t`\n\t\t)}\n .no-active-background:active {\n\t background-color: inherit;\n }\n`;\n\ninterface ThemeProviderProps {\n\tchildren?: React.ReactNode | React.ReactNode[];\n}\nexport const ThemeProvider = ({ children }: ThemeProviderProps): React.JSX.Element => {\n\tconst [localStorageSettings] = useLocalStorage<ScalingSettings>(LOCAL_STORAGE_SETTINGS_KEY, {});\n\n\tconst [extensions, setExtensions] = useState<Partial<Record<keyof DefaultTheme, ThemeExtension>>>(\n\t\t{}\n\t);\n\n\tconst primaryColor = useGetPrimaryColor();\n\n\tuseLayoutEffect(() => {\n\t\tconst customThemePalette: Partial<DefaultTheme['palette']> = primaryColor\n\t\t\t? { primary: generateColorSet({ regular: primaryColor }) }\n\t\t\t: {};\n\t\tsetExtensions((extension) => ({\n\t\t\t...extension,\n\t\t\tpalette: paletteExtension({\n\t\t\t\tpalette: customThemePalette\n\t\t\t}),\n\t\t\ticons: iconExtension,\n\t\t\tglobalCursors: globalCursorsExtension\n\t\t}));\n\t}, [primaryColor]);\n\n\tconst [darkReaderState, setDarkReaderState] = useState<DarkReaderPropValues>('disabled');\n\n\tuseEffect(() => {\n\t\tswitch (darkReaderState) {\n\t\t\tcase 'disabled':\n\t\t\t\tauto(false);\n\t\t\t\tdisable();\n\t\t\t\tbreak;\n\t\t\tcase 'enabled':\n\t\t\t\tauto(false);\n\t\t\t\tenable({}, darkReaderDynamicThemeFixes);\n\t\t\t\tbreak;\n\t\t\tcase 'auto':\n\t\t\tdefault:\n\t\t\t\tauto({}, darkReaderDynamicThemeFixes);\n\t\t\t\tbreak;\n\t\t}\n\t}, [darkReaderState]);\n\n\tconst aggregatedExtensions = useCallback<NonNullable<UIThemeProviderProps['extension']>>(\n\t\t(theme) =>\n\t\t\treduce(\n\t\t\t\textensions,\n\t\t\t\t(themeAccumulator, themeExtensionFn) => {\n\t\t\t\t\tif (themeExtensionFn) {\n\t\t\t\t\t\treturn themeExtensionFn(themeAccumulator);\n\t\t\t\t\t}\n\t\t\t\t\treturn themeAccumulator;\n\t\t\t\t},\n\t\t\t\ttheme\n\t\t\t),\n\t\t[extensions]\n\t);\n\n\tconst addExtension = useCallback<ThemeCallbacks['addExtension']>((newExtension, id) => {\n\t\tsetExtensions((ext) => ({ ...ext, [id]: newExtension }));\n\t}, []);\n\n\tconst baseFontSize = useMemo<GlobalStyledProps['baseFontSize']>(() => {\n\t\tconst savedScalingValueSetting = localStorageSettings['settings.appearance_setting.scaling'];\n\t\tif (savedScalingValueSetting !== undefined) {\n\t\t\treturn savedScalingValueSetting;\n\t\t}\n\t\treturn getAutoScalingFontSize();\n\t}, [localStorageSettings]);\n\n\tconst themeCallbacksContextValue = useMemo<ThemeCallbacks>(\n\t\t() => ({ addExtension, setDarkReaderState }),\n\t\t[addExtension]\n\t);\n\n\treturn (\n\t\t<UIThemeProvider extension={aggregatedExtensions}>\n\t\t\t<ThemeCallbacksContext.Provider value={themeCallbacksContextValue}>\n\t\t\t\t<GlobalStyle baseFontSize={baseFontSize} />\n\t\t\t\t{children}\n\t\t\t</ThemeCallbacksContext.Provider>\n\t\t</UIThemeProvider>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useEffect, useMemo } from 'react';\n\nimport { useTheme } from '@zextras/carbonio-design-system';\nimport { size } from 'lodash';\n\nimport { LOCAL_STORAGE_LAST_PRIMARY_KEY } from '../constants';\nimport { useDarkMode } from '../dark-mode/use-dark-mode';\nimport { useLocalStorage } from '../shell/hooks/useLocalStorage';\nimport { useLoginConfigStore } from '../store/login/store';\n\nexport function useGetPrimaryColor(): string | undefined {\n\tconst [localStorageLastPrimary, setLocalStorageLastPrimary] = useLocalStorage<\n\t\tPartial<Record<'dark' | 'light', string>> | undefined\n\t>(LOCAL_STORAGE_LAST_PRIMARY_KEY, undefined);\n\tconst { carbonioWebUiPrimaryColor, carbonioWebUiDarkPrimaryColor } = useLoginConfigStore();\n\tconst { darkModeEnabled, darkReaderStatus } = useDarkMode();\n\tconst theme = useTheme();\n\n\tconst primaryColor = useMemo(() => {\n\t\tif (\n\t\t\tdarkReaderStatus !== undefined &&\n\t\t\t(carbonioWebUiPrimaryColor || carbonioWebUiDarkPrimaryColor)\n\t\t) {\n\t\t\tif (darkModeEnabled) {\n\t\t\t\treturn carbonioWebUiDarkPrimaryColor || carbonioWebUiPrimaryColor;\n\t\t\t}\n\t\t\treturn carbonioWebUiPrimaryColor || carbonioWebUiDarkPrimaryColor;\n\t\t}\n\t\tif (localStorageLastPrimary && size(localStorageLastPrimary) > 0) {\n\t\t\treturn (\n\t\t\t\t(darkModeEnabled && (localStorageLastPrimary.dark || localStorageLastPrimary.light)) ||\n\t\t\t\tlocalStorageLastPrimary.light ||\n\t\t\t\tlocalStorageLastPrimary.dark\n\t\t\t);\n\t\t}\n\t\tif (theme) {\n\t\t\treturn theme.palette.primary.regular;\n\t\t}\n\t\treturn undefined;\n\t}, [\n\t\tcarbonioWebUiDarkPrimaryColor,\n\t\tcarbonioWebUiPrimaryColor,\n\t\tdarkModeEnabled,\n\t\tdarkReaderStatus,\n\t\tlocalStorageLastPrimary,\n\t\ttheme\n\t]);\n\n\tuseEffect(() => {\n\t\tif (darkReaderStatus !== undefined) {\n\t\t\tsetLocalStorageLastPrimary((prevState) => ({\n\t\t\t\t...prevState,\n\t\t\t\t[darkModeEnabled ? 'dark' : 'light']: primaryColor\n\t\t\t}));\n\t\t}\n\t}, [darkModeEnabled, darkReaderStatus, primaryColor, setLocalStorageLastPrimary]);\n\n\treturn primaryColor;\n}\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { DynamicThemeFix } from 'darkreader';\n\n/*\n\treference: https://zextras.atlassian.net/wiki/spaces/IRIS/pages/223215854/UI+Guidelines+and+theming\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 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};\n\nexport const SHELL_APP_ID = 'carbonio-shell-ui';\nexport const SETTINGS_APP_ID = 'settings';\nexport const ACCOUNTS_APP_ID = 'accounts';\nexport const SEARCH_APP_ID = 'search';\nexport const ACTION_TYPES = {\n\tCONVERSATION: 'conversation',\n\tCONVERSATION_lIST: 'conversation_list',\n\tMESSAGE: 'message',\n\tMESSAGE_lIST: 'message_list',\n\tCONTACT: 'contact',\n\tCONTACT_lIST: 'contact_list',\n\tINVITE: 'invite',\n\tINVITE_lIST: 'invite_list',\n\tAPPOINTMENT: 'appointment',\n\tAPPOINTMENT_lIST: 'appointment_list',\n\tFOLDER: 'folder',\n\tFOLDER_lIST: 'folder_list',\n\tCALENDAR: 'calendar',\n\tCALENDAR_lIST: 'calendar_list',\n\tNEW: 'new'\n};\n\nexport const darkReaderDynamicThemeFixes: DynamicThemeFix = {\n\tignoreImageAnalysis: ['.no-dr-invert *'],\n\tinvert: [],\n\tcss: `\n\t\t.tox, .force-white-bg, .tox-swatches-menu, .tox .tox-edit-area__iframe {\n\t\t\tbackground-color: #fff !important;\n\t\t\tbackground: #fff !important;\n\t\t}\n\t`,\n\tignoreInlineStyle: ['.tox-menu *'],\n\tdisableStyleSheetsProxy: false\n};\n\nconst base = '/carbonio/';\n\nconst standaloneBase = `${base}standalone`;\n\nexport const IS_STANDALONE = window.location.pathname.startsWith(standaloneBase);\nexport const BASENAME = IS_STANDALONE ? standaloneBase : base;\nexport const EMAIL_VALIDATION_REGEX =\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars, max-len, no-control-regex\n\t/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])/;\n\nexport const ROOT_NAME = 'USER_ROOT';\n\nexport const DARK_READER_VALUES = ['auto', 'enabled', 'disabled'] as const;\n\nexport const FOLDER_VIEW = {\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};\nexport const LOCAL_STORAGE_SETTINGS_KEY = 'settings';\nexport const LOCAL_STORAGE_LAST_PRIMARY_KEY = 'config';\nexport const LOCAL_STORAGE_SEARCH_KEY = 'search_suggestions';\nexport const LOCAL_STORAGE_BOARD_SIZE = 'board_size';\nexport const SCALING_OPTIONS = [\n\t{ value: 75, label: 'xs' },\n\t{ value: 87.5, label: 's' },\n\t{ value: 100, label: 'm' },\n\t{ value: 112.5, label: 'l' },\n\t{ value: 125, label: 'xl' }\n] as const;\nexport const BASE_FONT_SIZE = 100;\nexport const SCALING_LIMIT = {\n\tWIDTH: 1400,\n\tHEIGHT: 900,\n\tDPR: 2 // device pixel ratio\n} as const;\n\nexport const LOGIN_V3_CONFIG_PATH = '/zx/login/v3/config';\nexport const DARK_READER_PROP_KEY = 'zappDarkreaderMode';\nexport const SENTRY_SHELL_DSN = 'https://0ce2448c05b94f0182c47ae52c7ff52c@feedback.zextras.tools/6';\n\nexport enum ResultLabelType {\n\tNORMAL = 'normal',\n\tWARNING = 'warning',\n\tERROR = 'error'\n}\n\nexport const HEADER_BAR_HEIGHT = '3.75rem';\nexport const PRIMARY_BAR_WIDTH = '3.0625rem';\nexport const BOARD_HEADER_HEIGHT = '3rem';\nexport const BOARD_TAB_WIDTH = 'calc(3rem + 15ch)';\nexport const BOARD_CONTAINER_ZINDEX = 10;\nexport const BOARD_MIN_VISIBILITY = {\n\ttop: 50,\n\tleft: 30\n};\n\nexport const DELEGATED_SEND_SAVE_TARGET = ['owner', 'sender', 'both', 'none'];\n","\"use strict\";\n/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SUPPORTED_LOCALES = void 0;\nexports.SUPPORTED_LOCALES = {\n zh_CN: {\n name: '中文 (中国)',\n value: 'zh_CN',\n dateFnsLocale: 'zh-CN',\n tinymceLocale: 'zh-Hans'\n },\n nl: {\n name: 'Nederlands',\n value: 'nl'\n },\n en: {\n name: 'English',\n value: 'en',\n dateFnsLocale: 'en-US'\n },\n de: {\n name: 'Deutsch',\n value: 'de'\n },\n hi: {\n name: 'हिंदी',\n value: 'hi'\n },\n it: {\n name: 'italiano',\n value: 'it'\n },\n ja: {\n name: '日本語',\n value: 'ja'\n },\n pt: {\n name: 'português',\n value: 'pt',\n tinymceLocale: 'pt_BR'\n },\n pl: {\n name: 'polski',\n value: 'pl'\n },\n pt_BR: {\n name: 'português (Brasil)',\n value: 'pt_BR',\n dateFnsLocale: 'pt-BR'\n },\n ro: {\n name: 'română',\n value: 'ro'\n },\n ru: {\n name: 'русский',\n value: 'ru'\n },\n es: {\n name: 'español',\n value: 'es'\n },\n th: {\n name: 'ไทย',\n value: 'th',\n tinymceLocale: 'th_TH'\n },\n tr: {\n name: 'Türkçe',\n value: 'tr'\n },\n fr: {\n name: 'français',\n value: 'fr',\n tinymceLocale: 'fr_FR'\n },\n vi: {\n name: 'Tiếng Việt',\n value: 'vi'\n }\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useEffect, useState } from 'react';\n\nimport { useDarkReaderResultValue } from './use-dark-reader-result-value';\nimport { getPrefersColorSchemeDarkMedia } from './utils';\nimport type { DarkReaderPropValues } from '../../types';\n\nexport const useDarkMode = (): {\n\tdarkModeEnabled: boolean;\n\tdarkReaderStatus: DarkReaderPropValues | undefined;\n} => {\n\tconst darkReaderResultValue = useDarkReaderResultValue();\n\n\tconst [darkModeEnabled, setDarkModeEnabled] = useState<boolean>(false);\n\n\tuseEffect(() => {\n\t\tif (darkReaderResultValue) {\n\t\t\tsetDarkModeEnabled(\n\t\t\t\t(darkReaderResultValue === 'auto' && getPrefersColorSchemeDarkMedia().matches) ||\n\t\t\t\t\tdarkReaderResultValue === 'enabled'\n\t\t\t);\n\t\t}\n\t}, [darkReaderResultValue]);\n\n\tuseEffect(() => {\n\t\tconst setCallback = (event: MediaQueryListEvent): void => {\n\t\t\tsetDarkModeEnabled(event.matches);\n\t\t};\n\t\tgetPrefersColorSchemeDarkMedia().addEventListener('change', setCallback);\n\t\treturn (): void => {\n\t\t\tgetPrefersColorSchemeDarkMedia().removeEventListener('change', setCallback);\n\t\t};\n\t}, []);\n\n\treturn { darkModeEnabled, darkReaderStatus: darkReaderResultValue };\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { useMemo } from 'react';\n\nimport { find, size } from 'lodash';\n\nimport type { DarkReaderPropValues, ZappDarkreaderModeZimletProp, ZimletProp } from '../../types';\nimport { DARK_READER_PROP_KEY, DARK_READER_VALUES, SHELL_APP_ID } from '../constants';\nimport { useUserSettings } from '../store/account';\nimport { useLoginConfigStore } from '../store/login/store';\n\nexport function isZappDarkreaderModeZimletProp(\n\tprop: ZimletProp\n): prop is ZappDarkreaderModeZimletProp {\n\treturn prop.name === DARK_READER_PROP_KEY && prop.zimlet === SHELL_APP_ID;\n}\n\nexport function isDarkReaderPropValues(\n\tmaybeDarkReaderPropValue: unknown\n): maybeDarkReaderPropValue is DarkReaderPropValues {\n\treturn (\n\t\ttypeof maybeDarkReaderPropValue === 'string' &&\n\t\tDARK_READER_VALUES.includes(maybeDarkReaderPropValue as DarkReaderPropValues)\n\t);\n}\n\n// return the final calculated value between ZappDarkreaderModeZimletProp value and carbonioWebUiDarkMode config\nexport function useDarkReaderResultValue(): undefined | DarkReaderPropValues {\n\tconst settings = useUserSettings();\n\tconst { carbonioWebUiDarkMode } = useLoginConfigStore();\n\n\tconst settingReceived = useMemo(\n\t\t() => size(settings.prefs) > 0 || size(settings.attrs) > 0 || size(settings.props) > 0,\n\t\t[settings]\n\t);\n\n\treturn useMemo(() => {\n\t\tif (settingReceived) {\n\t\t\tconst result = find<ZimletProp, ZappDarkreaderModeZimletProp>(\n\t\t\t\tsettings.props,\n\t\t\t\t(value): value is ZappDarkreaderModeZimletProp => isZappDarkreaderModeZimletProp(value)\n\t\t\t)?._content;\n\n\t\t\treturn result || (carbonioWebUiDarkMode && 'enabled') || 'disabled';\n\t\t}\n\t\treturn undefined;\n\t}, [settingReceived, settings, carbonioWebUiDarkMode]);\n}\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nexport const getPrefersColorSchemeDarkMedia = (): MediaQueryList =>\n\twindow.matchMedia('(prefers-color-scheme: dark)');\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { useMemo, useCallback } from 'react';\n\nimport { To } from 'history';\nimport { find, startsWith, replace, trim } from 'lodash';\nimport { useLocation, useHistory } from 'react-router-dom';\n\nimport { AppRoute, HistoryParams } from '../../types';\nimport { SEARCH_APP_ID } from '../constants';\nimport { useSearchStore } from '../search/search-store';\nimport { useRoutes, getRoutes } from '../store/app';\nimport { useContextBridge } from '../store/context-bridge';\n\nexport const useCurrentRoute = (): AppRoute | undefined => {\n\tconst location = useLocation();\n\tconst routes = useRoutes();\n\treturn useMemo(\n\t\t() => find(routes, ({ route }) => startsWith(trim(location.pathname, '/'), route)),\n\t\t[location.pathname, routes]\n\t);\n};\nexport const getCurrentRoute = (): AppRoute | undefined => {\n\tconst history = useContextBridge.getState().functions.getHistory?.();\n\tconst routes = getRoutes();\n\tconst route = find(routes, (r) => startsWith(trim(history.location.pathname, '/'), r.route));\n\tif (route?.route === SEARCH_APP_ID) {\n\t\treturn {\n\t\t\t...route,\n\t\t\troute: `${route.route}/${useSearchStore.getState().module}`\n\t\t};\n\t}\n\treturn route;\n};\n\nexport const parseParams = (params: HistoryParams): To => {\n\tif (typeof params === 'string') {\n\t\treturn replace(`/${getCurrentRoute()?.route}/${params}`, '//', '/');\n\t}\n\tconst routeToApply = params.route\n\t\t? find(getRoutes(), (r) => r.id === params.route || r.route === params.route)\n\t\t: getCurrentRoute();\n\treturn typeof params.path === 'string'\n\t\t? replace(`/${routeToApply?.route}/${params.path}`, '//', '/')\n\t\t: {\n\t\t\t\tsearch: params.path.search,\n\t\t\t\thash: params.path.hash,\n\t\t\t\tpathname: replace(`/${routeToApply?.route}/${params.path.pathname}`, '//', '/')\n\t\t };\n};\n\nexport const usePushHistoryCallback = (): ((params: HistoryParams) => void) => {\n\tconst history = useHistory();\n\treturn useCallback((params: HistoryParams): void => history.push(parseParams(params)), [history]);\n};\n\nexport const useReplaceHistoryCallback = (): ((params: HistoryParams) => void) => {\n\tconst history = useHistory();\n\treturn useCallback(\n\t\t(params: HistoryParams): void => history.replace(parseParams(params)),\n\t\t[history]\n\t);\n};\n\nexport function useGoBackHistoryCallback(): () => void {\n\tconst history = useHistory();\n\treturn history.goBack;\n}\n\nexport const pushHistory = (params: HistoryParams): void => {\n\tconst history = useContextBridge.getState().functions.getHistory?.();\n\thistory.push(parseParams(params));\n};\n\nexport const replaceHistory = (params: HistoryParams): void => {\n\tconst history = useContextBridge.getState().functions.getHistory?.();\n\thistory.replace(parseParams(params));\n};\n\nexport const goBackHistory = (): void =>\n\tuseContextBridge.getState().functions.getHistory?.().goBack();\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { filter, find, findIndex, map, reduce, isArray } from 'lodash';\n\nimport { getXmlSoapFetch } from './fetch';\nimport {\n\tAccountState,\n\tMods,\n\tAccount,\n\tCreateIdentityResponse,\n\tModifyPropertiesResponse,\n\tModifyPrefsResponse,\n\tModifyIdentityResponse,\n\tRevokeRightsResponse,\n\tDeleteIdentityResponse,\n\tGrantRightsResponse\n} from '../../types';\nimport { SHELL_APP_ID } from '../constants';\nimport { useAccountStore } from '../store/account';\n\ntype EditSettingsBatchResponse = {\n\tModifyPropertiesResponse?: ModifyPropertiesResponse[];\n\tModifyPrefsResponse?: ModifyPrefsResponse[];\n\tModifyIdentityResponse?: ModifyIdentityResponse[];\n\tDeleteIdentityResponse?: DeleteIdentityResponse[];\n\tCreateIdentityResponse?: CreateIdentityResponse[];\n\tRevokeRightsResponse?: RevokeRightsResponse[];\n\tGrantRightsResponse?: GrantRightsResponse[];\n};\n\nexport const editSettings = (\n\tmods: Partial<Mods>,\n\tappId: string = SHELL_APP_ID\n): Promise<EditSettingsBatchResponse> =>\n\tgetXmlSoapFetch(SHELL_APP_ID)<string, EditSettingsBatchResponse>(\n\t\t'Batch',\n\t\t`<BatchRequest xmlns=\"urn:zimbra\" onerror=\"stop\">${\n\t\t\tmods.props\n\t\t\t\t? `<ModifyPropertiesRequest xmlns=\"urn:zimbraAccount\">${map(\n\t\t\t\t\t\tmods.props,\n\t\t\t\t\t\t(prop, key) => `<prop name=\"${key}\" zimlet=\"${prop.app ?? appId}\">${prop.value}</prop>`\n\t\t\t\t )}</ModifyPropertiesRequest>`\n\t\t\t\t: ''\n\t\t}${\n\t\t\tmods.prefs\n\t\t\t\t? `<ModifyPrefsRequest xmlns=\"urn:zimbraAccount\">${map(mods.prefs, (pref, key) =>\n\t\t\t\t\t\tisArray(pref)\n\t\t\t\t\t\t\t? map(pref, (p) => `<pref name=\"${key}\">${p}</pref>`).join('')\n\t\t\t\t\t\t\t: `<pref name=\"${key}\">${pref}</pref>`\n\t\t\t\t ).join('')}</ModifyPrefsRequest>`\n\t\t\t\t: ''\n\t\t}${\n\t\t\tmods.identity?.modifyList\n\t\t\t\t? map(\n\t\t\t\t\t\tmods.identity.modifyList,\n\t\t\t\t\t\t(item) =>\n\t\t\t\t\t\t\t`<ModifyIdentityRequest xmlns=\"urn:zimbraAccount\" requestId=\"0\"><identity id=\"${\n\t\t\t\t\t\t\t\titem.id\n\t\t\t\t\t\t\t}\">${map(item.prefs, (value, key) => `<a name=\"${key}\">${value}</a>`).join(\n\t\t\t\t\t\t\t\t''\n\t\t\t\t\t\t\t)}</identity></ModifyIdentityRequest>`\n\t\t\t\t ).join('')\n\t\t\t\t: ''\n\t\t}${\n\t\t\tmods.identity?.deleteList\n\t\t\t\t? map(\n\t\t\t\t\t\tmods.identity.deleteList,\n\t\t\t\t\t\t(item) =>\n\t\t\t\t\t\t\t`<DeleteIdentityRequest xmlns=\"urn:zimbraAccount\" requestId=\"0\"><identity id=\"${item}\"/></DeleteIdentityRequest>`\n\t\t\t\t ).join('')\n\t\t\t\t: ''\n\t\t}${\n\t\t\tmods.identity?.createList\n\t\t\t\t? map(\n\t\t\t\t\t\tmods.identity.createList,\n\t\t\t\t\t\t(item, index) =>\n\t\t\t\t\t\t\t`<CreateIdentityRequest xmlns=\"urn:zimbraAccount\" requestId=\"${index}\"><identity name=\"${item.prefs.zimbraPrefIdentityName}\"><a name=\"zimbraPrefIdentityName\">${item.prefs.zimbraPrefIdentityName}</a><a name=\"zimbraPrefFromDisplay\">${item.prefs.zimbraPrefFromDisplay}</a><a name=\"zimbraPrefFromAddress\">${item.prefs.zimbraPrefFromAddress}</a><a name=\"zimbraPrefFromAddressType\">sendAs</a><a name=\"zimbraPrefReplyToEnabled\">${item.prefs.zimbraPrefReplyToEnabled}</a><a name=\"zimbraPrefReplyToDisplay\">${item.prefs.zimbraPrefReplyToDisplay}</a><a name=\"zimbraPrefReplyToAddress\">${item.prefs.zimbraPrefReplyToAddress}</a><a name=\"zimbraPrefDefaultSignatureId\">${item.prefs.zimbraPrefDefaultSignatureId}</a><a name=\"zimbraPrefForwardReplySignatureId\">${item.prefs.zimbraPrefForwardReplySignatureId}</a><a name=\"zimbraPrefWhenSentToEnabled\">${item.prefs.zimbraPrefWhenSentToEnabled}</a><a name=\"zimbraPrefWhenInFoldersEnabled\">${item.prefs.zimbraPrefWhenInFoldersEnabled}</a></identity></CreateIdentityRequest>`\n\t\t\t\t ).join('')\n\t\t\t\t: ''\n\t\t}${\n\t\t\tmods.permissions\n\t\t\t\t? `<RevokeRightsRequest xmlns=\"urn:zimbraAccount\" requestId=\"0\">${\n\t\t\t\t\t\tmods.permissions.freeBusy\n\t\t\t\t\t\t\t? map(mods.permissions.freeBusy.current, (right) => {\n\t\t\t\t\t\t\t\t\tif (right.gt === 'dom')\n\t\t\t\t\t\t\t\t\t\treturn `<ace right=\"viewFreeBusy\" gt=\"${right.gt}\" zid=\"${right.zid}\" d=\"zextras.com\"/>`;\n\t\t\t\t\t\t\t\t\tif (right.gt === 'all' && right.deny)\n\t\t\t\t\t\t\t\t\t\treturn `<ace right=\"viewFreeBusy\" gt=\"${right.gt}\" zid=\"${right.zid}\" deny=\"1\"/>`;\n\t\t\t\t\t\t\t\t\tif (right.gt === 'usr')\n\t\t\t\t\t\t\t\t\t\treturn `<ace right=\"viewFreeBusy\" gt=\"${right.gt}\" zid=\"${right.zid}\" d=\"${right.d}\"/>`;\n\t\t\t\t\t\t\t\t\treturn `<ace right=\"viewFreeBusy\" gt=\"${right.gt}\" zid=\"${right.zid}\" />`;\n\t\t\t\t\t\t\t }).join('')\n\t\t\t\t\t\t\t: ''\n\t\t\t\t }${\n\t\t\t\t\t\tmods.permissions.inviteRight\n\t\t\t\t\t\t\t? map(mods.permissions.inviteRight.current, (right) => {\n\t\t\t\t\t\t\t\t\tif (right.gt === 'all' && right.deny)\n\t\t\t\t\t\t\t\t\t\treturn `<ace right=\"invite\" gt=\"${right.gt}\" zid=\"${right.zid}\" deny=\"1\"/>`;\n\t\t\t\t\t\t\t\t\tif (right.gt === 'usr')\n\t\t\t\t\t\t\t\t\t\treturn `<ace right=\"invite\" gt=\"${right.gt}\" zid=\"${right.zid}\" d=\"${right.d}\"/>`;\n\t\t\t\t\t\t\t\t\treturn `<ace right=\"invite\" gt=\"${right.gt}\" zid=\"${right.zid}\" />`;\n\t\t\t\t\t\t\t }).join('')\n\t\t\t\t\t\t\t: ''\n\t\t\t\t }</RevokeRightsRequest><GrantRightsRequest xmlns=\"urn:zimbraAccount\" requestId=\"1\">${\n\t\t\t\t\t\tmods.permissions.freeBusy\n\t\t\t\t\t\t\t? `${((): string => {\n\t\t\t\t\t\t\t\t\tif (mods.permissions.freeBusy.new.gt === 'dom') {\n\t\t\t\t\t\t\t\t\t\treturn `<ace right=\"viewFreeBusy\" gt=\"${mods.permissions.freeBusy.new.gt}\" d=\"zextras.com\"/>`;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tmods.permissions.freeBusy.new.gt === 'all' &&\n\t\t\t\t\t\t\t\t\t\tmods.permissions.freeBusy.new.deny\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\treturn `<ace right=\"viewFreeBusy\" gt=\"${mods.permissions.freeBusy.new.gt}\" deny=\"1\"/>`;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (mods.permissions.freeBusy.new.gt === 'usr') {\n\t\t\t\t\t\t\t\t\t\treturn map(\n\t\t\t\t\t\t\t\t\t\t\tmods.permissions.freeBusy.new.d,\n\t\t\t\t\t\t\t\t\t\t\t(u) =>\n\t\t\t\t\t\t\t\t\t\t\t\t// FIXME: usage differs from the declaration of the AccountACE\n\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t\t\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\t\t\t`<ace right=\"viewFreeBusy\" gt=\"${mods.permissions?.freeBusy.new.gt}\" d=\"${u.email}\"/>`\n\t\t\t\t\t\t\t\t\t\t).join('');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn `<ace right=\"viewFreeBusy\" gt=\"${mods.permissions.freeBusy.new.gt}\" />`;\n\t\t\t\t\t\t\t })()}`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t }${\n\t\t\t\t\t\tmods.permissions.inviteRight\n\t\t\t\t\t\t\t? `${((): string => {\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tmods.permissions.inviteRight.new.gt === 'all' &&\n\t\t\t\t\t\t\t\t\t\tmods.permissions.inviteRight.new.deny\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\treturn `<ace right=\"invite\" gt=\"${mods.permissions.inviteRight.new.gt}\" deny=\"1\"/>`;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (mods.permissions.inviteRight.new.gt === 'usr') {\n\t\t\t\t\t\t\t\t\t\treturn map(\n\t\t\t\t\t\t\t\t\t\t\tmods.permissions.inviteRight.new.d,\n\t\t\t\t\t\t\t\t\t\t\t(u) =>\n\t\t\t\t\t\t\t\t\t\t\t\t// FIXME: usage differs from the declaration of the AccountACE\n\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t\t\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\t\t\t`<ace right=\"invite\" gt=\"${mods.permissions?.inviteRight.new.gt}\" d=\"${u.email}\"/>`\n\t\t\t\t\t\t\t\t\t\t).join('');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn `<ace right=\"invite\" gt=\"${mods.permissions?.inviteRight.new.gt}\" />`;\n\t\t\t\t\t\t\t })()}`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t }\n\t</GrantRightsRequest>`\n\t\t\t\t: ''\n\t\t}</BatchRequest>`\n\t).then((r) => {\n\t\tuseAccountStore.setState((s: AccountState) => ({\n\t\t\tsettings: {\n\t\t\t\t...s.settings,\n\t\t\t\tprefs: reduce(\n\t\t\t\t\tmods.prefs,\n\t\t\t\t\t(acc, pref, key) => ({\n\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t[key]: pref as string\n\t\t\t\t\t}),\n\t\t\t\t\ts.settings.prefs\n\t\t\t\t),\n\t\t\t\tprops: reduce(\n\t\t\t\t\tmods.props,\n\t\t\t\t\t(acc, { app, value }, key) => {\n\t\t\t\t\t\tconst propIndex = findIndex(acc, (p) => p.name === key && p.zimlet === app);\n\t\t\t\t\t\tif (propIndex >= 0) {\n\t\t\t\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\t\t\t\tacc[propIndex] = {\n\t\t\t\t\t\t\t\tname: key,\n\t\t\t\t\t\t\t\tzimlet: app,\n\t\t\t\t\t\t\t\t_content: value as string\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tacc.push({\n\t\t\t\t\t\t\t\tname: key,\n\t\t\t\t\t\t\t\tzimlet: app,\n\t\t\t\t\t\t\t\t_content: value as string\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t},\n\t\t\t\t\ts.settings.props\n\t\t\t\t)\n\t\t\t},\n\t\t\taccount: {\n\t\t\t\t...s.account,\n\t\t\t\tdisplayName:\n\t\t\t\t\tfind(mods?.identity?.modifyList, (item) => item.id === s?.account?.id)?.prefs\n\t\t\t\t\t\t.zimbraPrefIdentityName || s.account?.displayName,\n\t\t\t\tidentities: {\n\t\t\t\t\tidentity:\n\t\t\t\t\t\ttypeof s.account !== 'undefined'\n\t\t\t\t\t\t\t? reduce(\n\t\t\t\t\t\t\t\t\tmods?.identity?.modifyList,\n\t\t\t\t\t\t\t\t\t(acc, { id, prefs }) => {\n\t\t\t\t\t\t\t\t\t\tconst propIndex = findIndex(\n\t\t\t\t\t\t\t\t\t\t\tacc,\n\t\t\t\t\t\t\t\t\t\t\t(itemMods, indexAccount) => acc[indexAccount].id === id\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tif (propIndex > -1) {\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\t\t\t\t\t\t\t\tacc[propIndex]._attrs = {\n\t\t\t\t\t\t\t\t\t\t\t\t...acc[propIndex]._attrs,\n\t\t\t\t\t\t\t\t\t\t\t\t...prefs\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\tif (prefs.zimbraPrefIdentityName && acc[propIndex].name !== 'DEFAULT') {\n\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\t\t\t\t\t\t\t\t\tacc[propIndex].name = prefs.zimbraPrefIdentityName;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn acc;\n\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...filter(\n\t\t\t\t\t\t\t\t\t\t\ts.account.identities.identity,\n\t\t\t\t\t\t\t\t\t\t\t(item) => !mods?.identity?.deleteList?.includes(item.id)\n\t\t\t\t\t\t\t\t\t\t).filter((i) => i.name !== 'DEFAULT'),\n\t\t\t\t\t\t\t\t\t\t...map(r?.CreateIdentityResponse, (item) => item.identity[0]),\n\t\t\t\t\t\t\t\t\t\t...filter(\n\t\t\t\t\t\t\t\t\t\t\ts.account.identities.identity,\n\t\t\t\t\t\t\t\t\t\t\t(item) => !mods?.identity?.deleteList?.includes(item.id)\n\t\t\t\t\t\t\t\t\t\t).filter((i) => i.name === 'DEFAULT')\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t} as Account\n\t\t}));\n\t\treturn r;\n\t});\n\nexport const getEditSettingsForApp =\n\t(app: string) =>\n\t(mods: Mods): Promise<EditSettingsBatchResponse & { type?: 'fulfilled' }> =>\n\t\teditSettings(mods, app).then((r) => ({\n\t\t\t...r,\n\t\t\ttype: 'fulfilled'\n\t\t}));\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { find, map, maxBy } from 'lodash';\n\nimport { userAgent } from './user-agent';\nimport { goToLogin } from './utils';\nimport {\n\tAccount,\n\tErrorSoapBodyResponse,\n\tErrorSoapResponse,\n\tSoapContext,\n\tSoapResponse\n} from '../../types';\nimport { IS_STANDALONE, SHELL_APP_ID } from '../constants';\nimport { report } from '../reporting/functions';\nimport { useAccountStore } from '../store/account';\nimport { useNetworkStore } from '../store/network';\nimport { getPollingInterval, handleSync } from '../store/network/utils';\n\nexport const fetchNoOp = (): void => {\n\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\tgetSoapFetch(SHELL_APP_ID)(\n\t\t'NoOp',\n\t\tuseNetworkStore.getState().pollingInterval === 500\n\t\t\t? { _jsns: 'urn:zimbraMail', limitToOneBlocked: 1, wait: 1 }\n\t\t\t: { _jsns: 'urn:zimbraMail' }\n\t);\n};\n\nconst getAccount = (\n\tacc?: Account,\n\totherAccount?: string\n): { by: string; _content: string } | undefined => {\n\tif (otherAccount) {\n\t\treturn {\n\t\t\tby: 'name',\n\t\t\t_content: otherAccount\n\t\t};\n\t}\n\tif (acc) {\n\t\tif (acc.name) {\n\t\t\treturn {\n\t\t\t\tby: 'name',\n\t\t\t\t_content: acc.name\n\t\t\t};\n\t\t}\n\t\tif (acc.id) {\n\t\t\treturn {\n\t\t\t\tby: 'id',\n\t\t\t\t_content: acc.id\n\t\t\t};\n\t\t}\n\t}\n\treturn undefined;\n};\n\nconst getXmlAccount = (acc?: Account, otherAccount?: string): string => {\n\tif (otherAccount) {\n\t\treturn `<account by=\"name\">${otherAccount}</account>`;\n\t}\n\tif (acc) {\n\t\tif (acc.name) {\n\t\t\treturn `<account by=\"name\">${acc.name}</account>`;\n\t\t}\n\t\tif (acc.id) {\n\t\t\treturn `<account by=\"id\">${acc.id}</account>`;\n\t\t}\n\t}\n\treturn '';\n};\n\nconst getXmlSession = (): string => {\n\tconst sessionId = useNetworkStore.getState().session?.id;\n\tif (sessionId) {\n\t\treturn `<session id=\"${sessionId}\"/>`;\n\t}\n\treturn '';\n};\n\nconst normalizeContext = (context: any): SoapContext => {\n\tif (context.notify) {\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tcontext.notify = map(context.notify, (notify) => ({\n\t\t\t...notify,\n\t\t\tdeleted: notify.deleted?.id?.split(',')\n\t\t}));\n\t}\n\treturn context;\n};\n\nconst handleResponse = <R>(api: string, res: SoapResponse<R>): R | ErrorSoapBodyResponse => {\n\tconst { noOpTimeout } = useNetworkStore.getState();\n\tconst { usedQuota } = useAccountStore.getState();\n\tclearTimeout(noOpTimeout);\n\tif (res.Body.Fault) {\n\t\tif (\n\t\t\tfind(\n\t\t\t\t['service.AUTH_REQUIRED', 'service.AUTH_EXPIRED'],\n\t\t\t\t(code) => code === (<ErrorSoapResponse>res).Body.Fault.Detail?.Error?.Code\n\t\t\t)\n\t\t) {\n\t\t\tif (IS_STANDALONE) {\n\t\t\t\tuseAccountStore.setState({ authenticated: false });\n\t\t\t} else {\n\t\t\t\tgoToLogin();\n\t\t\t}\n\t\t}\n\t\tconsole.error(\n\t\t\tnew Error(\n\t\t\t\t`${(<ErrorSoapResponse>res).Body.Fault.Detail?.Error?.Detail}: ${\n\t\t\t\t\t(<ErrorSoapResponse>res).Body.Fault.Reason?.Text\n\t\t\t\t}`\n\t\t\t)\n\t\t);\n\t}\n\tif (res.Header?.context) {\n\t\tconst responseUsedQuota =\n\t\t\tres.Header.context?.refresh?.mbx?.[0]?.s ??\n\t\t\tres.Header.context?.notify?.[0]?.modified?.mbx?.[0]?.s;\n\t\tconst _context = normalizeContext(res.Header.context);\n\t\tconst seq = maxBy(_context.notify, 'seq')?.seq ?? 0;\n\t\thandleSync(_context);\n\t\tuseAccountStore.setState({\n\t\t\tusedQuota: responseUsedQuota ?? usedQuota\n\t\t});\n\n\t\tconst nextPollingInterval = getPollingInterval(res);\n\t\tuseNetworkStore.setState({\n\t\t\tnoOpTimeout: setTimeout(() => fetchNoOp(), nextPollingInterval),\n\t\t\tpollingInterval: nextPollingInterval,\n\t\t\tseq,\n\t\t\t..._context\n\t\t});\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t// @ts-ignore\n\treturn res?.Body?.Fault ? (res.Body as ErrorSoapBodyResponse) : (res.Body[`${api}Response`] as R);\n};\nexport const getSoapFetch =\n\t(app: string) =>\n\t<Request, Response>(\n\t\tapi: string,\n\t\tbody: Request,\n\t\totherAccount?: string,\n\t\tsignal?: AbortSignal\n\t): Promise<Response> => {\n\t\tconst { zimbraVersion, account } = useAccountStore.getState();\n\t\tconst { notify, session } = useNetworkStore.getState();\n\t\treturn fetch(`/service/soap/${api}Request`, {\n\t\t\tsignal,\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json'\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\tBody: {\n\t\t\t\t\t[`${api}Request`]: body\n\t\t\t\t},\n\t\t\t\tHeader: {\n\t\t\t\t\tcontext: {\n\t\t\t\t\t\t_jsns: 'urn:zimbra',\n\t\t\t\t\t\tnotify: notify?.[0]?.seq\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tseq: notify?.[0]?.seq\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\tsession: session ?? {},\n\t\t\t\t\t\taccount: getAccount(account as Account, otherAccount),\n\t\t\t\t\t\tuserAgent: {\n\t\t\t\t\t\t\tname: userAgent,\n\t\t\t\t\t\t\tversion: zimbraVersion\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}) // TODO proper error handling\n\t\t\t.then((res) => res?.json())\n\t\t\t.then((res: SoapResponse<Response>) => handleResponse(api, res))\n\t\t\t.catch((e) => {\n\t\t\t\treport(app)(e);\n\t\t\t\tthrow e;\n\t\t\t}) as Promise<Response>;\n\t};\n\nexport const getXmlSoapFetch =\n\t(app: string) =>\n\t<Request, Response>(api: string, body: Request, otherAccount?: string): Promise<Response> => {\n\t\tconst { zimbraVersion, account } = useAccountStore.getState();\n\t\treturn fetch(`/service/soap/${api}Request`, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'content-type': 'application/soap+xml'\n\t\t\t},\n\t\t\tbody: `<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\t\t<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\">\n\t\t\t<soap:Header><context xmlns=\"urn:zimbra\"><userAgent name=\"${userAgent}\" version=\"${zimbraVersion}\"/>${getXmlSession()}${getXmlAccount(\n\t\t\t\taccount,\n\t\t\t\totherAccount\n\t\t\t)}<format type=\"js\"/></context></soap:Header>\n\t\t\t<soap:Body>${body}</soap:Body>\n\t\t</soap:Envelope>`\n\t\t}) // TODO proper error handling\n\t\t\t.then((res) => res?.json())\n\t\t\t.then((res: SoapResponse<Response>) => handleResponse(api, res))\n\t\t\t.catch((e) => {\n\t\t\t\treport(app)(e);\n\t\t\t\tthrow e;\n\t\t\t}) as Promise<Response>;\n\t};\n\nexport const shellSoap = getSoapFetch(SHELL_APP_ID);\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { filter } from 'lodash';\n\nimport { CarbonioModule } from '../../types';\nimport { useAppStore } from '../store/app';\n\nexport const getComponents = (): Promise<void> =>\n\tfetch('/static/iris/components.json')\n\t\t.then((response) => {\n\t\t\tif (response.ok) {\n\t\t\t\treturn response.json();\n\t\t\t}\n\t\t\tthrow Error(response.statusText);\n\t\t})\n\t\t.then(({ components }: { components: Array<CarbonioModule> }) => {\n\t\t\tuseAppStore\n\t\t\t\t.getState()\n\t\t\t\t.setters.setApps(filter(components, ({ type }) => type === 'shell' || type === 'carbonio'));\n\t\t});\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { getSoapFetch } from './fetch';\nimport { GetInfoResponse } from '../../types';\nimport { SHELL_APP_ID } from '../constants';\nimport { useAccountStore } from '../store/account';\nimport { normalizeAccount } from '../store/account/normalization';\nimport { useNetworkStore } from '../store/network';\nimport { parsePollingInterval } from '../store/network/utils';\n\nexport const getInfo = (): Promise<void> =>\n\tgetSoapFetch(SHELL_APP_ID)<{ _jsns: string; rights: string }, GetInfoResponse>('GetInfo', {\n\t\t_jsns: 'urn:zimbraAccount',\n\t\trights: 'sendAs,sendAsDistList,viewFreeBusy,sendOnBehalfOf,sendOnBehalfOfDistList'\n\t}).then((res: GetInfoResponse): void => {\n\t\tif (res) {\n\t\t\tconst { account, settings, version } = normalizeAccount(res);\n\t\t\tuseNetworkStore.setState({\n\t\t\t\tpollingInterval: parsePollingInterval(settings)\n\t\t\t});\n\t\t\tuseAccountStore.setState({\n\t\t\t\tauthenticated: true,\n\t\t\t\taccount,\n\t\t\t\tsettings,\n\t\t\t\tzimbraVersion: version\n\t\t\t});\n\t\t}\n\t});\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { LoginConfigStore } from '../../types/loginConfig';\nimport { LOGIN_V3_CONFIG_PATH } from '../constants';\nimport { getClientTitle, getFavicon } from '../store/login/getters';\nimport { useLoginConfigStore } from '../store/login/store';\n\nexport const loginConfig = (): Promise<void> =>\n\tfetch(LOGIN_V3_CONFIG_PATH)\n\t\t.then((response) => response.json())\n\t\t.then((data: LoginConfigStore) => {\n\t\t\tuseLoginConfigStore.setState(data);\n\t\t})\n\t\t.finally(() => {\n\t\t\tuseLoginConfigStore.setState({ loaded: true });\n\t\t\tconst favicon = document.getElementById('favicon');\n\t\t\tif (favicon && favicon instanceof HTMLLinkElement) {\n\t\t\t\tfavicon.href = getFavicon();\n\t\t\t}\n\t\t\tdocument.title = getClientTitle();\n\t\t});\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { getSoapFetch } from './fetch';\nimport { goTo, goToLogin } from './utils';\nimport { SHELL_APP_ID } from '../constants';\nimport { useLoginConfigStore } from '../store/login/store';\n\nexport function logout(): Promise<void> {\n\treturn getSoapFetch(SHELL_APP_ID)('EndSession', {\n\t\t_jsns: 'urn:zimbraAccount',\n\t\tlogoff: true\n\t})\n\t\t.then(() => fetch('/logout', { redirect: 'manual' }))\n\t\t.then(() => {\n\t\t\tconst customLogoutUrl = useLoginConfigStore.getState().carbonioWebUiLogoutURL;\n\t\t\tcustomLogoutUrl ? goTo(customLogoutUrl) : goToLogin();\n\t\t})\n\t\t.catch((error) => {\n\t\t\tconsole.error(error);\n\t\t});\n}\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { getSoapFetch } from './fetch';\nimport {\n\tCreateTagRequest,\n\tCreateTagResponse,\n\tTagActionRequest,\n\tTagActionResponse\n} from '../../types';\nimport { Tag } from '../../types/tags';\nimport { SHELL_APP_ID } from '../constants';\n\nexport const createTag = (tag: Omit<Tag, 'id'>): Promise<CreateTagResponse> =>\n\tgetSoapFetch(SHELL_APP_ID)<CreateTagRequest, CreateTagResponse>('CreateTag', {\n\t\t_jsns: 'urn:zimbraMail',\n\t\ttag\n\t});\nexport const deleteTag = (id: string): Promise<TagActionResponse> =>\n\tgetSoapFetch(SHELL_APP_ID)<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\tgetSoapFetch(SHELL_APP_ID)<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\tgetSoapFetch(SHELL_APP_ID)<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: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport UAParser from 'ua-parser-js';\n\nconst { os, browser } = UAParser();\nexport const userAgent = `CarbonioWebClient - ${browser.name} ${browser.version} (${os.name})`;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nexport function goToLogin(): void {\n\twindow.location.assign(`${window.location.origin}/static/login`);\n}\n\nexport function goTo(location: string): void {\n\twindow.location.assign(location);\n}\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { debounce, noop } from 'lodash';\n\nimport defaultAudio from '../../assets/notification.mp3';\nimport type {\n\tAudioNotificationConfig,\n\tINotificationManager,\n\tNotificationConfig,\n\tPopupNotificationConfig\n} from '../../types';\nimport { getFavicon } from '../store/login/getters';\n\n/**\n * The main goals of the NotificationManager are:\n * - to provide a single and rich implementation for all the Carbonio modules,\n * reducing the boilerplate code needed to send a notification to the user\n * - to optimize the audio notifications avoiding to spam the same sound file\n * in a short period of time\n * - to act as a collector for all the notification (for possible future\n * implementations)\n *\n * In order to reduce the effort needed to send a notification the class\n * provided a set of default values/assets (e.g. icon, sound, title, ...)\n *\n * The class is provided as a singleton\n */\nexport class NotificationManager implements INotificationManager {\n\tprivate static instance: NotificationManager;\n\n\t/**\n\t * Minimum time (ms) to wait before the same audio file will be played\n\t * @private\n\t */\n\tprivate static DEBOUNCE_TIME = 1000;\n\n\t/**\n\t * Default configuration for the popup-only notification\n\t * @private\n\t */\n\tprivate PopupNotificationDefaultConfig = {\n\t\ttitle: '',\n\t\tvibrate: [200, 100, 200],\n\t\ticon: getFavicon()\n\t};\n\n\t/**\n\t * Default configuration for the audio-only notification\n\t * @private\n\t */\n\tprivate AudioNotificationDefaultConfig: AudioNotificationConfig = {\n\t\tsound: defaultAudio\n\t};\n\n\t/**\n\t * Default configuration for a notification with both popup and audio\n\t * @private\n\t */\n\tprivate NotificationDefaultConfig: NotificationConfig = {\n\t\t...this.PopupNotificationDefaultConfig,\n\t\t...this.AudioNotificationDefaultConfig,\n\t\tshowPopup: true,\n\t\tplaySound: false\n\t};\n\n\t/**\n\t * Map of functions to play a specific audio file\n\t * @private\n\t */\n\tprivate functions = new Map<string, () => void>();\n\n\t/**\n\t * Gets or creates the (debounced) function to play the audio file\n\t * @param sound - relative path to the audio file to play\n\t */\n\tprivate getAudioFileFunction = (sound: string): (() => void) => {\n\t\tif (!this.functions.has(sound)) {\n\t\t\tthis.functions.set(\n\t\t\t\tsound,\n\t\t\t\tdebounce(() => {\n\t\t\t\t\tnew Audio(sound).play().then();\n\t\t\t\t\tthis.functions.delete(sound);\n\t\t\t\t}, NotificationManager.DEBOUNCE_TIME)\n\t\t\t);\n\t\t}\n\t\tconst result = this.functions.get(sound);\n\t\treturn result ?? noop;\n\t};\n\n\t/**\n\t * Executes the debounced function to play the audio file\n\t * @param config - Configuration for the audio notification. In case of\n\t * missing properties default values are used\n\t */\n\tpublic playSound = (config: AudioNotificationConfig): void => {\n\t\tconst defConfig = {\n\t\t\t...this.AudioNotificationDefaultConfig,\n\t\t\t...config\n\t\t};\n\t\tif (!defConfig.sound) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.getAudioFileFunction(defConfig.sound)();\n\t};\n\n\t/**\n\t * Shows a popup notification\n\t * @param config - Configuration for the popup notification. In case of\n\t * missing properties default values are used\n\t */\n\tpublic showPopup = (config: PopupNotificationConfig): void => {\n\t\tconst defConfig = {\n\t\t\t...this.PopupNotificationDefaultConfig,\n\t\t\t...config\n\t\t};\n\n\t\tconst n = new Notification(defConfig.title, {\n\t\t\tbody: defConfig.message,\n\t\t\tvibrate: defConfig.vibrate,\n\t\t\ticon: defConfig.icon,\n\t\t\ttag: defConfig?.tag\n\t\t});\n\n\t\tif (defConfig.onClick) {\n\t\t\tn.addEventListener('click', defConfig.onClick);\n\t\t}\n\t};\n\n\t/**\n\t * Sends a popup/audio notification to the user\n\t * @param config - Configuration for the notification. In case of\n\t * missing properties default values are used\n\t */\n\tpublic notify = (config: NotificationConfig): void => {\n\t\tconst defConfig = {\n\t\t\t...this.NotificationDefaultConfig,\n\t\t\t...config\n\t\t};\n\n\t\tif (defConfig?.showPopup) {\n\t\t\tthis.showPopup(defConfig);\n\t\t}\n\n\t\tif (defConfig?.playSound) {\n\t\t\tthis.playSound(defConfig);\n\t\t}\n\t};\n\n\t/**\n\t * Sends multiple notifications\n\t * @param config - Array of configurations for the notifications. In case of\n\t * missing properties default values are used\n\t */\n\tpublic multipleNotify = (config: NotificationConfig[]): void => {\n\t\tconfig.forEach((conf) => this.notify(conf));\n\t};\n\n\t/**\n\t * Return the singleton instance\n\t */\n\tpublic static getInstance(): NotificationManager {\n\t\tif (!NotificationManager.instance) {\n\t\t\tNotificationManager.instance = new NotificationManager();\n\t\t}\n\n\t\treturn NotificationManager.instance;\n\t}\n}\n\nexport const getNotificationManager = (): INotificationManager => NotificationManager.getInstance();\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { FC, ReactElement, useEffect } from 'react';\n\nexport const NotificationPermissionChecker: FC = (): ReactElement => {\n\tuseEffect(() => {\n\t\tif (!('Notification' in window)) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn('This browser does not support desktop notifications');\n\t\t} else {\n\t\t\tNotification.requestPermission();\n\t\t}\n\t}, []);\n\n\treturn <></>;\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport type { Event, EventHint } from '@sentry/browser';\n\nimport { useReporter } from './store';\n\nexport const report =\n\t(appId: string) =>\n\t(error: Event, hint?: EventHint): string => {\n\t\tconst reporter = useReporter.getState();\n\t\tconst eventId = reporter.clients[appId]?.captureException(error, { ...hint });\n\t\tif (eventId) {\n\t\t\tconsole.info('Reported event ', eventId);\n\t\t}\n\t\treturn eventId;\n\t};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport {\n\tBrowserClient,\n\tdefaultIntegrations,\n\tdefaultStackParser,\n\tHub,\n\tmakeFetchTransport\n} from '@sentry/browser';\nimport { reduce } from 'lodash';\nimport { create } from 'zustand';\n\nimport type { CarbonioModule } from '../../types';\nimport { SENTRY_SHELL_DSN, SHELL_APP_ID } from '../constants';\n\ntype ReporterState = {\n\tclients: Record<string, Hub>;\n\tsetClients: (apps: Array<CarbonioModule>) => void;\n};\n\nexport const useReporter = create<ReporterState>()((set) => ({\n\tclients: {\n\t\t[SHELL_APP_ID]: new Hub(\n\t\t\tnew BrowserClient({\n\t\t\t\ttransport: makeFetchTransport,\n\t\t\t\tstackParser: defaultStackParser,\n\t\t\t\tintegrations: defaultIntegrations,\n\t\t\t\tdsn: SENTRY_SHELL_DSN,\n\t\t\t\trelease: '0',\n\t\t\t\tmaxValueLength: 500\n\t\t\t})\n\t\t)\n\t},\n\tsetClients: (apps): void => {\n\t\tset((s) => ({\n\t\t\tclients: reduce(\n\t\t\t\tapps,\n\t\t\t\t(acc, app) => {\n\t\t\t\t\tif (app.sentryDsn) {\n\t\t\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\t\t\ts.clients[app.name] = new Hub(\n\t\t\t\t\t\t\tnew BrowserClient({\n\t\t\t\t\t\t\t\ttransport: makeFetchTransport,\n\t\t\t\t\t\t\t\tstackParser: defaultStackParser,\n\t\t\t\t\t\t\t\tintegrations: defaultIntegrations,\n\t\t\t\t\t\t\t\tdsn: app.sentryDsn,\n\t\t\t\t\t\t\t\trelease: app.version,\n\t\t\t\t\t\t\t\tmaxValueLength: 500\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\treturn acc;\n\t\t\t\t},\n\t\t\t\ts.clients\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, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport {\n\tContainer,\n\tRow,\n\tText,\n\tIcon,\n\tDropdown,\n\tDropdownItem\n} from '@zextras/carbonio-design-system';\nimport styled from 'styled-components';\n\nimport { useSearchStore } from './search-store';\nimport { SEARCH_APP_ID } from '../constants';\nimport { useCurrentRoute, pushHistory } from '../history/hooks';\nimport { useAppStore } from '../store/app';\n\nconst SelectorContainer = styled(Container)<{ open?: boolean }>`\n\tborder-right: 0.0625rem solid ${({ theme }): string => theme.palette.gray4.regular};\n\tcursor: pointer;\n\tbackground: ${({ theme, open }): string => theme.palette[open ? 'gray5' : 'gray6'].regular};\n\n\t&:hover {\n\t\tbackground: ${({ theme, open }): string => theme.palette[open ? 'gray5' : 'gray6'].hover};\n\t}\n`;\n\ninterface ModuleSelectorProps {\n\tapp: string | undefined;\n}\n\nconst ModuleSelectorComponent = ({ app }: ModuleSelectorProps): React.JSX.Element | null => {\n\tconst modules = useAppStore((s) => s.views.search);\n\tconst { module, updateModule } = useSearchStore();\n\n\tconst fullModule = useMemo(\n\t\t() => modules.find((m) => m.route === module) ?? modules[0],\n\t\t[module, modules]\n\t);\n\n\tconst [open, setOpen] = useState(false);\n\n\tconst dropdownItems = useMemo(\n\t\t(): DropdownItem[] =>\n\t\t\tmodules.map(\n\t\t\t\t({ id, label, icon, route }): DropdownItem => ({\n\t\t\t\t\tid,\n\t\t\t\t\tlabel,\n\t\t\t\t\ticon,\n\t\t\t\t\tonClick: (): void => {\n\t\t\t\t\t\tupdateModule(route);\n\t\t\t\t\t\tpushHistory({ route: SEARCH_APP_ID, path: `/${route}` });\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t),\n\t\t[modules, updateModule]\n\t);\n\n\tuseEffect(() => {\n\t\tif (app !== SEARCH_APP_ID && (!fullModule || fullModule?.app !== app)) {\n\t\t\tupdateModule((modules.find((m) => m.app === app) ?? modules[0])?.route);\n\t\t}\n\t}, [app, fullModule, modules, updateModule]);\n\n\tconst openDropdown = useCallback(() => {\n\t\tsetOpen(true);\n\t}, []);\n\n\tconst closeDropdown = useCallback(() => {\n\t\tsetOpen(false);\n\t}, []);\n\n\tif (!fullModule) {\n\t\treturn null;\n\t}\n\n\t// TODO: replace the Dropdown with a Select with the customLabelFactory\n\treturn (\n\t\t<Dropdown items={dropdownItems} onOpen={openDropdown} onClose={closeDropdown}>\n\t\t\t<SelectorContainer\n\t\t\t\tdata-testid=\"HeaderModuleSelector\"\n\t\t\t\torientation=\"horizontal\"\n\t\t\t\theight=\"2.625rem\"\n\t\t\t\twidth=\"fit\"\n\t\t\t\tminWidth=\"9.375rem\"\n\t\t\t\tcrossAlignment=\"center\"\n\t\t\t\tmainAlignment=\"space-between\"\n\t\t\t\tborderRadius=\"half\"\n\t\t\t>\n\t\t\t\t<Row takeAvailableSpace mainAlignment=\"unset\" padding={{ left: 'small' }}>\n\t\t\t\t\t<Text size=\"small\" color={open ? 'primary' : 'text'}>\n\t\t\t\t\t\t{fullModule?.label}\n\t\t\t\t\t</Text>\n\t\t\t\t</Row>\n\t\t\t\t<Icon\n\t\t\t\t\tsize=\"large\"\n\t\t\t\t\ticon={open ? 'ChevronUpOutline' : 'ChevronDownOutline'}\n\t\t\t\t\tcolor={open ? 'primary' : 'text'}\n\t\t\t\t\tstyle={{ alignSelf: 'center' }}\n\t\t\t\t/>\n\t\t\t</SelectorContainer>\n\t\t</Dropdown>\n\t);\n};\n\nconst MemoModuleSelector = React.memo(ModuleSelectorComponent);\n\nexport const ModuleSelector = (): React.JSX.Element => {\n\tconst activeRoute = useCurrentRoute();\n\treturn <MemoModuleSelector app={activeRoute?.app} />;\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useSearchStore } from './search-store';\nimport { QueryChip } from '../../types';\nimport { SEARCH_APP_ID } from '../constants';\nimport { pushHistory } from '../history/hooks';\n\nexport const runSearch = (query: Array<QueryChip>, module: string): void => {\n\tuseSearchStore.setState({ query, module, searchDisabled: false });\n\tpushHistory({ route: SEARCH_APP_ID, path: `/${module}` });\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport {\n\tButton,\n\tChip,\n\tContainer,\n\tDivider,\n\tIcon,\n\tPadding,\n\tText\n} from '@zextras/carbonio-design-system';\nimport { map } from 'lodash';\nimport { Redirect, Route, Switch } from 'react-router-dom';\n\nimport { useSearchStore } from './search-store';\nimport { type SearchState } from '../../types';\nimport AppContextProvider from '../boot/app/app-context-provider';\nimport { ResultLabelType, SEARCH_APP_ID } from '../constants';\nimport { useAppStore } from '../store/app';\nimport { getT } from '../store/i18n';\n\nconst useQuery = (): [query: SearchState['query'], updateQuery: SearchState['updateQuery']] =>\n\tuseSearchStore((s) => [s.query, s.updateQuery]);\n\nconst useDisableSearch = (): [\n\tisDisabled: SearchState['searchDisabled'],\n\tsetDisabled: SearchState['setSearchDisabled']\n] => useSearchStore((s) => [s.searchDisabled, s.setSearchDisabled]);\n\nconst getIconAndColor = (labelType: ResultLabelType): [icon: string, color: string] => {\n\tif (labelType === ResultLabelType.WARNING) {\n\t\treturn ['AlertTriangle', 'warning'];\n\t}\n\tif (labelType === ResultLabelType.ERROR) {\n\t\treturn ['CloseSquare', 'error'];\n\t}\n\treturn ['', ''];\n};\n\ninterface ResultsHeaderProps {\n\tlabel: string;\n\tlabelType?: ResultLabelType;\n}\n\nconst ResultsHeader = ({\n\tlabel,\n\tlabelType = ResultLabelType.NORMAL\n}: ResultsHeaderProps): React.JSX.Element => {\n\tconst t = getT();\n\tconst [query, updateQuery] = useQuery();\n\tconst [, setDisabled] = useDisableSearch();\n\n\tconst resetQuery = useCallback(() => {\n\t\tupdateQuery([]);\n\t\tsetDisabled(false);\n\t}, [updateQuery, setDisabled]);\n\n\tconst labelTypeElem = useMemo<React.JSX.Element>(() => {\n\t\tif (labelType === ResultLabelType.NORMAL) {\n\t\t\treturn <></>;\n\t\t}\n\n\t\tconst [icon, color] = getIconAndColor(labelType);\n\t\treturn (\n\t\t\t<Padding right=\"small\">\n\t\t\t\t<Icon icon={icon} size=\"large\" color={color} />\n\t\t\t</Padding>\n\t\t);\n\t}, [labelType]);\n\n\tconst chipItems = useMemo(\n\t\t() =>\n\t\t\tmap(query, (queryChip, index) => (\n\t\t\t\t<Padding key={`${index}${queryChip.label}`} all=\"extrasmall\">\n\t\t\t\t\t<Chip {...queryChip} background={'gray2'} />\n\t\t\t\t</Padding>\n\t\t\t)),\n\t\t[query]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<Container\n\t\t\t\torientation=\"horizontal\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\twidth=\"100%\"\n\t\t\t\tbackground={'gray5'}\n\t\t\t\theight=\"fit\"\n\t\t\t\tminHeight=\"3rem\"\n\t\t\t\tmaxHeight=\"7.5rem\"\n\t\t\t\tstyle={{ overflow: 'hidden' }}\n\t\t\t\tpadding={{ horizontal: 'large', vertical: 'medium' }}\n\t\t\t>\n\t\t\t\t<Container width=\"85%\" orientation=\"horizontal\" wrap=\"wrap\" mainAlignment=\"flex-start\">\n\t\t\t\t\t{labelTypeElem}\n\t\t\t\t\t<Text color=\"secondary\">{label}</Text>\n\t\t\t\t\t{chipItems}\n\t\t\t\t</Container>\n\t\t\t\t{query?.length > 0 && (\n\t\t\t\t\t<Container width=\"15%\" mainAlignment=\"flex-start\" crossAlignment=\"flex-start\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tlabel={t('label.clear_search_query', 'CLEAR SEARCH')}\n\t\t\t\t\t\t\ticon=\"CloseOutline\"\n\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\twidth=\"fill\"\n\t\t\t\t\t\t\ttype=\"ghost\"\n\t\t\t\t\t\t\tonClick={resetQuery}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Container>\n\t\t\t\t)}\n\t\t\t</Container>\n\t\t\t<Divider color=\"gray3\" />\n\t\t</>\n\t);\n};\n\nexport const SearchAppView = (): React.JSX.Element => {\n\tconst searchViews = useAppStore((s) => s.views.search);\n\tconst { module } = useSearchStore();\n\tconst modules = useAppStore((s) => s.views.search);\n\n\tconst fullModule = useMemo(() => modules.find((m) => m.route === module), [module, modules]);\n\n\tconst routes = useMemo(\n\t\t() =>\n\t\t\tmap(searchViews, (view) => (\n\t\t\t\t<Route key={`/${view.route}`} path={`/${SEARCH_APP_ID}/${view.route}`}>\n\t\t\t\t\t<AppContextProvider pkg={view.app}>\n\t\t\t\t\t\t<view.component\n\t\t\t\t\t\t\tuseQuery={useQuery}\n\t\t\t\t\t\t\tResultsHeader={ResultsHeader}\n\t\t\t\t\t\t\tuseDisableSearch={useDisableSearch}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</AppContextProvider>\n\t\t\t\t</Route>\n\t\t\t)),\n\t\t[searchViews]\n\t);\n\n\treturn (\n\t\t<Switch>\n\t\t\t{routes}\n\t\t\t<Redirect\n\t\t\t\texact\n\t\t\t\tstrict\n\t\t\t\tfrom={`/${SEARCH_APP_ID}`}\n\t\t\t\tto={`/${SEARCH_APP_ID}/${fullModule ? fullModule.route : searchViews[0]?.route}`}\n\t\t\t/>\n\t\t</Switch>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport {\n\tChipInput,\n\tChipInputProps,\n\tContainer,\n\tIconButton,\n\tPadding,\n\tTooltip\n} from '@zextras/carbonio-design-system';\nimport { filter, find, map, reduce, some } from 'lodash';\nimport { useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { ModuleSelector } from './module-selector';\nimport { useSearchStore } from './search-store';\nimport { QueryChip, QueryItem } from '../../types';\nimport { LOCAL_STORAGE_SEARCH_KEY, SEARCH_APP_ID } from '../constants';\nimport { useLocalStorage } from '../shell/hooks/useLocalStorage';\nimport { useAppStore } from '../store/app';\nimport { getT } from '../store/i18n';\n\nconst OutlinedIconButton = styled(IconButton)`\n\tborder: 0.0625rem solid\n\t\t${({ theme, disabled }): string =>\n\t\t\tdisabled ? theme.palette.primary.disabled : theme.palette.primary.regular};\n\tdisplay: block;\n\t& svg {\n\t\tborder: none;\n\t}\n`;\n\nconst StyledChipInput = styled(ChipInput)`\n\tpadding: 0 1rem;\n\t&:hover {\n\t\toutline: none;\n\t\tbackground: ${({ theme, disabled }): string =>\n\t\t\tdisabled ? 'gray5' : theme.palette.gray5.hover};\n\t}\n`;\n\nconst StyledContainer = styled(Container)`\n\theight: 2.625rem;\n\toverflow-y: hidden;\n\t&:first-child {\n\t\ttransform: translateY(-0.125rem);\n\t}\n`;\n\ntype SearchOption = NonNullable<ChipInputProps['options']>[number] & QueryItem;\n\nexport const SearchBar = (): React.JSX.Element => {\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst t = getT();\n\tconst [storedSuggestions, setStoredSuggestions] = useLocalStorage<SearchOption[]>(\n\t\tLOCAL_STORAGE_SEARCH_KEY,\n\t\t[]\n\t);\n\tconst [inputTyped, setInputTyped] = useState<string>('');\n\tconst history = useHistory();\n\tconst {\n\t\tupdateQuery,\n\t\tmodule: currentSearchModuleRoute,\n\t\tquery,\n\t\tsearchDisabled,\n\t\tsetSearchDisabled,\n\t\ttooltip\n\t} = useSearchStore();\n\tconst modules = useAppStore((s) => s.views.search);\n\tconst moduleLabel = useMemo(\n\t\t() =>\n\t\t\tmodules.find(({ route }) => route === currentSearchModuleRoute)?.label ||\n\t\t\tcurrentSearchModuleRoute,\n\t\t[currentSearchModuleRoute, modules]\n\t);\n\n\tconst [isTyping, setIsTyping] = useState(false);\n\n\tconst [options, setOptions] = useState<SearchOption[]>([]);\n\n\tconst [inputHasFocus, setInputHasFocus] = useState(false);\n\n\tconst [searchInputValue, setSearchInputValue] = useState<QueryChip[]>(query);\n\n\tconst showClear = useMemo(\n\t\t() =>\n\t\t\tsearchInputValue.length > 0 ||\n\t\t\t(inputRef.current?.value && inputRef.current?.value?.length > 0),\n\t\t[searchInputValue.length]\n\t);\n\tconst clearSearch = useCallback((): void => {\n\t\tif (inputRef.current) {\n\t\t\tinputRef.current.value = '';\n\t\t\tinputRef.current?.focus();\n\t\t}\n\t\tsetIsTyping(false);\n\t\tsetSearchInputValue([]);\n\t\tsetSearchDisabled(false);\n\t\tupdateQuery([]);\n\t\tsetInputTyped('');\n\t}, [setSearchDisabled, updateQuery]);\n\n\tconst onSearch = useCallback(() => {\n\t\tupdateQuery((currentQuery) => {\n\t\t\tconst ref = inputRef?.current;\n\t\t\tif (ref) {\n\t\t\t\tref.value = '';\n\t\t\t}\n\t\t\tif (inputTyped.length > 0) {\n\t\t\t\tconst newInputValue: typeof searchInputValue = [\n\t\t\t\t\t...searchInputValue,\n\t\t\t\t\t...map(\n\t\t\t\t\t\tinputTyped.split(' '),\n\t\t\t\t\t\t(label, id): QueryChip => ({\n\t\t\t\t\t\t\tid: `${id}`,\n\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\thasAvatar: false\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t];\n\t\t\t\tsetSearchInputValue(newInputValue);\n\t\t\t\tsetInputTyped('');\n\t\t\t\treturn reduce(\n\t\t\t\t\tnewInputValue,\n\t\t\t\t\t(acc, newInputChip) => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!some(\n\t\t\t\t\t\t\t\tcurrentQuery,\n\t\t\t\t\t\t\t\t(currentQueryChip) => currentQueryChip.label === newInputChip.label\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tacc.push(newInputChip);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t},\n\t\t\t\t\tfilter(currentQuery, (currentQueryChip) =>\n\t\t\t\t\t\tsome(\n\t\t\t\t\t\t\tsearchInputValue,\n\t\t\t\t\t\t\t(searchInputChip) => searchInputChip.label === currentQueryChip.label\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tsetInputTyped('');\n\n\t\t\treturn reduce(\n\t\t\t\tsearchInputValue,\n\t\t\t\t(acc, searchInputChip) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\t!some(\n\t\t\t\t\t\t\tcurrentQuery,\n\t\t\t\t\t\t\t(currentQueryChip) => currentQueryChip.label === searchInputChip.label\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tacc.push(searchInputChip);\n\t\t\t\t\t}\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\n\t\t\t\tfilter(currentQuery, (currentQueryChip: QueryChip) =>\n\t\t\t\t\tsome(\n\t\t\t\t\t\tsearchInputValue,\n\t\t\t\t\t\t(searchInputChip) => searchInputChip.label === currentQueryChip.label\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t);\n\t\t});\n\t\t// TODO: perform a navigation only when coming from a different module (not the search one)\n\t\thistory.push(`/${SEARCH_APP_ID}/${currentSearchModuleRoute}`);\n\t}, [updateQuery, history, currentSearchModuleRoute, inputTyped, searchInputValue]);\n\n\tconst appSuggestions = useMemo<SearchOption[]>(\n\t\t() =>\n\t\t\tfilter(storedSuggestions, (v) => v.app === currentSearchModuleRoute)\n\t\t\t\t.reverse()\n\t\t\t\t.map(\n\t\t\t\t\t(item): SearchOption => ({\n\t\t\t\t\t\t...item,\n\t\t\t\t\t\tdisabled: searchDisabled,\n\t\t\t\t\t\tonClick: (): void => {\n\t\t\t\t\t\t\tconst newInputChip: QueryChip = { ...item, hasAvatar: false, onClick: undefined };\n\t\t\t\t\t\t\tsetSearchInputValue((prevState) => [...prevState, newInputChip]);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t),\n\t\t[storedSuggestions, currentSearchModuleRoute, searchDisabled]\n\t);\n\n\tconst updateOptions = useCallback(\n\t\t(textContent: string, queryChips: QueryChip[]): void => {\n\t\t\tif (textContent.length > 0) {\n\t\t\t\tsetOptions(\n\t\t\t\t\tappSuggestions\n\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t(suggestion) =>\n\t\t\t\t\t\t\t\ttextContent &&\n\t\t\t\t\t\t\t\tsuggestion.label.includes(textContent) &&\n\t\t\t\t\t\t\t\t!some(queryChips, (queryChip) => queryChip.value === suggestion.label)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.slice(0, 5)\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tsetOptions(appSuggestions.slice(0, 5));\n\t\t\t}\n\t\t},\n\t\t[appSuggestions]\n\t);\n\n\tconst onQueryChange = useCallback<NonNullable<ChipInputProps['onChange']>>(\n\t\t(newQuery) => {\n\t\t\t// FIXME: move the saving of suggestions after the search occurs.\n\t\t\t// \tThe saving logic should not be placed here because the onChange is called even when a chip is removed from the chipInput.\n\t\t\t// So, at the moment, keywords never searched for are saved too.\n\t\t\tconst lastChipLabel = newQuery[newQuery.length - 1]?.label;\n\t\t\tif (\n\t\t\t\tlastChipLabel &&\n\t\t\t\ttypeof lastChipLabel === 'string' &&\n\t\t\t\tcurrentSearchModuleRoute &&\n\t\t\t\t!find(appSuggestions, (suggestion) => suggestion.label === lastChipLabel)\n\t\t\t) {\n\t\t\t\tsetStoredSuggestions((prevState) => {\n\t\t\t\t\tconst newSuggestion: SearchOption = {\n\t\t\t\t\t\tvalue: lastChipLabel,\n\t\t\t\t\t\tlabel: lastChipLabel,\n\t\t\t\t\t\ticon: 'ClockOutline',\n\t\t\t\t\t\tapp: currentSearchModuleRoute,\n\t\t\t\t\t\tid: lastChipLabel\n\t\t\t\t\t};\n\t\t\t\t\treturn [...prevState, newSuggestion];\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// FIXME: remove the cast (by making ChipItem support generics?)\n\t\t\tsetSearchInputValue(newQuery as QueryChip[]);\n\t\t},\n\t\t[appSuggestions, currentSearchModuleRoute, setStoredSuggestions]\n\t);\n\n\tconst onInputType = useCallback<NonNullable<ChipInputProps['onInputType']>>(\n\t\t(ev) => {\n\t\t\tif (!ev.textContent) {\n\t\t\t\tsetIsTyping(false);\n\t\t\t} else {\n\t\t\t\tsetIsTyping(true);\n\t\t\t}\n\t\t\tsetInputTyped(ev.textContent || '');\n\t\t\tupdateOptions(ev.textContent || '', query);\n\t\t},\n\t\t[query, updateOptions]\n\t);\n\n\tuseEffect(() => {\n\t\tif (currentSearchModuleRoute) {\n\t\t\tconst suggestions = filter(\n\t\t\t\tappSuggestions,\n\t\t\t\t(suggestion) => suggestion.app === currentSearchModuleRoute\n\t\t\t).slice(0, 5);\n\n\t\t\tsetOptions(suggestions);\n\t\t}\n\t}, [appSuggestions, currentSearchModuleRoute]);\n\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\tconst addFocus = useCallback(() => setInputHasFocus(true), []);\n\tconst removeFocus = useCallback(() => setInputHasFocus(false), []);\n\n\tuseEffect(() => {\n\t\tconst ref = inputRef.current;\n\t\tconst runSearchOnKeyUp = (ev: KeyboardEvent): void => {\n\t\t\tif (ev.key === 'Enter') {\n\t\t\t\tonSearch();\n\t\t\t\tremoveFocus();\n\t\t\t}\n\t\t};\n\t\tif (ref) {\n\t\t\tref.addEventListener('keyup', runSearchOnKeyUp);\n\t\t}\n\n\t\treturn (): void => {\n\t\t\tif (ref) {\n\t\t\t\tref.removeEventListener('keyup', runSearchOnKeyUp);\n\t\t\t}\n\t\t};\n\t}, [onSearch, removeFocus]);\n\n\tconst disableOptions = useMemo(() => options.length <= 0 || isTyping, [options, isTyping]);\n\n\tconst placeholder = useMemo(\n\t\t() =>\n\t\t\tinputHasFocus && currentSearchModuleRoute\n\t\t\t\t? t('search.active_input_label', 'Separate your keywords by a comma or pressing TAB')\n\t\t\t\t: t('search.idle_input_label', 'Search in {{module}}', {\n\t\t\t\t\t\tmodule: moduleLabel\n\t\t\t\t }),\n\t\t[currentSearchModuleRoute, inputHasFocus, moduleLabel, t]\n\t);\n\n\tconst clearButtonPlaceholder = useMemo(\n\t\t() =>\n\t\t\tshowClear || isTyping\n\t\t\t\t? t('search.clear', 'Clear search input')\n\t\t\t\t: t('search.already_clear', 'Search input is already clear'),\n\t\t[showClear, t, isTyping]\n\t);\n\n\tconst searchButtonsAreDisabled = useMemo(\n\t\t() => (isTyping ? false : !showClear),\n\t\t[showClear, isTyping]\n\t);\n\n\tconst searchBtnTooltipLabel = useMemo(() => {\n\t\tif (!searchButtonsAreDisabled && searchInputValue.length > 0) {\n\t\t\treturn t('search.start', 'Start search');\n\t\t}\n\t\tif (inputHasFocus) {\n\t\t\treturn t(\n\t\t\t\t'search.type_or_choose_suggestion',\n\t\t\t\t'Type or choose some keywords to start a search'\n\t\t\t);\n\t\t}\n\t\tif (query.length > 0) {\n\t\t\treturn t('label.edit_to_start_search', 'Edit your search to start a new one');\n\t\t}\n\t\treturn t('search.type_to_start_search', 'Type some keywords to start a search');\n\t}, [searchButtonsAreDisabled, searchInputValue.length, inputHasFocus, query.length, t]);\n\n\tconst onChipAdd = useCallback<NonNullable<ChipInputProps['onAdd']>>(\n\t\t(newChip) => {\n\t\t\tsetIsTyping(false);\n\t\t\tsetInputTyped('');\n\t\t\tif (currentSearchModuleRoute) {\n\t\t\t\tconst suggestions = filter(\n\t\t\t\t\tappSuggestions,\n\t\t\t\t\t(suggestion) => suggestion?.app === currentSearchModuleRoute\n\t\t\t\t).slice(0, 5);\n\n\t\t\t\tsetOptions(suggestions);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tlabel: typeof newChip === 'string' ? newChip : '',\n\t\t\t\tvalue: newChip,\n\t\t\t\thasAvatar: false\n\t\t\t};\n\t\t},\n\t\t[appSuggestions, currentSearchModuleRoute]\n\t);\n\n\tuseEffect(() => {\n\t\tsetSearchInputValue(map(query, (queryChip) => ({ ...queryChip, disabled: searchDisabled })));\n\t}, [searchDisabled, query]);\n\n\treturn (\n\t\t<Container\n\t\t\twidth=\"fit\"\n\t\t\tflexGrow=\"1\"\n\t\t\torientation=\"horizontal\"\n\t\t\tref={containerRef}\n\t\t\tmainAlignment=\"flex-start\"\n\t\t\tcrossAlignment=\"flex-start\"\n\t\t>\n\t\t\t<Tooltip\n\t\t\t\tdisabled={!searchDisabled}\n\t\t\t\tmaxWidth=\"100%\"\n\t\t\t\tlabel={\n\t\t\t\t\ttooltip ??\n\t\t\t\t\tt('search.unable_to_parse_query', 'Unable to complete the search, clear it and retry')\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<Container orientation=\"horizontal\" width=\"fill\" maxWidth={'53vw'} minWidth={'32rem'}>\n\t\t\t\t\t<Container minWidth=\"20rem\" width=\"fill\">\n\t\t\t\t\t\t<Container orientation=\"horizontal\" width=\"fill\">\n\t\t\t\t\t\t\t<Container width=\"fit\">\n\t\t\t\t\t\t\t\t<ModuleSelector />\n\t\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t\t<StyledContainer orientation=\"horizontal\">\n\t\t\t\t\t\t\t\t<StyledChipInput\n\t\t\t\t\t\t\t\t\tdisabled={searchDisabled}\n\t\t\t\t\t\t\t\t\tinputRef={inputRef}\n\t\t\t\t\t\t\t\t\tvalue={searchInputValue}\n\t\t\t\t\t\t\t\t\tonAdd={onChipAdd}\n\t\t\t\t\t\t\t\t\toptions={options}\n\t\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\t\tconfirmChipOnBlur={false}\n\t\t\t\t\t\t\t\t\tseparators={['Enter', 'NumpadEnter', 'Comma', 'Space']}\n\t\t\t\t\t\t\t\t\tbackground={searchDisabled ? 'gray5' : 'gray6'}\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t\t\t\t\toverflowX: 'hidden'\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonChange={onQueryChange}\n\t\t\t\t\t\t\t\t\tonInputType={onInputType}\n\t\t\t\t\t\t\t\t\tonInputTypeDebounce={0}\n\t\t\t\t\t\t\t\t\tonBlur={removeFocus}\n\t\t\t\t\t\t\t\t\tonFocus={addFocus}\n\t\t\t\t\t\t\t\t\tdisableOptions={disableOptions}\n\t\t\t\t\t\t\t\t\trequireUniqueChips={false}\n\t\t\t\t\t\t\t\t\twrap={'nowrap'}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</StyledContainer>\n\t\t\t\t\t\t</Container>\n\t\t\t\t\t</Container>\n\n\t\t\t\t\t{!searchButtonsAreDisabled && (\n\t\t\t\t\t\t<Padding left=\"small\">\n\t\t\t\t\t\t\t<Tooltip label={clearButtonPlaceholder} placement=\"bottom\">\n\t\t\t\t\t\t\t\t<OutlinedIconButton\n\t\t\t\t\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t\t\t\t\tcustomSize={{\n\t\t\t\t\t\t\t\t\t\ticonSize: 'large',\n\t\t\t\t\t\t\t\t\t\tpaddingSize: 'small'\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tdisabled={searchButtonsAreDisabled}\n\t\t\t\t\t\t\t\t\ticon=\"BackspaceOutline\"\n\t\t\t\t\t\t\t\t\ticonColor=\"primary\"\n\t\t\t\t\t\t\t\t\tonClick={clearSearch}\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</Padding>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<Padding left=\"small\">\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\tmaxWidth=\"100%\"\n\t\t\t\t\t\t\tdisabled={searchDisabled}\n\t\t\t\t\t\t\tlabel={searchBtnTooltipLabel}\n\t\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t\t\t\tcustomSize={{\n\t\t\t\t\t\t\t\t\ticonSize: 'large',\n\t\t\t\t\t\t\t\t\tpaddingSize: 'small'\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\ticon=\"Search\"\n\t\t\t\t\t\t\t\tdisabled={searchButtonsAreDisabled}\n\t\t\t\t\t\t\t\tbackgroundColor=\"primary\"\n\t\t\t\t\t\t\t\ticonColor=\"gray6\"\n\t\t\t\t\t\t\t\tonClick={onSearch}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t</Padding>\n\t\t\t\t</Container>\n\t\t\t</Tooltip>\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 */\n\nimport { isFunction } from 'lodash';\nimport { create } from 'zustand';\n\nimport type { QueryChip, SearchState } from '../../types';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useSearchStore = create<SearchState>()((set, get) => ({\n\tquery: [],\n\tsearchDisabled: false,\n\ttooltip: undefined,\n\tsetSearchDisabled: (searchDisabled: boolean, tooltip?: string): void =>\n\t\tset({ searchDisabled, tooltip }),\n\tupdateQuery: (query: Array<QueryChip> | ((q: Array<QueryChip>) => Array<QueryChip>)): void =>\n\t\tset({ query: isFunction(query) ? query(get().query) : query }),\n\tupdateModule: (module: string): void => set({ module })\n}));\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, useMemo, useState, useEffect, useRef } from 'react';\n\nimport { Container, useSnackbar } from '@zextras/carbonio-design-system';\nimport { TFunction } from 'i18next';\nimport { produce } from 'immer';\nimport { map, find, isEmpty, reduce, findIndex, filter, size } from 'lodash';\nimport { useTranslation } from 'react-i18next';\n\nimport AccountsList from './components/account-settings/accounts-list';\nimport Delegates, { DelegatesProps, DelegateType } from './components/account-settings/delegates';\nimport PersonaSettings from './components/account-settings/persona-settings';\nimport PrimaryAccountSettings from './components/account-settings/primary-account-settings';\nimport SettingsSentMessages from './components/account-settings/settings-sent-messages';\nimport SettingsHeader, { SettingsHeaderProps } from './components/settings-header';\nimport {\n\tcalculateNewIdentitiesState,\n\tdefaultAsFirstOrderIdentities,\n\tgetAvailableEmailAddresses,\n\tisPrimary,\n\tResetComponentImperativeHandler\n} from './components/utils';\nimport {\n\tBatchRequest,\n\tCreateIdentityResponse,\n\tDeleteIdentityResponse,\n\tModifyIdentityResponse,\n\tModifyPrefsResponse,\n\tCreateIdentityRequest,\n\tDeleteIdentityRequest,\n\tIdentityAttrs,\n\tAccountSettingsPrefs,\n\tModifyPrefsRequest,\n\tGetRightsRequest,\n\tGetRightsResponse,\n\tAccountState\n} from '../../types';\nimport type { ModifyIdentityRequest } from '../../types';\nimport { AccountACEInfo } from '../../types/network/entities';\nimport { SHELL_APP_ID } from '../constants';\nimport { getSoapFetch } from '../network/fetch';\nimport { useAccountStore, useUserAccount, useUserSettings } from '../store/account';\n\nfunction mapToCreateIdentityRequests(\n\tcreateRecord: Record<string, IdentityAttrs>\n): Array<CreateIdentityRequest> {\n\treturn map(\n\t\tcreateRecord,\n\t\t(item): CreateIdentityRequest => ({\n\t\t\t_jsns: 'urn:zimbraAccount',\n\t\t\tidentity: {\n\t\t\t\tname: item.zimbraPrefIdentityName,\n\t\t\t\t_attrs: {\n\t\t\t\t\t...item,\n\t\t\t\t\tzimbraPrefFromAddressType: item.zimbraPrefFromAddressType || 'sendAs'\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t);\n}\n\nfunction mapToDeleteIdentityRequests(deleteArray: Array<string>): Array<DeleteIdentityRequest> {\n\treturn map(\n\t\tdeleteArray,\n\t\t(identityId, index): DeleteIdentityRequest => ({\n\t\t\t_jsns: 'urn:zimbraAccount',\n\t\t\tidentity: { id: identityId },\n\t\t\trequestId: index.toString()\n\t\t})\n\t);\n}\n\nfunction mapToModifyIdentityRequests(\n\tmodifyRecord: Record<string, Partial<IdentityAttrs>>\n): Array<ModifyIdentityRequest> {\n\treturn map<typeof modifyRecord, ModifyIdentityRequest>(\n\t\tmodifyRecord,\n\t\t(item, index): ModifyIdentityRequest => ({\n\t\t\t_jsns: 'urn:zimbraAccount',\n\t\t\tidentity: {\n\t\t\t\tid: index,\n\t\t\t\t_attrs: item\n\t\t\t}\n\t\t})\n\t);\n}\n\nfunction generateDelegateList(ace: AccountACEInfo[] | undefined, t: TFunction): DelegateType[] {\n\treturn reduce(\n\t\tace,\n\t\t(accumulator: Array<DelegateType>, item, idx) => {\n\t\t\tconst index = findIndex(accumulator, { email: item.d });\n\t\t\tconst translatedRight = t('settings.account.delegates.right', {\n\t\t\t\tcontext: item.right.toLowerCase(),\n\t\t\t\tdefaultValue: item.right\n\t\t\t});\n\t\t\tif (index === -1) {\n\t\t\t\taccumulator.push({ email: item.d || '', right: translatedRight, id: idx.toString() });\n\t\t\t} else {\n\t\t\t\taccumulator[index] = {\n\t\t\t\t\temail: item.d || '',\n\t\t\t\t\tright: t('settings.account.delegates.multiple_rights', {\n\t\t\t\t\t\tdefaultValue: `{{rights.0]}} and {{rights.1}}`,\n\t\t\t\t\t\trights: [translatedRight, accumulator[index].right]\n\t\t\t\t\t}),\n\t\t\t\t\tid: idx.toString()\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n}\n\nexport const AccountsSettings = (): React.JSX.Element => {\n\tconst [t] = useTranslation();\n\tconst createSnackbar = useSnackbar();\n\n\tconst account = useUserAccount();\n\tconst settings = useUserSettings();\n\n\tconst createRecordRef = useRef<Record<string, IdentityAttrs>>({});\n\tconst deleteArrayRef = useRef<Array<string>>([]);\n\tconst modifyRecordRef = useRef<Record<string, Partial<IdentityAttrs>>>({});\n\n\tconst delegatedSendSaveTargetRef = useRef<\n\t\tAccountSettingsPrefs['zimbraPrefDelegatedSendSaveTarget']\n\t>(settings.prefs.zimbraPrefDelegatedSendSaveTarget);\n\n\tconst [isDirty, setIsDirty] = useState(false);\n\tconst calculateIsDirty = useCallback(() => {\n\t\tsetIsDirty(\n\t\t\t!isEmpty(createRecordRef.current) ||\n\t\t\t\t!isEmpty(deleteArrayRef.current) ||\n\t\t\t\t!isEmpty(modifyRecordRef.current) ||\n\t\t\t\tsettings.prefs.zimbraPrefDelegatedSendSaveTarget !== delegatedSendSaveTargetRef.current\n\t\t);\n\t}, [settings.prefs.zimbraPrefDelegatedSendSaveTarget]);\n\n\tconst updateDelegatedSendSaveTarget = useCallback<\n\t\tDelegatesProps['updateDelegatedSendSaveTarget']\n\t>(\n\t\t(updatedValue) => {\n\t\t\tdelegatedSendSaveTargetRef.current = updatedValue;\n\t\t\tcalculateIsDirty();\n\t\t},\n\t\t[calculateIsDirty]\n\t);\n\n\tconst resetLists = useCallback(() => {\n\t\tcreateRecordRef.current = {};\n\t\tdeleteArrayRef.current = [];\n\t\tmodifyRecordRef.current = {};\n\t\tcalculateIsDirty();\n\t}, [calculateIsDirty]);\n\n\tconst [selectedIdentityId, setSelectedIdentityId] = useState(0);\n\n\tconst identitiesDefault = useMemo(\n\t\t() => defaultAsFirstOrderIdentities(account.identities.identity),\n\t\t[account.identities.identity]\n\t);\n\n\tconst [identities, setIdentities] = useState<typeof identitiesDefault>(identitiesDefault);\n\tconst maxIdentities = settings.attrs.zimbraIdentityMaxNumEntries || 0;\n\n\tconst addIdentity = useCallback<(id: string, identityAttrs: IdentityAttrs) => void>(\n\t\t(id, identityAttrs) => {\n\t\t\tcreateRecordRef.current[id] = identityAttrs;\n\t\t\tcalculateIsDirty();\n\t\t\tsetIdentities((prevState) => [\n\t\t\t\t...prevState,\n\t\t\t\t{\n\t\t\t\t\tid,\n\t\t\t\t\tname: identityAttrs.zimbraPrefIdentityName,\n\t\t\t\t\t_attrs: { ...identityAttrs, zimbraPrefIdentityId: id }\n\t\t\t\t}\n\t\t\t]);\n\t\t},\n\t\t[calculateIsDirty]\n\t);\n\n\tconst updateIdentities = useCallback<\n\t\t<K extends keyof IdentityAttrs>(id: string, key: K, value: IdentityAttrs[K]) => void\n\t>(\n\t\t(id, key, value) => {\n\t\t\tif (createRecordRef.current[id]) {\n\t\t\t\tcreateRecordRef.current[id][key] = value;\n\t\t\t} else if (modifyRecordRef.current[id]) {\n\t\t\t\tconst actualIdentity = find(identitiesDefault, (item) => item.id === id);\n\t\t\t\tmodifyRecordRef.current[id][key] = value;\n\t\t\t\tif (actualIdentity && actualIdentity._attrs[key] === value) {\n\t\t\t\t\tdelete modifyRecordRef.current[id][key];\n\t\t\t\t}\n\t\t\t\tif (size(modifyRecordRef.current[id]) === 0) {\n\t\t\t\t\tdelete modifyRecordRef.current[id];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmodifyRecordRef.current[id] = {\n\t\t\t\t\t[key]: value\n\t\t\t\t};\n\t\t\t}\n\t\t\tcalculateIsDirty();\n\t\t\tsetIdentities((prevState) =>\n\t\t\t\tmap(prevState, (item) =>\n\t\t\t\t\titem.id === id\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\t_attrs: {\n\t\t\t\t\t\t\t\t\t...item._attrs,\n\t\t\t\t\t\t\t\t\t[key]: value\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: item\n\t\t\t\t)\n\t\t\t);\n\t\t},\n\t\t[calculateIsDirty, identitiesDefault]\n\t);\n\n\tconst removeIdentity = useCallback(\n\t\t(identityId: string) => {\n\t\t\tif (createRecordRef.current[identityId]) {\n\t\t\t\tdelete createRecordRef.current[identityId];\n\t\t\t} else {\n\t\t\t\tdeleteArrayRef.current = [...deleteArrayRef.current, identityId];\n\t\t\t\tdelete modifyRecordRef.current[identityId];\n\t\t\t}\n\t\t\tcalculateIsDirty();\n\t\t\tsetIdentities((prevState) => filter(prevState, (identity) => identity.id !== identityId));\n\t\t},\n\t\t[calculateIsDirty]\n\t);\n\n\tuseEffect(() => {\n\t\tsetIdentities(identitiesDefault);\n\t\tresetLists();\n\t}, [identitiesDefault, resetLists]);\n\n\tconst onSave = useCallback<SettingsHeaderProps['onSave']>(() => {\n\t\tif (\n\t\t\tidentitiesDefault.length + size(createRecordRef.current) - deleteArrayRef.current.length >\n\t\t\tmaxIdentities\n\t\t) {\n\t\t\tcreateSnackbar({\n\t\t\t\tkey: `new`,\n\t\t\t\treplace: true,\n\t\t\t\ttype: 'error',\n\t\t\t\tlabel: t(\n\t\t\t\t\t'message.snackbar.identities_quota_exceeded',\n\t\t\t\t\t'The identity could not be created because you have exceeded your identity quota'\n\t\t\t\t),\n\t\t\t\tautoHideTimeout: 5000,\n\t\t\t\thideButton: true\n\t\t\t});\n\t\t\treturn Promise.allSettled([\n\t\t\t\tPromise.reject(\n\t\t\t\t\tnew Error(\n\t\t\t\t\t\t'The identity could not be created because you have exceeded your identity quota'\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t]);\n\t\t}\n\n\t\tlet modifyPrefsRequest: ModifyPrefsRequest | undefined;\n\n\t\tif (\n\t\t\tdelegatedSendSaveTargetRef.current &&\n\t\t\tsettings.prefs.zimbraPrefDelegatedSendSaveTarget !== delegatedSendSaveTargetRef.current\n\t\t) {\n\t\t\tmodifyPrefsRequest = {\n\t\t\t\t_jsns: 'urn:zimbraAccount',\n\t\t\t\t_attrs: { zimbraPrefDelegatedSendSaveTarget: delegatedSendSaveTargetRef.current }\n\t\t\t};\n\t\t}\n\n\t\tconst createIdentityRequests: Array<CreateIdentityRequest> = mapToCreateIdentityRequests(\n\t\t\tcreateRecordRef.current\n\t\t);\n\t\tconst deleteRequests: Array<DeleteIdentityRequest> = mapToDeleteIdentityRequests(\n\t\t\tdeleteArrayRef.current\n\t\t);\n\n\t\tconst modifyIdentityRequests: Array<ModifyIdentityRequest> = mapToModifyIdentityRequests(\n\t\t\tmodifyRecordRef.current\n\t\t);\n\n\t\tconst promise = getSoapFetch(SHELL_APP_ID)<\n\t\t\tBatchRequest,\n\t\t\t{\n\t\t\t\tModifyIdentityResponse?: ModifyIdentityResponse[];\n\t\t\t\tDeleteIdentityResponse?: DeleteIdentityResponse[];\n\t\t\t\tCreateIdentityResponse?: CreateIdentityResponse[];\n\t\t\t\tModifyPrefsResponse?: ModifyPrefsResponse;\n\t\t\t}\n\t\t>('Batch', {\n\t\t\t_jsns: 'urn:zimbra',\n\t\t\tDeleteIdentityRequest: deleteRequests.length > 0 ? deleteRequests : undefined,\n\t\t\tCreateIdentityRequest: createIdentityRequests.length > 0 ? createIdentityRequests : undefined,\n\t\t\tModifyIdentityRequest: modifyIdentityRequests.length > 0 ? modifyIdentityRequests : undefined,\n\t\t\tModifyPrefsRequest: modifyPrefsRequest\n\t\t})\n\t\t\t.then((res) => {\n\t\t\t\tcreateSnackbar({\n\t\t\t\t\tkey: `new`,\n\t\t\t\t\treplace: true,\n\t\t\t\t\ttype: 'info',\n\t\t\t\t\tlabel: t('message.snackbar.settings_saved', 'Edits saved correctly'),\n\t\t\t\t\tautoHideTimeout: 3000,\n\t\t\t\t\thideButton: true\n\t\t\t\t});\n\t\t\t\tresetLists();\n\t\t\t\tuseAccountStore.setState(\n\t\t\t\t\tproduce((prevState: AccountState) => {\n\t\t\t\t\t\tif (prevState.account) {\n\t\t\t\t\t\t\tprevState.account.identities.identity = calculateNewIdentitiesState(\n\t\t\t\t\t\t\t\tprevState.account.identities.identity,\n\t\t\t\t\t\t\t\tdeleteArrayRef.current,\n\t\t\t\t\t\t\t\tmap(res.CreateIdentityResponse, (item) => item.identity[0]),\n\t\t\t\t\t\t\t\tmodifyRecordRef.current\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tprevState.account.displayName =\n\t\t\t\t\t\t\t\tfind(\n\t\t\t\t\t\t\t\t\tmodifyRecordRef.current,\n\t\t\t\t\t\t\t\t\t(item) => item.zimbraPrefIdentityId === prevState?.account?.id\n\t\t\t\t\t\t\t\t)?.zimbraPrefIdentityName || prevState.account?.displayName;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tprevState.settings.prefs.zimbraPrefDelegatedSendSaveTarget =\n\t\t\t\t\t\t\tdelegatedSendSaveTargetRef.current || '';\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t})\n\t\t\t.catch((error: unknown) => {\n\t\t\t\tcreateSnackbar({\n\t\t\t\t\tkey: `new`,\n\t\t\t\t\treplace: true,\n\t\t\t\t\ttype: 'error',\n\t\t\t\t\tlabel: t('snackbar.error', 'Something went wrong, please try again'),\n\t\t\t\t\tautoHideTimeout: 3000,\n\t\t\t\t\thideButton: true\n\t\t\t\t});\n\t\t\t\tif (error instanceof Error) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tthrow new Error(typeof error === 'string' ? error : 'edit setting error');\n\t\t\t});\n\t\treturn Promise.allSettled([promise]);\n\t}, [\n\t\tmaxIdentities,\n\t\tidentitiesDefault.length,\n\t\tsettings.prefs.zimbraPrefDelegatedSendSaveTarget,\n\t\tcreateSnackbar,\n\t\tt,\n\t\tresetLists\n\t]);\n\n\tconst availableEmailAddresses = useMemo(\n\t\t() => getAvailableEmailAddresses(account, settings),\n\t\t[account, settings]\n\t);\n\n\tconst delegatesSettingsSectionRef = useRef<ResetComponentImperativeHandler>(null);\n\n\tconst onCancel = useCallback(() => {\n\t\tresetLists();\n\t\tsetIdentities(identitiesDefault);\n\t\tdelegatesSettingsSectionRef.current?.reset();\n\t\tsetSelectedIdentityId(size(identitiesDefault) - 1);\n\t}, [identitiesDefault, resetLists]);\n\n\tconst [delegates, setDelegates] = useState<DelegateType[]>([]);\n\n\tconst rights = useAccountStore((state) => state.rights);\n\n\tuseEffect(() => {\n\t\tif (!rights) {\n\t\t\tgetSoapFetch(SHELL_APP_ID)<GetRightsRequest, GetRightsResponse>('GetRights', {\n\t\t\t\t_jsns: 'urn:zimbraAccount',\n\t\t\t\tace: [{ right: 'sendAs' }, { right: 'sendOnBehalfOf' }]\n\t\t\t}).then((value) => {\n\t\t\t\tif (value.ace) {\n\t\t\t\t\tconst { ace } = value;\n\t\t\t\t\tsetDelegates(generateDelegateList(ace, t));\n\t\t\t\t}\n\t\t\t\tuseAccountStore.setState((state) => ({\n\t\t\t\t\t...state,\n\t\t\t\t\trights: value.ace ?? []\n\t\t\t\t}));\n\t\t\t});\n\t\t} else {\n\t\t\tsetDelegates(generateDelegateList(rights, t));\n\t\t}\n\t}, [t, rights]);\n\n\tconst personaSettings = useMemo<React.JSX.Element | null>(() => {\n\t\tconst identity = identities[selectedIdentityId];\n\t\tif (identity) {\n\t\t\treturn (\n\t\t\t\t<PersonaSettings identityAttrs={identity._attrs} updateIdentities={updateIdentities} />\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}, [identities, selectedIdentityId, updateIdentities]);\n\n\tconst settingsSentMessages = useMemo<React.JSX.Element | null>(() => {\n\t\tconst identity = identities[selectedIdentityId];\n\t\tif (identity) {\n\t\t\treturn (\n\t\t\t\t<SettingsSentMessages\n\t\t\t\t\tidentityAttrs={identity._attrs}\n\t\t\t\t\tupdateIdentities={updateIdentities}\n\t\t\t\t\tavailableEmailAddresses={availableEmailAddresses}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}, [availableEmailAddresses, identities, selectedIdentityId, updateIdentities]);\n\n\treturn (\n\t\t<>\n\t\t\t<SettingsHeader\n\t\t\t\tonSave={onSave}\n\t\t\t\tonCancel={onCancel}\n\t\t\t\tisDirty={isDirty}\n\t\t\t\ttitle={t('label.accounts', 'Accounts')}\n\t\t\t/>\n\t\t\t<Container background={'gray5'} padding={{ top: 'large' }} height=\"fit\" />\n\t\t\t<Container\n\t\t\t\tbackground={'gray5'}\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\tpadding={{ all: 'large' }}\n\t\t\t\tstyle={{ overflow: 'auto' }}\n\t\t\t>\n\t\t\t\t<AccountsList\n\t\t\t\t\taccountName={account.name}\n\t\t\t\t\tidentities={identities}\n\t\t\t\t\tselectedIdentityId={selectedIdentityId}\n\t\t\t\t\tsetSelectedIdentityId={setSelectedIdentityId}\n\t\t\t\t\tremoveIdentity={removeIdentity}\n\t\t\t\t\taddIdentity={addIdentity}\n\t\t\t\t\tidentitiesDefault={identitiesDefault}\n\t\t\t\t/>\n\t\t\t\t{isPrimary(identities[selectedIdentityId]) ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<PrimaryAccountSettings\n\t\t\t\t\t\t\taccount={account}\n\t\t\t\t\t\t\tidentity={identities[0]}\n\t\t\t\t\t\t\tupdateIdentities={updateIdentities}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{settingsSentMessages}\n\t\t\t\t\t\t<Delegates\n\t\t\t\t\t\t\tupdateDelegatedSendSaveTarget={updateDelegatedSendSaveTarget}\n\t\t\t\t\t\t\tdelegatedSendSaveTarget={settings.prefs.zimbraPrefDelegatedSendSaveTarget}\n\t\t\t\t\t\t\tresetRef={delegatesSettingsSectionRef}\n\t\t\t\t\t\t\tdelegates={delegates}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{personaSettings}\n\t\t\t\t\t\t{settingsSentMessages}\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: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, ReactElement, useContext, useRef, useMemo } from 'react';\n\nimport {\n\tContainer,\n\tText,\n\tDivider,\n\tRow,\n\tPadding,\n\tButton,\n\tIcon,\n\tModalManagerContext,\n\tListV2,\n\tListItem\n} from '@zextras/carbonio-design-system';\nimport type { TFunction } from 'i18next';\nimport { map } from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\n\nimport { Identity, IdentityAttrs } from '../../../../types';\nimport { isPrimary } from '../utils';\n\nconst List = styled(ListV2)`\n\tflex-shrink: 0;\n`;\n\nfunction getNewPersonaNextIdentityName(\n\tnumberToCheck: number,\n\tunavailableIdentityNames: Array<string>,\n\tt: TFunction\n): string {\n\tconst newPersonaNextIdentityName = t('settings.account.new_identity', {\n\t\tdefaultValue: `New Persona {{number}}`,\n\t\tnumber: numberToCheck\n\t});\n\tif (unavailableIdentityNames.includes(newPersonaNextIdentityName)) {\n\t\treturn getNewPersonaNextIdentityName(numberToCheck + 1, unavailableIdentityNames, t);\n\t}\n\treturn newPersonaNextIdentityName;\n}\n\nexport type AccountsListProps = {\n\taccountName: string;\n\tidentities: Array<Identity>;\n\tidentitiesDefault: Array<Identity>;\n\tselectedIdentityId: number;\n\tsetSelectedIdentityId: (value: number) => void;\n\tremoveIdentity: (identityId: string) => void;\n\taddIdentity: (id: string, identityAttrs: IdentityAttrs) => void;\n};\n\nconst AccountsList = ({\n\taccountName,\n\tselectedIdentityId,\n\tidentities,\n\tidentitiesDefault,\n\tsetSelectedIdentityId,\n\tremoveIdentity,\n\taddIdentity\n}: AccountsListProps): ReactElement => {\n\tconst [t] = useTranslation();\n\n\tconst createModal = useContext(ModalManagerContext);\n\n\tconst createListRequestIdRef = useRef(0);\n\tconst addNewPersona = useCallback(() => {\n\t\tconst unavailableIdentityNames = map<Identity, string>(\n\t\t\t[...identitiesDefault, ...identities],\n\t\t\t(item) => item._attrs?.zimbraPrefIdentityName || ''\n\t\t);\n\t\tconst newPersonaName = getNewPersonaNextIdentityName(1, unavailableIdentityNames, t);\n\n\t\taddIdentity(`${createListRequestIdRef.current}`, {\n\t\t\tzimbraPrefIdentityName: newPersonaName,\n\t\t\tzimbraPrefFromDisplay: identities[0]._attrs?.zimbraPrefFromDisplay,\n\t\t\tzimbraPrefFromAddress: identities[0]._attrs?.zimbraPrefFromAddress,\n\t\t\tzimbraPrefFromAddressType: 'sendAs',\n\t\t\tzimbraPrefReplyToEnabled: 'FALSE'\n\t\t});\n\t\tcreateListRequestIdRef.current += 1;\n\t\tsetSelectedIdentityId(identities.length);\n\t}, [identitiesDefault, identities, addIdentity, setSelectedIdentityId, t]);\n\n\tconst onConfirmDelete = useCallback((): void => {\n\t\tremoveIdentity(identities[selectedIdentityId].id);\n\t\tsetSelectedIdentityId(selectedIdentityId - 1);\n\t}, [identities, removeIdentity, selectedIdentityId, setSelectedIdentityId]);\n\n\tconst onDelete = useCallback((): void => {\n\t\tconst closeModal = createModal({\n\t\t\ttitle: t('label.permanent_delete_title', 'Are you sure to permanently delete this Persona?'),\n\t\t\tonConfirm: () => {\n\t\t\t\tonConfirmDelete();\n\t\t\t\tcloseModal();\n\t\t\t},\n\t\t\tconfirmLabel: t('label.delete_permanently', 'Delete permanently'),\n\t\t\tconfirmColor: 'error',\n\t\t\tshowCloseIcon: true,\n\t\t\tonClose: () => closeModal(),\n\t\t\tchildren: (\n\t\t\t\t<Padding all=\"small\">\n\t\t\t\t\t<Text overflow=\"break-word\">\n\t\t\t\t\t\t{t(\n\t\t\t\t\t\t\t'messages.permanent_delete_body',\n\t\t\t\t\t\t\t'If you permanently delete this Persona you will not be able to recover it. Continue?'\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Text>\n\t\t\t\t</Padding>\n\t\t\t)\n\t\t});\n\t}, [createModal, t, onConfirmDelete]);\n\n\tconst items = useMemo(\n\t\t() =>\n\t\t\tmap(identities, (item, index) => (\n\t\t\t\t<ListItem key={item.id} active={selectedIdentityId === index}>\n\t\t\t\t\t{(): React.JSX.Element => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Container\n\t\t\t\t\t\t\t\trole={'listitem'}\n\t\t\t\t\t\t\t\tdata-testid={`account-list-item-${item._attrs?.zimbraPrefIdentityId}`}\n\t\t\t\t\t\t\t\tonClick={(): void => {\n\t\t\t\t\t\t\t\t\tsetSelectedIdentityId(index);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\t\t\t\t\tpadding={{ all: 'small' }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Row width=\"fill\" mainAlignment=\"space-between\">\n\t\t\t\t\t\t\t\t\t<Container orientation=\"horizontal\" mainAlignment=\"flex-start\" width=\"fit\">\n\t\t\t\t\t\t\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon=\"CheckmarkCircle2Outline\" size=\"large\" color=\"primary\" />\n\t\t\t\t\t\t\t\t\t\t</Padding>\n\t\t\t\t\t\t\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t\t\t\t\t\t\t<Text weight=\"regular\" size=\"small\">\n\t\t\t\t\t\t\t\t\t\t\t\t{item._attrs?.zimbraPrefIdentityName}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t</Padding>\n\t\t\t\t\t\t\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t\t\t\t\t\t\t<Text weight=\"regular\" size=\"small\" color=\"secondary\">\n\t\t\t\t\t\t\t\t\t\t\t\t({isPrimary(item) ? accountName : item._attrs?.zimbraPrefFromAddress})\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t</Padding>\n\t\t\t\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t\t\t\t<Container width=\"fit\" mainAlignment=\"flex-end\">\n\t\t\t\t\t\t\t\t\t\t<Text weight=\"regular\" size=\"small\">\n\t\t\t\t\t\t\t\t\t\t\t{isPrimary(item)\n\t\t\t\t\t\t\t\t\t\t\t\t? t('label.primary', 'Primary')\n\t\t\t\t\t\t\t\t\t\t\t\t: t('label.persona', 'Persona')}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t\t\t</Row>\n\t\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t\t<Divider />\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</ListItem>\n\t\t\t)),\n\t\t[accountName, identities, selectedIdentityId, setSelectedIdentityId, t]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<Container\n\t\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ all: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground=\"gray6\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Padding horizontal=\"medium\" bottom=\"large\" width=\"100%\">\n\t\t\t\t\t<Text weight=\"bold\">{t('label.accounts_list', 'Accounts list')}</Text>\n\t\t\t\t</Padding>\n\t\t\t\t<List>{items}</List>\n\t\t\t</Container>\n\t\t\t<Row\n\t\t\t\tpadding={{ horizontal: 'large', bottom: 'large' }}\n\t\t\t\twidth=\"fill\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\tbackground=\"gray6\"\n\t\t\t>\n\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={t('label.add_persona', 'Add persona')}\n\t\t\t\t\t\tonClick={addNewPersona}\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\ttype=\"outlined\"\n\t\t\t\t\t/>\n\t\t\t\t</Padding>\n\t\t\t\t<Button\n\t\t\t\t\tlabel={t('label.delete', 'Delete')}\n\t\t\t\t\tonClick={onDelete}\n\t\t\t\t\tcolor=\"error\"\n\t\t\t\t\ttype=\"outlined\"\n\t\t\t\t\tdisabled={isPrimary(identities[selectedIdentityId])}\n\t\t\t\t/>\n\t\t\t</Row>\n\t\t\t<Padding bottom=\"large\" />\n\t\t</>\n\t);\n};\n\nexport default AccountsList;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { ReactElement, useCallback, useState } from 'react';\n\nimport {\n\tContainer,\n\tText,\n\tList,\n\tDivider,\n\tRow,\n\tPadding,\n\tButton,\n\tRadio,\n\tRadioGroup,\n\tItemType,\n\tItemComponentProps,\n\tRadioGroupProps\n} from '@zextras/carbonio-design-system';\nimport { noop } from 'lodash';\nimport { useTranslation } from 'react-i18next';\n\nimport { AccountSettingsPrefs } from '../../../../types';\nimport { DELEGATED_SEND_SAVE_TARGET } from '../../../constants';\nimport { useReset } from '../../hooks/use-reset';\nimport { SettingsSectionProps } from '../utils';\n\nexport interface DelegateType extends ItemType {\n\temail: string;\n\tright: string;\n\tlabel?: string;\n}\n\nexport type DelegatesProps = {\n\tdelegatedSendSaveTarget: AccountSettingsPrefs['zimbraPrefDelegatedSendSaveTarget'];\n\tupdateDelegatedSendSaveTarget: (\n\t\tupdatedValue: AccountSettingsPrefs['zimbraPrefDelegatedSendSaveTarget']\n\t) => void;\n\tdelegates: DelegateType[];\n} & SettingsSectionProps;\nconst Delegates = ({\n\tdelegatedSendSaveTarget,\n\tupdateDelegatedSendSaveTarget,\n\tresetRef,\n\tdelegates\n}: DelegatesProps): React.JSX.Element => {\n\tconst [t] = useTranslation();\n\n\tconst [activeDelegate, setActiveDelegate] = useState<string>('0');\n\n\tconst [activeValue, setActiveValue] =\n\t\tuseState<AccountSettingsPrefs['zimbraPrefDelegatedSendSaveTarget']>(delegatedSendSaveTarget);\n\n\tconst radioGroupOnChange = useCallback<NonNullable<RadioGroupProps<string>['onChange']>>(\n\t\t(newValue) => {\n\t\t\tfunction isZimbraPrefDelegatedSendSaveTarget(\n\t\t\t\targ: string\n\t\t\t): arg is NonNullable<AccountSettingsPrefs['zimbraPrefDelegatedSendSaveTarget']> {\n\t\t\t\treturn DELEGATED_SEND_SAVE_TARGET.includes(arg);\n\t\t\t}\n\t\t\tif (newValue && isZimbraPrefDelegatedSendSaveTarget(newValue)) {\n\t\t\t\tsetActiveValue(newValue);\n\t\t\t\tupdateDelegatedSendSaveTarget(newValue);\n\t\t\t} else {\n\t\t\t\tthrow new Error('invalid zimbraPrefDelegatedSendSaveTarget value');\n\t\t\t}\n\t\t},\n\t\t[updateDelegatedSendSaveTarget]\n\t);\n\n\tconst resetHandler = useCallback((): void => {\n\t\tsetActiveValue(delegatedSendSaveTarget);\n\t\tupdateDelegatedSendSaveTarget(delegatedSendSaveTarget);\n\t}, [delegatedSendSaveTarget, updateDelegatedSendSaveTarget]);\n\n\tuseReset(resetRef, resetHandler);\n\n\tconst ListItem = ({ item }: ItemComponentProps<DelegateType>): ReactElement => {\n\t\tconst setActiveDelegateCallback = useCallback(() => setActiveDelegate(item.id), [item.id]);\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Container\n\t\t\t\t\tonClick={setActiveDelegateCallback}\n\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\t\tpadding={{ all: 'small' }}\n\t\t\t\t>\n\t\t\t\t\t<Row width=\"fill\" mainAlignment=\"space-between\">\n\t\t\t\t\t\t<Container orientation=\"horizontal\" mainAlignment=\"flex-start\" width=\"fit\">\n\t\t\t\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t\t\t\t<Text weight=\"regular\" size=\"small\">\n\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</Padding>\n\t\t\t\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t\t\t\t<Text weight=\"regular\" size=\"small\" color=\"secondary\">\n\t\t\t\t\t\t\t\t\t{item.email}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</Padding>\n\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t<Container width=\"fit\" mainAlignment=\"flex-end\">\n\t\t\t\t\t\t\t<Text weight=\"regular\" size=\"small\">\n\t\t\t\t\t\t\t\t{item.right}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</Container>\n\t\t\t\t\t</Row>\n\n\t\t\t\t\t<Row width=\"fit\"></Row>\n\t\t\t\t</Container>\n\t\t\t\t<Divider />\n\t\t\t</>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Container\n\t\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ all: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground=\"gray6\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Padding horizontal=\"medium\" bottom=\"large\" width=\"100%\">\n\t\t\t\t\t<Text weight=\"bold\">{t('label.delegates', 'Delegates')}</Text>\n\t\t\t\t</Padding>\n\t\t\t\t<List items={delegates} ItemComponent={ListItem} active={activeDelegate} height=\"fit\" />\n\t\t\t</Container>\n\t\t\t<Row\n\t\t\t\tpadding={{ horizontal: 'large' }}\n\t\t\t\twidth=\"fill\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\tbackground=\"gray6\"\n\t\t\t>\n\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={t('label.add_delegate', 'Add delegate')}\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\ttype=\"outlined\"\n\t\t\t\t\t\tdisabled\n\t\t\t\t\t\tonClick={noop}\n\t\t\t\t\t/>\n\t\t\t\t</Padding>\n\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={t('label.edit_permissions', 'Edit permissions')}\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\ttype=\"outlined\"\n\t\t\t\t\t\tdisabled\n\t\t\t\t\t\tonClick={noop}\n\t\t\t\t\t/>\n\t\t\t\t</Padding>\n\t\t\t\t<Button\n\t\t\t\t\tlabel={t('label.remove', 'remove')}\n\t\t\t\t\tcolor=\"error\"\n\t\t\t\t\ttype=\"outlined\"\n\t\t\t\t\tdisabled\n\t\t\t\t\tonClick={noop}\n\t\t\t\t/>\n\t\t\t</Row>\n\t\t\t<Container\n\t\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\t\twidth=\"100%\"\n\t\t\t\tpadding={{ all: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground=\"gray6\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<RadioGroup\n\t\t\t\t\tstyle={{ width: '100%', justifyContent: 'flex-start' }}\n\t\t\t\t\tvalue={activeValue}\n\t\t\t\t\tonChange={radioGroupOnChange}\n\t\t\t\t>\n\t\t\t\t\t<Radio\n\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\tlabel={t(\n\t\t\t\t\t\t\t'label.save_to_my_sent_folder',\n\t\t\t\t\t\t\t'Save a copy of sent messages to my Sent folder'\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tvalue={'owner'}\n\t\t\t\t\t/>\n\t\t\t\t\t<Radio\n\t\t\t\t\t\tlabel={t(\n\t\t\t\t\t\t\t'label.save_delegate_folder',\n\t\t\t\t\t\t\t'Save a copy of sent messages to delegate’s Sent folder'\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tvalue={'sender'}\n\t\t\t\t\t/>\n\t\t\t\t\t<Radio\n\t\t\t\t\t\tlabel={t(\n\t\t\t\t\t\t\t'label.save_both_folders',\n\t\t\t\t\t\t\t'Save a copy of sent messages to my Sent folder and delegate’s folder'\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tvalue={'both'}\n\t\t\t\t\t/>\n\t\t\t\t\t<Radio\n\t\t\t\t\t\tlabel={t('label.dont_save', 'Don’t save a copy of sent messages')}\n\t\t\t\t\t\tvalue={'none'}\n\t\t\t\t\t/>\n\t\t\t\t</RadioGroup>\n\t\t\t\t<Padding bottom=\"large\" />\n\t\t\t</Container>\n\t\t</>\n\t);\n};\n\nexport default Delegates;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useState, useCallback, ReactElement, useEffect, useMemo } from 'react';\n\nimport { Container, Text, Padding, Input, Row, InputProps } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\n\nimport { IdentityAttrs } from '../../../../types';\n\ninterface PersonaSettingsProps {\n\tidentityAttrs: IdentityAttrs;\n\tupdateIdentities: <K extends keyof IdentityAttrs>(\n\t\tid: string,\n\t\tkey: K,\n\t\tvalue: IdentityAttrs[K]\n\t) => void;\n}\n\nconst PersonaSettings = ({\n\tidentityAttrs,\n\tupdateIdentities\n}: PersonaSettingsProps): ReactElement => {\n\tconst [t] = useTranslation();\n\tconst [personaValue, setPersonaValue] = useState(identityAttrs.zimbraPrefIdentityName);\n\tconst personaLabel = useMemo(() => t('label.persona_name', 'Persona Name'), [t]);\n\tuseEffect(() => {\n\t\tsetPersonaValue(identityAttrs.zimbraPrefIdentityName);\n\t}, [identityAttrs.zimbraPrefIdentityName]);\n\n\tconst onChange = useCallback<NonNullable<InputProps['onChange']>>(\n\t\t(ev) => {\n\t\t\tsetPersonaValue(ev.target.value);\n\t\t\tif (identityAttrs.zimbraPrefIdentityId) {\n\t\t\t\tupdateIdentities(\n\t\t\t\t\tidentityAttrs.zimbraPrefIdentityId,\n\t\t\t\t\t'zimbraPrefIdentityName',\n\t\t\t\t\tev.target.value\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[identityAttrs.zimbraPrefIdentityId, updateIdentities]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<Container\n\t\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ all: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground={'gray6'}\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Padding horizontal=\"medium\" width=\"100%\">\n\t\t\t\t\t<Text weight=\"bold\">{t('label.persona_settings', 'Persona Settings')}</Text>\n\t\t\t\t</Padding>\n\t\t\t</Container>\n\t\t\t<Row\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ horizontal: 'large', bottom: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground={'gray6'}\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Row orientation=\"vertical\" mainAlignment=\"flex-start\" width=\"fill\">\n\t\t\t\t\t<Row orientation=\"horizontal\" width=\"100%\" mainAlignment=\"flex-start\">\n\t\t\t\t\t\t<Text color=\"secondary\">\n\t\t\t\t\t\t\t{t(\n\t\t\t\t\t\t\t\t'label.use_personas_line1',\n\t\t\t\t\t\t\t\t'Use personas to quickly change many settings when sending e-mail messages.'\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</Row>\n\t\t\t\t\t<Row orientation=\"horizontal\" width=\"100%\" mainAlignment=\"flex-start\">\n\t\t\t\t\t\t<Text color=\"secondary\">\n\t\t\t\t\t\t\t{t(\n\t\t\t\t\t\t\t\t'label.use_personas_line2',\n\t\t\t\t\t\t\t\t'For example, if you sometimes send e-mails in a particular role at work, create a persona for that.'\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</Row>\n\t\t\t\t</Row>\n\t\t\t</Row>\n\t\t\t<Row\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ horizontal: 'large', bottom: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground={'gray6'}\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Row takeAvailableSpace>\n\t\t\t\t\t<Input label={personaLabel} value={personaValue} onChange={onChange} />\n\t\t\t\t</Row>\n\t\t\t</Row>\n\n\t\t\t<Padding bottom=\"large\" />\n\t\t</>\n\t);\n};\n\nexport default PersonaSettings;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useMemo, useCallback, ReactElement, useState, useEffect } from 'react';\n\nimport { Container, Text, Padding, Input, Row, InputProps } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\n\nimport { Account, Identity, IdentityAttrs } from '../../../../types';\n\ninterface PrimaryAccountSettingsProps {\n\taccount: Account;\n\tidentity: Identity;\n\tupdateIdentities: <K extends keyof IdentityAttrs>(\n\t\tid: string,\n\t\tkey: K,\n\t\tvalue: IdentityAttrs[K]\n\t) => void;\n}\n\nconst PrimaryAccountSettings = ({\n\taccount,\n\tidentity,\n\tupdateIdentities\n}: PrimaryAccountSettingsProps): ReactElement => {\n\tconst [t] = useTranslation();\n\tconst emailLabel = useMemo(() => t('label.email_address', 'E-mail address'), [t]);\n\tconst [accountNameValue, setAccountNameValue] = useState(\n\t\tidentity?._attrs?.zimbraPrefIdentityName\n\t);\n\n\tuseEffect(\n\t\t() => setAccountNameValue(identity._attrs?.zimbraPrefIdentityName),\n\t\t[identity._attrs?.zimbraPrefIdentityName]\n\t);\n\tconst accountLabel = useMemo(() => t('label.account_name', 'Account Name'), [t]);\n\n\tconst onChangeDisabled = useCallback(() => null, []);\n\tconst onChange = useCallback<NonNullable<InputProps['onChange']>>(\n\t\t(ev): void => {\n\t\t\tsetAccountNameValue(ev.target.value);\n\t\t\tupdateIdentities(identity.id, 'zimbraPrefIdentityName', ev.target.value);\n\t\t},\n\t\t[identity.id, updateIdentities]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<Container\n\t\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ all: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground=\"gray6\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Padding horizontal=\"medium\" width=\"100%\">\n\t\t\t\t\t<Text weight=\"bold\">{t('primary_account.title', 'Primary Account Settings')}</Text>\n\t\t\t\t</Padding>\n\t\t\t</Container>\n\t\t\t<Row\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ horizontal: 'large', bottom: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground=\"gray6\"\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Row width=\"50%\" padding={{ right: 'small' }}>\n\t\t\t\t\t<Input label={emailLabel} value={account.name || ' '} onChange={onChangeDisabled} />\n\t\t\t\t</Row>\n\t\t\t\t<Row width=\"50%\">\n\t\t\t\t\t<Input label={accountLabel} value={accountNameValue} onChange={onChange} />\n\t\t\t\t</Row>\n\t\t\t</Row>\n\t\t\t<Padding bottom=\"large\" />\n\t\t</>\n\t);\n};\n\nexport default PrimaryAccountSettings;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { ReactElement, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport {\n\tCheckbox,\n\tContainer,\n\tDropdown,\n\tDropdownItem,\n\tIcon,\n\tInput,\n\tInputProps,\n\tPadding,\n\tRow,\n\tSelect,\n\tSelectItem,\n\tSingleSelectionOnChange,\n\tText\n} from '@zextras/carbonio-design-system';\nimport { filter, find } from 'lodash';\nimport { useTranslation } from 'react-i18next';\n\nimport { IdentityAttrs } from '../../../../types';\nimport { EMAIL_VALIDATION_REGEX } from '../../../constants';\n\ntype SettingsSentMessagesProps = {\n\tidentityAttrs: IdentityAttrs;\n\tupdateIdentities: <K extends keyof IdentityAttrs>(\n\t\tid: string,\n\t\tkey: K,\n\t\tvalue: IdentityAttrs[K]\n\t) => void;\n\tavailableEmailAddresses?: string[];\n};\n\nconst blankItem: SelectItem = { label: '', value: '' };\n\nconst SettingsSentMessages = ({\n\tidentityAttrs,\n\tupdateIdentities,\n\tavailableEmailAddresses\n}: SettingsSentMessagesProps): ReactElement => {\n\tconst [t] = useTranslation();\n\tconst title = useMemo(() => t('label.settings_sent_messages', 'Settings for Sent Messages'), [t]);\n\tconst [replyToEnabledValue, setReplyToEnabledValue] = useState(\n\t\tidentityAttrs.zimbraPrefReplyToEnabled === 'TRUE'\n\t);\n\tconst [replyToAddress, setReplyToAddress] = useState<string>(\n\t\tidentityAttrs.zimbraPrefReplyToAddress || ''\n\t);\n\tconst [dropdownOpen, setDropdownOpen] = useState(false);\n\tconst [fromDisplayValue, setFromDisplayValue] = useState<string>(\n\t\tidentityAttrs.zimbraPrefFromDisplay || ''\n\t);\n\tconst [replyToDisplay, setReplyToDisplay] = useState<string>(\n\t\tidentityAttrs.zimbraPrefReplyToDisplay || ''\n\t);\n\tconst fromAddressArray = useMemo(\n\t\t(): SelectItem[] =>\n\t\t\tavailableEmailAddresses\n\t\t\t\t? availableEmailAddresses.map((address): SelectItem => ({ value: address, label: address }))\n\t\t\t\t: [blankItem],\n\t\t[availableEmailAddresses]\n\t);\n\tconst [fromAddress, setFromAddress] = useState(\n\t\t() =>\n\t\t\tfind(fromAddressArray, (item) => item.value === identityAttrs.zimbraPrefFromAddress) ??\n\t\t\tblankItem\n\t);\n\n\tuseEffect(() => {\n\t\tsetReplyToEnabledValue(identityAttrs.zimbraPrefReplyToEnabled === 'TRUE');\n\t}, [identityAttrs.zimbraPrefReplyToEnabled]);\n\tuseEffect(() => {\n\t\tsetFromDisplayValue(identityAttrs.zimbraPrefFromDisplay || '');\n\t}, [identityAttrs.zimbraPrefFromDisplay]);\n\tuseEffect(() => {\n\t\tsetFromAddress(\n\t\t\tfind(fromAddressArray, (item) => item.value === identityAttrs.zimbraPrefFromAddress) ??\n\t\t\t\tblankItem\n\t\t);\n\t}, [fromAddressArray, identityAttrs.zimbraPrefFromAddress]);\n\tuseEffect(() => {\n\t\tsetReplyToDisplay(identityAttrs.zimbraPrefReplyToDisplay ?? '');\n\t}, [identityAttrs.zimbraPrefReplyToDisplay]);\n\tuseEffect(() => {\n\t\tsetReplyToAddress(identityAttrs.zimbraPrefReplyToAddress || '');\n\t}, [identityAttrs.zimbraPrefReplyToAddress]);\n\n\tconst onClickReplyToEnabled = useCallback(() => {\n\t\tsetReplyToEnabledValue((prevState) => {\n\t\t\tconst newState = !prevState;\n\t\t\tif (identityAttrs.zimbraPrefIdentityId) {\n\t\t\t\tupdateIdentities(\n\t\t\t\t\tidentityAttrs.zimbraPrefIdentityId,\n\t\t\t\t\t'zimbraPrefReplyToEnabled',\n\t\t\t\t\tprevState ? 'FALSE' : 'TRUE'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn newState;\n\t\t});\n\t}, [identityAttrs.zimbraPrefIdentityId, updateIdentities]);\n\n\tconst fromDisplayLabel = useMemo(() => t('label.from_name', 'From: \"Name\"'), [t]);\n\tconst onChangeFromDisplayValue: InputProps['onChange'] = (e) => {\n\t\tsetFromDisplayValue(e.target.value);\n\t\tif (identityAttrs.zimbraPrefIdentityId) {\n\t\t\tupdateIdentities(identityAttrs.zimbraPrefIdentityId, 'zimbraPrefFromDisplay', e.target.value);\n\t\t}\n\t};\n\n\tconst fromAddressLabel = useMemo(() => t('label.address', 'Address'), [t]);\n\n\tconst onChangeFromAddress = useCallback<SingleSelectionOnChange>(\n\t\t(newAddress) => {\n\t\t\tif (!newAddress) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (fromAddress?.value === newAddress) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetFromAddress(filter(fromAddressArray, (item) => item.value === newAddress)[0]);\n\t\t\tif (identityAttrs.zimbraPrefIdentityId) {\n\t\t\t\tupdateIdentities(identityAttrs.zimbraPrefIdentityId, 'zimbraPrefFromAddress', newAddress);\n\t\t\t}\n\t\t},\n\t\t[fromAddress?.value, fromAddressArray, identityAttrs.zimbraPrefIdentityId, updateIdentities]\n\t);\n\n\tconst replyToEnabledLabel = t(\n\t\t'label.set_reply_to_field',\n\t\t'Set the \"Reply-to\" field of e-mail message to:'\n\t);\n\n\tconst replyToDisplayLabel = useMemo(\n\t\t() => t('label.reply_to_field_example', 'e.g. Bob Smith'),\n\t\t[t]\n\t);\n\tconst onChangePrefReplyToDisplay = useCallback<NonNullable<InputProps['onChange']>>(\n\t\t(e) => {\n\t\t\tsetReplyToDisplay(e.target.value);\n\t\t\tif (identityAttrs.zimbraPrefIdentityId) {\n\t\t\t\tupdateIdentities(\n\t\t\t\t\tidentityAttrs.zimbraPrefIdentityId,\n\t\t\t\t\t'zimbraPrefReplyToDisplay',\n\t\t\t\t\te.target.value\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[identityAttrs.zimbraPrefIdentityId, updateIdentities]\n\t);\n\n\tconst replyToAddressLabel = useMemo(() => t('label.choose_account', 'Choose an account'), [t]);\n\n\tconst onChangeReplyToAddress = useCallback(\n\t\t(value: string) => {\n\t\t\tsetReplyToAddress(value);\n\t\t\tif (identityAttrs.zimbraPrefIdentityId) {\n\t\t\t\tupdateIdentities(identityAttrs.zimbraPrefIdentityId, 'zimbraPrefReplyToAddress', value);\n\t\t\t}\n\t\t},\n\t\t[updateIdentities, identityAttrs.zimbraPrefIdentityId]\n\t);\n\n\tconst replyToAddressArray = useMemo(\n\t\t(): DropdownItem[] => [\n\t\t\t{\n\t\t\t\tid: '0',\n\t\t\t\tlabel: identityAttrs.zimbraPrefFromAddress ?? '',\n\t\t\t\tonClick: () => onChangeReplyToAddress(identityAttrs.zimbraPrefFromAddress ?? '')\n\t\t\t}\n\t\t],\n\t\t[identityAttrs.zimbraPrefFromAddress, onChangeReplyToAddress]\n\t);\n\n\tconst isValidEmail = useMemo(\n\t\t() => replyToEnabledValue && !EMAIL_VALIDATION_REGEX.test(replyToAddress || ''),\n\t\t[replyToEnabledValue, replyToAddress]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<Container\n\t\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ all: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground={'gray6'}\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Padding horizontal=\"medium\" width=\"100%\">\n\t\t\t\t\t<Text weight=\"bold\">{title}</Text>\n\t\t\t\t</Padding>\n\t\t\t</Container>\n\t\t\t<Row\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ horizontal: 'large', bottom: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground={'gray6'}\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Row width={'50%'} padding={{ right: 'small' }}>\n\t\t\t\t\t{/* zimbraPrefFromDisplay */}\n\t\t\t\t\t<Input\n\t\t\t\t\t\tlabel={fromDisplayLabel}\n\t\t\t\t\t\tvalue={fromDisplayValue}\n\t\t\t\t\t\tonChange={onChangeFromDisplayValue}\n\t\t\t\t\t/>\n\t\t\t\t</Row>\n\t\t\t\t<Row width=\"50%\">\n\t\t\t\t\t{/* zimbraPrefFromAddress */}\n\t\t\t\t\t<Select\n\t\t\t\t\t\tlabel={fromAddressLabel}\n\t\t\t\t\t\tselection={fromAddress}\n\t\t\t\t\t\titems={fromAddressArray}\n\t\t\t\t\t\tshowCheckbox={false}\n\t\t\t\t\t\tbackground={'gray5'}\n\t\t\t\t\t\tonChange={onChangeFromAddress}\n\t\t\t\t\t/>\n\t\t\t\t</Row>\n\t\t\t</Row>\n\t\t\t<Row\n\t\t\t\twidth=\"fill\"\n\t\t\t\tbackground={'gray6'}\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\tpadding={{ horizontal: 'large', bottom: 'large' }}\n\t\t\t>\n\t\t\t\t{/* zimbraPrefReplyToEnabled */}\n\t\t\t\t<Checkbox\n\t\t\t\t\tlabel={replyToEnabledLabel}\n\t\t\t\t\tvalue={replyToEnabledValue}\n\t\t\t\t\tonClick={onClickReplyToEnabled}\n\t\t\t\t/>\n\t\t\t</Row>\n\t\t\t<Row\n\t\t\t\twidth=\"fill\"\n\t\t\t\tpadding={{ horizontal: 'large', bottom: 'large' }}\n\t\t\t\theight=\"fit\"\n\t\t\t\tbackground={'gray6'}\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t>\n\t\t\t\t<Row width=\"50%\" padding={{ right: 'small' }}>\n\t\t\t\t\t{/* zimbraPrefReplyToDisplay */}\n\t\t\t\t\t<Input\n\t\t\t\t\t\tlabel={replyToDisplayLabel}\n\t\t\t\t\t\tvalue={replyToDisplay}\n\t\t\t\t\t\tdisabled={!replyToEnabledValue}\n\t\t\t\t\t\tonChange={onChangePrefReplyToDisplay}\n\t\t\t\t\t/>\n\t\t\t\t</Row>\n\t\t\t\t<Row width=\"50%\">\n\t\t\t\t\t{/* zimbraPrefReplyToAddress */}\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\titems={replyToAddressArray}\n\t\t\t\t\t\tplacement=\"bottom-start\"\n\t\t\t\t\t\tstyle={{ flexGrow: '1' }}\n\t\t\t\t\t\tonClose={(): void => setDropdownOpen(false)}\n\t\t\t\t\t\tonOpen={(): void => setDropdownOpen(true)}\n\t\t\t\t\t\tdisabled={!replyToEnabledValue}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\tlabel={replyToAddressLabel}\n\t\t\t\t\t\t\tvalue={replyToAddress}\n\t\t\t\t\t\t\tonChange={(ev): void => onChangeReplyToAddress(ev.target.value)}\n\t\t\t\t\t\t\thasError={isValidEmail}\n\t\t\t\t\t\t\tCustomIcon={(): ReactElement => (\n\t\t\t\t\t\t\t\t<Icon icon={dropdownOpen ? 'ArrowUp' : 'ArrowDown'} />\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tdisabled={!replyToEnabledValue}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Dropdown>\n\t\t\t\t</Row>\n\t\t\t</Row>\n\t\t\t<Padding bottom=\"large\" />\n\t\t</>\n\t);\n};\n\nexport default SettingsSentMessages;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useMemo } from 'react';\n\nimport { Container, Text } from '@zextras/carbonio-design-system';\n\nimport { getT } from '../../../store/i18n';\nimport { appearanceSubSection } from '../../general-settings-sub-sections';\n\ninterface AppearanceSettingsProps {\n\tchildren: React.ReactElement | React.ReactElement[];\n}\n\nconst AppearanceSettings = ({ children }: AppearanceSettingsProps): React.JSX.Element => {\n\tconst t = getT();\n\tconst subSection = useMemo(() => appearanceSubSection(t), [t]);\n\treturn (\n\t\t<Container\n\t\t\tmainAlignment=\"flex-start\"\n\t\t\tcrossAlignment=\"flex-start\"\n\t\t\tgap=\"1rem\"\n\t\t\tpadding={'large'}\n\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\twidth=\"50%\"\n\t\t\theight={'fit'}\n\t\t\tid={subSection.id}\n\t\t\tbackground={'gray6'}\n\t\t>\n\t\t\t<Text weight={'bold'} size={'medium'}>\n\t\t\t\t{subSection.label}\n\t\t\t</Text>\n\t\t\t{children}\n\t\t</Container>\n\t);\n};\n\nexport default AppearanceSettings;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\n\nimport { Select, SelectItem, SingleSelectionOnChange, Text } from '@zextras/carbonio-design-system';\nimport { find } from 'lodash';\n\nimport type { AddMod, DarkReaderPropValues, RemoveMod } from '../../../../types';\nimport { ThemeCallbacksContext } from '../../../boot/theme-provider';\nimport { DARK_READER_PROP_KEY, SHELL_APP_ID } from '../../../constants';\nimport {\n\tisDarkReaderPropValues,\n\tuseDarkReaderResultValue\n} from '../../../dark-mode/use-dark-reader-result-value';\nimport { getT } from '../../../store/i18n';\n\ntype DarkReaderSelectItem = Array<SelectItem & { value: DarkReaderPropValues }>;\n\ninterface DarkThemeSettingSectionProps {\n\taddMod: AddMod;\n\tremoveMod: RemoveMod;\n}\n\nconst DarkThemeSettingSection = ({\n\taddMod,\n\tremoveMod\n}: DarkThemeSettingSectionProps): React.JSX.Element | null => {\n\tconst { setDarkReaderState } = useContext(ThemeCallbacksContext);\n\tconst darkReaderResultValue = useDarkReaderResultValue();\n\tconst [selection, setSelection] = useState<SelectItem>();\n\n\tconst t = getT();\n\tconst items = useMemo(\n\t\t(): DarkReaderSelectItem => [\n\t\t\t{\n\t\t\t\tlabel: t('settings.general.theme_auto', 'Auto'),\n\t\t\t\tvalue: 'auto'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: t('settings.general.theme_enabled', 'Enabled'),\n\t\t\t\tvalue: 'enabled'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: t('settings.general.theme_disabled', 'Disabled'),\n\t\t\t\tvalue: 'disabled'\n\t\t\t}\n\t\t],\n\t\t[t]\n\t);\n\n\tconst setSelectNewValue = useCallback(\n\t\t(value: DarkReaderPropValues) => {\n\t\t\tconst item = find(items, { value });\n\t\t\tif (item) {\n\t\t\t\tsetSelection(item);\n\t\t\t}\n\t\t\tsetDarkReaderState(value);\n\t\t},\n\t\t[items, setDarkReaderState]\n\t);\n\n\tconst onSelectionChange = useCallback<SingleSelectionOnChange>(\n\t\t(value) => {\n\t\t\tif (isDarkReaderPropValues(value)) {\n\t\t\t\tif (value) {\n\t\t\t\t\tsetSelectNewValue(value);\n\t\t\t\t}\n\t\t\t\tif (value !== darkReaderResultValue) {\n\t\t\t\t\taddMod('props', DARK_READER_PROP_KEY, { app: SHELL_APP_ID, value });\n\t\t\t\t} else {\n\t\t\t\t\tremoveMod('props', DARK_READER_PROP_KEY);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[addMod, darkReaderResultValue, removeMod, setSelectNewValue]\n\t);\n\n\tuseEffect(() => {\n\t\tif (darkReaderResultValue) {\n\t\t\tsetSelectNewValue(darkReaderResultValue);\n\t\t}\n\t}, [darkReaderResultValue, items, setSelectNewValue]);\n\n\tif (!selection) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t<Text size=\"medium\" weight=\"bold\">\n\t\t\t\t{t('settings.general.theme_options', 'Theme Options')}\n\t\t\t</Text>\n\t\t\t<Select\n\t\t\t\titems={items}\n\t\t\t\tselection={selection}\n\t\t\t\tlabel={t('settings.general.dark_mode', 'Dark Mode')}\n\t\t\t\tonChange={onSelectionChange}\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default DarkThemeSettingSection;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useMemo } from 'react';\n\nimport { Button, FormSubSection } from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\n\nimport { logout } from '../../../network/logout';\nimport { accountSubSection } from '../../general-settings-sub-sections';\n\nexport const Logout = (): React.JSX.Element => {\n\tconst [t] = useTranslation();\n\n\tconst sectionTitle = useMemo(() => accountSubSection(t), [t]);\n\n\treturn (\n\t\t<FormSubSection\n\t\t\tlabel={sectionTitle.label}\n\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\twidth=\"50%\"\n\t\t\tid={sectionTitle.id}\n\t\t>\n\t\t\t<Button label={t('settings.general.account_logout', 'Logout')} onClick={logout} />\n\t\t</FormSubSection>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport {\n\tBadge,\n\tContainer,\n\tDivider,\n\tFormSubSection,\n\tText,\n\tTextProps,\n\tTooltip,\n\tuseTheme\n} from '@zextras/carbonio-design-system';\nimport { map } from 'lodash';\n\nimport { CarbonioModule } from '../../../../types';\nimport { SEARCH_APP_ID, SETTINGS_APP_ID } from '../../../constants';\nimport { useAppList } from '../../../store/app';\nimport { getT } from '../../../store/i18n';\nimport { versionsSubSection } from '../../general-settings-sub-sections';\n\nconst ModuleVersionSettings = (): React.JSX.Element => {\n\tconst apps = useAppList();\n\tconst t = getT();\n\tconst theme = useTheme();\n\n\tconst copyToClipboard = useCallback<NonNullable<TextProps['onClick']>>((e) => {\n\t\te.preventDefault();\n\t\tif (e.target instanceof HTMLElement) {\n\t\t\tnavigator.clipboard.writeText(e.target.innerText);\n\t\t}\n\t}, []);\n\n\tconst filteredList = useMemo(\n\t\t() => apps.filter((app) => app.name !== SEARCH_APP_ID && app.name !== SETTINGS_APP_ID),\n\t\t[apps]\n\t);\n\tconst sectionTitle = useMemo(() => versionsSubSection(t), [t]);\n\n\treturn (\n\t\t<>\n\t\t\t<FormSubSection\n\t\t\t\tlabel={sectionTitle.label}\n\t\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\t\twidth=\"50%\"\n\t\t\t\tid={sectionTitle.id}\n\t\t\t>\n\t\t\t\t{map(filteredList, (app: CarbonioModule) => (\n\t\t\t\t\t<Container key={app.name} padding={{ horizontal: 'large', vertical: 'small' }}>\n\t\t\t\t\t\t<Container orientation=\"horizontal\" mainAlignment=\"space-between\">\n\t\t\t\t\t\t\t<Text>{app.display}</Text>\n\t\t\t\t\t\t\t<Tooltip placement=\"top\" label={t('label.click_to_copy', 'Click to copy')}>\n\t\t\t\t\t\t\t\t<Text style={{ cursor: 'pointer' }} onClick={copyToClipboard}>\n\t\t\t\t\t\t\t\t\tVersion: {app.version}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t<Container\n\t\t\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\t\t\tmainAlignment=\"space-between\"\n\t\t\t\t\t\t\tpadding={{ top: 'extrasmall', bottom: 'medium' }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text color=\"secondary\">{app.description}</Text>\n\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\tvalue=\"Active\"\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette.success.regular,\n\t\t\t\t\t\t\t\t\tcolor: theme.palette.gray6.regular\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t<Divider color=\"gray2\" />\n\t\t\t\t\t</Container>\n\t\t\t\t))}\n\t\t\t</FormSubSection>\n\t\t</>\n\t);\n};\n\nexport default ModuleVersionSettings;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport {\n\tCheckbox,\n\tContainer,\n\tFormSubSection,\n\tPadding,\n\tRow,\n\tSelect,\n\tSelectItem,\n\tSingleSelectionOnChange,\n\tText,\n\tTextArea,\n\tTextAreaProps\n} from '@zextras/carbonio-design-system';\nimport { type TFunction } from 'i18next';\nimport { find } from 'lodash';\n\nimport { OutOfOfficeTimePeriodSection } from './out-of-office-time-period-section';\nimport { AccountSettings, AccountSettingsPrefs, AddMod, BooleanString } from '../../../../types';\nimport { getT } from '../../../store/i18n';\nimport { outOfOfficeSubSection } from '../../general-settings-sub-sections';\nimport { useReset } from '../../hooks/use-reset';\nimport {\n\tdateToGenTime,\n\tResetComponentImperativeHandler,\n\tSettingsSectionProps,\n\tupsertPrefOnUnsavedChanges\n} from '../utils';\n\ntype CoercedPrefType<T> = T extends BooleanString | undefined ? boolean | undefined : T;\n\nexport const buildItemsPrefOutOfOfficeReplyEnabled = (\n\tt: TFunction\n): Array<\n\tSelectItem<\n\t\tNonNullable<CoercedPrefType<AccountSettingsPrefs['zimbraPrefOutOfOfficeReplyEnabled']>>\n\t>\n> => [\n\t{\n\t\tlabel: t('settings.out_of_office.send_auto_replies', 'Send auto-replies'),\n\t\tvalue: true\n\t},\n\t{\n\t\tlabel: t('settings.out_of_office.do_not_send_auto_replies', 'Do not send auto-replies'),\n\t\tvalue: false\n\t}\n];\n\ntype ExternalSenders =\n\t| 'SEND_AUTO_REPLY'\n\t| 'SHOW_EXTERNAL_INPUT'\n\t| 'SEND_NOT_IN_ORG'\n\t| 'SUPPRESS_EXTERNAL';\n\nexport const buildItemsExternalSenders = (\n\tt: TFunction\n): Record<ExternalSenders, SelectItem<ExternalSenders>> => ({\n\tSEND_AUTO_REPLY: {\n\t\tlabel: t(\n\t\t\t'settings.out_of_office.external_senders.send_standard_auto_reply',\n\t\t\t'Send standard auto-reply message'\n\t\t),\n\t\tvalue: 'SEND_AUTO_REPLY'\n\t},\n\tSHOW_EXTERNAL_INPUT: {\n\t\tlabel: t(\n\t\t\t'settings.out_of_office.external_senders.send_custom_in_organisation',\n\t\t\t'Send custom message to those who are not in my organization'\n\t\t),\n\t\tvalue: 'SHOW_EXTERNAL_INPUT'\n\t},\n\tSEND_NOT_IN_ORG: {\n\t\tlabel: t(\n\t\t\t'settings.out_of_office.external_senders.send_custom_not_in_organisation',\n\t\t\t'Send custom message to those who are not in my organization or address book'\n\t\t),\n\t\tvalue: 'SEND_NOT_IN_ORG'\n\t},\n\tSUPPRESS_EXTERNAL: {\n\t\tlabel: t(\n\t\t\t'settings.out_of_office.external_senders.do_not_send_to_external',\n\t\t\t\"Don't send an auto-reply message to external sender\"\n\t\t),\n\t\tvalue: 'SUPPRESS_EXTERNAL'\n\t}\n});\n\nexport const getExternalSendersPrefsData = (\n\tsettings: AccountSettings,\n\tt: TFunction\n): SelectItem<ExternalSenders> => {\n\tconst itemsExternalSenders = buildItemsExternalSenders(t);\n\tif (\n\t\tsettings.prefs.zimbraPrefOutOfOfficeSuppressExternalReply === 'FALSE' &&\n\t\tsettings.prefs.zimbraPrefOutOfOfficeExternalReplyEnabled === 'FALSE'\n\t) {\n\t\treturn itemsExternalSenders.SEND_AUTO_REPLY;\n\t}\n\tif (\n\t\tsettings.prefs.zimbraPrefExternalSendersType === 'ALL' &&\n\t\tsettings.prefs.zimbraPrefOutOfOfficeExternalReplyEnabled === 'TRUE'\n\t) {\n\t\treturn itemsExternalSenders.SHOW_EXTERNAL_INPUT;\n\t}\n\tif (\n\t\tsettings.prefs.zimbraPrefExternalSendersType === 'ALLNOTINAB' &&\n\t\tsettings.prefs.zimbraPrefOutOfOfficeExternalReplyEnabled === 'TRUE'\n\t) {\n\t\treturn itemsExternalSenders.SEND_NOT_IN_ORG;\n\t}\n\treturn itemsExternalSenders.SUPPRESS_EXTERNAL;\n};\n\ninterface OutOfOfficeViewProps extends SettingsSectionProps {\n\tsettings: AccountSettings;\n\taddMod: AddMod;\n}\n\nexport const OutOfOfficeSettings = ({\n\tsettings,\n\taddMod,\n\tresetRef\n}: OutOfOfficeViewProps): React.JSX.Element => {\n\tconst t = getT();\n\tconst outOfOfficeSectionTitle = useMemo(() => outOfOfficeSubSection(t), [t]);\n\tconst [prefOutOfOfficeReplyEnabled, setPrefOutOfOfficeReplyEnabled] = useState<boolean>(\n\t\tsettings.prefs.zimbraPrefOutOfOfficeReplyEnabled === 'TRUE'\n\t);\n\tconst [prefOutOfOfficeReply, setPrefOutOfOfficeReply] = useState<string>(\n\t\tsettings.prefs.zimbraPrefOutOfOfficeReply ?? ''\n\t);\n\tconst [prefOutOfOfficeExternalReplyEnabled, setPrefOutOfOfficeExternalReplyEnabled] =\n\t\tuseState<boolean>(settings.prefs.zimbraPrefOutOfOfficeExternalReplyEnabled === 'TRUE');\n\tconst [prefOutOfOfficeExternalReply, setPrefOutOfOfficeExternalReply] = useState<string>(\n\t\tsettings.prefs.zimbraPrefOutOfOfficeExternalReply ?? ''\n\t);\n\tconst [externalSendersSelectedItem, setExternalSendersSelectedItem] = useState<\n\t\tSelectItem<ExternalSenders>\n\t>(getExternalSendersPrefsData(settings, t));\n\tconst [sendAutoReplyTimePeriodEnabled, setSendAutoReplyTimePeriodEnabled] = useState<boolean>(\n\t\t!!settings.prefs.zimbraPrefOutOfOfficeFromDate &&\n\t\t\t!!settings.prefs.zimbraPrefOutOfOfficeUntilDate\n\t);\n\n\tconst outOfOfficeTimePeriodResetRef = useRef<ResetComponentImperativeHandler>(null);\n\n\tconst initPrefs = useCallback(() => {\n\t\tsetPrefOutOfOfficeReplyEnabled(settings.prefs.zimbraPrefOutOfOfficeReplyEnabled === 'TRUE');\n\t\tsetPrefOutOfOfficeReply(settings.prefs.zimbraPrefOutOfOfficeReply ?? '');\n\t\tsetPrefOutOfOfficeExternalReplyEnabled(\n\t\t\tsettings.prefs.zimbraPrefOutOfOfficeExternalReplyEnabled === 'TRUE'\n\t\t);\n\t\tsetPrefOutOfOfficeExternalReply(settings.prefs.zimbraPrefOutOfOfficeExternalReply ?? '');\n\t\tsetExternalSendersSelectedItem(getExternalSendersPrefsData(settings, t));\n\t\tsetSendAutoReplyTimePeriodEnabled(\n\t\t\t!!settings.prefs.zimbraPrefOutOfOfficeFromDate &&\n\t\t\t\t!!settings.prefs.zimbraPrefOutOfOfficeUntilDate\n\t\t);\n\t\toutOfOfficeTimePeriodResetRef.current?.reset();\n\t}, [settings, t]);\n\n\tuseEffect(() => {\n\t\tinitPrefs();\n\t}, [initPrefs]);\n\n\tuseReset(resetRef, initPrefs);\n\n\tconst updatePref = useMemo(() => upsertPrefOnUnsavedChanges(addMod), [addMod]);\n\n\tconst prefOutOfOfficeReplyEnabledSelectItems = useMemo(\n\t\t() => buildItemsPrefOutOfOfficeReplyEnabled(t),\n\t\t[t]\n\t);\n\n\tconst prefOutOfOfficeReplyEnabledSelectedValue = useMemo<SelectItem<boolean>>(\n\t\t() =>\n\t\t\tfind(\n\t\t\t\tprefOutOfOfficeReplyEnabledSelectItems,\n\t\t\t\t(item) => item.value === prefOutOfOfficeReplyEnabled\n\t\t\t) as SelectItem<boolean>,\n\t\t[prefOutOfOfficeReplyEnabled, prefOutOfOfficeReplyEnabledSelectItems]\n\t);\n\n\tconst prefOutOfOfficeReplyEnabledOnChange = useCallback<\n\t\tSingleSelectionOnChange<\n\t\t\tNonNullable<CoercedPrefType<AccountSettingsPrefs['zimbraPrefOutOfOfficeReplyEnabled']>>\n\t\t>\n\t>(\n\t\t(value): void => {\n\t\t\tif (value !== null) {\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeReplyEnabled', value);\n\t\t\t\tsetPrefOutOfOfficeReplyEnabled(value);\n\t\t\t}\n\t\t},\n\t\t[updatePref]\n\t);\n\n\tconst externalSendersSelectItems = useMemo(\n\t\t() => Object.values(buildItemsExternalSenders(t)),\n\t\t[t]\n\t);\n\n\tconst externalSendersHandler = useCallback(\n\t\t(value: ExternalSenders) => {\n\t\t\tif (value === 'SEND_AUTO_REPLY') {\n\t\t\t\tupdatePref('zimbraPrefExternalSendersType', 'INSD');\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeExternalReplyEnabled', false);\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeSuppressExternalReply', false);\n\t\t\t\tsetPrefOutOfOfficeExternalReplyEnabled(false);\n\t\t\t} else if (value === 'SHOW_EXTERNAL_INPUT') {\n\t\t\t\tupdatePref('zimbraPrefExternalSendersType', 'ALL');\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeExternalReplyEnabled', true);\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeSuppressExternalReply', false);\n\t\t\t\tsetPrefOutOfOfficeExternalReplyEnabled(true);\n\t\t\t} else if (value === 'SEND_NOT_IN_ORG') {\n\t\t\t\tupdatePref('zimbraPrefExternalSendersType', 'ALLNOTINAB');\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeExternalReplyEnabled', true);\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeSuppressExternalReply', false);\n\t\t\t\tsetPrefOutOfOfficeExternalReplyEnabled(true);\n\t\t\t} else if (value === 'SUPPRESS_EXTERNAL') {\n\t\t\t\tupdatePref('zimbraPrefExternalSendersType', 'INAB');\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeExternalReplyEnabled', false);\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeSuppressExternalReply', true);\n\t\t\t\tsetPrefOutOfOfficeExternalReplyEnabled(false);\n\t\t\t}\n\t\t},\n\t\t[updatePref]\n\t);\n\n\tconst externalSendersOnChange = useCallback<SingleSelectionOnChange<ExternalSenders>>(\n\t\t(value) => {\n\t\t\tif (value !== null) {\n\t\t\t\texternalSendersHandler(value);\n\t\t\t\tconst newSelectItem = find(externalSendersSelectItems, (item) => item.value === value);\n\t\t\t\tnewSelectItem && setExternalSendersSelectedItem(newSelectItem);\n\t\t\t}\n\t\t},\n\t\t[externalSendersHandler, externalSendersSelectItems]\n\t);\n\n\tconst prefOutOfOfficeReplyOnChange = useCallback<NonNullable<TextAreaProps['onChange']>>(\n\t\t(ev) => {\n\t\t\tsetPrefOutOfOfficeReply(ev.target.value);\n\t\t\tupdatePref('zimbraPrefOutOfOfficeReply', ev.target.value);\n\t\t},\n\t\t[updatePref]\n\t);\n\n\tconst prefOutOfOfficeExternalReplyOnChange = useCallback<NonNullable<TextAreaProps['onChange']>>(\n\t\t(ev) => {\n\t\t\tsetPrefOutOfOfficeExternalReply(ev.target.value);\n\t\t\tupdatePref('zimbraPrefOutOfOfficeExternalReply', ev.target.value);\n\t\t},\n\t\t[updatePref]\n\t);\n\n\tconst toggleSendAutoReplyTimePeriod = useCallback(() => {\n\t\tsetSendAutoReplyTimePeriodEnabled((prevState) => {\n\t\t\tconst nextState = !prevState;\n\t\t\tif (!nextState) {\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeFromDate', undefined);\n\t\t\t\tupdatePref('zimbraPrefOutOfOfficeUntilDate', undefined);\n\t\t\t} else {\n\t\t\t\tif (!settings.prefs.zimbraPrefOutOfOfficeFromDate) {\n\t\t\t\t\tupdatePref('zimbraPrefOutOfOfficeFromDate', dateToGenTime(new Date()));\n\t\t\t\t}\n\t\t\t\tif (!settings.prefs.zimbraPrefOutOfOfficeUntilDate) {\n\t\t\t\t\tupdatePref('zimbraPrefOutOfOfficeUntilDate', dateToGenTime(new Date()));\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nextState;\n\t\t});\n\t}, [\n\t\tsettings.prefs.zimbraPrefOutOfOfficeFromDate,\n\t\tsettings.prefs.zimbraPrefOutOfOfficeUntilDate,\n\t\tupdatePref\n\t]);\n\n\treturn (\n\t\t<FormSubSection\n\t\t\tlabel={outOfOfficeSectionTitle.label}\n\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\twidth=\"50%\"\n\t\t\tid={outOfOfficeSectionTitle.id}\n\t\t>\n\t\t\t<Container crossAlignment=\"baseline\" padding={{ all: 'small' }} gap={'0.5rem'}>\n\t\t\t\t<Select\n\t\t\t\t\titems={prefOutOfOfficeReplyEnabledSelectItems}\n\t\t\t\t\tlabel={t('label.out_of_office', 'Out of Office')}\n\t\t\t\t\tonChange={prefOutOfOfficeReplyEnabledOnChange}\n\t\t\t\t\tselection={prefOutOfOfficeReplyEnabledSelectedValue}\n\t\t\t\t/>\n\t\t\t\t<TextArea\n\t\t\t\t\tvalue={prefOutOfOfficeReply}\n\t\t\t\t\tdisabled={!prefOutOfOfficeReplyEnabled}\n\t\t\t\t\tlabel={t('settings.out_of_office.labels.auto_reply_message', 'Auto-Reply Message:')}\n\t\t\t\t\tonChange={prefOutOfOfficeReplyOnChange}\n\t\t\t\t/>\n\t\t\t\t<Select\n\t\t\t\t\tdisabled={!prefOutOfOfficeReplyEnabled}\n\t\t\t\t\titems={externalSendersSelectItems}\n\t\t\t\t\tlabel={t('settings.out_of_office.labels.external_senders', 'External Senders')}\n\t\t\t\t\tonChange={externalSendersOnChange}\n\t\t\t\t\tselection={externalSendersSelectedItem}\n\t\t\t\t\tdropdownWidth={'auto'}\n\t\t\t\t\tdropdownMaxWidth={'unset'}\n\t\t\t\t\tplacement={'bottom-start'}\n\t\t\t\t/>\n\t\t\t\t{prefOutOfOfficeExternalReplyEnabled && (\n\t\t\t\t\t<TextArea\n\t\t\t\t\t\tvalue={prefOutOfOfficeExternalReply}\n\t\t\t\t\t\tdisabled={!prefOutOfOfficeReplyEnabled}\n\t\t\t\t\t\tlabel={t(\n\t\t\t\t\t\t\t'settings.out_of_office.labels.auto_reply_message_external',\n\t\t\t\t\t\t\t'Auto-Reply Message for External senders:'\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonChange={prefOutOfOfficeExternalReplyOnChange}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</Container>\n\t\t\t<Container crossAlignment=\"baseline\" padding={{ all: 'small' }}>\n\t\t\t\t<Row\n\t\t\t\t\tpadding={{ all: 'small' }}\n\t\t\t\t\tmainAlignment=\"baseline\"\n\t\t\t\t\tcrossAlignment=\"baseline\"\n\t\t\t\t\twidth=\"100%\"\n\t\t\t\t>\n\t\t\t\t\t<Text size=\"large\" weight=\"bold\">\n\t\t\t\t\t\t{t('settings.out_of_office.headings.time_period', 'Time Period')}\n\t\t\t\t\t</Text>\n\t\t\t\t</Row>\n\t\t\t\t<Padding vertical=\"small\" />\n\t\t\t\t<Checkbox\n\t\t\t\t\tlabel={t(\n\t\t\t\t\t\t'settings.out_of_office.labels.send_auto_reply_period',\n\t\t\t\t\t\t'Send auto-replies during the following period:'\n\t\t\t\t\t)}\n\t\t\t\t\tvalue={sendAutoReplyTimePeriodEnabled}\n\t\t\t\t\tonClick={toggleSendAutoReplyTimePeriod}\n\t\t\t\t\tdisabled={!prefOutOfOfficeReplyEnabled}\n\t\t\t\t/>\n\t\t\t\t<OutOfOfficeTimePeriodSection\n\t\t\t\t\taddMod={addMod}\n\t\t\t\t\tdisabled={!prefOutOfOfficeReplyEnabled || !sendAutoReplyTimePeriodEnabled}\n\t\t\t\t\tprefOutOfOfficeFromDate={settings.prefs.zimbraPrefOutOfOfficeFromDate}\n\t\t\t\t\tprefOutOfOfficeUntilDate={settings.prefs.zimbraPrefOutOfOfficeUntilDate}\n\t\t\t\t\tresetRef={outOfOfficeTimePeriodResetRef}\n\t\t\t\t/>\n\t\t\t</Container>\n\t\t</FormSubSection>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport {\n\tCheckbox,\n\tContainer,\n\tDateTimePicker,\n\tDateTimePickerProps\n} from '@zextras/carbonio-design-system';\n\nimport { AddMod, GeneralizedTime } from '../../../../types';\nimport { getT } from '../../../store/i18n';\nimport { useReset } from '../../hooks/use-reset';\nimport {\n\tdateToGenTime,\n\tendOfDay,\n\tgenTimeToDate,\n\tSettingsSectionProps,\n\tstartOfDay,\n\tupsertPrefOnUnsavedChanges\n} from '../utils';\n\ninterface OutOfOfficeTimePeriodSectionProps extends SettingsSectionProps {\n\taddMod: AddMod;\n\tdisabled: boolean;\n\tprefOutOfOfficeFromDate: GeneralizedTime | undefined;\n\tprefOutOfOfficeUntilDate: GeneralizedTime | undefined;\n}\n\nfunction coerceGenTime(genTime: GeneralizedTime | undefined): Date {\n\treturn genTime ? genTimeToDate(genTime) : new Date();\n}\n\nexport const OutOfOfficeTimePeriodSection = ({\n\taddMod,\n\tdisabled,\n\tprefOutOfOfficeFromDate,\n\tprefOutOfOfficeUntilDate,\n\tresetRef\n}: OutOfOfficeTimePeriodSectionProps): React.JSX.Element => {\n\tconst t = getT();\n\tconst [fromDate, setFromDate] = useState<Date>(coerceGenTime(prefOutOfOfficeFromDate));\n\tconst [untilDate, setUntilDate] = useState<Date>(coerceGenTime(prefOutOfOfficeUntilDate));\n\tconst [allDayEnabled, setAllDayEnabled] = useState<boolean>(false);\n\tconst editTimeIsDisabled = useMemo(() => disabled || allDayEnabled, [disabled, allDayEnabled]);\n\n\tconst updatePref = useMemo(() => upsertPrefOnUnsavedChanges(addMod), [addMod]);\n\n\tconst initPrefs = useCallback(() => {\n\t\tconst fromDatePref = coerceGenTime(prefOutOfOfficeFromDate);\n\t\tconst untilDatePref = coerceGenTime(prefOutOfOfficeUntilDate);\n\t\tsetFromDate(fromDatePref);\n\t\tsetUntilDate(untilDatePref);\n\t\t// there is no pref for the all day check. It is considered all day if the start date time is midnight\n\t\t// and the until date time is 23:59:59:00\n\t\tconst fromDateAllDay = startOfDay(fromDatePref);\n\t\tconst untilDateAllDay = endOfDay(untilDatePref);\n\t\tsetAllDayEnabled(\n\t\t\tfromDatePref.getTime() === fromDateAllDay.getTime() &&\n\t\t\t\tuntilDatePref.getTime() === untilDateAllDay.getTime()\n\t\t);\n\t}, [prefOutOfOfficeFromDate, prefOutOfOfficeUntilDate]);\n\n\tuseEffect(() => {\n\t\tinitPrefs();\n\t}, [initPrefs]);\n\n\tuseReset(resetRef, initPrefs);\n\n\tconst outOfOfficeFromDateOnChange = useCallback<NonNullable<DateTimePickerProps['onChange']>>(\n\t\t(newFromDate) => {\n\t\t\tif (newFromDate) {\n\t\t\t\tsetFromDate((prevState) => {\n\t\t\t\t\tif (newFromDate.getTime() !== prevState.getTime()) {\n\t\t\t\t\t\tupdatePref('zimbraPrefOutOfOfficeFromDate', dateToGenTime(newFromDate));\n\t\t\t\t\t}\n\t\t\t\t\treturn newFromDate;\n\t\t\t\t});\n\t\t\t\tif (newFromDate.getTime() > untilDate.getTime()) {\n\t\t\t\t\tconst newUntilDate = new Date(newFromDate);\n\t\t\t\t\tsetUntilDate(newUntilDate);\n\t\t\t\t\tupdatePref('zimbraPrefOutOfOfficeUntilDate', dateToGenTime(newUntilDate));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// force an update by cloning the date, so that the input is not left empty\n\t\t\t\tsetFromDate((prevState) => new Date(prevState));\n\t\t\t}\n\t\t},\n\t\t[untilDate, updatePref]\n\t);\n\n\tconst outOfOfficeUntilDateOnChange = useCallback<NonNullable<DateTimePickerProps['onChange']>>(\n\t\t(newUntilDate) => {\n\t\t\tif (newUntilDate) {\n\t\t\t\tsetUntilDate((prevState) => {\n\t\t\t\t\tif (newUntilDate.getTime() !== prevState.getTime()) {\n\t\t\t\t\t\tupdatePref('zimbraPrefOutOfOfficeUntilDate', dateToGenTime(newUntilDate));\n\t\t\t\t\t}\n\t\t\t\t\treturn newUntilDate;\n\t\t\t\t});\n\t\t\t\tif (newUntilDate.getTime() < fromDate.getTime()) {\n\t\t\t\t\tconst newFromDate = new Date(newUntilDate);\n\t\t\t\t\tsetFromDate(newFromDate);\n\t\t\t\t\tupdatePref('zimbraPrefOutOfOfficeFromDate', dateToGenTime(newFromDate));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// force an update by cloning the date, so that the input is not left empty\n\t\t\t\tsetUntilDate((prevState) => new Date(prevState));\n\t\t\t}\n\t\t},\n\t\t[fromDate, updatePref]\n\t);\n\n\tconst toggleAllDay = useCallback(() => {\n\t\tsetAllDayEnabled((prevWasEnabled) => {\n\t\t\tconst nowIsEnabled = !prevWasEnabled;\n\t\t\tif (nowIsEnabled) {\n\t\t\t\tsetFromDate((prevState) => {\n\t\t\t\t\tconst startOfFromDate = startOfDay(prevState);\n\t\t\t\t\tif (startOfFromDate.getTime() !== prevState.getTime()) {\n\t\t\t\t\t\tupdatePref('zimbraPrefOutOfOfficeFromDate', dateToGenTime(startOfFromDate));\n\t\t\t\t\t}\n\t\t\t\t\treturn startOfFromDate;\n\t\t\t\t});\n\t\t\t\tsetUntilDate((prevState) => {\n\t\t\t\t\tconst endOfUntilDate = endOfDay(prevState);\n\t\t\t\t\tif (endOfUntilDate.getTime() !== prevState.getTime()) {\n\t\t\t\t\t\tupdatePref('zimbraPrefOutOfOfficeUntilDate', dateToGenTime(endOfUntilDate));\n\t\t\t\t\t}\n\t\t\t\t\treturn endOfUntilDate;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn nowIsEnabled;\n\t\t});\n\t}, [updatePref]);\n\n\treturn (\n\t\t<Container padding={{ vertical: 'small' }} gap={'0.5rem'} crossAlignment={'flex-start'}>\n\t\t\t<Container orientation={'horizontal'} gap={'0.5rem'}>\n\t\t\t\t<DateTimePicker\n\t\t\t\t\tlabel={t('settings.out_of_office.labels.start_date', 'Start Date')}\n\t\t\t\t\tdateFormat={'P'}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tdefaultValue={fromDate}\n\t\t\t\t\tonChange={outOfOfficeFromDateOnChange}\n\t\t\t\t\tincludeTime={false}\n\t\t\t\t\twidth={'fill'}\n\t\t\t\t/>\n\t\t\t\t<DateTimePicker\n\t\t\t\t\tlabel={t('settings.out_of_office.labels.end_date', 'End Date')}\n\t\t\t\t\tdateFormat={'P'}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\ttimeLabel={''}\n\t\t\t\t\tdefaultValue={untilDate}\n\t\t\t\t\tonChange={outOfOfficeUntilDateOnChange}\n\t\t\t\t\tincludeTime={false}\n\t\t\t\t\twidth={'fill'}\n\t\t\t\t/>\n\t\t\t</Container>\n\t\t\t<Checkbox\n\t\t\t\tdisabled={disabled}\n\t\t\t\tlabel={t('settings.out_of_office.labels.all_day', 'All Day:')}\n\t\t\t\tvalue={allDayEnabled}\n\t\t\t\tonClick={toggleAllDay}\n\t\t\t/>\n\t\t\t<Container orientation={'horizontal'} gap={'0.5rem'}>\n\t\t\t\t<DateTimePicker\n\t\t\t\t\tlabel={t('settings.out_of_office.labels.start_time', 'Start Time')}\n\t\t\t\t\tshowTimeSelect\n\t\t\t\t\tshowTimeSelectOnly\n\t\t\t\t\ttimeLabel=\"\"\n\t\t\t\t\tdateFormat=\"p\"\n\t\t\t\t\tdefaultValue={fromDate}\n\t\t\t\t\tonChange={outOfOfficeFromDateOnChange}\n\t\t\t\t\tdisabled={editTimeIsDisabled}\n\t\t\t\t\twidth={'fill'}\n\t\t\t\t/>\n\t\t\t\t<DateTimePicker\n\t\t\t\t\tlabel={t('settings.out_of_office.labels.end_time', 'End Time')}\n\t\t\t\t\tshowTimeSelect\n\t\t\t\t\tshowTimeSelectOnly\n\t\t\t\t\ttimeLabel=\"\"\n\t\t\t\t\tdateFormat=\"p\"\n\t\t\t\t\tdefaultValue={untilDate}\n\t\t\t\t\tonChange={outOfOfficeUntilDateOnChange}\n\t\t\t\t\tdisabled={editTimeIsDisabled}\n\t\t\t\t\twidth={'fill'}\n\t\t\t\t/>\n\t\t\t</Container>\n\t\t</Container>\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, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport {\n\tButton,\n\tCheckbox,\n\tContainer,\n\tSlider,\n\tSliderProps,\n\tText,\n\tTooltip\n} from '@zextras/carbonio-design-system';\nimport { useTranslation } from 'react-i18next';\nimport styled, { SimpleInterpolation } from 'styled-components';\n\nimport { ScalingSettings } from '../../../../types/settings';\nimport { BASE_FONT_SIZE, SCALING_OPTIONS } from '../../../constants';\nimport { useReset } from '../../hooks/use-reset';\nimport { getAutoScalingFontSize, ResetComponentImperativeHandler } from '../utils';\n\nconst ScalingSliderContainer = styled(Container)`\n\tbox-shadow: 0px 0px 4px rgba(166, 166, 166, 0.5);\n\tborder-radius: 0.5rem;\n`;\n\nconst ExampleContainer = styled(Container)<{ $fontSize: number | undefined }>`\n\tfont-size: ${({ $fontSize }): SimpleInterpolation => $fontSize && `${$fontSize}%`};\n`;\n\nconst ExampleText = styled(Text)`\n\tfont-size: 1em; /* font-size needs to be relative to ExampleContainer */\n`;\n\ninterface ScalingSettingSectionProps {\n\tscalingSettings: ScalingSettings;\n\taddLocalStoreChange: (\n\t\tkey: keyof ScalingSettings,\n\t\tvalue: ScalingSettings[keyof ScalingSettings]\n\t) => void;\n\tcleanLocalStoreChange: (key: keyof ScalingSettings) => void;\n\tresetRef: React.RefObject<ResetComponentImperativeHandler>;\n}\n\nconst BASE_FONT_OPTION_INDEX = SCALING_OPTIONS.findIndex(\n\t(option) => option.value === BASE_FONT_SIZE\n);\n\nconst AUTOSCALING_FONT_SIZE = getAutoScalingFontSize();\nconst AUTOSCALING_FONT_OPTION_INDEX = SCALING_OPTIONS.findIndex(\n\t(option) => option.value === AUTOSCALING_FONT_SIZE\n);\n\nexport const ScalingSettingSection = ({\n\tscalingSettings,\n\taddLocalStoreChange,\n\tcleanLocalStoreChange,\n\tresetRef\n}: ScalingSettingSectionProps): React.JSX.Element => {\n\tconst [t] = useTranslation();\n\n\tconst [scalingOptionValues, scalingOptionLabels] = useMemo<[number[], string[]]>(\n\t\t() =>\n\t\t\tSCALING_OPTIONS.reduce<[number[], string[]]>(\n\t\t\t\t([values, labels], option) => {\n\t\t\t\t\tvalues.push(option.value);\n\t\t\t\t\tlabels.push(t('settings.appearance.option', { context: option.label }));\n\t\t\t\t\treturn [values, labels];\n\t\t\t\t},\n\t\t\t\t[[], []]\n\t\t\t),\n\t\t[t]\n\t);\n\n\tconst savedOptionIndex = useMemo<number>(() => {\n\t\tconst savedScalingValueSetting = scalingSettings['settings.appearance_setting.scaling'];\n\t\tif (savedScalingValueSetting !== undefined) {\n\t\t\tconst optionIndex = scalingOptionValues.findIndex(\n\t\t\t\t(option) => option === savedScalingValueSetting\n\t\t\t);\n\t\t\tif (optionIndex >= 0) {\n\t\t\t\treturn optionIndex;\n\t\t\t}\n\t\t}\n\t\treturn AUTOSCALING_FONT_OPTION_INDEX;\n\t}, [scalingOptionValues, scalingSettings]);\n\n\tconst [autoScaling, setAutoScaling] = useState(\n\t\tscalingSettings['settings.appearance_setting.auto'] ?? true\n\t);\n\tconst [scalingValue, setScalingValue] = useState<number>(savedOptionIndex);\n\n\tuseEffect(() => {\n\t\t// update input value when setting is updated\n\t\tsetScalingValue(savedOptionIndex);\n\t}, [savedOptionIndex]);\n\n\tuseEffect(() => {\n\t\tif (scalingOptionValues[scalingValue]) {\n\t\t\tif (scalingValue !== savedOptionIndex) {\n\t\t\t\taddLocalStoreChange(\n\t\t\t\t\t'settings.appearance_setting.scaling',\n\t\t\t\t\tscalingOptionValues[scalingValue]\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcleanLocalStoreChange('settings.appearance_setting.scaling');\n\t\t\t}\n\t\t}\n\t}, [\n\t\taddLocalStoreChange,\n\t\tcleanLocalStoreChange,\n\t\tsavedOptionIndex,\n\t\tscalingOptionValues,\n\t\tscalingSettings,\n\t\tscalingValue\n\t]);\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\t(scalingSettings['settings.appearance_setting.auto'] !== undefined &&\n\t\t\t\tautoScaling !== scalingSettings['settings.appearance_setting.auto']) ||\n\t\t\t(scalingSettings['settings.appearance_setting.auto'] === undefined && !autoScaling)\n\t\t) {\n\t\t\taddLocalStoreChange('settings.appearance_setting.auto', autoScaling);\n\t\t\tif (autoScaling) {\n\t\t\t\taddLocalStoreChange('settings.appearance_setting.scaling', undefined);\n\t\t\t}\n\t\t} else {\n\t\t\tcleanLocalStoreChange('settings.appearance_setting.auto');\n\t\t}\n\t}, [addLocalStoreChange, autoScaling, cleanLocalStoreChange, scalingSettings]);\n\n\tconst increaseScalingByStep = useCallback(() => {\n\t\tsetScalingValue((prevState) =>\n\t\t\tprevState < SCALING_OPTIONS.length - 1 ? prevState + 1 : prevState\n\t\t);\n\t}, []);\n\n\tconst decreaseScalingByStep = useCallback(() => {\n\t\tsetScalingValue((prevState) => (prevState > 0 ? prevState - 1 : prevState));\n\t}, []);\n\n\tconst toggleAutoScaling = useCallback(() => {\n\t\tsetAutoScaling((prevState) => !prevState);\n\t\tsetScalingValue(savedOptionIndex);\n\t}, [savedOptionIndex]);\n\n\tconst onChangeScalingValue = useCallback<NonNullable<SliderProps['onChange']>>(\n\t\t(ev, newValueIndex) => {\n\t\t\tsetScalingValue(newValueIndex);\n\t\t},\n\t\t[]\n\t);\n\n\tconst resetHandler = useCallback((): void => {\n\t\tsetScalingValue(savedOptionIndex);\n\t\tsetAutoScaling(scalingSettings['settings.appearance_setting.auto'] ?? true);\n\t}, [savedOptionIndex, scalingSettings]);\n\n\tuseReset(resetRef, resetHandler);\n\n\tconst exampleText = useMemo(\n\t\t() =>\n\t\t\tt(\n\t\t\t\t'settings.appearance.labels.choose_size_pangram',\n\t\t\t\t'The quick brown fox jumps over the lazy dog.'\n\t\t\t),\n\t\t[t]\n\t);\n\n\tconst exampleFontSize = useMemo<number>(\n\t\t() =>\n\t\t\t// Revert the percentage and then apply the new value to use the browser base font-size and not the html font-size rule\n\t\t\t// Explanation:\n\t\t\t// - reverting factor (factor to apply to current font to obtain the browser font size) = unsaved input value / local storage value\n\t\t\t// - new font size percentage = reverting factor * 100\n\t\t\t// The resulting value is the percentage to apply to current html font-size to obtain the same calculated value\n\t\t\t// as if the scalingValue was set in the html.\n\t\t\t// E.g.: html: 75%, scalingValue: 100 -> 1 rem is 12px (because of the 75%). In the browser the base font is set to 16px.\n\t\t\t// To make scalingValue 100 equals to 16px, we need to get the reverting factor (100 / 75 = 1.3333).\n\t\t\t// This is the factor required to have 16 starting from 12 (12*1.3333 ~= 16)\n\t\t\t// The percentage to apply to the example container is then 1.3333 * 100 = 133.33 (133.33%(75) ~= 100 ~= 16px)\n\t\t\t((scalingOptionValues[Math.round(scalingValue)] || 100) /\n\t\t\t\tscalingOptionValues[savedOptionIndex]) *\n\t\t\t100,\n\t\t[savedOptionIndex, scalingOptionValues, scalingValue]\n\t);\n\n\treturn (\n\t\t<Container\n\t\t\torientation={'vertical'}\n\t\t\tmainAlignment={'flex-start'}\n\t\t\tcrossAlignment={'flex-start'}\n\t\t\tgap={'1rem'}\n\t\t\theight={'fit'}\n\t\t\twidth={'fill'}\n\t\t>\n\t\t\t<Container\n\t\t\t\torientation={'vertical'}\n\t\t\t\tgap={'1rem'}\n\t\t\t\theight={'fit'}\n\t\t\t\twidth={'fit'}\n\t\t\t\tmainAlignment={'flex-start'}\n\t\t\t\tcrossAlignment={'flex-start'}\n\t\t\t\tmaxWidth={'100%'}\n\t\t\t>\n\t\t\t\t<Text size=\"small\" overflow={'break-word'}>\n\t\t\t\t\t{t(\n\t\t\t\t\t\t'settings.appearance.labels.choose_size_description',\n\t\t\t\t\t\t'Choose Type Size and Styles for Carbonio Environment'\n\t\t\t\t\t)}\n\t\t\t\t</Text>\n\t\t\t\t<ScalingSliderContainer\n\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\twidth=\"fill\"\n\t\t\t\t\theight=\"auto\"\n\t\t\t\t\tpadding={{ vertical: 'small', horizontal: 'large' }}\n\t\t\t\t\tgap={'0.5rem'}\n\t\t\t\t\tflexGrow={1}\n\t\t\t\t>\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\tlabel={t('settings.appearance.labels.decrease', 'Decrease', {\n\t\t\t\t\t\t\tcontext: scalingValue === 0 ? 'disabled' : ''\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Container width=\"fit\" height=\"fit\" minWidth={'fit-content'}>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={autoScaling || scalingValue === 0}\n\t\t\t\t\t\t\t\tlabel={t('settings.appearance.labels.a', 'A')}\n\t\t\t\t\t\t\t\ttype={'ghost'}\n\t\t\t\t\t\t\t\tsize={'extrasmall'}\n\t\t\t\t\t\t\t\tcolor={'text'}\n\t\t\t\t\t\t\t\tonClick={decreaseScalingByStep}\n\t\t\t\t\t\t\t\tminWidth={'fit-content'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Container>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t\t<Slider\n\t\t\t\t\t\tdisabled={autoScaling}\n\t\t\t\t\t\toptions={scalingOptionLabels}\n\t\t\t\t\t\tonChange={onChangeScalingValue}\n\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\tautoScaling && BASE_FONT_OPTION_INDEX >= 0 ? BASE_FONT_OPTION_INDEX : scalingValue\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\tlabel={t('settings.appearance.labels.increase', 'Increase', {\n\t\t\t\t\t\t\tcontext: scalingValue === SCALING_OPTIONS.length - 1 ? 'disabled' : ''\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Container width=\"fit\" height=\"fit\" minWidth={'fit-content'}>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={autoScaling || scalingValue === SCALING_OPTIONS.length - 1}\n\t\t\t\t\t\t\t\tlabel={t('settings.appearance.labels.a', 'A')}\n\t\t\t\t\t\t\t\ttype={'ghost'}\n\t\t\t\t\t\t\t\tsize={'extralarge'}\n\t\t\t\t\t\t\t\tonClick={increaseScalingByStep}\n\t\t\t\t\t\t\t\tcolor={'text'}\n\t\t\t\t\t\t\t\tminWidth={'fit-content'}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Container>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t</ScalingSliderContainer>\n\t\t\t\t<Checkbox\n\t\t\t\t\tvalue={autoScaling}\n\t\t\t\t\tonClick={toggleAutoScaling}\n\t\t\t\t\tlabel={t(\n\t\t\t\t\t\t'settings.appearance.labels.choose_size_auto',\n\t\t\t\t\t\t'Automatically resize the text size depending on the device'\n\t\t\t\t\t)}\n\t\t\t\t\tsize={'small'}\n\t\t\t\t/>\n\t\t\t</Container>\n\t\t\t<ExampleContainer\n\t\t\t\tbackground={'gray5'}\n\t\t\t\tpadding={'large'}\n\t\t\t\tgap={'0.5rem'}\n\t\t\t\torientation={'vertical'}\n\t\t\t\tmainAlignment={'flex-start'}\n\t\t\t\tcrossAlignment={'flex-start'}\n\t\t\t\twidth={'fill'}\n\t\t\t\t$fontSize={exampleFontSize}\n\t\t\t>\n\t\t\t\t<ExampleText weight={'light'} overflow={'break-word'}>\n\t\t\t\t\t{exampleText}\n\t\t\t\t</ExampleText>\n\t\t\t\t<ExampleText weight={'regular'} overflow={'break-word'}>\n\t\t\t\t\t{exampleText}\n\t\t\t\t</ExampleText>\n\t\t\t\t<ExampleText weight={'bold'} overflow={'break-word'}>\n\t\t\t\t\t{exampleText}\n\t\t\t\t</ExampleText>\n\t\t\t</ExampleContainer>\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 */\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { Checkbox, Container, FormSubSection } from '@zextras/carbonio-design-system';\n\nimport { AccountSettings, AddMod } from '../../../../types';\nimport { getT } from '../../../store/i18n';\nimport { searchPrefsSubSection } from '../../general-settings-sub-sections';\nimport { useReset } from '../../hooks/use-reset';\nimport { SettingsSectionProps, upsertPrefOnUnsavedChanges } from '../utils';\n\ntype SearchSettingsViewProps = SettingsSectionProps & {\n\tsettings: AccountSettings;\n\taddMod: AddMod;\n};\n\nexport const SearchSettings = ({\n\tsettings,\n\taddMod,\n\tresetRef\n}: SearchSettingsViewProps): React.JSX.Element => {\n\tconst t = getT();\n\tconst [searchInSpamFolder, setSearchInSpamFolder] = useState<boolean>(\n\t\tsettings.prefs.zimbraPrefIncludeSpamInSearch === 'TRUE'\n\t);\n\tconst [searchInTrashFolder, setSearchInTrashFolder] = useState<boolean>(\n\t\tsettings.prefs.zimbraPrefIncludeTrashInSearch === 'TRUE'\n\t);\n\tconst [searchInSharedFolder, setSearchInSharedFolder] = useState<boolean>(\n\t\tsettings.prefs.zimbraPrefIncludeSharedItemsInSearch === 'TRUE'\n\t);\n\tconst setMode = useMemo(() => upsertPrefOnUnsavedChanges(addMod), [addMod]);\n\n\tconst init = useCallback(() => {\n\t\tsetSearchInSpamFolder(settings.prefs.zimbraPrefIncludeSpamInSearch === 'TRUE');\n\t\tsetSearchInTrashFolder(settings.prefs.zimbraPrefIncludeTrashInSearch === 'TRUE');\n\t\tsetSearchInSharedFolder(settings.prefs.zimbraPrefIncludeSharedItemsInSearch === 'TRUE');\n\t}, [\n\t\tsettings.prefs.zimbraPrefIncludeSharedItemsInSearch,\n\t\tsettings.prefs.zimbraPrefIncludeSpamInSearch,\n\t\tsettings.prefs.zimbraPrefIncludeTrashInSearch\n\t]);\n\n\tuseReset(resetRef, init);\n\n\tuseEffect(() => {\n\t\tinit();\n\t}, [init]);\n\n\tconst onClickSpam = useCallback(() => {\n\t\tsetSearchInSpamFolder((prevState) => {\n\t\t\tconst newValue = !prevState;\n\t\t\tsetMode('zimbraPrefIncludeSpamInSearch', newValue);\n\t\t\treturn newValue;\n\t\t});\n\t}, [setMode]);\n\n\tconst onClickTrash = useCallback(() => {\n\t\tsetSearchInTrashFolder((prevState) => {\n\t\t\tconst newValue = !prevState;\n\t\t\tsetMode('zimbraPrefIncludeTrashInSearch', newValue);\n\t\t\treturn newValue;\n\t\t});\n\t}, [setMode]);\n\n\tconst onClickShared = useCallback(() => {\n\t\tsetSearchInSharedFolder((prevState) => {\n\t\t\tconst newValue = !prevState;\n\t\t\tsetMode('zimbraPrefIncludeSharedItemsInSearch', newValue);\n\t\t\treturn newValue;\n\t\t});\n\t}, [setMode]);\n\n\tconst sectionTitle = useMemo(() => searchPrefsSubSection(t), [t]);\n\n\treturn (\n\t\t<FormSubSection\n\t\t\tlabel={sectionTitle.label}\n\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\twidth=\"50%\"\n\t\t\tid={sectionTitle.id}\n\t\t>\n\t\t\t<Container crossAlignment=\"baseline\" padding={{ all: 'small' }}>\n\t\t\t\t<Checkbox\n\t\t\t\t\tlabel={t(\n\t\t\t\t\t\t'settings.search_settings.labels.include_search_in_spam_folder',\n\t\t\t\t\t\t'Include Spam Folder in Searches'\n\t\t\t\t\t)}\n\t\t\t\t\tvalue={searchInSpamFolder}\n\t\t\t\t\tonClick={onClickSpam}\n\t\t\t\t/>\n\t\t\t\t<Checkbox\n\t\t\t\t\tlabel={t(\n\t\t\t\t\t\t'settings.search_settings.labels.include_search_in_trash_folder',\n\t\t\t\t\t\t'Include Trash Folder in Searches'\n\t\t\t\t\t)}\n\t\t\t\t\tvalue={searchInTrashFolder}\n\t\t\t\t\tonClick={onClickTrash}\n\t\t\t\t/>\n\t\t\t\t<Checkbox\n\t\t\t\t\tlabel={t(\n\t\t\t\t\t\t'settings.search_settings.labels.include_search_in_shared_folder',\n\t\t\t\t\t\t'Include Shared Folder in Searches'\n\t\t\t\t\t)}\n\t\t\t\t\tvalue={searchInSharedFolder}\n\t\t\t\t\tonClick={onClickShared}\n\t\t\t\t/>\n\t\t\t</Container>\n\t\t</FormSubSection>\n\t);\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, useMemo } from 'react';\n\nimport { Container, FormSubSection, Quota, Text, Tooltip } from '@zextras/carbonio-design-system';\n\nimport { useUserSettings } from '../../../store/account/hooks';\nimport { useAccountStore } from '../../../store/account/store';\nimport { getT } from '../../../store/i18n';\nimport { quotaSubSection } from '../../general-settings-sub-sections';\n\ninterface UserQuotaProps {\n\tmobileView: boolean;\n}\n\nconst UserQuota: FC<UserQuotaProps> = ({ mobileView }) => {\n\tconst t = getT();\n\n\tconst settings = useUserSettings();\n\tconst used = useAccountStore((s) => s.usedQuota);\n\tconst quota = useMemo(() => {\n\t\tconst userQuota = Number(settings?.attrs?.zimbraMailQuota);\n\t\tif (used && userQuota && userQuota > 0) {\n\t\t\treturn Math.round((used / userQuota) * 100);\n\t\t}\n\t\treturn -1;\n\t}, [settings?.attrs?.zimbraMailQuota, used]);\n\n\tconst filledQuota = useMemo(() => {\n\t\tif (quota === -1 || quota >= 100) {\n\t\t\treturn 100;\n\t\t}\n\t\treturn quota;\n\t}, [quota]);\n\n\tconst description = useMemo(() => {\n\t\tswitch (true) {\n\t\t\tcase !quota || quota < 0:\n\t\t\t\treturn t('user_quota.unlimited', 'You have unlimited space available');\n\t\t\tcase quota === 100:\n\t\t\t\treturn t('user_quota.space_full', 'It seems that all available space is full');\n\t\t\tdefault:\n\t\t\t\treturn t('user_quota.limited', {\n\t\t\t\t\tdefaultValue: 'You have filled {{quota}}% of the available space',\n\t\t\t\t\tquota\n\t\t\t\t});\n\t\t}\n\t}, [quota, t]);\n\n\tconst fillBackground = useMemo(() => {\n\t\tswitch (true) {\n\t\t\tcase quota >= 95:\n\t\t\t\treturn 'error';\n\t\t\tcase quota >= 90:\n\t\t\t\treturn 'warning';\n\t\t\tcase quota === -1:\n\t\t\t\treturn 'gray4';\n\t\t\tdefault:\n\t\t\t\treturn 'primary';\n\t\t}\n\t}, [quota]);\n\tconst sectionTitle = useMemo(() => quotaSubSection(t), [t]);\n\treturn mobileView ? (\n\t\t<Container width=\"fit\" padding={{ right: 'medium' }}>\n\t\t\t<Tooltip label={description} placement=\"bottom\">\n\t\t\t\t<Quota fill={filledQuota} fillBackground={fillBackground} />\n\t\t\t</Tooltip>\n\t\t</Container>\n\t) : (\n\t\t<FormSubSection\n\t\t\tlabel={sectionTitle.label}\n\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\twidth=\"50%\"\n\t\t\tid={sectionTitle.id}\n\t\t>\n\t\t\t<Container width=\"fill\" padding={{ vertical: 'medium' }}>\n\t\t\t\t<Container\n\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\t\tpadding={{ bottom: 'medium' }}\n\t\t\t\t>\n\t\t\t\t\t<Text>{description}</Text>\n\t\t\t\t</Container>\n\t\t\t\t<Quota fill={filledQuota} fillBackground={fillBackground} />\n\t\t\t</Container>\n\t\t</FormSubSection>\n\t);\n};\n\nexport default UserQuota;\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useEffect, useMemo } from 'react';\n\nimport {\n\tBreadcrumbs,\n\tButton,\n\tContainer,\n\ttype Crumb,\n\tDivider,\n\tPadding,\n\tRow,\n\tText\n} from '@zextras/carbonio-design-system';\nimport { useHistory, useParams } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { getT } from '../../store/i18n';\nimport { RouteLeavingGuard, RouteLeavingGuardProps } from '../../ui-extras/nav-guard';\n\nconst CustomBreadcrumbs = styled(Breadcrumbs)`\n\t.breadcrumbCrumb {\n\t\tcursor: default;\n\t}\n`;\n\nexport type SettingsHeaderProps = {\n\ttitle: string;\n\tonSave: RouteLeavingGuardProps['onSave'];\n\tonCancel: () => void;\n\tisDirty: boolean;\n};\n\nconst SettingsHeader = ({\n\tonSave,\n\tonCancel,\n\tisDirty,\n\ttitle\n}: SettingsHeaderProps): React.JSX.Element => {\n\tconst t = getT();\n\tconst history = useHistory();\n\tconst params = useParams();\n\tconst crumbs = useMemo(\n\t\t(): Crumb[] => [\n\t\t\t{\n\t\t\t\tid: 'settings',\n\t\t\t\tlabel: t('settings.app', 'Settings'),\n\t\t\t\tclassName: 'breadcrumbCrumb'\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'general',\n\t\t\t\tlabel: title,\n\t\t\t\tclassName: 'breadcrumbCrumb'\n\t\t\t}\n\t\t],\n\t\t[t, title]\n\t);\n\n\tconst search: string | undefined = history.location?.search;\n\n\tuseEffect(() => {\n\t\tif (search) {\n\t\t\t// TODO: why not using anchor links instead of js?\n\t\t\tsetTimeout(\n\t\t\t\t() =>\n\t\t\t\t\tdocument\n\t\t\t\t\t\t.querySelector(`#${history.location.search}`.replace('?section=', ''))\n\t\t\t\t\t\t?.scrollIntoView(),\n\t\t\t\t1\n\t\t\t);\n\t\t}\n\t}, [history, history.location, history.location.search, search, params]);\n\treturn (\n\t\t<>\n\t\t\t<RouteLeavingGuard when={isDirty} onSave={onSave}>\n\t\t\t\t<Text>\n\t\t\t\t\t{t(\n\t\t\t\t\t\t'label.unsaved_changes_line1',\n\t\t\t\t\t\t'Are you sure you want to leave this page without saving?'\n\t\t\t\t\t)}\n\t\t\t\t</Text>\n\t\t\t\t<Text>{t('label.unsaved_changes_line2', 'All your unsaved changes will be lost')}</Text>\n\t\t\t</RouteLeavingGuard>\n\t\t\t<Container\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tmainAlignment=\"space-around\"\n\t\t\t\tbackground={'gray5'}\n\t\t\t\theight=\"fit\"\n\t\t\t>\n\t\t\t\t<Row orientation=\"horizontal\" width=\"100%\">\n\t\t\t\t\t<Row\n\t\t\t\t\t\tpadding={{ all: 'small' }}\n\t\t\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\t\t\twidth=\"50%\"\n\t\t\t\t\t\tcrossAlignment=\"flex-start\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<CustomBreadcrumbs crumbs={crumbs} />\n\t\t\t\t\t</Row>\n\t\t\t\t\t<Row\n\t\t\t\t\t\tpadding={{ all: 'small' }}\n\t\t\t\t\t\twidth=\"50%\"\n\t\t\t\t\t\tmainAlignment=\"flex-end\"\n\t\t\t\t\t\tcrossAlignment=\"flex-end\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Padding right=\"small\">\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={t('label.discard_changes', 'DISCARD CHANGES')}\n\t\t\t\t\t\t\t\tonClick={onCancel}\n\t\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\t\t\tdisabled={!isDirty}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Padding>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tlabel={t('label.save', 'Save')}\n\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t\tonClick={onSave}\n\t\t\t\t\t\t\tdisabled={!isDirty}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Row>\n\t\t\t\t</Row>\n\t\t\t</Container>\n\t\t\t<Divider />\n\t\t</>\n\t);\n};\n\nexport default SettingsHeader;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React from 'react';\n\nimport type { TFunction } from 'i18next';\nimport { cloneDeep, filter, findIndex, isArray, isBoolean, reduce, uniq } from 'lodash';\nimport moment, { Moment } from 'moment';\n\nimport {\n\tAccount,\n\tAccountSettings,\n\tAddMod,\n\tBooleanString,\n\tGeneralizedTime,\n\tIdentity,\n\tIdentityAttrs,\n\tPrefsMods\n} from '../../../types';\nimport { BASE_FONT_SIZE, SCALING_LIMIT, SCALING_OPTIONS } from '../../constants';\nimport { LocaleDescriptor, SUPPORTED_LOCALES } from '../../constants/locales';\n\nexport const GEN_TIME_FORMAT = 'YYYYMMDDHHmmss[Z]';\n\nfunction getGenTimeMoment(date: Date | string | Moment): Moment {\n\treturn moment.utc(date, GEN_TIME_FORMAT);\n}\n\nexport function dateToGenTime(date: Date | Moment): GeneralizedTime {\n\treturn getGenTimeMoment(date).format(GEN_TIME_FORMAT) as GeneralizedTime;\n}\n\nexport function genTimeToDate(genTime: string): Date {\n\treturn getGenTimeMoment(genTime).local().toDate();\n}\n\nexport const startOfDay = (date: Date): Date => new Date(new Date(date).setHours(0, 0, 0, 0));\n\nexport const endOfDay = (date: Date): Date => new Date(new Date(date).setHours(23, 59, 59, 0));\n\nexport type LocaleDescriptorWithLabels = LocaleDescriptor & {\n\tid: string;\n\tlabel: string;\n\tlocalName: string;\n};\n\nexport const localeList = (t: TFunction): Array<LocaleDescriptorWithLabels> => [\n\t{\n\t\tid: 'zh_CN',\n\t\t...SUPPORTED_LOCALES.zh_CN,\n\t\tlocalName: t('locale.chinese_china', 'Chinese (China)'),\n\t\tlabel: t('locale.label_chinese', {\n\t\t\tvalue: SUPPORTED_LOCALES.zh_CN.name,\n\t\t\tdefaultValue: 'Chinese (China) - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'nl',\n\t\t...SUPPORTED_LOCALES.nl,\n\t\tlocalName: t('locale.dutch', 'Dutch'),\n\t\tlabel: t('locale.label_dutch', {\n\t\t\tvalue: SUPPORTED_LOCALES.nl.name,\n\t\t\tdefaultValue: 'Dutch - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'en',\n\t\t...SUPPORTED_LOCALES.en,\n\t\tlocalName: t('locale.English', 'English'),\n\t\tlabel: t('locale.label_english', {\n\t\t\tvalue: SUPPORTED_LOCALES.en.name,\n\t\t\tdefaultValue: 'English - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'de',\n\t\t...SUPPORTED_LOCALES.de,\n\t\tlocalName: t('locale.german', 'German'),\n\t\tlabel: t('locale.label_german', {\n\t\t\tvalue: SUPPORTED_LOCALES.de.name,\n\t\t\tdefaultValue: 'German - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'hi',\n\t\t...SUPPORTED_LOCALES.hi,\n\t\tlocalName: t('locale.hindi', 'Hindi'),\n\t\tlabel: t('locale.label_hindi', {\n\t\t\tvalue: SUPPORTED_LOCALES.hi.name,\n\t\t\tdefaultValue: 'Hindi - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'it',\n\t\t...SUPPORTED_LOCALES.it,\n\t\tlocalName: t('locale.italian', 'Italian'),\n\t\tlabel: t('locale.label_italian', {\n\t\t\tvalue: SUPPORTED_LOCALES.it.name,\n\t\t\tdefaultValue: 'Italian - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'ja',\n\t\t...SUPPORTED_LOCALES.ja,\n\t\tlocalName: t('locale.japanese', 'Japanese'),\n\t\tlabel: t('locale.label_japanese', {\n\t\t\tvalue: SUPPORTED_LOCALES.ja.name,\n\t\t\tdefaultValue: 'Japanese - {{value}}'\n\t\t})\n\t},\n\n\t{\n\t\tid: 'pt',\n\t\t...SUPPORTED_LOCALES.pt,\n\t\tlocalName: t('locale.portuguese', 'Portuguese'),\n\t\tlabel: t('locale.label_portuguese', {\n\t\t\tvalue: SUPPORTED_LOCALES.pt.name,\n\t\t\tdefaultValue: 'Portuguese - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'pl',\n\t\t...SUPPORTED_LOCALES.pl,\n\t\tlocalName: t('locale.polish', 'Polish'),\n\t\tlabel: t('locale.label_polish', {\n\t\t\tvalue: SUPPORTED_LOCALES.pl.name,\n\t\t\tdefaultValue: 'Polish - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'pt_BR',\n\t\t...SUPPORTED_LOCALES.pt_BR,\n\t\tlocalName: t('locale.portuguese_brazil', 'Portuguese (Brazil)'),\n\t\tlabel: t('locale.label_portuguese_brazil', {\n\t\t\tvalue: SUPPORTED_LOCALES.pt_BR.name,\n\t\t\tdefaultValue: 'Portuguese - {{value}}'\n\t\t})\n\t},\n\n\t{\n\t\tid: 'ro',\n\t\t...SUPPORTED_LOCALES.ro,\n\t\tlocalName: t('locale.romanian', 'Romanian'),\n\t\tlabel: t('locale.label_romanian', {\n\t\t\tvalue: SUPPORTED_LOCALES.ro.name,\n\t\t\tdefaultValue: 'Romanian - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'ru',\n\t\t...SUPPORTED_LOCALES.ru,\n\t\tlocalName: t('locale.russian', 'Russian'),\n\t\tlabel: t('locale.label_russian', {\n\t\t\tvalue: SUPPORTED_LOCALES.ru.name,\n\t\t\tdefaultValue: 'Russian - {{value}}'\n\t\t})\n\t},\n\n\t{\n\t\tid: 'es',\n\t\t...SUPPORTED_LOCALES.es,\n\t\tlocalName: t('locale.spanish', 'Spanish'),\n\t\tlabel: t('locale.label_spanish', {\n\t\t\tvalue: SUPPORTED_LOCALES.es.name,\n\t\t\tdefaultValue: 'Spanish - {{value}}'\n\t\t})\n\t},\n\n\t{\n\t\tid: 'th',\n\t\t...SUPPORTED_LOCALES.th,\n\t\tlocalName: t('locale.thai', 'Thai'),\n\t\tlabel: t('locale.label_thai', {\n\t\t\tvalue: SUPPORTED_LOCALES.th.name,\n\t\t\tdefaultValue: 'Thai - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'tr',\n\t\t...SUPPORTED_LOCALES.tr,\n\t\tlocalName: t('locale.turkish', 'Turkish'),\n\t\tlabel: t('locale.label_turkish', {\n\t\t\tvalue: SUPPORTED_LOCALES.tr.name,\n\t\t\tdefaultValue: 'Turkish - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'fr',\n\t\t...SUPPORTED_LOCALES.fr,\n\t\tlocalName: t('locale.french', 'French'),\n\t\tlabel: t('locale.label_french', {\n\t\t\tvalue: SUPPORTED_LOCALES.fr.name,\n\t\t\tdefaultValue: 'French - {{value}}'\n\t\t})\n\t},\n\t{\n\t\tid: 'vi',\n\t\t...SUPPORTED_LOCALES.vi,\n\t\tlocalName: t('locale.vietnamese', 'Vietnamese'),\n\t\tlabel: t('locale.label_vietnamese', {\n\t\t\tvalue: SUPPORTED_LOCALES.vi.name,\n\t\t\tdefaultValue: 'Vietnamese - {{value}}'\n\t\t})\n\t}\n];\n// TODO: For future languages\n// export const localeList = (t: TFunction): any => [\n// \t{\n// \t\tid: 'ar',\n// \t\tname: 'العربية',\n// \t\tlocalName: t('locale.arabic', 'Arabic'),\n// \t\tlabel: t('locale.label_arabic', { value: 'لعربية', defaultValue: 'Arabic - {{value}}' }),\n// \t\tvalue: 'ar'\n// \t},\n// \t{\n// \t\tid: 'eu',\n// \t\tname: 'Euskara',\n// \t\tlocalName: t('locale.basque', 'Basque'),\n// \t\tlabel: t('locale.label_basque', { value: 'Euskara', defaultValue: 'Basque - {{value}}' }),\n// \t\tvalue: 'eu'\n// \t},\n// \t{\n// \t\tid: 'bg',\n// \t\tname: 'български',\n// \t\tlocalName: t('locale.bulgarian', 'Bulgarian'),\n// \t\tlabel: t('locale.label_bulgarian', {\n// \t\t\tvalue: 'български',\n// \t\t\tdefaultValue: 'Bulgarian - {{value}}'\n// \t\t}),\n// \t\tvalue: 'bg'\n// \t},\n// \t{\n// \t\tid: 'ca',\n// \t\tname: 'català',\n// \t\tlocalName: t('locale.catalan', 'Catalan'),\n// \t\tlabel: 'Catalan - català',\n// \t\tvalue: 'ca'\n// \t},\n// \t{\n// \t\tid: 'zh',\n// \t\tname: '中文',\n// \t\tlocalName: t('locale.chinese', 'Chinese'),\n// \t\tlabel: 'Chinese - 中文',\n// \t\tvalue: 'zh'\n// \t},\n// \t{\n// \t\tid: 'zh_CN',\n// \t\tname: '中文 (中国)',\n// \t\tlocalName: t('locale.chinese_china', 'Chinese (China)'),\n// \t\tlabel: 'Chinese (China) - 中文 (中国)',\n// \t\tvalue: 'zh_CN'\n// \t},\n// \t{\n// \t\tid: 'zh_HK',\n// \t\tname: '中文 (香港)',\n// \t\tlocalName: t('locale.chinese_hong_kong', 'Chinese (Hong Kong SAR China)'),\n// \t\tlabel: 'Chinese (Hong Kong SAR China) - 中文 (香港)',\n// \t\tvalue: 'zh_HK'\n// \t},\n// \t{\n// \t\tid: 'zh_TW',\n// \t\tname: '中文 (台灣)',\n// \t\tlocalName: t('locale.chinese_taiwan', 'Chinese (Taiwan)'),\n// \t\tlabel: 'Chinese (Taiwan) - 中文 (台灣)',\n// \t\tvalue: 'zh_TW'\n// \t},\n// \t{\n// \t\tid: 'hr',\n// \t\tname: 'hrvatski',\n// \t\tlocalName: t('locale.croatian', 'Croatian'),\n// \t\tlabel: 'Croatian - hrvatski',\n// \t\tvalue: 'hr'\n// \t},\n// \t{\n// \t\tid: 'da',\n// \t\tname: 'Dansk',\n// \t\tlocalName: t('locale.danish', 'Danish'),\n// \t\tlabel: 'Danish - Dansk',\n// \t\tvalue: 'da'\n// \t},\n\n// \t{\n// \t\tid: 'en_AU',\n// \t\tname: 'English (Australia)',\n// \t\tlocalName: t('locale.english_australia', 'English (Australia)'),\n// \t\tlabel: 'English (Australia) - English (Australia)',\n// \t\tvalue: 'en_AU'\n// \t},\n// \t{\n// \t\tid: 'en_GB',\n// \t\tname: 'English (United Kingdom)',\n// \t\tlocalName: t('locale.english_united_kingdom', 'English (United Kingdom)'),\n// \t\tlabel: 'English (United Kingdom) - English (United Kingdom)',\n// \t\tvalue: 'en_GB'\n// \t},\n// \t{\n// \t\tid: 'en_US',\n// \t\tname: 'English (United States)',\n// \t\tlocalName: t('locale.english_united_states', 'English (United States)'),\n// \t\tlabel: 'English (United States) - English (United States)',\n// \t\tvalue: 'en_US'\n// \t},\n// \t{\n// \t\tid: 'fr',\n// \t\tname: 'français',\n// \t\tlocalName: t('locale.french', 'French'),\n// \t\tlabel: 'French - français',\n// \t\tvalue: 'fr'\n// \t},\n// \t{\n// \t\tid: 'fr_CA',\n// \t\tname: 'français (Canada)',\n// \t\tlocalName: t('locale.french_canada', 'French (Canada)'),\n// \t\tlabel: 'French (Canada) - français (Canada)',\n// \t\tvalue: 'fr_CA'\n// \t},\n// \t{\n// \t\tid: 'fr_FR',\n// \t\tname: 'français (France)',\n// \t\tlocalName: t('locale.french_france', 'French (France)'),\n// \t\tlabel: 'French (France) - français (France)',\n// \t\tvalue: 'fr_FR'\n// \t},\n\n// \t{\n// \t\tid: 'iw',\n// \t\tname: 'עברית',\n// \t\tlocalName: t('locale.hebrew', 'Hebrew'),\n// \t\tlabel: 'Hebrew - עברית',\n// \t\tvalue: 'iw'\n// \t},\n\n// \t{\n// \t\tid: 'hu',\n// \t\tname: 'magyar',\n// \t\tlocalName: t('locale.hungarian', 'Hungarian'),\n// \t\tlabel: 'Hungarian - magyar',\n// \t\tvalue: 'hu'\n// \t},\n// \t{\n// \t\tid: 'in',\n// \t\tname: 'Bahasa Indonesia',\n// \t\tlocalName: t('locale.indonesian', 'Indonesian'),\n// \t\tlabel: 'Indonesian - Bahasa Indonesia',\n// \t\tvalue: 'in'\n// \t},\n\n// \t{\n// \t\tid: 'ko',\n// \t\tname: '한국어',\n// \t\tlocalName: t('locale.korean', 'Korean'),\n// \t\tlabel: 'Korean - 한국어',\n// \t\tvalue: 'ko'\n// \t},\n// \t{\n// \t\tid: 'lo',\n// eslint-disable-next-line no-irregular-whitespace\n// \t\tname: 'ພາສາລາວ',\n// \t\tlocalName: t('locale.lao', 'Lao'),\n// eslint-disable-next-line no-irregular-whitespace\n// \t\tlabel: 'Lao - ພາສາລາວ',\n// \t\tvalue: 'lo'\n// \t},\n// \t{\n// \t\tid: 'ms',\n// \t\tname: 'Bahasa Melayu',\n// \t\tlocalName: t('locale.malay', 'Malay'),\n// \t\tlabel: 'Malay - Bahasa Melayu',\n// \t\tvalue: 'ms'\n// \t},\n// \t{\n// \t\tid: 'no',\n// \t\tname: 'norsk',\n// \t\tlocalName: t('locale.norwegian', 'Norwegian'),\n// \t\tlabel: 'Norwegian - norsk',\n// \t\tvalue: 'no'\n// \t},\n\n// \t{\n// \t\tid: 'pt_PT',\n// \t\tname: 'português (Portugal)',\n// \t\tlocalName: t('locale.potuguese_portugal', 'Portuguese (Portugal)'),\n// \t\tlabel: 'Portuguese (Portugal) - português (Portugal)',\n// \t\tvalue: 'pt_PT'\n// \t},\n\n// \t{\n// \t\tid: 'sl',\n// \t\tname: 'Slovenščina',\n// \t\tlocalName: t('locale.slovenian', 'Slovenian'),\n// \t\tlabel: 'Slovenian - Slovenščina',\n// \t\tvalue: 'sl'\n// \t},\n\n// \t{\n// \t\tid: 'sv',\n// \t\tname: 'svenska',\n// \t\tlocalName: t('locale.swedish', 'Swedish'),\n// \t\tlabel: 'Swedish - svenska',\n// \t\tvalue: 'sv'\n// \t},\n// \t{\n// \t\tid: 'ta',\n// \t\tname: 'தமிழ்',\n// \t\tlocalName: t('locale.tamil', 'Tamil'),\n// \t\tlabel: 'Tamil - தமிழ்',\n// \t\tvalue: 'ta'\n// \t},\n\n// \t{\n// \t\tid: 'uk',\n// \t\tname: 'українська',\n// \t\tlocalName: t('locale.ukrainian', 'Ukrainian'),\n// \t\tlabel: 'Ukrainian - українська',\n// \t\tvalue: 'uk'\n// \t},\n\n// ];\n\nexport type TimeZoneDescriptor = {\n\tvalue: string;\n\tlabel: string;\n\toffSet?: string;\n};\n\nexport const timeZoneList = (t: TFunction): Array<TimeZoneDescriptor> => [\n\t{\n\t\tvalue: 'Etc/GMT+12',\n\t\tlabel: t('timezone.etc_gmt+12', { value: 'GMT -12:00', defaultValue: '{{value}} Dateline' })\n\t},\n\t{\n\t\tvalue: 'Pacific/Midway',\n\t\tlabel: t('timezone.pacific_midway', { value: 'GMT -11:00', defaultValue: '{{value}} Samoa' })\n\t},\n\t{\n\t\tvalue: 'America/Adak',\n\t\tlabel: t('timezone.america_adak', { value: 'GMT -10:00', defaultValue: '{{value}} Adak' })\n\t},\n\t{\n\t\tvalue: 'Pacific/Honolulu',\n\t\tlabel: t('timezone.pacific_honolulu', { value: 'GMT -10:00', defaultValue: '{{value}} Hawaii' })\n\t},\n\t{\n\t\tvalue: 'Pacific/Marquesas',\n\t\tlabel: t('timezone.pacific_marquesas', {\n\t\t\tvalue: 'GMT -09:30',\n\t\t\tdefaultValue: '{{value}} Marquesas'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Anchorage',\n\t\tlabel: t('timezone.america_anchorage', {\n\t\t\tvalue: 'GMT -09:00',\n\t\t\tdefaultValue: '{{value}} Alaska'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Los_Angeles',\n\t\tlabel: t('timezone.america_los_angeles', {\n\t\t\tvalue: 'GMT -08:00',\n\t\t\tdefaultValue: '{{value}} US/Canada Pacific'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Tijuana',\n\t\tlabel: t('timezone.america_tijuana', {\n\t\t\tvalue: 'GMT -08:00',\n\t\t\tdefaultValue: '{{value}} Baja California'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Chihuahua',\n\t\tlabel: t('timezone.america_chihuahua', {\n\t\t\tvalue: 'GMT -07:00',\n\t\t\tdefaultValue: '{{value}} Chihuahua, La Paz, Mazatlan'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Denver',\n\t\tlabel: t('timezone.america_denver', {\n\t\t\tvalue: 'GMT -07:00',\n\t\t\tdefaultValue: '{{value}} US/Canada Mountain'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Fort_Nelson',\n\t\tlabel: t('timezone.america_fort_nelson', {\n\t\t\tvalue: 'GMT -07:00',\n\t\t\tdefaultValue: '{{value}} Fort Nelson'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Phoenix',\n\t\tlabel: t('timezone.america_phoenix', { value: 'GMT -07:00', defaultValue: '{{value}} Arizona' })\n\t},\n\t{\n\t\tvalue: 'America/Whitehorse',\n\t\tlabel: t('timezone.america_whitehorse', {\n\t\t\tvalue: 'GMT -07:00',\n\t\t\tdefaultValue: '{{value}} Yukon'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Chicago',\n\t\tlabel: t('timezone.america_chicago', {\n\t\t\tvalue: 'GMT -06:00',\n\t\t\tdefaultValue: '{{value}} US/Canada Central'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Guatemala',\n\t\tlabel: t('timezone.america_guatemala', {\n\t\t\tvalue: 'GMT -06:00',\n\t\t\tdefaultValue: '{{value}} Central America'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Mexico_City',\n\t\tlabel: t('timezone.america_mexico_city', {\n\t\t\tvalue: 'GMT -06:00',\n\t\t\tdefaultValue: '{{value}} Guadalajara, Mexico City, Monterrey'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Regina',\n\t\tlabel: t('timezone.america_regina', {\n\t\t\tvalue: 'GMT -06:00',\n\t\t\tdefaultValue: '{{value}} Saskatchewan'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Pacific/Easter',\n\t\tlabel: t('timezone.pacific_easter', { value: 'GMT -06:00', defaultValue: '{{value}} Easter' })\n\t},\n\t{\n\t\tvalue: 'America/Bogota',\n\t\tlabel: t('timezone.america_bogota', { value: 'GMT -05:00', defaultValue: '{{value}} Colombia' })\n\t},\n\t{\n\t\tvalue: 'America/Cancun',\n\t\tlabel: t('timezone.america_cancun', {\n\t\t\tvalue: 'GMT -05:00',\n\t\t\tdefaultValue: '{{value}} Cancun, Chetumal'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Grand_Turk',\n\t\tlabel: t('timezone.america_grand_turk', {\n\t\t\tvalue: 'GMT -05:00',\n\t\t\tdefaultValue: '{{value}} Turks and Caicos Islands'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Havana',\n\t\tlabel: t('timezone.america_havana', { value: 'GMT -05:00', defaultValue: '{{value}} Havana' })\n\t},\n\t{\n\t\tvalue: 'America/Indiana/Indianapolis',\n\t\tlabel: t('timezone.america_indiana_indianapolis', {\n\t\t\tvalue: 'GMT -05:00',\n\t\t\tdefaultValue: '{{value}} Indiana (East)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/New_York',\n\t\tlabel: t('timezone.america_new_york', {\n\t\t\tvalue: 'GMT -05:00',\n\t\t\tdefaultValue: '{{value}} US/Canada Eastern'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Port-au-Prince',\n\t\tlabel: t('timezone.america_port-au-prince', {\n\t\t\tvalue: 'GMT -05:00',\n\t\t\tdefaultValue: '{{value}} Port-au-Prince'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Asuncion',\n\t\tlabel: t('timezone.america_asuncion', {\n\t\t\tvalue: 'GMT -04:00',\n\t\t\tdefaultValue: '{{value}} Asuncion'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Caracas',\n\t\tlabel: t('timezone.america_caracas', { value: 'GMT -04:00', defaultValue: '{{value}} Caracas' })\n\t},\n\t{\n\t\tvalue: 'America/Cuiaba',\n\t\tlabel: t('timezone.america_cuiaba', { value: 'GMT -04:00', defaultValue: '{{value}} Cuiaba' })\n\t},\n\t{\n\t\tvalue: 'America/Guyana',\n\t\tlabel: t('timezone.america_guyana', {\n\t\t\tvalue: 'GMT -04:00',\n\t\t\tdefaultValue: '{{value}} Georgetown, La Paz, Manaus, San Juan'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Halifax',\n\t\tlabel: t('timezone.america_halifax', {\n\t\t\tvalue: 'GMT -04:00',\n\t\t\tdefaultValue: '{{value}} Atlantic Time (Canada)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Santiago',\n\t\tlabel: t('timezone.america_santiago', {\n\t\t\tvalue: 'GMT -04:00',\n\t\t\tdefaultValue: '{{value}} Pacific South America'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/St_Johns',\n\t\tlabel: t('timezone.america_st_johns', {\n\t\t\tvalue: 'GMT -03:30',\n\t\t\tdefaultValue: '{{value}} Newfoundland'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Araguaina',\n\t\tlabel: t('timezone.america_araguaina', {\n\t\t\tvalue: 'GMT -03:00',\n\t\t\tdefaultValue: '{{value}} Araguaina'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Argentina/Buenos_Aires',\n\t\tlabel: t('timezone.america_argentina_buenos_aires', {\n\t\t\tvalue: 'GMT -03:00',\n\t\t\tdefaultValue: '{{value}} Argentina'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Bahia',\n\t\tlabel: t('timezone.america_bahia', { value: 'GMT -03:00', defaultValue: '{{value}} Salvador' })\n\t},\n\t{\n\t\tvalue: 'America/Cayenne',\n\t\tlabel: t('timezone.america_cayenne', {\n\t\t\tvalue: 'GMT -03:00',\n\t\t\tdefaultValue: '{{value}} Cayenne, Fortaleza'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Miquelon',\n\t\tlabel: t('timezone.america_miquelon', {\n\t\t\tvalue: 'GMT -03:00',\n\t\t\tdefaultValue: '{{value}} Miquelon'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Montevideo',\n\t\tlabel: t('timezone.america_montevideo', {\n\t\t\tvalue: 'GMT -03:00',\n\t\t\tdefaultValue: '{{value}} Montevideo'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Punta_Arenas',\n\t\tlabel: t('timezone.america_punta_arenas', {\n\t\t\tvalue: 'GMT -03:00',\n\t\t\tdefaultValue: '{{value}} Punta_Arenas'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'America/Sao_Paulo',\n\t\tlabel: t('timezone.america_sao_paulo', {\n\t\t\tvalue: 'GMT -03:00',\n\t\t\tdefaultValue: '{{value}} Brasilia'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Atlantic/South_Georgia',\n\t\tlabel: t('timezone.atlantic_south_georgia', {\n\t\t\tvalue: 'GMT -02:00',\n\t\t\tdefaultValue: '{{value}} Mid-Atlantic'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Atlantic/Azores',\n\t\tlabel: t('timezone.atlantic_azores', { value: 'GMT -01:00', defaultValue: '{{value}} Azores' })\n\t},\n\t{\n\t\tvalue: 'Atlantic/Cape_Verde',\n\t\tlabel: t('timezone.atlantic_cape_verde', {\n\t\t\tvalue: 'GMT -01:00',\n\t\t\tdefaultValue: '{{value}} Cape Verde Is.'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Africa/Monrovia',\n\t\tlabel: t('timezone.africa_monrovia', {\n\t\t\tvalue: 'GMT +00:00',\n\t\t\tdefaultValue: '{{value}} Monrovia'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Africa/Sao_Tome',\n\t\tlabel: t('timezone.africa_sao_tome', {\n\t\t\tvalue: 'GMT +00:00',\n\t\t\tdefaultValue: '{{value}} Sao Tome'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/London',\n\t\tlabel: t('timezone.europe_london', {\n\t\t\tvalue: 'GMT +00:00',\n\t\t\tdefaultValue: '{{value}} Britain, Ireland, Portugal'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'UTC',\n\t\tlabel: t('timezone.utc', {\n\t\t\tvalue: 'GMT/UTC',\n\t\t\tdefaultValue: '{{value}} Coordinated Universal Time'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Africa/Algiers',\n\t\tlabel: t('timezone.africa_algiers', {\n\t\t\tvalue: 'GMT +01:00',\n\t\t\tdefaultValue: '{{value}} West Central Africa'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Africa/Casablanca',\n\t\tlabel: t('timezone.africa_casablanca', {\n\t\t\tvalue: 'GMT +01:00',\n\t\t\tdefaultValue: '{{value}} Casablanca'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Belgrade',\n\t\tlabel: t('timezone.europe_belgrade', {\n\t\t\tvalue: 'GMT +01:00',\n\t\t\tdefaultValue: '{{value}} Belgrade, Bratislava, Budapest, Ljubljana, Prague'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Berlin',\n\t\tlabel: t('timezone.europe_berlin', {\n\t\t\tvalue: 'GMT +01:00',\n\t\t\tdefaultValue: '{{value}} Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Brussels',\n\t\tlabel: t('timezone.europe_brussels', {\n\t\t\tvalue: 'GMT +01:00',\n\t\t\tdefaultValue: '{{value}} Brussels, Copenhagen, Madrid, Paris'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Warsaw',\n\t\tlabel: t('timezone.europe_warsaw', {\n\t\t\tvalue: 'GMT +01:00',\n\t\t\tdefaultValue: '{{value}} Sarajevo, Skopje, Warsaw, Zagreb'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Africa/Cairo',\n\t\tlabel: t('timezone.africa_cairo', { value: 'GMT +02:00', defaultValue: '{{value}} Egypt' })\n\t},\n\t{\n\t\tvalue: 'Africa/Harare',\n\t\tlabel: t('timezone.africa_harare', {\n\t\t\tvalue: 'GMT +02:00',\n\t\t\tdefaultValue: '{{value}} Harare, Pretoria'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Africa/Juba',\n\t\tlabel: t('timezone.africa_juba', { value: 'GMT +02:00', defaultValue: '{{value}} Juba' })\n\t},\n\t{\n\t\tvalue: 'Africa/Khartoum',\n\t\tlabel: t('timezone.africa_khartoum', {\n\t\t\tvalue: 'GMT +02:00',\n\t\t\tdefaultValue: '{{value}} Khartoum'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Africa/Tripoli',\n\t\tlabel: t('timezone.africa_tripoli', { value: 'GMT +02:00', defaultValue: '{{value}} Tripoli' })\n\t},\n\t{\n\t\tvalue: 'Africa/Windhoek',\n\t\tlabel: t('timezone.africa_windhoek', { value: 'GMT +02:00', defaultValue: '{{value}} Namibia' })\n\t},\n\t{\n\t\tvalue: 'Asia/Amman',\n\t\tlabel: t('timezone.asia_amman', { value: 'GMT +02:00', defaultValue: '{{value}} Jordan' })\n\t},\n\t{\n\t\tvalue: 'Asia/Beirut',\n\t\tlabel: t('timezone.asia_beirut', { value: 'GMT +02:00', defaultValue: '{{value}} Beirut' })\n\t},\n\t{\n\t\tvalue: 'Asia/Damascus',\n\t\tlabel: t('timezone.asia_damascus', { value: 'GMT +02:00', defaultValue: '{{value}} Damascus' })\n\t},\n\t{\n\t\tvalue: 'Asia/Gaza',\n\t\tlabel: t('timezone.asia_gaza', { value: 'GMT +02:00', defaultValue: '{{value}} Gaza' })\n\t},\n\t{\n\t\tvalue: 'Asia/Jerusalem',\n\t\tlabel: t('timezone.asia_jerusalem', {\n\t\t\tvalue: 'GMT +02:00',\n\t\t\tdefaultValue: '{{value}} Jerusalem'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Athens',\n\t\tlabel: t('timezone.europe_athens', {\n\t\t\tvalue: 'GMT +02:00',\n\t\t\tdefaultValue: '{{value}} Athens, Beirut, Bucharest, Istanbul'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Bucharest',\n\t\tlabel: t('timezone.europe_bucharest', {\n\t\t\tvalue: 'GMT +02:00',\n\t\t\tdefaultValue: '{{value}} Bucharest'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Chisinau',\n\t\tlabel: t('timezone.europe_chisinau', {\n\t\t\tvalue: 'GMT +02:00',\n\t\t\tdefaultValue: '{{value}} Chisinau'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Helsinki',\n\t\tlabel: t('timezone.europe_helsinki', {\n\t\t\tvalue: 'GMT +02:00',\n\t\t\tdefaultValue: '{{value}} Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Kaliningrad',\n\t\tlabel: t('timezone.europe_kaliningrad', {\n\t\t\tvalue: 'GMT +02:00',\n\t\t\tdefaultValue: '{{value}} Kaliningrad (RTZ 1)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Africa/Nairobi',\n\t\tlabel: t('timezone.africa_nairobi', { value: 'GMT +03:00', defaultValue: '{{value}} Nairobi' })\n\t},\n\t{\n\t\tvalue: 'Asia/Baghdad',\n\t\tlabel: t('timezone.asia_baghdad', { value: 'GMT +03:00', defaultValue: '{{value}} Iraq' })\n\t},\n\t{\n\t\tvalue: 'Asia/Kuwait',\n\t\tlabel: t('timezone.asia_kuwait', {\n\t\t\tvalue: 'GMT +03:00',\n\t\t\tdefaultValue: '{{value}} Kuwait, Riyadh'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Istanbul',\n\t\tlabel: t('timezone.europe_istanbul', {\n\t\t\tvalue: 'GMT +03:00',\n\t\t\tdefaultValue: '{{value}} Istanbul'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Minsk',\n\t\tlabel: t('timezone.europe_minsk', { value: 'GMT +03:00', defaultValue: '{{value}} Minsk' })\n\t},\n\t{\n\t\tvalue: 'Europe/Moscow',\n\t\tlabel: t('timezone.europe_moscow', {\n\t\t\tvalue: 'GMT +03:00',\n\t\t\tdefaultValue: '{{value}} Moscow, St. Petersburg, Volgograd (RTZ 2)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Volgograd',\n\t\tlabel: t('timezone.europe_volgograd', {\n\t\t\tvalue: 'GMT +03:00',\n\t\t\tdefaultValue: '{{value}} Volgograd'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Tehran',\n\t\tlabel: t('timezone.asia_tehran', { value: 'GMT +03:30', defaultValue: '{{value}} Tehran' })\n\t},\n\t{\n\t\tvalue: 'Asia/Baku',\n\t\tlabel: t('timezone.asia_baku', { value: 'GMT +04:00', defaultValue: '{{value}} Baku' })\n\t},\n\t{\n\t\tvalue: 'Asia/Muscat',\n\t\tlabel: t('timezone.asia_muscat', {\n\t\t\tvalue: 'GMT +04:00',\n\t\t\tdefaultValue: '{{value}} Abu Dhabi, Muscat'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Tbilisi',\n\t\tlabel: t('timezone.asia_tbilisi', { value: 'GMT +04:00', defaultValue: '{{value}} Tbilisi' })\n\t},\n\t{\n\t\tvalue: 'Asia/Yerevan',\n\t\tlabel: t('timezone.asia_yerevan', { value: 'GMT +04:00', defaultValue: '{{value}} Yerevan' })\n\t},\n\t{\n\t\tvalue: 'Europe/Astrakhan',\n\t\tlabel: t('timezone.europe_astrakhan', {\n\t\t\tvalue: 'GMT +04:00',\n\t\t\tdefaultValue: '{{value}} Astrakhan'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Samara',\n\t\tlabel: t('timezone.europe_samara', {\n\t\t\tvalue: 'GMT +04:00',\n\t\t\tdefaultValue: '{{value}} Izhevsk, Samara (RTZ 3)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Europe/Saratov',\n\t\tlabel: t('timezone.europe_saratov', { value: 'GMT +04:00', defaultValue: '{{value}} Saratov' })\n\t},\n\t{\n\t\tvalue: 'Indian/Mauritius',\n\t\tlabel: t('timezone.indian_mauritius', {\n\t\t\tvalue: 'GMT +04:00',\n\t\t\tdefaultValue: '{{value}} Port Louis'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Kabul',\n\t\tlabel: t('timezone.asia_kabul', { value: 'GMT +04:30', defaultValue: '{{value}} Kabul' })\n\t},\n\t{\n\t\tvalue: 'Asia/Karachi',\n\t\tlabel: t('timezone.asia_karachi', {\n\t\t\tvalue: 'GMT +05:00',\n\t\t\tdefaultValue: '{{value}} Islamabad, Karachi'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Qyzylorda',\n\t\tlabel: t('timezone.asia_qyzylorda', {\n\t\t\tvalue: 'GMT +05:00',\n\t\t\tdefaultValue: '{{value}} Qyzylorda'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Tashkent',\n\t\tlabel: t('timezone.asia_tashkent', { value: 'GMT +05:00', defaultValue: '{{value}} Tashkent' })\n\t},\n\t{\n\t\tvalue: 'Asia/Yekaterinburg',\n\t\tlabel: t('timezone.asia_yekaterinburg', {\n\t\t\tvalue: 'GMT +05:00',\n\t\t\tdefaultValue: '{{value}} Ekaterinburg (RTZ 4)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Colombo',\n\t\tlabel: t('timezone.asia_colombo', {\n\t\t\tvalue: 'GMT +05:30',\n\t\t\tdefaultValue: '{{value}} Sri Jayawardenepura Kotte'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Kolkata',\n\t\tlabel: t('timezone.asia_kolkata', {\n\t\t\tvalue: 'GMT +05:30',\n\t\t\tdefaultValue: '{{value}} Chennai, Kolkata, Mumbai, New Delhi'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Kathmandu',\n\t\tlabel: t('timezone.asia_kathmandu', {\n\t\t\tvalue: 'GMT +05:45',\n\t\t\tdefaultValue: '{{value}} Kathmandu'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Almaty',\n\t\tlabel: t('timezone.asia_almaty', { value: 'GMT +06:00', defaultValue: '{{value}} Astana' })\n\t},\n\t{\n\t\tvalue: 'Asia/Dhaka',\n\t\tlabel: t('timezone.asia_dhaka', { value: 'GMT +06:00', defaultValue: '{{value}} Dhaka' })\n\t},\n\t{\n\t\tvalue: 'Asia/Omsk',\n\t\tlabel: t('timezone.asia_omsk', { value: 'GMT +06:00', defaultValue: '{{value}} Omsk' })\n\t},\n\t{\n\t\tvalue: 'Asia/Yangon',\n\t\tlabel: t('timezone.asia_yangon', { value: 'GMT +06:30', defaultValue: '{{value}} Yangon' })\n\t},\n\t{\n\t\tvalue: 'Asia/Bangkok',\n\t\tlabel: t('timezone.asia_bangkok', {\n\t\t\tvalue: 'GMT +07:00',\n\t\t\tdefaultValue: '{{value}} Bangkok, Hanoi, Jakarta'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Barnaul',\n\t\tlabel: t('timezone.asia_barnaul', { value: 'GMT +07:00', defaultValue: '{{value}} Barnaul' })\n\t},\n\t{\n\t\tvalue: 'Asia/Hovd',\n\t\tlabel: t('timezone.asia_hovd', { value: 'GMT +07:00', defaultValue: '{{value}} Hovd' })\n\t},\n\t{\n\t\tvalue: 'Asia/Krasnoyarsk',\n\t\tlabel: t('timezone.asia_krasnoyarsk', {\n\t\t\tvalue: 'GMT +07:00',\n\t\t\tdefaultValue: '{{value}} Krasnoyarsk (RTZ 6)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Novosibirsk',\n\t\tlabel: t('timezone.asia_novosibirsk', {\n\t\t\tvalue: 'GMT +07:00',\n\t\t\tdefaultValue: '{{value}} Novosibirsk (RTZ 5)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Tomsk',\n\t\tlabel: t('timezone.asia_tomsk', { value: 'GMT +07:00', defaultValue: '{{value}} Tomsk' })\n\t},\n\t{\n\t\tvalue: 'Asia/Hong_Kong',\n\t\tlabel: t('timezone.asia_hong_kong', {\n\t\t\tvalue: 'GMT +08:00',\n\t\t\tdefaultValue: '{{value}} Beijing, Chongqing, Hong Kong, Urumqi'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Irkutsk',\n\t\tlabel: t('timezone.asia_irkutsk', {\n\t\t\tvalue: 'GMT +08:00',\n\t\t\tdefaultValue: '{{value}} Irkutsk (RTZ 7)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Kuala_Lumpur',\n\t\tlabel: t('timezone.asia_kuala_lumpur', {\n\t\t\tvalue: 'GMT +08:00',\n\t\t\tdefaultValue: '{{value}} Kuala Lumpur'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Singapore',\n\t\tlabel: t('timezone.asia_singapore', {\n\t\t\tvalue: 'GMT +08:00',\n\t\t\tdefaultValue: '{{value}} Singapore'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Taipei',\n\t\tlabel: t('timezone.asia_taipei', { value: 'GMT +08:00', defaultValue: '{{value}} Taipei' })\n\t},\n\t{\n\t\tvalue: 'Asia/Ulaanbaatar',\n\t\tlabel: t('timezone.asia_ulaanbaatar', {\n\t\t\tvalue: 'GMT +08:00',\n\t\t\tdefaultValue: '{{value}} Ulaanbaatar'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Australia/Perth',\n\t\tlabel: t('timezone.australia_perth', { value: 'GMT +08:00', defaultValue: '{{value}} Perth' })\n\t},\n\t{\n\t\tvalue: 'Australia/Eucla',\n\t\tlabel: t('timezone.australia_eucla', { value: 'GMT +08:45', defaultValue: '{{value}} Eucla' })\n\t},\n\t{\n\t\tvalue: 'Asia/Chita',\n\t\tlabel: t('timezone.asia_chita', { value: 'GMT +09:00', defaultValue: '{{value}} Chita' })\n\t},\n\t{\n\t\tvalue: 'Asia/Pyongyang',\n\t\tlabel: t('timezone.asia_pyongyang', {\n\t\t\tvalue: 'GMT +09:00',\n\t\t\tdefaultValue: '{{value}} Pyongyang'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Seoul',\n\t\tlabel: t('timezone.asia_seoul', { value: 'GMT +09:00', defaultValue: '{{value}} Korea' })\n\t},\n\t{\n\t\tvalue: 'Asia/Tokyo',\n\t\tlabel: t('timezone.asia_tokyo', { value: 'GMT +09:00', defaultValue: '{{value}} Japan' })\n\t},\n\t{\n\t\tvalue: 'Asia/Yakutsk',\n\t\tlabel: t('timezone.asia_yakutsk', {\n\t\t\tvalue: 'GMT +09:00',\n\t\t\tdefaultValue: '{{value}} Yakutsk (RTZ 8)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Australia/Adelaide',\n\t\tlabel: t('timezone.australia_adelaide', {\n\t\t\tvalue: 'GMT +09:30',\n\t\t\tdefaultValue: '{{value}} Adelaide'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Australia/Darwin',\n\t\tlabel: t('timezone.australia_darwin', { value: 'GMT +09:30', defaultValue: '{{value}} Darwin' })\n\t},\n\t{\n\t\tvalue: 'Asia/Vladivostok',\n\t\tlabel: t('timezone.asia_vladivostok', {\n\t\t\tvalue: 'GMT +10:00',\n\t\t\tdefaultValue: '{{value}} Vladivostok, Magadan (RTZ 9)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Australia/Brisbane',\n\t\tlabel: t('timezone.australia_brisbane', {\n\t\t\tvalue: 'GMT +10:00',\n\t\t\tdefaultValue: '{{value}} Brisbane'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Australia/Hobart',\n\t\tlabel: t('timezone.australia_hobart', { value: 'GMT +10:00', defaultValue: '{{value}} Hobart' })\n\t},\n\t{\n\t\tvalue: 'Australia/Sydney',\n\t\tlabel: t('timezone.australia_sydney', {\n\t\t\tvalue: 'GMT +10:00',\n\t\t\tdefaultValue: '{{value}} Canberra, Melbourne, Sydney'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Pacific/Guam',\n\t\tlabel: t('timezone.pacific_guam', {\n\t\t\tvalue: 'GMT +10:00',\n\t\t\tdefaultValue: '{{value}} Guam, Port Moresby'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Australia/Lord_Howe',\n\t\tlabel: t('timezone.australia_lord_howe', {\n\t\t\tvalue: 'GMT +10:30',\n\t\t\tdefaultValue: '{{value}} Lord_Howe'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Asia/Magadan',\n\t\tlabel: t('timezone.asia_magadan', { value: 'GMT +11:00', defaultValue: '{{value}} Magadan' })\n\t},\n\t{\n\t\tvalue: 'Asia/Sakhalin',\n\t\tlabel: t('timezone.asia_sakhalin', { value: 'GMT +11:00', defaultValue: '{{value}} Sakhalin' })\n\t},\n\t{\n\t\tvalue: 'Asia/Srednekolymsk',\n\t\tlabel: t('timezone.asia_srednekolymsk', {\n\t\t\tvalue: 'GMT +11:00',\n\t\t\tdefaultValue: '{{value}} Chokurdakh (RTZ 10)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Pacific/Bougainville',\n\t\tlabel: t('timezone.pacific_bougainville', {\n\t\t\tvalue: 'GMT +11:00',\n\t\t\tdefaultValue: '{{value}} Bougainville Standard Time'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Pacific/Guadalcanal',\n\t\tlabel: t('timezone.pacific_guadalcanal', {\n\t\t\tvalue: 'GMT +11:00',\n\t\t\tdefaultValue: '{{value}} Solomon Is. / New Caledonia'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Pacific/Norfolk',\n\t\tlabel: t('timezone.pacific_norfolk', { value: 'GMT +11:00', defaultValue: '{{value}} Norfolk' })\n\t},\n\t{\n\t\tvalue: 'Asia/Kamchatka',\n\t\tlabel: t('timezone.asia_kamchatka', {\n\t\t\tvalue: 'GMT +12:00',\n\t\t\tdefaultValue: '{{value}} Anadyr, Petropavlovsk-Kamchatsky (RTZ 11)'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Pacific/Auckland',\n\t\tlabel: t('timezone.pacific_auckland', {\n\t\t\tvalue: 'GMT +12:00',\n\t\t\tdefaultValue: '{{value}} New Zealand'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Pacific/Fiji',\n\t\tlabel: t('timezone.pacific_fiji', { value: 'GMT +12:00', defaultValue: '{{value}} Fiji' })\n\t},\n\t{\n\t\tvalue: 'Pacific/Chatham',\n\t\tlabel: t('timezone.pacific_chatham', { value: 'GMT +12:45', defaultValue: '{{value}} Chatham' })\n\t},\n\t{\n\t\tvalue: 'Pacific/Apia',\n\t\tlabel: t('timezone.pacific_apia', { value: 'GMT +13:00', defaultValue: '{{value}} Samoa' })\n\t},\n\t{\n\t\tvalue: 'Pacific/Tongatapu',\n\t\tlabel: t('timezone.pacific_tongatapu', {\n\t\t\tvalue: 'GMT +13:00',\n\t\t\tdefaultValue: '{{value}} Nuku’alofa'\n\t\t})\n\t},\n\t{\n\t\tvalue: 'Pacific/Kiritimati',\n\t\tlabel: t('timezone.pacific_kiritimati', {\n\t\t\tvalue: 'GMT +14:00',\n\t\t\tdefaultValue: '{{value}} Kiritimati Island'\n\t\t})\n\t}\n];\n\nexport const getAutoScalingFontSize = (): number => {\n\tif (\n\t\twindow.screen.width <= SCALING_LIMIT.WIDTH &&\n\t\twindow.screen.height <= SCALING_LIMIT.HEIGHT &&\n\t\twindow.devicePixelRatio >= SCALING_LIMIT.DPR\n\t) {\n\t\tconst baseFontIndex = SCALING_OPTIONS.findIndex((option) => option.value === BASE_FONT_SIZE);\n\t\tif (baseFontIndex > 0) {\n\t\t\treturn SCALING_OPTIONS[baseFontIndex - 1].value;\n\t\t}\n\t}\n\treturn BASE_FONT_SIZE;\n};\n\nexport type ResetComponentImperativeHandler = { reset: () => void };\n\ntype UpsertPrefOnUnsavedChangesFn = <K extends keyof PrefsMods>(\n\tprefKey: K,\n\tprefValue: PrefsMods[K] extends BooleanString | undefined ? boolean | undefined : PrefsMods[K]\n) => void;\n\nexport function upsertPrefOnUnsavedChanges(\n\taddModifiedValueCallback: AddMod\n): UpsertPrefOnUnsavedChangesFn {\n\treturn (prefKey, prefValue) => {\n\t\tif (prefValue === undefined) {\n\t\t\taddModifiedValueCallback('prefs', prefKey, '');\n\t\t} else if (isBoolean(prefValue)) {\n\t\t\taddModifiedValueCallback('prefs', prefKey, (prefValue && 'TRUE') || 'FALSE');\n\t\t} else {\n\t\t\taddModifiedValueCallback('prefs', prefKey, prefValue as PrefsMods[typeof prefKey]);\n\t\t}\n\t};\n}\n\nexport type SettingsSectionProps = {\n\tresetRef?: React.Ref<ResetComponentImperativeHandler>;\n};\n\nexport function isPrimary(identity: Identity): boolean {\n\treturn identity.name === 'DEFAULT';\n}\n\nexport function defaultAsFirstOrderIdentities(identities: Array<Identity>): Array<Identity> {\n\tconst defaultIdx = identities.findIndex(isPrimary);\n\tconst result = cloneDeep(identities);\n\tconst defaultIdentity = result.splice(defaultIdx, 1);\n\tresult.unshift(defaultIdentity[0]);\n\treturn result;\n}\n\n/**\n * Compose a unique list of all identities' email addresses\n *\n * The list is composed of:\n * - the email address of the current account\n * - the email addresses of all the shared accounts (taken from the rights infos)\n * - all the aliases\n *\n * @param account\n * @param settings\n *\n * @returns a list of unique email addresses\n */\nexport const getAvailableEmailAddresses = (\n\taccount: Account,\n\tsettings: AccountSettings\n): string[] => {\n\tconst result: string[] = [];\n\n\t// Adds the email address of the primary account\n\tresult.push(account.name);\n\n\t// Adds the email addresses of all the shared 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(email.addr);\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\t// Adds all the aliases\n\tif (settings.attrs.zimbraMailAlias) {\n\t\tif (isArray(settings.attrs.zimbraMailAlias)) {\n\t\t\tresult.push(...(settings.attrs.zimbraMailAlias as string[]));\n\t\t} else {\n\t\t\tresult.push(String(settings.attrs.zimbraMailAlias));\n\t\t}\n\t}\n\n\treturn uniq(result);\n};\n\nexport function calculateNewIdentitiesState(\n\tcurrentIdentities: Array<Identity>,\n\tdeletedIdentities: Array<string>,\n\taddedIdentities: Array<Identity>,\n\tmodifiedIdentitiesAttrs: Record<string, Partial<IdentityAttrs>>\n): Array<Identity> {\n\tconst filteredIdentities = filter(\n\t\tcurrentIdentities,\n\t\t(item) => !deletedIdentities.includes(item.id)\n\t);\n\n\tconst filteredAndModified = reduce(\n\t\tmodifiedIdentitiesAttrs,\n\t\t(accumulator, attrs, id) => {\n\t\t\tconst propIndex = findIndex(accumulator, (identity) => identity.id === id);\n\t\t\tif (propIndex > -1) {\n\t\t\t\taccumulator[propIndex]._attrs = {\n\t\t\t\t\t...accumulator[propIndex]._attrs,\n\t\t\t\t\t...attrs\n\t\t\t\t};\n\t\t\t\tif (attrs.zimbraPrefIdentityName && !isPrimary(accumulator[propIndex])) {\n\t\t\t\t\taccumulator[propIndex].name = attrs.zimbraPrefIdentityName;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\tfilteredIdentities\n\t);\n\n\tfilteredAndModified.splice(-1, 0, ...addedIdentities);\n\treturn filteredAndModified;\n}\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport type { TFunction } from 'i18next';\n\nimport type { SettingsSubSection } from '../../types';\n\nexport const appearanceSubSection = (t: TFunction): SettingsSubSection => ({\n\tlabel: t('settings.general.appearance', 'Appearance'),\n\tid: 'appearance'\n});\nexport const timezoneAndLanguageSubSection = (t: TFunction): SettingsSubSection => ({\n\tlabel: t('settings.timezone_and_language', 'Time Zone and Language'),\n\tid: 'timezone_and_language'\n});\nexport const outOfOfficeSubSection = (t: TFunction): SettingsSubSection => ({\n\tlabel: t('settings.out_of_office.headings.settings_label', 'Out of Office Settings'),\n\tid: 'out_of_office'\n});\nexport const searchPrefsSubSection = (t: TFunction): SettingsSubSection => ({\n\tlabel: t('search.app', 'Search'),\n\tid: 'search_prefs'\n});\nexport const versionsSubSection = (t: TFunction): SettingsSubSection => ({\n\tlabel: t('module.app.version', 'Application versions'),\n\tid: 'app_version'\n});\nexport const quotaSubSection = (t: TFunction): SettingsSubSection => ({\n\tlabel: t('user_quota.title', \"User's quota\"),\n\tid: 'user_quota'\n});\nexport const accountSubSection = (t: TFunction): SettingsSubSection => ({\n\tlabel: t('settings.general.account', 'Account'),\n\tid: 'account'\n});\n\nexport const settingsSubSections = (t: TFunction): Array<SettingsSubSection> => [\n\tappearanceSubSection(t),\n\ttimezoneAndLanguageSubSection(t),\n\toutOfOfficeSubSection(t),\n\tsearchPrefsSubSection(t),\n\tversionsSubSection(t),\n\tquotaSubSection(t),\n\taccountSubSection(t)\n];\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { Container, useSnackbar } from '@zextras/carbonio-design-system';\nimport { findIndex, includes, isEmpty, map, reduce, size } from 'lodash';\n\nimport AppearanceSettings from './components/general-settings/appearance-settings';\nimport DarkThemeSettingSection from './components/general-settings/dark-theme-settings-section';\nimport { Logout } from './components/general-settings/logout';\nimport ModuleVersionSettings from './components/general-settings/module-version-settings';\nimport { OutOfOfficeSettings } from './components/general-settings/out-of-office-settings';\nimport { ScalingSettingSection } from './components/general-settings/scaling-setting-section';\nimport { SearchSettings } from './components/general-settings/search-settings';\nimport UserQuota from './components/general-settings/user-quota';\nimport SettingsHeader, { SettingsHeaderProps } from './components/settings-header';\nimport { ResetComponentImperativeHandler } from './components/utils';\nimport LanguageAndTimeZoneSettings from './language-and-timezone-settings';\nimport {\n\tAccountState,\n\tAddMod,\n\tBatchRequest,\n\tModifyPrefsRequest,\n\tModifyPrefsResponse,\n\tModifyPropertiesRequest,\n\tModifyPropertiesResponse,\n\tMods,\n\tRemoveMod\n} from '../../types';\nimport { ScalingSettings } from '../../types/settings';\nimport { LOCAL_STORAGE_SETTINGS_KEY, SHELL_APP_ID } from '../constants';\nimport { getSoapFetch } from '../network/fetch';\nimport { useLocalStorage } from '../shell/hooks/useLocalStorage';\nimport { useAccountStore, useUserSettings } from '../store/account';\nimport { getT } from '../store/i18n';\n\nconst GeneralSettings = (): React.JSX.Element => {\n\tconst [mods, setMods] = useState<Mods>({});\n\tconst t = getT();\n\tconst userSettings = useUserSettings();\n\tconst [localStorageUnAppliedChanges, setLocalStorageUnAppliedChanges] = useState<ScalingSettings>(\n\t\t{}\n\t);\n\tconst [localStorageSettings, setLocalStorageSettings] = useLocalStorage<ScalingSettings>(\n\t\tLOCAL_STORAGE_SETTINGS_KEY,\n\t\t{}\n\t);\n\tconst [open, setOpen] = useState(false);\n\n\tconst addLocalStoreChange = useCallback((key, value) => {\n\t\tsetLocalStorageUnAppliedChanges((prevState) => ({\n\t\t\t...prevState,\n\t\t\t[key]: value\n\t\t}));\n\t}, []);\n\n\tconst cleanLocalStoreChange = useCallback<(key: keyof ScalingSettings) => void>((key) => {\n\t\tsetLocalStorageUnAppliedChanges((prevState) => {\n\t\t\tconst nextState = { ...prevState };\n\t\t\tdelete nextState[key];\n\t\t\treturn nextState;\n\t\t});\n\t}, []);\n\n\tconst addMod = useCallback<AddMod>((type, key, value) => {\n\t\tsetMods((prevState) => ({\n\t\t\t...prevState,\n\t\t\t[type]: {\n\t\t\t\t...prevState?.[type],\n\t\t\t\t[key]: value\n\t\t\t}\n\t\t}));\n\t}, []);\n\n\tconst removeMod = useCallback<RemoveMod>((type, key) => {\n\t\tsetMods((prevState) => {\n\t\t\tconst prevType = prevState[type];\n\t\t\tif (prevType && prevType[key] !== undefined) {\n\t\t\t\tconst nextState = { ...prevState, [type]: { ...prevState[type] } };\n\t\t\t\tconst nextType = nextState[type];\n\t\t\t\tif (nextType && nextType[key] !== undefined) {\n\t\t\t\t\tdelete nextType[key];\n\t\t\t\t}\n\t\t\t\tif (size(nextState[type]) === 0) {\n\t\t\t\t\tdelete nextState[type];\n\t\t\t\t}\n\t\t\t\treturn nextState;\n\t\t\t}\n\t\t\treturn prevState;\n\t\t});\n\t}, []);\n\tconst createSnackbar = useSnackbar();\n\n\tconst onSave = useCallback<SettingsHeaderProps['onSave']>(() => {\n\t\tsetLocalStorageUnAppliedChanges((unAppliedPrevState) => {\n\t\t\tif (size(unAppliedPrevState) > 0) {\n\t\t\t\tsetLocalStorageSettings((localStorageSettingsPrevState) => ({\n\t\t\t\t\t...localStorageSettingsPrevState,\n\t\t\t\t\t...unAppliedPrevState\n\t\t\t\t}));\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\treturn unAppliedPrevState;\n\t\t});\n\t\tif (size(mods) > 0) {\n\t\t\tlet modifyPropertiesRequest: ModifyPropertiesRequest | undefined;\n\t\t\tif (mods.props) {\n\t\t\t\tconst mappedProperties = map(\n\t\t\t\t\tmods.props,\n\t\t\t\t\t(prop, key): ModifyPropertiesRequest['prop'][0] => ({\n\t\t\t\t\t\tname: key,\n\t\t\t\t\t\tzimlet: prop.app,\n\t\t\t\t\t\t_content: prop.value\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t\tmodifyPropertiesRequest = { _jsns: 'urn:zimbraAccount', prop: mappedProperties };\n\t\t\t}\n\n\t\t\tlet modifyPrefsRequest: ModifyPrefsRequest | undefined;\n\n\t\t\tif (mods.prefs) {\n\t\t\t\tconst attrs = mods.prefs;\n\t\t\t\tif ('zimbraPrefMailTrustedSenderList' in attrs) {\n\t\t\t\t\tattrs.zimbraPrefMailTrustedSenderList =\n\t\t\t\t\t\tattrs.zimbraPrefMailTrustedSenderList instanceof Array &&\n\t\t\t\t\t\tattrs.zimbraPrefMailTrustedSenderList.length === 0\n\t\t\t\t\t\t\t? ''\n\t\t\t\t\t\t\t: attrs.zimbraPrefMailTrustedSenderList;\n\t\t\t\t}\n\t\t\t\tmodifyPrefsRequest = { _jsns: 'urn:zimbraAccount', _attrs: attrs };\n\t\t\t}\n\n\t\t\tconst promise = getSoapFetch(SHELL_APP_ID)<\n\t\t\t\tBatchRequest,\n\t\t\t\t{\n\t\t\t\t\tModifyPropertiesResponse?: ModifyPropertiesResponse;\n\t\t\t\t\tModifyPrefsResponse?: ModifyPrefsResponse;\n\t\t\t\t}\n\t\t\t>('Batch', {\n\t\t\t\t_jsns: 'urn:zimbra',\n\t\t\t\tModifyPropertiesRequest: modifyPropertiesRequest,\n\t\t\t\tModifyPrefsRequest: modifyPrefsRequest\n\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tuseAccountStore.setState((s: AccountState) => ({\n\t\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\t...s.settings,\n\t\t\t\t\t\t\tprefs: reduce(\n\t\t\t\t\t\t\t\tmods.prefs,\n\t\t\t\t\t\t\t\t(acc, pref, key) => ({\n\t\t\t\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t\t\t\t[key]: pref as string\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\ts.settings.prefs\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tprops: reduce(\n\t\t\t\t\t\t\t\tmods.props,\n\t\t\t\t\t\t\t\t(acc, { app, value }, key) => {\n\t\t\t\t\t\t\t\t\tconst propIndex = findIndex(acc, (p) => p.name === key && p.zimlet === app);\n\t\t\t\t\t\t\t\t\tif (propIndex >= 0) {\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\t\t\t\t\t\t\tacc[propIndex] = {\n\t\t\t\t\t\t\t\t\t\t\tname: key,\n\t\t\t\t\t\t\t\t\t\t\tzimlet: app,\n\t\t\t\t\t\t\t\t\t\t\t_content: value as string\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tacc.push({\n\t\t\t\t\t\t\t\t\t\t\tname: key,\n\t\t\t\t\t\t\t\t\t\t\tzimlet: app,\n\t\t\t\t\t\t\t\t\t\t\t_content: value as string\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\treturn acc;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\ts.settings.props\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\n\t\t\t\t\tif (mods.prefs && includes(Object.keys(mods.prefs), 'zimbraPrefLocale')) {\n\t\t\t\t\t\tsetOpen(true);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSnackbar({\n\t\t\t\t\t\tkey: `new`,\n\t\t\t\t\t\treplace: true,\n\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\tlabel: t('message.snackbar.settings_saved', 'Edits saved correctly'),\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\tsetMods({});\n\t\t\t\t})\n\t\t\t\t.catch((error: unknown) => {\n\t\t\t\t\tcreateSnackbar({\n\t\t\t\t\t\tkey: `new`,\n\t\t\t\t\t\treplace: true,\n\t\t\t\t\t\ttype: 'error',\n\t\t\t\t\t\tlabel: t('snackbar.error', 'Something went wrong, please try again'),\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\tif (error instanceof Error) {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\t\t\t\t\tthrow new Error(typeof error === 'string' ? error : 'edit setting error');\n\t\t\t\t});\n\t\t\treturn Promise.allSettled([promise]);\n\t\t}\n\t\treturn Promise.allSettled([Promise.resolve()]);\n\t}, [mods, setLocalStorageSettings, createSnackbar, t]);\n\n\tconst scalingSettingSectionRef = useRef<ResetComponentImperativeHandler>(null);\n\tconst outOfOfficeSettingsSectionRef = useRef<ResetComponentImperativeHandler>(null);\n\tconst searchSettingsSectionRef = useRef<ResetComponentImperativeHandler>(null);\n\n\tconst onCancel = useCallback(() => {\n\t\tsetMods({});\n\t\tif (size(localStorageUnAppliedChanges) > 0) {\n\t\t\tscalingSettingSectionRef.current?.reset();\n\t\t}\n\t\toutOfOfficeSettingsSectionRef.current?.reset();\n\t\tsearchSettingsSectionRef?.current?.reset();\n\t}, [localStorageUnAppliedChanges]);\n\n\tconst isDirty = useMemo(\n\t\t() => !isEmpty(mods) || !isEmpty(localStorageUnAppliedChanges),\n\t\t[mods, localStorageUnAppliedChanges]\n\t);\n\n\tconst title = useMemo(() => t('settings.general.general', 'General Settings'), [t]);\n\n\treturn (\n\t\t<>\n\t\t\t<SettingsHeader title={title} onCancel={onCancel} onSave={onSave} isDirty={isDirty} />\n\t\t\t<Container\n\t\t\t\tbackground={'gray5'}\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\tcrossAlignment={'flex-start'}\n\t\t\t\tgap=\"0.5rem\"\n\t\t\t\tpadding={{ all: 'medium' }}\n\t\t\t\tstyle={{ overflow: 'auto' }}\n\t\t\t>\n\t\t\t\t<AppearanceSettings>\n\t\t\t\t\t<ScalingSettingSection\n\t\t\t\t\t\tresetRef={scalingSettingSectionRef}\n\t\t\t\t\t\tscalingSettings={localStorageSettings}\n\t\t\t\t\t\taddLocalStoreChange={addLocalStoreChange}\n\t\t\t\t\t\tcleanLocalStoreChange={cleanLocalStoreChange}\n\t\t\t\t\t/>\n\t\t\t\t\t<DarkThemeSettingSection addMod={addMod} removeMod={removeMod} />\n\t\t\t\t</AppearanceSettings>\n\t\t\t\t<LanguageAndTimeZoneSettings\n\t\t\t\t\tsettings={userSettings}\n\t\t\t\t\taddMod={addMod}\n\t\t\t\t\topen={open}\n\t\t\t\t\tsetOpen={setOpen}\n\t\t\t\t/>\n\n\t\t\t\t<OutOfOfficeSettings\n\t\t\t\t\tsettings={userSettings}\n\t\t\t\t\taddMod={addMod}\n\t\t\t\t\tresetRef={outOfOfficeSettingsSectionRef}\n\t\t\t\t/>\n\t\t\t\t<SearchSettings\n\t\t\t\t\tsettings={userSettings}\n\t\t\t\t\taddMod={addMod}\n\t\t\t\t\tresetRef={searchSettingsSectionRef}\n\t\t\t\t/>\n\t\t\t\t<ModuleVersionSettings />\n\t\t\t\t<UserQuota mobileView={false} />\n\t\t\t\t<Logout />\n\t\t\t</Container>\n\t\t</>\n\t);\n};\n\nexport default GeneralSettings;\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useImperativeHandle } from 'react';\n\nimport { SettingsSectionProps } from '../components/utils';\n\nexport function useReset(ref: SettingsSectionProps['resetRef'], resetFn: () => void): void {\n\tuseImperativeHandle(\n\t\tref,\n\t\t() => ({\n\t\t\treset: resetFn\n\t\t}),\n\t\t[resetFn]\n\t);\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, useMemo } from 'react';\n\nimport {\n\tContainer,\n\tFormSubSection,\n\tModal,\n\tPadding,\n\tSelect,\n\tSingleSelectionOnChange,\n\tText\n} from '@zextras/carbonio-design-system';\nimport { find } from 'lodash';\n\nimport { localeList, timeZoneList } from './components/utils';\nimport { timezoneAndLanguageSubSection } from './general-settings-sub-sections';\nimport { AccountSettings, AddMod, PrefsMods } from '../../types';\nimport { getT } from '../store/i18n';\n\nconst LanguageAndTimeZone: FC<{\n\tsettings: AccountSettings;\n\topen: boolean;\n\tsetOpen: (arg: boolean) => void;\n\taddMod: AddMod;\n}> = ({ settings, addMod, open, setOpen }) => {\n\tconst t = getT();\n\tconst locales = useMemo(() => localeList(t), [t]);\n\tconst timezones = useMemo(() => timeZoneList(t), [t]);\n\tconst sectionTitle = useMemo(() => timezoneAndLanguageSubSection(t), [t]);\n\n\tconst updatePrefs = useCallback(\n\t\t(prefValue: PrefsMods[keyof PrefsMods], prefKey: keyof PrefsMods) => {\n\t\t\taddMod('prefs', prefKey, prefValue);\n\t\t},\n\t\t[addMod]\n\t);\n\n\tconst defaultLocale = useMemo(\n\t\t() =>\n\t\t\t(settings.prefs.zimbraPrefLocale &&\n\t\t\t\tfind(locales, { id: `${settings.prefs.zimbraPrefLocale}` })) ||\n\t\t\tfind(locales, { id: 'en' }),\n\t\t[locales, settings.prefs.zimbraPrefLocale]\n\t);\n\n\tconst onLocaleChange = useCallback<SingleSelectionOnChange>(\n\t\t(value) => {\n\t\t\tif (value && value !== settings.prefs.zimbraPrefLocale)\n\t\t\t\tupdatePrefs(value, 'zimbraPrefLocale');\n\t\t},\n\t\t[settings.prefs.zimbraPrefLocale, updatePrefs]\n\t);\n\n\tconst defaultTimeZone = useMemo(\n\t\t() =>\n\t\t\t(settings.prefs.zimbraPrefTimeZoneId &&\n\t\t\t\tfind(timezones, { value: `${settings.prefs.zimbraPrefTimeZoneId}` })) ||\n\t\t\tfind(timezones, { value: 'UTC' }),\n\t\t[timezones, settings.prefs.zimbraPrefTimeZoneId]\n\t);\n\n\tconst onTimeZoneChange = useCallback<SingleSelectionOnChange>(\n\t\t(value) => {\n\t\t\tif (value && value !== settings.prefs.zimbraPrefTimeZoneId)\n\t\t\t\tupdatePrefs(value, 'zimbraPrefTimeZoneId');\n\t\t},\n\t\t[settings.prefs.zimbraPrefTimeZoneId, updatePrefs]\n\t);\n\n\treturn (\n\t\t<FormSubSection\n\t\t\tlabel={sectionTitle.label}\n\t\t\tminWidth=\"calc(min(100%, 32rem))\"\n\t\t\twidth=\"50%\"\n\t\t\tid={sectionTitle.id}\n\t\t>\n\t\t\t<Container crossAlignment=\"baseline\" padding={{ all: 'small' }}>\n\t\t\t\t{Object.keys(settings.prefs).length > 0 && (\n\t\t\t\t\t<Select\n\t\t\t\t\t\titems={locales}\n\t\t\t\t\t\tbackground={'gray5'}\n\t\t\t\t\t\tlabel={t('label.language', 'Language')}\n\t\t\t\t\t\tonChange={onLocaleChange}\n\t\t\t\t\t\tdefaultSelection={defaultLocale}\n\t\t\t\t\t\tshowCheckbox={false}\n\t\t\t\t\t\tdropdownMaxHeight=\"12.5rem\"\n\t\t\t\t\t\tselectedBackgroundColor=\"highlight\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<Padding top=\"small\" width=\"100%\">\n\t\t\t\t\t{Object.keys(settings.prefs).length > 0 && timezones && defaultTimeZone && (\n\t\t\t\t\t\t<Select\n\t\t\t\t\t\t\titems={timezones}\n\t\t\t\t\t\t\tbackground={'gray5'}\n\t\t\t\t\t\t\tlabel={t('label.time_zone', 'Time Zone')}\n\t\t\t\t\t\t\tonChange={onTimeZoneChange}\n\t\t\t\t\t\t\tselection={defaultTimeZone}\n\t\t\t\t\t\t\tshowCheckbox={false}\n\t\t\t\t\t\t\tdropdownMaxHeight=\"12.5rem\"\n\t\t\t\t\t\t\tselectedBackgroundColor=\"highlight\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</Padding>\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={t('label.reload', 'Reload')}\n\t\t\t\t\topen={open}\n\t\t\t\t\tdismissLabel={t('label.no', 'No')}\n\t\t\t\t\tonConfirm={(): void => window.location.reload()}\n\t\t\t\t\tconfirmLabel={t('label.reload', 'Reload')}\n\t\t\t\t\tonClose={(): void => setOpen(false)}\n\t\t\t\t>\n\t\t\t\t\t<Text overflow=\"break-word\">\n\t\t\t\t\t\t{t(\n\t\t\t\t\t\t\t'message.reload',\n\t\t\t\t\t\t\t`\tWould you like to reload the application now to show the new language?\n\t\t\t\t\t\t\t(Otherwise, the new language will appear the next time you sign in.)`\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Text>\n\t\t\t\t</Modal>\n\t\t\t</Container>\n\t\t</FormSubSection>\n\t);\n};\n\nexport default LanguageAndTimeZone;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { FC, useMemo } from 'react';\n\nimport { map } from 'lodash';\nimport { Redirect, Route, Switch } from 'react-router-dom';\n\nimport AppContextProvider from '../boot/app/app-context-provider';\nimport { SETTINGS_APP_ID } from '../constants';\nimport { useAppStore } from '../store/app';\n\nexport const SettingsAppView: FC = () => {\n\tconst settingsViews = useAppStore((s) => s.views.settings);\n\tconst routes = useMemo(\n\t\t() =>\n\t\t\tmap(settingsViews, (view) => (\n\t\t\t\t<Route key={view.route} exact path={`/${SETTINGS_APP_ID}/${view.route}`}>\n\t\t\t\t\t<AppContextProvider pkg={view.app}>\n\t\t\t\t\t\t<view.component />\n\t\t\t\t\t</AppContextProvider>\n\t\t\t\t</Route>\n\t\t\t)),\n\t\t[settingsViews]\n\t);\n\treturn (\n\t\t<Switch>\n\t\t\t{routes}\n\t\t\t<Redirect from={`/${SETTINGS_APP_ID}`} exact strict to={`/${SETTINGS_APP_ID}/general`} />\n\t\t</Switch>\n\t);\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, useMemo } from 'react';\n\nimport { Accordion, IconButton, Tooltip } from '@zextras/carbonio-design-system';\nimport { map } from 'lodash';\nimport { useHistory, useLocation } from 'react-router-dom';\n\nimport { SETTINGS_APP_ID } from '../constants';\nimport { useAppStore } from '../store/app';\n\nexport const SettingsSidebar: FC<{ expanded: boolean }> = ({ expanded }) => {\n\tconst settingsViews = useAppStore((s) => s.views.settings);\n\tconst history = useHistory();\n\tconst location = useLocation();\n\tconst items = useMemo(\n\t\t() =>\n\t\t\tsettingsViews.map((view) => ({\n\t\t\t\tid: view.route,\n\t\t\t\tlabel: view.label,\n\t\t\t\ticon: view.icon,\n\t\t\t\tactive: location.pathname === `/${SETTINGS_APP_ID}/${view.route}` && location.search === '',\n\t\t\t\tdisableHover:\n\t\t\t\t\tlocation.pathname === `/${SETTINGS_APP_ID}/${view.route}` && location.search === '',\n\t\t\t\tonClick: (e: KeyboardEvent | React.SyntheticEvent): void => {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\thistory.push(`/${SETTINGS_APP_ID}/${view.route}`);\n\t\t\t\t},\n\t\t\t\titems: map(view.subSections, (item) => ({\n\t\t\t\t\t...item,\n\t\t\t\t\tactive: location.search === `?section=${item.id}`,\n\t\t\t\t\tdisableHover: location.search === `?section=${item.id}`,\n\t\t\t\t\tonClick: (e: KeyboardEvent | React.SyntheticEvent): void => {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\thistory.replace(`/${SETTINGS_APP_ID}/${view.route}?section=${item.id}`);\n\t\t\t\t\t}\n\t\t\t\t}))\n\t\t\t})),\n\t\t[history, location.pathname, location.search, settingsViews]\n\t);\n\tconst collapsedItems = useMemo(\n\t\t() =>\n\t\t\tsettingsViews.map((v) => (\n\t\t\t\t<Tooltip label={v.label} placement=\"right\" key={v.id}>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\ticon={v.icon}\n\t\t\t\t\t\t\tonClick={(): void => history.push(`/${SETTINGS_APP_ID}/${v.route}`)}\n\t\t\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Tooltip>\n\t\t\t)),\n\t\t[history, settingsViews]\n\t);\n\treturn expanded ? <Accordion items={items} /> : <>{collapsedItems}</>;\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, useMemo } from 'react';\n\nimport { Container } from '@zextras/carbonio-design-system';\nimport { map, find } from 'lodash';\nimport { Redirect, Route, Switch, useLocation } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport AppContextProvider from '../boot/app/app-context-provider';\nimport { useAppList, useAppStore, useRoutes } from '../store/app';\n\nconst _BoardsRouterContainer = styled(Container)`\n\tflex-grow: 1;\n\tflex-basis: 0;\n\tmin-width: 0.0625rem;\n\tmax-height: calc(100vh - 3.75rem);\n\toverflow-y: auto;\n`;\n\nconst FirstAppRedirect: FC = () => {\n\tconst apps = useAppList();\n\tconst routes = useRoutes();\n\tconst location = useLocation();\n\tconst mainRoute = useMemo(\n\t\t() => find(routes, (r) => apps[0]?.name === r.app)?.route,\n\t\t[apps, routes]\n\t);\n\treturn mainRoute && location?.pathname === '/' ? (\n\t\t<Redirect exact strict from=\"/\" to={`/${mainRoute}`} />\n\t) : null;\n};\n\nconst AppViewContainer: FC = () => {\n\tconst appViews = useAppStore((s) => s.views.appView);\n\tconst routes = useMemo(\n\t\t() => [\n\t\t\t...map(appViews, (view) => (\n\t\t\t\t<Route key={view.id} path={`/${view.route}`}>\n\t\t\t\t\t<AppContextProvider key={view.app} pkg={view.app}>\n\t\t\t\t\t\t<view.component />\n\t\t\t\t\t</AppContextProvider>\n\t\t\t\t</Route>\n\t\t\t))\n\t\t],\n\t\t[appViews]\n\t);\n\n\treturn (\n\t\t<_BoardsRouterContainer>\n\t\t\t<Container mainAlignment=\"flex-start\">\n\t\t\t\t<Switch>{routes}</Switch>\n\t\t\t\t<FirstAppRedirect />\n\t\t\t</Container>\n\t\t</_BoardsRouterContainer>\n\t);\n};\n\nexport default AppViewContainer;\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { FC, forwardRef } from 'react';\n\nimport { Container, Text } from '@zextras/carbonio-design-system';\nimport styled from 'styled-components';\n\nimport { BadgeInfo } from '../../types';\n\nconst MiniBadge = styled(Container)<{ badge: BadgeInfo }>`\n\tposition: absolute;\n\tbottom: 25%;\n\tright: 25%;\n\ttransform: translate(30%, 30%);\n\tbackground: ${({ badge, theme }): string => theme.palette[badge?.color ?? 'primary'].regular};\n\tmin-width: 0.75rem;\n\tmin-height: 0.75rem;\n\tline-height: 0.75rem;\n\tborder-radius: 0.5rem;\n\tuser-select: none;\n\tcursor: pointer;\n\tpointer-events: none;\n\tz-index: 99;\n`;\n\n// eslint-disable-next-line react/display-name\nconst BadgeWrap: FC<{ badge: BadgeInfo }> = forwardRef<HTMLDivElement, { badge: BadgeInfo }>(\n\t({ badge, children }, ref) => (\n\t\t<Container width={'3rem'} height={'3rem'} style={{ position: 'relative' }} ref={ref}>\n\t\t\t{badge.show && (\n\t\t\t\t<MiniBadge badge={badge} height=\"fit\" width=\"fit\">\n\t\t\t\t\t{badge.showCount ? (\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tsize=\"extrasmall\"\n\t\t\t\t\t\t\tstyle={{ padding: '0.125rem 0.25rem', fontSize: '0.625rem' }}\n\t\t\t\t\t\t\tcolor=\"gray6\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{badge.count ?? 0}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : null}\n\t\t\t\t</MiniBadge>\n\t\t\t)}\n\t\t\t{children}\n\t\t</Container>\n\t)\n);\n\nexport default BadgeWrap;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { CSSProperties, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport {\n\tContainer,\n\tDivider,\n\tDropdown,\n\tDropdownItem,\n\tIcon,\n\tIconButton,\n\tIconButtonProps,\n\tPadding,\n\tRow,\n\tText,\n\tTooltip\n} from '@zextras/carbonio-design-system';\nimport { debounce, isEmpty, map, noop, size } from 'lodash';\nimport styled, { css, SimpleInterpolation } from 'styled-components';\n\nimport { AppBoard } from './board';\nimport { TabsList } from './board-tab-list';\nimport { ResizableContainer } from './resizable-container';\nimport {\n\tBOARD_CONTAINER_ZINDEX,\n\tBOARD_HEADER_HEIGHT,\n\tBOARD_MIN_VISIBILITY,\n\tBOARD_TAB_WIDTH,\n\tHEADER_BAR_HEIGHT,\n\tLOCAL_STORAGE_BOARD_SIZE,\n\tPRIMARY_BAR_WIDTH\n} from '../../constants';\nimport { getApp } from '../../store/app';\nimport {\n\tcloseAllBoards,\n\tcloseBoard,\n\texpandBoards,\n\tminimizeBoards,\n\tonGoToPanel,\n\treduceBoards,\n\tsetCurrentBoard,\n\tuseBoardStore\n} from '../../store/boards';\nimport { getT } from '../../store/i18n';\nimport { setElementSizeAndPosition, SizeAndPosition } from '../../utils/utils';\nimport { useLocalStorage } from '../hooks/useLocalStorage';\nimport { useMove } from '../hooks/useMove';\n\nexport const BOARD_DEFAULT_POSITION: Pick<CSSProperties, 'top' | 'left' | 'right' | 'bottom'> = {\n\tleft: '1.5rem',\n\tbottom: '0'\n};\n\nconst BoardContainerComp = styled.div<{ expanded: boolean; minimized: boolean }>`\n\tposition: fixed;\n\twidth: calc(100vw - ${PRIMARY_BAR_WIDTH});\n\theight: calc(100vh - ${HEADER_BAR_HEIGHT});\n\ttop: ${HEADER_BAR_HEIGHT};\n\tleft: ${PRIMARY_BAR_WIDTH};\n\tbackground-color: rgba(0, 0, 0, 0);\n\tpointer-events: none;\n\tz-index: ${BOARD_CONTAINER_ZINDEX};\n\t${({ expanded }): SimpleInterpolation =>\n\t\texpanded &&\n\t\tcss`\n\t\t\tbackground-color: rgba(0, 0, 0, 0.5);\n\t\t\tpointer-events: auto;\n\t\t`}\n\t${({ minimized }): SimpleInterpolation =>\n\t\tminimized &&\n\t\tcss`\n\t\t\tdisplay: none;\n\t\t`}\n`;\n\nconst OverflowContainer = styled(Container)`\n\toverflow: auto;\n`;\n\nconst Board = styled(Container)<{ expanded: boolean }>`\n\tz-index: 5;\n\tposition: absolute;\n\t${BOARD_DEFAULT_POSITION};\n\n\t${({ width }): SimpleInterpolation =>\n\t\t!width &&\n\t\tcss`\n\t\t\t/* default width and aspect ratio */\n\t\t\taspect-ratio: 4 / 3;\n\t\t\twidth: auto;\n\t\t`}\n\n\t${({ height }): SimpleInterpolation =>\n\t\t!height &&\n\t\tcss`\n\t\t\t/* default height */\n\t\t\theight: 70vh;\n\t\t\t/* on higher screen, reduce the default height */\n\t\t\t@media (min-height: 800px) {\n\t\t\t\theight: 60vh;\n\t\t\t}\n\t\t\t@media (min-height: 1000px) {\n\t\t\t\theight: 50vh;\n\t\t\t}\n\t\t`}\n\n\tmin-height: calc(${BOARD_HEADER_HEIGHT} * 3);\n\tmin-width: calc(${BOARD_TAB_WIDTH} * 2);\n\tbox-shadow: 0 0.125rem 0.3125rem 0 rgba(125, 125, 125, 0.5);\n\tpointer-events: auto;\n\tmax-height: 100%;\n\tmax-width: 100%;\n\t${({ expanded }): SimpleInterpolation =>\n\t\texpanded &&\n\t\tcss`\n\t\t\theight: calc(100% - 1.5rem) !important;\n\t\t\twidth: calc(100% - 3rem) !important;\n\t\t\ttop: 1.5rem !important;\n\t\t\tleft: 1.5rem !important;\n\t\t\tmin-height: auto;\n\t\t`};\n`;\n\nconst BoardHeader = styled(Row)`\n\tposition: relative;\n`;\n\nconst BoardDetailContainer = styled(Row)`\n\tmin-height: 0;\n`;\nconst BackButton = styled(IconButton)``;\nconst Actions = styled(Row)``;\n\ninterface ListItemContentProps {\n\ticon?: string;\n\tlabel: string;\n\tselected?: boolean;\n\tapp?: string;\n\tboardId: string;\n}\n\nfunction ListItemContent({\n\ticon,\n\tlabel,\n\tselected,\n\tapp,\n\tboardId\n}: ListItemContentProps): React.JSX.Element {\n\tconst t = getT();\n\tconst onClose = useCallback<IconButtonProps['onClick']>(\n\t\t(ev) => {\n\t\t\tev.stopPropagation();\n\t\t\tcloseBoard(boardId);\n\t\t},\n\t\t[boardId]\n\t);\n\treturn (\n\t\t<Container orientation=\"horizontal\" mainAlignment=\"flex-start\" gap={'0.5rem'}>\n\t\t\t{icon && <Icon icon={icon} size={'large'} color={'text'} style={{ pointerEvents: 'none' }} />}\n\t\t\t<OverflowContainer crossAlignment={'flex-start'}>\n\t\t\t\t<Text size={'medium'} weight={selected ? 'bold' : 'regular'} color={'gray0'}>\n\t\t\t\t\t{label}\n\t\t\t\t</Text>\n\t\t\t\t<Text size={'small'} weight={selected ? 'bold' : 'regular'} color={'secondary'}>\n\t\t\t\t\t{app &&\n\t\t\t\t\t\tt('board.from_app', 'From {{app}}', {\n\t\t\t\t\t\t\tapp\n\t\t\t\t\t\t})}\n\t\t\t\t</Text>\n\t\t\t</OverflowContainer>\n\t\t\t<IconButton icon={'CloseOutline'} size={'large'} onClick={onClose} />\n\t\t</Container>\n\t);\n}\n\nfunction calcPositionToRemainVisible(\n\tlastSavedPosition: number,\n\tcontainerSize: number,\n\tminVisibility: number\n): number {\n\tconst limit = containerSize - minVisibility;\n\tif (lastSavedPosition > limit) {\n\t\treturn limit > 0 ? limit : 0;\n\t}\n\treturn lastSavedPosition;\n}\n\nexport const BoardContainer = (): React.JSX.Element | null => {\n\tconst t = getT();\n\tconst { boards, minimized, expanded, current, orderedBoards } = useBoardStore();\n\n\tconst boardDropdownItems = useMemo(\n\t\t(): DropdownItem[] =>\n\t\t\tmap(\n\t\t\t\torderedBoards,\n\t\t\t\t(boardId): DropdownItem => ({\n\t\t\t\t\tid: boardId,\n\t\t\t\t\tlabel: boards[boardId].title,\n\t\t\t\t\ticon: boards[boardId].icon,\n\t\t\t\t\tonClick: () => setCurrentBoard(boardId),\n\t\t\t\t\tselected: boardId === current,\n\t\t\t\t\tcustomComponent: (\n\t\t\t\t\t\t<ListItemContent\n\t\t\t\t\t\t\tlabel={boards[boardId].title}\n\t\t\t\t\t\t\ticon={boards[boardId].icon}\n\t\t\t\t\t\t\tselected={boardId === current}\n\t\t\t\t\t\t\tapp={getApp(boards[boardId].app)()?.display}\n\t\t\t\t\t\t\tboardId={boardId}\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[boards, current, orderedBoards]\n\t);\n\n\tconst boardRef = useRef<HTMLDivElement>(null);\n\tconst boardContainerRef = useRef<HTMLDivElement>(null);\n\tconst [lastSavedBoardSizeAndPosition, setLastSavedBoardSizeAndPosition] = useLocalStorage<\n\t\tPartial<SizeAndPosition>\n\t>(LOCAL_STORAGE_BOARD_SIZE, {});\n\tconst [currentBoardSizeAndPosition, setCurrentBoardSizeAndPosition] = useState(\n\t\tlastSavedBoardSizeAndPosition\n\t);\n\tconst lastSavedBoardSizeAndPositionRef = useRef(lastSavedBoardSizeAndPosition);\n\tconst [isMoving, moveElementHandler] = useMove(boardRef, {\n\t\tlocalStorageKey: LOCAL_STORAGE_BOARD_SIZE\n\t});\n\n\tconst isDefaultSizeAndPosition = useMemo(\n\t\t() => size(currentBoardSizeAndPosition) === 0,\n\t\t[currentBoardSizeAndPosition]\n\t);\n\tconst isBoardEmpty = useMemo(() => isEmpty(boards), [boards]);\n\n\tconst resetSizeAndPosition = useCallback(() => {\n\t\tsetLastSavedBoardSizeAndPosition({});\n\t\treduceBoards();\n\t}, [setLastSavedBoardSizeAndPosition]);\n\n\tuseEffect(() => {\n\t\t// reset position when the board is closed\n\t\tif (isBoardEmpty) {\n\t\t\tsetLastSavedBoardSizeAndPosition((prevState) => {\n\t\t\t\tconst newState = { ...prevState };\n\t\t\t\tdelete newState.left;\n\t\t\t\tdelete newState.top;\n\t\t\t\treturn newState;\n\t\t\t});\n\t\t}\n\t}, [isBoardEmpty, setLastSavedBoardSizeAndPosition]);\n\n\tuseEffect(() => {\n\t\tif (boardRef.current) {\n\t\t\tconst boardElement = boardRef.current;\n\t\t\tsetElementSizeAndPosition(boardElement, 'width', currentBoardSizeAndPosition.width);\n\t\t\tsetElementSizeAndPosition(boardElement, 'height', currentBoardSizeAndPosition.height);\n\t\t\tsetElementSizeAndPosition(boardElement, 'top', currentBoardSizeAndPosition.top);\n\t\t\tsetElementSizeAndPosition(boardElement, 'left', currentBoardSizeAndPosition.left);\n\t\t}\n\t}, [currentBoardSizeAndPosition]);\n\n\tconst updateBoardPosition = useMemo(\n\t\t() =>\n\t\t\tdebounce(\n\t\t\t\t() => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tboardContainerRef.current &&\n\t\t\t\t\t\tboardContainerRef.current.clientHeight > 0 &&\n\t\t\t\t\t\tboardContainerRef.current.clientWidth > 0\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst newSizeAndPosition: Partial<SizeAndPosition> = {};\n\t\t\t\t\t\tif (lastSavedBoardSizeAndPositionRef.current.width !== undefined) {\n\t\t\t\t\t\t\tnewSizeAndPosition.width = lastSavedBoardSizeAndPositionRef.current.width;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (lastSavedBoardSizeAndPositionRef.current.height !== undefined) {\n\t\t\t\t\t\t\tnewSizeAndPosition.height = lastSavedBoardSizeAndPositionRef.current.height;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst boardContainer = boardContainerRef.current;\n\t\t\t\t\t\tif (lastSavedBoardSizeAndPositionRef.current.top !== undefined) {\n\t\t\t\t\t\t\tnewSizeAndPosition.top = calcPositionToRemainVisible(\n\t\t\t\t\t\t\t\tlastSavedBoardSizeAndPositionRef.current.top,\n\t\t\t\t\t\t\t\tboardContainer.clientHeight,\n\t\t\t\t\t\t\t\tBOARD_MIN_VISIBILITY.top\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (lastSavedBoardSizeAndPositionRef.current.left !== undefined) {\n\t\t\t\t\t\t\tnewSizeAndPosition.left = calcPositionToRemainVisible(\n\t\t\t\t\t\t\t\tlastSavedBoardSizeAndPositionRef.current.left,\n\t\t\t\t\t\t\t\tboardContainer.clientWidth,\n\t\t\t\t\t\t\t\tBOARD_MIN_VISIBILITY.left\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetCurrentBoardSizeAndPosition(newSizeAndPosition);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t0,\n\t\t\t\t{ leading: false, trailing: true }\n\t\t\t),\n\t\t[]\n\t);\n\n\tuseEffect(() => {\n\t\twindow.addEventListener('resize', updateBoardPosition);\n\t\treturn (): void => {\n\t\t\twindow.removeEventListener('resize', updateBoardPosition);\n\t\t};\n\t}, [updateBoardPosition]);\n\n\tuseEffect(() => {\n\t\tlastSavedBoardSizeAndPositionRef.current = { ...lastSavedBoardSizeAndPosition };\n\t\t// if there is a board open, then update the size and position based on the window\n\t\tif (boardRef.current) {\n\t\t\tif (size(lastSavedBoardSizeAndPosition) > 0) {\n\t\t\t\tupdateBoardPosition();\n\t\t\t} else {\n\t\t\t\tsetCurrentBoardSizeAndPosition({});\n\t\t\t}\n\t\t} else {\n\t\t\t// otherwise just align the current with the local storage data (refresh case, board is closed)\n\t\t\tsetCurrentBoardSizeAndPosition({ ...lastSavedBoardSizeAndPosition });\n\t\t}\n\n\t\treturn (): void => {\n\t\t\tupdateBoardPosition.cancel();\n\t\t};\n\t}, [lastSavedBoardSizeAndPosition, updateBoardPosition]);\n\n\tconst clickHandler = useCallback<\n\t\t(onClickFn: IconButtonProps['onClick']) => IconButtonProps['onClick']\n\t>(\n\t\t(clickFn) => (event) => {\n\t\t\tif (event.type !== 'click' || !event.defaultPrevented) {\n\t\t\t\tclickFn(event);\n\t\t\t}\n\t\t},\n\t\t[]\n\t);\n\n\treturn (\n\t\t(!isBoardEmpty && current && (\n\t\t\t<BoardContainerComp expanded={expanded} minimized={minimized} ref={boardContainerRef}>\n\t\t\t\t<Board\n\t\t\t\t\tdata-testid=\"NewItemContainer\"\n\t\t\t\t\tbackground={'gray6'}\n\t\t\t\t\tcrossAlignment=\"unset\"\n\t\t\t\t\texpanded={expanded}\n\t\t\t\t\tref={boardRef}\n\t\t\t\t\twidth={currentBoardSizeAndPosition.width}\n\t\t\t\t\theight={currentBoardSizeAndPosition.height}\n\t\t\t\t\tonMouseDown={(!expanded && moveElementHandler) || undefined}\n\t\t\t\t>\n\t\t\t\t\t<ResizableContainer\n\t\t\t\t\t\tcrossAlignment={'unset'}\n\t\t\t\t\t\telementToResize={boardRef}\n\t\t\t\t\t\tlocalStorageKey={LOCAL_STORAGE_BOARD_SIZE}\n\t\t\t\t\t\tdisabled={expanded}\n\t\t\t\t\t>\n\t\t\t\t\t\t<BoardHeader background={'gray5'}>\n\t\t\t\t\t\t\t<Padding all=\"extrasmall\">\n\t\t\t\t\t\t\t\t<Tooltip label={t('board.hide', 'Hide board')} placement=\"top\" disabled={isMoving}>\n\t\t\t\t\t\t\t\t\t<BackButton icon=\"BoardCollapseOutline\" onClick={clickHandler(minimizeBoards)} />\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t</Padding>\n\t\t\t\t\t\t\t<TabsList />\n\t\t\t\t\t\t\t<Actions padding={{ all: 'extrasmall' }}>\n\t\t\t\t\t\t\t\t{boards[current]?.context?.onReturnToApp && (\n\t\t\t\t\t\t\t\t\t<Padding right=\"extrasmall\">\n\t\t\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\t\t\tlabel={t('board.open_app', 'Open in app')}\n\t\t\t\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\t\t\t\tdisabled={isMoving}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\t\t\ticon={'DiagonalArrowRightUp'}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={clickHandler(onGoToPanel)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t</Padding>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<Container gap={'0.25rem'} orientation={'horizontal'} width={'fit'} height={'fit'}>\n\t\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\t\tlabel={t('board.show_tabs', 'Show other tabs')}\n\t\t\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\t\t\tdisabled={isMoving}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Dropdown items={boardDropdownItems}>\n\t\t\t\t\t\t\t\t\t\t\t<IconButton icon={'ChevronDown'} onClick={clickHandler(noop)} />\n\t\t\t\t\t\t\t\t\t\t</Dropdown>\n\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\tisDefaultSizeAndPosition\n\t\t\t\t\t\t\t\t\t\t\t\t? t('board.reset_size.disabled', 'Board already at the default position')\n\t\t\t\t\t\t\t\t\t\t\t\t: t('board.reset_size.enabled', 'Return to default position and size')\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\t\t\tdisabled={isMoving}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\t\ticon={'DiagonalArrowLeftDown'}\n\t\t\t\t\t\t\t\t\t\t\tonClick={clickHandler(resetSizeAndPosition)}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={isDefaultSizeAndPosition}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\t\t\t\t\t? t('board.reduce', 'Reduce board')\n\t\t\t\t\t\t\t\t\t\t\t\t: t('board.enlarge', 'Enlarge board')\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\t\t\tdisabled={isMoving}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\t\ticon={expanded ? 'CollapseOutline' : 'ExpandOutline'}\n\t\t\t\t\t\t\t\t\t\t\tonClick={clickHandler(expanded ? reduceBoards : expandBoards)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t</Container>\n\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\tlabel={t('board.close_tabs', 'Close all your tabs')}\n\t\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\t\tdisabled={isMoving}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<IconButton icon=\"CloseOutline\" onClick={clickHandler(closeAllBoards)} />\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t</Actions>\n\t\t\t\t\t\t</BoardHeader>\n\t\t\t\t\t\t<Divider style={{ height: '0.125rem' }} />\n\t\t\t\t\t\t<BoardDetailContainer takeAvailableSpace>\n\t\t\t\t\t\t\t{map(boards, (b) => (\n\t\t\t\t\t\t\t\t<AppBoard key={b.id} board={b} />\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</BoardDetailContainer>\n\t\t\t\t\t</ResizableContainer>\n\t\t\t\t</Board>\n\t\t\t</BoardContainerComp>\n\t\t)) ||\n\t\tnull\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 React from 'react';\n\nimport { Row } from '@zextras/carbonio-design-system';\nimport { isEmpty, map } from 'lodash';\nimport styled from 'styled-components';\n\nimport { AppBoardTab } from './board-tab';\nimport { useBoardStore } from '../../store/boards';\n\nconst CustomRow = styled(Row)`\n\toverflow-x: auto;\n\t&::-webkit-scrollbar {\n\t\theight: 0.5rem;\n\t}\n`;\n\nexport const TabsList = (): React.JSX.Element => {\n\tconst { boards, orderedBoards } = useBoardStore();\n\treturn (\n\t\t<CustomRow wrap=\"nowrap\" height=\"100%\" mainAlignment=\"flex-start\" takeAvailableSpace>\n\t\t\t{boards &&\n\t\t\t\t!isEmpty(orderedBoards) &&\n\t\t\t\tmap(orderedBoards, (boardId, idx) => (\n\t\t\t\t\t<AppBoardTab\n\t\t\t\t\t\tkey={boardId}\n\t\t\t\t\t\tid={boardId}\n\t\t\t\t\t\ttitle={boards[boardId].title}\n\t\t\t\t\t\ticon={boards[boardId].icon}\n\t\t\t\t\t\tfirstTab={idx === 0}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t</CustomRow>\n\t);\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, useEffect, useRef, useState } from 'react';\n\nimport {\n\tContainer,\n\tIcon,\n\tIconButton,\n\tRow,\n\tRowProps,\n\tText,\n\tTooltip\n} from '@zextras/carbonio-design-system';\nimport styled, { css, SimpleInterpolation } from 'styled-components';\n\nimport { closeBoard, setCurrentBoard, useBoardStore } from '../../store/boards';\nimport { getT } from '../../store/i18n';\nimport './board-tab.css';\n\nconst TabContainer = styled(Row)<RowProps & { active: boolean }>`\n\tcontainer-type: inline-size;\n\tcontainer-name: tab;\n\tmax-width: calc(3rem + 15ch);\n\tmin-width: 1rem;\n\tflex-grow: 1;\n\tflex-basis: 0;\n\tcursor: pointer;\n\theight: 1.75rem;\n\tuser-select: none;\n\tbackground-color: ${({ theme, active }): string =>\n\t\tactive ? theme.palette.gray3.regular : theme.palette.gray5.regular};\n\tgap: 0.25rem;\n\tborder-radius: 0.25rem;\n\tmargin-left: 0.25rem;\n\tmargin-right: 0.25rem;\n\toverflow: hidden;\n\t${({ active }): SimpleInterpolation =>\n\t\tactive &&\n\t\tcss`\n\t\t\tmin-width: calc(3rem + 15ch);\n\t\t`}\n`;\n\nconst CloseContainer = styled(Container)`\n\tmargin-left: auto;\n`;\n\nconst TabIcon = styled(Icon)`\n\tmin-width: 1.5rem;\n`;\n\nconst CustomText = styled(Text)<{ overflowing: boolean }>`\n\t${({ overflowing }): SimpleInterpolation =>\n\t\toverflowing &&\n\t\tcss`\n\t\t\tmask-image: linear-gradient(90deg, #000 60%, transparent);\n\t\t`}\n\ttext-overflow: unset;\n`;\n\nconst VerticalDivider = styled(Container)`\n\twidth: 0.0625rem;\n\tmin-width: 0.0625rem;\n\theight: 2.25rem;\n\tbackground: ${({ theme }): string => theme.palette.gray3.regular};\n`;\n\nexport const AppBoardTab: FC<{ id: string; icon: string; title: string; firstTab: boolean }> = ({\n\tid,\n\ticon,\n\ttitle,\n\tfirstTab\n}) => {\n\tconst current = useBoardStore((s) => s.current);\n\tconst t = getT();\n\tconst onClick = useCallback(\n\t\t(event: React.SyntheticEvent<HTMLDivElement>) => {\n\t\t\tif (!event.defaultPrevented) {\n\t\t\t\tsetCurrentBoard(id);\n\t\t\t}\n\t\t},\n\t\t[id]\n\t);\n\tconst onRemove = useCallback(\n\t\t(ev: React.SyntheticEvent | Event) => {\n\t\t\tif (!ev.defaultPrevented) {\n\t\t\t\tev.stopPropagation();\n\t\t\t\tcloseBoard(id);\n\t\t\t}\n\t\t},\n\t\t[id]\n\t);\n\n\tconst textRef = useRef<HTMLDivElement>(null);\n\tconst [textOverflowing, setTextOverflowing] = useState(false);\n\tconst resizeObserverRef = useRef<ResizeObserver>();\n\tuseEffect(() => {\n\t\tif (textRef.current && !resizeObserverRef.current) {\n\t\t\tresizeObserverRef.current = new ResizeObserver(() => {\n\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\tif (textRef.current) {\n\t\t\t\t\t\tsetTextOverflowing(textRef.current.offsetWidth < textRef.current.scrollWidth);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t\tresizeObserverRef.current.observe(textRef.current);\n\t\t}\n\n\t\treturn (): void => {\n\t\t\tresizeObserverRef.current?.disconnect();\n\t\t};\n\t}, [textRef]);\n\n\treturn (\n\t\t<>\n\t\t\t{!firstTab && <VerticalDivider />}\n\t\t\t<TabContainer\n\t\t\t\twrap={'nowrap'}\n\t\t\t\torientation=\"row\"\n\t\t\t\tmainAlignment={'flex-start'}\n\t\t\t\tonClick={onClick}\n\t\t\t\tdata-testid={`board-tab-${id}`}\n\t\t\t\tpadding={{ horizontal: 'extrasmall' }}\n\t\t\t\tactive={current === id}\n\t\t\t>\n\t\t\t\t<TabIcon icon={icon} size=\"large\" />\n\t\t\t\t<Tooltip label={title} placement=\"top\" maxWidth=\"700px\" triggerRef={textRef}>\n\t\t\t\t\t<CustomText\n\t\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\t\tweight=\"regular\"\n\t\t\t\t\t\tcolor={current === id ? 'text' : 'secondary'}\n\t\t\t\t\t\toverflowing={textOverflowing}\n\t\t\t\t\t\tclassName=\"tab-text\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</CustomText>\n\t\t\t\t</Tooltip>\n\t\t\t\t<CloseContainer orientation={'row'} width={'fit'}>\n\t\t\t\t\t<Tooltip label={t('board.close_tab', 'Close Tab')} placement=\"top\">\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tclassName=\"tab-close-icon-button\"\n\t\t\t\t\t\t\ticonColor=\"secondary\"\n\t\t\t\t\t\t\ticon=\"Close\"\n\t\t\t\t\t\t\tonClick={onRemove}\n\t\t\t\t\t\t\tstyle={{ padding: '0.125rem', width: '1.5rem', height: '1.5rem' }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t</CloseContainer>\n\t\t\t</TabContainer>\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 */\n\nimport React, { FC, useEffect, useMemo } from 'react';\n\nimport { createMemoryHistory } from 'history';\nimport { find, startsWith } from 'lodash';\nimport { Route, Router, useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { Board } from '../../../types';\nimport AppContextProvider from '../../boot/app/app-context-provider';\nimport { useAppStore } from '../../store/app';\nimport { BoardProvider, updateBoard, useBoardStore } from '../../store/boards';\nimport { stopPropagation } from '../../utils/utils';\n\nconst BoardContainer = styled.div<{ show: boolean }>`\n\tdisplay: ${(props): string => (props.show ? 'block' : 'none')};\n\theight: 100%;\n\twidth: 100%;\n\toverflow-y: auto;\n\t&::-webkit-scrollbar {\n\t\twidth: 0.5rem;\n\t}\n\n\t&::-webkit-scrollbar-track {\n\t\tbackground-color: transparent;\n\t}\n\n\t&::-webkit-scrollbar-thumb {\n\t\tbackground-color: ${({ theme }): string => theme.palette.gray3.regular};\n\t\tborder-radius: 0.25rem;\n\t}\n`;\n\nexport const AppBoard: FC<{ board: Board }> = ({ board }) => {\n\tconst current = useBoardStore((s) => s.current);\n\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\tconst history = useMemo(() => createMemoryHistory({ initialEntries: [board.url] }), []);\n\tconst boardViews = useAppStore((s) => s.views.board);\n\tconst windowHistory = useHistory();\n\tconst route = useMemo(() => {\n\t\tconst view = find(boardViews, (v) => v.id === board.url || startsWith(board.url, v.route));\n\t\tif (view)\n\t\t\treturn (\n\t\t\t\t<Route key={view.id} path={view.route}>\n\t\t\t\t\t<AppContextProvider key={view.id} pkg={view.app}>\n\t\t\t\t\t\t<BoardProvider id={board.id}>\n\t\t\t\t\t\t\t<view.component windowHistory={windowHistory} />\n\t\t\t\t\t\t</BoardProvider>\n\t\t\t\t\t</AppContextProvider>\n\t\t\t\t</Route>\n\t\t\t);\n\t\treturn null;\n\t}, [board.id, board.url, boardViews, windowHistory]);\n\tuseEffect(() => {\n\t\tconst unlisten = history.listen(({ location }) => {\n\t\t\tif (`${location.pathname}${location.search}${location.hash}` !== board.url) {\n\t\t\t\tupdateBoard(board.id, { url: `${location.pathname}${location.search}${location.hash}` });\n\t\t\t}\n\t\t});\n\t\treturn () => {\n\t\t\tunlisten();\n\t\t};\n\t}, [board.url, board.id, history]);\n\n\tuseEffect(() => {\n\t\tconst l = history.location;\n\t\tif (`${l.pathname}${l.search}${l.hash}` !== board.url) {\n\t\t\thistory.push(board.url);\n\t\t}\n\t}, [board.url, history]);\n\n\treturn (\n\t\t<BoardContainer show={current === board.id} onMouseDown={stopPropagation}>\n\t\t\t<Router history={history}>{route}</Router>\n\t\t</BoardContainer>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { CSSProperties, useMemo, useRef } from 'react';\n\nimport { Container, ContainerProps } from '@zextras/carbonio-design-system';\nimport styled, { css, SimpleInterpolation } from 'styled-components';\n\nimport { Border, BORDERS, getCursorFromBorder, useResize } from '../hooks/useResize';\n\ninterface ResizableBorderProps {\n\tborder: Border;\n\telementToResize: React.RefObject<HTMLElement>;\n\tlocalStorageKey?: string;\n\tkeepSynchedWithStorage?: boolean;\n}\n\ninterface ResizableContainerProps extends ContainerProps {\n\telementToResize: React.RefObject<HTMLElement>;\n\tlocalStorageKey?: string;\n\tkeepSynchedWithStorage?: boolean;\n\tdisabled?: boolean;\n\tminSize?: { width: number; height: number };\n}\n\ninterface BorderWithResizeProps {\n\t$cursor: CSSProperties['cursor'];\n\t$width: string;\n\t$height: string;\n\t$position: {\n\t\ttop?: number;\n\t\tbottom?: number;\n\t\tleft?: number;\n\t\tright?: number;\n\t};\n\t$translateTransform?: { x?: string; y?: string };\n}\n\nconst MainContainer = styled(Container)`\n\tposition: relative;\n\twidth: 100%;\n\theight: 100%;\n`;\n\nconst BorderWithResize = styled.div<\n\tBorderWithResizeProps & {\n\t\theight?: never;\n\t\twidth?: never;\n\t}\n>`\n\tposition: absolute;\n\tz-index: 2;\n\tcursor: ${({ $cursor }): CSSProperties['cursor'] => $cursor};\n\twidth: ${({ $width }): string => $width};\n\theight: ${({ $height }): string => $height};\n\t${({ $position }): SimpleInterpolation => $position};\n\t${({ $translateTransform }): SimpleInterpolation =>\n\t\t($translateTransform?.x || $translateTransform?.y) &&\n\t\tcss`\n\t\t\ttransform: translate(${$translateTransform?.x || 0}, ${$translateTransform?.y || 0});\n\t\t`}\n`;\n\nconst ResizableBorder = ({\n\tborder,\n\telementToResize,\n\tlocalStorageKey,\n\tkeepSynchedWithStorage\n}: ResizableBorderProps): React.JSX.Element => {\n\tconst borderRef = useRef<HTMLDivElement>(null);\n\tconst resizeHandler = useResize(elementToResize, border, {\n\t\tlocalStorageKey,\n\t\tkeepSynchedWithStorage\n\t});\n\n\tconst sizes = useMemo<Pick<BorderWithResizeProps, '$width' | '$height'>>(() => {\n\t\tswitch (border) {\n\t\t\tcase 'n':\n\t\t\tcase 's':\n\t\t\t\treturn {\n\t\t\t\t\t$width: '100%',\n\t\t\t\t\t$height: '0.25rem'\n\t\t\t\t};\n\t\t\tcase 'e':\n\t\t\tcase 'w':\n\t\t\t\treturn {\n\t\t\t\t\t$width: '0.25rem',\n\t\t\t\t\t$height: '100%'\n\t\t\t\t};\n\t\t\tcase 'ne':\n\t\t\tcase 'nw':\n\t\t\tcase 'se':\n\t\t\tcase 'sw':\n\t\t\tdefault:\n\t\t\t\treturn {\n\t\t\t\t\t$width: '0.25rem',\n\t\t\t\t\t$height: '0.25rem'\n\t\t\t\t};\n\t\t}\n\t}, [border]);\n\n\tconst positions = useMemo<\n\t\tPick<BorderWithResizeProps, '$position' | '$translateTransform'>\n\t>(() => {\n\t\tconst $position: BorderWithResizeProps['$position'] = {};\n\t\tconst $translateTransform: BorderWithResizeProps['$translateTransform'] = {};\n\t\tif (border.includes('n')) {\n\t\t\t$position.top = 0;\n\t\t\t$translateTransform.y = '-50%';\n\t\t}\n\t\tif (border.includes('s')) {\n\t\t\t$position.bottom = 0;\n\t\t\t$translateTransform.y = '50%';\n\t\t}\n\t\tif (border.includes('e')) {\n\t\t\t$position.right = 0;\n\t\t\t$translateTransform.x = '50%';\n\t\t}\n\t\tif (border.includes('w')) {\n\t\t\t$position.left = 0;\n\t\t\t$translateTransform.x = '-50%';\n\t\t}\n\t\treturn { $position, $translateTransform };\n\t}, [border]);\n\n\treturn (\n\t\t<BorderWithResize\n\t\t\tref={borderRef}\n\t\t\t{...sizes}\n\t\t\t{...positions}\n\t\t\t$cursor={getCursorFromBorder(border)}\n\t\t\tonMouseDown={resizeHandler}\n\t\t\tdata-testid={`resizable-border-${border}`}\n\t\t/>\n\t);\n};\n\nexport const ResizableContainer = ({\n\telementToResize,\n\tchildren,\n\tlocalStorageKey,\n\tdisabled = false,\n\tkeepSynchedWithStorage,\n\t...rest\n}: ResizableContainerProps): React.JSX.Element => {\n\tconst borders = useMemo(\n\t\t() =>\n\t\t\tBORDERS.map((border) => (\n\t\t\t\t<ResizableBorder\n\t\t\t\t\tkey={`resizable-border-${border}`}\n\t\t\t\t\tborder={border}\n\t\t\t\t\telementToResize={elementToResize}\n\t\t\t\t\tlocalStorageKey={localStorageKey}\n\t\t\t\t\tkeepSynchedWithStorage={keepSynchedWithStorage}\n\t\t\t\t/>\n\t\t\t)),\n\t\t[elementToResize, keepSynchedWithStorage, localStorageKey]\n\t);\n\n\treturn (\n\t\t<MainContainer {...rest}>\n\t\t\t{!disabled && borders}\n\t\t\t{children}\n\t\t</MainContainer>\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { FunctionComponent } from 'react';\n\nimport { Icon } from '@zextras/carbonio-design-system';\nimport styled from 'styled-components';\n\nconst VerticalDivider = styled.div`\n\tposition: relative;\n\toverflow: visible;\n\theight: 100%;\n\twidth: 0.0625rem;\n\tmax-width: 0.0625rem;\n\tmin-width: 0.0625rem;\n\tbackground-color: ${({ theme }): string => theme.palette.gray2.regular};\n\ttransition: background 0.2s;\n\t&:hover {\n\t\tbackground-color: ${({ theme }): string => theme.palette.gray2.hover};\n\t}\n`;\n\nconst Bubble = styled.div<{ open: boolean }>`\n\tcursor: pointer;\n\tz-index: 2;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tposition: absolute;\n\ttop: 50%;\n\tleft: -0.75rem;\n\twidth: 1.5rem;\n\theight: 1.5rem;\n\tborder-radius: 50%;\n\tbackground-color: ${({ theme }): string => theme.palette.gray2.regular};\n\ttransition: background-color 0.2s, transform 0.2s;\n\ttransform: scaleX(${({ open }): number => (open ? 1 : -1)});\n\t&:hover {\n\t\tbackground-color: ${({ theme }): string => theme.palette.gray2.hover};\n\t}\n\t&:active {\n\t\tbackground-color: ${({ theme }): string => theme.palette.gray2.active};\n\t}\n`;\n\nexport const Collapser: FunctionComponent<{ open: boolean; onClick: () => void }> = ({\n\topen,\n\tonClick\n}) => (\n\t<VerticalDivider>\n\t\t<Bubble onClick={onClick} open={open}>\n\t\t\t<Icon size=\"medium\" icon=\"ChevronLeft\" />\n\t\t</Bubble>\n\t</VerticalDivider>\n);\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, useState } from 'react';\n\nimport {\n\tButton,\n\tContainer,\n\tDropdown,\n\ttype DropdownItem,\n\tMultiButton\n} from '@zextras/carbonio-design-system';\nimport { Location } from 'history';\nimport { find, groupBy, noop, reduce } from 'lodash';\nimport { useLocation } from 'react-router-dom';\n\nimport { AppRoute, CarbonioModule } from '../../types';\nimport { ACTION_TYPES } from '../constants';\nimport { useCurrentRoute } from '../history/hooks';\nimport { useAppList } from '../store/app';\nimport { getT } from '../store/i18n';\nimport { useActions } from '../store/integrations/hooks';\n\ninterface CreationButtonProps {\n\tactiveRoute: AppRoute;\n\tlocation: Location;\n}\n\nexport const CreationButtonComponent = ({\n\tactiveRoute,\n\tlocation\n}: CreationButtonProps): React.JSX.Element => {\n\tconst t = getT();\n\tconst actions = useActions({ activeRoute, location }, ACTION_TYPES.NEW);\n\tconst [open, setOpen] = useState(false);\n\tconst primaryAction = useMemo(\n\t\t() =>\n\t\t\tfind(\n\t\t\t\tactions,\n\t\t\t\t(action) =>\n\t\t\t\t\t(action.group === activeRoute?.id || action.group === activeRoute?.app) &&\n\t\t\t\t\taction.primary === true\n\t\t\t),\n\t\t[actions, activeRoute?.app, activeRoute?.id]\n\t);\n\tconst apps = useAppList();\n\tconst byApp = useMemo(() => groupBy(actions, 'group'), [actions]);\n\n\tconst secondaryActions = useMemo<DropdownItem[]>(\n\t\t(): DropdownItem[] => [\n\t\t\t...(byApp[activeRoute?.app ?? ''] ?? []),\n\t\t\t...reduce<CarbonioModule, DropdownItem[]>(\n\t\t\t\tapps,\n\t\t\t\t(acc, app, i): DropdownItem[] => {\n\t\t\t\t\tif (app.name !== activeRoute?.app && byApp[app.name]?.length > 0) {\n\t\t\t\t\t\tacc.push({ type: 'divider', label: '', id: `divider-${i}` }, ...byApp[app.name]);\n\t\t\t\t\t}\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\t[]\n\t\t\t)\n\t\t],\n\t\t[activeRoute?.app, apps, byApp]\n\t);\n\n\tconst onClose = useCallback(() => {\n\t\tsetOpen(false);\n\t}, []);\n\tconst onOpen = useCallback(() => {\n\t\tsetOpen(true);\n\t}, []);\n\n\treturn primaryAction ? (\n\t\t<Container minWidth=\"80px\">\n\t\t\t<MultiButton\n\t\t\t\tdata-testid=\"NewItemButton\"\n\t\t\t\tsize=\"extralarge\"\n\t\t\t\tbackground={'primary'}\n\t\t\t\tlabel={t('new', 'New')}\n\t\t\t\tonClick={primaryAction.onClick || primaryAction.click || noop}\n\t\t\t\titems={secondaryActions}\n\t\t\t\tdisabledPrimary={!primaryAction || primaryAction?.disabled}\n\t\t\t\tdisabledSecondary={!secondaryActions?.length}\n\t\t\t/>\n\t\t</Container>\n\t) : (\n\t\t<Dropdown items={secondaryActions} onClose={onClose} onOpen={onOpen}>\n\t\t\t<Button\n\t\t\t\tdata-testid=\"NewItemButton\"\n\t\t\t\tsize=\"extralarge\"\n\t\t\t\tbackgroundColor=\"primary\"\n\t\t\t\tlabel={t('new', 'New')}\n\t\t\t\ticon={open ? 'ChevronUp' : 'ChevronDown'}\n\t\t\t\tonClick={noop}\n\t\t\t/>\n\t\t</Dropdown>\n\t);\n};\n\nconst MemoCreationButton = React.memo(CreationButtonComponent);\n\nexport const CreationButton: FC = () => {\n\tconst locationFull = useLocation() as Location;\n\tconst activeRoute = useCurrentRoute() as AppRoute;\n\n\tconst truncateLocation = (location: Location): Location => ({\n\t\t...location,\n\t\tpathname: location?.pathname?.split('/').slice(0, 2).join('/'),\n\t\tkey: ''\n\t});\n\n\tconst location = useMemo(() => truncateLocation(locationFull), [locationFull]);\n\treturn <MemoCreationButton activeRoute={activeRoute} location={location} />;\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useContext } from 'react';\n\nimport ShellContext from '../shell-context';\n\nexport function useIsMobile(): boolean {\n\tconst { isMobile } = useContext(ShellContext);\n\treturn isMobile;\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, useMemo, useRef } from 'react';\n\nimport { create } from 'zustand';\n\nimport { createExportForTestOnly } from '../../utils/utils';\n\nfunction isSameLocalStorageValue(valueA: unknown, valueB: unknown): boolean {\n\treturn JSON.stringify(valueA) === JSON.stringify(valueB);\n}\n\ntype LocalStorageOptions = { keepSynchedWithStorage?: boolean };\n\ntype LocalStorageState = {\n\tstorage: Record<string, any>;\n\treadValue: <T>(key: string, fallback: T) => void;\n\tsetValue: <T>(key: string, value: React.SetStateAction<T>) => void;\n};\n\nconst useLocalStorageStore = create<LocalStorageState>()((setState) => ({\n\tstorage: {},\n\treadValue<T>(key: string, fallback: T): void {\n\t\ttry {\n\t\t\tconst localStorageItem = window.localStorage.getItem(key);\n\t\t\tconst item = localStorageItem !== null ? JSON.parse(localStorageItem) : fallback;\n\t\t\tsetState((state) => {\n\t\t\t\tif (state.storage[key] === undefined) {\n\t\t\t\t\treturn { storage: { ...state.storage, [key]: item } };\n\t\t\t\t}\n\t\t\t\treturn state;\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tconsole.error(error);\n\t\t\tsetState((state) => ({ storage: { ...state.storage, [key]: fallback } }));\n\t\t}\n\t},\n\tsetValue<T>(key: string, value: React.SetStateAction<T>): void {\n\t\tsetState((state) => {\n\t\t\tconst valueToStore = value instanceof Function ? value(state.storage[key]) : value;\n\t\t\tif (!isSameLocalStorageValue(valueToStore, state.storage[key])) {\n\t\t\t\twindow.localStorage.setItem(key, JSON.stringify(valueToStore));\n\t\t\t\treturn { storage: { ...state.storage, [key]: valueToStore } };\n\t\t\t}\n\t\t\treturn state;\n\t\t});\n\t}\n}));\n\nconst DEFAULT_OPTIONS: LocalStorageOptions = {\n\tkeepSynchedWithStorage: true\n};\n\nexport function useLocalStorage<T>(\n\tkey: string,\n\tinitialValue: T,\n\toptions = DEFAULT_OPTIONS\n): [T, React.Dispatch<React.SetStateAction<T>>] {\n\tconst storedValue = useLocalStorageStore((state) => state.storage[key] || initialValue);\n\tconst shouldDispatchStorageEventRef = useRef(false);\n\tconst localStorageOptions = useMemo(() => ({ ...DEFAULT_OPTIONS, ...options }), [options]);\n\n\tconst readValueForKey = useCallback(() => {\n\t\tuseLocalStorageStore.getState().readValue(key, initialValue);\n\t}, [key, initialValue]);\n\n\tuseEffect(() => {\n\t\treadValueForKey();\n\t}, [readValueForKey]);\n\n\tconst setValueForKey = useCallback<React.Dispatch<React.SetStateAction<T>>>(\n\t\t(value) => {\n\t\t\tuseLocalStorageStore.getState().setValue(key, value);\n\t\t\tshouldDispatchStorageEventRef.current = true;\n\t\t},\n\t\t[key]\n\t);\n\n\tuseEffect(() => {\n\t\tif (localStorageOptions?.keepSynchedWithStorage) {\n\t\t\twindow.addEventListener('storage', readValueForKey);\n\t\t}\n\n\t\treturn (): void => {\n\t\t\twindow.removeEventListener('storage', readValueForKey);\n\t\t};\n\t}, [localStorageOptions?.keepSynchedWithStorage, readValueForKey]);\n\n\tuseEffect(() => {\n\t\tif (shouldDispatchStorageEventRef.current) {\n\t\t\t// dispatch event when stored value change,\n\t\t\t// but only after render to avoid possible update of parent component during render\n\t\t\twindow.dispatchEvent(new Event('storage'));\n\t\t\tshouldDispatchStorageEventRef.current = false;\n\t\t}\n\t}, [storedValue]);\n\n\treturn [storedValue, setValueForKey];\n}\n\nexport const exportForTest = createExportForTestOnly({ useLocalStorageStore });\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, useState } from 'react';\n\nimport { forEach } from 'lodash';\n\nimport { useLocalStorage } from './useLocalStorage';\nimport {\n\tElementPosition,\n\tsetElementSizeAndPosition,\n\tsetGlobalCursor,\n\tSizeAndPosition\n} from '../../utils/utils';\n\ntype UseMoveReturnType = [isMoving: boolean, moveHandler: React.MouseEventHandler];\ntype MoveOptions = {\n\tlocalStorageKey?: string;\n\tkeepSynchedWithStorage?: boolean;\n};\n\nexport const BOARD_CURSOR_TIMEOUT = 250;\n\nfunction calcNewPosition(\n\tfrom: SizeAndPosition & {\n\t\tclientTop: number;\n\t\tclientLeft: number;\n\t\tmouseClientX: number;\n\t\tmouseClientY: number;\n\t},\n\tlimitContainer: HTMLElement,\n\tmouseEvent: MouseEvent\n): ElementPosition {\n\tconst limitClientRect = limitContainer.getBoundingClientRect();\n\tconst clientTopLimit = limitClientRect.top ?? 0;\n\tconst moveTopDelta = mouseEvent.clientY - from.mouseClientY;\n\tconst newClientTop = from.clientTop + moveTopDelta;\n\tconst newTop = from.top + moveTopDelta;\n\tconst clientLeftLimit = limitClientRect.left ?? 0;\n\tconst moveLeftDelta = mouseEvent.clientX - from.mouseClientX;\n\tconst newClientLeft = from.clientLeft + moveLeftDelta;\n\tconst newLeft = from.left + moveLeftDelta;\n\treturn {\n\t\tleft: newClientLeft > clientLeftLimit ? newLeft : 0,\n\t\ttop: newClientTop > clientTopLimit ? newTop : 0\n\t};\n}\n\nexport const useMove = (\n\telementToMoveRef: React.RefObject<HTMLElement>,\n\toptions?: MoveOptions\n): UseMoveReturnType => {\n\tconst [isMoving, setIsMoving] = useState(false);\n\tconst isMoveEnabledRef = useRef(false);\n\tconst initialSizeAndPositionRef = useRef<Parameters<typeof calcNewPosition>[0]>();\n\tconst [lastSavedPosition, setLastSavedPosition] = useLocalStorage<Partial<SizeAndPosition>>(\n\t\toptions?.localStorageKey || 'use-move-data',\n\t\t{},\n\t\t{ keepSynchedWithStorage: options?.keepSynchedWithStorage }\n\t);\n\tconst lastPositionRef = useRef<Partial<ElementPosition>>(lastSavedPosition);\n\tconst globalCursorSetterTimerRef = useRef<ReturnType<typeof setTimeout>>();\n\tconst shouldUpdateLocalStorageRef = useRef(false);\n\n\tconst moveElement = useCallback(\n\t\t({ left, top }: ElementPosition) => {\n\t\t\tif (elementToMoveRef.current) {\n\t\t\t\tconst elementToMove = elementToMoveRef.current;\n\t\t\t\tconst positionToApply: Partial<ElementPosition> = lastPositionRef.current;\n\t\t\t\tif (top >= 0) {\n\t\t\t\t\tpositionToApply.top = top;\n\t\t\t\t}\n\t\t\t\tif (left >= 0) {\n\t\t\t\t\tpositionToApply.left = left;\n\t\t\t\t}\n\t\t\t\tforEach(positionToApply, (value, key) => {\n\t\t\t\t\tsetElementSizeAndPosition(elementToMove, key as keyof ElementPosition, value);\n\t\t\t\t});\n\t\t\t\tlastPositionRef.current = positionToApply;\n\t\t\t}\n\t\t},\n\t\t[elementToMoveRef]\n\t);\n\n\tuseEffect(() => {\n\t\tlastPositionRef.current = { ...lastSavedPosition };\n\t}, [elementToMoveRef, lastSavedPosition]);\n\n\tconst preventClick = useCallback((event: MouseEvent) => {\n\t\tevent.preventDefault();\n\t\tdocument.body.removeEventListener('click', preventClick, { capture: true });\n\t}, []);\n\n\tconst onMouseMove = useCallback(\n\t\t(mouseMoveEvent: MouseEvent) => {\n\t\t\t// prevent clickable elements from being clicked if a move has been made\n\t\t\tdocument.body.addEventListener('click', preventClick, { capture: true });\n\t\t\tif (initialSizeAndPositionRef.current && elementToMoveRef.current) {\n\t\t\t\tconst offsetParent =\n\t\t\t\t\t(elementToMoveRef.current.offsetParent instanceof HTMLElement &&\n\t\t\t\t\t\telementToMoveRef.current.offsetParent) ||\n\t\t\t\t\tdocument.body;\n\n\t\t\t\tconst newPosition = calcNewPosition(\n\t\t\t\t\tinitialSizeAndPositionRef.current,\n\t\t\t\t\toffsetParent,\n\t\t\t\t\tmouseMoveEvent\n\t\t\t\t);\n\t\t\t\tmoveElement({\n\t\t\t\t\tleft: newPosition.left,\n\t\t\t\t\ttop: newPosition.top\n\t\t\t\t});\n\t\t\t\tshouldUpdateLocalStorageRef.current = true;\n\t\t\t}\n\t\t},\n\t\t[elementToMoveRef, moveElement, preventClick]\n\t);\n\n\tconst enableMove = useCallback(() => {\n\t\tif (document.activeElement && document.activeElement instanceof HTMLElement) {\n\t\t\tdocument.activeElement.classList.add('no-active-background');\n\t\t}\n\t\tdocument.body.addEventListener('mousemove', onMouseMove);\n\t\tsetGlobalCursor('move');\n\t\tisMoveEnabledRef.current = true;\n\t\tsetIsMoving(true);\n\t}, [onMouseMove]);\n\n\tconst disableMove = useCallback(() => {\n\t\tif (document.activeElement && document.activeElement instanceof HTMLElement) {\n\t\t\tdocument.activeElement.classList.remove('no-active-background');\n\t\t}\n\t\tdocument.body.removeEventListener('mousemove', onMouseMove);\n\t\tsetGlobalCursor(undefined);\n\t\tisMoveEnabledRef.current = false;\n\t\tsetIsMoving(false);\n\t}, [onMouseMove]);\n\n\tconst onMouseUp = useCallback(() => {\n\t\tif (globalCursorSetterTimerRef.current) {\n\t\t\tclearTimeout(globalCursorSetterTimerRef.current);\n\t\t}\n\t\tif (isMoveEnabledRef.current) {\n\t\t\tdisableMove();\n\t\t}\n\t\tdocument.body.removeEventListener('mouseup', onMouseUp);\n\t\tif (options?.localStorageKey && shouldUpdateLocalStorageRef.current) {\n\t\t\tsetLastSavedPosition(lastPositionRef.current);\n\t\t\tshouldUpdateLocalStorageRef.current = false;\n\t\t}\n\t}, [disableMove, options?.localStorageKey, setLastSavedPosition]);\n\n\tconst moveHandler = useCallback(\n\t\t(mouseDownEvent: React.MouseEvent) => {\n\t\t\tif (!mouseDownEvent.defaultPrevented && elementToMoveRef.current) {\n\t\t\t\tconst clientRect = elementToMoveRef.current.getBoundingClientRect();\n\t\t\t\tinitialSizeAndPositionRef.current = {\n\t\t\t\t\twidth: elementToMoveRef.current.offsetWidth,\n\t\t\t\t\theight: elementToMoveRef.current.offsetHeight,\n\t\t\t\t\tleft: elementToMoveRef.current.offsetLeft,\n\t\t\t\t\ttop: elementToMoveRef.current.offsetTop,\n\t\t\t\t\tclientTop: clientRect.top,\n\t\t\t\t\tclientLeft: clientRect.left,\n\t\t\t\t\tmouseClientY: mouseDownEvent.clientY,\n\t\t\t\t\tmouseClientX: mouseDownEvent.clientX\n\t\t\t\t};\n\t\t\t\tglobalCursorSetterTimerRef.current = setTimeout(enableMove, BOARD_CURSOR_TIMEOUT);\n\t\t\t\tdocument.body.addEventListener('mouseup', onMouseUp);\n\t\t\t}\n\t\t},\n\t\t[elementToMoveRef, enableMove, onMouseUp]\n\t);\n\n\treturn [isMoving, moveHandler];\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { CSSProperties, useCallback, useEffect, useRef } from 'react';\n\nimport { find, forEach } from 'lodash';\n\nimport { useLocalStorage } from './useLocalStorage';\nimport {\n\tcreateExportForTestOnly,\n\tsetElementSizeAndPosition,\n\tsetGlobalCursor,\n\tSizeAndPosition\n} from '../../utils/utils';\n\n/**\n * Define the border following the cardinal points (north, south, west, east).\n * Similar to the definition of the cursor for the pointer\n */\nexport type Border = 'n' | 's' | 'e' | 'w' | 'ne' | 'sw' | 'nw' | 'se';\n\ntype UseResizableReturnType = React.MouseEventHandler;\n\ntype ResizeOptions = {\n\tlocalStorageKey?: string;\n\tkeepSynchedWithStorage?: boolean;\n};\n\nexport const BORDERS: Border[] = ['n', 's', 'e', 'w', 'ne', 'se', 'sw', 'nw'];\n\nexport function getCursorFromBorder(border: Border): NonNullable<CSSProperties['cursor']> {\n\tconst direction = find(\n\t\t[\n\t\t\t['n', 's'],\n\t\t\t['e', 'w'],\n\t\t\t['ne', 'sw'],\n\t\t\t['nw', 'se']\n\t\t],\n\t\t(borders) => borders.includes(border)\n\t)?.join('');\n\treturn (direction && direction.concat('-resize')) || '';\n}\n\nfunction calcNewSizeAndPosition(\n\tborder: Border,\n\tfrom: { clientTop: number; clientLeft: number } & SizeAndPosition,\n\tmouseEvent: MouseEvent\n): SizeAndPosition {\n\tconst newSizeAndPosition = {\n\t\ttop: from.top,\n\t\tleft: from.left,\n\t\theight: from.height,\n\t\twidth: from.width\n\t};\n\tif (border.includes('n')) {\n\t\tconst heightDifference = from.clientTop - mouseEvent.clientY;\n\t\tnewSizeAndPosition.height = from.height + heightDifference;\n\t\tnewSizeAndPosition.top = from.top - heightDifference;\n\t}\n\tif (border.includes('s')) {\n\t\tnewSizeAndPosition.height = mouseEvent.clientY - from.clientTop;\n\t}\n\tif (border.includes('e')) {\n\t\tnewSizeAndPosition.width = mouseEvent.clientX - from.clientLeft;\n\t}\n\tif (border.includes('w')) {\n\t\tconst widthDifference = from.clientLeft - mouseEvent.clientX;\n\t\tnewSizeAndPosition.width = from.width + widthDifference;\n\t\tnewSizeAndPosition.left = from.left - widthDifference;\n\t}\n\treturn newSizeAndPosition;\n}\n\nexport const useResize = (\n\telementToResizeRef: React.RefObject<HTMLElement>,\n\tborder: Border,\n\toptions?: ResizeOptions\n): UseResizableReturnType => {\n\tconst initialSizeAndPositionRef = useRef<Parameters<typeof calcNewSizeAndPosition>[1]>();\n\tconst [lastSavedSizeAndPosition, setLastSavedSizeAndPosition] = useLocalStorage<\n\t\tPartial<SizeAndPosition>\n\t>(\n\t\toptions?.localStorageKey || 'use-resize-data',\n\t\t{},\n\t\t{ keepSynchedWithStorage: options?.keepSynchedWithStorage }\n\t);\n\tconst lastSizeAndPositionRef = useRef<Partial<SizeAndPosition>>(lastSavedSizeAndPosition);\n\n\tuseEffect(() => {\n\t\tlastSizeAndPositionRef.current = { ...lastSavedSizeAndPosition };\n\t}, [lastSavedSizeAndPosition]);\n\n\tconst resizeElement = useCallback(\n\t\t({ width, height, top, left }: SizeAndPosition) => {\n\t\t\tif (elementToResizeRef.current) {\n\t\t\t\tconst elementToResize = elementToResizeRef.current;\n\t\t\t\tconst sizeAndPositionToApply: Partial<SizeAndPosition> = lastSizeAndPositionRef.current;\n\t\t\t\tconst computedStyle = getComputedStyle(elementToResizeRef.current);\n\t\t\t\tconst minHeight = parseFloat(computedStyle.minHeight) || 0;\n\t\t\t\tconst minWidth = parseFloat(computedStyle.minWidth) || 0;\n\t\t\t\tif (top >= 0 && height >= minHeight) {\n\t\t\t\t\tsizeAndPositionToApply.height = height;\n\t\t\t\t\tsizeAndPositionToApply.top = top;\n\t\t\t\t}\n\t\t\t\tif (left >= 0 && width >= minWidth) {\n\t\t\t\t\tsizeAndPositionToApply.width = width;\n\t\t\t\t\tsizeAndPositionToApply.left = left;\n\t\t\t\t}\n\t\t\t\tforEach(sizeAndPositionToApply, (value, key) => {\n\t\t\t\t\tsetElementSizeAndPosition(elementToResize, key as keyof SizeAndPosition, value);\n\t\t\t\t});\n\t\t\t\t// reset bottom in favor of top\n\t\t\t\telementToResize.style.bottom = '';\n\t\t\t\t// reset right in favor of left\n\t\t\t\telementToResize.style.right = '';\n\t\t\t\tlastSizeAndPositionRef.current = sizeAndPositionToApply;\n\t\t\t}\n\t\t},\n\t\t[elementToResizeRef]\n\t);\n\n\tconst onMouseMove = useCallback(\n\t\t(mouseMoveEvent: MouseEvent) => {\n\t\t\tif (initialSizeAndPositionRef.current) {\n\t\t\t\tconst newSizeAndPosition = calcNewSizeAndPosition(\n\t\t\t\t\tborder,\n\t\t\t\t\tinitialSizeAndPositionRef.current,\n\t\t\t\t\tmouseMoveEvent\n\t\t\t\t);\n\t\t\t\tresizeElement(newSizeAndPosition);\n\t\t\t}\n\t\t},\n\t\t[border, resizeElement]\n\t);\n\n\tconst onMouseUp = useCallback(() => {\n\t\tsetGlobalCursor(undefined);\n\t\tdocument.body.removeEventListener('mousemove', onMouseMove);\n\t\tdocument.body.removeEventListener('mouseup', onMouseUp);\n\t\tif (options?.localStorageKey) {\n\t\t\tsetLastSavedSizeAndPosition(lastSizeAndPositionRef.current);\n\t\t}\n\t}, [onMouseMove, options?.localStorageKey, setLastSavedSizeAndPosition]);\n\n\treturn useCallback(\n\t\t(mouseDownEvent: React.MouseEvent | MouseEvent) => {\n\t\t\tif (!mouseDownEvent.defaultPrevented && elementToResizeRef.current) {\n\t\t\t\tmouseDownEvent.preventDefault();\n\t\t\t\tconst clientRect = elementToResizeRef.current.getBoundingClientRect();\n\t\t\t\tinitialSizeAndPositionRef.current = {\n\t\t\t\t\twidth: elementToResizeRef.current.offsetWidth,\n\t\t\t\t\theight: elementToResizeRef.current.offsetHeight,\n\t\t\t\t\ttop: elementToResizeRef.current.offsetTop,\n\t\t\t\t\tleft: elementToResizeRef.current.offsetLeft,\n\t\t\t\t\tclientTop: clientRect.top,\n\t\t\t\t\tclientLeft: clientRect.left\n\t\t\t\t};\n\t\t\t\tsetGlobalCursor(getCursorFromBorder(border));\n\t\t\t\tdocument.body.addEventListener('mousemove', onMouseMove);\n\t\t\t\tdocument.body.addEventListener('mouseup', onMouseUp);\n\t\t\t}\n\t\t},\n\t\t[border, elementToResizeRef, onMouseMove, onMouseUp]\n\t);\n};\n\nexport const exportForTest = createExportForTestOnly({ calcNewSizeAndPosition });\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 { useLogo } from '../store/login/hooks';\nimport { useLoginConfigStore } from '../store/login/store';\n\nexport const Logo = (props: Record<string, unknown>): React.JSX.Element => {\n\tconst { loaded } = useLoginConfigStore();\n\tconst LogoElement = useLogo();\n\n\treturn loaded ? (\n\t\t(typeof LogoElement === 'string' && <img alt={''} {...props} src={LogoElement} />) || (\n\t\t\t<LogoElement {...props} />\n\t\t)\n\t) : (\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 */\n\nimport React, { useMemo } from 'react';\n\nimport { useScreenMode } from '@zextras/carbonio-design-system';\n\nimport ShellContext from './shell-context';\n\ninterface ShellContextProviderProps {\n\tchildren: React.ReactNode;\n}\n\nconst ShellContextProvider = ({ children }: ShellContextProviderProps): React.JSX.Element => {\n\tconst screenMode = useScreenMode();\n\n\tconst value = useMemo(\n\t\t() => ({\n\t\t\tisMobile: screenMode === 'mobile'\n\t\t}),\n\t\t[screenMode]\n\t);\n\n\treturn <ShellContext.Provider value={value}>{children}</ShellContext.Provider>;\n};\n\nexport default ShellContextProvider;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { createContext } from 'react';\n\nconst ShellContext = createContext({ isMobile: true });\n\nexport default ShellContext;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React from 'react';\n\nimport {\n\tCatcher,\n\tContainer,\n\tPadding,\n\tResponsive,\n\tuseScreenMode\n} from '@zextras/carbonio-design-system';\nimport styled from 'styled-components';\n\nimport { CreationButton } from './creation-button';\nimport { Logo } from './logo';\nimport { BOARD_CONTAINER_ZINDEX, HEADER_BAR_HEIGHT } from '../constants';\nimport { useDarkMode } from '../dark-mode/use-dark-mode';\nimport { SearchBar } from '../search/search-bar';\nimport { useAppStore } from '../store/app';\n\nconst StyledLogo = styled(Logo)`\n\theight: 2rem;\n`;\n\nconst ShellHeaderContainer = styled(Container)`\n\tz-index: ${BOARD_CONTAINER_ZINDEX + 1};\n`;\n\ninterface ShellHeaderProps {\n\tchildren: React.ReactNode | React.ReactNode[];\n}\n\nconst ShellHeader = ({ children }: ShellHeaderProps): React.JSX.Element => {\n\tconst { darkReaderStatus } = useDarkMode();\n\n\tconst screenMode = useScreenMode();\n\tconst searchEnabled = useAppStore((s) => s.views.search.length > 0);\n\treturn (\n\t\t<ShellHeaderContainer\n\t\t\tdata-testid=\"MainHeaderContainer\"\n\t\t\torientation=\"horizontal\"\n\t\t\tbackground={'gray3'}\n\t\t\twidth=\"fill\"\n\t\t\theight={HEADER_BAR_HEIGHT}\n\t\t\tminHeight={HEADER_BAR_HEIGHT}\n\t\t\tmaxHeight={HEADER_BAR_HEIGHT}\n\t\t\tmainAlignment=\"space-between\"\n\t\t\tpadding={{\n\t\t\t\thorizontal: screenMode === 'desktop' ? 'large' : 'extrasmall',\n\t\t\t\tvertical: 'small'\n\t\t\t}}\n\t\t>\n\t\t\t<Catcher>\n\t\t\t\t<Container\n\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\t\tminWidth=\"fit-content\"\n\t\t\t\t\tdata-testid=\"HeaderMainLogoContainer\"\n\t\t\t\t>\n\t\t\t\t\t<Container width=\"15.625rem\" height=\"2rem\" crossAlignment=\"flex-start\">\n\t\t\t\t\t\t{darkReaderStatus && <StyledLogo />}\n\t\t\t\t\t</Container>\n\t\t\t\t\t<Padding horizontal=\"large\">\n\t\t\t\t\t\t<CreationButton />\n\t\t\t\t\t</Padding>\n\t\t\t\t\t<Responsive mode=\"desktop\">{searchEnabled && <SearchBar />}</Responsive>\n\t\t\t\t</Container>\n\t\t\t\t<Container orientation=\"horizontal\" width=\"auto\" mainAlignment=\"flex-end\">\n\t\t\t\t\t<Responsive mode=\"desktop\">{children}</Responsive>\n\t\t\t\t</Container>\n\t\t\t</Catcher>\n\t\t</ShellHeaderContainer>\n\t);\n};\nexport default ShellHeader;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useEffect, useMemo, useRef } from 'react';\n\nimport { Container, IconButton, Row, Tooltip } from '@zextras/carbonio-design-system';\nimport { map, isEmpty, trim, filter, sortBy, noop } from 'lodash';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport BadgeWrap from './badge-wrap';\nimport { PrimaryAccessoryView, PrimaryBarView } from '../../types';\nimport AppContextProvider from '../boot/app/app-context-provider';\nimport {\n\tBOARD_CONTAINER_ZINDEX,\n\tIS_STANDALONE,\n\tPRIMARY_BAR_WIDTH,\n\tSEARCH_APP_ID\n} from '../constants';\nimport { useCurrentRoute } from '../history/hooks';\nimport { useAppStore } from '../store/app';\nimport { minimizeBoards, reopenBoards, useBoardStore } from '../store/boards';\nimport { checkRoute } from '../utility-bar/utils';\n\nconst PrimaryBarContainer = styled(Container)`\n\tborder-right: 0.0625rem solid ${({ theme }): string => theme.palette.gray3.regular};\n\tz-index: ${BOARD_CONTAINER_ZINDEX + 1};\n`;\n\nconst ToggleBoardIcon = (): React.JSX.Element | null => {\n\tconst { minimized, boards } = useBoardStore();\n\n\treturn isEmpty(boards) ? null : (\n\t\t<Container width={'3rem'} height={'3rem'}>\n\t\t\t<IconButton\n\t\t\t\ticonColor=\"primary\"\n\t\t\t\ticon={minimized ? 'BoardOpen' : 'BoardCollapse'}\n\t\t\t\tonClick={minimized ? reopenBoards : minimizeBoards}\n\t\t\t\tsize=\"large\"\n\t\t\t/>\n\t\t</Container>\n\t);\n};\n\ntype PrimaryBarItemProps = {\n\tview: PrimaryBarView;\n\tactive: boolean;\n\tonClick: () => void;\n};\n\ntype PrimaryBarAccessoryItemProps = {\n\tview: PrimaryAccessoryView;\n};\n\nconst PrimaryBarElement = ({ view, active, onClick }: PrimaryBarItemProps): React.JSX.Element => (\n\t<Tooltip label={view.label} placement=\"right\" key={view.id}>\n\t\t<BadgeWrap badge={view.badge}>\n\t\t\t{typeof view.component === 'string' ? (\n\t\t\t\t<IconButton\n\t\t\t\t\ticon={view.component}\n\t\t\t\t\tbackgroundColor={active ? 'gray4' : 'gray6'}\n\t\t\t\t\ticonColor={active ? 'primary' : 'text'}\n\t\t\t\t\tonClick={onClick}\n\t\t\t\t\tsize=\"large\"\n\t\t\t\t\tdata-isselected={active}\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<view.component active={active} />\n\t\t\t)}\n\t\t</BadgeWrap>\n\t</Tooltip>\n);\n\nconst PrimaryBarAccessoryElement = ({ view }: PrimaryBarAccessoryItemProps): React.JSX.Element => (\n\t<Tooltip label={view.label} placement=\"right\" key={view.id}>\n\t\t<AppContextProvider key={view.id} pkg={view.app}>\n\t\t\t{typeof view.component === 'string' ? (\n\t\t\t\t<IconButton\n\t\t\t\t\ticon={view.component}\n\t\t\t\t\tbackgroundColor=\"gray6\"\n\t\t\t\t\ticonColor=\"text\"\n\t\t\t\t\tonClick={view.onClick ?? noop}\n\t\t\t\t\tsize=\"large\"\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<view.component />\n\t\t\t)}\n\t\t</AppContextProvider>\n\t</Tooltip>\n);\n\nconst OverlayRow = styled(Row)`\n\tmin-height: 0.0625rem;\n\toverflow-y: auto;\n\toverflow-y: overlay;\n`;\n\nconst ShellPrimaryBar = (): React.JSX.Element | null => {\n\tconst activeRoute = useCurrentRoute();\n\tconst primaryBarViews = useAppStore((s) => s.views.primaryBar);\n\tconst { push } = useHistory();\n\n\tconst { pathname, search } = useLocation();\n\tconst routesRef = useRef<Record<string, string>>({});\n\n\tuseEffect(() => {\n\t\troutesRef.current = primaryBarViews.reduce((accumulator, view) => {\n\t\t\tif (!accumulator[view.id]) {\n\t\t\t\taccumulator[view.id] = view.route;\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, routesRef.current);\n\t}, [primaryBarViews]);\n\n\tuseEffect(() => {\n\t\tif (activeRoute && activeRoute.id !== SEARCH_APP_ID) {\n\t\t\troutesRef.current = {\n\t\t\t\t...routesRef.current,\n\t\t\t\t[activeRoute.id]: `${trim(pathname, '/')}${search}`\n\t\t\t};\n\t\t}\n\t}, [activeRoute, pathname, search]);\n\n\tconst primaryBarAccessoryViews = useAppStore((s) => s.views.primaryBarAccessories);\n\n\tconst accessoryViews = useMemo(\n\t\t() =>\n\t\t\tsortBy(\n\t\t\t\tfilter(primaryBarAccessoryViews, (v) => checkRoute(v, activeRoute)),\n\t\t\t\t'position'\n\t\t\t),\n\t\t[activeRoute, primaryBarAccessoryViews]\n\t);\n\n\tconst primaryBarItems = useMemo(\n\t\t() =>\n\t\t\tmap(primaryBarViews, (view) =>\n\t\t\t\tview.visible ? (\n\t\t\t\t\t<PrimaryBarElement\n\t\t\t\t\t\tkey={view.id}\n\t\t\t\t\t\tonClick={(): void => push(`/${routesRef.current[view.id]}`)}\n\t\t\t\t\t\tview={view}\n\t\t\t\t\t\tactive={activeRoute?.id === view.id}\n\t\t\t\t\t/>\n\t\t\t\t) : null\n\t\t\t),\n\t\t[activeRoute?.id, push, primaryBarViews]\n\t);\n\n\tconst accessoryItems = useMemo(\n\t\t() => accessoryViews.map((view) => <PrimaryBarAccessoryElement view={view} key={view.id} />),\n\t\t[accessoryViews]\n\t);\n\n\tif (IS_STANDALONE && activeRoute?.standalone?.hidePrimaryBar) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PrimaryBarContainer\n\t\t\twidth={PRIMARY_BAR_WIDTH}\n\t\t\theight=\"fill\"\n\t\t\tbackground={'gray6'}\n\t\t\torientation=\"vertical\"\n\t\t\tmainAlignment=\"flex-start\"\n\t\t\tcrossAlignment=\"flex-start\"\n\t\t\tdata-testid=\"SideMenuContainer\"\n\t\t>\n\t\t\t<OverlayRow\n\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\tcrossAlignment=\"flex-start\"\n\t\t\t\torientation=\"vertical\"\n\t\t\t\ttakeAvailableSpace\n\t\t\t\twrap=\"nowrap\"\n\t\t\t>\n\t\t\t\t{primaryBarItems}\n\t\t\t\t<ToggleBoardIcon />\n\t\t\t</OverlayRow>\n\t\t\t<OverlayRow mainAlignment=\"flex-end\" orientation=\"vertical\" wrap=\"nowrap\">\n\t\t\t\t{accessoryItems}\n\t\t\t</OverlayRow>\n\t\t</PrimaryBarContainer>\n\t);\n};\n\nexport default ShellPrimaryBar;\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, useMemo } from 'react';\n\nimport { Container, ContainerProps } from '@zextras/carbonio-design-system';\nimport { filter, findIndex, map, sortBy } from 'lodash';\nimport { Route, Switch } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { Collapser } from './collapser';\nimport { AppRoute } from '../../types';\nimport AppContextProvider from '../boot/app/app-context-provider';\nimport { useCurrentRoute } from '../history/hooks';\nimport { useAppStore } from '../store/app';\nimport { useUtilityBarStore } from '../utility-bar/store';\nimport { checkRoute } from '../utility-bar/utils';\n\nconst SidebarContainer = styled(Container)<ContainerProps & { sidebarIsOpen?: boolean }>`\n\tmin-width: 3rem;\n\tmax-width: 19.625rem;\n\twidth: ${({ sidebarIsOpen }): number => (sidebarIsOpen ? 19.625 : 3)}rem;\n\ttransition: width 300ms;\n\toverflow-x: hidden;\n`;\n\nconst ShellSecondaryBarComponent: FC<{ activeRoute: AppRoute }> = ({ activeRoute }) => {\n\tconst isOpen = useUtilityBarStore((s) => s.secondaryBarState);\n\tconst setIsOpen = useUtilityBarStore((s) => s.setSecondaryBarState);\n\tconst onCollapserClick = useCallback(() => setIsOpen(!isOpen), [isOpen, setIsOpen]);\n\tconst secondaryBarViews = useAppStore((s) => s.views.secondaryBar);\n\tconst secondaryBarAccessoryViews = useAppStore((s) => s.views.secondaryBarAccessories);\n\tconst accessories = useMemo(\n\t\t() =>\n\t\t\tsortBy(\n\t\t\t\tfilter(secondaryBarAccessoryViews, (v) => checkRoute(v, activeRoute)),\n\t\t\t\t'position'\n\t\t\t),\n\t\t[activeRoute, secondaryBarAccessoryViews]\n\t);\n\tconst disabled = useMemo(\n\t\t() => findIndex(secondaryBarViews, (view) => view.id === activeRoute?.id) < 0,\n\t\t[activeRoute?.id, secondaryBarViews]\n\t);\n\treturn disabled ? null : (\n\t\t<>\n\t\t\t<SidebarContainer\n\t\t\t\tdata-testid=\"SideSecondaryBarContainer\"\n\t\t\t\tsidebarIsOpen={isOpen}\n\t\t\t\trole=\"menu\"\n\t\t\t\theight=\"fill\"\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tmainAlignment=\"space-between\"\n\t\t\t\tonClick={isOpen ? undefined : onCollapserClick}\n\t\t\t\tstyle={{\n\t\t\t\t\tmaxHeight: 'calc(100vh - 3.75rem)',\n\t\t\t\t\toverflowY: 'auto'\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<Container mainAlignment=\"flex-start\">\n\t\t\t\t\t<Switch>\n\t\t\t\t\t\t{map(secondaryBarViews, (view) => (\n\t\t\t\t\t\t\t<Route key={view.id} path={`/${view.route}`}>\n\t\t\t\t\t\t\t\t<AppContextProvider pkg={view.app}>\n\t\t\t\t\t\t\t\t\t<view.component expanded={isOpen} />\n\t\t\t\t\t\t\t\t</AppContextProvider>\n\t\t\t\t\t\t\t</Route>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</Switch>\n\t\t\t\t</Container>\n\t\t\t\t<Container mainAlignment=\"flex-end\" height=\"fit\">\n\t\t\t\t\t{accessories.map((view) => (\n\t\t\t\t\t\t<AppContextProvider key={view.id} pkg={view.app}>\n\t\t\t\t\t\t\t<view.component expanded={isOpen} />\n\t\t\t\t\t\t</AppContextProvider>\n\t\t\t\t\t))}\n\t\t\t\t</Container>\n\t\t\t</SidebarContainer>\n\t\t\t<Collapser onClick={onCollapserClick} open={isOpen} />\n\t\t</>\n\t);\n};\n\nconst MemoShellSecondaryBar = React.memo(ShellSecondaryBarComponent);\n\nconst ShellSecondaryBar: FC = () => {\n\tconst activeRoute = useCurrentRoute() as AppRoute;\n\treturn <MemoShellSecondaryBar activeRoute={activeRoute} />;\n};\n\nexport default ShellSecondaryBar;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useContext, useEffect } from 'react';\n\nimport { Container, Row } from '@zextras/carbonio-design-system';\nimport { PreviewManager } from '@zextras/carbonio-ui-preview';\nimport styled from 'styled-components';\n\nimport AppViewContainer from './app-view-container';\nimport { BoardContainer } from './boards/board-container';\nimport ShellContextProvider from './shell-context-provider';\nimport ShellHeader from './shell-header';\nimport ShellPrimaryBar from './shell-primary-bar';\nimport ShellSecondaryBar from './shell-secondary-bar';\nimport { ThemeCallbacksContext } from '../boot/theme-provider';\nimport { IS_STANDALONE } from '../constants';\nimport { useDarkReaderResultValue } from '../dark-mode/use-dark-reader-result-value';\nimport { useCurrentRoute } from '../history/hooks';\nimport { goToLogin } from '../network/utils';\nimport { useAccountStore } from '../store/account';\nimport { ShellUtilityBar } from '../utility-bar/bar';\nimport { ShellUtilityPanel } from '../utility-bar/panel';\n\nconst Background = styled.div`\n\tbackground: ${({ theme }): string => theme.palette.gray6.regular};\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n\tmin-height: 100%;\n\tmax-height: 100%;\n\twidth: 100%;\n\tmin-width: 60rem;\n\tmax-width: 100%;\n`;\n\nfunction DarkReaderListener(): null {\n\tconst { setDarkReaderState } = useContext(ThemeCallbacksContext);\n\tconst darkReaderResultValue = useDarkReaderResultValue();\n\tuseEffect(() => {\n\t\tif (darkReaderResultValue) {\n\t\t\tsetDarkReaderState(darkReaderResultValue);\n\t\t}\n\t}, [darkReaderResultValue, setDarkReaderState]);\n\treturn null;\n}\n\nconst useLoginRedirection = (allowUnauthenticated?: boolean): void => {\n\tconst auth = useAccountStore((s) => s.authenticated);\n\tuseEffect(() => {\n\t\tif (IS_STANDALONE && !auth && !allowUnauthenticated) {\n\t\t\tgoToLogin();\n\t\t}\n\t}, [allowUnauthenticated, auth]);\n};\n\ninterface ShellComponentProps {\n\tallowUnauthenticated?: boolean;\n\thideShellHeader?: boolean;\n}\n\nconst ShellComponent = ({\n\tallowUnauthenticated,\n\thideShellHeader\n}: ShellComponentProps): React.JSX.Element => {\n\tuseLoginRedirection(allowUnauthenticated);\n\treturn (\n\t\t<Background>\n\t\t\t<DarkReaderListener />\n\t\t\t{!(IS_STANDALONE && hideShellHeader) && (\n\t\t\t\t<ShellHeader>\n\t\t\t\t\t<ShellUtilityBar />\n\t\t\t\t</ShellHeader>\n\t\t\t)}\n\t\t\t<Row crossAlignment=\"unset\" style={{ position: 'relative', flexGrow: '1' }}>\n\t\t\t\t<Container\n\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\tbackground=\"gray5\"\n\t\t\t\t\twidth=\"fit\"\n\t\t\t\t\theight=\"fill\"\n\t\t\t\t\tmainAlignment=\"flex-start\"\n\t\t\t\t\tcrossAlignment=\"flex-start\"\n\t\t\t\t>\n\t\t\t\t\t<ShellPrimaryBar />\n\t\t\t\t\t<ShellSecondaryBar />\n\t\t\t\t</Container>\n\t\t\t\t<AppViewContainer />\n\t\t\t\t<ShellUtilityPanel />\n\t\t\t</Row>\n\t\t\t<BoardContainer />\n\t\t</Background>\n\t);\n};\n\nconst MemoShell = React.memo(ShellComponent);\n\nconst ShellView = (): React.JSX.Element => {\n\tconst activeRoute = useCurrentRoute();\n\tconst allowUnauthenticated = activeRoute?.standalone?.allowUnauthenticated;\n\tconst hideShellHeader = activeRoute?.standalone?.hideShellHeader;\n\treturn (\n\t\t<ShellContextProvider>\n\t\t\t<PreviewManager>\n\t\t\t\t<MemoShell allowUnauthenticated={allowUnauthenticated} hideShellHeader={hideShellHeader} />\n\t\t\t</PreviewManager>\n\t\t</ShellContextProvider>\n\t);\n};\n\nexport default ShellView;\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 { find, get, join } from 'lodash';\n\nimport { useAccountStore } from './store';\nimport {\n\tAccount,\n\tAccountRightName,\n\tAccountRights,\n\tAccountRightTarget,\n\tAccountSettings\n} from '../../../types';\n\nexport const useUserAccount = (): Account => useAccountStore((s) => s.account as Account);\nexport const useUserAccounts = (): Array<Account> => {\n\tconst acct = useAccountStore((s) => s.account);\n\treturn useMemo(() => (acct ? [acct as Account] : []), [acct]);\n};\n\nexport const useUserRights = (): AccountRights =>\n\tuseAccountStore((s) => s.account?.rights ?? { targets: [] });\n\nexport const useUserRight = (right: AccountRightName): Array<AccountRightTarget> => {\n\tconst { targets } = useUserRights();\n\treturn useMemo(\n\t\t() => find(targets, ['right', right])?.target ?? ([] as Array<AccountRightTarget>),\n\t\t[right, targets]\n\t);\n};\nexport const useUserSettings = (): AccountSettings => useAccountStore((s) => s.settings);\nexport const useUserSetting = <T = void>(...path: Array<string>): string | T =>\n\tuseAccountStore((s) => get(s.settings, join(path, '.')));\n\nexport const getUserAccount = (): Account => useAccountStore.getState().account as Account;\nexport const getUserAccounts = (): Array<Account> => [\n\tuseAccountStore.getState().account as Account\n];\nexport const getUserSettings = (): AccountSettings => useAccountStore.getState().settings;\nexport const getUserSetting = <T = void>(...path: Array<string>): string | T =>\n\tget(useAccountStore.getState().settings, join(path, '.'));\n\nexport const getUserRights = (): AccountRights =>\n\tuseAccountStore.getState().account?.rights ?? { targets: [] };\n\nexport const getUserRight = (right: AccountRightName): Array<AccountRightTarget> =>\n\tfind(getUserRights().targets, ['right', right])?.target ?? ([] as Array<AccountRightTarget>);\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nexport * from './hooks';\nexport * from './store';\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { GetInfoResponse, Account, AccountSettings } from '../../../types';\n\nconst normalizeSettings = (\n\tsettings: Pick<GetInfoResponse, 'attrs' | 'prefs' | 'props'>\n): AccountSettings => ({\n\tattrs: settings.attrs._attrs,\n\tprefs: settings.prefs._attrs,\n\tprops: settings.props.prop ?? []\n});\n\nexport const normalizeAccount = ({\n\tid,\n\tname,\n\tattrs,\n\tprefs,\n\tidentities,\n\tsignatures,\n\tprops,\n\tversion,\n\trights\n}: GetInfoResponse): {\n\taccount: Account;\n\tsettings: AccountSettings;\n\tversion: string;\n} => {\n\tconst settings = normalizeSettings({ attrs, prefs, props });\n\treturn {\n\t\taccount: {\n\t\t\tid,\n\t\t\tname,\n\t\t\tdisplayName: attrs._attrs.displayName,\n\t\t\tidentities,\n\t\t\tsignatures,\n\t\t\trights\n\t\t},\n\t\tsettings,\n\t\tversion\n\t};\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { create } from 'zustand';\n\nimport type { AccountState } from '../../../types';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useAccountStore = create<AccountState>()(() => ({\n\tauthenticated: false,\n\taccount: undefined,\n\trights: undefined,\n\tversion: '',\n\tsettings: {\n\t\tprefs: {},\n\t\tattrs: {},\n\t\tprops: []\n\t},\n\tusedQuota: 0,\n\tlastNotificationTime: Date.now()\n}));\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\n/* eslint-disable react-hooks/rules-of-hooks */\n/* THIS FILE CONTAINS HOOKS, BUT ESLINT IS DUMB */\n\nimport { useMemo } from 'react';\n\nimport { sortBy } from 'lodash';\n\nimport { useAppStore } from './store';\nimport { AppRoute, CarbonioModule } from '../../../types';\n\nexport const useApp = (appId: string) => (): CarbonioModule => useAppStore((s) => s.apps[appId]);\nexport const useApps = (): Record<string, CarbonioModule> => useAppStore((s) => s.apps);\nexport const useAppList = (): Array<CarbonioModule> => {\n\tconst apps = useApps();\n\treturn useMemo(() => sortBy(apps, (a) => a.priority), [apps]);\n};\nexport const getAppList = (): Array<CarbonioModule> =>\n\tsortBy(useAppStore.getState().apps, (a) => a.priority);\n\nexport const getApp = (appId: string) => (): CarbonioModule | undefined =>\n\tuseAppStore.getState().apps[appId];\nexport const getApps = (): Record<string, CarbonioModule> => useAppStore.getState().apps;\n\nexport const useAppContext = (appId: string) => (): unknown =>\n\tuseAppStore((s) => s.appContexts[appId]);\nexport const getAppContext = (appId: string) => (): unknown =>\n\tuseAppStore.getState().appContexts[appId];\nexport const getShell = (): CarbonioModule => useAppStore.getState().shell;\nexport const getRoutes = (): Record<string, AppRoute> => useAppStore.getState().routes;\nexport const useRoutes = (): Record<string, AppRoute> => useAppStore((s) => s.routes);\nexport const getRoute = (id: string): AppRoute => useAppStore.getState().routes[id];\nexport const useRoute = (id: string): AppRoute => useAppStore((s) => s.routes[id]);\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nexport * from './hooks';\nexport * from './store';\nexport * from './utils';\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { produce } from 'immer';\nimport { findIndex, merge, reduce, some } from 'lodash';\nimport { create } from 'zustand';\n\nimport { normalizeApp } from './utils';\nimport type { AppState, CarbonioModule } from '../../../types';\nimport { SHELL_APP_ID } from '../../constants';\n\nconst STANDALONE_RESPONSE = 'standalone';\n\nfunction addIfNotPresent<T extends { id: unknown }>(\n\titems: T[],\n\titemToAdd: T,\n\tonAdd?: (items: T[], item: T) => void\n): void {\n\tif (!some(items, (item) => item.id === itemToAdd.id)) {\n\t\titems.push(itemToAdd);\n\t\tonAdd?.(items, itemToAdd);\n\t}\n}\n\nfunction sortByPosition<T extends { position: number }>(items: T[]): void {\n\titems.sort((a, b) => a.position - b.position);\n}\n\nfunction addAndSort<T extends { id: unknown; position: number }>(items: T[], itemToAdd: T): void {\n\taddIfNotPresent(items, itemToAdd, sortByPosition);\n}\n\nfunction removeById<T extends { id: unknown }>(items: T[], id: unknown): void {\n\tconst index = findIndex(items, (item) => item.id === id);\n\tif (index !== -1) {\n\t\titems.splice(index, 1);\n\t}\n}\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useAppStore = create<AppState>()((set, get) => ({\n\tstandalone: false,\n\tapps: {},\n\tappContexts: {},\n\tshell: {\n\t\tcommit: '',\n\t\tdescription: '',\n\t\tjs_entrypoint: '',\n\t\tname: SHELL_APP_ID,\n\t\tpriority: -1,\n\t\tversion: '',\n\t\ttype: 'shell',\n\t\tattrKey: '',\n\t\ticon: '',\n\t\tdisplay: 'Shell'\n\t},\n\tentryPoints: {},\n\troutes: {},\n\tviews: {\n\t\tprimaryBar: [],\n\t\tsecondaryBar: [],\n\t\tappView: [],\n\t\tboard: [],\n\t\tutilityBar: [],\n\t\tsettings: [],\n\t\tsearch: [],\n\t\tprimaryBarAccessories: [],\n\t\tsecondaryBarAccessories: []\n\t},\n\tsetters: {\n\t\tsetApps: (apps): void => {\n\t\t\tset(() => {\n\t\t\t\tconst { moduleApps, shellApp, appContexts } = reduce<\n\t\t\t\t\tPartial<CarbonioModule>,\n\t\t\t\t\t{\n\t\t\t\t\t\tmoduleApps: AppState['apps'];\n\t\t\t\t\t\tshellApp: AppState['shell'];\n\t\t\t\t\t\tappContexts: AppState['appContexts'];\n\t\t\t\t\t}\n\t\t\t\t>(\n\t\t\t\t\tapps,\n\t\t\t\t\t(accumulator, app) => {\n\t\t\t\t\t\tif (app.name) {\n\t\t\t\t\t\t\tconst normalizedApp = normalizeApp(app);\n\t\t\t\t\t\t\tif (app.name !== SHELL_APP_ID) {\n\t\t\t\t\t\t\t\taccumulator.moduleApps[app.name] = normalizedApp;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\taccumulator.shellApp = normalizedApp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taccumulator.appContexts[app.name] = {};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t},\n\t\t\t\t\t{ moduleApps: {}, shellApp: {} as CarbonioModule, appContexts: {} }\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\tapps: moduleApps,\n\t\t\t\t\tshell: shellApp,\n\t\t\t\t\tappContexts\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\t\tsetAppContext:\n\t\t\t(app) =>\n\t\t\t(context): void => {\n\t\t\t\tset(\n\t\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\t\tstate.appContexts[app] = merge(state.appContexts[app], context);\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t},\n\t\t// add route (id route primaryBar secondaryBar app)\n\t\taddRoute: (routeData): string => {\n\t\t\tconst { standalone } = get();\n\t\t\tif (standalone && routeData.route !== standalone) {\n\t\t\t\treturn STANDALONE_RESPONSE;\n\t\t\t}\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tstate.routes[routeData.id] = routeData;\n\t\t\t\t\tif (routeData.primaryBar) {\n\t\t\t\t\t\taddAndSort(state.views.primaryBar, {\n\t\t\t\t\t\t\tapp: routeData.app,\n\t\t\t\t\t\t\tid: routeData.id,\n\t\t\t\t\t\t\troute: routeData.route,\n\t\t\t\t\t\t\tcomponent: routeData.primaryBar,\n\t\t\t\t\t\t\tbadge: routeData.badge,\n\t\t\t\t\t\t\tposition: routeData.position,\n\t\t\t\t\t\t\tvisible: routeData.visible,\n\t\t\t\t\t\t\tlabel: routeData.label\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif (routeData.secondaryBar) {\n\t\t\t\t\t\taddIfNotPresent(state.views.secondaryBar, {\n\t\t\t\t\t\t\tapp: routeData.app,\n\t\t\t\t\t\t\tid: routeData.id,\n\t\t\t\t\t\t\troute: routeData.route,\n\t\t\t\t\t\t\tcomponent: routeData.secondaryBar\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif (routeData.appView) {\n\t\t\t\t\t\taddIfNotPresent(state.views.appView, {\n\t\t\t\t\t\t\tapp: routeData.app,\n\t\t\t\t\t\t\tid: routeData.id,\n\t\t\t\t\t\t\troute: routeData.route,\n\t\t\t\t\t\t\tcomponent: routeData.appView\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif (routeData.app && state.apps[routeData.app]) {\n\t\t\t\t\t\tstate.apps[routeData.app].display = routeData.label;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn routeData.id;\n\t\t},\n\t\tsetRouteVisibility: (id, visible): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tconst idx = findIndex(state.views.primaryBar, (view) => view.id === id);\n\t\t\t\t\tif (idx >= 0) {\n\t\t\t\t\t\tstate.views.primaryBar[idx].visible = visible;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\n\t\t// remove route (id | route)\n\t\tremoveRoute: (id): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tdelete state.routes[id];\n\t\t\t\t\tremoveById(state.views.primaryBar, id);\n\t\t\t\t\tremoveById(state.views.secondaryBar, id);\n\t\t\t\t\tremoveById(state.views.appView, id);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\t\t// add board\n\t\taddBoardView: (data): string => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\taddIfNotPresent(state.views.board, data);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn data.id;\n\t\t},\n\n\t\t// remove board\n\t\tremoveBoardView: (id): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tremoveById(state.views.board, id);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\n\t\t// add settings\n\t\taddSettingsView: (data): string => {\n\t\t\tconst { standalone } = get();\n\t\t\tif (standalone && data.route !== standalone) {\n\t\t\t\treturn STANDALONE_RESPONSE;\n\t\t\t}\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\taddAndSort(state.views.settings, data);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn data.id;\n\t\t},\n\n\t\t// remove settings\n\t\tremoveSettingsView: (id): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tremoveById(state.views.settings, id);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\t\t//\n\t\t// add search\n\t\taddSearchView: (data): string => {\n\t\t\tconst { standalone } = get();\n\t\t\tif (standalone && data.route !== standalone) {\n\t\t\t\treturn STANDALONE_RESPONSE;\n\t\t\t}\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\taddAndSort(state.views.search, data);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn data.id;\n\t\t},\n\t\t// remove search\n\t\tremoveSearchView: (id): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tremoveById(state.views.search, id);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\t\t//\n\t\t// add utility\n\t\taddUtilityView: (data): string => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\taddAndSort(state.views.utilityBar, data);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn data.id;\n\t\t},\n\t\t// remove utility\n\t\tremoveUtilityView: (id): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tremoveById(state.views.utilityBar, id);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\t\t//\n\t\t// add primaryAccessory\n\t\taddPrimaryAccessoryView: (data): string => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\taddAndSort(state.views.primaryBarAccessories, data);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn data.id;\n\t\t},\n\t\t// remove primaryAccessory\n\t\tremovePrimaryAccessoryView: (id): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tremoveById(state.views.primaryBarAccessories, id);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\t\t//\n\t\t// add secondaryAccessory\n\t\taddSecondaryAccessoryView: (data): string => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\taddAndSort(state.views.secondaryBarAccessories, data);\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn data.id;\n\t\t},\n\t\t// remove secondaryAccessory\n\t\tremoveSecondaryAccessoryView: (id): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tremoveById(state.views.secondaryBarAccessories, id);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\t\tupdatePrimaryBadge: (badge, id): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tconst idx = findIndex(state.views.primaryBar, (bar) => bar.id === id);\n\t\t\t\t\tif (idx >= 0) {\n\t\t\t\t\t\tstate.views.primaryBar[idx].badge = {\n\t\t\t\t\t\t\t...state.views.primaryBar[idx].badge,\n\t\t\t\t\t\t\t...badge\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\tupdateUtilityBadge: (badge, id): void => {\n\t\t\tset(\n\t\t\t\tproduce<AppState>((state) => {\n\t\t\t\t\tconst idx = findIndex(state.views.utilityBar, (bar) => bar.id === id);\n\t\t\t\t\tif (idx >= 0) {\n\t\t\t\t\t\tstate.views.utilityBar[idx].badge = {\n\t\t\t\t\t\t\t...state.views.utilityBar[idx].badge,\n\t\t\t\t\t\t\t...badge\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","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { FC } from 'react';\n\nimport { trim } from 'lodash';\n\nimport {\n\tAppRouteDescriptor,\n\tBadgeInfo,\n\tBoardView,\n\tCarbonioModule,\n\tPrimaryAccessoryView,\n\tSearchView,\n\tSecondaryAccessoryView,\n\tSettingsView,\n\tUtilityView\n} from '../../../types';\n\nexport const normalizeApp = (app: Partial<CarbonioModule>): CarbonioModule => ({\n\tcommit: app.commit ?? '',\n\tdescription: app.description ?? 'A carbonio Module',\n\t// eslint-disable-next-line camelcase\n\tjs_entrypoint: app.js_entrypoint ?? '',\n\tname: app.name ?? 'module',\n\tpriority: app.priority ?? 99,\n\tversion: app.version ?? '',\n\ttype: app.type ?? 'carbonio',\n\tattrKey: app.attrKey,\n\ticon: app.icon ?? 'Cube',\n\tdisplay: app.display ?? 'Module',\n\tsentryDsn: app.sentryDsn\n});\n\nconst FallbackView: FC = () => <p>Missing Component</p>;\n\nexport const normalizeBadgeInfo = (badge: Partial<BadgeInfo>): BadgeInfo => ({\n\tshow: badge.show ?? false,\n\tcount: badge.count ?? 0,\n\tshowCount: badge.showCount ?? false,\n\tcolor: badge.color ?? 'primary'\n});\n\nexport const normalizeRoute = (\n\tdata: Partial<AppRouteDescriptor>,\n\tapp: CarbonioModule\n): AppRouteDescriptor => {\n\tconst route = trim(data.route ?? app.name, '/');\n\treturn {\n\t\tapp: app.name,\n\t\troute,\n\t\tid: data.id ?? route,\n\t\tbadge: normalizeBadgeInfo(data?.badge ?? {}),\n\t\tposition: data?.position ?? app.priority,\n\t\tvisible: data?.visible ?? true,\n\t\tlabel: data?.label ?? '',\n\t\tprimaryBar: data.primaryBar ?? app.icon ?? 'CubeOutline',\n\t\tsecondaryBar: data.secondaryBar,\n\t\tappView: data.appView ?? FallbackView,\n\t\tstandalone: {\n\t\t\thidePrimaryBar: data?.standalone?.hidePrimaryBar,\n\t\t\thideShellHeader: data?.standalone?.hideShellHeader,\n\t\t\tallowUnauthenticated: data?.standalone?.allowUnauthenticated\n\t\t}\n\t};\n};\n\nexport const normalizeSettingsView = (\n\tdata: Partial<SettingsView>,\n\tapp: CarbonioModule\n): SettingsView => {\n\tconst route = trim(data.route ?? app.name, '/');\n\treturn {\n\t\tapp: app.name,\n\t\troute,\n\t\tid: data?.id ?? route,\n\t\tcomponent: data?.component ?? FallbackView,\n\t\tlabel: data.label ?? app.display,\n\t\ticon: data.icon ?? app.icon,\n\t\tposition: data.position ?? app.priority ?? 99,\n\t\tsubSections: data.subSections ?? []\n\t};\n};\nexport const normalizeSearchView = (data: Partial<SearchView>, app: CarbonioModule): SearchView => {\n\tconst route = trim(data.route ?? app.name, '/');\n\treturn {\n\t\tapp: app.name,\n\t\troute,\n\t\tid: data?.id ?? route,\n\t\tcomponent: data?.component ?? FallbackView,\n\t\tlabel: data.label ?? app.display,\n\t\ticon: data.icon ?? app.icon,\n\t\tposition: data.position ?? app.priority ?? 99\n\t};\n};\nexport const normalizeUtilityView = (\n\tdata: Partial<UtilityView>,\n\tapp: CarbonioModule\n): UtilityView => ({\n\tapp: app.name,\n\tid: data?.id ?? app.name,\n\twhitelistRoutes: data?.whitelistRoutes,\n\tblacklistRoutes: data?.blacklistRoutes,\n\tcomponent: data?.component ?? FallbackView,\n\tbutton: data?.button ?? 'Cube',\n\tbadge: normalizeBadgeInfo(data?.badge ?? {}),\n\tposition: data?.position ?? app.priority,\n\tlabel: data?.label ?? app.display\n});\nexport const normalizePrimaryAccessoryView = (\n\tdata: Partial<PrimaryAccessoryView>,\n\tapp: CarbonioModule\n): PrimaryAccessoryView => ({\n\tapp: app.name,\n\tonClick: data?.onClick,\n\tlabel: data?.label ?? app.display,\n\tposition: data?.position ?? app.priority,\n\twhitelistRoutes: data?.whitelistRoutes,\n\tblacklistRoutes: data?.blacklistRoutes,\n\tid: data?.id ?? app.name,\n\tcomponent: data?.component ?? FallbackView\n});\nexport const normalizeSecondaryAccessoryView = (\n\tdata: Partial<SecondaryAccessoryView>,\n\tapp: CarbonioModule\n): SecondaryAccessoryView => ({\n\tapp: app.name,\n\tposition: data?.position ?? app.priority,\n\twhitelistRoutes: data?.whitelistRoutes,\n\tblacklistRoutes: data?.blacklistRoutes,\n\tid: data?.id ?? app.name,\n\tcomponent: data?.component ?? FallbackView\n});\n\nexport const normalizeBoardView = (data: Partial<BoardView>, app: CarbonioModule): BoardView => {\n\tconst route = trim(data.route ?? app.name, '/');\n\treturn {\n\t\tapp: app.name,\n\t\troute,\n\t\tid: data?.id ?? route,\n\t\tcomponent: data?.component ?? FallbackView\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, { FC, useContext, useMemo, createContext } from 'react';\n\nimport { closeBoard, setCurrentBoard, updateBoard, useBoardStore } from './store';\nimport { Board, BoardHooksContext } from '../../../types';\n\nexport const useBoardById = <T,>(id: string): Board<T> => useBoardStore((s) => s.boards[id]);\nexport const getBoardById = <T,>(id: string): Board<T> => useBoardStore.getState().boards[id];\nexport const useBoardContextById = <T,>(id: string): T =>\n\tuseBoardStore((s) => s.boards[id].context);\nexport const getBoardContextById = <T,>(id: string): T =>\n\tuseBoardStore.getState().boards[id].context;\n\n// Must be empty if no board is available\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nexport const boardContext = createContext<Board>();\n// Must be empty if no board is available\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nexport const boardHooksContext = createContext<BoardHooksContext>();\n\nexport const BoardProvider: FC<{ id: string }> = ({ children, id }) => {\n\tconst board = useBoardById(id);\n\tconst callbacks = useMemo<BoardHooksContext>(\n\t\t() => ({\n\t\t\tgetBoardContext: () => getBoardContextById(id),\n\t\t\tgetBoard: () => getBoardById(id),\n\t\t\tcloseBoard: () => closeBoard(id),\n\t\t\tupdateBoard: (b) => updateBoard(id, b),\n\t\t\tsetCurrentBoard: () => setCurrentBoard(id)\n\t\t}),\n\t\t[id]\n\t);\n\treturn (\n\t\t<boardHooksContext.Provider value={callbacks}>\n\t\t\t<boardContext.Provider value={board}>{children}</boardContext.Provider>\n\t\t</boardHooksContext.Provider>\n\t);\n};\n\nexport const useBoardHooks = (): BoardHooksContext => useContext(boardHooksContext);\nexport const useBoard = (): Board => useContext(boardContext);\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nexport * from './hooks';\nexport * from './store';\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { produce } from 'immer';\nimport { forEach, trimStart, uniqueId } from 'lodash';\nimport { create } from 'zustand';\n\nimport type { BoardState, Board } from '../../../types';\nimport { getApp } from '../app';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useBoardStore = create<BoardState>()(() => ({\n\torderedBoards: [],\n\tboards: {},\n\texpanded: false,\n\tminimized: false\n}));\n\nexport const addBoard =\n\t(app: string) =>\n\t<T = unknown>(\n\t\tboard: Omit<Board<T>, 'app' | 'icon' | 'id'> & { id?: string; icon?: string },\n\t\texpanded?: BoardState['expanded']\n\t): Board => {\n\t\tconst id = board.id ?? uniqueId('board-');\n\t\tuseBoardStore.setState(\n\t\t\tproduce((state: BoardState) => {\n\t\t\t\tstate.boards[id] = {\n\t\t\t\t\t...board,\n\t\t\t\t\tapp,\n\t\t\t\t\tid,\n\t\t\t\t\ticon: board.icon ?? getApp(app)()?.icon ?? 'CubeOutline',\n\t\t\t\t\turl: trimStart(board.url, '/')\n\t\t\t\t};\n\t\t\t\tstate.current = id;\n\t\t\t\tstate.minimized = false;\n\t\t\t\tstate.expanded = expanded ?? state.expanded;\n\t\t\t\tstate.orderedBoards.unshift(id);\n\t\t\t})\n\t\t);\n\t\treturn useBoardStore.getState().boards[id];\n\t};\nexport const closeBoard = (id: string): void => {\n\tuseBoardStore.setState(\n\t\tproduce((state: BoardState) => {\n\t\t\tstate.boards[id]?.onClose?.(state.boards[id]);\n\t\t\tdelete state.boards[id];\n\t\t\tconst index = state.orderedBoards.findIndex((boardId) => boardId === id);\n\t\t\tif (state.current === id) {\n\t\t\t\tstate.current = state.orderedBoards[index + 1] || state.orderedBoards[index - 1];\n\t\t\t}\n\t\t\tif (index !== -1) {\n\t\t\t\tstate.orderedBoards.splice(index, 1);\n\t\t\t}\n\t\t})\n\t);\n};\nexport const closeAllBoards = (): void => {\n\tuseBoardStore.setState(\n\t\tproduce((state: BoardState) => {\n\t\t\tforEach(state.boards, (b) => {\n\t\t\t\tb?.onClose?.(b);\n\t\t\t\tdelete state.boards[b.id];\n\t\t\t});\n\t\t\tstate.orderedBoards = [];\n\t\t})\n\t);\n};\nexport const onGoToPanel = (): void => {\n\tuseBoardStore.setState(\n\t\tproduce((state: BoardState) => {\n\t\t\tconst id = state.current;\n\t\t\tif (id) {\n\t\t\t\tstate.boards[id]?.onGoToPanel?.(state.boards[id]);\n\t\t\t\tdelete state.boards[id];\n\t\t\t\tconst index = state.orderedBoards.findIndex((boardId) => boardId === id);\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\tstate.orderedBoards.splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t);\n};\nexport const minimizeBoards = (): void => {\n\tuseBoardStore.setState({\n\t\tminimized: true\n\t});\n};\nexport const reopenBoards = (): void => {\n\tuseBoardStore.setState({\n\t\tminimized: false\n\t});\n};\nexport const expandBoards = (): void => {\n\tuseBoardStore.setState({\n\t\texpanded: true\n\t});\n};\nexport const reduceBoards = (): void => {\n\tuseBoardStore.setState({\n\t\texpanded: false\n\t});\n};\nexport const setCurrentBoard = (id: string): void => {\n\tuseBoardStore.setState({\n\t\tcurrent: id\n\t});\n};\nexport const updateBoard = <T = unknown>(id: string, board: Partial<Board<T>>): void => {\n\tuseBoardStore.setState(\n\t\tproduce((state: BoardState) => {\n\t\t\tif (state.boards[id])\n\t\t\t\tstate.boards[id] = {\n\t\t\t\t\t...state.boards[id],\n\t\t\t\t\t...board\n\t\t\t\t};\n\t\t})\n\t);\n};\nexport const updateBoardContext = <T = unknown>(id: string, context: T): void => {\n\tuseBoardStore.setState(\n\t\tproduce((state: BoardState) => {\n\t\t\tif (state.boards[id]) {\n\t\t\t\tstate.boards[id].context = context;\n\t\t\t}\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 */\n\nimport { useEffect } from 'react';\n\nimport { reduce } from 'lodash';\nimport { create } from 'zustand';\n\nimport type { ContextBridgeState } from '../../types';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useContextBridge = create<ContextBridgeState>()((set) => ({\n\tpackageDependentFunctions: {},\n\tfunctions: {},\n\tadd: ({ packageDependentFunctions, functions }): void => {\n\t\tset((s) => ({\n\t\t\tpackageDependentFunctions: reduce(\n\t\t\t\tpackageDependentFunctions ?? {},\n\t\t\t\t(acc, f, key) => {\n\t\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\t\tacc[key] = f;\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\ts.packageDependentFunctions\n\t\t\t),\n\t\t\tfunctions: reduce(\n\t\t\t\tfunctions ?? {},\n\t\t\t\t(acc, f, key) => {\n\t\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\t\tacc[key] = f;\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\ts.functions\n\t\t\t)\n\t\t}));\n\t}\n}));\n\nexport const useBridge = (content: Partial<Omit<ContextBridgeState, 'add'>>): void => {\n\tconst addFunctions = useContextBridge(({ add }) => add);\n\tuseEffect(() => {\n\t\taddFunctions(content);\n\t}, [content, addFunctions]);\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { ComponentType, useMemo } from 'react';\n\nimport { useFolderStore } from './store';\nimport { filterNodes, folderViewFilter, isRoot, mapNodes, sortFolders } from './utils';\nimport {\n\tAccordionFolder,\n\tFolder,\n\tFolders,\n\tFolderView,\n\tSearches,\n\tSearchFolder\n} from '../../../types';\n\n// FOLDERS\nexport const useFolder = (id: string): Folder | undefined => useFolderStore((s) => s.folders?.[id]);\nexport const getFolder = (id: string): Folder | undefined =>\n\tuseFolderStore.getState()?.folders?.[id];\nexport const useFolders = (): Folders => useFolderStore((s) => s.folders);\nexport const getFolders = (): Folders => useFolderStore.getState().folders;\n\n// ROOTS\nexport const useRoot = (id: string): Folder | undefined => useFolderStore((s) => s.roots?.[id]);\nexport const getRoot = (id: string): Folder | undefined => useFolderStore.getState().roots?.[id];\nexport const useRoots = (): Folders => useFolderStore((s) => s.roots);\nexport const getRoots = (): Folders => useFolderStore.getState().roots;\n\n// ROOTS BY VIEW\nexport const useRootByUser = (userId: string): Folder | SearchFolder | Record<string, never> =>\n\tuseFolderStore((s) => (s.roots ? s.roots[userId] : {}));\nexport const getRootByUser = (userId: string): Folder | SearchFolder | Record<string, never> => {\n\tconst folders = useFolderStore.getState();\n\treturn folders.roots ? folders.roots[userId] : {};\n};\n\n// SEARCHES\n\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// Accordion-ize\n\nexport const useFoldersByView = (view: FolderView): Array<Folder> => {\n\tconst roots = useRoots();\n\treturn useMemo(\n\t\t() =>\n\t\t\troots ? filterNodes<Folder>(Object.values(roots), folderViewFilter(view), sortFolders) : [],\n\t\t[roots, view]\n\t);\n};\n\nexport const useFoldersAccordionByView = (\n\tview: FolderView,\n\tCustomComponent: ComponentType<{ folder: Folder }>,\n\titemProps?: (item: AccordionFolder) => Record<string, any>\n): Array<AccordionFolder> => {\n\tconst roots = useRoots();\n\treturn useMemo(\n\t\t() =>\n\t\t\troots\n\t\t\t\t? mapNodes<Folder, AccordionFolder>(Object.values(roots), {\n\t\t\t\t\t\tmapFunction: (f) => {\n\t\t\t\t\t\t\tconst item = {\n\t\t\t\t\t\t\t\tid: f.id,\n\t\t\t\t\t\t\t\tlabel: f.name,\n\t\t\t\t\t\t\t\tCustomComponent,\n\t\t\t\t\t\t\t\titems: [],\n\t\t\t\t\t\t\t\tfolder: f,\n\t\t\t\t\t\t\t\tdisableHover: isRoot(f)\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tconst props = itemProps?.(item) ?? {};\n\t\t\t\t\t\t\treturn { ...item, ...props };\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfilterFunction: folderViewFilter(view),\n\t\t\t\t\t\trecursionKey: 'items',\n\t\t\t\t\t\tsortFunction: sortFolders,\n\t\t\t\t\t\tdeep: false\n\t\t\t\t })\n\t\t\t\t: [],\n\t\t[CustomComponent, itemProps, roots, view]\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 * from './store';\nexport * from './hooks';\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 type { FolderState } from '../../../types';\nimport { folderWorker } from '../../workers';\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>()(() => ({\n\tfolders: {},\n\troots: {},\n\tsearches: {}\n}));\n\nfolderWorker.onmessage = ({ data }): void => {\n\tuseFolderStore.setState(data);\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { sortBy } from 'lodash';\n\nimport { Folder, FolderView, LinkFolder, TreeNode } from '../../../types';\nimport { FOLDERS, ROOT_NAME } from '../../constants';\n\nconst hasId = (f: Folder | TreeNode<unknown>, id: string): boolean => f.id.split(':').includes(id);\nconst getOriginalId = (f: Folder): string => {\n\tconst parts = f.id.split(':');\n\treturn parts[1] ?? parts[0];\n};\nexport const sortFolders = (f: Folder): string => {\n\tconst id = getOriginalId(f);\n\tif (id === FOLDERS.TRASH) {\n\t\treturn FOLDERS.LAST_SYSTEM_FOLDER_POSITION;\n\t}\n\treturn parseInt(id, 10) < 17 ? ` ${id}` : f.name.toLowerCase();\n};\n\nexport const isTrash = (f: Folder): boolean => hasId(f, FOLDERS.TRASH);\n\nexport const isRoot = (f: Folder): boolean =>\n\tf.id === FOLDERS.USER_ROOT || (f as LinkFolder).oname === ROOT_NAME;\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));\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 * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { i18n, TFunction } from 'i18next';\n\nimport { useI18nStore } from './store';\nimport { SHELL_APP_ID } from '../../constants';\n\nexport const getI18n = (app: string) => (): i18n => {\n\tconst { instances, defaultI18n } = useI18nStore.getState();\n\treturn instances[app] ?? instances[SHELL_APP_ID] ?? defaultI18n;\n};\n\nexport const getTFunction = (app: string): TFunction => {\n\tconst { instances, defaultI18n } = useI18nStore.getState();\n\treturn instances[app]?.t ?? defaultI18n.t;\n};\n\nexport const getT = (): TFunction => {\n\tconst { instances, defaultI18n } = useI18nStore.getState();\n\treturn instances[SHELL_APP_ID]?.t ?? defaultI18n.t;\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nexport * from './hooks';\nexport * from './store';\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport i18next, { i18n, InitOptions } from 'i18next';\nimport Backend from 'i18next-http-backend';\nimport { produce } from 'immer';\nimport { dropRight, forEach, reduce } from 'lodash';\nimport { initReactI18next } from 'react-i18next';\nimport { create } from 'zustand';\n\nimport type { CarbonioModule, I18nState } from '../../../types';\nimport { SHELL_APP_ID } from '../../constants';\nimport { useAccountStore } from '../account';\n\nconst addShell = (apps: Array<CarbonioModule>): Array<CarbonioModule> => [\n\t...apps,\n\t{\n\t\tcommit: '',\n\t\tdescription: '',\n\t\tjs_entrypoint: '',\n\t\tname: SHELL_APP_ID,\n\t\tpriority: -1,\n\t\tversion: '',\n\t\ttype: 'shell',\n\t\tattrKey: '',\n\t\ticon: '',\n\t\tdisplay: 'Shell'\n\t}\n];\n\nconst { settings } = useAccountStore.getState();\n\nconst defaultLng =\n\t(settings?.prefs?.zimbraPrefLocale as string) ??\n\t(settings?.attrs?.zimbraLocale as string) ??\n\t'en';\n\nconst defaultI18n = i18next.createInstance({ lng: defaultLng });\n\nconst defaultI18nInitOptions: InitOptions = {\n\treturnEmptyString: true,\n\treturnNull: false,\n\tcompatibilityJSON: 'v3',\n\tlng: defaultLng,\n\tfallbackLng: 'en',\n\tdebug: false,\n\tinterpolation: {\n\t\tescapeValue: false // not needed for react as it escapes by default\n\t},\n\tmissingKeyHandler: (_, __, key) => {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(`Missing translation with key '${key}'`);\n\t},\n\tbackend: {\n\t\tloadPath: `${BASE_PATH}/i18n/{{lng}}.json`\n\t}\n};\n\nexport const useI18nStore = create<I18nState>()((set) => ({\n\tinstances: {},\n\tdefaultI18n,\n\tlocale: 'en',\n\tsetters: {\n\t\tsetLocale: (locale: string): void => {\n\t\t\tset(\n\t\t\t\tproduce((state: I18nState) => {\n\t\t\t\t\tstate.locale = locale;\n\t\t\t\t\tforEach(state.instances, (i18nInst) => i18nInst.changeLanguage(locale));\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t},\n\tgetters: {\n\t\tgetLocale: (state: I18nState): string => state.locale\n\t},\n\tactions: {\n\t\taddI18n: (apps: Array<CarbonioModule>, locale: string): void => {\n\t\t\tconst appsWithShell = addShell(apps);\n\t\t\tset(\n\t\t\t\tproduce((state: I18nState) => {\n\t\t\t\t\tstate.instances = reduce<CarbonioModule, Record<string, i18n>>(\n\t\t\t\t\t\tappsWithShell,\n\t\t\t\t\t\t(acc, app): Record<string, i18n> => {\n\t\t\t\t\t\t\tconst newI18n = i18next.createInstance();\n\t\t\t\t\t\t\tnewI18n\n\t\t\t\t\t\t\t\t// load translation using http -> see /public/locales (i.e. https://github.com/i18next/react-i18next/tree/master/example/react/public/locales)\n\t\t\t\t\t\t\t\t// learn more: https://github.com/i18next/i18next-http-backend\n\t\t\t\t\t\t\t\t.use(Backend)\n\t\t\t\t\t\t\t\t// init i18next\n\t\t\t\t\t\t\t\t// for all options read: https://www.i18next.com/overview/configuration-options\n\t\t\t\t\t\t\t\t.init({\n\t\t\t\t\t\t\t\t\t...defaultI18nInitOptions,\n\t\t\t\t\t\t\t\t\tlng: locale,\n\t\t\t\t\t\t\t\t\tbackend: {\n\t\t\t\t\t\t\t\t\t\tloadPath:\n\t\t\t\t\t\t\t\t\t\t\tapp.name === SHELL_APP_ID\n\t\t\t\t\t\t\t\t\t\t\t\t? `${BASE_PATH}/i18n/{{lng}}.json`\n\t\t\t\t\t\t\t\t\t\t\t\t: `${dropRight(app.js_entrypoint.split('/')).join('/')}/i18n/{{lng}}.json`\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// eslint-disable-next-line no-param-reassign\n\t\t\t\t\t\t\tacc[app.name] = newI18n;\n\t\t\t\t\t\t\treturn acc;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{}\n\t\t\t\t\t);\n\t\t\t\t\tstate.defaultI18n.t = state.instances[SHELL_APP_ID].t;\n\t\t\t\t\tstate.locale = locale;\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}\n}));\n\ndefaultI18n\n\t.use(Backend)\n\t// pass the i18n instance to react-i18next.\n\t.use(initReactI18next)\n\t// init i18next\n\t// for all options read: https://www.i18next.com/overview/configuration-options\n\t.init(defaultI18nInitOptions);\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { FC, useCallback, useMemo, useRef } from 'react';\n\nimport { Editor, IAllProps as EditorProps } from '@tinymce/tinymce-react';\nimport { Container } from '@zextras/carbonio-design-system';\nimport styled from 'styled-components';\nimport type { EditorOptions, TinyMCE, Ui } from 'tinymce/tinymce';\n// TinyMCE so the global var exists\nimport tinymce from 'tinymce/tinymce';\nimport 'tinymce/models/dom';\n// Theme\nimport 'tinymce/themes/silver';\n// Toolbar icons\nimport 'tinymce/icons/default';\n// Editor styles\nimport 'tinymce/skins/ui/oxide/skin.min.css';\n// importing the plugin js.\nimport 'tinymce/plugins/advlist';\nimport 'tinymce/plugins/anchor';\nimport 'tinymce/plugins/autolink';\nimport 'tinymce/plugins/autoresize';\nimport 'tinymce/plugins/charmap';\nimport 'tinymce/plugins/code';\nimport 'tinymce/plugins/directionality';\nimport 'tinymce/plugins/fullscreen';\nimport 'tinymce/plugins/help';\nimport 'tinymce/plugins/image';\nimport 'tinymce/plugins/insertdatetime';\nimport 'tinymce/plugins/link';\nimport 'tinymce/plugins/lists';\nimport 'tinymce/plugins/media';\nimport 'tinymce/plugins/preview';\nimport 'tinymce/plugins/quickbars';\nimport 'tinymce/plugins/searchreplace';\nimport 'tinymce/plugins/table';\nimport 'tinymce/plugins/visualblocks';\nimport 'tinymce/plugins/wordcount';\n\nimport { SUPPORTED_LOCALES } from '../../constants/locales';\nimport { useUserSettings } from '../account';\nimport { getT, useI18nStore } from '../i18n';\n\ntype ComposerProps = EditorProps & {\n\t/** The callback invoked when an edit is performed into the editor. `([text, html]) => {}` */\n\tonEditorChange?: (values: [string, string]) => void;\n\t/** Enable the distraction-free mode */\n\tinline?: boolean;\n\t/** The initial content of the editor */\n\tinitialValue?: EditorProps['initialValue'];\n\t/** The content of the editor (controlled mode) */\n\tvalue?: EditorProps['value'];\n\t/**\n\t * Callback called when user choose some file from the os.\n\t * If defined, a menu item to add inline images is added to the composer.\n\t */\n\tonFileSelect?: (arg: { editor: TinyMCE; files: HTMLInputElement['files'] | undefined }) => void;\n\tcustomInitOptions?: Partial<EditorProps['init']>;\n};\n\nexport const FileInput = styled.input`\n\tdisplay: none;\n`;\n\nconst Composer: FC<ComposerProps> = ({\n\tonEditorChange,\n\tonFileSelect,\n\tinline = false,\n\tvalue,\n\tinitialValue,\n\tcustomInitOptions,\n\t...rest\n}) => {\n\tconst _onEditorChange = useCallback<NonNullable<EditorProps['onEditorChange']>>(\n\t\t(newContent, editor) => {\n\t\t\tonEditorChange?.([\n\t\t\t\teditor.getContent({ format: 'text' }),\n\t\t\t\teditor.getContent({ format: 'html' })\n\t\t\t]);\n\t\t},\n\t\t[onEditorChange]\n\t);\n\tconst { prefs } = useUserSettings();\n\tconst defaultStyle = useMemo(\n\t\t() => ({\n\t\t\tfont: prefs?.zimbraPrefHtmlEditorDefaultFontFamily,\n\t\t\tfontSize: prefs?.zimbraPrefHtmlEditorDefaultFontSize,\n\t\t\tcolor: prefs?.zimbraPrefHtmlEditorDefaultFontColor\n\t\t}),\n\t\t[prefs]\n\t);\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst onFileClick = useCallback(() => {\n\t\tif (inputRef.current) {\n\t\t\tinputRef.current.value = '';\n\t\t\tinputRef.current.click();\n\t\t}\n\t}, []);\n\tconst t = getT();\n\tconst { locale } = useI18nStore.getState();\n\tconst language = useMemo(() => {\n\t\tconst localeObj =\n\t\t\tlocale in SUPPORTED_LOCALES && SUPPORTED_LOCALES[locale as keyof typeof SUPPORTED_LOCALES];\n\t\treturn (\n\t\t\t(localeObj &&\n\t\t\t\t(('tinymceLocale' in localeObj && localeObj?.tinymceLocale) || localeObj?.value)) ||\n\t\t\tlocale\n\t\t);\n\t}, [locale]);\n\tconst inlineLabel = useMemo(() => t('label.add_inline_image', 'Add inline image'), [t]);\n\n\tconst setupCallback = useCallback<NonNullable<EditorOptions['setup']>>(\n\t\t(editor) => {\n\t\t\tif (onFileSelect)\n\t\t\t\teditor.ui.registry.addMenuButton('imageSelector', {\n\t\t\t\t\ticon: 'gallery',\n\t\t\t\t\ttooltip: t('label.select_image', 'Select image'),\n\t\t\t\t\tfetch: (callback) => {\n\t\t\t\t\t\tconst items: Ui.Menu.MenuItemSpec[] = [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'menuitem',\n\t\t\t\t\t\t\t\ttext: inlineLabel,\n\t\t\t\t\t\t\t\tonAction: (): void => {\n\t\t\t\t\t\t\t\t\tonFileClick();\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\tcallback(items);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t},\n\t\t[inlineLabel, onFileClick, onFileSelect, t]\n\t);\n\n\tconst editorInitConfig = useMemo<EditorProps['init']>(\n\t\t() => ({\n\t\t\tcontent_css: `${BASE_PATH}/tinymce/skins/content/default/content.css`,\n\t\t\tlanguage_url: `${BASE_PATH}tinymce/langs/${language}.js`,\n\t\t\tlanguage,\n\t\t\tsetup: setupCallback,\n\t\t\tmin_height: 350,\n\t\t\tauto_focus: true,\n\t\t\tmenubar: false,\n\t\t\tstatusbar: false,\n\t\t\tbranding: false,\n\t\t\tresize: true,\n\t\t\tinline,\n\t\t\tfont_size_formats:\n\t\t\t\t'8pt 9pt 10pt 11pt 12pt 13pt 14pt 16pt 18pt 24pt 30pt 36pt 48pt 60pt 72pt 96pt',\n\t\t\tobject_resizing: 'img',\n\t\t\tstyle_formats: [\n\t\t\t\t{\n\t\t\t\t\ttitle: 'Headers',\n\t\t\t\t\titems: [\n\t\t\t\t\t\t{ title: 'h1', block: 'h1' },\n\t\t\t\t\t\t{ title: 'h2', block: 'h2' },\n\t\t\t\t\t\t{ title: 'h3', block: 'h3' },\n\t\t\t\t\t\t{ title: 'h4', block: 'h4' },\n\t\t\t\t\t\t{ title: 'h5', block: 'h5' },\n\t\t\t\t\t\t{ title: 'h6', block: 'h6' }\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttitle: 'Blocks',\n\t\t\t\t\titems: [\n\t\t\t\t\t\t{ title: 'p', block: 'p' },\n\t\t\t\t\t\t{ title: 'div', block: 'div' },\n\t\t\t\t\t\t{ title: 'pre', block: 'pre' }\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttitle: 'Containers',\n\t\t\t\t\titems: [\n\t\t\t\t\t\t{ title: 'section', block: 'section', wrapper: true, merge_siblings: false },\n\t\t\t\t\t\t{ title: 'article', block: 'article', wrapper: true, merge_siblings: false },\n\t\t\t\t\t\t{ title: 'blockquote', block: 'blockquote', wrapper: true },\n\t\t\t\t\t\t{ title: 'hgroup', block: 'hgroup', wrapper: true },\n\t\t\t\t\t\t{ title: 'aside', block: 'aside', wrapper: true },\n\t\t\t\t\t\t{ title: 'figure', block: 'figure', wrapper: true }\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t],\n\t\t\tplugins: [\n\t\t\t\t'advlist',\n\t\t\t\t'autolink',\n\t\t\t\t'lists',\n\t\t\t\t'link',\n\t\t\t\t'image',\n\t\t\t\t'charmap',\n\t\t\t\t'preview',\n\t\t\t\t'anchor',\n\t\t\t\t'searchreplace',\n\t\t\t\t'code',\n\t\t\t\t'fullscreen',\n\t\t\t\t'insertdatetime',\n\t\t\t\t'media',\n\t\t\t\t'table',\n\t\t\t\t'code',\n\t\t\t\t'help',\n\t\t\t\t'quickbars',\n\t\t\t\t'directionality',\n\t\t\t\t'autoresize',\n\t\t\t\t'visualblocks'\n\t\t\t],\n\t\t\ttoolbar: inline\n\t\t\t\t? false\n\t\t\t\t: [\n\t\t\t\t\t\t'fontfamily fontsize styles visualblocks',\n\t\t\t\t\t\t'bold italic underline strikethrough',\n\t\t\t\t\t\t'removeformat code',\n\t\t\t\t\t\t'alignleft aligncenter alignright alignjustify',\n\t\t\t\t\t\t'forecolor backcolor',\n\t\t\t\t\t\t'bullist numlist outdent indent',\n\t\t\t\t\t\t'ltr rtl',\n\t\t\t\t\t\t'insertfile image',\n\t\t\t\t\t\t'imageSelector'\n\t\t\t\t ].join(' | '),\n\t\t\tquickbars_insert_toolbar: inline ? 'bullist numlist' : '',\n\t\t\tquickbars_selection_toolbar: inline\n\t\t\t\t? 'bold italic underline | forecolor backcolor | removeformat | quicklink'\n\t\t\t\t: 'quicklink',\n\t\t\tcontextmenu: '',\n\t\t\ttoolbar_mode: 'wrap',\n\t\t\tcontent_style: `body { color: ${defaultStyle?.color}; font-size: ${defaultStyle?.fontSize}; font-family: ${defaultStyle?.font}; }`,\n\t\t\tvisualblocks_default_state: false,\n\t\t\tend_container_on_empty_block: true,\n\t\t\trelative_urls: false,\n\t\t\tremove_script_host: false,\n\t\t\tnewline_behavior: 'default',\n\t\t\tbrowser_spellcheck: true,\n\t\t\t...customInitOptions\n\t\t}),\n\t\t[\n\t\t\tlanguage,\n\t\t\tsetupCallback,\n\t\t\tinline,\n\t\t\tdefaultStyle?.color,\n\t\t\tdefaultStyle?.fontSize,\n\t\t\tdefaultStyle?.font,\n\t\t\tcustomInitOptions\n\t\t]\n\t);\n\n\tconst fileInputOnChange = useCallback((): void => {\n\t\tonFileSelect?.({ editor: tinymce, files: inputRef?.current?.files });\n\t}, [onFileSelect]);\n\n\treturn (\n\t\t<Container\n\t\t\theight=\"100%\"\n\t\t\tcrossAlignment=\"baseline\"\n\t\t\tmainAlignment=\"flex-start\"\n\t\t\tstyle={{ overflowY: 'hidden' }}\n\t\t>\n\t\t\t<FileInput\n\t\t\t\ttype=\"file\"\n\t\t\t\tref={inputRef}\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tonChange={fileInputOnChange}\n\t\t\t\tmultiple\n\t\t\t/>\n\n\t\t\t<Editor\n\t\t\t\tinitialValue={initialValue}\n\t\t\t\tvalue={value}\n\t\t\t\tinit={editorInitConfig}\n\t\t\t\tonEditorChange={_onEditorChange}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t</Container>\n\t);\n};\n\nexport default Composer;\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\n/* THIS FILE CONTAINS HOOKS, BUT ESLINT IS DUMB */\n\nimport React, { FC, FunctionComponent } from 'react';\n\nimport { compact, map } from 'lodash';\n\nimport { useIntegrationsStore } from './store';\nimport { Action, ActionFactory } from '../../../types';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport AppContextProvider from '../../boot/app/app-context-provider';\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const getIntegratedFunction = (id: string): [Function, boolean] => {\n\tconst integration = useIntegrationsStore.getState().functions?.[id];\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\treturn integration ? [integration, true] : [(): void => {}, false];\n};\n\nexport const getIntegratedComponent = (id: string): [FunctionComponent<unknown>, boolean] => {\n\tconst Integration = useIntegrationsStore.getState().components?.[id];\n\tif (Integration) {\n\t\tconst C: FC = (props: unknown) => (\n\t\t\t<AppContextProvider pkg={Integration.app}>\n\t\t\t\t{/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}\n\t\t\t\t{/* @ts-ignore */}\n\t\t\t\t<Integration.item {...props} />\n\t\t\t</AppContextProvider>\n\t\t);\n\t\treturn [C, true];\n\t}\n\treturn [(): null => null, false];\n};\n\nexport const getActions = <T,>(target: T, type: string): Array<Action> => {\n\tconst factories = useIntegrationsStore.getState().actions[type];\n\treturn compact(\n\t\tmap(factories, (f) => {\n\t\t\ttry {\n\t\t\t\treturn f(target);\n\t\t\t} catch (e) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error(e);\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t})\n\t);\n};\n\nexport const getActionsFactory = (type: string): (<T>(target: T) => Array<Action>) => {\n\tconst factories = useIntegrationsStore.getState().actions[type];\n\treturn <T,>(target: T): Array<Action> =>\n\t\tcompact(\n\t\t\tmap(factories, (f) => {\n\t\t\t\ttry {\n\t\t\t\t\treturn f(target);\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t})\n\t\t);\n};\n\nexport const getAction = <T,>(\n\ttype: string,\n\tid: string,\n\ttarget?: T\n): [Action | undefined, boolean] => {\n\tconst factory = useIntegrationsStore.getState().actions[type]?.[id];\n\tconst action = factory?.(target);\n\treturn [action, !!action];\n};\n\nexport const getActionFactory = <T,>(\n\ttype: string,\n\tid: string\n): [ActionFactory<T> | undefined, boolean] => {\n\tconst factory = useIntegrationsStore.getState().actions[type]?.[id];\n\treturn [factory, !!factory];\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\n/* THIS FILE CONTAINS HOOKS, BUT ESLINT IS DUMB */\n\nimport React, { useMemo, FC, FunctionComponent, useCallback } from 'react';\n\nimport { compact, map } from 'lodash';\n\nimport { useIntegrationsStore } from './store';\nimport { Action, ActionFactory, CombinedActionFactory } from '../../../types';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport AppContextProvider from '../../boot/app/app-context-provider';\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const useIntegratedFunction = (id: string): [Function, boolean] => {\n\tconst integration = useIntegrationsStore((s) => s.functions?.[id]);\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\treturn integration ? [integration, true] : [(): void => {}, false];\n};\n\nexport const useIntegratedComponent = (id: string): [FunctionComponent<unknown>, boolean] => {\n\tconst Integration = useIntegrationsStore((s) => s.components?.[id]);\n\treturn useMemo(() => {\n\t\tif (Integration) {\n\t\t\tconst C: FC = (props: unknown) => (\n\t\t\t\t<AppContextProvider pkg={Integration.app}>\n\t\t\t\t\t{/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}\n\t\t\t\t\t{/* @ts-ignore */}\n\t\t\t\t\t<Integration.item {...props} />\n\t\t\t\t</AppContextProvider>\n\t\t\t);\n\t\t\treturn [C, true];\n\t\t}\n\t\treturn [(): null => null, false];\n\t}, [Integration]);\n};\n\nexport const useActions = <T,>(target: T, type: string): Array<Action> => {\n\tconst factories = useIntegrationsStore((s) => s.actions[type]);\n\treturn useMemo(\n\t\t() =>\n\t\t\tcompact(\n\t\t\t\tmap(factories, (f) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn f(target);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t) ?? [],\n\t\t[factories, target]\n\t);\n};\n\nexport const useActionsFactory = <T,>(type: string): CombinedActionFactory<T> => {\n\tconst factories = useIntegrationsStore((s) => s.actions[type]);\n\treturn useCallback(\n\t\t(target: unknown) =>\n\t\t\tcompact(\n\t\t\t\tmap(factories, (f) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn f(target);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t),\n\t\t[factories]\n\t);\n};\n\nexport const useAction = <T,>(\n\ttype: string,\n\tid: string,\n\ttarget?: T\n): [Action | undefined, boolean] => {\n\tconst factory = useIntegrationsStore((s) => s.actions[type][id]);\n\tconst action = useMemo(() => {\n\t\ttry {\n\t\t\treturn factory?.(target);\n\t\t} catch (e) {\n\t\t\treturn undefined;\n\t\t}\n\t}, [factory, target]);\n\treturn [action, !!action];\n};\n\nexport const useActionFactory = <T,>(\n\ttype: string,\n\tid: string\n): [ActionFactory<T> | undefined, boolean] => {\n\tconst factory = useIntegrationsStore((s) => s.actions[type][id]);\n\treturn [factory, !!factory];\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { ComponentType } from 'react';\n\nimport { produce } from 'immer';\nimport { forEach, includes, omit } from 'lodash';\nimport { create } from 'zustand';\n\nimport Composer from './composer';\nimport type { ActionFactory, AnyFunction, IntegrationsState } from '../../../types';\nimport { SHELL_APP_ID } from '../../constants';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useIntegrationsStore = create<IntegrationsState>()((set) => ({\n\tactions: {},\n\tcomponents: {\n\t\tcomposer: {\n\t\t\titem: Composer,\n\t\t\tapp: SHELL_APP_ID\n\t\t}\n\t},\n\tfunctions: {},\n\tregisterActions: <T>(\n\t\t...items: Array<{ id: string; action: ActionFactory<T>; type: string }>\n\t): void =>\n\t\tset(\n\t\t\tproduce((state) => {\n\t\t\t\tforEach(items, ({ id, action, type }) => {\n\t\t\t\t\tif (!state.actions[type]) state.actions[type] = {};\n\t\t\t\t\tstate.actions[type][id] = action;\n\t\t\t\t});\n\t\t\t})\n\t\t),\n\tregisterComponents:\n\t\t(app: string) =>\n\t\t(...items: Array<{ id: string; component: ComponentType }>): void =>\n\t\t\tset(\n\t\t\t\tproduce((state) => {\n\t\t\t\t\tforEach(items, ({ id, component }) => {\n\t\t\t\t\t\tstate.components[id] = { app, item: component };\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t),\n\tregisterFunctions: (...items: Array<{ id: string; fn: AnyFunction }>): void =>\n\t\tset(\n\t\t\tproduce((state) => {\n\t\t\t\tforEach(items, ({ id, fn }) => {\n\t\t\t\t\tstate.functions[id] = fn;\n\t\t\t\t});\n\t\t\t})\n\t\t),\n\tremoveActions: (...ids: Array<string>): void =>\n\t\tset(\n\t\t\tproduce((state) => {\n\t\t\t\tforEach(state.actions, (actionTypeMap, type) => {\n\t\t\t\t\tforEach(actionTypeMap, (actionFactory, actionFactoryId) => {\n\t\t\t\t\t\tif (includes(ids, actionFactoryId)) {\n\t\t\t\t\t\t\tdelete state.actions[type][actionFactoryId];\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\tremoveComponents: (...ids: Array<string>): void =>\n\t\tset((s) => ({\n\t\t\t...s,\n\t\t\tcomponents: omit(s.components, ids)\n\t\t})),\n\tremoveFunctions: (...ids: Array<string>): void =>\n\t\tset((s) => ({\n\t\t\t...s,\n\t\t\tfunctions: omit(s.functions, ids)\n\t\t}))\n}));\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useLoginConfigStore } from './store';\n\nexport function getFavicon(): string {\n\treturn useLoginConfigStore.getState().carbonioWebUiFavicon;\n}\n\nexport function getClientTitle(): string {\n\treturn useLoginConfigStore.getState().carbonioWebUiTitle;\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { useMemo } from 'react';\n\nimport { useLoginConfigStore } from './store';\nimport DefaultLogo from '../../../assets/carbonio.svg';\nimport { useDarkMode } from '../../dark-mode/use-dark-mode';\n\nexport function useLogo(): string | React.ComponentType {\n\tconst { carbonioWebUiAppLogo, carbonioWebUiDarkAppLogo } = useLoginConfigStore();\n\n\tconst { darkModeEnabled } = useDarkMode();\n\n\treturn useMemo(() => {\n\t\tif (darkModeEnabled) {\n\t\t\treturn carbonioWebUiDarkAppLogo || carbonioWebUiAppLogo || DefaultLogo;\n\t\t}\n\t\treturn carbonioWebUiAppLogo || carbonioWebUiDarkAppLogo || DefaultLogo;\n\t}, [carbonioWebUiDarkAppLogo, carbonioWebUiAppLogo, darkModeEnabled]);\n}\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { create } from 'zustand';\n\nimport type { LoginConfigStore } from '../../../types/loginConfig';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useLoginConfigStore = create<LoginConfigStore>()(() => ({\n\tloaded: false,\n\t// setup defaults for fields which does not depend on dark mode\n\tcarbonioWebUiTitle: 'Carbonio Client',\n\t// default to png because this icon is used also in notification, and svg are not supported there\n\tcarbonioWebUiFavicon: `${BASE_PATH}favicon.png`\n}));\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { useNetworkStore } from './store';\nimport { SoapNotify, SoapRefresh } from '../../../types';\n\nexport const useNotify = (): SoapNotify[] => useNetworkStore((s) => s.notify ?? []);\nexport const useRefresh = (): SoapRefresh => useNetworkStore((s) => s.refresh ?? {});\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nexport * from './store';\nexport * from './hooks';\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { create } from 'zustand';\n\nimport type { NetworkState } from '../../../types';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useNetworkStore = create<NetworkState>()(() => ({\n\tpollingInterval: 30000,\n\tseq: 0\n}));\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { forEach } from 'lodash';\n\nimport { useNetworkStore } from './store';\nimport { AccountSettings, SoapContext, SoapResponse } from '../../../types';\nimport { folderWorker, tagWorker } from '../../workers';\nimport { useAccountStore } from '../account';\nimport { useFolderStore } from '../folder';\nimport { useTagStore } from '../tags';\n\n/**\n * Polling interval to use if the long polling delay\n * is not allowed for the user\n */\nconst POLLING_NOWAIT_INTERVAL = 10_000;\n\n/**\n * Polling interval to use if a previous request failed\n * with a 500 error\n */\nconst POLLING_RETRY_INTERVAL = 60_000;\n\nexport const parsePollingInterval = (settings: AccountSettings): number => {\n\tconst pollingPref = settings.prefs?.zimbraPrefMailPollingInterval ?? '';\n\tif (pollingPref === '500') {\n\t\treturn 500;\n\t}\n\tconst pollingValue = parseInt(pollingPref, 10);\n\tif (Number.isNaN(pollingValue)) {\n\t\treturn 30000;\n\t}\n\tif (pollingPref.includes('m')) {\n\t\treturn pollingValue * 60 * 1000;\n\t}\n\treturn pollingValue * 1000;\n};\n\n/**\n * Return the polling interval for the next NoOp request.\n * The interval length depends on the user settings, but it can be\n * overridden by the server response/errors\n * @param res\n */\nexport const getPollingInterval = <R>(res: SoapResponse<R>): number => {\n\tconst { pollingInterval } = useNetworkStore.getState();\n\tconst { settings } = useAccountStore.getState();\n\tconst waitDisallowed = (res?.Body as { waitDisallowed?: number })?.waitDisallowed;\n\tconst fault = res?.Body?.Fault;\n\tif (fault) {\n\t\treturn POLLING_RETRY_INTERVAL;\n\t}\n\tif (waitDisallowed) {\n\t\treturn POLLING_NOWAIT_INTERVAL;\n\t}\n\tif (!fault) {\n\t\treturn parsePollingInterval(settings);\n\t}\n\treturn pollingInterval;\n};\n\nexport const handleSync = ({ refresh, notify }: SoapContext): Promise<void> =>\n\tnew Promise((r) => {\n\t\tconst { seq } = useNetworkStore.getState();\n\t\tif (refresh) {\n\t\t\ttagWorker.postMessage({\n\t\t\t\top: 'refresh',\n\t\t\t\ttags: refresh.tags\n\t\t\t});\n\t\t\tfolderWorker.postMessage({\n\t\t\t\top: 'refresh',\n\t\t\t\tfolder: refresh.folder ?? []\n\t\t\t});\n\t\t}\n\t\tif (notify?.length) {\n\t\t\tforEach(notify, (item) => {\n\t\t\t\tif (item.seq > seq) {\n\t\t\t\t\ttagWorker.postMessage({\n\t\t\t\t\t\top: 'notify',\n\t\t\t\t\t\tnotify: item,\n\t\t\t\t\t\tstate: useTagStore.getState().tags\n\t\t\t\t\t});\n\t\t\t\t\tfolderWorker.postMessage({\n\t\t\t\t\t\top: 'notify',\n\t\t\t\t\t\tnotify: item,\n\t\t\t\t\t\tstate: useFolderStore.getState().folders\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tr();\n\t});\n// export const noOp = (): void => {\n// \t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n// \tgetSoapFetch(SHELL_APP_ID)(\n// \t\t'NoOp',\n// \t\tuseNetworkStore.getState().pollingInterval === 500\n// \t\t\t? { _jsns: 'urn:zimbraMail', limitToOneBlocked: 1, wait: 1 }\n// \t\t\t: { _jsns: 'urn:zimbraMail' }\n// \t);\n// };\n// export const handleSoapContext = ({ notify, refresh, session, change }: SoapContext): void =>\n// \tuseNetworkStore.setState({\n// \t\tsession,\n// \t\tchange,\n// \t\trefresh,\n// \t\tseq: maxBy(notify, 'seq'),\n// \t\tnoOpTimeout: setTimeout(() => noOp(), pollingInterval),\n// \t\tnotify: map(notify, (notifyItem) => ({\n// \t\t\t...notifyItem,\n// \t\t\tdeleted: notifyItem.deleted?.id?.split(',')\n// \t\t}))\n// \t});\n// // handleTagSync(_context);\n// // useNetworkStore.setState({\n// // \tnoOpTimeout: setTimeout(() => noOp(), pollingInterval),\n// // \t,\n// // \t...res?.Header?.context\n// // });\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { pick } from 'lodash';\n\nimport { useTagStore } from './store';\nimport { Tags } from '../../../types';\n\n/* eslint-disable react-hooks/rules-of-hooks */\n/* THIS FILE CONTAINS HOOKS, BUT ESLINT IS DUMB */\n\nexport const useTags = (ids?: Array<string> | string): Tags =>\n\tuseTagStore((s) => (ids ? pick(s.tags, ids) : s.tags));\nexport const getTags = (ids?: Array<string> | string): Tags =>\n\tids ? pick(useTagStore.getState().tags, ids) : useTagStore.getState().tags;\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nexport * from './hooks';\nexport * from './store';\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 type { TagState } from '../../../types';\nimport { tagWorker } from '../../workers';\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\ntagWorker.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 React, { FC, useMemo } from 'react';\n\nimport { Link as RRLink, LinkProps } from 'react-router-dom';\n\nimport { parseParams } from '../history/hooks';\n\ntype AppLinkProps = LinkProps & {\n\troute?: string;\n};\nexport const AppLink: FC<AppLinkProps> = ({ to, route, ...rest }) => {\n\tconst _to = useMemo(() => parseParams({ path: to, route }), [route, to]);\n\treturn <RRLink style={{ textDecoration: 'none' }} to={_to} {...rest} />;\n};\n","/*\n * SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport React, { useEffect, useState, useMemo } from 'react';\n\nimport { Modal, Button, ModalProps } from '@zextras/carbonio-design-system';\nimport { Location } from 'history';\nimport { filter } from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { Prompt, useHistory } from 'react-router-dom';\n\nexport interface RouteLeavingGuardProps {\n\tchildren: ModalProps['children'];\n\twhen?: boolean;\n\tonSave: () => Promise<PromiseSettledResult<Awaited<unknown>>[]>;\n\tdataHasError?: boolean;\n}\n\nexport const RouteLeavingGuard = ({\n\tchildren,\n\twhen,\n\tonSave,\n\tdataHasError = false\n}: RouteLeavingGuardProps): React.JSX.Element => {\n\tconst history = useHistory();\n\tconst lastLocationInitial = useMemo(() => history.location, [history]);\n\tconst [modalVisible, setModalVisible] = useState(false);\n\tconst [lastLocation, setLastLocation] = useState<Location>(lastLocationInitial);\n\tconst [confirmedNavigation, setConfirmedNavigation] = useState(false);\n\tconst [t] = useTranslation();\n\tconst cancel = (): void => {\n\t\tsetModalVisible(false);\n\t\tsetConfirmedNavigation(false);\n\t};\n\n\tconst handleBlockedNavigation = (nextLocation: Location): boolean => {\n\t\tif (\n\t\t\t!confirmedNavigation &&\n\t\t\t`${nextLocation.pathname}${nextLocation.search || ''}` !==\n\t\t\t\t`${history.location.pathname}${history.location.search}`\n\t\t) {\n\t\t\tsetModalVisible(true);\n\t\t\tsetLastLocation(nextLocation);\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t};\n\n\tconst onConfirm = (): void => {\n\t\tonSave()\n\t\t\t.then((results) => {\n\t\t\t\tconst rejected = filter(\n\t\t\t\t\tresults,\n\t\t\t\t\t(result): result is PromiseRejectedResult => result.status === 'rejected'\n\t\t\t\t);\n\t\t\t\tif (rejected.length > 0) {\n\t\t\t\t\tconsole.error(rejected);\n\t\t\t\t\tcancel();\n\t\t\t\t} else {\n\t\t\t\t\tsetModalVisible(false);\n\t\t\t\t\tsetConfirmedNavigation(true);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((reason) => {\n\t\t\t\tconsole.error(reason);\n\t\t\t\tcancel();\n\t\t\t});\n\t};\n\n\tconst onSecondaryAction = (): void => {\n\t\tsetModalVisible(false);\n\t\tsetConfirmedNavigation(true);\n\t};\n\n\tuseEffect(() => {\n\t\tif (confirmedNavigation && lastLocation) {\n\t\t\t// Navigate to the previous blocked location with your navigate function\n\t\t\thistory.push(lastLocation);\n\t\t}\n\t}, [confirmedNavigation, history, lastLocation]);\n\n\treturn (\n\t\t<>\n\t\t\t<Prompt when={when} message={handleBlockedNavigation} />\n\t\t\t{/* Your own alert/dialog/modal component */}\n\t\t\t<Modal\n\t\t\t\tshowCloseIcon\n\t\t\t\tcloseIconTooltip={t('label.close', 'Close')}\n\t\t\t\topen={modalVisible}\n\t\t\t\ttitle={\n\t\t\t\t\tdataHasError\n\t\t\t\t\t\t? t('label.cannot_save_changes', 'Some changes cannot be saved')\n\t\t\t\t\t\t: t('label.unsaved_changes', 'You have unsaved changes')\n\t\t\t\t}\n\t\t\t\tonClose={cancel}\n\t\t\t\tonConfirm={dataHasError ? onSecondaryAction : onConfirm}\n\t\t\t\tconfirmLabel={\n\t\t\t\t\tdataHasError\n\t\t\t\t\t\t? t('label.leave_anyway', 'Leave anyway')\n\t\t\t\t\t\t: t('label.save_and_leave', 'Save and leave')\n\t\t\t\t}\n\t\t\t\tonSecondaryAction={dataHasError ? cancel : onSecondaryAction}\n\t\t\t\tsecondaryActionLabel={\n\t\t\t\t\tdataHasError ? t('label.cancel', 'Cancel') : t('label.leave_anyway', 'Leave anyway')\n\t\t\t\t}\n\t\t\t\toptionalFooter={\n\t\t\t\t\t!dataHasError ? (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\t\ttype=\"outlined\"\n\t\t\t\t\t\t\tlabel={t('label.cancel', 'Cancel')}\n\t\t\t\t\t\t\tonClick={cancel}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Modal>\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 */\n\nimport React, { FC } from 'react';\n\nimport { Button, Container } from '@zextras/carbonio-design-system';\nimport { noop } from 'lodash';\n\nexport const Spinner: FC = () => (\n\t<Container width=\"fill\" height=\"fill\" mainAlignment=\"center\" crossAlignment=\"center\">\n\t\t{/* the \"Button\" string doesn't need to be translated as it's not rendered */}\n\t\t<Button type=\"ghost\" label=\"Button\" color=\"primary\" loading onClick={noop} />\n\t</Container>\n);\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { FC, useCallback, useMemo } from 'react';\n\nimport {\n\tContainer,\n\tDropdown,\n\tDropdownItem,\n\tIconButton,\n\tTooltip\n} from '@zextras/carbonio-design-system';\nimport { map, noop } from 'lodash';\n\nimport { useUtilityBarStore } from './store';\nimport { useUtilityViews } from './utils';\nimport type { UtilityView } from '../../types';\nimport { fetchNoOp } from '../network/fetch';\nimport { logout } from '../network/logout';\nimport { useUserAccount } from '../store/account';\nimport { getT } from '../store/i18n';\n\nconst UtilityBarItem: FC<{ view: UtilityView }> = ({ view }) => {\n\tconst { mode, setMode, current, setCurrent } = useUtilityBarStore();\n\tconst onClick = useCallback((): void => {\n\t\t// eslint-disable-next-line no-nested-ternary\n\t\tsetMode(current !== view.id ? 'open' : mode !== 'open' ? 'open' : 'closed');\n\t\tsetCurrent(view.id);\n\t}, [current, mode, setCurrent, setMode, view.id]);\n\tif (typeof view.button === 'string') {\n\t\treturn (\n\t\t\t<Tooltip label={view.label} placement=\"bottom-end\">\n\t\t\t\t<IconButton\n\t\t\t\t\ticon={view.button}\n\t\t\t\t\ticonColor={current === view.id ? 'primary' : 'text'}\n\t\t\t\t\tonClick={onClick}\n\t\t\t\t\tsize=\"large\"\n\t\t\t\t/>\n\t\t\t</Tooltip>\n\t\t);\n\t}\n\treturn <view.button mode={mode} setMode={setMode} />;\n};\n\nexport const ShellUtilityBar = (): React.JSX.Element => {\n\tconst views = useUtilityViews();\n\tconst t = getT();\n\tconst account = useUserAccount();\n\tconst accountItems = useMemo(\n\t\t(): DropdownItem[] => [\n\t\t\t{\n\t\t\t\tid: 'account',\n\t\t\t\tlabel: account?.displayName ?? 'Account',\n\t\t\t\tdisabled: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'email',\n\t\t\t\tlabel: account?.name ?? '',\n\t\t\t\tdisabled: true\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'divider',\n\t\t\t\tid: 'divider',\n\t\t\t\tlabel: 'divider'\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'update',\n\t\t\t\tlabel: t('label.update_view', 'Update view'),\n\t\t\t\tonClick: fetchNoOp,\n\t\t\t\ticon: 'Refresh'\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'docs',\n\t\t\t\tlabel: t('label.documentation', 'Documentation'),\n\t\t\t\tonClick: noop,\n\t\t\t\tdisabled: true,\n\t\t\t\ticon: 'InfoOutline'\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'logout',\n\t\t\t\tlabel: t('label.logout', 'Logout'),\n\t\t\t\tonClick: logout,\n\t\t\t\ticon: 'LogOut'\n\t\t\t}\n\t\t],\n\t\t[account, t]\n\t);\n\n\tconst viewItems = useMemo(\n\t\t() => map(views, (view) => <UtilityBarItem view={view} key={view.id} />),\n\t\t[views]\n\t);\n\n\treturn (\n\t\t<Container orientation=\"horizontal\" width=\"fit\">\n\t\t\t{viewItems}\n\t\t\t<Tooltip label={account?.displayName ?? account?.name} placement=\"bottom-end\">\n\t\t\t\t<Dropdown items={accountItems} maxWidth=\"18.75rem\" disableAutoFocus>\n\t\t\t\t\t<IconButton icon=\"PersonOutline\" size=\"large\" onClick={noop} />\n\t\t\t\t</Dropdown>\n\t\t\t</Tooltip>\n\t\t</Container>\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, { FC, useEffect, useMemo } from 'react';\n\nimport { Container, Responsive } from '@zextras/carbonio-design-system';\nimport { find } from 'lodash';\nimport styled from 'styled-components';\n\nimport { useUtilityBarStore } from './store';\nimport { useUtilityViews } from './utils';\nimport AppContextProvider from '../boot/app/app-context-provider';\n\nconst Panel = styled(Container)<{ mode: string }>`\n\twidth: ${({ mode }): number => (mode !== 'closed' ? 16 : 3)}rem;\n\tborder-radius: 0;\n\theight: 100%;\n\tposition: absolute;\n\tright: 0;\n\ttop: 0;\n\tbottom: 0;\n\ttransition: width 0.2s;\n\tborder-left: 0.0625rem solid ${({ theme }): string => theme.palette.gray2.regular};\n`;\nconst Spacer = styled.div<{ mode: string }>`\n\tposition: relative;\n\twidth: ${({ mode }): number => (mode === 'open' ? 16 : 3)}rem;\n\theight: 100%;\n\ttransition: width 0.2s;\n`;\n\nexport const ShellUtilityPanel: FC = () => {\n\tconst { mode, setMode, current, setCurrent } = useUtilityBarStore();\n\tconst views = useUtilityViews();\n\tconst currentPanel = useMemo(() => find(views, (view) => view.id === current), [current, views]);\n\tuseEffect(() => {\n\t\tif (!(current && currentPanel)) {\n\t\t\tsetCurrent(views[0]?.id);\n\t\t}\n\t}, [current, currentPanel, setCurrent, views]);\n\treturn currentPanel ? (\n\t\t<Responsive mode=\"desktop\">\n\t\t\t<Spacer mode={mode}>\n\t\t\t\t<Panel mode={mode} mainAlignment=\"flex-start\">\n\t\t\t\t\t{currentPanel && (\n\t\t\t\t\t\t<AppContextProvider pkg={currentPanel?.id}>\n\t\t\t\t\t\t\t<currentPanel.component mode={mode} setMode={setMode} />\n\t\t\t\t\t\t</AppContextProvider>\n\t\t\t\t\t)}\n\t\t\t\t</Panel>\n\t\t\t</Spacer>\n\t\t</Responsive>\n\t) : null;\n};\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport { create } from 'zustand';\n\nimport type { UtilityBarStore } from '../../types';\n\n// extra currying as suggested in https://github.com/pmndrs/zustand/blob/main/docs/guides/typescript.md#basic-usage\nexport const useUtilityBarStore = create<UtilityBarStore>()((set) => ({\n\tmode: 'closed',\n\tcurrent: undefined,\n\tsecondaryBarState: true,\n\tsetMode: (mode): void =>\n\t\tset((s) => ({ mode, secondaryBarState: mode === 'open' ? false : s.secondaryBarState })),\n\tsetCurrent: (current): void => set({ current }),\n\tsetSecondaryBarState: (secondaryBarState: boolean): void => set({ secondaryBarState })\n}));\n","/*\n * SPDX-FileCopyrightText: 2022 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\n\nimport { useMemo } from 'react';\n\nimport { filter, intersection, omit } from 'lodash';\n\nimport { AppRoute, PrimaryAccessoryView, SecondaryAccessoryView, UtilityView } from '../../types';\nimport { useCurrentRoute } from '../history/hooks';\nimport { useAppStore } from '../store/app';\n\nexport const checkList = (l1: Array<string>, l2?: Array<string>): boolean =>\n\tintersection(l1, l2).length > 0;\n\nexport const checkRoute = (\n\tview: UtilityView | PrimaryAccessoryView | SecondaryAccessoryView,\n\tactiveRoute?: AppRoute\n): boolean => {\n\tconst activeRouteValues = Object.values(omit(activeRoute, 'standalone') ?? {});\n\tif (view.blacklistRoutes) return !checkList(activeRouteValues, view.blacklistRoutes);\n\tif (view.whitelistRoutes) return checkList(activeRouteValues, view.whitelistRoutes);\n\treturn true;\n};\nexport const useUtilityViews = (): Array<UtilityView> => {\n\tconst utilityViews = useAppStore((s) => s.views.utilityBar);\n\n\tconst activeRoute = useCurrentRoute();\n\treturn useMemo(\n\t\t() => filter(utilityViews, (v) => checkRoute(v, activeRoute)),\n\t\t[activeRoute, utilityViews]\n\t);\n};\n","/*\n * SPDX-FileCopyrightText: 2023 Zextras <https://www.zextras.com>\n *\n * SPDX-License-Identifier: AGPL-3.0-only\n */\nimport React, { CSSProperties } from 'react';\n\nimport { reduce } from 'lodash';\n\nexport type ElementPosition = {\n\ttop: number;\n\tleft: number;\n};\n\nexport type ElementSize = {\n\twidth: number;\n\theight: number;\n};\n\nexport type SizeAndPosition = ElementPosition & ElementSize;\n\nexport const testFolderIsChecked = ({ string }: { string: string | undefined }): boolean =>\n\t/#/.test(string || '');\n\nexport function setGlobalCursor(cursor: CSSProperties['cursor']): void {\n\t// remove previously set cursor\n\tconst cursors: string[] = [];\n\tdocument.body.classList.forEach((item) => {\n\t\tif (item.startsWith('global-cursor-')) {\n\t\t\tcursors.push(item);\n\t\t}\n\t});\n\tdocument.body.classList.remove(...cursors);\n\tif (cursor) {\n\t\tdocument.body.classList.add(`global-cursor-${cursor}`);\n\t}\n}\n\nexport function setElementSizeAndPosition(\n\telement: HTMLElement,\n\tkey: keyof SizeAndPosition,\n\tvalue: number | undefined\n): void {\n\t// eslint-disable-next-line no-param-reassign\n\telement.style[key] = value !== undefined ? `${value}px` : '';\n}\n\nexport function stopPropagation(event: Event | React.SyntheticEvent): void {\n\tevent.stopPropagation();\n}\n\nexport function createExportForTestOnly<TObj extends Record<string, unknown>>(\n\tobjToExport: TObj\n): { [K in keyof TObj]: TObj[K] | undefined } {\n\treturn process.env.NODE_ENV === 'test'\n\t\t? objToExport\n\t\t: reduce(\n\t\t\t\tobjToExport,\n\t\t\t\t(accumulator, value, key) => {\n\t\t\t\t\taccumulator[key as keyof TObj] = undefined;\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{} as Record<keyof TObj, undefined>\n\t\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 @typescript-eslint/ban-ts-comment\n// @ts-ignore\nexport const tagWorker = new Worker(new URL('./tag', import.meta.url));\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nexport const folderWorker = new Worker(new URL('./folder', import.meta.url));\n","var map = {\n\t\"./de/index.js\": [\n\t\t\"./node_modules/date-fns/locale/de/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_de_index_js\"\n\t],\n\t\"./en-US/index.js\": [\n\t\t\"./node_modules/date-fns/locale/en-US/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_en-US_index_js\"\n\t],\n\t\"./es/index.js\": [\n\t\t\"./node_modules/date-fns/locale/es/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_es_index_js\"\n\t],\n\t\"./fr/index.js\": [\n\t\t\"./node_modules/date-fns/locale/fr/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_fr_index_js\"\n\t],\n\t\"./hi/index.js\": [\n\t\t\"./node_modules/date-fns/locale/hi/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_hi_index_js\"\n\t],\n\t\"./it/index.js\": [\n\t\t\"./node_modules/date-fns/locale/it/index.js\",\n\t\t\"vendors-node_modules_date-fns__lib_isSameUTCWeek_index_js-node_modules_date-fns_locale__lib_b-41ea83\",\n\t\t\"vendors-node_modules_date-fns_locale_it_index_js\"\n\t],\n\t\"./ja/index.js\": [\n\t\t\"./node_modules/date-fns/locale/ja/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_ja_index_js\"\n\t],\n\t\"./nl/index.js\": [\n\t\t\"./node_modules/date-fns/locale/nl/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_nl_index_js\"\n\t],\n\t\"./pl/index.js\": [\n\t\t\"./node_modules/date-fns/locale/pl/index.js\",\n\t\t\"vendors-node_modules_date-fns__lib_isSameUTCWeek_index_js-node_modules_date-fns_locale__lib_b-41ea83\",\n\t\t\"vendors-node_modules_date-fns_locale_pl_index_js\"\n\t],\n\t\"./pt-BR/index.js\": [\n\t\t\"./node_modules/date-fns/locale/pt-BR/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_pt-BR_index_js\"\n\t],\n\t\"./pt/index.js\": [\n\t\t\"./node_modules/date-fns/locale/pt/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_pt_index_js\"\n\t],\n\t\"./ro/index.js\": [\n\t\t\"./node_modules/date-fns/locale/ro/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_ro_index_js\"\n\t],\n\t\"./ru/index.js\": [\n\t\t\"./node_modules/date-fns/locale/ru/index.js\",\n\t\t\"vendors-node_modules_date-fns__lib_isSameUTCWeek_index_js-node_modules_date-fns_locale__lib_b-41ea83\",\n\t\t\"vendors-node_modules_date-fns_locale_ru_index_js\"\n\t],\n\t\"./th/index.js\": [\n\t\t\"./node_modules/date-fns/locale/th/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_th_index_js\"\n\t],\n\t\"./tr/index.js\": [\n\t\t\"./node_modules/date-fns/locale/tr/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_tr_index_js\"\n\t],\n\t\"./vi/index.js\": [\n\t\t\"./node_modules/date-fns/locale/vi/index.js\",\n\t\t\"vendors-node_modules_date-fns_locale_vi_index_js\"\n\t],\n\t\"./zh-CN/index.js\": [\n\t\t\"./node_modules/date-fns/locale/zh-CN/index.js\",\n\t\t\"vendors-node_modules_date-fns__lib_isSameUTCWeek_index_js-node_modules_date-fns_locale__lib_b-41ea83\",\n\t\t\"vendors-node_modules_date-fns_locale_zh-CN_index_js\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__.t(id, 7 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = \"./node_modules/date-fns/locale lazy recursive \\\\.[/\\\\\\\\](zh-CN%7Cnl%7Cen-US%7Cde%7Chi%7Cit%7Cja%7Cpt%7Cpl%7Cpt-BR%7Cro%7Cru%7Ces%7Cth%7Ctr%7Cfr%7Cvi)[/\\\\\\\\]index\\\\.js$\";\nmodule.exports = webpackAsyncContext;","// extracted by mini-css-extract-plugin\nexport {};","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"names":["React","I18nextProvider","AppErrorCatcher","SHELL_APP_ID","useI18nStore","AppContextProvider","_ref","pkg","children","instances","defaultI18n","getState","i18n","createElement","useCallback","Catcher","onError","error","console","reduce","usePushHistoryCallback","useGoBackHistoryCallback","useReplaceHistoryCallback","getCurrentRoute","useCurrentRoute","replaceHistory","goBackHistory","pushHistory","getSoapFetch","getXmlSoapFetch","changeTagColor","createTag","deleteTag","renameTag","getNotificationManager","runSearch","useIsMobile","useLocalStorage","getUserAccount","getUserAccounts","getUserSetting","getUserSettings","useUserAccount","useUserAccounts","useUserSetting","useUserSettings","useUserRight","useUserRights","getUserRight","getUserRights","getApp","getAppContext","useApp","useAppContext","addBoard","closeBoard","updateBoard","updateBoardContext","getBoardById","getBoardContextById","useBoardContextById","useBoardById","useBoard","minimizeBoards","reopenBoards","setCurrentBoard","useBoardHooks","useContextBridge","getFolder","getFolders","useFolder","useFolders","useRoot","getRoot","useRoots","getRoots","useSearchFolder","useSearchFolders","getSearchFolder","getSearchFolders","useFoldersByView","useFoldersAccordionByView","useRootByUser","getRootByUser","getI18n","getTFunction","getAction","getActions","getActionsFactory","getActionFactory","getIntegratedComponent","getIntegratedFunction","useAction","useActions","useActionsFactory","useActionFactory","useIntegratedComponent","useIntegratedFunction","useNotify","useRefresh","getTags","useTags","getAppFunctions","name","t","soapFetch","xmlSoapFetch","getBridgedFunctions","packageDependentFunctions","functions","acc","f","Suspense","useMemo","map","useAppStore","Mounter","appId","key","id","fallback","AppLoaderMounter","entryPoints","s","entries","Comp","hidden","style","height","overflow","getEditSettingsForApp","normalizeRoute","normalizeSettingsView","normalizeSearchView","normalizeUtilityView","normalizePrimaryAccessoryView","normalizeSecondaryAccessoryView","normalizeBoardView","useIntegrationsStore","getAppSetters","appSetters","setters","integrations","updatePrimaryBadge","updateUtilityBadge","setAppContext","addRoute","route","setRouteVisibility","routeId","visible","removeRoute","addBoardView","data","removeBoardView","addSettingsView","removeSettingsView","addSearchView","removeSearchView","addUtilityView","removeUtilityView","addPrimaryAccessoryView","removePrimaryAccessoryView","addSecondaryAccessoryView","removeSecondaryAccessoryView","registerFunctions","removeFunctions","registerActions","removeActions","registerComponents","removeComponents","editSettings","size","SEARCH_APP_ID","SETTINGS_APP_ID","SearchAppView","AccountsSettings","GeneralSettings","settingsSubSections","SettingsAppView","SettingsSidebar","useAccountStore","settingsGeneralView","app","component","icon","label","position","subSections","settingsAccountsView","searchRouteDescriptor","appView","badge","show","primaryBar","settingsRouteDescriptor","secondaryBar","registerDefaultViews","attrs","settings","zimbraFeatureOptionsEnabled","memo","forOwn","CONSTANTS","report","SettingsHeader","AppLink","Spinner","_scripts","_scriptId","loadApp","appPkg","Promise","resolve","reject","window","__ZAPP_SHARED_LIBRARIES__","__ZAPP_HMR_EXPORT__","appComponent","setState","state","info","script","document","setAttribute","version","js_entrypoint","body","appendChild","err","unloadApps","parentNode","removeChild","registerLocale","setDefaultLocale","filter","injectSharedLibraries","SUPPORTED_LOCALES","useReporter","getDateFnsLocale","locale","loadApps","apps","appsToLoad","attrKey","log","prefs","zimbraPrefLocale","zimbraLocale","actions","addI18n","localeObj","localeDateFnsKey","dateFnsLocale","value","then","localeDateFns","setClients","allSettled","unloadAllApps","ReduxJSToolkit","ZappUI","Preview","Lodash","Moment","ReactDOM","ReactI18n","ReactRedux","ReactRouterDom","StyledComponents","react","lodash","moment","useEffect","ModalManager","SnackbarManager","useTranslation","BrowserRouter","Route","Switch","useParams","ContextBridge","Loader","ShellI18nextProvider","ThemeProvider","BASENAME","IS_STANDALONE","NotificationPermissionChecker","ShellView","StandaloneListener","standalone","DefaultViewsRegister","Bootstrapper","basename","path","useModal","useSnackbar","useHistory","useBridge","history","createSnackbar","createModal","getHistory","useState","Modal","Padding","Text","find","getComponents","getInfo","loginConfig","goToLogin","isPromiseRejectedResult","promiseSettledResult","status","isPromiseFulfilledResult","LoaderFailureModal","open","closeHandler","onConfirm","location","reload","showCloseIcon","onSecondaryAction","title","confirmLabel","secondaryActionLabel","onClose","all","setOpen","promiseSettledResultArray","getComponentsPromiseSettledResult","getInfoPromiseSettledResult","promiseRejectedResult","reason","message","Object","values","createContext","useLayoutEffect","generateColorSet","UIThemeProvider","auto","disable","enable","setFetchMethod","createGlobalStyle","css","useGetPrimaryColor","darkReaderDynamicThemeFixes","LOCAL_STORAGE_SETTINGS_KEY","getAutoScalingFontSize","fetch","ThemeCallbacksContext","addExtension","Error","setDarkReaderState","paletteExtension","customTheme","arguments","length","undefined","theme","palette","shared","regular","hover","active","focus","disabled","linked","iconExtension","icons","Shared","ArrowCircleRight","Linked","ArrowCircleLeft","globalCursorsExtension","globalCursors","GlobalStyle","baseFontSize","_ref2","cursor","_ref3","localStorageSettings","extensions","setExtensions","primaryColor","customThemePalette","primary","extension","darkReaderState","aggregatedExtensions","themeAccumulator","themeExtensionFn","newExtension","ext","savedScalingValueSetting","themeCallbacksContextValue","Provider","useTheme","LOCAL_STORAGE_LAST_PRIMARY_KEY","useDarkMode","useLoginConfigStore","localStorageLastPrimary","setLocalStorageLastPrimary","carbonioWebUiPrimaryColor","carbonioWebUiDarkPrimaryColor","darkModeEnabled","darkReaderStatus","dark","light","prevState","ZIMBRA_STANDARD_COLORS","zValue","hex","zLabel","FOLDERS","USER_ROOT","INBOX","TRASH","SPAM","SENT","DRAFTS","CONTACTS","TAGS","CONVERSATIONS","CALENDAR","ROOT","NOTEBOOK","AUTO_CONTACTS","IM_LOGS","TASKS","BRIEFCASE","LAST_SYSTEM_FOLDER_POSITION","ACCOUNTS_APP_ID","ACTION_TYPES","CONVERSATION","CONVERSATION_lIST","MESSAGE","MESSAGE_lIST","CONTACT","CONTACT_lIST","INVITE","INVITE_lIST","APPOINTMENT","APPOINTMENT_lIST","FOLDER","FOLDER_lIST","CALENDAR_lIST","NEW","ignoreImageAnalysis","invert","ignoreInlineStyle","disableStyleSheetsProxy","base","standaloneBase","pathname","startsWith","EMAIL_VALIDATION_REGEX","ROOT_NAME","DARK_READER_VALUES","FOLDER_VIEW","search_folder","tag","conversation","contact","appointment","virtual_conversation","remote_folder","wiki","task","chat","LOCAL_STORAGE_SEARCH_KEY","LOCAL_STORAGE_BOARD_SIZE","SCALING_OPTIONS","BASE_FONT_SIZE","SCALING_LIMIT","WIDTH","HEIGHT","DPR","LOGIN_V3_CONFIG_PATH","DARK_READER_PROP_KEY","SENTRY_SHELL_DSN","ResultLabelType","HEADER_BAR_HEIGHT","PRIMARY_BAR_WIDTH","BOARD_HEADER_HEIGHT","BOARD_TAB_WIDTH","BOARD_CONTAINER_ZINDEX","BOARD_MIN_VISIBILITY","top","left","DELEGATED_SEND_SAVE_TARGET","defineProperty","exports","zh_CN","tinymceLocale","nl","en","de","hi","it","ja","pt","pl","pt_BR","ro","ru","es","th","tr","fr","vi","useDarkReaderResultValue","getPrefersColorSchemeDarkMedia","darkReaderResultValue","setDarkModeEnabled","matches","setCallback","event","addEventListener","removeEventListener","isZappDarkreaderModeZimletProp","prop","zimlet","isDarkReaderPropValues","maybeDarkReaderPropValue","includes","carbonioWebUiDarkMode","settingReceived","props","result","_content","matchMedia","replace","trim","useLocation","useSearchStore","useRoutes","getRoutes","routes","r","module","parseParams","params","routeToApply","search","hash","push","goBack","findIndex","isArray","mods","pref","p","join","identity","modifyList","item","deleteList","createList","index","zimbraPrefIdentityName","zimbraPrefFromDisplay","zimbraPrefFromAddress","zimbraPrefReplyToEnabled","zimbraPrefReplyToDisplay","zimbraPrefReplyToAddress","zimbraPrefDefaultSignatureId","zimbraPrefForwardReplySignatureId","zimbraPrefWhenSentToEnabled","zimbraPrefWhenInFoldersEnabled","permissions","freeBusy","current","right","gt","zid","deny","d","inviteRight","new","u","email","propIndex","account","displayName","identities","itemMods","indexAccount","_attrs","i","CreateIdentityResponse","type","maxBy","userAgent","useNetworkStore","getPollingInterval","handleSync","fetchNoOp","pollingInterval","_jsns","limitToOneBlocked","wait","getAccount","otherAccount","by","getXmlAccount","getXmlSession","sessionId","session","normalizeContext","context","notify","deleted","split","handleResponse","api","res","noOpTimeout","usedQuota","clearTimeout","Body","Fault","code","Detail","Code","authenticated","Reason","Header","responseUsedQuota","refresh","mbx","modified","_context","seq","nextPollingInterval","setTimeout","signal","zimbraVersion","method","headers","JSON","stringify","json","catch","e","shellSoap","response","ok","statusText","components","setApps","normalizeAccount","parsePollingInterval","rights","getClientTitle","getFavicon","finally","loaded","favicon","getElementById","HTMLLinkElement","href","goTo","logout","logoff","redirect","customLogoutUrl","carbonioWebUiLogoutURL","action","op","color","rgb","UAParser","os","browser","assign","origin","debounce","noop","defaultAudio","NotificationManager","DEBOUNCE_TIME","PopupNotificationDefaultConfig","vibrate","AudioNotificationDefaultConfig","sound","NotificationDefaultConfig","showPopup","playSound","Map","getAudioFileFunction","has","set","Audio","play","delete","get","config","defConfig","n","Notification","onClick","multipleNotify","forEach","conf","getInstance","instance","warn","requestPermission","Fragment","hint","reporter","eventId","clients","captureException","BrowserClient","defaultIntegrations","defaultStackParser","Hub","makeFetchTransport","create","transport","stackParser","dsn","release","maxValueLength","sentryDsn","Container","Row","Icon","Dropdown","styled","SelectorContainer","withConfig","componentId","gray4","ModuleSelectorComponent","_ref4","modules","views","updateModule","fullModule","m","dropdownItems","_ref5","openDropdown","closeDropdown","items","onOpen","orientation","width","minWidth","crossAlignment","mainAlignment","borderRadius","takeAvailableSpace","padding","alignSelf","MemoModuleSelector","ModuleSelector","activeRoute","query","searchDisabled","Button","Chip","Divider","Redirect","getT","useQuery","updateQuery","useDisableSearch","setSearchDisabled","getIconAndColor","labelType","WARNING","ERROR","ResultsHeader","NORMAL","setDisabled","resetQuery","labelTypeElem","chipItems","queryChip","_extends","background","minHeight","maxHeight","horizontal","vertical","wrap","searchViews","view","exact","strict","from","to","useRef","ChipInput","IconButton","Tooltip","some","OutlinedIconButton","StyledChipInput","gray5","StyledContainer","SearchBar","inputRef","storedSuggestions","setStoredSuggestions","inputTyped","setInputTyped","currentSearchModuleRoute","tooltip","moduleLabel","isTyping","setIsTyping","options","setOptions","inputHasFocus","setInputHasFocus","searchInputValue","setSearchInputValue","showClear","clearSearch","onSearch","currentQuery","ref","newInputValue","hasAvatar","newInputChip","currentQueryChip","searchInputChip","appSuggestions","v","reverse","updateOptions","textContent","queryChips","suggestion","slice","onQueryChange","newQuery","lastChipLabel","newSuggestion","onInputType","ev","suggestions","containerRef","addFocus","removeFocus","runSearchOnKeyUp","disableOptions","placeholder","clearButtonPlaceholder","searchButtonsAreDisabled","searchBtnTooltipLabel","onChipAdd","newChip","flexGrow","maxWidth","onAdd","confirmChipOnBlur","separators","overflowX","onChange","onInputTypeDebounce","onBlur","onFocus","requireUniqueChips","placement","customSize","iconSize","paddingSize","iconColor","backgroundColor","isFunction","produce","isEmpty","AccountsList","Delegates","PersonaSettings","PrimaryAccountSettings","SettingsSentMessages","calculateNewIdentitiesState","defaultAsFirstOrderIdentities","getAvailableEmailAddresses","isPrimary","mapToCreateIdentityRequests","createRecord","zimbraPrefFromAddressType","mapToDeleteIdentityRequests","deleteArray","identityId","requestId","toString","mapToModifyIdentityRequests","modifyRecord","generateDelegateList","ace","accumulator","idx","translatedRight","toLowerCase","defaultValue","createRecordRef","deleteArrayRef","modifyRecordRef","delegatedSendSaveTargetRef","zimbraPrefDelegatedSendSaveTarget","isDirty","setIsDirty","calculateIsDirty","updateDelegatedSendSaveTarget","updatedValue","resetLists","selectedIdentityId","setSelectedIdentityId","identitiesDefault","setIdentities","maxIdentities","zimbraIdentityMaxNumEntries","addIdentity","identityAttrs","zimbraPrefIdentityId","updateIdentities","actualIdentity","removeIdentity","onSave","autoHideTimeout","hideButton","modifyPrefsRequest","createIdentityRequests","deleteRequests","modifyIdentityRequests","promise","DeleteIdentityRequest","CreateIdentityRequest","ModifyIdentityRequest","ModifyPrefsRequest","availableEmailAddresses","delegatesSettingsSectionRef","onCancel","reset","delegates","setDelegates","personaSettings","settingsSentMessages","accountName","delegatedSendSaveTarget","resetRef","useContext","ModalManagerContext","ListV2","ListItem","List","getNewPersonaNextIdentityName","numberToCheck","unavailableIdentityNames","newPersonaNextIdentityName","number","createListRequestIdRef","addNewPersona","newPersonaName","onConfirmDelete","onDelete","closeModal","confirmColor","role","weight","bottom","Radio","RadioGroup","useReset","activeDelegate","setActiveDelegate","activeValue","setActiveValue","radioGroupOnChange","newValue","isZimbraPrefDelegatedSendSaveTarget","arg","resetHandler","setActiveDelegateCallback","ItemComponent","justifyContent","Input","personaValue","setPersonaValue","personaLabel","target","emailLabel","accountNameValue","setAccountNameValue","accountLabel","onChangeDisabled","Checkbox","Select","blankItem","replyToEnabledValue","setReplyToEnabledValue","replyToAddress","setReplyToAddress","dropdownOpen","setDropdownOpen","fromDisplayValue","setFromDisplayValue","replyToDisplay","setReplyToDisplay","fromAddressArray","address","fromAddress","setFromAddress","onClickReplyToEnabled","newState","fromDisplayLabel","onChangeFromDisplayValue","fromAddressLabel","onChangeFromAddress","newAddress","replyToEnabledLabel","replyToDisplayLabel","onChangePrefReplyToDisplay","replyToAddressLabel","onChangeReplyToAddress","replyToAddressArray","isValidEmail","test","selection","showCheckbox","hasError","CustomIcon","appearanceSubSection","AppearanceSettings","subSection","gap","DarkThemeSettingSection","addMod","removeMod","setSelection","setSelectNewValue","onSelectionChange","FormSubSection","accountSubSection","Logout","sectionTitle","Badge","useAppList","versionsSubSection","ModuleVersionSettings","copyToClipboard","preventDefault","HTMLElement","navigator","clipboard","writeText","innerText","filteredList","display","description","success","gray6","TextArea","OutOfOfficeTimePeriodSection","outOfOfficeSubSection","dateToGenTime","upsertPrefOnUnsavedChanges","buildItemsPrefOutOfOfficeReplyEnabled","buildItemsExternalSenders","SEND_AUTO_REPLY","SHOW_EXTERNAL_INPUT","SEND_NOT_IN_ORG","SUPPRESS_EXTERNAL","getExternalSendersPrefsData","itemsExternalSenders","zimbraPrefOutOfOfficeSuppressExternalReply","zimbraPrefOutOfOfficeExternalReplyEnabled","zimbraPrefExternalSendersType","OutOfOfficeSettings","outOfOfficeSectionTitle","prefOutOfOfficeReplyEnabled","setPrefOutOfOfficeReplyEnabled","zimbraPrefOutOfOfficeReplyEnabled","prefOutOfOfficeReply","setPrefOutOfOfficeReply","zimbraPrefOutOfOfficeReply","prefOutOfOfficeExternalReplyEnabled","setPrefOutOfOfficeExternalReplyEnabled","prefOutOfOfficeExternalReply","setPrefOutOfOfficeExternalReply","zimbraPrefOutOfOfficeExternalReply","externalSendersSelectedItem","setExternalSendersSelectedItem","sendAutoReplyTimePeriodEnabled","setSendAutoReplyTimePeriodEnabled","zimbraPrefOutOfOfficeFromDate","zimbraPrefOutOfOfficeUntilDate","outOfOfficeTimePeriodResetRef","initPrefs","updatePref","prefOutOfOfficeReplyEnabledSelectItems","prefOutOfOfficeReplyEnabledSelectedValue","prefOutOfOfficeReplyEnabledOnChange","externalSendersSelectItems","externalSendersHandler","externalSendersOnChange","newSelectItem","prefOutOfOfficeReplyOnChange","prefOutOfOfficeExternalReplyOnChange","toggleSendAutoReplyTimePeriod","nextState","Date","dropdownWidth","dropdownMaxWidth","prefOutOfOfficeFromDate","prefOutOfOfficeUntilDate","DateTimePicker","endOfDay","genTimeToDate","startOfDay","coerceGenTime","genTime","fromDate","setFromDate","untilDate","setUntilDate","allDayEnabled","setAllDayEnabled","editTimeIsDisabled","fromDatePref","untilDatePref","fromDateAllDay","untilDateAllDay","getTime","outOfOfficeFromDateOnChange","newFromDate","newUntilDate","outOfOfficeUntilDateOnChange","toggleAllDay","prevWasEnabled","nowIsEnabled","startOfFromDate","endOfUntilDate","dateFormat","includeTime","timeLabel","showTimeSelect","showTimeSelectOnly","Slider","ScalingSliderContainer","ExampleContainer","$fontSize","ExampleText","BASE_FONT_OPTION_INDEX","option","AUTOSCALING_FONT_SIZE","AUTOSCALING_FONT_OPTION_INDEX","ScalingSettingSection","scalingSettings","addLocalStoreChange","cleanLocalStoreChange","scalingOptionValues","scalingOptionLabels","labels","savedOptionIndex","optionIndex","autoScaling","setAutoScaling","scalingValue","setScalingValue","increaseScalingByStep","decreaseScalingByStep","toggleAutoScaling","onChangeScalingValue","newValueIndex","exampleText","exampleFontSize","Math","round","searchPrefsSubSection","SearchSettings","searchInSpamFolder","setSearchInSpamFolder","zimbraPrefIncludeSpamInSearch","searchInTrashFolder","setSearchInTrashFolder","zimbraPrefIncludeTrashInSearch","searchInSharedFolder","setSearchInSharedFolder","zimbraPrefIncludeSharedItemsInSearch","setMode","init","onClickSpam","onClickTrash","onClickShared","Quota","quotaSubSection","UserQuota","mobileView","used","quota","userQuota","Number","zimbraMailQuota","filledQuota","fillBackground","fill","Breadcrumbs","RouteLeavingGuard","CustomBreadcrumbs","crumbs","className","querySelector","scrollIntoView","when","cloneDeep","isBoolean","uniq","GEN_TIME_FORMAT","getGenTimeMoment","date","utc","format","local","toDate","setHours","localeList","localName","timeZoneList","screen","devicePixelRatio","baseFontIndex","addModifiedValueCallback","prefKey","prefValue","defaultIdx","defaultIdentity","splice","unshift","targets","user","addr","zimbraMailAlias","String","currentIdentities","deletedIdentities","addedIdentities","modifiedIdentitiesAttrs","filteredIdentities","filteredAndModified","timezoneAndLanguageSubSection","LanguageAndTimeZoneSettings","setMods","userSettings","localStorageUnAppliedChanges","setLocalStorageUnAppliedChanges","setLocalStorageSettings","prevType","nextType","unAppliedPrevState","localStorageSettingsPrevState","modifyPropertiesRequest","mappedProperties","zimbraPrefMailTrustedSenderList","Array","ModifyPropertiesRequest","keys","scalingSettingSectionRef","outOfOfficeSettingsSectionRef","searchSettingsSectionRef","useImperativeHandle","resetFn","LanguageAndTimeZone","locales","timezones","updatePrefs","defaultLocale","onLocaleChange","defaultTimeZone","zimbraPrefTimeZoneId","onTimeZoneChange","defaultSelection","dropdownMaxHeight","selectedBackgroundColor","dismissLabel","settingsViews","Accordion","expanded","disableHover","stopPropagation","collapsedItems","_BoardsRouterContainer","FirstAppRedirect","mainRoute","AppViewContainer","appViews","forwardRef","MiniBadge","BadgeWrap","showCount","fontSize","count","AppBoard","TabsList","ResizableContainer","closeAllBoards","expandBoards","onGoToPanel","reduceBoards","useBoardStore","setElementSizeAndPosition","useMove","BOARD_DEFAULT_POSITION","BoardContainerComp","div","minimized","OverflowContainer","Board","BoardHeader","BoardDetailContainer","BackButton","Actions","ListItemContent","_ref6","selected","boardId","pointerEvents","calcPositionToRemainVisible","lastSavedPosition","containerSize","minVisibility","limit","BoardContainer","boards","orderedBoards","boardDropdownItems","customComponent","boardRef","boardContainerRef","lastSavedBoardSizeAndPosition","setLastSavedBoardSizeAndPosition","currentBoardSizeAndPosition","setCurrentBoardSizeAndPosition","lastSavedBoardSizeAndPositionRef","isMoving","moveElementHandler","localStorageKey","isDefaultSizeAndPosition","isBoardEmpty","resetSizeAndPosition","boardElement","updateBoardPosition","clientHeight","clientWidth","newSizeAndPosition","boardContainer","leading","trailing","cancel","clickHandler","clickFn","defaultPrevented","onMouseDown","elementToResize","onReturnToApp","b","board","AppBoardTab","CustomRow","firstTab","TabContainer","gray3","CloseContainer","TabIcon","CustomText","overflowing","VerticalDivider","onRemove","textRef","textOverflowing","setTextOverflowing","resizeObserverRef","ResizeObserver","requestAnimationFrame","offsetWidth","scrollWidth","observe","disconnect","triggerRef","createMemoryHistory","Router","BoardProvider","initialEntries","url","boardViews","windowHistory","unlisten","listen","l","BORDERS","getCursorFromBorder","useResize","MainContainer","BorderWithResize","$cursor","$width","$height","$position","$translateTransform","x","y","ResizableBorder","border","keepSynchedWithStorage","borderRef","resizeHandler","sizes","positions","_ref7","rest","borders","gray2","Bubble","Collapser","MultiButton","groupBy","CreationButtonComponent","primaryAction","group","byApp","secondaryActions","click","disabledPrimary","disabledSecondary","MemoCreationButton","CreationButton","locationFull","truncateLocation","ShellContext","isMobile","createExportForTestOnly","isSameLocalStorageValue","valueA","valueB","useLocalStorageStore","storage","readValue","localStorageItem","localStorage","getItem","parse","setValue","valueToStore","Function","setItem","DEFAULT_OPTIONS","initialValue","storedValue","shouldDispatchStorageEventRef","localStorageOptions","readValueForKey","setValueForKey","dispatchEvent","Event","exportForTest","setGlobalCursor","BOARD_CURSOR_TIMEOUT","calcNewPosition","limitContainer","mouseEvent","limitClientRect","getBoundingClientRect","clientTopLimit","moveTopDelta","clientY","mouseClientY","newClientTop","clientTop","newTop","clientLeftLimit","moveLeftDelta","clientX","mouseClientX","newClientLeft","clientLeft","newLeft","elementToMoveRef","setIsMoving","isMoveEnabledRef","initialSizeAndPositionRef","setLastSavedPosition","lastPositionRef","globalCursorSetterTimerRef","shouldUpdateLocalStorageRef","moveElement","elementToMove","positionToApply","preventClick","capture","onMouseMove","mouseMoveEvent","offsetParent","newPosition","enableMove","activeElement","classList","add","disableMove","remove","onMouseUp","moveHandler","mouseDownEvent","clientRect","offsetHeight","offsetLeft","offsetTop","direction","concat","calcNewSizeAndPosition","heightDifference","widthDifference","elementToResizeRef","lastSavedSizeAndPosition","setLastSavedSizeAndPosition","lastSizeAndPositionRef","resizeElement","sizeAndPositionToApply","computedStyle","getComputedStyle","parseFloat","useLogo","Logo","LogoElement","alt","src","useScreenMode","ShellContextProvider","screenMode","Responsive","StyledLogo","ShellHeaderContainer","ShellHeader","searchEnabled","mode","sortBy","checkRoute","PrimaryBarContainer","ToggleBoardIcon","PrimaryBarElement","PrimaryBarAccessoryElement","OverlayRow","ShellPrimaryBar","primaryBarViews","routesRef","primaryBarAccessoryViews","primaryBarAccessories","accessoryViews","primaryBarItems","accessoryItems","hidePrimaryBar","useUtilityBarStore","SidebarContainer","sidebarIsOpen","ShellSecondaryBarComponent","isOpen","secondaryBarState","setIsOpen","setSecondaryBarState","onCollapserClick","secondaryBarViews","secondaryBarAccessoryViews","secondaryBarAccessories","accessories","overflowY","MemoShellSecondaryBar","ShellSecondaryBar","PreviewManager","ShellUtilityBar","ShellUtilityPanel","Background","DarkReaderListener","useLoginRedirection","allowUnauthenticated","auth","ShellComponent","hideShellHeader","MemoShell","acct","_len","_key","_len2","_key2","normalizeSettings","signatures","lastNotificationTime","now","useApps","a","priority","getAppList","getApps","appContexts","getShell","shell","getRoute","useRoute","merge","normalizeApp","STANDALONE_RESPONSE","addIfNotPresent","itemToAdd","sortByPosition","sort","addAndSort","removeById","commit","utilityBar","moduleApps","shellApp","normalizedApp","routeData","bar","FallbackView","normalizeBadgeInfo","whitelistRoutes","blacklistRoutes","button","boardContext","boardHooksContext","callbacks","getBoardContext","getBoard","trimStart","uniqueId","content","addFunctions","useFolderStore","filterNodes","folderViewFilter","isRoot","mapNodes","sortFolders","folders","roots","userId","searches","CustomComponent","itemProps","mapFunction","folder","filterFunction","recursionKey","sortFunction","deep","folderWorker","onmessage","hasId","getOriginalId","parts","parseInt","isTrash","oname","childrenSorted","i18next","Backend","dropRight","initReactI18next","addShell","defaultLng","createInstance","lng","defaultI18nInitOptions","returnEmptyString","returnNull","compatibilityJSON","fallbackLng","debug","interpolation","escapeValue","missingKeyHandler","_","__","backend","loadPath","BASE_PATH","setLocale","i18nInst","changeLanguage","getters","getLocale","appsWithShell","newI18n","use","Editor","tinymce","FileInput","input","Composer","onEditorChange","onFileSelect","inline","customInitOptions","_onEditorChange","newContent","editor","getContent","defaultStyle","font","zimbraPrefHtmlEditorDefaultFontFamily","zimbraPrefHtmlEditorDefaultFontSize","zimbraPrefHtmlEditorDefaultFontColor","onFileClick","language","inlineLabel","setupCallback","ui","registry","addMenuButton","callback","text","onAction","editorInitConfig","content_css","language_url","setup","min_height","auto_focus","menubar","statusbar","branding","resize","font_size_formats","object_resizing","style_formats","block","wrapper","merge_siblings","plugins","toolbar","quickbars_insert_toolbar","quickbars_selection_toolbar","contextmenu","toolbar_mode","content_style","visualblocks_default_state","end_container_on_empty_block","relative_urls","remove_script_host","newline_behavior","browser_spellcheck","fileInputOnChange","files","accept","multiple","compact","integration","Integration","C","factories","factory","omit","composer","_len3","_key3","fn","_len4","ids","_key4","actionTypeMap","actionFactory","actionFactoryId","_len5","_key5","_len6","_key6","carbonioWebUiFavicon","carbonioWebUiTitle","DefaultLogo","carbonioWebUiAppLogo","carbonioWebUiDarkAppLogo","tagWorker","useTagStore","POLLING_NOWAIT_INTERVAL","POLLING_RETRY_INTERVAL","pollingPref","zimbraPrefMailPollingInterval","pollingValue","isNaN","waitDisallowed","fault","postMessage","tags","pick","Link","RRLink","_to","textDecoration","Prompt","dataHasError","lastLocationInitial","modalVisible","setModalVisible","lastLocation","setLastLocation","confirmedNavigation","setConfirmedNavigation","handleBlockedNavigation","nextLocation","results","rejected","closeIconTooltip","optionalFooter","loading","useUtilityViews","UtilityBarItem","setCurrent","accountItems","viewItems","disableAutoFocus","Panel","Spacer","currentPanel","intersection","checkList","l1","l2","activeRouteValues","utilityViews","testFolderIsChecked","string","cursors","element","objToExport","process","env","NODE_ENV","Worker","URL","import","meta"],"sourceRoot":""}
|