@draftbit/core 42.1.5 → 42.1.7-71d4c6.1
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/LICENSE +21 -0
- package/lib/commonjs/components/DatePicker/DatePicker.js +6 -1
- package/lib/commonjs/components/DatePicker/DatePicker.js.map +1 -1
- package/lib/commonjs/components/DatePicker/DatePickerComponentType.js +2 -0
- package/lib/commonjs/components/Divider.js +18 -5
- package/lib/commonjs/components/Divider.js.map +1 -1
- package/lib/commonjs/components/Elevation.js +14 -3
- package/lib/commonjs/components/Elevation.js.map +1 -1
- package/lib/commonjs/components/Justification.js +3 -0
- package/lib/commonjs/components/Picker/PickerComponent.android.js +4 -1
- package/lib/commonjs/components/Picker/PickerComponent.android.js.map +1 -1
- package/lib/commonjs/components/Picker/PickerComponent.web.js +4 -1
- package/lib/commonjs/components/Picker/PickerComponent.web.js.map +1 -1
- package/lib/commonjs/components/Picker/PickerTypes.js +3 -0
- package/lib/commonjs/components/Portal/PortalHost.js.map +1 -1
- package/lib/commonjs/components/ResizeMode.js +3 -0
- package/lib/module/components/DatePicker/DatePicker.js +6 -1
- package/lib/module/components/DatePicker/DatePicker.js.map +1 -1
- package/lib/module/components/DatePicker/DatePickerComponentType.js +1 -1
- package/lib/module/components/Justification.js +1 -1
- package/lib/module/components/Picker/PickerComponent.android.js +4 -1
- package/lib/module/components/Picker/PickerComponent.android.js.map +1 -1
- package/lib/module/components/Picker/PickerComponent.web.js +4 -1
- package/lib/module/components/Picker/PickerComponent.web.js.map +1 -1
- package/lib/module/components/Picker/PickerTypes.js +1 -1
- package/lib/module/components/ResizeMode.js +1 -1
- package/package.json +3 -2
- package/src/Provider.js +9 -0
- package/src/components/Accordion/AccordionGroup.js +94 -0
- package/src/components/Accordion/AccordionItem.js +48 -0
- package/src/components/Accordion/index.js +2 -0
- package/src/components/ActionSheet/ActionSheet.js +57 -0
- package/src/components/ActionSheet/ActionSheetCancel.js +28 -0
- package/src/components/ActionSheet/ActionSheetItem.js +49 -0
- package/src/components/ActionSheet/index.js +3 -0
- package/src/components/AnimatedCircularProgress.js +43 -0
- package/src/components/AspectRatio.js +18 -0
- package/src/components/AvatarEdit.js +67 -0
- package/src/components/Button.js +187 -0
- package/src/components/Card.js +109 -0
- package/src/components/CardBlock.js +176 -0
- package/src/components/CardContainer.js +171 -0
- package/src/components/CardContainerRating.js +203 -0
- package/src/components/CardContainerShortImage.js +151 -0
- package/src/components/CardInline.js +87 -0
- package/src/components/Carousel.js +85 -0
- package/src/components/Checkbox/Checkbox.js +114 -0
- package/src/components/Checkbox/CheckboxGroup.js +46 -0
- package/src/components/Checkbox/CheckboxRow.js +109 -0
- package/src/components/Checkbox/context.js +14 -0
- package/src/components/Checkbox/index.js +3 -0
- package/src/components/CircleImage.js +32 -0
- package/src/components/CircularProgress.js +78 -0
- package/src/components/Config.js +63 -0
- package/src/components/Container.js +73 -0
- package/src/components/DatePicker/DatePicker.js +379 -0
- package/src/components/DatePicker/DatePicker.tsx +7 -1
- package/src/components/DatePicker/DatePickerComponent.js +13 -0
- package/src/components/DatePicker/DatePickerComponent.web.js +30 -0
- package/src/components/DatePicker/DatePickerComponentType.js +1 -0
- package/src/components/DeprecatedButton.js +201 -0
- package/src/components/DeprecatedCardWrapper.js +18 -0
- package/src/components/DeprecatedFAB.js +261 -0
- package/src/components/Divider.js +39 -0
- package/src/components/Elevation.js +20 -0
- package/src/components/FAB.js +82 -0
- package/src/components/FieldSearchBarFull.js +92 -0
- package/src/components/FormRow.js +19 -0
- package/src/components/Header.js +44 -0
- package/src/components/HeaderLarge.js +35 -0
- package/src/components/HeaderMedium.js +61 -0
- package/src/components/HeaderOverline.js +61 -0
- package/src/components/IconButton.js +65 -0
- package/src/components/Image.js +62 -0
- package/src/components/Justification.js +1 -0
- package/src/components/Layout.js +245 -0
- package/src/components/Picker/Picker.js +204 -0
- package/src/components/Picker/PickerComponent.android.js +68 -0
- package/src/components/Picker/PickerComponent.android.tsx +6 -1
- package/src/components/Picker/PickerComponent.ios.js +72 -0
- package/src/components/Picker/PickerComponent.web.js +68 -0
- package/src/components/Picker/PickerComponent.web.tsx +6 -1
- package/src/components/Picker/PickerTypes.js +1 -0
- package/src/components/Portal/Portal.js +35 -0
- package/src/components/Portal/PortalConsumer.js +28 -0
- package/src/components/Portal/PortalHost.js +105 -0
- package/src/components/Portal/PortalManager.js +29 -0
- package/src/components/ProgressBar.js +218 -0
- package/src/components/ProgressCircle.js +121 -0
- package/src/components/ProgressIndicator.js +207 -0
- package/src/components/RadioButton/RadioButton.js +66 -0
- package/src/components/RadioButton/RadioButtonFieldGroup.js +17 -0
- package/src/components/RadioButton/RadioButtonGroup.js +43 -0
- package/src/components/RadioButton/RadioButtonRow.js +111 -0
- package/src/components/RadioButton/context.js +14 -0
- package/src/components/RadioButton/index.js +4 -0
- package/src/components/ResizeMode.js +1 -0
- package/src/components/Row.js +48 -0
- package/src/components/RowBodyIcon.js +83 -0
- package/src/components/RowHeadlineImageCaption.js +179 -0
- package/src/components/RowHeadlineImageIcon.js +113 -0
- package/src/components/ScreenContainer.js +35 -0
- package/src/components/Slider.js +114 -0
- package/src/components/StarRating.js +80 -0
- package/src/components/StepIndicator.js +346 -0
- package/src/components/Stepper.js +69 -0
- package/src/components/Surface.js +36 -0
- package/src/components/Switch.js +59 -0
- package/src/components/Text.js +232 -0
- package/src/components/TextField.js +552 -0
- package/src/components/TextInput.js +13 -0
- package/src/components/ToggleButton.js +75 -0
- package/src/components/Touchable.js +24 -0
- package/src/components/Touchable.web.js +2 -0
- package/src/components/Typography.js +36 -0
- package/src/components/useAuthState.js +31 -0
- package/src/constants.js +10 -0
- package/src/hooks.js +12 -0
- package/src/index.js +48 -0
- package/src/interfaces/Icon.js +8 -0
- package/src/styles/DarkTheme.js +26 -0
- package/src/styles/DefaultTheme.js +111 -0
- package/src/styles/fonts.js +62 -0
- package/src/styles/overlay.js +60 -0
- package/src/styles/shadow.js +51 -0
- package/src/theming.js +3 -0
- package/src/utilities.js +42 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DatePicker.tsx"],"names":["React","View","Animated","Text","StyleSheet","Platform","I18nManager","TextInput","NativeTextInput","useSafeAreaInsets","dateFormat","withTheme","Portal","Button","Touchable","DateTimePicker","usePrevious","AnimatedText","createAnimatedComponent","FOCUS_ANIMATION_DURATION","BLUR_ANIMATION_DURATION","ICON_SIZE","MONTHS","DatePicker","Icon","style","theme","colors","typography","roundness","disabledOpacity","date","onDateChange","initialValue","disabled","mode","format","type","leftIconName","rightIconName","leftIconMode","label","placeholder","props","value","setValue","useState","pickerVisible","setPickerVisible","labeled","Value","placeholder1","setPlaceholder1","focused","setFocused","labelLayout","setLabelLayout","measured","width","previousInitialValue","useEffect","getValidDate","Date","getMonth","formatDate","newDate","toLocaleTimeString","toLocaleString","getDate","getFullYear","toggleVisibility","_handleBlur","_handleFocus","insets","_hidePlaceholder","timing","toValue","duration","useNativeDriver","start","_showPlaceholder","setTimeout","clearTimeout","MINIMIZED_LABEL_Y_OFFSET","caption","lineHeight","OUTLINE_MINIMIZED_LABEL_Y_OFFSET","MAXIMIZED_LABEL_FONT_SIZE","subtitle1","fontSize","MINIMIZED_LABEL_FONT_SIZE","hasActiveOutline","inputTextColor","activeColor","underlineColor","borderColor","placeholderColor","containerStyle","backgroundColor","inputStyle","strong","light","divider","primary","background","paddingVertical","color","paddingLeft","paddingRight","height","borderTopLeftRadius","borderTopRightRadius","paddingBottom","marginTop","borderRadius","borderWidth","paddingTop","opacity","paddingHorizontal","marginLeft","leftIconColor","leftIconProps","size","name","leftIconStyle","position","labelStyle","top","left","transform","translateY","interpolate","inputRange","outputRange","scale","translateX","inputStyles","styles","input","marginHorizontal","container","underline","scaleY","absoluteFill","e","nativeEvent","layout","right","picker","pickerContainer","bottom","OS","closeButton","_event","data","create","alignSelf","flexDirection","justifyContent","flexGrow","textAlignVertical","margin","textAlign","isRTL"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n Animated,\n Text,\n StyleSheet,\n StyleProp,\n ViewStyle,\n TextStyle,\n Platform,\n TextInputProps,\n ImageStyle,\n I18nManager,\n LayoutChangeEvent,\n TextInput as NativeTextInput,\n} from \"react-native\";\nimport { useSafeAreaInsets } from \"react-native-safe-area-context\";\n\nimport dateFormat from \"dateformat\";\nimport { withTheme } from \"../../theming\";\nimport Portal from \"../Portal/Portal\";\nimport Button from \"../DeprecatedButton\";\nimport Touchable from \"../Touchable\";\nimport DateTimePicker from \"./DatePickerComponent\";\n\nimport type { Theme } from \"../../styles/DefaultTheme\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport { usePrevious } from \"../../hooks\";\n\nconst AnimatedText = Animated.createAnimatedComponent(Text);\n\nconst FOCUS_ANIMATION_DURATION = 150;\nconst BLUR_ANIMATION_DURATION = 180;\nconst ICON_SIZE = 24;\n\ntype Props = {\n style?: StyleProp<ViewStyle> & { height?: number };\n theme: Theme;\n // initialDate?: string;\n // locale?: string;\n // minuteInterval?: number;\n // timeZoneOffsetInMinutes?: number;\n // error?: boolean;\n // type?: string;\n date?: Date;\n format?: string;\n onDateChange?: (data?: Date) => void;\n initialValue?: Date;\n disabled?: boolean;\n mode?: \"date\" | \"time\" | \"datetime\";\n type?: \"solid\" | \"underline\";\n label?: string;\n placeholder?: string;\n leftIconName?: string;\n leftIconMode?: \"outset\" | \"inset\";\n rightIconName?: string;\n} & IconSlot &\n TextInputProps;\n\nconst MONTHS = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nconst DatePicker: React.FC<Props> = ({\n Icon,\n style,\n theme: { colors, typography, roundness, disabledOpacity },\n date,\n onDateChange = () => {},\n initialValue,\n disabled = false,\n mode = \"date\",\n format,\n type = \"underline\",\n leftIconName,\n rightIconName,\n leftIconMode = \"inset\",\n label,\n placeholder,\n ...props\n}) => {\n const [value, setValue] = React.useState<any>(date);\n const [pickerVisible, setPickerVisible] = React.useState(false);\n const [labeled] = React.useState<Animated.Value>(\n new Animated.Value(date ? 0 : 1)\n );\n const [placeholder1, setPlaceholder1] = React.useState(\"\");\n const [focused, setFocused] = React.useState<boolean>(false);\n const [labelLayout, setLabelLayout] = React.useState<{\n measured: Boolean;\n width: number;\n }>({ measured: false, width: 0 });\n\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n if (initialValue !== previousInitialValue) {\n setValue(initialValue);\n onDateChange(initialValue);\n }\n }, [initialValue, previousInitialValue, setValue, onDateChange]);\n\n const getValidDate = (): Date => {\n if (!value) {\n return new Date();\n }\n return typeof value?.getMonth === \"function\" ? value : new Date();\n };\n\n const formatDate = (): string => {\n if (!value) return \"\";\n let newDate = getValidDate();\n\n if (format) return dateFormat(newDate, format);\n\n if (mode === \"time\") {\n return `${newDate.toLocaleTimeString()}`;\n }\n\n if (mode === \"datetime\") {\n return `${newDate.toLocaleString()}`;\n }\n\n return `${\n MONTHS[newDate.getMonth()]\n } ${newDate.getDate()}, ${newDate.getFullYear()}`;\n };\n\n const toggleVisibility = async () => {\n setPickerVisible(!pickerVisible);\n focused ? _handleBlur() : _handleFocus();\n };\n const insets = useSafeAreaInsets();\n\n // const _restoreLabel = () =>\n // Animated.timing(labeled, {\n // toValue: 1,\n // duration: FOCUS_ANIMATION_DURATION,\n // useNativeDriver: true,\n // }).start();\n\n // const _minmizeLabel = () =>\n // Animated.timing(labeled, {\n // toValue: 0,\n // duration: BLUR_ANIMATION_DURATION,\n // useNativeDriver: true,\n // }).start();\n\n // const _showPlaceholder = () =>\n // setTimeout(() => setPlaceholder1(placeholder || \"\"), 50);\n\n const _hidePlaceholder = () => {\n setPlaceholder1(\"\");\n };\n\n React.useEffect(() => {\n setValue(date);\n }, [date]);\n\n React.useEffect(() => {\n if (value || focused || placeholder1) {\n // _minmizeLabel();\n Animated.timing(labeled, {\n toValue: 0,\n duration: BLUR_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n } else {\n // _restoreLabel();\n Animated.timing(labeled, {\n toValue: 1,\n duration: FOCUS_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n }\n }, [value, focused, placeholder1, labeled]);\n\n React.useEffect(() => {\n const _showPlaceholder = () =>\n setTimeout(() => setPlaceholder1(placeholder || \"\"), 50);\n if (focused || !label) {\n _showPlaceholder();\n } else {\n _hidePlaceholder();\n }\n return () => {\n clearTimeout(_showPlaceholder());\n };\n }, [focused, label, placeholder]);\n\n const _handleFocus = () => {\n if (disabled) {\n return;\n }\n\n setFocused(true);\n };\n\n const _handleBlur = () => {\n if (disabled) {\n return;\n }\n setFocused(false);\n };\n\n const MINIMIZED_LABEL_Y_OFFSET = -(typography.caption.lineHeight + 4);\n const OUTLINE_MINIMIZED_LABEL_Y_OFFSET = -(16 * 0.5 + 4);\n const MAXIMIZED_LABEL_FONT_SIZE = typography.subtitle1.fontSize;\n const MINIMIZED_LABEL_FONT_SIZE = typography.caption.fontSize;\n\n const hasActiveOutline = focused;\n\n let inputTextColor,\n activeColor,\n underlineColor,\n borderColor,\n placeholderColor,\n containerStyle: StyleProp<ViewStyle>,\n backgroundColor,\n inputStyle: StyleProp<TextStyle>;\n\n inputTextColor = colors.strong;\n if (disabled) {\n activeColor = colors.light;\n placeholderColor = colors.light;\n borderColor = \"transparent\";\n underlineColor = \"transparent\";\n backgroundColor = colors.divider;\n } else {\n activeColor = colors.primary;\n placeholderColor = borderColor = colors.light;\n underlineColor = colors.light;\n backgroundColor = colors.background;\n }\n\n const { lineHeight, ...subtitle1 } = typography.subtitle1;\n\n inputStyle = {\n paddingVertical: 0,\n color: inputTextColor,\n paddingLeft:\n leftIconName && leftIconMode === \"inset\"\n ? ICON_SIZE + (type === \"solid\" ? 16 : 12)\n : 0,\n paddingRight: rightIconName ? ICON_SIZE + 16 + 4 : 12,\n ...subtitle1,\n height: lineHeight,\n };\n\n if (type === \"underline\") {\n containerStyle = {\n borderTopLeftRadius: roundness,\n borderTopRightRadius: roundness,\n paddingBottom: 12,\n marginTop: 16,\n };\n } else {\n containerStyle = {\n borderRadius: roundness,\n borderColor: hasActiveOutline ? activeColor : borderColor,\n borderWidth: 1,\n paddingTop: labeled ? 16 * 1.5 : 16,\n paddingBottom: labeled ? 16 * 0.5 : 16,\n opacity: disabled ? disabledOpacity : 1,\n backgroundColor,\n };\n\n inputStyle.paddingHorizontal = 12;\n }\n\n if (leftIconName && leftIconMode === \"outset\") {\n containerStyle.marginLeft = ICON_SIZE + 8;\n }\n\n let leftIconColor;\n if (focused) {\n leftIconColor = colors.primary;\n } else {\n leftIconColor = colors.light;\n }\n\n const leftIconProps = {\n size: 24,\n color: leftIconColor,\n name: leftIconName || \"\",\n };\n\n const leftIconStyle: ImageStyle = {\n position: \"absolute\",\n marginTop:\n type === \"solid\"\n ? leftIconMode === \"inset\"\n ? MINIMIZED_LABEL_FONT_SIZE + 4\n : 16\n : leftIconMode === \"outset\"\n ? 16\n : 0,\n };\n\n const labelStyle = {\n ...typography.subtitle1,\n top: type === \"solid\" ? 16 : 0,\n left:\n leftIconName && leftIconMode === \"inset\"\n ? ICON_SIZE + (type === \"solid\" ? 16 : 12)\n : 0,\n transform: [\n {\n // Move label to top\n translateY: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n type === \"solid\"\n ? OUTLINE_MINIMIZED_LABEL_Y_OFFSET\n : MINIMIZED_LABEL_Y_OFFSET,\n 0,\n ],\n }),\n },\n {\n // Make label smaller\n scale: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE,\n 1,\n ],\n }),\n },\n {\n // Offset label scale since RN doesn't support transform origin\n translateX: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n -(1 - MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE) *\n (labelLayout.width / 2),\n 0,\n ],\n }),\n },\n ],\n };\n\n const inputStyles = [\n styles.input,\n inputStyle,\n type === \"solid\" ? { marginHorizontal: 12 } : {},\n ];\n\n // const render = (props) => <NativeTextInput {...props} />;\n\n return (\n <View style={[styles.container, style]}>\n <Touchable disabled={disabled} onPress={toggleVisibility}>\n <View pointerEvents=\"none\">\n <View style={[styles.container, style]}>\n {leftIconName && leftIconMode === \"outset\" ? (\n <Icon {...leftIconProps} style={leftIconStyle} />\n ) : null}\n <View\n style={[containerStyle, style ? { height: style.height } : {}]}\n >\n {type === \"underline\" ? (\n // When type === 'flat', render an underline\n <Animated.View\n style={[\n styles.underline,\n {\n backgroundColor: focused ? activeColor : underlineColor,\n // Underlines is thinner when input is not focused\n transform: [{ scaleY: focused ? 1 : 0.5 }],\n },\n ]}\n />\n ) : null}\n\n {label ? (\n // Position colored placeholder and gray placeholder on top of each other and crossfade them\n // This gives the effect of animating the color, but allows us to use native driver\n <View\n pointerEvents=\"none\"\n style={[\n StyleSheet.absoluteFill,\n {\n opacity:\n // Hide the label in minimized state until we measure its width\n date || focused ? (labelLayout.measured ? 1 : 0) : 1,\n },\n ]}\n >\n <AnimatedText\n onLayout={(e: LayoutChangeEvent) =>\n setLabelLayout({\n width: e.nativeEvent.layout.width,\n measured: true,\n })\n }\n style={[\n styles.placeholder,\n type === \"solid\" ? { paddingHorizontal: 12 } : {},\n labelStyle,\n {\n color: colors.light,\n opacity: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 1 : 0, 0],\n }),\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </AnimatedText>\n <AnimatedText\n style={[\n styles.placeholder,\n type === \"solid\" ? { paddingHorizontal: 12 } : {},\n labelStyle,\n {\n color: placeholderColor,\n opacity: hasActiveOutline ? labeled : 1,\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </AnimatedText>\n </View>\n ) : null}\n\n {leftIconName && leftIconMode === \"inset\" ? (\n <Icon\n {...leftIconProps}\n style={{\n ...leftIconStyle,\n marginLeft: type === \"solid\" ? 16 : 0,\n }}\n />\n ) : null}\n\n <NativeTextInput\n value={formatDate()}\n placeholder={label ? placeholder1 : placeholder}\n editable={!disabled}\n placeholderTextColor={placeholderColor}\n selectionColor={activeColor}\n onFocus={_handleFocus}\n onBlur={_handleBlur}\n underlineColorAndroid={\"transparent\"}\n style={inputStyles}\n {...props}\n />\n </View>\n {rightIconName ? (\n <Icon\n name={rightIconName}\n size={ICON_SIZE}\n color={colors.light}\n style={{\n position: \"absolute\",\n right: 16,\n marginTop:\n type === \"solid\" ? MINIMIZED_LABEL_FONT_SIZE + 4 : 16,\n }}\n />\n ) : null}\n </View>\n </View>\n </Touchable>\n {pickerVisible && (\n <Portal>\n <View\n style={[\n styles.picker,\n {\n backgroundColor: colors.divider,\n },\n ]}\n >\n <View\n style={[\n styles.pickerContainer,\n {\n paddingTop: insets.top,\n paddingBottom: insets.bottom,\n paddingLeft: insets.left,\n paddingRight: insets.right,\n },\n ]}\n >\n {Platform.OS === \"ios\" && (\n <Button\n Icon={Icon}\n type=\"text\"\n onPress={toggleVisibility}\n style={styles.closeButton}\n >\n Close\n </Button>\n )}\n\n <DateTimePicker\n value={getValidDate()}\n mode={mode}\n isVisible={pickerVisible}\n toggleVisibility={toggleVisibility}\n onChange={(_event: any, data: any) => {\n Platform.OS === \"ios\" ? null : toggleVisibility();\n setValue(data);\n onDateChange(data);\n }}\n />\n </View>\n </View>\n </Portal>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n picker: {\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n },\n underline: {\n position: \"absolute\",\n left: 0,\n right: 0,\n bottom: 0,\n height: 2,\n },\n input: {\n flexGrow: 1,\n justifyContent: \"center\",\n textAlignVertical: \"center\",\n margin: 0,\n textAlign: I18nManager.isRTL ? \"right\" : \"left\",\n },\n placeholder: {\n position: \"absolute\",\n left: 0,\n },\n pickerContainer: { flexDirection: \"column\", width: \"100%\" },\n closeButton: {\n alignSelf: \"flex-end\",\n },\n});\n\nexport default withTheme(DatePicker);\n"]}
|
|
1
|
+
{"version":3,"sources":["DatePicker.tsx"],"names":["React","View","Animated","Text","StyleSheet","Platform","I18nManager","TextInput","NativeTextInput","useSafeAreaInsets","dateFormat","withTheme","Portal","Button","Touchable","DateTimePicker","usePrevious","AnimatedText","createAnimatedComponent","FOCUS_ANIMATION_DURATION","BLUR_ANIMATION_DURATION","ICON_SIZE","MONTHS","DatePicker","Icon","style","theme","colors","typography","roundness","disabledOpacity","date","onDateChange","initialValue","disabled","mode","format","type","leftIconName","rightIconName","leftIconMode","label","placeholder","props","value","setValue","useState","pickerVisible","setPickerVisible","labeled","Value","placeholder1","setPlaceholder1","focused","setFocused","labelLayout","setLabelLayout","measured","width","previousInitialValue","useEffect","initialValueStr","toString","previousInitialValueStr","getValidDate","Date","getMonth","formatDate","newDate","toLocaleTimeString","toLocaleString","getDate","getFullYear","toggleVisibility","_handleBlur","_handleFocus","insets","_hidePlaceholder","timing","toValue","duration","useNativeDriver","start","_showPlaceholder","setTimeout","clearTimeout","MINIMIZED_LABEL_Y_OFFSET","caption","lineHeight","OUTLINE_MINIMIZED_LABEL_Y_OFFSET","MAXIMIZED_LABEL_FONT_SIZE","subtitle1","fontSize","MINIMIZED_LABEL_FONT_SIZE","hasActiveOutline","inputTextColor","activeColor","underlineColor","borderColor","placeholderColor","containerStyle","backgroundColor","inputStyle","strong","light","divider","primary","background","paddingVertical","color","paddingLeft","paddingRight","height","borderTopLeftRadius","borderTopRightRadius","paddingBottom","marginTop","borderRadius","borderWidth","paddingTop","opacity","paddingHorizontal","marginLeft","leftIconColor","leftIconProps","size","name","leftIconStyle","position","labelStyle","top","left","transform","translateY","interpolate","inputRange","outputRange","scale","translateX","inputStyles","styles","input","marginHorizontal","container","underline","scaleY","absoluteFill","e","nativeEvent","layout","right","picker","pickerContainer","bottom","OS","closeButton","_event","data","create","alignSelf","flexDirection","justifyContent","flexGrow","textAlignVertical","margin","textAlign","isRTL"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SACEC,IADF,EAEEC,QAFF,EAGEC,IAHF,EAIEC,UAJF,EAQEC,QARF,EAWEC,WAXF,EAaEC,SAAS,IAAIC,eAbf,QAcO,cAdP;AAeA,SAASC,iBAAT,QAAkC,gCAAlC;AAEA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,SAAT,QAA0B,eAA1B;AACA,OAAOC,MAAP,MAAmB,kBAAnB;AACA,OAAOC,MAAP,MAAmB,qBAAnB;AACA,OAAOC,SAAP,MAAsB,cAAtB;AACA,OAAOC,cAAP,MAA2B,uBAA3B;AAIA,SAASC,WAAT,QAA4B,aAA5B;AAEA,MAAMC,YAAY,GAAGf,QAAQ,CAACgB,uBAAT,CAAiCf,IAAjC,CAArB;AAEA,MAAMgB,wBAAwB,GAAG,GAAjC;AACA,MAAMC,uBAAuB,GAAG,GAAhC;AACA,MAAMC,SAAS,GAAG,EAAlB;AA0BA,MAAMC,MAAM,GAAG,CACb,SADa,EAEb,UAFa,EAGb,OAHa,EAIb,OAJa,EAKb,KALa,EAMb,MANa,EAOb,MAPa,EAQb,QARa,EASb,WATa,EAUb,SAVa,EAWb,UAXa,EAYb,UAZa,CAAf;;AAeA,MAAMC,UAA2B,GAAG,CAAC;AACnCC,EAAAA,IADmC;AAEnCC,EAAAA,KAFmC;AAGnCC,EAAAA,KAAK,EAAE;AAAEC,IAAAA,MAAF;AAAUC,IAAAA,UAAV;AAAsBC,IAAAA,SAAtB;AAAiCC,IAAAA;AAAjC,GAH4B;AAInCC,EAAAA,IAJmC;AAKnCC,EAAAA,YAAY,GAAG,MAAM,CAAE,CALY;AAMnCC,EAAAA,YANmC;AAOnCC,EAAAA,QAAQ,GAAG,KAPwB;AAQnCC,EAAAA,IAAI,GAAG,MAR4B;AASnCC,EAAAA,MATmC;AAUnCC,EAAAA,IAAI,GAAG,WAV4B;AAWnCC,EAAAA,YAXmC;AAYnCC,EAAAA,aAZmC;AAanCC,EAAAA,YAAY,GAAG,OAboB;AAcnCC,EAAAA,KAdmC;AAenCC,EAAAA,WAfmC;AAgBnC,KAAGC;AAhBgC,CAAD,KAiB9B;AACJ,QAAM,CAACC,KAAD,EAAQC,QAAR,IAAoB7C,KAAK,CAAC8C,QAAN,CAAoBf,IAApB,CAA1B;AACA,QAAM,CAACgB,aAAD,EAAgBC,gBAAhB,IAAoChD,KAAK,CAAC8C,QAAN,CAAe,KAAf,CAA1C;AACA,QAAM,CAACG,OAAD,IAAYjD,KAAK,CAAC8C,QAAN,CAChB,IAAI5C,QAAQ,CAACgD,KAAb,CAAmBnB,IAAI,GAAG,CAAH,GAAO,CAA9B,CADgB,CAAlB;AAGA,QAAM,CAACoB,YAAD,EAAeC,eAAf,IAAkCpD,KAAK,CAAC8C,QAAN,CAAe,EAAf,CAAxC;AACA,QAAM,CAACO,OAAD,EAAUC,UAAV,IAAwBtD,KAAK,CAAC8C,QAAN,CAAwB,KAAxB,CAA9B;AACA,QAAM,CAACS,WAAD,EAAcC,cAAd,IAAgCxD,KAAK,CAAC8C,QAAN,CAGnC;AAAEW,IAAAA,QAAQ,EAAE,KAAZ;AAAmBC,IAAAA,KAAK,EAAE;AAA1B,GAHmC,CAAtC;AAKA,QAAMC,oBAAoB,GAAG3C,WAAW,CAACiB,YAAD,CAAxC;AACAjC,EAAAA,KAAK,CAAC4D,SAAN,CAAgB,MAAM;AACpB,UAAMC,eAAe,GAAG5B,YAAY,GAAGA,YAAY,CAAC6B,QAAb,EAAH,GAA6B,EAAjE;AACA,UAAMC,uBAAuB,GAAGJ,oBAAoB,GAChD;AACA;AACAA,IAAAA,oBAAoB,CAACG,QAArB,EAHgD,GAIhD,EAJJ;;AAKA,QAAID,eAAe,KAAKE,uBAAxB,EAAiD;AAC/ClB,MAAAA,QAAQ,CAACZ,YAAD,CAAR;AACAD,MAAAA,YAAY,CAACC,YAAD,CAAZ;AACD;AACF,GAXD,EAWG,CAACA,YAAD,EAAe0B,oBAAf,EAAqCd,QAArC,EAA+Cb,YAA/C,CAXH;;AAaA,QAAMgC,YAAY,GAAG,MAAY;AAC/B,QAAI,CAACpB,KAAL,EAAY;AACV,aAAO,IAAIqB,IAAJ,EAAP;AACD;;AACD,WAAO,QAAOrB,KAAP,aAAOA,KAAP,uBAAOA,KAAK,CAAEsB,QAAd,MAA2B,UAA3B,GAAwCtB,KAAxC,GAAgD,IAAIqB,IAAJ,EAAvD;AACD,GALD;;AAOA,QAAME,UAAU,GAAG,MAAc;AAC/B,QAAI,CAACvB,KAAL,EAAY,OAAO,EAAP;AACZ,QAAIwB,OAAO,GAAGJ,YAAY,EAA1B;AAEA,QAAI5B,MAAJ,EAAY,OAAO1B,UAAU,CAAC0D,OAAD,EAAUhC,MAAV,CAAjB;;AAEZ,QAAID,IAAI,KAAK,MAAb,EAAqB;AACnB,aAAQ,GAAEiC,OAAO,CAACC,kBAAR,EAA6B,EAAvC;AACD;;AAED,QAAIlC,IAAI,KAAK,UAAb,EAAyB;AACvB,aAAQ,GAAEiC,OAAO,CAACE,cAAR,EAAyB,EAAnC;AACD;;AAED,WAAQ,GACNhD,MAAM,CAAC8C,OAAO,CAACF,QAAR,EAAD,CACP,IAAGE,OAAO,CAACG,OAAR,EAAkB,KAAIH,OAAO,CAACI,WAAR,EAAsB,EAFhD;AAGD,GAjBD;;AAmBA,QAAMC,gBAAgB,GAAG,YAAY;AACnCzB,IAAAA,gBAAgB,CAAC,CAACD,aAAF,CAAhB;AACAM,IAAAA,OAAO,GAAGqB,WAAW,EAAd,GAAmBC,YAAY,EAAtC;AACD,GAHD;;AAIA,QAAMC,MAAM,GAAGnE,iBAAiB,EAAhC,CAzDI,CA2DJ;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA,QAAMoE,gBAAgB,GAAG,MAAM;AAC7BzB,IAAAA,eAAe,CAAC,EAAD,CAAf;AACD,GAFD;;AAIApD,EAAAA,KAAK,CAAC4D,SAAN,CAAgB,MAAM;AACpBf,IAAAA,QAAQ,CAACd,IAAD,CAAR;AACD,GAFD,EAEG,CAACA,IAAD,CAFH;AAIA/B,EAAAA,KAAK,CAAC4D,SAAN,CAAgB,MAAM;AACpB,QAAIhB,KAAK,IAAIS,OAAT,IAAoBF,YAAxB,EAAsC;AACpC;AACAjD,MAAAA,QAAQ,CAAC4E,MAAT,CAAgB7B,OAAhB,EAAyB;AACvB8B,QAAAA,OAAO,EAAE,CADc;AAEvBC,QAAAA,QAAQ,EAAE5D,uBAFa;AAGvB6D,QAAAA,eAAe,EAAE;AAHM,OAAzB,EAIGC,KAJH;AAKD,KAPD,MAOO;AACL;AACAhF,MAAAA,QAAQ,CAAC4E,MAAT,CAAgB7B,OAAhB,EAAyB;AACvB8B,QAAAA,OAAO,EAAE,CADc;AAEvBC,QAAAA,QAAQ,EAAE7D,wBAFa;AAGvB8D,QAAAA,eAAe,EAAE;AAHM,OAAzB,EAIGC,KAJH;AAKD;AACF,GAhBD,EAgBG,CAACtC,KAAD,EAAQS,OAAR,EAAiBF,YAAjB,EAA+BF,OAA/B,CAhBH;AAkBAjD,EAAAA,KAAK,CAAC4D,SAAN,CAAgB,MAAM;AACpB,UAAMuB,gBAAgB,GAAG,MACvBC,UAAU,CAAC,MAAMhC,eAAe,CAACV,WAAW,IAAI,EAAhB,CAAtB,EAA2C,EAA3C,CADZ;;AAEA,QAAIW,OAAO,IAAI,CAACZ,KAAhB,EAAuB;AACrB0C,MAAAA,gBAAgB;AACjB,KAFD,MAEO;AACLN,MAAAA,gBAAgB;AACjB;;AACD,WAAO,MAAM;AACXQ,MAAAA,YAAY,CAACF,gBAAgB,EAAjB,CAAZ;AACD,KAFD;AAGD,GAXD,EAWG,CAAC9B,OAAD,EAAUZ,KAAV,EAAiBC,WAAjB,CAXH;;AAaA,QAAMiC,YAAY,GAAG,MAAM;AACzB,QAAIzC,QAAJ,EAAc;AACZ;AACD;;AAEDoB,IAAAA,UAAU,CAAC,IAAD,CAAV;AACD,GAND;;AAQA,QAAMoB,WAAW,GAAG,MAAM;AACxB,QAAIxC,QAAJ,EAAc;AACZ;AACD;;AACDoB,IAAAA,UAAU,CAAC,KAAD,CAAV;AACD,GALD;;AAOA,QAAMgC,wBAAwB,GAAG,EAAE1D,UAAU,CAAC2D,OAAX,CAAmBC,UAAnB,GAAgC,CAAlC,CAAjC;AACA,QAAMC,gCAAgC,GAAG,EAAE,KAAK,GAAL,GAAW,CAAb,CAAzC;AACA,QAAMC,yBAAyB,GAAG9D,UAAU,CAAC+D,SAAX,CAAqBC,QAAvD;AACA,QAAMC,yBAAyB,GAAGjE,UAAU,CAAC2D,OAAX,CAAmBK,QAArD;AAEA,QAAME,gBAAgB,GAAGzC,OAAzB;AAEA,MAAI0C,cAAJ,EACEC,WADF,EAEEC,cAFF,EAGEC,WAHF,EAIEC,gBAJF,EAKEC,cALF,EAMEC,eANF,EAOEC,UAPF;AASAP,EAAAA,cAAc,GAAGpE,MAAM,CAAC4E,MAAxB;;AACA,MAAIrE,QAAJ,EAAc;AACZ8D,IAAAA,WAAW,GAAGrE,MAAM,CAAC6E,KAArB;AACAL,IAAAA,gBAAgB,GAAGxE,MAAM,CAAC6E,KAA1B;AACAN,IAAAA,WAAW,GAAG,aAAd;AACAD,IAAAA,cAAc,GAAG,aAAjB;AACAI,IAAAA,eAAe,GAAG1E,MAAM,CAAC8E,OAAzB;AACD,GAND,MAMO;AACLT,IAAAA,WAAW,GAAGrE,MAAM,CAAC+E,OAArB;AACAP,IAAAA,gBAAgB,GAAGD,WAAW,GAAGvE,MAAM,CAAC6E,KAAxC;AACAP,IAAAA,cAAc,GAAGtE,MAAM,CAAC6E,KAAxB;AACAH,IAAAA,eAAe,GAAG1E,MAAM,CAACgF,UAAzB;AACD;;AAED,QAAM;AAAEnB,IAAAA,UAAF;AAAc,OAAGG;AAAjB,MAA+B/D,UAAU,CAAC+D,SAAhD;AAEAW,EAAAA,UAAU,GAAG;AACXM,IAAAA,eAAe,EAAE,CADN;AAEXC,IAAAA,KAAK,EAAEd,cAFI;AAGXe,IAAAA,WAAW,EACTxE,YAAY,IAAIE,YAAY,KAAK,OAAjC,GACInB,SAAS,IAAIgB,IAAI,KAAK,OAAT,GAAmB,EAAnB,GAAwB,EAA5B,CADb,GAEI,CANK;AAOX0E,IAAAA,YAAY,EAAExE,aAAa,GAAGlB,SAAS,GAAG,EAAZ,GAAiB,CAApB,GAAwB,EAPxC;AAQX,OAAGsE,SARQ;AASXqB,IAAAA,MAAM,EAAExB;AATG,GAAb;;AAYA,MAAInD,IAAI,KAAK,WAAb,EAA0B;AACxB+D,IAAAA,cAAc,GAAG;AACfa,MAAAA,mBAAmB,EAAEpF,SADN;AAEfqF,MAAAA,oBAAoB,EAAErF,SAFP;AAGfsF,MAAAA,aAAa,EAAE,EAHA;AAIfC,MAAAA,SAAS,EAAE;AAJI,KAAjB;AAMD,GAPD,MAOO;AACLhB,IAAAA,cAAc,GAAG;AACfiB,MAAAA,YAAY,EAAExF,SADC;AAEfqE,MAAAA,WAAW,EAAEJ,gBAAgB,GAAGE,WAAH,GAAiBE,WAF/B;AAGfoB,MAAAA,WAAW,EAAE,CAHE;AAIfC,MAAAA,UAAU,EAAEtE,OAAO,GAAG,KAAK,GAAR,GAAc,EAJlB;AAKfkE,MAAAA,aAAa,EAAElE,OAAO,GAAG,KAAK,GAAR,GAAc,EALrB;AAMfuE,MAAAA,OAAO,EAAEtF,QAAQ,GAAGJ,eAAH,GAAqB,CANvB;AAOfuE,MAAAA;AAPe,KAAjB;AAUAC,IAAAA,UAAU,CAACmB,iBAAX,GAA+B,EAA/B;AACD;;AAED,MAAInF,YAAY,IAAIE,YAAY,KAAK,QAArC,EAA+C;AAC7C4D,IAAAA,cAAc,CAACsB,UAAf,GAA4BrG,SAAS,GAAG,CAAxC;AACD;;AAED,MAAIsG,aAAJ;;AACA,MAAItE,OAAJ,EAAa;AACXsE,IAAAA,aAAa,GAAGhG,MAAM,CAAC+E,OAAvB;AACD,GAFD,MAEO;AACLiB,IAAAA,aAAa,GAAGhG,MAAM,CAAC6E,KAAvB;AACD;;AAED,QAAMoB,aAAa,GAAG;AACpBC,IAAAA,IAAI,EAAE,EADc;AAEpBhB,IAAAA,KAAK,EAAEc,aAFa;AAGpBG,IAAAA,IAAI,EAAExF,YAAY,IAAI;AAHF,GAAtB;AAMA,QAAMyF,aAAyB,GAAG;AAChCC,IAAAA,QAAQ,EAAE,UADsB;AAEhCZ,IAAAA,SAAS,EACP/E,IAAI,KAAK,OAAT,GACIG,YAAY,KAAK,OAAjB,GACEqD,yBAAyB,GAAG,CAD9B,GAEE,EAHN,GAIIrD,YAAY,KAAK,QAAjB,GACA,EADA,GAEA;AAT0B,GAAlC;AAYA,QAAMyF,UAAU,GAAG,EACjB,GAAGrG,UAAU,CAAC+D,SADG;AAEjBuC,IAAAA,GAAG,EAAE7F,IAAI,KAAK,OAAT,GAAmB,EAAnB,GAAwB,CAFZ;AAGjB8F,IAAAA,IAAI,EACF7F,YAAY,IAAIE,YAAY,KAAK,OAAjC,GACInB,SAAS,IAAIgB,IAAI,KAAK,OAAT,GAAmB,EAAnB,GAAwB,EAA5B,CADb,GAEI,CANW;AAOjB+F,IAAAA,SAAS,EAAE,CACT;AACE;AACAC,MAAAA,UAAU,EAAEpF,OAAO,CAACqF,WAAR,CAAoB;AAC9BC,QAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CADkB;AAE9BC,QAAAA,WAAW,EAAE,CACXnG,IAAI,KAAK,OAAT,GACIoD,gCADJ,GAEIH,wBAHO,EAIX,CAJW;AAFiB,OAApB;AAFd,KADS,EAaT;AACE;AACAmD,MAAAA,KAAK,EAAExF,OAAO,CAACqF,WAAR,CAAoB;AACzBC,QAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CADa;AAEzBC,QAAAA,WAAW,EAAE,CACX3C,yBAAyB,GAAGH,yBADjB,EAEX,CAFW;AAFY,OAApB;AAFT,KAbS,EAuBT;AACE;AACAgD,MAAAA,UAAU,EAAEzF,OAAO,CAACqF,WAAR,CAAoB;AAC9BC,QAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CADkB;AAE9BC,QAAAA,WAAW,EAAE,CACX,EAAE,IAAI3C,yBAAyB,GAAGH,yBAAlC,KACGnC,WAAW,CAACG,KAAZ,GAAoB,CADvB,CADW,EAGX,CAHW;AAFiB,OAApB;AAFd,KAvBS;AAPM,GAAnB;AA4CA,QAAMiF,WAAW,GAAG,CAClBC,MAAM,CAACC,KADW,EAElBvC,UAFkB,EAGlBjE,IAAI,KAAK,OAAT,GAAmB;AAAEyG,IAAAA,gBAAgB,EAAE;AAApB,GAAnB,GAA8C,EAH5B,CAApB,CA5QI,CAkRJ;;AAEA,sBACE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAE,CAACF,MAAM,CAACG,SAAR,EAAmBtH,KAAnB;AAAb,kBACE,oBAAC,SAAD;AAAW,IAAA,QAAQ,EAAES,QAArB;AAA+B,IAAA,OAAO,EAAEuC;AAAxC,kBACE,oBAAC,IAAD;AAAM,IAAA,aAAa,EAAC;AAApB,kBACE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAE,CAACmE,MAAM,CAACG,SAAR,EAAmBtH,KAAnB;AAAb,KACGa,YAAY,IAAIE,YAAY,KAAK,QAAjC,gBACC,oBAAC,IAAD,eAAUoF,aAAV;AAAyB,IAAA,KAAK,EAAEG;AAAhC,KADD,GAEG,IAHN,eAIE,oBAAC,IAAD;AACE,IAAA,KAAK,EAAE,CAAC3B,cAAD,EAAiB3E,KAAK,GAAG;AAAEuF,MAAAA,MAAM,EAAEvF,KAAK,CAACuF;AAAhB,KAAH,GAA8B,EAApD;AADT,KAGG3E,IAAI,KAAK,WAAT;AAAA;AACC;AACA,sBAAC,QAAD,CAAU,IAAV;AACE,IAAA,KAAK,EAAE,CACLuG,MAAM,CAACI,SADF,EAEL;AACE3C,MAAAA,eAAe,EAAEhD,OAAO,GAAG2C,WAAH,GAAiBC,cAD3C;AAEE;AACAmC,MAAAA,SAAS,EAAE,CAAC;AAAEa,QAAAA,MAAM,EAAE5F,OAAO,GAAG,CAAH,GAAO;AAAxB,OAAD;AAHb,KAFK;AADT,IAFD,GAYG,IAfN,EAiBGZ,KAAK;AAAA;AACJ;AACA;AACA,sBAAC,IAAD;AACE,IAAA,aAAa,EAAC,MADhB;AAEE,IAAA,KAAK,EAAE,CACLrC,UAAU,CAAC8I,YADN,EAEL;AACE1B,MAAAA,OAAO,EACL;AACAzF,MAAAA,IAAI,IAAIsB,OAAR,GAAmBE,WAAW,CAACE,QAAZ,GAAuB,CAAvB,GAA2B,CAA9C,GAAmD;AAHvD,KAFK;AAFT,kBAWE,oBAAC,YAAD;AACE,IAAA,QAAQ,EAAG0F,CAAD,IACR3F,cAAc,CAAC;AACbE,MAAAA,KAAK,EAAEyF,CAAC,CAACC,WAAF,CAAcC,MAAd,CAAqB3F,KADf;AAEbD,MAAAA,QAAQ,EAAE;AAFG,KAAD,CAFlB;AAOE,IAAA,KAAK,EAAE,CACLmF,MAAM,CAAClG,WADF,EAELL,IAAI,KAAK,OAAT,GAAmB;AAAEoF,MAAAA,iBAAiB,EAAE;AAArB,KAAnB,GAA+C,EAF1C,EAGLQ,UAHK,EAIL;AACEpB,MAAAA,KAAK,EAAElF,MAAM,CAAC6E,KADhB;AAEEgB,MAAAA,OAAO,EAAEvE,OAAO,CAACqF,WAAR,CAAoB;AAC3BC,QAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CADe;AAE3BC,QAAAA,WAAW,EAAE,CAAC1C,gBAAgB,GAAG,CAAH,GAAO,CAAxB,EAA2B,CAA3B;AAFc,OAApB;AAFX,KAJK,CAPT;AAmBE,IAAA,aAAa,EAAE;AAnBjB,KAqBGrD,KArBH,CAXF,eAkCE,oBAAC,YAAD;AACE,IAAA,KAAK,EAAE,CACLmG,MAAM,CAAClG,WADF,EAELL,IAAI,KAAK,OAAT,GAAmB;AAAEoF,MAAAA,iBAAiB,EAAE;AAArB,KAAnB,GAA+C,EAF1C,EAGLQ,UAHK,EAIL;AACEpB,MAAAA,KAAK,EAAEV,gBADT;AAEEqB,MAAAA,OAAO,EAAE1B,gBAAgB,GAAG7C,OAAH,GAAa;AAFxC,KAJK,CADT;AAUE,IAAA,aAAa,EAAE;AAVjB,KAYGR,KAZH,CAlCF,CAHI,GAoDF,IArEN,EAuEGH,YAAY,IAAIE,YAAY,KAAK,OAAjC,gBACC,oBAAC,IAAD,eACMoF,aADN;AAEE,IAAA,KAAK,EAAE,EACL,GAAGG,aADE;AAELL,MAAAA,UAAU,EAAErF,IAAI,KAAK,OAAT,GAAmB,EAAnB,GAAwB;AAF/B;AAFT,KADD,GAQG,IA/EN,eAiFE,oBAAC,eAAD;AACE,IAAA,KAAK,EAAE8B,UAAU,EADnB;AAEE,IAAA,WAAW,EAAE1B,KAAK,GAAGU,YAAH,GAAkBT,WAFtC;AAGE,IAAA,QAAQ,EAAE,CAACR,QAHb;AAIE,IAAA,oBAAoB,EAAEiE,gBAJxB;AAKE,IAAA,cAAc,EAAEH,WALlB;AAME,IAAA,OAAO,EAAErB,YANX;AAOE,IAAA,MAAM,EAAED,WAPV;AAQE,IAAA,qBAAqB,EAAE,aARzB;AASE,IAAA,KAAK,EAAEiE;AATT,KAUMhG,KAVN,EAjFF,CAJF,EAkGGJ,aAAa,gBACZ,oBAAC,IAAD;AACE,IAAA,IAAI,EAAEA,aADR;AAEE,IAAA,IAAI,EAAElB,SAFR;AAGE,IAAA,KAAK,EAAEM,MAAM,CAAC6E,KAHhB;AAIE,IAAA,KAAK,EAAE;AACLwB,MAAAA,QAAQ,EAAE,UADL;AAELsB,MAAAA,KAAK,EAAE,EAFF;AAGLlC,MAAAA,SAAS,EACP/E,IAAI,KAAK,OAAT,GAAmBwD,yBAAyB,GAAG,CAA/C,GAAmD;AAJhD;AAJT,IADY,GAYV,IA9GN,CADF,CADF,CADF,EAqHG9C,aAAa,iBACZ,oBAAC,MAAD,qBACE,oBAAC,IAAD;AACE,IAAA,KAAK,EAAE,CACL6F,MAAM,CAACW,MADF,EAEL;AACElD,MAAAA,eAAe,EAAE1E,MAAM,CAAC8E;AAD1B,KAFK;AADT,kBAQE,oBAAC,IAAD;AACE,IAAA,KAAK,EAAE,CACLmC,MAAM,CAACY,eADF,EAEL;AACEjC,MAAAA,UAAU,EAAE3C,MAAM,CAACsD,GADrB;AAEEf,MAAAA,aAAa,EAAEvC,MAAM,CAAC6E,MAFxB;AAGE3C,MAAAA,WAAW,EAAElC,MAAM,CAACuD,IAHtB;AAIEpB,MAAAA,YAAY,EAAEnC,MAAM,CAAC0E;AAJvB,KAFK;AADT,KAWGjJ,QAAQ,CAACqJ,EAAT,KAAgB,KAAhB,iBACC,oBAAC,MAAD;AACE,IAAA,IAAI,EAAElI,IADR;AAEE,IAAA,IAAI,EAAC,MAFP;AAGE,IAAA,OAAO,EAAEiD,gBAHX;AAIE,IAAA,KAAK,EAAEmE,MAAM,CAACe;AAJhB,aAZJ,eAsBE,oBAAC,cAAD;AACE,IAAA,KAAK,EAAE3F,YAAY,EADrB;AAEE,IAAA,IAAI,EAAE7B,IAFR;AAGE,IAAA,SAAS,EAAEY,aAHb;AAIE,IAAA,gBAAgB,EAAE0B,gBAJpB;AAKE,IAAA,QAAQ,EAAE,CAACmF,MAAD,EAAcC,IAAd,KAA4B;AACpCxJ,MAAAA,QAAQ,CAACqJ,EAAT,KAAgB,KAAhB,GAAwB,IAAxB,GAA+BjF,gBAAgB,EAA/C;AACA5B,MAAAA,QAAQ,CAACgH,IAAD,CAAR;AACA7H,MAAAA,YAAY,CAAC6H,IAAD,CAAZ;AACD;AATH,IAtBF,CARF,CADF,CAtHJ,CADF;AAuKD,CA5cD;;AA8cA,MAAMjB,MAAM,GAAGxI,UAAU,CAAC0J,MAAX,CAAkB;AAC/Bf,EAAAA,SAAS,EAAE;AACTgB,IAAAA,SAAS,EAAE;AADF,GADoB;AAI/BR,EAAAA,MAAM,EAAE;AACNvB,IAAAA,QAAQ,EAAE,UADJ;AAENyB,IAAAA,MAAM,EAAE,CAFF;AAGNtB,IAAAA,IAAI,EAAE,CAHA;AAINmB,IAAAA,KAAK,EAAE,CAJD;AAKNU,IAAAA,aAAa,EAAE,KALT;AAMNC,IAAAA,cAAc,EAAE;AANV,GAJuB;AAY/BjB,EAAAA,SAAS,EAAE;AACThB,IAAAA,QAAQ,EAAE,UADD;AAETG,IAAAA,IAAI,EAAE,CAFG;AAGTmB,IAAAA,KAAK,EAAE,CAHE;AAITG,IAAAA,MAAM,EAAE,CAJC;AAKTzC,IAAAA,MAAM,EAAE;AALC,GAZoB;AAmB/B6B,EAAAA,KAAK,EAAE;AACLqB,IAAAA,QAAQ,EAAE,CADL;AAELD,IAAAA,cAAc,EAAE,QAFX;AAGLE,IAAAA,iBAAiB,EAAE,QAHd;AAILC,IAAAA,MAAM,EAAE,CAJH;AAKLC,IAAAA,SAAS,EAAE/J,WAAW,CAACgK,KAAZ,GAAoB,OAApB,GAA8B;AALpC,GAnBwB;AA0B/B5H,EAAAA,WAAW,EAAE;AACXsF,IAAAA,QAAQ,EAAE,UADC;AAEXG,IAAAA,IAAI,EAAE;AAFK,GA1BkB;AA8B/BqB,EAAAA,eAAe,EAAE;AAAEQ,IAAAA,aAAa,EAAE,QAAjB;AAA2BtG,IAAAA,KAAK,EAAE;AAAlC,GA9Bc;AA+B/BiG,EAAAA,WAAW,EAAE;AACXI,IAAAA,SAAS,EAAE;AADA;AA/BkB,CAAlB,CAAf;AAoCA,eAAepJ,SAAS,CAACY,UAAD,CAAxB","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n Animated,\n Text,\n StyleSheet,\n StyleProp,\n ViewStyle,\n TextStyle,\n Platform,\n TextInputProps,\n ImageStyle,\n I18nManager,\n LayoutChangeEvent,\n TextInput as NativeTextInput,\n} from \"react-native\";\nimport { useSafeAreaInsets } from \"react-native-safe-area-context\";\n\nimport dateFormat from \"dateformat\";\nimport { withTheme } from \"../../theming\";\nimport Portal from \"../Portal/Portal\";\nimport Button from \"../DeprecatedButton\";\nimport Touchable from \"../Touchable\";\nimport DateTimePicker from \"./DatePickerComponent\";\n\nimport type { Theme } from \"../../styles/DefaultTheme\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport { usePrevious } from \"../../hooks\";\n\nconst AnimatedText = Animated.createAnimatedComponent(Text);\n\nconst FOCUS_ANIMATION_DURATION = 150;\nconst BLUR_ANIMATION_DURATION = 180;\nconst ICON_SIZE = 24;\n\ntype Props = {\n style?: StyleProp<ViewStyle> & { height?: number };\n theme: Theme;\n // initialDate?: string;\n // locale?: string;\n // minuteInterval?: number;\n // timeZoneOffsetInMinutes?: number;\n // error?: boolean;\n // type?: string;\n date?: Date;\n format?: string;\n onDateChange?: (data?: Date) => void;\n initialValue?: Date;\n disabled?: boolean;\n mode?: \"date\" | \"time\" | \"datetime\";\n type?: \"solid\" | \"underline\";\n label?: string;\n placeholder?: string;\n leftIconName?: string;\n leftIconMode?: \"outset\" | \"inset\";\n rightIconName?: string;\n} & IconSlot &\n TextInputProps;\n\nconst MONTHS = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nconst DatePicker: React.FC<Props> = ({\n Icon,\n style,\n theme: { colors, typography, roundness, disabledOpacity },\n date,\n onDateChange = () => {},\n initialValue,\n disabled = false,\n mode = \"date\",\n format,\n type = \"underline\",\n leftIconName,\n rightIconName,\n leftIconMode = \"inset\",\n label,\n placeholder,\n ...props\n}) => {\n const [value, setValue] = React.useState<any>(date);\n const [pickerVisible, setPickerVisible] = React.useState(false);\n const [labeled] = React.useState<Animated.Value>(\n new Animated.Value(date ? 0 : 1)\n );\n const [placeholder1, setPlaceholder1] = React.useState(\"\");\n const [focused, setFocused] = React.useState<boolean>(false);\n const [labelLayout, setLabelLayout] = React.useState<{\n measured: Boolean;\n width: number;\n }>({ measured: false, width: 0 });\n\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n const initialValueStr = initialValue ? initialValue.toString() : \"\";\n const previousInitialValueStr = previousInitialValue\n ? // This weirdly complains about being possibly undefined despite being inside a ternary\n // @ts-ignore\n previousInitialValue.toString()\n : \"\";\n if (initialValueStr !== previousInitialValueStr) {\n setValue(initialValue);\n onDateChange(initialValue);\n }\n }, [initialValue, previousInitialValue, setValue, onDateChange]);\n\n const getValidDate = (): Date => {\n if (!value) {\n return new Date();\n }\n return typeof value?.getMonth === \"function\" ? value : new Date();\n };\n\n const formatDate = (): string => {\n if (!value) return \"\";\n let newDate = getValidDate();\n\n if (format) return dateFormat(newDate, format);\n\n if (mode === \"time\") {\n return `${newDate.toLocaleTimeString()}`;\n }\n\n if (mode === \"datetime\") {\n return `${newDate.toLocaleString()}`;\n }\n\n return `${\n MONTHS[newDate.getMonth()]\n } ${newDate.getDate()}, ${newDate.getFullYear()}`;\n };\n\n const toggleVisibility = async () => {\n setPickerVisible(!pickerVisible);\n focused ? _handleBlur() : _handleFocus();\n };\n const insets = useSafeAreaInsets();\n\n // const _restoreLabel = () =>\n // Animated.timing(labeled, {\n // toValue: 1,\n // duration: FOCUS_ANIMATION_DURATION,\n // useNativeDriver: true,\n // }).start();\n\n // const _minmizeLabel = () =>\n // Animated.timing(labeled, {\n // toValue: 0,\n // duration: BLUR_ANIMATION_DURATION,\n // useNativeDriver: true,\n // }).start();\n\n // const _showPlaceholder = () =>\n // setTimeout(() => setPlaceholder1(placeholder || \"\"), 50);\n\n const _hidePlaceholder = () => {\n setPlaceholder1(\"\");\n };\n\n React.useEffect(() => {\n setValue(date);\n }, [date]);\n\n React.useEffect(() => {\n if (value || focused || placeholder1) {\n // _minmizeLabel();\n Animated.timing(labeled, {\n toValue: 0,\n duration: BLUR_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n } else {\n // _restoreLabel();\n Animated.timing(labeled, {\n toValue: 1,\n duration: FOCUS_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n }\n }, [value, focused, placeholder1, labeled]);\n\n React.useEffect(() => {\n const _showPlaceholder = () =>\n setTimeout(() => setPlaceholder1(placeholder || \"\"), 50);\n if (focused || !label) {\n _showPlaceholder();\n } else {\n _hidePlaceholder();\n }\n return () => {\n clearTimeout(_showPlaceholder());\n };\n }, [focused, label, placeholder]);\n\n const _handleFocus = () => {\n if (disabled) {\n return;\n }\n\n setFocused(true);\n };\n\n const _handleBlur = () => {\n if (disabled) {\n return;\n }\n setFocused(false);\n };\n\n const MINIMIZED_LABEL_Y_OFFSET = -(typography.caption.lineHeight + 4);\n const OUTLINE_MINIMIZED_LABEL_Y_OFFSET = -(16 * 0.5 + 4);\n const MAXIMIZED_LABEL_FONT_SIZE = typography.subtitle1.fontSize;\n const MINIMIZED_LABEL_FONT_SIZE = typography.caption.fontSize;\n\n const hasActiveOutline = focused;\n\n let inputTextColor,\n activeColor,\n underlineColor,\n borderColor,\n placeholderColor,\n containerStyle: StyleProp<ViewStyle>,\n backgroundColor,\n inputStyle: StyleProp<TextStyle>;\n\n inputTextColor = colors.strong;\n if (disabled) {\n activeColor = colors.light;\n placeholderColor = colors.light;\n borderColor = \"transparent\";\n underlineColor = \"transparent\";\n backgroundColor = colors.divider;\n } else {\n activeColor = colors.primary;\n placeholderColor = borderColor = colors.light;\n underlineColor = colors.light;\n backgroundColor = colors.background;\n }\n\n const { lineHeight, ...subtitle1 } = typography.subtitle1;\n\n inputStyle = {\n paddingVertical: 0,\n color: inputTextColor,\n paddingLeft:\n leftIconName && leftIconMode === \"inset\"\n ? ICON_SIZE + (type === \"solid\" ? 16 : 12)\n : 0,\n paddingRight: rightIconName ? ICON_SIZE + 16 + 4 : 12,\n ...subtitle1,\n height: lineHeight,\n };\n\n if (type === \"underline\") {\n containerStyle = {\n borderTopLeftRadius: roundness,\n borderTopRightRadius: roundness,\n paddingBottom: 12,\n marginTop: 16,\n };\n } else {\n containerStyle = {\n borderRadius: roundness,\n borderColor: hasActiveOutline ? activeColor : borderColor,\n borderWidth: 1,\n paddingTop: labeled ? 16 * 1.5 : 16,\n paddingBottom: labeled ? 16 * 0.5 : 16,\n opacity: disabled ? disabledOpacity : 1,\n backgroundColor,\n };\n\n inputStyle.paddingHorizontal = 12;\n }\n\n if (leftIconName && leftIconMode === \"outset\") {\n containerStyle.marginLeft = ICON_SIZE + 8;\n }\n\n let leftIconColor;\n if (focused) {\n leftIconColor = colors.primary;\n } else {\n leftIconColor = colors.light;\n }\n\n const leftIconProps = {\n size: 24,\n color: leftIconColor,\n name: leftIconName || \"\",\n };\n\n const leftIconStyle: ImageStyle = {\n position: \"absolute\",\n marginTop:\n type === \"solid\"\n ? leftIconMode === \"inset\"\n ? MINIMIZED_LABEL_FONT_SIZE + 4\n : 16\n : leftIconMode === \"outset\"\n ? 16\n : 0,\n };\n\n const labelStyle = {\n ...typography.subtitle1,\n top: type === \"solid\" ? 16 : 0,\n left:\n leftIconName && leftIconMode === \"inset\"\n ? ICON_SIZE + (type === \"solid\" ? 16 : 12)\n : 0,\n transform: [\n {\n // Move label to top\n translateY: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n type === \"solid\"\n ? OUTLINE_MINIMIZED_LABEL_Y_OFFSET\n : MINIMIZED_LABEL_Y_OFFSET,\n 0,\n ],\n }),\n },\n {\n // Make label smaller\n scale: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE,\n 1,\n ],\n }),\n },\n {\n // Offset label scale since RN doesn't support transform origin\n translateX: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n -(1 - MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE) *\n (labelLayout.width / 2),\n 0,\n ],\n }),\n },\n ],\n };\n\n const inputStyles = [\n styles.input,\n inputStyle,\n type === \"solid\" ? { marginHorizontal: 12 } : {},\n ];\n\n // const render = (props) => <NativeTextInput {...props} />;\n\n return (\n <View style={[styles.container, style]}>\n <Touchable disabled={disabled} onPress={toggleVisibility}>\n <View pointerEvents=\"none\">\n <View style={[styles.container, style]}>\n {leftIconName && leftIconMode === \"outset\" ? (\n <Icon {...leftIconProps} style={leftIconStyle} />\n ) : null}\n <View\n style={[containerStyle, style ? { height: style.height } : {}]}\n >\n {type === \"underline\" ? (\n // When type === 'flat', render an underline\n <Animated.View\n style={[\n styles.underline,\n {\n backgroundColor: focused ? activeColor : underlineColor,\n // Underlines is thinner when input is not focused\n transform: [{ scaleY: focused ? 1 : 0.5 }],\n },\n ]}\n />\n ) : null}\n\n {label ? (\n // Position colored placeholder and gray placeholder on top of each other and crossfade them\n // This gives the effect of animating the color, but allows us to use native driver\n <View\n pointerEvents=\"none\"\n style={[\n StyleSheet.absoluteFill,\n {\n opacity:\n // Hide the label in minimized state until we measure its width\n date || focused ? (labelLayout.measured ? 1 : 0) : 1,\n },\n ]}\n >\n <AnimatedText\n onLayout={(e: LayoutChangeEvent) =>\n setLabelLayout({\n width: e.nativeEvent.layout.width,\n measured: true,\n })\n }\n style={[\n styles.placeholder,\n type === \"solid\" ? { paddingHorizontal: 12 } : {},\n labelStyle,\n {\n color: colors.light,\n opacity: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 1 : 0, 0],\n }),\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </AnimatedText>\n <AnimatedText\n style={[\n styles.placeholder,\n type === \"solid\" ? { paddingHorizontal: 12 } : {},\n labelStyle,\n {\n color: placeholderColor,\n opacity: hasActiveOutline ? labeled : 1,\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </AnimatedText>\n </View>\n ) : null}\n\n {leftIconName && leftIconMode === \"inset\" ? (\n <Icon\n {...leftIconProps}\n style={{\n ...leftIconStyle,\n marginLeft: type === \"solid\" ? 16 : 0,\n }}\n />\n ) : null}\n\n <NativeTextInput\n value={formatDate()}\n placeholder={label ? placeholder1 : placeholder}\n editable={!disabled}\n placeholderTextColor={placeholderColor}\n selectionColor={activeColor}\n onFocus={_handleFocus}\n onBlur={_handleBlur}\n underlineColorAndroid={\"transparent\"}\n style={inputStyles}\n {...props}\n />\n </View>\n {rightIconName ? (\n <Icon\n name={rightIconName}\n size={ICON_SIZE}\n color={colors.light}\n style={{\n position: \"absolute\",\n right: 16,\n marginTop:\n type === \"solid\" ? MINIMIZED_LABEL_FONT_SIZE + 4 : 16,\n }}\n />\n ) : null}\n </View>\n </View>\n </Touchable>\n {pickerVisible && (\n <Portal>\n <View\n style={[\n styles.picker,\n {\n backgroundColor: colors.divider,\n },\n ]}\n >\n <View\n style={[\n styles.pickerContainer,\n {\n paddingTop: insets.top,\n paddingBottom: insets.bottom,\n paddingLeft: insets.left,\n paddingRight: insets.right,\n },\n ]}\n >\n {Platform.OS === \"ios\" && (\n <Button\n Icon={Icon}\n type=\"text\"\n onPress={toggleVisibility}\n style={styles.closeButton}\n >\n Close\n </Button>\n )}\n\n <DateTimePicker\n value={getValidDate()}\n mode={mode}\n isVisible={pickerVisible}\n toggleVisibility={toggleVisibility}\n onChange={(_event: any, data: any) => {\n Platform.OS === \"ios\" ? null : toggleVisibility();\n setValue(data);\n onDateChange(data);\n }}\n />\n </View>\n </View>\n </Portal>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n picker: {\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n },\n underline: {\n position: \"absolute\",\n left: 0,\n right: 0,\n bottom: 0,\n height: 2,\n },\n input: {\n flexGrow: 1,\n justifyContent: \"center\",\n textAlignVertical: \"center\",\n margin: 0,\n textAlign: I18nManager.isRTL ? \"right\" : \"left\",\n },\n placeholder: {\n position: \"absolute\",\n left: 0,\n },\n pickerContainer: { flexDirection: \"column\", width: \"100%\" },\n closeButton: {\n alignSelf: \"flex-end\",\n },\n});\n\nexport default withTheme(DatePicker);\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
//# sourceMappingURL=DatePickerComponentType.js.map
|
|
2
|
+
//# sourceMappingURL=DatePickerComponentType.js.mapype.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
//# sourceMappingURL=Justification.js.map
|
|
2
|
+
//# sourceMappingURL=Justification.js.mapion.js.map
|
|
@@ -18,6 +18,8 @@ const Picker = ({
|
|
|
18
18
|
onValueChange: onValueChangeOverride = () => {},
|
|
19
19
|
...props
|
|
20
20
|
}) => {
|
|
21
|
+
var _options$find$label, _options$find;
|
|
22
|
+
|
|
21
23
|
const {
|
|
22
24
|
viewStyles: {
|
|
23
25
|
borderRadius,
|
|
@@ -64,6 +66,7 @@ const Picker = ({
|
|
|
64
66
|
};
|
|
65
67
|
|
|
66
68
|
const stylesWithoutMargin = style && omit(StyleSheet.flatten(style), ["margin", "marginTop", "marginRight", "marginBottom", "marginLeft"]);
|
|
69
|
+
const selectedLabel = selectedValue && ((_options$find$label = (_options$find = options.find(opt => opt.value === selectedValue)) === null || _options$find === void 0 ? void 0 : _options$find.label) !== null && _options$find$label !== void 0 ? _options$find$label : selectedValue);
|
|
67
70
|
return /*#__PURE__*/React.createElement(Touchable, {
|
|
68
71
|
disabled: disabled,
|
|
69
72
|
onPress: toggleFocus,
|
|
@@ -87,7 +90,7 @@ const Picker = ({
|
|
|
87
90
|
}))), /*#__PURE__*/React.createElement(View, {
|
|
88
91
|
pointerEvents: "none"
|
|
89
92
|
}, /*#__PURE__*/React.createElement(TextField, _extends({}, props, {
|
|
90
|
-
value:
|
|
93
|
+
value: selectedLabel,
|
|
91
94
|
placeholder: placeholder // @ts-ignore
|
|
92
95
|
,
|
|
93
96
|
ref: textField // cannot determine if ref is of correct type due to component being wrapped in a withTheme()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["PickerComponent.android.tsx"],"names":["React","View","StyleSheet","omit","withTheme","Picker","NativePicker","extractStyles","TextField","Touchable","style","options","placeholder","selectedValue","disabled","onValueChange","onValueChangeOverride","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","useRef","undefined","itemValue","itemIndex","toggleFocus","current","stylesWithoutMargin","flatten","
|
|
1
|
+
{"version":3,"sources":["PickerComponent.android.tsx"],"names":["React","View","StyleSheet","omit","withTheme","Picker","NativePicker","extractStyles","TextField","Touchable","style","options","placeholder","selectedValue","disabled","onValueChange","onValueChangeOverride","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","useRef","undefined","itemValue","itemIndex","toggleFocus","current","stylesWithoutMargin","flatten","selectedLabel","find","opt","value","label","styles","container","index","toString","opacity","position","top","left","right","bottom","map","o","create","alignSelf"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet } from \"react-native\";\nimport omit from \"lodash.omit\";\nimport { withTheme } from \"../../theming\";\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\nimport { extractStyles } from \"../../utilities\";\n\nimport TextField from \"../TextField\";\nimport Touchable from \"../Touchable\";\nimport { PickerComponentProps } from \"./PickerTypes\";\n\nconst Picker: React.FC<PickerComponentProps> = ({\n style,\n options,\n placeholder,\n selectedValue,\n disabled = false,\n onValueChange: onValueChangeOverride = () => {},\n ...props\n}) => {\n const {\n viewStyles: {\n borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n padding, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...viewStyles\n },\n } = extractStyles(style);\n\n const textField = React.useRef<typeof TextField | undefined>(undefined);\n\n const onValueChange = (itemValue: string, itemIndex: number) => {\n toggleFocus();\n onValueChangeOverride(itemValue, itemIndex);\n };\n\n const toggleFocus = () => {\n if (!disabled) {\n // @ts-ignore\n textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()\n }\n };\n\n const stylesWithoutMargin =\n style &&\n omit(StyleSheet.flatten(style), [\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n ]);\n\n const selectedLabel =\n selectedValue &&\n (options.find((opt) => opt.value === selectedValue)?.label ??\n selectedValue);\n\n return (\n <Touchable\n disabled={disabled}\n onPress={toggleFocus}\n style={[styles.container, viewStyles]}\n >\n <View>\n <NativePicker\n enabled={!disabled}\n selectedValue={selectedValue}\n onValueChange={(value, index) =>\n onValueChange(value.toString(), index)\n }\n style={{\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n }}\n >\n {options.map((o) => (\n <NativePicker.Item label={o.label} value={o.value} key={o.value} />\n ))}\n </NativePicker>\n <View pointerEvents=\"none\">\n <TextField\n {...props}\n value={selectedLabel}\n placeholder={placeholder}\n // @ts-ignore\n ref={textField} // cannot determine if ref is of correct type due to component being wrapped in a withTheme()\n disabled={disabled}\n // @ts-expect-error\n style={stylesWithoutMargin}\n />\n </View>\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n});\n\nexport default withTheme(Picker);\n"]}
|
|
@@ -17,6 +17,8 @@ const Picker = ({
|
|
|
17
17
|
onValueChange: onValueChangeOverride = () => {},
|
|
18
18
|
...props
|
|
19
19
|
}) => {
|
|
20
|
+
var _options$find$label, _options$find;
|
|
21
|
+
|
|
20
22
|
const {
|
|
21
23
|
viewStyles: {
|
|
22
24
|
borderRadius,
|
|
@@ -63,6 +65,7 @@ const Picker = ({
|
|
|
63
65
|
};
|
|
64
66
|
|
|
65
67
|
const stylesWithoutMargin = style && omit(StyleSheet.flatten(style), ["margin", "marginTop", "marginRight", "marginBottom", "marginLeft"]);
|
|
68
|
+
const selectedLabel = selectedValue && ((_options$find$label = (_options$find = options.find(opt => opt.value === selectedValue)) === null || _options$find === void 0 ? void 0 : _options$find.label) !== null && _options$find$label !== void 0 ? _options$find$label : selectedValue);
|
|
66
69
|
return /*#__PURE__*/React.createElement(Touchable, {
|
|
67
70
|
disabled: disabled,
|
|
68
71
|
onPress: toggleFocus,
|
|
@@ -87,7 +90,7 @@ const Picker = ({
|
|
|
87
90
|
}))), /*#__PURE__*/React.createElement(View, {
|
|
88
91
|
pointerEvents: "none"
|
|
89
92
|
}, /*#__PURE__*/React.createElement(TextField, _extends({}, props, {
|
|
90
|
-
value:
|
|
93
|
+
value: selectedLabel,
|
|
91
94
|
placeholder: placeholder // @ts-ignore
|
|
92
95
|
,
|
|
93
96
|
ref: textField // cannot determine if ref is of correct type due to component being wrapped in a withTheme()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["PickerComponent.web.tsx"],"names":["React","View","StyleSheet","Picker","NativePicker","omit","withTheme","extractStyles","TextField","Touchable","style","options","placeholder","selectedValue","disabled","onValueChange","onValueChangeOverride","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","useRef","undefined","itemValue","itemIndex","toggleFocus","current","stylesWithoutMargin","flatten","
|
|
1
|
+
{"version":3,"sources":["PickerComponent.web.tsx"],"names":["React","View","StyleSheet","Picker","NativePicker","omit","withTheme","extractStyles","TextField","Touchable","style","options","placeholder","selectedValue","disabled","onValueChange","onValueChangeOverride","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","useRef","undefined","itemValue","itemIndex","toggleFocus","current","stylesWithoutMargin","flatten","selectedLabel","find","opt","value","label","styles","container","index","toString","flex","opacity","position","top","left","right","bottom","map","o","create","alignSelf"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet, Picker as NativePicker } from \"react-native\";\nimport omit from \"lodash.omit\";\nimport { withTheme } from \"../../theming\";\nimport { extractStyles } from \"../../utilities\";\n\nimport TextField from \"../TextField\";\nimport Touchable from \"../Touchable\";\nimport { PickerComponentProps } from \"./PickerTypes\";\n\nconst Picker: React.FC<PickerComponentProps> = ({\n style,\n options,\n placeholder,\n selectedValue,\n disabled = false,\n onValueChange: onValueChangeOverride = () => {},\n ...props\n}) => {\n const {\n viewStyles: {\n borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n padding, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...viewStyles\n },\n } = extractStyles(style);\n\n const textField = React.useRef<typeof TextField | undefined>(undefined);\n\n const onValueChange = (itemValue: string, itemIndex: number) => {\n toggleFocus();\n onValueChangeOverride(itemValue, itemIndex);\n };\n\n const toggleFocus = () => {\n if (!disabled) {\n // @ts-ignore\n textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()\n }\n };\n\n const stylesWithoutMargin =\n style &&\n omit(StyleSheet.flatten(style), [\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n ]);\n\n const selectedLabel =\n selectedValue &&\n (options.find((opt) => opt.value === selectedValue)?.label ??\n selectedValue);\n\n return (\n <Touchable\n disabled={disabled}\n onPress={toggleFocus}\n style={[styles.container, viewStyles]}\n >\n <View>\n <NativePicker\n enabled={!disabled}\n selectedValue={selectedValue}\n onValueChange={(value, index) =>\n onValueChange(value.toString(), index)\n }\n style={{\n flex: 1,\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n }}\n >\n {options.map((o) => (\n <NativePicker.Item label={o.label} value={o.value} key={o.value} />\n ))}\n </NativePicker>\n <View pointerEvents=\"none\">\n <TextField\n {...props}\n value={selectedLabel}\n placeholder={placeholder}\n // @ts-ignore\n ref={textField} // cannot determine if ref is of correct type due to component being wrapped in a withTheme()\n disabled={disabled}\n // @ts-expect-error\n style={stylesWithoutMargin}\n />\n </View>\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n});\n\nexport default withTheme(Picker);\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
//# sourceMappingURL=PickerTypes.js.map
|
|
2
|
+
//# sourceMappingURL=PickerTypes.js.mappes.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
//# sourceMappingURL=ResizeMode.js.map
|
|
2
|
+
//# sourceMappingURL=ResizeMode.js.mapode.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@draftbit/core",
|
|
3
|
-
"version": "42.1.
|
|
3
|
+
"version": "42.1.7-71d4c6.1+71d4c6b7",
|
|
4
4
|
"description": "Core (non-native) Components",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -92,5 +92,6 @@
|
|
|
92
92
|
}
|
|
93
93
|
]
|
|
94
94
|
]
|
|
95
|
-
}
|
|
95
|
+
},
|
|
96
|
+
"gitHead": "71d4c6b70a672326a78e452798ecca7ec993de9a"
|
|
96
97
|
}
|
package/src/Provider.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { ThemeProvider } from "./theming";
|
|
3
|
+
import PortalHost from "./components/Portal/PortalHost";
|
|
4
|
+
export default class Provider extends React.Component {
|
|
5
|
+
render() {
|
|
6
|
+
return (React.createElement(PortalHost, null,
|
|
7
|
+
React.createElement(ThemeProvider, { theme: this.props.theme }, this.props.children)));
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { View, StyleSheet, Pressable, } from "react-native";
|
|
3
|
+
import Text from "../Text";
|
|
4
|
+
import { withTheme } from "../../theming";
|
|
5
|
+
import { COMPONENT_TYPES, createNumberProp, createIconProp, createTextProp, createStaticBoolProp, createColorProp, } from "@draftbit/types";
|
|
6
|
+
const AccordionGroup = ({ Icon, openColor, closedColor, caretColor, icon, iconSize = 24, style, label, children, expanded: expandedProp, theme, }) => {
|
|
7
|
+
const [expanded, setExpanded] = React.useState(expandedProp || false);
|
|
8
|
+
const handlePressAction = () => {
|
|
9
|
+
if (expandedProp === undefined) {
|
|
10
|
+
setExpanded(!expanded);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
const expandedInternal = expandedProp !== undefined ? expandedProp : expanded;
|
|
14
|
+
const expandedColor = openColor || theme.colors.primary;
|
|
15
|
+
const collapsedColor = closedColor || theme.colors.primary;
|
|
16
|
+
const labelColor = expanded ? expandedColor : collapsedColor;
|
|
17
|
+
return (React.createElement(React.Fragment, null,
|
|
18
|
+
React.createElement(Pressable, { style: [style], onPress: handlePressAction, accessibilityRole: "button" },
|
|
19
|
+
React.createElement(View, { style: styles.row },
|
|
20
|
+
icon ? (React.createElement(Icon, { name: icon, size: iconSize, color: labelColor, style: styles.icon })) : null,
|
|
21
|
+
React.createElement(View, { style: [styles.item, styles.content] },
|
|
22
|
+
React.createElement(Text, { selectable: false, style: [
|
|
23
|
+
styles.label,
|
|
24
|
+
{
|
|
25
|
+
color: labelColor,
|
|
26
|
+
},
|
|
27
|
+
style,
|
|
28
|
+
] }, label)),
|
|
29
|
+
React.createElement(View, { style: [styles.item] },
|
|
30
|
+
React.createElement(Icon, { name: expanded
|
|
31
|
+
? "MaterialIcons/keyboard-arrow-up"
|
|
32
|
+
: "MaterialIcons/keyboard-arrow-down", color: caretColor, size: 24 })))),
|
|
33
|
+
expandedInternal
|
|
34
|
+
? React.Children.map(children, (child) => {
|
|
35
|
+
if (React.isValidElement(child) &&
|
|
36
|
+
!child.props.left &&
|
|
37
|
+
!child.props.right) {
|
|
38
|
+
return React.cloneElement(child, {
|
|
39
|
+
style: child.props.style,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return child;
|
|
43
|
+
})
|
|
44
|
+
: null));
|
|
45
|
+
};
|
|
46
|
+
const styles = StyleSheet.create({
|
|
47
|
+
row: {
|
|
48
|
+
flexDirection: "row",
|
|
49
|
+
alignItems: "center",
|
|
50
|
+
},
|
|
51
|
+
label: {
|
|
52
|
+
fontSize: 16,
|
|
53
|
+
},
|
|
54
|
+
item: {
|
|
55
|
+
margin: 8,
|
|
56
|
+
},
|
|
57
|
+
content: {
|
|
58
|
+
flex: 1,
|
|
59
|
+
justifyContent: "center",
|
|
60
|
+
},
|
|
61
|
+
icon: {
|
|
62
|
+
marginLeft: 8,
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
export default withTheme(AccordionGroup);
|
|
66
|
+
export const SEED_DATA = {
|
|
67
|
+
name: "Accordion Group",
|
|
68
|
+
tag: "AccordionGroup",
|
|
69
|
+
description: "An expandable container containing components",
|
|
70
|
+
category: COMPONENT_TYPES.container,
|
|
71
|
+
props: {
|
|
72
|
+
openColor: createColorProp({
|
|
73
|
+
label: "Open text color",
|
|
74
|
+
}),
|
|
75
|
+
closedColor: createColorProp({
|
|
76
|
+
label: "Closed text Color",
|
|
77
|
+
}),
|
|
78
|
+
caretColor: createColorProp({
|
|
79
|
+
label: "Caret color",
|
|
80
|
+
}),
|
|
81
|
+
iconSize: createNumberProp({
|
|
82
|
+
label: "Icon size",
|
|
83
|
+
defaultValue: 24,
|
|
84
|
+
}),
|
|
85
|
+
label: createTextProp({
|
|
86
|
+
label: "Label",
|
|
87
|
+
}),
|
|
88
|
+
expanded: createStaticBoolProp({
|
|
89
|
+
label: "Expanded",
|
|
90
|
+
description: "Whether the AccordionGroup should be expanded or not",
|
|
91
|
+
}),
|
|
92
|
+
icon: createIconProp(),
|
|
93
|
+
},
|
|
94
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Pressable, StyleSheet, View, } from "react-native";
|
|
3
|
+
import Text from "../Text";
|
|
4
|
+
import { COMPONENT_TYPES, createIconProp, createTextProp, createColorProp, } from "@draftbit/types";
|
|
5
|
+
import { extractStyles } from "../../utilities";
|
|
6
|
+
import { withTheme } from "../../theming";
|
|
7
|
+
const AccordionItem = ({ Icon, icon, label, style, iconColor, theme, ...rest }) => {
|
|
8
|
+
const { textStyles, viewStyles } = extractStyles(style);
|
|
9
|
+
return (React.createElement(Pressable, { style: [styles.container, viewStyles], ...rest },
|
|
10
|
+
React.createElement(View, { style: styles.row },
|
|
11
|
+
icon ? (React.createElement(Icon, { name: icon, size: 24, color: iconColor || theme.colors.primary })) : null,
|
|
12
|
+
React.createElement(View, { style: [styles.item, styles.content] },
|
|
13
|
+
React.createElement(Text, { selectable: false, style: textStyles }, label)))));
|
|
14
|
+
};
|
|
15
|
+
const styles = StyleSheet.create({
|
|
16
|
+
container: {
|
|
17
|
+
padding: 8,
|
|
18
|
+
},
|
|
19
|
+
row: {
|
|
20
|
+
flexDirection: "row",
|
|
21
|
+
alignItems: "center",
|
|
22
|
+
paddingLeft: 8,
|
|
23
|
+
},
|
|
24
|
+
item: {
|
|
25
|
+
marginVertical: 6,
|
|
26
|
+
paddingLeft: 8,
|
|
27
|
+
},
|
|
28
|
+
content: {
|
|
29
|
+
flex: 1,
|
|
30
|
+
justifyContent: "center",
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
export default withTheme(AccordionItem);
|
|
34
|
+
export const SEED_DATA = {
|
|
35
|
+
name: "Accordion Item",
|
|
36
|
+
tag: "AccordionItem",
|
|
37
|
+
description: "Item to be used in Accordion",
|
|
38
|
+
category: COMPONENT_TYPES.row,
|
|
39
|
+
props: {
|
|
40
|
+
icon: createIconProp(),
|
|
41
|
+
label: createTextProp({
|
|
42
|
+
label: "Item label",
|
|
43
|
+
}),
|
|
44
|
+
iconColor: createColorProp({
|
|
45
|
+
label: "Icon color",
|
|
46
|
+
}),
|
|
47
|
+
},
|
|
48
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { View, StyleSheet } from "react-native";
|
|
3
|
+
import Portal from "../Portal/Portal";
|
|
4
|
+
import Touchable from "../Touchable";
|
|
5
|
+
import { COMPONENT_TYPES, createStaticBoolProp, GROUPS } from "@draftbit/types";
|
|
6
|
+
const ActionSheet = ({ visible = false, onClose, children }) => {
|
|
7
|
+
return visible ? (React.createElement(Portal, null,
|
|
8
|
+
React.createElement(Touchable, { style: styles.wrapper, onPress: onClose },
|
|
9
|
+
React.createElement(View, { style: styles.overlay }),
|
|
10
|
+
React.createElement(View, { style: styles.groupWrapper },
|
|
11
|
+
React.createElement(View, { style: styles.group }, React.Children.toArray(children).filter((child) => child?.type?.name !== "ActionSheetCancel")),
|
|
12
|
+
React.createElement(View, { style: styles.group }, React.Children.toArray(children).filter((child) => child.type.name === "ActionSheetCancel")))))) : (React.createElement(React.Fragment, null));
|
|
13
|
+
};
|
|
14
|
+
const styles = StyleSheet.create({
|
|
15
|
+
wrapper: {
|
|
16
|
+
flex: 1,
|
|
17
|
+
display: "flex",
|
|
18
|
+
flexDirection: "column",
|
|
19
|
+
},
|
|
20
|
+
overlay: {
|
|
21
|
+
position: "absolute",
|
|
22
|
+
top: 0,
|
|
23
|
+
left: 0,
|
|
24
|
+
right: 0,
|
|
25
|
+
bottom: 0,
|
|
26
|
+
backgroundColor: "#000000",
|
|
27
|
+
opacity: 0.3,
|
|
28
|
+
},
|
|
29
|
+
groupWrapper: {
|
|
30
|
+
flex: 1,
|
|
31
|
+
flexDirection: "column",
|
|
32
|
+
justifyContent: "flex-end",
|
|
33
|
+
display: "flex",
|
|
34
|
+
marginBottom: 25,
|
|
35
|
+
},
|
|
36
|
+
group: {
|
|
37
|
+
display: "flex",
|
|
38
|
+
flexDirection: "column",
|
|
39
|
+
borderRadius: 10,
|
|
40
|
+
marginHorizontal: 7,
|
|
41
|
+
marginVertical: 2.5,
|
|
42
|
+
overflow: "hidden",
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
export default ActionSheet;
|
|
46
|
+
export const SEED_DATA = {
|
|
47
|
+
name: "Action Sheet",
|
|
48
|
+
tag: "ActionSheet",
|
|
49
|
+
description: "Action Sheet container",
|
|
50
|
+
category: COMPONENT_TYPES.container,
|
|
51
|
+
props: {
|
|
52
|
+
visible: createStaticBoolProp({
|
|
53
|
+
group: GROUPS.basic,
|
|
54
|
+
label: "Show Action Sheet",
|
|
55
|
+
}),
|
|
56
|
+
},
|
|
57
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { COMPONENT_TYPES, createActionProp, createTextProp, GROUPS, Triggers, } from "@draftbit/types";
|
|
3
|
+
import ActionSheetItem from "./ActionSheetItem";
|
|
4
|
+
const ActionSheetCancel = ({ label = "Cancel", style, onPress, }) => {
|
|
5
|
+
return (React.createElement(ActionSheetItem, { label: label, style: [
|
|
6
|
+
style,
|
|
7
|
+
{
|
|
8
|
+
color: "#FF453A",
|
|
9
|
+
fontWeight: "bold",
|
|
10
|
+
},
|
|
11
|
+
], onPress: onPress }));
|
|
12
|
+
};
|
|
13
|
+
export default ActionSheetCancel;
|
|
14
|
+
export const SEED_DATA = {
|
|
15
|
+
name: "Action Sheet Cancel",
|
|
16
|
+
tag: "ActionSheetCancel",
|
|
17
|
+
description: "Action Sheet cancel",
|
|
18
|
+
category: COMPONENT_TYPES.button,
|
|
19
|
+
triggers: [Triggers.OnPress],
|
|
20
|
+
props: {
|
|
21
|
+
onPress: createActionProp(),
|
|
22
|
+
label: createTextProp({
|
|
23
|
+
group: GROUPS.basic,
|
|
24
|
+
label: "Label",
|
|
25
|
+
defaultValue: "Cancel",
|
|
26
|
+
}),
|
|
27
|
+
},
|
|
28
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Text, StyleSheet, TouchableHighlight, } from "react-native";
|
|
3
|
+
import { COMPONENT_TYPES, createActionProp, createTextProp, GROUPS, Triggers, } from "@draftbit/types";
|
|
4
|
+
import { extractStyles } from "../../utilities";
|
|
5
|
+
const ActionSheetItem = ({ label, style, onPress }) => {
|
|
6
|
+
const { textStyles, viewStyles } = extractStyles(style);
|
|
7
|
+
return (React.createElement(TouchableHighlight, { underlayColor: "#FFFFFF", style: [styles.wrapper, viewStyles], onPress: onPress },
|
|
8
|
+
React.createElement(Text, { style: [styles.label, textStyles] }, label)));
|
|
9
|
+
};
|
|
10
|
+
const styles = StyleSheet.create({
|
|
11
|
+
wrapper: {
|
|
12
|
+
borderBottomWidth: StyleSheet.hairlineWidth,
|
|
13
|
+
borderBottomColor: "#CCCCCC",
|
|
14
|
+
backgroundColor: "#F1F1F1",
|
|
15
|
+
minHeight: 50,
|
|
16
|
+
overflow: "hidden",
|
|
17
|
+
display: "flex",
|
|
18
|
+
justifyContent: "center",
|
|
19
|
+
},
|
|
20
|
+
label: {
|
|
21
|
+
fontSize: 16,
|
|
22
|
+
textAlign: "center",
|
|
23
|
+
color: "#0A84FF",
|
|
24
|
+
fontWeight: "500",
|
|
25
|
+
overflow: "hidden",
|
|
26
|
+
paddingHorizontal: 20,
|
|
27
|
+
paddingVertical: 10,
|
|
28
|
+
alignSelf: "center",
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
export default ActionSheetItem;
|
|
32
|
+
export const SEED_DATA = {
|
|
33
|
+
name: "Action Sheet Item",
|
|
34
|
+
tag: "ActionSheetItem",
|
|
35
|
+
description: "Action Sheet item",
|
|
36
|
+
category: COMPONENT_TYPES.button,
|
|
37
|
+
triggers: [Triggers.OnPress],
|
|
38
|
+
layout: {
|
|
39
|
+
textAlign: "center",
|
|
40
|
+
},
|
|
41
|
+
props: {
|
|
42
|
+
onPress: createActionProp(),
|
|
43
|
+
label: createTextProp({
|
|
44
|
+
group: GROUPS.basic,
|
|
45
|
+
label: "Label",
|
|
46
|
+
defaultValue: "Option",
|
|
47
|
+
}),
|
|
48
|
+
},
|
|
49
|
+
};
|