@axelor/aos-mobile-ui 6.4.0 → 6.4.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/README.md +2 -1
- package/lib/components/atoms/HtmlInput/HtmlInput.d.ts +8 -1
- package/lib/components/atoms/HtmlInput/HtmlInput.js +30 -20
- package/lib/components/atoms/HtmlInput/HtmlInput.js.map +1 -1
- package/lib/components/atoms/index.d.ts +0 -1
- package/lib/components/atoms/index.js +0 -1
- package/lib/components/atoms/index.js.map +1 -1
- package/lib/components/molecules/Badge/Badge.d.ts +2 -2
- package/lib/components/molecules/Badge/Badge.js +4 -2
- package/lib/components/molecules/Badge/Badge.js.map +1 -1
- package/lib/components/molecules/Checkbox/Checkbox.d.ts +11 -0
- package/lib/components/molecules/Checkbox/Checkbox.js +52 -0
- package/lib/components/molecules/Checkbox/Checkbox.js.map +1 -0
- package/lib/components/molecules/Chip/Chip.d.ts +3 -2
- package/lib/components/molecules/Chip/Chip.js +2 -2
- package/lib/components/molecules/Chip/Chip.js.map +1 -1
- package/lib/components/molecules/CircleButton/CircleButton.d.ts +8 -0
- package/lib/components/molecules/CircleButton/CircleButton.js +47 -0
- package/lib/components/molecules/CircleButton/CircleButton.js.map +1 -0
- package/lib/components/molecules/FormHtmlInput/FormHtmlInput.d.ts +11 -0
- package/lib/components/molecules/FormHtmlInput/FormHtmlInput.js +71 -0
- package/lib/components/molecules/FormHtmlInput/FormHtmlInput.js.map +1 -0
- package/lib/components/molecules/FormIncrementInput/FormIncrementInput.d.ts +11 -0
- package/lib/components/molecules/FormIncrementInput/FormIncrementInput.js +72 -0
- package/lib/components/molecules/FormIncrementInput/FormIncrementInput.js.map +1 -0
- package/lib/components/molecules/FormInput/FormInput.d.ts +11 -0
- package/lib/components/molecules/FormInput/FormInput.js +72 -0
- package/lib/components/molecules/FormInput/FormInput.js.map +1 -0
- package/lib/components/molecules/IconButton/IconButton.d.ts +2 -1
- package/lib/components/molecules/IconButton/IconButton.js +2 -2
- package/lib/components/molecules/IconButton/IconButton.js.map +1 -1
- package/lib/components/molecules/IconInput/IconInput.d.ts +2 -1
- package/lib/components/molecules/IconInput/IconInput.js +18 -5
- package/lib/components/molecules/IconInput/IconInput.js.map +1 -1
- package/lib/components/molecules/Increment/Increment.d.ts +5 -1
- package/lib/components/molecules/Increment/Increment.js +30 -15
- package/lib/components/molecules/Increment/Increment.js.map +1 -1
- package/lib/components/molecules/MessageBox/MessageBox.js +20 -11
- package/lib/components/molecules/MessageBox/MessageBox.js.map +1 -1
- package/lib/components/molecules/NotesCard/NotesCard.d.ts +2 -1
- package/lib/components/molecules/NotesCard/NotesCard.js +13 -15
- package/lib/components/molecules/NotesCard/NotesCard.js.map +1 -1
- package/lib/components/molecules/PanelTabs/PanelTabs.d.ts +13 -0
- package/lib/components/molecules/PanelTabs/PanelTabs.js +93 -0
- package/lib/components/molecules/PanelTabs/PanelTabs.js.map +1 -0
- package/lib/components/molecules/ViewAllContainer/ViewAllContainer.d.ts +4 -4
- package/lib/components/molecules/index.d.ts +4 -0
- package/lib/components/molecules/index.js +4 -0
- package/lib/components/molecules/index.js.map +1 -1
- package/lib/components/organisms/AutoCompleteSearch/AutoCompleteSearch.js +59 -60
- package/lib/components/organisms/AutoCompleteSearch/AutoCompleteSearch.js.map +1 -1
- package/lib/components/organisms/ChipSelect/ChipSelect.d.ts +14 -3
- package/lib/components/organisms/ChipSelect/ChipSelect.js +39 -6
- package/lib/components/organisms/ChipSelect/ChipSelect.js.map +1 -1
- package/lib/components/organisms/FloatingButton/FloatingButton.d.ts +16 -0
- package/lib/components/organisms/FloatingButton/FloatingButton.js +106 -0
- package/lib/components/organisms/FloatingButton/FloatingButton.js.map +1 -0
- package/lib/components/organisms/MultiSelectValue/MultiSelectValue.d.ts +9 -0
- package/lib/components/organisms/MultiSelectValue/MultiSelectValue.js +49 -0
- package/lib/components/organisms/MultiSelectValue/MultiSelectValue.js.map +1 -0
- package/lib/components/organisms/MultiValuePicker/MultiValuePicker.d.ts +3 -3
- package/lib/components/organisms/MultiValuePicker/MultiValuePicker.js +16 -11
- package/lib/components/organisms/MultiValuePicker/MultiValuePicker.js.map +1 -1
- package/lib/components/organisms/Picker/Picker.d.ts +3 -1
- package/lib/components/organisms/Picker/Picker.js +29 -7
- package/lib/components/organisms/Picker/Picker.js.map +1 -1
- package/lib/components/organisms/SearchBar/SearchBar.d.ts +2 -1
- package/lib/components/organisms/SearchBar/SearchBar.js +2 -2
- package/lib/components/organisms/SearchBar/SearchBar.js.map +1 -1
- package/lib/components/organisms/index.d.ts +2 -0
- package/lib/components/organisms/index.js +2 -0
- package/lib/components/organisms/index.js.map +1 -1
- package/lib/index.d.ts +1 -2
- package/lib/index.js +1 -2
- package/lib/index.js.map +1 -1
- package/lib/utils/commons-styles.d.ts +13 -1
- package/lib/utils/commons-styles.js +13 -1
- package/lib/utils/commons-styles.js.map +1 -1
- package/lib/utils/commons-utlis.d.ts +1 -0
- package/lib/utils/{headerStyle.js → commons-utlis.js} +7 -14
- package/lib/utils/commons-utlis.js.map +1 -0
- package/lib/utils/formatters.d.ts +1 -0
- package/lib/utils/formatters.js +10 -0
- package/lib/utils/formatters.js.map +1 -1
- package/lib/utils/strings.js +1 -1
- package/lib/utils/strings.js.map +1 -1
- package/package.json +3 -4
- package/lib/components/atoms/RenderHtml/RenderHtml.d.ts +0 -6
- package/lib/components/atoms/RenderHtml/RenderHtml.js +0 -50
- package/lib/components/atoms/RenderHtml/RenderHtml.js.map +0 -1
- package/lib/utils/headerStyle.d.ts +0 -12
- package/lib/utils/headerStyle.js.map +0 -1
|
@@ -17,18 +17,31 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import React, { useState, useEffect, useCallback, useRef } from 'react';
|
|
19
19
|
import { View } from 'react-native';
|
|
20
|
+
import { useClickOutside, OUTSIDE_INDICATOR, } from '../../../hooks/use-click-outside';
|
|
20
21
|
import { SelectionContainer } from '../../molecules';
|
|
21
22
|
import { SearchBar } from '../../organisms';
|
|
22
|
-
const
|
|
23
|
+
const isValidString = (string) => {
|
|
24
|
+
return typeof string === 'string' && string !== '';
|
|
25
|
+
};
|
|
26
|
+
const TIME_WITHOUT_INPUT = 2000;
|
|
23
27
|
const TIME_BETWEEN_CALL = 1000;
|
|
24
|
-
const AutoCompleteSearch = ({ objectList, value = null, onChangeValue, fetchData = () => { }, displayValue, placeholder, isFocus = false, changeScreenAfter = false, navigate = false, oneFilter = false, onSelection, onScanPress, scanIconColor = null, selectLastItem = true, style, }) => {
|
|
28
|
+
const AutoCompleteSearch = ({ objectList, value = null, onChangeValue, fetchData = () => { }, displayValue, placeholder, isFocus = false, changeScreenAfter = false, navigate = false, oneFilter = false, onSelection = () => { }, onScanPress, scanIconColor = null, selectLastItem = true, style, }) => {
|
|
25
29
|
const [displayList, setDisplayList] = useState(false);
|
|
26
|
-
const [searchText, setSearchText] = useState(null);
|
|
27
30
|
const [previousState, setPreviousState] = useState(null);
|
|
28
|
-
const [
|
|
29
|
-
const [
|
|
31
|
+
const [selected, setSelected] = useState(value ? true : false);
|
|
32
|
+
const [searchText, setSearchText] = useState(value ? displayValue(value) : null);
|
|
30
33
|
let timeOutRequestCall = useRef();
|
|
31
34
|
let intervalRequestCall = useRef();
|
|
35
|
+
const wrapperRef = useRef(null);
|
|
36
|
+
const clickOutside = useClickOutside({
|
|
37
|
+
wrapperRef,
|
|
38
|
+
visible: displayList,
|
|
39
|
+
});
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
if (clickOutside === OUTSIDE_INDICATOR && displayList) {
|
|
42
|
+
setDisplayList(false);
|
|
43
|
+
}
|
|
44
|
+
}, [clickOutside, displayList]);
|
|
32
45
|
const handleAPICall = useCallback(() => {
|
|
33
46
|
if (!selected) {
|
|
34
47
|
if (searchText == null && searchText === '') {
|
|
@@ -40,24 +53,16 @@ const AutoCompleteSearch = ({ objectList, value = null, onChangeValue, fetchData
|
|
|
40
53
|
}
|
|
41
54
|
}, [fetchData, searchText, selected]);
|
|
42
55
|
useEffect(() => {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
handleAPICall();
|
|
49
|
-
}
|
|
50
|
-
}, [displayValue, handleAPICall, value]);
|
|
51
|
-
const handleSelect = item => {
|
|
56
|
+
handleAPICall();
|
|
57
|
+
}, [handleAPICall]);
|
|
58
|
+
const handleSelect = useCallback(item => {
|
|
52
59
|
setDisplayList(false);
|
|
53
60
|
setSelected(true);
|
|
54
|
-
|
|
55
|
-
setSearchText('');
|
|
56
|
-
}
|
|
61
|
+
setSearchText(changeScreenAfter ? '' : displayValue(item));
|
|
57
62
|
onChangeValue(item);
|
|
58
|
-
};
|
|
63
|
+
}, [changeScreenAfter, displayValue, onChangeValue]);
|
|
59
64
|
useEffect(() => {
|
|
60
|
-
if (
|
|
65
|
+
if (oneFilter && navigate != null) {
|
|
61
66
|
setSearchText('');
|
|
62
67
|
}
|
|
63
68
|
}, [navigate, oneFilter]);
|
|
@@ -68,36 +73,27 @@ const AutoCompleteSearch = ({ objectList, value = null, onChangeValue, fetchData
|
|
|
68
73
|
setSearchText('');
|
|
69
74
|
onChangeValue(null);
|
|
70
75
|
};
|
|
71
|
-
useEffect(() => {
|
|
72
|
-
if ((previousState === '' || previousState == null) &&
|
|
73
|
-
searchText != null &&
|
|
74
|
-
searchText !== '') {
|
|
75
|
-
const id = setInterval(() => setNewInterval(state => state + 1), TIME_BETWEEN_CALL);
|
|
76
|
-
intervalRequestCall.current = id;
|
|
77
|
-
}
|
|
78
|
-
}, [previousState, searchText]);
|
|
79
76
|
const stopInterval = useCallback(() => {
|
|
80
77
|
clearInterval(intervalRequestCall.current);
|
|
81
|
-
setNewInterval(0);
|
|
82
78
|
}, []);
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
}, [handleAPICall, newInterval]);
|
|
79
|
+
const handleInterval = useCallback(() => {
|
|
80
|
+
handleAPICall();
|
|
81
|
+
}, [handleAPICall]);
|
|
88
82
|
const handleTimeOut = useCallback(() => {
|
|
89
83
|
stopInterval();
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
84
|
+
handleAPICall();
|
|
85
|
+
}, [handleAPICall, stopInterval]);
|
|
86
|
+
useEffect(() => {
|
|
87
|
+
if (!isValidString(previousState) && isValidString(searchText)) {
|
|
88
|
+
const id = setInterval(handleInterval, TIME_BETWEEN_CALL);
|
|
89
|
+
intervalRequestCall.current = id;
|
|
90
|
+
return () => {
|
|
91
|
+
stopInterval();
|
|
92
|
+
};
|
|
97
93
|
}
|
|
98
|
-
}, [
|
|
94
|
+
}, [handleInterval, previousState, searchText, stopInterval]);
|
|
99
95
|
useEffect(() => {
|
|
100
|
-
if (searchText
|
|
96
|
+
if (isValidString(searchText)) {
|
|
101
97
|
const id = setTimeout(handleTimeOut, TIME_WITHOUT_INPUT);
|
|
102
98
|
timeOutRequestCall.current = id;
|
|
103
99
|
return () => {
|
|
@@ -105,19 +101,11 @@ const AutoCompleteSearch = ({ objectList, value = null, onChangeValue, fetchData
|
|
|
105
101
|
};
|
|
106
102
|
}
|
|
107
103
|
}, [handleTimeOut, searchText]);
|
|
108
|
-
|
|
109
|
-
if (objectList
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
if (objectList.length === 1 && selectLastItem === true) {
|
|
114
|
-
if (changeScreenAfter || oneFilter) {
|
|
115
|
-
setSearchText('');
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
setSearchText(displayValue(objectList[0]));
|
|
119
|
-
setDisplayList(false);
|
|
120
|
-
}
|
|
104
|
+
const handleSearchValueChange = useCallback(input => {
|
|
105
|
+
if (Array.isArray(objectList) && isValidString(input) && !selected) {
|
|
106
|
+
if (objectList.length === 1 && selectLastItem) {
|
|
107
|
+
setSearchText(changeScreenAfter || oneFilter ? '' : displayValue(objectList[0]));
|
|
108
|
+
setDisplayList(false);
|
|
121
109
|
stopInterval();
|
|
122
110
|
onChangeValue(objectList[0]);
|
|
123
111
|
}
|
|
@@ -125,6 +113,8 @@ const AutoCompleteSearch = ({ objectList, value = null, onChangeValue, fetchData
|
|
|
125
113
|
setDisplayList(true);
|
|
126
114
|
}
|
|
127
115
|
}
|
|
116
|
+
setPreviousState(searchText);
|
|
117
|
+
setSearchText(input);
|
|
128
118
|
}, [
|
|
129
119
|
changeScreenAfter,
|
|
130
120
|
displayValue,
|
|
@@ -136,11 +126,20 @@ const AutoCompleteSearch = ({ objectList, value = null, onChangeValue, fetchData
|
|
|
136
126
|
selected,
|
|
137
127
|
stopInterval,
|
|
138
128
|
]);
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
129
|
+
const handleFocus = useCallback(() => {
|
|
130
|
+
setDisplayList(true);
|
|
131
|
+
onSelection();
|
|
132
|
+
}, [onSelection]);
|
|
133
|
+
const handleSearchPress = useCallback(() => {
|
|
134
|
+
setDisplayList(true);
|
|
135
|
+
}, []);
|
|
136
|
+
useEffect(() => {
|
|
137
|
+
if (isValidString(value)) {
|
|
138
|
+
handleSearchValueChange(value);
|
|
139
|
+
}
|
|
140
|
+
}, [displayValue, handleSearchValueChange, value]);
|
|
141
|
+
return (<View ref={wrapperRef}>
|
|
142
|
+
<SearchBar style={style} valueTxt={searchText} placeholder={placeholder} onClearPress={handleClear} onChangeTxt={handleSearchValueChange} onSelection={handleFocus} onSearchPress={handleSearchPress} onEndFocus={() => selected && setDisplayList(false)} isFocus={isFocus} onScanPress={onScanPress} scanIconColor={scanIconColor}/>
|
|
144
143
|
{displayList && !oneFilter && (<SelectionContainer objectList={objectList} displayValue={displayValue} handleSelect={handleSelect}/>)}
|
|
145
144
|
</View>);
|
|
146
145
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoCompleteSearch.js","sourceRoot":"","sources":["../../../../src/components/organisms/AutoCompleteSearch/AutoCompleteSearch.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAC,MAAM,OAAO,CAAC;AACtE,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAE1C,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAoB/B,MAAM,kBAAkB,GAAG,CAAC,EAC1B,UAAU,EACV,KAAK,GAAG,IAAI,EACZ,aAAa,EACb,SAAS,GAAG,GAAG,EAAE,GAAE,CAAC,EACpB,YAAY,EACZ,WAAW,EACX,OAAO,GAAG,KAAK,EACf,iBAAiB,GAAG,KAAK,EACzB,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,KAAK,EACjB,WAAW,
|
|
1
|
+
{"version":3,"file":"AutoCompleteSearch.js","sourceRoot":"","sources":["../../../../src/components/organisms/AutoCompleteSearch/AutoCompleteSearch.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,17 @@
|
|
|
1
|
+
import { Color } from '../../../theme/themes';
|
|
2
|
+
interface Item {
|
|
3
|
+
isActive?: boolean;
|
|
4
|
+
color: Color;
|
|
5
|
+
title: string;
|
|
6
|
+
key: string | number;
|
|
7
|
+
}
|
|
1
8
|
interface ChipSelectProps {
|
|
2
|
-
|
|
3
|
-
|
|
9
|
+
style?: any;
|
|
10
|
+
selectionItems: Item[];
|
|
11
|
+
mode: 'multi' | 'switch';
|
|
12
|
+
width?: number;
|
|
13
|
+
marginHorizontal?: number;
|
|
14
|
+
onChangeValue?: (value: any) => void;
|
|
4
15
|
}
|
|
5
|
-
declare const ChipSelect: ({
|
|
16
|
+
declare const ChipSelect: ({ style, selectionItems, mode, width, marginHorizontal, onChangeValue, }: ChipSelectProps) => JSX.Element;
|
|
6
17
|
export default ChipSelect;
|
|
@@ -15,13 +15,46 @@
|
|
|
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 from 'react';
|
|
18
|
+
import React, { useState } from 'react';
|
|
19
19
|
import { StyleSheet, View, ScrollView } from 'react-native';
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
import { Chip } from '../../molecules';
|
|
21
|
+
const ChipSelect = ({ style, selectionItems, mode, width, marginHorizontal, onChangeValue = () => { }, }) => {
|
|
22
|
+
const [selectdChipSwitch, setSelectdChipSwitch] = useState({
|
|
23
|
+
key: selectionItems.find(item => item.isActive === true)?.key,
|
|
24
|
+
});
|
|
25
|
+
const [selectedChipMulti, setSelectedChipMulti] = useState(selectionItems.filter(item => item.isActive === true));
|
|
26
|
+
const updateChip = chip => {
|
|
27
|
+
if (mode === 'multi') {
|
|
28
|
+
if (chipIsSelected(chip)) {
|
|
29
|
+
setSelectedChipMulti(selectedChipMulti?.filter(activeChip => activeChip.key !== chip.key));
|
|
30
|
+
onChangeValue(selectedChipMulti?.filter(activeChip => activeChip.key !== chip.key));
|
|
31
|
+
}
|
|
32
|
+
else if (selectedChipMulti.length + 1 === selectionItems.length) {
|
|
33
|
+
setSelectedChipMulti([]);
|
|
34
|
+
onChangeValue([]);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
setSelectedChipMulti([...selectedChipMulti, chip]);
|
|
38
|
+
onChangeValue([...selectedChipMulti, chip]);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (mode === 'switch') {
|
|
42
|
+
setSelectdChipSwitch(chip.key === selectdChipSwitch?.key ? null : chip);
|
|
43
|
+
onChangeValue(chip.key === selectdChipSwitch?.key ? null : [chip]);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const chipIsSelected = chip => {
|
|
47
|
+
return (selectedChipMulti?.find(activeChip => activeChip.key === chip.key) != null);
|
|
48
|
+
};
|
|
49
|
+
if (mode !== 'multi' && mode !== 'switch') {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
return (<View style={[styles.chipContainer, styles.marginLeft, style]}>
|
|
53
|
+
<ScrollView horizontal={true} showsHorizontalScrollIndicator={false}>
|
|
54
|
+
{selectionItems?.map((item, index) => (<Chip key={index} selected={mode === 'switch'
|
|
55
|
+
? item.key === selectdChipSwitch?.key
|
|
56
|
+
: chipIsSelected(item)} title={item.title} selectedColor={item.color} onPress={() => updateChip(item)} marginHorizontal={marginHorizontal} width={width}/>))}
|
|
57
|
+
</ScrollView>
|
|
25
58
|
</View>);
|
|
26
59
|
};
|
|
27
60
|
const styles = StyleSheet.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipSelect.js","sourceRoot":"","sources":["../../../../src/components/organisms/ChipSelect/ChipSelect.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ChipSelect.js","sourceRoot":"","sources":["../../../../src/components/organisms/ChipSelect/ChipSelect.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
interface FloatingButtonProps {
|
|
2
|
+
actions: ActionProps[];
|
|
3
|
+
iconName?: string;
|
|
4
|
+
size?: number;
|
|
5
|
+
style?: any;
|
|
6
|
+
translator: (translationKey: string) => string;
|
|
7
|
+
}
|
|
8
|
+
interface ActionProps {
|
|
9
|
+
key: number;
|
|
10
|
+
title: string;
|
|
11
|
+
iconName: string;
|
|
12
|
+
disabled: boolean;
|
|
13
|
+
onPress: () => void;
|
|
14
|
+
}
|
|
15
|
+
declare const FloatingButton: ({ actions, iconName, size, style, translator, }: FloatingButtonProps) => JSX.Element;
|
|
16
|
+
export default FloatingButton;
|
|
@@ -0,0 +1,106 @@
|
|
|
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, useRef, useState } from 'react';
|
|
19
|
+
import { StyleSheet, View } from 'react-native';
|
|
20
|
+
import { animationUtil } from '../../../tools/AnimationUtil';
|
|
21
|
+
import { Text } from '../../atoms';
|
|
22
|
+
import { OUTSIDE_INDICATOR, useClickOutside, } from '../../../hooks/use-click-outside';
|
|
23
|
+
import { useThemeColor } from '../../../theme/ThemeContext';
|
|
24
|
+
import { CircleButton } from '../../molecules';
|
|
25
|
+
const FLOATING_BUTTON_SIZE = 60;
|
|
26
|
+
const ACTION_BUTTON_SIZE_PERCENTAGE = 0.8;
|
|
27
|
+
const MIN_ACTION_BUTTON_WIDTH = 200;
|
|
28
|
+
const FloatingActionButton = ({ actionKey, title, iconName, size, disabled = false, onPress, translator, }) => {
|
|
29
|
+
const Colors = useThemeColor();
|
|
30
|
+
const styles = useMemo(() => getStyles(Colors), [Colors]);
|
|
31
|
+
const handleActionPress = useCallback(() => onPress(actionKey), [actionKey, onPress]);
|
|
32
|
+
return (<View style={styles.actionButtonContainer}>
|
|
33
|
+
<CircleButton iconName={iconName} size={size} onPress={handleActionPress} disabled={disabled}/>
|
|
34
|
+
<View style={styles.actionTitleContainer}>
|
|
35
|
+
<Text fontSize={16} style={styles.actionTitle}>
|
|
36
|
+
{translator(title)}
|
|
37
|
+
</Text>
|
|
38
|
+
</View>
|
|
39
|
+
</View>);
|
|
40
|
+
};
|
|
41
|
+
const FloatingButton = ({ actions, iconName = 'plus', size = FLOATING_BUTTON_SIZE, style, translator, }) => {
|
|
42
|
+
const Colors = useThemeColor();
|
|
43
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
44
|
+
const wrapperRef = useRef(null);
|
|
45
|
+
const clickOutside = useClickOutside({
|
|
46
|
+
wrapperRef,
|
|
47
|
+
visible: isOpen,
|
|
48
|
+
});
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
if (clickOutside === OUTSIDE_INDICATOR && isOpen) {
|
|
51
|
+
animationUtil.animateNext();
|
|
52
|
+
setIsOpen(false);
|
|
53
|
+
}
|
|
54
|
+
}, [clickOutside, isOpen]);
|
|
55
|
+
const actionSize = useMemo(() => Math.floor(size * ACTION_BUTTON_SIZE_PERCENTAGE), [size]);
|
|
56
|
+
const onActionPress = useCallback(actionPress => {
|
|
57
|
+
actionPress();
|
|
58
|
+
setIsOpen(false);
|
|
59
|
+
}, []);
|
|
60
|
+
const actionComponents = useMemo(() => actions
|
|
61
|
+
?.reverse()
|
|
62
|
+
?.map(action => (<FloatingActionButton key={action.key} actionKey={action.key} title={action.title} iconName={action.iconName} size={actionSize} disabled={action.disabled} onPress={() => onActionPress(action.onPress)} translator={translator}/>)), [actions, actionSize, onActionPress, translator]);
|
|
63
|
+
const styles = useMemo(() => getStyles(Colors), [Colors]);
|
|
64
|
+
const handleFLoatingButtonPress = useCallback(() => {
|
|
65
|
+
animationUtil.animateNext();
|
|
66
|
+
setIsOpen(current => !current);
|
|
67
|
+
}, []);
|
|
68
|
+
if (actions == null || actions?.length === 0) {
|
|
69
|
+
return <View />;
|
|
70
|
+
}
|
|
71
|
+
return (<View ref={wrapperRef} style={[styles.container, style]}>
|
|
72
|
+
{isOpen && (<View style={styles.actionsContainer}>{actionComponents}</View>)}
|
|
73
|
+
<CircleButton iconName={isOpen ? 'times' : iconName} onPress={handleFLoatingButtonPress} size={size}/>
|
|
74
|
+
</View>);
|
|
75
|
+
};
|
|
76
|
+
const getStyles = (Colors) => StyleSheet.create({
|
|
77
|
+
actionButtonContainer: {
|
|
78
|
+
flexDirection: 'row-reverse',
|
|
79
|
+
marginTop: 7,
|
|
80
|
+
},
|
|
81
|
+
actionsContainer: {
|
|
82
|
+
marginVertical: 10,
|
|
83
|
+
paddingHorizontal: 7,
|
|
84
|
+
},
|
|
85
|
+
actionTitleContainer: {
|
|
86
|
+
backgroundColor: Colors.screenBackgroundColor,
|
|
87
|
+
marginHorizontal: 15,
|
|
88
|
+
marginVertical: 10,
|
|
89
|
+
justifyContent: 'center',
|
|
90
|
+
alignItems: 'center',
|
|
91
|
+
minWidth: MIN_ACTION_BUTTON_WIDTH,
|
|
92
|
+
borderRadius: 7,
|
|
93
|
+
elevation: 3,
|
|
94
|
+
},
|
|
95
|
+
actionTitle: {
|
|
96
|
+
textAlign: 'center',
|
|
97
|
+
},
|
|
98
|
+
container: {
|
|
99
|
+
justifyContent: 'flex-end',
|
|
100
|
+
alignItems: 'flex-end',
|
|
101
|
+
marginVertical: 10,
|
|
102
|
+
marginHorizontal: 20,
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
export default FloatingButton;
|
|
106
|
+
//# sourceMappingURL=FloatingButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloatingButton.js","sourceRoot":"","sources":["../../../../src/components/organisms/FloatingButton/FloatingButton.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Color } from '../../../theme/themes';
|
|
2
|
+
interface MultiSelectValueProps {
|
|
3
|
+
color?: Color;
|
|
4
|
+
itemList: string[];
|
|
5
|
+
style?: any;
|
|
6
|
+
title: string;
|
|
7
|
+
}
|
|
8
|
+
declare const MultiSelectValue: ({ color, itemList, style, title, }: MultiSelectValueProps) => JSX.Element;
|
|
9
|
+
export default MultiSelectValue;
|
|
@@ -0,0 +1,49 @@
|
|
|
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, View } from 'react-native';
|
|
20
|
+
import { useThemeColor } from '../../../theme/ThemeContext';
|
|
21
|
+
import { Badge } from '../../molecules';
|
|
22
|
+
import { Text } from '../../atoms';
|
|
23
|
+
const MultiSelectValue = ({ color, itemList, style, title, }) => {
|
|
24
|
+
const Colors = useThemeColor();
|
|
25
|
+
return (<View style={[styles.container, style]}>
|
|
26
|
+
<Text style={styles.title}>{title}</Text>
|
|
27
|
+
{itemList != null && itemList?.length > 0
|
|
28
|
+
? itemList.map((item, index) => (<Badge key={'index' + index} title={item} color={color || Colors.primaryColor} style={styles.badge}/>))
|
|
29
|
+
: null}
|
|
30
|
+
</View>);
|
|
31
|
+
};
|
|
32
|
+
const styles = StyleSheet.create({
|
|
33
|
+
container: {
|
|
34
|
+
flexDirection: 'row',
|
|
35
|
+
flexWrap: 'wrap',
|
|
36
|
+
alignItems: 'center',
|
|
37
|
+
},
|
|
38
|
+
badge: {
|
|
39
|
+
width: null,
|
|
40
|
+
marginVertical: 2,
|
|
41
|
+
paddingHorizontal: 5,
|
|
42
|
+
},
|
|
43
|
+
title: {
|
|
44
|
+
fontSize: 14,
|
|
45
|
+
marginRight: 10,
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
export default MultiSelectValue;
|
|
49
|
+
//# sourceMappingURL=MultiSelectValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiSelectValue.js","sourceRoot":"","sources":["../../../../src/components/organisms/MultiSelectValue/MultiSelectValue.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAC;AASjC,MAAM,gBAAgB,GAAG,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,GACiB,EAAE,EAAE;IAC1B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAE/B,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CACrC;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CACxC;MAAA,CAAC,QAAQ,IAAI,IAAI,IAAI,QAAQ,EAAE,MAAM,GAAG,CAAC;YACvC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,CAAC,KAAK,CACJ,GAAG,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,CACrB,KAAK,CAAC,CAAC,IAAI,CAAC,CACZ,KAAK,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,CAAC,CACpC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACpB,CACH,CAAC;YACJ,CAAC,CAAC,IAAI,CACV;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,QAAQ;KACrB;IACD,KAAK,EAAE;QACL,KAAK,EAAE,IAAI;QACX,cAAc,EAAE,CAAC;QACjB,iBAAiB,EAAE,CAAC;KACrB;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,EAAE;KAChB;CACF,CAAC,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
|
|
@@ -9,8 +9,8 @@ interface MultiValuePickerProps {
|
|
|
9
9
|
labelField: string;
|
|
10
10
|
valueField: string;
|
|
11
11
|
disabled?: boolean;
|
|
12
|
-
disabledValue?: string;
|
|
13
|
-
|
|
12
|
+
disabledValue?: string[];
|
|
13
|
+
required?: boolean;
|
|
14
14
|
}
|
|
15
|
-
declare const MultiValuePicker: ({ style, pickerStyle, styleTxt, title, onValueChange, defaultValue, listItems, labelField, valueField, disabled, disabledValue,
|
|
15
|
+
declare const MultiValuePicker: ({ style, pickerStyle, styleTxt, title, onValueChange, defaultValue, listItems, labelField, valueField, disabled, disabledValue, required, }: MultiValuePickerProps) => JSX.Element;
|
|
16
16
|
export default MultiValuePicker;
|
|
@@ -20,17 +20,19 @@ import { Dimensions, StyleSheet, View } from 'react-native';
|
|
|
20
20
|
import { useThemeColor } from '../../../theme/ThemeContext';
|
|
21
21
|
import { getCommonStyles } from '../../../utils/commons-styles';
|
|
22
22
|
import { Text } from '../../atoms';
|
|
23
|
-
import {
|
|
23
|
+
import { SelectionContainer, MultiValuePickerButton } from '../../molecules';
|
|
24
24
|
import { getItemsFromList } from '../../../utils/list';
|
|
25
25
|
import { OUTSIDE_INDICATOR, useClickOutside, } from '../../../hooks/use-click-outside';
|
|
26
|
-
|
|
26
|
+
import MultiSelectValue from '../MultiSelectValue/MultiSelectValue';
|
|
27
|
+
const MultiValuePicker = ({ style, pickerStyle, styleTxt, title, onValueChange, defaultValue = [], listItems = [], labelField, valueField, disabled = false, disabledValue = [], required = false, }) => {
|
|
28
|
+
const Colors = useThemeColor();
|
|
27
29
|
const [pickerIsOpen, setPickerIsOpen] = useState(false);
|
|
30
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
28
31
|
const wrapperRef = useRef(null);
|
|
29
32
|
const clickOutside = useClickOutside({
|
|
30
33
|
wrapperRef,
|
|
31
34
|
visible: pickerIsOpen,
|
|
32
35
|
});
|
|
33
|
-
const Colors = useThemeColor();
|
|
34
36
|
const [selectedItem, setSelectedItem] = useState(getItemsFromList(listItems, valueField, defaultValue));
|
|
35
37
|
useEffect(() => {
|
|
36
38
|
setSelectedItem(getItemsFromList(listItems, valueField, defaultValue));
|
|
@@ -38,10 +40,12 @@ const MultiValuePicker = ({ style, pickerStyle, styleTxt, title, onValueChange,
|
|
|
38
40
|
useEffect(() => {
|
|
39
41
|
if (clickOutside === OUTSIDE_INDICATOR && pickerIsOpen) {
|
|
40
42
|
setPickerIsOpen(false);
|
|
43
|
+
setIsFocused(false);
|
|
41
44
|
}
|
|
42
45
|
}, [clickOutside, pickerIsOpen]);
|
|
43
46
|
const togglePicker = () => {
|
|
44
47
|
setPickerIsOpen(current => !current);
|
|
48
|
+
setIsFocused(current => !current);
|
|
45
49
|
};
|
|
46
50
|
const handleValueChange = useCallback(itemValue => {
|
|
47
51
|
if (itemValue != null) {
|
|
@@ -56,8 +60,9 @@ const MultiValuePicker = ({ style, pickerStyle, styleTxt, title, onValueChange,
|
|
|
56
60
|
onValueChange(newSelecteditems);
|
|
57
61
|
}
|
|
58
62
|
}, [onValueChange, selectedItem, valueField]);
|
|
59
|
-
const
|
|
60
|
-
const
|
|
63
|
+
const _required = useMemo(() => required && (selectedItem == null || selectedItem?.length === 0), [required, selectedItem]);
|
|
64
|
+
const commonStyles = useMemo(() => getCommonStyles(Colors, _required), [Colors, _required]);
|
|
65
|
+
const styles = useMemo(() => getStyles(Colors, _required), [Colors, _required]);
|
|
61
66
|
return (<View ref={wrapperRef} style={style}>
|
|
62
67
|
{!disabled && (<View style={styles.titleContainer}>
|
|
63
68
|
<Text style={styleTxt}>{title}</Text>
|
|
@@ -69,29 +74,29 @@ const MultiValuePicker = ({ style, pickerStyle, styleTxt, title, onValueChange,
|
|
|
69
74
|
styles.infosCard,
|
|
70
75
|
pickerStyle,
|
|
71
76
|
]}>
|
|
72
|
-
{
|
|
73
|
-
<LabelText value={disabledValue == null || disabledValue === ''
|
|
74
|
-
? '-'
|
|
75
|
-
: disabledValue} title={`${title} :`} iconName={iconName}/>
|
|
77
|
+
<MultiSelectValue itemList={disabledValue} title={`${title} :`}/>
|
|
76
78
|
</View>) : (<View>
|
|
77
79
|
<MultiValuePickerButton onPress={togglePicker} listItem={selectedItem} labelField={labelField} style={[
|
|
78
80
|
commonStyles.filter,
|
|
79
81
|
commonStyles.filterSize,
|
|
80
82
|
commonStyles.filterAlign,
|
|
81
83
|
styles.rightIconButton,
|
|
84
|
+
isFocused && commonStyles.inputFocused,
|
|
82
85
|
pickerStyle,
|
|
83
86
|
]} onPressItem={handleValueChange}/>
|
|
84
87
|
{pickerIsOpen ? (<SelectionContainer objectList={listItems} keyField={valueField} displayValue={item => item[labelField]} handleSelect={handleValueChange} isPicker={true} selectedItem={selectedItem}/>) : null}
|
|
85
88
|
</View>)}
|
|
86
89
|
</View>);
|
|
87
90
|
};
|
|
88
|
-
const getStyles = Colors => StyleSheet.create({
|
|
91
|
+
const getStyles = (Colors, _required) => StyleSheet.create({
|
|
89
92
|
titleContainer: {
|
|
90
93
|
marginHorizontal: 24,
|
|
91
94
|
},
|
|
92
95
|
rightIconButton: {
|
|
93
96
|
width: Dimensions.get('window').width * 0.9,
|
|
94
|
-
borderColor:
|
|
97
|
+
borderColor: _required
|
|
98
|
+
? Colors.errorColor.background
|
|
99
|
+
: Colors.secondaryColor.background,
|
|
95
100
|
borderWidth: 1,
|
|
96
101
|
},
|
|
97
102
|
infosCard: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiValuePicker.js","sourceRoot":"","sources":["../../../../src/components/organisms/MultiValuePicker/MultiValuePicker.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/E,OAAO,EAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAC;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"MultiValuePicker.js","sourceRoot":"","sources":["../../../../src/components/organisms/MultiValuePicker/MultiValuePicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,8 @@ interface PickerProps {
|
|
|
13
13
|
disabled?: boolean;
|
|
14
14
|
disabledValue?: string;
|
|
15
15
|
iconName?: string;
|
|
16
|
+
required?: boolean;
|
|
17
|
+
isScrollViewContainer?: boolean;
|
|
16
18
|
}
|
|
17
|
-
declare const Picker: ({ style, pickerStyle, styleTxt, title, onValueChange, defaultValue, listItems, labelField, valueField, emptyValue, isValueItem, disabled, disabledValue, iconName, }: PickerProps) => JSX.Element;
|
|
19
|
+
declare const Picker: ({ style, pickerStyle, styleTxt, title, onValueChange, defaultValue, listItems, labelField, valueField, emptyValue, isValueItem, disabled, disabledValue, iconName, required, isScrollViewContainer, }: PickerProps) => JSX.Element;
|
|
18
20
|
export default Picker;
|