@axelor/aos-mobile-core 7.0.0 → 7.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/login-api.d.ts +2 -1
- package/lib/api/login-api.js +4 -2
- package/lib/api/login-api.js.map +1 -1
- package/lib/api/meta-module-api.d.ts +1 -0
- package/lib/api/meta-module-api.js +22 -0
- package/lib/api/meta-module-api.js.map +1 -0
- package/lib/api/metafile-api.d.ts +6 -0
- package/lib/api/metafile-api.js +33 -0
- package/lib/api/metafile-api.js.map +1 -1
- package/lib/apiProviders/index.d.ts +2 -1
- package/lib/apiProviders/index.js +2 -1
- package/lib/apiProviders/index.js.map +1 -1
- package/lib/apiProviders/middlewares/index.d.ts +1 -0
- package/lib/apiProviders/middlewares/index.js +19 -0
- package/lib/apiProviders/middlewares/index.js.map +1 -0
- package/lib/apiProviders/middlewares/translation.d.ts +2 -0
- package/lib/apiProviders/middlewares/translation.js +48 -0
- package/lib/apiProviders/middlewares/translation.js.map +1 -0
- package/lib/apiProviders/utils.d.ts +10 -3
- package/lib/apiProviders/utils.js +19 -4
- package/lib/apiProviders/utils.js.map +1 -1
- package/lib/app/Application.d.ts +2 -9
- package/lib/app/Application.js +1 -0
- package/lib/app/Application.js.map +1 -1
- package/lib/app/ContextedApplication.d.ts +2 -9
- package/lib/app/ContextedApplication.js +2 -1
- package/lib/app/ContextedApplication.js.map +1 -1
- package/lib/app/Module.d.ts +13 -0
- package/lib/app/RootNavigator.js +1 -1
- package/lib/app/RootNavigator.js.map +1 -1
- package/lib/app/types.d.ts +14 -0
- package/lib/app/types.js +19 -0
- package/lib/app/types.js.map +1 -0
- package/lib/components/molecules/UploadFileInput/UploadFileInput.d.ts +6 -0
- package/lib/components/molecules/UploadFileInput/UploadFileInput.js +71 -0
- package/lib/components/molecules/UploadFileInput/UploadFileInput.js.map +1 -0
- package/lib/components/molecules/index.d.ts +1 -0
- package/lib/components/molecules/index.js +1 -0
- package/lib/components/molecules/index.js.map +1 -1
- package/lib/components/organisms/DateInput/DateInput.js +9 -3
- package/lib/components/organisms/DateInput/DateInput.js.map +1 -1
- package/lib/components/organisms/ScannerAutocompleteSearch/ScannerAutocompleteSearch.d.ts +2 -1
- package/lib/components/organisms/ScannerAutocompleteSearch/ScannerAutocompleteSearch.js +14 -10
- package/lib/components/organisms/ScannerAutocompleteSearch/ScannerAutocompleteSearch.js.map +1 -1
- package/lib/components/organisms/SessionButtons/SessionButtons.js +4 -1
- package/lib/components/organisms/SessionButtons/SessionButtons.js.map +1 -1
- package/lib/components/templates/PopupApplicationNotConfigured/PopupApplicationNotConfigured.d.ts +4 -0
- package/lib/components/templates/PopupApplicationNotConfigured/PopupApplicationNotConfigured.js +46 -0
- package/lib/components/templates/PopupApplicationNotConfigured/PopupApplicationNotConfigured.js.map +1 -0
- package/lib/components/templates/PopupMinimalRequiredVersion/PopupMinimalRequiredVersion.d.ts +5 -0
- package/lib/components/templates/PopupMinimalRequiredVersion/PopupMinimalRequiredVersion.js +64 -0
- package/lib/components/templates/PopupMinimalRequiredVersion/PopupMinimalRequiredVersion.js.map +1 -0
- package/lib/components/templates/index.d.ts +2 -0
- package/lib/components/templates/index.js +2 -0
- package/lib/components/templates/index.js.map +1 -1
- package/lib/config/routes.d.ts +3 -0
- package/lib/config/routes.js +2 -0
- package/lib/config/routes.js.map +1 -1
- package/lib/features/authSlice.d.ts +8 -4
- package/lib/features/authSlice.js +13 -8
- package/lib/features/authSlice.js.map +1 -1
- package/lib/features/index.d.ts +1 -0
- package/lib/features/index.js +1 -0
- package/lib/features/index.js.map +1 -1
- package/lib/features/metaModuleSlice.d.ts +14 -0
- package/lib/features/metaModuleSlice.js +48 -0
- package/lib/features/metaModuleSlice.js.map +1 -0
- package/lib/i18n/translations/en.json +22 -14
- package/lib/i18n/translations/fr.json +20 -12
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/navigator/Navigator.d.ts +3 -1
- package/lib/navigator/Navigator.js +7 -4
- package/lib/navigator/Navigator.js.map +1 -1
- package/lib/navigator/drawer/DrawerContent.d.ts +3 -1
- package/lib/navigator/drawer/DrawerContent.js +29 -37
- package/lib/navigator/drawer/DrawerContent.js.map +1 -1
- package/lib/navigator/drawer/MenuIconButton.d.ts +2 -1
- package/lib/navigator/drawer/MenuIconButton.js +25 -4
- package/lib/navigator/drawer/MenuIconButton.js.map +1 -1
- package/lib/navigator/drawer/MenuTitle.d.ts +5 -0
- package/lib/navigator/drawer/MenuTitle.js +58 -0
- package/lib/navigator/drawer/MenuTitle.js.map +1 -0
- package/lib/navigator/menu.helper.d.ts +2 -0
- package/lib/navigator/menu.helper.js +22 -0
- package/lib/navigator/menu.helper.js.map +1 -1
- package/lib/navigator/module.helper.d.ts +3 -0
- package/lib/navigator/module.helper.js +25 -0
- package/lib/navigator/module.helper.js.map +1 -1
- package/lib/utils/image.d.ts +6 -0
- package/lib/utils/image.js +36 -0
- package/lib/utils/image.js.map +1 -0
- package/lib/utils/index.d.ts +2 -1
- package/lib/utils/index.js +2 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/object.d.ts +1 -0
- package/lib/utils/object.js +4 -2
- package/lib/utils/object.js.map +1 -1
- package/package.json +11 -9
|
@@ -16,16 +16,22 @@
|
|
|
16
16
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
import React, { useMemo } from 'react';
|
|
19
|
-
import { StyleSheet, TouchableOpacity, View } from 'react-native';
|
|
20
|
-
import { Icon, Text, useThemeColor } from '@axelor/aos-mobile-ui';
|
|
19
|
+
import { Dimensions, StyleSheet, TouchableOpacity, View } from 'react-native';
|
|
20
|
+
import { Icon, InfoBubble, Text, useThemeColor } from '@axelor/aos-mobile-ui';
|
|
21
|
+
import { useTranslator } from '../../i18n';
|
|
22
|
+
import { isMenuIncompatible, isModuleNotFound } from '../menu.helper';
|
|
23
|
+
import { formatCompatibilityToDisplay } from '../module.helper';
|
|
21
24
|
const WIDTH = 54;
|
|
22
25
|
const HEIGHT = 54;
|
|
23
26
|
const DEFAULT_RADIUS = 8;
|
|
24
27
|
const ROUNDED_RADIUS = WIDTH / 2;
|
|
25
|
-
const MenuIconButton = ({ style, icon, onPress, color, subtitle, rounded = false, disabled = false, }) => {
|
|
28
|
+
const MenuIconButton = ({ style, icon, onPress, color, subtitle, rounded = false, disabled = false, compatibility, }) => {
|
|
26
29
|
const Colors = useThemeColor();
|
|
30
|
+
const I18n = useTranslator();
|
|
27
31
|
const styles = useMemo(() => getStyles(Colors), [Colors]);
|
|
28
|
-
|
|
32
|
+
const moduleNotFound = useMemo(() => isModuleNotFound(compatibility), [compatibility]);
|
|
33
|
+
const compatibilityError = useMemo(() => isMenuIncompatible(compatibility), [compatibility]);
|
|
34
|
+
return (<TouchableOpacity onPress={onPress} disabled={disabled || compatibilityError} activeOpacity={0.95}>
|
|
29
35
|
<View style={[
|
|
30
36
|
styles.container,
|
|
31
37
|
{ borderRadius: rounded ? ROUNDED_RADIUS : DEFAULT_RADIUS },
|
|
@@ -41,6 +47,11 @@ const MenuIconButton = ({ style, icon, onPress, color, subtitle, rounded = false
|
|
|
41
47
|
<Icon size={32} name={icon} color={disabled
|
|
42
48
|
? Colors.secondaryColor.background
|
|
43
49
|
: Colors.secondaryColor_dark.background}/>
|
|
50
|
+
{compatibilityError && (<InfoBubble style={styles.infoBubble} iconName="exclamation-triangle" badgeColor={Colors.errorColor} textIndicationStyle={styles.textIndicationStyle} indication={I18n.t(moduleNotFound
|
|
51
|
+
? 'Base_Compatibily_NotFoundDetails'
|
|
52
|
+
: 'Base_Compatibily_ErrorDetails', {
|
|
53
|
+
compatibility: formatCompatibilityToDisplay(compatibility),
|
|
54
|
+
})}/>)}
|
|
44
55
|
</View>
|
|
45
56
|
{subtitle && (<Text style={styles.moduleSubtitle} numberOfLines={1}>
|
|
46
57
|
{subtitle}
|
|
@@ -57,12 +68,22 @@ const getStyles = Colors => StyleSheet.create({
|
|
|
57
68
|
shadowOpacity: 0.5,
|
|
58
69
|
shadowColor: Colors.secondaryColor.background,
|
|
59
70
|
shadowOffset: { width: 0, height: 0 },
|
|
71
|
+
zIndex: 10,
|
|
60
72
|
},
|
|
61
73
|
moduleSubtitle: {
|
|
62
74
|
fontSize: 10,
|
|
63
75
|
maxWidth: 54,
|
|
64
76
|
alignSelf: 'center',
|
|
65
77
|
},
|
|
78
|
+
infoBubble: {
|
|
79
|
+
position: 'absolute',
|
|
80
|
+
bottom: -10,
|
|
81
|
+
right: -10,
|
|
82
|
+
},
|
|
83
|
+
textIndicationStyle: {
|
|
84
|
+
width: Dimensions.get('window').width * 0.6,
|
|
85
|
+
top: 0,
|
|
86
|
+
},
|
|
66
87
|
});
|
|
67
88
|
export default MenuIconButton;
|
|
68
89
|
//# sourceMappingURL=MenuIconButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuIconButton.js","sourceRoot":"","sources":["../../../src/navigator/drawer/MenuIconButton.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"MenuIconButton.js","sourceRoot":"","sources":["../../../src/navigator/drawer/MenuIconButton.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
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, { useMemo } from 'react';
|
|
19
|
+
import { StyleSheet, TouchableOpacity } from 'react-native';
|
|
20
|
+
import { Text, useThemeColor } from '@axelor/aos-mobile-ui';
|
|
21
|
+
import { useTranslator } from '../../i18n';
|
|
22
|
+
import { getMenuTitle, isMenuIncompatible, isModuleNotFound, } from '../menu.helper';
|
|
23
|
+
const MenuTitle = ({ module, onPress }) => {
|
|
24
|
+
const Colors = useThemeColor();
|
|
25
|
+
const I18n = useTranslator();
|
|
26
|
+
const moduleNotFound = useMemo(() => isModuleNotFound(module.compatibilityAOS), [module.compatibilityAOS]);
|
|
27
|
+
const compatibilityError = useMemo(() => isMenuIncompatible(module.compatibilityAOS), [module.compatibilityAOS]);
|
|
28
|
+
return (<TouchableOpacity style={styles.menuItemContainer} onPress={onPress} disabled={compatibilityError}>
|
|
29
|
+
<Text style={[styles.text, styles.bold]} textColor={Colors.secondaryColor_dark.background}>
|
|
30
|
+
{getMenuTitle(module, { I18n })}
|
|
31
|
+
</Text>
|
|
32
|
+
{compatibilityError && (<Text style={styles.text} textColor={Colors.errorColor.background}>
|
|
33
|
+
{I18n.t(moduleNotFound
|
|
34
|
+
? 'Base_Compatibily_NotFound'
|
|
35
|
+
: 'Base_Compatibily_Error', {
|
|
36
|
+
compatibility: module.compatibilityAOS,
|
|
37
|
+
})}
|
|
38
|
+
</Text>)}
|
|
39
|
+
</TouchableOpacity>);
|
|
40
|
+
};
|
|
41
|
+
const styles = StyleSheet.create({
|
|
42
|
+
menuItemContainer: {
|
|
43
|
+
height: 60,
|
|
44
|
+
marginVertical: 8,
|
|
45
|
+
flexDirection: 'column',
|
|
46
|
+
justifyContent: 'center',
|
|
47
|
+
alignItems: 'flex-start',
|
|
48
|
+
},
|
|
49
|
+
text: {
|
|
50
|
+
marginHorizontal: 6,
|
|
51
|
+
},
|
|
52
|
+
bold: {
|
|
53
|
+
fontSize: 24,
|
|
54
|
+
fontWeight: 'bold',
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
export default MenuTitle;
|
|
58
|
+
//# sourceMappingURL=MenuTitle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuTitle.js","sourceRoot":"","sources":["../../../src/navigator/drawer/MenuTitle.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,UAAU,EAAE,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAC,IAAI,EAAE,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,MAAM,SAAS,GAAG,CAAC,EAAC,MAAM,EAAE,OAAO,EAAC,EAAE,EAAE;IACtC,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,MAAM,cAAc,GAAG,OAAO,CAC5B,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAC/C,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAC1B,CAAC;IAEF,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,gBAAgB,CAAC,EACjD,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAC1B,CAAC;IAEF,OAAO,CACL,CAAC,gBAAgB,CACf,KAAK,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAChC,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAC7B;MAAA,CAAC,IAAI,CACH,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAClC,SAAS,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CACjD;QAAA,CAAC,YAAY,CAAC,MAAM,EAAE,EAAC,IAAI,EAAC,CAAC,CAC/B;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,kBAAkB,IAAI,CACrB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAChE;UAAA,CAAC,IAAI,CAAC,CAAC,CACL,cAAc;gBACZ,CAAC,CAAC,2BAA2B;gBAC7B,CAAC,CAAC,wBAAwB,EAC5B;gBACE,aAAa,EAAE,MAAM,CAAC,gBAAgB;aACvC,CACF,CACH;QAAA,EAAE,IAAI,CAAC,CACR,CACH;IAAA,EAAE,gBAAgB,CAAC,CACpB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,iBAAiB,EAAE;QACjB,MAAM,EAAE,EAAE;QACV,cAAc,EAAE,CAAC;QACjB,aAAa,EAAE,QAAQ;QACvB,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,YAAY;KACzB;IACD,IAAI,EAAE;QACJ,gBAAgB,EAAE,CAAC;KACpB;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,MAAM;KACnB;CACF,CAAC,CAAC;AAEH,eAAe,SAAS,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export function getMenuTitle(menu: any, { I18n }: {
|
|
2
2
|
I18n: any;
|
|
3
3
|
}): any;
|
|
4
|
+
export function isModuleNotFound(compatibility: any): boolean;
|
|
5
|
+
export function isMenuIncompatible(compatibility: any): boolean;
|
|
4
6
|
export function isMenuEnabled({ listMenu, menuKey, user }: {
|
|
5
7
|
listMenu: any;
|
|
6
8
|
menuKey: any;
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License
|
|
16
16
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
+
import { checkNullString } from '@axelor/aos-mobile-ui';
|
|
18
19
|
import { userHaveAccessToConfig } from './roles.helper';
|
|
19
20
|
const userHaveAccessToMenu = ({ menuConfig, user }) => {
|
|
20
21
|
return userHaveAccessToConfig({ config: menuConfig, user: user });
|
|
@@ -47,4 +48,25 @@ export function getMenuTitle(menu, { I18n }) {
|
|
|
47
48
|
}
|
|
48
49
|
return menu.screen;
|
|
49
50
|
}
|
|
51
|
+
export function isModuleNotFound(compatibility) {
|
|
52
|
+
return compatibility?.moduleVersion == null;
|
|
53
|
+
}
|
|
54
|
+
export function isMenuIncompatible(compatibility) {
|
|
55
|
+
if (compatibility == null) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
if (isModuleNotFound(compatibility)) {
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
const moduleVersion = Number(compatibility.moduleVersion.replace(/\D/g, ''));
|
|
62
|
+
if (!checkNullString(compatibility.downToVersion) &&
|
|
63
|
+
moduleVersion < Number(compatibility.downToVersion.replace(/\D/g, ''))) {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
if (!checkNullString(compatibility.upToVersion) &&
|
|
67
|
+
moduleVersion >= Number(compatibility.upToVersion.replace(/\D/g, ''))) {
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
50
72
|
//# sourceMappingURL=menu.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.helper.js","sourceRoot":"","sources":["../../src/navigator/menu.helper.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,sBAAsB,EAAC,MAAM,gBAAgB,CAAC;AAEtD,MAAM,oBAAoB,GAAG,CAAC,EAAC,UAAU,EAAE,IAAI,EAAC,EAAE,EAAE;IAClD,OAAO,sBAAsB,CAAC,EAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE;IACxC,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7C,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,EAAC,UAAU,EAAC,EAAE,EAAE;IAC9C,IAAI,UAAU,IAAI,IAAI,EAAE;QACtB,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAC,EAAE,EAAE;IACzD,IAAI,kBAAkB,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAE;QAClC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,KAAK,OAAO,CAAC,CAAC;QACzE,IAAI,sBAAsB,CAAC,EAAC,UAAU,EAAC,CAAC,EAAE;YACxC,OAAO,oBAAoB,CAAC,EAAC,UAAU,EAAE,IAAI,EAAC,CAAC,CAAC;SACjD;QACD,OAAO,IAAI,CAAC;KACb;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,IAAI,EAAE,EAAC,IAAI,EAAC;IACvC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;QACtB,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC"}
|
|
1
|
+
{"version":3,"file":"menu.helper.js","sourceRoot":"","sources":["../../src/navigator/menu.helper.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAC,sBAAsB,EAAC,MAAM,gBAAgB,CAAC;AAEtD,MAAM,oBAAoB,GAAG,CAAC,EAAC,UAAU,EAAE,IAAI,EAAC,EAAE,EAAE;IAClD,OAAO,sBAAsB,CAAC,EAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE;IACxC,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7C,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,EAAC,UAAU,EAAC,EAAE,EAAE;IAC9C,IAAI,UAAU,IAAI,IAAI,EAAE;QACtB,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAC,EAAE,EAAE;IACzD,IAAI,kBAAkB,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAE;QAClC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,KAAK,OAAO,CAAC,CAAC;QACzE,IAAI,sBAAsB,CAAC,EAAC,UAAU,EAAC,CAAC,EAAE;YACxC,OAAO,oBAAoB,CAAC,EAAC,UAAU,EAAE,IAAI,EAAC,CAAC,CAAC;SACjD;QACD,OAAO,IAAI,CAAC;KACb;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,IAAI,EAAE,EAAC,IAAI,EAAC;IACvC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;QACtB,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,aAAa;IAC5C,OAAO,aAAa,EAAE,aAAa,IAAI,IAAI,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,aAAa;IAC9C,IAAI,aAAa,IAAI,IAAI,EAAE;QACzB,OAAO,KAAK,CAAC;KACd;IAED,IAAI,gBAAgB,CAAC,aAAa,CAAC,EAAE;QACnC,OAAO,IAAI,CAAC;KACb;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAE7E,IACE,CAAC,eAAe,CAAC,aAAa,CAAC,aAAa,CAAC;QAC7C,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EACtE;QACA,OAAO,IAAI,CAAC;KACb;IAED,IACE,CAAC,eAAe,CAAC,aAAa,CAAC,WAAW,CAAC;QAC3C,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EACrE;QACA,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Module } from '../app';
|
|
2
|
+
import { Compatibility } from '../app/Module';
|
|
2
3
|
export declare function filterAuthorizedModules(modules: any, mobileConfigs: any, user: any): any;
|
|
3
4
|
export declare function findIndexAndObjectOfModule(modules: Module[], moduleName: string): {
|
|
4
5
|
module: Module;
|
|
@@ -12,3 +13,5 @@ export declare function updateAccessibleMenus(_module: any, restrictedMenus: any
|
|
|
12
13
|
export declare function getDefaultModule(modules: any, mainMenu: any): any;
|
|
13
14
|
export declare function numberOfModules(modules: any): any;
|
|
14
15
|
export declare function authModuleFilter(_module: any): boolean;
|
|
16
|
+
export declare function manageWebCompatibility(modules: Module[], metaModules: any[]): Module[];
|
|
17
|
+
export declare function formatCompatibilityToDisplay(compatibility: Compatibility): Compatibility;
|
|
@@ -142,4 +142,29 @@ function firstModulesWithMenus(modules) {
|
|
|
142
142
|
export function authModuleFilter(_module) {
|
|
143
143
|
return _module.name !== 'Auth';
|
|
144
144
|
}
|
|
145
|
+
export function manageWebCompatibility(modules, metaModules) {
|
|
146
|
+
if (!Array.isArray(modules) || modules.length === 0) {
|
|
147
|
+
return [];
|
|
148
|
+
}
|
|
149
|
+
return modules.map((_module) => {
|
|
150
|
+
if (_module.compatibilityAOS != null) {
|
|
151
|
+
const webModule = metaModules?.find(_item => _item.name === _module.compatibilityAOS.moduleName);
|
|
152
|
+
return {
|
|
153
|
+
..._module,
|
|
154
|
+
compatibilityAOS: {
|
|
155
|
+
..._module.compatibilityAOS,
|
|
156
|
+
moduleVersion: webModule?.moduleVersion,
|
|
157
|
+
},
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
return _module;
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
export function formatCompatibilityToDisplay(compatibility) {
|
|
164
|
+
return {
|
|
165
|
+
downToVersion: '-',
|
|
166
|
+
upToVersion: '-',
|
|
167
|
+
...compatibility,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
145
170
|
//# sourceMappingURL=module.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.helper.js","sourceRoot":"","sources":["../../src/navigator/module.helper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"module.helper.js","sourceRoot":"","sources":["../../src/navigator/module.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
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 { useCallback } from 'react';
|
|
19
|
+
import { useSelector } from 'react-redux';
|
|
20
|
+
export const useMetafileUri = () => {
|
|
21
|
+
const { baseUrl } = useSelector((state) => state.auth);
|
|
22
|
+
return useCallback((metafileId) => metafileId
|
|
23
|
+
? {
|
|
24
|
+
uri: `${baseUrl}ws/rest/com.axelor.meta.db.MetaFile/${metafileId}/content/download`,
|
|
25
|
+
}
|
|
26
|
+
: null, [baseUrl]);
|
|
27
|
+
};
|
|
28
|
+
export const useBinaryImageUri = () => {
|
|
29
|
+
const { baseUrl } = useSelector((state) => state.auth);
|
|
30
|
+
return useCallback((id, version, model) => id && version && model
|
|
31
|
+
? {
|
|
32
|
+
uri: `${baseUrl}ws/${model}/${id}/image/download?v=${version}&parentId=${id}&parentModel=${model}&image=true`,
|
|
33
|
+
}
|
|
34
|
+
: null, [baseUrl]);
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/utils/image.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,WAAW,EAAC,MAAM,OAAO,CAAC;AAClC,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,EAAC,OAAO,EAAC,GAAG,WAAW,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE1D,OAAO,WAAW,CAChB,CAAC,UAAkB,EAAE,EAAE,CACrB,UAAU;QACR,CAAC,CAAC;YACE,GAAG,EAAE,GAAG,OAAO,uCAAuC,UAAU,mBAAmB;SACpF;QACH,CAAC,CAAC,IAAI,EACV,CAAC,OAAO,CAAC,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,EAAC,OAAO,EAAC,GAAG,WAAW,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE1D,OAAO,WAAW,CAChB,CAAC,EAAU,EAAE,OAAe,EAAE,KAAa,EAAE,EAAE,CAC7C,EAAE,IAAI,OAAO,IAAI,KAAK;QACpB,CAAC,CAAC;YACE,GAAG,EAAE,GAAG,OAAO,MAAM,KAAK,IAAI,EAAE,qBAAqB,OAAO,aAAa,EAAE,gBAAgB,KAAK,aAAa;SAC9G;QACH,CAAC,CAAC,IAAI,EACV,CAAC,OAAO,CAAC,CACV,CAAC;AACJ,CAAC,CAAC"}
|
package/lib/utils/index.d.ts
CHANGED
|
@@ -2,9 +2,10 @@ export { updateAgendaItems } from './agenda';
|
|
|
2
2
|
export { isDate, isDateTime, getNextMonth, getPreviousMonth, diffDate, sameDate, incrementDate, } from './date';
|
|
3
3
|
export { displayItemName } from './displayers';
|
|
4
4
|
export { formatDate, formatDateTime, formatTime, formatScan, formatURL, } from './formatters';
|
|
5
|
+
export { useBinaryImageUri, useMetafileUri } from './image';
|
|
5
6
|
export { filterList, filterListContain } from './list';
|
|
6
7
|
export { calculateDiff, formatDuration, formatTwoNumber, getIntegerPart, } from './time';
|
|
7
|
-
export { areObjectsEquals, isEmpty, fetchJsonField, filterObjectsFields, pickFieldsOfObject, } from './object';
|
|
8
|
+
export { areObjectsEquals, isEmpty, fetchJsonField, filterObjectsFields, pickFieldsOfObject, isPlainObject, } from './object';
|
|
8
9
|
export { showToastMessage } from './show-toast-message';
|
|
9
10
|
export { checkNullString, isHtml, splitInTwo, stringNoAccent } from './string';
|
|
10
11
|
export { filterChip } from './filter';
|
package/lib/utils/index.js
CHANGED
|
@@ -19,9 +19,10 @@ export { updateAgendaItems } from './agenda';
|
|
|
19
19
|
export { isDate, isDateTime, getNextMonth, getPreviousMonth, diffDate, sameDate, incrementDate, } from './date';
|
|
20
20
|
export { displayItemName } from './displayers';
|
|
21
21
|
export { formatDate, formatDateTime, formatTime, formatScan, formatURL, } from './formatters';
|
|
22
|
+
export { useBinaryImageUri, useMetafileUri } from './image';
|
|
22
23
|
export { filterList, filterListContain } from './list';
|
|
23
24
|
export { calculateDiff, formatDuration, formatTwoNumber, getIntegerPart, } from './time';
|
|
24
|
-
export { areObjectsEquals, isEmpty, fetchJsonField, filterObjectsFields, pickFieldsOfObject, } from './object';
|
|
25
|
+
export { areObjectsEquals, isEmpty, fetchJsonField, filterObjectsFields, pickFieldsOfObject, isPlainObject, } from './object';
|
|
25
26
|
export { showToastMessage } from './show-toast-message';
|
|
26
27
|
export { checkNullString, isHtml, splitInTwo, stringNoAccent } from './string';
|
|
27
28
|
export { filterChip } from './filter';
|
package/lib/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,iBAAiB,EAAC,MAAM,UAAU,CAAC;AAC3C,OAAO,EACL,MAAM,EACN,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,aAAa,GACd,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAC,eAAe,EAAC,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,UAAU,EAAE,iBAAiB,EAAC,MAAM,QAAQ,CAAC;AACrD,OAAO,EACL,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,gBAAgB,EAChB,OAAO,EACP,cAAc,EACd,mBAAmB,EACnB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,iBAAiB,EAAC,MAAM,UAAU,CAAC;AAC3C,OAAO,EACL,MAAM,EACN,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,aAAa,GACd,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAC,eAAe,EAAC,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,iBAAiB,EAAE,cAAc,EAAC,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAC,UAAU,EAAE,iBAAiB,EAAC,MAAM,QAAQ,CAAC;AACrD,OAAO,EACL,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,gBAAgB,EAChB,OAAO,EACP,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAC,MAAM,UAAU,CAAC;AAC7E,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC"}
|
package/lib/utils/object.d.ts
CHANGED
|
@@ -3,3 +3,4 @@ export declare const isEmpty: (obj: any) => boolean;
|
|
|
3
3
|
export declare function fetchJsonField(object: any, fieldName: string): any;
|
|
4
4
|
export declare function pickFieldsOfObject(object: any, fields: any): any;
|
|
5
5
|
export declare function filterObjectsFields(data: any[], fields: string[]): any[];
|
|
6
|
+
export declare const isPlainObject: (val: any) => boolean;
|
package/lib/utils/object.js
CHANGED
|
@@ -31,8 +31,9 @@ export function areObjectsEquals(object1, object2) {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
export const isEmpty = obj =>
|
|
35
|
-
Object.
|
|
34
|
+
export const isEmpty = obj => obj == null ||
|
|
35
|
+
(Object.keys(obj).length === 0 &&
|
|
36
|
+
Object.getPrototypeOf(obj) === Object.prototype);
|
|
36
37
|
export function fetchJsonField(object, fieldName) {
|
|
37
38
|
if (object == null) {
|
|
38
39
|
return undefined;
|
|
@@ -55,4 +56,5 @@ export function filterObjectsFields(data, fields) {
|
|
|
55
56
|
}
|
|
56
57
|
return data.map(object => pickFieldsOfObject(object, fields));
|
|
57
58
|
}
|
|
59
|
+
export const isPlainObject = val => !!val && typeof val === 'object' && val.constructor === Object;
|
|
58
60
|
//# sourceMappingURL=object.js.map
|
package/lib/utils/object.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../src/utils/object.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,cAAc,EAAC,MAAM,UAAU,CAAC;AAExC,MAAM,UAAU,gBAAgB,CAAC,OAAO,EAAE,OAAO;IAC/C,IAAI,OAAO,OAAO,KAAK,OAAO,OAAO,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,EAAE;QAC3E,OAAO,KAAK,CAAC;KACd;SAAM;QACL,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,OAAO,cAAc,CAAC,OAAO,CAAC;iBAC3B,WAAW,EAAE;iBACb,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;SACpD;aAAM;YACL,OAAO,OAAO,KAAK,OAAO,CAAC;SAC5B;KACF;AACH,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../src/utils/object.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,cAAc,EAAC,MAAM,UAAU,CAAC;AAExC,MAAM,UAAU,gBAAgB,CAAC,OAAO,EAAE,OAAO;IAC/C,IAAI,OAAO,OAAO,KAAK,OAAO,OAAO,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,EAAE;QAC3E,OAAO,KAAK,CAAC;KACd;SAAM;QACL,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,OAAO,cAAc,CAAC,OAAO,CAAC;iBAC3B,WAAW,EAAE;iBACb,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;SACpD;aAAM;YACL,OAAO,OAAO,KAAK,OAAO,CAAC;SAC5B;KACF;AACH,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAC3B,GAAG,IAAI,IAAI;IACX,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;QAC5B,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC;AAErD,MAAM,UAAU,cAAc,CAAC,MAAW,EAAE,SAAiB;IAC3D,IAAI,MAAM,IAAI,IAAI,EAAE;QAClB,OAAO,SAAS,CAAC;KAClB;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACzD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;KAC1B;IAED,MAAM,UAAU,GAAa,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClD,OAAO,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAM,EAAE,MAAM;IAC/C,OAAO,MAAM,CAAC,MAAM,CAClB,UAAU,MAAM,EAAE,KAAK;QACrB,MAAM,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC;IAChB,CAAC,EACD,EAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAC,CACzC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAW,EAAE,MAAgB;IAC/D,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE,MAAM,KAAK,CAAC,EAAE;QAC1C,OAAO,IAAI,CAAC;KACb;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC,EAAE,CACjC,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axelor/aos-mobile-core",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.2",
|
|
4
4
|
"author": "Axelor",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"publishConfig": {
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
"react": "18.2.0",
|
|
32
32
|
"react-i18next": "^11.18.6",
|
|
33
33
|
"react-native": "0.68.1",
|
|
34
|
-
"react-native-date-picker": "^4.2.6",
|
|
35
34
|
"react-native-datawedge-intents": "^0.1.8",
|
|
35
|
+
"react-native-date-picker": "^4.2.6",
|
|
36
36
|
"react-native-device-info": "^10.3.0",
|
|
37
37
|
"react-native-document-picker": "8.1.3",
|
|
38
38
|
"react-native-file-viewer": "^2.1.5",
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
"react-native-static-safe-area-insets": "^2.2.0",
|
|
45
45
|
"react-native-toast-message": "^2.1.5",
|
|
46
46
|
"react-native-vision-camera": "^2.15.4",
|
|
47
|
+
"rn-fetch-blob": "0.13.0-beta.1",
|
|
47
48
|
"vision-camera-code-scanner": "^0.2.0"
|
|
48
49
|
},
|
|
49
50
|
"devDependencies": {
|
|
@@ -63,8 +64,8 @@
|
|
|
63
64
|
"react": "18.2.0",
|
|
64
65
|
"react-i18next": "^11.18.6",
|
|
65
66
|
"react-native": "0.68.1",
|
|
66
|
-
"react-native-date-picker": "^4.2.6",
|
|
67
67
|
"react-native-datawedge-intents": "^0.1.8",
|
|
68
|
+
"react-native-date-picker": "^4.2.6",
|
|
68
69
|
"react-native-device-info": "^10.3.0",
|
|
69
70
|
"react-native-document-picker": "8.1.3",
|
|
70
71
|
"react-native-file-viewer": "^2.1.5",
|
|
@@ -77,15 +78,16 @@
|
|
|
77
78
|
"react-native-static-safe-area-insets": "^2.2.0",
|
|
78
79
|
"react-native-toast-message": "^2.1.5",
|
|
79
80
|
"react-native-vision-camera": "^2.15.4",
|
|
81
|
+
"rn-fetch-blob": "0.13.0-beta.1",
|
|
80
82
|
"vision-camera-code-scanner": "^0.2.0"
|
|
81
83
|
},
|
|
82
84
|
"dependencies": {
|
|
83
|
-
"@axelor/aos-mobile-error": "7.0.
|
|
84
|
-
"@axelor/aos-mobile-ui": "7.0.
|
|
85
|
-
"@react-navigation/drawer": "6.
|
|
86
|
-
"@react-navigation/native": "6.
|
|
87
|
-
"@react-navigation/native-stack": "6.
|
|
88
|
-
"@react-navigation/stack": "6.
|
|
85
|
+
"@axelor/aos-mobile-error": "7.0.2",
|
|
86
|
+
"@axelor/aos-mobile-ui": "7.0.2",
|
|
87
|
+
"@react-navigation/drawer": "6.6.3",
|
|
88
|
+
"@react-navigation/native": "6.1.7",
|
|
89
|
+
"@react-navigation/native-stack": "6.9.13",
|
|
90
|
+
"@react-navigation/stack": "6.3.17",
|
|
89
91
|
"@reduxjs/toolkit": "^1.8.5",
|
|
90
92
|
"moment": "^2.29.4",
|
|
91
93
|
"react-native-calendars": "1.1284",
|