@dnb/eufemia 10.15.1 → 10.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (919) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/assets/icons/dnb/browser.svg +1 -0
  3. package/assets/icons/dnb/browser_medium.svg +1 -0
  4. package/assets/icons/dnb/coins_1.svg +1 -1
  5. package/assets/icons/dnb/coins_1_medium.svg +1 -1
  6. package/assets/icons/dnb/digipass_corporate.svg +1 -0
  7. package/assets/icons/dnb/digipass_corporate_medium.svg +1 -0
  8. package/assets/icons/dnb/digipass_private.svg +1 -0
  9. package/assets/icons/dnb/digipass_private_medium.svg +1 -0
  10. package/assets/icons/dnb/envelope_open.svg +1 -0
  11. package/assets/icons/dnb/envelope_open_medium.svg +1 -0
  12. package/assets/icons/dnb/eufemia-icons-xml-categorized.tgz +0 -0
  13. package/assets/icons/dnb/eufemia-icons-xml.tgz +0 -0
  14. package/assets/icons/dnb/laptop.svg +1 -0
  15. package/assets/icons/dnb/laptop_medium.svg +1 -0
  16. package/assets/icons/dnb/mobile.svg +1 -0
  17. package/assets/icons/dnb/mobile_medium.svg +1 -0
  18. package/assets/icons/dnb/money_left.svg +1 -0
  19. package/assets/icons/dnb/money_left_medium.svg +1 -0
  20. package/assets/icons/dnb/scan.svg +1 -1
  21. package/assets/icons/dnb/scan_medium.svg +1 -1
  22. package/assets/icons/dnb/teenager.svg +1 -0
  23. package/assets/icons/dnb/teenager_medium.svg +1 -0
  24. package/cjs/components/anchor/style/anchor-mixins.scss +8 -6
  25. package/cjs/components/anchor/style/dnb-anchor.css +28 -8
  26. package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
  27. package/cjs/components/card/Card.d.ts +1 -1
  28. package/cjs/components/card/Card.js +48 -9
  29. package/cjs/components/card/Card.js.map +1 -1
  30. package/cjs/components/card/style/dnb-card.css +0 -20
  31. package/cjs/components/card/style/dnb-card.min.css +1 -1
  32. package/cjs/components/card/style/dnb-card.scss +0 -20
  33. package/cjs/components/card/style/themes/dnb-card-theme-ui.css +26 -0
  34. package/cjs/components/card/style/themes/dnb-card-theme-ui.min.css +1 -0
  35. package/cjs/components/card/style/themes/dnb-card-theme-ui.scss +35 -0
  36. package/cjs/components/date-picker/DatePicker.d.ts +5 -1
  37. package/cjs/components/date-picker/DatePicker.js +4 -2
  38. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  39. package/cjs/components/date-picker/DatePickerInput.js +20 -6
  40. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  41. package/cjs/components/date-picker/DatePickerProvider.js +2 -2
  42. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  43. package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +2 -2
  44. package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
  45. package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +5 -17
  46. package/cjs/components/flex/Container.d.ts +2 -4
  47. package/cjs/components/flex/Container.js.map +1 -1
  48. package/cjs/components/flex/Item.d.ts +2 -3
  49. package/cjs/components/flex/Item.js +2 -1
  50. package/cjs/components/flex/Item.js.map +1 -1
  51. package/cjs/components/input/Input.d.ts +3 -2
  52. package/cjs/components/input-masked/InputMaskedHooks.js +5 -5
  53. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  54. package/cjs/components/input-masked/InputMaskedUtils.d.ts +4 -2
  55. package/cjs/components/input-masked/InputMaskedUtils.js +9 -7
  56. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  57. package/cjs/components/input-masked/MultiInputMask.d.ts +1 -1
  58. package/cjs/components/input-masked/MultiInputMask.js +4 -2
  59. package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
  60. package/cjs/components/input-masked/TextMask.js +15 -4
  61. package/cjs/components/input-masked/TextMask.js.map +1 -1
  62. package/cjs/components/input-masked/style/dnb-input-masked.css +3 -0
  63. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  64. package/cjs/components/input-masked/style/dnb-input-masked.scss +5 -0
  65. package/cjs/components/input-masked/text-mask/InputModeNumber.d.ts +20 -0
  66. package/cjs/components/input-masked/text-mask/InputModeNumber.js +93 -0
  67. package/cjs/components/input-masked/text-mask/InputModeNumber.js.map +1 -0
  68. package/cjs/components/input-masked/text-mask/createTextMaskInputElement.js +1 -1
  69. package/cjs/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  70. package/cjs/components/radio/RadioGroup.js +0 -1
  71. package/cjs/components/radio/RadioGroup.js.map +1 -1
  72. package/cjs/components/section/Section.d.ts +7 -0
  73. package/cjs/components/section/Section.js +11 -12
  74. package/cjs/components/section/Section.js.map +1 -1
  75. package/cjs/components/section/style/dnb-section.css +6 -4
  76. package/cjs/components/section/style/dnb-section.min.css +1 -1
  77. package/cjs/components/section/style/dnb-section.scss +7 -4
  78. package/cjs/components/section/style/themes/dnb-section-theme-ui.css +11 -1
  79. package/cjs/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  80. package/cjs/components/textarea/Textarea.js +4 -9
  81. package/cjs/components/textarea/Textarea.js.map +1 -1
  82. package/cjs/components/toggle-button/ToggleButtonGroup.js +0 -1
  83. package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  84. package/cjs/components/toggle-button/style/dnb-toggle-button.css +4 -6
  85. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  86. package/cjs/components/toggle-button/style/dnb-toggle-button.scss +4 -10
  87. package/cjs/components/tooltip/style/dnb-tooltip.css +1 -0
  88. package/cjs/components/tooltip/style/dnb-tooltip.min.css +1 -1
  89. package/cjs/components/tooltip/style/dnb-tooltip.scss +2 -0
  90. package/cjs/components/upload/types.d.ts +1 -1
  91. package/cjs/components/upload/types.js.map +1 -1
  92. package/cjs/extensions/forms/DataContext/Context.d.ts +1 -0
  93. package/cjs/extensions/forms/DataContext/Context.js +1 -0
  94. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  95. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +6 -1
  96. package/cjs/extensions/forms/DataContext/Provider/Provider.js +37 -13
  97. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  98. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +2 -1
  99. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  100. package/cjs/extensions/forms/Field/Date/Date.js +3 -1
  101. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  102. package/cjs/extensions/forms/Field/Email/Email.js +7 -5
  103. package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
  104. package/cjs/extensions/forms/Field/Expiry/Expiry.js +26 -4
  105. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  106. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +2 -1
  107. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  108. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +2 -1
  109. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  110. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +69 -30
  111. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  112. package/cjs/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.css +3 -0
  113. package/cjs/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.min.css +1 -1
  114. package/cjs/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.scss +4 -0
  115. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
  116. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  117. package/cjs/extensions/forms/Field/Selection/Selection.js +59 -50
  118. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  119. package/cjs/extensions/forms/Field/Selection/style/dnb-selection.css +6 -6
  120. package/cjs/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
  121. package/cjs/extensions/forms/Field/Selection/style/dnb-selection.scss +15 -10
  122. package/cjs/extensions/forms/Field/String/String.d.ts +1 -0
  123. package/cjs/extensions/forms/Field/String/String.js +13 -8
  124. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  125. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  126. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  127. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -1
  128. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  129. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -1
  130. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +8 -0
  131. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  132. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -0
  133. package/cjs/extensions/forms/Form/Handler/Handler.js +2 -2
  134. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  135. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +7 -2
  136. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  137. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +6 -1
  138. package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +3 -0
  139. package/cjs/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +2 -0
  140. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js +3 -2
  141. package/cjs/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  142. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +3 -2
  143. package/cjs/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  144. package/cjs/extensions/forms/StepsLayout/StepsLayout.js +1 -1
  145. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  146. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css +14 -16
  147. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  148. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +15 -16
  149. package/cjs/extensions/forms/hooks/useDataValue.d.ts +3 -0
  150. package/cjs/extensions/forms/hooks/useDataValue.js +98 -48
  151. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  152. package/cjs/extensions/forms/style/dnb-forms.css +42 -25
  153. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  154. package/cjs/extensions/forms/types.d.ts +12 -2
  155. package/cjs/extensions/forms/types.js +1 -1
  156. package/cjs/extensions/forms/types.js.map +1 -1
  157. package/cjs/icons/browser.d.ts +3 -0
  158. package/cjs/icons/browser.js +11 -0
  159. package/cjs/icons/browser.js.map +1 -0
  160. package/cjs/icons/browser_medium.d.ts +3 -0
  161. package/cjs/icons/browser_medium.js +11 -0
  162. package/cjs/icons/browser_medium.js.map +1 -0
  163. package/cjs/icons/digipass_corporate.d.ts +3 -0
  164. package/cjs/icons/digipass_corporate.js +11 -0
  165. package/cjs/icons/digipass_corporate.js.map +1 -0
  166. package/cjs/icons/digipass_corporate_medium.d.ts +3 -0
  167. package/cjs/icons/digipass_corporate_medium.js +11 -0
  168. package/cjs/icons/digipass_corporate_medium.js.map +1 -0
  169. package/cjs/icons/digipass_private.d.ts +3 -0
  170. package/cjs/icons/digipass_private.js +11 -0
  171. package/cjs/icons/digipass_private.js.map +1 -0
  172. package/cjs/icons/digipass_private_medium.d.ts +3 -0
  173. package/cjs/icons/digipass_private_medium.js +11 -0
  174. package/cjs/icons/digipass_private_medium.js.map +1 -0
  175. package/cjs/icons/dnb/browser.d.ts +3 -0
  176. package/cjs/icons/dnb/browser.js +25 -0
  177. package/cjs/icons/dnb/browser.js.map +1 -0
  178. package/cjs/icons/dnb/browser_medium.d.ts +3 -0
  179. package/cjs/icons/dnb/browser_medium.js +25 -0
  180. package/cjs/icons/dnb/browser_medium.js.map +1 -0
  181. package/cjs/icons/dnb/coins_1.js +1 -1
  182. package/cjs/icons/dnb/coins_1.js.map +1 -1
  183. package/cjs/icons/dnb/coins_1_medium.js +1 -1
  184. package/cjs/icons/dnb/coins_1_medium.js.map +1 -1
  185. package/cjs/icons/dnb/digipass_corporate.d.ts +3 -0
  186. package/cjs/icons/dnb/digipass_corporate.js +25 -0
  187. package/cjs/icons/dnb/digipass_corporate.js.map +1 -0
  188. package/cjs/icons/dnb/digipass_corporate_medium.d.ts +3 -0
  189. package/cjs/icons/dnb/digipass_corporate_medium.js +25 -0
  190. package/cjs/icons/dnb/digipass_corporate_medium.js.map +1 -0
  191. package/cjs/icons/dnb/digipass_private.d.ts +3 -0
  192. package/cjs/icons/dnb/digipass_private.js +25 -0
  193. package/cjs/icons/dnb/digipass_private.js.map +1 -0
  194. package/cjs/icons/dnb/digipass_private_medium.d.ts +3 -0
  195. package/cjs/icons/dnb/digipass_private_medium.js +25 -0
  196. package/cjs/icons/dnb/digipass_private_medium.js.map +1 -0
  197. package/cjs/icons/dnb/envelope_open.d.ts +3 -0
  198. package/cjs/icons/dnb/envelope_open.js +26 -0
  199. package/cjs/icons/dnb/envelope_open.js.map +1 -0
  200. package/cjs/icons/dnb/envelope_open_medium.d.ts +3 -0
  201. package/cjs/icons/dnb/envelope_open_medium.js +26 -0
  202. package/cjs/icons/dnb/envelope_open_medium.js.map +1 -0
  203. package/cjs/icons/dnb/icons-meta.json +230 -20
  204. package/cjs/icons/dnb/icons-svg.lock +1272 -1064
  205. package/cjs/icons/dnb/index.d.ts +17 -1
  206. package/cjs/icons/dnb/index.js +112 -0
  207. package/cjs/icons/dnb/index.js.map +1 -1
  208. package/cjs/icons/dnb/laptop.d.ts +3 -0
  209. package/cjs/icons/dnb/laptop.js +26 -0
  210. package/cjs/icons/dnb/laptop.js.map +1 -0
  211. package/cjs/icons/dnb/laptop_medium.d.ts +3 -0
  212. package/cjs/icons/dnb/laptop_medium.js +26 -0
  213. package/cjs/icons/dnb/laptop_medium.js.map +1 -0
  214. package/cjs/icons/dnb/mobile.d.ts +3 -0
  215. package/cjs/icons/dnb/mobile.js +23 -0
  216. package/cjs/icons/dnb/mobile.js.map +1 -0
  217. package/cjs/icons/dnb/mobile_medium.d.ts +3 -0
  218. package/cjs/icons/dnb/mobile_medium.js +23 -0
  219. package/cjs/icons/dnb/mobile_medium.js.map +1 -0
  220. package/cjs/icons/dnb/money_left.d.ts +3 -0
  221. package/cjs/icons/dnb/money_left.js +25 -0
  222. package/cjs/icons/dnb/money_left.js.map +1 -0
  223. package/cjs/icons/dnb/money_left_medium.d.ts +3 -0
  224. package/cjs/icons/dnb/money_left_medium.js +26 -0
  225. package/cjs/icons/dnb/money_left_medium.js.map +1 -0
  226. package/cjs/icons/dnb/scan.js +5 -2
  227. package/cjs/icons/dnb/scan.js.map +1 -1
  228. package/cjs/icons/dnb/scan_medium.js +8 -12
  229. package/cjs/icons/dnb/scan_medium.js.map +1 -1
  230. package/cjs/icons/dnb/secondary_icons.d.ts +9 -1
  231. package/cjs/icons/dnb/secondary_icons.js +56 -0
  232. package/cjs/icons/dnb/secondary_icons.js.map +1 -1
  233. package/cjs/icons/dnb/secondary_icons_medium.d.ts +9 -1
  234. package/cjs/icons/dnb/secondary_icons_medium.js +56 -0
  235. package/cjs/icons/dnb/secondary_icons_medium.js.map +1 -1
  236. package/cjs/icons/dnb/teenager.d.ts +3 -0
  237. package/cjs/icons/dnb/teenager.js +26 -0
  238. package/cjs/icons/dnb/teenager.js.map +1 -0
  239. package/cjs/icons/dnb/teenager_medium.d.ts +3 -0
  240. package/cjs/icons/dnb/teenager_medium.js +26 -0
  241. package/cjs/icons/dnb/teenager_medium.js.map +1 -0
  242. package/cjs/icons/envelope_open.d.ts +3 -0
  243. package/cjs/icons/envelope_open.js +11 -0
  244. package/cjs/icons/envelope_open.js.map +1 -0
  245. package/cjs/icons/envelope_open_medium.d.ts +3 -0
  246. package/cjs/icons/envelope_open_medium.js +11 -0
  247. package/cjs/icons/envelope_open_medium.js.map +1 -0
  248. package/cjs/icons/index.d.ts +17 -1
  249. package/cjs/icons/index.js +112 -0
  250. package/cjs/icons/index.js.map +1 -1
  251. package/cjs/icons/laptop.d.ts +3 -0
  252. package/cjs/icons/laptop.js +11 -0
  253. package/cjs/icons/laptop.js.map +1 -0
  254. package/cjs/icons/laptop_medium.d.ts +3 -0
  255. package/cjs/icons/laptop_medium.js +11 -0
  256. package/cjs/icons/laptop_medium.js.map +1 -0
  257. package/cjs/icons/mobile.d.ts +3 -0
  258. package/cjs/icons/mobile.js +11 -0
  259. package/cjs/icons/mobile.js.map +1 -0
  260. package/cjs/icons/mobile_medium.d.ts +3 -0
  261. package/cjs/icons/mobile_medium.js +11 -0
  262. package/cjs/icons/mobile_medium.js.map +1 -0
  263. package/cjs/icons/money_left.d.ts +3 -0
  264. package/cjs/icons/money_left.js +11 -0
  265. package/cjs/icons/money_left.js.map +1 -0
  266. package/cjs/icons/money_left_medium.d.ts +3 -0
  267. package/cjs/icons/money_left_medium.js +11 -0
  268. package/cjs/icons/money_left_medium.js.map +1 -0
  269. package/cjs/icons/teenager.d.ts +3 -0
  270. package/cjs/icons/teenager.js +11 -0
  271. package/cjs/icons/teenager.js.map +1 -0
  272. package/cjs/icons/teenager_medium.d.ts +3 -0
  273. package/cjs/icons/teenager_medium.js +11 -0
  274. package/cjs/icons/teenager_medium.js.map +1 -0
  275. package/cjs/shared/Eufemia.d.ts +1 -1
  276. package/cjs/shared/Eufemia.js +2 -2
  277. package/cjs/shared/Eufemia.js.map +1 -1
  278. package/cjs/shared/component-helper.d.ts +1 -0
  279. package/cjs/shared/component-helper.js +6 -1
  280. package/cjs/shared/component-helper.js.map +1 -1
  281. package/cjs/style/dnb-ui-components.css +84 -63
  282. package/cjs/style/dnb-ui-components.min.css +3 -3
  283. package/cjs/style/dnb-ui-extensions.css +42 -25
  284. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  285. package/cjs/style/dnb-ui-forms.css +42 -25
  286. package/cjs/style/dnb-ui-forms.min.css +1 -1
  287. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +14 -2
  288. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  289. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +166 -91
  290. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  291. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.scss +1 -0
  292. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +14 -2
  293. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  294. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +42 -25
  295. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  296. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +42 -25
  297. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  298. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +155 -90
  299. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  300. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -0
  301. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +42 -25
  302. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  303. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +42 -25
  304. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  305. package/cjs/style/themes/theme-ui/ui-theme-basis.css +14 -2
  306. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  307. package/cjs/style/themes/theme-ui/ui-theme-components.css +166 -91
  308. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +5 -5
  309. package/cjs/style/themes/theme-ui/ui-theme-components.scss +1 -0
  310. package/cjs/style/themes/theme-ui/ui-theme-elements.css +14 -2
  311. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  312. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +42 -25
  313. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  314. package/cjs/style/themes/theme-ui/ui-theme-forms.css +42 -25
  315. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  316. package/cjs/style/themes/theme-ui/ui-theme-tags.css +3 -3
  317. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  318. package/components/anchor/style/anchor-mixins.scss +8 -6
  319. package/components/anchor/style/dnb-anchor.css +28 -8
  320. package/components/anchor/style/dnb-anchor.min.css +1 -1
  321. package/components/card/Card.d.ts +1 -1
  322. package/components/card/Card.js +46 -9
  323. package/components/card/Card.js.map +1 -1
  324. package/components/card/style/dnb-card.css +0 -20
  325. package/components/card/style/dnb-card.min.css +1 -1
  326. package/components/card/style/dnb-card.scss +0 -20
  327. package/components/card/style/themes/dnb-card-theme-ui.css +26 -0
  328. package/components/card/style/themes/dnb-card-theme-ui.min.css +1 -0
  329. package/components/card/style/themes/dnb-card-theme-ui.scss +35 -0
  330. package/components/date-picker/DatePicker.d.ts +5 -1
  331. package/components/date-picker/DatePicker.js +4 -2
  332. package/components/date-picker/DatePicker.js.map +1 -1
  333. package/components/date-picker/DatePickerInput.js +20 -6
  334. package/components/date-picker/DatePickerInput.js.map +1 -1
  335. package/components/date-picker/DatePickerProvider.js +2 -2
  336. package/components/date-picker/DatePickerProvider.js.map +1 -1
  337. package/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +2 -2
  338. package/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
  339. package/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +5 -17
  340. package/components/flex/Container.d.ts +2 -4
  341. package/components/flex/Container.js.map +1 -1
  342. package/components/flex/Item.d.ts +2 -3
  343. package/components/flex/Item.js +2 -1
  344. package/components/flex/Item.js.map +1 -1
  345. package/components/input/Input.d.ts +3 -2
  346. package/components/input-masked/InputMaskedHooks.js +6 -6
  347. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  348. package/components/input-masked/InputMaskedUtils.d.ts +4 -2
  349. package/components/input-masked/InputMaskedUtils.js +9 -7
  350. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  351. package/components/input-masked/MultiInputMask.d.ts +1 -1
  352. package/components/input-masked/MultiInputMask.js +4 -2
  353. package/components/input-masked/MultiInputMask.js.map +1 -1
  354. package/components/input-masked/TextMask.js +15 -4
  355. package/components/input-masked/TextMask.js.map +1 -1
  356. package/components/input-masked/style/dnb-input-masked.css +3 -0
  357. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  358. package/components/input-masked/style/dnb-input-masked.scss +5 -0
  359. package/components/input-masked/text-mask/InputModeNumber.d.ts +20 -0
  360. package/components/input-masked/text-mask/InputModeNumber.js +84 -0
  361. package/components/input-masked/text-mask/InputModeNumber.js.map +1 -0
  362. package/components/input-masked/text-mask/createTextMaskInputElement.js +1 -1
  363. package/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  364. package/components/radio/RadioGroup.js +0 -1
  365. package/components/radio/RadioGroup.js.map +1 -1
  366. package/components/section/Section.d.ts +7 -0
  367. package/components/section/Section.js +10 -12
  368. package/components/section/Section.js.map +1 -1
  369. package/components/section/style/dnb-section.css +6 -4
  370. package/components/section/style/dnb-section.min.css +1 -1
  371. package/components/section/style/dnb-section.scss +7 -4
  372. package/components/section/style/themes/dnb-section-theme-ui.css +11 -1
  373. package/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  374. package/components/textarea/Textarea.js +4 -9
  375. package/components/textarea/Textarea.js.map +1 -1
  376. package/components/toggle-button/ToggleButtonGroup.js +0 -1
  377. package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  378. package/components/toggle-button/style/dnb-toggle-button.css +4 -6
  379. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  380. package/components/toggle-button/style/dnb-toggle-button.scss +4 -10
  381. package/components/tooltip/style/dnb-tooltip.css +1 -0
  382. package/components/tooltip/style/dnb-tooltip.min.css +1 -1
  383. package/components/tooltip/style/dnb-tooltip.scss +2 -0
  384. package/components/upload/types.d.ts +1 -1
  385. package/components/upload/types.js.map +1 -1
  386. package/es/components/anchor/style/anchor-mixins.scss +8 -6
  387. package/es/components/anchor/style/dnb-anchor.css +28 -8
  388. package/es/components/anchor/style/dnb-anchor.min.css +1 -1
  389. package/es/components/card/Card.d.ts +1 -1
  390. package/es/components/card/Card.js +46 -9
  391. package/es/components/card/Card.js.map +1 -1
  392. package/es/components/card/style/dnb-card.css +0 -20
  393. package/es/components/card/style/dnb-card.min.css +1 -1
  394. package/es/components/card/style/dnb-card.scss +0 -20
  395. package/es/components/card/style/themes/dnb-card-theme-ui.css +26 -0
  396. package/es/components/card/style/themes/dnb-card-theme-ui.min.css +1 -0
  397. package/es/components/card/style/themes/dnb-card-theme-ui.scss +35 -0
  398. package/es/components/date-picker/DatePicker.d.ts +5 -1
  399. package/es/components/date-picker/DatePicker.js +4 -2
  400. package/es/components/date-picker/DatePicker.js.map +1 -1
  401. package/es/components/date-picker/DatePickerInput.js +20 -6
  402. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  403. package/es/components/date-picker/DatePickerProvider.js +2 -2
  404. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  405. package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +2 -2
  406. package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
  407. package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +5 -17
  408. package/es/components/flex/Container.d.ts +2 -4
  409. package/es/components/flex/Container.js.map +1 -1
  410. package/es/components/flex/Item.d.ts +2 -3
  411. package/es/components/flex/Item.js +2 -1
  412. package/es/components/flex/Item.js.map +1 -1
  413. package/es/components/input/Input.d.ts +3 -2
  414. package/es/components/input-masked/InputMaskedHooks.js +6 -6
  415. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  416. package/es/components/input-masked/InputMaskedUtils.d.ts +4 -2
  417. package/es/components/input-masked/InputMaskedUtils.js +9 -7
  418. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  419. package/es/components/input-masked/MultiInputMask.d.ts +1 -1
  420. package/es/components/input-masked/MultiInputMask.js +4 -2
  421. package/es/components/input-masked/MultiInputMask.js.map +1 -1
  422. package/es/components/input-masked/TextMask.js +15 -4
  423. package/es/components/input-masked/TextMask.js.map +1 -1
  424. package/es/components/input-masked/style/dnb-input-masked.css +3 -0
  425. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  426. package/es/components/input-masked/style/dnb-input-masked.scss +5 -0
  427. package/es/components/input-masked/text-mask/InputModeNumber.d.ts +20 -0
  428. package/es/components/input-masked/text-mask/InputModeNumber.js +84 -0
  429. package/es/components/input-masked/text-mask/InputModeNumber.js.map +1 -0
  430. package/es/components/input-masked/text-mask/createTextMaskInputElement.js +1 -1
  431. package/es/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  432. package/es/components/radio/RadioGroup.js +0 -1
  433. package/es/components/radio/RadioGroup.js.map +1 -1
  434. package/es/components/section/Section.d.ts +7 -0
  435. package/es/components/section/Section.js +10 -12
  436. package/es/components/section/Section.js.map +1 -1
  437. package/es/components/section/style/dnb-section.css +6 -4
  438. package/es/components/section/style/dnb-section.min.css +1 -1
  439. package/es/components/section/style/dnb-section.scss +7 -4
  440. package/es/components/section/style/themes/dnb-section-theme-ui.css +11 -1
  441. package/es/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  442. package/es/components/textarea/Textarea.js +4 -9
  443. package/es/components/textarea/Textarea.js.map +1 -1
  444. package/es/components/toggle-button/ToggleButtonGroup.js +0 -1
  445. package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  446. package/es/components/toggle-button/style/dnb-toggle-button.css +4 -6
  447. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  448. package/es/components/toggle-button/style/dnb-toggle-button.scss +4 -10
  449. package/es/components/tooltip/style/dnb-tooltip.css +1 -0
  450. package/es/components/tooltip/style/dnb-tooltip.min.css +1 -1
  451. package/es/components/tooltip/style/dnb-tooltip.scss +2 -0
  452. package/es/components/upload/types.d.ts +1 -1
  453. package/es/components/upload/types.js.map +1 -1
  454. package/es/extensions/forms/DataContext/Context.d.ts +1 -0
  455. package/es/extensions/forms/DataContext/Context.js +1 -0
  456. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  457. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +6 -1
  458. package/es/extensions/forms/DataContext/Provider/Provider.js +37 -13
  459. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  460. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +2 -1
  461. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  462. package/es/extensions/forms/Field/Date/Date.js +3 -1
  463. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  464. package/es/extensions/forms/Field/Email/Email.js +7 -5
  465. package/es/extensions/forms/Field/Email/Email.js.map +1 -1
  466. package/es/extensions/forms/Field/Expiry/Expiry.js +26 -4
  467. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  468. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +2 -1
  469. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  470. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +2 -1
  471. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  472. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +59 -21
  473. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  474. package/es/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.css +3 -0
  475. package/es/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.min.css +1 -1
  476. package/es/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.scss +4 -0
  477. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
  478. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  479. package/es/extensions/forms/Field/Selection/Selection.js +58 -50
  480. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  481. package/es/extensions/forms/Field/Selection/style/dnb-selection.css +6 -6
  482. package/es/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
  483. package/es/extensions/forms/Field/Selection/style/dnb-selection.scss +15 -10
  484. package/es/extensions/forms/Field/String/String.d.ts +1 -0
  485. package/es/extensions/forms/Field/String/String.js +13 -7
  486. package/es/extensions/forms/Field/String/String.js.map +1 -1
  487. package/es/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  488. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  489. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -1
  490. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  491. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -1
  492. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +8 -0
  493. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  494. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -0
  495. package/es/extensions/forms/Form/Handler/Handler.js +2 -2
  496. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  497. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +7 -2
  498. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  499. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +6 -1
  500. package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +3 -0
  501. package/es/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +2 -0
  502. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js +3 -2
  503. package/es/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  504. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +3 -2
  505. package/es/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  506. package/es/extensions/forms/StepsLayout/StepsLayout.js +1 -1
  507. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  508. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.css +14 -16
  509. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  510. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +15 -16
  511. package/es/extensions/forms/hooks/useDataValue.d.ts +3 -0
  512. package/es/extensions/forms/hooks/useDataValue.js +94 -45
  513. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  514. package/es/extensions/forms/style/dnb-forms.css +42 -25
  515. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  516. package/es/extensions/forms/types.d.ts +12 -2
  517. package/es/extensions/forms/types.js +1 -1
  518. package/es/extensions/forms/types.js.map +1 -1
  519. package/es/icons/browser.d.ts +3 -0
  520. package/es/icons/browser.js +3 -0
  521. package/es/icons/browser.js.map +1 -0
  522. package/es/icons/browser_medium.d.ts +3 -0
  523. package/es/icons/browser_medium.js +3 -0
  524. package/es/icons/browser_medium.js.map +1 -0
  525. package/es/icons/digipass_corporate.d.ts +3 -0
  526. package/es/icons/digipass_corporate.js +3 -0
  527. package/es/icons/digipass_corporate.js.map +1 -0
  528. package/es/icons/digipass_corporate_medium.d.ts +3 -0
  529. package/es/icons/digipass_corporate_medium.js +3 -0
  530. package/es/icons/digipass_corporate_medium.js.map +1 -0
  531. package/es/icons/digipass_private.d.ts +3 -0
  532. package/es/icons/digipass_private.js +3 -0
  533. package/es/icons/digipass_private.js.map +1 -0
  534. package/es/icons/digipass_private_medium.d.ts +3 -0
  535. package/es/icons/digipass_private_medium.js +3 -0
  536. package/es/icons/digipass_private_medium.js.map +1 -0
  537. package/es/icons/dnb/browser.d.ts +3 -0
  538. package/es/icons/dnb/browser.js +17 -0
  539. package/es/icons/dnb/browser.js.map +1 -0
  540. package/es/icons/dnb/browser_medium.d.ts +3 -0
  541. package/es/icons/dnb/browser_medium.js +17 -0
  542. package/es/icons/dnb/browser_medium.js.map +1 -0
  543. package/es/icons/dnb/coins_1.js +1 -1
  544. package/es/icons/dnb/coins_1.js.map +1 -1
  545. package/es/icons/dnb/coins_1_medium.js +1 -1
  546. package/es/icons/dnb/coins_1_medium.js.map +1 -1
  547. package/es/icons/dnb/digipass_corporate.d.ts +3 -0
  548. package/es/icons/dnb/digipass_corporate.js +17 -0
  549. package/es/icons/dnb/digipass_corporate.js.map +1 -0
  550. package/es/icons/dnb/digipass_corporate_medium.d.ts +3 -0
  551. package/es/icons/dnb/digipass_corporate_medium.js +17 -0
  552. package/es/icons/dnb/digipass_corporate_medium.js.map +1 -0
  553. package/es/icons/dnb/digipass_private.d.ts +3 -0
  554. package/es/icons/dnb/digipass_private.js +17 -0
  555. package/es/icons/dnb/digipass_private.js.map +1 -0
  556. package/es/icons/dnb/digipass_private_medium.d.ts +3 -0
  557. package/es/icons/dnb/digipass_private_medium.js +17 -0
  558. package/es/icons/dnb/digipass_private_medium.js.map +1 -0
  559. package/es/icons/dnb/envelope_open.d.ts +3 -0
  560. package/es/icons/dnb/envelope_open.js +18 -0
  561. package/es/icons/dnb/envelope_open.js.map +1 -0
  562. package/es/icons/dnb/envelope_open_medium.d.ts +3 -0
  563. package/es/icons/dnb/envelope_open_medium.js +18 -0
  564. package/es/icons/dnb/envelope_open_medium.js.map +1 -0
  565. package/es/icons/dnb/icons-meta.json +230 -20
  566. package/es/icons/dnb/icons-svg.lock +1272 -1064
  567. package/es/icons/dnb/index.d.ts +17 -1
  568. package/es/icons/dnb/index.js +17 -1
  569. package/es/icons/dnb/index.js.map +1 -1
  570. package/es/icons/dnb/laptop.d.ts +3 -0
  571. package/es/icons/dnb/laptop.js +18 -0
  572. package/es/icons/dnb/laptop.js.map +1 -0
  573. package/es/icons/dnb/laptop_medium.d.ts +3 -0
  574. package/es/icons/dnb/laptop_medium.js +18 -0
  575. package/es/icons/dnb/laptop_medium.js.map +1 -0
  576. package/es/icons/dnb/mobile.d.ts +3 -0
  577. package/es/icons/dnb/mobile.js +15 -0
  578. package/es/icons/dnb/mobile.js.map +1 -0
  579. package/es/icons/dnb/mobile_medium.d.ts +3 -0
  580. package/es/icons/dnb/mobile_medium.js +15 -0
  581. package/es/icons/dnb/mobile_medium.js.map +1 -0
  582. package/es/icons/dnb/money_left.d.ts +3 -0
  583. package/es/icons/dnb/money_left.js +17 -0
  584. package/es/icons/dnb/money_left.js.map +1 -0
  585. package/es/icons/dnb/money_left_medium.d.ts +3 -0
  586. package/es/icons/dnb/money_left_medium.js +18 -0
  587. package/es/icons/dnb/money_left_medium.js.map +1 -0
  588. package/es/icons/dnb/scan.js +5 -2
  589. package/es/icons/dnb/scan.js.map +1 -1
  590. package/es/icons/dnb/scan_medium.js +8 -12
  591. package/es/icons/dnb/scan_medium.js.map +1 -1
  592. package/es/icons/dnb/secondary_icons.d.ts +9 -1
  593. package/es/icons/dnb/secondary_icons.js +9 -1
  594. package/es/icons/dnb/secondary_icons.js.map +1 -1
  595. package/es/icons/dnb/secondary_icons_medium.d.ts +9 -1
  596. package/es/icons/dnb/secondary_icons_medium.js +9 -1
  597. package/es/icons/dnb/secondary_icons_medium.js.map +1 -1
  598. package/es/icons/dnb/teenager.d.ts +3 -0
  599. package/es/icons/dnb/teenager.js +18 -0
  600. package/es/icons/dnb/teenager.js.map +1 -0
  601. package/es/icons/dnb/teenager_medium.d.ts +3 -0
  602. package/es/icons/dnb/teenager_medium.js +18 -0
  603. package/es/icons/dnb/teenager_medium.js.map +1 -0
  604. package/es/icons/envelope_open.d.ts +3 -0
  605. package/es/icons/envelope_open.js +3 -0
  606. package/es/icons/envelope_open.js.map +1 -0
  607. package/es/icons/envelope_open_medium.d.ts +3 -0
  608. package/es/icons/envelope_open_medium.js +3 -0
  609. package/es/icons/envelope_open_medium.js.map +1 -0
  610. package/es/icons/index.d.ts +17 -1
  611. package/es/icons/index.js +17 -1
  612. package/es/icons/index.js.map +1 -1
  613. package/es/icons/laptop.d.ts +3 -0
  614. package/es/icons/laptop.js +3 -0
  615. package/es/icons/laptop.js.map +1 -0
  616. package/es/icons/laptop_medium.d.ts +3 -0
  617. package/es/icons/laptop_medium.js +3 -0
  618. package/es/icons/laptop_medium.js.map +1 -0
  619. package/es/icons/mobile.d.ts +3 -0
  620. package/es/icons/mobile.js +3 -0
  621. package/es/icons/mobile.js.map +1 -0
  622. package/es/icons/mobile_medium.d.ts +3 -0
  623. package/es/icons/mobile_medium.js +3 -0
  624. package/es/icons/mobile_medium.js.map +1 -0
  625. package/es/icons/money_left.d.ts +3 -0
  626. package/es/icons/money_left.js +3 -0
  627. package/es/icons/money_left.js.map +1 -0
  628. package/es/icons/money_left_medium.d.ts +3 -0
  629. package/es/icons/money_left_medium.js +3 -0
  630. package/es/icons/money_left_medium.js.map +1 -0
  631. package/es/icons/teenager.d.ts +3 -0
  632. package/es/icons/teenager.js +3 -0
  633. package/es/icons/teenager.js.map +1 -0
  634. package/es/icons/teenager_medium.d.ts +3 -0
  635. package/es/icons/teenager_medium.js +3 -0
  636. package/es/icons/teenager_medium.js.map +1 -0
  637. package/es/shared/Eufemia.d.ts +1 -1
  638. package/es/shared/Eufemia.js +2 -2
  639. package/es/shared/Eufemia.js.map +1 -1
  640. package/es/shared/component-helper.d.ts +1 -0
  641. package/es/shared/component-helper.js +3 -0
  642. package/es/shared/component-helper.js.map +1 -1
  643. package/es/style/dnb-ui-components.css +84 -63
  644. package/es/style/dnb-ui-components.min.css +3 -3
  645. package/es/style/dnb-ui-extensions.css +42 -25
  646. package/es/style/dnb-ui-extensions.min.css +1 -1
  647. package/es/style/dnb-ui-forms.css +42 -25
  648. package/es/style/dnb-ui-forms.min.css +1 -1
  649. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +14 -2
  650. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  651. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +166 -91
  652. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  653. package/es/style/themes/theme-eiendom/eiendom-theme-components.scss +1 -0
  654. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +14 -2
  655. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  656. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +42 -25
  657. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  658. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +42 -25
  659. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  660. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +155 -90
  661. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  662. package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -0
  663. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +42 -25
  664. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  665. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +42 -25
  666. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  667. package/es/style/themes/theme-ui/ui-theme-basis.css +14 -2
  668. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  669. package/es/style/themes/theme-ui/ui-theme-components.css +166 -91
  670. package/es/style/themes/theme-ui/ui-theme-components.min.css +5 -5
  671. package/es/style/themes/theme-ui/ui-theme-components.scss +1 -0
  672. package/es/style/themes/theme-ui/ui-theme-elements.css +14 -2
  673. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  674. package/es/style/themes/theme-ui/ui-theme-extensions.css +42 -25
  675. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  676. package/es/style/themes/theme-ui/ui-theme-forms.css +42 -25
  677. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  678. package/es/style/themes/theme-ui/ui-theme-tags.css +3 -3
  679. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  680. package/esm/dnb-ui-basis.min.mjs +1 -1
  681. package/esm/dnb-ui-components.min.mjs +1 -1
  682. package/esm/dnb-ui-elements.min.mjs +1 -1
  683. package/esm/dnb-ui-extensions.min.mjs +3 -3
  684. package/esm/dnb-ui-lib.min.mjs +1 -1
  685. package/extensions/forms/DataContext/Context.d.ts +1 -0
  686. package/extensions/forms/DataContext/Context.js +1 -0
  687. package/extensions/forms/DataContext/Context.js.map +1 -1
  688. package/extensions/forms/DataContext/Provider/Provider.d.ts +6 -1
  689. package/extensions/forms/DataContext/Provider/Provider.js +37 -13
  690. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  691. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +2 -1
  692. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  693. package/extensions/forms/Field/Date/Date.js +3 -1
  694. package/extensions/forms/Field/Date/Date.js.map +1 -1
  695. package/extensions/forms/Field/Email/Email.js +7 -5
  696. package/extensions/forms/Field/Email/Email.js.map +1 -1
  697. package/extensions/forms/Field/Expiry/Expiry.js +26 -4
  698. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  699. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +2 -1
  700. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  701. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +2 -1
  702. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  703. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +70 -31
  704. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  705. package/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.css +3 -0
  706. package/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.min.css +1 -1
  707. package/extensions/forms/Field/PhoneNumber/style/dnb-phone-number.scss +4 -0
  708. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -1
  709. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  710. package/extensions/forms/Field/Selection/Selection.js +58 -50
  711. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  712. package/extensions/forms/Field/Selection/style/dnb-selection.css +6 -6
  713. package/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
  714. package/extensions/forms/Field/Selection/style/dnb-selection.scss +15 -10
  715. package/extensions/forms/Field/String/String.d.ts +1 -0
  716. package/extensions/forms/Field/String/String.js +13 -8
  717. package/extensions/forms/Field/String/String.js.map +1 -1
  718. package/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  719. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  720. package/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -1
  721. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  722. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -1
  723. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +8 -0
  724. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  725. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +10 -0
  726. package/extensions/forms/Form/Handler/Handler.js +2 -2
  727. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  728. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +7 -2
  729. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  730. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.scss +6 -1
  731. package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.css +3 -0
  732. package/extensions/forms/Form/SubHeading/style/dnb-form-sub-heading.scss +2 -0
  733. package/extensions/forms/StepsLayout/NextButton/NextButton.js +3 -2
  734. package/extensions/forms/StepsLayout/NextButton/NextButton.js.map +1 -1
  735. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js +3 -2
  736. package/extensions/forms/StepsLayout/PreviousButton/PreviousButton.js.map +1 -1
  737. package/extensions/forms/StepsLayout/StepsLayout.js +1 -1
  738. package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  739. package/extensions/forms/StepsLayout/style/dnb-steps-layout.css +14 -16
  740. package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  741. package/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +15 -16
  742. package/extensions/forms/hooks/useDataValue.d.ts +3 -0
  743. package/extensions/forms/hooks/useDataValue.js +99 -49
  744. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  745. package/extensions/forms/style/dnb-forms.css +42 -25
  746. package/extensions/forms/style/dnb-forms.min.css +1 -1
  747. package/extensions/forms/types.d.ts +12 -2
  748. package/extensions/forms/types.js +1 -1
  749. package/extensions/forms/types.js.map +1 -1
  750. package/icons/browser.d.ts +3 -0
  751. package/icons/browser.js +3 -0
  752. package/icons/browser.js.map +1 -0
  753. package/icons/browser_medium.d.ts +3 -0
  754. package/icons/browser_medium.js +3 -0
  755. package/icons/browser_medium.js.map +1 -0
  756. package/icons/digipass_corporate.d.ts +3 -0
  757. package/icons/digipass_corporate.js +3 -0
  758. package/icons/digipass_corporate.js.map +1 -0
  759. package/icons/digipass_corporate_medium.d.ts +3 -0
  760. package/icons/digipass_corporate_medium.js +3 -0
  761. package/icons/digipass_corporate_medium.js.map +1 -0
  762. package/icons/digipass_private.d.ts +3 -0
  763. package/icons/digipass_private.js +3 -0
  764. package/icons/digipass_private.js.map +1 -0
  765. package/icons/digipass_private_medium.d.ts +3 -0
  766. package/icons/digipass_private_medium.js +3 -0
  767. package/icons/digipass_private_medium.js.map +1 -0
  768. package/icons/dnb/browser.d.ts +3 -0
  769. package/icons/dnb/browser.js +17 -0
  770. package/icons/dnb/browser.js.map +1 -0
  771. package/icons/dnb/browser_medium.d.ts +3 -0
  772. package/icons/dnb/browser_medium.js +17 -0
  773. package/icons/dnb/browser_medium.js.map +1 -0
  774. package/icons/dnb/coins_1.js +1 -1
  775. package/icons/dnb/coins_1.js.map +1 -1
  776. package/icons/dnb/coins_1_medium.js +1 -1
  777. package/icons/dnb/coins_1_medium.js.map +1 -1
  778. package/icons/dnb/digipass_corporate.d.ts +3 -0
  779. package/icons/dnb/digipass_corporate.js +17 -0
  780. package/icons/dnb/digipass_corporate.js.map +1 -0
  781. package/icons/dnb/digipass_corporate_medium.d.ts +3 -0
  782. package/icons/dnb/digipass_corporate_medium.js +17 -0
  783. package/icons/dnb/digipass_corporate_medium.js.map +1 -0
  784. package/icons/dnb/digipass_private.d.ts +3 -0
  785. package/icons/dnb/digipass_private.js +17 -0
  786. package/icons/dnb/digipass_private.js.map +1 -0
  787. package/icons/dnb/digipass_private_medium.d.ts +3 -0
  788. package/icons/dnb/digipass_private_medium.js +17 -0
  789. package/icons/dnb/digipass_private_medium.js.map +1 -0
  790. package/icons/dnb/envelope_open.d.ts +3 -0
  791. package/icons/dnb/envelope_open.js +18 -0
  792. package/icons/dnb/envelope_open.js.map +1 -0
  793. package/icons/dnb/envelope_open_medium.d.ts +3 -0
  794. package/icons/dnb/envelope_open_medium.js +18 -0
  795. package/icons/dnb/envelope_open_medium.js.map +1 -0
  796. package/icons/dnb/icons-meta.json +230 -20
  797. package/icons/dnb/icons-svg.lock +1272 -1064
  798. package/icons/dnb/index.d.ts +17 -1
  799. package/icons/dnb/index.js +17 -1
  800. package/icons/dnb/index.js.map +1 -1
  801. package/icons/dnb/laptop.d.ts +3 -0
  802. package/icons/dnb/laptop.js +18 -0
  803. package/icons/dnb/laptop.js.map +1 -0
  804. package/icons/dnb/laptop_medium.d.ts +3 -0
  805. package/icons/dnb/laptop_medium.js +18 -0
  806. package/icons/dnb/laptop_medium.js.map +1 -0
  807. package/icons/dnb/mobile.d.ts +3 -0
  808. package/icons/dnb/mobile.js +15 -0
  809. package/icons/dnb/mobile.js.map +1 -0
  810. package/icons/dnb/mobile_medium.d.ts +3 -0
  811. package/icons/dnb/mobile_medium.js +15 -0
  812. package/icons/dnb/mobile_medium.js.map +1 -0
  813. package/icons/dnb/money_left.d.ts +3 -0
  814. package/icons/dnb/money_left.js +17 -0
  815. package/icons/dnb/money_left.js.map +1 -0
  816. package/icons/dnb/money_left_medium.d.ts +3 -0
  817. package/icons/dnb/money_left_medium.js +18 -0
  818. package/icons/dnb/money_left_medium.js.map +1 -0
  819. package/icons/dnb/scan.js +5 -2
  820. package/icons/dnb/scan.js.map +1 -1
  821. package/icons/dnb/scan_medium.js +8 -12
  822. package/icons/dnb/scan_medium.js.map +1 -1
  823. package/icons/dnb/secondary_icons.d.ts +9 -1
  824. package/icons/dnb/secondary_icons.js +9 -1
  825. package/icons/dnb/secondary_icons.js.map +1 -1
  826. package/icons/dnb/secondary_icons_medium.d.ts +9 -1
  827. package/icons/dnb/secondary_icons_medium.js +9 -1
  828. package/icons/dnb/secondary_icons_medium.js.map +1 -1
  829. package/icons/dnb/teenager.d.ts +3 -0
  830. package/icons/dnb/teenager.js +18 -0
  831. package/icons/dnb/teenager.js.map +1 -0
  832. package/icons/dnb/teenager_medium.d.ts +3 -0
  833. package/icons/dnb/teenager_medium.js +18 -0
  834. package/icons/dnb/teenager_medium.js.map +1 -0
  835. package/icons/envelope_open.d.ts +3 -0
  836. package/icons/envelope_open.js +3 -0
  837. package/icons/envelope_open.js.map +1 -0
  838. package/icons/envelope_open_medium.d.ts +3 -0
  839. package/icons/envelope_open_medium.js +3 -0
  840. package/icons/envelope_open_medium.js.map +1 -0
  841. package/icons/index.d.ts +17 -1
  842. package/icons/index.js +17 -1
  843. package/icons/index.js.map +1 -1
  844. package/icons/laptop.d.ts +3 -0
  845. package/icons/laptop.js +3 -0
  846. package/icons/laptop.js.map +1 -0
  847. package/icons/laptop_medium.d.ts +3 -0
  848. package/icons/laptop_medium.js +3 -0
  849. package/icons/laptop_medium.js.map +1 -0
  850. package/icons/mobile.d.ts +3 -0
  851. package/icons/mobile.js +3 -0
  852. package/icons/mobile.js.map +1 -0
  853. package/icons/mobile_medium.d.ts +3 -0
  854. package/icons/mobile_medium.js +3 -0
  855. package/icons/mobile_medium.js.map +1 -0
  856. package/icons/money_left.d.ts +3 -0
  857. package/icons/money_left.js +3 -0
  858. package/icons/money_left.js.map +1 -0
  859. package/icons/money_left_medium.d.ts +3 -0
  860. package/icons/money_left_medium.js +3 -0
  861. package/icons/money_left_medium.js.map +1 -0
  862. package/icons/teenager.d.ts +3 -0
  863. package/icons/teenager.js +3 -0
  864. package/icons/teenager.js.map +1 -0
  865. package/icons/teenager_medium.d.ts +3 -0
  866. package/icons/teenager_medium.js +3 -0
  867. package/icons/teenager_medium.js.map +1 -0
  868. package/package.json +1 -1
  869. package/shared/Eufemia.d.ts +1 -1
  870. package/shared/Eufemia.js +2 -2
  871. package/shared/Eufemia.js.map +1 -1
  872. package/shared/component-helper.d.ts +1 -0
  873. package/shared/component-helper.js +3 -0
  874. package/shared/component-helper.js.map +1 -1
  875. package/style/dnb-ui-components.css +84 -63
  876. package/style/dnb-ui-components.min.css +3 -3
  877. package/style/dnb-ui-extensions.css +42 -25
  878. package/style/dnb-ui-extensions.min.css +1 -1
  879. package/style/dnb-ui-forms.css +42 -25
  880. package/style/dnb-ui-forms.min.css +1 -1
  881. package/style/themes/theme-eiendom/eiendom-theme-basis.css +14 -2
  882. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  883. package/style/themes/theme-eiendom/eiendom-theme-components.css +166 -91
  884. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  885. package/style/themes/theme-eiendom/eiendom-theme-components.scss +1 -0
  886. package/style/themes/theme-eiendom/eiendom-theme-elements.css +14 -2
  887. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  888. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +42 -25
  889. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  890. package/style/themes/theme-eiendom/eiendom-theme-forms.css +42 -25
  891. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  892. package/style/themes/theme-sbanken/sbanken-theme-components.css +155 -90
  893. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  894. package/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -0
  895. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +42 -25
  896. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  897. package/style/themes/theme-sbanken/sbanken-theme-forms.css +42 -25
  898. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  899. package/style/themes/theme-ui/ui-theme-basis.css +14 -2
  900. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  901. package/style/themes/theme-ui/ui-theme-components.css +166 -91
  902. package/style/themes/theme-ui/ui-theme-components.min.css +5 -5
  903. package/style/themes/theme-ui/ui-theme-components.scss +1 -0
  904. package/style/themes/theme-ui/ui-theme-elements.css +14 -2
  905. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  906. package/style/themes/theme-ui/ui-theme-extensions.css +42 -25
  907. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  908. package/style/themes/theme-ui/ui-theme-forms.css +42 -25
  909. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  910. package/style/themes/theme-ui/ui-theme-tags.css +3 -3
  911. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  912. package/umd/dnb-ui-basis.min.js +1 -1
  913. package/umd/dnb-ui-components.min.js +1 -1
  914. package/umd/dnb-ui-elements.min.js +1 -1
  915. package/umd/dnb-ui-extensions.min.js +3 -3
  916. package/umd/dnb-ui-lib.min.js +1 -1
  917. package/cjs/icons/icons-meta.json +0 -3748
  918. package/es/icons/icons-meta.json +0 -3748
  919. package/icons/icons-meta.json +0 -3748
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { DynamicElement, SpacingProps } from '../../shared/types';
2
+ import { SpaceProps } from '../space/Space';
3
3
  export type Sizes = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'auto';
4
4
  type MediaSizes = {
5
5
  xsmall?: Sizes;
@@ -9,13 +9,12 @@ type MediaSizes = {
9
9
  };
10
10
  export type Size = MediaSizes | Sizes;
11
11
  export type BasicProps = {
12
- element?: DynamicElement;
13
12
  grow?: boolean;
14
13
  shrink?: boolean;
15
14
  alignSelf?: 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch';
16
15
  size?: Size;
17
16
  };
18
- export type Props = BasicProps & SpacingProps & Omit<React.HTMLProps<HTMLElement>, 'ref' | 'wrap' | 'size'>;
17
+ export type Props = BasicProps & SpaceProps & Omit<React.HTMLProps<HTMLElement>, 'ref' | 'wrap' | 'size'>;
19
18
  declare function FlexItem(props: Props): import("react/jsx-runtime").JSX.Element;
20
19
  declare namespace FlexItem {
21
20
  var _supportsSpacingProps: boolean;
@@ -55,7 +55,8 @@ function FlexItem(props) {
55
55
  }
56
56
  return _react.default.createElement(_Space.default, _extends({
57
57
  element: element,
58
- className: cn
58
+ className: cn,
59
+ style: style
59
60
  }, rest), children);
60
61
  function isValidSize(size) {
61
62
  return typeof size === 'number' || size === 'auto';
@@ -1 +1 @@
1
- {"version":3,"file":"Item.js","names":["_react","_interopRequireDefault","require","_classnames","_Space","_utils","_excluded","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","FlexItem","props","element","className","grow","shrink","alignSelf","size","style","children","rest","cn","classnames","spaceStyles","isValidSize","sizes","createElement","omitSpacingProps","pickSpacingProps","_supportsSpacingProps","_default","exports"],"sources":["../../../../src/components/flex/Item.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport Space from '../space/Space'\nimport type { DynamicElement, SpacingProps } from '../../shared/types'\nimport { omitSpacingProps, pickSpacingProps } from './utils'\n\nexport type Sizes =\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 'auto'\ntype MediaSizes = {\n xsmall?: Sizes\n small?: Sizes\n medium?: Sizes\n large?: Sizes\n}\nexport type Size = MediaSizes | Sizes\n\nexport type BasicProps = {\n element?: DynamicElement\n grow?: boolean\n shrink?: boolean\n alignSelf?: 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch'\n size?: Size\n}\n\nexport type Props = BasicProps &\n SpacingProps &\n Omit<React.HTMLProps<HTMLElement>, 'ref' | 'wrap' | 'size'>\n\nfunction FlexItem(props: Props) {\n const {\n element = 'div',\n className,\n grow,\n shrink,\n alignSelf,\n size,\n style,\n children,\n ...rest\n } = props\n\n const cn = classnames(\n 'dnb-flex-item',\n grow && 'dnb-flex-item--grow',\n shrink && 'dnb-flex-item--shrink',\n alignSelf && `dnb-flex-item--align-self-${alignSelf}`,\n size && 'dnb-flex-item--responsive',\n className\n )\n\n const spaceStyles = {} as React.CSSProperties\n\n if (size) {\n if (isValidSize(size as Sizes)) {\n spaceStyles['--size--default'] = size\n } else {\n const sizes = size as MediaSizes\n for (const key in sizes) {\n if (isValidSize(size[key])) {\n spaceStyles[`--${key}`] = size[key]\n }\n }\n }\n }\n\n if (Object.keys(spaceStyles).length) {\n return (\n <Space\n element={element}\n className={cn}\n style={{ ...spaceStyles, ...style }}\n {...omitSpacingProps(rest)}\n >\n <Space\n className=\"dnb-flex-item__spacer\"\n {...pickSpacingProps(rest)}\n >\n {children}\n </Space>\n </Space>\n )\n }\n\n return (\n <Space element={element} className={cn} {...rest}>\n {children}\n </Space>\n )\n\n function isValidSize(size: Sizes) {\n return typeof size === 'number' || size === 'auto'\n }\n}\n\nFlexItem._supportsSpacingProps = true\n\nexport default FlexItem\n"],"mappings":"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"}
1
+ {"version":3,"file":"Item.js","names":["_react","_interopRequireDefault","require","_classnames","_Space","_utils","_excluded","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","FlexItem","props","element","className","grow","shrink","alignSelf","size","style","children","rest","cn","classnames","spaceStyles","isValidSize","sizes","createElement","omitSpacingProps","pickSpacingProps","_supportsSpacingProps","_default","exports"],"sources":["../../../../src/components/flex/Item.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport Space, { SpaceProps } from '../space/Space'\nimport { omitSpacingProps, pickSpacingProps } from './utils'\n\nexport type Sizes =\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 'auto'\ntype MediaSizes = {\n xsmall?: Sizes\n small?: Sizes\n medium?: Sizes\n large?: Sizes\n}\nexport type Size = MediaSizes | Sizes\n\nexport type BasicProps = {\n grow?: boolean\n shrink?: boolean\n alignSelf?: 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch'\n size?: Size\n}\n\nexport type Props = BasicProps &\n SpaceProps &\n Omit<React.HTMLProps<HTMLElement>, 'ref' | 'wrap' | 'size'>\n\nfunction FlexItem(props: Props) {\n const {\n element = 'div',\n className,\n grow,\n shrink,\n alignSelf,\n size,\n style,\n children,\n ...rest\n } = props\n\n const cn = classnames(\n 'dnb-flex-item',\n grow && 'dnb-flex-item--grow',\n shrink && 'dnb-flex-item--shrink',\n alignSelf && `dnb-flex-item--align-self-${alignSelf}`,\n size && 'dnb-flex-item--responsive',\n className\n )\n\n const spaceStyles = {} as React.CSSProperties\n\n if (size) {\n if (isValidSize(size as Sizes)) {\n spaceStyles['--size--default'] = size\n } else {\n const sizes = size as MediaSizes\n for (const key in sizes) {\n if (isValidSize(size[key])) {\n spaceStyles[`--${key}`] = size[key]\n }\n }\n }\n }\n\n if (Object.keys(spaceStyles).length) {\n return (\n <Space\n element={element}\n className={cn}\n style={{ ...spaceStyles, ...style }}\n {...omitSpacingProps(rest)}\n >\n <Space\n className=\"dnb-flex-item__spacer\"\n {...pickSpacingProps(rest)}\n >\n {children}\n </Space>\n </Space>\n )\n }\n\n return (\n <Space element={element} className={cn} style={style} {...rest}>\n {children}\n </Space>\n )\n\n function isValidSize(size: Sizes) {\n return typeof size === 'number' || size === 'auto'\n }\n}\n\nFlexItem._supportsSpacingProps = true\n\nexport default FlexItem\n"],"mappings":"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"}
@@ -30,7 +30,7 @@ export type InputSubmitButtonIcon =
30
30
  | ((...args: any[]) => any);
31
31
  export type InputChildren = React.ReactNode | ((...args: any[]) => any);
32
32
  export interface InputProps
33
- extends Omit<React.HTMLProps<HTMLElement>, 'ref'>,
33
+ extends Omit<React.HTMLProps<HTMLInputElement>, 'ref'>,
34
34
  SpacingProps {
35
35
  /**
36
36
  * Choose between `text`, `number`, `email`, `password`, `url`, `tel` and `search`.
@@ -195,7 +195,8 @@ export default class Input extends React.Component<InputProps, any> {
195
195
  static defaultProps: object;
196
196
  render(): JSX.Element;
197
197
  }
198
- export interface SubmitButtonProps extends React.HTMLProps<HTMLElement> {
198
+ export interface SubmitButtonProps
199
+ extends React.HTMLProps<HTMLInputElement> {
199
200
  id?: string;
200
201
  /**
201
202
  * The content value of the input.
@@ -173,9 +173,6 @@ const useInputElement = () => {
173
173
  }));
174
174
  const InputElement = (params, innerRef) => {
175
175
  innerRef.current = ref.current;
176
- if (!params.inputMode) {
177
- params.inputMode = (0, _InputMaskedUtils.getInputModeFromMask)(mask);
178
- }
179
176
  return _react.default.createElement(_TextMask.default, _extends({
180
177
  inputRef: ref,
181
178
  inputElement: inputElementRef.current,
@@ -185,7 +182,7 @@ const useInputElement = () => {
185
182
  guide: showGuide,
186
183
  keepCharPositions: keepCharPositions,
187
184
  placeholderChar: placeholderChar
188
- }, params, {
185
+ }, (0, _InputMaskedUtils.getSoftKeyboardAttributes)(mask), params, {
189
186
  className: (0, _classnames.default)(params.className, showMask && showGuide && placeholderChar && placeholderChar !== _InputMaskedUtils.invisibleSpace && 'dnb-input-masked--guide')
190
187
  }));
191
188
  };
@@ -304,7 +301,10 @@ const useCallEvent = _ref2 => {
304
301
  setLocalValue(value);
305
302
  }
306
303
  if ((name === 'on_focus' || name === 'on_mouse_up') && !props.selectall) {
307
- (0, _InputMaskedUtils.correctCaretPosition)(event.target, maskParams, props);
304
+ event.target.runCorrectCaretPosition = () => (0, _InputMaskedUtils.correctCaretPosition)(event.target, maskParams, props);
305
+ if (!event.target.__getCorrectCaretPosition) {
306
+ event.target.runCorrectCaretPosition();
307
+ }
308
308
  }
309
309
  return result;
310
310
  };
@@ -1 +1 @@
1
- {"version":3,"file":"InputMaskedHooks.js","names":["_react","_interopRequireDefault","require","_classnames","_NumberUtils","_componentHelper","_createTextMaskInputElement","_TextMask","_createNumberMask","_keycode","_InputMaskedContext","_InputMaskedUtils","_excluded","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","_extends","assign","bind","prototype","hasOwnProperty","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","useFilteredProps","props","React","useContext","InputMaskedContext","mask","number_mask","currency_mask","number_format","mask_options","as_currency","as_number","as_percent","locale","show_mask","show_guide","pipe","keep_char_positions","placeholder_char","attributes","htmlAttributes","freeze","exports","useLocale","context","useLocalValue","maskParams","useNumberMaskParams","localValue","setLocalValue","useState","correctNumberValue","useEffect","useNumberMask","isRequestingNumberMask","createNumberMask","useMask","numberMask","useMaskParams","placeholder","showMask","isTrue","placeholderChar","invisibleSpace","showGuide","keepCharPositions","useInputElement","inner_ref","isFn","refHook","useRef","ref","useLayoutEffect","current","inputElementRef","createElement","InputElement","params","innerRef","inputMode","getInputModeFromMask","inputRef","inputElement","guide","className","classnames","useEventMapping","_ref","callEvent","useCallEvent","onBeforeInput","event","onFocus","onBlur","onMouseUp","onKeyDown","onSubmit","onChange","on_focus","on_blur","on_key_down","on_submit","on_change","_ref2","isNumberMask","decimalSeparators","isUnidentified","_ref3","name","selStart","selectionStart","keyCode","keycode","which","data","disallowLeadingZeroes","replace","test","testValue","slice","preventDefault","decimalSymbol","hasDecimalSymbol","includes","allowedDecimals","decimalLimit","allowDecimal","charAtSelection","index","safeSetSelection","thousandsSeparatorSymbol","num","cleanNumber","prefix","suffix","decimalSeparator","thousandsSeparator","numberValue","cleanedValue","charAt","correctCaretPosition","result","dispatchCustomElementEvent","selectall","_currency_mask","fromJSON","currency","isRequestingLocaleSupport","handleThousandsSeparator","handleDecimalSeparator","extendPropsWithContext","getCurrencySymbol","handleNumberMask","handlePercentMask","handleCurrencyMask"],"sources":["../../../../src/components/input-masked/InputMaskedHooks.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport {\n cleanNumber,\n getCurrencySymbol,\n} from '../number-format/NumberUtils'\nimport {\n isTrue,\n dispatchCustomElementEvent,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\n\nimport TextMask from './TextMask'\nimport createNumberMask from './addons/createNumberMask'\nimport keycode from 'keycode'\nimport InputMaskedContext from './InputMaskedContext'\n\nimport {\n isRequestingLocaleSupport,\n isRequestingNumberMask,\n correctNumberValue,\n handlePercentMask,\n handleCurrencyMask,\n handleNumberMask,\n correctCaretPosition,\n getInputModeFromMask,\n handleThousandsSeparator,\n handleDecimalSeparator,\n fromJSON,\n invisibleSpace,\n} from './InputMaskedUtils'\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 useLocale = () => {\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 = useLocale()\n\n const [localValue, setLocalValue] = React.useState(() =>\n correctNumberValue({\n locale,\n props,\n maskParams,\n })\n )\n\n /**\n * Use an effect here, just;\n * because when a property gets changed from outside\n */\n React.useEffect(() => {\n const value = correctNumberValue({\n localValue,\n locale,\n props,\n maskParams,\n })\n\n setLocalValue(value)\n\n // Do not set \"localValue\" and \"maskParams\" here\n }, [props, context, locale]) // eslint-disable-line\n\n return { localValue, setLocalValue }\n}\n\n/**\n * Create createNumberMask if number mask parameters exists\n *\n * @returns mask function\n */\nexport const useNumberMask = () => {\n const maskParams = useNumberMaskParams()\n const { props } = React.useContext(InputMaskedContext)\n\n if (!maskParams || !isRequestingNumberMask(props)) {\n return null\n }\n\n const mask = createNumberMask(maskParams)\n\n mask.maskParams = maskParams\n\n return mask\n}\n\n/**\n * Returns either internal mask or given property mask\n *\n * @returns mask function\n */\nexport const useMask = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const numberMask = useNumberMask()\n if (numberMask) {\n return numberMask\n }\n\n return props.mask\n}\n\n/**\n * Returns the final mask params\n *\n * @returns mask params\n */\nexport const useMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n keep_char_positions,\n show_guide,\n show_mask,\n placeholder_char,\n placeholder,\n } = props\n\n const mask = useMask()\n const maskParams = useNumberMaskParams() || {}\n\n maskParams.showMask = !placeholder && isTrue(show_mask)\n\n // Revalidated placeholder char to a zero width space\n maskParams.placeholderChar = placeholder_char\n if (typeof mask?.placeholderChar !== 'undefined') {\n maskParams.placeholderChar = mask.placeholderChar\n }\n if (maskParams.placeholderChar === null) {\n maskParams.placeholderChar = invisibleSpace\n }\n\n if (typeof mask?.showMask !== 'undefined') {\n maskParams.showMask = mask.showMask\n }\n\n maskParams.showGuide = isTrue(show_guide)\n maskParams.keepCharPositions = isTrue(keep_char_positions)\n\n return maskParams\n}\n\n/**\n * Handle the TextMask dependency\n *\n * @returns React Element\n */\nexport const useInputElement = () => {\n const { props } = React.useContext(InputMaskedContext)\n const { pipe, inner_ref } = props\n\n const mask = useMask()\n const { showMask, showGuide, placeholderChar, keepCharPositions } =\n useMaskParams()\n\n const isFn = typeof inner_ref === 'function'\n const refHook = React.useRef()\n const ref = (!isFn && inner_ref) || refHook\n\n React.useLayoutEffect(() => {\n if (isFn) {\n inner_ref?.(ref.current)\n }\n }, [ref.current])\n\n // Create the actual input element\n const inputElementRef = React.useRef(<input ref={ref} />)\n\n const InputElement = (params, innerRef) => {\n // Set ref for Eufemia input\n innerRef.current = ref.current\n\n // Set \"inputMode\"\n if (!params.inputMode) {\n params.inputMode = getInputModeFromMask(mask)\n }\n\n return (\n <TextMask\n inputRef={ref}\n inputElement={inputElementRef.current}\n pipe={pipe}\n mask={mask || []}\n showMask={showMask}\n guide={showGuide}\n keepCharPositions={keepCharPositions}\n placeholderChar={placeholderChar}\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 return InputElement\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 onKeyDown: (params) => callEvent(params, 'on_key_down'),\n onSubmit: (params) => callEvent(params, 'on_submit'),\n onChange: (params) => callEvent(params, 'on_change'),\n\n on_focus: undefined,\n on_blur: undefined,\n on_key_down: undefined,\n on_submit: undefined,\n on_change: undefined,\n }\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns event handler function\n */\nconst useCallEvent = ({ setLocalValue }) => {\n const { props } = React.useContext(InputMaskedContext)\n const maskParams = useMaskParams()\n const isNumberMask = useNumberMask()\n\n // Source: https://en.wikipedia.org/wiki/Decimal_separator\n const decimalSeparators = /[,.'·]/\n let isUnidentified = false\n\n const callEvent = ({ event, value }, name) => {\n value = value || event.target.value\n const selStart = event.target.selectionStart\n let keyCode = keycode(event)\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n if (\n name === 'on_key_down' &&\n (event.which === 229 || keyCode === undefined)\n ) {\n isUnidentified = true\n }\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n // so we use this solution instead\n if (\n isUnidentified &&\n name === 'on_before_input' &&\n typeof event?.data !== 'undefined'\n ) {\n name = 'on_key_down'\n keyCode = event.data\n isUnidentified = false\n }\n\n // 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 if (name === 'on_change' && numberValue === 0) {\n correctCaretPosition(event.target, maskParams, props)\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 if (\n (name === 'on_focus' || name === 'on_mouse_up') &&\n !props.selectall\n ) {\n // Also correct here, because of additional click inside the field\n correctCaretPosition(event.target, maskParams, props)\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 = useLocale()\n\n if (!isRequestingNumberMask(props)) {\n return { ...fromJSON(props.mask_options) }\n }\n\n let { number_mask, currency_mask, mask_options } = props\n\n const { as_number, as_percent, as_currency } = 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 ),\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":";;;;;;AAKA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAIA,IAAAG,gBAAA,GAAAH,OAAA;AAKA,IAAAI,2BAAA,GAAAJ,OAAA;AAEA,IAAAK,SAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,iBAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,QAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,mBAAA,GAAAT,sBAAA,CAAAC,OAAA;AAEA,IAAAS,iBAAA,GAAAT,OAAA;AAa2B,MAAAU,SAAA;AAAA,SAAAX,uBAAAY,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,IAAAC,eAAA,CAAAP,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAkB,yBAAA,GAAAlB,MAAA,CAAAmB,gBAAA,CAAAT,MAAA,EAAAV,MAAA,CAAAkB,yBAAA,CAAAJ,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAoB,cAAA,CAAAV,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAAA,SAAAO,gBAAAxB,GAAA,EAAAuB,GAAA,EAAAK,KAAA,IAAAL,GAAA,GAAAM,cAAA,CAAAN,GAAA,OAAAA,GAAA,IAAAvB,GAAA,IAAAO,MAAA,CAAAoB,cAAA,CAAA3B,GAAA,EAAAuB,GAAA,IAAAK,KAAA,EAAAA,KAAA,EAAAf,UAAA,QAAAiB,YAAA,QAAAC,QAAA,oBAAA/B,GAAA,CAAAuB,GAAA,IAAAK,KAAA,WAAA5B,GAAA;AAAA,SAAA6B,eAAAG,GAAA,QAAAT,GAAA,GAAAU,YAAA,CAAAD,GAAA,2BAAAT,GAAA,gBAAAA,GAAA,GAAAW,MAAA,CAAAX,GAAA;AAAA,SAAAU,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAK,IAAA,CAAAP,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAE,SAAA,4DAAAP,IAAA,gBAAAF,MAAA,GAAAU,MAAA,EAAAT,KAAA;AAAA,SAAAU,SAAA,IAAAA,QAAA,GAAAtC,MAAA,CAAAuC,MAAA,GAAAvC,MAAA,CAAAuC,MAAA,CAAAC,IAAA,eAAA9B,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAK,GAAA,IAAAF,MAAA,QAAAd,MAAA,CAAAyC,SAAA,CAAAC,cAAA,CAAAP,IAAA,CAAArB,MAAA,EAAAE,GAAA,KAAAN,MAAA,CAAAM,GAAA,IAAAF,MAAA,CAAAE,GAAA,gBAAAN,MAAA,YAAA4B,QAAA,CAAA9B,KAAA,OAAAI,SAAA;AAAA,SAAA+B,yBAAA7B,MAAA,EAAA8B,QAAA,QAAA9B,MAAA,yBAAAJ,MAAA,GAAAmC,6BAAA,CAAA/B,MAAA,EAAA8B,QAAA,OAAA5B,GAAA,EAAAL,CAAA,MAAAX,MAAA,CAAAC,qBAAA,QAAA6C,gBAAA,GAAA9C,MAAA,CAAAC,qBAAA,CAAAa,MAAA,QAAAH,CAAA,MAAAA,CAAA,GAAAmC,gBAAA,CAAAjC,MAAA,EAAAF,CAAA,MAAAK,GAAA,GAAA8B,gBAAA,CAAAnC,CAAA,OAAAiC,QAAA,CAAAG,OAAA,CAAA/B,GAAA,uBAAAhB,MAAA,CAAAyC,SAAA,CAAAO,oBAAA,CAAAb,IAAA,CAAArB,MAAA,EAAAE,GAAA,aAAAN,MAAA,CAAAM,GAAA,IAAAF,MAAA,CAAAE,GAAA,cAAAN,MAAA;AAAA,SAAAmC,8BAAA/B,MAAA,EAAA8B,QAAA,QAAA9B,MAAA,yBAAAJ,MAAA,WAAAuC,UAAA,GAAAjD,MAAA,CAAAD,IAAA,CAAAe,MAAA,OAAAE,GAAA,EAAAL,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAAsC,UAAA,CAAApC,MAAA,EAAAF,CAAA,MAAAK,GAAA,GAAAiC,UAAA,CAAAtC,CAAA,OAAAiC,QAAA,CAAAG,OAAA,CAAA/B,GAAA,kBAAAN,MAAA,CAAAM,GAAA,IAAAF,MAAA,CAAAE,GAAA,YAAAN,MAAA;AAOpB,MAAMwC,gBAAgB,GAAGA,CAAA,KAAM;EACpC,MAAM;IAAEC;EAAM,CAAC,GAAGC,cAAK,CAACC,UAAU,CAACC,2BAAkB,CAAC;EAEtD,MAAM;MACJC,IAAI;MACJC,WAAW;MACXC,aAAa;MACbC,aAAa;MACbC,YAAY;MACZC,WAAW;MACXC,SAAS;MACTC,UAAU;MACVC,MAAM;MACNC,SAAS;MACTC,UAAU;MACVC,IAAI;MACJC,mBAAmB;MACnBC;IAIF,CAAC,GAAGjB,KAAK;IADJkB,UAAU,GAAA1B,wBAAA,CACXQ,KAAK,EAAA3D,SAAA;EAET,OAAO;IAAE2D,KAAK;IAAEmB,cAAc,EAAEtE,MAAM,CAACuE,MAAM,CAACF,UAAU;EAAE,CAAC;AAC7D,CAAC;AAAAG,OAAA,CAAAtB,gBAAA,GAAAA,gBAAA;AAOM,MAAMuB,SAAS,GAAGA,CAAA,KAAM;EAC7B,MAAM;IAAEtB,KAAK;IAAEuB;EAAQ,CAAC,GAAGtB,cAAK,CAACC,UAAU,CAACC,2BAAkB,CAAC;EAE/D,IAAI;IAAES;EAAO,CAAC,GAAGZ,KAAK;EACtB,IAAI,CAACY,MAAM,IAAIW,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEX,MAAM,EAAE;IAC9BA,MAAM,GAAGW,OAAO,CAACX,MAAM;EACzB;EAEA,OAAOA,MAAM;AACf,CAAC;AAAAS,OAAA,CAAAC,SAAA,GAAAA,SAAA;AAUM,MAAME,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAM;IAAExB,KAAK;IAAEuB;EAAQ,CAAC,GAAGtB,cAAK,CAACC,UAAU,CAACC,2BAAkB,CAAC;EAC/D,MAAMsB,UAAU,GAAGC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC;EAC9C,MAAMd,MAAM,GAAGU,SAAS,CAAC,CAAC;EAE1B,MAAM,CAACK,UAAU,EAAEC,aAAa,CAAC,GAAG3B,cAAK,CAAC4B,QAAQ,CAAC,MACjD,IAAAC,oCAAkB,EAAC;IACjBlB,MAAM;IACNZ,KAAK;IACLyB;EACF,CAAC,CACH,CAAC;EAMDxB,cAAK,CAAC8B,SAAS,CAAC,MAAM;IACpB,MAAM7D,KAAK,GAAG,IAAA4D,oCAAkB,EAAC;MAC/BH,UAAU;MACVf,MAAM;MACNZ,KAAK;MACLyB;IACF,CAAC,CAAC;IAEFG,aAAa,CAAC1D,KAAK,CAAC;EAGtB,CAAC,EAAE,CAAC8B,KAAK,EAAEuB,OAAO,EAAEX,MAAM,CAAC,CAAC;EAE5B,OAAO;IAAEe,UAAU;IAAEC;EAAc,CAAC;AACtC,CAAC;AAAAP,OAAA,CAAAG,aAAA,GAAAA,aAAA;AAOM,MAAMQ,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAMP,UAAU,GAAGC,mBAAmB,CAAC,CAAC;EACxC,MAAM;IAAE1B;EAAM,CAAC,GAAGC,cAAK,CAACC,UAAU,CAACC,2BAAkB,CAAC;EAEtD,IAAI,CAACsB,UAAU,IAAI,CAAC,IAAAQ,wCAAsB,EAACjC,KAAK,CAAC,EAAE;IACjD,OAAO,IAAI;EACb;EAEA,MAAMI,IAAI,GAAG,IAAA8B,yBAAgB,EAACT,UAAU,CAAC;EAEzCrB,IAAI,CAACqB,UAAU,GAAGA,UAAU;EAE5B,OAAOrB,IAAI;AACb,CAAC;AAAAiB,OAAA,CAAAW,aAAA,GAAAA,aAAA;AAOM,MAAMG,OAAO,GAAGA,CAAA,KAAM;EAC3B,MAAM;IAAEnC;EAAM,CAAC,GAAGC,cAAK,CAACC,UAAU,CAACC,2BAAkB,CAAC;EAEtD,MAAMiC,UAAU,GAAGJ,aAAa,CAAC,CAAC;EAClC,IAAII,UAAU,EAAE;IACd,OAAOA,UAAU;EACnB;EAEA,OAAOpC,KAAK,CAACI,IAAI;AACnB,CAAC;AAAAiB,OAAA,CAAAc,OAAA,GAAAA,OAAA;AAOM,MAAME,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAM;IAAErC;EAAM,CAAC,GAAGC,cAAK,CAACC,UAAU,CAACC,2BAAkB,CAAC;EAEtD,MAAM;IACJa,mBAAmB;IACnBF,UAAU;IACVD,SAAS;IACTI,gBAAgB;IAChBqB;EACF,CAAC,GAAGtC,KAAK;EAET,MAAMI,IAAI,GAAG+B,OAAO,CAAC,CAAC;EACtB,MAAMV,UAAU,GAAGC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC;EAE9CD,UAAU,CAACc,QAAQ,GAAG,CAACD,WAAW,IAAI,IAAAE,uBAAM,EAAC3B,SAAS,CAAC;EAGvDY,UAAU,CAACgB,eAAe,GAAGxB,gBAAgB;EAC7C,IAAI,QAAOb,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEqC,eAAe,MAAK,WAAW,EAAE;IAChDhB,UAAU,CAACgB,eAAe,GAAGrC,IAAI,CAACqC,eAAe;EACnD;EACA,IAAIhB,UAAU,CAACgB,eAAe,KAAK,IAAI,EAAE;IACvChB,UAAU,CAACgB,eAAe,GAAGC,gCAAc;EAC7C;EAEA,IAAI,QAAOtC,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEmC,QAAQ,MAAK,WAAW,EAAE;IACzCd,UAAU,CAACc,QAAQ,GAAGnC,IAAI,CAACmC,QAAQ;EACrC;EAEAd,UAAU,CAACkB,SAAS,GAAG,IAAAH,uBAAM,EAAC1B,UAAU,CAAC;EACzCW,UAAU,CAACmB,iBAAiB,GAAG,IAAAJ,uBAAM,EAACxB,mBAAmB,CAAC;EAE1D,OAAOS,UAAU;AACnB,CAAC;AAAAJ,OAAA,CAAAgB,aAAA,GAAAA,aAAA;AAOM,MAAMQ,eAAe,GAAGA,CAAA,KAAM;EACnC,MAAM;IAAE7C;EAAM,CAAC,GAAGC,cAAK,CAACC,UAAU,CAACC,2BAAkB,CAAC;EACtD,MAAM;IAAEY,IAAI;IAAE+B;EAAU,CAAC,GAAG9C,KAAK;EAEjC,MAAMI,IAAI,GAAG+B,OAAO,CAAC,CAAC;EACtB,MAAM;IAAEI,QAAQ;IAAEI,SAAS;IAAEF,eAAe;IAAEG;EAAkB,CAAC,GAC/DP,aAAa,CAAC,CAAC;EAEjB,MAAMU,IAAI,GAAG,OAAOD,SAAS,KAAK,UAAU;EAC5C,MAAME,OAAO,GAAG/C,cAAK,CAACgD,MAAM,CAAC,CAAC;EAC9B,MAAMC,GAAG,GAAI,CAACH,IAAI,IAAID,SAAS,IAAKE,OAAO;EAE3C/C,cAAK,CAACkD,eAAe,CAAC,MAAM;IAC1B,IAAIJ,IAAI,EAAE;MACRD,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAGI,GAAG,CAACE,OAAO,CAAC;IAC1B;EACF,CAAC,EAAE,CAACF,GAAG,CAACE,OAAO,CAAC,CAAC;EAGjB,MAAMC,eAAe,GAAGpD,cAAK,CAACgD,MAAM,CAACxH,MAAA,CAAAe,OAAA,CAAA8G,aAAA;IAAOJ,GAAG,EAAEA;EAAI,CAAE,CAAC,CAAC;EAEzD,MAAMK,YAAY,GAAGA,CAACC,MAAM,EAAEC,QAAQ,KAAK;IAEzCA,QAAQ,CAACL,OAAO,GAAGF,GAAG,CAACE,OAAO;IAG9B,IAAI,CAACI,MAAM,CAACE,SAAS,EAAE;MACrBF,MAAM,CAACE,SAAS,GAAG,IAAAC,sCAAoB,EAACvD,IAAI,CAAC;IAC/C;IAEA,OACE3E,MAAA,CAAAe,OAAA,CAAA8G,aAAA,CAACtH,SAAA,CAAAQ,OAAQ,EAAA2C,QAAA;MACPyE,QAAQ,EAAEV,GAAI;MACdW,YAAY,EAAER,eAAe,CAACD,OAAQ;MACtCrC,IAAI,EAAEA,IAAK;MACXX,IAAI,EAAEA,IAAI,IAAI,EAAG;MACjBmC,QAAQ,EAAEA,QAAS;MACnBuB,KAAK,EAAEnB,SAAU;MACjBC,iBAAiB,EAAEA,iBAAkB;MACrCH,eAAe,EAAEA;IAAgB,GAC7Be,MAAM;MACVO,SAAS,EAAE,IAAAC,mBAAU,EACnBR,MAAM,CAACO,SAAS,EAChBxB,QAAQ,IACNI,SAAS,IACTF,eAAe,IACfA,eAAe,KAAKC,gCAAc,IAClC,yBACJ;IAAE,EACH,CAAC;EAEN,CAAC;EACD,OAAOa,YAAY;AACrB,CAAC;AAAAlC,OAAA,CAAAwB,eAAA,GAAAA,eAAA;AASM,MAAMoB,eAAe,GAAGC,IAAA,IAAuB;EAAA,IAAtB;IAAEtC;EAAc,CAAC,GAAAsC,IAAA;EAC/C,MAAMC,SAAS,GAAGC,YAAY,CAAC;IAAExC;EAAc,CAAC,CAAC;EAEjD,OAAO;IACLyC,aAAa,EAAGC,KAAK,IAAKH,SAAS,CAAC;MAAEG;IAAM,CAAC,EAAE,iBAAiB,CAAC;IACjEC,OAAO,EAAGf,MAAM,IAAKW,SAAS,CAACX,MAAM,EAAE,UAAU,CAAC;IAClDgB,MAAM,EAAGhB,MAAM,IAAKW,SAAS,CAACX,MAAM,EAAE,SAAS,CAAC;IAChDiB,SAAS,EAAGH,KAAK,IAAKH,SAAS,CAAC;MAAEG;IAAM,CAAC,EAAE,aAAa,CAAC;IACzDI,SAAS,EAAGlB,MAAM,IAAKW,SAAS,CAACX,MAAM,EAAE,aAAa,CAAC;IACvDmB,QAAQ,EAAGnB,MAAM,IAAKW,SAAS,CAACX,MAAM,EAAE,WAAW,CAAC;IACpDoB,QAAQ,EAAGpB,MAAM,IAAKW,SAAS,CAACX,MAAM,EAAE,WAAW,CAAC;IAEpDqB,QAAQ,EAAE/F,SAAS;IACnBgG,OAAO,EAAEhG,SAAS;IAClBiG,WAAW,EAAEjG,SAAS;IACtBkG,SAAS,EAAElG,SAAS;IACpBmG,SAAS,EAAEnG;EACb,CAAC;AACH,CAAC;AAAAuC,OAAA,CAAA4C,eAAA,GAAAA,eAAA;AASD,MAAMG,YAAY,GAAGc,KAAA,IAAuB;EAAA,IAAtB;IAAEtD;EAAc,CAAC,GAAAsD,KAAA;EACrC,MAAM;IAAElF;EAAM,CAAC,GAAGC,cAAK,CAACC,UAAU,CAACC,2BAAkB,CAAC;EACtD,MAAMsB,UAAU,GAAGY,aAAa,CAAC,CAAC;EAClC,MAAM8C,YAAY,GAAGnD,aAAa,CAAC,CAAC;EAGpC,MAAMoD,iBAAiB,GAAG,QAAQ;EAClC,IAAIC,cAAc,GAAG,KAAK;EAE1B,MAAMlB,SAAS,GAAGA,CAAAmB,KAAA,EAAmBC,IAAI,KAAK;IAAA,IAA3B;MAAEjB,KAAK;MAAEpG;IAAM,CAAC,GAAAoH,KAAA;IACjCpH,KAAK,GAAGA,KAAK,IAAIoG,KAAK,CAAC/G,MAAM,CAACW,KAAK;IACnC,MAAMsH,QAAQ,GAAGlB,KAAK,CAAC/G,MAAM,CAACkI,cAAc;IAC5C,IAAIC,OAAO,GAAG,IAAAC,gBAAO,EAACrB,KAAK,CAAC;IAG5B,IACEiB,IAAI,KAAK,aAAa,KACrBjB,KAAK,CAACsB,KAAK,KAAK,GAAG,IAAIF,OAAO,KAAK5G,SAAS,CAAC,EAC9C;MACAuG,cAAc,GAAG,IAAI;IACvB;IAIA,IACEA,cAAc,IACdE,IAAI,KAAK,iBAAiB,IAC1B,QAAOjB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEuB,IAAI,MAAK,WAAW,EAClC;MACAN,IAAI,GAAG,aAAa;MACpBG,OAAO,GAAGpB,KAAK,CAACuB,IAAI;MACpBR,cAAc,GAAG,KAAK;IACxB;IAGA,IACEE,IAAI,KAAK,aAAa,IACtB,CAACF,cAAc,IACf5D,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEqE,qBAAqB,KAChCJ,OAAO,KAAK,GAAG,IACdA,OAAO,KAAK,UAAU,IACrBxH,KAAK,CAAC6H,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,EAAE,IACjCX,iBAAiB,CAACY,IAAI,CAACN,OAAO,CAAE,CAAC,EACrC;MACA,MAAMO,SAAS,GAAG,CAChB/H,KAAK,CAACgI,KAAK,CAAC,CAAC,EAAEV,QAAQ,CAAC,GACxB,GAAG,GACHtH,KAAK,CAACgI,KAAK,CAACV,QAAQ,GAAG,CAAC,EAAEtH,KAAK,CAACR,MAAM,CAAC,EACvCqI,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;MAEvB,IAAI,IAAI,CAACC,IAAI,CAACC,SAAS,CAAC,EAAE;QACxB3B,KAAK,CAAC6B,cAAc,CAAC,CAAC;MACxB;IACF;IAEA,IACEZ,IAAI,KAAK,aAAa,IACtBJ,YAAY,IACZ,CAACE,cAAc,IACf5D,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAE2E,aAAa,EACzB;MACA,MAAMC,gBAAgB,GAAGnI,KAAK,CAACoI,QAAQ,CAAC7E,UAAU,CAAC2E,aAAa,CAAC;MACjE,MAAMG,eAAe,GACnB9E,UAAU,CAAC+E,YAAY,GAAG,CAAC,IAAI/E,UAAU,CAACgF,YAAY,KAAK,KAAK;MAElE,IAAI,CAACF,eAAe,IAAInB,iBAAiB,CAACY,IAAI,CAACN,OAAO,CAAC,EAAE;QACvDpB,KAAK,CAAC6B,cAAc,CAAC,CAAC;MACxB;MAEA,MAAMO,eAAe,GAAGxI,KAAK,CAACgI,KAAK,CAACV,QAAQ,EAAEA,QAAQ,GAAG,CAAC,CAAC;MAE3D,IAAIe,eAAe,EAAE;QAEnB,IAAIF,gBAAgB,IAAIjB,iBAAiB,CAACY,IAAI,CAACN,OAAO,CAAC,EAAE;UAEvD,IAAIN,iBAAiB,CAACY,IAAI,CAACU,eAAe,CAAC,EAAE;YAC3C,MAAMC,KAAK,GAAGzI,KAAK,CAAC0B,OAAO,CAAC6B,UAAU,CAAC2E,aAAa,CAAC;YACrD,IAAIO,KAAK,GAAG,CAAC,CAAC,EAAE;cACd,IAAAC,4CAAgB,EAACtC,KAAK,CAAC/G,MAAM,EAAEoJ,KAAK,GAAG,CAAC,CAAC;YAC3C;UACF;UAGArC,KAAK,CAAC6B,cAAc,CAAC,CAAC;QACxB,CAAC,MAGI,IACH,CAACE,gBAAgB,IACjBX,OAAO,KAAKjE,UAAU,CAAC2E,aAAa,IACpChB,iBAAiB,CAACY,IAAI,CAACN,OAAO,CAAC,EAC/B;UACAxH,KAAK,GAAGA,KAAK,CAACgI,KAAK,CAAC,CAAC,EAAEV,QAAQ,CAAC;UAChC5D,aAAa,CAAC1D,KAAK,GAAGuD,UAAU,CAAC2E,aAAa,CAAC;UAC/C9B,KAAK,CAAC/G,MAAM,CAACW,KAAK,GAAGA,KAAK,GAAGuD,UAAU,CAAC2E,aAAa;UACrD9B,KAAK,CAAC6B,cAAc,CAAC,CAAC;QACxB;MACF;MAGA,IACET,OAAO,KAAK,QAAQ,IACpBgB,eAAe,MAAMjF,UAAU,CAACoF,wBAAwB,IAAI,GAAG,CAAC,EAChE;QACA,IAAAD,4CAAgB,EAACtC,KAAK,CAAC/G,MAAM,EAAEiI,QAAQ,GAAG,CAAC,CAAC;QAC5ClB,KAAK,CAAC6B,cAAc,CAAC,CAAC;MACxB;IACF;IAEA,IAAIW,GAAG,GAAG,IAAAC,wBAAW,EAAC7I,KAAK,EAAE;MAC3B8I,MAAM,EAAEvF,UAAU,CAACuF,MAAM;MACzBC,MAAM,EAAExF,UAAU,CAACwF,MAAM;MACzBC,gBAAgB,EAAEzF,UAAU,CAAC2E,aAAa,IAAI,GAAG;MACjDe,kBAAkB,EAAE1F,UAAU,CAACoF,wBAAwB,IAAI;IAC7D,CAAC,CAAC;IAGF,IAAIC,GAAG,KAAK,GAAG,EAAE;MACfA,GAAG,GAAG,CAAC,CAAC;IACV;IAEA,MAAMM,WAAW,GAAGlI,MAAM,CAAC4H,GAAG,CAAC;IAG/B,MAAMO,YAAY,GAChBD,WAAW,KAAK,CAAC,IAAI5I,MAAM,CAACsI,GAAG,CAAC,CAACQ,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE,GAAGR,GAAG;IAE/D,IAAIvB,IAAI,KAAK,WAAW,IAAI6B,WAAW,KAAK,CAAC,EAAE;MAC7C,IAAAG,sCAAoB,EAACjD,KAAK,CAAC/G,MAAM,EAAEkE,UAAU,EAAEzB,KAAK,CAAC;IACvD;IAEA,MAAMwH,MAAM,GAAG,IAAAC,2CAA0B,EAACzH,KAAK,EAAEuF,IAAI,EAAE;MACrDjB,KAAK;MACLpG,KAAK;MACLkJ,WAAW;MACXC;IACF,CAAC,CAAC;IAEF,IAAI9B,IAAI,KAAK,WAAW,EAAE;MACxB3D,aAAa,CAAC1D,KAAK,CAAC;IACtB;IAEA,IACE,CAACqH,IAAI,KAAK,UAAU,IAAIA,IAAI,KAAK,aAAa,KAC9C,CAACvF,KAAK,CAAC0H,SAAS,EAChB;MAEA,IAAAH,sCAAoB,EAACjD,KAAK,CAAC/G,MAAM,EAAEkE,UAAU,EAAEzB,KAAK,CAAC;IACvD;IAEA,OAAOwH,MAAM;EACf,CAAC;EAED,OAAOrD,SAAS;AAClB,CAAC;AAOD,MAAMzC,mBAAmB,GAAGA,CAAA,KAAM;EAAA,IAAAiG,cAAA;EAChC,MAAM;IAAE3H;EAAM,CAAC,GAAGC,cAAK,CAACC,UAAU,CAACC,2BAAkB,CAAC;EACtD,MAAMS,MAAM,GAAGU,SAAS,CAAC,CAAC;EAE1B,IAAI,CAAC,IAAAW,wCAAsB,EAACjC,KAAK,CAAC,EAAE;IAClC,OAAA1C,aAAA,KAAY,IAAAsK,0BAAQ,EAAC5H,KAAK,CAACQ,YAAY,CAAC;EAC1C;EAEA,IAAI;IAAEH,WAAW;IAAEC,aAAa;IAAEE;EAAa,CAAC,GAAGR,KAAK;EAExD,MAAM;IAAEU,SAAS;IAAEC,UAAU;IAAEF;EAAY,CAAC,GAAGT,KAAK;EAEpDQ,YAAY,GAAG,IAAAoH,0BAAQ,EAACpH,YAAY,CAAC;EACrCH,WAAW,GAAG,IAAAmC,uBAAM,EAACnC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,IAAAuH,0BAAQ,EAACvH,WAAW,CAAC;EAC9DC,aAAa,GAAG,IAAAkC,uBAAM,EAAClC,aAAa,CAAC,GACjC,CAAC,CAAC,GACF,IAAAsH,0BAAQ,EAACtH,aAAa,EAAE;IACtBuH,QAAQ,EAAEvH;EACZ,CAAC,CAAC;EACN,IAAI,GAAAqH,cAAA,GAACrH,aAAa,cAAAqH,cAAA,eAAbA,cAAA,CAAeE,QAAQ,GAAE;IAC5B,OAAOvH,aAAa,CAACuH,QAAQ;EAC/B;EAEA,IAAI,IAAAC,2CAAyB,EAAC9H,KAAK,CAAC,EAAE;IACpC,MAAM6G,wBAAwB,GAAG,IAAAkB,0CAAwB,EAACnH,MAAM,CAAC;IACjE,MAAMwF,aAAa,GAAG,IAAA4B,wCAAsB,EAACpH,MAAM,CAAC;IAEpD,IAAI,IAAA4B,uBAAM,EAAC9B,SAAS,CAAC,IAAI,IAAA8B,uBAAM,EAAC7B,UAAU,CAAC,EAAE;MAC3CN,WAAW,GAAG,IAAA4H,uCAAsB,EAAC5H,WAAW,EAAE,IAAI,EAAE;QACtD+F,aAAa;QACbS;MACF,CAAC,CAAC;IACJ,CAAC,MAAM,IAAIpG,WAAW,EAAE;MACtBH,aAAa,GAAG,IAAA2H,uCAAsB,EAAC3H,aAAa,EAAE,IAAI,EAAE;QAC1D8F,aAAa;QACbS,wBAAwB;QACxBgB,QAAQ,EAAE,IAAAK,8BAAiB,EACzBtH,MAAM,EACN,OAAOH,WAAW,KAAK,QAAQ,GAAGA,WAAW,GAAG,IAClD;MACF,CAAC,CAAC;IACJ;EACF;EAEA,IAAIgB,UAAU,GAAG,IAAI;EAErB,IAAIpB,WAAW,EAAE;IACfoB,UAAU,GAAG,IAAA0G,kCAAgB,EAAC;MAC5B3H,YAAY;MACZH;IACF,CAAC,CAAC;IAEF,IAAI,IAAAmC,uBAAM,EAAC7B,UAAU,CAAC,EAAE;MACtBc,UAAU,GAAG,IAAA2G,mCAAiB,EAAC;QAAEpI,KAAK;QAAEY,MAAM;QAAEa;MAAW,CAAC,CAAC;IAC/D;EACF,CAAC,MAAM,IAAInB,aAAa,EAAE;IACxBmB,UAAU,GAAG,IAAA4G,oCAAkB,EAAC;MAC9B7H,YAAY;MACZF;IACF,CAAC,CAAC;EACJ;EAEA,OAAOmB,UAAU;AACnB,CAAC"}
1
+ {"version":3,"file":"InputMaskedHooks.js","names":["_react","_interopRequireDefault","require","_classnames","_NumberUtils","_componentHelper","_createTextMaskInputElement","_TextMask","_createNumberMask","_keycode","_InputMaskedContext","_InputMaskedUtils","_excluded","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","_extends","assign","bind","prototype","hasOwnProperty","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","useFilteredProps","props","React","useContext","InputMaskedContext","mask","number_mask","currency_mask","number_format","mask_options","as_currency","as_number","as_percent","locale","show_mask","show_guide","pipe","keep_char_positions","placeholder_char","attributes","htmlAttributes","freeze","exports","useLocale","context","useLocalValue","maskParams","useNumberMaskParams","localValue","setLocalValue","useState","correctNumberValue","useEffect","useNumberMask","isRequestingNumberMask","createNumberMask","useMask","numberMask","useMaskParams","placeholder","showMask","isTrue","placeholderChar","invisibleSpace","showGuide","keepCharPositions","useInputElement","inner_ref","isFn","refHook","useRef","ref","useLayoutEffect","current","inputElementRef","createElement","InputElement","params","innerRef","inputRef","inputElement","guide","getSoftKeyboardAttributes","className","classnames","useEventMapping","_ref","callEvent","useCallEvent","onBeforeInput","event","onFocus","onBlur","onMouseUp","onKeyDown","onSubmit","onChange","on_focus","on_blur","on_key_down","on_submit","on_change","_ref2","isNumberMask","decimalSeparators","isUnidentified","_ref3","name","selStart","selectionStart","keyCode","keycode","which","data","disallowLeadingZeroes","replace","test","testValue","slice","preventDefault","decimalSymbol","hasDecimalSymbol","includes","allowedDecimals","decimalLimit","allowDecimal","charAtSelection","index","safeSetSelection","thousandsSeparatorSymbol","num","cleanNumber","prefix","suffix","decimalSeparator","thousandsSeparator","numberValue","cleanedValue","charAt","correctCaretPosition","result","dispatchCustomElementEvent","selectall","runCorrectCaretPosition","__getCorrectCaretPosition","_currency_mask","fromJSON","currency","isRequestingLocaleSupport","handleThousandsSeparator","handleDecimalSeparator","extendPropsWithContext","getCurrencySymbol","handleNumberMask","handlePercentMask","handleCurrencyMask"],"sources":["../../../../src/components/input-masked/InputMaskedHooks.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport {\n cleanNumber,\n getCurrencySymbol,\n} from '../number-format/NumberUtils'\nimport {\n isTrue,\n dispatchCustomElementEvent,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\n\nimport TextMask from './TextMask'\nimport createNumberMask from './addons/createNumberMask'\nimport keycode from 'keycode'\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/**\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 useLocale = () => {\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 = useLocale()\n\n const [localValue, setLocalValue] = React.useState(() =>\n correctNumberValue({\n locale,\n props,\n maskParams,\n })\n )\n\n /**\n * Use an effect here, just;\n * because when a property gets changed from outside\n */\n React.useEffect(() => {\n const value = correctNumberValue({\n localValue,\n locale,\n props,\n maskParams,\n })\n\n setLocalValue(value)\n\n // Do not set \"localValue\" and \"maskParams\" here\n }, [props, context, locale]) // eslint-disable-line\n\n return { localValue, setLocalValue }\n}\n\n/**\n * Create createNumberMask if number mask parameters exists\n *\n * @returns mask function\n */\nexport const useNumberMask = () => {\n const maskParams = useNumberMaskParams()\n const { props } = React.useContext(InputMaskedContext)\n\n if (!maskParams || !isRequestingNumberMask(props)) {\n return null\n }\n\n const mask = createNumberMask(maskParams)\n\n mask.maskParams = maskParams\n\n return mask\n}\n\n/**\n * Returns either internal mask or given property mask\n *\n * @returns mask function\n */\nexport const useMask = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const numberMask = useNumberMask()\n if (numberMask) {\n return numberMask\n }\n\n return props.mask\n}\n\n/**\n * Returns the final mask params\n *\n * @returns mask params\n */\nexport const useMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n keep_char_positions,\n show_guide,\n show_mask,\n placeholder_char,\n placeholder,\n } = props\n\n const mask = useMask()\n const maskParams = useNumberMaskParams() || {}\n\n maskParams.showMask = !placeholder && isTrue(show_mask)\n\n // Revalidated placeholder char to a zero width space\n maskParams.placeholderChar = placeholder_char\n if (typeof mask?.placeholderChar !== 'undefined') {\n maskParams.placeholderChar = mask.placeholderChar\n }\n if (maskParams.placeholderChar === null) {\n maskParams.placeholderChar = invisibleSpace\n }\n\n if (typeof mask?.showMask !== 'undefined') {\n maskParams.showMask = mask.showMask\n }\n\n maskParams.showGuide = isTrue(show_guide)\n maskParams.keepCharPositions = isTrue(keep_char_positions)\n\n return maskParams\n}\n\n/**\n * Handle the TextMask dependency\n *\n * @returns React Element\n */\nexport const useInputElement = () => {\n const { props } = React.useContext(InputMaskedContext)\n const { pipe, inner_ref } = props\n\n const mask = useMask()\n const { showMask, showGuide, placeholderChar, keepCharPositions } =\n useMaskParams()\n\n const isFn = typeof inner_ref === 'function'\n const refHook = React.useRef()\n const ref = (!isFn && inner_ref) || refHook\n\n React.useLayoutEffect(() => {\n if (isFn) {\n inner_ref?.(ref.current)\n }\n }, [ref.current])\n\n // Create the actual input element\n const inputElementRef = React.useRef(<input ref={ref} />)\n\n const InputElement = (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 || []}\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 return InputElement\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 onKeyDown: (params) => callEvent(params, 'on_key_down'),\n onSubmit: (params) => callEvent(params, 'on_submit'),\n onChange: (params) => callEvent(params, 'on_change'),\n\n on_focus: undefined,\n on_blur: undefined,\n on_key_down: undefined,\n on_submit: undefined,\n on_change: undefined,\n }\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns event handler function\n */\nconst useCallEvent = ({ setLocalValue }) => {\n const { props } = React.useContext(InputMaskedContext)\n const maskParams = useMaskParams()\n const isNumberMask = useNumberMask()\n\n // Source: https://en.wikipedia.org/wiki/Decimal_separator\n const decimalSeparators = /[,.'·]/\n let isUnidentified = false\n\n const callEvent = ({ event, value }, name) => {\n value = value || event.target.value\n const selStart = event.target.selectionStart\n let keyCode = keycode(event)\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n if (\n name === 'on_key_down' &&\n (event.which === 229 || keyCode === undefined)\n ) {\n isUnidentified = true\n }\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n // so we use this solution instead\n if (\n isUnidentified &&\n name === 'on_before_input' &&\n typeof event?.data !== 'undefined'\n ) {\n name = 'on_key_down'\n keyCode = event.data\n isUnidentified = false\n }\n\n // 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 if (name === 'on_change' && numberValue === 0) {\n correctCaretPosition(event.target, maskParams, props)\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 if (\n (name === 'on_focus' || name === 'on_mouse_up') &&\n !props.selectall\n ) {\n // Also correct here, because of additional click inside the field\n event.target.runCorrectCaretPosition = () =>\n correctCaretPosition(event.target, maskParams, props)\n if (!event.target.__getCorrectCaretPosition) {\n event.target.runCorrectCaretPosition()\n }\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 = useLocale()\n\n if (!isRequestingNumberMask(props)) {\n return { ...fromJSON(props.mask_options) }\n }\n\n let { number_mask, currency_mask, mask_options } = props\n\n const { as_number, as_percent, as_currency } = 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 ),\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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"}
@@ -1,10 +1,12 @@
1
1
  /**
2
- * Returns the type of what inputMode should be used
2
+ * Returns the type of what inputMode or type attribute should be used
3
3
  *
4
4
  * @param {function} mask mask function
5
5
  * @returns undefined|decimal|numeric
6
6
  */
7
- export function getInputModeFromMask(mask: Function): "numeric" | "decimal";
7
+ export function getSoftKeyboardAttributes(mask: Function): {
8
+ inputMode: string;
9
+ };
8
10
  /**
9
11
  * Returns the thousands separator character
10
12
  *
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.correctNumberValue = exports.correctCaretPosition = void 0;
7
7
  exports.fromJSON = fromJSON;
8
- exports.getInputModeFromMask = getInputModeFromMask;
8
+ exports.getSoftKeyboardAttributes = getSoftKeyboardAttributes;
9
9
  exports.handleCurrencyMask = void 0;
10
10
  exports.handleDecimalSeparator = handleDecimalSeparator;
11
11
  exports.handlePercentMask = exports.handleNumberMask = void 0;
@@ -205,15 +205,17 @@ const handleNumberMask = _ref6 => {
205
205
  return maskParams;
206
206
  };
207
207
  exports.handleNumberMask = handleNumberMask;
208
- function getInputModeFromMask(mask) {
209
- const maskParams = mask === null || mask === void 0 ? void 0 : mask.maskParams;
210
- if ((_helpers.IS_ANDROID || _helpers.IS_IOS) && (maskParams === null || maskParams === void 0 ? void 0 : maskParams.allowNegative) !== false) {
208
+ function getSoftKeyboardAttributes(mask) {
209
+ if ((mask === null || mask === void 0 ? void 0 : mask.instanceOf) !== 'createNumberMask') {
211
210
  return undefined;
212
211
  }
213
- if (maskParams && (mask === null || mask === void 0 ? void 0 : mask.instanceOf) === 'createNumberMask') {
214
- return maskParams.allowDecimal && maskParams.decimalLimit !== 0 ? 'decimal' : 'numeric';
212
+ const maskParams = mask === null || mask === void 0 ? void 0 : mask.maskParams;
213
+ if (_helpers.IS_IOS && (maskParams === null || maskParams === void 0 ? void 0 : maskParams.allowNegative) !== false) {
214
+ return undefined;
215
215
  }
216
- return undefined;
216
+ return {
217
+ inputMode: maskParams.allowDecimal && maskParams.decimalLimit !== 0 ? 'decimal' : 'numeric'
218
+ };
217
219
  }
218
220
  function handleThousandsSeparator(locale) {
219
221
  return (0, _NumberUtils.getThousandsSeparator)(locale).replace(' ', ' ');
@@ -1 +1 @@
1
- {"version":3,"file":"InputMaskedUtils.js","names":["_NumberUtils","require","_componentHelper","_helpers","_createTextMaskInputElement","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","enableLocaleSupportWhen","enableNumberMaskWhen","invisibleSpace","exports","isRequestingLocaleSupport","props","entries","some","_ref","k","v","includes","isRequestingNumberMask","_ref2","correctNumberValue","_ref3","localValue","locale","maskParams","isNaN","parseFloat","decimalPos","indexOf","integerLimit","limit","integers","split","isNegative","decimals","slice","shouldHaveDecimals","allowDecimal","decimalLimit","number_format","options","format","decimalSymbol","replace","localNumberValue","numberValue","endsWithDecimal","endsWith","endsWithZeroAndDecimal","startsWith","test","correctCaretPosition","element","correction","suffix","prefix","start","selectionStart","end","selectionEnd","suffixStart","suffixEnd","pos","placeholderChar","prefixStart","prefixEnd","char","safeSetSelection","mask","chars","l","RegExp","n","_mask$test","e","warn","window","requestAnimationFrame","handlePercentMask","_ref4","_String","_String$match","percent","match","handleCurrencyMask","_ref5","mask_options","currency_mask","showMask","fix","currency","handleNumberMask","_ref6","number_mask","getInputModeFromMask","IS_ANDROID","IS_IOS","allowNegative","instanceOf","handleThousandsSeparator","getThousandsSeparator","handleDecimalSeparator","getDecimalSeparator","fromJSON","str","fallback","JSON","parse"],"sources":["../../../../src/components/input-masked/InputMaskedUtils.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport {\n format,\n getDecimalSeparator,\n getThousandsSeparator,\n} from '../number-format/NumberUtils'\nimport { warn } from '../../shared/component-helper'\nimport { IS_ANDROID, 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 = props.value === null ? null : 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\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 * If the user removes a leading digit and we have left a leading zero.\n *\n * The users enters these steps:\n * Step 1. 1012\n * Step 2. 012 -> user removes 1, now use \"localValue\"\n * Step 3. 2012\n *\n * If a dev listens on_change and sends the number value back in,\n * for this, we also ensure that \"numberValue\" and \"localNumberValue\" is the same.\n */\n if (\n localNumberValue !== '0' &&\n localNumberValue.startsWith('0') &&\n parseFloat(numberValue.replace(decimalSymbol, '.')) ===\n parseFloat(localNumberValue.replace(decimalSymbol, '.'))\n ) {\n value = localValue\n }\n\n /**\n * While typing;\n * If the local value is - or -0 we use it.\n * Also, because of invisible whitespace we remove everything else\n */\n if (/^(-|-0)$/.test(localValue.replace(/[^\\d-0]/g, ''))) {\n value = localValue\n } else if (localNumberValue === '' && numberValue === '0') {\n value = ''\n }\n }\n\n return value\n}\n\n/**\n * This is a helper for setting the cursor position,\n * when it is on a not allowed position\n *\n * @param {Element} element Input Element\n * @param {Object} maskParams Mask parameters, containing eventually suffix or prefix\n */\nexport const correctCaretPosition = (element, maskParams, props) => {\n const correction = () => {\n try {\n const suffix = maskParams?.suffix\n const prefix = maskParams?.prefix\n\n const start = element.selectionStart\n const end = element.selectionEnd\n\n if (start !== end) {\n return // stop here\n }\n\n if (suffix || prefix) {\n const suffixStart = element.value.indexOf(suffix)\n const suffixEnd = suffixStart + suffix?.length\n let pos = undefined\n\n if (start >= suffixStart && start <= suffixEnd) {\n pos = suffixStart\n\n // If there is a placeholder,\n // and the user clicks after the suffix\n // we want the position to be \"before\" the placeholderChar\n if (\n maskParams.placeholderChar !== invisibleSpace &&\n element.value.length - 1 === String(suffix + prefix).length\n ) {\n pos = pos - 1\n }\n } else {\n const prefixStart = element.value.indexOf(prefix)\n const prefixEnd = prefixStart + prefix?.length || 0\n\n if (start >= prefixStart && start <= prefixEnd) {\n pos = prefixEnd\n }\n }\n\n const char = element.value.slice(pos - 1, pos)\n if (char === invisibleSpace) {\n pos = suffixStart - 1\n }\n\n if (!isNaN(parseFloat(pos))) {\n safeSetSelection(element, pos)\n }\n } else if (props?.mask && element.value.length === end) {\n const chars = element.value.split('')\n\n for (let l = chars.length, i = l - 1; i >= 0; i--) {\n const char = chars[i]\n const mask = props.mask[i]\n if (\n char &&\n char !== invisibleSpace &&\n mask instanceof RegExp &&\n mask.test(char)\n ) {\n for (let n = i + 1; n < l; n++) {\n const mask = props.mask[n]\n if (mask?.test?.(mask) === false) {\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 maskParams = {\n showMask: true,\n placeholderChar: null,\n allowDecimal: true,\n decimalLimit: 2,\n decimalSymbol: ',',\n ...mask_options,\n ...currency_mask,\n }\n\n const fix =\n typeof currency_mask === 'string'\n ? currency_mask\n : typeof maskParams.currency === 'string'\n ? maskParams.currency\n : 'kr'\n\n maskParams.suffix = ` ${fix}`\n\n return maskParams\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 should be used\n *\n * @param {function} mask mask function\n * @returns undefined|decimal|numeric\n */\nexport function getInputModeFromMask(mask) {\n const maskParams = mask?.maskParams\n\n // because of the missing minus key, we still have to use text on Android and iOS\n if ((IS_ANDROID || IS_IOS) && maskParams?.allowNegative !== false) {\n return undefined\n }\n\n if (maskParams && mask?.instanceOf === 'createNumberMask') {\n return maskParams.allowDecimal && maskParams.decimalLimit !== 0\n ? 'decimal'\n : 'numeric'\n }\n return undefined\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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"}
1
+ {"version":3,"file":"InputMaskedUtils.js","names":["_NumberUtils","require","_componentHelper","_helpers","_createTextMaskInputElement","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","enableLocaleSupportWhen","enableNumberMaskWhen","invisibleSpace","exports","isRequestingLocaleSupport","props","entries","some","_ref","k","v","includes","isRequestingNumberMask","_ref2","correctNumberValue","_ref3","localValue","locale","maskParams","isNaN","parseFloat","decimalPos","indexOf","integerLimit","limit","integers","split","isNegative","decimals","slice","shouldHaveDecimals","allowDecimal","decimalLimit","number_format","options","format","decimalSymbol","replace","localNumberValue","numberValue","endsWithDecimal","endsWith","endsWithZeroAndDecimal","startsWith","test","correctCaretPosition","element","correction","suffix","prefix","start","selectionStart","end","selectionEnd","suffixStart","suffixEnd","pos","placeholderChar","prefixStart","prefixEnd","char","safeSetSelection","mask","chars","l","RegExp","n","_mask$test","e","warn","window","requestAnimationFrame","handlePercentMask","_ref4","_String","_String$match","percent","match","handleCurrencyMask","_ref5","mask_options","currency_mask","showMask","fix","currency","handleNumberMask","_ref6","number_mask","getSoftKeyboardAttributes","instanceOf","IS_IOS","allowNegative","inputMode","handleThousandsSeparator","getThousandsSeparator","handleDecimalSeparator","getDecimalSeparator","fromJSON","str","fallback","JSON","parse"],"sources":["../../../../src/components/input-masked/InputMaskedUtils.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport {\n format,\n getDecimalSeparator,\n getThousandsSeparator,\n} from '../number-format/NumberUtils'\nimport { warn } from '../../shared/component-helper'\nimport { IS_IOS } from '../../shared/helpers'\nimport { safeSetSelection } from './text-mask/createTextMaskInputElement'\n\nconst enableLocaleSupportWhen = ['as_number', 'as_percent', 'as_currency']\nconst enableNumberMaskWhen = [\n 'as_number',\n 'as_percent',\n 'as_currency',\n 'number_mask',\n 'currency_mask',\n]\n\nexport const invisibleSpace = '\\u200B'\n\n/**\n * Will return true if a prop needs Locale support\n *\n * @param {object} props object with given component props\n * @returns boolean\n */\nexport const isRequestingLocaleSupport = (props) => {\n return Object.entries(props).some(\n ([k, v]) => v && enableLocaleSupportWhen.includes(k)\n )\n}\n\n/**\n * Will return true if a prop will enable the internal NumberMask\n *\n * @param {object} props object with given component props\n * @returns boolean\n */\nexport const isRequestingNumberMask = (props) => {\n return Object.entries(props).some(\n ([k, v]) => v && enableNumberMaskWhen.includes(k)\n )\n}\n\n/**\n * Probably the most complex part of this component\n * It will modify a given value based on certain criteria's\n *\n * @param {object} param0 object with properties\n * @property {string} localValue optional – if given, it will uses its ending to determine of what to return\n * @property {number|string} value component property value\n * @property {object} context Eufemia Context\n * @property {string} locale Eufemia locale (either from component or context)\n * @property {object} maskParams predefined mask parameters\n * @returns string Value\n */\nexport const correctNumberValue = ({\n localValue = null,\n props,\n locale,\n maskParams,\n}) => {\n let value = props.value === null ? null : 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\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 * If the user removes a leading digit and we have left a leading zero.\n *\n * The users enters these steps:\n * Step 1. 1012\n * Step 2. 012 -> user removes 1, now use \"localValue\"\n * Step 3. 2012\n *\n * If a dev listens on_change and sends the number value back in,\n * for this, we also ensure that \"numberValue\" and \"localNumberValue\" is the same.\n */\n if (\n localNumberValue !== '0' &&\n localNumberValue.startsWith('0') &&\n parseFloat(numberValue.replace(decimalSymbol, '.')) ===\n parseFloat(localNumberValue.replace(decimalSymbol, '.'))\n ) {\n value = localValue\n }\n\n /**\n * While typing;\n * If the local value is - or -0 we use it.\n * Also, because of invisible whitespace we remove everything else\n */\n if (/^(-|-0)$/.test(localValue.replace(/[^\\d-0]/g, ''))) {\n value = localValue\n } else if (localNumberValue === '' && numberValue === '0') {\n value = ''\n }\n }\n\n return value\n}\n\n/**\n * This is a helper for setting the cursor position,\n * when it is on a not allowed position\n *\n * @param {Element} element Input Element\n * @param {Object} maskParams Mask parameters, containing eventually suffix or prefix\n */\nexport const correctCaretPosition = (element, maskParams, props) => {\n const correction = () => {\n try {\n const suffix = maskParams?.suffix\n const prefix = maskParams?.prefix\n\n const start = element.selectionStart\n const end = element.selectionEnd\n\n if (start !== end) {\n return // stop here\n }\n\n if (suffix || prefix) {\n const suffixStart = element.value.indexOf(suffix)\n const suffixEnd = suffixStart + suffix?.length\n let pos = undefined\n\n if (start >= suffixStart && start <= suffixEnd) {\n pos = suffixStart\n\n // If there is a placeholder,\n // and the user clicks after the suffix\n // we want the position to be \"before\" the placeholderChar\n if (\n maskParams.placeholderChar !== invisibleSpace &&\n element.value.length - 1 === String(suffix + prefix).length\n ) {\n pos = pos - 1\n }\n } else {\n const prefixStart = element.value.indexOf(prefix)\n const prefixEnd = prefixStart + prefix?.length || 0\n\n if (start >= prefixStart && start <= prefixEnd) {\n pos = prefixEnd\n }\n }\n\n const char = element.value.slice(pos - 1, pos)\n if (char === invisibleSpace) {\n pos = suffixStart - 1\n }\n\n if (!isNaN(parseFloat(pos))) {\n safeSetSelection(element, pos)\n }\n } else if (props?.mask && element.value.length === end) {\n const chars = element.value.split('')\n\n for (let l = chars.length, i = l - 1; i >= 0; i--) {\n const char = chars[i]\n const mask = props.mask[i]\n if (\n char &&\n char !== invisibleSpace &&\n mask instanceof RegExp &&\n mask.test(char)\n ) {\n for (let n = i + 1; n < l; n++) {\n const mask = props.mask[n]\n if (mask?.test?.(mask) === false) {\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 maskParams = {\n showMask: true,\n placeholderChar: null,\n allowDecimal: true,\n decimalLimit: 2,\n decimalSymbol: ',',\n ...mask_options,\n ...currency_mask,\n }\n\n const fix =\n typeof currency_mask === 'string'\n ? currency_mask\n : typeof maskParams.currency === 'string'\n ? maskParams.currency\n : 'kr'\n\n maskParams.suffix = ` ${fix}`\n\n return maskParams\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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"}
@@ -64,7 +64,7 @@ export type MultiInputMaskProps<T extends string> = {
64
64
  */
65
65
  suffix?: React.ReactNode;
66
66
  } & Omit<React.HTMLProps<HTMLInputElement>, 'onChange' | 'ref' | 'value' | 'label'> & SpacingProps;
67
- declare function MultiInputMask<T extends string>({ label, labelDirection, inputs, delimiter, onChange: onChangeExternal, disabled, status, statusState, values: defaultValues, className, stretch, suffix, ...props }: MultiInputMaskProps<T>): import("react/jsx-runtime").JSX.Element;
67
+ declare function MultiInputMask<T extends string>({ label, labelDirection, inputs, delimiter, onChange: onChangeExternal, disabled, status, statusState, values: defaultValues, className, stretch, inputMode, suffix, ...props }: MultiInputMaskProps<T>): import("react/jsx-runtime").JSX.Element;
68
68
  declare namespace MultiInputMask {
69
69
  var _formElement: boolean;
70
70
  var _supportsSpacingProps: boolean;
@@ -14,7 +14,7 @@ var _FormLabel = _interopRequireDefault(require("../FormLabel"));
14
14
  var _SpacingHelper = require("../space/SpacingHelper");
15
15
  var _useMultiInputValues = require("./hooks/useMultiInputValues");
16
16
  var _componentHelper = require("../../shared/component-helper");
17
- const _excluded = ["label", "labelDirection", "inputs", "delimiter", "onChange", "disabled", "status", "statusState", "values", "className", "stretch", "suffix"],
17
+ const _excluded = ["label", "labelDirection", "inputs", "delimiter", "onChange", "disabled", "status", "statusState", "values", "className", "stretch", "inputMode", "suffix"],
18
18
  _excluded2 = ["id", "label", "value", "mask", "placeholderCharacter", "delimiter", "disabled", "inputRef", "onKeyDown", "onChange"];
19
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
20
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -35,6 +35,7 @@ function MultiInputMask(_ref) {
35
35
  values: defaultValues,
36
36
  className,
37
37
  stretch,
38
+ inputMode,
38
39
  suffix
39
40
  } = _ref,
40
41
  props = _objectWithoutProperties(_ref, _excluded);
@@ -66,6 +67,7 @@ function MultiInputMask(_ref) {
66
67
  input_element: inputs.map((input, index) => _react.default.createElement(MultiInputMaskInput, _extends({
67
68
  key: input.id
68
69
  }, input, {
70
+ inputMode: inputMode,
69
71
  value: values[input.id],
70
72
  delimiter: index !== inputs.length - 1 ? delimiter : undefined,
71
73
  onKeyDown: onKeyDown,
@@ -129,7 +131,7 @@ function MultiInputMaskInput(_ref3) {
129
131
  return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_TextMask.default, _extends({
130
132
  id: `${markupId}__input`,
131
133
  "data-mask-id": id,
132
- className: "dnb-input__input dnb-multi-input-mask__input" + (value ? " dnb-multi-input-mask__input--highlight" : ""),
134
+ className: "dnb-input__input dnb-multi-input-mask__input" + (/\d+/.test(value) ? " dnb-multi-input-mask__input--highlight" : ""),
133
135
  disabled: disabled,
134
136
  size: mask.length,
135
137
  mask: mask,