@dnb/eufemia 10.73.2 → 10.75.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 (1269) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/cjs/components/autocomplete/Autocomplete.js +7 -4
  3. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  4. package/cjs/components/autocomplete/AutocompleteDocs.d.ts +289 -3
  5. package/cjs/components/autocomplete/AutocompleteDocs.js +2 -2
  6. package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
  7. package/cjs/components/button/style/dnb-button.css +1 -0
  8. package/cjs/components/button/style/dnb-button.min.css +1 -1
  9. package/cjs/components/button/style/dnb-button.scss +1 -0
  10. package/cjs/components/checkbox/Checkbox.d.ts +9 -1
  11. package/cjs/components/checkbox/Checkbox.js +59 -34
  12. package/cjs/components/checkbox/Checkbox.js.map +1 -1
  13. package/cjs/components/checkbox/CheckboxDocs.js +6 -1
  14. package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
  15. package/cjs/components/country-flag/CountryFlag.js +6 -3
  16. package/cjs/components/country-flag/CountryFlag.js.map +1 -1
  17. package/cjs/components/date-picker/DatePicker.d.ts +20 -7
  18. package/cjs/components/date-picker/DatePicker.js +11 -22
  19. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  20. package/cjs/components/date-picker/DatePickerCalendar.d.ts +3 -19
  21. package/cjs/components/date-picker/DatePickerCalendar.js +45 -89
  22. package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
  23. package/cjs/components/date-picker/DatePickerCalendarNavigator.d.ts +34 -0
  24. package/cjs/components/date-picker/DatePickerCalendarNavigator.js +164 -0
  25. package/cjs/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
  26. package/cjs/components/date-picker/DatePickerContext.d.ts +4 -0
  27. package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
  28. package/cjs/components/date-picker/DatePickerDocs.js +6 -6
  29. package/cjs/components/date-picker/DatePickerDocs.js.map +1 -1
  30. package/cjs/components/date-picker/DatePickerFooter.js +22 -19
  31. package/cjs/components/date-picker/DatePickerFooter.js.map +1 -1
  32. package/cjs/components/date-picker/DatePickerInput.d.ts +3 -2
  33. package/cjs/components/date-picker/DatePickerInput.js +9 -8
  34. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  35. package/cjs/components/date-picker/DatePickerProvider.d.ts +1 -1
  36. package/cjs/components/date-picker/DatePickerProvider.js +23 -15
  37. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  38. package/cjs/components/date-picker/DatePickerRange.d.ts +3 -7
  39. package/cjs/components/date-picker/DatePickerRange.js +11 -35
  40. package/cjs/components/date-picker/DatePickerRange.js.map +1 -1
  41. package/cjs/components/date-picker/hooks/useDates.js.map +1 -1
  42. package/cjs/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
  43. package/cjs/components/date-picker/hooks/useSubmittedDates.js +19 -0
  44. package/cjs/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
  45. package/cjs/components/date-picker/style/dnb-date-picker.css +1 -1
  46. package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
  47. package/cjs/components/date-picker/style/dnb-date-picker.scss +1 -1
  48. package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +21 -0
  49. package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
  50. package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +24 -0
  51. package/cjs/components/drawer/Drawer.js +1 -0
  52. package/cjs/components/drawer/Drawer.js.map +1 -1
  53. package/cjs/components/dropdown/Dropdown.js +6 -4
  54. package/cjs/components/dropdown/Dropdown.js.map +1 -1
  55. package/cjs/components/dropdown/DropdownDocs.d.ts +179 -3
  56. package/cjs/components/dropdown/DropdownDocs.js.map +1 -1
  57. package/cjs/components/heading/HeadingHelpers.js +9 -5
  58. package/cjs/components/heading/HeadingHelpers.js.map +1 -1
  59. package/cjs/components/icon/Icon.d.ts +2 -2
  60. package/cjs/components/input-masked/InputMaskedDocs.js +1 -1
  61. package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
  62. package/cjs/components/input-masked/InputMaskedHooks.d.ts +1 -0
  63. package/cjs/components/input-masked/InputMaskedHooks.js +38 -6
  64. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  65. package/cjs/components/input-masked/InputMaskedUtils.js +5 -4
  66. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  67. package/cjs/components/number-format/NumberUtils.d.ts +1 -1
  68. package/cjs/components/number-format/NumberUtils.js +6 -4
  69. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  70. package/cjs/components/switch/SwitchDocs.js +2 -2
  71. package/cjs/components/switch/SwitchDocs.js.map +1 -1
  72. package/cjs/extensions/forms/DataContext/Context.d.ts +1 -1
  73. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  74. package/cjs/extensions/forms/DataContext/Provider/Provider.js +9 -0
  75. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  76. package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +3 -9
  77. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  78. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
  79. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js +8 -1
  80. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  81. package/cjs/extensions/forms/Field/Date/Date.d.ts +1 -1
  82. package/cjs/extensions/forms/Field/Date/Date.js +1 -1
  83. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  84. package/cjs/extensions/forms/Field/Date/DateDocs.js +2 -1
  85. package/cjs/extensions/forms/Field/Date/DateDocs.js.map +1 -1
  86. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  87. package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.d.ts +1 -1
  88. package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -1
  89. package/cjs/extensions/forms/Field/Indeterminate/IndeterminateDocs.js +1 -1
  90. package/cjs/extensions/forms/Field/Indeterminate/IndeterminateDocs.js.map +1 -1
  91. package/cjs/extensions/forms/Field/Number/NumberDocs.js +1 -1
  92. package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  93. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +8 -4
  94. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  95. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +5 -5
  96. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +3 -2
  97. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +20 -13
  98. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  99. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +2 -2
  100. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  101. package/cjs/extensions/forms/Field/SelectCountry/useCountries.d.ts +2016 -0
  102. package/cjs/extensions/forms/Field/SelectCountry/useCountries.js +72 -0
  103. package/cjs/extensions/forms/Field/SelectCountry/useCountries.js.map +1 -0
  104. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +2 -2
  105. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
  106. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +2 -0
  107. package/cjs/extensions/forms/Field/Selection/Selection.js +10 -9
  108. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  109. package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
  110. package/cjs/extensions/forms/Field/Toggle/Toggle.js +24 -8
  111. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  112. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
  113. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js +8 -1
  114. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  115. package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
  116. package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.js +64 -0
  117. package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
  118. package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
  119. package/cjs/extensions/forms/Form/Isolation/Isolation.js +39 -14
  120. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  121. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
  122. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
  123. package/cjs/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
  124. package/cjs/extensions/forms/Form/Isolation/IsolationContext.js +11 -0
  125. package/cjs/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
  126. package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
  127. package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.js +31 -0
  128. package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
  129. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
  130. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  131. package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
  132. package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.js +112 -0
  133. package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
  134. package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
  135. package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.js +58 -0
  136. package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
  137. package/cjs/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
  138. package/cjs/extensions/forms/Form/Isolation/useHandleStatus.js +57 -0
  139. package/cjs/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
  140. package/cjs/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +11 -9
  141. package/cjs/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
  142. package/cjs/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
  143. package/cjs/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
  144. package/cjs/extensions/forms/Iterate/Array/Array.js +19 -6
  145. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  146. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js +10 -0
  147. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  148. package/cjs/extensions/forms/Iterate/Array/types.d.ts +4 -1
  149. package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
  150. package/cjs/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
  151. package/cjs/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
  152. package/cjs/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
  153. package/cjs/extensions/forms/Iterate/EditContainer/index.js +1 -1
  154. package/cjs/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
  155. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +9 -2
  156. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  157. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
  158. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +24 -58
  159. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  160. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
  161. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  162. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +4 -2
  163. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  164. package/cjs/extensions/forms/Value/SelectCountry/useCountry.js +6 -1
  165. package/cjs/extensions/forms/Value/SelectCountry/useCountry.js.map +1 -1
  166. package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  167. package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -1
  168. package/cjs/extensions/forms/constants/locales/countries/sv-SE.d.ts +257 -0
  169. package/cjs/extensions/forms/constants/locales/countries/sv-SE.js +263 -0
  170. package/cjs/extensions/forms/constants/locales/countries/sv-SE.js.map +1 -0
  171. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +5 -1
  172. package/cjs/extensions/forms/constants/locales/en-GB.js +7 -3
  173. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  174. package/cjs/extensions/forms/constants/locales/en-US.d.ts +5 -1
  175. package/cjs/extensions/forms/constants/locales/index.d.ts +10 -2
  176. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +5 -1
  177. package/cjs/extensions/forms/constants/locales/nb-NO.js +7 -3
  178. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  179. package/cjs/extensions/forms/constants/locales/sv-SE.d.ts +5 -1
  180. package/cjs/extensions/forms/constants/locales/sv-SE.js +7 -3
  181. package/cjs/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  182. package/cjs/extensions/forms/hooks/useDataContext.js +5 -3
  183. package/cjs/extensions/forms/hooks/useDataContext.js.map +1 -1
  184. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +2 -1
  185. package/cjs/extensions/forms/hooks/useFieldProps.js +19 -6
  186. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  187. package/cjs/extensions/forms/hooks/usePath.d.ts +4 -1
  188. package/cjs/extensions/forms/hooks/usePath.js +10 -3
  189. package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
  190. package/cjs/extensions/forms/hooks/useSnapshot.js +17 -14
  191. package/cjs/extensions/forms/hooks/useSnapshot.js.map +1 -1
  192. package/cjs/extensions/forms/hooks/useTranslation.d.ts +2 -2
  193. package/cjs/extensions/forms/hooks/useTranslation.js.map +1 -1
  194. package/cjs/extensions/forms/utils/ajv.js +11 -3
  195. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  196. package/cjs/extensions/payment-card/PaymentCard.d.ts +9 -3
  197. package/cjs/extensions/payment-card/PaymentCard.js +12 -143
  198. package/cjs/extensions/payment-card/PaymentCard.js.map +1 -1
  199. package/cjs/extensions/payment-card/PaymentCardDocs.js +13 -13
  200. package/cjs/extensions/payment-card/PaymentCardDocs.js.map +1 -1
  201. package/cjs/extensions/payment-card/components/CardFigure.d.ts +12 -0
  202. package/cjs/extensions/payment-card/components/CardFigure.js +105 -0
  203. package/cjs/extensions/payment-card/components/CardFigure.js.map +1 -0
  204. package/cjs/extensions/payment-card/components/CardNumber.d.ts +27 -0
  205. package/cjs/extensions/payment-card/components/CardNumber.js +37 -0
  206. package/cjs/extensions/payment-card/components/CardNumber.js.map +1 -0
  207. package/cjs/extensions/payment-card/components/CardType.d.ts +7 -0
  208. package/cjs/extensions/payment-card/components/CardType.js +25 -0
  209. package/cjs/extensions/payment-card/components/CardType.js.map +1 -0
  210. package/cjs/extensions/payment-card/components/StatusOverlay.d.ts +20 -0
  211. package/cjs/extensions/payment-card/components/StatusOverlay.js +68 -0
  212. package/cjs/extensions/payment-card/components/StatusOverlay.js.map +1 -0
  213. package/cjs/extensions/payment-card/icons/brandLogos/DNB.js +24 -0
  214. package/cjs/extensions/payment-card/icons/brandLogos/DNB.js.map +1 -0
  215. package/cjs/extensions/payment-card/icons/brandLogos/Sbanken.js +31 -0
  216. package/cjs/extensions/payment-card/icons/brandLogos/Sbanken.js.map +1 -0
  217. package/cjs/extensions/payment-card/icons/index.d.ts +3 -5
  218. package/cjs/extensions/payment-card/icons/index.js +40 -58
  219. package/cjs/extensions/payment-card/icons/index.js.map +1 -1
  220. package/cjs/extensions/payment-card/icons/loyaltyLogos/Bedrift.js +40 -0
  221. package/cjs/extensions/payment-card/icons/loyaltyLogos/Bedrift.js.map +1 -0
  222. package/cjs/extensions/payment-card/icons/loyaltyLogos/Business.js +43 -0
  223. package/cjs/extensions/payment-card/icons/loyaltyLogos/Business.js.map +1 -0
  224. package/cjs/extensions/payment-card/icons/loyaltyLogos/Corporate.d.ts +3 -0
  225. package/cjs/extensions/payment-card/icons/loyaltyLogos/Corporate.js +52 -0
  226. package/cjs/extensions/payment-card/icons/loyaltyLogos/Corporate.js.map +1 -0
  227. package/cjs/extensions/payment-card/icons/loyaltyLogos/Intro.js +22 -0
  228. package/cjs/extensions/payment-card/icons/loyaltyLogos/Intro.js.map +1 -0
  229. package/cjs/extensions/payment-card/icons/loyaltyLogos/PB.js +61 -0
  230. package/cjs/extensions/payment-card/icons/loyaltyLogos/PB.js.map +1 -0
  231. package/cjs/extensions/payment-card/icons/loyaltyLogos/Pluss.js +29 -0
  232. package/cjs/extensions/payment-card/icons/loyaltyLogos/Pluss.js.map +1 -0
  233. package/cjs/extensions/payment-card/icons/loyaltyLogos/SagaGold.js +22 -0
  234. package/cjs/extensions/payment-card/icons/loyaltyLogos/SagaGold.js.map +1 -0
  235. package/cjs/extensions/payment-card/icons/loyaltyLogos/SagaPlatinum.js +43 -0
  236. package/cjs/extensions/payment-card/icons/loyaltyLogos/SagaPlatinum.js.map +1 -0
  237. package/cjs/extensions/payment-card/icons/loyaltyLogos/WorldElite.d.ts +3 -0
  238. package/cjs/extensions/payment-card/icons/loyaltyLogos/WorldElite.js +22 -0
  239. package/cjs/extensions/payment-card/icons/loyaltyLogos/WorldElite.js.map +1 -0
  240. package/cjs/extensions/payment-card/icons/providers/BankAxept.js +24 -0
  241. package/cjs/extensions/payment-card/icons/providers/BankAxept.js.map +1 -0
  242. package/cjs/extensions/payment-card/icons/providers/ClickToPay.d.ts +3 -0
  243. package/cjs/extensions/payment-card/icons/providers/ClickToPay.js +24 -0
  244. package/cjs/extensions/payment-card/icons/providers/ClickToPay.js.map +1 -0
  245. package/cjs/extensions/payment-card/icons/providers/MastercardDark.js +814 -0
  246. package/cjs/extensions/payment-card/icons/providers/MastercardDark.js.map +1 -0
  247. package/cjs/extensions/payment-card/icons/providers/MastercardDefault.js +37 -0
  248. package/cjs/extensions/payment-card/icons/providers/MastercardDefault.js.map +1 -0
  249. package/cjs/extensions/payment-card/icons/providers/VisaDefault.js +28 -0
  250. package/cjs/extensions/payment-card/icons/providers/VisaDefault.js.map +1 -0
  251. package/cjs/extensions/payment-card/icons/providers/VisaPlatinum.js +28 -0
  252. package/cjs/extensions/payment-card/icons/providers/VisaPlatinum.js.map +1 -0
  253. package/cjs/extensions/payment-card/icons/status/index.d.ts +3 -0
  254. package/cjs/extensions/payment-card/icons/status/index.js +61 -0
  255. package/cjs/extensions/payment-card/icons/status/index.js.map +1 -0
  256. package/cjs/extensions/payment-card/index.d.ts +2 -0
  257. package/cjs/extensions/payment-card/index.js +10 -1
  258. package/cjs/extensions/payment-card/index.js.map +1 -1
  259. package/cjs/extensions/payment-card/style/dnb-payment-card.css +173 -163
  260. package/cjs/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  261. package/cjs/extensions/payment-card/style/dnb-payment-card.scss +257 -242
  262. package/cjs/extensions/payment-card/utils/CardDesigns.d.ts +22 -10
  263. package/cjs/extensions/payment-card/utils/CardDesigns.js +44 -36
  264. package/cjs/extensions/payment-card/utils/CardDesigns.js.map +1 -1
  265. package/cjs/extensions/payment-card/utils/Types.js +2 -0
  266. package/cjs/extensions/payment-card/utils/Types.js.map +1 -1
  267. package/cjs/extensions/payment-card/utils/backgrounds/index.d.ts +6 -2
  268. package/cjs/extensions/payment-card/utils/backgrounds/index.js +31 -3
  269. package/cjs/extensions/payment-card/utils/backgrounds/index.js.map +1 -1
  270. package/cjs/extensions/payment-card/utils/backgrounds/master-gold.d.ts +2 -0
  271. package/cjs/extensions/payment-card/utils/backgrounds/master-gold.js +9 -0
  272. package/cjs/extensions/payment-card/utils/backgrounds/master-gold.js.map +1 -0
  273. package/cjs/extensions/payment-card/utils/backgrounds/my-first.d.ts +1 -1
  274. package/cjs/extensions/payment-card/utils/backgrounds/my-first.js +1 -1
  275. package/cjs/extensions/payment-card/utils/backgrounds/my-first.js.map +1 -1
  276. package/cjs/extensions/payment-card/utils/backgrounds/visa-default.d.ts +2 -0
  277. package/cjs/extensions/payment-card/utils/backgrounds/visa-default.js +9 -0
  278. package/cjs/extensions/payment-card/utils/backgrounds/visa-default.js.map +1 -0
  279. package/cjs/extensions/payment-card/utils/backgrounds/visa-pluss.d.ts +2 -0
  280. package/cjs/extensions/payment-card/utils/backgrounds/visa-pluss.js +9 -0
  281. package/cjs/extensions/payment-card/utils/backgrounds/visa-pluss.js.map +1 -0
  282. package/cjs/extensions/payment-card/utils/backgrounds/visa-saga-gold.d.ts +2 -0
  283. package/cjs/extensions/payment-card/utils/backgrounds/visa-saga-gold.js +9 -0
  284. package/cjs/extensions/payment-card/utils/backgrounds/visa-saga-gold.js.map +1 -0
  285. package/cjs/extensions/payment-card/utils/backgrounds/visa-saga-platinum.d.ts +2 -0
  286. package/cjs/extensions/payment-card/utils/backgrounds/visa-saga-platinum.js +9 -0
  287. package/cjs/extensions/payment-card/utils/backgrounds/visa-saga-platinum.js.map +1 -0
  288. package/cjs/extensions/payment-card/utils/backgrounds/youth.d.ts +1 -1
  289. package/cjs/extensions/payment-card/utils/backgrounds/youth.js +1 -1
  290. package/cjs/extensions/payment-card/utils/backgrounds/youth.js.map +1 -1
  291. package/cjs/extensions/payment-card/utils/cardProducts.d.ts +1 -1
  292. package/cjs/extensions/payment-card/utils/cardProducts.js +241 -209
  293. package/cjs/extensions/payment-card/utils/cardProducts.js.map +1 -1
  294. package/cjs/fragments/drawer-list/DrawerList.d.ts +176 -224
  295. package/cjs/fragments/drawer-list/DrawerList.js +70 -175
  296. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  297. package/cjs/fragments/drawer-list/DrawerListContext.d.ts +27 -2
  298. package/cjs/fragments/drawer-list/DrawerListContext.js.map +1 -1
  299. package/cjs/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
  300. package/cjs/fragments/drawer-list/DrawerListDocs.js +2 -2
  301. package/cjs/fragments/drawer-list/DrawerListDocs.js.map +1 -1
  302. package/cjs/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
  303. package/cjs/fragments/drawer-list/DrawerListHelpers.js +52 -58
  304. package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  305. package/cjs/fragments/drawer-list/DrawerListItem.d.ts +30 -0
  306. package/cjs/fragments/drawer-list/DrawerListItem.js +106 -0
  307. package/cjs/fragments/drawer-list/DrawerListItem.js.map +1 -0
  308. package/cjs/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
  309. package/cjs/fragments/drawer-list/DrawerListPortal.js +93 -125
  310. package/cjs/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  311. package/cjs/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
  312. package/cjs/fragments/drawer-list/DrawerListProvider.js +11 -18
  313. package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  314. package/cjs/shared/Context.d.ts +1 -1
  315. package/cjs/shared/Context.js +5 -14
  316. package/cjs/shared/Context.js.map +1 -1
  317. package/cjs/shared/Eufemia.d.ts +1 -1
  318. package/cjs/shared/Eufemia.js +2 -2
  319. package/cjs/shared/Eufemia.js.map +1 -1
  320. package/cjs/shared/Provider.js +15 -24
  321. package/cjs/shared/Provider.js.map +1 -1
  322. package/cjs/shared/component-helper.d.ts +45 -48
  323. package/cjs/shared/component-helper.js +72 -201
  324. package/cjs/shared/component-helper.js.map +1 -1
  325. package/cjs/shared/helpers/withCamelCaseProps.d.ts +4 -5
  326. package/cjs/shared/helpers/withCamelCaseProps.js +7 -2
  327. package/cjs/shared/helpers/withCamelCaseProps.js.map +1 -1
  328. package/cjs/shared/legacy/component-helper-legacy.d.ts +19 -0
  329. package/cjs/shared/legacy/component-helper-legacy.js +202 -0
  330. package/cjs/shared/legacy/component-helper-legacy.js.map +1 -0
  331. package/cjs/shared/locales/en-GB.d.ts +5 -2
  332. package/cjs/shared/locales/en-GB.js +7 -4
  333. package/cjs/shared/locales/en-GB.js.map +1 -1
  334. package/cjs/shared/locales/en-US.d.ts +4 -2
  335. package/cjs/shared/locales/en-US.js.map +1 -1
  336. package/cjs/shared/locales/index.d.ts +10 -4
  337. package/cjs/shared/locales/nb-NO.d.ts +5 -2
  338. package/cjs/shared/locales/nb-NO.js +8 -5
  339. package/cjs/shared/locales/nb-NO.js.map +1 -1
  340. package/cjs/shared/locales/sv-SE.d.ts +5 -2
  341. package/cjs/shared/locales/sv-SE.js +7 -4
  342. package/cjs/shared/locales/sv-SE.js.map +1 -1
  343. package/cjs/shared/useTranslation.d.ts +3 -2
  344. package/cjs/shared/useTranslation.js.map +1 -1
  345. package/cjs/style/core/scopes.scss +1 -1
  346. package/cjs/style/dnb-ui-basis.css +1 -1
  347. package/cjs/style/dnb-ui-basis.min.css +1 -1
  348. package/cjs/style/dnb-ui-body.css +1 -1
  349. package/cjs/style/dnb-ui-body.min.css +1 -1
  350. package/cjs/style/dnb-ui-components.css +2 -1
  351. package/cjs/style/dnb-ui-components.min.css +1 -1
  352. package/cjs/style/dnb-ui-core.css +1 -1
  353. package/cjs/style/dnb-ui-core.min.css +1 -1
  354. package/cjs/style/dnb-ui-extensions.css +173 -163
  355. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  356. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +23 -1
  357. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  358. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +173 -163
  359. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  360. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +23 -1
  361. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  362. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +173 -163
  363. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  364. package/cjs/style/themes/theme-ui/ui-theme-components.css +23 -1
  365. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  366. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +173 -163
  367. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  368. package/components/autocomplete/Autocomplete.js +6 -3
  369. package/components/autocomplete/Autocomplete.js.map +1 -1
  370. package/components/autocomplete/AutocompleteDocs.d.ts +289 -3
  371. package/components/autocomplete/AutocompleteDocs.js +1 -1
  372. package/components/autocomplete/AutocompleteDocs.js.map +1 -1
  373. package/components/button/style/dnb-button.css +1 -0
  374. package/components/button/style/dnb-button.min.css +1 -1
  375. package/components/button/style/dnb-button.scss +1 -0
  376. package/components/checkbox/Checkbox.d.ts +9 -1
  377. package/components/checkbox/Checkbox.js +60 -35
  378. package/components/checkbox/Checkbox.js.map +1 -1
  379. package/components/checkbox/CheckboxDocs.js +6 -1
  380. package/components/checkbox/CheckboxDocs.js.map +1 -1
  381. package/components/country-flag/CountryFlag.js +5 -2
  382. package/components/country-flag/CountryFlag.js.map +1 -1
  383. package/components/date-picker/DatePicker.d.ts +20 -7
  384. package/components/date-picker/DatePicker.js +11 -22
  385. package/components/date-picker/DatePicker.js.map +1 -1
  386. package/components/date-picker/DatePickerCalendar.d.ts +3 -19
  387. package/components/date-picker/DatePickerCalendar.js +45 -89
  388. package/components/date-picker/DatePickerCalendar.js.map +1 -1
  389. package/components/date-picker/DatePickerCalendarNavigator.d.ts +34 -0
  390. package/components/date-picker/DatePickerCalendarNavigator.js +153 -0
  391. package/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
  392. package/components/date-picker/DatePickerContext.d.ts +4 -0
  393. package/components/date-picker/DatePickerContext.js.map +1 -1
  394. package/components/date-picker/DatePickerDocs.js +6 -6
  395. package/components/date-picker/DatePickerDocs.js.map +1 -1
  396. package/components/date-picker/DatePickerFooter.js +22 -19
  397. package/components/date-picker/DatePickerFooter.js.map +1 -1
  398. package/components/date-picker/DatePickerInput.d.ts +3 -2
  399. package/components/date-picker/DatePickerInput.js +9 -8
  400. package/components/date-picker/DatePickerInput.js.map +1 -1
  401. package/components/date-picker/DatePickerProvider.d.ts +1 -1
  402. package/components/date-picker/DatePickerProvider.js +24 -16
  403. package/components/date-picker/DatePickerProvider.js.map +1 -1
  404. package/components/date-picker/DatePickerRange.d.ts +3 -7
  405. package/components/date-picker/DatePickerRange.js +10 -35
  406. package/components/date-picker/DatePickerRange.js.map +1 -1
  407. package/components/date-picker/hooks/useDates.js.map +1 -1
  408. package/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
  409. package/components/date-picker/hooks/useSubmittedDates.js +14 -0
  410. package/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
  411. package/components/date-picker/style/dnb-date-picker.css +1 -1
  412. package/components/date-picker/style/dnb-date-picker.min.css +1 -1
  413. package/components/date-picker/style/dnb-date-picker.scss +1 -1
  414. package/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +21 -0
  415. package/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
  416. package/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +24 -0
  417. package/components/drawer/Drawer.js +1 -0
  418. package/components/drawer/Drawer.js.map +1 -1
  419. package/components/dropdown/Dropdown.js +6 -4
  420. package/components/dropdown/Dropdown.js.map +1 -1
  421. package/components/dropdown/DropdownDocs.d.ts +179 -3
  422. package/components/dropdown/DropdownDocs.js.map +1 -1
  423. package/components/heading/HeadingHelpers.js +9 -5
  424. package/components/heading/HeadingHelpers.js.map +1 -1
  425. package/components/icon/Icon.d.ts +2 -2
  426. package/components/input-masked/InputMaskedDocs.js +1 -1
  427. package/components/input-masked/InputMaskedDocs.js.map +1 -1
  428. package/components/input-masked/InputMaskedHooks.d.ts +1 -0
  429. package/components/input-masked/InputMaskedHooks.js +39 -7
  430. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  431. package/components/input-masked/InputMaskedUtils.js +6 -5
  432. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  433. package/components/number-format/NumberUtils.d.ts +1 -1
  434. package/components/number-format/NumberUtils.js +5 -4
  435. package/components/number-format/NumberUtils.js.map +1 -1
  436. package/components/switch/SwitchDocs.js +2 -2
  437. package/components/switch/SwitchDocs.js.map +1 -1
  438. package/es/components/autocomplete/Autocomplete.js +6 -3
  439. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  440. package/es/components/autocomplete/AutocompleteDocs.d.ts +289 -3
  441. package/es/components/autocomplete/AutocompleteDocs.js +1 -1
  442. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
  443. package/es/components/button/style/dnb-button.css +1 -0
  444. package/es/components/button/style/dnb-button.min.css +1 -1
  445. package/es/components/button/style/dnb-button.scss +1 -0
  446. package/es/components/checkbox/Checkbox.d.ts +9 -1
  447. package/es/components/checkbox/Checkbox.js +60 -35
  448. package/es/components/checkbox/Checkbox.js.map +1 -1
  449. package/es/components/checkbox/CheckboxDocs.js +6 -1
  450. package/es/components/checkbox/CheckboxDocs.js.map +1 -1
  451. package/es/components/country-flag/CountryFlag.js +5 -2
  452. package/es/components/country-flag/CountryFlag.js.map +1 -1
  453. package/es/components/date-picker/DatePicker.d.ts +20 -7
  454. package/es/components/date-picker/DatePicker.js +11 -22
  455. package/es/components/date-picker/DatePicker.js.map +1 -1
  456. package/es/components/date-picker/DatePickerCalendar.d.ts +3 -19
  457. package/es/components/date-picker/DatePickerCalendar.js +41 -84
  458. package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
  459. package/es/components/date-picker/DatePickerCalendarNavigator.d.ts +34 -0
  460. package/es/components/date-picker/DatePickerCalendarNavigator.js +149 -0
  461. package/es/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
  462. package/es/components/date-picker/DatePickerContext.d.ts +4 -0
  463. package/es/components/date-picker/DatePickerContext.js.map +1 -1
  464. package/es/components/date-picker/DatePickerDocs.js +6 -6
  465. package/es/components/date-picker/DatePickerDocs.js.map +1 -1
  466. package/es/components/date-picker/DatePickerFooter.js +22 -19
  467. package/es/components/date-picker/DatePickerFooter.js.map +1 -1
  468. package/es/components/date-picker/DatePickerInput.d.ts +3 -2
  469. package/es/components/date-picker/DatePickerInput.js +9 -8
  470. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  471. package/es/components/date-picker/DatePickerProvider.d.ts +1 -1
  472. package/es/components/date-picker/DatePickerProvider.js +23 -15
  473. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  474. package/es/components/date-picker/DatePickerRange.d.ts +3 -7
  475. package/es/components/date-picker/DatePickerRange.js +10 -34
  476. package/es/components/date-picker/DatePickerRange.js.map +1 -1
  477. package/es/components/date-picker/hooks/useDates.js.map +1 -1
  478. package/es/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
  479. package/es/components/date-picker/hooks/useSubmittedDates.js +14 -0
  480. package/es/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
  481. package/es/components/date-picker/style/dnb-date-picker.css +1 -1
  482. package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
  483. package/es/components/date-picker/style/dnb-date-picker.scss +1 -1
  484. package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +21 -0
  485. package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
  486. package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +24 -0
  487. package/es/components/drawer/Drawer.js +1 -0
  488. package/es/components/drawer/Drawer.js.map +1 -1
  489. package/es/components/dropdown/Dropdown.js +6 -4
  490. package/es/components/dropdown/Dropdown.js.map +1 -1
  491. package/es/components/dropdown/DropdownDocs.d.ts +179 -3
  492. package/es/components/dropdown/DropdownDocs.js.map +1 -1
  493. package/es/components/heading/HeadingHelpers.js +9 -5
  494. package/es/components/heading/HeadingHelpers.js.map +1 -1
  495. package/es/components/icon/Icon.d.ts +2 -2
  496. package/es/components/input-masked/InputMaskedDocs.js +1 -1
  497. package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
  498. package/es/components/input-masked/InputMaskedHooks.d.ts +1 -0
  499. package/es/components/input-masked/InputMaskedHooks.js +39 -7
  500. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  501. package/es/components/input-masked/InputMaskedUtils.js +6 -5
  502. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  503. package/es/components/number-format/NumberUtils.d.ts +1 -1
  504. package/es/components/number-format/NumberUtils.js +5 -4
  505. package/es/components/number-format/NumberUtils.js.map +1 -1
  506. package/es/components/switch/SwitchDocs.js +2 -2
  507. package/es/components/switch/SwitchDocs.js.map +1 -1
  508. package/es/extensions/forms/DataContext/Context.d.ts +1 -1
  509. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  510. package/es/extensions/forms/DataContext/Provider/Provider.js +9 -0
  511. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  512. package/es/extensions/forms/Field/Boolean/Boolean.d.ts +3 -9
  513. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  514. package/es/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
  515. package/es/extensions/forms/Field/Boolean/BooleanDocs.js +7 -0
  516. package/es/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  517. package/es/extensions/forms/Field/Date/Date.d.ts +1 -1
  518. package/es/extensions/forms/Field/Date/Date.js +1 -1
  519. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  520. package/es/extensions/forms/Field/Date/DateDocs.js +2 -1
  521. package/es/extensions/forms/Field/Date/DateDocs.js.map +1 -1
  522. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  523. package/es/extensions/forms/Field/Indeterminate/Indeterminate.d.ts +1 -1
  524. package/es/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -1
  525. package/es/extensions/forms/Field/Indeterminate/IndeterminateDocs.js +1 -1
  526. package/es/extensions/forms/Field/Indeterminate/IndeterminateDocs.js.map +1 -1
  527. package/es/extensions/forms/Field/Number/NumberDocs.js +1 -1
  528. package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  529. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +7 -3
  530. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  531. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +5 -5
  532. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +3 -2
  533. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +13 -6
  534. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  535. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +3 -3
  536. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  537. package/es/extensions/forms/Field/SelectCountry/useCountries.d.ts +2016 -0
  538. package/es/extensions/forms/Field/SelectCountry/useCountries.js +63 -0
  539. package/es/extensions/forms/Field/SelectCountry/useCountries.js.map +1 -0
  540. package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +3 -3
  541. package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
  542. package/es/extensions/forms/Field/Selection/Selection.d.ts +2 -0
  543. package/es/extensions/forms/Field/Selection/Selection.js +9 -8
  544. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  545. package/es/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
  546. package/es/extensions/forms/Field/Toggle/Toggle.js +24 -6
  547. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  548. package/es/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
  549. package/es/extensions/forms/Field/Toggle/ToggleDocs.js +7 -0
  550. package/es/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  551. package/es/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
  552. package/es/extensions/forms/Form/Isolation/IsolatedContainer.js +53 -0
  553. package/es/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
  554. package/es/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
  555. package/es/extensions/forms/Form/Isolation/Isolation.js +40 -14
  556. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  557. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
  558. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
  559. package/es/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
  560. package/es/extensions/forms/Form/Isolation/IsolationContext.js +6 -0
  561. package/es/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
  562. package/es/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
  563. package/es/extensions/forms/Form/Isolation/IsolationDataReference.js +25 -0
  564. package/es/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
  565. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
  566. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  567. package/es/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
  568. package/es/extensions/forms/Form/Isolation/IsolationResetButton.js +99 -0
  569. package/es/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
  570. package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
  571. package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.js +50 -0
  572. package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
  573. package/es/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
  574. package/es/extensions/forms/Form/Isolation/useHandleStatus.js +48 -0
  575. package/es/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
  576. package/es/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +12 -10
  577. package/es/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
  578. package/es/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
  579. package/es/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
  580. package/es/extensions/forms/Iterate/Array/Array.js +19 -6
  581. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  582. package/es/extensions/forms/Iterate/Array/ArrayDocs.js +10 -0
  583. package/es/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  584. package/es/extensions/forms/Iterate/Array/types.d.ts +4 -1
  585. package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
  586. package/es/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
  587. package/es/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
  588. package/es/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
  589. package/es/extensions/forms/Iterate/EditContainer/index.js +1 -1
  590. package/es/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
  591. package/es/extensions/forms/Iterate/PushButton/PushButton.js +9 -2
  592. package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  593. package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
  594. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +26 -58
  595. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  596. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
  597. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  598. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +4 -2
  599. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  600. package/es/extensions/forms/Value/SelectCountry/useCountry.js +6 -1
  601. package/es/extensions/forms/Value/SelectCountry/useCountry.js.map +1 -1
  602. package/es/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  603. package/es/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -1
  604. package/es/extensions/forms/constants/locales/countries/sv-SE.d.ts +257 -0
  605. package/es/extensions/forms/constants/locales/countries/sv-SE.js +257 -0
  606. package/es/extensions/forms/constants/locales/countries/sv-SE.js.map +1 -0
  607. package/es/extensions/forms/constants/locales/en-GB.d.ts +5 -1
  608. package/es/extensions/forms/constants/locales/en-GB.js +7 -3
  609. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  610. package/es/extensions/forms/constants/locales/en-US.d.ts +5 -1
  611. package/es/extensions/forms/constants/locales/index.d.ts +10 -2
  612. package/es/extensions/forms/constants/locales/nb-NO.d.ts +5 -1
  613. package/es/extensions/forms/constants/locales/nb-NO.js +7 -3
  614. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  615. package/es/extensions/forms/constants/locales/sv-SE.d.ts +5 -1
  616. package/es/extensions/forms/constants/locales/sv-SE.js +7 -3
  617. package/es/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  618. package/es/extensions/forms/hooks/useDataContext.js +5 -3
  619. package/es/extensions/forms/hooks/useDataContext.js.map +1 -1
  620. package/es/extensions/forms/hooks/useFieldProps.d.ts +2 -1
  621. package/es/extensions/forms/hooks/useFieldProps.js +19 -6
  622. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  623. package/es/extensions/forms/hooks/usePath.d.ts +4 -1
  624. package/es/extensions/forms/hooks/usePath.js +10 -4
  625. package/es/extensions/forms/hooks/usePath.js.map +1 -1
  626. package/es/extensions/forms/hooks/useSnapshot.js +18 -15
  627. package/es/extensions/forms/hooks/useSnapshot.js.map +1 -1
  628. package/es/extensions/forms/hooks/useTranslation.d.ts +2 -2
  629. package/es/extensions/forms/hooks/useTranslation.js.map +1 -1
  630. package/es/extensions/forms/utils/ajv.js +11 -3
  631. package/es/extensions/forms/utils/ajv.js.map +1 -1
  632. package/es/extensions/payment-card/PaymentCard.d.ts +9 -3
  633. package/es/extensions/payment-card/PaymentCard.js +9 -133
  634. package/es/extensions/payment-card/PaymentCard.js.map +1 -1
  635. package/es/extensions/payment-card/PaymentCardDocs.js +13 -13
  636. package/es/extensions/payment-card/PaymentCardDocs.js.map +1 -1
  637. package/es/extensions/payment-card/components/CardFigure.d.ts +12 -0
  638. package/es/extensions/payment-card/components/CardFigure.js +94 -0
  639. package/es/extensions/payment-card/components/CardFigure.js.map +1 -0
  640. package/es/extensions/payment-card/components/CardNumber.d.ts +27 -0
  641. package/es/extensions/payment-card/components/CardNumber.js +26 -0
  642. package/es/extensions/payment-card/components/CardNumber.js.map +1 -0
  643. package/es/extensions/payment-card/components/CardType.d.ts +7 -0
  644. package/es/extensions/payment-card/components/CardType.js +17 -0
  645. package/es/extensions/payment-card/components/CardType.js.map +1 -0
  646. package/es/extensions/payment-card/components/StatusOverlay.d.ts +20 -0
  647. package/es/extensions/payment-card/components/StatusOverlay.js +59 -0
  648. package/es/extensions/payment-card/components/StatusOverlay.js.map +1 -0
  649. package/es/extensions/payment-card/icons/brandLogos/DNB.js +17 -0
  650. package/es/extensions/payment-card/icons/brandLogos/DNB.js.map +1 -0
  651. package/es/extensions/payment-card/icons/brandLogos/Sbanken.js +24 -0
  652. package/es/extensions/payment-card/icons/brandLogos/Sbanken.js.map +1 -0
  653. package/es/extensions/payment-card/icons/index.d.ts +3 -5
  654. package/es/extensions/payment-card/icons/index.js +30 -53
  655. package/es/extensions/payment-card/icons/index.js.map +1 -1
  656. package/es/extensions/payment-card/icons/loyaltyLogos/Bedrift.js +33 -0
  657. package/es/extensions/payment-card/icons/loyaltyLogos/Bedrift.js.map +1 -0
  658. package/es/extensions/payment-card/icons/loyaltyLogos/Business.js +36 -0
  659. package/es/extensions/payment-card/icons/loyaltyLogos/Business.js.map +1 -0
  660. package/es/extensions/payment-card/icons/loyaltyLogos/Corporate.d.ts +3 -0
  661. package/es/extensions/payment-card/icons/loyaltyLogos/Corporate.js +45 -0
  662. package/es/extensions/payment-card/icons/loyaltyLogos/Corporate.js.map +1 -0
  663. package/es/extensions/payment-card/icons/loyaltyLogos/Intro.js +15 -0
  664. package/es/extensions/payment-card/icons/loyaltyLogos/Intro.js.map +1 -0
  665. package/es/extensions/payment-card/icons/loyaltyLogos/PB.js +54 -0
  666. package/es/extensions/payment-card/icons/loyaltyLogos/PB.js.map +1 -0
  667. package/es/extensions/payment-card/icons/loyaltyLogos/Pluss.js +22 -0
  668. package/es/extensions/payment-card/icons/loyaltyLogos/Pluss.js.map +1 -0
  669. package/es/extensions/payment-card/icons/loyaltyLogos/SagaGold.js +15 -0
  670. package/es/extensions/payment-card/icons/loyaltyLogos/SagaGold.js.map +1 -0
  671. package/es/extensions/payment-card/icons/loyaltyLogos/SagaPlatinum.js +36 -0
  672. package/es/extensions/payment-card/icons/loyaltyLogos/SagaPlatinum.js.map +1 -0
  673. package/es/extensions/payment-card/icons/loyaltyLogos/WorldElite.d.ts +3 -0
  674. package/es/extensions/payment-card/icons/loyaltyLogos/WorldElite.js +15 -0
  675. package/es/extensions/payment-card/icons/loyaltyLogos/WorldElite.js.map +1 -0
  676. package/es/extensions/payment-card/icons/providers/BankAxept.js +17 -0
  677. package/es/extensions/payment-card/icons/providers/BankAxept.js.map +1 -0
  678. package/es/extensions/payment-card/icons/providers/ClickToPay.d.ts +3 -0
  679. package/es/extensions/payment-card/icons/providers/ClickToPay.js +17 -0
  680. package/es/extensions/payment-card/icons/providers/ClickToPay.js.map +1 -0
  681. package/es/extensions/payment-card/icons/providers/MastercardDark.js +807 -0
  682. package/es/extensions/payment-card/icons/providers/MastercardDark.js.map +1 -0
  683. package/es/extensions/payment-card/icons/providers/MastercardDefault.js +30 -0
  684. package/es/extensions/payment-card/icons/providers/MastercardDefault.js.map +1 -0
  685. package/es/extensions/payment-card/icons/providers/VisaDefault.js +21 -0
  686. package/es/extensions/payment-card/icons/providers/VisaDefault.js.map +1 -0
  687. package/es/extensions/payment-card/icons/providers/VisaPlatinum.js +21 -0
  688. package/es/extensions/payment-card/icons/providers/VisaPlatinum.js.map +1 -0
  689. package/es/extensions/payment-card/icons/status/index.d.ts +3 -0
  690. package/es/extensions/payment-card/icons/status/index.js +52 -0
  691. package/es/extensions/payment-card/icons/status/index.js.map +1 -0
  692. package/es/extensions/payment-card/index.d.ts +2 -0
  693. package/es/extensions/payment-card/index.js +2 -0
  694. package/es/extensions/payment-card/index.js.map +1 -1
  695. package/es/extensions/payment-card/style/dnb-payment-card.css +173 -163
  696. package/es/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  697. package/es/extensions/payment-card/style/dnb-payment-card.scss +257 -242
  698. package/es/extensions/payment-card/utils/CardDesigns.d.ts +22 -10
  699. package/es/extensions/payment-card/utils/CardDesigns.js +45 -37
  700. package/es/extensions/payment-card/utils/CardDesigns.js.map +1 -1
  701. package/es/extensions/payment-card/utils/Types.js +2 -0
  702. package/es/extensions/payment-card/utils/Types.js.map +1 -1
  703. package/es/extensions/payment-card/utils/backgrounds/index.d.ts +6 -2
  704. package/es/extensions/payment-card/utils/backgrounds/index.js +6 -2
  705. package/es/extensions/payment-card/utils/backgrounds/index.js.map +1 -1
  706. package/es/extensions/payment-card/utils/backgrounds/master-gold.d.ts +2 -0
  707. package/es/extensions/payment-card/utils/backgrounds/master-gold.js +3 -0
  708. package/es/extensions/payment-card/utils/backgrounds/master-gold.js.map +1 -0
  709. package/es/extensions/payment-card/utils/backgrounds/my-first.d.ts +1 -1
  710. package/es/extensions/payment-card/utils/backgrounds/my-first.js +1 -1
  711. package/es/extensions/payment-card/utils/backgrounds/my-first.js.map +1 -1
  712. package/es/extensions/payment-card/utils/backgrounds/visa-default.d.ts +2 -0
  713. package/es/extensions/payment-card/utils/backgrounds/visa-default.js +3 -0
  714. package/es/extensions/payment-card/utils/backgrounds/visa-default.js.map +1 -0
  715. package/es/extensions/payment-card/utils/backgrounds/visa-pluss.d.ts +2 -0
  716. package/es/extensions/payment-card/utils/backgrounds/visa-pluss.js +3 -0
  717. package/es/extensions/payment-card/utils/backgrounds/visa-pluss.js.map +1 -0
  718. package/es/extensions/payment-card/utils/backgrounds/visa-saga-gold.d.ts +2 -0
  719. package/es/extensions/payment-card/utils/backgrounds/visa-saga-gold.js +3 -0
  720. package/es/extensions/payment-card/utils/backgrounds/visa-saga-gold.js.map +1 -0
  721. package/es/extensions/payment-card/utils/backgrounds/visa-saga-platinum.d.ts +2 -0
  722. package/es/extensions/payment-card/utils/backgrounds/visa-saga-platinum.js +3 -0
  723. package/es/extensions/payment-card/utils/backgrounds/visa-saga-platinum.js.map +1 -0
  724. package/es/extensions/payment-card/utils/backgrounds/youth.d.ts +1 -1
  725. package/es/extensions/payment-card/utils/backgrounds/youth.js +1 -1
  726. package/es/extensions/payment-card/utils/backgrounds/youth.js.map +1 -1
  727. package/es/extensions/payment-card/utils/cardProducts.d.ts +1 -1
  728. package/es/extensions/payment-card/utils/cardProducts.js +241 -209
  729. package/es/extensions/payment-card/utils/cardProducts.js.map +1 -1
  730. package/es/fragments/drawer-list/DrawerList.d.ts +176 -224
  731. package/es/fragments/drawer-list/DrawerList.js +72 -173
  732. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  733. package/es/fragments/drawer-list/DrawerListContext.d.ts +27 -2
  734. package/es/fragments/drawer-list/DrawerListContext.js.map +1 -1
  735. package/es/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
  736. package/es/fragments/drawer-list/DrawerListDocs.js +2 -2
  737. package/es/fragments/drawer-list/DrawerListDocs.js.map +1 -1
  738. package/es/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
  739. package/es/fragments/drawer-list/DrawerListHelpers.js +45 -54
  740. package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  741. package/es/fragments/drawer-list/DrawerListItem.d.ts +30 -0
  742. package/es/fragments/drawer-list/DrawerListItem.js +90 -0
  743. package/es/fragments/drawer-list/DrawerListItem.js.map +1 -0
  744. package/es/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
  745. package/es/fragments/drawer-list/DrawerListPortal.js +88 -120
  746. package/es/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  747. package/es/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
  748. package/es/fragments/drawer-list/DrawerListProvider.js +33 -19
  749. package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  750. package/es/shared/Context.d.ts +1 -1
  751. package/es/shared/Context.js +5 -14
  752. package/es/shared/Context.js.map +1 -1
  753. package/es/shared/Eufemia.d.ts +1 -1
  754. package/es/shared/Eufemia.js +2 -2
  755. package/es/shared/Eufemia.js.map +1 -1
  756. package/es/shared/Provider.js +15 -24
  757. package/es/shared/Provider.js.map +1 -1
  758. package/es/shared/component-helper.d.ts +45 -48
  759. package/es/shared/component-helper.js +20 -183
  760. package/es/shared/component-helper.js.map +1 -1
  761. package/es/shared/helpers/withCamelCaseProps.d.ts +4 -5
  762. package/es/shared/helpers/withCamelCaseProps.js +7 -2
  763. package/es/shared/helpers/withCamelCaseProps.js.map +1 -1
  764. package/es/shared/legacy/component-helper-legacy.d.ts +19 -0
  765. package/es/shared/legacy/component-helper-legacy.js +180 -0
  766. package/es/shared/legacy/component-helper-legacy.js.map +1 -0
  767. package/es/shared/locales/en-GB.d.ts +5 -2
  768. package/es/shared/locales/en-GB.js +7 -4
  769. package/es/shared/locales/en-GB.js.map +1 -1
  770. package/es/shared/locales/en-US.d.ts +4 -2
  771. package/es/shared/locales/en-US.js.map +1 -1
  772. package/es/shared/locales/index.d.ts +10 -4
  773. package/es/shared/locales/nb-NO.d.ts +5 -2
  774. package/es/shared/locales/nb-NO.js +8 -5
  775. package/es/shared/locales/nb-NO.js.map +1 -1
  776. package/es/shared/locales/sv-SE.d.ts +5 -2
  777. package/es/shared/locales/sv-SE.js +7 -4
  778. package/es/shared/locales/sv-SE.js.map +1 -1
  779. package/es/shared/useTranslation.d.ts +3 -2
  780. package/es/shared/useTranslation.js.map +1 -1
  781. package/es/style/core/scopes.scss +1 -1
  782. package/es/style/dnb-ui-basis.css +1 -1
  783. package/es/style/dnb-ui-basis.min.css +1 -1
  784. package/es/style/dnb-ui-body.css +1 -1
  785. package/es/style/dnb-ui-body.min.css +1 -1
  786. package/es/style/dnb-ui-components.css +2 -1
  787. package/es/style/dnb-ui-components.min.css +1 -1
  788. package/es/style/dnb-ui-core.css +1 -1
  789. package/es/style/dnb-ui-core.min.css +1 -1
  790. package/es/style/dnb-ui-extensions.css +173 -163
  791. package/es/style/dnb-ui-extensions.min.css +1 -1
  792. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +23 -1
  793. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  794. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +173 -163
  795. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  796. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +23 -1
  797. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  798. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +173 -163
  799. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  800. package/es/style/themes/theme-ui/ui-theme-components.css +23 -1
  801. package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  802. package/es/style/themes/theme-ui/ui-theme-extensions.css +173 -163
  803. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  804. package/esm/dnb-ui-basis.min.mjs +1 -1
  805. package/esm/dnb-ui-components.min.mjs +1 -1
  806. package/esm/dnb-ui-elements.min.mjs +1 -1
  807. package/esm/dnb-ui-extensions.min.mjs +3 -3
  808. package/esm/dnb-ui-lib.min.mjs +1 -1
  809. package/extensions/forms/DataContext/Context.d.ts +1 -1
  810. package/extensions/forms/DataContext/Context.js.map +1 -1
  811. package/extensions/forms/DataContext/Provider/Provider.js +9 -0
  812. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  813. package/extensions/forms/Field/Boolean/Boolean.d.ts +3 -9
  814. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  815. package/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
  816. package/extensions/forms/Field/Boolean/BooleanDocs.js +7 -0
  817. package/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  818. package/extensions/forms/Field/Date/Date.d.ts +1 -1
  819. package/extensions/forms/Field/Date/Date.js +1 -1
  820. package/extensions/forms/Field/Date/Date.js.map +1 -1
  821. package/extensions/forms/Field/Date/DateDocs.js +2 -1
  822. package/extensions/forms/Field/Date/DateDocs.js.map +1 -1
  823. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  824. package/extensions/forms/Field/Indeterminate/Indeterminate.d.ts +1 -1
  825. package/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -1
  826. package/extensions/forms/Field/Indeterminate/IndeterminateDocs.js +1 -1
  827. package/extensions/forms/Field/Indeterminate/IndeterminateDocs.js.map +1 -1
  828. package/extensions/forms/Field/Number/NumberDocs.js +1 -1
  829. package/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  830. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +7 -3
  831. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  832. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +5 -5
  833. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +3 -2
  834. package/extensions/forms/Field/SelectCountry/SelectCountry.js +17 -10
  835. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  836. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +3 -3
  837. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  838. package/extensions/forms/Field/SelectCountry/useCountries.d.ts +2016 -0
  839. package/extensions/forms/Field/SelectCountry/useCountries.js +64 -0
  840. package/extensions/forms/Field/SelectCountry/useCountries.js.map +1 -0
  841. package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +3 -3
  842. package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
  843. package/extensions/forms/Field/Selection/Selection.d.ts +2 -0
  844. package/extensions/forms/Field/Selection/Selection.js +10 -9
  845. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  846. package/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
  847. package/extensions/forms/Field/Toggle/Toggle.js +26 -9
  848. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  849. package/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
  850. package/extensions/forms/Field/Toggle/ToggleDocs.js +7 -0
  851. package/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  852. package/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
  853. package/extensions/forms/Form/Isolation/IsolatedContainer.js +54 -0
  854. package/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
  855. package/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
  856. package/extensions/forms/Form/Isolation/Isolation.js +40 -15
  857. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  858. package/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
  859. package/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
  860. package/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
  861. package/extensions/forms/Form/Isolation/IsolationContext.js +6 -0
  862. package/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
  863. package/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
  864. package/extensions/forms/Form/Isolation/IsolationDataReference.js +25 -0
  865. package/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
  866. package/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
  867. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  868. package/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
  869. package/extensions/forms/Form/Isolation/IsolationResetButton.js +100 -0
  870. package/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
  871. package/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
  872. package/extensions/forms/Form/Isolation/useDataContextSnapshot.js +52 -0
  873. package/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
  874. package/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
  875. package/extensions/forms/Form/Isolation/useHandleStatus.js +51 -0
  876. package/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
  877. package/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +12 -10
  878. package/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
  879. package/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
  880. package/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
  881. package/extensions/forms/Iterate/Array/Array.js +19 -6
  882. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  883. package/extensions/forms/Iterate/Array/ArrayDocs.js +10 -0
  884. package/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  885. package/extensions/forms/Iterate/Array/types.d.ts +4 -1
  886. package/extensions/forms/Iterate/Array/types.js.map +1 -1
  887. package/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
  888. package/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
  889. package/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
  890. package/extensions/forms/Iterate/EditContainer/index.js +1 -1
  891. package/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
  892. package/extensions/forms/Iterate/PushButton/PushButton.js +9 -2
  893. package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  894. package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
  895. package/extensions/forms/Iterate/PushContainer/PushContainer.js +26 -60
  896. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  897. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
  898. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  899. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +4 -2
  900. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  901. package/extensions/forms/Value/SelectCountry/useCountry.js +6 -1
  902. package/extensions/forms/Value/SelectCountry/useCountry.js.map +1 -1
  903. package/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  904. package/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -1
  905. package/extensions/forms/constants/locales/countries/sv-SE.d.ts +257 -0
  906. package/extensions/forms/constants/locales/countries/sv-SE.js +257 -0
  907. package/extensions/forms/constants/locales/countries/sv-SE.js.map +1 -0
  908. package/extensions/forms/constants/locales/en-GB.d.ts +5 -1
  909. package/extensions/forms/constants/locales/en-GB.js +7 -3
  910. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  911. package/extensions/forms/constants/locales/en-US.d.ts +5 -1
  912. package/extensions/forms/constants/locales/index.d.ts +10 -2
  913. package/extensions/forms/constants/locales/nb-NO.d.ts +5 -1
  914. package/extensions/forms/constants/locales/nb-NO.js +7 -3
  915. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  916. package/extensions/forms/constants/locales/sv-SE.d.ts +5 -1
  917. package/extensions/forms/constants/locales/sv-SE.js +7 -3
  918. package/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  919. package/extensions/forms/hooks/useDataContext.js +5 -3
  920. package/extensions/forms/hooks/useDataContext.js.map +1 -1
  921. package/extensions/forms/hooks/useFieldProps.d.ts +2 -1
  922. package/extensions/forms/hooks/useFieldProps.js +19 -6
  923. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  924. package/extensions/forms/hooks/usePath.d.ts +4 -1
  925. package/extensions/forms/hooks/usePath.js +10 -3
  926. package/extensions/forms/hooks/usePath.js.map +1 -1
  927. package/extensions/forms/hooks/useSnapshot.js +18 -15
  928. package/extensions/forms/hooks/useSnapshot.js.map +1 -1
  929. package/extensions/forms/hooks/useTranslation.d.ts +2 -2
  930. package/extensions/forms/hooks/useTranslation.js.map +1 -1
  931. package/extensions/forms/utils/ajv.js +11 -3
  932. package/extensions/forms/utils/ajv.js.map +1 -1
  933. package/extensions/payment-card/PaymentCard.d.ts +9 -3
  934. package/extensions/payment-card/PaymentCard.js +9 -139
  935. package/extensions/payment-card/PaymentCard.js.map +1 -1
  936. package/extensions/payment-card/PaymentCardDocs.js +13 -13
  937. package/extensions/payment-card/PaymentCardDocs.js.map +1 -1
  938. package/extensions/payment-card/components/CardFigure.d.ts +12 -0
  939. package/extensions/payment-card/components/CardFigure.js +95 -0
  940. package/extensions/payment-card/components/CardFigure.js.map +1 -0
  941. package/extensions/payment-card/components/CardNumber.d.ts +27 -0
  942. package/extensions/payment-card/components/CardNumber.js +29 -0
  943. package/extensions/payment-card/components/CardNumber.js.map +1 -0
  944. package/extensions/payment-card/components/CardType.d.ts +7 -0
  945. package/extensions/payment-card/components/CardType.js +18 -0
  946. package/extensions/payment-card/components/CardType.js.map +1 -0
  947. package/extensions/payment-card/components/StatusOverlay.d.ts +20 -0
  948. package/extensions/payment-card/components/StatusOverlay.js +60 -0
  949. package/extensions/payment-card/components/StatusOverlay.js.map +1 -0
  950. package/extensions/payment-card/icons/brandLogos/DNB.js +17 -0
  951. package/extensions/payment-card/icons/brandLogos/DNB.js.map +1 -0
  952. package/extensions/payment-card/icons/brandLogos/Sbanken.js +24 -0
  953. package/extensions/payment-card/icons/brandLogos/Sbanken.js.map +1 -0
  954. package/extensions/payment-card/icons/index.d.ts +3 -5
  955. package/extensions/payment-card/icons/index.js +32 -56
  956. package/extensions/payment-card/icons/index.js.map +1 -1
  957. package/extensions/payment-card/icons/loyaltyLogos/Bedrift.js +33 -0
  958. package/extensions/payment-card/icons/loyaltyLogos/Bedrift.js.map +1 -0
  959. package/extensions/payment-card/icons/loyaltyLogos/Business.js +36 -0
  960. package/extensions/payment-card/icons/loyaltyLogos/Business.js.map +1 -0
  961. package/extensions/payment-card/icons/loyaltyLogos/Corporate.d.ts +3 -0
  962. package/extensions/payment-card/icons/loyaltyLogos/Corporate.js +45 -0
  963. package/extensions/payment-card/icons/loyaltyLogos/Corporate.js.map +1 -0
  964. package/extensions/payment-card/icons/loyaltyLogos/Intro.js +15 -0
  965. package/extensions/payment-card/icons/loyaltyLogos/Intro.js.map +1 -0
  966. package/extensions/payment-card/icons/loyaltyLogos/PB.js +54 -0
  967. package/extensions/payment-card/icons/loyaltyLogos/PB.js.map +1 -0
  968. package/extensions/payment-card/icons/loyaltyLogos/Pluss.js +22 -0
  969. package/extensions/payment-card/icons/loyaltyLogos/Pluss.js.map +1 -0
  970. package/extensions/payment-card/icons/loyaltyLogos/SagaGold.js +15 -0
  971. package/extensions/payment-card/icons/loyaltyLogos/SagaGold.js.map +1 -0
  972. package/extensions/payment-card/icons/loyaltyLogos/SagaPlatinum.js +36 -0
  973. package/extensions/payment-card/icons/loyaltyLogos/SagaPlatinum.js.map +1 -0
  974. package/extensions/payment-card/icons/loyaltyLogos/WorldElite.d.ts +3 -0
  975. package/extensions/payment-card/icons/loyaltyLogos/WorldElite.js +15 -0
  976. package/extensions/payment-card/icons/loyaltyLogos/WorldElite.js.map +1 -0
  977. package/extensions/payment-card/icons/providers/BankAxept.js +17 -0
  978. package/extensions/payment-card/icons/providers/BankAxept.js.map +1 -0
  979. package/extensions/payment-card/icons/providers/ClickToPay.d.ts +3 -0
  980. package/extensions/payment-card/icons/providers/ClickToPay.js +17 -0
  981. package/extensions/payment-card/icons/providers/ClickToPay.js.map +1 -0
  982. package/extensions/payment-card/icons/providers/MastercardDark.js +807 -0
  983. package/extensions/payment-card/icons/providers/MastercardDark.js.map +1 -0
  984. package/extensions/payment-card/icons/providers/MastercardDefault.js +30 -0
  985. package/extensions/payment-card/icons/providers/MastercardDefault.js.map +1 -0
  986. package/extensions/payment-card/icons/providers/VisaDefault.js +21 -0
  987. package/extensions/payment-card/icons/providers/VisaDefault.js.map +1 -0
  988. package/extensions/payment-card/icons/providers/VisaPlatinum.js +21 -0
  989. package/extensions/payment-card/icons/providers/VisaPlatinum.js.map +1 -0
  990. package/extensions/payment-card/icons/status/index.d.ts +3 -0
  991. package/extensions/payment-card/icons/status/index.js +53 -0
  992. package/extensions/payment-card/icons/status/index.js.map +1 -0
  993. package/extensions/payment-card/index.d.ts +2 -0
  994. package/extensions/payment-card/index.js +2 -0
  995. package/extensions/payment-card/index.js.map +1 -1
  996. package/extensions/payment-card/style/dnb-payment-card.css +173 -163
  997. package/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  998. package/extensions/payment-card/style/dnb-payment-card.scss +257 -242
  999. package/extensions/payment-card/utils/CardDesigns.d.ts +22 -10
  1000. package/extensions/payment-card/utils/CardDesigns.js +45 -37
  1001. package/extensions/payment-card/utils/CardDesigns.js.map +1 -1
  1002. package/extensions/payment-card/utils/Types.js +2 -0
  1003. package/extensions/payment-card/utils/Types.js.map +1 -1
  1004. package/extensions/payment-card/utils/backgrounds/index.d.ts +6 -2
  1005. package/extensions/payment-card/utils/backgrounds/index.js +6 -2
  1006. package/extensions/payment-card/utils/backgrounds/index.js.map +1 -1
  1007. package/extensions/payment-card/utils/backgrounds/master-gold.d.ts +2 -0
  1008. package/extensions/payment-card/utils/backgrounds/master-gold.js +3 -0
  1009. package/extensions/payment-card/utils/backgrounds/master-gold.js.map +1 -0
  1010. package/extensions/payment-card/utils/backgrounds/my-first.d.ts +1 -1
  1011. package/extensions/payment-card/utils/backgrounds/my-first.js +1 -1
  1012. package/extensions/payment-card/utils/backgrounds/my-first.js.map +1 -1
  1013. package/extensions/payment-card/utils/backgrounds/visa-default.d.ts +2 -0
  1014. package/extensions/payment-card/utils/backgrounds/visa-default.js +3 -0
  1015. package/extensions/payment-card/utils/backgrounds/visa-default.js.map +1 -0
  1016. package/extensions/payment-card/utils/backgrounds/visa-pluss.d.ts +2 -0
  1017. package/extensions/payment-card/utils/backgrounds/visa-pluss.js +3 -0
  1018. package/extensions/payment-card/utils/backgrounds/visa-pluss.js.map +1 -0
  1019. package/extensions/payment-card/utils/backgrounds/visa-saga-gold.d.ts +2 -0
  1020. package/extensions/payment-card/utils/backgrounds/visa-saga-gold.js +3 -0
  1021. package/extensions/payment-card/utils/backgrounds/visa-saga-gold.js.map +1 -0
  1022. package/extensions/payment-card/utils/backgrounds/visa-saga-platinum.d.ts +2 -0
  1023. package/extensions/payment-card/utils/backgrounds/visa-saga-platinum.js +3 -0
  1024. package/extensions/payment-card/utils/backgrounds/visa-saga-platinum.js.map +1 -0
  1025. package/extensions/payment-card/utils/backgrounds/youth.d.ts +1 -1
  1026. package/extensions/payment-card/utils/backgrounds/youth.js +1 -1
  1027. package/extensions/payment-card/utils/backgrounds/youth.js.map +1 -1
  1028. package/extensions/payment-card/utils/cardProducts.d.ts +1 -1
  1029. package/extensions/payment-card/utils/cardProducts.js +241 -209
  1030. package/extensions/payment-card/utils/cardProducts.js.map +1 -1
  1031. package/fragments/drawer-list/DrawerList.d.ts +176 -224
  1032. package/fragments/drawer-list/DrawerList.js +71 -175
  1033. package/fragments/drawer-list/DrawerList.js.map +1 -1
  1034. package/fragments/drawer-list/DrawerListContext.d.ts +27 -2
  1035. package/fragments/drawer-list/DrawerListContext.js.map +1 -1
  1036. package/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
  1037. package/fragments/drawer-list/DrawerListDocs.js +2 -2
  1038. package/fragments/drawer-list/DrawerListDocs.js.map +1 -1
  1039. package/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
  1040. package/fragments/drawer-list/DrawerListHelpers.js +45 -53
  1041. package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  1042. package/fragments/drawer-list/DrawerListItem.d.ts +30 -0
  1043. package/fragments/drawer-list/DrawerListItem.js +91 -0
  1044. package/fragments/drawer-list/DrawerListItem.js.map +1 -0
  1045. package/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
  1046. package/fragments/drawer-list/DrawerListPortal.js +91 -121
  1047. package/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  1048. package/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
  1049. package/fragments/drawer-list/DrawerListProvider.js +12 -19
  1050. package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  1051. package/package.json +1 -1
  1052. package/shared/Context.d.ts +1 -1
  1053. package/shared/Context.js +5 -14
  1054. package/shared/Context.js.map +1 -1
  1055. package/shared/Eufemia.d.ts +1 -1
  1056. package/shared/Eufemia.js +2 -2
  1057. package/shared/Eufemia.js.map +1 -1
  1058. package/shared/Provider.js +15 -24
  1059. package/shared/Provider.js.map +1 -1
  1060. package/shared/component-helper.d.ts +45 -48
  1061. package/shared/component-helper.js +23 -189
  1062. package/shared/component-helper.js.map +1 -1
  1063. package/shared/helpers/withCamelCaseProps.d.ts +4 -5
  1064. package/shared/helpers/withCamelCaseProps.js +7 -2
  1065. package/shared/helpers/withCamelCaseProps.js.map +1 -1
  1066. package/shared/legacy/component-helper-legacy.d.ts +19 -0
  1067. package/shared/legacy/component-helper-legacy.js +185 -0
  1068. package/shared/legacy/component-helper-legacy.js.map +1 -0
  1069. package/shared/locales/en-GB.d.ts +5 -2
  1070. package/shared/locales/en-GB.js +7 -4
  1071. package/shared/locales/en-GB.js.map +1 -1
  1072. package/shared/locales/en-US.d.ts +4 -2
  1073. package/shared/locales/en-US.js.map +1 -1
  1074. package/shared/locales/index.d.ts +10 -4
  1075. package/shared/locales/nb-NO.d.ts +5 -2
  1076. package/shared/locales/nb-NO.js +8 -5
  1077. package/shared/locales/nb-NO.js.map +1 -1
  1078. package/shared/locales/sv-SE.d.ts +5 -2
  1079. package/shared/locales/sv-SE.js +7 -4
  1080. package/shared/locales/sv-SE.js.map +1 -1
  1081. package/shared/useTranslation.d.ts +3 -2
  1082. package/shared/useTranslation.js.map +1 -1
  1083. package/style/core/scopes.scss +1 -1
  1084. package/style/dnb-ui-basis.css +1 -1
  1085. package/style/dnb-ui-basis.min.css +1 -1
  1086. package/style/dnb-ui-body.css +1 -1
  1087. package/style/dnb-ui-body.min.css +1 -1
  1088. package/style/dnb-ui-components.css +2 -1
  1089. package/style/dnb-ui-components.min.css +1 -1
  1090. package/style/dnb-ui-core.css +1 -1
  1091. package/style/dnb-ui-core.min.css +1 -1
  1092. package/style/dnb-ui-extensions.css +173 -163
  1093. package/style/dnb-ui-extensions.min.css +1 -1
  1094. package/style/themes/theme-eiendom/eiendom-theme-components.css +23 -1
  1095. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  1096. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +173 -163
  1097. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  1098. package/style/themes/theme-sbanken/sbanken-theme-components.css +23 -1
  1099. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  1100. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +173 -163
  1101. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  1102. package/style/themes/theme-ui/ui-theme-components.css +23 -1
  1103. package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  1104. package/style/themes/theme-ui/ui-theme-extensions.css +173 -163
  1105. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  1106. package/umd/dnb-ui-basis.min.js +1 -1
  1107. package/umd/dnb-ui-components.min.js +1 -1
  1108. package/umd/dnb-ui-elements.min.js +1 -1
  1109. package/umd/dnb-ui-extensions.min.js +3 -3
  1110. package/umd/dnb-ui-lib.min.js +1 -1
  1111. package/cjs/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
  1112. package/cjs/extensions/payment-card/icons/BankAxept.js +0 -22
  1113. package/cjs/extensions/payment-card/icons/BankAxept.js.map +0 -1
  1114. package/cjs/extensions/payment-card/icons/Bedrift.js +0 -22
  1115. package/cjs/extensions/payment-card/icons/Bedrift.js.map +0 -1
  1116. package/cjs/extensions/payment-card/icons/Business.js +0 -22
  1117. package/cjs/extensions/payment-card/icons/Business.js.map +0 -1
  1118. package/cjs/extensions/payment-card/icons/Clock.d.ts +0 -3
  1119. package/cjs/extensions/payment-card/icons/Clock.js +0 -25
  1120. package/cjs/extensions/payment-card/icons/Clock.js.map +0 -1
  1121. package/cjs/extensions/payment-card/icons/Credit.d.ts +0 -3
  1122. package/cjs/extensions/payment-card/icons/Credit.js +0 -22
  1123. package/cjs/extensions/payment-card/icons/Credit.js.map +0 -1
  1124. package/cjs/extensions/payment-card/icons/DNB.js +0 -24
  1125. package/cjs/extensions/payment-card/icons/DNB.js.map +0 -1
  1126. package/cjs/extensions/payment-card/icons/Intro.js +0 -22
  1127. package/cjs/extensions/payment-card/icons/Intro.js.map +0 -1
  1128. package/cjs/extensions/payment-card/icons/MastercardDark.js +0 -28
  1129. package/cjs/extensions/payment-card/icons/MastercardDark.js.map +0 -1
  1130. package/cjs/extensions/payment-card/icons/MastercardDefault.js +0 -28
  1131. package/cjs/extensions/payment-card/icons/MastercardDefault.js.map +0 -1
  1132. package/cjs/extensions/payment-card/icons/PB.js +0 -22
  1133. package/cjs/extensions/payment-card/icons/PB.js.map +0 -1
  1134. package/cjs/extensions/payment-card/icons/Pluss.js +0 -22
  1135. package/cjs/extensions/payment-card/icons/Pluss.js.map +0 -1
  1136. package/cjs/extensions/payment-card/icons/SagaGold.js +0 -22
  1137. package/cjs/extensions/payment-card/icons/SagaGold.js.map +0 -1
  1138. package/cjs/extensions/payment-card/icons/SagaPlatinum.js +0 -22
  1139. package/cjs/extensions/payment-card/icons/SagaPlatinum.js.map +0 -1
  1140. package/cjs/extensions/payment-card/icons/Sbanken.js +0 -22
  1141. package/cjs/extensions/payment-card/icons/Sbanken.js.map +0 -1
  1142. package/cjs/extensions/payment-card/icons/VisaDefault.js +0 -22
  1143. package/cjs/extensions/payment-card/icons/VisaDefault.js.map +0 -1
  1144. package/cjs/extensions/payment-card/icons/VisaPlatinum.js +0 -22
  1145. package/cjs/extensions/payment-card/icons/VisaPlatinum.js.map +0 -1
  1146. package/cjs/extensions/payment-card/utils/backgrounds/ung.d.ts +0 -2
  1147. package/cjs/extensions/payment-card/utils/backgrounds/ung.js +0 -9
  1148. package/cjs/extensions/payment-card/utils/backgrounds/ung.js.map +0 -1
  1149. package/es/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
  1150. package/es/extensions/payment-card/icons/BankAxept.js +0 -15
  1151. package/es/extensions/payment-card/icons/BankAxept.js.map +0 -1
  1152. package/es/extensions/payment-card/icons/Bedrift.js +0 -15
  1153. package/es/extensions/payment-card/icons/Bedrift.js.map +0 -1
  1154. package/es/extensions/payment-card/icons/Business.js +0 -15
  1155. package/es/extensions/payment-card/icons/Business.js.map +0 -1
  1156. package/es/extensions/payment-card/icons/Clock.d.ts +0 -3
  1157. package/es/extensions/payment-card/icons/Clock.js +0 -18
  1158. package/es/extensions/payment-card/icons/Clock.js.map +0 -1
  1159. package/es/extensions/payment-card/icons/Credit.d.ts +0 -3
  1160. package/es/extensions/payment-card/icons/Credit.js +0 -15
  1161. package/es/extensions/payment-card/icons/Credit.js.map +0 -1
  1162. package/es/extensions/payment-card/icons/DNB.js +0 -17
  1163. package/es/extensions/payment-card/icons/DNB.js.map +0 -1
  1164. package/es/extensions/payment-card/icons/Intro.js +0 -15
  1165. package/es/extensions/payment-card/icons/Intro.js.map +0 -1
  1166. package/es/extensions/payment-card/icons/MastercardDark.js +0 -21
  1167. package/es/extensions/payment-card/icons/MastercardDark.js.map +0 -1
  1168. package/es/extensions/payment-card/icons/MastercardDefault.js +0 -21
  1169. package/es/extensions/payment-card/icons/MastercardDefault.js.map +0 -1
  1170. package/es/extensions/payment-card/icons/PB.js +0 -15
  1171. package/es/extensions/payment-card/icons/PB.js.map +0 -1
  1172. package/es/extensions/payment-card/icons/Pluss.js +0 -15
  1173. package/es/extensions/payment-card/icons/Pluss.js.map +0 -1
  1174. package/es/extensions/payment-card/icons/SagaGold.js +0 -15
  1175. package/es/extensions/payment-card/icons/SagaGold.js.map +0 -1
  1176. package/es/extensions/payment-card/icons/SagaPlatinum.js +0 -15
  1177. package/es/extensions/payment-card/icons/SagaPlatinum.js.map +0 -1
  1178. package/es/extensions/payment-card/icons/Sbanken.js +0 -15
  1179. package/es/extensions/payment-card/icons/Sbanken.js.map +0 -1
  1180. package/es/extensions/payment-card/icons/VisaDefault.js +0 -15
  1181. package/es/extensions/payment-card/icons/VisaDefault.js.map +0 -1
  1182. package/es/extensions/payment-card/icons/VisaPlatinum.js +0 -15
  1183. package/es/extensions/payment-card/icons/VisaPlatinum.js.map +0 -1
  1184. package/es/extensions/payment-card/utils/backgrounds/ung.d.ts +0 -2
  1185. package/es/extensions/payment-card/utils/backgrounds/ung.js +0 -3
  1186. package/es/extensions/payment-card/utils/backgrounds/ung.js.map +0 -1
  1187. package/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
  1188. package/extensions/payment-card/icons/BankAxept.js +0 -15
  1189. package/extensions/payment-card/icons/BankAxept.js.map +0 -1
  1190. package/extensions/payment-card/icons/Bedrift.js +0 -15
  1191. package/extensions/payment-card/icons/Bedrift.js.map +0 -1
  1192. package/extensions/payment-card/icons/Business.js +0 -15
  1193. package/extensions/payment-card/icons/Business.js.map +0 -1
  1194. package/extensions/payment-card/icons/Clock.d.ts +0 -3
  1195. package/extensions/payment-card/icons/Clock.js +0 -18
  1196. package/extensions/payment-card/icons/Clock.js.map +0 -1
  1197. package/extensions/payment-card/icons/Credit.d.ts +0 -3
  1198. package/extensions/payment-card/icons/Credit.js +0 -15
  1199. package/extensions/payment-card/icons/Credit.js.map +0 -1
  1200. package/extensions/payment-card/icons/DNB.js +0 -17
  1201. package/extensions/payment-card/icons/DNB.js.map +0 -1
  1202. package/extensions/payment-card/icons/Intro.js +0 -15
  1203. package/extensions/payment-card/icons/Intro.js.map +0 -1
  1204. package/extensions/payment-card/icons/MastercardDark.js +0 -21
  1205. package/extensions/payment-card/icons/MastercardDark.js.map +0 -1
  1206. package/extensions/payment-card/icons/MastercardDefault.js +0 -21
  1207. package/extensions/payment-card/icons/MastercardDefault.js.map +0 -1
  1208. package/extensions/payment-card/icons/PB.js +0 -15
  1209. package/extensions/payment-card/icons/PB.js.map +0 -1
  1210. package/extensions/payment-card/icons/Pluss.js +0 -15
  1211. package/extensions/payment-card/icons/Pluss.js.map +0 -1
  1212. package/extensions/payment-card/icons/SagaGold.js +0 -15
  1213. package/extensions/payment-card/icons/SagaGold.js.map +0 -1
  1214. package/extensions/payment-card/icons/SagaPlatinum.js +0 -15
  1215. package/extensions/payment-card/icons/SagaPlatinum.js.map +0 -1
  1216. package/extensions/payment-card/icons/Sbanken.js +0 -15
  1217. package/extensions/payment-card/icons/Sbanken.js.map +0 -1
  1218. package/extensions/payment-card/icons/VisaDefault.js +0 -15
  1219. package/extensions/payment-card/icons/VisaDefault.js.map +0 -1
  1220. package/extensions/payment-card/icons/VisaPlatinum.js +0 -15
  1221. package/extensions/payment-card/icons/VisaPlatinum.js.map +0 -1
  1222. package/extensions/payment-card/utils/backgrounds/ung.d.ts +0 -2
  1223. package/extensions/payment-card/utils/backgrounds/ung.js +0 -3
  1224. package/extensions/payment-card/utils/backgrounds/ung.js.map +0 -1
  1225. /package/cjs/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
  1226. /package/cjs/extensions/payment-card/icons/{DNB.d.ts → brandLogos/DNB.d.ts} +0 -0
  1227. /package/cjs/extensions/payment-card/icons/{Sbanken.d.ts → brandLogos/Sbanken.d.ts} +0 -0
  1228. /package/cjs/extensions/payment-card/icons/{Bedrift.d.ts → loyaltyLogos/Bedrift.d.ts} +0 -0
  1229. /package/cjs/extensions/payment-card/icons/{Business.d.ts → loyaltyLogos/Business.d.ts} +0 -0
  1230. /package/cjs/extensions/payment-card/icons/{Intro.d.ts → loyaltyLogos/Intro.d.ts} +0 -0
  1231. /package/cjs/extensions/payment-card/icons/{PB.d.ts → loyaltyLogos/PB.d.ts} +0 -0
  1232. /package/cjs/extensions/payment-card/icons/{Pluss.d.ts → loyaltyLogos/Pluss.d.ts} +0 -0
  1233. /package/cjs/extensions/payment-card/icons/{SagaGold.d.ts → loyaltyLogos/SagaGold.d.ts} +0 -0
  1234. /package/cjs/extensions/payment-card/icons/{SagaPlatinum.d.ts → loyaltyLogos/SagaPlatinum.d.ts} +0 -0
  1235. /package/cjs/extensions/payment-card/icons/{BankAxept.d.ts → providers/BankAxept.d.ts} +0 -0
  1236. /package/cjs/extensions/payment-card/icons/{MastercardDark.d.ts → providers/MastercardDark.d.ts} +0 -0
  1237. /package/cjs/extensions/payment-card/icons/{MastercardDefault.d.ts → providers/MastercardDefault.d.ts} +0 -0
  1238. /package/cjs/extensions/payment-card/icons/{VisaDefault.d.ts → providers/VisaDefault.d.ts} +0 -0
  1239. /package/cjs/extensions/payment-card/icons/{VisaPlatinum.d.ts → providers/VisaPlatinum.d.ts} +0 -0
  1240. /package/es/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
  1241. /package/es/extensions/payment-card/icons/{DNB.d.ts → brandLogos/DNB.d.ts} +0 -0
  1242. /package/es/extensions/payment-card/icons/{Sbanken.d.ts → brandLogos/Sbanken.d.ts} +0 -0
  1243. /package/es/extensions/payment-card/icons/{Bedrift.d.ts → loyaltyLogos/Bedrift.d.ts} +0 -0
  1244. /package/es/extensions/payment-card/icons/{Business.d.ts → loyaltyLogos/Business.d.ts} +0 -0
  1245. /package/es/extensions/payment-card/icons/{Intro.d.ts → loyaltyLogos/Intro.d.ts} +0 -0
  1246. /package/es/extensions/payment-card/icons/{PB.d.ts → loyaltyLogos/PB.d.ts} +0 -0
  1247. /package/es/extensions/payment-card/icons/{Pluss.d.ts → loyaltyLogos/Pluss.d.ts} +0 -0
  1248. /package/es/extensions/payment-card/icons/{SagaGold.d.ts → loyaltyLogos/SagaGold.d.ts} +0 -0
  1249. /package/es/extensions/payment-card/icons/{SagaPlatinum.d.ts → loyaltyLogos/SagaPlatinum.d.ts} +0 -0
  1250. /package/es/extensions/payment-card/icons/{BankAxept.d.ts → providers/BankAxept.d.ts} +0 -0
  1251. /package/es/extensions/payment-card/icons/{MastercardDark.d.ts → providers/MastercardDark.d.ts} +0 -0
  1252. /package/es/extensions/payment-card/icons/{MastercardDefault.d.ts → providers/MastercardDefault.d.ts} +0 -0
  1253. /package/es/extensions/payment-card/icons/{VisaDefault.d.ts → providers/VisaDefault.d.ts} +0 -0
  1254. /package/es/extensions/payment-card/icons/{VisaPlatinum.d.ts → providers/VisaPlatinum.d.ts} +0 -0
  1255. /package/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
  1256. /package/extensions/payment-card/icons/{DNB.d.ts → brandLogos/DNB.d.ts} +0 -0
  1257. /package/extensions/payment-card/icons/{Sbanken.d.ts → brandLogos/Sbanken.d.ts} +0 -0
  1258. /package/extensions/payment-card/icons/{Bedrift.d.ts → loyaltyLogos/Bedrift.d.ts} +0 -0
  1259. /package/extensions/payment-card/icons/{Business.d.ts → loyaltyLogos/Business.d.ts} +0 -0
  1260. /package/extensions/payment-card/icons/{Intro.d.ts → loyaltyLogos/Intro.d.ts} +0 -0
  1261. /package/extensions/payment-card/icons/{PB.d.ts → loyaltyLogos/PB.d.ts} +0 -0
  1262. /package/extensions/payment-card/icons/{Pluss.d.ts → loyaltyLogos/Pluss.d.ts} +0 -0
  1263. /package/extensions/payment-card/icons/{SagaGold.d.ts → loyaltyLogos/SagaGold.d.ts} +0 -0
  1264. /package/extensions/payment-card/icons/{SagaPlatinum.d.ts → loyaltyLogos/SagaPlatinum.d.ts} +0 -0
  1265. /package/extensions/payment-card/icons/{BankAxept.d.ts → providers/BankAxept.d.ts} +0 -0
  1266. /package/extensions/payment-card/icons/{MastercardDark.d.ts → providers/MastercardDark.d.ts} +0 -0
  1267. /package/extensions/payment-card/icons/{MastercardDefault.d.ts → providers/MastercardDefault.d.ts} +0 -0
  1268. /package/extensions/payment-card/icons/{VisaDefault.d.ts → providers/VisaDefault.d.ts} +0 -0
  1269. /package/extensions/payment-card/icons/{VisaPlatinum.d.ts → providers/VisaPlatinum.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"InputMaskedDocs.js","names":["inputMaskedProperties","as_number","doc","type","status","as_percent","as_currency","mask_options","number_mask","currency_mask","number_format","locale","mask","show_mask","show_guide","placeholder_char","keep_char_positions","inputMaskedEvents","on_change","inputMaskedMaskOptionsProperties","prefix","suffix","includeThousandsSeparator","thousandsSeparatorSymbol","allowDecimal","decimalSymbol","decimalLimit","integerLimit","requireDecimal","allowNegative","disallowLeadingZeroes"],"sources":["../../../../src/components/input-masked/InputMaskedDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const inputMaskedProperties: PropertiesTableProps = {\n as_number: {\n doc: 'Set to `true` to automatically set a number mask based on the given or inherited locale.',\n type: 'boolean',\n status: 'optional',\n },\n as_percent: {\n doc: 'Set to `true` to automatically set a number mask with a percentage sign based on the given or inherited locale.',\n type: 'boolean',\n status: 'optional',\n },\n as_currency: {\n doc: 'Set to `true` to use `NOK` or give it a currency code e.g. `USD` to automatically set a currency mask based on the given or inherited locale.',\n type: 'boolean',\n status: 'optional',\n },\n mask_options: {\n doc: 'Use it to manipulate internal masks. You can use it instead of e.g. `number_mask` or `currency_mask`. All options are listed below.',\n type: 'object',\n status: 'optional',\n },\n number_mask: {\n doc: 'Set to `true` to enable the default numbers formatting – or give an `object` containing the number mask properties. More details below. Can be a JSON string as well, containing the number mask properties. Is disabled by default.',\n type: ['boolean', 'object'],\n status: 'optional',\n },\n currency_mask: {\n doc: 'Set to `true` or set the _valuta_ (currency_mask=\"kr\") to enable a custom currency mask – or give an `object` containing the number mask properties. More details below. Can be a JSON string as well, containing the number mask properties. Is disabled by default. Defaults to `kr`.',\n type: ['boolean', 'object'],\n status: 'optional',\n },\n number_format: {\n doc: 'Use an object with [NumberFormat](/uilib/components/number-format/properties).',\n type: 'object',\n status: 'optional',\n },\n locale: {\n doc: 'Define the locale to be used in the `as_number` or `as_currency` masked. It will be inherited from the [Eufemia Provider](/uilib/usage/customisation/provider) if not given. Defaults to `nb-NO`.',\n type: 'string',\n status: 'optional',\n },\n mask: {\n doc: 'A mask can be defined both as a [RegExp style of characters](https://github.com/text-mask/text-mask/blob/master/componentDocumentation.md#readme) or a callback function. Example below. Defaults to number mask.',\n type: ['RegExp', 'function'],\n status: 'optional',\n },\n show_mask: {\n doc: 'Show mask when input is empty and has no focus. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n show_guide: {\n doc: \"When `false` is given, it doesn't print out placeholder characters and only adds mask characters when the user reaches them as they're typing. Defaults to `true`.\",\n type: 'boolean',\n status: 'optional',\n },\n placeholder_char: {\n doc: 'The placeholder character represents the fillable spot in the mask (e.g. `_`). Defaults to invisible space.',\n type: 'string',\n status: 'optional',\n },\n keep_char_positions: {\n doc: 'When `true`, adding or deleting characters will not affect the positions of existing characters. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n '[Input](/uilib/components/input/properties)': {\n doc: 'All `Input` properties are supported.',\n type: 'Various',\n status: 'optional',\n },\n}\n\nexport const inputMaskedEvents: PropertiesTableProps = {\n on_change: {\n doc: 'will be called on value changes made by the user. Returns an object with the value as a string and the native event: `{ value, numberValue, cleanedValue, event }`.',\n type: 'function',\n status: 'optional',\n },\n '[Input](/uilib/components/input/events)': {\n doc: 'All `Input` events are supported.',\n type: 'Various',\n status: 'optional',\n },\n}\n\nexport const inputMaskedMaskOptionsProperties: PropertiesTableProps = {\n prefix: {\n doc: 'What to display before the amount. Defaults to an empty string.',\n type: 'string',\n status: 'optional',\n },\n suffix: {\n doc: 'What to display after the amount. Defaults to an empty string.',\n type: 'string',\n status: 'optional',\n },\n includeThousandsSeparator: {\n doc: 'Whether or not to separate thousands. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n thousandsSeparatorSymbol: {\n doc: \"Character with which to separate thousands. Defaults to `' '`.\",\n type: 'string',\n status: 'optional',\n },\n allowDecimal: {\n doc: 'Whether or not to allow the user to enter a fraction with the amount. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n decimalSymbol: {\n doc: \"Character that will act as a decimal point. Defaults to `','`.\",\n type: 'string',\n status: 'optional',\n },\n decimalLimit: {\n doc: 'How many digits to allow after the decimal. Defaults to `2`.',\n type: 'number',\n status: 'optional',\n },\n integerLimit: {\n doc: 'Limit the length of the integer number. Defaults to `null` for unlimited.',\n type: 'number',\n status: 'optional',\n },\n requireDecimal: {\n doc: 'Whether or not to always include a decimal point and placeholder for decimal digits after the integer. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n allowNegative: {\n doc: 'Whether or not to allow negative numbers. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n disallowLeadingZeroes: {\n doc: 'Whether or not to allow leading zeroes. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"InputMaskedDocs.js","names":["inputMaskedProperties","as_number","doc","type","status","as_percent","as_currency","mask_options","number_mask","currency_mask","number_format","locale","mask","show_mask","show_guide","placeholder_char","keep_char_positions","inputMaskedEvents","on_change","inputMaskedMaskOptionsProperties","prefix","suffix","includeThousandsSeparator","thousandsSeparatorSymbol","allowDecimal","decimalSymbol","decimalLimit","integerLimit","requireDecimal","allowNegative","disallowLeadingZeroes"],"sources":["../../../../src/components/input-masked/InputMaskedDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const inputMaskedProperties: PropertiesTableProps = {\n as_number: {\n doc: 'Set to `true` to automatically set a number mask based on the given or inherited locale.',\n type: 'boolean',\n status: 'optional',\n },\n as_percent: {\n doc: 'Set to `true` to automatically set a number mask with a percentage sign based on the given or inherited locale.',\n type: 'boolean',\n status: 'optional',\n },\n as_currency: {\n doc: 'Set to `true` to use `NOK` or give it a currency code e.g. `USD` to automatically set a currency mask based on the given or inherited locale.',\n type: 'boolean',\n status: 'optional',\n },\n mask_options: {\n doc: 'Use it to manipulate internal masks. You can use it instead of e.g. `number_mask` or `currency_mask`. All options are listed below.',\n type: 'object',\n status: 'optional',\n },\n number_mask: {\n doc: 'Set to `true` to enable the default numbers formatting – or give an `object` containing the number mask properties. More details below. Can be a JSON string as well, containing the number mask properties. Is disabled by default.',\n type: ['boolean', 'object'],\n status: 'optional',\n },\n currency_mask: {\n doc: 'Set to `true` or set the _valuta_ (currency_mask=\"kr\") to enable a custom currency mask – or give an `object` containing the number mask properties. More details below. Can be a JSON string as well, containing the number mask properties. Is disabled by default. Defaults to `kr`.',\n type: ['boolean', 'object'],\n status: 'optional',\n },\n number_format: {\n doc: 'Use an object with [NumberFormat](/uilib/components/number-format/properties).',\n type: 'object',\n status: 'optional',\n },\n locale: {\n doc: 'Define the locale to be used in the `as_number` or `as_currency` masked. It will be inherited from the [Eufemia Provider](/uilib/usage/customisation/provider) if not given. Defaults to `nb-NO`.',\n type: 'string',\n status: 'optional',\n },\n mask: {\n doc: 'A mask can be defined both as a [RegExp style of characters](https://github.com/text-mask/text-mask/blob/master/componentDocumentation.md#readme) or a callback function. Example below. Defaults to number mask.',\n type: ['RegExp', 'function'],\n status: 'optional',\n },\n show_mask: {\n doc: 'Show mask when input is empty and has no focus. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n show_guide: {\n doc: \"When `false` is given, it doesn't print out placeholder characters and only adds mask characters when the user reaches them as they're typing. Defaults to `true`.\",\n type: 'boolean',\n status: 'optional',\n },\n placeholder_char: {\n doc: 'The placeholder character represents the fillable spot in the mask (e.g. `_`). Defaults to invisible space.',\n type: 'string',\n status: 'optional',\n },\n keep_char_positions: {\n doc: 'When `true`, adding or deleting characters will not affect the positions of existing characters. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n '[Input](/uilib/components/input/properties)': {\n doc: 'All `Input` properties are supported.',\n type: 'Various',\n status: 'optional',\n },\n}\n\nexport const inputMaskedEvents: PropertiesTableProps = {\n on_change: {\n doc: 'will be called on value changes made by the user. Returns an object with the value as a string and the native event: `{ value, numberValue, cleanedValue, event }`.',\n type: 'function',\n status: 'optional',\n },\n '[Input](/uilib/components/input/events)': {\n doc: 'All `Input` events are supported.',\n type: 'Various',\n status: 'optional',\n },\n}\n\nexport const inputMaskedMaskOptionsProperties: PropertiesTableProps = {\n prefix: {\n doc: 'What to display before the amount. Defaults to an empty string.',\n type: 'string',\n status: 'optional',\n },\n suffix: {\n doc: 'What to display after the amount. Defaults to an empty string.',\n type: 'string',\n status: 'optional',\n },\n includeThousandsSeparator: {\n doc: 'Whether or not to separate thousands. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n thousandsSeparatorSymbol: {\n doc: \"Character with which to separate thousands. Defaults to `' '`.\",\n type: 'string',\n status: 'optional',\n },\n allowDecimal: {\n doc: 'Whether or not to allow the user to enter a fraction with the amount. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n decimalSymbol: {\n doc: \"Character that will act as a decimal point. Defaults to `','`.\",\n type: 'string',\n status: 'optional',\n },\n decimalLimit: {\n doc: 'How many digits to allow after the decimal. Defaults to `2`.',\n type: 'number',\n status: 'optional',\n },\n integerLimit: {\n doc: 'Limit the length of the integer number. Defaults to `null` for unlimited.',\n type: 'number',\n status: 'optional',\n },\n requireDecimal: {\n doc: 'Whether or not to always include a decimal point and placeholder for decimal digits after the integer. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n allowNegative: {\n doc: 'Whether or not to allow negative numbers. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n disallowLeadingZeroes: {\n doc: 'Whether or not to allow leading zeroes during typing. *A leading zero is any 0 digit that comes before the first nonzero digit in a number string in positional notation* - [wikipedia](https://en.wikipedia.org/wiki/Leading_zero). Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n}\n"],"mappings":"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","ignoreList":[]}
@@ -16,6 +16,7 @@ export function useMaskParams(): any;
16
16
  export function useInputElement(): (params: any, innerRef: any) => import("react/jsx-runtime").JSX.Element;
17
17
  export function useEventMapping({ setLocalValue }: object): {
18
18
  onBeforeInput: (event: any) => any;
19
+ onInput: (event: any) => any;
19
20
  onFocus: (params: any) => any;
20
21
  onBlur: (params: any) => any;
21
22
  onMouseUp: (event: any) => any;
@@ -8,9 +8,10 @@ import "core-js/modules/es.string.replace.js";
8
8
  import "core-js/modules/web.dom-collections.iterator.js";
9
9
  import React, { useCallback } from 'react';
10
10
  import classnames from 'classnames';
11
- import { cleanNumber, getCurrencySymbol } from '../number-format/NumberUtils';
11
+ import { cleanNumber, getCurrencySymbol, NUMBER_MINUS } from '../number-format/NumberUtils';
12
12
  import { isTrue, dispatchCustomElementEvent, extendPropsWithContext, keycode } from '../../shared/component-helper';
13
13
  import { safeSetSelection } from './text-mask/createTextMaskInputElement';
14
+ import { isNumber } from './text-mask/utilities';
14
15
  import TextMask from './TextMask';
15
16
  import createNumberMask from './addons/createNumberMask';
16
17
  import InputMaskedContext from './InputMaskedContext';
@@ -185,7 +186,10 @@ export const useEventMapping = _ref => {
185
186
  return {
186
187
  onBeforeInput: event => callEvent({
187
188
  event
188
- }, 'on_before_input'),
189
+ }, 'onBeforeInput'),
190
+ onInput: event => callEvent({
191
+ event
192
+ }, 'onInput'),
189
193
  onFocus: params => callEvent(params, 'on_focus'),
190
194
  onBlur: params => callEvent(params, 'on_blur'),
191
195
  onMouseUp: event => callEvent({
@@ -228,7 +232,7 @@ const useCallEvent = _ref2 => {
228
232
  if (name === 'on_key_down' && (event.which === 229 || keyCode === undefined)) {
229
233
  isUnidentified = true;
230
234
  }
231
- if (isUnidentified && name === 'on_before_input' && typeof (event === null || event === void 0 ? void 0 : event.data) !== 'undefined') {
235
+ if (isUnidentified && name === 'onBeforeInput' && typeof (event === null || event === void 0 ? void 0 : event.data) !== 'undefined') {
232
236
  name = 'on_key_down';
233
237
  keyCode = event.data;
234
238
  isUnidentified = false;
@@ -237,10 +241,38 @@ const useCallEvent = _ref2 => {
237
241
  keyCode = '0';
238
242
  isUnidentified = false;
239
243
  }
240
- if (name === 'on_key_down' && !isUnidentified && maskParams !== null && maskParams !== void 0 && maskParams.disallowLeadingZeroes && (keyCode === '0' || keyCode === 'numpad 0' || value.replace(/[^\d]/g, '') === '' && decimalSeparators.test(keyCode))) {
241
- const testValue = (value.slice(0, selStart) + '0' + value.slice(selStart + 1, value.length)).replace(/[^\d]/g, '');
242
- if (/^0/.test(testValue)) {
243
- event.preventDefault();
244
+ if (maskParams !== null && maskParams !== void 0 && maskParams.disallowLeadingZeroes && (name === 'onInput' || name === 'on_blur')) {
245
+ const isNegative = new RegExp(`^${NUMBER_MINUS}`, 'g').test(value);
246
+ if ((isNegative ? selStart > 1 : selStart > 0) || name === 'on_blur') {
247
+ const onlyNumber = value.replace(new RegExp(`[^\\d${maskParams.decimalSymbol}]`, 'g'), '');
248
+ let leadingZeroes = 0;
249
+ for (let i = 0; i < onlyNumber.length - 1; i++) {
250
+ if (onlyNumber.charAt(i) === '0' && onlyNumber.charAt(i + 1) !== maskParams.decimalSymbol) {
251
+ leadingZeroes++;
252
+ } else {
253
+ break;
254
+ }
255
+ }
256
+ let newSelStart = selStart;
257
+ let newValue = value;
258
+ let firstNumberIndex = 0;
259
+ if (leadingZeroes > 0) {
260
+ for (let i = 0; i < value.length; i++) {
261
+ firstNumberIndex = i;
262
+ const char = value.charAt(i);
263
+ if (char !== '0' && isNumber(parseInt(char)) || value.charAt(i + 1) === maskParams.decimalSymbol) {
264
+ break;
265
+ }
266
+ }
267
+ newValue = value.substring(0, isNegative ? 1 : 0) + value.substring(firstNumberIndex);
268
+ newSelStart = selStart > firstNumberIndex ? selStart - (value.length - newValue.length) : isNegative ? 1 : 0;
269
+ }
270
+ if (newValue !== value) {
271
+ setLocalValue(newValue);
272
+ event.target.value = newValue;
273
+ safeSetSelection(event.target, newSelStart);
274
+ value = newValue;
275
+ }
244
276
  }
245
277
  }
246
278
  if (name === 'on_key_down' && isNumberMask && !isUnidentified && maskParams !== null && maskParams !== void 0 && maskParams.decimalSymbol) {
@@ -1 +1 @@
1
- {"version":3,"file":"InputMaskedHooks.js","names":["React","useCallback","classnames","cleanNumber","getCurrencySymbol","isTrue","dispatchCustomElementEvent","extendPropsWithContext","keycode","safeSetSelection","TextMask","createNumberMask","InputMaskedContext","isRequestingLocaleSupport","isRequestingNumberMask","correctNumberValue","handlePercentMask","handleCurrencyMask","handleNumberMask","correctCaretPosition","getSoftKeyboardAttributes","handleThousandsSeparator","handleDecimalSeparator","fromJSON","invisibleSpace","useLayoutEffect","window","useEffect","useFilteredProps","props","useContext","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","_objectWithoutProperties","_excluded","htmlAttributes","Object","freeze","useTranslation","context","useLocalValue","maskParams","useNumberMaskParams","localValue","setLocalValue","useState","value","useNumberMask","useMask","numberMask","useMaskParams","placeholder","showMask","placeholderChar","showGuide","keepCharPositions","useInputElement","inner_ref","isFn","refHook","useRef","ref","current","inputElementRef","createElement","params","innerRef","_extends","inputRef","inputElement","guide","className","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","which","data","key","disallowLeadingZeroes","replace","test","testValue","slice","length","preventDefault","decimalSymbol","hasDecimalSymbol","includes","allowedDecimals","decimalLimit","allowDecimal","charAtSelection","index","indexOf","thousandsSeparatorSymbol","num","prefix","suffix","decimalSeparator","thousandsSeparator","numberValue","Number","cleanedValue","String","charAt","runCorrectCaretPosition","__getCorrectCaretPosition","result","_currency_mask","_objectSpread","currency","_currency_mask2","currencyDisplay"],"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":[]}
1
+ {"version":3,"file":"InputMaskedHooks.js","names":["React","useCallback","classnames","cleanNumber","getCurrencySymbol","NUMBER_MINUS","isTrue","dispatchCustomElementEvent","extendPropsWithContext","keycode","safeSetSelection","isNumber","TextMask","createNumberMask","InputMaskedContext","isRequestingLocaleSupport","isRequestingNumberMask","correctNumberValue","handlePercentMask","handleCurrencyMask","handleNumberMask","correctCaretPosition","getSoftKeyboardAttributes","handleThousandsSeparator","handleDecimalSeparator","fromJSON","invisibleSpace","useLayoutEffect","window","useEffect","useFilteredProps","props","useContext","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","_objectWithoutProperties","_excluded","htmlAttributes","Object","freeze","useTranslation","context","useLocalValue","maskParams","useNumberMaskParams","localValue","setLocalValue","useState","value","useNumberMask","useMask","numberMask","useMaskParams","placeholder","showMask","placeholderChar","showGuide","keepCharPositions","useInputElement","inner_ref","isFn","refHook","useRef","ref","current","inputElementRef","createElement","params","innerRef","_extends","inputRef","inputElement","guide","className","useEventMapping","_ref","callEvent","useCallEvent","onBeforeInput","event","onInput","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","which","data","key","disallowLeadingZeroes","isNegative","RegExp","test","onlyNumber","replace","decimalSymbol","leadingZeroes","i","length","charAt","newSelStart","newValue","firstNumberIndex","char","parseInt","substring","hasDecimalSymbol","includes","allowedDecimals","decimalLimit","allowDecimal","preventDefault","charAtSelection","slice","index","indexOf","thousandsSeparatorSymbol","num","prefix","suffix","decimalSeparator","thousandsSeparator","numberValue","Number","cleanedValue","String","runCorrectCaretPosition","__getCorrectCaretPosition","result","_currency_mask","_objectSpread","currency","_currency_mask2","currencyDisplay"],"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 NUMBER_MINUS,\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'\nimport { isNumber } from './text-mask/utilities'\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 }, 'onBeforeInput'),\n onInput: (event) => callEvent({ event }, 'onInput'),\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 === 'onBeforeInput' &&\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 // Also remove leading zeroes when the input is blurred.\n if (\n maskParams?.disallowLeadingZeroes &&\n (name === 'onInput' || name === 'on_blur')\n ) {\n const isNegative = new RegExp(`^${NUMBER_MINUS}`, 'g').test(value)\n if (\n (isNegative ? selStart > 1 : selStart > 0) ||\n name === 'on_blur'\n ) {\n const onlyNumber = value.replace(\n new RegExp(`[^\\\\d${maskParams.decimalSymbol}]`, 'g'),\n ''\n )\n let leadingZeroes = 0\n for (let i = 0; i < onlyNumber.length - 1; i++) {\n if (\n onlyNumber.charAt(i) === '0' &&\n onlyNumber.charAt(i + 1) !== maskParams.decimalSymbol\n ) {\n leadingZeroes++\n } else {\n break\n }\n }\n let newSelStart = selStart\n let newValue = value\n let firstNumberIndex = 0\n if (leadingZeroes > 0) {\n for (let i = 0; i < value.length; i++) {\n firstNumberIndex = i\n const char = value.charAt(i)\n\n if (\n (char !== '0' && isNumber(parseInt(char))) ||\n value.charAt(i + 1) === maskParams.decimalSymbol\n ) {\n break\n }\n }\n newValue =\n value.substring(0, isNegative ? 1 : 0) +\n value.substring(firstNumberIndex)\n\n newSelStart =\n selStart > firstNumberIndex\n ? selStart - (value.length - newValue.length)\n : isNegative\n ? 1\n : 0\n }\n\n if (newValue !== value) {\n setLocalValue(newValue)\n event.target.value = newValue\n safeSetSelection(event.target, newSelStart)\n value = newValue\n }\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":[]}
@@ -3,7 +3,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
3
3
  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; }
4
4
  import "core-js/modules/es.string.replace.js";
5
5
  import "core-js/modules/web.dom-collections.iterator.js";
6
- import { format, getDecimalSeparator, getThousandsSeparator } from '../number-format/NumberUtils';
6
+ import { format, getDecimalSeparator, getThousandsSeparator, NUMBER_MINUS } from '../number-format/NumberUtils';
7
7
  import { warn } from '../../shared/component-helper';
8
8
  import { IS_IOS } from '../../shared/helpers';
9
9
  import { safeSetSelection } from './text-mask/createTextMaskInputElement';
@@ -62,8 +62,9 @@ export const correctNumberValue = _ref3 => {
62
62
  const decimalSymbol = maskParams.decimalSymbol;
63
63
  value = value.replace('.', decimalSymbol);
64
64
  if (localValue !== null) {
65
- const localNumberValue = localValue.replace(/[^\d,.-]/g, '');
66
- const numberValue = value.replace(/[^\d,.-]/g, '');
65
+ const invalidCharactersRegex = new RegExp(`[^${NUMBER_MINUS}\\d${decimalSymbol}]`, 'g');
66
+ const localNumberValue = localValue.replace(invalidCharactersRegex, '');
67
+ const numberValue = value.replace(invalidCharactersRegex, '');
67
68
  const valueHasDecimal = numberValue.includes(decimalSymbol);
68
69
  if (!valueHasDecimal) {
69
70
  const endsWithDecimal = localNumberValue.endsWith(decimalSymbol);
@@ -74,10 +75,10 @@ export const correctNumberValue = _ref3 => {
74
75
  value = `${value}${decimalSymbol}0`;
75
76
  }
76
77
  }
77
- if (localNumberValue !== '0' && localNumberValue.startsWith('0') && parseFloat(numberValue.replace(decimalSymbol, '.')) === parseFloat(localNumberValue.replace(decimalSymbol, '.'))) {
78
+ if (localNumberValue !== '0' && new RegExp(`^(0|(${NUMBER_MINUS})0)`).test(localNumberValue) && parseFloat(numberValue.replace(decimalSymbol, '.')) === parseFloat(localNumberValue.replace(decimalSymbol, '.'))) {
78
79
  value = localValue;
79
80
  }
80
- if (/^(-|-0)$/.test(localValue.replace(/[^\d-0]/g, ''))) {
81
+ if (new RegExp(`^((${NUMBER_MINUS})|(${NUMBER_MINUS})0)$`).test(localValue.replace(new RegExp(`[^\\d(${NUMBER_MINUS})0]`, 'g'), ''))) {
81
82
  value = localValue;
82
83
  } else if (localNumberValue === '' && numberValue === '0') {
83
84
  value = '';
@@ -1 +1 @@
1
- {"version":3,"file":"InputMaskedUtils.js","names":["format","getDecimalSeparator","getThousandsSeparator","warn","IS_IOS","safeSetSelection","enableLocaleSupportWhen","enableNumberMaskWhen","invisibleSpace","isRequestingLocaleSupport","props","Object","entries","some","_ref","k","v","includes","isRequestingNumberMask","_ref2","correctNumberValue","_ref3","localValue","locale","maskParams","value","undefined","String","isNaN","parseFloat","decimalPos","indexOf","integerLimit","limit","integers","split","isNegative","length","decimals","slice","shouldHaveDecimals","allowDecimal","decimalLimit","number_format","options","_objectSpread","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","mask","chars","l","i","RegExp","n","_mask$test","call","e","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","allowNegative","inputMode","handleThousandsSeparator","handleDecimalSeparator","fromJSON","str","fallback","arguments","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
+ {"version":3,"file":"InputMaskedUtils.js","names":["format","getDecimalSeparator","getThousandsSeparator","NUMBER_MINUS","warn","IS_IOS","safeSetSelection","enableLocaleSupportWhen","enableNumberMaskWhen","invisibleSpace","isRequestingLocaleSupport","props","Object","entries","some","_ref","k","v","includes","isRequestingNumberMask","_ref2","correctNumberValue","_ref3","localValue","locale","maskParams","value","undefined","String","isNaN","parseFloat","decimalPos","indexOf","integerLimit","limit","integers","split","isNegative","length","decimals","slice","shouldHaveDecimals","allowDecimal","decimalLimit","number_format","options","_objectSpread","decimalSymbol","replace","invalidCharactersRegex","RegExp","localNumberValue","numberValue","valueHasDecimal","endsWithDecimal","endsWith","endsWithZeroAndDecimal","test","correctCaretPosition","element","maskParamsRef","correction","current","suffix","prefix","start","selectionStart","end","selectionEnd","suffixStart","suffixEnd","pos","placeholderChar","prefixStart","prefixEnd","char","mask","chars","l","i","n","_mask$test","call","e","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","allowNegative","inputMode","handleThousandsSeparator","handleDecimalSeparator","fromJSON","str","fallback","arguments","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 NUMBER_MINUS,\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 invalidCharactersRegex = new RegExp(\n `[^${NUMBER_MINUS}\\\\d${decimalSymbol}]`,\n 'g'\n )\n const localNumberValue = localValue.replace(invalidCharactersRegex, '')\n const numberValue = value.replace(invalidCharactersRegex, '')\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\n if (\n localNumberValue !== '0' &&\n new RegExp(`^(0|(${NUMBER_MINUS})0)`).test(localNumberValue) &&\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 (\n new RegExp(`^((${NUMBER_MINUS})|(${NUMBER_MINUS})0)$`).test(\n localValue.replace(new RegExp(`[^\\\\d(${NUMBER_MINUS})0]`, 'g'), '')\n )\n ) {\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":";;;;;AAKA,SACEA,MAAM,EACNC,mBAAmB,EACnBC,qBAAqB,EACrBC,YAAY,QACP,8BAA8B;AACrC,SAASC,IAAI,QAAQ,+BAA+B;AACpD,SAASC,MAAM,QAAQ,sBAAsB;AAC7C,SAASC,gBAAgB,QAAQ,wCAAwC;AAEzE,MAAMC,uBAAuB,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC;AAC1E,MAAMC,oBAAoB,GAAG,CAC3B,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,eAAe,CAChB;AAED,OAAO,MAAMC,cAAc,GAAG,QAAQ;AAQtC,OAAO,MAAMC,yBAAyB,GAAIC,KAAK,IAAK;EAClD,OAAOC,MAAM,CAACC,OAAO,CAACF,KAAK,CAAC,CAACG,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;AAQD,OAAO,MAAMG,sBAAsB,GAAIR,KAAK,IAAK;EAC/C,OAAOC,MAAM,CAACC,OAAO,CAACF,KAAK,CAAC,CAACG,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;AAcD,OAAO,MAAMK,kBAAkB,GAAGC,KAAA,IAK5B;EAAA,IAL6B;IACjCC,UAAU,GAAG,IAAI;IACjBZ,KAAK;IACLa,MAAM;IACNC;EACF,CAAC,GAAAH,KAAA;EACC,IAAII,KAAK,GACPf,KAAK,CAACe,KAAK,KAAK,IAAI,GAChB,IAAI,GACJf,KAAK,CAACe,KAAK,KAAKC,SAAS,GACzBA,SAAS,GACTC,MAAM,CAACjB,KAAK,CAACe,KAAK,CAAC;EAEzB,IAAIG,KAAK,CAACC,UAAU,CAACJ,KAAK,CAAC,CAAC,EAAE;IAC5B,OAAOA,KAAK;EACd;EAEA,MAAMK,UAAU,GAAGL,KAAK,CAACM,OAAO,CAAC,GAAG,CAAC;EAErC,IACEP,UAAU,CAACQ,YAAY,IACvB,OAAOR,UAAU,CAACQ,YAAY,KAAK,QAAQ,EAC3C;IACA,MAAMC,KAAK,GAAGT,UAAU,CAACQ,YAAY;IACrC,MAAME,QAAQ,GAAGT,KAAK,CAACU,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpC,MAAMC,UAAU,GAAGP,UAAU,CAACK,QAAQ,CAAC,GAAG,CAAC;IAC3C,IAAIA,QAAQ,CAACG,MAAM,IAAID,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,KAAK,EAAE;MAClD,MAAMK,QAAQ,GAAGR,UAAU,GAAG,CAAC,GAAGL,KAAK,CAACc,KAAK,CAACT,UAAU,CAAC,GAAG,EAAE;MAC9DL,KAAK,GAAGS,QAAQ,CAACK,KAAK,CAAC,CAAC,EAAEN,KAAK,IAAIG,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAGE,QAAQ;IACpE;EACF;EAEA,MAAME,kBAAkB,GACtBhB,UAAU,CAACiB,YAAY,IACtBjB,UAAU,CAACkB,YAAY,GAAG,CAAC,IAAIlB,UAAU,CAACiB,YAAY,KAAK,KAAM;EAEpE,IAAI,CAACD,kBAAkB,EAAE;IACvB,IAAIV,UAAU,GAAG,CAAC,CAAC,EAAE;MACnBL,KAAK,GAAGA,KAAK,CAACc,KAAK,CAAC,CAAC,EAAET,UAAU,CAAC;IACpC;EACF;EAKA,IAAIpB,KAAK,CAACiC,aAAa,EAAE;IACvB,MAAMC,OAAO,GAAAC,aAAA;MACXtB,MAAM;MACNe,QAAQ,EAAE;IAAC,GACR5B,KAAK,CAACiC,aAAa,CACvB;IACD,IAAIH,kBAAkB,EAAE;MACtBI,OAAO,CAACN,QAAQ,GAAGd,UAAU,CAACkB,YAAY;IAC5C;IACAjB,KAAK,GAAG1B,MAAM,CAAC0B,KAAK,EAAEmB,OAAO,CAAC;EAChC;EAEA,MAAME,aAAa,GAAGtB,UAAU,CAACsB,aAAa;EAC9CrB,KAAK,GAAGA,KAAK,CAACsB,OAAO,CAAC,GAAG,EAAED,aAAa,CAAC;EAEzC,IAAIxB,UAAU,KAAK,IAAI,EAAE;IACvB,MAAM0B,sBAAsB,GAAG,IAAIC,MAAM,CACvC,KAAK/C,YAAY,MAAM4C,aAAa,GAAG,EACvC,GACF,CAAC;IACD,MAAMI,gBAAgB,GAAG5B,UAAU,CAACyB,OAAO,CAACC,sBAAsB,EAAE,EAAE,CAAC;IACvE,MAAMG,WAAW,GAAG1B,KAAK,CAACsB,OAAO,CAACC,sBAAsB,EAAE,EAAE,CAAC;IAC7D,MAAMI,eAAe,GAAGD,WAAW,CAAClC,QAAQ,CAAC6B,aAAa,CAAC;IAE3D,IAAI,CAACM,eAAe,EAAE;MACpB,MAAMC,eAAe,GAAGH,gBAAgB,CAACI,QAAQ,CAACR,aAAa,CAAC;MAChE,MAAMS,sBAAsB,GAAGL,gBAAgB,CAACI,QAAQ,CACtD,GAAGR,aAAa,GAClB,CAAC;MAED,IAAIO,eAAe,EAAE;QACnB5B,KAAK,GAAG,GAAGA,KAAK,GAAGqB,aAAa,EAAE;MACpC,CAAC,MAAM,IACLS,sBAAsB,IACtB,CAACJ,WAAW,CAACG,QAAQ,CAAC,GAAGR,aAAa,GAAG,CAAC,EAC1C;QAMArB,KAAK,GAAG,GAAGA,KAAK,GAAGqB,aAAa,GAAG;MACrC;IACF;IAcA,IACEI,gBAAgB,KAAK,GAAG,IACxB,IAAID,MAAM,CAAC,QAAQ/C,YAAY,KAAK,CAAC,CAACsD,IAAI,CAACN,gBAAgB,CAAC,IAC5DrB,UAAU,CAACsB,WAAW,CAACJ,OAAO,CAACD,aAAa,EAAE,GAAG,CAAC,CAAC,KACjDjB,UAAU,CAACqB,gBAAgB,CAACH,OAAO,CAACD,aAAa,EAAE,GAAG,CAAC,CAAC,EAC1D;MACArB,KAAK,GAAGH,UAAU;IACpB;IAOA,IACE,IAAI2B,MAAM,CAAC,MAAM/C,YAAY,MAAMA,YAAY,MAAM,CAAC,CAACsD,IAAI,CACzDlC,UAAU,CAACyB,OAAO,CAAC,IAAIE,MAAM,CAAC,SAAS/C,YAAY,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CACpE,CAAC,EACD;MACAuB,KAAK,GAAGH,UAAU;IACpB,CAAC,MAAM,IAAI4B,gBAAgB,KAAK,EAAE,IAAIC,WAAW,KAAK,GAAG,EAAE;MACzD1B,KAAK,GAAG,EAAE;IACZ;EACF;EAEA,OAAOA,KAAK;AACd,CAAC;AASD,OAAO,MAAMgC,oBAAoB,GAAGA,CAACC,OAAO,EAAEC,aAAa,EAAEjD,KAAK,KAAK;EACrE,MAAMkD,UAAU,GAAGA,CAAA,KAAM;IACvB,IAAI;MACF,MAAMpC,UAAU,GAAGmC,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEE,OAAO;MAEzC,MAAMC,MAAM,GAAGtC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEsC,MAAM;MACjC,MAAMC,MAAM,GAAGvC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEuC,MAAM;MAEjC,MAAMC,KAAK,GAAGN,OAAO,CAACO,cAAc;MACpC,MAAMC,GAAG,GAAGR,OAAO,CAACS,YAAY;MAEhC,IAAIH,KAAK,KAAKE,GAAG,EAAE;QACjB;MACF;MAEA,IAAIJ,MAAM,IAAIC,MAAM,EAAE;QACpB,MAAMK,WAAW,GAAGV,OAAO,CAACjC,KAAK,CAACM,OAAO,CAAC+B,MAAM,CAAC;QACjD,MAAMO,SAAS,GAAGD,WAAW,IAAGN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEzB,MAAM;QAC9C,IAAIiC,GAAG,GAAG5C,SAAS;QAEnB,IAAIsC,KAAK,IAAII,WAAW,IAAIJ,KAAK,IAAIK,SAAS,EAAE;UAC9CC,GAAG,GAAGF,WAAW;UAKjB,IACE5C,UAAU,CAAC+C,eAAe,KAAK/D,cAAc,IAC7CkD,OAAO,CAACjC,KAAK,CAACY,MAAM,GAAG,CAAC,KAAKV,MAAM,CAACmC,MAAM,GAAGC,MAAM,CAAC,CAAC1B,MAAM,EAC3D;YACAiC,GAAG,GAAGA,GAAG,GAAG,CAAC;UACf;QACF,CAAC,MAAM;UACL,MAAME,WAAW,GAAGd,OAAO,CAACjC,KAAK,CAACM,OAAO,CAACgC,MAAM,CAAC;UACjD,MAAMU,SAAS,GAAGD,WAAW,IAAGT,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE1B,MAAM,KAAI,CAAC;UAEnD,IAAI2B,KAAK,IAAIQ,WAAW,IAAIR,KAAK,IAAIS,SAAS,EAAE;YAC9CH,GAAG,GAAGG,SAAS;UACjB;QACF;QAEA,MAAMC,IAAI,GAAGhB,OAAO,CAACjC,KAAK,CAACc,KAAK,CAAC+B,GAAG,GAAG,CAAC,EAAEA,GAAG,CAAC;QAC9C,IAAII,IAAI,KAAKlE,cAAc,EAAE;UAC3B8D,GAAG,GAAGF,WAAW,GAAG,CAAC;QACvB;QAEA,IAAI,CAACxC,KAAK,CAACC,UAAU,CAACyC,GAAG,CAAC,CAAC,EAAE;UAC3BjE,gBAAgB,CAACqD,OAAO,EAAEY,GAAG,CAAC;QAChC;MACF,CAAC,MAAM,IAAI5D,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEiE,IAAI,IAAIjB,OAAO,CAACjC,KAAK,CAACY,MAAM,KAAK6B,GAAG,EAAE;QACtD,MAAMU,KAAK,GAAGlB,OAAO,CAACjC,KAAK,CAACU,KAAK,CAAC,EAAE,CAAC;QAErC,KAAK,IAAI0C,CAAC,GAAGD,KAAK,CAACvC,MAAM,EAAEyC,CAAC,GAAGD,CAAC,GAAG,CAAC,EAAEC,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;UACjD,MAAMJ,IAAI,GAAGE,KAAK,CAACE,CAAC,CAAC;UACrB,MAAMH,IAAI,GAAGjE,KAAK,CAACiE,IAAI,CAACG,CAAC,CAAC;UAC1B,IACEJ,IAAI,IACJA,IAAI,KAAKlE,cAAc,IACvBmE,IAAI,YAAY1B,MAAM,IACtB0B,IAAI,CAACnB,IAAI,CAACkB,IAAI,CAAC,EACf;YACA,KAAK,IAAIK,CAAC,GAAGD,CAAC,GAAG,CAAC,EAAEC,CAAC,GAAGF,CAAC,EAAEE,CAAC,EAAE,EAAE;cAAA,IAAAC,UAAA;cAC9B,MAAML,IAAI,GAAGjE,KAAK,CAACiE,IAAI,CAACI,CAAC,CAAC;cAC1B,IAAIJ,IAAI,aAAJA,IAAI,gBAAAK,UAAA,GAAJL,IAAI,CAAEnB,IAAI,cAAAwB,UAAA,eAAVA,UAAA,CAAAC,IAAA,CAAAN,IAAI,EAASD,IAAI,CAAC,EAAE;gBACtBrE,gBAAgB,CAACqD,OAAO,EAAEqB,CAAC,CAAC;gBAC5B;cACF;YACF;YAEA;UACF;QACF;MACF;IACF,CAAC,CAAC,OAAOG,CAAC,EAAE;MACV/E,IAAI,CAAC+E,CAAC,CAAC;IACT;EACF,CAAC;EAED,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjCA,MAAM,CAACC,qBAAqB,CAACxB,UAAU,CAAC;EAC1C;AACF,CAAC;AAWD,OAAO,MAAMyB,iBAAiB,GAAGC,KAAA,IAAmC;EAAA,IAAAC,OAAA,EAAAC,aAAA;EAAA,IAAlC;IAAE9E,KAAK;IAAEa,MAAM;IAAEC;EAAW,CAAC,GAAA8D,KAAA;EAC7D,MAAM7D,KAAK,GAAG1B,MAAM,CAACW,KAAK,CAACe,KAAK,EAAE;IAAEF,MAAM;IAAEkE,OAAO,EAAE;EAAK,CAAC,CAAC;EAC5DjE,UAAU,CAACsC,MAAM,GAAG,EAAAyB,OAAA,GAAA5D,MAAM,CAACF,KAAK,CAAC,cAAA8D,OAAA,wBAAAC,aAAA,GAAbD,OAAA,CAAeG,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,cAAAF,aAAA,uBAAxCA,aAAA,CAA2C,CAAC,CAAC,KAAI,IAAI;EAEzE,OAAOhE,UAAU;AACnB,CAAC;AAWD,OAAO,MAAMmE,kBAAkB,GAAGC,KAAA,IAAqC;EAAA,IAApC;IAAEC,YAAY;IAAEC;EAAc,CAAC,GAAAF,KAAA;EAChE,MAAMG,WAAW,GAAAlD,aAAA,CAAAA,aAAA,KACZgD,YAAY,GACZC,aAAa,CACjB;EACD,MAAME,kBAAkB,GAAAnD,aAAA;IACtBoD,QAAQ,EAAE,IAAI;IACd1B,eAAe,EAAE,IAAI;IACrB9B,YAAY,EAAE,IAAI;IAClBC,YAAY,EAAE,CAAC;IACfI,aAAa,EAAE;EAAG,GACfiD,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,CAAEtD,YAAY,MAAK,WAAW,IAChD,QAAOsD,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAErD,YAAY,MAAK,QAAQ,EAC7C;IACAsD,kBAAkB,CAACvD,YAAY,GAAGsD,WAAW,CAACrD,YAAY,GAAG,CAAC;EAChE;EAEA,OAAOsD,kBAAkB;AAC3B,CAAC;AAWD,OAAO,MAAMG,gBAAgB,GAAGC,KAAA,IAAmC;EAAA,IAAlC;IAAEP,YAAY;IAAEQ;EAAY,CAAC,GAAAD,KAAA;EAC5D,MAAM5E,UAAU,GAAAqB,aAAA,CAAAA,aAAA;IACdC,aAAa,EAAE;EAAG,GACf+C,YAAY,GACZQ,WAAW,CACf;EAED,IAAI,OAAO7E,UAAU,CAACiB,YAAY,KAAK,WAAW,EAAE;IAClDjB,UAAU,CAACiB,YAAY,GAAGjB,UAAU,CAACkB,YAAY,GAAG,CAAC;EACvD;EAEA,OAAOlB,UAAU;AACnB,CAAC;AAQD,OAAO,SAAS8E,yBAAyBA,CAAC3B,IAAI,EAAE;EAC9C,IAAI,CAAAA,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE4B,UAAU,MAAK,kBAAkB,EAAE;IAC3C,OAAO7E,SAAS;EAClB;EAEA,MAAMF,UAAU,GAAGmD,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEnD,UAAU;EAGnC,IAAIpB,MAAM,IAAI,CAAAoB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEgF,aAAa,MAAK,KAAK,EAAE;IACjD,OAAO9E,SAAS;EAClB;EAEA,OAAO;IACL+E,SAAS,EACPjF,UAAU,CAACiB,YAAY,IAAIjB,UAAU,CAACkB,YAAY,KAAK,CAAC,GACpD,SAAS,GACT;EACR,CAAC;AACH;AAQA,OAAO,SAASgE,wBAAwBA,CAACnF,MAAM,EAAE;EAC/C,OAAOtB,qBAAqB,CAACsB,MAAM,CAAC,CAACwB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;AACxD;AAQA,OAAO,SAAS4D,sBAAsBA,CAACpF,MAAM,EAAE;EAC7C,IAAIuB,aAAa,GAAG9C,mBAAmB,CAACuB,MAAM,CAAC;EAE/C,OAAOuB,aAAa;AACtB;AASA,OAAO,SAAS8D,QAAQA,CAACC,GAAG,EAAmB;EAAA,IAAjBC,QAAQ,GAAAC,SAAA,CAAA1E,MAAA,QAAA0E,SAAA,QAAArF,SAAA,GAAAqF,SAAA,MAAG,IAAI;EAC3C,IAAI,OAAOF,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAC7C,OAAOG,IAAI,CAACC,KAAK,CAACJ,GAAG,CAAC;EACxB;EAEA,OAAOA,GAAG,IAAIC,QAAQ;AACxB","ignoreList":[]}
@@ -116,7 +116,7 @@ export const cleanNumber: (
116
116
 
117
117
  export const copyWithEffect: (
118
118
  value: number | string,
119
- label?: string,
119
+ label?: React.ReactNode,
120
120
  positionElement?: HTMLElement
121
121
  ) => boolean;
122
122
 
@@ -10,7 +10,8 @@ import { LOCALE, CURRENCY, CURRENCY_DISPLAY } from '../../shared/defaults';
10
10
  import { warn, isTrue, slugify, escapeRegexChars } from '../../shared/component-helper';
11
11
  import { getOffsetTop, getOffsetLeft, getSelectedElement, copyToClipboard, IS_MAC, IS_WIN } from '../../shared/helpers';
12
12
  import locales from '../../shared/locales';
13
- const NUMBER_CHARS = '\\-0-9,.';
13
+ export const NUMBER_CHARS = '\\-0-9,.';
14
+ export const NUMBER_MINUS = '-|−|‐|‒|–|—|―';
14
15
  export const format = function (value) {
15
16
  let {
16
17
  locale = null,
@@ -298,7 +299,7 @@ const prepareMinus = (display, locale) => {
298
299
  if (first === '-' && second === '-') {
299
300
  return display;
300
301
  }
301
- const reg = '^(-|−|‐|‒|–|—|―)';
302
+ const reg = `^(${NUMBER_MINUS})`;
302
303
  if (new RegExp(reg).test(first)) {
303
304
  if (parseFloat(second) > 0) {
304
305
  display = display.replace(new RegExp(reg + '(.*)'), '-$2');
@@ -346,8 +347,8 @@ export const formatNumber = function (number, locale) {
346
347
  } else if (typeof Number !== 'undefined' && typeof Number.toLocaleString === 'function') {
347
348
  number = parseFloat(number).toLocaleString(locale, options);
348
349
  }
349
- if (String(number).startsWith('−0')) {
350
- number = number.replace('−0', '0');
350
+ if (new RegExp(`^(${NUMBER_MINUS})(0|0[^\\d]|0\\s.*)$`).test(number)) {
351
+ number = number.replace(new RegExp(`(${NUMBER_MINUS})0`), '0');
351
352
  }
352
353
  } catch (e) {
353
354
  warn(`Number could not be formatted: ${JSON.stringify([number, locale, options])}`, e);