@dnb/eufemia 10.70.1 → 10.71.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 (199) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/cjs/components/date-picker/DatePickerContext.d.ts +0 -1
  3. package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
  4. package/cjs/components/date-picker/DatePickerInput.js +7 -59
  5. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  6. package/cjs/components/date-picker/DatePickerProvider.js +0 -2
  7. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  8. package/cjs/components/date-picker/hooks/useDates.d.ts +0 -2
  9. package/cjs/components/date-picker/hooks/useDates.js +5 -5
  10. package/cjs/components/date-picker/hooks/useDates.js.map +1 -1
  11. package/cjs/components/input-masked/InputMaskedHooks.js +11 -7
  12. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  13. package/cjs/components/input-masked/InputMaskedUtils.d.ts +1 -1
  14. package/cjs/components/input-masked/InputMaskedUtils.js +2 -1
  15. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  16. package/cjs/components/modal/ModalDocs.d.ts +2 -0
  17. package/cjs/components/modal/ModalDocs.js +11 -1
  18. package/cjs/components/modal/ModalDocs.js.map +1 -1
  19. package/cjs/components/upload/Upload.js +6 -3
  20. package/cjs/components/upload/Upload.js.map +1 -1
  21. package/cjs/components/upload/UploadDocs.d.ts +1 -0
  22. package/cjs/components/upload/UploadDocs.js +43 -1
  23. package/cjs/components/upload/UploadDocs.js.map +1 -1
  24. package/cjs/components/upload/UploadFileListCell.js +32 -12
  25. package/cjs/components/upload/UploadFileListCell.js.map +1 -1
  26. package/cjs/components/upload/types.d.ts +7 -0
  27. package/cjs/components/upload/types.js.map +1 -1
  28. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  29. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  30. package/cjs/extensions/forms/Field/Number/Number.js +3 -6
  31. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  32. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +6 -4
  33. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -25
  34. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  35. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +2 -2
  36. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +8 -3
  37. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  38. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  39. package/cjs/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  40. package/cjs/extensions/forms/Field/Upload/Upload.js +3 -1
  41. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  42. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +11 -4
  43. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  44. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  45. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  46. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
  47. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  48. package/cjs/extensions/forms/hooks/useFieldProps.js +50 -17
  49. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  50. package/cjs/extensions/forms/types.d.ts +8 -5
  51. package/cjs/extensions/forms/types.js.map +1 -1
  52. package/cjs/extensions/forms/utils/FormError.d.ts +20 -16
  53. package/cjs/extensions/forms/utils/FormError.js.map +1 -1
  54. package/cjs/shared/Eufemia.d.ts +1 -1
  55. package/cjs/shared/Eufemia.js +2 -2
  56. package/cjs/shared/Eufemia.js.map +1 -1
  57. package/cjs/style/core/scopes.scss +1 -1
  58. package/cjs/style/dnb-ui-basis.css +1 -1
  59. package/cjs/style/dnb-ui-basis.min.css +1 -1
  60. package/cjs/style/dnb-ui-body.css +1 -1
  61. package/cjs/style/dnb-ui-body.min.css +1 -1
  62. package/cjs/style/dnb-ui-core.css +1 -1
  63. package/cjs/style/dnb-ui-core.min.css +1 -1
  64. package/components/date-picker/DatePickerContext.d.ts +0 -1
  65. package/components/date-picker/DatePickerContext.js.map +1 -1
  66. package/components/date-picker/DatePickerInput.js +7 -59
  67. package/components/date-picker/DatePickerInput.js.map +1 -1
  68. package/components/date-picker/DatePickerProvider.js +0 -2
  69. package/components/date-picker/DatePickerProvider.js.map +1 -1
  70. package/components/date-picker/hooks/useDates.d.ts +0 -2
  71. package/components/date-picker/hooks/useDates.js +3 -5
  72. package/components/date-picker/hooks/useDates.js.map +1 -1
  73. package/components/input-masked/InputMaskedHooks.js +11 -7
  74. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  75. package/components/input-masked/InputMaskedUtils.d.ts +1 -1
  76. package/components/input-masked/InputMaskedUtils.js +2 -1
  77. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  78. package/components/modal/ModalDocs.d.ts +2 -0
  79. package/components/modal/ModalDocs.js +10 -0
  80. package/components/modal/ModalDocs.js.map +1 -1
  81. package/components/upload/Upload.js +6 -3
  82. package/components/upload/Upload.js.map +1 -1
  83. package/components/upload/UploadDocs.d.ts +1 -0
  84. package/components/upload/UploadDocs.js +42 -0
  85. package/components/upload/UploadDocs.js.map +1 -1
  86. package/components/upload/UploadFileListCell.js +32 -12
  87. package/components/upload/UploadFileListCell.js.map +1 -1
  88. package/components/upload/types.d.ts +7 -0
  89. package/components/upload/types.js.map +1 -1
  90. package/es/components/date-picker/DatePickerContext.d.ts +0 -1
  91. package/es/components/date-picker/DatePickerContext.js.map +1 -1
  92. package/es/components/date-picker/DatePickerInput.js +2 -53
  93. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  94. package/es/components/date-picker/DatePickerProvider.js +0 -2
  95. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  96. package/es/components/date-picker/hooks/useDates.d.ts +0 -2
  97. package/es/components/date-picker/hooks/useDates.js +3 -5
  98. package/es/components/date-picker/hooks/useDates.js.map +1 -1
  99. package/es/components/input-masked/InputMaskedHooks.js +11 -7
  100. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  101. package/es/components/input-masked/InputMaskedUtils.d.ts +1 -1
  102. package/es/components/input-masked/InputMaskedUtils.js +2 -1
  103. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  104. package/es/components/modal/ModalDocs.d.ts +2 -0
  105. package/es/components/modal/ModalDocs.js +6 -0
  106. package/es/components/modal/ModalDocs.js.map +1 -1
  107. package/es/components/upload/Upload.js +6 -3
  108. package/es/components/upload/Upload.js.map +1 -1
  109. package/es/components/upload/UploadDocs.d.ts +1 -0
  110. package/es/components/upload/UploadDocs.js +42 -0
  111. package/es/components/upload/UploadDocs.js.map +1 -1
  112. package/es/components/upload/UploadFileListCell.js +32 -12
  113. package/es/components/upload/UploadFileListCell.js.map +1 -1
  114. package/es/components/upload/types.d.ts +7 -0
  115. package/es/components/upload/types.js.map +1 -1
  116. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  117. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  118. package/es/extensions/forms/Field/Number/Number.js +3 -6
  119. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  120. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +6 -4
  121. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +24 -16
  122. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  123. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +2 -2
  124. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +7 -2
  125. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  126. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  127. package/es/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  128. package/es/extensions/forms/Field/Upload/Upload.js +3 -1
  129. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  130. package/es/extensions/forms/FieldBlock/FieldBlock.js +11 -4
  131. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  132. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  133. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  134. package/es/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
  135. package/es/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  136. package/es/extensions/forms/hooks/useFieldProps.js +51 -18
  137. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  138. package/es/extensions/forms/types.d.ts +8 -5
  139. package/es/extensions/forms/types.js.map +1 -1
  140. package/es/extensions/forms/utils/FormError.d.ts +20 -16
  141. package/es/extensions/forms/utils/FormError.js +1 -0
  142. package/es/extensions/forms/utils/FormError.js.map +1 -1
  143. package/es/shared/Eufemia.d.ts +1 -1
  144. package/es/shared/Eufemia.js +2 -2
  145. package/es/shared/Eufemia.js.map +1 -1
  146. package/es/style/core/scopes.scss +1 -1
  147. package/es/style/dnb-ui-basis.css +1 -1
  148. package/es/style/dnb-ui-basis.min.css +1 -1
  149. package/es/style/dnb-ui-body.css +1 -1
  150. package/es/style/dnb-ui-body.min.css +1 -1
  151. package/es/style/dnb-ui-core.css +1 -1
  152. package/es/style/dnb-ui-core.min.css +1 -1
  153. package/esm/dnb-ui-basis.min.mjs +1 -1
  154. package/esm/dnb-ui-components.min.mjs +1 -1
  155. package/esm/dnb-ui-elements.min.mjs +1 -1
  156. package/esm/dnb-ui-extensions.min.mjs +1 -1
  157. package/esm/dnb-ui-lib.min.mjs +1 -1
  158. package/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  159. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  160. package/extensions/forms/Field/Number/Number.js +3 -6
  161. package/extensions/forms/Field/Number/Number.js.map +1 -1
  162. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +6 -4
  163. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -25
  164. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  165. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +2 -2
  166. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +7 -2
  167. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  168. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  169. package/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  170. package/extensions/forms/Field/Upload/Upload.js +3 -1
  171. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  172. package/extensions/forms/FieldBlock/FieldBlock.js +11 -4
  173. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  174. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  175. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  176. package/extensions/forms/hooks/DataValueWritePropsDocs.js +1 -1
  177. package/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  178. package/extensions/forms/hooks/useFieldProps.js +51 -18
  179. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  180. package/extensions/forms/types.d.ts +8 -5
  181. package/extensions/forms/types.js.map +1 -1
  182. package/extensions/forms/utils/FormError.d.ts +20 -16
  183. package/extensions/forms/utils/FormError.js.map +1 -1
  184. package/package.json +1 -1
  185. package/shared/Eufemia.d.ts +1 -1
  186. package/shared/Eufemia.js +2 -2
  187. package/shared/Eufemia.js.map +1 -1
  188. package/style/core/scopes.scss +1 -1
  189. package/style/dnb-ui-basis.css +1 -1
  190. package/style/dnb-ui-basis.min.css +1 -1
  191. package/style/dnb-ui-body.css +1 -1
  192. package/style/dnb-ui-body.min.css +1 -1
  193. package/style/dnb-ui-core.css +1 -1
  194. package/style/dnb-ui-core.min.css +1 -1
  195. package/umd/dnb-ui-basis.min.js +1 -1
  196. package/umd/dnb-ui-components.min.js +1 -1
  197. package/umd/dnb-ui-elements.min.js +1 -1
  198. package/umd/dnb-ui-extensions.min.js +1 -1
  199. package/umd/dnb-ui-lib.min.js +1 -1
@@ -30,13 +30,11 @@ export type DatePickerDates = {
30
30
  maxDate?: Date;
31
31
  startMonth?: Date;
32
32
  endMonth?: Date;
33
- hasHadValidDate?: boolean;
34
33
  hoverDate?: Date;
35
34
  } & DatePickerInputDates;
36
35
  export default function useDates(dateProps: DatePickerDateProps, { dateFormat, isRange, shouldCorrectDate, }: UseDatesOptions): {
37
36
  readonly dates: DatePickerDates;
38
37
  readonly updateDates: (newDates: DatePickerDates, callback?: (dates: DatePickerDates) => void) => void;
39
- readonly hasHadValidDate: boolean;
40
38
  readonly previousDateProps: DatePickerDateProps;
41
39
  };
42
40
  export declare function pad(date: string, size: number): string;
@@ -7,17 +7,20 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = useDates;
8
8
  exports.pad = pad;
9
9
  require("core-js/modules/web.dom-collections.iterator.js");
10
- var _react = require("react");
10
+ var _react = _interopRequireWildcard(require("react"));
11
11
  var _DatePickerCalc = require("../DatePickerCalc");
12
12
  var _isValid = _interopRequireDefault(require("date-fns/isValid"));
13
13
  var _format = _interopRequireDefault(require("date-fns/format"));
14
14
  var _dateFns = require("date-fns");
15
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
18
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
17
19
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18
20
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
19
21
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
20
22
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
23
+ const useLayoutEffect = typeof window === 'undefined' ? _react.default.useEffect : _react.default.useLayoutEffect;
21
24
  function useDates(dateProps, _ref) {
22
25
  let {
23
26
  dateFormat,
@@ -55,7 +58,6 @@ function useDates(dateProps, _ref) {
55
58
  setDates(currentDates => _objectSpread(_objectSpread({}, currentDates), derivedDates));
56
59
  setPreviousDateProps(dateProps);
57
60
  }
58
- const hasHadValidDate = (0, _react.useRef)(false);
59
61
  const updateDates = (0, _react.useCallback)((newDates, callback) => {
60
62
  var _newDates$startDate, _newDates$endDate;
61
63
  const correctedDates = shouldCorrectDate ? correctDates({
@@ -74,16 +76,14 @@ function useDates(dateProps, _ref) {
74
76
  });
75
77
  callback === null || callback === void 0 ? void 0 : callback(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, dates), newDates), months), correctedDates));
76
78
  }, [dates, shouldCorrectDate, isRange]);
77
- (0, _react.useEffect)(() => {
79
+ useLayoutEffect(() => {
78
80
  const startDates = updateInputDates('start', dates.startDate);
79
81
  const endDates = updateInputDates('end', dates.endDate);
80
- hasHadValidDate.current = (0, _isValid.default)(dates.startDate) || (0, _isValid.default)(dates.endDate);
81
82
  setDates(currentDates => _objectSpread(_objectSpread(_objectSpread({}, currentDates), startDates), endDates));
82
83
  }, [dates.startDate, dates.endDate]);
83
84
  return {
84
85
  dates,
85
86
  updateDates,
86
- hasHadValidDate: hasHadValidDate.current,
87
87
  previousDateProps
88
88
  };
89
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useDates.js","names":["_react","require","_DatePickerCalc","_isValid","_interopRequireDefault","_format","_dateFns","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","useDates","dateProps","_ref","dateFormat","isRange","shouldCorrectDate","previousDateProps","setPreviousDateProps","useState","dates","setDates","mapDates","hasDatePropChanges","useMemo","some","date","dateProp","previousDate","convertedDateProp","convertStringToDate","convertedPreviousDate","Date","isSameDay","derivedDates","deriveDatesFromProps","currentDates","hasHadValidDate","useRef","updateDates","useCallback","newDates","callback","_newDates$startDate","_newDates$endDate","correctedDates","correctDates","startDate","endDate","minDate","maxDate","months","updateMonths","useEffect","startDates","updateInputDates","endDates","current","isValid","type","updatedDates","pad","format","undefined","_ref2","_ref3","_convertStringToDate","_convertStringToDate2","getDate","startMonth","endMonth","addMonths","hasValidStartDate","hasValidEndDate","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","_ref4","getStartDate","_ref5","isDisabled","_ref6","_ref7","_newDates$startMonth","_ref8","_newDates$endMonth","size","dateWithPadding","substring"],"sources":["../../../../../src/components/date-picker/hooks/useDates.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { convertStringToDate, isDisabled } from '../DatePickerCalc'\nimport isValid from 'date-fns/isValid'\nimport format from 'date-fns/format'\nimport { addMonths, isSameDay } from 'date-fns'\nimport { DateType } from '../DatePickerContext'\n\nexport type DatePickerDateProps = {\n date?: DateType\n startDate?: DateType\n endDate?: DateType\n startMonth?: DateType\n endMonth?: DateType\n minDate?: DateType\n maxDate?: DateType\n hoverDate?: DateType | null\n}\n\ntype UseDatesOptions = {\n dateFormat: string\n isRange: boolean\n shouldCorrectDate: boolean\n}\n// TODO: Move to DatePickerInput\nexport type DatePickerInputDates = {\n __startDay?: string\n __startMonth?: string\n __startYear?: string\n __endDay?: string\n __endMonth?: string\n __endYear?: string\n}\n\nexport type DatePickerDates = {\n date?: DateType\n startDate?: Date\n endDate?: Date\n minDate?: Date\n maxDate?: Date\n startMonth?: Date\n endMonth?: Date\n hasHadValidDate?: boolean\n hoverDate?: Date\n} & DatePickerInputDates\n\nexport default function useDates(\n dateProps: DatePickerDateProps,\n {\n dateFormat,\n isRange = false,\n shouldCorrectDate = false,\n }: UseDatesOptions\n) {\n const [previousDateProps, setPreviousDateProps] = useState(dateProps)\n const [dates, setDates] = useState<DatePickerDates>({\n ...mapDates(dateProps, {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }),\n })\n\n const hasDatePropChanges = useMemo(\n () =>\n Object.keys(dateProps).some((date) => {\n const dateProp = dateProps[date]\n const previousDate = previousDateProps[date]\n\n const convertedDateProp = convertStringToDate(dateProp, {\n dateFormat,\n })\n const convertedPreviousDate = convertStringToDate(previousDate, {\n dateFormat,\n })\n // Make sure that same dates does not trigger a change\n // i.e. 2021-01-01 and new Date('2021-01-01')\n if (\n convertedDateProp instanceof Date &&\n convertedPreviousDate instanceof Date\n ) {\n return !isSameDay(convertedDateProp, convertedPreviousDate)\n }\n\n return dateProp !== previousDate\n }),\n [dateProps, previousDateProps, dateFormat]\n )\n\n // Update dates on prop change\n if (hasDatePropChanges) {\n const derivedDates = deriveDatesFromProps({\n dates,\n dateProps,\n previousDateProps,\n dateFormat,\n isRange,\n })\n\n setDates((currentDates) => ({ ...currentDates, ...derivedDates }))\n setPreviousDateProps(dateProps)\n }\n\n const hasHadValidDate = useRef<boolean>(false)\n\n const updateDates = useCallback(\n (\n newDates: DatePickerDates,\n callback?: (dates: DatePickerDates) => void\n ) => {\n // Correct dates based on min and max date\n const correctedDates = shouldCorrectDate\n ? correctDates({\n startDate: newDates.startDate ?? dates.startDate,\n endDate: newDates.endDate ?? dates.endDate,\n minDate: dates.minDate,\n maxDate: dates.maxDate,\n isRange,\n })\n : {}\n\n // Update months based on month or start/end date changes\n const months = updateMonths({\n newDates,\n currentDates: dates,\n })\n\n setDates((currentDates) => {\n return {\n ...currentDates,\n ...newDates,\n ...months,\n ...correctedDates,\n }\n })\n\n callback?.({\n ...dates,\n ...newDates,\n ...months,\n ...correctedDates,\n })\n },\n [dates, shouldCorrectDate, isRange]\n )\n\n // Updated input dates based on start and end dates, move to DatePickerInput\n // TODO: Move to DatePickerInput\n useEffect(() => {\n const startDates = updateInputDates('start', dates.startDate)\n const endDates = updateInputDates('end', dates.endDate)\n\n hasHadValidDate.current =\n isValid(dates.startDate) || isValid(dates.endDate)\n\n setDates((currentDates) => ({\n ...currentDates,\n ...startDates,\n ...endDates,\n }))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dates.startDate, dates.endDate])\n\n return {\n dates,\n updateDates,\n hasHadValidDate: hasHadValidDate.current,\n previousDateProps,\n } as const\n}\n\n// TODO: Move to DatePickerInput\nfunction updateInputDates(type: 'start' | 'end', date: Date | undefined) {\n const updatedDates = {}\n\n if (isValid(date)) {\n updatedDates[`__${type}Day`] = pad(format(date, 'dd'), 2)\n updatedDates[`__${type}Month`] = pad(format(date, 'MM'), 2)\n updatedDates[`__${type}Year`] = format(date, 'yyyy')\n } else if (date === undefined) {\n updatedDates[`__${type}Day`] = null\n updatedDates[`__${type}Month`] = null\n updatedDates[`__${type}Year`] = null\n }\n\n return updatedDates\n}\n\nfunction mapDates(\n dateProps: DatePickerDateProps,\n {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }: Omit<UseDatesOptions, 'isLinked'>\n) {\n const date = dateProps.date\n\n const startDate =\n typeof dateProps?.startDate !== 'undefined'\n ? getDate(dateProps.startDate, dateFormat)\n : typeof date !== 'undefined'\n ? getDate(date, dateFormat)\n : undefined\n\n const endDate = !isRange\n ? startDate\n : convertStringToDate(dateProps?.endDate, {\n dateFormat,\n }) || undefined\n\n // Ensure that the calendar view displays the correct start and end months, and to prevent date flickering bug\n const startMonth =\n convertStringToDate(dateProps.startMonth, {\n dateFormat,\n }) ??\n startDate ??\n new Date()\n\n const endMonth =\n convertStringToDate(dateProps.endMonth, {\n dateFormat: dateFormat,\n }) ?? (isRange ? endDate ?? addMonths(startMonth, 1) : startMonth)\n\n const minDate = convertStringToDate(dateProps.minDate, {\n dateFormat,\n })\n\n const maxDate = convertStringToDate(dateProps.maxDate, {\n dateFormat,\n })\n\n const correctedDates = shouldCorrectDate\n ? correctDates({ startDate, endDate, minDate, maxDate, isRange })\n : {}\n\n const dates = {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n ...correctedDates,\n }\n\n const hasValidStartDate = isValid(dates.startDate)\n const hasValidEndDate = isValid(dates.endDate)\n\n return {\n ...dates,\n __startDay: hasValidStartDate\n ? pad(format(dates.startDate, 'dd'), 2)\n : null,\n __startMonth: hasValidStartDate\n ? pad(format(dates.startDate, 'MM'), 2)\n : null,\n __startYear: hasValidStartDate\n ? format(dates.startDate, 'yyyy')\n : null,\n __endDay: hasValidEndDate ? pad(format(dates.endDate, 'dd'), 2) : null,\n __endMonth: hasValidEndDate\n ? pad(format(dates.endDate, 'MM'), 2)\n : null,\n __endYear: hasValidEndDate ? format(dates.endDate, 'yyyy') : null,\n }\n}\n\nfunction deriveDatesFromProps({\n dates,\n dateProps,\n previousDateProps,\n dateFormat,\n isRange,\n}: {\n dates: DatePickerDates\n dateProps: DatePickerDateProps\n previousDateProps: DatePickerDateProps\n dateFormat: UseDatesOptions['dateFormat']\n isRange: UseDatesOptions['isRange']\n}) {\n const derivedDates: DatePickerDates = {}\n\n const startDate = getStartDate(dateProps, previousDateProps)\n\n // Handle updates related to date and startDate changes when not in range mode\n if (typeof startDate !== 'undefined' && startDate !== dates.startDate) {\n derivedDates.startDate =\n convertStringToDate(startDate, {\n dateFormat,\n }) || undefined\n\n // Set endDate and startMonth to startDate if not in range mode\n if (!isRange) {\n derivedDates.startMonth =\n convertStringToDate(startDate, {\n dateFormat,\n }) || undefined\n\n derivedDates.endDate = derivedDates.startDate\n }\n }\n\n // update endDate based on endDate prop if in range mode\n if (\n isRange &&\n typeof dateProps.endDate !== 'undefined' &&\n dateProps.endDate !== dates.endDate\n ) {\n derivedDates.endDate =\n convertStringToDate(dateProps.endDate, {\n dateFormat,\n }) || undefined\n }\n\n // Handle startMonth/endMonth\n if (\n typeof dateProps.startMonth !== 'undefined' &&\n dateProps.startMonth !== previousDateProps.startMonth\n ) {\n derivedDates.startMonth = convertStringToDate(dateProps.startMonth, {\n dateFormat,\n })\n }\n if (\n typeof dateProps.endMonth !== 'undefined' &&\n dateProps.endMonth !== previousDateProps.endMonth\n ) {\n derivedDates.endMonth = convertStringToDate(dateProps.endMonth, {\n dateFormat,\n })\n }\n\n // Handle minDate/maxDate\n if (\n typeof dateProps.minDate !== 'undefined' &&\n dateProps.minDate !== previousDateProps.minDate\n ) {\n derivedDates.minDate = convertStringToDate(dateProps.minDate, {\n dateFormat,\n })\n }\n if (\n typeof dateProps.maxDate !== 'undefined' &&\n dateProps.maxDate !== previousDateProps.maxDate\n ) {\n derivedDates.maxDate = convertStringToDate(dateProps.maxDate, {\n dateFormat,\n })\n }\n\n return derivedDates\n}\n\nfunction correctDates({\n startDate,\n endDate,\n minDate,\n maxDate,\n isRange,\n}: {\n startDate: Date\n endDate: Date\n minDate: Date\n maxDate: Date\n isRange: boolean\n}) {\n const correctedDates = {}\n\n if (isDisabled(startDate, minDate, maxDate)) {\n correctedDates['startDate'] = minDate\n }\n if (isDisabled(endDate, minDate, maxDate)) {\n // state.endDate is only used by the input if range is set to true.\n // this is done to make maxDate correction work if the input is not a range and only maxDate is defined.\n if (!isRange && !minDate) {\n correctedDates['startDate'] = maxDate\n } else {\n correctedDates['endDate'] = maxDate\n }\n }\n\n return correctedDates\n}\n\nfunction updateMonths({\n newDates,\n currentDates,\n}: {\n newDates: DatePickerDates\n currentDates: DatePickerDates\n}) {\n const startMonth =\n newDates.startMonth ?? newDates.startDate ?? currentDates.startMonth\n const endMonth =\n newDates.endMonth ?? newDates.endDate ?? currentDates.endMonth\n\n return {\n startMonth,\n endMonth,\n }\n}\n\nfunction getDate(date: DateType, dateFormat: string) {\n return date instanceof Date\n ? date\n : convertStringToDate(date ?? '', {\n dateFormat,\n })\n}\n\nfunction getStartDate(\n dateProps: DatePickerDateProps,\n previousDateProps: DatePickerDateProps\n) {\n // prioritize startDate over date if provided\n if (\n typeof dateProps.startDate !== 'undefined' &&\n dateProps.startDate !== previousDateProps.startDate\n ) {\n return dateProps.startDate\n }\n\n if (\n typeof dateProps.date !== 'undefined' &&\n dateProps.date !== previousDateProps.date\n ) {\n return dateProps.date\n }\n\n return undefined\n}\n\nexport function pad(date: string, size: number) {\n const dateWithPadding = '000000000' + date\n\n return dateWithPadding.substring(dateWithPadding.length - size)\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useDates.js","names":["_react","_interopRequireWildcard","require","_DatePickerCalc","_isValid","_interopRequireDefault","_format","_dateFns","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","useLayoutEffect","window","React","useEffect","useDates","dateProps","_ref","dateFormat","isRange","shouldCorrectDate","previousDateProps","setPreviousDateProps","useState","dates","setDates","mapDates","hasDatePropChanges","useMemo","some","date","dateProp","previousDate","convertedDateProp","convertStringToDate","convertedPreviousDate","Date","isSameDay","derivedDates","deriveDatesFromProps","currentDates","updateDates","useCallback","newDates","callback","_newDates$startDate","_newDates$endDate","correctedDates","correctDates","startDate","endDate","minDate","maxDate","months","updateMonths","startDates","updateInputDates","endDates","type","updatedDates","isValid","pad","format","undefined","_ref2","_ref3","_convertStringToDate","_convertStringToDate2","getDate","startMonth","endMonth","addMonths","hasValidStartDate","hasValidEndDate","__startDay","__startMonth","__startYear","__endDay","__endMonth","__endYear","_ref4","getStartDate","_ref5","isDisabled","_ref6","_ref7","_newDates$startMonth","_ref8","_newDates$endMonth","size","dateWithPadding","substring"],"sources":["../../../../../src/components/date-picker/hooks/useDates.ts"],"sourcesContent":["import React, { useCallback, useMemo, useState } from 'react'\nimport { convertStringToDate, isDisabled } from '../DatePickerCalc'\nimport isValid from 'date-fns/isValid'\nimport format from 'date-fns/format'\nimport { addMonths, isSameDay } from 'date-fns'\nimport { DateType } from '../DatePickerContext'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type DatePickerDateProps = {\n date?: DateType\n startDate?: DateType\n endDate?: DateType\n startMonth?: DateType\n endMonth?: DateType\n minDate?: DateType\n maxDate?: DateType\n hoverDate?: DateType | null\n}\n\ntype UseDatesOptions = {\n dateFormat: string\n isRange: boolean\n shouldCorrectDate: boolean\n}\n// TODO: Move to DatePickerInput\nexport type DatePickerInputDates = {\n __startDay?: string\n __startMonth?: string\n __startYear?: string\n __endDay?: string\n __endMonth?: string\n __endYear?: string\n}\n\nexport type DatePickerDates = {\n date?: DateType\n startDate?: Date\n endDate?: Date\n minDate?: Date\n maxDate?: Date\n startMonth?: Date\n endMonth?: Date\n hoverDate?: Date\n} & DatePickerInputDates\n\nexport default function useDates(\n dateProps: DatePickerDateProps,\n {\n dateFormat,\n isRange = false,\n shouldCorrectDate = false,\n }: UseDatesOptions\n) {\n const [previousDateProps, setPreviousDateProps] = useState(dateProps)\n const [dates, setDates] = useState<DatePickerDates>({\n ...mapDates(dateProps, {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }),\n })\n\n const hasDatePropChanges = useMemo(\n () =>\n Object.keys(dateProps).some((date) => {\n const dateProp = dateProps[date]\n const previousDate = previousDateProps[date]\n\n const convertedDateProp = convertStringToDate(dateProp, {\n dateFormat,\n })\n const convertedPreviousDate = convertStringToDate(previousDate, {\n dateFormat,\n })\n // Make sure that same dates does not trigger a change\n // i.e. 2021-01-01 and new Date('2021-01-01')\n if (\n convertedDateProp instanceof Date &&\n convertedPreviousDate instanceof Date\n ) {\n return !isSameDay(convertedDateProp, convertedPreviousDate)\n }\n\n return dateProp !== previousDate\n }),\n [dateProps, previousDateProps, dateFormat]\n )\n\n // Update dates on prop change\n if (hasDatePropChanges) {\n const derivedDates = deriveDatesFromProps({\n dates,\n dateProps,\n previousDateProps,\n dateFormat,\n isRange,\n })\n\n setDates((currentDates) => ({ ...currentDates, ...derivedDates }))\n setPreviousDateProps(dateProps)\n }\n\n const updateDates = useCallback(\n (\n newDates: DatePickerDates,\n callback?: (dates: DatePickerDates) => void\n ) => {\n // Correct dates based on min and max date\n const correctedDates = shouldCorrectDate\n ? correctDates({\n startDate: newDates.startDate ?? dates.startDate,\n endDate: newDates.endDate ?? dates.endDate,\n minDate: dates.minDate,\n maxDate: dates.maxDate,\n isRange,\n })\n : {}\n\n // Update months based on month or start/end date changes\n const months = updateMonths({\n newDates,\n currentDates: dates,\n })\n\n setDates((currentDates) => {\n return {\n ...currentDates,\n ...newDates,\n ...months,\n ...correctedDates,\n }\n })\n\n callback?.({\n ...dates,\n ...newDates,\n ...months,\n ...correctedDates,\n })\n },\n [dates, shouldCorrectDate, isRange]\n )\n\n // Updated input dates based on start and end dates, move to DatePickerInput\n // TODO: Move to DatePickerInput\n useLayoutEffect(() => {\n const startDates = updateInputDates('start', dates.startDate)\n const endDates = updateInputDates('end', dates.endDate)\n\n setDates((currentDates) => ({\n ...currentDates,\n ...startDates,\n ...endDates,\n }))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dates.startDate, dates.endDate])\n\n return {\n dates,\n updateDates,\n previousDateProps,\n } as const\n}\n\n// TODO: Move to DatePickerInput\nfunction updateInputDates(type: 'start' | 'end', date: Date | undefined) {\n const updatedDates = {}\n\n if (isValid(date)) {\n updatedDates[`__${type}Day`] = pad(format(date, 'dd'), 2)\n updatedDates[`__${type}Month`] = pad(format(date, 'MM'), 2)\n updatedDates[`__${type}Year`] = format(date, 'yyyy')\n } else if (date === undefined) {\n updatedDates[`__${type}Day`] = null\n updatedDates[`__${type}Month`] = null\n updatedDates[`__${type}Year`] = null\n }\n\n return updatedDates\n}\n\nfunction mapDates(\n dateProps: DatePickerDateProps,\n {\n dateFormat,\n isRange,\n shouldCorrectDate,\n }: Omit<UseDatesOptions, 'isLinked'>\n) {\n const date = dateProps.date\n\n const startDate =\n typeof dateProps?.startDate !== 'undefined'\n ? getDate(dateProps.startDate, dateFormat)\n : typeof date !== 'undefined'\n ? getDate(date, dateFormat)\n : undefined\n\n const endDate = !isRange\n ? startDate\n : convertStringToDate(dateProps?.endDate, {\n dateFormat,\n }) || undefined\n\n // Ensure that the calendar view displays the correct start and end months, and to prevent date flickering bug\n const startMonth =\n convertStringToDate(dateProps.startMonth, {\n dateFormat,\n }) ??\n startDate ??\n new Date()\n\n const endMonth =\n convertStringToDate(dateProps.endMonth, {\n dateFormat: dateFormat,\n }) ?? (isRange ? endDate ?? addMonths(startMonth, 1) : startMonth)\n\n const minDate = convertStringToDate(dateProps.minDate, {\n dateFormat,\n })\n\n const maxDate = convertStringToDate(dateProps.maxDate, {\n dateFormat,\n })\n\n const correctedDates = shouldCorrectDate\n ? correctDates({ startDate, endDate, minDate, maxDate, isRange })\n : {}\n\n const dates = {\n date,\n startDate,\n endDate,\n startMonth,\n endMonth,\n minDate,\n maxDate,\n ...correctedDates,\n }\n\n const hasValidStartDate = isValid(dates.startDate)\n const hasValidEndDate = isValid(dates.endDate)\n\n return {\n ...dates,\n __startDay: hasValidStartDate\n ? pad(format(dates.startDate, 'dd'), 2)\n : null,\n __startMonth: hasValidStartDate\n ? pad(format(dates.startDate, 'MM'), 2)\n : null,\n __startYear: hasValidStartDate\n ? format(dates.startDate, 'yyyy')\n : null,\n __endDay: hasValidEndDate ? pad(format(dates.endDate, 'dd'), 2) : null,\n __endMonth: hasValidEndDate\n ? pad(format(dates.endDate, 'MM'), 2)\n : null,\n __endYear: hasValidEndDate ? format(dates.endDate, 'yyyy') : null,\n }\n}\n\nfunction deriveDatesFromProps({\n dates,\n dateProps,\n previousDateProps,\n dateFormat,\n isRange,\n}: {\n dates: DatePickerDates\n dateProps: DatePickerDateProps\n previousDateProps: DatePickerDateProps\n dateFormat: UseDatesOptions['dateFormat']\n isRange: UseDatesOptions['isRange']\n}) {\n const derivedDates: DatePickerDates = {}\n\n const startDate = getStartDate(dateProps, previousDateProps)\n\n // Handle updates related to date and startDate changes when not in range mode\n if (typeof startDate !== 'undefined' && startDate !== dates.startDate) {\n derivedDates.startDate =\n convertStringToDate(startDate, {\n dateFormat,\n }) || undefined\n\n // Set endDate and startMonth to startDate if not in range mode\n if (!isRange) {\n derivedDates.startMonth =\n convertStringToDate(startDate, {\n dateFormat,\n }) || undefined\n\n derivedDates.endDate = derivedDates.startDate\n }\n }\n\n // update endDate based on endDate prop if in range mode\n if (\n isRange &&\n typeof dateProps.endDate !== 'undefined' &&\n dateProps.endDate !== dates.endDate\n ) {\n derivedDates.endDate =\n convertStringToDate(dateProps.endDate, {\n dateFormat,\n }) || undefined\n }\n\n // Handle startMonth/endMonth\n if (\n typeof dateProps.startMonth !== 'undefined' &&\n dateProps.startMonth !== previousDateProps.startMonth\n ) {\n derivedDates.startMonth = convertStringToDate(dateProps.startMonth, {\n dateFormat,\n })\n }\n if (\n typeof dateProps.endMonth !== 'undefined' &&\n dateProps.endMonth !== previousDateProps.endMonth\n ) {\n derivedDates.endMonth = convertStringToDate(dateProps.endMonth, {\n dateFormat,\n })\n }\n\n // Handle minDate/maxDate\n if (\n typeof dateProps.minDate !== 'undefined' &&\n dateProps.minDate !== previousDateProps.minDate\n ) {\n derivedDates.minDate = convertStringToDate(dateProps.minDate, {\n dateFormat,\n })\n }\n if (\n typeof dateProps.maxDate !== 'undefined' &&\n dateProps.maxDate !== previousDateProps.maxDate\n ) {\n derivedDates.maxDate = convertStringToDate(dateProps.maxDate, {\n dateFormat,\n })\n }\n\n return derivedDates\n}\n\nfunction correctDates({\n startDate,\n endDate,\n minDate,\n maxDate,\n isRange,\n}: {\n startDate: Date\n endDate: Date\n minDate: Date\n maxDate: Date\n isRange: boolean\n}) {\n const correctedDates = {}\n\n if (isDisabled(startDate, minDate, maxDate)) {\n correctedDates['startDate'] = minDate\n }\n if (isDisabled(endDate, minDate, maxDate)) {\n // state.endDate is only used by the input if range is set to true.\n // this is done to make maxDate correction work if the input is not a range and only maxDate is defined.\n if (!isRange && !minDate) {\n correctedDates['startDate'] = maxDate\n } else {\n correctedDates['endDate'] = maxDate\n }\n }\n\n return correctedDates\n}\n\nfunction updateMonths({\n newDates,\n currentDates,\n}: {\n newDates: DatePickerDates\n currentDates: DatePickerDates\n}) {\n const startMonth =\n newDates.startMonth ?? newDates.startDate ?? currentDates.startMonth\n const endMonth =\n newDates.endMonth ?? newDates.endDate ?? currentDates.endMonth\n\n return {\n startMonth,\n endMonth,\n }\n}\n\nfunction getDate(date: DateType, dateFormat: string) {\n return date instanceof Date\n ? date\n : convertStringToDate(date ?? '', {\n dateFormat,\n })\n}\n\nfunction getStartDate(\n dateProps: DatePickerDateProps,\n previousDateProps: DatePickerDateProps\n) {\n // prioritize startDate over date if provided\n if (\n typeof dateProps.startDate !== 'undefined' &&\n dateProps.startDate !== previousDateProps.startDate\n ) {\n return dateProps.startDate\n }\n\n if (\n typeof dateProps.date !== 'undefined' &&\n dateProps.date !== previousDateProps.date\n ) {\n return dateProps.date\n }\n\n return undefined\n}\n\nexport function pad(date: string, size: number) {\n const dateWithPadding = '000000000' + date\n\n return dateWithPadding.substring(dateWithPadding.length - size)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -76,11 +76,13 @@ const useLocalValue = () => {
76
76
  } = _react.default.useContext(_InputMaskedContext.default);
77
77
  const maskParams = useNumberMaskParams() || {};
78
78
  const locale = useTranslation();
79
- const [localValue, setLocalValue] = _react.default.useState(() => (0, _InputMaskedUtils.correctNumberValue)({
80
- locale,
81
- props,
82
- maskParams
83
- }));
79
+ const [localValue, setLocalValue] = _react.default.useState(() => {
80
+ return (0, _InputMaskedUtils.correctNumberValue)({
81
+ locale,
82
+ props,
83
+ maskParams
84
+ });
85
+ });
84
86
  _react.default.useEffect(() => {
85
87
  const value = (0, _InputMaskedUtils.correctNumberValue)({
86
88
  localValue,
@@ -226,10 +228,11 @@ const useCallEvent = _ref2 => {
226
228
  let {
227
229
  setLocalValue
228
230
  } = _ref2;
231
+ const maskParamsRef = _react.default.useRef();
232
+ maskParamsRef.current = useMaskParams();
229
233
  const {
230
234
  props
231
235
  } = _react.default.useContext(_InputMaskedContext.default);
232
- const maskParams = useMaskParams();
233
236
  const isNumberMask = useNumberMask();
234
237
  const decimalSeparators = /[,.'·]/;
235
238
  let isUnidentified = false;
@@ -238,6 +241,7 @@ const useCallEvent = _ref2 => {
238
241
  event,
239
242
  value
240
243
  } = _ref3;
244
+ const maskParams = maskParamsRef.current;
241
245
  value = value || event.target.value;
242
246
  const selStart = event.target.selectionStart;
243
247
  let keyCode = (0, _componentHelper.keycode)(event);
@@ -303,7 +307,7 @@ const useCallEvent = _ref2 => {
303
307
  case 'on_key_down':
304
308
  case 'on_mouse_down':
305
309
  case 'on_mouse_up':
306
- event.target.runCorrectCaretPosition = () => (0, _InputMaskedUtils.correctCaretPosition)(event.target, maskParams, props);
310
+ event.target.runCorrectCaretPosition = () => (0, _InputMaskedUtils.correctCaretPosition)(event.target, maskParamsRef, props);
307
311
  if (!event.target.__getCorrectCaretPosition) {
308
312
  event.target.runCorrectCaretPosition();
309
313
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InputMaskedHooks.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_NumberUtils","_componentHelper","_createTextMaskInputElement","_TextMask","_createNumberMask","_InputMaskedContext","_InputMaskedUtils","_excluded","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_extends","assign","bind","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","useLayoutEffect","window","React","useEffect","useFilteredProps","props","useContext","InputMaskedContext","mask","number_mask","currency_mask","number_format","mask_options","as_currency","as_number","as_percent","locale","show_mask","show_guide","pipe","keep_char_positions","placeholder_char","attributes","htmlAttributes","freeze","exports","useTranslation","context","useLocalValue","maskParams","useNumberMaskParams","localValue","setLocalValue","useState","correctNumberValue","useNumberMask","isRequestingNumberMask","createNumberMask","useMask","numberMask","useMaskParams","placeholder","showMask","isTrue","placeholderChar","invisibleSpace","showGuide","keepCharPositions","useInputElement","inner_ref","isFn","refHook","useRef","ref","current","inputElementRef","createElement","useCallback","params","innerRef","inputRef","inputElement","guide","getSoftKeyboardAttributes","className","classnames","useEventMapping","_ref","callEvent","useCallEvent","onBeforeInput","event","onFocus","onBlur","onMouseUp","onMouseDown","onKeyDown","onSubmit","onChange","on_focus","undefined","on_blur","on_key_down","on_submit","on_change","_ref2","isNumberMask","decimalSeparators","isUnidentified","_ref3","name","target","selStart","selectionStart","keyCode","keycode","which","data","key","disallowLeadingZeroes","replace","test","testValue","slice","preventDefault","decimalSymbol","hasDecimalSymbol","includes","allowedDecimals","decimalLimit","allowDecimal","charAtSelection","index","safeSetSelection","thousandsSeparatorSymbol","num","cleanNumber","prefix","suffix","decimalSeparator","thousandsSeparator","numberValue","cleanedValue","charAt","runCorrectCaretPosition","correctCaretPosition","__getCorrectCaretPosition","result","dispatchCustomElementEvent","_currency_mask","fromJSON","currency","isRequestingLocaleSupport","handleThousandsSeparator","handleDecimalSeparator","extendPropsWithContext","_currency_mask2","getCurrencySymbol","currencyDisplay","handleNumberMask","handlePercentMask","handleCurrencyMask"],"sources":["../../../../src/components/input-masked/InputMaskedHooks.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport React, { useCallback } from 'react'\nimport classnames from 'classnames'\nimport {\n cleanNumber,\n getCurrencySymbol,\n} from '../number-format/NumberUtils'\nimport {\n isTrue,\n dispatchCustomElementEvent,\n extendPropsWithContext,\n keycode,\n} from '../../shared/component-helper'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\n\nimport TextMask from './TextMask'\nimport createNumberMask from './addons/createNumberMask'\nimport InputMaskedContext from './InputMaskedContext'\n\nimport {\n isRequestingLocaleSupport,\n isRequestingNumberMask,\n correctNumberValue,\n handlePercentMask,\n handleCurrencyMask,\n handleNumberMask,\n correctCaretPosition,\n getSoftKeyboardAttributes,\n handleThousandsSeparator,\n handleDecimalSeparator,\n fromJSON,\n invisibleSpace,\n} from './InputMaskedUtils'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\n/**\n * Takes all component properties and filters out all internal used properties\n *\n * @returns object {props, htmlAttributes}\n */\nexport const useFilteredProps = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n mask, // eslint-disable-line\n number_mask, // eslint-disable-line\n currency_mask, // eslint-disable-line\n number_format, // eslint-disable-line\n mask_options, // eslint-disable-line\n as_currency, // eslint-disable-line\n as_number, // eslint-disable-line\n as_percent, // eslint-disable-line\n locale, // eslint-disable-line\n show_mask, // eslint-disable-line\n show_guide, // eslint-disable-line\n pipe, // eslint-disable-line\n keep_char_positions, // eslint-disable-line\n placeholder_char, // eslint-disable-line\n\n // Get get rest of possible attributes\n ...attributes\n } = props\n\n return { props, htmlAttributes: Object.freeze(attributes) }\n}\n\n/**\n * Returns locale from either component or context\n *\n * @returns string\n */\nexport const useTranslation = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n\n let { locale } = props\n if (!locale && context?.locale) {\n locale = context.locale\n }\n\n return locale\n}\n\n/**\n * Handle internal value state\n *\n * It handles both the value state given as a prop form outside,\n * along with the current written and internal value.\n *\n * @returns object with internal value state and state setter\n */\nexport const useLocalValue = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n const maskParams = useNumberMaskParams() || {}\n const locale = useTranslation()\n\n const [localValue, setLocalValue] = React.useState(() =>\n correctNumberValue({\n locale,\n props,\n maskParams,\n })\n )\n\n /**\n * Use an effect here, just;\n * because when a property gets changed from outside\n */\n React.useEffect(() => {\n const value = correctNumberValue({\n localValue,\n locale,\n props,\n maskParams,\n })\n\n setLocalValue(value)\n\n // Do not set \"localValue\" and \"maskParams\" here\n }, [props, context, locale]) // eslint-disable-line\n\n return { localValue, setLocalValue }\n}\n\n/**\n * Create createNumberMask if number mask parameters exists\n *\n * @returns mask function\n */\nexport const useNumberMask = () => {\n const maskParams = useNumberMaskParams()\n const { props } = React.useContext(InputMaskedContext)\n\n if (!maskParams || !isRequestingNumberMask(props)) {\n return null\n }\n\n const mask = createNumberMask(maskParams)\n\n mask.maskParams = maskParams\n\n return mask\n}\n\n/**\n * Returns either internal mask or given property mask\n *\n * @returns mask function\n */\nexport const useMask = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const numberMask = useNumberMask()\n if (numberMask) {\n return numberMask\n }\n\n return props.mask\n}\n\n/**\n * Returns the final mask params\n *\n * @returns mask params\n */\nexport const useMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n keep_char_positions,\n show_guide,\n show_mask,\n placeholder_char,\n placeholder,\n } = props\n\n const mask = useMask()\n const maskParams = useNumberMaskParams() || {}\n\n maskParams.showMask = !placeholder && isTrue(show_mask)\n\n // Revalidated placeholder char to a zero width space\n maskParams.placeholderChar = placeholder_char\n if (typeof mask?.placeholderChar !== 'undefined') {\n maskParams.placeholderChar = mask.placeholderChar\n }\n if (maskParams.placeholderChar === null) {\n maskParams.placeholderChar = invisibleSpace\n }\n\n if (typeof mask?.showMask !== 'undefined') {\n maskParams.showMask = mask.showMask\n }\n\n maskParams.showGuide = isTrue(show_guide)\n maskParams.keepCharPositions = isTrue(keep_char_positions)\n\n return maskParams\n}\n\n/**\n * Handle the TextMask dependency\n *\n * @returns React Element\n */\nexport const useInputElement = () => {\n const { props } = React.useContext(InputMaskedContext)\n const { pipe, inner_ref } = props\n\n const mask = useMask()\n const { showMask, showGuide, placeholderChar, keepCharPositions } =\n useMaskParams()\n\n const isFn = typeof inner_ref === 'function'\n const refHook = React.useRef()\n const ref = (!isFn && inner_ref) || refHook\n\n useLayoutEffect(() => {\n if (isFn) {\n inner_ref?.(ref.current)\n }\n }, [inner_ref, isFn, ref])\n\n // Create the actual input element\n const inputElementRef = React.useRef(<input ref={ref} />)\n\n return useCallback(\n (params, innerRef) => {\n // Set ref for Eufemia input\n innerRef.current = ref.current\n\n return (\n <TextMask\n inputRef={ref}\n inputElement={inputElementRef.current}\n pipe={pipe}\n mask={mask || createNumberMask()}\n showMask={showMask}\n guide={showGuide}\n keepCharPositions={keepCharPositions}\n placeholderChar={placeholderChar}\n {...getSoftKeyboardAttributes(mask)}\n {...params}\n className={classnames(\n params.className,\n showMask &&\n showGuide &&\n placeholderChar &&\n placeholderChar !== invisibleSpace &&\n 'dnb-input-masked--guide' // will use --font-family-monospace\n )}\n />\n )\n },\n [\n keepCharPositions,\n mask,\n pipe,\n placeholderChar,\n ref,\n showGuide,\n showMask,\n ]\n )\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns object of events to handle\n */\nexport const useEventMapping = ({ setLocalValue }) => {\n const callEvent = useCallEvent({ setLocalValue })\n\n return {\n onBeforeInput: (event) => callEvent({ event }, 'on_before_input'),\n onFocus: (params) => callEvent(params, 'on_focus'),\n onBlur: (params) => callEvent(params, 'on_blur'),\n onMouseUp: (event) => callEvent({ event }, 'on_mouse_up'),\n onMouseDown: (event) => callEvent({ event }, 'on_mouse_down'),\n onKeyDown: (params) => callEvent(params, 'on_key_down'),\n onSubmit: (params) => callEvent(params, 'on_submit'),\n onChange: (params) => callEvent(params, 'on_change'),\n\n on_focus: undefined,\n on_blur: undefined,\n on_key_down: undefined,\n on_submit: undefined,\n on_change: undefined,\n }\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns event handler function\n */\nconst useCallEvent = ({ setLocalValue }) => {\n const { props } = React.useContext(InputMaskedContext)\n const maskParams = useMaskParams()\n const isNumberMask = useNumberMask()\n\n // Source: https://en.wikipedia.org/wiki/Decimal_separator\n const decimalSeparators = /[,.'·]/\n let isUnidentified = false\n\n const callEvent = ({ event, value }, name) => {\n value = value || event.target.value\n const selStart = event.target.selectionStart\n let keyCode = keycode(event)\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n if (\n name === 'on_key_down' &&\n (event.which === 229 || keyCode === undefined)\n ) {\n isUnidentified = true\n }\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n // so we use this solution instead\n if (\n isUnidentified &&\n name === 'on_before_input' &&\n typeof event?.data !== 'undefined'\n ) {\n name = 'on_key_down'\n keyCode = event.data\n isUnidentified = false\n }\n\n // Add support for \"await userEvent.type(input, '0...')\"\n if (isUnidentified && event.key === '0') {\n keyCode = '0'\n isUnidentified = false\n }\n\n // Prevent entering a leading zero\n if (\n name === 'on_key_down' &&\n !isUnidentified &&\n maskParams?.disallowLeadingZeroes &&\n (keyCode === '0' ||\n keyCode === 'numpad 0' ||\n (value.replace(/[^\\d]/g, '') === '' &&\n decimalSeparators.test(keyCode)))\n ) {\n const testValue = (\n value.slice(0, selStart) +\n '0' +\n value.slice(selStart + 1, value.length)\n ).replace(/[^\\d]/g, '')\n\n if (/^0/.test(testValue)) {\n event.preventDefault()\n }\n }\n\n if (\n name === 'on_key_down' &&\n isNumberMask &&\n !isUnidentified &&\n maskParams?.decimalSymbol\n ) {\n const hasDecimalSymbol = value.includes(maskParams.decimalSymbol)\n const allowedDecimals =\n maskParams.decimalLimit > 0 || maskParams.allowDecimal !== false\n\n if (!allowedDecimals && decimalSeparators.test(keyCode)) {\n event.preventDefault()\n }\n\n const charAtSelection = value.slice(selStart, selStart + 1)\n\n if (allowedDecimals) {\n // if we have already a decimal ...\n if (hasDecimalSymbol && decimalSeparators.test(keyCode)) {\n // ... we set the cursor on after the decimalSeparators\n if (decimalSeparators.test(charAtSelection)) {\n const index = value.indexOf(maskParams.decimalSymbol)\n if (index > -1) {\n safeSetSelection(event.target, index + 1)\n }\n }\n\n // ... we do not allow to type another\n event.preventDefault()\n }\n\n // replace other decimal\n else if (\n !hasDecimalSymbol &&\n keyCode !== maskParams.decimalSymbol &&\n decimalSeparators.test(keyCode)\n ) {\n value = value.slice(0, selStart)\n setLocalValue(value + maskParams.decimalSymbol)\n event.target.value = value + maskParams.decimalSymbol\n event.preventDefault()\n }\n }\n\n // move cursor to right if key is delete and char at selection is thousand separator\n if (\n keyCode === 'delete' &&\n charAtSelection === (maskParams.thousandsSeparatorSymbol || ' ')\n ) {\n safeSetSelection(event.target, selStart + 1)\n event.preventDefault()\n }\n }\n\n let num = cleanNumber(value, {\n prefix: maskParams.prefix,\n suffix: maskParams.suffix,\n decimalSeparator: maskParams.decimalSymbol || ',',\n thousandsSeparator: maskParams.thousandsSeparatorSymbol || ' ',\n })\n\n // We don't want to return NaN, so we set it to 0\n if (num === '-') {\n num = -0\n }\n\n const numberValue = Number(num)\n\n // Return '' (empty string) when the user has entered something invalid\n const cleanedValue =\n numberValue === 0 && String(num).charAt(0) !== '0' ? '' : num\n\n switch (name) {\n case 'on_focus':\n case 'on_key_down':\n case 'on_mouse_down':\n case 'on_mouse_up':\n event.target.runCorrectCaretPosition = () =>\n correctCaretPosition(event.target, maskParams, props)\n if (!event.target.__getCorrectCaretPosition) {\n event.target.runCorrectCaretPosition()\n }\n break\n }\n\n const result = dispatchCustomElementEvent(props, name, {\n event,\n value,\n numberValue,\n cleanedValue,\n })\n\n if (name === 'on_change') {\n setLocalValue(value)\n }\n\n return result\n }\n\n return callEvent\n}\n\n/**\n * Returns number mask parameters if requested by the component properties\n *\n * @returns object of number mask parameter\n */\nconst useNumberMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n const locale = useTranslation()\n\n if (!isRequestingNumberMask(props)) {\n return { ...fromJSON(props.mask_options) }\n }\n\n let { number_mask, currency_mask, mask_options } = props\n const { as_number, as_percent, as_currency, value } = props\n\n mask_options = fromJSON(mask_options)\n number_mask = isTrue(number_mask) ? {} : fromJSON(number_mask)\n currency_mask = isTrue(currency_mask)\n ? {}\n : fromJSON(currency_mask, {\n currency: currency_mask,\n })\n if (!currency_mask?.currency) {\n delete currency_mask.currency\n }\n\n if (isRequestingLocaleSupport(props)) {\n const thousandsSeparatorSymbol = handleThousandsSeparator(locale)\n const decimalSymbol = handleDecimalSeparator(locale)\n\n if (isTrue(as_number) || isTrue(as_percent)) {\n number_mask = extendPropsWithContext(number_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n })\n } else if (as_currency) {\n currency_mask = extendPropsWithContext(currency_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n currency: getCurrencySymbol(\n locale,\n typeof as_currency === 'string' ? as_currency : null,\n currency_mask?.currencyDisplay,\n value\n ),\n })\n }\n }\n\n let maskParams = null\n\n if (number_mask) {\n maskParams = handleNumberMask({\n mask_options,\n number_mask,\n })\n\n if (isTrue(as_percent)) {\n maskParams = handlePercentMask({ props, locale, maskParams })\n }\n } else if (currency_mask) {\n maskParams = handleCurrencyMask({\n mask_options,\n currency_mask,\n })\n }\n\n return maskParams\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"InputMaskedHooks.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_NumberUtils","_componentHelper","_createTextMaskInputElement","_TextMask","_createNumberMask","_InputMaskedContext","_InputMaskedUtils","_excluded","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_extends","assign","bind","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","useLayoutEffect","window","React","useEffect","useFilteredProps","props","useContext","InputMaskedContext","mask","number_mask","currency_mask","number_format","mask_options","as_currency","as_number","as_percent","locale","show_mask","show_guide","pipe","keep_char_positions","placeholder_char","attributes","htmlAttributes","freeze","exports","useTranslation","context","useLocalValue","maskParams","useNumberMaskParams","localValue","setLocalValue","useState","correctNumberValue","useNumberMask","isRequestingNumberMask","createNumberMask","useMask","numberMask","useMaskParams","placeholder","showMask","isTrue","placeholderChar","invisibleSpace","showGuide","keepCharPositions","useInputElement","inner_ref","isFn","refHook","useRef","ref","current","inputElementRef","createElement","useCallback","params","innerRef","inputRef","inputElement","guide","getSoftKeyboardAttributes","className","classnames","useEventMapping","_ref","callEvent","useCallEvent","onBeforeInput","event","onFocus","onBlur","onMouseUp","onMouseDown","onKeyDown","onSubmit","onChange","on_focus","undefined","on_blur","on_key_down","on_submit","on_change","_ref2","maskParamsRef","isNumberMask","decimalSeparators","isUnidentified","_ref3","name","target","selStart","selectionStart","keyCode","keycode","which","data","key","disallowLeadingZeroes","replace","test","testValue","slice","preventDefault","decimalSymbol","hasDecimalSymbol","includes","allowedDecimals","decimalLimit","allowDecimal","charAtSelection","index","safeSetSelection","thousandsSeparatorSymbol","num","cleanNumber","prefix","suffix","decimalSeparator","thousandsSeparator","numberValue","cleanedValue","charAt","runCorrectCaretPosition","correctCaretPosition","__getCorrectCaretPosition","result","dispatchCustomElementEvent","_currency_mask","fromJSON","currency","isRequestingLocaleSupport","handleThousandsSeparator","handleDecimalSeparator","extendPropsWithContext","_currency_mask2","getCurrencySymbol","currencyDisplay","handleNumberMask","handlePercentMask","handleCurrencyMask"],"sources":["../../../../src/components/input-masked/InputMaskedHooks.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport React, { useCallback } from 'react'\nimport classnames from 'classnames'\nimport {\n cleanNumber,\n getCurrencySymbol,\n} from '../number-format/NumberUtils'\nimport {\n isTrue,\n dispatchCustomElementEvent,\n extendPropsWithContext,\n keycode,\n} from '../../shared/component-helper'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\n\nimport TextMask from './TextMask'\nimport createNumberMask from './addons/createNumberMask'\nimport InputMaskedContext from './InputMaskedContext'\n\nimport {\n isRequestingLocaleSupport,\n isRequestingNumberMask,\n correctNumberValue,\n handlePercentMask,\n handleCurrencyMask,\n handleNumberMask,\n correctCaretPosition,\n getSoftKeyboardAttributes,\n handleThousandsSeparator,\n handleDecimalSeparator,\n fromJSON,\n invisibleSpace,\n} from './InputMaskedUtils'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\n/**\n * Takes all component properties and filters out all internal used properties\n *\n * @returns object {props, htmlAttributes}\n */\nexport const useFilteredProps = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n mask, // eslint-disable-line\n number_mask, // eslint-disable-line\n currency_mask, // eslint-disable-line\n number_format, // eslint-disable-line\n mask_options, // eslint-disable-line\n as_currency, // eslint-disable-line\n as_number, // eslint-disable-line\n as_percent, // eslint-disable-line\n locale, // eslint-disable-line\n show_mask, // eslint-disable-line\n show_guide, // eslint-disable-line\n pipe, // eslint-disable-line\n keep_char_positions, // eslint-disable-line\n placeholder_char, // eslint-disable-line\n\n // Get get rest of possible attributes\n ...attributes\n } = props\n\n return { props, htmlAttributes: Object.freeze(attributes) }\n}\n\n/**\n * Returns locale from either component or context\n *\n * @returns string\n */\nexport const useTranslation = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n\n let { locale } = props\n if (!locale && context?.locale) {\n locale = context.locale\n }\n\n return locale\n}\n\n/**\n * Handle internal value state\n *\n * It handles both the value state given as a prop form outside,\n * along with the current written and internal value.\n *\n * @returns object with internal value state and state setter\n */\nexport const useLocalValue = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n const maskParams = useNumberMaskParams() || {}\n const locale = useTranslation()\n\n const [localValue, setLocalValue] = React.useState(() => {\n return correctNumberValue({\n locale,\n props,\n maskParams,\n })\n })\n\n /**\n * Use an effect here, just;\n * because when a property gets changed from outside\n */\n React.useEffect(() => {\n const value = correctNumberValue({\n localValue,\n locale,\n props,\n maskParams,\n })\n\n setLocalValue(value)\n\n // Do not set \"localValue\" and \"maskParams\" here\n }, [props, context, locale]) // eslint-disable-line\n\n return { localValue, setLocalValue }\n}\n\n/**\n * Create createNumberMask if number mask parameters exists\n *\n * @returns mask function\n */\nexport const useNumberMask = () => {\n const maskParams = useNumberMaskParams()\n const { props } = React.useContext(InputMaskedContext)\n\n if (!maskParams || !isRequestingNumberMask(props)) {\n return null\n }\n\n const mask = createNumberMask(maskParams)\n\n mask.maskParams = maskParams\n\n return mask\n}\n\n/**\n * Returns either internal mask or given property mask\n *\n * @returns mask function\n */\nexport const useMask = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const numberMask = useNumberMask()\n if (numberMask) {\n return numberMask\n }\n\n return props.mask\n}\n\n/**\n * Returns the final mask params\n *\n * @returns mask params\n */\nexport const useMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n keep_char_positions,\n show_guide,\n show_mask,\n placeholder_char,\n placeholder,\n } = props\n\n const mask = useMask()\n const maskParams = useNumberMaskParams() || {}\n\n maskParams.showMask = !placeholder && isTrue(show_mask)\n\n // Revalidated placeholder char to a zero width space\n maskParams.placeholderChar = placeholder_char\n if (typeof mask?.placeholderChar !== 'undefined') {\n maskParams.placeholderChar = mask.placeholderChar\n }\n if (maskParams.placeholderChar === null) {\n maskParams.placeholderChar = invisibleSpace\n }\n\n if (typeof mask?.showMask !== 'undefined') {\n maskParams.showMask = mask.showMask\n }\n\n maskParams.showGuide = isTrue(show_guide)\n maskParams.keepCharPositions = isTrue(keep_char_positions)\n\n return maskParams\n}\n\n/**\n * Handle the TextMask dependency\n *\n * @returns React Element\n */\nexport const useInputElement = () => {\n const { props } = React.useContext(InputMaskedContext)\n const { pipe, inner_ref } = props\n\n const mask = useMask()\n const { showMask, showGuide, placeholderChar, keepCharPositions } =\n useMaskParams()\n\n const isFn = typeof inner_ref === 'function'\n const refHook = React.useRef()\n const ref = (!isFn && inner_ref) || refHook\n\n useLayoutEffect(() => {\n if (isFn) {\n inner_ref?.(ref.current)\n }\n }, [inner_ref, isFn, ref])\n\n // Create the actual input element\n const inputElementRef = React.useRef(<input ref={ref} />)\n\n return useCallback(\n (params, innerRef) => {\n // Set ref for Eufemia input\n innerRef.current = ref.current\n\n return (\n <TextMask\n inputRef={ref}\n inputElement={inputElementRef.current}\n pipe={pipe}\n mask={mask || createNumberMask()}\n showMask={showMask}\n guide={showGuide}\n keepCharPositions={keepCharPositions}\n placeholderChar={placeholderChar}\n {...getSoftKeyboardAttributes(mask)}\n {...params}\n className={classnames(\n params.className,\n showMask &&\n showGuide &&\n placeholderChar &&\n placeholderChar !== invisibleSpace &&\n 'dnb-input-masked--guide' // will use --font-family-monospace\n )}\n />\n )\n },\n [\n keepCharPositions,\n mask,\n pipe,\n placeholderChar,\n ref,\n showGuide,\n showMask,\n ]\n )\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns object of events to handle\n */\nexport const useEventMapping = ({ setLocalValue }) => {\n const callEvent = useCallEvent({ setLocalValue })\n\n return {\n onBeforeInput: (event) => callEvent({ event }, 'on_before_input'),\n onFocus: (params) => callEvent(params, 'on_focus'),\n onBlur: (params) => callEvent(params, 'on_blur'),\n onMouseUp: (event) => callEvent({ event }, 'on_mouse_up'),\n onMouseDown: (event) => callEvent({ event }, 'on_mouse_down'),\n onKeyDown: (params) => callEvent(params, 'on_key_down'),\n onSubmit: (params) => callEvent(params, 'on_submit'),\n onChange: (params) => callEvent(params, 'on_change'),\n\n on_focus: undefined,\n on_blur: undefined,\n on_key_down: undefined,\n on_submit: undefined,\n on_change: undefined,\n }\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns event handler function\n */\nconst useCallEvent = ({ setLocalValue }) => {\n const maskParamsRef = React.useRef()\n maskParamsRef.current = useMaskParams()\n\n const { props } = React.useContext(InputMaskedContext)\n const isNumberMask = useNumberMask()\n\n // Source: https://en.wikipedia.org/wiki/Decimal_separator\n const decimalSeparators = /[,.'·]/\n let isUnidentified = false\n\n const callEvent = ({ event, value }, name) => {\n const maskParams = maskParamsRef.current\n value = value || event.target.value\n const selStart = event.target.selectionStart\n let keyCode = keycode(event)\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n if (\n name === 'on_key_down' &&\n (event.which === 229 || keyCode === undefined)\n ) {\n isUnidentified = true\n }\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n // so we use this solution instead\n if (\n isUnidentified &&\n name === 'on_before_input' &&\n typeof event?.data !== 'undefined'\n ) {\n name = 'on_key_down'\n keyCode = event.data\n isUnidentified = false\n }\n\n // Add support for \"await userEvent.type(input, '0...')\"\n if (isUnidentified && event.key === '0') {\n keyCode = '0'\n isUnidentified = false\n }\n\n // Prevent entering a leading zero\n if (\n name === 'on_key_down' &&\n !isUnidentified &&\n maskParams?.disallowLeadingZeroes &&\n (keyCode === '0' ||\n keyCode === 'numpad 0' ||\n (value.replace(/[^\\d]/g, '') === '' &&\n decimalSeparators.test(keyCode)))\n ) {\n const testValue = (\n value.slice(0, selStart) +\n '0' +\n value.slice(selStart + 1, value.length)\n ).replace(/[^\\d]/g, '')\n\n if (/^0/.test(testValue)) {\n event.preventDefault()\n }\n }\n\n if (\n name === 'on_key_down' &&\n isNumberMask &&\n !isUnidentified &&\n maskParams?.decimalSymbol\n ) {\n const hasDecimalSymbol = value.includes(maskParams.decimalSymbol)\n const allowedDecimals =\n maskParams.decimalLimit > 0 || maskParams.allowDecimal !== false\n\n if (!allowedDecimals && decimalSeparators.test(keyCode)) {\n event.preventDefault()\n }\n\n const charAtSelection = value.slice(selStart, selStart + 1)\n\n if (allowedDecimals) {\n // if we have already a decimal ...\n if (hasDecimalSymbol && decimalSeparators.test(keyCode)) {\n // ... we set the cursor on after the decimalSeparators\n if (decimalSeparators.test(charAtSelection)) {\n const index = value.indexOf(maskParams.decimalSymbol)\n if (index > -1) {\n safeSetSelection(event.target, index + 1)\n }\n }\n\n // ... we do not allow to type another\n event.preventDefault()\n }\n\n // replace other decimal\n else if (\n !hasDecimalSymbol &&\n keyCode !== maskParams.decimalSymbol &&\n decimalSeparators.test(keyCode)\n ) {\n value = value.slice(0, selStart)\n setLocalValue(value + maskParams.decimalSymbol)\n event.target.value = value + maskParams.decimalSymbol\n event.preventDefault()\n }\n }\n\n // move cursor to right if key is delete and char at selection is thousand separator\n if (\n keyCode === 'delete' &&\n charAtSelection === (maskParams.thousandsSeparatorSymbol || ' ')\n ) {\n safeSetSelection(event.target, selStart + 1)\n event.preventDefault()\n }\n }\n\n let num = cleanNumber(value, {\n prefix: maskParams.prefix,\n suffix: maskParams.suffix,\n decimalSeparator: maskParams.decimalSymbol || ',',\n thousandsSeparator: maskParams.thousandsSeparatorSymbol || ' ',\n })\n\n // We don't want to return NaN, so we set it to 0\n if (num === '-') {\n num = -0\n }\n\n const numberValue = Number(num)\n\n // Return '' (empty string) when the user has entered something invalid\n const cleanedValue =\n numberValue === 0 && String(num).charAt(0) !== '0' ? '' : num\n\n switch (name) {\n case 'on_focus':\n case 'on_key_down':\n case 'on_mouse_down':\n case 'on_mouse_up':\n event.target.runCorrectCaretPosition = () =>\n correctCaretPosition(event.target, maskParamsRef, props)\n if (!event.target.__getCorrectCaretPosition) {\n event.target.runCorrectCaretPosition()\n }\n break\n }\n\n const result = dispatchCustomElementEvent(props, name, {\n event,\n value,\n numberValue,\n cleanedValue,\n })\n\n if (name === 'on_change') {\n setLocalValue(value)\n }\n\n return result\n }\n\n return callEvent\n}\n\n/**\n * Returns number mask parameters if requested by the component properties\n *\n * @returns object of number mask parameter\n */\nconst useNumberMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n const locale = useTranslation()\n\n if (!isRequestingNumberMask(props)) {\n return { ...fromJSON(props.mask_options) }\n }\n\n let { number_mask, currency_mask, mask_options } = props\n const { as_number, as_percent, as_currency, value } = props\n\n mask_options = fromJSON(mask_options)\n number_mask = isTrue(number_mask) ? {} : fromJSON(number_mask)\n currency_mask = isTrue(currency_mask)\n ? {}\n : fromJSON(currency_mask, {\n currency: currency_mask,\n })\n if (!currency_mask?.currency) {\n delete currency_mask.currency\n }\n\n if (isRequestingLocaleSupport(props)) {\n const thousandsSeparatorSymbol = handleThousandsSeparator(locale)\n const decimalSymbol = handleDecimalSeparator(locale)\n\n if (isTrue(as_number) || isTrue(as_percent)) {\n number_mask = extendPropsWithContext(number_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n })\n } else if (as_currency) {\n currency_mask = extendPropsWithContext(currency_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n currency: getCurrencySymbol(\n locale,\n typeof as_currency === 'string' ? as_currency : null,\n currency_mask?.currencyDisplay,\n value\n ),\n })\n }\n }\n\n let maskParams = null\n\n if (number_mask) {\n maskParams = handleNumberMask({\n mask_options,\n number_mask,\n })\n\n if (isTrue(as_percent)) {\n maskParams = handlePercentMask({ props, locale, maskParams })\n }\n } else if (currency_mask) {\n maskParams = handleCurrencyMask({\n mask_options,\n currency_mask,\n })\n }\n\n return maskParams\n}\n"],"mappings":"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","ignoreList":[]}
@@ -33,7 +33,7 @@ export const invisibleSpace: "​";
33
33
  export function isRequestingLocaleSupport(props: object): boolean;
34
34
  export function isRequestingNumberMask(props: object): boolean;
35
35
  export function correctNumberValue({ localValue, props, locale, maskParams, }: object): string;
36
- export function correctCaretPosition(element: Element, maskParams: any, props: any): void;
36
+ export function correctCaretPosition(element: Element, maskParamsRef: any, props: any): void;
37
37
  export function handlePercentMask({ props, locale, maskParams }: object): any;
38
38
  export function handleCurrencyMask({ mask_options, currency_mask }: object): any;
39
39
  export function handleNumberMask({ mask_options, number_mask }: object): any;
@@ -103,9 +103,10 @@ const correctNumberValue = _ref3 => {
103
103
  return value;
104
104
  };
105
105
  exports.correctNumberValue = correctNumberValue;
106
- const correctCaretPosition = (element, maskParams, props) => {
106
+ const correctCaretPosition = (element, maskParamsRef, props) => {
107
107
  const correction = () => {
108
108
  try {
109
+ const maskParams = maskParamsRef === null || maskParamsRef === void 0 ? void 0 : maskParamsRef.current;
109
110
  const suffix = maskParams === null || maskParams === void 0 ? void 0 : maskParams.suffix;
110
111
  const prefix = maskParams === null || maskParams === void 0 ? void 0 : maskParams.prefix;
111
112
  const start = element.selectionStart;
@@ -1 +1 @@
1
- {"version":3,"file":"InputMaskedUtils.js","names":["_NumberUtils","require","_componentHelper","_helpers","_createTextMaskInputElement","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","enableLocaleSupportWhen","enableNumberMaskWhen","invisibleSpace","exports","isRequestingLocaleSupport","props","entries","some","_ref","k","v","includes","isRequestingNumberMask","_ref2","correctNumberValue","_ref3","localValue","locale","maskParams","undefined","isNaN","parseFloat","decimalPos","indexOf","integerLimit","limit","integers","split","isNegative","decimals","slice","shouldHaveDecimals","allowDecimal","decimalLimit","number_format","options","format","decimalSymbol","replace","localNumberValue","numberValue","valueHasDecimal","endsWithDecimal","endsWith","endsWithZeroAndDecimal","startsWith","test","correctCaretPosition","element","correction","suffix","prefix","start","selectionStart","end","selectionEnd","suffixStart","suffixEnd","pos","placeholderChar","prefixStart","prefixEnd","char","safeSetSelection","mask","chars","l","RegExp","n","_mask$test","warn","window","requestAnimationFrame","handlePercentMask","_ref4","_String","_String$match","percent","match","handleCurrencyMask","_ref5","mask_options","currency_mask","givenParams","paramsWithDefaults","showMask","currency","handleNumberMask","_ref6","number_mask","getSoftKeyboardAttributes","instanceOf","IS_IOS","allowNegative","inputMode","handleThousandsSeparator","getThousandsSeparator","handleDecimalSeparator","getDecimalSeparator","fromJSON","str","fallback","JSON","parse"],"sources":["../../../../src/components/input-masked/InputMaskedUtils.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport {\n format,\n getDecimalSeparator,\n getThousandsSeparator,\n} from '../number-format/NumberUtils'\nimport { warn } from '../../shared/component-helper'\nimport { IS_IOS } from '../../shared/helpers'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\n\nconst enableLocaleSupportWhen = ['as_number', 'as_percent', 'as_currency']\nconst enableNumberMaskWhen = [\n 'as_number',\n 'as_percent',\n 'as_currency',\n 'number_mask',\n 'currency_mask',\n]\n\nexport const invisibleSpace = '\\u200B'\n\n/**\n * Will return true if a prop needs Locale support\n *\n * @param {object} props object with given component props\n * @returns boolean\n */\nexport const isRequestingLocaleSupport = (props) => {\n return Object.entries(props).some(\n ([k, v]) => v && enableLocaleSupportWhen.includes(k)\n )\n}\n\n/**\n * Will return true if a prop will enable the internal NumberMask\n *\n * @param {object} props object with given component props\n * @returns boolean\n */\nexport const isRequestingNumberMask = (props) => {\n return Object.entries(props).some(\n ([k, v]) => v && enableNumberMaskWhen.includes(k)\n )\n}\n\n/**\n * Probably the most complex part of this component\n * It will modify a given value based on certain criteria's\n *\n * @param {object} param0 object with properties\n * @property {string} localValue optional – if given, it will uses its ending to determine of what to return\n * @property {number|string} value component property value\n * @property {object} context Eufemia Context\n * @property {string} locale Eufemia locale (either from component or context)\n * @property {object} maskParams predefined mask parameters\n * @returns string Value\n */\nexport const correctNumberValue = ({\n localValue = null,\n props,\n locale,\n maskParams,\n}) => {\n let value =\n props.value === null\n ? null\n : props.value === undefined\n ? undefined\n : String(props.value)\n\n if (isNaN(parseFloat(value))) {\n return value\n }\n\n const decimalPos = value.indexOf('.')\n\n if (\n maskParams.integerLimit &&\n typeof maskParams.integerLimit === 'number'\n ) {\n const limit = maskParams.integerLimit\n const integers = value.split('.')[0]\n const isNegative = parseFloat(integers) < 0\n if (integers.length - (isNegative ? 1 : 0) > limit) {\n const decimals = decimalPos > 0 ? value.slice(decimalPos) : ''\n value = integers.slice(0, limit + (isNegative ? 1 : 0)) + decimals\n }\n }\n\n const shouldHaveDecimals =\n maskParams.allowDecimal ||\n (maskParams.decimalLimit > 0 && maskParams.allowDecimal !== false)\n\n if (!shouldHaveDecimals) {\n if (decimalPos > -1) {\n value = value.slice(0, decimalPos)\n }\n }\n\n /**\n * This only runs IF \"number_format\" is set – we do not use it else\n */\n if (props.number_format) {\n const options = {\n locale,\n decimals: 0,\n ...props.number_format,\n }\n if (shouldHaveDecimals) {\n options.decimals = maskParams.decimalLimit\n }\n value = format(value, options)\n }\n\n const decimalSymbol = maskParams.decimalSymbol\n value = value.replace('.', decimalSymbol)\n\n if (localValue !== null) {\n const localNumberValue = localValue.replace(/[^\\d,.-]/g, '')\n const numberValue = value.replace(/[^\\d,.-]/g, '')\n const valueHasDecimal = numberValue.includes(decimalSymbol)\n\n if (!valueHasDecimal) {\n const endsWithDecimal = localNumberValue.endsWith(decimalSymbol)\n const endsWithZeroAndDecimal = localNumberValue.endsWith(\n `${decimalSymbol}0`\n )\n\n if (endsWithDecimal) {\n value = `${value}${decimalSymbol}`\n } else if (\n endsWithZeroAndDecimal &&\n !numberValue.endsWith(`${decimalSymbol}0`)\n ) {\n /**\n * When the users has 20,02, then hits \"backspace\",\n * the returned {numberValue} in the onChange event would then be \"20\",\n * but we want it to be 20,0\n */\n value = `${value}${decimalSymbol}0`\n }\n }\n\n /**\n * If the user removes a leading digit and we have left a leading zero.\n *\n * The users enters these steps:\n * Step 1. 1012\n * Step 2. 012 -> user removes 1, now use \"localValue\"\n * Step 3. 2012\n *\n * If a dev listens on_change and sends the number value back in,\n * for this, we also ensure that \"numberValue\" and \"localNumberValue\" is the same.\n */\n if (\n localNumberValue !== '0' &&\n localNumberValue.startsWith('0') &&\n parseFloat(numberValue.replace(decimalSymbol, '.')) ===\n parseFloat(localNumberValue.replace(decimalSymbol, '.'))\n ) {\n value = localValue\n }\n\n /**\n * While typing;\n * If the local value is - or -0 we use it.\n * Also, because of invisible whitespace we remove everything else\n */\n if (/^(-|-0)$/.test(localValue.replace(/[^\\d-0]/g, ''))) {\n value = localValue\n } else if (localNumberValue === '' && numberValue === '0') {\n value = ''\n }\n }\n\n return value\n}\n\n/**\n * This is a helper for setting the cursor position,\n * when it is on a not allowed position\n *\n * @param {Element} element Input Element\n * @param {Object} maskParams Mask parameters, containing eventually suffix or prefix\n */\nexport const correctCaretPosition = (element, maskParams, props) => {\n const correction = () => {\n try {\n const suffix = maskParams?.suffix\n const prefix = maskParams?.prefix\n\n const start = element.selectionStart\n const end = element.selectionEnd\n\n if (start !== end) {\n return // stop here\n }\n\n if (suffix || prefix) {\n const suffixStart = element.value.indexOf(suffix)\n const suffixEnd = suffixStart + suffix?.length\n let pos = undefined\n\n if (start >= suffixStart && start <= suffixEnd) {\n pos = suffixStart\n\n // If there is a placeholder,\n // and the user clicks after the suffix\n // we want the position to be \"before\" the placeholderChar\n if (\n maskParams.placeholderChar !== invisibleSpace &&\n element.value.length - 1 === String(suffix + prefix).length\n ) {\n pos = pos - 1\n }\n } else {\n const prefixStart = element.value.indexOf(prefix)\n const prefixEnd = prefixStart + prefix?.length || 0\n\n if (start >= prefixStart && start <= prefixEnd) {\n pos = prefixEnd\n }\n }\n\n const char = element.value.slice(pos - 1, pos)\n if (char === invisibleSpace) {\n pos = suffixStart - 1\n }\n\n if (!isNaN(parseFloat(pos))) {\n safeSetSelection(element, pos)\n }\n } else if (props?.mask && element.value.length === end) {\n const chars = element.value.split('')\n\n for (let l = chars.length, i = l - 1; i >= 0; i--) {\n const char = chars[i]\n const mask = props.mask[i]\n if (\n char &&\n char !== invisibleSpace &&\n mask instanceof RegExp &&\n mask.test(char)\n ) {\n for (let n = i + 1; n < l; n++) {\n const mask = props.mask[n]\n if (mask?.test?.(char)) {\n safeSetSelection(element, n)\n break\n }\n }\n\n break\n }\n }\n }\n } catch (e) {\n warn(e)\n }\n }\n\n if (typeof window !== 'undefined') {\n window.requestAnimationFrame(correction)\n }\n}\n\n/**\n * Manipulate needed mask for handle: percent\n *\n * @param {object} param0 object with properties\n * @property {object} props Component property\n * @property {string} locale Eufemia locale (either from component or context)\n * @property {object} maskParams predefined mask parameters\n * @returns object maskParams\n */\nexport const handlePercentMask = ({ props, locale, maskParams }) => {\n const value = format(props.value, { locale, percent: true })\n maskParams.suffix = String(value)?.match(/((\\s|)%)$/g, '$1')?.[0] || ' %'\n\n return maskParams\n}\n\n/**\n * Return needed mask for handle: currency\n *\n * @param {object} param0 object with properties\n * @property {object} context Eufemia context\n * @property {object} mask_options Component property for change the mask parameters\n * @property {object} currency_mask Component property for change the currency parameters\n * @returns object maskParams\n */\nexport const handleCurrencyMask = ({ mask_options, currency_mask }) => {\n const givenParams = {\n ...mask_options,\n ...currency_mask,\n }\n const paramsWithDefaults = {\n showMask: true,\n placeholderChar: null,\n allowDecimal: true,\n decimalLimit: 2,\n decimalSymbol: ',',\n ...givenParams,\n }\n\n const suffix =\n typeof currency_mask === 'string'\n ? currency_mask\n : typeof givenParams.currency === 'string'\n ? givenParams.currency\n : 'kr'\n paramsWithDefaults.suffix = ` ${suffix}`\n\n if (\n typeof givenParams?.allowDecimal === 'undefined' &&\n typeof givenParams?.decimalLimit === 'number'\n ) {\n paramsWithDefaults.allowDecimal = givenParams.decimalLimit > 0\n }\n\n return paramsWithDefaults\n}\n\n/**\n * Return needed mask for handle: number\n *\n * @param {object} param0 object with properties\n * @property {object} context Eufemia context\n * @property {object} mask_options Component property for change the mask parameters\n * @property {object} number_mask Component property for change the number parameters\n * @returns object maskParams\n */\nexport const handleNumberMask = ({ mask_options, number_mask }) => {\n const maskParams = {\n decimalSymbol: ',',\n ...mask_options,\n ...number_mask,\n }\n\n if (typeof maskParams.allowDecimal === 'undefined') {\n maskParams.allowDecimal = maskParams.decimalLimit > 0\n }\n\n return maskParams\n}\n\n/**\n * Returns the type of what inputMode or type attribute should be used\n *\n * @param {function} mask mask function\n * @returns undefined|decimal|numeric\n */\nexport function getSoftKeyboardAttributes(mask) {\n if (mask?.instanceOf !== 'createNumberMask') {\n return undefined\n }\n\n const maskParams = mask?.maskParams\n\n // because of the missing minus key, we still have to use text on iOS\n if (IS_IOS && maskParams?.allowNegative !== false) {\n return undefined\n }\n\n return {\n inputMode:\n maskParams.allowDecimal && maskParams.decimalLimit !== 0\n ? 'decimal'\n : 'numeric',\n }\n}\n\n/**\n * Returns the thousands separator character\n *\n * @param {string} locale Component or context locale\n * @returns string\n */\nexport function handleThousandsSeparator(locale) {\n return getThousandsSeparator(locale).replace(' ', ' ') // replace non-breaking space with a regular space\n}\n\n/**\n * Returns the decimal separator character\n *\n * @param {string} locale Component or context locale\n * @returns string\n */\nexport function handleDecimalSeparator(locale) {\n let decimalSymbol = getDecimalSeparator(locale)\n\n return decimalSymbol\n}\n\n/**\n * Will take a JSON and return it parsed\n *\n * @param {string} str\n * @param {*} fallback optional fallback\n * @returns parsed json\n */\nexport function fromJSON(str, fallback = null) {\n if (typeof str === 'string' && str[0] === '{') {\n return JSON.parse(str)\n }\n\n return str || fallback\n}\n"],"mappings":";;;;;;;;;;;;;;;AAKA,IAAAA,YAAA,GAAAC,OAAA;AAKA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,2BAAA,GAAAH,OAAA;AAAyE,SAAAI,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAgB,gBAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAD,CAAA,GAAAG,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAAvB,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAoB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA3B,CAAA,QAAAwB,CAAA,GAAAxB,CAAA,CAAA4B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA;AAEzE,MAAM8B,uBAAuB,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC;AAC1E,MAAMC,oBAAoB,GAAG,CAC3B,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,eAAe,CAChB;AAEM,MAAMC,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,QAAQ;AAQ/B,MAAME,yBAAyB,GAAIC,KAAK,IAAK;EAClD,OAAOlC,MAAM,CAACmC,OAAO,CAACD,KAAK,CAAC,CAACE,IAAI,CAC/BC,IAAA;IAAA,IAAC,CAACC,CAAC,EAAEC,CAAC,CAAC,GAAAF,IAAA;IAAA,OAAKE,CAAC,IAAIV,uBAAuB,CAACW,QAAQ,CAACF,CAAC,CAAC;EAAA,CACtD,CAAC;AACH,CAAC;AAAAN,OAAA,CAAAC,yBAAA,GAAAA,yBAAA;AAQM,MAAMQ,sBAAsB,GAAIP,KAAK,IAAK;EAC/C,OAAOlC,MAAM,CAACmC,OAAO,CAACD,KAAK,CAAC,CAACE,IAAI,CAC/BM,KAAA;IAAA,IAAC,CAACJ,CAAC,EAAEC,CAAC,CAAC,GAAAG,KAAA;IAAA,OAAKH,CAAC,IAAIT,oBAAoB,CAACU,QAAQ,CAACF,CAAC,CAAC;EAAA,CACnD,CAAC;AACH,CAAC;AAAAN,OAAA,CAAAS,sBAAA,GAAAA,sBAAA;AAcM,MAAME,kBAAkB,GAAGC,KAAA,IAK5B;EAAA,IAL6B;IACjCC,UAAU,GAAG,IAAI;IACjBX,KAAK;IACLY,MAAM;IACNC;EACF,CAAC,GAAAH,KAAA;EACC,IAAI1B,KAAK,GACPgB,KAAK,CAAChB,KAAK,KAAK,IAAI,GAChB,IAAI,GACJgB,KAAK,CAAChB,KAAK,KAAK8B,SAAS,GACzBA,SAAS,GACTrB,MAAM,CAACO,KAAK,CAAChB,KAAK,CAAC;EAEzB,IAAI+B,KAAK,CAACC,UAAU,CAAChC,KAAK,CAAC,CAAC,EAAE;IAC5B,OAAOA,KAAK;EACd;EAEA,MAAMiC,UAAU,GAAGjC,KAAK,CAACkC,OAAO,CAAC,GAAG,CAAC;EAErC,IACEL,UAAU,CAACM,YAAY,IACvB,OAAON,UAAU,CAACM,YAAY,KAAK,QAAQ,EAC3C;IACA,MAAMC,KAAK,GAAGP,UAAU,CAACM,YAAY;IACrC,MAAME,QAAQ,GAAGrC,KAAK,CAACsC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpC,MAAMC,UAAU,GAAGP,UAAU,CAACK,QAAQ,CAAC,GAAG,CAAC;IAC3C,IAAIA,QAAQ,CAAC5C,MAAM,IAAI8C,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,KAAK,EAAE;MAClD,MAAMI,QAAQ,GAAGP,UAAU,GAAG,CAAC,GAAGjC,KAAK,CAACyC,KAAK,CAACR,UAAU,CAAC,GAAG,EAAE;MAC9DjC,KAAK,GAAGqC,QAAQ,CAACI,KAAK,CAAC,CAAC,EAAEL,KAAK,IAAIG,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAGC,QAAQ;IACpE;EACF;EAEA,MAAME,kBAAkB,GACtBb,UAAU,CAACc,YAAY,IACtBd,UAAU,CAACe,YAAY,GAAG,CAAC,IAAIf,UAAU,CAACc,YAAY,KAAK,KAAM;EAEpE,IAAI,CAACD,kBAAkB,EAAE;IACvB,IAAIT,UAAU,GAAG,CAAC,CAAC,EAAE;MACnBjC,KAAK,GAAGA,KAAK,CAACyC,KAAK,CAAC,CAAC,EAAER,UAAU,CAAC;IACpC;EACF;EAKA,IAAIjB,KAAK,CAAC6B,aAAa,EAAE;IACvB,MAAMC,OAAO,GAAAvD,aAAA;MACXqC,MAAM;MACNY,QAAQ,EAAE;IAAC,GACRxB,KAAK,CAAC6B,aAAa,CACvB;IACD,IAAIH,kBAAkB,EAAE;MACtBI,OAAO,CAACN,QAAQ,GAAGX,UAAU,CAACe,YAAY;IAC5C;IACA5C,KAAK,GAAG,IAAA+C,mBAAM,EAAC/C,KAAK,EAAE8C,OAAO,CAAC;EAChC;EAEA,MAAME,aAAa,GAAGnB,UAAU,CAACmB,aAAa;EAC9ChD,KAAK,GAAGA,KAAK,CAACiD,OAAO,CAAC,GAAG,EAAED,aAAa,CAAC;EAEzC,IAAIrB,UAAU,KAAK,IAAI,EAAE;IACvB,MAAMuB,gBAAgB,GAAGvB,UAAU,CAACsB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;IAC5D,MAAME,WAAW,GAAGnD,KAAK,CAACiD,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;IAClD,MAAMG,eAAe,GAAGD,WAAW,CAAC7B,QAAQ,CAAC0B,aAAa,CAAC;IAE3D,IAAI,CAACI,eAAe,EAAE;MACpB,MAAMC,eAAe,GAAGH,gBAAgB,CAACI,QAAQ,CAACN,aAAa,CAAC;MAChE,MAAMO,sBAAsB,GAAGL,gBAAgB,CAACI,QAAQ,CACtD,GAAGN,aAAa,GAClB,CAAC;MAED,IAAIK,eAAe,EAAE;QACnBrD,KAAK,GAAG,GAAGA,KAAK,GAAGgD,aAAa,EAAE;MACpC,CAAC,MAAM,IACLO,sBAAsB,IACtB,CAACJ,WAAW,CAACG,QAAQ,CAAC,GAAGN,aAAa,GAAG,CAAC,EAC1C;QAMAhD,KAAK,GAAG,GAAGA,KAAK,GAAGgD,aAAa,GAAG;MACrC;IACF;IAaA,IACEE,gBAAgB,KAAK,GAAG,IACxBA,gBAAgB,CAACM,UAAU,CAAC,GAAG,CAAC,IAChCxB,UAAU,CAACmB,WAAW,CAACF,OAAO,CAACD,aAAa,EAAE,GAAG,CAAC,CAAC,KACjDhB,UAAU,CAACkB,gBAAgB,CAACD,OAAO,CAACD,aAAa,EAAE,GAAG,CAAC,CAAC,EAC1D;MACAhD,KAAK,GAAG2B,UAAU;IACpB;IAOA,IAAI,UAAU,CAAC8B,IAAI,CAAC9B,UAAU,CAACsB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE;MACvDjD,KAAK,GAAG2B,UAAU;IACpB,CAAC,MAAM,IAAIuB,gBAAgB,KAAK,EAAE,IAAIC,WAAW,KAAK,GAAG,EAAE;MACzDnD,KAAK,GAAG,EAAE;IACZ;EACF;EAEA,OAAOA,KAAK;AACd,CAAC;AAAAc,OAAA,CAAAW,kBAAA,GAAAA,kBAAA;AASM,MAAMiC,oBAAoB,GAAGA,CAACC,OAAO,EAAE9B,UAAU,EAAEb,KAAK,KAAK;EAClE,MAAM4C,UAAU,GAAGA,CAAA,KAAM;IACvB,IAAI;MACF,MAAMC,MAAM,GAAGhC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEgC,MAAM;MACjC,MAAMC,MAAM,GAAGjC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEiC,MAAM;MAEjC,MAAMC,KAAK,GAAGJ,OAAO,CAACK,cAAc;MACpC,MAAMC,GAAG,GAAGN,OAAO,CAACO,YAAY;MAEhC,IAAIH,KAAK,KAAKE,GAAG,EAAE;QACjB;MACF;MAEA,IAAIJ,MAAM,IAAIC,MAAM,EAAE;QACpB,MAAMK,WAAW,GAAGR,OAAO,CAAC3D,KAAK,CAACkC,OAAO,CAAC2B,MAAM,CAAC;QACjD,MAAMO,SAAS,GAAGD,WAAW,IAAGN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEpE,MAAM;QAC9C,IAAI4E,GAAG,GAAGvC,SAAS;QAEnB,IAAIiC,KAAK,IAAII,WAAW,IAAIJ,KAAK,IAAIK,SAAS,EAAE;UAC9CC,GAAG,GAAGF,WAAW;UAKjB,IACEtC,UAAU,CAACyC,eAAe,KAAKzD,cAAc,IAC7C8C,OAAO,CAAC3D,KAAK,CAACP,MAAM,GAAG,CAAC,KAAKgB,MAAM,CAACoD,MAAM,GAAGC,MAAM,CAAC,CAACrE,MAAM,EAC3D;YACA4E,GAAG,GAAGA,GAAG,GAAG,CAAC;UACf;QACF,CAAC,MAAM;UACL,MAAME,WAAW,GAAGZ,OAAO,CAAC3D,KAAK,CAACkC,OAAO,CAAC4B,MAAM,CAAC;UACjD,MAAMU,SAAS,GAAGD,WAAW,IAAGT,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAErE,MAAM,KAAI,CAAC;UAEnD,IAAIsE,KAAK,IAAIQ,WAAW,IAAIR,KAAK,IAAIS,SAAS,EAAE;YAC9CH,GAAG,GAAGG,SAAS;UACjB;QACF;QAEA,MAAMC,IAAI,GAAGd,OAAO,CAAC3D,KAAK,CAACyC,KAAK,CAAC4B,GAAG,GAAG,CAAC,EAAEA,GAAG,CAAC;QAC9C,IAAII,IAAI,KAAK5D,cAAc,EAAE;UAC3BwD,GAAG,GAAGF,WAAW,GAAG,CAAC;QACvB;QAEA,IAAI,CAACpC,KAAK,CAACC,UAAU,CAACqC,GAAG,CAAC,CAAC,EAAE;UAC3B,IAAAK,4CAAgB,EAACf,OAAO,EAAEU,GAAG,CAAC;QAChC;MACF,CAAC,MAAM,IAAIrD,KAAK,aAALA,KAAK,eAALA,KAAK,CAAE2D,IAAI,IAAIhB,OAAO,CAAC3D,KAAK,CAACP,MAAM,KAAKwE,GAAG,EAAE;QACtD,MAAMW,KAAK,GAAGjB,OAAO,CAAC3D,KAAK,CAACsC,KAAK,CAAC,EAAE,CAAC;QAErC,KAAK,IAAIuC,CAAC,GAAGD,KAAK,CAACnF,MAAM,EAAEU,CAAC,GAAG0E,CAAC,GAAG,CAAC,EAAE1E,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;UACjD,MAAMsE,IAAI,GAAGG,KAAK,CAACzE,CAAC,CAAC;UACrB,MAAMwE,IAAI,GAAG3D,KAAK,CAAC2D,IAAI,CAACxE,CAAC,CAAC;UAC1B,IACEsE,IAAI,IACJA,IAAI,KAAK5D,cAAc,IACvB8D,IAAI,YAAYG,MAAM,IACtBH,IAAI,CAAClB,IAAI,CAACgB,IAAI,CAAC,EACf;YACA,KAAK,IAAIM,CAAC,GAAG5E,CAAC,GAAG,CAAC,EAAE4E,CAAC,GAAGF,CAAC,EAAEE,CAAC,EAAE,EAAE;cAAA,IAAAC,UAAA;cAC9B,MAAML,IAAI,GAAG3D,KAAK,CAAC2D,IAAI,CAACI,CAAC,CAAC;cAC1B,IAAIJ,IAAI,aAAJA,IAAI,gBAAAK,UAAA,GAAJL,IAAI,CAAElB,IAAI,cAAAuB,UAAA,eAAVA,UAAA,CAAAzE,IAAA,CAAAoE,IAAI,EAASF,IAAI,CAAC,EAAE;gBACtB,IAAAC,4CAAgB,EAACf,OAAO,EAAEoB,CAAC,CAAC;gBAC5B;cACF;YACF;YAEA;UACF;QACF;MACF;IACF,CAAC,CAAC,OAAOpG,CAAC,EAAE;MACV,IAAAsG,qBAAI,EAACtG,CAAC,CAAC;IACT;EACF,CAAC;EAED,IAAI,OAAOuG,MAAM,KAAK,WAAW,EAAE;IACjCA,MAAM,CAACC,qBAAqB,CAACvB,UAAU,CAAC;EAC1C;AACF,CAAC;AAAA9C,OAAA,CAAA4C,oBAAA,GAAAA,oBAAA;AAWM,MAAM0B,iBAAiB,GAAGC,KAAA,IAAmC;EAAA,IAAAC,OAAA,EAAAC,aAAA;EAAA,IAAlC;IAAEvE,KAAK;IAAEY,MAAM;IAAEC;EAAW,CAAC,GAAAwD,KAAA;EAC7D,MAAMrF,KAAK,GAAG,IAAA+C,mBAAM,EAAC/B,KAAK,CAAChB,KAAK,EAAE;IAAE4B,MAAM;IAAE4D,OAAO,EAAE;EAAK,CAAC,CAAC;EAC5D3D,UAAU,CAACgC,MAAM,GAAG,EAAAyB,OAAA,GAAA7E,MAAM,CAACT,KAAK,CAAC,cAAAsF,OAAA,wBAAAC,aAAA,GAAbD,OAAA,CAAeG,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,cAAAF,aAAA,uBAAxCA,aAAA,CAA2C,CAAC,CAAC,KAAI,IAAI;EAEzE,OAAO1D,UAAU;AACnB,CAAC;AAAAf,OAAA,CAAAsE,iBAAA,GAAAA,iBAAA;AAWM,MAAMM,kBAAkB,GAAGC,KAAA,IAAqC;EAAA,IAApC;IAAEC,YAAY;IAAEC;EAAc,CAAC,GAAAF,KAAA;EAChE,MAAMG,WAAW,GAAAvG,aAAA,CAAAA,aAAA,KACZqG,YAAY,GACZC,aAAa,CACjB;EACD,MAAME,kBAAkB,GAAAxG,aAAA;IACtByG,QAAQ,EAAE,IAAI;IACd1B,eAAe,EAAE,IAAI;IACrB3B,YAAY,EAAE,IAAI;IAClBC,YAAY,EAAE,CAAC;IACfI,aAAa,EAAE;EAAG,GACf8C,WAAW,CACf;EAED,MAAMjC,MAAM,GACV,OAAOgC,aAAa,KAAK,QAAQ,GAC7BA,aAAa,GACb,OAAOC,WAAW,CAACG,QAAQ,KAAK,QAAQ,GACxCH,WAAW,CAACG,QAAQ,GACpB,IAAI;EACVF,kBAAkB,CAAClC,MAAM,GAAG,IAAIA,MAAM,EAAE;EAExC,IACE,QAAOiC,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEnD,YAAY,MAAK,WAAW,IAChD,QAAOmD,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAElD,YAAY,MAAK,QAAQ,EAC7C;IACAmD,kBAAkB,CAACpD,YAAY,GAAGmD,WAAW,CAAClD,YAAY,GAAG,CAAC;EAChE;EAEA,OAAOmD,kBAAkB;AAC3B,CAAC;AAAAjF,OAAA,CAAA4E,kBAAA,GAAAA,kBAAA;AAWM,MAAMQ,gBAAgB,GAAGC,KAAA,IAAmC;EAAA,IAAlC;IAAEP,YAAY;IAAEQ;EAAY,CAAC,GAAAD,KAAA;EAC5D,MAAMtE,UAAU,GAAAtC,aAAA,CAAAA,aAAA;IACdyD,aAAa,EAAE;EAAG,GACf4C,YAAY,GACZQ,WAAW,CACf;EAED,IAAI,OAAOvE,UAAU,CAACc,YAAY,KAAK,WAAW,EAAE;IAClDd,UAAU,CAACc,YAAY,GAAGd,UAAU,CAACe,YAAY,GAAG,CAAC;EACvD;EAEA,OAAOf,UAAU;AACnB,CAAC;AAAAf,OAAA,CAAAoF,gBAAA,GAAAA,gBAAA;AAQM,SAASG,yBAAyBA,CAAC1B,IAAI,EAAE;EAC9C,IAAI,CAAAA,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE2B,UAAU,MAAK,kBAAkB,EAAE;IAC3C,OAAOxE,SAAS;EAClB;EAEA,MAAMD,UAAU,GAAG8C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE9C,UAAU;EAGnC,IAAI0E,eAAM,IAAI,CAAA1E,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE2E,aAAa,MAAK,KAAK,EAAE;IACjD,OAAO1E,SAAS;EAClB;EAEA,OAAO;IACL2E,SAAS,EACP5E,UAAU,CAACc,YAAY,IAAId,UAAU,CAACe,YAAY,KAAK,CAAC,GACpD,SAAS,GACT;EACR,CAAC;AACH;AAQO,SAAS8D,wBAAwBA,CAAC9E,MAAM,EAAE;EAC/C,OAAO,IAAA+E,kCAAqB,EAAC/E,MAAM,CAAC,CAACqB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;AACxD;AAQO,SAAS2D,sBAAsBA,CAAChF,MAAM,EAAE;EAC7C,IAAIoB,aAAa,GAAG,IAAA6D,gCAAmB,EAACjF,MAAM,CAAC;EAE/C,OAAOoB,aAAa;AACtB;AASO,SAAS8D,QAAQA,CAACC,GAAG,EAAmB;EAAA,IAAjBC,QAAQ,GAAAxH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAsC,SAAA,GAAAtC,SAAA,MAAG,IAAI;EAC3C,IAAI,OAAOuH,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAC7C,OAAOE,IAAI,CAACC,KAAK,CAACH,GAAG,CAAC;EACxB;EAEA,OAAOA,GAAG,IAAIC,QAAQ;AACxB","ignoreList":[]}
1
+ {"version":3,"file":"InputMaskedUtils.js","names":["_NumberUtils","require","_componentHelper","_helpers","_createTextMaskInputElement","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","enableLocaleSupportWhen","enableNumberMaskWhen","invisibleSpace","exports","isRequestingLocaleSupport","props","entries","some","_ref","k","v","includes","isRequestingNumberMask","_ref2","correctNumberValue","_ref3","localValue","locale","maskParams","undefined","isNaN","parseFloat","decimalPos","indexOf","integerLimit","limit","integers","split","isNegative","decimals","slice","shouldHaveDecimals","allowDecimal","decimalLimit","number_format","options","format","decimalSymbol","replace","localNumberValue","numberValue","valueHasDecimal","endsWithDecimal","endsWith","endsWithZeroAndDecimal","startsWith","test","correctCaretPosition","element","maskParamsRef","correction","current","suffix","prefix","start","selectionStart","end","selectionEnd","suffixStart","suffixEnd","pos","placeholderChar","prefixStart","prefixEnd","char","safeSetSelection","mask","chars","l","RegExp","n","_mask$test","warn","window","requestAnimationFrame","handlePercentMask","_ref4","_String","_String$match","percent","match","handleCurrencyMask","_ref5","mask_options","currency_mask","givenParams","paramsWithDefaults","showMask","currency","handleNumberMask","_ref6","number_mask","getSoftKeyboardAttributes","instanceOf","IS_IOS","allowNegative","inputMode","handleThousandsSeparator","getThousandsSeparator","handleDecimalSeparator","getDecimalSeparator","fromJSON","str","fallback","JSON","parse"],"sources":["../../../../src/components/input-masked/InputMaskedUtils.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport {\n format,\n getDecimalSeparator,\n getThousandsSeparator,\n} from '../number-format/NumberUtils'\nimport { warn } from '../../shared/component-helper'\nimport { IS_IOS } from '../../shared/helpers'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\n\nconst enableLocaleSupportWhen = ['as_number', 'as_percent', 'as_currency']\nconst enableNumberMaskWhen = [\n 'as_number',\n 'as_percent',\n 'as_currency',\n 'number_mask',\n 'currency_mask',\n]\n\nexport const invisibleSpace = '\\u200B'\n\n/**\n * Will return true if a prop needs Locale support\n *\n * @param {object} props object with given component props\n * @returns boolean\n */\nexport const isRequestingLocaleSupport = (props) => {\n return Object.entries(props).some(\n ([k, v]) => v && enableLocaleSupportWhen.includes(k)\n )\n}\n\n/**\n * Will return true if a prop will enable the internal NumberMask\n *\n * @param {object} props object with given component props\n * @returns boolean\n */\nexport const isRequestingNumberMask = (props) => {\n return Object.entries(props).some(\n ([k, v]) => v && enableNumberMaskWhen.includes(k)\n )\n}\n\n/**\n * Probably the most complex part of this component\n * It will modify a given value based on certain criteria's\n *\n * @param {object} param0 object with properties\n * @property {string} localValue optional – if given, it will uses its ending to determine of what to return\n * @property {number|string} value component property value\n * @property {object} context Eufemia Context\n * @property {string} locale Eufemia locale (either from component or context)\n * @property {object} maskParams predefined mask parameters\n * @returns string Value\n */\nexport const correctNumberValue = ({\n localValue = null,\n props,\n locale,\n maskParams,\n}) => {\n let value =\n props.value === null\n ? null\n : props.value === undefined\n ? undefined\n : String(props.value)\n\n if (isNaN(parseFloat(value))) {\n return value\n }\n\n const decimalPos = value.indexOf('.')\n\n if (\n maskParams.integerLimit &&\n typeof maskParams.integerLimit === 'number'\n ) {\n const limit = maskParams.integerLimit\n const integers = value.split('.')[0]\n const isNegative = parseFloat(integers) < 0\n if (integers.length - (isNegative ? 1 : 0) > limit) {\n const decimals = decimalPos > 0 ? value.slice(decimalPos) : ''\n value = integers.slice(0, limit + (isNegative ? 1 : 0)) + decimals\n }\n }\n\n const shouldHaveDecimals =\n maskParams.allowDecimal ||\n (maskParams.decimalLimit > 0 && maskParams.allowDecimal !== false)\n\n if (!shouldHaveDecimals) {\n if (decimalPos > -1) {\n value = value.slice(0, decimalPos)\n }\n }\n\n /**\n * This only runs IF \"number_format\" is set – we do not use it else\n */\n if (props.number_format) {\n const options = {\n locale,\n decimals: 0,\n ...props.number_format,\n }\n if (shouldHaveDecimals) {\n options.decimals = maskParams.decimalLimit\n }\n value = format(value, options)\n }\n\n const decimalSymbol = maskParams.decimalSymbol\n value = value.replace('.', decimalSymbol)\n\n if (localValue !== null) {\n const localNumberValue = localValue.replace(/[^\\d,.-]/g, '')\n const numberValue = value.replace(/[^\\d,.-]/g, '')\n const valueHasDecimal = numberValue.includes(decimalSymbol)\n\n if (!valueHasDecimal) {\n const endsWithDecimal = localNumberValue.endsWith(decimalSymbol)\n const endsWithZeroAndDecimal = localNumberValue.endsWith(\n `${decimalSymbol}0`\n )\n\n if (endsWithDecimal) {\n value = `${value}${decimalSymbol}`\n } else if (\n endsWithZeroAndDecimal &&\n !numberValue.endsWith(`${decimalSymbol}0`)\n ) {\n /**\n * When the users has 20,02, then hits \"backspace\",\n * the returned {numberValue} in the onChange event would then be \"20\",\n * but we want it to be 20,0\n */\n value = `${value}${decimalSymbol}0`\n }\n }\n\n /**\n * If the user removes a leading digit and we have left a leading zero.\n *\n * The users enters these steps:\n * Step 1. 1012\n * Step 2. 012 -> user removes 1, now use \"localValue\"\n * Step 3. 2012\n *\n * If a dev listens on_change and sends the number value back in,\n * for this, we also ensure that \"numberValue\" and \"localNumberValue\" is the same.\n */\n if (\n localNumberValue !== '0' &&\n localNumberValue.startsWith('0') &&\n parseFloat(numberValue.replace(decimalSymbol, '.')) ===\n parseFloat(localNumberValue.replace(decimalSymbol, '.'))\n ) {\n value = localValue\n }\n\n /**\n * While typing;\n * If the local value is - or -0 we use it.\n * Also, because of invisible whitespace we remove everything else\n */\n if (/^(-|-0)$/.test(localValue.replace(/[^\\d-0]/g, ''))) {\n value = localValue\n } else if (localNumberValue === '' && numberValue === '0') {\n value = ''\n }\n }\n\n return value\n}\n\n/**\n * This is a helper for setting the cursor position,\n * when it is on a not allowed position\n *\n * @param {Element} element Input Element\n * @param {Object} maskParams Mask parameters, containing eventually suffix or prefix\n */\nexport const correctCaretPosition = (element, maskParamsRef, props) => {\n const correction = () => {\n try {\n const maskParams = maskParamsRef?.current\n\n const suffix = maskParams?.suffix\n const prefix = maskParams?.prefix\n\n const start = element.selectionStart\n const end = element.selectionEnd\n\n if (start !== end) {\n return // stop here\n }\n\n if (suffix || prefix) {\n const suffixStart = element.value.indexOf(suffix)\n const suffixEnd = suffixStart + suffix?.length\n let pos = undefined\n\n if (start >= suffixStart && start <= suffixEnd) {\n pos = suffixStart\n\n // If there is a placeholder,\n // and the user clicks after the suffix\n // we want the position to be \"before\" the placeholderChar\n if (\n maskParams.placeholderChar !== invisibleSpace &&\n element.value.length - 1 === String(suffix + prefix).length\n ) {\n pos = pos - 1\n }\n } else {\n const prefixStart = element.value.indexOf(prefix)\n const prefixEnd = prefixStart + prefix?.length || 0\n\n if (start >= prefixStart && start <= prefixEnd) {\n pos = prefixEnd\n }\n }\n\n const char = element.value.slice(pos - 1, pos)\n if (char === invisibleSpace) {\n pos = suffixStart - 1\n }\n\n if (!isNaN(parseFloat(pos))) {\n safeSetSelection(element, pos)\n }\n } else if (props?.mask && element.value.length === end) {\n const chars = element.value.split('')\n\n for (let l = chars.length, i = l - 1; i >= 0; i--) {\n const char = chars[i]\n const mask = props.mask[i]\n if (\n char &&\n char !== invisibleSpace &&\n mask instanceof RegExp &&\n mask.test(char)\n ) {\n for (let n = i + 1; n < l; n++) {\n const mask = props.mask[n]\n if (mask?.test?.(char)) {\n safeSetSelection(element, n)\n break\n }\n }\n\n break\n }\n }\n }\n } catch (e) {\n warn(e)\n }\n }\n\n if (typeof window !== 'undefined') {\n window.requestAnimationFrame(correction)\n }\n}\n\n/**\n * Manipulate needed mask for handle: percent\n *\n * @param {object} param0 object with properties\n * @property {object} props Component property\n * @property {string} locale Eufemia locale (either from component or context)\n * @property {object} maskParams predefined mask parameters\n * @returns object maskParams\n */\nexport const handlePercentMask = ({ props, locale, maskParams }) => {\n const value = format(props.value, { locale, percent: true })\n maskParams.suffix = String(value)?.match(/((\\s|)%)$/g, '$1')?.[0] || ' %'\n\n return maskParams\n}\n\n/**\n * Return needed mask for handle: currency\n *\n * @param {object} param0 object with properties\n * @property {object} context Eufemia context\n * @property {object} mask_options Component property for change the mask parameters\n * @property {object} currency_mask Component property for change the currency parameters\n * @returns object maskParams\n */\nexport const handleCurrencyMask = ({ mask_options, currency_mask }) => {\n const givenParams = {\n ...mask_options,\n ...currency_mask,\n }\n const paramsWithDefaults = {\n showMask: true,\n placeholderChar: null,\n allowDecimal: true,\n decimalLimit: 2,\n decimalSymbol: ',',\n ...givenParams,\n }\n\n const suffix =\n typeof currency_mask === 'string'\n ? currency_mask\n : typeof givenParams.currency === 'string'\n ? givenParams.currency\n : 'kr'\n paramsWithDefaults.suffix = ` ${suffix}`\n\n if (\n typeof givenParams?.allowDecimal === 'undefined' &&\n typeof givenParams?.decimalLimit === 'number'\n ) {\n paramsWithDefaults.allowDecimal = givenParams.decimalLimit > 0\n }\n\n return paramsWithDefaults\n}\n\n/**\n * Return needed mask for handle: number\n *\n * @param {object} param0 object with properties\n * @property {object} context Eufemia context\n * @property {object} mask_options Component property for change the mask parameters\n * @property {object} number_mask Component property for change the number parameters\n * @returns object maskParams\n */\nexport const handleNumberMask = ({ mask_options, number_mask }) => {\n const maskParams = {\n decimalSymbol: ',',\n ...mask_options,\n ...number_mask,\n }\n\n if (typeof maskParams.allowDecimal === 'undefined') {\n maskParams.allowDecimal = maskParams.decimalLimit > 0\n }\n\n return maskParams\n}\n\n/**\n * Returns the type of what inputMode or type attribute should be used\n *\n * @param {function} mask mask function\n * @returns undefined|decimal|numeric\n */\nexport function getSoftKeyboardAttributes(mask) {\n if (mask?.instanceOf !== 'createNumberMask') {\n return undefined\n }\n\n const maskParams = mask?.maskParams\n\n // because of the missing minus key, we still have to use text on iOS\n if (IS_IOS && maskParams?.allowNegative !== false) {\n return undefined\n }\n\n return {\n inputMode:\n maskParams.allowDecimal && maskParams.decimalLimit !== 0\n ? 'decimal'\n : 'numeric',\n }\n}\n\n/**\n * Returns the thousands separator character\n *\n * @param {string} locale Component or context locale\n * @returns string\n */\nexport function handleThousandsSeparator(locale) {\n return getThousandsSeparator(locale).replace(' ', ' ') // replace non-breaking space with a regular space\n}\n\n/**\n * Returns the decimal separator character\n *\n * @param {string} locale Component or context locale\n * @returns string\n */\nexport function handleDecimalSeparator(locale) {\n let decimalSymbol = getDecimalSeparator(locale)\n\n return decimalSymbol\n}\n\n/**\n * Will take a JSON and return it parsed\n *\n * @param {string} str\n * @param {*} fallback optional fallback\n * @returns parsed json\n */\nexport function fromJSON(str, fallback = null) {\n if (typeof str === 'string' && str[0] === '{') {\n return JSON.parse(str)\n }\n\n return str || fallback\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,5 @@
1
1
  import { PropertiesTableProps } from '../../shared/types';
2
2
  export declare const ModalProperties: PropertiesTableProps;
3
+ export declare const ModalPropertiesWithSnakeCase: PropertiesTableProps;
3
4
  export declare const ModalEvents: PropertiesTableProps;
5
+ export declare const ModalEventsWithSnakeCase: PropertiesTableProps;
@@ -3,7 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.ModalProperties = exports.ModalEvents = void 0;
6
+ exports.ModalPropertiesWithSnakeCase = exports.ModalProperties = exports.ModalEventsWithSnakeCase = exports.ModalEvents = void 0;
7
+ require("core-js/modules/web.dom-collections.iterator.js");
8
+ var _componentHelper = require("../../shared/component-helper");
9
+ const transformPropertyNamesWithSnakeCase = properties => {
10
+ return Object.fromEntries(Object.entries(properties).map(_ref => {
11
+ let [key, value] = _ref;
12
+ return [key !== key.toLowerCase() ? `${key} / ${(0, _componentHelper.toSnakeCase)(key)}` : key, value];
13
+ }));
14
+ };
7
15
  const ModalProperties = exports.ModalProperties = {
8
16
  id: {
9
17
  doc: 'The id used internal for the trigger button and Modal component.',
@@ -171,6 +179,7 @@ const ModalProperties = exports.ModalProperties = {
171
179
  status: 'optional'
172
180
  }
173
181
  };
182
+ const ModalPropertiesWithSnakeCase = exports.ModalPropertiesWithSnakeCase = transformPropertyNamesWithSnakeCase(ModalProperties);
174
183
  const ModalEvents = exports.ModalEvents = {
175
184
  onOpen: {
176
185
  doc: 'This event gets triggered once the modal shows up. Returns the modal id: `{ id }`.',
@@ -188,4 +197,5 @@ const ModalEvents = exports.ModalEvents = {
188
197
  status: 'optional'
189
198
  }
190
199
  };
200
+ const ModalEventsWithSnakeCase = exports.ModalEventsWithSnakeCase = transformPropertyNamesWithSnakeCase(ModalEvents);
191
201
  //# sourceMappingURL=ModalDocs.js.map