@axelor/aos-mobile-ui 7.0.3 → 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 (60) hide show
  1. package/lib/components/atoms/Input/Input.d.ts +3 -2
  2. package/lib/components/atoms/Input/Input.js +5 -4
  3. package/lib/components/atoms/Input/Input.js.map +1 -1
  4. package/lib/components/atoms/KeyboardAvoidingScrollView/KeyboardAvoidingScrollView.d.ts +9 -4
  5. package/lib/components/atoms/KeyboardAvoidingScrollView/KeyboardAvoidingScrollView.js +1 -1
  6. package/lib/components/atoms/KeyboardAvoidingScrollView/KeyboardAvoidingScrollView.js.map +1 -1
  7. package/lib/components/molecules/Checkbox/Checkbox.d.ts +2 -2
  8. package/lib/components/molecules/Checkbox/Checkbox.js +19 -6
  9. package/lib/components/molecules/Checkbox/Checkbox.js.map +1 -1
  10. package/lib/components/molecules/DropdownCard/DropdownCard.d.ts +3 -2
  11. package/lib/components/molecules/DropdownCard/DropdownCard.js +24 -24
  12. package/lib/components/molecules/DropdownCard/DropdownCard.js.map +1 -1
  13. package/lib/components/molecules/FormIncrementInput/FormIncrementInput.d.ts +5 -1
  14. package/lib/components/molecules/FormIncrementInput/FormIncrementInput.js +18 -11
  15. package/lib/components/molecules/FormIncrementInput/FormIncrementInput.js.map +1 -1
  16. package/lib/components/molecules/FormInput/FormInput.d.ts +3 -1
  17. package/lib/components/molecules/FormInput/FormInput.js +13 -2
  18. package/lib/components/molecules/FormInput/FormInput.js.map +1 -1
  19. package/lib/components/molecules/IconButton/IconButton.d.ts +1 -1
  20. package/lib/components/molecules/Increment/Increment.d.ts +4 -1
  21. package/lib/components/molecules/Increment/Increment.js +15 -5
  22. package/lib/components/molecules/Increment/Increment.js.map +1 -1
  23. package/lib/components/molecules/InfoBubble/InfoBubble.d.ts +3 -1
  24. package/lib/components/molecules/InfoBubble/InfoBubble.js +9 -9
  25. package/lib/components/molecules/InfoBubble/InfoBubble.js.map +1 -1
  26. package/lib/components/molecules/Label/Label.d.ts +14 -0
  27. package/lib/components/molecules/Label/Label.js +100 -0
  28. package/lib/components/molecules/Label/Label.js.map +1 -0
  29. package/lib/components/molecules/NumberBubble/NumberBubble.d.ts +10 -0
  30. package/lib/components/molecules/NumberBubble/NumberBubble.js +51 -0
  31. package/lib/components/molecules/NumberBubble/NumberBubble.js.map +1 -0
  32. package/lib/components/molecules/WarningCard/WarningCard.js +5 -29
  33. package/lib/components/molecules/WarningCard/WarningCard.js.map +1 -1
  34. package/lib/components/molecules/index.d.ts +2 -0
  35. package/lib/components/molecules/index.js +2 -0
  36. package/lib/components/molecules/index.js.map +1 -1
  37. package/lib/components/organisms/DropdownCardSwitch/DropdownCardSwitch.js +1 -1
  38. package/lib/components/organisms/Picker/Picker.js +9 -5
  39. package/lib/components/organisms/Picker/Picker.js.map +1 -1
  40. package/lib/components/organisms/ScrollList/ScrollList.d.ts +2 -1
  41. package/lib/components/organisms/ScrollList/ScrollList.js +2 -2
  42. package/lib/components/organisms/ScrollList/ScrollList.js.map +1 -1
  43. package/lib/components/templates/TabsScreen/IndicatorBadge.d.ts +4 -0
  44. package/lib/components/templates/TabsScreen/IndicatorBadge.js +47 -0
  45. package/lib/components/templates/TabsScreen/IndicatorBadge.js.map +1 -0
  46. package/lib/components/templates/TabsScreen/Tab.d.ts +3 -0
  47. package/lib/components/templates/TabsScreen/Tab.js +50 -0
  48. package/lib/components/templates/TabsScreen/Tab.js.map +1 -0
  49. package/lib/components/templates/TabsScreen/TabsScreen.d.ts +3 -0
  50. package/lib/components/templates/TabsScreen/TabsScreen.js +169 -0
  51. package/lib/components/templates/TabsScreen/TabsScreen.js.map +1 -0
  52. package/lib/components/templates/TabsScreen/tabs.helper.d.ts +32 -0
  53. package/lib/components/templates/TabsScreen/tabs.helper.js +27 -0
  54. package/lib/components/templates/TabsScreen/tabs.helper.js.map +1 -0
  55. package/lib/components/templates/index.d.ts +1 -0
  56. package/lib/components/templates/index.js +1 -0
  57. package/lib/components/templates/index.js.map +1 -1
  58. package/lib/utils/formatters.js +1 -1
  59. package/lib/utils/formatters.js.map +1 -1
  60. package/package.json +1 -1
@@ -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.3",
3
+ "version": "7.0.4",
4
4
  "author": "Axelor",
5
5
  "license": "AGPL-3.0-only",
6
6
  "publishConfig": {