@dreamcommerce/aurora 3.1.51 → 3.1.52-2

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 (104) hide show
  1. package/build/cjs/packages/aurora/src/components/calendar/styled_day_picker/styled_day_picker.js +1 -1
  2. package/build/cjs/packages/aurora/src/components/color_picker/components/pure_color_picker.js +0 -1
  3. package/build/cjs/packages/aurora/src/components/color_picker/components/pure_color_picker.js.map +1 -1
  4. package/build/cjs/packages/aurora/src/components/date_and_time_picker/date_time_picker.js +16 -27
  5. package/build/cjs/packages/aurora/src/components/date_and_time_picker/date_time_picker.js.map +1 -1
  6. package/build/cjs/packages/aurora/src/components/date_picker/components/date_picker_input.js +43 -11
  7. package/build/cjs/packages/aurora/src/components/date_picker/components/date_picker_input.js.map +1 -1
  8. package/build/cjs/packages/aurora/src/components/date_picker/date_picker.js +93 -13
  9. package/build/cjs/packages/aurora/src/components/date_picker/date_picker.js.map +1 -1
  10. package/build/cjs/packages/aurora/src/components/date_picker/date_picker_utils.js +203 -4
  11. package/build/cjs/packages/aurora/src/components/date_picker/date_picker_utils.js.map +1 -1
  12. package/build/cjs/packages/aurora/src/components/input_mask/hooks/hooks.js +196 -0
  13. package/build/cjs/packages/aurora/src/components/input_mask/hooks/hooks.js.map +1 -0
  14. package/build/cjs/packages/aurora/src/components/input_mask/input-mask-constants.js +14 -0
  15. package/build/cjs/packages/aurora/src/components/input_mask/input-mask-constants.js.map +1 -0
  16. package/build/cjs/packages/aurora/src/components/input_mask/input_mask.js +360 -0
  17. package/build/cjs/packages/aurora/src/components/input_mask/input_mask.js.map +1 -0
  18. package/build/cjs/packages/aurora/src/components/input_mask/utils/defer.js +16 -0
  19. package/build/cjs/packages/aurora/src/components/input_mask/utils/defer.js.map +1 -0
  20. package/build/cjs/packages/aurora/src/components/input_mask/utils/helpers.js +50 -0
  21. package/build/cjs/packages/aurora/src/components/input_mask/utils/helpers.js.map +1 -0
  22. package/build/cjs/packages/aurora/src/components/input_mask/utils/input.js +33 -0
  23. package/build/cjs/packages/aurora/src/components/input_mask/utils/input.js.map +1 -0
  24. package/build/cjs/packages/aurora/src/components/input_mask/utils/mask.js +371 -0
  25. package/build/cjs/packages/aurora/src/components/input_mask/utils/mask.js.map +1 -0
  26. package/build/cjs/packages/aurora/src/components/input_mask/utils/parse-mask.js +94 -0
  27. package/build/cjs/packages/aurora/src/components/input_mask/utils/parse-mask.js.map +1 -0
  28. package/build/cjs/packages/aurora/src/components/input_mask/utils/validate-props.js +37 -0
  29. package/build/cjs/packages/aurora/src/components/input_mask/utils/validate-props.js.map +1 -0
  30. package/build/cjs/packages/aurora/src/components/time_picker/components/time_picker_input.js +30 -10
  31. package/build/cjs/packages/aurora/src/components/time_picker/components/time_picker_input.js.map +1 -1
  32. package/build/cjs/packages/aurora/src/components/time_picker/time_picker.js +85 -50
  33. package/build/cjs/packages/aurora/src/components/time_picker/time_picker.js.map +1 -1
  34. package/build/cjs/packages/aurora/src/components/time_picker/time_picker_utils.js +62 -1
  35. package/build/cjs/packages/aurora/src/components/time_picker/time_picker_utils.js.map +1 -1
  36. package/build/cjs/packages/aurora/src/index.js +2 -0
  37. package/build/cjs/packages/aurora/src/index.js.map +1 -1
  38. package/build/cjs/packages/aurora/src/translations/en.json.js +5 -1
  39. package/build/cjs/packages/aurora/src/translations/en.json.js.map +1 -1
  40. package/build/cjs/packages/aurora/src/translations/pl.json.js +5 -1
  41. package/build/cjs/packages/aurora/src/translations/pl.json.js.map +1 -1
  42. package/build/esm/packages/aurora/src/components/calendar/styled_day_picker/styled_day_picker.js +1 -1
  43. package/build/esm/packages/aurora/src/components/color_picker/components/pure_color_picker.js +0 -1
  44. package/build/esm/packages/aurora/src/components/color_picker/components/pure_color_picker.js.map +1 -1
  45. package/build/esm/packages/aurora/src/components/date_and_time_picker/date_time_picker.js +16 -27
  46. package/build/esm/packages/aurora/src/components/date_and_time_picker/date_time_picker.js.map +1 -1
  47. package/build/esm/packages/aurora/src/components/date_picker/components/date_picker_input.d.ts +4 -1
  48. package/build/esm/packages/aurora/src/components/date_picker/components/date_picker_input.js +43 -11
  49. package/build/esm/packages/aurora/src/components/date_picker/components/date_picker_input.js.map +1 -1
  50. package/build/esm/packages/aurora/src/components/date_picker/date_picker.d.ts +1 -1
  51. package/build/esm/packages/aurora/src/components/date_picker/date_picker.js +94 -14
  52. package/build/esm/packages/aurora/src/components/date_picker/date_picker.js.map +1 -1
  53. package/build/esm/packages/aurora/src/components/date_picker/date_picker_types.d.ts +1 -1
  54. package/build/esm/packages/aurora/src/components/date_picker/date_picker_utils.d.ts +19 -2
  55. package/build/esm/packages/aurora/src/components/date_picker/date_picker_utils.js +203 -4
  56. package/build/esm/packages/aurora/src/components/date_picker/date_picker_utils.js.map +1 -1
  57. package/build/esm/packages/aurora/src/components/input_mask/hooks/hooks.d.ts +10 -0
  58. package/build/esm/packages/aurora/src/components/input_mask/hooks/hooks.js +190 -0
  59. package/build/esm/packages/aurora/src/components/input_mask/hooks/hooks.js.map +1 -0
  60. package/build/esm/packages/aurora/src/components/input_mask/input-mask-constants.d.ts +6 -0
  61. package/build/esm/packages/aurora/src/components/input_mask/input-mask-constants.js +9 -0
  62. package/build/esm/packages/aurora/src/components/input_mask/input-mask-constants.js.map +1 -0
  63. package/build/esm/packages/aurora/src/components/input_mask/input_mask.d.ts +4 -0
  64. package/build/esm/packages/aurora/src/components/input_mask/input_mask.js +352 -0
  65. package/build/esm/packages/aurora/src/components/input_mask/input_mask.js.map +1 -0
  66. package/build/esm/packages/aurora/src/components/input_mask/input_mask_types.d.ts +39 -0
  67. package/build/esm/packages/aurora/src/components/input_mask/input_mask_types.js +2 -0
  68. package/build/esm/packages/aurora/src/components/input_mask/input_mask_types.js.map +1 -0
  69. package/build/esm/packages/aurora/src/components/input_mask/utils/defer.d.ts +2 -0
  70. package/build/esm/packages/aurora/src/components/input_mask/utils/defer.js +11 -0
  71. package/build/esm/packages/aurora/src/components/input_mask/utils/defer.js.map +1 -0
  72. package/build/esm/packages/aurora/src/components/input_mask/utils/helpers.d.ts +7 -0
  73. package/build/esm/packages/aurora/src/components/input_mask/utils/helpers.js +40 -0
  74. package/build/esm/packages/aurora/src/components/input_mask/utils/helpers.js.map +1 -0
  75. package/build/esm/packages/aurora/src/components/input_mask/utils/input.d.ts +9 -0
  76. package/build/esm/packages/aurora/src/components/input_mask/utils/input.js +29 -0
  77. package/build/esm/packages/aurora/src/components/input_mask/utils/input.js.map +1 -0
  78. package/build/esm/packages/aurora/src/components/input_mask/utils/mask.d.ts +63 -0
  79. package/build/esm/packages/aurora/src/components/input_mask/utils/mask.js +367 -0
  80. package/build/esm/packages/aurora/src/components/input_mask/utils/mask.js.map +1 -0
  81. package/build/esm/packages/aurora/src/components/input_mask/utils/parse-mask.d.ts +7 -0
  82. package/build/esm/packages/aurora/src/components/input_mask/utils/parse-mask.js +90 -0
  83. package/build/esm/packages/aurora/src/components/input_mask/utils/parse-mask.js.map +1 -0
  84. package/build/esm/packages/aurora/src/components/input_mask/utils/validate-props.d.ts +4 -0
  85. package/build/esm/packages/aurora/src/components/input_mask/utils/validate-props.js +31 -0
  86. package/build/esm/packages/aurora/src/components/input_mask/utils/validate-props.js.map +1 -0
  87. package/build/esm/packages/aurora/src/components/time_picker/components/time_picker_input.d.ts +2 -1
  88. package/build/esm/packages/aurora/src/components/time_picker/components/time_picker_input.js +30 -10
  89. package/build/esm/packages/aurora/src/components/time_picker/components/time_picker_input.js.map +1 -1
  90. package/build/esm/packages/aurora/src/components/time_picker/time_picker.js +87 -52
  91. package/build/esm/packages/aurora/src/components/time_picker/time_picker.js.map +1 -1
  92. package/build/esm/packages/aurora/src/components/time_picker/time_picker_utils.d.ts +11 -0
  93. package/build/esm/packages/aurora/src/components/time_picker/time_picker_utils.js +62 -1
  94. package/build/esm/packages/aurora/src/components/time_picker/time_picker_utils.js.map +1 -1
  95. package/build/esm/packages/aurora/src/index.d.ts +2 -0
  96. package/build/esm/packages/aurora/src/index.js +1 -0
  97. package/build/esm/packages/aurora/src/index.js.map +1 -1
  98. package/build/esm/packages/aurora/src/translations/en.json +5 -1
  99. package/build/esm/packages/aurora/src/translations/en.json.js +5 -1
  100. package/build/esm/packages/aurora/src/translations/en.json.js.map +1 -1
  101. package/build/esm/packages/aurora/src/translations/pl.json +5 -1
  102. package/build/esm/packages/aurora/src/translations/pl.json.js +5 -1
  103. package/build/esm/packages/aurora/src/translations/pl.json.js.map +1 -1
  104. package/package.json +1 -1
@@ -0,0 +1,196 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var _rollupPluginBabelHelpers = require('../../../../../../_virtual/_rollupPluginBabelHelpers.js');
7
+ var defer = require('../utils/defer.js');
8
+ var input = require('../utils/input.js');
9
+ var helpers = require('../utils/helpers.js');
10
+
11
+ function useInputElement(inputRef) {
12
+ return React.useCallback(function () {
13
+ var input = inputRef.current;
14
+ var isDOMNode = typeof window !== 'undefined' && helpers.isDOMElement(input);
15
+ // workaround for react-test-renderer
16
+ // https://github.com/sanniassin/react-input-mask/issues/147
17
+ if (!input || !isDOMNode) {
18
+ return null;
19
+ }
20
+ if (input.nodeName !== 'INPUT') {
21
+ input = input.querySelector('input');
22
+ }
23
+ if (!input) {
24
+ throw new Error("inputComponent doesn't contain input node");
25
+ }
26
+ return input;
27
+ }, [inputRef]);
28
+ }
29
+ function useDeferLoop(callback) {
30
+ var deferIdRef = React.useRef(null);
31
+ var runLoop = React.useCallback(function () {
32
+ // If there are simulated focus events, runLoop could be
33
+ // called multiple times without blur or re-render
34
+ if (deferIdRef.current !== null) {
35
+ return;
36
+ }
37
+ function loop() {
38
+ callback();
39
+ deferIdRef.current = defer.defer(loop);
40
+ }
41
+ loop();
42
+ }, [callback]);
43
+ var stopLoop = React.useCallback(function () {
44
+ if (deferIdRef.current !== null) {
45
+ defer.cancelDefer(deferIdRef.current);
46
+ deferIdRef.current = null;
47
+ }
48
+ }, []);
49
+ React.useEffect(function () {
50
+ if (deferIdRef.current) {
51
+ stopLoop();
52
+ runLoop();
53
+ }
54
+ }, [runLoop, stopLoop]);
55
+ React.useEffect(function () {
56
+ return function () {
57
+ if (deferIdRef.current !== null) {
58
+ defer.cancelDefer(deferIdRef.current);
59
+ }
60
+ };
61
+ }, []);
62
+ return [runLoop, stopLoop];
63
+ }
64
+ function useSelection(inputRef, isMasked) {
65
+ var inputUtilsRef = React.useRef(new input['default']());
66
+ var inputUtils = inputUtilsRef.current;
67
+ var selectionRef = React.useRef({
68
+ start: null,
69
+ end: null
70
+ });
71
+ var getInputElement = useInputElement(inputRef);
72
+ var getSelection = React.useCallback(function () {
73
+ var input = getInputElement();
74
+ if (!input) {
75
+ return {
76
+ start: null,
77
+ end: null
78
+ };
79
+ }
80
+ return inputUtils.getInputSelection(input);
81
+ }, [getInputElement]);
82
+ var getLastSelection = React.useCallback(function () {
83
+ return selectionRef.current;
84
+ }, []);
85
+ var setSelection = React.useCallback(function (selection) {
86
+ var _selection$start, _selection$end;
87
+ var input = getInputElement();
88
+ // Don't change selection on unfocused input
89
+ // because Safari sets focus on selection change (#154)
90
+ if (!input || !inputUtils.isInputFocused(input)) {
91
+ return;
92
+ }
93
+ inputUtils.setInputSelection(input, (_selection$start = selection.start) !== null && _selection$start !== void 0 ? _selection$start : 0, (_selection$end = selection.end) !== null && _selection$end !== void 0 ? _selection$end : undefined);
94
+ // Use actual selection in case the requested one was out of range
95
+ selectionRef.current = getSelection();
96
+ }, [getInputElement, getSelection]);
97
+ var selectionLoop = React.useCallback(function () {
98
+ selectionRef.current = getSelection();
99
+ }, [getSelection]);
100
+ var _useDeferLoop = useDeferLoop(selectionLoop),
101
+ _useDeferLoop2 = _rollupPluginBabelHelpers.slicedToArray(_useDeferLoop, 2),
102
+ runSelectionLoop = _useDeferLoop2[0],
103
+ stopSelectionLoop = _useDeferLoop2[1];
104
+ React.useLayoutEffect(function () {
105
+ if (!isMasked) {
106
+ return;
107
+ }
108
+ var input = getInputElement();
109
+ if (!input) return;
110
+ input.addEventListener('focus', runSelectionLoop);
111
+ input.addEventListener('blur', stopSelectionLoop);
112
+ if (inputUtils.isInputFocused(input)) {
113
+ runSelectionLoop();
114
+ }
115
+ return function () {
116
+ input.removeEventListener('focus', runSelectionLoop);
117
+ input.removeEventListener('blur', stopSelectionLoop);
118
+ stopSelectionLoop();
119
+ };
120
+ }, [isMasked, getInputElement, runSelectionLoop, stopSelectionLoop]);
121
+ return {
122
+ getSelection: getSelection,
123
+ getLastSelection: getLastSelection,
124
+ setSelection: setSelection
125
+ };
126
+ }
127
+ function useValue(inputRef, initialValue) {
128
+ var getInputElement = useInputElement(inputRef);
129
+ var valueRef = React.useRef(initialValue);
130
+ var getValue = React.useCallback(function () {
131
+ var input = getInputElement();
132
+ return (input === null || input === void 0 ? void 0 : input.value) || '';
133
+ }, [getInputElement]);
134
+ var getLastValue = React.useCallback(function () {
135
+ return valueRef.current;
136
+ }, []);
137
+ var setValue = React.useCallback(function (newValue) {
138
+ valueRef.current = newValue;
139
+ var input = getInputElement();
140
+ if (input) {
141
+ input.value = newValue;
142
+ }
143
+ }, [getInputElement]);
144
+ return {
145
+ getValue: getValue,
146
+ getLastValue: getLastValue,
147
+ setValue: setValue
148
+ };
149
+ }
150
+ function useInputState(initialValue, isMasked) {
151
+ var inputRef = React.useRef(null);
152
+ var _useSelection = useSelection(inputRef, isMasked),
153
+ getSelection = _useSelection.getSelection,
154
+ getLastSelection = _useSelection.getLastSelection,
155
+ setSelection = _useSelection.setSelection;
156
+ var _useValue = useValue(inputRef, initialValue),
157
+ getValue = _useValue.getValue,
158
+ getLastValue = _useValue.getLastValue,
159
+ setValue = _useValue.setValue;
160
+ function getLastInputState() {
161
+ return {
162
+ value: getLastValue(),
163
+ selection: getLastSelection()
164
+ };
165
+ }
166
+ function getInputState() {
167
+ return {
168
+ value: getValue(),
169
+ selection: getSelection()
170
+ };
171
+ }
172
+ function setInputState(_ref) {
173
+ var value = _ref.value,
174
+ selection = _ref.selection;
175
+ setValue(value);
176
+ setSelection(selection);
177
+ }
178
+ return {
179
+ inputRef: inputRef,
180
+ getInputState: getInputState,
181
+ getLastInputState: getLastInputState,
182
+ setInputState: setInputState
183
+ };
184
+ }
185
+ function usePrevious(value) {
186
+ var ref = React.useRef();
187
+ React.useEffect(function () {
188
+ ref.current = value;
189
+ });
190
+ return ref.current;
191
+ }
192
+
193
+ exports.useInputElement = useInputElement;
194
+ exports.useInputState = useInputState;
195
+ exports.usePrevious = usePrevious;
196
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var CONTROLLED_PROPS = ['disabled', 'onBlur', 'onChange', 'onFocus', 'onMouseDown', 'readOnly', 'value'];
6
+ var defaultFormatChars = {
7
+ '9': /[0-9]/,
8
+ a: /[A-Za-z]/,
9
+ '*': /[A-Za-z0-9]/
10
+ };
11
+
12
+ exports.CONTROLLED_PROPS = CONTROLLED_PROPS;
13
+ exports.defaultFormatChars = defaultFormatChars;
14
+ //# sourceMappingURL=input-mask-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,360 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var _rollupPluginBabelHelpers = require('../../../../../_virtual/_rollupPluginBabelHelpers.js');
7
+ var defer = require('./utils/defer.js');
8
+ var input = require('./utils/input.js');
9
+ var helpers = require('./utils/helpers.js');
10
+ var hooks = require('./hooks/hooks.js');
11
+ var validateProps = require('./utils/validate-props.js');
12
+ var mask = require('./utils/mask.js');
13
+
14
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
+
16
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
17
+
18
+ var _excluded = ["alwaysShowMask", "children", "mask", "maskPlaceholder", "formatChars", "beforeMaskedStateChange"];
19
+ var InputMask = /*#__PURE__*/React.forwardRef(function InputMask(props, forwardedRef) {
20
+ var _props$alwaysShowMask = props.alwaysShowMask,
21
+ alwaysShowMask = _props$alwaysShowMask === void 0 ? false : _props$alwaysShowMask,
22
+ children = props.children,
23
+ mask$1 = props.mask,
24
+ _props$maskPlaceholde = props.maskPlaceholder,
25
+ maskPlaceholder = _props$maskPlaceholde === void 0 ? '_' : _props$maskPlaceholde,
26
+ formatChars = props.formatChars,
27
+ beforeMaskedStateChange = props.beforeMaskedStateChange,
28
+ restProps = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
29
+ validateProps.validateMaxLength(props);
30
+ validateProps.validateMaskPlaceholder(props);
31
+ var maskUtils = new mask['default']({
32
+ mask: mask$1,
33
+ maskPlaceholder: maskPlaceholder,
34
+ formatChars: formatChars
35
+ });
36
+ var inputUtils = new input['default']();
37
+ var isMasked = !!mask$1;
38
+ var isEditable = !restProps.disabled && !restProps.readOnly;
39
+ var isControlled = props.value !== null && props.value !== undefined;
40
+ var previousIsMasked = hooks.usePrevious(isMasked);
41
+ var initialValue = helpers.toString((isControlled ? props.value : props.defaultValue) || '');
42
+ var _useInputState = hooks.useInputState(initialValue, isMasked),
43
+ inputRef = _useInputState.inputRef,
44
+ getInputState = _useInputState.getInputState,
45
+ setInputState = _useInputState.setInputState,
46
+ getLastInputState = _useInputState.getLastInputState;
47
+ var getInputElement = hooks.useInputElement(inputRef);
48
+ function onChange(event) {
49
+ var currentState = getInputState();
50
+ var previousState = getLastInputState();
51
+ var newInputState = maskUtils.processChange(currentState, previousState);
52
+ if (beforeMaskedStateChange) {
53
+ newInputState = beforeMaskedStateChange({
54
+ currentState: currentState,
55
+ previousState: previousState,
56
+ nextState: newInputState
57
+ });
58
+ }
59
+ setInputState(newInputState);
60
+ if (props.onChange) {
61
+ props.onChange(event);
62
+ }
63
+ }
64
+ function onFocus(event) {
65
+ // If autoFocus property is set, focus event fires before the ref handler gets called
66
+ inputRef.current = event.target;
67
+ var currentValue = getInputState().value;
68
+ if (isMasked && !maskUtils.isValueFilled(currentValue)) {
69
+ var newValue = maskUtils.formatValue(currentValue);
70
+ var defaultSelection = maskUtils.getDefaultSelectionForValue(newValue);
71
+ var newSelection = {
72
+ start: defaultSelection.start,
73
+ end: defaultSelection.end
74
+ };
75
+ var newInputState = {
76
+ value: newValue,
77
+ selection: newSelection
78
+ };
79
+ if (beforeMaskedStateChange) {
80
+ newInputState = beforeMaskedStateChange({
81
+ currentState: getInputState(),
82
+ nextState: newInputState
83
+ });
84
+ newValue = newInputState.value;
85
+ newSelection = newInputState.selection;
86
+ }
87
+ setInputState(newInputState);
88
+ if (newValue !== currentValue && props.onChange) {
89
+ props.onChange(event);
90
+ }
91
+ // Chrome resets selection after focus event,
92
+ // so we want to restore it later
93
+ defer.defer(function () {
94
+ setInputState(getLastInputState());
95
+ });
96
+ }
97
+ if (props.onFocus) {
98
+ props.onFocus(event);
99
+ }
100
+ }
101
+ function onBlur(event) {
102
+ var currentValue = getInputState().value;
103
+ var lastValue = getLastInputState().value;
104
+ if (isMasked && !alwaysShowMask && maskUtils.isValueEmpty(lastValue)) {
105
+ var newValue = '';
106
+ var newInputState = {
107
+ value: newValue,
108
+ selection: {
109
+ start: null,
110
+ end: null
111
+ }
112
+ };
113
+ if (beforeMaskedStateChange) {
114
+ newInputState = beforeMaskedStateChange({
115
+ currentState: getInputState(),
116
+ nextState: newInputState
117
+ });
118
+ newValue = newInputState.value;
119
+ }
120
+ setInputState(newInputState);
121
+ if (newValue !== currentValue && props.onChange) {
122
+ props.onChange(event);
123
+ }
124
+ }
125
+ if (props.onBlur) {
126
+ props.onBlur(event);
127
+ }
128
+ }
129
+ function onKeyDown(event) {
130
+ var callOriginalOnKeyDown = function callOriginalOnKeyDown() {
131
+ if (props.onKeyDown) {
132
+ props.onKeyDown(event);
133
+ }
134
+ };
135
+ if (!isMasked || !isEditable) {
136
+ callOriginalOnKeyDown();
137
+ return;
138
+ }
139
+ if (event.key !== 'Tab') {
140
+ callOriginalOnKeyDown();
141
+ return;
142
+ }
143
+ var input = getInputElement();
144
+ if (!input) {
145
+ callOriginalOnKeyDown();
146
+ return;
147
+ }
148
+ var isFocused = inputUtils.isInputFocused(input);
149
+ var currentState = getInputState();
150
+ var currentValue = currentState.value;
151
+ var isEmpty = maskUtils.isValueEmpty(currentValue);
152
+ var selection = inputUtils.getInputSelection(input);
153
+ var currentPosition = selection.start;
154
+ var hasSelection = selection.length > 0;
155
+ var firstEditablePosition = maskUtils.getFirstEditablePosition();
156
+ if (isEmpty && !isFocused) {
157
+ event.preventDefault();
158
+ input.focus();
159
+ if (firstEditablePosition !== null) {
160
+ defer.defer(function () {
161
+ var sections = maskUtils.getSections();
162
+ var sectionRange = maskUtils.getSectionRange(firstEditablePosition, sections);
163
+ if (sectionRange) {
164
+ inputUtils.setInputSelection(input, sectionRange.start, sectionRange.end + 1);
165
+ } else {
166
+ inputUtils.setInputSelection(input, firstEditablePosition);
167
+ }
168
+ });
169
+ }
170
+ return;
171
+ }
172
+ if (isEmpty && isFocused) {
173
+ callOriginalOnKeyDown();
174
+ return;
175
+ }
176
+ var sections = maskUtils.getSections();
177
+ var checkPosition = hasSelection ? selection.start : currentPosition;
178
+ var currentSectionIndex = maskUtils.getSectionIndexForPosition(checkPosition, sections);
179
+ var isAtFirstSection = currentSectionIndex === 0;
180
+ var isAtLastSection = currentSectionIndex === sections.length - 1;
181
+ if (isAtLastSection && !event.shiftKey) {
182
+ callOriginalOnKeyDown();
183
+ return;
184
+ }
185
+ if (isAtFirstSection && event.shiftKey) {
186
+ callOriginalOnKeyDown();
187
+ return;
188
+ }
189
+ if (hasSelection) {
190
+ event.preventDefault();
191
+ var jumpPosition = event.shiftKey ? maskUtils.getPreviousSectionFirstPosition(selection.start) : maskUtils.getNextSectionFirstPosition(selection.start);
192
+ if (jumpPosition !== null) {
193
+ defer.defer(function () {
194
+ var sectionRange = maskUtils.getSectionRange(jumpPosition, sections);
195
+ if (sectionRange) {
196
+ inputUtils.setInputSelection(input, sectionRange.start, sectionRange.end + 1);
197
+ } else {
198
+ inputUtils.setInputSelection(input, jumpPosition);
199
+ }
200
+ });
201
+ } else {
202
+ callOriginalOnKeyDown();
203
+ }
204
+ return;
205
+ }
206
+ var currentEditablePosition = maskUtils.isPositionEditable(currentPosition) ? currentPosition : event.shiftKey ? maskUtils.getLeftEditablePosition(currentPosition) : maskUtils.getRightEditablePosition(currentPosition);
207
+ if (currentEditablePosition === null) {
208
+ callOriginalOnKeyDown();
209
+ return;
210
+ }
211
+ event.preventDefault();
212
+ var nextSectionPosition = event.shiftKey ? maskUtils.getPreviousSectionFirstPosition(currentEditablePosition) : maskUtils.getNextSectionFirstPosition(currentEditablePosition);
213
+ if (nextSectionPosition !== null) {
214
+ defer.defer(function () {
215
+ var sectionRange = maskUtils.getSectionRange(nextSectionPosition, sections);
216
+ if (sectionRange) {
217
+ inputUtils.setInputSelection(input, sectionRange.start, sectionRange.end + 1);
218
+ } else {
219
+ inputUtils.setInputSelection(input, nextSectionPosition);
220
+ }
221
+ });
222
+ } else {
223
+ callOriginalOnKeyDown();
224
+ }
225
+ }
226
+ // Tiny unintentional mouse movements can break cursor
227
+ // position on focus, so we have to restore it in that case
228
+ //
229
+ // https://github.com/sanniassin/react-input-mask/issues/108
230
+ function onMouseDown(event) {
231
+ var input = getInputElement();
232
+ var _getInputState = getInputState(),
233
+ value = _getInputState.value;
234
+ var inputDocument = helpers.getElementDocument(input);
235
+ if (!input || !inputDocument) return;
236
+ if (!inputUtils.isInputFocused(input) && !maskUtils.isValueFilled(value)) {
237
+ var mouseDownX = event.clientX;
238
+ var mouseDownY = event.clientY;
239
+ var mouseDownTime = new Date().getTime();
240
+ var _mouseUpHandler = function mouseUpHandler(mouseUpEvent) {
241
+ inputDocument.removeEventListener('mouseup', _mouseUpHandler);
242
+ if (!inputUtils.isInputFocused(input)) {
243
+ return;
244
+ }
245
+ var deltaX = Math.abs(mouseUpEvent.clientX - mouseDownX);
246
+ var deltaY = Math.abs(mouseUpEvent.clientY - mouseDownY);
247
+ var axisDelta = Math.max(deltaX, deltaY);
248
+ var timeDelta = new Date().getTime() - mouseDownTime;
249
+ if (axisDelta <= 10 && timeDelta <= 200 || axisDelta <= 5 && timeDelta <= 300) {
250
+ var _lastState = getLastInputState();
251
+ var defaultSelection = maskUtils.getDefaultSelectionForValue(_lastState.value);
252
+ var newSelection = {
253
+ start: defaultSelection.start,
254
+ end: defaultSelection.end
255
+ };
256
+ var newState = _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, _lastState), {}, {
257
+ selection: newSelection
258
+ });
259
+ setInputState(newState);
260
+ }
261
+ };
262
+ inputDocument.addEventListener('mouseup', _mouseUpHandler);
263
+ }
264
+ if (props.onMouseDown) {
265
+ props.onMouseDown(event);
266
+ }
267
+ }
268
+ // For controlled inputs we want to provide properly formatted
269
+ // value prop
270
+ if (isMasked && isControlled) {
271
+ var input$1 = getInputElement();
272
+ var isFocused = input$1 && inputUtils.isInputFocused(input$1);
273
+ var newValue = isFocused || alwaysShowMask || props.value ? maskUtils.formatValue(props.value || '') : props.value || '';
274
+ if (beforeMaskedStateChange) {
275
+ newValue = beforeMaskedStateChange({
276
+ nextState: {
277
+ value: newValue,
278
+ selection: {
279
+ start: null,
280
+ end: null
281
+ }
282
+ }
283
+ }).value;
284
+ }
285
+ setInputState(_rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, getLastInputState()), {}, {
286
+ value: newValue
287
+ }));
288
+ }
289
+ var lastState = getLastInputState();
290
+ var lastSelection = lastState.selection;
291
+ var lastValue = lastState.value;
292
+ React.useLayoutEffect(function () {
293
+ if (!isMasked) {
294
+ return;
295
+ }
296
+ var input = getInputElement();
297
+ var isFocused = inputUtils.isInputFocused(input);
298
+ var previousSelection = lastSelection;
299
+ var currentState = getInputState();
300
+ var newInputState = _rollupPluginBabelHelpers.objectSpread2({}, currentState);
301
+ // Update value for uncontrolled inputs to make sure
302
+ // it's always in sync with mask props
303
+ if (!isControlled) {
304
+ var currentValue = currentState.value;
305
+ var formattedValue = maskUtils.formatValue(currentValue);
306
+ var isValueEmpty = maskUtils.isValueEmpty(formattedValue);
307
+ var shouldFormatValue = !isValueEmpty || isFocused || alwaysShowMask;
308
+ if (shouldFormatValue) {
309
+ newInputState.value = formattedValue;
310
+ } else if (isValueEmpty && !isFocused) {
311
+ newInputState.value = '';
312
+ }
313
+ }
314
+ if (isFocused && !previousIsMasked) {
315
+ // Adjust selection if input got masked while being focused
316
+ var defaultSelection = maskUtils.getDefaultSelectionForValue(newInputState.value);
317
+ newInputState.selection = {
318
+ start: defaultSelection.start,
319
+ end: defaultSelection.end
320
+ };
321
+ } else if (isControlled && isFocused && previousSelection) {
322
+ // Restore cursor position if value has changed outside change event
323
+ if (previousSelection.start !== null && previousSelection.end !== null) {
324
+ newInputState.selection = previousSelection;
325
+ }
326
+ }
327
+ if (beforeMaskedStateChange) {
328
+ newInputState = beforeMaskedStateChange({
329
+ currentState: currentState,
330
+ nextState: newInputState
331
+ });
332
+ }
333
+ setInputState(newInputState);
334
+ });
335
+ var inputProps = _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, restProps), {}, {
336
+ onFocus: onFocus,
337
+ onBlur: onBlur,
338
+ onChange: isMasked && isEditable ? onChange : props.onChange,
339
+ onMouseDown: isMasked && isEditable ? onMouseDown : props.onMouseDown,
340
+ onKeyDown: isMasked && isEditable ? onKeyDown : props.onKeyDown,
341
+ ref: function ref(_ref) {
342
+ inputRef.current = _ref;
343
+ if (helpers.isFunction(forwardedRef)) {
344
+ forwardedRef(_ref);
345
+ } else if (forwardedRef !== null && _rollupPluginBabelHelpers['typeof'](forwardedRef) === 'object') {
346
+ forwardedRef.current = _ref;
347
+ }
348
+ },
349
+ value: isMasked && isControlled ? lastValue : props.value
350
+ });
351
+ if (children) {
352
+ validateProps.validateChildren(props, children);
353
+ return /*#__PURE__*/React__default['default'].cloneElement(React__default['default'].Children.only(children), inputProps);
354
+ }
355
+ return /*#__PURE__*/React__default['default'].createElement("input", _rollupPluginBabelHelpers.objectSpread2({}, inputProps));
356
+ });
357
+ InputMask.displayName = 'InputMask';
358
+
359
+ exports.InputMask = InputMask;
360
+ //# sourceMappingURL=input_mask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var defer = function defer(fn) {
6
+ return requestAnimationFrame(fn);
7
+ };
8
+ var cancelDefer = function cancelDefer(deferId) {
9
+ if (deferId !== null) {
10
+ cancelAnimationFrame(deferId);
11
+ }
12
+ };
13
+
14
+ exports.cancelDefer = cancelDefer;
15
+ exports.defer = defer;
16
+ //# sourceMappingURL=defer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ // Element's window may differ from the one within React instance
6
+ // if element rendered within iframe.
7
+ // See https://github.com/sanniassin/react-input-mask/issues/182
8
+ var getElementDocument = function getElementDocument(element) {
9
+ return (element === null || element === void 0 ? void 0 : element.ownerDocument) || null;
10
+ };
11
+ var getElementWindow = function getElementWindow(element) {
12
+ var _getElementDocument;
13
+ return ((_getElementDocument = getElementDocument(element)) === null || _getElementDocument === void 0 ? void 0 : _getElementDocument.defaultView) || null;
14
+ };
15
+ var isDOMElement = function isDOMElement(element) {
16
+ var elementWindow = getElementWindow(element);
17
+ return !!elementWindow && element instanceof elementWindow.HTMLElement;
18
+ };
19
+ var isFunction = function isFunction(value) {
20
+ return typeof value === 'function';
21
+ };
22
+ var findLastIndex = function findLastIndex(array, predicate) {
23
+ for (var i = array.length - 1; i >= 0; i--) {
24
+ var x = array[i];
25
+ if (predicate(x, i)) {
26
+ return i;
27
+ }
28
+ }
29
+ return -1;
30
+ };
31
+ var repeat = function repeat(string) {
32
+ var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
33
+ var result = '';
34
+ for (var i = 0; i < n; i++) {
35
+ result += string;
36
+ }
37
+ return result;
38
+ };
39
+ var toString = function toString(value) {
40
+ return "".concat(value);
41
+ };
42
+
43
+ exports.findLastIndex = findLastIndex;
44
+ exports.getElementDocument = getElementDocument;
45
+ exports.getElementWindow = getElementWindow;
46
+ exports.isDOMElement = isDOMElement;
47
+ exports.isFunction = isFunction;
48
+ exports.repeat = repeat;
49
+ exports.toString = toString;
50
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}