diginet-core-ui 1.4.57 → 1.4.58-beta.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.
Files changed (106) hide show
  1. package/assets/images/menu/dhr/MHRP29N0035.svg +13 -0
  2. package/assets/images/menu/dhr/MHRP29N0036.svg +14 -0
  3. package/components/accordion/details.js +1 -1
  4. package/components/accordion/group.js +1 -1
  5. package/components/accordion/index.js +1 -1
  6. package/components/accordion/summary.js +1 -1
  7. package/components/alert/index.js +1 -1
  8. package/components/alert/notify.js +1 -1
  9. package/components/avatar/index.js +2 -2
  10. package/components/badge/index.js +1 -1
  11. package/components/breadcrumb/index.js +1 -1
  12. package/components/button/icon.js +1 -1
  13. package/components/button/index.js +1 -1
  14. package/components/button/more.js +2 -2
  15. package/components/button/ripple-effect.js +1 -1
  16. package/components/card/body.js +1 -1
  17. package/components/card/extra.js +1 -1
  18. package/components/card/footer.js +1 -1
  19. package/components/card/header.js +1 -1
  20. package/components/card/index.js +1 -1
  21. package/components/chart/Pie/Circle.js +1 -1
  22. package/components/chart/Pie/Sector.js +1 -1
  23. package/components/chart/Pie/index.js +1 -1
  24. package/components/chart/Pie-v2/Circle.js +1 -1
  25. package/components/chart/Pie-v2/Sector.js +1 -1
  26. package/components/chart/Pie-v2/index.js +1 -1
  27. package/components/chart/bar/Bar.js +1 -1
  28. package/components/chart/bar/index.js +1 -1
  29. package/components/chart/bar-v2/Bar.js +1 -1
  30. package/components/chart/bar-v2/index.js +1 -1
  31. package/components/chart/line/index.js +1 -1
  32. package/components/chart/line-v2/index.js +1 -1
  33. package/components/check-text/index.js +1 -1
  34. package/components/check-text/interview-confirmation.js +1 -1
  35. package/components/check-text/interview-status.js +1 -1
  36. package/components/chip/index.js +1 -1
  37. package/components/collapse/index.js +1 -1
  38. package/components/divider/index.js +1 -1
  39. package/components/form-control/attachment/index.js +22 -22
  40. package/components/form-control/calendar/function.js +1 -1
  41. package/components/form-control/calendar/index.js +2 -2
  42. package/components/form-control/calendar/range.js +1 -1
  43. package/components/form-control/checkbox/index.js +1 -1
  44. package/components/form-control/control/index.js +1 -1
  45. package/components/form-control/date-input/index.js +1 -1
  46. package/components/form-control/date-picker/index.js +1 -1
  47. package/components/form-control/date-range-picker/index.js +2 -1
  48. package/components/form-control/dropdown/index.js +7 -4
  49. package/components/form-control/dropdown-box/index.js +64 -22
  50. package/components/form-control/form-group/index.js +1 -1
  51. package/components/form-control/helper-text/index.js +1 -1
  52. package/components/form-control/input-base/UncontrolledInputBase.js +1 -1
  53. package/components/form-control/input-base/index.js +1 -1
  54. package/components/form-control/label/index.js +1 -1
  55. package/components/form-control/money-input/index.js +1 -1
  56. package/components/form-control/number-input/index2.js +40 -16
  57. package/components/form-control/password-input/index.js +1 -1
  58. package/components/form-control/phone-input/index.js +1 -1
  59. package/components/form-control/radio/index.js +1 -1
  60. package/components/form-control/text-input/index.js +1 -1
  61. package/components/form-control/time-picker/index.js +1 -1
  62. package/components/form-control/time-picker/v2/index.js +1 -1
  63. package/components/form-control/toggle/index.js +1 -1
  64. package/components/form-view/input.js +1 -1
  65. package/components/grid/index.js +1 -1
  66. package/components/image/index.js +1 -1
  67. package/components/list/list-item-action.js +1 -1
  68. package/components/list/list-item-icon.js +1 -1
  69. package/components/list/list-item-text.js +1 -1
  70. package/components/list/list-item.js +1 -1
  71. package/components/list/list.js +1 -1
  72. package/components/list/sub-header.js +1 -1
  73. package/components/modal/body.js +1 -1
  74. package/components/modal/footer.js +1 -1
  75. package/components/modal/header.js +1 -1
  76. package/components/modal/index.js +1 -1
  77. package/components/modal/modal.js +1 -1
  78. package/components/others/option-wrapper/index.js +1 -1
  79. package/components/paging/page-info.js +35 -35
  80. package/components/paging/page-selector.js +1 -1
  81. package/components/paper/index.js +1 -1
  82. package/components/popover/body.js +1 -1
  83. package/components/popover/footer.js +1 -1
  84. package/components/popover/header.js +1 -1
  85. package/components/popover/index.js +14 -14
  86. package/components/popup/index.js +1 -1
  87. package/components/popup/v2/index.js +1 -1
  88. package/components/progress/circular.js +1 -1
  89. package/components/progress/linear.js +1 -1
  90. package/components/rating/index.js +1 -1
  91. package/components/skeleton/index.js +1 -1
  92. package/components/slider/slider-container.js +1 -1
  93. package/components/slider/slider-item.js +1 -1
  94. package/components/status/index.js +1 -1
  95. package/components/tab/tab-container.js +1 -1
  96. package/components/tab/tab-header.js +1 -1
  97. package/components/tab/tab-panel.js +1 -1
  98. package/components/tab/tab.js +1 -1
  99. package/components/tooltip/index.js +1 -1
  100. package/components/transfer/index.js +1 -1
  101. package/components/tree-view/index.js +1 -1
  102. package/components/typography/index.js +1 -1
  103. package/icons/basic.js +76 -0
  104. package/icons/effect.js +1 -1
  105. package/icons/menu/v2/index.js +1 -1
  106. package/package.json +78 -44
@@ -48,7 +48,7 @@ const uniqBy = (arr, iteratee) => {
48
48
  return true;
49
49
  });
50
50
  };
51
- const Dropdown = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
51
+ const Dropdown = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((inProps, reference) => {
52
52
  if (!reference) reference = useRef(null);
53
53
  const theme = useTheme();
54
54
  const {
@@ -116,7 +116,8 @@ const Dropdown = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference)
116
116
  defaultValue,
117
117
  disabled,
118
118
  selectAll,
119
- selectAllLabel
119
+ selectAllLabel,
120
+ endIcon
120
121
  } = props;
121
122
  const selectBox = multiple && selectBoxProp === undefined ? true : selectBoxProp;
122
123
  const searchExpr = typeof searchExprProp === 'string' ? [searchExprProp] : searchExprProp;
@@ -1404,7 +1405,7 @@ const Dropdown = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference)
1404
1405
  key: openState,
1405
1406
  css: animation,
1406
1407
  viewType: 'ghost',
1407
- name: openState ? 'ArrowUp' : 'ArrowDown',
1408
+ name: endIcon ? endIcon : openState ? 'ArrowUp' : 'ArrowDown',
1408
1409
  onClick: setShowDropdown,
1409
1410
  disabled: disabled || readOnly
1410
1411
  }) : null));
@@ -1911,7 +1912,9 @@ Dropdown.propTypes = {
1911
1912
  /** An object default for value (used for load more). */
1912
1913
  valueObjectDefault: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),
1913
1914
  /** The variant to use. */
1914
- viewType: PropTypes.oneOf(['underlined', 'outlined', 'none'])
1915
+ viewType: PropTypes.oneOf(['underlined', 'outlined', 'none']),
1916
+ /** Custom icon to override the default arrow icon. */
1917
+ endIcon: PropTypes.string
1915
1918
  /**
1916
1919
  * ref methods
1917
1920
  *
@@ -1,14 +1,16 @@
1
1
  /** @jsxRuntime classic */
2
2
  /** @jsx jsx */
3
3
  import { css, jsx } from '@emotion/core';
4
- import { ButtonIcon, InputBase, Label, Popover, PopoverBody } from "../..";
4
+ import { ButtonIcon, InputBase, Label, Popover, PopoverBody, HelperText } from "../..";
5
5
  import PropTypes from 'prop-types';
6
- import { Fragment, forwardRef, memo, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState } from 'react';
6
+ import { Fragment, forwardRef, memo, useEffect, useImperativeHandle, useLayoutEffect, useRef, useState, useMemo } from 'react';
7
7
  import { animation, borderColor, displayBlock, overflowHidden, parseHeight, parseMinWidth, positionRelative, scaleX } from "../../../styles/general";
8
8
  import { useTheme } from "../../../theme";
9
9
  import useThemeProps from "../../../theme/utils/useThemeProps";
10
10
  import { classNames, getProp } from "../../../utils";
11
- const DropdownBox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
11
+ const regexBetween = /[^{}]+(?=})/g;
12
+ const regexInclude = /{|}/g;
13
+ const DropdownBox = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((inProps, reference) => {
12
14
  if (!reference) reference = useRef(null);
13
15
  const theme = useTheme();
14
16
  const {
@@ -22,10 +24,14 @@ const DropdownBox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referen
22
24
  });
23
25
  const {
24
26
  action = {},
27
+ allowInput,
25
28
  bgColor: bgColorProp,
26
29
  children,
27
30
  className,
28
31
  delayOnInput,
32
+ disabled,
33
+ displayExpr: displayExprProp,
34
+ error,
29
35
  endIcon,
30
36
  inputProps,
31
37
  inputRef,
@@ -39,10 +45,19 @@ const DropdownBox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referen
39
45
  placeholder,
40
46
  startIcon,
41
47
  style,
42
- value,
43
- viewType
48
+ value: valueProps,
49
+ valueExpr,
50
+ viewType,
51
+ helperTextProps
44
52
  } = props;
53
+ let displayExpr = displayExprProp;
45
54
  const bgColor = typeof bgColorProp === 'string' ? getProp(colors, bgColorProp, bgColorProp) : bgColorProp;
55
+ const ErrorView = useMemo(() => {
56
+ return error ? jsx(HelperText, {
57
+ ...helperTextProps,
58
+ disabled: disabled
59
+ }, error) : null;
60
+ }, [disabled, error, helperTextProps]);
46
61
  const ref = useRef(null);
47
62
  const dropdownBoxRef = useRef(null);
48
63
  const timer = useRef(null);
@@ -85,6 +100,28 @@ const DropdownBox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referen
85
100
  onClosed === null || onClosed === void 0 ? void 0 : onClosed();
86
101
  }
87
102
  };
103
+
104
+ /**
105
+ * Chuyển đổi data thành giá trị cần hiện thị dựa vào displayExpr [string, string object {field} - {field}], renderSelectedItem, displayExpr, valueExpr
106
+ * @param data {object} rowData of dataSource
107
+ * @return {string}
108
+ */
109
+ const displayValue = data => {
110
+ let text = '';
111
+ if (data || data === 0) {
112
+ displayExpr = displayExpr || valueExpr;
113
+ let mask = data === null || data === void 0 ? void 0 : data[displayExpr];
114
+ // convert {id} - {name} to {<data[id]>} - {<data[name]>}
115
+ if (!mask && regexBetween.test(displayExpr)) {
116
+ var _displayExpr;
117
+ mask = (_displayExpr = displayExpr) === null || _displayExpr === void 0 ? void 0 : _displayExpr.replace(regexBetween, _ => (data === null || data === void 0 ? void 0 : data[_]) || '');
118
+ } else if (!mask) {
119
+ mask = typeof data !== 'object' ? data : '';
120
+ }
121
+ text = mask.toString().replace(regexInclude, '');
122
+ }
123
+ return text;
124
+ };
88
125
  useLayoutEffect(() => {
89
126
  if (ref.current) {
90
127
  const {
@@ -130,15 +167,17 @@ const DropdownBox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referen
130
167
  onClick: openOnClickAt === 'icon' ? onTriggerDropdown : null
131
168
  }) : null;
132
169
  };
170
+ const value = displayValue(valueProps);
133
171
  return jsx(Fragment, null, jsx("div", {
134
172
  ref: ref,
135
173
  css: _DropdownBoxRootCSS,
136
- className: classNames('DGN-UI-Dropdown-Box', className),
174
+ className: classNames('DGN-UI-Dropdown-Box', className, error && 'error'),
137
175
  style: style
138
176
  }, label ? jsx(Label, {
139
177
  ...labelProps
140
178
  }, label) : null, jsx(InputBase, {
141
179
  ...inputProps,
180
+ readOnly: !allowInput,
142
181
  style: inputStyle,
143
182
  viewType: viewType,
144
183
  inputRef: inputRef,
@@ -157,7 +196,7 @@ const DropdownBox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, referen
157
196
  anchor: ref.current,
158
197
  width: popoverWidth,
159
198
  onClose: closeDropdownBox
160
- }, jsx(PopoverBody, null, children)));
199
+ }, jsx(PopoverBody, null, children)), ErrorView);
161
200
  }));
162
201
  const DropdownBoxRootCSS = (bgColorProp, {
163
202
  colors
@@ -166,6 +205,17 @@ const DropdownBoxRootCSS = (bgColorProp, {
166
205
  ${positionRelative};
167
206
  ${parseMinWidth(150)};
168
207
  ${parseHeight('max-content')};
208
+ &.error {
209
+ .DGN-UI-InputBase {
210
+ ${borderColor(getProp(colors, 'semantic/danger'))};
211
+ &::before {
212
+ ${borderColor(getProp(colors, 'semantic/danger'))};
213
+ }
214
+ &::after {
215
+ ${borderColor(getProp(colors, 'semantic/danger'))};
216
+ }
217
+ }
218
+ }
169
219
  .DGN-UI-InputBase {
170
220
  background: ${bgColorProp ? bgColorProp === true ? getProp(colors, 'fill/disabled') : bgColorProp : 'inherit'} !important;
171
221
  ${openState && css`
@@ -183,20 +233,6 @@ const DropdownBoxCSS = ({
183
233
  margin-top: ${spacing([1])};
184
234
  ${overflowHidden};
185
235
  `;
186
-
187
- // DropdownBox.defaultProps = {
188
- // className: '',
189
- // label: '',
190
- // placeholder: '',
191
- // startIcon: 'Search',
192
- // endIcon: 'ArrowDown',
193
- // openOnClickAt: 'icon',
194
- // viewType: 'underlined',
195
- // inputProps: {},
196
- // delayOnInput: 700,
197
- // zIndex: zIndexCORE(1),
198
- // };
199
-
200
236
  DropdownBox.propTypes = {
201
237
  /** class for dropdown */
202
238
  className: PropTypes.string,
@@ -233,6 +269,12 @@ DropdownBox.propTypes = {
233
269
  /** the function will run after open */
234
270
  onOpened: PropTypes.func,
235
271
  /** the function will run after close */
236
- onClosed: PropTypes.func
272
+ onClosed: PropTypes.func,
273
+ /** Error message displayed below the input. */
274
+ error: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),
275
+ /** If `true`, the component is disabled. */
276
+ disabled: PropTypes.bool,
277
+ /** If `true`, the input is enable. */
278
+ allowInput: PropTypes.bool
237
279
  };
238
280
  export default DropdownBox;
@@ -4,7 +4,7 @@ import { css, jsx } from '@emotion/core';
4
4
  import PropTypes from 'prop-types';
5
5
  import { Children, forwardRef, memo, useEffect, useImperativeHandle, useRef } from 'react';
6
6
  import { useTheme } from "../../../theme";
7
- const FormGroup = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
7
+ const FormGroup = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
8
8
  fullWidth,
9
9
  oneHelperText,
10
10
  marginRight,
@@ -9,7 +9,7 @@ import { useTheme } from "../../../theme";
9
9
  import useThemeProps from "../../../theme/utils/useThemeProps";
10
10
  import { classNames, getProp } from "../../../utils";
11
11
  const colorMap = new Map([['default', 'semantic/danger'], ['success', 'semantic/success'], ['warning', 'semantic/warning'], ['danger', 'semantic/danger'], ['info', 'semantic/info']]);
12
- const HelperText = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
12
+ const HelperText = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((inProps, reference) => {
13
13
  if (!reference) reference = useRef(null);
14
14
  const theme = useTheme();
15
15
  const {
@@ -9,7 +9,7 @@ import { bgColor, border, borderBottom, borderBottomColor, borderColor, borderNo
9
9
  import { useTheme } from "../../../theme";
10
10
  import useThemeProps from "../../../theme/utils/useThemeProps";
11
11
  import { classNames, refType as ref, getProp } from "../../../utils";
12
- const UncontrolledInputBase = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
12
+ const UncontrolledInputBase = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((inProps, reference) => {
13
13
  if (!reference) reference = useRef(null);
14
14
  const theme = useTheme();
15
15
  const {
@@ -9,7 +9,7 @@ import { bgColor, bgTransparent, border, borderBottom, borderBottomColor, border
9
9
  import { useTheme } from "../../../theme";
10
10
  import useThemeProps from "../../../theme/utils/useThemeProps";
11
11
  import { classNames, refType as ref, useInput, getProp } from "../../../utils";
12
- const InputBase = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
12
+ const InputBase = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((inProps, reference) => {
13
13
  if (!reference) reference = useRef(null);
14
14
  const theme = useTheme();
15
15
  const {
@@ -9,7 +9,7 @@ import { flexRow, parseMinHeight, typographyTypes } from "../../../styles/genera
9
9
  import { useTheme } from "../../../theme";
10
10
  import useThemeProps from "../../../theme/utils/useThemeProps";
11
11
  import { classNames, getProp } from "../../../utils";
12
- const Label = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
12
+ const Label = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((inProps, reference) => {
13
13
  if (!reference) reference = useRef(null);
14
14
  const theme = useTheme();
15
15
  const {
@@ -128,7 +128,7 @@ const converters = {
128
128
  en: num2WordsEn,
129
129
  zh: num2WordsZh
130
130
  };
131
- const MoneyInput = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
131
+ const MoneyInput = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((inProps, reference) => {
132
132
  if (!reference) reference = useRef(null);
133
133
 
134
134
  // props priority: `inProps` > `themeDefaultProps`
@@ -49,7 +49,7 @@ const NumberInput = /*#__PURE__*/forwardRef((inProps, reference) => {
49
49
  labelProps,
50
50
  max: maxProp,
51
51
  maxDigit,
52
- min,
52
+ min: minProp,
53
53
  nonStyle,
54
54
  onBlur,
55
55
  onChange,
@@ -69,9 +69,12 @@ const NumberInput = /*#__PURE__*/forwardRef((inProps, reference) => {
69
69
  viewType
70
70
  } = props;
71
71
  let max = maxProp;
72
+ let min = minProp;
72
73
  let thousandSymbol = thousandSeparator;
73
74
  let decimalSymbol = decimalSymbolProp;
74
75
  let valueProps = valueProp;
76
+ if (!min && min !== 0) min = -Infinity;
77
+ if (!max && max !== 0) max = Infinity;
75
78
  const pos = useRef(null);
76
79
  const ref = useRef(null);
77
80
  const globalRef = useRef({});
@@ -166,14 +169,10 @@ const NumberInput = /*#__PURE__*/forwardRef((inProps, reference) => {
166
169
  return number;
167
170
  }, [decimalSymbol]);
168
171
  const _onInput = useCallback((e, flag) => {
169
- var _e$target$value, _valueT$toString$repl, _valueT$toString$repl2;
172
+ var _e$target$value;
170
173
  let valueT = (_e$target$value = e.target.value) !== null && _e$target$value !== void 0 ? _e$target$value : e.value;
171
- // xóa các số "0" đứng trước giá trị ví dụ: 0100, 0200 để tránh lỗi Octal literals are not allowed in strict mode
172
- let limitValueT = (_valueT$toString$repl = (_valueT$toString$repl2 = valueT.toString().replaceAll(thousandSymbol, '')).replaceAll) === null || _valueT$toString$repl === void 0 ? void 0 : _valueT$toString$repl.call(_valueT$toString$repl2, decimalSymbol, '.').split(/([+\-*/])/).map(a => parseFloat(a) || a).join('');
173
- if (disabledNegative && eval(limitValueT) <= 0 || limitValueT.includes('-')) limitValueT = 0;
174
- if ((min || min === 0) && eval(limitValueT) <= min || min === 0 && limitValueT.includes('-')) limitValueT = min;
175
- if ((max || max === 0) && eval(limitValueT) >= max) limitValueT = max;
176
- valueT = parseNumberToMoney(limitValueT);
174
+ if (disabledNegative && Number(valueT || 0) < 0) return;
175
+ valueT = parseNumberToMoney(valueT);
177
176
  const returnValue = convertMoneyToNumber(valueT);
178
177
  e.value = globalRef.current.value = !isNaN(parseFloat(returnValue)) ? parseFloat(returnValue) : null;
179
178
  // e.target.value = globalRef.current.valueString = valueT || '';
@@ -185,17 +184,41 @@ const NumberInput = /*#__PURE__*/forwardRef((inProps, reference) => {
185
184
  if (flag) _onChange(e);
186
185
  }, [min, max, decimalDigit]);
187
186
  const _onBlur = useCallback(e => {
188
- var _e$value, _e$value2;
187
+ var _e$value, _value$toString$repla, _value$toString$repla2, _e$value2;
189
188
  let value = (_e$value = e.value) !== null && _e$value !== void 0 ? _e$value : e.target.value;
190
189
  if (fixedDecimalDigit) value = Number(value).toFixed(decimalDigit);
191
190
  value = convertMoneyToNumber(value);
192
- if ((min || min === 0) && Number(value) < min || (max || max === 0) && Number(value) > max) {
191
+ let limitValueT = value;
192
+ // xóa các số "0" đứng trước giá trị ví dụ: 0100, 0200 để tránh lỗi Octal literals are not allowed in strict mode
193
+ limitValueT = (_value$toString$repla = (_value$toString$repla2 = value.toString().replaceAll(thousandSymbol, '')).replaceAll) === null || _value$toString$repla === void 0 ? void 0 : _value$toString$repla.call(_value$toString$repla2, decimalSymbol, '.').split(/([+\-*/])/).map(a => parseFloat(a) || a).join('');
194
+ // không chạy xử lý khi giá trị chỉ có dấu "-"
195
+ const exceptionValue = ['-', '.', ',', '', null, NaN];
196
+ if (!exceptionValue.includes(limitValueT)) {
193
197
  const target = e.target;
194
- target.value = clamp(value, min, max);
195
- _onInput({
196
- ...e,
197
- target
198
- }, true);
198
+ if (disabledNegative && eval(limitValueT) <= 0) {
199
+ limitValueT = 0;
200
+ _onInput({
201
+ ...e,
202
+ target
203
+ }, true);
204
+ target.value = clamp(limitValueT, min, max);
205
+ }
206
+ if ((min || min === 0) && eval(limitValueT) <= min) {
207
+ limitValueT = min;
208
+ _onInput({
209
+ ...e,
210
+ target
211
+ }, true);
212
+ target.value = clamp(limitValueT, min, max);
213
+ }
214
+ if (max && eval(limitValueT) >= max) {
215
+ limitValueT = max;
216
+ _onInput({
217
+ ...e,
218
+ target
219
+ }, true);
220
+ target.value = clamp(limitValueT, min, max);
221
+ }
199
222
  }
200
223
  if (((_e$value2 = e.value) !== null && _e$value2 !== void 0 ? _e$value2 : e.target.value).slice(-1) === decimalSymbol) {
201
224
  var _e$value3;
@@ -275,12 +298,13 @@ const NumberInput = /*#__PURE__*/forwardRef((inProps, reference) => {
275
298
  // disabled negative
276
299
  // const disabled180 = (keyCode === 189 || keyCode === 109) && (disabledNegative || value.includes('-'));
277
300
  const disabled180 = (keyCode === 189 || keyCode === 109) && (min === 0 || disabledNegative);
301
+ const disable48 = keyCode === 48 && value.toString() === '0';
278
302
 
279
303
  // disabled max digit
280
304
  const isMaxDigit = maxDigit && (value === null || value === void 0 ? void 0 : value.replace(regexNumber, '').length) === maxDigit && (isNumber || key === thousandSymbol || key === decimalSymbol) && selectionStart === selectionEnd;
281
305
 
282
306
  // Block event if include conditions
283
- if (decimalExists || removeDot || isNumber && disabledTypingDecimal || disabledDecimalSymbol || !allowKeyTypeNumber || disabled180 || isMaxDigit) {
307
+ if (decimalExists || removeDot || isNumber && disabledTypingDecimal || disabledDecimalSymbol || !allowKeyTypeNumber || disabled180 || disable48 || isMaxDigit) {
284
308
  e.preventDefault();
285
309
  }
286
310
  onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);
@@ -8,7 +8,7 @@ import { cursorNotAllowed, displayBlock, positionRelative } from "../../../style
8
8
  import { useTheme } from "../../../theme";
9
9
  import useThemeProps from "../../../theme/utils/useThemeProps";
10
10
  import { classNames, onValidate, refType as ref } from "../../../utils";
11
- const PasswordInput = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
11
+ const PasswordInput = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((inProps, reference) => {
12
12
  if (!reference) reference = useRef(null);
13
13
  const theme = useTheme();
14
14
 
@@ -17,7 +17,7 @@ const ensigns = {
17
17
  mark: '____ _______'
18
18
  }
19
19
  };
20
- const PhoneInput = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
20
+ const PhoneInput = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
21
21
  viewType,
22
22
  ensign,
23
23
  required,
@@ -8,7 +8,7 @@ import { boxBorder, cursorNoDrop, cursorPointer, displayBlock, displayNone, posi
8
8
  import { useTheme } from "../../../theme";
9
9
  import useThemeProps from "../../../theme/utils/useThemeProps";
10
10
  import { classNames, getProp, randomString } from "../../../utils";
11
- const Radio = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
11
+ const Radio = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((inProps, reference) => {
12
12
  if (!reference) reference = useRef(null);
13
13
  const theme = useTheme();
14
14
  const {
@@ -8,7 +8,7 @@ import { cursorNotAllowed, displayBlock, positionRelative } from "../../../style
8
8
  import { useTheme } from "../../../theme";
9
9
  import useThemeProps from "../../../theme/utils/useThemeProps";
10
10
  import { classNames, onValidate, refType as ref } from "../../../utils";
11
- const TextInput = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
11
+ const TextInput = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((inProps, reference) => {
12
12
  if (!reference) reference = useRef(null);
13
13
  const theme = useTheme();
14
14
 
@@ -73,7 +73,7 @@ const getValue = value => {
73
73
  }
74
74
  return new Date();
75
75
  };
76
- const TimePicker = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
76
+ const TimePicker = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
77
77
  activeHeight,
78
78
  activeWidth,
79
79
  allowSeconds,
@@ -9,7 +9,7 @@ import { bgColor, border, borderColor, borderNone, borderRadius4px, displayFlex,
9
9
  import { useTheme } from "../../../../theme";
10
10
  import useThemeProps from "../../../../theme/utils/useThemeProps";
11
11
  import { classNames, date, getProp, hexToRGBA } from "../../../../utils";
12
- const TimePicker = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
12
+ const TimePicker = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((inProps, reference) => {
13
13
  if (!reference) reference = useRef(null);
14
14
 
15
15
  // props priority: `inProps` > `themeDefaultProps`
@@ -8,7 +8,7 @@ import { borderRadius, cursorNoDrop, cursorPointer, displayBlock, flexRow, items
8
8
  import { useTheme } from "../../../theme";
9
9
  import useThemeProps from "../../../theme/utils/useThemeProps";
10
10
  import { classNames, getProp } from "../../../utils";
11
- const Toggle = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
11
+ const Toggle = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((inProps, reference) => {
12
12
  if (!reference) reference = useRef(null);
13
13
  const theme = useTheme();
14
14
 
@@ -6,7 +6,7 @@ import { forwardRef, memo, useEffect, useMemo, useRef } from 'react';
6
6
  import { border, borderBottom, borderRadius, bottom, boxBorder, displayFlex, inset, insetX, itemsCenter, parseHeight, pointerEventsNone, positionAbsolute, positionRelative, scale } from "../../styles/general";
7
7
  import { useTheme } from "../../theme";
8
8
  import { formatDate, getProp } from "../../utils";
9
- const InputView = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
9
+ const InputView = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
10
10
  inputProps,
11
11
  inputStyleProps,
12
12
  value,
@@ -10,7 +10,7 @@ import { breakpointKeys } from "../../theme/createBreakpoints";
10
10
  import useThemeProps from "../../theme/utils/useThemeProps";
11
11
  import { classNames, handleBreakpoints } from "../../utils";
12
12
  import GridContext from "./context";
13
- const Grid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
13
+ const Grid = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((inProps, reference) => {
14
14
  if (!reference) reference = useRef(null);
15
15
  const theme = useTheme();
16
16
  const {
@@ -15,7 +15,7 @@ const blurKeyframe = keyframes`
15
15
  75% { -webkit-filter: blur(1px);}
16
16
  100% { -webkit-filter: blur(0px);}
17
17
  `;
18
- const Image = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
18
+ const Image = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((inProps, reference) => {
19
19
  if (!reference) reference = useRef(null);
20
20
 
21
21
  // props priority: `inProps` > `themeDefaultProps`
@@ -7,7 +7,7 @@ import { forwardRef, memo, useImperativeHandle, useMemo, useRef } from 'react';
7
7
  import { bgColor, boxBorder, displayFlex, itemsCenter, order, parseMaxHeight, positionRelative, textColor, z } from "../../styles/general";
8
8
  import { useTheme } from "../../theme";
9
9
  import { classNames, getProp } from "../../utils";
10
- const ListItemAction = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
10
+ const ListItemAction = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
11
11
  children,
12
12
  name,
13
13
  className,
@@ -7,7 +7,7 @@ import { forwardRef, memo, useImperativeHandle, useMemo, useRef } from 'react';
7
7
  import { bgColor, boxBorder, displayFlex, itemsCenter, order, parseMinWidth, positionRelative, textColor, z } from "../../styles/general";
8
8
  import { useTheme } from "../../theme";
9
9
  import { classNames, getProp } from "../../utils";
10
- const ListItemIcon = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
10
+ const ListItemIcon = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
11
11
  className,
12
12
  children,
13
13
  name,
@@ -6,7 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import { forwardRef, memo, useImperativeHandle, useMemo, useRef } from 'react';
7
7
  import { bgColor, boxBorder, displayFlex, itemsCenter, order, positionRelative } from "../../styles/general";
8
8
  import { classNames } from "../../utils";
9
- const ListItemText = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
9
+ const ListItemText = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
10
10
  className,
11
11
  children,
12
12
  style,
@@ -7,7 +7,7 @@ import { forwardRef, memo, useEffect, useImperativeHandle, useMemo, useRef } fro
7
7
  import { bgColor, boxBorder, cursorPointer, displayFlex, flexRow, itemsCenter, overflowHidden, parseMaxWidth, parseMinHeight, parseWidthHeight, positionRelative, textColor, userSelectNone } from "../../styles/general";
8
8
  import { useTheme } from "../../theme";
9
9
  import { classNames, getProp } from "../../utils";
10
- const ListItem = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
10
+ const ListItem = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
11
11
  children,
12
12
  className,
13
13
  style,
@@ -7,7 +7,7 @@ import { bgColor, borderRadius, boxBorder, displayBlock, parseMaxHeight, parseMa
7
7
  import { useTheme } from "../../theme";
8
8
  import { classNames, getProp } from "../../utils";
9
9
  const levels = [0, 1, 'second', 'third', 'fourth', 'fifth'];
10
- const List = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
10
+ const List = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
11
11
  className,
12
12
  width,
13
13
  maxWidth,
@@ -6,7 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import { forwardRef, memo, useImperativeHandle, useMemo, useRef } from 'react';
7
7
  import { bgColor, boxBorder, displayBlock, parseWidthHeight, positionSticky, textLeft, top, userSelectNone, z } from "../../styles/general";
8
8
  import { useTheme } from "../../theme";
9
- const ListSubHeader = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
9
+ const ListSubHeader = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
10
10
  children,
11
11
  style,
12
12
  ...props
@@ -9,7 +9,7 @@ import sx from "../../styles/sx";
9
9
  import useThemeProps from "../../theme/utils/useThemeProps";
10
10
  import { classNames } from "../../utils";
11
11
  import { sxResponsivePadding } from "./header";
12
- const ModalBody = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
12
+ const ModalBody = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((inProps, reference) => {
13
13
  if (!reference) reference = useRef(null);
14
14
 
15
15
  // props priority: `inProps` > `themeDefaultProps`
@@ -9,7 +9,7 @@ import sx from "../../styles/sx";
9
9
  import useThemeProps from "../../theme/utils/useThemeProps";
10
10
  import { classNames } from "../../utils";
11
11
  import { sxResponsivePadding } from "./header";
12
- const ModalFooter = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
12
+ const ModalFooter = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((inProps, reference) => {
13
13
  if (!reference) reference = useRef(null);
14
14
 
15
15
  // props priority: `inProps` > `themeDefaultProps`
@@ -17,7 +17,7 @@ export const sxResponsivePadding = {
17
17
  md: [4, 6]
18
18
  }
19
19
  };
20
- const ModalHeader = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
20
+ const ModalHeader = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((inProps, reference) => {
21
21
  if (!reference) reference = useRef(null);
22
22
  const theme = useTheme();
23
23
  const {
@@ -5,7 +5,7 @@ import Body from "./body";
5
5
  import Footer from "./footer";
6
6
  import Header from "./header";
7
7
  import Modal from "./modal";
8
- const ModalSample = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
8
+ const ModalSample = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
9
9
  action = {},
10
10
  bodyStyle,
11
11
  children,
@@ -13,7 +13,7 @@ import { classNames, getProp, hexToRGBA, useDelayUnmount } from "../../utils";
13
13
  import ModalContext from "./context";
14
14
  const fadeInDown = animations.fadeInDown;
15
15
  const fadeOutUp = animations.fadeOutUp;
16
- const Modal = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((inProps, reference) => {
16
+ const Modal = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((inProps, reference) => {
17
17
  if (!reference) reference = useRef(null);
18
18
  const theme = useTheme();
19
19
  const {
@@ -4,7 +4,7 @@ import { jsx } from '@emotion/core';
4
4
  import { forwardRef, memo, useEffect, useState } from 'react';
5
5
  import sx from "../../../styles/sx";
6
6
  const OptionWrapper = Component => {
7
- const WrappedComponent = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((props, ref) => {
7
+ const WrappedComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((props, ref) => {
8
8
  const [options, setOptions] = useState({});
9
9
  const option = (option, optionValue) => {
10
10
  if (typeof option === 'undefined') {