@axelor/aos-mobile-core 6.5.4 → 6.5.5

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.
Files changed (70) hide show
  1. package/lib/api/metafile-api.d.ts +3 -1
  2. package/lib/api/metafile-api.js +10 -2
  3. package/lib/api/metafile-api.js.map +1 -1
  4. package/lib/apiProviders/utils.d.ts +7 -7
  5. package/lib/apiProviders/utils.js +22 -11
  6. package/lib/apiProviders/utils.js.map +1 -1
  7. package/lib/app/Module.d.ts +15 -2
  8. package/lib/auth/api/user-api.js +5 -3
  9. package/lib/auth/api/user-api.js.map +1 -1
  10. package/lib/auth/features/userSlice.js +7 -1
  11. package/lib/auth/features/userSlice.js.map +1 -1
  12. package/lib/auth/index.js +1 -0
  13. package/lib/auth/index.js.map +1 -1
  14. package/lib/auth/models/objectFields.js +14 -0
  15. package/lib/auth/models/objectFields.js.map +1 -1
  16. package/lib/components/molecules/UploadFileInput/UploadFileInput.d.ts +11 -2
  17. package/lib/components/molecules/UploadFileInput/UploadFileInput.js +128 -19
  18. package/lib/components/molecules/UploadFileInput/UploadFileInput.js.map +1 -1
  19. package/lib/components/organisms/DateInput/DateInput.d.ts +2 -1
  20. package/lib/components/organisms/DateInput/DateInput.js +8 -5
  21. package/lib/components/organisms/DateInput/DateInput.js.map +1 -1
  22. package/lib/header/HeaderActionsProvider.d.ts +3 -4
  23. package/lib/header/HeaderActionsProvider.js +16 -10
  24. package/lib/header/HeaderActionsProvider.js.map +1 -1
  25. package/lib/header/index.d.ts +2 -1
  26. package/lib/header/index.js +2 -1
  27. package/lib/header/index.js.map +1 -1
  28. package/lib/i18n/hooks/use-translator.d.ts +1 -1
  29. package/lib/i18n/translations/en.json +20 -0
  30. package/lib/i18n/translations/fr.json +20 -0
  31. package/lib/navigator/Navigator.js +19 -7
  32. package/lib/navigator/Navigator.js.map +1 -1
  33. package/lib/navigator/drawer/DrawerContent.js +38 -18
  34. package/lib/navigator/drawer/DrawerContent.js.map +1 -1
  35. package/lib/navigator/drawer/Header.js +26 -6
  36. package/lib/navigator/drawer/Header.js.map +1 -1
  37. package/lib/navigator/drawer/Menu.js +31 -14
  38. package/lib/navigator/drawer/Menu.js.map +1 -1
  39. package/lib/navigator/drawer/MenuItem.d.ts +8 -5
  40. package/lib/navigator/drawer/MenuItem.js +11 -51
  41. package/lib/navigator/drawer/MenuItem.js.map +1 -1
  42. package/lib/navigator/drawer/MenuItemEntry.d.ts +12 -0
  43. package/lib/navigator/drawer/MenuItemEntry.js +89 -0
  44. package/lib/navigator/drawer/MenuItemEntry.js.map +1 -0
  45. package/lib/navigator/drawer/SubMenuItem.d.ts +7 -0
  46. package/lib/navigator/drawer/SubMenuItem.js +34 -0
  47. package/lib/navigator/drawer/SubMenuItem.js.map +1 -0
  48. package/lib/navigator/drawer/SubMenuItemList.d.ts +10 -0
  49. package/lib/navigator/drawer/SubMenuItemList.js +46 -0
  50. package/lib/navigator/drawer/SubMenuItemList.js.map +1 -0
  51. package/lib/navigator/menu.helper.d.ts +9 -0
  52. package/lib/navigator/menu.helper.js +92 -0
  53. package/lib/navigator/menu.helper.js.map +1 -1
  54. package/lib/navigator/module.helper.js.map +1 -1
  55. package/lib/tools/ContactProvider.d.ts +9 -0
  56. package/lib/tools/ContactProvider.js +98 -0
  57. package/lib/tools/ContactProvider.js.map +1 -0
  58. package/lib/tools/contact.helper.d.ts +21 -0
  59. package/lib/tools/contact.helper.js +136 -0
  60. package/lib/tools/contact.helper.js.map +1 -0
  61. package/lib/tools/index.d.ts +1 -0
  62. package/lib/tools/index.js +1 -0
  63. package/lib/tools/index.js.map +1 -1
  64. package/lib/utils/date.d.ts +16 -0
  65. package/lib/utils/date.js +41 -0
  66. package/lib/utils/date.js.map +1 -1
  67. package/lib/utils/index.d.ts +1 -1
  68. package/lib/utils/index.js +1 -1
  69. package/lib/utils/index.js.map +1 -1
  70. package/package.json +5 -3
@@ -15,57 +15,17 @@
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 React, { useMemo } from 'react';
19
- import { View, StyleSheet, TouchableOpacity } from 'react-native';
20
- import { Icon, Text, useThemeColor } from '@axelor/aos-mobile-ui';
21
- const MenuItem = ({ icon, title, isActive, onPress, disabled }) => {
22
- const Colors = useThemeColor();
23
- const styles = useMemo(() => getStyles(Colors, disabled), [Colors, disabled]);
24
- const backgroundColor = useMemo(() => getIndicatorColor(isActive ? Colors.primaryColor.background : Colors.backgroundColor).container, [Colors.backgroundColor, Colors.primaryColor.background, isActive]);
25
- return (<TouchableOpacity onPress={onPress} disabled={disabled}>
26
- <View style={[styles.menuItemContainer]}>
27
- <View style={[styles.menuItemActive, backgroundColor]}/>
28
- {icon && (<Icon style={styles.menuItemIcon} name={icon} size={24} color={disabled
29
- ? Colors.secondaryColor.background_light
30
- : Colors.secondaryColor_dark.background}/>)}
31
- <View style={styles.menuItemTextContainer}>
32
- <Text style={styles.menuItemTitle}>{title}</Text>
33
- </View>
34
- </View>
35
- </TouchableOpacity>);
18
+ import React from 'react';
19
+ import { getMenuTitle, hasSubMenus } from '../menu.helper';
20
+ import useTranslator from '../../i18n/hooks/use-translator';
21
+ import SubMenuItemList from './SubMenuItemList';
22
+ import MenuItemEntry from './MenuItemEntry';
23
+ const MenuItem = ({ state, route, navigation, menuItem, subRoutes, onPress = () => { }, isActive = false, disabled, }) => {
24
+ const I18n = useTranslator();
25
+ if (hasSubMenus(menuItem)) {
26
+ return (<SubMenuItemList state={state} route={route} navigation={navigation} onPress={onPress} menuItem={menuItem} subRoutes={subRoutes} disabled={disabled}/>);
27
+ }
28
+ return (<MenuItemEntry onPress={() => onPress(route)} title={getMenuTitle(menuItem, { I18n })} icon={menuItem.icon} disabled={menuItem.disabled || disabled} isActive={isActive}/>);
36
29
  };
37
- const getIndicatorColor = color => {
38
- return StyleSheet.create({
39
- container: {
40
- backgroundColor: color,
41
- },
42
- });
43
- };
44
- const getStyles = (Colors, disabled) => StyleSheet.create({
45
- menuItemContainer: {
46
- flexDirection: 'row',
47
- paddingVertical: 8,
48
- },
49
- menuItemActive: {
50
- width: 7,
51
- height: 32,
52
- borderTopRightRadius: 8,
53
- borderBottomRightRadius: 8,
54
- },
55
- menuItemIcon: {
56
- marginLeft: 12,
57
- marginRight: 18,
58
- },
59
- menuItemTextContainer: {
60
- flex: 1,
61
- alignSelf: 'center',
62
- paddingRight: 16,
63
- },
64
- menuItemTitle: {
65
- fontSize: 16,
66
- fontWeight: 'bold',
67
- color: disabled ? Colors.secondaryColor.background_light : Colors.text,
68
- },
69
- });
70
30
  export default MenuItem;
71
31
  //# sourceMappingURL=MenuItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../../../src/navigator/drawer/MenuItem.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../../../src/navigator/drawer/MenuItem.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,YAAY,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC;AACzD,OAAO,aAAa,MAAM,iCAAiC,CAAC;AAC5D,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,QAAQ,GAAG,CAAC,EAChB,KAAK,EACL,KAAK,EACL,UAAU,EACV,QAAQ,EACR,SAAS,EACT,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,EAClB,QAAQ,GAAG,KAAK,EAChB,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE;QACzB,OAAO,CACL,CAAC,eAAe,CACd,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,QAAQ,CAAC,CAAC,QAAQ,CAAC,EACnB,CACH,CAAC;KACH;IAED,OAAO,CACL,CAAC,aAAa,CACZ,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAC9B,KAAK,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAC,CAAC,CAAC,CACtC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CACpB,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,CACxC,QAAQ,CAAC,CAAC,QAAQ,CAAC,EACnB,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,12 @@
1
+ export default MenuItemEntry;
2
+ declare function MenuItemEntry({ icon, title, onPress, isActive, disabled, isDropdown, dropdown, iconSize, style, }: {
3
+ icon: any;
4
+ title: any;
5
+ onPress?: (_route: any) => void;
6
+ isActive?: boolean;
7
+ disabled?: boolean;
8
+ isDropdown?: boolean;
9
+ dropdown?: boolean;
10
+ iconSize?: number;
11
+ style: any;
12
+ }): JSX.Element;
@@ -0,0 +1,89 @@
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 { View, StyleSheet, TouchableOpacity } from 'react-native';
20
+ import { Icon, Text, useThemeColor } from '@axelor/aos-mobile-ui';
21
+ const MenuItemEntry = ({ icon, title, onPress = _route => { }, isActive = false, disabled = false, isDropdown = false, dropdown = false, iconSize = 24, style, }) => {
22
+ const Colors = useThemeColor();
23
+ const styles = useMemo(() => getStyles(Colors, disabled), [Colors, disabled]);
24
+ const backgroundColor = useMemo(() => getIndicatorColor(!dropdown && isActive
25
+ ? Colors.primaryColor.background
26
+ : Colors.backgroundColor).indicator, [
27
+ Colors.backgroundColor,
28
+ Colors.primaryColor.background,
29
+ dropdown,
30
+ isActive,
31
+ ]);
32
+ return (<TouchableOpacity onPress={onPress} disabled={disabled}>
33
+ <View style={styles.container}>
34
+ <View style={[styles.menuItemActive, backgroundColor]}/>
35
+ <View style={[styles.menuItemContainer, style]}>
36
+ {icon && (<Icon style={styles.menuItemIcon} name={icon} size={iconSize} color={disabled
37
+ ? Colors.secondaryColor.background_light
38
+ : Colors.secondaryColor_dark.background}/>)}
39
+ <View style={styles.menuItemTextContainer}>
40
+ <Text style={styles.menuItemTitle}>{title}</Text>
41
+ </View>
42
+ {isDropdown && (<Icon name={dropdown ? 'chevron-up' : 'chevron-down'} color={Colors.secondaryColor_dark.background} style={styles.dropdownIcon}/>)}
43
+ </View>
44
+ </View>
45
+ </TouchableOpacity>);
46
+ };
47
+ const getIndicatorColor = color => {
48
+ return StyleSheet.create({
49
+ indicator: {
50
+ backgroundColor: color,
51
+ },
52
+ });
53
+ };
54
+ const getStyles = (Colors, disabled) => StyleSheet.create({
55
+ container: {
56
+ flexDirection: 'row',
57
+ paddingVertical: 8,
58
+ },
59
+ menuItemContainer: {
60
+ flexDirection: 'row',
61
+ width: '100%',
62
+ },
63
+ menuItemActive: {
64
+ width: 7,
65
+ height: 32,
66
+ borderTopRightRadius: 8,
67
+ borderBottomRightRadius: 8,
68
+ },
69
+ menuItemIcon: {
70
+ marginLeft: 12,
71
+ marginRight: 18,
72
+ },
73
+ menuItemTextContainer: {
74
+ flex: 1,
75
+ alignSelf: 'center',
76
+ paddingRight: 16,
77
+ },
78
+ menuItemTitle: {
79
+ fontSize: 16,
80
+ fontWeight: 'bold',
81
+ color: disabled ? Colors.secondaryColor.background_light : Colors.text,
82
+ },
83
+ dropdownIcon: {
84
+ marginHorizontal: 5,
85
+ marginRight: 20,
86
+ },
87
+ });
88
+ export default MenuItemEntry;
89
+ //# sourceMappingURL=MenuItemEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuItemEntry.js","sourceRoot":"","sources":["../../../src/navigator/drawer/MenuItemEntry.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export default SubMenuItem;
2
+ declare function SubMenuItem({ route, subMenu, onPress, isActive, }: {
3
+ route: any;
4
+ subMenu: any;
5
+ onPress?: () => void;
6
+ isActive?: boolean;
7
+ }): JSX.Element;
@@ -0,0 +1,34 @@
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 from 'react';
19
+ import { StyleSheet } from 'react-native';
20
+ import { getMenuTitle } from '../menu.helper';
21
+ import useTranslator from '../../i18n/hooks/use-translator';
22
+ import MenuItemEntry from './MenuItemEntry';
23
+ const SUB_MENU_ICON_SIZE = 20;
24
+ const SubMenuItem = ({ route, subMenu, onPress = () => { }, isActive = false, }) => {
25
+ const I18n = useTranslator();
26
+ return (<MenuItemEntry icon={subMenu.icon} title={getMenuTitle(subMenu, { I18n })} disabled={subMenu.disabled} iconSize={SUB_MENU_ICON_SIZE} onPress={() => onPress(route)} isActive={isActive} style={styles.subMenuItem}/>);
27
+ };
28
+ const styles = StyleSheet.create({
29
+ subMenuItem: {
30
+ marginLeft: 20,
31
+ },
32
+ });
33
+ export default SubMenuItem;
34
+ //# sourceMappingURL=SubMenuItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubMenuItem.js","sourceRoot":"","sources":["../../../src/navigator/drawer/SubMenuItem.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,aAAa,MAAM,iCAAiC,CAAC;AAC5D,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B,MAAM,WAAW,GAAG,CAAC,EACnB,KAAK,EACL,OAAO,EACP,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,EAClB,QAAQ,GAAG,KAAK,GACjB,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,OAAO,CACL,CAAC,aAAa,CACZ,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CACnB,KAAK,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,EAAC,IAAI,EAAC,CAAC,CAAC,CACrC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAC3B,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAC7B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAC9B,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAC1B,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,WAAW,EAAE;QACX,UAAU,EAAE,EAAE;KACf;CACF,CAAC,CAAC;AAEH,eAAe,WAAW,CAAC"}
@@ -0,0 +1,10 @@
1
+ export default SubMenuItemList;
2
+ declare function SubMenuItemList({ state, route, navigation, menuItem, subRoutes, onPress, disabled, }: {
3
+ state: any;
4
+ route: any;
5
+ navigation: any;
6
+ menuItem: any;
7
+ subRoutes?: any[];
8
+ onPress?: () => void;
9
+ disabled: any;
10
+ }): JSX.Element;
@@ -0,0 +1,46 @@
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 } from 'react';
19
+ import { View } from 'react-native';
20
+ import { animationUtil } from '@axelor/aos-mobile-ui';
21
+ import MenuItemEntry from './MenuItemEntry';
22
+ import { getMenuTitle, resolveSubMenus } from '../menu.helper';
23
+ import SubMenuItem from './SubMenuItem';
24
+ import { useTranslator } from '../../i18n';
25
+ const SubMenuItemList = ({ state, route, navigation, menuItem, subRoutes = [], onPress = () => { }, disabled, }) => {
26
+ const I18n = useTranslator();
27
+ const [dropdown, setDropdown] = useState(false);
28
+ const handleDropdownPress = useCallback(() => {
29
+ animationUtil.animateNext();
30
+ setDropdown(!dropdown);
31
+ }, [dropdown]);
32
+ const _subMenus = resolveSubMenus(menuItem.subMenus);
33
+ return (<View>
34
+ <MenuItemEntry state={state} route={route} navigation={navigation} icon={menuItem.icon} title={getMenuTitle(menuItem, { I18n })} disabled={menuItem.disabled || disabled} onPress={handleDropdownPress} isDropdown={true} dropdown={dropdown}/>
35
+ {dropdown && (<View>
36
+ {_subMenus.map((subMenu, i) => {
37
+ const subRoute = subRoutes[i];
38
+ const index = state.routes.findIndex(_r => _r.key === subRoute.key);
39
+ const focused = index === state.index;
40
+ return (<SubMenuItem key={subRoute.key} route={subRoute} subMenu={subMenu} onPress={onPress} isActive={focused}/>);
41
+ })}
42
+ </View>)}
43
+ </View>);
44
+ };
45
+ export default SubMenuItemList;
46
+ //# sourceMappingURL=SubMenuItemList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubMenuItemList.js","sourceRoot":"","sources":["../../../src/navigator/drawer/SubMenuItemList.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,WAAW,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACnD,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,YAAY,EAAE,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC7D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAEzC,MAAM,eAAe,GAAG,CAAC,EACvB,KAAK,EACL,KAAK,EACL,UAAU,EACV,QAAQ,EACR,SAAS,GAAG,EAAE,EACd,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,EAClB,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC3C,aAAa,CAAC,WAAW,EAAE,CAAC;QAC5B,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAErD,OAAO,CACL,CAAC,IAAI,CACH;MAAA,CAAC,aAAa,CACZ,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CACpB,KAAK,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAC,CAAC,CAAC,CACtC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,CACxC,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAC7B,UAAU,CAAC,CAAC,IAAI,CAAC,CACjB,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAErB;MAAA,CAAC,QAAQ,IAAI,CACX,CAAC,IAAI,CACH;UAAA,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;gBAC5B,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAE9B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACpE,MAAM,OAAO,GAAG,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC;gBAEtC,OAAO,CACL,CAAC,WAAW,CACV,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAClB,KAAK,CAAC,CAAC,QAAQ,CAAC,CAChB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,QAAQ,CAAC,CAAC,OAAO,CAAC,EAClB,CACH,CAAC;YACJ,CAAC,CAAC,CACJ;QAAA,EAAE,IAAI,CAAC,CACR,CACH;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,6 +1,15 @@
1
+ export function findIndexAndRouteOfMenu(routes: any, menuName: any): {
2
+ route: any;
3
+ index: any;
4
+ };
1
5
  export function getMenuTitle(menu: any, { I18n }: {
2
6
  I18n: any;
3
7
  }): any;
8
+ export function hasSubMenus(menu: any): boolean;
9
+ export function resolveSubMenus(subMenus: any): any[];
10
+ export function manageSubMenusOverriding(modules: any): any;
11
+ export function cleanEmptyMenusAndSubMenus(modules: any): any;
12
+ export function getDefaultMenuKey(module: any): any;
4
13
  export function isMenuEnabled({ listMenu, menuKey, user }: {
5
14
  listMenu: any;
6
15
  menuKey: any;
@@ -16,6 +16,13 @@
16
16
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
18
  import { userHaveAccessToConfig } from './roles.helper';
19
+ export function findIndexAndRouteOfMenu(routes, menuName) {
20
+ const index = routes.findIndex(_route => _route.name === menuName);
21
+ if (index === -1) {
22
+ return { route: null, index: null };
23
+ }
24
+ return { route: routes[index], index: index };
25
+ }
19
26
  const userHaveAccessToMenu = ({ menuConfig, user }) => {
20
27
  return userHaveAccessToConfig({ config: menuConfig, user: user });
21
28
  };
@@ -47,4 +54,89 @@ export function getMenuTitle(menu, { I18n }) {
47
54
  }
48
55
  return menu.screen;
49
56
  }
57
+ export function hasSubMenus(menu) {
58
+ return (menu != null &&
59
+ Object.keys(menu).length > 0 &&
60
+ Object.keys(menu).includes('subMenus'));
61
+ }
62
+ export function resolveSubMenus(subMenus) {
63
+ if (subMenus == null || Object.keys(subMenus).length === 0) {
64
+ return [];
65
+ }
66
+ return Object.entries(subMenus)
67
+ .map(([key, content]) => ({ ...content, key }))
68
+ .map((item, index) => {
69
+ if (item?.order != null) {
70
+ return item;
71
+ }
72
+ return { ...item, order: index * 10 };
73
+ })
74
+ .sort((a, b) => a.order - b.order);
75
+ }
76
+ export function manageSubMenusOverriding(modules) {
77
+ const allMenus = {};
78
+ modules.forEach(module => {
79
+ if (module.menus) {
80
+ Object.entries(module.menus).forEach(([menuKey, menu]) => {
81
+ allMenus[menuKey] = menu;
82
+ });
83
+ }
84
+ });
85
+ modules.forEach(module => {
86
+ if (module.menus) {
87
+ Object.values(module.menus).forEach(menu => {
88
+ if (menu.subMenus && Object.keys(menu.subMenus).length !== 0) {
89
+ menu.subMenus = Object.entries(menu.subMenus).reduce((acc, [subMenuKey, subMenu]) => {
90
+ if ('parent' in subMenu) {
91
+ const parentMenuName = subMenu.parent;
92
+ const parentMenu = allMenus[parentMenuName];
93
+ if (parentMenu) {
94
+ if (!parentMenu.subMenus) {
95
+ parentMenu.subMenus = {};
96
+ }
97
+ parentMenu.subMenus[subMenuKey] = { ...subMenu };
98
+ delete parentMenu.subMenus[subMenuKey].parent;
99
+ }
100
+ }
101
+ else {
102
+ acc[subMenuKey] = subMenu;
103
+ }
104
+ return acc;
105
+ }, {});
106
+ }
107
+ });
108
+ }
109
+ });
110
+ return cleanEmptyMenusAndSubMenus(modules);
111
+ }
112
+ export function cleanEmptyMenusAndSubMenus(modules) {
113
+ const cleanedModules = modules.map(module => {
114
+ const { menus, ...restModuleAttrs } = module;
115
+ if (menus) {
116
+ if (Object.keys(menus).length === 0) {
117
+ return { ...restModuleAttrs };
118
+ }
119
+ const cleanedMenus = Object.entries(menus).map(([key, menu]) => {
120
+ const { subMenus, ...restMenusAttrs } = menu;
121
+ if (subMenus && Object.keys(subMenus).length === 0) {
122
+ return [key, { ...restMenusAttrs }];
123
+ }
124
+ return [key, menu];
125
+ });
126
+ return { ...module, menus: Object.fromEntries(cleanedMenus) };
127
+ }
128
+ return module;
129
+ });
130
+ return cleanedModules;
131
+ }
132
+ export function getDefaultMenuKey(module) {
133
+ const { menus } = module;
134
+ if (menus == null) {
135
+ return null;
136
+ }
137
+ const defaultMenuEntry = Object.entries(menus)
138
+ .map(([key, menu]) => ({ ...menu, key }))
139
+ .find(menu => menu.isDefault === true);
140
+ return defaultMenuEntry ? defaultMenuEntry.key : null;
141
+ }
50
142
  //# 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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.helper.js","sourceRoot":"","sources":["../../src/navigator/module.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.helper.js","sourceRoot":"","sources":["../../src/navigator/module.helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ContactData } from './contact.helper';
2
+ declare class ContactProvider {
3
+ constructor();
4
+ private _getContactsPermission;
5
+ private _showToast;
6
+ saveContact: (contactData: ContactData) => Promise<boolean>;
7
+ }
8
+ export declare const contactProvider: ContactProvider;
9
+ export {};
@@ -0,0 +1,98 @@
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 { PermissionsAndroid, Platform } from 'react-native';
19
+ import Toast from 'react-native-toast-message';
20
+ import * as Contacts from 'react-native-contacts';
21
+ import { PermissionResult, parseContactData, } from './contact.helper';
22
+ class ContactProvider {
23
+ constructor() { }
24
+ _getContactsPermission = async () => {
25
+ try {
26
+ switch (Platform.OS) {
27
+ case 'ios':
28
+ const _permIOS = await Contacts.requestPermission();
29
+ switch (_permIOS) {
30
+ case 'authorized':
31
+ return PermissionResult.GRANTED;
32
+ default:
33
+ return PermissionResult.DENIED;
34
+ }
35
+ case 'android':
36
+ const _permAndroid = await PermissionsAndroid.requestMultiple([
37
+ PermissionsAndroid.PERMISSIONS.READ_CONTACTS,
38
+ PermissionsAndroid.PERMISSIONS.WRITE_CONTACTS,
39
+ ]);
40
+ if (Object.values(_permAndroid).every(_perm => _perm === PermissionsAndroid.RESULTS.GRANTED)) {
41
+ return PermissionResult.GRANTED;
42
+ }
43
+ else {
44
+ return PermissionResult.DENIED;
45
+ }
46
+ default:
47
+ throw new Error('Unsupported device.');
48
+ }
49
+ }
50
+ catch (error) {
51
+ console.error('Error requesting contacts permission:', error);
52
+ return PermissionResult.DENIED;
53
+ }
54
+ };
55
+ _showToast = (type, message) => {
56
+ Toast.show({
57
+ type,
58
+ position: 'bottom',
59
+ bottomOffset: 20,
60
+ text1: type === 'success' ? 'Success' : 'Error',
61
+ text2: message,
62
+ });
63
+ };
64
+ saveContact = async (contactData) => {
65
+ try {
66
+ if (!contactData.firstName) {
67
+ throw new Error('Required contact data is missing.');
68
+ }
69
+ const permissionResult = await this._getContactsPermission();
70
+ switch (permissionResult) {
71
+ case PermissionResult.GRANTED:
72
+ const contactAdded = await Contacts.openContactForm(parseContactData(contactData)).then(_contact => {
73
+ if (_contact != null) {
74
+ this._showToast('success', `Contact ${_contact.givenName} added successfully.`);
75
+ return true;
76
+ }
77
+ else {
78
+ this._showToast('error', 'Contact addition was canceled.');
79
+ return false;
80
+ }
81
+ });
82
+ return contactAdded;
83
+ case PermissionResult.DENIED:
84
+ this._showToast('error', 'Contacts permission denied.');
85
+ return false;
86
+ default:
87
+ this._showToast('error', 'Unknown permission result.');
88
+ return false;
89
+ }
90
+ }
91
+ catch (error) {
92
+ this._showToast('error', `Error adding contact: ${error}`);
93
+ return false;
94
+ }
95
+ };
96
+ }
97
+ export const contactProvider = new ContactProvider();
98
+ //# sourceMappingURL=ContactProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContactProvider.js","sourceRoot":"","sources":["../../src/tools/ContactProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,kBAAkB,EAAE,QAAQ,EAAC,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,MAAM,4BAA4B,CAAC;AAC/C,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAEL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,eAAe;IACnB,gBAAe,CAAC;IAER,sBAAsB,GAAG,KAAK,IAAI,EAAE;QAC1C,IAAI;YACF,QAAQ,QAAQ,CAAC,EAAE,EAAE;gBACnB,KAAK,KAAK;oBACR,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAC;oBACpD,QAAQ,QAAQ,EAAE;wBAChB,KAAK,YAAY;4BACf,OAAO,gBAAgB,CAAC,OAAO,CAAC;wBAClC;4BACE,OAAO,gBAAgB,CAAC,MAAM,CAAC;qBAClC;gBACH,KAAK,SAAS;oBACZ,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,eAAe,CAAC;wBAC5D,kBAAkB,CAAC,WAAW,CAAC,aAAa;wBAC5C,kBAAkB,CAAC,WAAW,CAAC,cAAc;qBAC9C,CAAC,CAAC;oBAEH,IACE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAC/B,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,kBAAkB,CAAC,OAAO,CAAC,OAAO,CACtD,EACD;wBACA,OAAO,gBAAgB,CAAC,OAAO,CAAC;qBACjC;yBAAM;wBACL,OAAO,gBAAgB,CAAC,MAAM,CAAC;qBAChC;gBAEH;oBACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;aAC1C;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;YAC9D,OAAO,gBAAgB,CAAC,MAAM,CAAC;SAChC;IACH,CAAC,CAAC;IAEM,UAAU,GAAG,CAAC,IAAY,EAAE,OAAe,EAAQ,EAAE;QAC3D,KAAK,CAAC,IAAI,CAAC;YACT,IAAI;YACJ,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,EAAE;YAChB,KAAK,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;YAC/C,KAAK,EAAE,OAAO;SACf,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,WAAW,GAAG,KAAK,EAAE,WAAwB,EAAoB,EAAE;QACjE,IAAI;YACF,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;gBAC1B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;aACtD;YAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAE7D,QAAQ,gBAAgB,EAAE;gBACxB,KAAK,gBAAgB,CAAC,OAAO;oBAC3B,MAAM,YAAY,GAAY,MAAM,QAAQ,CAAC,eAAe,CAC1D,gBAAgB,CAAC,WAAW,CAAC,CAC9B,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;wBAChB,IAAI,QAAQ,IAAI,IAAI,EAAE;4BACpB,IAAI,CAAC,UAAU,CACb,SAAS,EACT,WAAW,QAAQ,CAAC,SAAS,sBAAsB,CACpD,CAAC;4BACF,OAAO,IAAI,CAAC;yBACb;6BAAM;4BACL,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAC;4BAC3D,OAAO,KAAK,CAAC;yBACd;oBACH,CAAC,CAAC,CAAC;oBAEH,OAAO,YAAY,CAAC;gBACtB,KAAK,gBAAgB,CAAC,MAAM;oBAC1B,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;oBACxD,OAAO,KAAK,CAAC;gBACf;oBACE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;oBACvD,OAAO,KAAK,CAAC;aAChB;SACF;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,yBAAyB,KAAK,EAAE,CAAC,CAAC;YAC3D,OAAO,KAAK,CAAC;SACd;IACH,CAAC,CAAC;CACH;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC"}
@@ -0,0 +1,21 @@
1
+ import * as Contacts from 'react-native-contacts';
2
+ export interface ContactData {
3
+ firstName: string;
4
+ lastName?: string;
5
+ company?: string;
6
+ mobilePhone?: string;
7
+ fixedPhone?: string;
8
+ email?: string;
9
+ address?: {
10
+ street?: string;
11
+ postCode?: string;
12
+ city?: string;
13
+ country?: string;
14
+ };
15
+ notes?: string;
16
+ }
17
+ export declare enum PermissionResult {
18
+ DENIED = "denied",
19
+ GRANTED = "granted"
20
+ }
21
+ export declare const parseContactData: (contact: ContactData) => Partial<Contacts.Contact>;