@axelor/aos-mobile-ui 7.0.2 → 7.0.4

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 (82) hide show
  1. package/lib/components/atoms/Icon/Icon.js +4 -6
  2. package/lib/components/atoms/Icon/Icon.js.map +1 -1
  3. package/lib/components/atoms/Input/Input.d.ts +5 -2
  4. package/lib/components/atoms/Input/Input.js +5 -4
  5. package/lib/components/atoms/Input/Input.js.map +1 -1
  6. package/lib/components/atoms/KeyboardAvoidingScrollView/KeyboardAvoidingScrollView.d.ts +9 -4
  7. package/lib/components/atoms/KeyboardAvoidingScrollView/KeyboardAvoidingScrollView.js +1 -1
  8. package/lib/components/atoms/KeyboardAvoidingScrollView/KeyboardAvoidingScrollView.js.map +1 -1
  9. package/lib/components/molecules/Checkbox/Checkbox.d.ts +2 -2
  10. package/lib/components/molecules/Checkbox/Checkbox.js +19 -6
  11. package/lib/components/molecules/Checkbox/Checkbox.js.map +1 -1
  12. package/lib/components/molecules/DropdownCard/DropdownCard.d.ts +3 -2
  13. package/lib/components/molecules/DropdownCard/DropdownCard.js +24 -24
  14. package/lib/components/molecules/DropdownCard/DropdownCard.js.map +1 -1
  15. package/lib/components/molecules/FormHtmlInput/FormHtmlInput.js +5 -2
  16. package/lib/components/molecules/FormHtmlInput/FormHtmlInput.js.map +1 -1
  17. package/lib/components/molecules/FormIncrementInput/FormIncrementInput.d.ts +12 -3
  18. package/lib/components/molecules/FormIncrementInput/FormIncrementInput.js +18 -11
  19. package/lib/components/molecules/FormIncrementInput/FormIncrementInput.js.map +1 -1
  20. package/lib/components/molecules/FormInput/FormInput.d.ts +6 -1
  21. package/lib/components/molecules/FormInput/FormInput.js +18 -3
  22. package/lib/components/molecules/FormInput/FormInput.js.map +1 -1
  23. package/lib/components/molecules/IconButton/IconButton.d.ts +1 -1
  24. package/lib/components/molecules/IconInput/IconInput.d.ts +4 -2
  25. package/lib/components/molecules/IconInput/IconInput.js +2 -2
  26. package/lib/components/molecules/IconInput/IconInput.js.map +1 -1
  27. package/lib/components/molecules/Increment/Increment.d.ts +9 -1
  28. package/lib/components/molecules/Increment/Increment.js +64 -49
  29. package/lib/components/molecules/Increment/Increment.js.map +1 -1
  30. package/lib/components/molecules/Increment/IncrementButton.d.ts +10 -0
  31. package/lib/components/molecules/Increment/IncrementButton.js +56 -0
  32. package/lib/components/molecules/Increment/IncrementButton.js.map +1 -0
  33. package/lib/components/molecules/InfoBubble/InfoBubble.d.ts +3 -1
  34. package/lib/components/molecules/InfoBubble/InfoBubble.js +9 -9
  35. package/lib/components/molecules/InfoBubble/InfoBubble.js.map +1 -1
  36. package/lib/components/molecules/Label/Label.d.ts +14 -0
  37. package/lib/components/molecules/Label/Label.js +100 -0
  38. package/lib/components/molecules/Label/Label.js.map +1 -0
  39. package/lib/components/molecules/NotesCard/NotesCard.js +4 -4
  40. package/lib/components/molecules/NotesCard/NotesCard.js.map +1 -1
  41. package/lib/components/molecules/NumberBubble/NumberBubble.d.ts +10 -0
  42. package/lib/components/molecules/NumberBubble/NumberBubble.js +51 -0
  43. package/lib/components/molecules/NumberBubble/NumberBubble.js.map +1 -0
  44. package/lib/components/molecules/WarningCard/WarningCard.js +5 -29
  45. package/lib/components/molecules/WarningCard/WarningCard.js.map +1 -1
  46. package/lib/components/molecules/index.d.ts +2 -0
  47. package/lib/components/molecules/index.js +2 -0
  48. package/lib/components/molecules/index.js.map +1 -1
  49. package/lib/components/organisms/AutoCompleteSearch/AutoCompleteSearch.js +22 -4
  50. package/lib/components/organisms/AutoCompleteSearch/AutoCompleteSearch.js.map +1 -1
  51. package/lib/components/organisms/AutoCompleteSearch/SearchDetailsPopUp.js +6 -11
  52. package/lib/components/organisms/AutoCompleteSearch/SearchDetailsPopUp.js.map +1 -1
  53. package/lib/components/organisms/DropdownCardSwitch/DropdownCardSwitch.js +1 -1
  54. package/lib/components/organisms/Picker/Picker.js +9 -5
  55. package/lib/components/organisms/Picker/Picker.js.map +1 -1
  56. package/lib/components/organisms/ScrollList/ScrollList.d.ts +2 -1
  57. package/lib/components/organisms/ScrollList/ScrollList.js +2 -2
  58. package/lib/components/organisms/ScrollList/ScrollList.js.map +1 -1
  59. package/lib/components/organisms/SearchBar/SearchBar.d.ts +4 -1
  60. package/lib/components/organisms/SearchBar/SearchBar.js +2 -2
  61. package/lib/components/organisms/SearchBar/SearchBar.js.map +1 -1
  62. package/lib/components/templates/ObjectCard/ObjectCard.d.ts +8 -2
  63. package/lib/components/templates/ObjectCard/ObjectCard.js +20 -2
  64. package/lib/components/templates/ObjectCard/ObjectCard.js.map +1 -1
  65. package/lib/components/templates/TabsScreen/IndicatorBadge.d.ts +4 -0
  66. package/lib/components/templates/TabsScreen/IndicatorBadge.js +47 -0
  67. package/lib/components/templates/TabsScreen/IndicatorBadge.js.map +1 -0
  68. package/lib/components/templates/TabsScreen/Tab.d.ts +3 -0
  69. package/lib/components/templates/TabsScreen/Tab.js +50 -0
  70. package/lib/components/templates/TabsScreen/Tab.js.map +1 -0
  71. package/lib/components/templates/TabsScreen/TabsScreen.d.ts +3 -0
  72. package/lib/components/templates/TabsScreen/TabsScreen.js +169 -0
  73. package/lib/components/templates/TabsScreen/TabsScreen.js.map +1 -0
  74. package/lib/components/templates/TabsScreen/tabs.helper.d.ts +32 -0
  75. package/lib/components/templates/TabsScreen/tabs.helper.js +27 -0
  76. package/lib/components/templates/TabsScreen/tabs.helper.js.map +1 -0
  77. package/lib/components/templates/index.d.ts +1 -0
  78. package/lib/components/templates/index.js +1 -0
  79. package/lib/components/templates/index.js.map +1 -1
  80. package/lib/utils/formatters.js +1 -1
  81. package/lib/utils/formatters.js.map +1 -1
  82. package/package.json +1 -1
@@ -0,0 +1,3 @@
1
+ import { TabProps } from './tabs.helper';
2
+ declare const Tab: ({ title, onPress, isActive, disabled, count, showBadge, style, }: TabProps) => JSX.Element;
3
+ export default Tab;
@@ -0,0 +1,50 @@
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, TouchableOpacity } from 'react-native';
20
+ import { useThemeColor } from '../../../theme';
21
+ import { Text } from '../../atoms';
22
+ import IndicatorBadge from './IndicatorBadge';
23
+ const Tab = ({ title, onPress, isActive = false, disabled = false, count, showBadge, style, }) => {
24
+ const Colors = useThemeColor();
25
+ return (<TouchableOpacity activeOpacity={0.95} onPress={onPress} disabled={disabled || isActive} style={[
26
+ tabStyles.container,
27
+ {
28
+ borderColor: isActive
29
+ ? Colors.primaryColor.background
30
+ : Colors.backgroundColor,
31
+ backgroundColor: Colors.backgroundColor,
32
+ },
33
+ style,
34
+ ]}>
35
+ <Text numberOfLines={1} fontSize={16}>
36
+ {title}
37
+ </Text>
38
+ {showBadge && <IndicatorBadge count={count}/>}
39
+ </TouchableOpacity>);
40
+ };
41
+ const tabStyles = StyleSheet.create({
42
+ container: {
43
+ flexDirection: 'row',
44
+ justifyContent: 'center',
45
+ alignItems: 'center',
46
+ alignContent: 'center',
47
+ },
48
+ });
49
+ export default Tab;
50
+ //# sourceMappingURL=Tab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../../src/components/templates/TabsScreen/Tab.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAE,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAC;AACjC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAG9C,MAAM,GAAG,GAAG,CAAC,EACX,KAAK,EACL,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,KAAK,EACL,SAAS,EACT,KAAK,GACI,EAAE,EAAE;IACb,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAE/B,OAAO,CACL,CAAC,gBAAgB,CACf,aAAa,CAAC,CAAC,IAAI,CAAC,CACpB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,QAAQ,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAC/B,KAAK,CAAC,CAAC;YACL,SAAS,CAAC,SAAS;YACnB;gBACE,WAAW,EAAE,QAAQ;oBACnB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU;oBAChC,CAAC,CAAC,MAAM,CAAC,eAAe;gBAC1B,eAAe,EAAE,MAAM,CAAC,eAAe;aACxC;YACD,KAAK;SACN,CAAC,CACF;MAAA,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CACnC;QAAA,CAAC,KAAK,CACR;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,SAAS,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAG,CAChD;IAAA,EAAE,gBAAgB,CAAC,CACpB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC;IAClC,SAAS,EAAE;QACT,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,QAAQ;KACvB;CACF,CAAC,CAAC;AAEH,eAAe,GAAG,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { TabsScreenProps } from './tabs.helper';
2
+ declare const TabsScreen: ({ style, viewStyle, position, tabHeight, items, }: TabsScreenProps) => JSX.Element;
3
+ export default TabsScreen;
@@ -0,0 +1,169 @@
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, useMemo, useState } from 'react';
19
+ import { Dimensions, Platform, ScrollView, StyleSheet, View } from 'react-native';
20
+ import SystemNavigationBar from 'react-native-system-navigation-bar';
21
+ import { useThemeColor } from '../../../theme';
22
+ import { TabsPosition, capitalizeFirstLetter, } from './tabs.helper';
23
+ import Tab from './Tab';
24
+ import { useConfig } from '../../../config/ConfigContext';
25
+ import { Icon } from '../../atoms';
26
+ const MIN_TAB_WIDTH = 100;
27
+ const immersiveMode = async () => {
28
+ await SystemNavigationBar.navigationHide();
29
+ };
30
+ const TabsScreen = ({ style, viewStyle, position = Platform.OS === 'ios' ? TabsPosition.Bottom : TabsPosition.Top, tabHeight = 60, items, }) => {
31
+ const Colors = useThemeColor();
32
+ const { showActivityIndicator } = useConfig();
33
+ const [showLeftIcon, setShowLeftIcon] = useState(false);
34
+ const [showRightIcon, setShowRightIcon] = useState(false);
35
+ const [panels, setPanels] = useState(items?.filter(_tab => !_tab.hidden));
36
+ useEffect(() => {
37
+ immersiveMode();
38
+ }, []);
39
+ useEffect(() => {
40
+ setPanels(current => {
41
+ const activeTabKey = current.find(_item => _item.isActive)?.key;
42
+ return items
43
+ ?.filter(_tab => !_tab.hidden)
44
+ .map(_item => _item.key === activeTabKey
45
+ ? { ..._item, isActive: true }
46
+ : { ..._item, isActive: false });
47
+ });
48
+ }, [items]);
49
+ const swicthTab = useCallback((tabKey) => {
50
+ setPanels(_current => {
51
+ return _current.map(item => item.key === tabKey
52
+ ? { ...item, isActive: true }
53
+ : { ...item, isActive: false });
54
+ });
55
+ }, []);
56
+ const getTabStyle = useCallback(nbTabs => {
57
+ const tabWidth = Dimensions.get('window').width / nbTabs;
58
+ return {
59
+ [`border${capitalizeFirstLetter(position === TabsPosition.Top
60
+ ? TabsPosition.Bottom
61
+ : TabsPosition.Top)}Width`]: 3,
62
+ height: tabHeight,
63
+ width: tabWidth < MIN_TAB_WIDTH ? MIN_TAB_WIDTH : tabWidth,
64
+ minWidth: 100,
65
+ };
66
+ }, [position, tabHeight]);
67
+ const tabsScroll = useMemo(() => {
68
+ const getIconStyle = side => [
69
+ styles.icon,
70
+ { top: tabHeight / 3, [side]: 15 },
71
+ ];
72
+ const tabsLength = panels.length;
73
+ return (<View style={[
74
+ { height: tabHeight, backgroundColor: Colors.backgroundColor },
75
+ styles.scroll,
76
+ ]}>
77
+ {showLeftIcon && (<Icon name="angle-left" style={getIconStyle('left')}/>)}
78
+ <ScrollView horizontal={true} onContentSizeChange={width => {
79
+ if (parseInt(width.toString(), 10) < Dimensions.get('window').width) {
80
+ setShowRightIcon(false);
81
+ }
82
+ else {
83
+ setShowRightIcon(true);
84
+ }
85
+ }} onScroll={({ nativeEvent }) => {
86
+ const { contentOffset, layoutMeasurement, contentSize } = nativeEvent;
87
+ if (contentSize.width <= Dimensions.get('window').width) {
88
+ setShowRightIcon(false);
89
+ setShowLeftIcon(false);
90
+ }
91
+ else {
92
+ if (contentOffset.x >
93
+ contentSize.width * 0.9 - layoutMeasurement.width) {
94
+ setShowRightIcon(false);
95
+ }
96
+ else {
97
+ setShowRightIcon(true);
98
+ }
99
+ if (contentOffset.x < contentSize.width * 0.1) {
100
+ setShowLeftIcon(false);
101
+ }
102
+ else {
103
+ setShowLeftIcon(true);
104
+ }
105
+ }
106
+ }}>
107
+ {panels?.map(_item => (<Tab key={_item.key} title={_item.title} isActive={_item.isActive} disabled={_item.disabled} count={_item.count} showBadge={_item.showBadge} onPress={() => swicthTab(_item.key)} style={getTabStyle(tabsLength)}/>))}
108
+ </ScrollView>
109
+ {showRightIcon && (<Icon name="angle-right" style={getIconStyle('right')}/>)}
110
+ </View>);
111
+ }, [
112
+ Colors,
113
+ getTabStyle,
114
+ panels,
115
+ showLeftIcon,
116
+ showRightIcon,
117
+ swicthTab,
118
+ tabHeight,
119
+ ]);
120
+ const activeView = useMemo(() => {
121
+ if (!Array.isArray(panels) || panels.length === 0) {
122
+ return;
123
+ }
124
+ const activeTab = panels.filter(item => item.isActive)?.[0];
125
+ if (activeTab == null) {
126
+ swicthTab(panels[0].key);
127
+ return;
128
+ }
129
+ return activeTab.view;
130
+ }, [panels, swicthTab]);
131
+ if (!Array.isArray(panels) || panels.length === 0) {
132
+ return <View />;
133
+ }
134
+ return (<View pointerEvents={showActivityIndicator === true ? 'none' : 'auto'} style={[
135
+ styles.container,
136
+ {
137
+ backgroundColor: Colors.screenBackgroundColor,
138
+ },
139
+ style,
140
+ ]}>
141
+ {position === TabsPosition.Top ? tabsScroll : null}
142
+ <View style={[styles.view, viewStyle]}>{activeView}</View>
143
+ {position === TabsPosition.Bottom ? tabsScroll : null}
144
+ </View>);
145
+ };
146
+ const styles = StyleSheet.create({
147
+ container: {
148
+ height: '98%',
149
+ width: Dimensions.get('window').width,
150
+ },
151
+ scroll: {
152
+ flexDirection: 'row',
153
+ },
154
+ icon: {
155
+ position: 'absolute',
156
+ zIndex: 15,
157
+ },
158
+ leftIcon: {
159
+ left: 20,
160
+ },
161
+ rightIcon: {
162
+ right: 10,
163
+ },
164
+ view: {
165
+ height: '95%',
166
+ },
167
+ });
168
+ export default TabsScreen;
169
+ //# sourceMappingURL=TabsScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsScreen.js","sourceRoot":"","sources":["../../../../src/components/templates/TabsScreen/TabsScreen.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export interface Tab {
2
+ key: number;
3
+ title: string;
4
+ view?: JSX.Element;
5
+ hidden?: boolean;
6
+ isActive?: boolean;
7
+ disabled?: boolean;
8
+ count?: number;
9
+ showBadge?: boolean;
10
+ }
11
+ export interface TabProps {
12
+ style?: any;
13
+ title: string;
14
+ onPress: () => void;
15
+ isActive?: boolean;
16
+ disabled?: boolean;
17
+ count?: number;
18
+ showBadge?: boolean;
19
+ }
20
+ export interface TabsScreenProps {
21
+ style?: any;
22
+ viewStyle?: any;
23
+ position?: TabsPosition;
24
+ tabHeight?: number;
25
+ items?: Tab[];
26
+ }
27
+ export declare enum TabsPosition {
28
+ Bottom = "bottom",
29
+ Top = "top"
30
+ }
31
+ export declare const BADGE_SIZE = 27;
32
+ export declare const capitalizeFirstLetter: (string: string) => string;
@@ -0,0 +1,27 @@
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 var TabsPosition;
19
+ (function (TabsPosition) {
20
+ TabsPosition["Bottom"] = "bottom";
21
+ TabsPosition["Top"] = "top";
22
+ })(TabsPosition || (TabsPosition = {}));
23
+ export const BADGE_SIZE = 27;
24
+ export const capitalizeFirstLetter = (string) => {
25
+ return string.charAt(0).toUpperCase() + string.slice(1);
26
+ };
27
+ //# sourceMappingURL=tabs.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.helper.js","sourceRoot":"","sources":["../../../../src/components/templates/TabsScreen/tabs.helper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA+BH,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,2BAAW,CAAA;AACb,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAE7B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAU,EAAE;IAC9D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC"}
@@ -1 +1,2 @@
1
1
  export { default as ObjectCard } from "./ObjectCard/ObjectCard";
2
+ export { default as TabsScreen } from "./TabsScreen/TabsScreen";
@@ -16,4 +16,5 @@
16
16
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
18
  export { default as ObjectCard } from './ObjectCard/ObjectCard';
19
+ export { default as TabsScreen } from './TabsScreen/TabsScreen';
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/templates/index.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/templates/index.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,MAAM,yBAAyB,CAAC"}
@@ -43,7 +43,7 @@ export function formatNumber(number, decimalSpacer = '.', thousandSpacer = ' ')
43
43
  : integerPart[i] + result;
44
44
  counter++;
45
45
  }
46
- return `${result}${decimalSpacer}${decimalPart ? decimalPart : '00'}`;
46
+ return decimalPart ? `${result}${decimalSpacer}${decimalPart}` : result;
47
47
  }
48
48
  export function unformatNumber(number, decimalSpacer = '.', thousandSpacer = ' ') {
49
49
  if (checkNullString(number)) {
@@ -1 +1 @@
1
- {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/utils/formatters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,eAAe,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AAEtD,MAAM,UAAU,UAAU,CAAC,SAAiB,EAAE,MAAc;IAC1D,4FAA4F;IAC5F,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IAEjC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEhC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACjE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAE/D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,MAAc,EACd,gBAAwB,GAAG,EAC3B,iBAAyB,GAAG;IAE5B,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE;QAC3B,OAAO,IAAI,aAAa,IAAI,CAAC;KAC9B;IAED,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEvC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QAChD,MAAM;YACJ,OAAO,KAAK,CAAC,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC;gBAChC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,GAAG,MAAM;gBAC1C,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QAC9B,OAAO,EAAE,CAAC;KACX;IAED,OAAO,GAAG,MAAM,GAAG,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,gBAAwB,GAAG,EAC3B,iBAAyB,GAAG;IAE5B,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE;QAC3B,OAAO,IAAI,aAAa,IAAI,CAAC;KAC9B;IAED,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAC9B,MAAM,iBAAiB,GAAG,GAAG,CAAC;IAE9B,OAAO,MAAM;SACV,UAAU,CAAC,cAAc,EAAE,kBAAkB,CAAC;SAC9C,OAAO,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/utils/formatters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,eAAe,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AAEtD,MAAM,UAAU,UAAU,CAAC,SAAiB,EAAE,MAAc;IAC1D,4FAA4F;IAC5F,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IAEjC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEhC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACjE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAE/D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,MAAc,EACd,gBAAwB,GAAG,EAC3B,iBAAyB,GAAG;IAE5B,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE;QAC3B,OAAO,IAAI,aAAa,IAAI,CAAC;KAC9B;IAED,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEvC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QAChD,MAAM;YACJ,OAAO,KAAK,CAAC,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC;gBAChC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,GAAG,MAAM;gBAC1C,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QAC9B,OAAO,EAAE,CAAC;KACX;IAED,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,aAAa,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,gBAAwB,GAAG,EAC3B,iBAAyB,GAAG;IAE5B,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE;QAC3B,OAAO,IAAI,aAAa,IAAI,CAAC;KAC9B;IAED,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAC9B,MAAM,iBAAiB,GAAG,GAAG,CAAC;IAE9B,OAAO,MAAM;SACV,UAAU,CAAC,cAAc,EAAE,kBAAkB,CAAC;SAC9C,OAAO,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;AAC/C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axelor/aos-mobile-ui",
3
- "version": "7.0.2",
3
+ "version": "7.0.4",
4
4
  "author": "Axelor",
5
5
  "license": "AGPL-3.0-only",
6
6
  "publishConfig": {