@tecsinapse/react-native-kit 1.22.7 → 1.22.8
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/dist/cjs/components/atoms/Avatar/Avatar.js +3 -21
- package/dist/cjs/components/atoms/Avatar/Avatar.js.map +1 -1
- package/dist/cjs/components/atoms/Badge/Badge.js +9 -43
- package/dist/cjs/components/atoms/Badge/Badge.js.map +1 -1
- package/dist/cjs/components/atoms/BottomNavigator/BottomNavigator.js +14 -43
- package/dist/cjs/components/atoms/BottomNavigator/BottomNavigator.js.map +1 -1
- package/dist/cjs/components/atoms/BottomNavigator/Item.js +13 -43
- package/dist/cjs/components/atoms/BottomNavigator/Item.js.map +1 -1
- package/dist/cjs/components/atoms/Button/Button.js +9 -42
- package/dist/cjs/components/atoms/Button/Button.js.map +1 -1
- package/dist/cjs/components/atoms/Button/States/Error.js +5 -23
- package/dist/cjs/components/atoms/Button/States/Error.js.map +1 -1
- package/dist/cjs/components/atoms/Button/States/Loading.js +3 -21
- package/dist/cjs/components/atoms/Button/States/Loading.js.map +1 -1
- package/dist/cjs/components/atoms/Button/States/Success.js +3 -21
- package/dist/cjs/components/atoms/Button/States/Success.js.map +1 -1
- package/dist/cjs/components/atoms/GroupButton/GroupButtonOption.js +3 -21
- package/dist/cjs/components/atoms/GroupButton/GroupButtonOption.js.map +1 -1
- package/dist/cjs/components/atoms/Header/Header.js +18 -48
- package/dist/cjs/components/atoms/Header/Header.js.map +1 -1
- package/dist/cjs/components/atoms/Input/Input.js +32 -84
- package/dist/cjs/components/atoms/Input/Input.js.map +1 -1
- package/dist/cjs/components/atoms/InputMask/InputMask.js +29 -83
- package/dist/cjs/components/atoms/InputMask/InputMask.js.map +1 -1
- package/dist/cjs/components/atoms/Modal/ModalGroupManager.js +5 -33
- package/dist/cjs/components/atoms/Modal/ModalGroupManager.js.map +1 -1
- package/dist/cjs/components/atoms/Modal/ModalLifecycleHandler.js +67 -86
- package/dist/cjs/components/atoms/Modal/ModalLifecycleHandler.js.map +1 -1
- package/dist/cjs/components/atoms/Modal/useLazyModalManager.js +1 -1
- package/dist/cjs/components/atoms/Modal/useLazyModalManager.js.map +1 -1
- package/dist/cjs/components/atoms/Modal/useModalManager.js +1 -1
- package/dist/cjs/components/atoms/Modal/useModalManager.js.map +1 -1
- package/dist/cjs/components/atoms/Skeleton/Pulse.js +4 -5
- package/dist/cjs/components/atoms/Skeleton/Pulse.js.map +1 -1
- package/dist/cjs/components/atoms/Skeleton/Skeleton.js +13 -47
- package/dist/cjs/components/atoms/Skeleton/Skeleton.js.map +1 -1
- package/dist/cjs/components/atoms/Skeleton/Wave.js +5 -6
- package/dist/cjs/components/atoms/Skeleton/Wave.js.map +1 -1
- package/dist/cjs/components/atoms/SnappingSlider/SnappingSlider.js +11 -43
- package/dist/cjs/components/atoms/SnappingSlider/SnappingSlider.js.map +1 -1
- package/dist/cjs/components/atoms/Tag/Tag.js +5 -33
- package/dist/cjs/components/atoms/Tag/Tag.js.map +1 -1
- package/dist/cjs/components/atoms/Text/Text.js +4 -31
- package/dist/cjs/components/atoms/Text/Text.js.map +1 -1
- package/dist/cjs/components/atoms/Text/styled.js +3 -3
- package/dist/cjs/components/atoms/Text/styled.js.map +1 -1
- package/dist/cjs/components/atoms/TextArea/TextArea.js +29 -83
- package/dist/cjs/components/atoms/TextArea/TextArea.js.map +1 -1
- package/dist/cjs/components/molecules/Calendar/Calendar.js +8 -40
- package/dist/cjs/components/molecules/Calendar/Calendar.js.map +1 -1
- package/dist/cjs/components/molecules/DatePicker/DatePicker.js +15 -48
- package/dist/cjs/components/molecules/DatePicker/DatePicker.js.map +1 -1
- package/dist/cjs/components/molecules/DateTimePicker/DateTimePicker.js +12 -43
- package/dist/cjs/components/molecules/DateTimePicker/DateTimePicker.js.map +1 -1
- package/dist/cjs/components/molecules/DateTimeSelector/DateTimeSelector.js +8 -40
- package/dist/cjs/components/molecules/DateTimeSelector/DateTimeSelector.js.map +1 -1
- package/dist/cjs/components/molecules/Grid/Grid.js +20 -55
- package/dist/cjs/components/molecules/Grid/Grid.js.map +1 -1
- package/dist/cjs/components/molecules/Grid/Item/Item.js +28 -75
- package/dist/cjs/components/molecules/Grid/Item/Item.js.map +1 -1
- package/dist/cjs/components/molecules/IconTextButton/IconTextButton.js +13 -47
- package/dist/cjs/components/molecules/IconTextButton/IconTextButton.js.map +1 -1
- package/dist/cjs/components/molecules/IconTextButton/TextComponent.js +7 -23
- package/dist/cjs/components/molecules/IconTextButton/TextComponent.js.map +1 -1
- package/dist/cjs/components/molecules/IconTextButton/styled.js +3 -3
- package/dist/cjs/components/molecules/IconTextButton/styled.js.map +1 -1
- package/dist/cjs/components/molecules/InputPassword/InputPassword.js +4 -35
- package/dist/cjs/components/molecules/InputPassword/InputPassword.js.map +1 -1
- package/dist/cjs/components/molecules/LabeledSwitch/LabelComponent.js +15 -47
- package/dist/cjs/components/molecules/LabeledSwitch/LabelComponent.js.map +1 -1
- package/dist/cjs/components/molecules/LabeledSwitch/LabeledSwitch.js +14 -49
- package/dist/cjs/components/molecules/LabeledSwitch/LabeledSwitch.js.map +1 -1
- package/dist/cjs/components/molecules/LabeledSwitch/styled.js +2 -2
- package/dist/cjs/components/molecules/LabeledSwitch/styled.js.map +1 -1
- package/dist/cjs/components/molecules/Select/Modal.js +25 -71
- package/dist/cjs/components/molecules/Select/Modal.js.map +1 -1
- package/dist/cjs/components/molecules/Select/Select.js +37 -91
- package/dist/cjs/components/molecules/Select/Select.js.map +1 -1
- package/dist/cjs/components/molecules/Select/styled.js +3 -6
- package/dist/cjs/components/molecules/Select/styled.js.map +1 -1
- package/dist/cjs/components/molecules/Snackbar/Snackbar.js +10 -41
- package/dist/cjs/components/molecules/Snackbar/Snackbar.js.map +1 -1
- package/dist/esm/components/atoms/Avatar/Avatar.js +3 -21
- package/dist/esm/components/atoms/Avatar/Avatar.js.map +1 -1
- package/dist/esm/components/atoms/Badge/Badge.js +9 -43
- package/dist/esm/components/atoms/Badge/Badge.js.map +1 -1
- package/dist/esm/components/atoms/BottomNavigator/BottomNavigator.js +14 -43
- package/dist/esm/components/atoms/BottomNavigator/BottomNavigator.js.map +1 -1
- package/dist/esm/components/atoms/BottomNavigator/Item.js +13 -43
- package/dist/esm/components/atoms/BottomNavigator/Item.js.map +1 -1
- package/dist/esm/components/atoms/Button/Button.js +9 -42
- package/dist/esm/components/atoms/Button/Button.js.map +1 -1
- package/dist/esm/components/atoms/Button/States/Error.js +6 -24
- package/dist/esm/components/atoms/Button/States/Error.js.map +1 -1
- package/dist/esm/components/atoms/Button/States/Loading.js +3 -21
- package/dist/esm/components/atoms/Button/States/Loading.js.map +1 -1
- package/dist/esm/components/atoms/Button/States/Success.js +3 -21
- package/dist/esm/components/atoms/Button/States/Success.js.map +1 -1
- package/dist/esm/components/atoms/GroupButton/GroupButtonOption.js +3 -21
- package/dist/esm/components/atoms/GroupButton/GroupButtonOption.js.map +1 -1
- package/dist/esm/components/atoms/Header/Header.js +18 -48
- package/dist/esm/components/atoms/Header/Header.js.map +1 -1
- package/dist/esm/components/atoms/Input/Input.js +32 -84
- package/dist/esm/components/atoms/Input/Input.js.map +1 -1
- package/dist/esm/components/atoms/InputMask/InputMask.js +29 -83
- package/dist/esm/components/atoms/InputMask/InputMask.js.map +1 -1
- package/dist/esm/components/atoms/Modal/ModalGroupManager.js +5 -33
- package/dist/esm/components/atoms/Modal/ModalGroupManager.js.map +1 -1
- package/dist/esm/components/atoms/Modal/ModalLifecycleHandler.js +67 -86
- package/dist/esm/components/atoms/Modal/ModalLifecycleHandler.js.map +1 -1
- package/dist/esm/components/atoms/Modal/useLazyModalManager.js +1 -1
- package/dist/esm/components/atoms/Modal/useLazyModalManager.js.map +1 -1
- package/dist/esm/components/atoms/Modal/useModalManager.js +1 -1
- package/dist/esm/components/atoms/Modal/useModalManager.js.map +1 -1
- package/dist/esm/components/atoms/Skeleton/Pulse.js +4 -5
- package/dist/esm/components/atoms/Skeleton/Pulse.js.map +1 -1
- package/dist/esm/components/atoms/Skeleton/Skeleton.js +13 -47
- package/dist/esm/components/atoms/Skeleton/Skeleton.js.map +1 -1
- package/dist/esm/components/atoms/Skeleton/Wave.js +5 -6
- package/dist/esm/components/atoms/Skeleton/Wave.js.map +1 -1
- package/dist/esm/components/atoms/SnappingSlider/SnappingSlider.js +11 -43
- package/dist/esm/components/atoms/SnappingSlider/SnappingSlider.js.map +1 -1
- package/dist/esm/components/atoms/Tag/Tag.js +5 -33
- package/dist/esm/components/atoms/Tag/Tag.js.map +1 -1
- package/dist/esm/components/atoms/Text/Text.js +4 -31
- package/dist/esm/components/atoms/Text/Text.js.map +1 -1
- package/dist/esm/components/atoms/Text/styled.js +3 -3
- package/dist/esm/components/atoms/Text/styled.js.map +1 -1
- package/dist/esm/components/atoms/TextArea/TextArea.js +29 -83
- package/dist/esm/components/atoms/TextArea/TextArea.js.map +1 -1
- package/dist/esm/components/molecules/Calendar/Calendar.js +8 -40
- package/dist/esm/components/molecules/Calendar/Calendar.js.map +1 -1
- package/dist/esm/components/molecules/DatePicker/DatePicker.js +15 -48
- package/dist/esm/components/molecules/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/molecules/DateTimePicker/DateTimePicker.js +12 -43
- package/dist/esm/components/molecules/DateTimePicker/DateTimePicker.js.map +1 -1
- package/dist/esm/components/molecules/DateTimeSelector/DateTimeSelector.js +8 -40
- package/dist/esm/components/molecules/DateTimeSelector/DateTimeSelector.js.map +1 -1
- package/dist/esm/components/molecules/Grid/Grid.js +20 -55
- package/dist/esm/components/molecules/Grid/Grid.js.map +1 -1
- package/dist/esm/components/molecules/Grid/Item/Item.js +28 -75
- package/dist/esm/components/molecules/Grid/Item/Item.js.map +1 -1
- package/dist/esm/components/molecules/IconTextButton/IconTextButton.js +13 -47
- package/dist/esm/components/molecules/IconTextButton/IconTextButton.js.map +1 -1
- package/dist/esm/components/molecules/IconTextButton/TextComponent.js +7 -23
- package/dist/esm/components/molecules/IconTextButton/TextComponent.js.map +1 -1
- package/dist/esm/components/molecules/IconTextButton/styled.js +3 -3
- package/dist/esm/components/molecules/IconTextButton/styled.js.map +1 -1
- package/dist/esm/components/molecules/InputPassword/InputPassword.js +4 -35
- package/dist/esm/components/molecules/InputPassword/InputPassword.js.map +1 -1
- package/dist/esm/components/molecules/LabeledSwitch/LabelComponent.js +15 -47
- package/dist/esm/components/molecules/LabeledSwitch/LabelComponent.js.map +1 -1
- package/dist/esm/components/molecules/LabeledSwitch/LabeledSwitch.js +14 -49
- package/dist/esm/components/molecules/LabeledSwitch/LabeledSwitch.js.map +1 -1
- package/dist/esm/components/molecules/LabeledSwitch/styled.js +2 -2
- package/dist/esm/components/molecules/LabeledSwitch/styled.js.map +1 -1
- package/dist/esm/components/molecules/Select/Modal.js +25 -71
- package/dist/esm/components/molecules/Select/Modal.js.map +1 -1
- package/dist/esm/components/molecules/Select/Select.js +38 -92
- package/dist/esm/components/molecules/Select/Select.js.map +1 -1
- package/dist/esm/components/molecules/Select/styled.js +3 -6
- package/dist/esm/components/molecules/Select/styled.js.map +1 -1
- package/dist/esm/components/molecules/Snackbar/Snackbar.js +10 -41
- package/dist/esm/components/molecules/Snackbar/Snackbar.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","sources":["../../../../../src/components/molecules/Select/Modal.tsx"],"sourcesContent":["import {\n Checkbox,\n getStatusBarHeight,\n RadioButton,\n RFValue,\n useDebouncedState,\n} from '@tecsinapse/react-core';\nimport * as React from 'react';\nimport { FlatList, ListRenderItemInfo, View } from 'react-native';\nimport { Button } from '../../atoms/Button';\nimport { Header } from '../../atoms/Header';\nimport { Input } from '../../atoms/Input';\nimport { IBaseModal, ModalView } from '../../atoms/Modal';\nimport { Text } from '../../atoms/Text';\nimport { SelectNativeProps } from './Select';\nimport {\n FetchIndicator,\n getStyledModal,\n ListItem,\n ModalFooter,\n SearchBarContainer,\n SelectIcon,\n TextTitleModal,\n} from './styled';\n\ninterface LoadingProps {\n loading?: boolean;\n}\n\nconst Component = <Data, Type extends 'single' | 'multi'>({\n options,\n keyExtractor,\n labelExtractor,\n hideSearchBar,\n searchBarPlaceholder,\n focused,\n type,\n value,\n onSelect,\n onSearch,\n selectModalTitle,\n selectModalTitleComponent,\n confirmButtonText,\n loading,\n close,\n closeOnPick,\n ...others\n}: SelectNativeProps<Data, Type> & LoadingProps & IBaseModal): JSX.Element => {\n const [selectedValues, setSelectedValues] = React.useState<Data[]>([]);\n const [searchArg, setSearchArg] = useDebouncedState<string>('', onSearch);\n const ModalComponent = React.useMemo(\n () => getStyledModal(getStatusBarHeight(true)),\n []\n );\n const _closeOnPick = closeOnPick && type === 'single';\n\n // Resets the temporary state to the initial state whenever the\n // modal is reopened or the value changes\n React.useEffect(() => {\n setSelectedValues(\n (value ? (type === 'multi' ? value : [value]) : []) as Data[]\n );\n }, [value, focused, setSelectedValues]);\n\n const getData = React.useCallback(\n (options: Data[]) => {\n return options?.map((option, index) => ({\n ...option,\n _checked:\n type === 'multi'\n ? !!selectedValues.find(\n value =>\n keyExtractor(option, index) == keyExtractor(value, index)\n )\n : keyExtractor((selectedValues[0] || {}) as Data, index) ==\n keyExtractor(option, index),\n }));\n },\n [keyExtractor, selectedValues, type]\n );\n\n const data = React.useMemo(\n () => (typeof options !== 'function' ? getData(options) : []),\n [options, getData]\n );\n\n const handlePressItem = React.useCallback(\n (option: Data) => {\n setSelectedValues(selectedValues => {\n if (type === 'multi') {\n const newArr: Data[] = [];\n let found = false;\n for (const value of selectedValues) {\n if (keyExtractor(value) != keyExtractor(option)) newArr.push(value);\n else found = true;\n }\n if (!found) newArr.push(option);\n return newArr;\n }\n return keyExtractor((selectedValues[0] || {}) as Data) ===\n keyExtractor(option)\n ? []\n : [option];\n });\n },\n [selectedValues, setSelectedValues, keyExtractor, type]\n );\n\n React.useEffect(() => {\n if (_closeOnPick && selectedValues[0] && selectedValues[0] !== value) {\n handleConfirm();\n }\n }, [selectedValues[0], value, closeOnPick]);\n\n const handleConfirm = React.useCallback(() => {\n // TS Workaround since TS won't infer the ternary operator's result type correctly\n type OnSelectArg = Parameters<typeof onSelect>[0];\n onSelect(\n (type === 'single' ? selectedValues[0] : selectedValues) as OnSelectArg\n );\n close?.();\n }, [selectedValues]);\n\n const optionBuilder = React.useCallback(\n ({ item }: ListRenderItemInfo<Data & { _checked: boolean }>) => (\n <MemoizedOption\n item={item}\n type={type}\n handlePressItem={handlePressItem}\n labelExtractor={labelExtractor}\n />\n ),\n []\n );\n\n const anyChecked = data.filter(item => item._checked).length;\n const dataLengthChanged = data.length;\n\n const memoizedFlatlist = React.useMemo(\n () => (\n <FlatList\n data={data}\n keyExtractor={keyExtractor}\n fadingEdgeLength={200}\n renderItem={optionBuilder}\n />\n ),\n [selectedValues, anyChecked, dataLengthChanged]\n );\n\n const titleTextModal = selectModalTitle ? (\n <TextTitleModal\n typography=\"h4\"\n fontWeight=\"bold\"\n numberOfLines={3}\n style={{ maxWidth: RFValue(250) }}\n >\n {selectModalTitle}\n </TextTitleModal>\n ) : null;\n\n const headerContent = selectModalTitleComponent\n ? selectModalTitleComponent\n : titleTextModal;\n\n return (\n <ModalView {...others} BoxComponent={ModalComponent} showCloseBar={false}>\n <Header\n rightButton={{\n onPress: close,\n icon: {\n name: 'close',\n type: 'material-community',\n fontColor: 'light',\n },\n }}\n >\n {headerContent}\n </Header>\n\n {!hideSearchBar && (\n <SearchBarContainer>\n <Input\n placeholder={searchBarPlaceholder}\n value={searchArg}\n onChange={setSearchArg}\n leftComponent={\n <SelectIcon name=\"search\" type=\"ionicon\" size=\"centi\" />\n }\n />\n </SearchBarContainer>\n )}\n\n {loading && (\n <FetchIndicator animating={true} color={'grey'} size={'large'} />\n )}\n\n {memoizedFlatlist}\n\n {!_closeOnPick && (\n <ModalFooter>\n <Button\n variant={'filled'}\n color={'primary'}\n onPress={handleConfirm}\n disabled={loading}\n >\n <Text fontColor={'light'} fontWeight=\"bold\">\n {confirmButtonText}\n </Text>\n </Button>\n </ModalFooter>\n )}\n </ModalView>\n );\n};\n\ninterface IOption<T> {\n item: T & { _checked: boolean };\n type: 'single' | 'multi';\n labelExtractor: (option: T) => string;\n handlePressItem: (option: T) => void;\n}\n\nconst MemoizedOption = <T,>({\n handlePressItem,\n labelExtractor,\n item,\n type,\n}: IOption<T>): JSX.Element => {\n return React.useMemo(() => {\n const label = labelExtractor(item);\n return (\n <ListItem onPress={() => handlePressItem(item)}>\n <View pointerEvents={'none'}>\n {type === 'multi' ? (\n <Checkbox\n color={'primary'}\n labelPosition={'right'}\n checked={item._checked}\n >\n <Text fontWeight={item._checked ? 'bold' : 'regular'}>\n {label}\n </Text>\n </Checkbox>\n ) : (\n <RadioButton\n color={'primary'}\n labelPosition={'right'}\n checked={item._checked}\n >\n <Text fontWeight={item._checked ? 'bold' : 'regular'}>\n {label}\n </Text>\n </RadioButton>\n )}\n </View>\n </ListItem>\n );\n }, [item._checked]);\n};\n\nexport const Modal = Component;\n"],"names":["React","useDebouncedState","getStyledModal","getStatusBarHeight","options","value","selectedValues","FlatList","TextTitleModal","RFValue","ModalView","SearchBarContainer","SelectIcon","FetchIndicator","ModalFooter","Button","ListItem","View","Checkbox","RadioButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Modal.js","sources":["../../../../../src/components/molecules/Select/Modal.tsx"],"sourcesContent":["import {\n Checkbox,\n getStatusBarHeight,\n RadioButton,\n RFValue,\n useDebouncedState,\n} from '@tecsinapse/react-core';\nimport * as React from 'react';\nimport { FlatList, ListRenderItemInfo, View } from 'react-native';\nimport { Button } from '../../atoms/Button';\nimport { Header } from '../../atoms/Header';\nimport { Input } from '../../atoms/Input';\nimport { IBaseModal, ModalView } from '../../atoms/Modal';\nimport { Text } from '../../atoms/Text';\nimport { SelectNativeProps } from './Select';\nimport {\n FetchIndicator,\n getStyledModal,\n ListItem,\n ModalFooter,\n SearchBarContainer,\n SelectIcon,\n TextTitleModal,\n} from './styled';\n\ninterface LoadingProps {\n loading?: boolean;\n}\n\nconst Component = <Data, Type extends 'single' | 'multi'>({\n options,\n keyExtractor,\n labelExtractor,\n hideSearchBar,\n searchBarPlaceholder,\n focused,\n type,\n value,\n onSelect,\n onSearch,\n selectModalTitle,\n selectModalTitleComponent,\n confirmButtonText,\n loading,\n close,\n closeOnPick,\n ...others\n}: SelectNativeProps<Data, Type> & LoadingProps & IBaseModal): JSX.Element => {\n const [selectedValues, setSelectedValues] = React.useState<Data[]>([]);\n const [searchArg, setSearchArg] = useDebouncedState<string>('', onSearch);\n const ModalComponent = React.useMemo(\n () => getStyledModal(getStatusBarHeight(true)),\n []\n );\n const _closeOnPick = closeOnPick && type === 'single';\n\n // Resets the temporary state to the initial state whenever the\n // modal is reopened or the value changes\n React.useEffect(() => {\n setSelectedValues(\n (value ? (type === 'multi' ? value : [value]) : []) as Data[]\n );\n }, [value, focused, setSelectedValues]);\n\n const getData = React.useCallback(\n (options: Data[]) => {\n return options?.map((option, index) => ({\n ...option,\n _checked:\n type === 'multi'\n ? !!selectedValues.find(\n value =>\n keyExtractor(option, index) == keyExtractor(value, index)\n )\n : keyExtractor((selectedValues[0] || {}) as Data, index) ==\n keyExtractor(option, index),\n }));\n },\n [keyExtractor, selectedValues, type]\n );\n\n const data = React.useMemo(\n () => (typeof options !== 'function' ? getData(options) : []),\n [options, getData]\n );\n\n const handlePressItem = React.useCallback(\n (option: Data) => {\n setSelectedValues(selectedValues => {\n if (type === 'multi') {\n const newArr: Data[] = [];\n let found = false;\n for (const value of selectedValues) {\n if (keyExtractor(value) != keyExtractor(option)) newArr.push(value);\n else found = true;\n }\n if (!found) newArr.push(option);\n return newArr;\n }\n return keyExtractor((selectedValues[0] || {}) as Data) ===\n keyExtractor(option)\n ? []\n : [option];\n });\n },\n [selectedValues, setSelectedValues, keyExtractor, type]\n );\n\n React.useEffect(() => {\n if (_closeOnPick && selectedValues[0] && selectedValues[0] !== value) {\n handleConfirm();\n }\n }, [selectedValues[0], value, closeOnPick]);\n\n const handleConfirm = React.useCallback(() => {\n // TS Workaround since TS won't infer the ternary operator's result type correctly\n type OnSelectArg = Parameters<typeof onSelect>[0];\n onSelect(\n (type === 'single' ? selectedValues[0] : selectedValues) as OnSelectArg\n );\n close?.();\n }, [selectedValues]);\n\n const optionBuilder = React.useCallback(\n ({ item }: ListRenderItemInfo<Data & { _checked: boolean }>) => (\n <MemoizedOption\n item={item}\n type={type}\n handlePressItem={handlePressItem}\n labelExtractor={labelExtractor}\n />\n ),\n []\n );\n\n const anyChecked = data.filter(item => item._checked).length;\n const dataLengthChanged = data.length;\n\n const memoizedFlatlist = React.useMemo(\n () => (\n <FlatList\n data={data}\n keyExtractor={keyExtractor}\n fadingEdgeLength={200}\n renderItem={optionBuilder}\n />\n ),\n [selectedValues, anyChecked, dataLengthChanged]\n );\n\n const titleTextModal = selectModalTitle ? (\n <TextTitleModal\n typography=\"h4\"\n fontWeight=\"bold\"\n numberOfLines={3}\n style={{ maxWidth: RFValue(250) }}\n >\n {selectModalTitle}\n </TextTitleModal>\n ) : null;\n\n const headerContent = selectModalTitleComponent\n ? selectModalTitleComponent\n : titleTextModal;\n\n return (\n <ModalView {...others} BoxComponent={ModalComponent} showCloseBar={false}>\n <Header\n rightButton={{\n onPress: close,\n icon: {\n name: 'close',\n type: 'material-community',\n fontColor: 'light',\n },\n }}\n >\n {headerContent}\n </Header>\n\n {!hideSearchBar && (\n <SearchBarContainer>\n <Input\n placeholder={searchBarPlaceholder}\n value={searchArg}\n onChange={setSearchArg}\n leftComponent={\n <SelectIcon name=\"search\" type=\"ionicon\" size=\"centi\" />\n }\n />\n </SearchBarContainer>\n )}\n\n {loading && (\n <FetchIndicator animating={true} color={'grey'} size={'large'} />\n )}\n\n {memoizedFlatlist}\n\n {!_closeOnPick && (\n <ModalFooter>\n <Button\n variant={'filled'}\n color={'primary'}\n onPress={handleConfirm}\n disabled={loading}\n >\n <Text fontColor={'light'} fontWeight=\"bold\">\n {confirmButtonText}\n </Text>\n </Button>\n </ModalFooter>\n )}\n </ModalView>\n );\n};\n\ninterface IOption<T> {\n item: T & { _checked: boolean };\n type: 'single' | 'multi';\n labelExtractor: (option: T) => string;\n handlePressItem: (option: T) => void;\n}\n\nconst MemoizedOption = <T,>({\n handlePressItem,\n labelExtractor,\n item,\n type,\n}: IOption<T>): JSX.Element => {\n return React.useMemo(() => {\n const label = labelExtractor(item);\n return (\n <ListItem onPress={() => handlePressItem(item)}>\n <View pointerEvents={'none'}>\n {type === 'multi' ? (\n <Checkbox\n color={'primary'}\n labelPosition={'right'}\n checked={item._checked}\n >\n <Text fontWeight={item._checked ? 'bold' : 'regular'}>\n {label}\n </Text>\n </Checkbox>\n ) : (\n <RadioButton\n color={'primary'}\n labelPosition={'right'}\n checked={item._checked}\n >\n <Text fontWeight={item._checked ? 'bold' : 'regular'}>\n {label}\n </Text>\n </RadioButton>\n )}\n </View>\n </ListItem>\n );\n }, [item._checked]);\n};\n\nexport const Modal = Component;\n"],"names":["React","useDebouncedState","getStyledModal","getStatusBarHeight","options","value","selectedValues","FlatList","TextTitleModal","RFValue","ModalView","SearchBarContainer","SelectIcon","FetchIndicator","ModalFooter","Button","ListItem","View","Checkbox","RadioButton"],"mappings":"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"}
|
|
@@ -32,90 +32,35 @@ function _interopNamespace(e) {
|
|
|
32
32
|
|
|
33
33
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
var _b = _a, {
|
|
65
|
-
value,
|
|
66
|
-
options,
|
|
67
|
-
keyExtractor,
|
|
68
|
-
groupKeyExtractor,
|
|
69
|
-
onSelect,
|
|
70
|
-
type,
|
|
71
|
-
labelExtractor,
|
|
72
|
-
placeholder,
|
|
73
|
-
onFocus,
|
|
74
|
-
onBlur,
|
|
75
|
-
disabled,
|
|
76
|
-
onSearch,
|
|
77
|
-
selectModalTitle,
|
|
78
|
-
selectModalTitleComponent,
|
|
79
|
-
searchBarPlaceholder,
|
|
80
|
-
hideSearchBar,
|
|
81
|
-
confirmButtonText,
|
|
82
|
-
rightComponent,
|
|
83
|
-
variant = "default",
|
|
84
|
-
hintComponent,
|
|
85
|
-
hint,
|
|
86
|
-
style,
|
|
87
|
-
controlComponent,
|
|
88
|
-
closeOnPick = type === "single",
|
|
89
|
-
label,
|
|
90
|
-
numberOfLines
|
|
91
|
-
} = _b, rest = __objRest(_b, [
|
|
92
|
-
"value",
|
|
93
|
-
"options",
|
|
94
|
-
"keyExtractor",
|
|
95
|
-
"groupKeyExtractor",
|
|
96
|
-
"onSelect",
|
|
97
|
-
"type",
|
|
98
|
-
"labelExtractor",
|
|
99
|
-
"placeholder",
|
|
100
|
-
"onFocus",
|
|
101
|
-
"onBlur",
|
|
102
|
-
"disabled",
|
|
103
|
-
"onSearch",
|
|
104
|
-
"selectModalTitle",
|
|
105
|
-
"selectModalTitleComponent",
|
|
106
|
-
"searchBarPlaceholder",
|
|
107
|
-
"hideSearchBar",
|
|
108
|
-
"confirmButtonText",
|
|
109
|
-
"rightComponent",
|
|
110
|
-
"variant",
|
|
111
|
-
"hintComponent",
|
|
112
|
-
"hint",
|
|
113
|
-
"style",
|
|
114
|
-
"controlComponent",
|
|
115
|
-
"closeOnPick",
|
|
116
|
-
"label",
|
|
117
|
-
"numberOfLines"
|
|
118
|
-
]);
|
|
35
|
+
function Select({
|
|
36
|
+
value,
|
|
37
|
+
options,
|
|
38
|
+
keyExtractor,
|
|
39
|
+
groupKeyExtractor,
|
|
40
|
+
onSelect,
|
|
41
|
+
type,
|
|
42
|
+
labelExtractor,
|
|
43
|
+
placeholder,
|
|
44
|
+
onFocus,
|
|
45
|
+
onBlur,
|
|
46
|
+
disabled,
|
|
47
|
+
onSearch,
|
|
48
|
+
selectModalTitle,
|
|
49
|
+
selectModalTitleComponent,
|
|
50
|
+
searchBarPlaceholder,
|
|
51
|
+
hideSearchBar,
|
|
52
|
+
confirmButtonText,
|
|
53
|
+
rightComponent,
|
|
54
|
+
variant = "default",
|
|
55
|
+
hintComponent,
|
|
56
|
+
hint,
|
|
57
|
+
style,
|
|
58
|
+
controlComponent,
|
|
59
|
+
closeOnPick = type === "single",
|
|
60
|
+
label,
|
|
61
|
+
numberOfLines,
|
|
62
|
+
...rest
|
|
63
|
+
}) {
|
|
119
64
|
const { focused, handleBlur, handleFocus } = reactCore.useInputFocus(
|
|
120
65
|
onFocus,
|
|
121
66
|
onBlur,
|
|
@@ -166,7 +111,7 @@ function Select(_a) {
|
|
|
166
111
|
} else
|
|
167
112
|
setSelectOptions(result);
|
|
168
113
|
} else {
|
|
169
|
-
if (value
|
|
114
|
+
if (value?.length) {
|
|
170
115
|
const selectedValues = value.filter(
|
|
171
116
|
(v) => !result.find(
|
|
172
117
|
(current) => keyExtractor(v) === keyExtractor(current)
|
|
@@ -193,7 +138,7 @@ function Select(_a) {
|
|
|
193
138
|
return _placeholder;
|
|
194
139
|
else {
|
|
195
140
|
const options2 = selectOptions.length > 0 ? selectOptions : value;
|
|
196
|
-
return options2
|
|
141
|
+
return options2?.reduce(
|
|
197
142
|
(acc, option, index) => value.find(
|
|
198
143
|
(key) => keyExtractor(option, index) == keyExtractor(key, index)
|
|
199
144
|
) ? acc + labelExtractor(option) + ", " : acc,
|
|
@@ -203,10 +148,10 @@ function Select(_a) {
|
|
|
203
148
|
} else {
|
|
204
149
|
if (!value)
|
|
205
150
|
return _placeholder;
|
|
206
|
-
const selectedOption = selectOptions
|
|
151
|
+
const selectedOption = selectOptions?.find(
|
|
207
152
|
(option, index) => keyExtractor(option, index) == keyExtractor(value, index)
|
|
208
153
|
);
|
|
209
|
-
return labelExtractor(selectedOption
|
|
154
|
+
return labelExtractor(selectedOption ?? value);
|
|
210
155
|
}
|
|
211
156
|
}, [_placeholder, value, selectOptions]);
|
|
212
157
|
modal.sync(
|
|
@@ -235,7 +180,7 @@ function Select(_a) {
|
|
|
235
180
|
handleFocus();
|
|
236
181
|
await handleLazyFocus();
|
|
237
182
|
};
|
|
238
|
-
return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, controlComponent ? controlComponent(handlePressInput, getDisplayValue() || "") : /* @__PURE__ */ React__namespace.createElement(reactCore.HintInputContainer,
|
|
183
|
+
return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, controlComponent ? controlComponent(handlePressInput, getDisplayValue() || "") : /* @__PURE__ */ React__namespace.createElement(reactCore.HintInputContainer, {
|
|
239
184
|
viewStyle: style,
|
|
240
185
|
onPress: handlePressInput,
|
|
241
186
|
focused,
|
|
@@ -249,8 +194,9 @@ function Select(_a) {
|
|
|
249
194
|
name: "chevron-down",
|
|
250
195
|
type: "ionicon",
|
|
251
196
|
size: "centi"
|
|
252
|
-
}), rightComponent)
|
|
253
|
-
|
|
197
|
+
}), rightComponent),
|
|
198
|
+
...rest
|
|
199
|
+
}, /* @__PURE__ */ React__namespace.createElement(styled.StyledSelectionText, {
|
|
254
200
|
numberOfLines,
|
|
255
201
|
fontWeight: "bold",
|
|
256
202
|
disabled
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sources":["../../../../../src/components/molecules/Select/Select.tsx"],"sourcesContent":["import {\n HintInputContainer,\n InputContainerProps,\n useInputFocus,\n} from '@tecsinapse/react-core';\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport { useLazyModalManager } from '../../atoms/Modal';\nimport { Text } from '../../atoms/Text';\nimport { Modal } from './Modal';\nimport { SelectIcon, StyledSelectionText } from './styled';\n\nexport interface SelectNativeProps<Data, Type extends 'single' | 'multi'>\n extends Omit<InputContainerProps, 'value' | 'onChange' | 'onChangeText'> {\n options: ((searchInput?: string) => Promise<Data[]>) | Data[];\n onSelect: (\n option: Type extends 'single' ? Data | undefined : Data[]\n ) => never | void;\n value: Type extends 'single' ? Data | null | undefined : Data[];\n type: Type;\n\n keyExtractor: (t: Data, index?: number) => string;\n labelExtractor: (t: Data) => string;\n groupKeyExtractor?: (t: Data) => string;\n\n hideSearchBar?: boolean;\n placeholder?: string;\n onFocus?: () => void | never;\n onBlur?: () => void | never;\n onSearch?:\n | ((searchArg: string) => void)\n | ((searchInput?: string) => Promise<Data[]>)\n | never;\n searchBarPlaceholder?: string;\n confirmButtonText?: string;\n selectModalTitle?: string;\n selectModalTitleComponent?: JSX.Element;\n closeOnPick?: boolean;\n controlComponent?: (\n onPress: () => void,\n displayValue?: string\n ) => JSX.Element;\n numberOfLines?: number;\n}\n\nfunction Select<Data, Type extends 'single' | 'multi'>({\n /** Select props */\n value,\n options,\n keyExtractor,\n groupKeyExtractor,\n onSelect,\n type,\n labelExtractor,\n placeholder,\n onFocus,\n onBlur,\n disabled,\n onSearch,\n selectModalTitle,\n selectModalTitleComponent,\n searchBarPlaceholder,\n hideSearchBar,\n confirmButtonText,\n rightComponent,\n variant = 'default',\n hintComponent,\n hint,\n style,\n controlComponent,\n closeOnPick = type === 'single',\n label,\n numberOfLines,\n ...rest\n}: SelectNativeProps<Data, Type>): JSX.Element {\n const { focused, handleBlur, handleFocus } = useInputFocus(\n onFocus,\n onBlur,\n !disabled\n );\n\n const [selectOptions, setSelectOptions] = useState<Data[]>([]);\n const modal = useLazyModalManager();\n\n // TODO: Add Skeleton to modal height when loading is true\n const [loading, setLoading] = useState<boolean>(false);\n\n const onlyLabel = label && !placeholder;\n const hasValue =\n type === 'single' ? !!value : ((value || []) as []).length > 0;\n const _placeholder = onlyLabel ? label : placeholder;\n const _label = hasValue ? label : undefined;\n\n useEffect(() => {\n if (typeof options !== 'function') {\n setSelectOptions(options);\n }\n }, [options]);\n\n const handleLazyFocus = React.useCallback(async () => {\n if (typeof options === 'function' && !onSearch) {\n setLoading(true);\n try {\n const result = await options();\n if (result) {\n if (\n value &&\n !result.find(v => keyExtractor(value as Data) === keyExtractor(v))\n ) {\n setSelectOptions([value as Data, ...result]);\n } else setSelectOptions(result);\n }\n } catch (e) {\n // TODO: Catch error\n } finally {\n setLoading(false);\n }\n }\n }, [options, value, setSelectOptions]);\n\n const handleOnSearch = React.useCallback(\n async (searchInput: string | undefined) => {\n if (searchInput !== undefined && onSearch) {\n setLoading(true);\n modal.requestUpdate();\n try {\n const result = await onSearch(searchInput);\n if (result) {\n if (type === 'single') {\n if (\n value &&\n !result.find(\n v => keyExtractor(value as Data) === keyExtractor(v)\n )\n ) {\n setSelectOptions([value as Data, ...result]);\n } else setSelectOptions(result);\n } else {\n if ((value as Data[])?.length) {\n const selectedValues =\n (value as Data[]).filter(\n v =>\n !result.find(\n current =>\n keyExtractor(v as Data) === keyExtractor(current)\n )\n ) || [];\n setSelectOptions([...selectedValues, ...result]);\n } else {\n setSelectOptions(result);\n }\n }\n }\n } catch (e) {\n // TODO: Catch error\n } finally {\n modal.requestUpdate();\n setLoading(false);\n }\n }\n },\n [options, value, keyExtractor]\n );\n\n const getDisplayValue = React.useCallback(() => {\n if (Array.isArray(value)) {\n if (value.length === 0) return _placeholder;\n else {\n const options =\n selectOptions.length > 0 ? selectOptions : (value as Data[]);\n return options\n ?.reduce(\n (acc, option, index) =>\n value.find(\n key => keyExtractor(option, index) == keyExtractor(key, index)\n )\n ? acc + labelExtractor(option) + ', '\n : acc,\n ''\n )\n .slice(0, -2);\n }\n } else {\n if (!value) return _placeholder;\n const selectedOption = selectOptions?.find(\n (option, index) =>\n keyExtractor(option, index) == keyExtractor(value as Data, index)\n );\n return labelExtractor(selectedOption ?? (value as Data));\n }\n }, [_placeholder, value, selectOptions]);\n\n modal.sync(\n <Modal\n options={selectOptions || []}\n focused={true}\n keyExtractor={keyExtractor}\n labelExtractor={labelExtractor}\n groupKeyExtractor={groupKeyExtractor}\n searchBarPlaceholder={searchBarPlaceholder}\n type={type}\n onSelect={onSelect}\n value={value}\n hideSearchBar={hideSearchBar}\n onSearch={handleOnSearch}\n selectModalTitle={selectModalTitle}\n selectModalTitleComponent={selectModalTitleComponent}\n confirmButtonText={confirmButtonText}\n loading={loading}\n onClose={handleBlur}\n closeOnPick={closeOnPick}\n />\n );\n\n const handlePressInput = async () => {\n modal.show();\n handleFocus();\n await handleLazyFocus();\n };\n\n return (\n <>\n {controlComponent ? (\n controlComponent(handlePressInput, getDisplayValue() || '')\n ) : (\n <HintInputContainer\n viewStyle={style}\n onPress={handlePressInput}\n focused={focused}\n disabled={disabled}\n LabelComponent={Text}\n variant={variant}\n hint={hint}\n hintComponent={hintComponent}\n label={_label}\n rightComponent={\n <>\n <SelectIcon name=\"chevron-down\" type=\"ionicon\" size=\"centi\" />\n {rightComponent}\n </>\n }\n {...rest}\n >\n <StyledSelectionText\n numberOfLines={numberOfLines}\n fontWeight=\"bold\"\n disabled={disabled}\n >\n {getDisplayValue() || ' '}\n </StyledSelectionText>\n </HintInputContainer>\n )}\n </>\n );\n}\n\nexport default Select;\n"],"names":["useInputFocus","useState","useLazyModalManager","useEffect","React","options","Modal","HintInputContainer","SelectIcon","StyledSelectionText"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../../../../src/components/molecules/Select/Select.tsx"],"sourcesContent":["import {\n HintInputContainer,\n InputContainerProps,\n useInputFocus,\n} from '@tecsinapse/react-core';\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport { useLazyModalManager } from '../../atoms/Modal';\nimport { Text } from '../../atoms/Text';\nimport { Modal } from './Modal';\nimport { SelectIcon, StyledSelectionText } from './styled';\n\nexport interface SelectNativeProps<Data, Type extends 'single' | 'multi'>\n extends Omit<InputContainerProps, 'value' | 'onChange' | 'onChangeText'> {\n options: ((searchInput?: string) => Promise<Data[]>) | Data[];\n onSelect: (\n option: Type extends 'single' ? Data | undefined : Data[]\n ) => never | void;\n value: Type extends 'single' ? Data | null | undefined : Data[];\n type: Type;\n\n keyExtractor: (t: Data, index?: number) => string;\n labelExtractor: (t: Data) => string;\n groupKeyExtractor?: (t: Data) => string;\n\n hideSearchBar?: boolean;\n placeholder?: string;\n onFocus?: () => void | never;\n onBlur?: () => void | never;\n onSearch?:\n | ((searchArg: string) => void)\n | ((searchInput?: string) => Promise<Data[]>)\n | never;\n searchBarPlaceholder?: string;\n confirmButtonText?: string;\n selectModalTitle?: string;\n selectModalTitleComponent?: JSX.Element;\n closeOnPick?: boolean;\n controlComponent?: (\n onPress: () => void,\n displayValue?: string\n ) => JSX.Element;\n numberOfLines?: number;\n}\n\nfunction Select<Data, Type extends 'single' | 'multi'>({\n /** Select props */\n value,\n options,\n keyExtractor,\n groupKeyExtractor,\n onSelect,\n type,\n labelExtractor,\n placeholder,\n onFocus,\n onBlur,\n disabled,\n onSearch,\n selectModalTitle,\n selectModalTitleComponent,\n searchBarPlaceholder,\n hideSearchBar,\n confirmButtonText,\n rightComponent,\n variant = 'default',\n hintComponent,\n hint,\n style,\n controlComponent,\n closeOnPick = type === 'single',\n label,\n numberOfLines,\n ...rest\n}: SelectNativeProps<Data, Type>): JSX.Element {\n const { focused, handleBlur, handleFocus } = useInputFocus(\n onFocus,\n onBlur,\n !disabled\n );\n\n const [selectOptions, setSelectOptions] = useState<Data[]>([]);\n const modal = useLazyModalManager();\n\n // TODO: Add Skeleton to modal height when loading is true\n const [loading, setLoading] = useState<boolean>(false);\n\n const onlyLabel = label && !placeholder;\n const hasValue =\n type === 'single' ? !!value : ((value || []) as []).length > 0;\n const _placeholder = onlyLabel ? label : placeholder;\n const _label = hasValue ? label : undefined;\n\n useEffect(() => {\n if (typeof options !== 'function') {\n setSelectOptions(options);\n }\n }, [options]);\n\n const handleLazyFocus = React.useCallback(async () => {\n if (typeof options === 'function' && !onSearch) {\n setLoading(true);\n try {\n const result = await options();\n if (result) {\n if (\n value &&\n !result.find(v => keyExtractor(value as Data) === keyExtractor(v))\n ) {\n setSelectOptions([value as Data, ...result]);\n } else setSelectOptions(result);\n }\n } catch (e) {\n // TODO: Catch error\n } finally {\n setLoading(false);\n }\n }\n }, [options, value, setSelectOptions]);\n\n const handleOnSearch = React.useCallback(\n async (searchInput: string | undefined) => {\n if (searchInput !== undefined && onSearch) {\n setLoading(true);\n modal.requestUpdate();\n try {\n const result = await onSearch(searchInput);\n if (result) {\n if (type === 'single') {\n if (\n value &&\n !result.find(\n v => keyExtractor(value as Data) === keyExtractor(v)\n )\n ) {\n setSelectOptions([value as Data, ...result]);\n } else setSelectOptions(result);\n } else {\n if ((value as Data[])?.length) {\n const selectedValues =\n (value as Data[]).filter(\n v =>\n !result.find(\n current =>\n keyExtractor(v as Data) === keyExtractor(current)\n )\n ) || [];\n setSelectOptions([...selectedValues, ...result]);\n } else {\n setSelectOptions(result);\n }\n }\n }\n } catch (e) {\n // TODO: Catch error\n } finally {\n modal.requestUpdate();\n setLoading(false);\n }\n }\n },\n [options, value, keyExtractor]\n );\n\n const getDisplayValue = React.useCallback(() => {\n if (Array.isArray(value)) {\n if (value.length === 0) return _placeholder;\n else {\n const options =\n selectOptions.length > 0 ? selectOptions : (value as Data[]);\n return options\n ?.reduce(\n (acc, option, index) =>\n value.find(\n key => keyExtractor(option, index) == keyExtractor(key, index)\n )\n ? acc + labelExtractor(option) + ', '\n : acc,\n ''\n )\n .slice(0, -2);\n }\n } else {\n if (!value) return _placeholder;\n const selectedOption = selectOptions?.find(\n (option, index) =>\n keyExtractor(option, index) == keyExtractor(value as Data, index)\n );\n return labelExtractor(selectedOption ?? (value as Data));\n }\n }, [_placeholder, value, selectOptions]);\n\n modal.sync(\n <Modal\n options={selectOptions || []}\n focused={true}\n keyExtractor={keyExtractor}\n labelExtractor={labelExtractor}\n groupKeyExtractor={groupKeyExtractor}\n searchBarPlaceholder={searchBarPlaceholder}\n type={type}\n onSelect={onSelect}\n value={value}\n hideSearchBar={hideSearchBar}\n onSearch={handleOnSearch}\n selectModalTitle={selectModalTitle}\n selectModalTitleComponent={selectModalTitleComponent}\n confirmButtonText={confirmButtonText}\n loading={loading}\n onClose={handleBlur}\n closeOnPick={closeOnPick}\n />\n );\n\n const handlePressInput = async () => {\n modal.show();\n handleFocus();\n await handleLazyFocus();\n };\n\n return (\n <>\n {controlComponent ? (\n controlComponent(handlePressInput, getDisplayValue() || '')\n ) : (\n <HintInputContainer\n viewStyle={style}\n onPress={handlePressInput}\n focused={focused}\n disabled={disabled}\n LabelComponent={Text}\n variant={variant}\n hint={hint}\n hintComponent={hintComponent}\n label={_label}\n rightComponent={\n <>\n <SelectIcon name=\"chevron-down\" type=\"ionicon\" size=\"centi\" />\n {rightComponent}\n </>\n }\n {...rest}\n >\n <StyledSelectionText\n numberOfLines={numberOfLines}\n fontWeight=\"bold\"\n disabled={disabled}\n >\n {getDisplayValue() || ' '}\n </StyledSelectionText>\n </HintInputContainer>\n )}\n </>\n );\n}\n\nexport default Select;\n"],"names":["useInputFocus","useState","useLazyModalManager","useEffect","React","options","Modal","HintInputContainer","SelectIcon","StyledSelectionText"],"mappings":"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"}
|
|
@@ -20,13 +20,10 @@ const getStyledModal = (safeTop = 0) => {
|
|
|
20
20
|
`;
|
|
21
21
|
};
|
|
22
22
|
const StyledSelectionText = styled__default["default"](Text)(
|
|
23
|
-
(props) =>
|
|
24
|
-
|
|
25
|
-
return styled.css`
|
|
26
|
-
line-height: ${(_a = props.theme) == null ? void 0 : _a.typography.h5.lineHeight};
|
|
23
|
+
(props) => styled.css`
|
|
24
|
+
line-height: ${props.theme?.typography.h5.lineHeight};
|
|
27
25
|
${reactCore.disabledInputStyles(props)};
|
|
28
|
-
|
|
29
|
-
}
|
|
26
|
+
`
|
|
30
27
|
);
|
|
31
28
|
styled__default["default"](reactNative.View)`
|
|
32
29
|
aspect-ratio: 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styled.js","sources":["../../../../../src/components/molecules/Select/styled.ts"],"sourcesContent":["import styled, { css } from '@emotion/native';\nimport {\n Button,\n ButtonProps,\n disabledInputStyles,\n Icon,\n InputContainerProps,\n PressableSurface,\n PressableSurfaceProps,\n RFValue,\n RFValueStr,\n StyleProps,\n} from '@tecsinapse/react-core';\nimport { ActivityIndicator, ModalProps, View, ViewProps } from 'react-native';\nimport { Input, InputNativeProps } from '../../atoms/Input';\nimport { Text } from '../../atoms/Text';\n\nexport const getStyledModal = (safeTop = 0) => {\n return styled(View)<ModalProps & Partial<StyleProps>>`\n padding-top: ${`${RFValue(safeTop)}px`};\n background-color: ${({ theme }) => theme.miscellaneous.bodyColor};\n height: 100%;\n `;\n};\n\nexport const StyledSelectionText = styled(Text)(\n (props: Partial<InputContainerProps> & Partial<StyleProps>) => css`\n line-height: ${props.theme?.typography.h5.lineHeight};\n ${disabledInputStyles(props)};\n `\n);\n\nexport const Dummy = styled(View)`\n aspect-ratio: 1;\n height: 100%;\n`;\n\nexport const StyledPressableSurface = styled(\n PressableSurface\n)<PressableSurfaceProps>`\n width: 100%;\n`;\n\nexport const Header = styled(View)<ViewProps & Partial<StyleProps>>`\n position: relative;\n width: 100%;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n padding: ${({ theme }) => theme.spacing.deca};\n height: ${RFValueStr('75px')};\n`;\n\nexport const CloseButton = styled(Button)<ButtonProps & Partial<StyleProps>>`\n aspect-ratio: 1;\n height: 100%;\n`;\n\nexport const SearchBarContainer = styled(View)<ViewProps & Partial<StyleProps>>`\n padding: ${({ theme }) => theme.spacing.deca};\n position: relative;\n`;\n\nexport const SearchBar = styled(Input)<InputNativeProps & Partial<StyleProps>>`\n margin-bottom: ${({ theme }) => theme.spacing.deca};\n`;\n\nexport const ListItem = styled(PressableSurface)<\n PressableSurfaceProps & Partial<StyleProps>\n>`\n border-bottom-width: ${RFValueStr('1px')};\n border-color: ${({ theme }) => theme.color.secondary.light};\n padding-vertical: ${({ theme }) => theme.spacing.mili};\n padding-horizontal: ${({ theme }) => theme.spacing.deca};\n`;\n\nexport const ModalFooter = styled(View)<Partial<StyleProps>>`\n width: 100%;\n height: auto;\n bottom: 0;\n background-color: ${({ theme }) => theme.miscellaneous.bodyColor};\n padding: ${({ theme }) => theme.spacing.deca};\n`;\n\nexport const SelectIcon = styled(Icon)<Partial<StyleProps>>`\n padding: ${({ theme }) => theme.spacing.centi};\n color: ${({ theme }) => theme.color.secondary.medium};\n`;\n\nexport const FetchIndicator = styled(ActivityIndicator)`\n align-self: center;\n`;\n\nexport const TextTitleModal = styled(Text)<Partial<StyleProps>>`\n text-align: center;\n`;\n"],"names":["styled","View","RFValue","css","disabledInputStyles","PressableSurface","RFValueStr","Button","Icon","ActivityIndicator"],"mappings":";;;;;;;;;;;;;;AAiBa,MAAA,cAAA,GAAiB,CAAC,OAAA,GAAU,CAAM,KAAA;AAC7C,EAAA,OAAOA,2BAAOC,gBAAI,CAAA,CAAA;AAAA,iBACD,EAAA,CAAA,EAAGC,kBAAQ,OAAO,CAAA,CAAA,EAAA,CAAA,CAAA;AAAA,sBAAA,EACb,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,aAAc,CAAA,SAAA,CAAA;AAAA;AAAA,EAAA,CAAA,CAAA;AAG3D,EAAA;AAEa,MAAA,mBAAA,GAAsBF,2BAAO,IAAI,CAAA;AAAA,EAC5C,CAAC,
|
|
1
|
+
{"version":3,"file":"styled.js","sources":["../../../../../src/components/molecules/Select/styled.ts"],"sourcesContent":["import styled, { css } from '@emotion/native';\nimport {\n Button,\n ButtonProps,\n disabledInputStyles,\n Icon,\n InputContainerProps,\n PressableSurface,\n PressableSurfaceProps,\n RFValue,\n RFValueStr,\n StyleProps,\n} from '@tecsinapse/react-core';\nimport { ActivityIndicator, ModalProps, View, ViewProps } from 'react-native';\nimport { Input, InputNativeProps } from '../../atoms/Input';\nimport { Text } from '../../atoms/Text';\n\nexport const getStyledModal = (safeTop = 0) => {\n return styled(View)<ModalProps & Partial<StyleProps>>`\n padding-top: ${`${RFValue(safeTop)}px`};\n background-color: ${({ theme }) => theme.miscellaneous.bodyColor};\n height: 100%;\n `;\n};\n\nexport const StyledSelectionText = styled(Text)(\n (props: Partial<InputContainerProps> & Partial<StyleProps>) => css`\n line-height: ${props.theme?.typography.h5.lineHeight};\n ${disabledInputStyles(props)};\n `\n);\n\nexport const Dummy = styled(View)`\n aspect-ratio: 1;\n height: 100%;\n`;\n\nexport const StyledPressableSurface = styled(\n PressableSurface\n)<PressableSurfaceProps>`\n width: 100%;\n`;\n\nexport const Header = styled(View)<ViewProps & Partial<StyleProps>>`\n position: relative;\n width: 100%;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n padding: ${({ theme }) => theme.spacing.deca};\n height: ${RFValueStr('75px')};\n`;\n\nexport const CloseButton = styled(Button)<ButtonProps & Partial<StyleProps>>`\n aspect-ratio: 1;\n height: 100%;\n`;\n\nexport const SearchBarContainer = styled(View)<ViewProps & Partial<StyleProps>>`\n padding: ${({ theme }) => theme.spacing.deca};\n position: relative;\n`;\n\nexport const SearchBar = styled(Input)<InputNativeProps & Partial<StyleProps>>`\n margin-bottom: ${({ theme }) => theme.spacing.deca};\n`;\n\nexport const ListItem = styled(PressableSurface)<\n PressableSurfaceProps & Partial<StyleProps>\n>`\n border-bottom-width: ${RFValueStr('1px')};\n border-color: ${({ theme }) => theme.color.secondary.light};\n padding-vertical: ${({ theme }) => theme.spacing.mili};\n padding-horizontal: ${({ theme }) => theme.spacing.deca};\n`;\n\nexport const ModalFooter = styled(View)<Partial<StyleProps>>`\n width: 100%;\n height: auto;\n bottom: 0;\n background-color: ${({ theme }) => theme.miscellaneous.bodyColor};\n padding: ${({ theme }) => theme.spacing.deca};\n`;\n\nexport const SelectIcon = styled(Icon)<Partial<StyleProps>>`\n padding: ${({ theme }) => theme.spacing.centi};\n color: ${({ theme }) => theme.color.secondary.medium};\n`;\n\nexport const FetchIndicator = styled(ActivityIndicator)`\n align-self: center;\n`;\n\nexport const TextTitleModal = styled(Text)<Partial<StyleProps>>`\n text-align: center;\n`;\n"],"names":["styled","View","RFValue","css","disabledInputStyles","PressableSurface","RFValueStr","Button","Icon","ActivityIndicator"],"mappings":";;;;;;;;;;;;;;AAiBa,MAAA,cAAA,GAAiB,CAAC,OAAA,GAAU,CAAM,KAAA;AAC7C,EAAA,OAAOA,2BAAOC,gBAAI,CAAA,CAAA;AAAA,iBACD,EAAA,CAAA,EAAGC,kBAAQ,OAAO,CAAA,CAAA,EAAA,CAAA,CAAA;AAAA,sBAAA,EACb,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,aAAc,CAAA,SAAA,CAAA;AAAA;AAAA,EAAA,CAAA,CAAA;AAG3D,EAAA;AAEa,MAAA,mBAAA,GAAsBF,2BAAO,IAAI,CAAA;AAAA,EAC5C,CAAC,KAA8D,KAAAG,UAAA,CAAA;AAAA,iBAC9C,EAAA,KAAA,CAAM,KAAO,EAAA,UAAA,CAAW,EAAG,CAAA,UAAA,CAAA;AAAA,IAAA,EACxCC,8BAAoB,KAAK,CAAA,CAAA;AAAA,EAAA,CAAA;AAE/B,EAAA;AAEqBJ,2BAAOC,gBAAI,CAAA,CAAA;AAAA;AAAA;AAAA,EAAA;AAKMD,0BAAA;AAAA,EACpCK,0BAAA;AACF,CAAA,CAAA;AAAA;AAAA,EAAA;AAIsBL,2BAAOC,gBAAI,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAAA,EAOpB,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,UAAA,EAC9BK,qBAAW,MAAM,CAAA,CAAA;AAAA,EAAA;AAGFN,2BAAOO,gBAAM,CAAA,CAAA;AAAA;AAAA;AAAA,EAAA;AAK3B,MAAA,kBAAA,GAAqBP,2BAAOC,gBAAI,CAAA,CAAA;AAAA,WAAA,EAChC,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA;AAAA,EAAA;AAIjBD,2BAAO,KAAK,CAAA,CAAA;AAAA,iBAAA,EAClB,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,EAAA;AAGnC,MAAA,QAAA,GAAWA,2BAAOK,0BAAgB,CAAA,CAAA;AAAA,uBAAA,EAGtBC,qBAAW,KAAK,CAAA,CAAA;AAAA,gBAAA,EACvB,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,MAAM,SAAU,CAAA,KAAA,CAAA;AAAA,oBAAA,EACjC,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,sBAAA,EAC3B,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,EAAA;AAGxC,MAAA,WAAA,GAAcN,2BAAOC,gBAAI,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA,oBAAA,EAIhB,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,aAAc,CAAA,SAAA,CAAA;AAAA,WAAA,EAC5C,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,IAAA,CAAA;AAAA,EAAA;AAG7B,MAAA,UAAA,GAAaD,2BAAOQ,cAAI,CAAA,CAAA;AAAA,WAAA,EACxB,CAAC,EAAE,KAAM,EAAA,KAAM,MAAM,OAAQ,CAAA,KAAA,CAAA;AAAA,SAAA,EAC/B,CAAC,EAAE,KAAA,EAAY,KAAA,KAAA,CAAM,MAAM,SAAU,CAAA,MAAA,CAAA;AAAA,EAAA;AAGnC,MAAA,cAAA,GAAiBR,2BAAOS,6BAAiB,CAAA,CAAA;AAAA;AAAA,EAAA;AAIzC,MAAA,cAAA,GAAiBT,2BAAO,IAAI,CAAA,CAAA;AAAA;AAAA;;;;;;;;;;;"}
|
|
@@ -8,49 +8,18 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
8
8
|
|
|
9
9
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if (__hasOwnProp.call(b, prop))
|
|
21
|
-
__defNormalProp(a, prop, b[prop]);
|
|
22
|
-
if (__getOwnPropSymbols)
|
|
23
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
24
|
-
if (__propIsEnum.call(b, prop))
|
|
25
|
-
__defNormalProp(a, prop, b[prop]);
|
|
26
|
-
}
|
|
27
|
-
return a;
|
|
28
|
-
};
|
|
29
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
30
|
-
var __objRest = (source, exclude) => {
|
|
31
|
-
var target = {};
|
|
32
|
-
for (var prop in source)
|
|
33
|
-
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
34
|
-
target[prop] = source[prop];
|
|
35
|
-
if (source != null && __getOwnPropSymbols)
|
|
36
|
-
for (var prop of __getOwnPropSymbols(source)) {
|
|
37
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
38
|
-
target[prop] = source[prop];
|
|
39
|
-
}
|
|
40
|
-
return target;
|
|
41
|
-
};
|
|
42
|
-
const Snackbar = (_a) => {
|
|
43
|
-
var _b = _a, {
|
|
44
|
-
value,
|
|
45
|
-
textProps = { colorVariant: "primary", colorTone: "medium" }
|
|
46
|
-
} = _b, rest = __objRest(_b, [
|
|
47
|
-
"value",
|
|
48
|
-
"textProps"
|
|
49
|
-
]);
|
|
50
|
-
return /* @__PURE__ */ React__default["default"].createElement(styled.SnackbarStyled, __spreadValues({}, rest), /* @__PURE__ */ React__default["default"].createElement(Text, __spreadProps(__spreadValues({}, textProps), {
|
|
11
|
+
const Snackbar = ({
|
|
12
|
+
value,
|
|
13
|
+
textProps = { colorVariant: "primary", colorTone: "medium" },
|
|
14
|
+
...rest
|
|
15
|
+
}) => {
|
|
16
|
+
return /* @__PURE__ */ React__default["default"].createElement(styled.SnackbarStyled, {
|
|
17
|
+
...rest
|
|
18
|
+
}, /* @__PURE__ */ React__default["default"].createElement(Text, {
|
|
19
|
+
...textProps,
|
|
51
20
|
fontWeight: "bold",
|
|
52
21
|
typography: "base"
|
|
53
|
-
}
|
|
22
|
+
}, value));
|
|
54
23
|
};
|
|
55
24
|
|
|
56
25
|
module.exports = Snackbar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Snackbar.js","sources":["../../../../../src/components/molecules/Snackbar/Snackbar.tsx"],"sourcesContent":["import React from 'react';\nimport { SnackbarProps as SnackPropsCore } from '@tecsinapse/react-core';\nimport { Text, TextNativeProps } from '../../atoms/Text';\nimport { SnackbarStyled } from './styled';\n\nexport interface SnackbarNativeProps extends Omit<SnackPropsCore, 'children'> {\n value: string;\n textProps?: TextNativeProps;\n}\n\nconst Snackbar: React.FC<SnackbarNativeProps> = ({\n value,\n textProps = { colorVariant: 'primary', colorTone: 'medium' },\n ...rest\n}) => {\n return (\n <SnackbarStyled {...rest}>\n <Text {...textProps} fontWeight=\"bold\" typography=\"base\">\n {value}\n </Text>\n </SnackbarStyled>\n );\n};\n\nexport default Snackbar;\n"],"names":["React","SnackbarStyled"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Snackbar.js","sources":["../../../../../src/components/molecules/Snackbar/Snackbar.tsx"],"sourcesContent":["import React from 'react';\nimport { SnackbarProps as SnackPropsCore } from '@tecsinapse/react-core';\nimport { Text, TextNativeProps } from '../../atoms/Text';\nimport { SnackbarStyled } from './styled';\n\nexport interface SnackbarNativeProps extends Omit<SnackPropsCore, 'children'> {\n value: string;\n textProps?: TextNativeProps;\n}\n\nconst Snackbar: React.FC<SnackbarNativeProps> = ({\n value,\n textProps = { colorVariant: 'primary', colorTone: 'medium' },\n ...rest\n}) => {\n return (\n <SnackbarStyled {...rest}>\n <Text {...textProps} fontWeight=\"bold\" typography=\"base\">\n {value}\n </Text>\n </SnackbarStyled>\n );\n};\n\nexport default Snackbar;\n"],"names":["React","SnackbarStyled"],"mappings":";;;;;;;;;;AAUA,MAAM,WAA0C,CAAC;AAAA,EAC/C,KAAA;AAAA,EACA,SAAY,GAAA,EAAE,YAAc,EAAA,SAAA,EAAW,WAAW,QAAS,EAAA;AAAA,EACxD,GAAA,IAAA;AACL,CAAM,KAAA;AACJ,EAAA,uBACGA,yBAAA,CAAA,aAAA,CAAAC,qBAAA,EAAA;AAAA,IAAgB,GAAG,IAAA;AAAA,GAAA,kBACjBD,yBAAA,CAAA,aAAA,CAAA,IAAA,EAAA;AAAA,IAAM,GAAG,SAAA;AAAA,IAAW,UAAW,EAAA,MAAA;AAAA,IAAO,UAAW,EAAA,MAAA;AAAA,GAAA,EAC/C,KACH,CACF,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -2,29 +2,11 @@ import { Avatar as Avatar$1 } from '@tecsinapse/react-core';
|
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import Text from '../Text/Text.js';
|
|
4
4
|
|
|
5
|
-
var __defProp = Object.defineProperty;
|
|
6
|
-
var __defProps = Object.defineProperties;
|
|
7
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
8
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
9
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
-
var __spreadValues = (a, b) => {
|
|
13
|
-
for (var prop in b || (b = {}))
|
|
14
|
-
if (__hasOwnProp.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
if (__getOwnPropSymbols)
|
|
17
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
-
if (__propIsEnum.call(b, prop))
|
|
19
|
-
__defNormalProp(a, prop, b[prop]);
|
|
20
|
-
}
|
|
21
|
-
return a;
|
|
22
|
-
};
|
|
23
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
5
|
const Avatar = (props) => {
|
|
25
|
-
return /* @__PURE__ */ React__default.createElement(Avatar$1,
|
|
6
|
+
return /* @__PURE__ */ React__default.createElement(Avatar$1, {
|
|
7
|
+
...props,
|
|
26
8
|
TextComponent: Text
|
|
27
|
-
})
|
|
9
|
+
});
|
|
28
10
|
};
|
|
29
11
|
|
|
30
12
|
export { Avatar as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","sources":["../../../../../src/components/atoms/Avatar/Avatar.tsx"],"sourcesContent":["import { Avatar as AvatarCore, AvatarProps } from '@tecsinapse/react-core';\nimport React from 'react';\nimport { Text } from '../Text';\n\nconst Avatar: React.FC<AvatarProps> = props => {\n return <AvatarCore {...props} TextComponent={Text} />;\n};\n\nexport default Avatar;\n"],"names":["React","AvatarCore"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Avatar.js","sources":["../../../../../src/components/atoms/Avatar/Avatar.tsx"],"sourcesContent":["import { Avatar as AvatarCore, AvatarProps } from '@tecsinapse/react-core';\nimport React from 'react';\nimport { Text } from '../Text';\n\nconst Avatar: React.FC<AvatarProps> = props => {\n return <AvatarCore {...props} TextComponent={Text} />;\n};\n\nexport default Avatar;\n"],"names":["React","AvatarCore"],"mappings":";;;;AAIA,MAAM,SAAgC,CAAS,KAAA,KAAA;AAC7C,EAAA,uBAAQA,cAAA,CAAA,aAAA,CAAAC,QAAA,EAAA;AAAA,IAAY,GAAG,KAAA;AAAA,IAAO,aAAe,EAAA,IAAA;AAAA,GAAM,CAAA,CAAA;AACrD;;;;"}
|
|
@@ -2,54 +2,20 @@ import React__default from 'react';
|
|
|
2
2
|
import { Badge as Badge$1 } from '@tecsinapse/react-core';
|
|
3
3
|
import Text from '../Text/Text.js';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
for (var prop in b || (b = {}))
|
|
14
|
-
if (__hasOwnProp.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
if (__getOwnPropSymbols)
|
|
17
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
-
if (__propIsEnum.call(b, prop))
|
|
19
|
-
__defNormalProp(a, prop, b[prop]);
|
|
20
|
-
}
|
|
21
|
-
return a;
|
|
22
|
-
};
|
|
23
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
-
var __objRest = (source, exclude) => {
|
|
25
|
-
var target = {};
|
|
26
|
-
for (var prop in source)
|
|
27
|
-
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
28
|
-
target[prop] = source[prop];
|
|
29
|
-
if (source != null && __getOwnPropSymbols)
|
|
30
|
-
for (var prop of __getOwnPropSymbols(source)) {
|
|
31
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
32
|
-
target[prop] = source[prop];
|
|
33
|
-
}
|
|
34
|
-
return target;
|
|
35
|
-
};
|
|
36
|
-
const Badge = (_a) => {
|
|
37
|
-
var _b = _a, {
|
|
38
|
-
children,
|
|
39
|
-
fontColor = "light",
|
|
40
|
-
value
|
|
41
|
-
} = _b, props = __objRest(_b, [
|
|
42
|
-
"children",
|
|
43
|
-
"fontColor",
|
|
44
|
-
"value"
|
|
45
|
-
]);
|
|
46
|
-
return /* @__PURE__ */ React__default.createElement(Badge$1, __spreadProps(__spreadValues({}, props), {
|
|
5
|
+
const Badge = ({
|
|
6
|
+
children,
|
|
7
|
+
fontColor = "light",
|
|
8
|
+
value,
|
|
9
|
+
...props
|
|
10
|
+
}) => {
|
|
11
|
+
return /* @__PURE__ */ React__default.createElement(Badge$1, {
|
|
12
|
+
...props,
|
|
47
13
|
value: /* @__PURE__ */ React__default.createElement(Text, {
|
|
48
14
|
fontColor,
|
|
49
15
|
fontWeight: "bold",
|
|
50
16
|
typography: "label"
|
|
51
17
|
}, value)
|
|
52
|
-
}
|
|
18
|
+
}, children);
|
|
53
19
|
};
|
|
54
20
|
|
|
55
21
|
export { Badge as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.js","sources":["../../../../../src/components/atoms/Badge/Badge.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport {\n BadgeProps,\n Badge as BadgeCore,\n FontColorType,\n} from '@tecsinapse/react-core';\nimport { Text } from '../Text';\n\nexport interface BadgeNativeProps extends Omit<BadgeProps, 'value'> {\n fontColor?: FontColorType;\n value: string | number;\n}\n\nconst Badge: FC<BadgeNativeProps> = ({\n children,\n fontColor = 'light',\n value,\n ...props\n}) => {\n return (\n <BadgeCore\n {...props}\n value={\n <Text fontColor={fontColor} fontWeight={'bold'} typography={'label'}>\n {value}\n </Text>\n }\n >\n {children}\n </BadgeCore>\n );\n};\n\nexport default Badge;\n"],"names":["React","BadgeCore"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Badge.js","sources":["../../../../../src/components/atoms/Badge/Badge.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport {\n BadgeProps,\n Badge as BadgeCore,\n FontColorType,\n} from '@tecsinapse/react-core';\nimport { Text } from '../Text';\n\nexport interface BadgeNativeProps extends Omit<BadgeProps, 'value'> {\n fontColor?: FontColorType;\n value: string | number;\n}\n\nconst Badge: FC<BadgeNativeProps> = ({\n children,\n fontColor = 'light',\n value,\n ...props\n}) => {\n return (\n <BadgeCore\n {...props}\n value={\n <Text fontColor={fontColor} fontWeight={'bold'} typography={'label'}>\n {value}\n </Text>\n }\n >\n {children}\n </BadgeCore>\n );\n};\n\nexport default Badge;\n"],"names":["React","BadgeCore"],"mappings":";;;;AAaA,MAAM,QAA8B,CAAC;AAAA,EACnC,QAAA;AAAA,EACA,SAAY,GAAA,OAAA;AAAA,EACZ,KAAA;AAAA,EACG,GAAA,KAAA;AACL,CAAM,KAAA;AACJ,EAAA,uBACGA,cAAA,CAAA,aAAA,CAAAC,OAAA,EAAA;AAAA,IACE,GAAG,KAAA;AAAA,IACJ,uBACGD,cAAA,CAAA,aAAA,CAAA,IAAA,EAAA;AAAA,MAAK,SAAA;AAAA,MAAsB,UAAY,EAAA,MAAA;AAAA,MAAQ,UAAY,EAAA,OAAA;AAAA,KAAA,EACzD,KACH,CAAA;AAAA,GAAA,EAGD,QACH,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -3,45 +3,15 @@ import { StyledView, TabContainer } from './styled.js';
|
|
|
3
3
|
import Item from './Item.js';
|
|
4
4
|
import Text from '../Text/Text.js';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
if (__getOwnPropSymbols)
|
|
16
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
17
|
-
if (__propIsEnum.call(b, prop))
|
|
18
|
-
__defNormalProp(a, prop, b[prop]);
|
|
19
|
-
}
|
|
20
|
-
return a;
|
|
21
|
-
};
|
|
22
|
-
var __objRest = (source, exclude) => {
|
|
23
|
-
var target = {};
|
|
24
|
-
for (var prop in source)
|
|
25
|
-
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
26
|
-
target[prop] = source[prop];
|
|
27
|
-
if (source != null && __getOwnPropSymbols)
|
|
28
|
-
for (var prop of __getOwnPropSymbols(source)) {
|
|
29
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
30
|
-
target[prop] = source[prop];
|
|
31
|
-
}
|
|
32
|
-
return target;
|
|
33
|
-
};
|
|
34
|
-
function BottomNavigator(_a) {
|
|
35
|
-
var _b = _a, {
|
|
36
|
-
selected,
|
|
37
|
-
onSelect,
|
|
38
|
-
children
|
|
39
|
-
} = _b, rest = __objRest(_b, [
|
|
40
|
-
"selected",
|
|
41
|
-
"onSelect",
|
|
42
|
-
"children"
|
|
43
|
-
]);
|
|
44
|
-
return /* @__PURE__ */ React.createElement(StyledView, __spreadValues({}, rest), React.Children.map(children, (child) => {
|
|
6
|
+
function BottomNavigator({
|
|
7
|
+
selected,
|
|
8
|
+
onSelect,
|
|
9
|
+
children,
|
|
10
|
+
...rest
|
|
11
|
+
}) {
|
|
12
|
+
return /* @__PURE__ */ React.createElement(StyledView, {
|
|
13
|
+
...rest
|
|
14
|
+
}, React.Children.map(children, (child) => {
|
|
45
15
|
const { value, label, labelProps, labelElement } = child.props;
|
|
46
16
|
const isSelected = value == selected;
|
|
47
17
|
return /* @__PURE__ */ React.createElement(TabContainer, {
|
|
@@ -49,10 +19,11 @@ function BottomNavigator(_a) {
|
|
|
49
19
|
onPress: () => onSelect(value)
|
|
50
20
|
}, React.cloneElement(child, {
|
|
51
21
|
_selected: isSelected
|
|
52
|
-
}), label && !labelElement && /* @__PURE__ */ React.createElement(Text,
|
|
53
|
-
colorVariant:
|
|
54
|
-
typography:
|
|
55
|
-
|
|
22
|
+
}), label && !labelElement && /* @__PURE__ */ React.createElement(Text, {
|
|
23
|
+
colorVariant: labelProps?.colorVariant || isSelected ? "primary" : "secondary",
|
|
24
|
+
typography: labelProps?.typography || "sub",
|
|
25
|
+
...labelProps
|
|
26
|
+
}, label), labelElement && labelElement);
|
|
56
27
|
}));
|
|
57
28
|
}
|
|
58
29
|
BottomNavigator.Item = Item;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomNavigator.js","sources":["../../../../../src/components/atoms/BottomNavigator/BottomNavigator.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ViewProps } from 'react-native';\nimport { StyledView, TabContainer } from './styled';\nimport Item, { BottomNavigatorItemProps } from './Item';\nimport { Text } from '../Text';\n\nexport interface BottomNavigatorProps<T extends string | number | symbol>\n extends ViewProps {\n selected: T;\n onSelect: (value: T) => void | never;\n children:\n | React.ReactElement<BottomNavigatorItemProps<T>>\n | React.ReactElement<BottomNavigatorItemProps<T>>[];\n}\n\nfunction BottomNavigator<T extends string | number | symbol>({\n selected,\n onSelect,\n children,\n ...rest\n}: BottomNavigatorProps<T>): JSX.Element {\n return (\n <StyledView {...rest}>\n {React.Children.map(children, child => {\n const { value, label, labelProps, labelElement } = (\n child as React.ReactElement<BottomNavigatorItemProps<T>>\n ).props;\n const isSelected = value == selected;\n\n return (\n <TabContainer selected={isSelected} onPress={() => onSelect(value)}>\n {React.cloneElement(child as React.ReactElement, {\n _selected: isSelected,\n })}\n {label && !labelElement && (\n <Text\n colorVariant={\n labelProps?.colorVariant || isSelected\n ? 'primary'\n : 'secondary'\n }\n typography={labelProps?.typography || 'sub'}\n {...labelProps}\n >\n {label}\n </Text>\n )}\n {labelElement && labelElement}\n </TabContainer>\n );\n })}\n </StyledView>\n );\n}\n\nBottomNavigator.Item = Item;\n\nexport default BottomNavigator;\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BottomNavigator.js","sources":["../../../../../src/components/atoms/BottomNavigator/BottomNavigator.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ViewProps } from 'react-native';\nimport { StyledView, TabContainer } from './styled';\nimport Item, { BottomNavigatorItemProps } from './Item';\nimport { Text } from '../Text';\n\nexport interface BottomNavigatorProps<T extends string | number | symbol>\n extends ViewProps {\n selected: T;\n onSelect: (value: T) => void | never;\n children:\n | React.ReactElement<BottomNavigatorItemProps<T>>\n | React.ReactElement<BottomNavigatorItemProps<T>>[];\n}\n\nfunction BottomNavigator<T extends string | number | symbol>({\n selected,\n onSelect,\n children,\n ...rest\n}: BottomNavigatorProps<T>): JSX.Element {\n return (\n <StyledView {...rest}>\n {React.Children.map(children, child => {\n const { value, label, labelProps, labelElement } = (\n child as React.ReactElement<BottomNavigatorItemProps<T>>\n ).props;\n const isSelected = value == selected;\n\n return (\n <TabContainer selected={isSelected} onPress={() => onSelect(value)}>\n {React.cloneElement(child as React.ReactElement, {\n _selected: isSelected,\n })}\n {label && !labelElement && (\n <Text\n colorVariant={\n labelProps?.colorVariant || isSelected\n ? 'primary'\n : 'secondary'\n }\n typography={labelProps?.typography || 'sub'}\n {...labelProps}\n >\n {label}\n </Text>\n )}\n {labelElement && labelElement}\n </TabContainer>\n );\n })}\n </StyledView>\n );\n}\n\nBottomNavigator.Item = Item;\n\nexport default BottomNavigator;\n"],"names":[],"mappings":";;;;;AAeA,SAAS,eAAoD,CAAA;AAAA,EAC3D,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACG,GAAA,IAAA;AACL,CAAyC,EAAA;AACvC,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA;AAAA,IAAY,GAAG,IAAA;AAAA,GAAA,EACb,KAAM,CAAA,QAAA,CAAS,GAAI,CAAA,QAAA,EAAU,CAAS,KAAA,KAAA;AACrC,IAAA,MAAM,EAAE,KAAO,EAAA,KAAA,EAAO,UAAY,EAAA,YAAA,KAChC,KACA,CAAA,KAAA,CAAA;AACF,IAAA,MAAM,aAAa,KAAS,IAAA,QAAA,CAAA;AAE5B,IAAA,uBACG,KAAA,CAAA,aAAA,CAAA,YAAA,EAAA;AAAA,MAAa,QAAU,EAAA,UAAA;AAAA,MAAY,OAAA,EAAS,MAAM,QAAA,CAAS,KAAK,CAAA;AAAA,KAC9D,EAAA,KAAA,CAAM,aAAa,KAA6B,EAAA;AAAA,MAC/C,SAAW,EAAA,UAAA;AAAA,KACZ,CAAA,EACA,KAAS,IAAA,CAAC,gCACR,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA;AAAA,MACC,YACE,EAAA,UAAA,EAAY,YAAgB,IAAA,UAAA,GACxB,SACA,GAAA,WAAA;AAAA,MAEN,UAAA,EAAY,YAAY,UAAc,IAAA,KAAA;AAAA,MACrC,GAAG,UAAA;AAAA,KAEH,EAAA,KACH,CAED,EAAA,YAAA,IAAgB,YACnB,CAAA,CAAA;AAAA,GAEH,CACH,CAAA,CAAA;AAEJ,CAAA;AAEA,eAAA,CAAgB,IAAO,GAAA,IAAA;;;;"}
|