@axelor/aos-mobile-core 0.0.1
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/README.md +310 -0
- package/lib/api/attached-files-api.d.ts +8 -0
- package/lib/api/attached-files-api.js +51 -0
- package/lib/api/attached-files-api.js.map +1 -0
- package/lib/api/login-api.d.ts +5 -0
- package/lib/api/login-api.js +41 -0
- package/lib/api/login-api.js.map +1 -0
- package/lib/api/mail-message-api.d.ts +43 -0
- package/lib/api/mail-message-api.js +114 -0
- package/lib/api/mail-message-api.js.map +1 -0
- package/lib/api/menu-config-api.d.ts +5 -0
- package/lib/api/menu-config-api.js +68 -0
- package/lib/api/menu-config-api.js.map +1 -0
- package/lib/api/metafile-api.d.ts +6 -0
- package/lib/api/metafile-api.js +50 -0
- package/lib/api/metafile-api.js.map +1 -0
- package/lib/api/mobile-config-api.d.ts +1 -0
- package/lib/api/mobile-config-api.js +31 -0
- package/lib/api/mobile-config-api.js.map +1 -0
- package/lib/api/net-info-utils.d.ts +5 -0
- package/lib/api/net-info-utils.js +29 -0
- package/lib/api/net-info-utils.js.map +1 -0
- package/lib/api/traceback-api.d.ts +7 -0
- package/lib/api/traceback-api.js +35 -0
- package/lib/api/traceback-api.js.map +1 -0
- package/lib/api/utils.d.ts +25 -0
- package/lib/api/utils.js +92 -0
- package/lib/api/utils.js.map +1 -0
- package/lib/app/Application.d.ts +15 -0
- package/lib/app/Application.js +29 -0
- package/lib/app/Application.js.map +1 -0
- package/lib/app/ContextedApplication.d.ts +9 -0
- package/lib/app/ContextedApplication.js +80 -0
- package/lib/app/ContextedApplication.js.map +1 -0
- package/lib/app/ContextsProvider.d.ts +14 -0
- package/lib/app/ContextsProvider.js +63 -0
- package/lib/app/ContextsProvider.js.map +1 -0
- package/lib/app/Module.d.ts +26 -0
- package/lib/app/Module.js +19 -0
- package/lib/app/Module.js.map +1 -0
- package/lib/app/RootNavigator.d.ts +7 -0
- package/lib/app/RootNavigator.js +69 -0
- package/lib/app/RootNavigator.js.map +1 -0
- package/lib/app/index.d.ts +5 -0
- package/lib/app/index.js +22 -0
- package/lib/app/index.js.map +1 -0
- package/lib/assets/Logo_Axelor.png +0 -0
- package/lib/auth/api/company-api.d.ts +1 -0
- package/lib/auth/api/company-api.js +31 -0
- package/lib/auth/api/company-api.js.map +1 -0
- package/lib/auth/api/config-api.d.ts +2 -0
- package/lib/auth/api/config-api.js +45 -0
- package/lib/auth/api/config-api.js.map +1 -0
- package/lib/auth/api/index.d.ts +4 -0
- package/lib/auth/api/index.js +22 -0
- package/lib/auth/api/index.js.map +1 -0
- package/lib/auth/api/language-api.d.ts +1 -0
- package/lib/auth/api/language-api.js +24 -0
- package/lib/auth/api/language-api.js.map +1 -0
- package/lib/auth/api/user-api.d.ts +2 -0
- package/lib/auth/api/user-api.js +30 -0
- package/lib/auth/api/user-api.js.map +1 -0
- package/lib/auth/features/asyncFunctionsIndex.d.ts +4 -0
- package/lib/auth/features/asyncFunctionsIndex.js +22 -0
- package/lib/auth/features/asyncFunctionsIndex.js.map +1 -0
- package/lib/auth/features/companySlice.d.ts +14 -0
- package/lib/auth/features/companySlice.js +48 -0
- package/lib/auth/features/companySlice.js.map +1 -0
- package/lib/auth/features/configSlice.d.ts +37 -0
- package/lib/auth/features/configSlice.js +82 -0
- package/lib/auth/features/configSlice.js.map +1 -0
- package/lib/auth/features/index.d.ts +4 -0
- package/lib/auth/features/index.js +22 -0
- package/lib/auth/features/index.js.map +1 -0
- package/lib/auth/features/languageSlice.d.ts +14 -0
- package/lib/auth/features/languageSlice.js +48 -0
- package/lib/auth/features/languageSlice.js.map +1 -0
- package/lib/auth/features/userSlice.d.ts +27 -0
- package/lib/auth/features/userSlice.js +83 -0
- package/lib/auth/features/userSlice.js.map +1 -0
- package/lib/auth/i18n/en.json +23 -0
- package/lib/auth/i18n/fr.json +23 -0
- package/lib/auth/index.d.ts +5 -0
- package/lib/auth/index.js +55 -0
- package/lib/auth/index.js.map +1 -0
- package/lib/auth/screens/SettingsScreen.d.ts +4 -0
- package/lib/auth/screens/SettingsScreen.js +79 -0
- package/lib/auth/screens/SettingsScreen.js.map +1 -0
- package/lib/auth/screens/UserScreen.d.ts +5 -0
- package/lib/auth/screens/UserScreen.js +116 -0
- package/lib/auth/screens/UserScreen.js.map +1 -0
- package/lib/auth/screens/index.d.ts +2 -0
- package/lib/auth/screens/index.js +20 -0
- package/lib/auth/screens/index.js.map +1 -0
- package/lib/axios/AxiosApi.d.ts +12 -0
- package/lib/axios/AxiosApi.js +32 -0
- package/lib/axios/AxiosApi.js.map +1 -0
- package/lib/components/external/Camera/Camera.d.ts +2 -0
- package/lib/components/external/Camera/Camera.js +148 -0
- package/lib/components/external/Camera/Camera.js.map +1 -0
- package/lib/components/external/Camera/CaptureButton.d.ts +10 -0
- package/lib/components/external/Camera/CaptureButton.js +118 -0
- package/lib/components/external/Camera/CaptureButton.js.map +1 -0
- package/lib/components/external/CameraScanner/CameraScanner.d.ts +10 -0
- package/lib/components/external/CameraScanner/CameraScanner.js +87 -0
- package/lib/components/external/CameraScanner/CameraScanner.js.map +1 -0
- package/lib/components/external/PlanningView/PlanningView.d.ts +11 -0
- package/lib/components/external/PlanningView/PlanningView.js +123 -0
- package/lib/components/external/PlanningView/PlanningView.js.map +1 -0
- package/lib/components/external/PlanningView/agenda.helpers.d.ts +10 -0
- package/lib/components/external/PlanningView/agenda.helpers.js +90 -0
- package/lib/components/external/PlanningView/agenda.helpers.js.map +1 -0
- package/lib/components/external/Scanner/Scanner.d.ts +2 -0
- package/lib/components/external/Scanner/Scanner.js +67 -0
- package/lib/components/external/Scanner/Scanner.js.map +1 -0
- package/lib/components/external/Stopwatch/Stopwatch.d.ts +18 -0
- package/lib/components/external/Stopwatch/Stopwatch.js +114 -0
- package/lib/components/external/Stopwatch/Stopwatch.js.map +1 -0
- package/lib/components/external/Timer/Timer.d.ts +9 -0
- package/lib/components/external/Timer/Timer.js +60 -0
- package/lib/components/external/Timer/Timer.js.map +1 -0
- package/lib/components/external/index.d.ts +6 -0
- package/lib/components/external/index.js +24 -0
- package/lib/components/external/index.js.map +1 -0
- package/lib/components/index.d.ts +4 -0
- package/lib/components/index.js +22 -0
- package/lib/components/index.js.map +1 -0
- package/lib/components/molecules/ErrorText/ErrorText.d.ts +4 -0
- package/lib/components/molecules/ErrorText/ErrorText.js +31 -0
- package/lib/components/molecules/ErrorText/ErrorText.js.map +1 -0
- package/lib/components/molecules/HeaderOptionsMenuItem/HeaderOptionMenuItem.d.ts +9 -0
- package/lib/components/molecules/HeaderOptionsMenuItem/HeaderOptionMenuItem.js +56 -0
- package/lib/components/molecules/HeaderOptionsMenuItem/HeaderOptionMenuItem.js.map +1 -0
- package/lib/components/molecules/IconSettings/IconSettings.d.ts +4 -0
- package/lib/components/molecules/IconSettings/IconSettings.js +31 -0
- package/lib/components/molecules/IconSettings/IconSettings.js.map +1 -0
- package/lib/components/molecules/InputBarCodeCard/InputBarCodeCard.d.ts +7 -0
- package/lib/components/molecules/InputBarCodeCard/InputBarCodeCard.js +84 -0
- package/lib/components/molecules/InputBarCodeCard/InputBarCodeCard.js.map +1 -0
- package/lib/components/molecules/LoginButton/LoginButton.d.ts +4 -0
- package/lib/components/molecules/LoginButton/LoginButton.js +40 -0
- package/lib/components/molecules/LoginButton/LoginButton.js.map +1 -0
- package/lib/components/molecules/MailMessageReadIcon/MailMessageReadIcon.d.ts +7 -0
- package/lib/components/molecules/MailMessageReadIcon/MailMessageReadIcon.js +55 -0
- package/lib/components/molecules/MailMessageReadIcon/MailMessageReadIcon.js.map +1 -0
- package/lib/components/molecules/TrackItem/TrackItem.d.ts +9 -0
- package/lib/components/molecules/TrackItem/TrackItem.js +65 -0
- package/lib/components/molecules/TrackItem/TrackItem.js.map +1 -0
- package/lib/components/molecules/index.d.ts +7 -0
- package/lib/components/molecules/index.js +25 -0
- package/lib/components/molecules/index.js.map +1 -0
- package/lib/components/organisms/AOSImage/AOSImage.d.ts +15 -0
- package/lib/components/organisms/AOSImage/AOSImage.js +37 -0
- package/lib/components/organisms/AOSImage/AOSImage.js.map +1 -0
- package/lib/components/organisms/AOSImageBubble/AOSImageBubble.d.ts +9 -0
- package/lib/components/organisms/AOSImageBubble/AOSImageBubble.js +30 -0
- package/lib/components/organisms/AOSImageBubble/AOSImageBubble.js.map +1 -0
- package/lib/components/organisms/HeaderOptionsMenu/HeaderOptionsMenu.d.ts +9 -0
- package/lib/components/organisms/HeaderOptionsMenu/HeaderOptionsMenu.js +68 -0
- package/lib/components/organisms/HeaderOptionsMenu/HeaderOptionsMenu.js.map +1 -0
- package/lib/components/organisms/LogoImage/LogoImage.d.ts +4 -0
- package/lib/components/organisms/LogoImage/LogoImage.js +52 -0
- package/lib/components/organisms/LogoImage/LogoImage.js.map +1 -0
- package/lib/components/organisms/MailMessageCard/MailMessageCard.d.ts +17 -0
- package/lib/components/organisms/MailMessageCard/MailMessageCard.js +79 -0
- package/lib/components/organisms/MailMessageCard/MailMessageCard.js.map +1 -0
- package/lib/components/organisms/MailMessageCommentCard/MailMessageCommentCard.d.ts +12 -0
- package/lib/components/organisms/MailMessageCommentCard/MailMessageCommentCard.js +139 -0
- package/lib/components/organisms/MailMessageCommentCard/MailMessageCommentCard.js.map +1 -0
- package/lib/components/organisms/MailMessageNotificationCard/MailMessageNotificationCard.d.ts +15 -0
- package/lib/components/organisms/MailMessageNotificationCard/MailMessageNotificationCard.js +79 -0
- package/lib/components/organisms/MailMessageNotificationCard/MailMessageNotificationCard.js.map +1 -0
- package/lib/components/organisms/PasswordInput/PasswordInput.d.ts +7 -0
- package/lib/components/organisms/PasswordInput/PasswordInput.js +36 -0
- package/lib/components/organisms/PasswordInput/PasswordInput.js.map +1 -0
- package/lib/components/organisms/ScannerAutocompleteSearch/ScannerAutocompleteSearch.d.ts +17 -0
- package/lib/components/organisms/ScannerAutocompleteSearch/ScannerAutocompleteSearch.js +68 -0
- package/lib/components/organisms/ScannerAutocompleteSearch/ScannerAutocompleteSearch.js.map +1 -0
- package/lib/components/organisms/UrlInput/UrlInput.d.ts +10 -0
- package/lib/components/organisms/UrlInput/UrlInput.js +38 -0
- package/lib/components/organisms/UrlInput/UrlInput.js.map +1 -0
- package/lib/components/organisms/UsernameInput/UsernameInput.d.ts +6 -0
- package/lib/components/organisms/UsernameInput/UsernameInput.js +33 -0
- package/lib/components/organisms/UsernameInput/UsernameInput.js.map +1 -0
- package/lib/components/organisms/index.d.ts +11 -0
- package/lib/components/organisms/index.js +29 -0
- package/lib/components/organisms/index.js.map +1 -0
- package/lib/components/templates/AttachedFilesView/AttachedFilesView.d.ts +10 -0
- package/lib/components/templates/AttachedFilesView/AttachedFilesView.js +87 -0
- package/lib/components/templates/AttachedFilesView/AttachedFilesView.js.map +1 -0
- package/lib/components/templates/MailMessageView/MailMessageView.d.ts +6 -0
- package/lib/components/templates/MailMessageView/MailMessageView.js +140 -0
- package/lib/components/templates/MailMessageView/MailMessageView.js.map +1 -0
- package/lib/components/templates/index.d.ts +2 -0
- package/lib/components/templates/index.js +20 -0
- package/lib/components/templates/index.js.map +1 -0
- package/lib/features/attachedFilesSlice.d.ts +35 -0
- package/lib/features/attachedFilesSlice.js +82 -0
- package/lib/features/attachedFilesSlice.js.map +1 -0
- package/lib/features/authSlice.d.ts +44 -0
- package/lib/features/authSlice.js +67 -0
- package/lib/features/authSlice.js.map +1 -0
- package/lib/features/cameraSlice.d.ts +14 -0
- package/lib/features/cameraSlice.js +52 -0
- package/lib/features/cameraSlice.js.map +1 -0
- package/lib/features/index.d.ts +8 -0
- package/lib/features/index.js +26 -0
- package/lib/features/index.js.map +1 -0
- package/lib/features/mailMessageSlice.d.ts +97 -0
- package/lib/features/mailMessageSlice.js +219 -0
- package/lib/features/mailMessageSlice.js.map +1 -0
- package/lib/features/menuConfigSlice.d.ts +14 -0
- package/lib/features/menuConfigSlice.js +48 -0
- package/lib/features/menuConfigSlice.js.map +1 -0
- package/lib/features/metafileSlice.d.ts +14 -0
- package/lib/features/metafileSlice.js +48 -0
- package/lib/features/metafileSlice.js.map +1 -0
- package/lib/features/mobileConfigSlice.d.ts +14 -0
- package/lib/features/mobileConfigSlice.js +52 -0
- package/lib/features/mobileConfigSlice.js.map +1 -0
- package/lib/features/scannerSlice.d.ts +14 -0
- package/lib/features/scannerSlice.js +52 -0
- package/lib/features/scannerSlice.js.map +1 -0
- package/lib/hooks/use-effect-debugger.d.ts +1 -0
- package/lib/hooks/use-effect-debugger.js +47 -0
- package/lib/hooks/use-effect-debugger.js.map +1 -0
- package/lib/i18n/api/translation.d.ts +2 -0
- package/lib/i18n/api/translation.js +38 -0
- package/lib/i18n/api/translation.js.map +1 -0
- package/lib/i18n/component/Translator.d.ts +6 -0
- package/lib/i18n/component/Translator.js +74 -0
- package/lib/i18n/component/Translator.js.map +1 -0
- package/lib/i18n/helpers/langages.d.ts +3 -0
- package/lib/i18n/helpers/langages.js +34 -0
- package/lib/i18n/helpers/langages.js.map +1 -0
- package/lib/i18n/helpers/translations.d.ts +1 -0
- package/lib/i18n/helpers/translations.js +24 -0
- package/lib/i18n/helpers/translations.js.map +1 -0
- package/lib/i18n/hooks/use-translator.d.ts +5 -0
- package/lib/i18n/hooks/use-translator.js +24 -0
- package/lib/i18n/hooks/use-translator.js.map +1 -0
- package/lib/i18n/i18n.d.ts +20 -0
- package/lib/i18n/i18n.js +53 -0
- package/lib/i18n/i18n.js.map +1 -0
- package/lib/i18n/index.d.ts +4 -0
- package/lib/i18n/index.js +22 -0
- package/lib/i18n/index.js.map +1 -0
- package/lib/i18n/translations/en.json +52 -0
- package/lib/i18n/translations/fr.json +52 -0
- package/lib/index.d.ts +18 -0
- package/lib/index.js +36 -0
- package/lib/index.js.map +1 -0
- package/lib/navigator/Navigator.d.ts +12 -0
- package/lib/navigator/Navigator.js +118 -0
- package/lib/navigator/Navigator.js.map +1 -0
- package/lib/navigator/drawer/AuthMenuIconButton.d.ts +6 -0
- package/lib/navigator/drawer/AuthMenuIconButton.js +29 -0
- package/lib/navigator/drawer/AuthMenuIconButton.js.map +1 -0
- package/lib/navigator/drawer/BackIcon.d.ts +4 -0
- package/lib/navigator/drawer/BackIcon.js +32 -0
- package/lib/navigator/drawer/BackIcon.js.map +1 -0
- package/lib/navigator/drawer/DrawerContent.d.ts +8 -0
- package/lib/navigator/drawer/DrawerContent.js +177 -0
- package/lib/navigator/drawer/DrawerContent.js.map +1 -0
- package/lib/navigator/drawer/DrawerToggleButton.d.ts +4 -0
- package/lib/navigator/drawer/DrawerToggleButton.js +32 -0
- package/lib/navigator/drawer/DrawerToggleButton.js.map +1 -0
- package/lib/navigator/drawer/Menu.d.ts +8 -0
- package/lib/navigator/drawer/Menu.js +91 -0
- package/lib/navigator/drawer/Menu.js.map +1 -0
- package/lib/navigator/drawer/MenuIconButton.d.ts +10 -0
- package/lib/navigator/drawer/MenuIconButton.js +64 -0
- package/lib/navigator/drawer/MenuIconButton.js.map +1 -0
- package/lib/navigator/drawer/MenuItem.d.ts +8 -0
- package/lib/navigator/drawer/MenuItem.js +71 -0
- package/lib/navigator/drawer/MenuItem.js.map +1 -0
- package/lib/navigator/menu.helper.d.ts +8 -0
- package/lib/navigator/menu.helper.js +50 -0
- package/lib/navigator/menu.helper.js.map +1 -0
- package/lib/navigator/module.helper.d.ts +7 -0
- package/lib/navigator/module.helper.js +95 -0
- package/lib/navigator/module.helper.js.map +1 -0
- package/lib/navigator/roles.helper.d.ts +4 -0
- package/lib/navigator/roles.helper.js +33 -0
- package/lib/navigator/roles.helper.js.map +1 -0
- package/lib/redux/hooks.d.ts +5 -0
- package/lib/redux/hooks.js +25 -0
- package/lib/redux/hooks.js.map +1 -0
- package/lib/redux/store.d.ts +1 -0
- package/lib/redux/store.js +28 -0
- package/lib/redux/store.js.map +1 -0
- package/lib/screens/AttachedFilesScreen.d.ts +5 -0
- package/lib/screens/AttachedFilesScreen.js +26 -0
- package/lib/screens/AttachedFilesScreen.js.map +1 -0
- package/lib/screens/ErrorScreen.d.ts +5 -0
- package/lib/screens/ErrorScreen.js +46 -0
- package/lib/screens/ErrorScreen.js.map +1 -0
- package/lib/screens/LoginScreen.d.ts +4 -0
- package/lib/screens/LoginScreen.js +115 -0
- package/lib/screens/LoginScreen.js.map +1 -0
- package/lib/screens/MailMessageScreen.d.ts +5 -0
- package/lib/screens/MailMessageScreen.js +25 -0
- package/lib/screens/MailMessageScreen.js.map +1 -0
- package/lib/storage/Storage.d.ts +17 -0
- package/lib/storage/Storage.js +53 -0
- package/lib/storage/Storage.js.map +1 -0
- package/lib/tools/ClipboardProvider.d.ts +7 -0
- package/lib/tools/ClipboardProvider.js +59 -0
- package/lib/tools/ClipboardProvider.js.map +1 -0
- package/lib/tools/FileViewer.d.ts +13 -0
- package/lib/tools/FileViewer.js +48 -0
- package/lib/tools/FileViewer.js.map +1 -0
- package/lib/tools/LinkingProvider.d.ts +17 -0
- package/lib/tools/LinkingProvider.js +94 -0
- package/lib/tools/LinkingProvider.js.map +1 -0
- package/lib/tools/index.d.ts +3 -0
- package/lib/tools/index.js +21 -0
- package/lib/tools/index.js.map +1 -0
- package/lib/tools/linking.helper.d.ts +25 -0
- package/lib/tools/linking.helper.js +70 -0
- package/lib/tools/linking.helper.js.map +1 -0
- package/lib/types/index.d.ts +2 -0
- package/lib/types/index.js +20 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/mail-message-notification-type.d.ts +12 -0
- package/lib/types/mail-message-notification-type.js +48 -0
- package/lib/types/mail-message-notification-type.js.map +1 -0
- package/lib/types/stopwatch-type.d.ts +14 -0
- package/lib/types/stopwatch-type.js +64 -0
- package/lib/types/stopwatch-type.js.map +1 -0
- package/lib/utils/agenda.d.ts +1 -0
- package/lib/utils/agenda.js +28 -0
- package/lib/utils/agenda.js.map +1 -0
- package/lib/utils/date.d.ts +4 -0
- package/lib/utils/date.js +41 -0
- package/lib/utils/date.js.map +1 -0
- package/lib/utils/displayers.d.ts +1 -0
- package/lib/utils/displayers.js +19 -0
- package/lib/utils/displayers.js.map +1 -0
- package/lib/utils/formatters.d.ts +5 -0
- package/lib/utils/formatters.js +74 -0
- package/lib/utils/formatters.js.map +1 -0
- package/lib/utils/index.d.ts +9 -0
- package/lib/utils/index.js +27 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/list.d.ts +3 -0
- package/lib/utils/list.js +101 -0
- package/lib/utils/list.js.map +1 -0
- package/lib/utils/object.d.ts +2 -0
- package/lib/utils/object.js +36 -0
- package/lib/utils/object.js.map +1 -0
- package/lib/utils/show-toast-message.d.ts +2 -0
- package/lib/utils/show-toast-message.js +22 -0
- package/lib/utils/show-toast-message.js.map +1 -0
- package/lib/utils/string.d.ts +4 -0
- package/lib/utils/string.js +54 -0
- package/lib/utils/string.js.map +1 -0
- package/lib/utils/time.d.ts +4 -0
- package/lib/utils/time.js +78 -0
- package/lib/utils/time.js.map +1 -0
- package/package.json +95 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2023 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useCallback, useState, useMemo, useEffect } from 'react';
|
|
19
|
+
import { Dimensions } from 'react-native';
|
|
20
|
+
import { useSelector, useDispatch } from 'react-redux';
|
|
21
|
+
import { AttachmentCard, Chip, ChipSelect, File, HeaderContainer, Screen, ScrollList, useThemeColor, } from '@axelor/aos-mobile-ui';
|
|
22
|
+
import useTranslator from '../../../i18n/hooks/use-translator';
|
|
23
|
+
import { getAttachedFiles, getAttachedFilesDetails, } from '../../../features/attachedFilesSlice';
|
|
24
|
+
import { openFileInExternalApp } from '../../../tools/FileViewer';
|
|
25
|
+
function AttachedFilesView({ files, model, modelId, isStaticList = false, isMetaFile = false, screenTitle, navigation, }) {
|
|
26
|
+
const Colors = useThemeColor();
|
|
27
|
+
const I18n = useTranslator();
|
|
28
|
+
const { baseUrl, token, jsessionId } = useSelector(state => state.auth);
|
|
29
|
+
const { loading, attachedFilesList } = useSelector(state => state.attachedFiles);
|
|
30
|
+
const [extensionList, setExtensionList] = useState([]);
|
|
31
|
+
const [selectedExtension, setSelectedExtension] = useState();
|
|
32
|
+
const dispatch = useDispatch();
|
|
33
|
+
const handleShowFile = async (item) => {
|
|
34
|
+
await openFileInExternalApp({ fileName: item.fileName, id: item.id, isMetaFile: isMetaFile }, { baseUrl: baseUrl, token: token, jsessionId: jsessionId }, I18n);
|
|
35
|
+
};
|
|
36
|
+
const fetchFilesAPI = useCallback(() => {
|
|
37
|
+
dispatch(isStaticList
|
|
38
|
+
? getAttachedFilesDetails({
|
|
39
|
+
listFiles: files,
|
|
40
|
+
isMetaFile: true,
|
|
41
|
+
})
|
|
42
|
+
: getAttachedFiles({
|
|
43
|
+
model,
|
|
44
|
+
modelId,
|
|
45
|
+
}));
|
|
46
|
+
}, [dispatch, isStaticList, files, model, modelId]);
|
|
47
|
+
const desactivateChip = () => {
|
|
48
|
+
setSelectedExtension(null);
|
|
49
|
+
};
|
|
50
|
+
const filterOnSelectExtension = useCallback(list => {
|
|
51
|
+
if (list == null || list === [] || !selectedExtension) {
|
|
52
|
+
return list;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
return list.filter(item => File.getFileExtension(item.fileName) === selectedExtension);
|
|
56
|
+
}
|
|
57
|
+
}, [selectedExtension]);
|
|
58
|
+
const handleSelectExtension = ext => {
|
|
59
|
+
if (selectedExtension === ext) {
|
|
60
|
+
desactivateChip();
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
setSelectedExtension(ext);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const filteredList = useMemo(() => filterOnSelectExtension(attachedFilesList), [filterOnSelectExtension, attachedFilesList]);
|
|
67
|
+
React.useLayoutEffect(() => {
|
|
68
|
+
if (screenTitle) {
|
|
69
|
+
navigation.setOptions({
|
|
70
|
+
headerTitle: screenTitle,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}, [navigation, screenTitle]);
|
|
74
|
+
useEffect(() => {
|
|
75
|
+
setExtensionList(Array.from(new Set(attachedFilesList?.map(item => File.getFileExtension(item.fileName)))));
|
|
76
|
+
}, [files, attachedFilesList]);
|
|
77
|
+
return (<Screen removeSpaceOnTop={true}>
|
|
78
|
+
<HeaderContainer expandableFilter={false} chipComponent={<ChipSelect scrollable={true}>
|
|
79
|
+
{extensionList.map((ext, index) => (<Chip key={'chip' + index} selected={selectedExtension === ext} title={`${ext}`.toUpperCase()} onPress={() => handleSelectExtension(ext)} selectedColor={selectedExtension === ext
|
|
80
|
+
? Colors.primaryColor
|
|
81
|
+
: Colors.secondaryColor} width={Dimensions.get('window').width * 0.25} marginHorizontal={3}/>))}
|
|
82
|
+
</ChipSelect>}/>
|
|
83
|
+
<ScrollList loadingList={loading} data={filteredList} renderItem={({ item }) => (<AttachmentCard fileName={item.fileName} onPress={() => handleShowFile(item)} creationDate={item.createdOn} translator={I18n.t}/>)} fetchData={fetchFilesAPI} filter={true} moreLoading={false} isListEnd={true} translator={I18n.t}/>
|
|
84
|
+
</Screen>);
|
|
85
|
+
}
|
|
86
|
+
export default AttachedFilesView;
|
|
87
|
+
//# sourceMappingURL=AttachedFilesView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttachedFilesView.js","sourceRoot":"","sources":["../../../../src/components/templates/AttachedFilesView/AttachedFilesView.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AACvE,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,cAAc,EACd,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,eAAe,EACf,MAAM,EACN,UAAU,EACV,aAAa,GACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,aAAa,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAEhE,SAAS,iBAAiB,CAAC,EACzB,KAAK,EACL,KAAK,EACL,OAAO,EACP,YAAY,GAAG,KAAK,EACpB,UAAU,GAAG,KAAK,EAClB,WAAW,EACX,UAAU,GACX;IACC,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,MAAM,EAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtE,MAAM,EAAC,OAAO,EAAE,iBAAiB,EAAC,GAAG,WAAW,CAC9C,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAC7B,CAAC;IACF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,EAAE,CAAC;IAE7D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,cAAc,GAAG,KAAK,EAAC,IAAI,EAAC,EAAE;QAClC,MAAM,qBAAqB,CACzB,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,UAAU,EAAC,EAC9D,EAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAC,EACxD,IAAI,CACL,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,QAAQ,CACN,YAAY;YACV,CAAC,CAAC,uBAAuB,CAAC;gBACtB,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,IAAI;aACjB,CAAC;YACJ,CAAC,CAAC,gBAAgB,CAAC;gBACf,KAAK;gBACL,OAAO;aACR,CAAC,CACP,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpD,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,uBAAuB,GAAG,WAAW,CACzC,IAAI,CAAC,EAAE;QACL,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACrD,OAAO,IAAI,CAAC;SACb;aAAM;YACL,OAAO,IAAI,CAAC,MAAM,CAChB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,iBAAiB,CACnE,CAAC;SACH;IACH,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF,MAAM,qBAAqB,GAAG,GAAG,CAAC,EAAE;QAClC,IAAI,iBAAiB,KAAK,GAAG,EAAE;YAC7B,eAAe,EAAE,CAAC;SACnB;aAAM;YACL,oBAAoB,CAAC,GAAG,CAAC,CAAC;SAC3B;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,EAChD,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAC7C,CAAC;IAEF,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;QACzB,IAAI,WAAW,EAAE;YACf,UAAU,CAAC,UAAU,CAAC;gBACpB,WAAW,EAAE,WAAW;aACzB,CAAC,CAAC;SACJ;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,gBAAgB,CACd,KAAK,CAAC,IAAI,CACR,IAAI,GAAG,CACL,iBAAiB,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CACrE,CACF,CACF,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE/B,OAAO,CACL,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAC7B;MAAA,CAAC,eAAe,CACd,gBAAgB,CAAC,CAAC,KAAK,CAAC,CACxB,aAAa,CAAC,CACZ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAC3B;YAAA,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CACjC,CAAC,IAAI,CACH,GAAG,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,CACpB,QAAQ,CAAC,CAAC,iBAAiB,KAAK,GAAG,CAAC,CACpC,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAC9B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAC1C,aAAa,CAAC,CACZ,iBAAiB,KAAK,GAAG;oBACvB,CAAC,CAAC,MAAM,CAAC,YAAY;oBACrB,CAAC,CAAC,MAAM,CAAC,cAAc,CAC1B,CACD,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAC7C,gBAAgB,CAAC,CAAC,CAAC,CAAC,EACpB,CACH,CAAC,CACJ;UAAA,EAAE,UAAU,CAAC,CACd,EAEH;MAAA,CAAC,UAAU,CACT,WAAW,CAAC,CAAC,OAAO,CAAC,CACrB,IAAI,CAAC,CAAC,YAAY,CAAC,CACnB,UAAU,CAAC,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,CACtB,CAAC,cAAc,CACb,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CACxB,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CACpC,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAC7B,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EACnB,CACH,CAAC,CACF,SAAS,CAAC,CAAC,aAAa,CAAC,CACzB,MAAM,CAAC,CAAC,IAAI,CAAC,CACb,WAAW,CAAC,CAAC,KAAK,CAAC,CACnB,SAAS,CAAC,CAAC,IAAI,CAAC,CAChB,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAEvB;IAAA,EAAE,MAAM,CAAC,CACV,CAAC;AACJ,CAAC;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2023 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useCallback, useEffect, useState } from 'react';
|
|
19
|
+
import { Dimensions, Keyboard, KeyboardAvoidingView, Platform, StyleSheet, View, } from 'react-native';
|
|
20
|
+
import { useDispatch, useSelector } from 'react-redux';
|
|
21
|
+
import { ScrollList, Screen, MessageBox, Icon, PopUpTwoButton, useThemeColor, } from '@axelor/aos-mobile-ui';
|
|
22
|
+
import { MailMessageCard, MailMessageReadIcon } from '../../../components';
|
|
23
|
+
import { getMailMessages, getModelSubscribers, modelSubscribeRequest, modelUnsubscribeRequest, sendMailMessageComment, } from '../../../features/mailMessageSlice';
|
|
24
|
+
import useTranslator from '../../../i18n/hooks/use-translator';
|
|
25
|
+
const DEFAULT_BOTTOM_MARGIN = 10;
|
|
26
|
+
const MailMessageView = ({ model, modelId, navigation }) => {
|
|
27
|
+
const dispatch = useDispatch();
|
|
28
|
+
const I18n = useTranslator();
|
|
29
|
+
const Colors = useThemeColor();
|
|
30
|
+
const [comment, setComment] = useState();
|
|
31
|
+
const [subscribe, setSubscribe] = useState(false);
|
|
32
|
+
const [popUp, setPopUp] = useState(false);
|
|
33
|
+
const { userId } = useSelector(state => state.auth);
|
|
34
|
+
const { loading, moreLoading, isListEnd, mailMessagesList, modelFollowersList, reload, reloadFollowers, unreadMessages, } = useSelector(state => state.mailMessages);
|
|
35
|
+
const fetchMailMessageAPI = useCallback(page => {
|
|
36
|
+
dispatch(getMailMessages({
|
|
37
|
+
model: model,
|
|
38
|
+
modelId: modelId,
|
|
39
|
+
limit: 10,
|
|
40
|
+
page: page,
|
|
41
|
+
}));
|
|
42
|
+
}, [dispatch, model, modelId]);
|
|
43
|
+
const fetchModelFollowersAPI = useCallback(() => {
|
|
44
|
+
dispatch(getModelSubscribers({ model, modelId }));
|
|
45
|
+
}, [dispatch, model, modelId]);
|
|
46
|
+
const checkFollowers = useCallback(() => {
|
|
47
|
+
modelFollowersList.find(follower => follower.$author.id === userId)
|
|
48
|
+
? setSubscribe(true)
|
|
49
|
+
: setSubscribe(false);
|
|
50
|
+
}, [modelFollowersList, userId]);
|
|
51
|
+
const handleSubscribe = useCallback(() => {
|
|
52
|
+
if (!subscribe) {
|
|
53
|
+
dispatch(modelSubscribeRequest({ model, modelId }));
|
|
54
|
+
}
|
|
55
|
+
}, [dispatch, subscribe, model, modelId]);
|
|
56
|
+
const handleUnsubscribe = useCallback(() => {
|
|
57
|
+
if (subscribe) {
|
|
58
|
+
dispatch(modelUnsubscribeRequest({ model, modelId }));
|
|
59
|
+
}
|
|
60
|
+
}, [dispatch, subscribe, model, modelId]);
|
|
61
|
+
const handleUnfollowConfirmation = useCallback(() => {
|
|
62
|
+
handleUnsubscribe();
|
|
63
|
+
setPopUp(false);
|
|
64
|
+
}, [handleUnsubscribe]);
|
|
65
|
+
const handleSendMailMessageComment = useCallback(() => {
|
|
66
|
+
dispatch(sendMailMessageComment({ model, modelId, comment }));
|
|
67
|
+
Keyboard.dismiss();
|
|
68
|
+
setComment();
|
|
69
|
+
}, [dispatch, model, modelId, comment]);
|
|
70
|
+
React.useLayoutEffect(() => {
|
|
71
|
+
navigation.setOptions({
|
|
72
|
+
headerRight: () => (<View style={styles.headerOptionsContainer}>
|
|
73
|
+
<MailMessageReadIcon allMessagesRead={unreadMessages === 0} model={model} modelId={modelId}/>
|
|
74
|
+
<Icon name={subscribe ? 'star' : 'star-o'} color={subscribe
|
|
75
|
+
? Colors.primaryColor.background
|
|
76
|
+
: Colors.secondaryColor_dark.background} size={22} style={styles.action} FontAwesome5={false} touchable={true} onPress={subscribe ? () => setPopUp(true) : handleSubscribe}/>
|
|
77
|
+
</View>),
|
|
78
|
+
});
|
|
79
|
+
}, [
|
|
80
|
+
navigation,
|
|
81
|
+
Colors,
|
|
82
|
+
subscribe,
|
|
83
|
+
unreadMessages,
|
|
84
|
+
handleSubscribe,
|
|
85
|
+
handleUnsubscribe,
|
|
86
|
+
mailMessagesList,
|
|
87
|
+
model,
|
|
88
|
+
modelId,
|
|
89
|
+
]);
|
|
90
|
+
useEffect(() => {
|
|
91
|
+
fetchModelFollowersAPI();
|
|
92
|
+
}, [fetchModelFollowersAPI]);
|
|
93
|
+
useEffect(() => {
|
|
94
|
+
checkFollowers();
|
|
95
|
+
}, [checkFollowers, modelFollowersList]);
|
|
96
|
+
useEffect(() => {
|
|
97
|
+
if (reload) {
|
|
98
|
+
fetchMailMessageAPI(0);
|
|
99
|
+
}
|
|
100
|
+
if (reloadFollowers) {
|
|
101
|
+
fetchModelFollowersAPI();
|
|
102
|
+
}
|
|
103
|
+
}, [fetchMailMessageAPI, fetchModelFollowersAPI, reload, reloadFollowers]);
|
|
104
|
+
return (<KeyboardAvoidingView behavior={Platform.OS === 'ios' ? 'padding' : 'height'} keyboardVerticalOffset={Platform.OS === 'ios' ? 40 : 85} style={styles.container}>
|
|
105
|
+
<Screen removeSpaceOnTop={true}>
|
|
106
|
+
<PopUpTwoButton visible={popUp} title={I18n.t('Base_Question')} data={I18n.t('Base_Unfollow_Confirmation')} PrimaryBtnTitle={I18n.t('Base_OK')} SecondaryBtnTitle={I18n.t('Base_Cancel')} onPressPrimary={handleUnfollowConfirmation} onPressSecondary={() => setPopUp(false)}/>
|
|
107
|
+
<View style={styles.scrollListContainer}>
|
|
108
|
+
<ScrollList loadingList={loading} data={mailMessagesList} renderItem={({ item }) => (<MailMessageCard key={item.id} author={item.$author?.fullName} avatar={item.$avatar} body={item.body} eventText={item.$eventText} eventTime={item.$eventTime} files={item.$files} subject={item.subject} title={item.subject} type={item.type} flags={item.$flags} navigation={navigation} relatedId={modelId} relatedModel={model}/>)} fetchData={fetchMailMessageAPI} filter={false} moreLoading={moreLoading} isListEnd={isListEnd}/>
|
|
109
|
+
</View>
|
|
110
|
+
<View style={styles.commentContainer}>
|
|
111
|
+
<MessageBox placeholder={I18n.t('Base_MailMessages_CommentInput_Placeholder')} disabled={!comment} value={comment} onChange={setComment} onSend={handleSendMailMessageComment}/>
|
|
112
|
+
</View>
|
|
113
|
+
</Screen>
|
|
114
|
+
</KeyboardAvoidingView>);
|
|
115
|
+
};
|
|
116
|
+
const styles = StyleSheet.create({
|
|
117
|
+
commentContainer: {
|
|
118
|
+
width: Dimensions.get('screen').width,
|
|
119
|
+
justifyContent: 'center',
|
|
120
|
+
alignItems: 'center',
|
|
121
|
+
marginBottom: DEFAULT_BOTTOM_MARGIN,
|
|
122
|
+
paddingTop: 3,
|
|
123
|
+
},
|
|
124
|
+
container: {
|
|
125
|
+
flex: 1,
|
|
126
|
+
},
|
|
127
|
+
headerOptionsContainer: {
|
|
128
|
+
flexDirection: 'row',
|
|
129
|
+
width: '50%',
|
|
130
|
+
margin: 15,
|
|
131
|
+
},
|
|
132
|
+
action: {
|
|
133
|
+
flex: 1,
|
|
134
|
+
},
|
|
135
|
+
scrollListContainer: {
|
|
136
|
+
flex: 1,
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
export default MailMessageView;
|
|
140
|
+
//# sourceMappingURL=MailMessageView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MailMessageView.js","sourceRoot":"","sources":["../../../../src/components/templates/MailMessageView/MailMessageView.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2023 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
export { default as AttachedFilesView } from './AttachedFilesView/AttachedFilesView';
|
|
19
|
+
export { default as MailMessageView } from './MailMessageView/MailMessageView';
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/templates/index.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,mCAAmC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export const getAttachedFiles: import("@reduxjs/toolkit").AsyncThunk<any, void, {
|
|
2
|
+
state?: unknown;
|
|
3
|
+
dispatch?: import("redux").Dispatch<import("redux").AnyAction>;
|
|
4
|
+
extra?: unknown;
|
|
5
|
+
rejectValue?: unknown;
|
|
6
|
+
serializedErrorType?: unknown;
|
|
7
|
+
pendingMeta?: unknown;
|
|
8
|
+
fulfilledMeta?: unknown;
|
|
9
|
+
rejectedMeta?: unknown;
|
|
10
|
+
}>;
|
|
11
|
+
export const getAttachedFilesDetails: import("@reduxjs/toolkit").AsyncThunk<any, void, {
|
|
12
|
+
state?: unknown;
|
|
13
|
+
dispatch?: import("redux").Dispatch<import("redux").AnyAction>;
|
|
14
|
+
extra?: unknown;
|
|
15
|
+
rejectValue?: unknown;
|
|
16
|
+
serializedErrorType?: unknown;
|
|
17
|
+
pendingMeta?: unknown;
|
|
18
|
+
fulfilledMeta?: unknown;
|
|
19
|
+
rejectedMeta?: unknown;
|
|
20
|
+
}>;
|
|
21
|
+
export const countAttachmentFiles: import("@reduxjs/toolkit").AsyncThunk<any, void, {
|
|
22
|
+
state?: unknown;
|
|
23
|
+
dispatch?: import("redux").Dispatch<import("redux").AnyAction>;
|
|
24
|
+
extra?: unknown;
|
|
25
|
+
rejectValue?: unknown;
|
|
26
|
+
serializedErrorType?: unknown;
|
|
27
|
+
pendingMeta?: unknown;
|
|
28
|
+
fulfilledMeta?: unknown;
|
|
29
|
+
rejectedMeta?: unknown;
|
|
30
|
+
}>;
|
|
31
|
+
export const attachedFilesReducer: import("redux").Reducer<{
|
|
32
|
+
loading: boolean;
|
|
33
|
+
attachedFilesList: any[];
|
|
34
|
+
attachments: number;
|
|
35
|
+
}, import("redux").AnyAction>;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2023 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
|
|
19
|
+
import { handlerApiCall } from '../api/utils';
|
|
20
|
+
import { countAttachments, fetchAttachedFiles } from '../api/attached-files-api';
|
|
21
|
+
import { fetchFileDetails } from '../api/metafile-api';
|
|
22
|
+
export const getAttachedFiles = createAsyncThunk('attachedFiles/getAttachedFiles', async function (data, { getState }) {
|
|
23
|
+
return handlerApiCall({
|
|
24
|
+
fetchFunction: fetchAttachedFiles,
|
|
25
|
+
data: data,
|
|
26
|
+
action: 'fetch attached files',
|
|
27
|
+
getState: getState,
|
|
28
|
+
responseOptions: { isArrayResponse: true },
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
export const getAttachedFilesDetails = createAsyncThunk('attachedFiles/getAttachedFilesDetails', async function (data, { getState }) {
|
|
32
|
+
return handlerApiCall({
|
|
33
|
+
fetchFunction: fetchFileDetails,
|
|
34
|
+
data: data,
|
|
35
|
+
action: 'fetch attached files details',
|
|
36
|
+
getState: getState,
|
|
37
|
+
responseOptions: { isArrayResponse: true },
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
export const countAttachmentFiles = createAsyncThunk('attachedFiles/countAttachmentFiles', async function (data, { getState }) {
|
|
41
|
+
return handlerApiCall({
|
|
42
|
+
fetchFunction: countAttachments,
|
|
43
|
+
data: data,
|
|
44
|
+
action: 'count attachment files',
|
|
45
|
+
getState: getState,
|
|
46
|
+
responseOptions: { isArrayResponse: true, returnTotal: true },
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
const initialState = {
|
|
50
|
+
loading: false,
|
|
51
|
+
attachedFilesList: [],
|
|
52
|
+
attachments: 0,
|
|
53
|
+
};
|
|
54
|
+
const attachedFilesSlice = createSlice({
|
|
55
|
+
name: 'attachedFiles',
|
|
56
|
+
initialState,
|
|
57
|
+
extraReducers: builder => {
|
|
58
|
+
builder.addCase(getAttachedFiles.pending, state => {
|
|
59
|
+
state.loading = true;
|
|
60
|
+
});
|
|
61
|
+
builder.addCase(getAttachedFiles.fulfilled, (state, action) => {
|
|
62
|
+
state.loading = false;
|
|
63
|
+
state.attachedFilesList = action.payload;
|
|
64
|
+
});
|
|
65
|
+
builder.addCase(getAttachedFilesDetails.pending, state => {
|
|
66
|
+
state.loading = true;
|
|
67
|
+
});
|
|
68
|
+
builder.addCase(getAttachedFilesDetails.fulfilled, (state, action) => {
|
|
69
|
+
state.loading = false;
|
|
70
|
+
state.attachedFilesList = action.payload;
|
|
71
|
+
});
|
|
72
|
+
builder.addCase(countAttachmentFiles.pending, state => {
|
|
73
|
+
state.loading = true;
|
|
74
|
+
});
|
|
75
|
+
builder.addCase(countAttachmentFiles.fulfilled, (state, action) => {
|
|
76
|
+
state.loading = false;
|
|
77
|
+
state.attachments = action.payload;
|
|
78
|
+
});
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
export const attachedFilesReducer = attachedFilesSlice.reducer;
|
|
82
|
+
//# sourceMappingURL=attachedFilesSlice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachedFilesSlice.js","sourceRoot":"","sources":["../../src/features/attachedFilesSlice.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export const login: import("@reduxjs/toolkit").AsyncThunk<{
|
|
2
|
+
url: any;
|
|
3
|
+
token: string;
|
|
4
|
+
jsessionId: string;
|
|
5
|
+
userId: any;
|
|
6
|
+
}, void, {
|
|
7
|
+
state?: unknown;
|
|
8
|
+
dispatch?: import("redux").Dispatch<import("redux").AnyAction>;
|
|
9
|
+
extra?: unknown;
|
|
10
|
+
rejectValue?: unknown;
|
|
11
|
+
serializedErrorType?: unknown;
|
|
12
|
+
pendingMeta?: unknown;
|
|
13
|
+
fulfilledMeta?: unknown;
|
|
14
|
+
rejectedMeta?: unknown;
|
|
15
|
+
}>;
|
|
16
|
+
export const authSlice: import("@reduxjs/toolkit").Slice<{
|
|
17
|
+
loading: boolean;
|
|
18
|
+
logged: boolean;
|
|
19
|
+
userId: any;
|
|
20
|
+
baseUrl: any;
|
|
21
|
+
token: any;
|
|
22
|
+
jsessionId: any;
|
|
23
|
+
error: any;
|
|
24
|
+
}, {
|
|
25
|
+
logout: () => {
|
|
26
|
+
loading: boolean;
|
|
27
|
+
logged: boolean;
|
|
28
|
+
userId: any;
|
|
29
|
+
baseUrl: any;
|
|
30
|
+
token: any;
|
|
31
|
+
jsessionId: any;
|
|
32
|
+
error: any;
|
|
33
|
+
};
|
|
34
|
+
}, "auth">;
|
|
35
|
+
export const logout: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"auth/logout">;
|
|
36
|
+
export const authReducer: import("redux").Reducer<{
|
|
37
|
+
loading: boolean;
|
|
38
|
+
logged: boolean;
|
|
39
|
+
userId: any;
|
|
40
|
+
baseUrl: any;
|
|
41
|
+
token: any;
|
|
42
|
+
jsessionId: any;
|
|
43
|
+
error: any;
|
|
44
|
+
}, import("redux").AnyAction>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2023 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
|
|
19
|
+
import { getActiveUserId, loginApi } from '../api/login-api';
|
|
20
|
+
import { formatURL } from '../utils/formatters';
|
|
21
|
+
export const login = createAsyncThunk('auth/login', async ({ url, username, password }) => {
|
|
22
|
+
const { token, jsessionId } = await loginApi(url, username, password);
|
|
23
|
+
const userId = await getActiveUserId();
|
|
24
|
+
return { url, token, jsessionId, userId };
|
|
25
|
+
});
|
|
26
|
+
const initialState = {
|
|
27
|
+
loading: false,
|
|
28
|
+
logged: false,
|
|
29
|
+
userId: null,
|
|
30
|
+
baseUrl: null,
|
|
31
|
+
token: null,
|
|
32
|
+
jsessionId: null,
|
|
33
|
+
error: null,
|
|
34
|
+
};
|
|
35
|
+
export const authSlice = createSlice({
|
|
36
|
+
name: 'auth',
|
|
37
|
+
initialState,
|
|
38
|
+
reducers: {
|
|
39
|
+
logout: () => initialState,
|
|
40
|
+
},
|
|
41
|
+
extraReducers: builder => {
|
|
42
|
+
builder.addCase(login.pending, state => {
|
|
43
|
+
state.logged = false;
|
|
44
|
+
state.loading = true;
|
|
45
|
+
state.baseUrl = null;
|
|
46
|
+
state.token = null;
|
|
47
|
+
state.error = null;
|
|
48
|
+
});
|
|
49
|
+
builder.addCase(login.fulfilled, (state, action) => {
|
|
50
|
+
const { url, token, jsessionId, userId } = action.payload;
|
|
51
|
+
state.logged = token != null;
|
|
52
|
+
state.loading = false;
|
|
53
|
+
state.userId = userId;
|
|
54
|
+
state.baseUrl = formatURL(url);
|
|
55
|
+
state.token = token;
|
|
56
|
+
state.jsessionId = jsessionId;
|
|
57
|
+
state.error = null;
|
|
58
|
+
});
|
|
59
|
+
builder.addCase(login.rejected, (state, action) => {
|
|
60
|
+
state.loading = false;
|
|
61
|
+
state.error = action.error;
|
|
62
|
+
});
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
export const { logout } = authSlice.actions;
|
|
66
|
+
export const authReducer = authSlice.reducer;
|
|
67
|
+
//# sourceMappingURL=authSlice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authSlice.js","sourceRoot":"","sources":["../../src/features/authSlice.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,gBAAgB,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAC,eAAe,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAC,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAE9C,MAAM,CAAC,MAAM,KAAK,GAAG,gBAAgB,CACnC,YAAY,EACZ,KAAK,EAAE,EAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAC,EAAE,EAAE;IAClC,MAAM,EAAC,KAAK,EAAE,UAAU,EAAC,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;IACvC,OAAO,EAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAC,CAAC;AAC1C,CAAC,CACF,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;IACnC,IAAI,EAAE,MAAM;IACZ,YAAY;IACZ,QAAQ,EAAE;QACR,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY;KAC3B;IACD,aAAa,EAAE,OAAO,CAAC,EAAE;QACvB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;YACrC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;YACrB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACrB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACrB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;YACnB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACjD,MAAM,EAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAC,GAAG,MAAM,CAAC,OAAO,CAAC;YACxD,KAAK,CAAC,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC;YAC7B,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;YACtB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YACtB,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YAC/B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YACpB,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;YAC9B,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAChD,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;YACtB,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAC,MAAM,EAAC,GAAG,SAAS,CAAC,OAAO,CAAC;AAE1C,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface CameraSliceState {
|
|
2
|
+
isEnabled: boolean;
|
|
3
|
+
cameraKey: string | null;
|
|
4
|
+
photo: string | null;
|
|
5
|
+
}
|
|
6
|
+
export declare const enableCamera: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "camera/enableCamera">, takePhoto: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "camera/takePhoto">, disableCamera: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"camera/disableCamera">;
|
|
7
|
+
export declare const useCameraSelector: () => CameraSliceState;
|
|
8
|
+
export declare const useCameraValueByKey: (key: string) => string | null;
|
|
9
|
+
declare const _default: import("redux").Reducer<{
|
|
10
|
+
isEnabled: boolean;
|
|
11
|
+
cameraKey: any;
|
|
12
|
+
photo: any;
|
|
13
|
+
}, import("redux").AnyAction>;
|
|
14
|
+
export default _default;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2023 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { useMemo } from 'react';
|
|
19
|
+
import { useSelector } from 'react-redux';
|
|
20
|
+
import { createSlice } from '@reduxjs/toolkit';
|
|
21
|
+
const cameraSlice = createSlice({
|
|
22
|
+
name: 'camera',
|
|
23
|
+
initialState: {
|
|
24
|
+
isEnabled: false,
|
|
25
|
+
cameraKey: null,
|
|
26
|
+
photo: null,
|
|
27
|
+
},
|
|
28
|
+
reducers: {
|
|
29
|
+
enableCamera(state, action) {
|
|
30
|
+
state.isEnabled = true;
|
|
31
|
+
state.cameraKey = action.payload;
|
|
32
|
+
state.photo = null;
|
|
33
|
+
},
|
|
34
|
+
takePhoto(state, action) {
|
|
35
|
+
state.photo = action.payload;
|
|
36
|
+
},
|
|
37
|
+
disableCamera(state) {
|
|
38
|
+
state.isEnabled = false;
|
|
39
|
+
state.cameraKey = null;
|
|
40
|
+
state.photo = null;
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
export const { enableCamera, takePhoto, disableCamera } = cameraSlice.actions;
|
|
45
|
+
const selectCamera = state => state.camera;
|
|
46
|
+
export const useCameraSelector = () => useSelector(selectCamera);
|
|
47
|
+
export const useCameraValueByKey = key => {
|
|
48
|
+
const { cameraKey, photo } = useCameraSelector();
|
|
49
|
+
return useMemo(() => (key === cameraKey ? photo : null), [cameraKey, key, photo]);
|
|
50
|
+
};
|
|
51
|
+
export default cameraSlice.reducer;
|
|
52
|
+
//# sourceMappingURL=cameraSlice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cameraSlice.js","sourceRoot":"","sources":["../../src/features/cameraSlice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAQ7C,MAAM,WAAW,GAAG,WAAW,CAAC;IAC9B,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE;QACZ,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,IAAI;KACZ;IACD,QAAQ,EAAE;QACR,YAAY,CAAC,KAAK,EAAE,MAAM;YACxB,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;YACvB,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;YACjC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,SAAS,CAAC,KAAK,EAAE,MAAM;YACrB,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,CAAC;QACD,aAAa,CAAC,KAAK;YACjB,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;YACvB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACrB,CAAC;KACF;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAC,YAAY,EAAE,SAAS,EAAE,aAAa,EAAC,GAAG,WAAW,CAAC,OAAO,CAAC;AAE5E,MAAM,YAAY,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAA2B,GAAG,EAAE,CAC5D,WAAW,CAAC,YAAY,CAAC,CAAC;AAE5B,MAAM,CAAC,MAAM,mBAAmB,GAAmC,GAAG,CAAC,EAAE;IACvE,MAAM,EAAC,SAAS,EAAE,KAAK,EAAC,GAAG,iBAAiB,EAAE,CAAC;IAC/C,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EACxC,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CACxB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC,OAAO,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { attachedFilesReducer as attachedFiles } from "./attachedFilesSlice";
|
|
2
|
+
export { authReducer as auth } from "./authSlice";
|
|
3
|
+
export { default as camera } from "./cameraSlice";
|
|
4
|
+
export { mailMessagesReducer as mailMessages } from "./mailMessageSlice";
|
|
5
|
+
export { menuConfigReducer as menuConfig } from "./menuConfigSlice";
|
|
6
|
+
export { metafileReducer as metafile } from "./metafileSlice";
|
|
7
|
+
export { mobileConfigReducer as mobileConfig } from "./mobileConfigSlice";
|
|
8
|
+
export { default as scanner } from "./scannerSlice";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2023 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
export { attachedFilesReducer as attachedFiles } from './attachedFilesSlice';
|
|
19
|
+
export { authReducer as auth } from './authSlice';
|
|
20
|
+
export { default as camera } from './cameraSlice';
|
|
21
|
+
export { mailMessagesReducer as mailMessages } from './mailMessageSlice';
|
|
22
|
+
export { menuConfigReducer as menuConfig } from './menuConfigSlice';
|
|
23
|
+
export { metafileReducer as metafile } from './metafileSlice';
|
|
24
|
+
export { mobileConfigReducer as mobileConfig } from './mobileConfigSlice';
|
|
25
|
+
export { default as scanner } from './scannerSlice';
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/features/index.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,oBAAoB,IAAI,aAAa,EAAC,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAC,WAAW,IAAI,IAAI,EAAC,MAAM,aAAa,CAAC;AAChD,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,mBAAmB,IAAI,YAAY,EAAC,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAC,iBAAiB,IAAI,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAC,eAAe,IAAI,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAC,mBAAmB,IAAI,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,gBAAgB,CAAC"}
|