@axelor/aos-mobile-ui 7.1.1 → 7.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/atoms/Icon/Icon.d.ts +1 -2
- package/lib/components/atoms/Icon/Icon.js +6 -6
- package/lib/components/atoms/Icon/Icon.js.map +1 -1
- package/lib/components/atoms/KeyboardAvoidingScrollView/KeyboardAvoidingScrollView.d.ts +6 -1
- package/lib/components/atoms/KeyboardAvoidingScrollView/KeyboardAvoidingScrollView.js +3 -3
- package/lib/components/atoms/KeyboardAvoidingScrollView/KeyboardAvoidingScrollView.js.map +1 -1
- package/lib/components/atoms/RadioButton/RadioButton.d.ts +7 -0
- package/lib/components/atoms/RadioButton/RadioButton.js +73 -0
- package/lib/components/atoms/RadioButton/RadioButton.js.map +1 -0
- package/lib/components/atoms/ScrollView/ScrollView.d.ts +6 -1
- package/lib/components/atoms/ScrollView/ScrollView.js +3 -3
- package/lib/components/atoms/ScrollView/ScrollView.js.map +1 -1
- package/lib/components/atoms/Switch/Switch.js +3 -5
- package/lib/components/atoms/Switch/Switch.js.map +1 -1
- package/lib/components/atoms/index.d.ts +1 -0
- package/lib/components/atoms/index.js +1 -0
- package/lib/components/atoms/index.js.map +1 -1
- package/lib/components/molecules/FormHtmlInput/FormHtmlInput.d.ts +2 -1
- package/lib/components/molecules/FormHtmlInput/FormHtmlInput.js +11 -2
- package/lib/components/molecules/FormHtmlInput/FormHtmlInput.js.map +1 -1
- package/lib/components/molecules/FormInput/FormInput.js +1 -1
- package/lib/components/molecules/FormInput/FormInput.js.map +1 -1
- package/lib/components/molecules/Image/Image.js +13 -5
- package/lib/components/molecules/Image/Image.js.map +1 -1
- package/lib/components/molecules/Increment/Increment.js +2 -2
- package/lib/components/molecules/Increment/Increment.js.map +1 -1
- package/lib/components/molecules/InfoBubble/InfoBubble.d.ts +2 -1
- package/lib/components/molecules/InfoBubble/InfoBubble.js +2 -2
- package/lib/components/molecules/InfoBubble/InfoBubble.js.map +1 -1
- package/lib/components/molecules/MultiValuePickerButton/MultiValuePickerButton.d.ts +4 -3
- package/lib/components/molecules/MultiValuePickerButton/MultiValuePickerButton.js +4 -15
- package/lib/components/molecules/MultiValuePickerButton/MultiValuePickerButton.js.map +1 -1
- package/lib/components/molecules/RadioSelect/RadioSelect.d.ts +14 -0
- package/lib/components/molecules/RadioSelect/RadioSelect.js +59 -0
- package/lib/components/molecules/RadioSelect/RadioSelect.js.map +1 -0
- package/lib/components/molecules/SelectionContainer/SelectionContainer.d.ts +4 -3
- package/lib/components/molecules/SelectionContainer/SelectionContainer.js +17 -9
- package/lib/components/molecules/SelectionContainer/SelectionContainer.js.map +1 -1
- package/lib/components/molecules/SwitchCard/SwitchCard.js +22 -5
- package/lib/components/molecules/SwitchCard/SwitchCard.js.map +1 -1
- package/lib/components/molecules/index.d.ts +1 -0
- package/lib/components/molecules/index.js +1 -0
- package/lib/components/molecules/index.js.map +1 -1
- package/lib/components/organisms/AutoCompleteSearch/AutoCompleteSearch.d.ts +4 -1
- package/lib/components/organisms/AutoCompleteSearch/AutoCompleteSearch.js +17 -13
- package/lib/components/organisms/AutoCompleteSearch/AutoCompleteSearch.js.map +1 -1
- package/lib/components/organisms/AutoCompleteSearch/ItemCard.js +3 -2
- package/lib/components/organisms/AutoCompleteSearch/ItemCard.js.map +1 -1
- package/lib/components/organisms/AutoCompleteSearch/SearchDetailsPopUp.js +4 -1
- package/lib/components/organisms/AutoCompleteSearch/SearchDetailsPopUp.js.map +1 -1
- package/lib/components/organisms/ChipSelect/ChipSelect.d.ts +2 -1
- package/lib/components/organisms/ChipSelect/ChipSelect.js +29 -26
- package/lib/components/organisms/ChipSelect/ChipSelect.js.map +1 -1
- package/lib/components/organisms/MultiValuePicker/MultiValuePicker.d.ts +4 -5
- package/lib/components/organisms/MultiValuePicker/MultiValuePicker.js +22 -40
- package/lib/components/organisms/MultiValuePicker/MultiValuePicker.js.map +1 -1
- package/lib/components/organisms/Picker/Picker.d.ts +4 -5
- package/lib/components/organisms/Picker/Picker.js +67 -72
- package/lib/components/organisms/Picker/Picker.js.map +1 -1
- package/lib/components/organisms/SearchBar/SearchBar.d.ts +4 -1
- package/lib/components/organisms/SearchBar/SearchBar.js +36 -13
- package/lib/components/organisms/SearchBar/SearchBar.js.map +1 -1
- package/lib/components/organisms/index.d.ts +0 -1
- package/lib/components/organisms/index.js +0 -1
- package/lib/components/organisms/index.js.map +1 -1
- package/lib/components/templates/ObjectCard/ObjectCard.d.ts +3 -1
- package/lib/components/templates/ObjectCard/ObjectCard.js +5 -6
- package/lib/components/templates/ObjectCard/ObjectCard.js.map +1 -1
- package/lib/theme/writingTheme.js +4 -4
- package/package.json +6 -3
- package/lib/components/organisms/MultiSelectValue/MultiSelectValue.d.ts +0 -9
- package/lib/components/organisms/MultiSelectValue/MultiSelectValue.js +0 -49
- package/lib/components/organisms/MultiSelectValue/MultiSelectValue.js.map +0 -1
|
@@ -8,13 +8,12 @@ interface MultiValuePickerProps {
|
|
|
8
8
|
style?: any;
|
|
9
9
|
pickerStyle?: any;
|
|
10
10
|
styleTxt?: any;
|
|
11
|
-
title
|
|
12
|
-
onValueChange?: (
|
|
11
|
+
title?: string;
|
|
12
|
+
onValueChange?: (itemList: Item[]) => void;
|
|
13
13
|
defaultItems?: Item[];
|
|
14
14
|
listItems: Item[];
|
|
15
|
-
|
|
16
|
-
disabledValue?: string[];
|
|
15
|
+
readonly?: boolean;
|
|
17
16
|
required?: boolean;
|
|
18
17
|
}
|
|
19
|
-
declare const MultiValuePicker: ({ style, pickerStyle, styleTxt, title, onValueChange, defaultItems, listItems,
|
|
18
|
+
declare const MultiValuePicker: ({ style, pickerStyle, styleTxt, title, onValueChange, defaultItems, listItems, readonly, required, }: MultiValuePickerProps) => JSX.Element;
|
|
20
19
|
export default MultiValuePicker;
|
|
@@ -16,15 +16,14 @@
|
|
|
16
16
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
19
|
-
import {
|
|
19
|
+
import { Platform, 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
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
|
-
|
|
27
|
-
const MultiValuePicker = ({ style, pickerStyle, styleTxt, title, onValueChange, defaultItems = [], listItems = [], disabled = false, disabledValue = [], required = false, }) => {
|
|
26
|
+
const MultiValuePicker = ({ style, pickerStyle, styleTxt, title, onValueChange, defaultItems = [], listItems = [], readonly = false, required = false, }) => {
|
|
28
27
|
const Colors = useThemeColor();
|
|
29
28
|
const [pickerIsOpen, setPickerIsOpen] = useState(false);
|
|
30
29
|
const [isFocused, setIsFocused] = useState(false);
|
|
@@ -62,57 +61,40 @@ const MultiValuePicker = ({ style, pickerStyle, styleTxt, title, onValueChange,
|
|
|
62
61
|
const commonStyles = useMemo(() => getCommonStyles(Colors, _required), [Colors, _required]);
|
|
63
62
|
const styles = useMemo(() => getStyles(Colors, _required), [Colors, _required]);
|
|
64
63
|
return (<View ref={wrapperRef} style={[
|
|
64
|
+
styles.container,
|
|
65
65
|
Platform.OS === 'ios' && pickerIsOpen ? styles.containerZIndex : null,
|
|
66
66
|
style,
|
|
67
67
|
]}>
|
|
68
|
-
{
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
<MultiSelectValue itemList={disabledValue} title={`${title} :`}/>
|
|
79
|
-
</View>) : (<View style={[
|
|
80
|
-
Platform.OS === 'ios' && pickerIsOpen
|
|
81
|
-
? styles.pickerContainerZIndex
|
|
82
|
-
: null,
|
|
83
|
-
]}>
|
|
84
|
-
<MultiValuePickerButton onPress={togglePicker} listItem={selectedItemList} style={[
|
|
85
|
-
commonStyles.filter,
|
|
86
|
-
commonStyles.filterSize,
|
|
87
|
-
commonStyles.filterAlign,
|
|
88
|
-
styles.rightIconButton,
|
|
89
|
-
isFocused && commonStyles.inputFocused,
|
|
90
|
-
pickerStyle,
|
|
91
|
-
]} onPressItem={handleValueChange}/>
|
|
92
|
-
{pickerIsOpen ? (<SelectionContainer objectList={listItems} keyField="key" displayValue={(item) => item.title} handleSelect={handleValueChange} isPicker={true} selectedItem={selectedItemList}/>) : null}
|
|
93
|
-
</View>)}
|
|
68
|
+
{title && <Text style={[styles.title, styleTxt]}>{title}</Text>}
|
|
69
|
+
<MultiValuePickerButton onPress={togglePicker} listItem={selectedItemList} style={[
|
|
70
|
+
commonStyles.filter,
|
|
71
|
+
commonStyles.filterSize,
|
|
72
|
+
commonStyles.filterAlign,
|
|
73
|
+
isFocused && commonStyles.inputFocused,
|
|
74
|
+
styles.content,
|
|
75
|
+
pickerStyle,
|
|
76
|
+
]} onPressItem={handleValueChange} readonly={readonly}/>
|
|
77
|
+
{pickerIsOpen ? (<SelectionContainer objectList={listItems} keyField="key" displayValue={(item) => item.title} handleSelect={handleValueChange} isPicker={true} selectedItem={selectedItemList} readonly={readonly}/>) : null}
|
|
94
78
|
</View>);
|
|
95
79
|
};
|
|
96
80
|
const getStyles = (Colors, _required) => StyleSheet.create({
|
|
81
|
+
container: {
|
|
82
|
+
width: '90%',
|
|
83
|
+
},
|
|
97
84
|
containerZIndex: {
|
|
98
85
|
zIndex: 45,
|
|
99
86
|
},
|
|
100
|
-
|
|
101
|
-
|
|
87
|
+
title: {
|
|
88
|
+
marginLeft: 10,
|
|
102
89
|
},
|
|
103
|
-
|
|
104
|
-
width:
|
|
90
|
+
content: {
|
|
91
|
+
width: '100%',
|
|
105
92
|
borderColor: _required
|
|
106
93
|
? Colors.errorColor.background
|
|
107
94
|
: Colors.secondaryColor.background,
|
|
108
95
|
borderWidth: 1,
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
justifyContent: 'flex-start',
|
|
112
|
-
width: Dimensions.get('window').width * 0.9,
|
|
113
|
-
},
|
|
114
|
-
pickerContainerZIndex: {
|
|
115
|
-
zIndex: 50,
|
|
96
|
+
marginHorizontal: 0,
|
|
97
|
+
minHeight: 40,
|
|
116
98
|
},
|
|
117
99
|
});
|
|
118
100
|
export default MultiValuePicker;
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"MultiValuePicker.js","sourceRoot":"","sources":["../../../../src/components/organisms/MultiValuePicker/MultiValuePicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,19 +2,18 @@ interface PickerProps {
|
|
|
2
2
|
style?: any;
|
|
3
3
|
pickerStyle?: any;
|
|
4
4
|
styleTxt?: any;
|
|
5
|
-
title
|
|
5
|
+
title?: string;
|
|
6
6
|
onValueChange: (any: any) => void;
|
|
7
7
|
defaultValue?: string;
|
|
8
8
|
listItems: any[];
|
|
9
|
+
displayValue?: (item: any) => string;
|
|
9
10
|
labelField: string;
|
|
10
11
|
valueField: string;
|
|
11
12
|
emptyValue?: boolean;
|
|
12
13
|
isValueItem?: boolean;
|
|
13
|
-
|
|
14
|
-
disabledValue?: string;
|
|
15
|
-
iconName?: string;
|
|
14
|
+
readonly?: boolean;
|
|
16
15
|
required?: boolean;
|
|
17
16
|
isScrollViewContainer?: boolean;
|
|
18
17
|
}
|
|
19
|
-
declare const Picker: ({ style, pickerStyle, styleTxt, title, onValueChange, defaultValue, listItems, labelField, valueField, emptyValue, isValueItem,
|
|
18
|
+
declare const Picker: ({ style, pickerStyle, styleTxt, title, onValueChange, defaultValue, listItems, displayValue, labelField, valueField, emptyValue, isValueItem, readonly, required, isScrollViewContainer, }: PickerProps) => JSX.Element;
|
|
20
19
|
export default Picker;
|
|
@@ -16,44 +16,42 @@
|
|
|
16
16
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
import React, { useEffect, useMemo, useRef, useState } from 'react';
|
|
19
|
-
import {
|
|
20
|
-
import { useThemeColor } from '../../../theme
|
|
21
|
-
import { getCommonStyles } from '../../../utils
|
|
22
|
-
import { Icon, Text } from '../../atoms';
|
|
23
|
-
import { LabelText, SelectionContainer, RightIconButton } from '../../molecules';
|
|
24
|
-
import { getFromList } from '../../../utils/list';
|
|
19
|
+
import { Platform, StyleSheet, View } from 'react-native';
|
|
20
|
+
import { useThemeColor } from '../../../theme';
|
|
21
|
+
import { getCommonStyles, getFromList } from '../../../utils';
|
|
25
22
|
import { OUTSIDE_INDICATOR, useClickOutside, } from '../../../hooks/use-click-outside';
|
|
23
|
+
import { Icon, Text } from '../../atoms';
|
|
24
|
+
import { FormInput, SelectionContainer, RightIconButton } from '../../molecules';
|
|
26
25
|
const ITEM_HEIGHT = 40;
|
|
27
|
-
const Picker = ({ style, pickerStyle, styleTxt, title, onValueChange, defaultValue = '', listItems, labelField, valueField, emptyValue = true, isValueItem = false,
|
|
28
|
-
const
|
|
26
|
+
const Picker = ({ style, pickerStyle, styleTxt, title, onValueChange, defaultValue = '', listItems, displayValue, labelField, valueField, emptyValue = true, isValueItem = false, readonly = false, required = false, isScrollViewContainer = false, }) => {
|
|
27
|
+
const Colors = useThemeColor();
|
|
29
28
|
const [isFocused, setIsFocused] = useState(false);
|
|
29
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
30
|
+
const [selectedItem, setSelectedItem] = useState(!isValueItem
|
|
31
|
+
? getFromList(listItems, valueField, defaultValue)
|
|
32
|
+
: defaultValue);
|
|
30
33
|
const wrapperRef = useRef(null);
|
|
31
34
|
const clickOutside = useClickOutside({
|
|
32
35
|
wrapperRef,
|
|
33
|
-
visible:
|
|
36
|
+
visible: isOpen,
|
|
34
37
|
});
|
|
35
|
-
const Colors = useThemeColor();
|
|
36
|
-
const [selectedItem, setSelectedItem] = useState(!isValueItem
|
|
37
|
-
? getFromList(listItems, valueField, defaultValue)
|
|
38
|
-
: defaultValue);
|
|
39
38
|
useEffect(() => {
|
|
40
39
|
setSelectedItem(!isValueItem
|
|
41
40
|
? getFromList(listItems, valueField, defaultValue)
|
|
42
41
|
: defaultValue);
|
|
43
42
|
}, [defaultValue, isValueItem, listItems, valueField]);
|
|
44
43
|
useEffect(() => {
|
|
45
|
-
if (clickOutside === OUTSIDE_INDICATOR &&
|
|
46
|
-
|
|
44
|
+
if (clickOutside === OUTSIDE_INDICATOR && isOpen) {
|
|
45
|
+
setIsOpen(false);
|
|
47
46
|
setIsFocused(false);
|
|
48
47
|
}
|
|
49
|
-
}, [clickOutside,
|
|
50
|
-
const toggleValue = current => !current;
|
|
48
|
+
}, [clickOutside, isOpen]);
|
|
51
49
|
const togglePicker = () => {
|
|
52
|
-
|
|
53
|
-
setIsFocused(
|
|
50
|
+
setIsOpen(!isOpen);
|
|
51
|
+
setIsFocused(!isFocused);
|
|
54
52
|
};
|
|
55
53
|
const handleValueChange = itemValue => {
|
|
56
|
-
|
|
54
|
+
setIsOpen(false);
|
|
57
55
|
setIsFocused(false);
|
|
58
56
|
setSelectedItem(itemValue);
|
|
59
57
|
itemValue
|
|
@@ -62,74 +60,71 @@ const Picker = ({ style, pickerStyle, styleTxt, title, onValueChange, defaultVal
|
|
|
62
60
|
: itemValue[valueField])
|
|
63
61
|
: onValueChange(itemValue);
|
|
64
62
|
};
|
|
65
|
-
const _required = useMemo(() => required && selectedItem == null, [required, selectedItem]);
|
|
66
63
|
const marginBottom = useMemo(() => {
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
if (isScrollViewContainer && isOpen) {
|
|
65
|
+
const visibleListLength = !Array.isArray(listItems)
|
|
66
|
+
? 0
|
|
67
|
+
: Math.min(listItems.length, 5);
|
|
69
68
|
return emptyValue
|
|
70
|
-
?
|
|
71
|
-
:
|
|
69
|
+
? visibleListLength * ITEM_HEIGHT + ITEM_HEIGHT + 5
|
|
70
|
+
: visibleListLength * ITEM_HEIGHT + 5;
|
|
72
71
|
}
|
|
73
72
|
return null;
|
|
74
|
-
}, [emptyValue, isScrollViewContainer, listItems,
|
|
73
|
+
}, [emptyValue, isScrollViewContainer, listItems, isOpen]);
|
|
74
|
+
const _required = useMemo(() => required && selectedItem == null, [required, selectedItem]);
|
|
75
75
|
const commonStyles = useMemo(() => getCommonStyles(Colors, _required), [Colors, _required]);
|
|
76
|
-
const styles = useMemo(() => getStyles(Colors, _required, marginBottom,
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
{pickerIsOpen ? (<SelectionContainer style={pickerStyle} emptyValue={emptyValue} objectList={listItems} keyField={valueField} displayValue={item => item[labelField]} handleSelect={handleValueChange} isPicker={true} selectedItem={[selectedItem]}/>) : null}
|
|
104
|
-
</View>)}
|
|
76
|
+
const styles = useMemo(() => getStyles(Colors, _required, marginBottom, isOpen), [Colors, _required, marginBottom, isOpen]);
|
|
77
|
+
const _displayValue = useMemo(() => {
|
|
78
|
+
if (selectedItem == null) {
|
|
79
|
+
return '';
|
|
80
|
+
}
|
|
81
|
+
return displayValue
|
|
82
|
+
? displayValue(selectedItem)
|
|
83
|
+
: selectedItem?.[labelField];
|
|
84
|
+
}, [displayValue, labelField, selectedItem]);
|
|
85
|
+
if (readonly) {
|
|
86
|
+
return (<FormInput style={[styles.container, style]} title={title} defaultValue={_displayValue} readOnly/>);
|
|
87
|
+
}
|
|
88
|
+
return (<View ref={wrapperRef} style={[
|
|
89
|
+
styles.container,
|
|
90
|
+
Platform.OS === 'ios' ? styles.containerZIndex : null,
|
|
91
|
+
style,
|
|
92
|
+
]}>
|
|
93
|
+
{title && <Text style={[styles.title, styleTxt]}>{title}</Text>}
|
|
94
|
+
<RightIconButton onPress={togglePicker} icon={<Icon name="chevron-down" color={Colors.secondaryColor_dark.background}/>} title={_displayValue} styleText={styles.textPicker} style={[
|
|
95
|
+
commonStyles.filter,
|
|
96
|
+
commonStyles.filterSize,
|
|
97
|
+
commonStyles.filterAlign,
|
|
98
|
+
isFocused && commonStyles.inputFocused,
|
|
99
|
+
styles.content,
|
|
100
|
+
pickerStyle,
|
|
101
|
+
]}/>
|
|
102
|
+
{isOpen && (<SelectionContainer style={pickerStyle} emptyValue={emptyValue} objectList={listItems} keyField={valueField} displayValue={item => displayValue ? displayValue(item) : item[labelField]} handleSelect={handleValueChange} isPicker={true} selectedItem={[selectedItem]}/>)}
|
|
105
103
|
</View>);
|
|
106
104
|
};
|
|
107
|
-
const getStyles = (Colors, _required, marginBottom,
|
|
108
|
-
|
|
109
|
-
|
|
105
|
+
const getStyles = (Colors, _required, marginBottom, isOpen) => StyleSheet.create({
|
|
106
|
+
container: {
|
|
107
|
+
width: '90%',
|
|
108
|
+
alignSelf: 'center',
|
|
109
|
+
marginBottom: marginBottom,
|
|
110
110
|
},
|
|
111
|
-
|
|
112
|
-
|
|
111
|
+
containerZIndex: {
|
|
112
|
+
zIndex: isOpen ? 45 : 0,
|
|
113
113
|
},
|
|
114
|
-
|
|
115
|
-
width:
|
|
114
|
+
content: {
|
|
115
|
+
width: '100%',
|
|
116
116
|
borderColor: _required
|
|
117
117
|
? Colors.errorColor.background
|
|
118
118
|
: Colors.secondaryColor.background,
|
|
119
119
|
borderWidth: 1,
|
|
120
|
+
marginHorizontal: 0,
|
|
121
|
+
minHeight: 40,
|
|
120
122
|
},
|
|
121
|
-
|
|
123
|
+
textPicker: {
|
|
122
124
|
left: '-20%',
|
|
123
125
|
},
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
width: Dimensions.get('window').width * 0.9,
|
|
127
|
-
},
|
|
128
|
-
pickerContainerStyle: {
|
|
129
|
-
marginBottom: marginBottom,
|
|
130
|
-
},
|
|
131
|
-
pickerContainerZIndex: {
|
|
132
|
-
zIndex: pickerIsOpen ? 50 : 0,
|
|
126
|
+
title: {
|
|
127
|
+
marginLeft: 10,
|
|
133
128
|
},
|
|
134
129
|
});
|
|
135
130
|
export default Picker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Picker.js","sourceRoot":"","sources":["../../../../src/components/organisms/Picker/Picker.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAClE,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"Picker.js","sourceRoot":"","sources":["../../../../src/components/organisms/Picker/Picker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { LegacyRef } from 'react';
|
|
2
2
|
import { TextInput } from 'react-native';
|
|
3
3
|
interface SearchBarProps {
|
|
4
|
+
title?: string;
|
|
4
5
|
style?: any;
|
|
5
6
|
inputRef?: LegacyRef<TextInput>;
|
|
6
7
|
valueTxt: string;
|
|
7
8
|
placeholder: string;
|
|
9
|
+
required?: boolean;
|
|
10
|
+
readonly?: boolean;
|
|
8
11
|
onClearPress: () => void;
|
|
9
12
|
onChangeTxt: (any: any) => void;
|
|
10
13
|
onSelection?: () => void;
|
|
@@ -14,5 +17,5 @@ interface SearchBarProps {
|
|
|
14
17
|
onSearchPress?: () => void;
|
|
15
18
|
disableSearchPress?: boolean;
|
|
16
19
|
}
|
|
17
|
-
declare const SearchBar: ({ style, inputRef, valueTxt, placeholder, onClearPress, onChangeTxt, onSelection, onEndFocus, onScanPress, scanIconColor, onSearchPress, disableSearchPress, }: SearchBarProps) => JSX.Element;
|
|
20
|
+
declare const SearchBar: ({ title, style, inputRef, valueTxt, placeholder, required, readonly, onClearPress, onChangeTxt, onSelection, onEndFocus, onScanPress, scanIconColor, onSearchPress, disableSearchPress, }: SearchBarProps) => JSX.Element;
|
|
18
21
|
export default SearchBar;
|
|
@@ -16,31 +16,54 @@
|
|
|
16
16
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
import React, { useMemo } from 'react';
|
|
19
|
-
import { StyleSheet } from 'react-native';
|
|
20
|
-
import { getCommonStyles } from '../../../utils
|
|
21
|
-
import { useThemeColor } from '../../../theme
|
|
22
|
-
import { Icon } from '../../atoms';
|
|
23
|
-
import { IconInput } from '../../molecules';
|
|
24
|
-
const SearchBar = ({ style, inputRef, valueTxt, placeholder, onClearPress, onChangeTxt, onSelection = () => { }, onEndFocus = () => { }, onScanPress = () => { }, scanIconColor = null, onSearchPress = () => { }, disableSearchPress = false, }) => {
|
|
19
|
+
import { StyleSheet, View } from 'react-native';
|
|
20
|
+
import { checkNullString, getCommonStyles } from '../../../utils';
|
|
21
|
+
import { useThemeColor } from '../../../theme';
|
|
22
|
+
import { Icon, Text } from '../../atoms';
|
|
23
|
+
import { FormInput, IconInput } from '../../molecules';
|
|
24
|
+
const SearchBar = ({ title, style, inputRef, valueTxt, placeholder, required = false, readonly, onClearPress, onChangeTxt, onSelection = () => { }, onEndFocus = () => { }, onScanPress = () => { }, scanIconColor = null, onSearchPress = () => { }, disableSearchPress = false, }) => {
|
|
25
25
|
const Colors = useThemeColor();
|
|
26
|
-
const
|
|
27
|
-
|
|
26
|
+
const _required = useMemo(() => required && checkNullString(valueTxt), [required, valueTxt]);
|
|
27
|
+
const commonStyles = useMemo(() => getCommonStyles(Colors, _required), [Colors, _required]);
|
|
28
|
+
const styles = useMemo(() => getStyles(Colors, _required), [Colors, _required]);
|
|
29
|
+
if (readonly) {
|
|
30
|
+
return (<FormInput style={[styles.container, style]} title={title} defaultValue={valueTxt} readOnly/>);
|
|
31
|
+
}
|
|
32
|
+
return (<View style={[styles.container, style]}>
|
|
33
|
+
{title && <Text style={styles.title}>{title}</Text>}
|
|
34
|
+
<IconInput inputRef={inputRef} style={[
|
|
28
35
|
commonStyles.filter,
|
|
29
36
|
commonStyles.filterAlign,
|
|
30
37
|
commonStyles.filterSize,
|
|
31
|
-
|
|
38
|
+
styles.content,
|
|
32
39
|
]} value={valueTxt} placeholder={placeholder} onChange={onChangeTxt} onSelection={onSelection} onEndFocus={onEndFocus} rightIconsList={[
|
|
33
|
-
<Icon style={styles.action} name="times" color={Colors.secondaryColor_dark.background} size={20} touchable={true} visible={valueTxt
|
|
40
|
+
<Icon style={styles.action} name="times" color={Colors.secondaryColor_dark.background} size={20} touchable={true} visible={!checkNullString(valueTxt)} onPress={onClearPress}/>,
|
|
34
41
|
<Icon style={styles.action} name="search" color={disableSearchPress
|
|
35
42
|
? Colors.secondaryColor.background
|
|
36
43
|
: Colors.secondaryColor_dark.background} onPress={onSearchPress} touchable={!disableSearchPress} size={20}/>,
|
|
37
|
-
<Icon style={styles.action} name="qrcode" FontAwesome5={false} color={scanIconColor} size={20} touchable={true} visible={scanIconColor
|
|
38
|
-
]}/>
|
|
44
|
+
<Icon style={styles.action} name="qrcode" FontAwesome5={false} color={scanIconColor} size={20} touchable={true} visible={!checkNullString(scanIconColor)} onPress={onScanPress}/>,
|
|
45
|
+
]}/>
|
|
46
|
+
</View>);
|
|
39
47
|
};
|
|
40
|
-
const
|
|
48
|
+
const getStyles = (Colors, _required) => StyleSheet.create({
|
|
41
49
|
action: {
|
|
42
50
|
marginLeft: 12,
|
|
43
51
|
},
|
|
52
|
+
container: {
|
|
53
|
+
width: '100%',
|
|
54
|
+
},
|
|
55
|
+
content: {
|
|
56
|
+
width: '100%',
|
|
57
|
+
borderColor: _required
|
|
58
|
+
? Colors.errorColor.background
|
|
59
|
+
: Colors.secondaryColor.background,
|
|
60
|
+
borderWidth: 1,
|
|
61
|
+
marginHorizontal: 0,
|
|
62
|
+
minHeight: 40,
|
|
63
|
+
},
|
|
64
|
+
title: {
|
|
65
|
+
marginLeft: 10,
|
|
66
|
+
},
|
|
44
67
|
});
|
|
45
68
|
export default SearchBar;
|
|
46
69
|
//# sourceMappingURL=SearchBar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchBar.js","sourceRoot":"","sources":["../../../../src/components/organisms/SearchBar/SearchBar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAY,OAAO,EAAC,MAAM,OAAO,CAAC;AAChD,OAAO,EAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"SearchBar.js","sourceRoot":"","sources":["../../../../src/components/organisms/SearchBar/SearchBar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ export { default as DropdownMenuItem } from './DropdownMenuItem/DropdownMenuItem
|
|
|
5
5
|
export { default as FloatingButton } from './FloatingButton/FloatingButton';
|
|
6
6
|
export { default as HeaderContainer } from './HeaderContainer/HeaderContainer';
|
|
7
7
|
export { default as ImageBubble } from './ImageBubble/ImageBubble';
|
|
8
|
-
export { default as MultiSelectValue } from './MultiSelectValue/MultiSelectValue';
|
|
9
8
|
export { default as MultiValuePicker } from './MultiValuePicker/MultiValuePicker';
|
|
10
9
|
export { default as Picker } from './Picker/Picker';
|
|
11
10
|
export { default as PopUpOneButton } from './PopUpOneButton/PopUpOneButton';
|
|
@@ -22,7 +22,6 @@ export { default as DropdownMenuItem } from './DropdownMenuItem/DropdownMenuItem
|
|
|
22
22
|
export { default as FloatingButton } from './FloatingButton/FloatingButton';
|
|
23
23
|
export { default as HeaderContainer } from './HeaderContainer/HeaderContainer';
|
|
24
24
|
export { default as ImageBubble } from './ImageBubble/ImageBubble';
|
|
25
|
-
export { default as MultiSelectValue } from './MultiSelectValue/MultiSelectValue';
|
|
26
25
|
export { default as MultiValuePicker } from './MultiValuePicker/MultiValuePicker';
|
|
27
26
|
export { default as Picker } from './Picker/Picker';
|
|
28
27
|
export { default as PopUpOneButton } from './PopUpOneButton/PopUpOneButton';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/organisms/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAC,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/organisms/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC"}
|
|
@@ -33,6 +33,8 @@ interface ImageElement {
|
|
|
33
33
|
}
|
|
34
34
|
interface ObjectCardProps {
|
|
35
35
|
style?: any;
|
|
36
|
+
leftContainerFlex?: number;
|
|
37
|
+
iconLeftMargin?: number;
|
|
36
38
|
touchable?: boolean;
|
|
37
39
|
onPress?: () => void;
|
|
38
40
|
showArrow?: boolean;
|
|
@@ -60,5 +62,5 @@ interface ObjectCardProps {
|
|
|
60
62
|
items: TextElement[];
|
|
61
63
|
};
|
|
62
64
|
}
|
|
63
|
-
declare const ObjectCard: ({ style, touchable, onPress, showArrow, upperBadges, sideBadges, lowerBadges, upperTexts, lowerTexts, image, }: ObjectCardProps) => JSX.Element;
|
|
65
|
+
declare const ObjectCard: ({ style, leftContainerFlex, iconLeftMargin, touchable, onPress, showArrow, upperBadges, sideBadges, lowerBadges, upperTexts, lowerTexts, image, }: ObjectCardProps) => JSX.Element;
|
|
64
66
|
export default ObjectCard;
|
|
@@ -34,7 +34,7 @@ const filterList = (list) => {
|
|
|
34
34
|
})
|
|
35
35
|
.sort((a, b) => a.order - b.order);
|
|
36
36
|
};
|
|
37
|
-
const ObjectCard = ({ style, touchable = true, onPress, showArrow = true, upperBadges, sideBadges, lowerBadges, upperTexts, lowerTexts, image, }) => {
|
|
37
|
+
const ObjectCard = ({ style, leftContainerFlex = 3, iconLeftMargin = 20, touchable = true, onPress, showArrow = true, upperBadges, sideBadges, lowerBadges, upperTexts, lowerTexts, image, }) => {
|
|
38
38
|
const Colors = useThemeColor();
|
|
39
39
|
const initBadgeItems = useCallback((list) => filterList(list), []);
|
|
40
40
|
const initTextItems = useCallback((list) => filterList(list).map((_item) => {
|
|
@@ -43,7 +43,7 @@ const ObjectCard = ({ style, touchable = true, onPress, showArrow = true, upperB
|
|
|
43
43
|
* but keep the possibility to give 'null' value to adapt to text length
|
|
44
44
|
*/
|
|
45
45
|
if (_item.numberOfLines === undefined) {
|
|
46
|
-
return { ..._item, numberOfLines: 1 };
|
|
46
|
+
return { ..._item, numberOfLines: _item.isTitle ? 2 : 1 };
|
|
47
47
|
}
|
|
48
48
|
return _item;
|
|
49
49
|
}), []);
|
|
@@ -94,9 +94,9 @@ const ObjectCard = ({ style, touchable = true, onPress, showArrow = true, upperB
|
|
|
94
94
|
{initBadgeItems(upperBadges.items).map(renderBadgeElement)}
|
|
95
95
|
</View>)}
|
|
96
96
|
<View style={styles.content}>
|
|
97
|
-
<View style={styles.descriptionContainer}>
|
|
97
|
+
<View style={[styles.descriptionContainer, { flex: leftContainerFlex }]}>
|
|
98
98
|
<View style={styles.row}>
|
|
99
|
-
{image != null ? (<Image generalStyle={[styles.imageStyle, image.generalStyle]} imageSize={[styles.imageSize, image.imageSize]} resizeMode={image.resizeMode ?? 'contain'} source={image.source} defaultIconSize={image.defaultIconSize ??
|
|
99
|
+
{image != null ? (<Image generalStyle={[styles.imageStyle, image.generalStyle]} imageSize={[styles.imageSize, image.imageSize]} resizeMode={image.resizeMode ?? 'contain'} source={image.source} defaultIconSize={image.defaultIconSize ?? 50}/>) : null}
|
|
100
100
|
{upperTexts != null && (<View style={[styles.textContainer, upperTexts.style]}>
|
|
101
101
|
{initTextItems(upperTexts.items).map(renderTextElement)}
|
|
102
102
|
</View>)}
|
|
@@ -110,7 +110,7 @@ const ObjectCard = ({ style, touchable = true, onPress, showArrow = true, upperB
|
|
|
110
110
|
{sideBadges != null && (<View style={[styles.verticalBadgesContainer, sideBadges.style]}>
|
|
111
111
|
{initBadgeItems(sideBadges.items).map(renderBadgeElement)}
|
|
112
112
|
</View>)}
|
|
113
|
-
{showArrow && (<Icon name="chevron-right" color={Colors.secondaryColor.background_light} size={20}/>)}
|
|
113
|
+
{showArrow && (<Icon name="chevron-right" color={Colors.secondaryColor.background_light} size={20} style={{ marginLeft: iconLeftMargin }}/>)}
|
|
114
114
|
</View>
|
|
115
115
|
{lowerBadges != null && (<View style={[
|
|
116
116
|
styles.horizontalBadgesContainer,
|
|
@@ -149,7 +149,6 @@ const styles = StyleSheet.create({
|
|
|
149
149
|
descriptionContainer: {
|
|
150
150
|
flexDirection: 'column',
|
|
151
151
|
width: '75%',
|
|
152
|
-
flex: 3,
|
|
153
152
|
},
|
|
154
153
|
row: {
|
|
155
154
|
flexDirection: 'row',
|