@tecsinapse/react-core 1.12.5 → 1.12.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/components/atoms/Input/hooks/useCurrencyMask.js +2 -2
  3. package/dist/components/atoms/Input/hooks/useCurrencyMask.js.map +1 -1
  4. package/dist/components/atoms/Input/hooks/useMask.js +2 -2
  5. package/dist/components/atoms/Input/hooks/useMask.js.map +1 -1
  6. package/dist/components/atoms/ProgressBar/ProgressBar.d.ts +1 -1
  7. package/dist/components/atoms/ProgressBar/ProgressBar.js +6 -6
  8. package/dist/components/atoms/ProgressBar/ProgressBar.js.map +1 -1
  9. package/dist/components/atoms/Switch/Switch.js +30 -22
  10. package/dist/components/atoms/Switch/Switch.js.map +1 -1
  11. package/dist/components/atoms/Switch/animation.d.ts +1 -1
  12. package/dist/components/atoms/Switch/animation.js +24 -16
  13. package/dist/components/atoms/Switch/animation.js.map +1 -1
  14. package/dist/components/atoms/Switch/styled.d.ts +3 -2
  15. package/dist/components/atoms/Switch/styled.js +7 -3
  16. package/dist/components/atoms/Switch/styled.js.map +1 -1
  17. package/dist/components/atoms/shared/PaperAndCard.js +3 -4
  18. package/dist/components/atoms/shared/PaperAndCard.js.map +1 -1
  19. package/dist/components/molecules/Calendar/index.d.ts +1 -1
  20. package/dist/components/molecules/Calendar/index.js +6 -0
  21. package/dist/components/molecules/Calendar/index.js.map +1 -1
  22. package/dist/components/molecules/Calendar/styled.js +0 -17
  23. package/dist/components/molecules/Calendar/styled.js.map +1 -1
  24. package/dist/components/molecules/DatePicker/DatePicker.d.ts +6 -5
  25. package/dist/components/molecules/DatePicker/DatePicker.js +22 -32
  26. package/dist/components/molecules/DatePicker/DatePicker.js.map +1 -1
  27. package/dist/components/molecules/DatePicker/styled.d.ts +0 -14
  28. package/dist/components/molecules/DatePicker/styled.js +1 -46
  29. package/dist/components/molecules/DatePicker/styled.js.map +1 -1
  30. package/dist/components/molecules/DateTimePicker/DateTimePicker.d.ts +5 -4
  31. package/dist/components/molecules/DateTimePicker/DateTimePicker.js +35 -37
  32. package/dist/components/molecules/DateTimePicker/DateTimePicker.js.map +1 -1
  33. package/dist/components/molecules/DateTimePicker/styled.d.ts +0 -21
  34. package/dist/components/molecules/DateTimePicker/styled.js +3 -51
  35. package/dist/components/molecules/DateTimePicker/styled.js.map +1 -1
  36. package/dist/components/molecules/Grid/Item/Item.d.ts +1 -1
  37. package/dist/components/molecules/Grid/Item/Item.js +7 -5
  38. package/dist/components/molecules/Grid/Item/Item.js.map +1 -1
  39. package/dist/components/molecules/HintInputContainer/HintInputContainer.d.ts +3 -2
  40. package/dist/components/molecules/HintInputContainer/HintInputContainer.js +4 -4
  41. package/dist/components/molecules/HintInputContainer/HintInputContainer.js.map +1 -1
  42. package/dist/components/molecules/TextArea/TextArea.d.ts +3 -1
  43. package/dist/components/molecules/TextArea/TextArea.js +4 -4
  44. package/dist/components/molecules/TextArea/TextArea.js.map +1 -1
  45. package/dist/index.d.ts +1 -1
  46. package/dist/index.js +7 -0
  47. package/dist/index.js.map +1 -1
  48. package/dist/styles/definitions.js +1 -1
  49. package/dist/styles/definitions.js.map +1 -1
  50. package/dist/utils/extractNumbersFromString.js +1 -1
  51. package/dist/utils/extractNumbersFromString.js.map +1 -1
  52. package/package.json +2 -2
  53. package/src/components/atoms/Input/hooks/useCurrencyMask.ts +2 -2
  54. package/src/components/atoms/Input/hooks/useMask.ts +1 -1
  55. package/src/components/atoms/ProgressBar/ProgressBar.tsx +5 -5
  56. package/src/components/atoms/Switch/Switch.tsx +29 -32
  57. package/src/components/atoms/Switch/animation.ts +26 -16
  58. package/src/components/atoms/Switch/styled.ts +6 -4
  59. package/src/components/atoms/shared/PaperAndCard.ts +4 -5
  60. package/src/components/molecules/Calendar/index.ts +1 -0
  61. package/src/components/molecules/Calendar/styled.ts +0 -22
  62. package/src/components/molecules/DatePicker/DatePicker.tsx +32 -41
  63. package/src/components/molecules/DatePicker/styled.ts +0 -40
  64. package/src/components/molecules/DateTimePicker/DateTimePicker.tsx +46 -52
  65. package/src/components/molecules/DateTimePicker/styled.ts +1 -49
  66. package/src/components/molecules/Grid/Item/Item.tsx +3 -5
  67. package/src/components/molecules/HintInputContainer/HintInputContainer.tsx +3 -8
  68. package/src/components/molecules/TextArea/TextArea.tsx +3 -9
  69. package/src/index.ts +1 -0
  70. package/src/styles/definitions.ts +1 -1
  71. package/src/utils/extractNumbersFromString.ts +4 -5
  72. package/dist/components/molecules/DatePicker/Modal.d.ts +0 -8
  73. package/dist/components/molecules/DatePicker/Modal.js +0 -60
  74. package/dist/components/molecules/DatePicker/Modal.js.map +0 -1
  75. package/dist/components/molecules/DateTimePicker/Modal.d.ts +0 -7
  76. package/dist/components/molecules/DateTimePicker/Modal.js +0 -89
  77. package/dist/components/molecules/DateTimePicker/Modal.js.map +0 -1
  78. package/src/components/molecules/DatePicker/DatePicker.stories.tsx +0 -44
  79. package/src/components/molecules/DatePicker/Modal.tsx +0 -51
  80. package/src/components/molecules/DateTimePicker/DateTimePicker.stories.tsx +0 -26
  81. package/src/components/molecules/DateTimePicker/Modal.tsx +0 -84
@@ -1,18 +1,19 @@
1
1
  import * as React from 'react';
2
- import { ModalBaseProps } from 'react-native';
3
2
  import { InputContainerProps } from '../../atoms/Input';
4
3
  import { TextProps } from '../../atoms/Text';
5
4
  import { CalendarProps, SelectionType } from '../Calendar';
6
- import { DatePickerModalProps } from './Modal';
7
- export interface DatePickerProps<T extends SelectionType> extends InputContainerProps, DatePickerModalProps<T>, Omit<CalendarProps<T>, 'style'> {
5
+ export interface DatePickerProps<T extends SelectionType> extends InputContainerProps, Omit<CalendarProps<T>, 'style'> {
8
6
  controlComponent?: (onPress: () => void, displayValue?: string) => JSX.Element;
9
7
  TextComponent?: React.FC<TextProps>;
10
- animationType?: ModalBaseProps['animationType'];
8
+ CalendarComponent: React.FC<CalendarProps<T>>;
11
9
  placeholder?: string;
12
10
  onFocus?: () => void | never;
13
11
  onBlur?: () => void | never;
14
12
  format?: string;
15
13
  closeOnPick?: boolean;
14
+ renderCalendar: (calendar: React.ReactElement, blur?: () => void) => JSX.Element | null;
15
+ requestShowCalendar: () => void;
16
+ requestCloseCalendar: () => void;
16
17
  }
17
- declare function DatePicker<T extends SelectionType>({ month, year, onChange, value, type, format, placeholder, onFocus, onBlur, disabled, controlComponent, hintComponent, hint, variant, TextComponent, CalendarComponent, bottomOffset, rightComponent, animationType, style, locale, closeOnPick, ...rest }: DatePickerProps<T>): JSX.Element;
18
+ declare function DatePicker<T extends SelectionType>({ month, year, onChange, value, type, format, placeholder, onFocus, onBlur, disabled, controlComponent, hintComponent, hint, variant, TextComponent, CalendarComponent, rightComponent, style, locale, closeOnPick, renderCalendar, requestShowCalendar, requestCloseCalendar, ...rest }: DatePickerProps<T>): JSX.Element;
18
19
  export default DatePicker;
@@ -13,12 +13,10 @@ var _Input = require("../../atoms/Input");
13
13
 
14
14
  var _Text = require("../../atoms/Text");
15
15
 
16
- var _Modal = require("./Modal");
16
+ var _HintInputContainer = require("../HintInputContainer");
17
17
 
18
18
  var _styled = require("./styled");
19
19
 
20
- var _HintInputContainer = require("../HintInputContainer");
21
-
22
20
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
21
 
24
22
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -42,12 +40,13 @@ function DatePicker({
42
40
  variant,
43
41
  TextComponent = _Text.Text,
44
42
  CalendarComponent,
45
- bottomOffset,
46
43
  rightComponent,
47
- animationType = 'fade',
48
44
  style,
49
45
  locale,
50
46
  closeOnPick = false,
47
+ renderCalendar,
48
+ requestShowCalendar,
49
+ requestCloseCalendar,
51
50
  ...rest
52
51
  }) {
53
52
  const {
@@ -55,15 +54,10 @@ function DatePicker({
55
54
  handleBlur,
56
55
  handleFocus
57
56
  } = (0, _Input.useInputFocus)(onFocus, onBlur, !disabled);
58
- const [modalVisible, setModalVisible] = React.useState(false);
59
- const handlePressInput = React.useCallback(() => {
60
- setModalVisible(true);
57
+ const handleShowCalendar = React.useCallback(() => {
58
+ requestShowCalendar();
61
59
  handleFocus();
62
- }, [handleFocus, setModalVisible]);
63
- const handleCloseModal = React.useCallback(() => {
64
- setModalVisible(false);
65
- handleBlur();
66
- }, [handleBlur, setModalVisible]);
60
+ }, [handleFocus, requestShowCalendar]);
67
61
 
68
62
  const getDisplayValue = () => {
69
63
  if (!value) return placeholder;
@@ -90,7 +84,7 @@ function DatePicker({
90
84
  const StyledText = (0, _styled.getStyledTextComponent)(TextComponent);
91
85
  (0, React.useEffect)(() => {
92
86
  if (closeOnPick && value && type === 'day') {
93
- setTimeout(handleCloseModal, 200);
87
+ setTimeout(requestCloseCalendar, 200);
94
88
  }
95
89
 
96
90
  if (closeOnPick && value && type === 'range') {
@@ -98,13 +92,22 @@ function DatePicker({
98
92
  lowest,
99
93
  highest
100
94
  } = value;
101
- lowest && highest && setTimeout(handleCloseModal, 200);
95
+ lowest && highest && setTimeout(requestCloseCalendar, 200);
102
96
  }
103
- }, [value, closeOnPick, type, handleCloseModal]);
104
- return React.createElement(React.Fragment, null, controlComponent ? controlComponent(handlePressInput, getDisplayValue()) : React.createElement(_HintInputContainer.HintInputContainer, _extends({
97
+ }, [value, closeOnPick, type, requestCloseCalendar]);
98
+ const calendar = React.createElement(CalendarComponent, {
99
+ pointerEvents: 'box-none',
100
+ type: type,
101
+ value: value,
102
+ month: month,
103
+ year: year,
104
+ onChange: onChange,
105
+ locale: locale
106
+ });
107
+ return React.createElement(React.Fragment, null, controlComponent ? controlComponent(handleShowCalendar, getDisplayValue()) : React.createElement(_HintInputContainer.HintInputContainer, _extends({
105
108
  focused: focused,
106
109
  viewStyle: style,
107
- onPress: handlePressInput,
110
+ onPress: handleShowCalendar,
108
111
  disabled: disabled,
109
112
  hintComponent: hintComponent,
110
113
  LabelComponent: TextComponent,
@@ -118,20 +121,7 @@ function DatePicker({
118
121
  }, rest), React.createElement(StyledText, {
119
122
  fontWeight: "bold",
120
123
  disabled: disabled
121
- }, getDisplayValue() || ' ')), React.createElement(_Modal.Modal, {
122
- CalendarComponent: CalendarComponent,
123
- bottomOffset: bottomOffset,
124
- visible: modalVisible,
125
- onRequestClose: handleCloseModal,
126
- animated: true,
127
- animationType: animationType,
128
- month: month,
129
- year: year,
130
- onChange: onChange,
131
- value: value,
132
- type: type,
133
- locale: locale
134
- }));
124
+ }, getDisplayValue() || ' ')), renderCalendar(calendar, handleBlur));
135
125
  }
136
126
 
137
127
  var _default = DatePicker;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/molecules/DatePicker/DatePicker.tsx"],"names":["DatePicker","month","year","onChange","value","type","format","placeholder","onFocus","onBlur","disabled","controlComponent","hintComponent","hint","variant","TextComponent","Text","CalendarComponent","bottomOffset","rightComponent","animationType","style","locale","closeOnPick","rest","focused","handleBlur","handleFocus","modalVisible","setModalVisible","React","useState","handlePressInput","useCallback","handleCloseModal","getDisplayValue","lowest","highest","StyledText","setTimeout"],"mappings":"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","sourcesContent":["import { format as formatDate } from 'date-fns';\nimport * as React from 'react';\nimport { ModalBaseProps } from 'react-native';\nimport { InputContainerProps, useInputFocus } from '../../atoms/Input';\nimport { Text, TextProps } from '../../atoms/Text';\nimport { CalendarProps, DateRange, SelectionType } from '../Calendar';\nimport { DatePickerModalProps, Modal } from './Modal';\nimport { CalendarIcon, getStyledTextComponent } from './styled';\nimport { HintInputContainer } from '../HintInputContainer';\nimport { useEffect } from 'react';\n\nexport interface DatePickerProps<T extends SelectionType>\n extends InputContainerProps,\n DatePickerModalProps<T>,\n Omit<CalendarProps<T>, 'style'> {\n controlComponent?: (\n onPress: () => void,\n displayValue?: string\n ) => JSX.Element;\n TextComponent?: React.FC<TextProps>;\n animationType?: ModalBaseProps['animationType'];\n placeholder?: string;\n onFocus?: () => void | never;\n onBlur?: () => void | never;\n format?: string;\n closeOnPick?: boolean;\n}\n\nfunction DatePicker<T extends SelectionType>({\n /** DatePicker props */\n month,\n year,\n onChange,\n value,\n type,\n format = 'yyyy-MM-dd',\n\n placeholder,\n onFocus,\n onBlur,\n disabled,\n controlComponent,\n hintComponent,\n hint,\n variant,\n TextComponent = Text,\n CalendarComponent,\n bottomOffset,\n rightComponent,\n animationType = 'fade',\n style,\n locale,\n closeOnPick = false,\n ...rest\n}: DatePickerProps<T>): JSX.Element {\n const { focused, handleBlur, handleFocus } = useInputFocus(\n onFocus,\n onBlur,\n !disabled\n );\n\n const [modalVisible, setModalVisible] = React.useState(false);\n\n const handlePressInput = React.useCallback(() => {\n setModalVisible(true);\n handleFocus();\n }, [handleFocus, setModalVisible]);\n\n const handleCloseModal = React.useCallback(() => {\n setModalVisible(false);\n handleBlur();\n }, [handleBlur, setModalVisible]);\n\n const getDisplayValue = () => {\n if (!value) return placeholder;\n if (type === 'day') {\n return formatDate(value as Date, format, { locale: locale });\n } else {\n const { lowest, highest } = value as DateRange;\n if (highest)\n return `${formatDate(lowest, format, {\n locale: locale,\n })} - ${formatDate(highest, format, { locale: locale })}`;\n else return formatDate(lowest, format, { locale: locale });\n }\n };\n\n const StyledText = getStyledTextComponent(TextComponent);\n\n useEffect(() => {\n if (closeOnPick && value && type === 'day') {\n setTimeout(handleCloseModal, 200);\n }\n if (closeOnPick && value && type === 'range') {\n const { lowest, highest } = value as DateRange;\n lowest && highest && setTimeout(handleCloseModal, 200);\n }\n }, [value, closeOnPick, type, handleCloseModal]);\n\n return (\n <>\n {controlComponent ? (\n controlComponent(handlePressInput, getDisplayValue())\n ) : (\n <HintInputContainer\n focused={focused}\n viewStyle={style}\n onPress={handlePressInput}\n disabled={disabled}\n hintComponent={hintComponent}\n LabelComponent={TextComponent}\n variant={variant}\n hint={hint}\n rightComponent={\n <>\n <CalendarIcon name=\"calendar-sharp\" type=\"ionicon\" size=\"centi\" />\n {rightComponent}\n </>\n }\n {...rest}\n >\n <StyledText fontWeight=\"bold\" disabled={disabled}>\n {getDisplayValue() || ' '}\n </StyledText>\n </HintInputContainer>\n )}\n <Modal\n CalendarComponent={CalendarComponent}\n bottomOffset={bottomOffset}\n visible={modalVisible}\n onRequestClose={handleCloseModal}\n animated\n animationType={animationType}\n month={month}\n year={year}\n onChange={onChange}\n value={value}\n type={type}\n locale={locale}\n />\n </>\n );\n}\n\nexport default DatePicker;\n"],"file":"DatePicker.js"}
1
+ {"version":3,"sources":["../../../../src/components/molecules/DatePicker/DatePicker.tsx"],"names":["DatePicker","month","year","onChange","value","type","format","placeholder","onFocus","onBlur","disabled","controlComponent","hintComponent","hint","variant","TextComponent","Text","CalendarComponent","rightComponent","style","locale","closeOnPick","renderCalendar","requestShowCalendar","requestCloseCalendar","rest","focused","handleBlur","handleFocus","handleShowCalendar","React","useCallback","getDisplayValue","lowest","highest","StyledText","setTimeout","calendar"],"mappings":"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","sourcesContent":["import { format as formatDate } from 'date-fns';\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport { InputContainerProps, useInputFocus } from '../../atoms/Input';\nimport { Text, TextProps } from '../../atoms/Text';\nimport { CalendarProps, DateRange, SelectionType } from '../Calendar';\nimport { HintInputContainer } from '../HintInputContainer';\nimport { CalendarIcon, getStyledTextComponent } from './styled';\n\nexport interface DatePickerProps<T extends SelectionType> extends InputContainerProps, Omit<CalendarProps<T>, 'style'> {\n controlComponent?: (\n onPress: () => void,\n displayValue?: string\n ) => JSX.Element;\n TextComponent?: React.FC<TextProps>;\n CalendarComponent: React.FC<CalendarProps<T>>\n placeholder?: string;\n onFocus?: () => void | never;\n onBlur?: () => void | never;\n format?: string;\n closeOnPick?: boolean;\n renderCalendar: (calendar: React.ReactElement, blur?: () => void) => JSX.Element|null\n requestShowCalendar: () => void\n requestCloseCalendar: () => void\n}\n\nfunction DatePicker<T extends SelectionType>({\n /** DatePicker props */\n month,\n year,\n onChange,\n value,\n type,\n format = 'yyyy-MM-dd',\n placeholder,\n onFocus,\n onBlur,\n disabled,\n controlComponent,\n hintComponent,\n hint,\n variant,\n TextComponent = Text,\n CalendarComponent,\n rightComponent,\n style,\n locale,\n closeOnPick = false,\n renderCalendar,\n requestShowCalendar,\n requestCloseCalendar,\n ...rest\n}: DatePickerProps<T>): JSX.Element {\n \n const { focused, handleBlur, handleFocus } = useInputFocus(\n onFocus,\n onBlur,\n !disabled\n );\n\n const handleShowCalendar = React.useCallback(() => {\n requestShowCalendar()\n handleFocus();\n }, [handleFocus, requestShowCalendar]);\n\n const getDisplayValue = () => {\n if (!value) return placeholder;\n if (type === 'day') {\n return formatDate(value as Date, format, { locale: locale });\n } else {\n const { lowest, highest } = value as DateRange;\n if (highest)\n return `${formatDate(lowest, format, {\n locale: locale,\n })} - ${formatDate(highest, format, { locale: locale })}`;\n else return formatDate(lowest, format, { locale: locale });\n }\n };\n\n const StyledText = getStyledTextComponent(TextComponent);\n\n useEffect(() => {\n if (closeOnPick && value && type === 'day') {\n setTimeout(requestCloseCalendar, 200);\n }\n if (closeOnPick && value && type === 'range') {\n const { lowest, highest } = value as DateRange;\n lowest && highest && setTimeout(requestCloseCalendar, 200);\n }\n }, [value, closeOnPick, type, requestCloseCalendar]);\n\n const calendar = (\n <CalendarComponent\n pointerEvents={'box-none'}\n type={type}\n value={value}\n month={month}\n year={year}\n onChange={onChange}\n locale={locale}\n />\n )\n\n return (\n <>\n {controlComponent ? (\n controlComponent(handleShowCalendar, getDisplayValue())\n ) : (\n <HintInputContainer\n focused={focused}\n viewStyle={style}\n onPress={handleShowCalendar}\n disabled={disabled}\n hintComponent={hintComponent}\n LabelComponent={TextComponent}\n variant={variant}\n hint={hint}\n rightComponent={\n <>\n <CalendarIcon name=\"calendar-sharp\" type=\"ionicon\" size=\"centi\" />\n {rightComponent}\n </>\n }\n {...rest}\n >\n <StyledText fontWeight=\"bold\" disabled={disabled}>\n {getDisplayValue() || ' '}\n </StyledText>\n </HintInputContainer>\n )}\n {renderCalendar(calendar, handleBlur)}\n </>\n );\n}\n\nexport default DatePicker;\n"],"file":"DatePicker.js"}
@@ -1,20 +1,6 @@
1
1
  import { FC } from 'react';
2
2
  import { InputContainerProps } from '../../atoms/Input';
3
3
  import { TextProps } from '../../atoms/Text';
4
- export declare const Backdrop: import("@emotion/native").StyledComponent<import("../../atoms/PressableSurface").PressableSurfaceProps & {
5
- children?: import("react").ReactNode;
6
- } & {
7
- theme?: import("@emotion/react").Theme | undefined;
8
- as?: import("react").ElementType<any> | undefined;
9
- } & Partial<import("../../../types/defaults").ThemeProviderProps>, {}, {}>;
10
- export declare const ModalContent: import("@emotion/native").StyledComponent<import("react-native").ViewProps & {
11
- theme?: import("@emotion/react").Theme | undefined;
12
- as?: import("react").ElementType<any> | undefined;
13
- } & {
14
- offset: number;
15
- } & Partial<import("../../../types/defaults").ThemeProviderProps>, {}, {
16
- ref?: import("react").Ref<import("react-native").View> | undefined;
17
- }>;
18
4
  export declare const getStyledTextComponent: (component: FC<TextProps>) => import("@emotion/native").StyledComponent<TextProps & {
19
5
  children?: import("react").ReactNode;
20
6
  } & {
@@ -3,63 +3,18 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.CalendarIcon = exports.getStyledTextComponent = exports.ModalContent = exports.Backdrop = void 0;
6
+ exports.CalendarIcon = exports.getStyledTextComponent = void 0;
7
7
 
8
8
  var _native = _interopRequireWildcard(require("@emotion/native"));
9
9
 
10
- var _reactNative = require("react-native");
11
-
12
- var _definitions = require("../../../styles/definitions");
13
-
14
- var _utils = require("../../../utils");
15
-
16
10
  var _Icon = require("../../atoms/Icon");
17
11
 
18
12
  var _Input = require("../../atoms/Input");
19
13
 
20
- var _PressableSurface = require("../../atoms/PressableSurface");
21
-
22
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
15
 
24
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
17
 
26
- const isWeb = _reactNative.Platform.OS === 'web';
27
- const Backdrop = (0, _native.default)(_PressableSurface.PressableSurface)`
28
- ${({
29
- theme
30
- }) => isWeb ? (0, _native.css)`
31
- justify-content: center;
32
- align-items: center;
33
- background-color: ${(0, _definitions.hex2rgba)(theme.miscellaneous.overlay, 0.5)};
34
- height: 100vh;
35
- ` : (0, _native.css)`
36
- justify-content: flex-end;
37
- background-color: ${(0, _definitions.hex2rgba)(theme.miscellaneous.overlay, 0.5)};
38
- height: 100%;
39
- `}
40
- `;
41
- exports.Backdrop = Backdrop;
42
- const ModalContent = _native.default.View`
43
- background-color: transparent;
44
- padding-bottom: ${({
45
- offset
46
- }) => `${(0, _utils.RFValue)(offset)}px`};
47
- ${({
48
- theme: {
49
- borderRadius
50
- }
51
- }) => (0, _native.css)`
52
- ${isWeb ? `
53
- border-radius: ${borderRadius.micro};
54
- ` : `
55
- border-top-left-radius: ${borderRadius.deca};
56
- border-top-right-radius: ${borderRadius.deca};
57
- `}
58
- `}
59
- overflow: hidden;
60
- `;
61
- exports.ModalContent = ModalContent;
62
-
63
18
  const getStyledTextComponent = component => {
64
19
  return (0, _native.default)(component)(props => {
65
20
  var _props$theme;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/molecules/DatePicker/styled.ts"],"names":["isWeb","Platform","OS","Backdrop","PressableSurface","theme","miscellaneous","overlay","ModalContent","styled","View","offset","borderRadius","micro","deca","getStyledTextComponent","component","props","typography","h5","lineHeight","CalendarIcon","Icon","spacing","centi","color","secondary","medium"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;;;AAGA,MAAMA,KAAK,GAAGC,sBAASC,EAAT,KAAgB,KAA9B;AAEO,MAAMC,QAAQ,GAAG,qBAAOC,kCAAP,CAA8C;AACtE,IAAI,CAAC;AAAEC,EAAAA;AAAF,CAAD,KACAL,KAAK,GACD,gBAAI;AACZ;AACA;AACA,8BAA8B,2BAASK,KAAK,CAACC,aAAN,CAAoBC,OAA7B,EAAsC,GAAtC,CAA2C;AACzE;AACA,SANS,GAOD,gBAAI;AACZ;AACA,8BAA8B,2BAASF,KAAK,CAACC,aAAN,CAAoBC,OAA7B,EAAsC,GAAtC,CAA2C;AACzE;AACA,SAAU;AACV,CAdO;;AAgBA,MAAMC,YAAY,GAAGC,gBAAOC,IAEjC;AACF;AACA,oBAAoB,CAAC;AAAEC,EAAAA;AAAF,CAAD,KAAiB,GAAE,oBAAQA,MAAR,CAAgB,IAAI;AAC3D,IAAI,CAAC;AAAEN,EAAAA,KAAK,EAAE;AAAEO,IAAAA;AAAF;AAAT,CAAD,KAAiC,gBAAI;AACzC,MAAMZ,KAAK,GACF;AACT,uBAAuBY,YAAY,CAACC,KAAM;AAC1C,KAHW,GAIF;AACT,gCAAgCD,YAAY,CAACE,IAAK;AAClD,iCAAiCF,YAAY,CAACE,IAAK;AACnD,KAAM;AACN,GAAI;AACJ;AACA,CAhBO;;;AAkBA,MAAMC,sBAAsB,GAAIC,SAAD,IAA8B;AAClE,SAAO,qBAAOA,SAAP,EACJC,KAAD;AAAA;;AAAA,WAA+D,gBAAI;AACvE,qBADsE,gBACjDA,KAAK,CAACZ,KAD2C,iDACjD,aAAaa,UAAb,CAAwBC,EAAxB,CAA2BC,UAAW;AAC3D,QAAQ,gCAAoBH,KAApB,CAA2B;AACnC,KAHI;AAAA,GADK,CAAP;AAMD,CAPM;;;AASA,MAAMI,YAAY,GAAG,qBAAOC,UAAP,CAAkC;AAC9D,aAAa,CAAC;AAAEjB,EAAAA;AAAF,CAAD,KAAeA,KAAK,CAACkB,OAAN,CAAcC,KAAM;AAChD,WAAW,CAAC;AAAEnB,EAAAA;AAAF,CAAD,KAAeA,KAAK,CAACoB,KAAN,CAAYC,SAAZ,CAAsBC,MAAO;AACvD,CAHO","sourcesContent":["import styled, { css } from '@emotion/native';\nimport { FC } from 'react';\nimport { Platform } from 'react-native';\nimport { hex2rgba } from '../../../styles/definitions';\nimport { StyleProps } from '../../../types/defaults';\nimport { RFValue } from '../../../utils';\nimport { Icon } from '../../atoms/Icon';\nimport { disabledInputStyles, InputContainerProps } from '../../atoms/Input';\nimport { PressableSurface } from '../../atoms/PressableSurface';\nimport { TextProps } from '../../atoms/Text';\n\nconst isWeb = Platform.OS === 'web';\n\nexport const Backdrop = styled(PressableSurface)<Partial<StyleProps>>`\n ${({ theme }) =>\n isWeb\n ? css`\n justify-content: center;\n align-items: center;\n background-color: ${hex2rgba(theme.miscellaneous.overlay, 0.5)};\n height: 100vh;\n `\n : css`\n justify-content: flex-end;\n background-color: ${hex2rgba(theme.miscellaneous.overlay, 0.5)};\n height: 100%;\n `}\n`;\n\nexport const ModalContent = styled.View<\n { offset: number } & Partial<StyleProps>\n>`\n background-color: transparent;\n padding-bottom: ${({ offset }) => `${RFValue(offset)}px`};\n ${({ theme: { borderRadius } }) => css`\n ${isWeb\n ? `\n border-radius: ${borderRadius.micro};\n `\n : `\n border-top-left-radius: ${borderRadius.deca};\n border-top-right-radius: ${borderRadius.deca};\n `}\n `}\n overflow: hidden;\n`;\n\nexport const getStyledTextComponent = (component: FC<TextProps>) => {\n return styled(component)(\n (props: Partial<InputContainerProps> & Partial<StyleProps>) => css`\n line-height: ${props.theme?.typography.h5.lineHeight};\n ${disabledInputStyles(props)}\n `\n );\n};\n\nexport const CalendarIcon = styled(Icon)<Partial<StyleProps>>`\n padding: ${({ theme }) => theme.spacing.centi};\n color: ${({ theme }) => theme.color.secondary.medium};\n`;\n"],"file":"styled.js"}
1
+ {"version":3,"sources":["../../../../src/components/molecules/DatePicker/styled.ts"],"names":["getStyledTextComponent","component","props","theme","typography","h5","lineHeight","CalendarIcon","Icon","spacing","centi","color","secondary","medium"],"mappings":";;;;;;;AAAA;;AAGA;;AACA;;;;;;AAGO,MAAMA,sBAAsB,GAAIC,SAAD,IAA8B;AAClE,SAAO,qBAAOA,SAAP,EACJC,KAAD;AAAA;;AAAA,WAA+D,gBAAI;AACvE,qBADsE,gBACjDA,KAAK,CAACC,KAD2C,iDACjD,aAAaC,UAAb,CAAwBC,EAAxB,CAA2BC,UAAW;AAC3D,QAAQ,gCAAoBJ,KAApB,CAA2B;AACnC,KAHI;AAAA,GADK,CAAP;AAMD,CAPM;;;AASA,MAAMK,YAAY,GAAG,qBAAOC,UAAP,CAAkC;AAC9D,aAAa,CAAC;AAAEL,EAAAA;AAAF,CAAD,KAAeA,KAAK,CAACM,OAAN,CAAcC,KAAM;AAChD,WAAW,CAAC;AAAEP,EAAAA;AAAF,CAAD,KAAeA,KAAK,CAACQ,KAAN,CAAYC,SAAZ,CAAsBC,MAAO;AACvD,CAHO","sourcesContent":["import styled, { css } from '@emotion/native';\nimport { FC } from 'react';\nimport { StyleProps } from '../../../types/defaults';\nimport { Icon } from '../../atoms/Icon';\nimport { disabledInputStyles, InputContainerProps } from '../../atoms/Input';\nimport { TextProps } from '../../atoms/Text';\n\nexport const getStyledTextComponent = (component: FC<TextProps>) => {\n return styled(component)(\n (props: Partial<InputContainerProps> & Partial<StyleProps>) => css`\n line-height: ${props.theme?.typography.h5.lineHeight};\n ${disabledInputStyles(props)}\n `\n );\n};\n\nexport const CalendarIcon = styled(Icon)<Partial<StyleProps>>`\n padding: ${({ theme }) => theme.spacing.centi};\n color: ${({ theme }) => theme.color.secondary.medium};\n`;\n"],"file":"styled.js"}
@@ -1,16 +1,17 @@
1
1
  import * as React from 'react';
2
- import { ModalBaseProps } from 'react-native';
3
2
  import { InputContainerProps } from '../../atoms/Input';
4
3
  import { TextProps } from '../../atoms/Text';
5
4
  import { DateTimeSelectorProps } from '../DateTimeSelector';
6
- import { DateTimePickerModalProps } from './Modal';
7
- export interface DateTimePickerProps extends InputContainerProps, DateTimePickerModalProps, Omit<DateTimeSelectorProps, 'style'> {
5
+ export interface DateTimePickerProps extends InputContainerProps, Omit<DateTimeSelectorProps, 'style'> {
8
6
  controlComponent?: (onPress: () => void, displayValue?: string) => JSX.Element;
9
7
  TextComponent?: React.FC<TextProps>;
10
- animationType?: ModalBaseProps['animationType'];
8
+ DateTimeSelectorComponent: React.FC<DateTimeSelectorProps>;
11
9
  placeholder?: string;
12
10
  onFocus?: () => void | never;
13
11
  onBlur?: () => void | never;
12
+ renderSelector: (selector: React.ReactElement, blur?: () => void) => JSX.Element | null;
13
+ requestShowSelector: () => void;
14
+ requestCloseSelector: () => void;
14
15
  }
15
16
  declare const DateTimePicker: React.FC<DateTimePickerProps>;
16
17
  export default DateTimePicker;
@@ -15,10 +15,12 @@ var _Text = require("../../atoms/Text");
15
15
 
16
16
  var _styled = require("../DatePicker/styled");
17
17
 
18
- var _Modal = require("./Modal");
18
+ var _DateTimeSelector = require("../DateTimeSelector");
19
19
 
20
20
  var _HintInputContainer = require("../HintInputContainer");
21
21
 
22
+ var _styled2 = require("./styled");
23
+
22
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
25
 
24
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -54,11 +56,12 @@ const DateTimePicker = ({
54
56
  hint,
55
57
  variant = 'default',
56
58
  TextComponent = _Text.Text,
57
- DateTimeSelectorComponent,
58
- bottomOffset,
59
+ DateTimeSelectorComponent = _DateTimeSelector.DateTimeSelector,
59
60
  rightComponent,
60
- animationType = 'fade',
61
61
  style,
62
+ renderSelector,
63
+ requestShowSelector,
64
+ requestCloseSelector,
62
65
  ...rest
63
66
  }) => {
64
67
  const {
@@ -66,47 +69,23 @@ const DateTimePicker = ({
66
69
  handleBlur,
67
70
  handleFocus
68
71
  } = (0, _Input.useInputFocus)(onFocus, onBlur, !disabled);
69
- const [modalVisible, setModalVisible] = React.useState(false);
70
72
 
71
- const handlePressInput = () => {
72
- setModalVisible(true);
73
+ const handleShowSelector = () => {
74
+ requestShowSelector();
73
75
  handleFocus();
74
76
  };
75
77
 
76
- const handleCloseModal = () => {
77
- setModalVisible(false);
78
- handleBlur();
78
+ const handleChoosing = value => {
79
+ onChange === null || onChange === void 0 ? void 0 : onChange(value);
80
+ requestCloseSelector();
79
81
  };
80
82
 
81
83
  const StyledText = (0, _styled.getStyledTextComponent)(TextComponent);
82
84
  const displayValue = (value ? (0, _dateFns.format)(value, format, {
83
85
  locale: locale
84
86
  }) : placeholder) || ' ';
85
- return React.createElement(React.Fragment, null, controlComponent ? controlComponent(handlePressInput, displayValue) : React.createElement(_HintInputContainer.HintInputContainer, _extends({
86
- focused: focused,
87
- viewStyle: style,
88
- onPress: handlePressInput,
89
- disabled: disabled,
90
- LabelComponent: TextComponent,
91
- variant: variant,
92
- hint: hint,
93
- hintComponent: hintComponent,
94
- rightComponent: React.createElement(React.Fragment, null, React.createElement(_styled.CalendarIcon, {
95
- name: "calendar-sharp",
96
- type: "ionicon",
97
- size: "centi"
98
- }), rightComponent)
99
- }, rest), React.createElement(StyledText, {
100
- fontWeight: "bold",
101
- disabled: disabled
102
- }, displayValue)), React.createElement(_Modal.Modal, {
103
- DateTimeSelectorComponent: DateTimeSelectorComponent,
104
- bottomOffset: bottomOffset,
105
- visible: modalVisible,
106
- onRequestClose: handleCloseModal,
107
- animated: true,
108
- animationType: animationType,
109
- onChange: onChange,
87
+ const StyledDateTimeSelector = (0, _styled2.getStyledDateTimeSelector)(DateTimeSelectorComponent);
88
+ const dateTimeSelector = React.createElement(StyledDateTimeSelector, {
110
89
  value: value,
111
90
  mode: mode,
112
91
  format: format,
@@ -124,8 +103,27 @@ const DateTimePicker = ({
124
103
  monthLabel: monthLabel,
125
104
  yearLabel: yearLabel,
126
105
  hourLabel: hourLabel,
127
- minuteLabel: minuteLabel
128
- }));
106
+ minuteLabel: minuteLabel,
107
+ onChange: handleChoosing
108
+ });
109
+ return React.createElement(React.Fragment, null, controlComponent ? controlComponent(handleShowSelector, displayValue) : React.createElement(_HintInputContainer.HintInputContainer, _extends({
110
+ focused: focused,
111
+ viewStyle: style,
112
+ onPress: handleShowSelector,
113
+ disabled: disabled,
114
+ LabelComponent: TextComponent,
115
+ variant: variant,
116
+ hint: hint,
117
+ hintComponent: hintComponent,
118
+ rightComponent: React.createElement(React.Fragment, null, React.createElement(_styled.CalendarIcon, {
119
+ name: "calendar-sharp",
120
+ type: "ionicon",
121
+ size: "centi"
122
+ }), rightComponent)
123
+ }, rest), React.createElement(StyledText, {
124
+ fontWeight: "bold",
125
+ disabled: disabled
126
+ }, displayValue)), renderSelector(dateTimeSelector, handleBlur));
129
127
  };
130
128
 
131
129
  var _default = DateTimePicker;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/molecules/DateTimePicker/DateTimePicker.tsx"],"names":["DateTimePicker","onChange","value","mode","format","locale","upperDateThreshold","lowerDateThreshold","offsetThreshold","upperOffsetThreshold","lowerOffsetThreshold","dateModalTitle","timeModalTitle","dateConfirmButtonText","timeConfirmButtonText","dayLabel","monthLabel","yearLabel","hourLabel","minuteLabel","placeholder","onFocus","onBlur","disabled","controlComponent","hintComponent","hint","variant","TextComponent","Text","DateTimeSelectorComponent","bottomOffset","rightComponent","animationType","style","rest","focused","handleBlur","handleFocus","modalVisible","setModalVisible","React","useState","handlePressInput","handleCloseModal","StyledText","displayValue"],"mappings":"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","sourcesContent":["import { format as formatDate } from 'date-fns';\nimport * as React from 'react';\nimport { ModalBaseProps } from 'react-native';\nimport { InputContainerProps, useInputFocus } from '../../atoms/Input';\nimport { Text, TextProps } from '../../atoms/Text';\nimport { CalendarIcon, getStyledTextComponent } from '../DatePicker/styled';\nimport { DateTimeSelectorProps } from '../DateTimeSelector';\nimport { DateTimePickerModalProps, Modal } from './Modal';\nimport { HintInputContainer } from '../HintInputContainer';\n\nexport interface DateTimePickerProps\n extends InputContainerProps,\n DateTimePickerModalProps,\n Omit<DateTimeSelectorProps, 'style'> {\n controlComponent?: (\n onPress: () => void,\n displayValue?: string\n ) => JSX.Element;\n TextComponent?: React.FC<TextProps>;\n animationType?: ModalBaseProps['animationType'];\n placeholder?: string;\n onFocus?: () => void | never;\n onBlur?: () => void | never;\n}\n\nconst DateTimePicker: React.FC<DateTimePickerProps> = ({\n onChange,\n value,\n mode = 'date',\n format = 'yyyy-MM-dd hh:mm:ss',\n locale,\n upperDateThreshold,\n lowerDateThreshold,\n offsetThreshold,\n upperOffsetThreshold,\n lowerOffsetThreshold,\n\n dateModalTitle,\n timeModalTitle,\n dateConfirmButtonText,\n timeConfirmButtonText,\n dayLabel,\n monthLabel,\n yearLabel,\n hourLabel,\n minuteLabel,\n\n placeholder,\n onFocus,\n onBlur,\n disabled,\n controlComponent,\n hintComponent,\n hint,\n variant = 'default',\n TextComponent = Text,\n DateTimeSelectorComponent,\n bottomOffset,\n rightComponent,\n animationType = 'fade',\n style,\n ...rest\n}) => {\n const { focused, handleBlur, handleFocus } = useInputFocus(\n onFocus,\n onBlur,\n !disabled\n );\n\n const [modalVisible, setModalVisible] = React.useState(false);\n\n const handlePressInput = () => {\n setModalVisible(true);\n handleFocus();\n };\n\n const handleCloseModal = () => {\n setModalVisible(false);\n handleBlur();\n };\n\n const StyledText = getStyledTextComponent(TextComponent);\n const displayValue =\n (value ? formatDate(value, format, { locale: locale }) : placeholder) ||\n ' ';\n\n return (\n <>\n {controlComponent ? (\n controlComponent(handlePressInput, displayValue)\n ) : (\n <HintInputContainer\n focused={focused}\n viewStyle={style}\n onPress={handlePressInput}\n disabled={disabled}\n LabelComponent={TextComponent}\n variant={variant}\n hint={hint}\n hintComponent={hintComponent}\n rightComponent={\n <>\n <CalendarIcon name=\"calendar-sharp\" type=\"ionicon\" size=\"centi\" />\n {rightComponent}\n </>\n }\n {...rest}\n >\n <StyledText fontWeight=\"bold\" disabled={disabled}>\n {displayValue}\n </StyledText>\n </HintInputContainer>\n )}\n <Modal\n DateTimeSelectorComponent={DateTimeSelectorComponent}\n bottomOffset={bottomOffset}\n visible={modalVisible}\n onRequestClose={handleCloseModal}\n animated\n animationType={animationType}\n onChange={onChange}\n value={value}\n mode={mode}\n format={format}\n locale={locale}\n upperDateThreshold={upperDateThreshold}\n lowerDateThreshold={lowerDateThreshold}\n offsetThreshold={offsetThreshold}\n upperOffsetThreshold={upperOffsetThreshold}\n lowerOffsetThreshold={lowerOffsetThreshold}\n dateModalTitle={dateModalTitle}\n timeModalTitle={timeModalTitle}\n dateConfirmButtonText={dateConfirmButtonText}\n timeConfirmButtonText={timeConfirmButtonText}\n dayLabel={dayLabel}\n monthLabel={monthLabel}\n yearLabel={yearLabel}\n hourLabel={hourLabel}\n minuteLabel={minuteLabel}\n />\n </>\n );\n};\n\nexport default DateTimePicker;\n"],"file":"DateTimePicker.js"}
1
+ {"version":3,"sources":["../../../../src/components/molecules/DateTimePicker/DateTimePicker.tsx"],"names":["DateTimePicker","onChange","value","mode","format","locale","upperDateThreshold","lowerDateThreshold","offsetThreshold","upperOffsetThreshold","lowerOffsetThreshold","dateModalTitle","timeModalTitle","dateConfirmButtonText","timeConfirmButtonText","dayLabel","monthLabel","yearLabel","hourLabel","minuteLabel","placeholder","onFocus","onBlur","disabled","controlComponent","hintComponent","hint","variant","TextComponent","Text","DateTimeSelectorComponent","DateTimeSelector","rightComponent","style","renderSelector","requestShowSelector","requestCloseSelector","rest","focused","handleBlur","handleFocus","handleShowSelector","handleChoosing","StyledText","displayValue","StyledDateTimeSelector","dateTimeSelector"],"mappings":"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","sourcesContent":["import { format as formatDate } from 'date-fns';\nimport * as React from 'react';\nimport { InputContainerProps, useInputFocus } from '../../atoms/Input';\nimport { Text, TextProps } from '../../atoms/Text';\nimport { CalendarIcon, getStyledTextComponent } from '../DatePicker/styled';\nimport { DateTimeSelector, DateTimeSelectorProps } from '../DateTimeSelector';\nimport { HintInputContainer } from '../HintInputContainer';\nimport { getStyledDateTimeSelector } from './styled';\n\nexport interface DateTimePickerProps extends InputContainerProps, Omit<DateTimeSelectorProps, 'style'> {\n controlComponent?: (\n onPress: () => void,\n displayValue?: string\n ) => JSX.Element;\n TextComponent?: React.FC<TextProps>;\n DateTimeSelectorComponent: React.FC<DateTimeSelectorProps>;\n placeholder?: string;\n onFocus?: () => void | never;\n onBlur?: () => void | never;\n renderSelector: (selector: React.ReactElement, blur?: () => void) => JSX.Element|null\n requestShowSelector: () => void\n requestCloseSelector: () => void\n}\n\nconst DateTimePicker: React.FC<DateTimePickerProps> = ({\n onChange,\n value,\n mode = 'date',\n format = 'yyyy-MM-dd hh:mm:ss',\n locale,\n upperDateThreshold,\n lowerDateThreshold,\n offsetThreshold,\n upperOffsetThreshold,\n lowerOffsetThreshold,\n dateModalTitle,\n timeModalTitle,\n dateConfirmButtonText,\n timeConfirmButtonText,\n dayLabel,\n monthLabel,\n yearLabel,\n hourLabel,\n minuteLabel,\n placeholder,\n onFocus,\n onBlur,\n disabled,\n controlComponent,\n hintComponent,\n hint,\n variant = 'default',\n TextComponent = Text,\n DateTimeSelectorComponent = DateTimeSelector,\n rightComponent,\n style,\n renderSelector,\n requestShowSelector,\n requestCloseSelector,\n ...rest\n}) => {\n \n const { focused, handleBlur, handleFocus } = useInputFocus(\n onFocus,\n onBlur,\n !disabled\n );\n\n const handleShowSelector = () => {\n requestShowSelector()\n handleFocus();\n };\n\n const handleChoosing = (value: Date) => {\n onChange?.(value)\n requestCloseSelector()\n };\n\n const StyledText = getStyledTextComponent(TextComponent);\n const displayValue = (value ? formatDate(value, format, { locale: locale }) : placeholder) || ' ';\n const StyledDateTimeSelector = getStyledDateTimeSelector(DateTimeSelectorComponent)\n\n const dateTimeSelector = (\n <StyledDateTimeSelector\n value={value}\n mode={mode}\n format={format}\n locale={locale}\n upperDateThreshold={upperDateThreshold}\n lowerDateThreshold={lowerDateThreshold}\n offsetThreshold={offsetThreshold}\n upperOffsetThreshold={upperOffsetThreshold}\n lowerOffsetThreshold={lowerOffsetThreshold}\n dateModalTitle={dateModalTitle}\n timeModalTitle={timeModalTitle}\n dateConfirmButtonText={dateConfirmButtonText}\n timeConfirmButtonText={timeConfirmButtonText}\n dayLabel={dayLabel}\n monthLabel={monthLabel}\n yearLabel={yearLabel}\n hourLabel={hourLabel}\n minuteLabel={minuteLabel}\n onChange={handleChoosing}\n />\n )\n\n return (\n <>\n {controlComponent ? (\n controlComponent(handleShowSelector, displayValue)\n ) : (\n <HintInputContainer\n focused={focused}\n viewStyle={style}\n onPress={handleShowSelector}\n disabled={disabled}\n LabelComponent={TextComponent}\n variant={variant}\n hint={hint}\n hintComponent={hintComponent}\n rightComponent={\n <>\n <CalendarIcon name=\"calendar-sharp\" type=\"ionicon\" size=\"centi\" />\n {rightComponent}\n </>\n }\n {...rest}\n >\n <StyledText fontWeight=\"bold\" disabled={disabled}>\n {displayValue}\n </StyledText>\n </HintInputContainer>\n )}\n {renderSelector(dateTimeSelector, handleBlur)}\n </>\n );\n};\n\nexport default DateTimePicker;\n"],"file":"DateTimePicker.js"}
@@ -1,26 +1,5 @@
1
1
  import { FC } from 'react';
2
- import { PressableSurfaceProps } from '../../atoms/PressableSurface';
3
2
  import { DateTimeSelectorProps } from '../DateTimeSelector';
4
- export declare const StyledPressableSurface: import("@emotion/native").StyledComponent<PressableSurfaceProps & {
5
- children?: import("react").ReactNode;
6
- } & {
7
- theme?: import("@emotion/react").Theme | undefined;
8
- as?: import("react").ElementType<any> | undefined;
9
- }, {}, {}>;
10
- export declare const Backdrop: import("@emotion/native").StyledComponent<PressableSurfaceProps & {
11
- children?: import("react").ReactNode;
12
- } & {
13
- theme?: import("@emotion/react").Theme | undefined;
14
- as?: import("react").ElementType<any> | undefined;
15
- } & Partial<import("../../../types/defaults").ThemeProviderProps>, {}, {}>;
16
- export declare const ModalContent: import("@emotion/native").StyledComponent<import("react-native").ViewProps & {
17
- theme?: import("@emotion/react").Theme | undefined;
18
- as?: import("react").ElementType<any> | undefined;
19
- } & {
20
- offset: number;
21
- } & Partial<import("../../../types/defaults").ThemeProviderProps>, {}, {
22
- ref?: import("react").Ref<import("react-native").View> | undefined;
23
- }>;
24
3
  export declare const getStyledDateTimeSelector: (component: FC<DateTimeSelectorProps>) => import("@emotion/native").StyledComponent<DateTimeSelectorProps & {
25
4
  children?: import("react").ReactNode;
26
5
  } & {
@@ -3,59 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getStyledDateTimeSelector = exports.ModalContent = exports.Backdrop = exports.StyledPressableSurface = void 0;
6
+ exports.getStyledDateTimeSelector = void 0;
7
7
 
8
- var _native = _interopRequireWildcard(require("@emotion/native"));
8
+ var _native = _interopRequireDefault(require("@emotion/native"));
9
9
 
10
- var _reactNative = require("react-native");
11
-
12
- var _utils = require("../../../utils");
13
-
14
- var _PressableSurface = require("../../atoms/PressableSurface");
15
-
16
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
-
18
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
-
20
- const isWeb = _reactNative.Platform.OS === 'web';
21
- const StyledPressableSurface = (0, _native.default)(_PressableSurface.PressableSurface)`
22
- width: 100%;
23
- `;
24
- exports.StyledPressableSurface = StyledPressableSurface;
25
- const Backdrop = (0, _native.default)(_PressableSurface.PressableSurface)`
26
- ${isWeb ? (0, _native.css)`
27
- justify-content: center;
28
- align-items: center;
29
- background-color: rgba(0, 0, 0, 0.5);
30
- height: 100vh;
31
- ` : (0, _native.css)`
32
- justify-content: flex-end;
33
- background-color: rgba(0, 0, 0, 0.5);
34
- height: 100%;
35
- `}
36
- `;
37
- exports.Backdrop = Backdrop;
38
- const ModalContent = _native.default.View`
39
- background-color: transparent;
40
- padding-bottom: ${({
41
- offset
42
- }) => `${(0, _utils.RFValue)(offset)}px`};
43
- ${({
44
- theme: {
45
- borderRadius
46
- }
47
- }) => (0, _native.css)`
48
- ${isWeb ? `
49
- width: ${(0, _utils.RFValueStr)('375px')};
50
- border-radius: ${borderRadius.micro};
51
- ` : `
52
- border-top-left-radius: ${borderRadius.deca};
53
- border-top-right-radius: ${borderRadius.deca};
54
- `}
55
- `}
56
- overflow: hidden;
57
- `;
58
- exports.ModalContent = ModalContent;
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
59
11
 
60
12
  const getStyledDateTimeSelector = component => {
61
13
  return (0, _native.default)(component)`
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/molecules/DateTimePicker/styled.ts"],"names":["isWeb","Platform","OS","StyledPressableSurface","PressableSurface","Backdrop","ModalContent","styled","View","offset","theme","borderRadius","micro","deca","getStyledDateTimeSelector","component","spacing"],"mappings":";;;;;;;AAAA;;AAEA;;AAEA;;AACA;;;;;;AAMA,MAAMA,KAAK,GAAGC,sBAASC,EAAT,KAAgB,KAA9B;AAEO,MAAMC,sBAAsB,GAAG,qBACpCC,kCADoC,CAEb;AACzB;AACA,CAJO;;AAMA,MAAMC,QAAQ,GAAG,qBAAOD,kCAAP,CAA8C;AACtE,IAAIJ,KAAK,GACH,gBAAI;AACV;AACA;AACA;AACA;AACA,OANS,GAOH,gBAAI;AACV;AACA;AACA;AACA,OAAQ;AACR,CAbO;;AAeA,MAAMM,YAAY,GAAGC,gBAAOC,IAEjC;AACF;AACA,oBAAoB,CAAC;AAAEC,EAAAA;AAAF,CAAD,KAAiB,GAAE,oBAAQA,MAAR,CAAgB,IAAI;AAC3D,IAAI,CAAC;AAAEC,EAAAA,KAAK,EAAE;AAAEC,IAAAA;AAAF;AAAT,CAAD,KAAiC,gBAAI;AACzC,MAAMX,KAAK,GACF;AACT,eAAe,uBAAW,OAAX,CAAoB;AACnC,uBAAuBW,YAAY,CAACC,KAAM;AAC1C,KAJW,GAKF;AACT,gCAAgCD,YAAY,CAACE,IAAK;AAClD,iCAAiCF,YAAY,CAACE,IAAK;AACnD,KAAM;AACN,GAAI;AACJ;AACA,CAjBO;;;AAmBA,MAAMC,yBAAyB,GACpCC,SADuC,IAEpC;AACH,SAAO,qBAAOA,SAAP,CAAuC;AAChD,eAAe,CAAC;AAAEL,IAAAA;AAAF,GAAD,KAAeA,KAAK,CAACM,OAAN,CAAcH,IAAK;AACjD,GAFE;AAGD,CANM","sourcesContent":["import styled, { css } from '@emotion/native';\nimport { FC } from 'react';\nimport { Platform } from 'react-native';\nimport { StyleProps } from '../../../types/defaults';\nimport { RFValue, RFValueStr } from '../../../utils';\nimport {\n PressableSurface,\n PressableSurfaceProps\n} from '../../atoms/PressableSurface';\nimport { DateTimeSelectorProps } from '../DateTimeSelector';\n\nconst isWeb = Platform.OS === 'web';\n\nexport const StyledPressableSurface = styled(\n PressableSurface\n)<PressableSurfaceProps>`\n width: 100%;\n`;\n\nexport const Backdrop = styled(PressableSurface)<Partial<StyleProps>>`\n ${isWeb\n ? css`\n justify-content: center;\n align-items: center;\n background-color: rgba(0, 0, 0, 0.5);\n height: 100vh;\n `\n : css`\n justify-content: flex-end;\n background-color: rgba(0, 0, 0, 0.5);\n height: 100%;\n `}\n`;\n\nexport const ModalContent = styled.View<\n { offset: number } & Partial<StyleProps>\n>`\n background-color: transparent;\n padding-bottom: ${({ offset }) => `${RFValue(offset)}px`};\n ${({ theme: { borderRadius } }) => css`\n ${isWeb\n ? `\n width: ${RFValueStr('375px')};\n border-radius: ${borderRadius.micro};\n `\n : `\n border-top-left-radius: ${borderRadius.deca};\n border-top-right-radius: ${borderRadius.deca};\n `}\n `}\n overflow: hidden;\n`;\n\nexport const getStyledDateTimeSelector = (\n component: FC<DateTimeSelectorProps>\n) => {\n return styled(component)<Partial<StyleProps>>`\n padding: ${({ theme }) => theme.spacing.deca};\n `;\n};\n"],"file":"styled.js"}
1
+ {"version":3,"sources":["../../../../src/components/molecules/DateTimePicker/styled.ts"],"names":["getStyledDateTimeSelector","component","theme","spacing","deca"],"mappings":";;;;;;;AAAA;;;;AAKO,MAAMA,yBAAyB,GACpCC,SADuC,IAEpC;AACH,SAAO,qBAAOA,SAAP,CAAuC;AAChD,eAAe,CAAC;AAAEC,IAAAA;AAAF,GAAD,KAAeA,KAAK,CAACC,OAAN,CAAcC,IAAK;AACjD,GAFE;AAGD,CANM","sourcesContent":["import styled from '@emotion/native';\nimport { FC } from 'react';\nimport { StyleProps } from '../../../types/defaults';\nimport { DateTimeSelectorProps } from '../DateTimeSelector';\n\nexport const getStyledDateTimeSelector = (\n component: FC<DateTimeSelectorProps>\n) => {\n return styled(component)<Partial<StyleProps>>`\n padding: ${({ theme }) => theme.spacing.deca};\n `;\n};\n"],"file":"styled.js"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { SpacingType } from '@tecsinapse/react-core';
2
+ import { SpacingType } from '../../../../types/defaults';
3
3
  declare type FlexPositioning = 'flex-start' | 'flex-end' | 'center';
4
4
  declare type FlexAlignBase = FlexPositioning | 'stretch';
5
5
  declare type FlexAlignType = FlexAlignBase | 'baseline';
@@ -7,10 +7,12 @@ exports.default = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
10
- var _reactCore = require("@tecsinapse/react-core");
11
-
12
10
  var _reactNative = require("react-native");
13
11
 
12
+ var _hooks = require("../../../../hooks");
13
+
14
+ var _utils = require("../../../../utils");
15
+
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
17
 
16
18
  const GridItem = ({
@@ -25,7 +27,7 @@ const GridItem = ({
25
27
  }) => {
26
28
  const {
27
29
  spacing
28
- } = (0, _reactCore.useTheme)();
30
+ } = (0, _hooks.useTheme)();
29
31
 
30
32
  if (!_react.default.Children.only(children)) {
31
33
  throw new Error('The number of children in GridItem should be one');
@@ -37,8 +39,8 @@ const GridItem = ({
37
39
 
38
40
  const getPadding = pos => {
39
41
  if (_spacing) {
40
- if (typeof _spacing === 'string') return (0, _reactCore.extractNumbersFromString)(spacing[_spacing]);else if (typeof _spacing === 'object' && _spacing[pos]) {
41
- return (0, _reactCore.extractNumbersFromString)(spacing[_spacing[pos]]);
42
+ if (typeof _spacing === 'string') return (0, _utils.extractNumbersFromString)(spacing[_spacing]);else if (typeof _spacing === 'object' && _spacing[pos]) {
43
+ return (0, _utils.extractNumbersFromString)(spacing[_spacing[pos]]);
42
44
  } else return undefined;
43
45
  } else return undefined;
44
46
  };