@tecsinapse/react-core 1.14.7 → 1.16.0

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 (247) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/components/atoms/Avatar/Avatar.js +1 -3
  3. package/dist/components/atoms/Avatar/Avatar.js.map +1 -1
  4. package/dist/components/atoms/Avatar/helpers.js +1 -3
  5. package/dist/components/atoms/Avatar/helpers.js.map +1 -1
  6. package/dist/components/atoms/Avatar/index.js +5 -15
  7. package/dist/components/atoms/Avatar/index.js.map +1 -1
  8. package/dist/components/atoms/Avatar/styled.js +1 -3
  9. package/dist/components/atoms/Avatar/styled.js.map +1 -1
  10. package/dist/components/atoms/Badge/Badge.js +1 -3
  11. package/dist/components/atoms/Badge/Badge.js.map +1 -1
  12. package/dist/components/atoms/Badge/index.js +5 -15
  13. package/dist/components/atoms/Badge/index.js.map +1 -1
  14. package/dist/components/atoms/Badge/styled.js +1 -3
  15. package/dist/components/atoms/Badge/styled.js.map +1 -1
  16. package/dist/components/atoms/BoxContent/BoxContent.js +1 -3
  17. package/dist/components/atoms/BoxContent/BoxContent.js.map +1 -1
  18. package/dist/components/atoms/BoxContent/index.js +5 -15
  19. package/dist/components/atoms/BoxContent/index.js.map +1 -1
  20. package/dist/components/atoms/BoxContent/styled.js +2 -4
  21. package/dist/components/atoms/BoxContent/styled.js.map +1 -1
  22. package/dist/components/atoms/Button/Button.js +1 -3
  23. package/dist/components/atoms/Button/Button.js.map +1 -1
  24. package/dist/components/atoms/Button/States/BaseState.js +1 -3
  25. package/dist/components/atoms/Button/States/BaseState.js.map +1 -1
  26. package/dist/components/atoms/Button/States/Error.js +1 -3
  27. package/dist/components/atoms/Button/States/Error.js.map +1 -1
  28. package/dist/components/atoms/Button/States/Loading.js +1 -3
  29. package/dist/components/atoms/Button/States/Loading.js.map +1 -1
  30. package/dist/components/atoms/Button/States/Success.js +1 -3
  31. package/dist/components/atoms/Button/States/Success.js.map +1 -1
  32. package/dist/components/atoms/Button/States/index.js +8 -21
  33. package/dist/components/atoms/Button/States/index.js.map +1 -1
  34. package/dist/components/atoms/Button/States/styled.js +1 -3
  35. package/dist/components/atoms/Button/States/styled.js.map +1 -1
  36. package/dist/components/atoms/Button/index.js +12 -51
  37. package/dist/components/atoms/Button/index.js.map +1 -1
  38. package/dist/components/atoms/Button/styled.js +1 -3
  39. package/dist/components/atoms/Button/styled.js.map +1 -1
  40. package/dist/components/atoms/Card/Card.js +1 -3
  41. package/dist/components/atoms/Card/Card.js.map +1 -1
  42. package/dist/components/atoms/Card/Footer/Footer.js +1 -3
  43. package/dist/components/atoms/Card/Footer/Footer.js.map +1 -1
  44. package/dist/components/atoms/Card/Footer/index.js +5 -15
  45. package/dist/components/atoms/Card/Footer/index.js.map +1 -1
  46. package/dist/components/atoms/Card/Header/Header.js +1 -3
  47. package/dist/components/atoms/Card/Header/Header.js.map +1 -1
  48. package/dist/components/atoms/Card/Header/index.js +5 -15
  49. package/dist/components/atoms/Card/Header/index.js.map +1 -1
  50. package/dist/components/atoms/Card/index.js +5 -15
  51. package/dist/components/atoms/Card/index.js.map +1 -1
  52. package/dist/components/atoms/Card/styled.js +1 -3
  53. package/dist/components/atoms/Card/styled.js.map +1 -1
  54. package/dist/components/atoms/Checkbox/Checkbox.js +1 -3
  55. package/dist/components/atoms/Checkbox/Checkbox.js.map +1 -1
  56. package/dist/components/atoms/Checkbox/index.js +5 -15
  57. package/dist/components/atoms/Checkbox/index.js.map +1 -1
  58. package/dist/components/atoms/Checkbox/styled.js +1 -3
  59. package/dist/components/atoms/Checkbox/styled.js.map +1 -1
  60. package/dist/components/atoms/Divider/Divider.js +1 -3
  61. package/dist/components/atoms/Divider/Divider.js.map +1 -1
  62. package/dist/components/atoms/Divider/index.js +5 -15
  63. package/dist/components/atoms/Divider/index.js.map +1 -1
  64. package/dist/components/atoms/Divider/styled.js +1 -3
  65. package/dist/components/atoms/Divider/styled.js.map +1 -1
  66. package/dist/components/atoms/GroupButton/GroupButton.js +7 -9
  67. package/dist/components/atoms/GroupButton/GroupButton.js.map +1 -1
  68. package/dist/components/atoms/GroupButton/GroupButtonOption.js +1 -3
  69. package/dist/components/atoms/GroupButton/GroupButtonOption.js.map +1 -1
  70. package/dist/components/atoms/GroupButton/index.js +9 -33
  71. package/dist/components/atoms/GroupButton/index.js.map +1 -1
  72. package/dist/components/atoms/GroupButton/styled.js +12 -14
  73. package/dist/components/atoms/GroupButton/styled.js.map +1 -1
  74. package/dist/components/atoms/Icon/Icon.js +1 -3
  75. package/dist/components/atoms/Icon/Icon.js.map +1 -1
  76. package/dist/components/atoms/Icon/helpers.js +1 -3
  77. package/dist/components/atoms/Icon/helpers.js.map +1 -1
  78. package/dist/components/atoms/Icon/index.js +5 -15
  79. package/dist/components/atoms/Icon/index.js.map +1 -1
  80. package/dist/components/atoms/Input/Hint.js +1 -3
  81. package/dist/components/atoms/Input/Hint.js.map +1 -1
  82. package/dist/components/atoms/Input/InputContainer/InputContainer.js +1 -3
  83. package/dist/components/atoms/Input/InputContainer/InputContainer.js.map +1 -1
  84. package/dist/components/atoms/Input/InputElement/InputElement.d.ts +2 -5
  85. package/dist/components/atoms/Input/InputElement/InputElement.js +5 -49
  86. package/dist/components/atoms/Input/InputElement/InputElement.js.map +1 -1
  87. package/dist/components/atoms/Input/InputMaskElement/InputMaskElement.d.ts +17 -0
  88. package/dist/components/atoms/Input/InputMaskElement/InputMaskElement.js +84 -0
  89. package/dist/components/atoms/Input/InputMaskElement/InputMaskElement.js.map +1 -0
  90. package/dist/components/atoms/Input/PressableInputContainer/PressableInputContainer.js +1 -3
  91. package/dist/components/atoms/Input/PressableInputContainer/PressableInputContainer.js.map +1 -1
  92. package/dist/components/atoms/Input/PressableInputContainer/index.js +5 -15
  93. package/dist/components/atoms/Input/PressableInputContainer/index.js.map +1 -1
  94. package/dist/components/atoms/Input/PressableInputContainer/styled.js +1 -3
  95. package/dist/components/atoms/Input/PressableInputContainer/styled.js.map +1 -1
  96. package/dist/components/atoms/Input/hooks/useInputFocus.js +1 -3
  97. package/dist/components/atoms/Input/hooks/useInputFocus.js.map +1 -1
  98. package/dist/components/atoms/Input/hooks/useNumberMask.js +1 -3
  99. package/dist/components/atoms/Input/hooks/useNumberMask.js.map +1 -1
  100. package/dist/components/atoms/Input/hooks/useStringMask.js +3 -5
  101. package/dist/components/atoms/Input/hooks/useStringMask.js.map +1 -1
  102. package/dist/components/atoms/Input/index.d.ts +1 -0
  103. package/dist/components/atoms/Input/index.js +28 -82
  104. package/dist/components/atoms/Input/index.js.map +1 -1
  105. package/dist/components/atoms/Input/styled.js +2 -4
  106. package/dist/components/atoms/Input/styled.js.map +1 -1
  107. package/dist/components/atoms/Paper/Paper.js +1 -3
  108. package/dist/components/atoms/Paper/Paper.js.map +1 -1
  109. package/dist/components/atoms/Paper/index.js +5 -15
  110. package/dist/components/atoms/Paper/index.js.map +1 -1
  111. package/dist/components/atoms/Paper/styled.js +1 -3
  112. package/dist/components/atoms/Paper/styled.js.map +1 -1
  113. package/dist/components/atoms/PressableSurface/PressableSurface.js +1 -3
  114. package/dist/components/atoms/PressableSurface/PressableSurface.js.map +1 -1
  115. package/dist/components/atoms/PressableSurface/index.js +5 -15
  116. package/dist/components/atoms/PressableSurface/index.js.map +1 -1
  117. package/dist/components/atoms/ProgressBar/ProgressBar.js +3 -7
  118. package/dist/components/atoms/ProgressBar/ProgressBar.js.map +1 -1
  119. package/dist/components/atoms/ProgressBar/index.js +5 -15
  120. package/dist/components/atoms/ProgressBar/index.js.map +1 -1
  121. package/dist/components/atoms/ProgressBar/styled.js +1 -3
  122. package/dist/components/atoms/ProgressBar/styled.js.map +1 -1
  123. package/dist/components/atoms/RadioButton/RadioButton.js +1 -3
  124. package/dist/components/atoms/RadioButton/RadioButton.js.map +1 -1
  125. package/dist/components/atoms/RadioButton/index.js +5 -15
  126. package/dist/components/atoms/RadioButton/index.js.map +1 -1
  127. package/dist/components/atoms/RadioButton/styled.js +1 -3
  128. package/dist/components/atoms/RadioButton/styled.js.map +1 -1
  129. package/dist/components/atoms/Switch/Switch.js +1 -3
  130. package/dist/components/atoms/Switch/Switch.js.map +1 -1
  131. package/dist/components/atoms/Switch/animation.js +1 -3
  132. package/dist/components/atoms/Switch/animation.js.map +1 -1
  133. package/dist/components/atoms/Switch/index.js +5 -15
  134. package/dist/components/atoms/Switch/index.js.map +1 -1
  135. package/dist/components/atoms/Switch/styled.js +1 -3
  136. package/dist/components/atoms/Switch/styled.js.map +1 -1
  137. package/dist/components/atoms/Tag/Tag.js +2 -4
  138. package/dist/components/atoms/Tag/Tag.js.map +1 -1
  139. package/dist/components/atoms/Tag/index.js +5 -15
  140. package/dist/components/atoms/Tag/index.js.map +1 -1
  141. package/dist/components/atoms/Tag/styled.js +1 -3
  142. package/dist/components/atoms/Tag/styled.js.map +1 -1
  143. package/dist/components/atoms/Text/Text.js +1 -3
  144. package/dist/components/atoms/Text/Text.js.map +1 -1
  145. package/dist/components/atoms/Text/index.js +5 -15
  146. package/dist/components/atoms/Text/index.js.map +1 -1
  147. package/dist/components/atoms/Text/styled.js +1 -3
  148. package/dist/components/atoms/Text/styled.js.map +1 -1
  149. package/dist/components/atoms/shared/PaperAndCard.js +1 -3
  150. package/dist/components/atoms/shared/PaperAndCard.js.map +1 -1
  151. package/dist/components/molecules/Calendar/Calendar.js +3 -5
  152. package/dist/components/molecules/Calendar/Calendar.js.map +1 -1
  153. package/dist/components/molecules/Calendar/components/MonthWeek.js +4 -6
  154. package/dist/components/molecules/Calendar/components/MonthWeek.js.map +1 -1
  155. package/dist/components/molecules/Calendar/components/Weekdays.js +1 -3
  156. package/dist/components/molecules/Calendar/components/Weekdays.js.map +1 -1
  157. package/dist/components/molecules/Calendar/components/index.js +6 -15
  158. package/dist/components/molecules/Calendar/components/index.js.map +1 -1
  159. package/dist/components/molecules/Calendar/index.js +8 -33
  160. package/dist/components/molecules/Calendar/index.js.map +1 -1
  161. package/dist/components/molecules/Calendar/styled.js +4 -6
  162. package/dist/components/molecules/Calendar/styled.js.map +1 -1
  163. package/dist/components/molecules/DatePicker/DatePicker.js +1 -3
  164. package/dist/components/molecules/DatePicker/DatePicker.js.map +1 -1
  165. package/dist/components/molecules/DatePicker/index.js +5 -15
  166. package/dist/components/molecules/DatePicker/index.js.map +1 -1
  167. package/dist/components/molecules/DatePicker/styled.js +2 -4
  168. package/dist/components/molecules/DatePicker/styled.js.map +1 -1
  169. package/dist/components/molecules/DateTimePicker/DateTimePicker.js +2 -4
  170. package/dist/components/molecules/DateTimePicker/DateTimePicker.js.map +1 -1
  171. package/dist/components/molecules/DateTimePicker/index.js +5 -15
  172. package/dist/components/molecules/DateTimePicker/index.js.map +1 -1
  173. package/dist/components/molecules/DateTimePicker/styled.js +1 -3
  174. package/dist/components/molecules/DateTimePicker/styled.js.map +1 -1
  175. package/dist/components/molecules/DateTimeSelector/DateTimeSelector.js +2 -4
  176. package/dist/components/molecules/DateTimeSelector/DateTimeSelector.js.map +1 -1
  177. package/dist/components/molecules/DateTimeSelector/Selector.js +1 -3
  178. package/dist/components/molecules/DateTimeSelector/Selector.js.map +1 -1
  179. package/dist/components/molecules/DateTimeSelector/index.js +6 -21
  180. package/dist/components/molecules/DateTimeSelector/index.js.map +1 -1
  181. package/dist/components/molecules/DateTimeSelector/styled.js +1 -3
  182. package/dist/components/molecules/DateTimeSelector/styled.js.map +1 -1
  183. package/dist/components/molecules/Grid/Grid.js +3 -5
  184. package/dist/components/molecules/Grid/Grid.js.map +1 -1
  185. package/dist/components/molecules/Grid/Item/Item.js +4 -6
  186. package/dist/components/molecules/Grid/Item/Item.js.map +1 -1
  187. package/dist/components/molecules/Grid/Item/index.js +5 -15
  188. package/dist/components/molecules/Grid/Item/index.js.map +1 -1
  189. package/dist/components/molecules/Grid/index.js +8 -27
  190. package/dist/components/molecules/Grid/index.js.map +1 -1
  191. package/dist/components/molecules/HintInputContainer/HintInputContainer.js +1 -3
  192. package/dist/components/molecules/HintInputContainer/HintInputContainer.js.map +1 -1
  193. package/dist/components/molecules/HintInputContainer/index.js +4 -9
  194. package/dist/components/molecules/HintInputContainer/index.js.map +1 -1
  195. package/dist/components/molecules/InputPassword/InputPasswordIcon.js +1 -3
  196. package/dist/components/molecules/InputPassword/InputPasswordIcon.js.map +1 -1
  197. package/dist/components/molecules/InputPassword/index.js +4 -9
  198. package/dist/components/molecules/InputPassword/index.js.map +1 -1
  199. package/dist/components/molecules/InputPassword/styled.js +1 -3
  200. package/dist/components/molecules/InputPassword/styled.js.map +1 -1
  201. package/dist/components/molecules/Snackbar/Snackbar.js +3 -5
  202. package/dist/components/molecules/Snackbar/Snackbar.js.map +1 -1
  203. package/dist/components/molecules/Snackbar/index.js +5 -15
  204. package/dist/components/molecules/Snackbar/index.js.map +1 -1
  205. package/dist/components/molecules/Snackbar/styled.js +1 -3
  206. package/dist/components/molecules/Snackbar/styled.js.map +1 -1
  207. package/dist/components/molecules/TextArea/TextArea.js +1 -3
  208. package/dist/components/molecules/TextArea/TextArea.js.map +1 -1
  209. package/dist/components/molecules/TextArea/index.js +7 -21
  210. package/dist/components/molecules/TextArea/index.js.map +1 -1
  211. package/dist/components/molecules/TextArea/styled.js +1 -3
  212. package/dist/components/molecules/TextArea/styled.js.map +1 -1
  213. package/dist/hooks/index.js +6 -15
  214. package/dist/hooks/index.js.map +1 -1
  215. package/dist/hooks/useDebouncedState.js +1 -3
  216. package/dist/hooks/useDebouncedState.js.map +1 -1
  217. package/dist/hooks/useTheme.js +1 -3
  218. package/dist/hooks/useTheme.js.map +1 -1
  219. package/dist/index.d.ts +1 -1
  220. package/dist/index.js +123 -531
  221. package/dist/index.js.map +1 -1
  222. package/dist/styles/ThemeProvider.js +1 -3
  223. package/dist/styles/ThemeProvider.js.map +1 -1
  224. package/dist/styles/definitions.js +1 -3
  225. package/dist/styles/definitions.js.map +1 -1
  226. package/dist/styles/light.js +1 -3
  227. package/dist/styles/light.js.map +1 -1
  228. package/dist/types/defaults.js +1 -3
  229. package/dist/utils/IPhoneXHelper.js +1 -3
  230. package/dist/utils/IPhoneXHelper.js.map +1 -1
  231. package/dist/utils/ResponsiveFontSize.js +1 -3
  232. package/dist/utils/ResponsiveFontSize.js.map +1 -1
  233. package/dist/utils/extractNumbersFromString.js +1 -3
  234. package/dist/utils/extractNumbersFromString.js.map +1 -1
  235. package/dist/utils/formatWithMask.js +1 -3
  236. package/dist/utils/formatWithMask.js.map +1 -1
  237. package/dist/utils/index.js +11 -45
  238. package/dist/utils/index.js.map +1 -1
  239. package/dist/utils/lightenDarkenColor.js +1 -3
  240. package/dist/utils/lightenDarkenColor.js.map +1 -1
  241. package/dist/utils/masks.js +3 -5
  242. package/dist/utils/masks.js.map +1 -1
  243. package/package.json +6 -6
  244. package/src/components/atoms/Input/InputElement/InputElement.tsx +5 -74
  245. package/src/components/atoms/Input/InputMaskElement/InputMaskElement.tsx +120 -0
  246. package/src/components/atoms/Input/index.ts +4 -0
  247. package/src/index.ts +2 -0
@@ -0,0 +1,120 @@
1
+ import { useTheme } from '@emotion/react';
2
+ import { ThemeProp } from '@tecsinapse/react-core';
3
+ import React, { FC, useCallback, useEffect } from 'react';
4
+ import { StyleProp, TextInputProps, TextStyle } from 'react-native';
5
+ import { StyledInputElement } from '../styled';
6
+ import { MaskType, useStringMask } from '../hooks/useStringMask';
7
+ import { CurrencyOptions, useNumberMask } from '../hooks/useNumberMask';
8
+
9
+ export interface InputMaskElementProps
10
+ extends Omit<TextInputProps, 'onChange' | 'value' | 'ref'> {
11
+ style?: StyleProp<TextStyle>;
12
+ value?: string | number;
13
+ placeholder?: string;
14
+ disabled?: boolean;
15
+ onChange?: (value: any) => void;
16
+ /**
17
+ To use mask for strings you have to pass a MaskType[] or ((value: string) => MaskType[])
18
+ A MaskType can be a string, RegExp, or Array<RegExp>.
19
+ In case we have a string, '9' represents digits, 'a' represents alphabet characters, and any other character represents fixed characters in the mask.
20
+ For example a phone mask can be represented as ['(99) \\99999-9999'], or ['(99) ', '/[9]/', '9999-9999'], or ['(', /[0-9]/, /[0-9]/, ') ', '/[9]/', '9999-9999'] and many others.
21
+ To use mask for numbers you have to pass a CurrencyOptions object
22
+ A CurrencyOptions object contains symbol, separator, decimal, precision. For example {symbol: 'R$ ', separator: '.', decimal: ',', precision: 2,}.
23
+ **/
24
+ mask?: (MaskType[] | ((value: string) => MaskType[])) | CurrencyOptions;
25
+ onFocus?: () => void;
26
+ onBlur?: () => void;
27
+ ref?: React.Ref<any>;
28
+ }
29
+
30
+ const InputMaskElement: FC<InputMaskElementProps> = React.forwardRef(
31
+ (
32
+ {
33
+ onChange,
34
+ placeholder,
35
+ value,
36
+ disabled = false,
37
+ placeholderTextColor,
38
+ mask,
39
+ ...rest
40
+ },
41
+ ref: React.Ref<any>
42
+ ): JSX.Element => {
43
+ const theme = useTheme() as ThemeProp;
44
+
45
+ const _placeholderColor = placeholderTextColor || theme.font.color.dark;
46
+
47
+ const getInputHook = (value: string | number) => {
48
+ if (mask !== undefined) {
49
+ if (Array.isArray(mask) || typeof mask === 'function') {
50
+ return useStringMask(mask, value);
51
+ } else {
52
+ return useNumberMask(mask, value);
53
+ }
54
+ } else {
55
+ return [undefined, undefined];
56
+ }
57
+ };
58
+
59
+ const [maskValue, setMaskValue] = getInputHook(value ?? '');
60
+
61
+ const _value =
62
+ maskValue === undefined
63
+ ? value?.toString()
64
+ : maskValue.formatted
65
+ ? maskValue.formatted
66
+ : '';
67
+
68
+ useEffect(() => {
69
+ if (onChange) {
70
+ onChange(maskValue?.raw);
71
+ }
72
+ }, [maskValue]);
73
+
74
+ const onChangeValue = useCallback(
75
+ (value: string | number) => {
76
+ if (maskValue !== undefined && setMaskValue !== undefined) {
77
+ setMaskValue(value);
78
+ } else onChange && onChange(value);
79
+ },
80
+ [value]
81
+ );
82
+
83
+ useEffect(() => {
84
+ /** Used to reinitialize maskValue when the value is updated in the parent component **/
85
+ if (
86
+ maskValue !== undefined &&
87
+ setMaskValue !== undefined &&
88
+ value !== undefined &&
89
+ typeof maskValue === 'object'
90
+ ) {
91
+ /** Case there is a mask **/
92
+ if (
93
+ maskValue.raw !== undefined &&
94
+ maskValue.raw.toString() !== value.toString()
95
+ ) {
96
+ onChangeValue(value);
97
+ }
98
+ } else if (maskValue === undefined && value !== undefined) {
99
+ onChangeValue(value);
100
+ }
101
+ }, [value]);
102
+
103
+ return (
104
+ <StyledInputElement
105
+ {...rest}
106
+ ref={ref}
107
+ onChangeText={onChangeValue}
108
+ value={_value}
109
+ placeholder={placeholder}
110
+ placeholderTextColor={_placeholderColor}
111
+ disabled={disabled}
112
+ editable={!disabled}
113
+ />
114
+ );
115
+ }
116
+ );
117
+
118
+ InputMaskElement.displayName = 'InputMaskElement';
119
+
120
+ export default InputMaskElement;
@@ -11,6 +11,10 @@ export {
11
11
  default as InputElement,
12
12
  InputElementProps,
13
13
  } from './InputElement/InputElement';
14
+ export {
15
+ default as InputMaskElement,
16
+ InputMaskElementProps,
17
+ } from './InputMaskElement/InputMaskElement';
14
18
  export {
15
19
  PressableInputContainer,
16
20
  PressableInputContainerProps,
package/src/index.ts CHANGED
@@ -30,6 +30,8 @@ export {
30
30
  InputContainerProps,
31
31
  InputElement,
32
32
  InputElementProps,
33
+ InputMaskElement,
34
+ InputMaskElementProps,
33
35
  InputVariantType,
34
36
  PressableInputContainer,
35
37
  PressableInputContainerProps,