@dnb/eufemia 10.16.0 → 10.17.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 (441) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/cjs/components/anchor/Anchor.js +9 -5
  3. package/cjs/components/anchor/Anchor.js.map +1 -1
  4. package/cjs/components/anchor/style/anchor-mixins.scss +0 -11
  5. package/cjs/components/anchor/style/dnb-anchor.css +0 -16
  6. package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
  7. package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +16 -4
  8. package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  9. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.css +16 -4
  10. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  11. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.scss +10 -2
  12. package/cjs/components/autocomplete/Autocomplete.js +2 -2
  13. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  14. package/cjs/components/button/style/dnb-button.css +13 -0
  15. package/cjs/components/button/style/dnb-button.min.css +1 -1
  16. package/cjs/components/button/style/dnb-button.scss +16 -0
  17. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.css +12 -1
  18. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.min.css +1 -1
  19. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.css +12 -0
  20. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.min.css +2 -2
  21. package/cjs/components/button/style/themes/dnb-button-theme-sbanken.scss +10 -0
  22. package/cjs/components/button/style/themes/dnb-button-theme-ui.css +12 -1
  23. package/cjs/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
  24. package/cjs/components/button/style/themes/dnb-button-theme-ui.scss +12 -3
  25. package/cjs/components/date-picker/DatePicker.d.ts +14 -1
  26. package/cjs/components/date-picker/DatePicker.js +0 -1
  27. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  28. package/cjs/components/date-picker/DatePickerCalc.js +2 -1
  29. package/cjs/components/date-picker/DatePickerCalc.js.map +1 -1
  30. package/cjs/components/date-picker/DatePickerInput.d.ts +3 -0
  31. package/cjs/components/date-picker/DatePickerInput.js +9 -2
  32. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  33. package/cjs/components/dropdown/Dropdown.js +3 -2
  34. package/cjs/components/dropdown/Dropdown.js.map +1 -1
  35. package/cjs/components/flex/Container.js +11 -2
  36. package/cjs/components/flex/Container.js.map +1 -1
  37. package/cjs/components/flex/export.d.ts +1 -0
  38. package/cjs/components/flex/export.js +7 -0
  39. package/cjs/components/flex/export.js.map +1 -1
  40. package/cjs/components/flex/withChildren.d.ts +6 -0
  41. package/cjs/components/flex/withChildren.js +13 -0
  42. package/cjs/components/flex/withChildren.js.map +1 -0
  43. package/cjs/components/input/Input.js +3 -3
  44. package/cjs/components/input/Input.js.map +1 -1
  45. package/cjs/components/input/style/themes/dnb-input-theme-ui.css +2 -0
  46. package/cjs/components/input/style/themes/dnb-input-theme-ui.min.css +1 -1
  47. package/cjs/components/input/style/themes/dnb-input-theme-ui.scss +2 -0
  48. package/cjs/components/input-masked/InputMaskedHooks.d.ts +1 -0
  49. package/cjs/components/input-masked/InputMaskedHooks.js +13 -8
  50. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  51. package/cjs/components/input-masked/hooks/useHandleCursorPosition.js +7 -3
  52. package/cjs/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -1
  53. package/cjs/components/textarea/style/dnb-textarea.css +5 -0
  54. package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
  55. package/cjs/components/textarea/style/dnb-textarea.scss +4 -0
  56. package/cjs/extensions/forms/Field/Currency/Currency.d.ts +1 -5
  57. package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
  58. package/cjs/extensions/forms/Field/Date/Date.d.ts +3 -1
  59. package/cjs/extensions/forms/Field/Date/Date.js +51 -10
  60. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  61. package/cjs/extensions/forms/Field/Number/Number.d.ts +5 -1
  62. package/cjs/extensions/forms/Field/Number/Number.js +112 -28
  63. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  64. package/cjs/extensions/forms/Field/Number/style/dnb-number.css +192 -0
  65. package/cjs/extensions/forms/Field/Number/style/dnb-number.min.css +1 -0
  66. package/cjs/extensions/forms/Field/Number/style/dnb-number.scss +176 -0
  67. package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.css +74 -0
  68. package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.min.css +3 -0
  69. package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.scss +81 -0
  70. package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.css +15 -0
  71. package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.min.css +5 -0
  72. package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.scss +15 -0
  73. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +3 -5
  74. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  75. package/cjs/extensions/forms/Field/String/String.js +21 -1
  76. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  77. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +16 -18
  78. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  79. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +9 -0
  80. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  81. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +2 -0
  82. package/cjs/extensions/forms/{Visibility → Form/Visibility}/Visibility.d.ts +5 -2
  83. package/cjs/extensions/forms/{Visibility → Form/Visibility}/Visibility.js +8 -2
  84. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -0
  85. package/cjs/extensions/forms/Form/Visibility/index.js.map +1 -0
  86. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  87. package/cjs/extensions/forms/Form/index.js +7 -0
  88. package/cjs/extensions/forms/Form/index.js.map +1 -1
  89. package/cjs/extensions/forms/hooks/useDataValue.js +24 -31
  90. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  91. package/cjs/extensions/forms/hooks/useId.d.ts +1 -0
  92. package/cjs/extensions/forms/hooks/useId.js +18 -0
  93. package/cjs/extensions/forms/hooks/useId.js.map +1 -0
  94. package/cjs/extensions/forms/index.d.ts +6 -1
  95. package/cjs/extensions/forms/index.js +5 -8
  96. package/cjs/extensions/forms/index.js.map +1 -1
  97. package/cjs/extensions/forms/style/dnb-forms.css +202 -0
  98. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  99. package/cjs/extensions/forms/types.d.ts +12 -10
  100. package/cjs/extensions/forms/types.js.map +1 -1
  101. package/cjs/extensions/forms/utils/TestElement/TestElement.d.ts +5 -1
  102. package/cjs/extensions/forms/utils/TestElement/TestElement.js +1 -0
  103. package/cjs/extensions/forms/utils/TestElement/TestElement.js.map +1 -1
  104. package/cjs/shared/Eufemia.d.ts +1 -1
  105. package/cjs/shared/Eufemia.js +2 -2
  106. package/cjs/shared/Eufemia.js.map +1 -1
  107. package/cjs/style/core/utilities.scss +1 -2
  108. package/cjs/style/dnb-ui-components.css +220 -16
  109. package/cjs/style/dnb-ui-components.min.css +3 -3
  110. package/cjs/style/dnb-ui-extensions.css +202 -0
  111. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  112. package/cjs/style/dnb-ui-forms.css +202 -0
  113. package/cjs/style/dnb-ui-forms.min.css +1 -1
  114. package/cjs/style/dnb-ui-forms.scss +1 -0
  115. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +470 -22
  116. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +9 -5
  117. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +218 -0
  118. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +5 -1
  119. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
  120. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +218 -1
  121. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +5 -1
  122. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.scss +2 -0
  123. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +509 -17
  124. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -5
  125. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +277 -0
  126. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +3 -1
  127. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
  128. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +277 -1
  129. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +3 -1
  130. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.scss +2 -0
  131. package/cjs/style/themes/theme-ui/ui-theme-components.css +468 -22
  132. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +9 -5
  133. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +218 -0
  134. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +5 -1
  135. package/cjs/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
  136. package/cjs/style/themes/theme-ui/ui-theme-forms.css +218 -1
  137. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +5 -1
  138. package/cjs/style/themes/theme-ui/ui-theme-forms.scss +2 -0
  139. package/cjs/style/themes/theme-ui/ui-theme-tags.css +8 -10
  140. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  141. package/components/anchor/Anchor.js +9 -5
  142. package/components/anchor/Anchor.js.map +1 -1
  143. package/components/anchor/style/anchor-mixins.scss +0 -11
  144. package/components/anchor/style/dnb-anchor.css +0 -16
  145. package/components/anchor/style/dnb-anchor.min.css +1 -1
  146. package/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +16 -4
  147. package/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  148. package/components/anchor/style/themes/dnb-anchor-theme-ui.css +16 -4
  149. package/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  150. package/components/anchor/style/themes/dnb-anchor-theme-ui.scss +10 -2
  151. package/components/autocomplete/Autocomplete.js +2 -2
  152. package/components/autocomplete/Autocomplete.js.map +1 -1
  153. package/components/button/style/dnb-button.css +13 -0
  154. package/components/button/style/dnb-button.min.css +1 -1
  155. package/components/button/style/dnb-button.scss +16 -0
  156. package/components/button/style/themes/dnb-button-theme-eiendom.css +12 -1
  157. package/components/button/style/themes/dnb-button-theme-eiendom.min.css +1 -1
  158. package/components/button/style/themes/dnb-button-theme-sbanken.css +12 -0
  159. package/components/button/style/themes/dnb-button-theme-sbanken.min.css +2 -2
  160. package/components/button/style/themes/dnb-button-theme-sbanken.scss +10 -0
  161. package/components/button/style/themes/dnb-button-theme-ui.css +12 -1
  162. package/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
  163. package/components/button/style/themes/dnb-button-theme-ui.scss +12 -3
  164. package/components/date-picker/DatePicker.d.ts +14 -1
  165. package/components/date-picker/DatePicker.js +0 -1
  166. package/components/date-picker/DatePicker.js.map +1 -1
  167. package/components/date-picker/DatePickerCalc.js +2 -1
  168. package/components/date-picker/DatePickerCalc.js.map +1 -1
  169. package/components/date-picker/DatePickerInput.d.ts +3 -0
  170. package/components/date-picker/DatePickerInput.js +9 -2
  171. package/components/date-picker/DatePickerInput.js.map +1 -1
  172. package/components/dropdown/Dropdown.js +3 -2
  173. package/components/dropdown/Dropdown.js.map +1 -1
  174. package/components/flex/Container.js +11 -2
  175. package/components/flex/Container.js.map +1 -1
  176. package/components/flex/export.d.ts +1 -0
  177. package/components/flex/export.js +1 -0
  178. package/components/flex/export.js.map +1 -1
  179. package/components/flex/withChildren.d.ts +6 -0
  180. package/components/flex/withChildren.js +6 -0
  181. package/components/flex/withChildren.js.map +1 -0
  182. package/components/input/Input.js +3 -3
  183. package/components/input/Input.js.map +1 -1
  184. package/components/input/style/themes/dnb-input-theme-ui.css +2 -0
  185. package/components/input/style/themes/dnb-input-theme-ui.min.css +1 -1
  186. package/components/input/style/themes/dnb-input-theme-ui.scss +2 -0
  187. package/components/input-masked/InputMaskedHooks.d.ts +1 -0
  188. package/components/input-masked/InputMaskedHooks.js +13 -8
  189. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  190. package/components/input-masked/hooks/useHandleCursorPosition.js +7 -3
  191. package/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -1
  192. package/components/textarea/style/dnb-textarea.css +5 -0
  193. package/components/textarea/style/dnb-textarea.min.css +1 -1
  194. package/components/textarea/style/dnb-textarea.scss +4 -0
  195. package/es/components/anchor/Anchor.js +9 -5
  196. package/es/components/anchor/Anchor.js.map +1 -1
  197. package/es/components/anchor/style/anchor-mixins.scss +0 -11
  198. package/es/components/anchor/style/dnb-anchor.css +0 -16
  199. package/es/components/anchor/style/dnb-anchor.min.css +1 -1
  200. package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +16 -4
  201. package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  202. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.css +16 -4
  203. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  204. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.scss +10 -2
  205. package/es/components/autocomplete/Autocomplete.js +2 -2
  206. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  207. package/es/components/button/style/dnb-button.css +13 -0
  208. package/es/components/button/style/dnb-button.min.css +1 -1
  209. package/es/components/button/style/dnb-button.scss +16 -0
  210. package/es/components/button/style/themes/dnb-button-theme-eiendom.css +12 -1
  211. package/es/components/button/style/themes/dnb-button-theme-eiendom.min.css +1 -1
  212. package/es/components/button/style/themes/dnb-button-theme-sbanken.css +12 -0
  213. package/es/components/button/style/themes/dnb-button-theme-sbanken.min.css +2 -2
  214. package/es/components/button/style/themes/dnb-button-theme-sbanken.scss +10 -0
  215. package/es/components/button/style/themes/dnb-button-theme-ui.css +12 -1
  216. package/es/components/button/style/themes/dnb-button-theme-ui.min.css +1 -1
  217. package/es/components/button/style/themes/dnb-button-theme-ui.scss +12 -3
  218. package/es/components/date-picker/DatePicker.d.ts +14 -1
  219. package/es/components/date-picker/DatePicker.js +0 -1
  220. package/es/components/date-picker/DatePicker.js.map +1 -1
  221. package/es/components/date-picker/DatePickerCalc.js +2 -1
  222. package/es/components/date-picker/DatePickerCalc.js.map +1 -1
  223. package/es/components/date-picker/DatePickerInput.d.ts +3 -0
  224. package/es/components/date-picker/DatePickerInput.js +9 -2
  225. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  226. package/es/components/dropdown/Dropdown.js +3 -2
  227. package/es/components/dropdown/Dropdown.js.map +1 -1
  228. package/es/components/flex/Container.js +11 -2
  229. package/es/components/flex/Container.js.map +1 -1
  230. package/es/components/flex/export.d.ts +1 -0
  231. package/es/components/flex/export.js +1 -0
  232. package/es/components/flex/export.js.map +1 -1
  233. package/es/components/flex/withChildren.d.ts +6 -0
  234. package/es/components/flex/withChildren.js +6 -0
  235. package/es/components/flex/withChildren.js.map +1 -0
  236. package/es/components/input/Input.js +3 -3
  237. package/es/components/input/Input.js.map +1 -1
  238. package/es/components/input/style/themes/dnb-input-theme-ui.css +2 -0
  239. package/es/components/input/style/themes/dnb-input-theme-ui.min.css +1 -1
  240. package/es/components/input/style/themes/dnb-input-theme-ui.scss +2 -0
  241. package/es/components/input-masked/InputMaskedHooks.d.ts +1 -0
  242. package/es/components/input-masked/InputMaskedHooks.js +13 -8
  243. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  244. package/es/components/input-masked/hooks/useHandleCursorPosition.js +7 -3
  245. package/es/components/input-masked/hooks/useHandleCursorPosition.js.map +1 -1
  246. package/es/components/textarea/style/dnb-textarea.css +5 -0
  247. package/es/components/textarea/style/dnb-textarea.min.css +1 -1
  248. package/es/components/textarea/style/dnb-textarea.scss +4 -0
  249. package/es/extensions/forms/Field/Currency/Currency.d.ts +1 -5
  250. package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
  251. package/es/extensions/forms/Field/Date/Date.d.ts +3 -1
  252. package/es/extensions/forms/Field/Date/Date.js +49 -9
  253. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  254. package/es/extensions/forms/Field/Number/Number.d.ts +5 -1
  255. package/es/extensions/forms/Field/Number/Number.js +112 -29
  256. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  257. package/es/extensions/forms/Field/Number/style/dnb-number.css +192 -0
  258. package/es/extensions/forms/Field/Number/style/dnb-number.min.css +1 -0
  259. package/es/extensions/forms/Field/Number/style/dnb-number.scss +176 -0
  260. package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.css +74 -0
  261. package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.min.css +3 -0
  262. package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.scss +81 -0
  263. package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.css +15 -0
  264. package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.min.css +5 -0
  265. package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.scss +15 -0
  266. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +3 -5
  267. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  268. package/es/extensions/forms/Field/String/String.js +21 -1
  269. package/es/extensions/forms/Field/String/String.js.map +1 -1
  270. package/es/extensions/forms/FieldBlock/FieldBlock.js +14 -15
  271. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  272. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +9 -0
  273. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  274. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +2 -0
  275. package/{extensions/forms → es/extensions/forms/Form}/Visibility/Visibility.d.ts +5 -2
  276. package/es/extensions/forms/{Visibility → Form/Visibility}/Visibility.js +8 -2
  277. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -0
  278. package/es/extensions/forms/Form/Visibility/index.js.map +1 -0
  279. package/es/extensions/forms/Form/index.d.ts +1 -0
  280. package/es/extensions/forms/Form/index.js +1 -0
  281. package/es/extensions/forms/Form/index.js.map +1 -1
  282. package/es/extensions/forms/hooks/useDataValue.js +24 -31
  283. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  284. package/es/extensions/forms/hooks/useId.d.ts +1 -0
  285. package/es/extensions/forms/hooks/useId.js +11 -0
  286. package/es/extensions/forms/hooks/useId.js.map +1 -0
  287. package/es/extensions/forms/index.d.ts +6 -1
  288. package/es/extensions/forms/index.js +3 -1
  289. package/es/extensions/forms/index.js.map +1 -1
  290. package/es/extensions/forms/style/dnb-forms.css +202 -0
  291. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  292. package/es/extensions/forms/types.d.ts +12 -10
  293. package/es/extensions/forms/types.js.map +1 -1
  294. package/es/extensions/forms/utils/TestElement/TestElement.d.ts +5 -1
  295. package/es/extensions/forms/utils/TestElement/TestElement.js +1 -0
  296. package/es/extensions/forms/utils/TestElement/TestElement.js.map +1 -1
  297. package/es/shared/Eufemia.d.ts +1 -1
  298. package/es/shared/Eufemia.js +2 -2
  299. package/es/shared/Eufemia.js.map +1 -1
  300. package/es/style/core/utilities.scss +1 -2
  301. package/es/style/dnb-ui-components.css +220 -16
  302. package/es/style/dnb-ui-components.min.css +3 -3
  303. package/es/style/dnb-ui-extensions.css +202 -0
  304. package/es/style/dnb-ui-extensions.min.css +1 -1
  305. package/es/style/dnb-ui-forms.css +202 -0
  306. package/es/style/dnb-ui-forms.min.css +1 -1
  307. package/es/style/dnb-ui-forms.scss +1 -0
  308. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +470 -22
  309. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +9 -5
  310. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +218 -0
  311. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +5 -1
  312. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
  313. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +218 -1
  314. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +5 -1
  315. package/es/style/themes/theme-eiendom/eiendom-theme-forms.scss +2 -0
  316. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +509 -17
  317. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -5
  318. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +277 -0
  319. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +3 -1
  320. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
  321. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +277 -1
  322. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +3 -1
  323. package/es/style/themes/theme-sbanken/sbanken-theme-forms.scss +2 -0
  324. package/es/style/themes/theme-ui/ui-theme-components.css +468 -22
  325. package/es/style/themes/theme-ui/ui-theme-components.min.css +9 -5
  326. package/es/style/themes/theme-ui/ui-theme-extensions.css +218 -0
  327. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +5 -1
  328. package/es/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
  329. package/es/style/themes/theme-ui/ui-theme-forms.css +218 -1
  330. package/es/style/themes/theme-ui/ui-theme-forms.min.css +5 -1
  331. package/es/style/themes/theme-ui/ui-theme-forms.scss +2 -0
  332. package/es/style/themes/theme-ui/ui-theme-tags.css +8 -10
  333. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  334. package/esm/dnb-ui-basis.min.mjs +1 -1
  335. package/esm/dnb-ui-components.min.mjs +1 -1
  336. package/esm/dnb-ui-elements.min.mjs +1 -1
  337. package/esm/dnb-ui-extensions.min.mjs +3 -3
  338. package/esm/dnb-ui-lib.min.mjs +1 -1
  339. package/extensions/forms/Field/Currency/Currency.d.ts +1 -5
  340. package/extensions/forms/Field/Currency/Currency.js.map +1 -1
  341. package/extensions/forms/Field/Date/Date.d.ts +3 -1
  342. package/extensions/forms/Field/Date/Date.js +52 -11
  343. package/extensions/forms/Field/Date/Date.js.map +1 -1
  344. package/extensions/forms/Field/Number/Number.d.ts +5 -1
  345. package/extensions/forms/Field/Number/Number.js +113 -29
  346. package/extensions/forms/Field/Number/Number.js.map +1 -1
  347. package/extensions/forms/Field/Number/style/dnb-number.css +192 -0
  348. package/extensions/forms/Field/Number/style/dnb-number.min.css +1 -0
  349. package/extensions/forms/Field/Number/style/dnb-number.scss +176 -0
  350. package/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.css +74 -0
  351. package/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.min.css +3 -0
  352. package/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.scss +81 -0
  353. package/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.css +15 -0
  354. package/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.min.css +5 -0
  355. package/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.scss +15 -0
  356. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +3 -5
  357. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  358. package/extensions/forms/Field/String/String.js +21 -1
  359. package/extensions/forms/Field/String/String.js.map +1 -1
  360. package/extensions/forms/FieldBlock/FieldBlock.js +16 -18
  361. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  362. package/extensions/forms/FieldBlock/style/dnb-field-block.css +9 -0
  363. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  364. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +2 -0
  365. package/{es/extensions/forms → extensions/forms/Form}/Visibility/Visibility.d.ts +5 -2
  366. package/extensions/forms/{Visibility → Form/Visibility}/Visibility.js +8 -2
  367. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -0
  368. package/extensions/forms/Form/Visibility/index.js.map +1 -0
  369. package/extensions/forms/Form/index.d.ts +1 -0
  370. package/extensions/forms/Form/index.js +1 -0
  371. package/extensions/forms/Form/index.js.map +1 -1
  372. package/extensions/forms/hooks/useDataValue.js +24 -31
  373. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  374. package/extensions/forms/hooks/useId.d.ts +1 -0
  375. package/extensions/forms/hooks/useId.js +11 -0
  376. package/extensions/forms/hooks/useId.js.map +1 -0
  377. package/extensions/forms/index.d.ts +6 -1
  378. package/extensions/forms/index.js +3 -1
  379. package/extensions/forms/index.js.map +1 -1
  380. package/extensions/forms/style/dnb-forms.css +202 -0
  381. package/extensions/forms/style/dnb-forms.min.css +1 -1
  382. package/extensions/forms/types.d.ts +12 -10
  383. package/extensions/forms/types.js.map +1 -1
  384. package/extensions/forms/utils/TestElement/TestElement.d.ts +5 -1
  385. package/extensions/forms/utils/TestElement/TestElement.js +1 -0
  386. package/extensions/forms/utils/TestElement/TestElement.js.map +1 -1
  387. package/package.json +1 -1
  388. package/shared/Eufemia.d.ts +1 -1
  389. package/shared/Eufemia.js +2 -2
  390. package/shared/Eufemia.js.map +1 -1
  391. package/style/core/utilities.scss +1 -2
  392. package/style/dnb-ui-components.css +220 -16
  393. package/style/dnb-ui-components.min.css +3 -3
  394. package/style/dnb-ui-extensions.css +202 -0
  395. package/style/dnb-ui-extensions.min.css +1 -1
  396. package/style/dnb-ui-forms.css +202 -0
  397. package/style/dnb-ui-forms.min.css +1 -1
  398. package/style/dnb-ui-forms.scss +1 -0
  399. package/style/themes/theme-eiendom/eiendom-theme-components.css +470 -22
  400. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +9 -5
  401. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +218 -0
  402. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +5 -1
  403. package/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
  404. package/style/themes/theme-eiendom/eiendom-theme-forms.css +218 -1
  405. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +5 -1
  406. package/style/themes/theme-eiendom/eiendom-theme-forms.scss +2 -0
  407. package/style/themes/theme-sbanken/sbanken-theme-components.css +509 -17
  408. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -5
  409. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +277 -0
  410. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +3 -1
  411. package/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
  412. package/style/themes/theme-sbanken/sbanken-theme-forms.css +277 -1
  413. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +3 -1
  414. package/style/themes/theme-sbanken/sbanken-theme-forms.scss +2 -0
  415. package/style/themes/theme-ui/ui-theme-components.css +468 -22
  416. package/style/themes/theme-ui/ui-theme-components.min.css +9 -5
  417. package/style/themes/theme-ui/ui-theme-extensions.css +218 -0
  418. package/style/themes/theme-ui/ui-theme-extensions.min.css +5 -1
  419. package/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
  420. package/style/themes/theme-ui/ui-theme-forms.css +218 -1
  421. package/style/themes/theme-ui/ui-theme-forms.min.css +5 -1
  422. package/style/themes/theme-ui/ui-theme-forms.scss +2 -0
  423. package/style/themes/theme-ui/ui-theme-tags.css +8 -10
  424. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  425. package/umd/dnb-ui-basis.min.js +1 -1
  426. package/umd/dnb-ui-components.min.js +1 -1
  427. package/umd/dnb-ui-elements.min.js +1 -1
  428. package/umd/dnb-ui-extensions.min.js +3 -3
  429. package/umd/dnb-ui-lib.min.js +1 -1
  430. package/cjs/extensions/forms/Visibility/Visibility.js.map +0 -1
  431. package/cjs/extensions/forms/Visibility/index.js.map +0 -1
  432. package/es/extensions/forms/Visibility/Visibility.js.map +0 -1
  433. package/es/extensions/forms/Visibility/index.js.map +0 -1
  434. package/extensions/forms/Visibility/Visibility.js.map +0 -1
  435. package/extensions/forms/Visibility/index.js.map +0 -1
  436. /package/cjs/extensions/forms/{Visibility → Form/Visibility}/index.d.ts +0 -0
  437. /package/cjs/extensions/forms/{Visibility → Form/Visibility}/index.js +0 -0
  438. /package/es/extensions/forms/{Visibility → Form/Visibility}/index.d.ts +0 -0
  439. /package/es/extensions/forms/{Visibility → Form/Visibility}/index.js +0 -0
  440. /package/extensions/forms/{Visibility → Form/Visibility}/index.d.ts +0 -0
  441. /package/extensions/forms/{Visibility → Form/Visibility}/index.js +0 -0
@@ -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","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
+ {"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","onMouseDown","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","runCorrectCaretPosition","correctCaretPosition","__getCorrectCaretPosition","result","dispatchCustomElementEvent","_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 onMouseDown: (event) => callEvent({ event }, 'on_mouse_down'),\n onKeyDown: (params) => callEvent(params, 'on_key_down'),\n onSubmit: (params) => callEvent(params, 'on_submit'),\n onChange: (params) => callEvent(params, 'on_change'),\n\n on_focus: undefined,\n on_blur: undefined,\n on_key_down: undefined,\n on_submit: undefined,\n on_change: undefined,\n }\n}\n\n/**\n * Will map some events we need to map during typing\n *\n * @param {object} param0\n * @property {function} setLocalValue setState handler\n * @returns event handler function\n */\nconst useCallEvent = ({ setLocalValue }) => {\n const { props } = React.useContext(InputMaskedContext)\n const maskParams = useMaskParams()\n const isNumberMask = useNumberMask()\n\n // Source: https://en.wikipedia.org/wiki/Decimal_separator\n const decimalSeparators = /[,.'·]/\n let isUnidentified = false\n\n const callEvent = ({ event, value }, name) => {\n value = value || event.target.value\n const selStart = event.target.selectionStart\n let keyCode = keycode(event)\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n if (\n name === 'on_key_down' &&\n (event.which === 229 || keyCode === undefined)\n ) {\n isUnidentified = true\n }\n\n // Android issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639\n // so we use this solution instead\n if (\n isUnidentified &&\n name === 'on_before_input' &&\n typeof event?.data !== 'undefined'\n ) {\n name = 'on_key_down'\n keyCode = event.data\n isUnidentified = false\n }\n\n // Prevent entering a leading zero\n if (\n name === 'on_key_down' &&\n !isUnidentified &&\n maskParams?.disallowLeadingZeroes &&\n (keyCode === '0' ||\n keyCode === 'numpad 0' ||\n (value.replace(/[^\\d]/g, '') === '' &&\n decimalSeparators.test(keyCode)))\n ) {\n const testValue = (\n value.slice(0, selStart) +\n '0' +\n value.slice(selStart + 1, value.length)\n ).replace(/[^\\d]/g, '')\n\n if (/^0/.test(testValue)) {\n event.preventDefault()\n }\n }\n\n if (\n name === 'on_key_down' &&\n isNumberMask &&\n !isUnidentified &&\n maskParams?.decimalSymbol\n ) {\n const hasDecimalSymbol = value.includes(maskParams.decimalSymbol)\n const allowedDecimals =\n maskParams.decimalLimit > 0 || maskParams.allowDecimal !== false\n\n if (!allowedDecimals && decimalSeparators.test(keyCode)) {\n event.preventDefault()\n }\n\n const charAtSelection = value.slice(selStart, selStart + 1)\n\n if (allowedDecimals) {\n // if we have already a decimal ...\n if (hasDecimalSymbol && decimalSeparators.test(keyCode)) {\n // ... we set the cursor on after the decimalSeparators\n if (decimalSeparators.test(charAtSelection)) {\n const index = value.indexOf(maskParams.decimalSymbol)\n if (index > -1) {\n safeSetSelection(event.target, index + 1)\n }\n }\n\n // ... we do not allow to type another\n event.preventDefault()\n }\n\n // replace other decimal\n else if (\n !hasDecimalSymbol &&\n keyCode !== maskParams.decimalSymbol &&\n decimalSeparators.test(keyCode)\n ) {\n value = value.slice(0, selStart)\n setLocalValue(value + maskParams.decimalSymbol)\n event.target.value = value + maskParams.decimalSymbol\n event.preventDefault()\n }\n }\n\n // move cursor to right if key is delete and char at selection is thousand separator\n if (\n keyCode === 'delete' &&\n charAtSelection === (maskParams.thousandsSeparatorSymbol || ' ')\n ) {\n safeSetSelection(event.target, selStart + 1)\n event.preventDefault()\n }\n }\n\n let num = cleanNumber(value, {\n prefix: maskParams.prefix,\n suffix: maskParams.suffix,\n decimalSeparator: maskParams.decimalSymbol || ',',\n thousandsSeparator: maskParams.thousandsSeparatorSymbol || ' ',\n })\n\n // We don't want to return NaN, so we set it to 0\n if (num === '-') {\n num = -0\n }\n\n const numberValue = Number(num)\n\n // Return '' (empty string) when the user has entered something invalid\n const cleanedValue =\n numberValue === 0 && String(num).charAt(0) !== '0' ? '' : num\n\n switch (name) {\n case 'on_focus':\n case 'on_key_down':\n case 'on_mouse_down':\n case 'on_mouse_up':\n event.target.runCorrectCaretPosition = () =>\n correctCaretPosition(event.target, maskParams, props)\n if (!event.target.__getCorrectCaretPosition) {\n event.target.runCorrectCaretPosition()\n }\n break\n }\n\n const result = dispatchCustomElementEvent(props, name, {\n event,\n value,\n numberValue,\n cleanedValue,\n })\n\n if (name === 'on_change') {\n setLocalValue(value)\n }\n\n return result\n }\n\n return callEvent\n}\n\n/**\n * Returns number mask parameters if requested by the component properties\n *\n * @returns object of number mask parameter\n */\nconst useNumberMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n const locale = 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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"}
@@ -20,13 +20,14 @@ function useHandleCursorPosition(inputRefs, keysToHandle) {
20
20
  keysToHandle,
21
21
  input
22
22
  })) === null || _getKeysToHandle === void 0 ? void 0 : _getKeysToHandle.test(pressedKey)) || /(ArrowRight|ArrowLeft|Backspace)/.test(pressedKey);
23
+ const hasSelection = hasSelectedValue(input);
24
+ const inputPosition = !hasSelection && getInputPosition(input, inputs);
23
25
  const initialSelectionStart = input.selectionStart;
24
- const inputPosition = getInputPosition(input, inputs);
25
26
  window.requestAnimationFrame(() => {
26
- const caretPosition = getCaretPosition(input);
27
- if (!hasPressedKeysToHandle) {
27
+ if (!hasPressedKeysToHandle || hasSelection) {
28
28
  return;
29
29
  }
30
+ const caretPosition = getCaretPosition(input);
30
31
  if (caretPosition === 'last' && inputPosition !== 'last' && !(initialSelectionStart === 1 && pressedKey === 'ArrowRight')) {
31
32
  return goToInput('next', input, inputs);
32
33
  }
@@ -78,6 +79,9 @@ function getSelectionPositions(input) {
78
79
  end: Number(input.size)
79
80
  };
80
81
  }
82
+ function hasSelectedValue(input) {
83
+ return input.selectionEnd > input.selectionStart;
84
+ }
81
85
  function getCaretPosition(input) {
82
86
  const {
83
87
  start,
@@ -1 +1 @@
1
- {"version":3,"file":"useHandleCursorPosition.js","names":["_react","require","useHandleCursorPosition","inputRefs","keysToHandle","inputList","useRef","refsToInputList","useEffect","current","onKeyDown","event","_getKeysToHandle","inputs","input","target","pressedKey","key","hasPressedKeysToHandle","getKeysToHandle","test","initialSelectionStart","selectionStart","inputPosition","getInputPosition","window","requestAnimationFrame","caretPosition","getCaretPosition","goToInput","map","ref","filter","Boolean","_ref","undefined","RegExp","masks","dataset","maskId","selection","selectionEnd","maskIndex","size","length","firstInput","lastInput","getSelectionPositions","start","end","Number","to","currentInputIndex","indexOf","siblingIndex","siblingInput","focus","setSelectionRange","_default","exports","default"],"sources":["../../../../../src/components/input-masked/hooks/useHandleCursorPosition.ts"],"sourcesContent":["import { MutableRefObject, useEffect, useRef } from 'react'\n\nfunction useHandleCursorPosition(\n inputRefs: MutableRefObject<HTMLInputElement>[],\n keysToHandle?: RegExp | { [inputId: string]: RegExp[] }\n) {\n const inputList = useRef(refsToInputList(inputRefs))\n\n // To keep the refs.current in synch with component of use, or else it wont be possible to navigate to the next input, without triggering a re-render first.\n useEffect(() => {\n inputList.current = refsToInputList(inputRefs)\n }, [inputRefs])\n\n function onKeyDown(event: React.KeyboardEvent) {\n const inputs = inputList.current\n const input = event.target as HTMLInputElement\n\n const pressedKey = event.key\n\n const hasPressedKeysToHandle =\n getKeysToHandle({ keysToHandle, input })?.test(pressedKey) ||\n /(ArrowRight|ArrowLeft|Backspace)/.test(pressedKey)\n\n const initialSelectionStart = input.selectionStart\n\n const inputPosition = getInputPosition(input, inputs)\n\n window.requestAnimationFrame(() => {\n const caretPosition = getCaretPosition(input)\n\n if (!hasPressedKeysToHandle) {\n return // stop here\n }\n\n if (\n caretPosition === 'last' &&\n inputPosition !== 'last' &&\n !(initialSelectionStart === 1 && pressedKey === 'ArrowRight')\n ) {\n return goToInput('next', input, inputs)\n }\n\n if (\n caretPosition === 'first' &&\n inputPosition !== 'first' &&\n !(\n initialSelectionStart === 1 &&\n (pressedKey === 'ArrowLeft' || pressedKey === 'Backspace')\n )\n ) {\n return goToInput('previous', input, inputs)\n }\n })\n }\n\n return { onKeyDown }\n}\n\n// Helpers\nfunction refsToInputList(inputRefs: MutableRefObject<HTMLInputElement>[]) {\n return inputRefs.map((ref) => ref.current).filter(Boolean)\n}\n\ntype GetKeysToHandleParams = {\n keysToHandle: RegExp | { [inputId: string]: RegExp[] }\n input: HTMLInputElement\n}\n\nfunction getKeysToHandle({ keysToHandle, input }: GetKeysToHandleParams) {\n if (!keysToHandle) {\n return undefined\n }\n\n if (keysToHandle instanceof RegExp) {\n return keysToHandle\n }\n\n const masks = keysToHandle[input.dataset.maskId]\n\n const selection =\n input.selectionStart === input.selectionEnd\n ? input.selectionStart\n : undefined\n\n if (!selection) {\n return undefined\n }\n\n const maskIndex = selection === input.size ? masks.length - 1 : selection\n\n return masks[maskIndex]\n}\n\nfunction getInputPosition(\n input: HTMLInputElement,\n inputs: HTMLInputElement[]\n) {\n const firstInput = inputs[0]\n const lastInput = inputs[inputs.length - 1]\n\n if (input === firstInput) {\n return 'first'\n }\n\n if (input === lastInput) {\n return 'last'\n }\n\n return 'non-initial'\n}\n\nfunction getSelectionPositions(input: HTMLInputElement) {\n return { start: 0, end: Number(input.size) }\n}\n\nfunction getCaretPosition(input: HTMLInputElement) {\n const { start, end } = getSelectionPositions(input)\n\n const selectionStart = input.selectionStart\n const selectionEnd = input.selectionEnd\n\n if (selectionStart === start && selectionEnd === start) {\n return 'first'\n }\n\n if (selectionStart === end && selectionEnd === end) {\n return 'last'\n }\n\n return 'non-initial'\n}\n\nfunction goToInput(\n to: 'next' | 'previous',\n input: HTMLInputElement,\n inputs: HTMLInputElement[]\n) {\n const currentInputIndex = inputs.indexOf(input)\n\n const siblingIndex =\n to === 'next'\n ? currentInputIndex + 1\n : to === 'previous'\n ? currentInputIndex - 1\n : 0\n\n const siblingInput = inputs[siblingIndex]\n\n const { start, end } = getSelectionPositions(siblingInput)\n\n siblingInput.focus()\n\n if (to === 'next') {\n return siblingInput.setSelectionRange(start, start)\n }\n\n if (to === 'previous') {\n return siblingInput.setSelectionRange(end, end)\n }\n}\n\nexport default useHandleCursorPosition\n"],"mappings":"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"}
1
+ {"version":3,"file":"useHandleCursorPosition.js","names":["_react","require","useHandleCursorPosition","inputRefs","keysToHandle","inputList","useRef","refsToInputList","useEffect","current","onKeyDown","event","_getKeysToHandle","inputs","input","target","pressedKey","key","hasPressedKeysToHandle","getKeysToHandle","test","hasSelection","hasSelectedValue","inputPosition","getInputPosition","initialSelectionStart","selectionStart","window","requestAnimationFrame","caretPosition","getCaretPosition","goToInput","map","ref","filter","Boolean","_ref","undefined","RegExp","masks","dataset","maskId","selection","selectionEnd","maskIndex","size","length","firstInput","lastInput","getSelectionPositions","start","end","Number","to","currentInputIndex","indexOf","siblingIndex","siblingInput","focus","setSelectionRange","_default","exports","default"],"sources":["../../../../../src/components/input-masked/hooks/useHandleCursorPosition.ts"],"sourcesContent":["import { MutableRefObject, useEffect, useRef } from 'react'\n\nfunction useHandleCursorPosition(\n inputRefs: MutableRefObject<HTMLInputElement>[],\n keysToHandle?: RegExp | { [inputId: string]: RegExp[] }\n) {\n const inputList = useRef(refsToInputList(inputRefs))\n\n // To keep the refs.current in synch with component of use, or else it wont be possible to navigate to the next input, without triggering a re-render first.\n useEffect(() => {\n inputList.current = refsToInputList(inputRefs)\n }, [inputRefs])\n\n function onKeyDown(event: React.KeyboardEvent) {\n const inputs = inputList.current\n const input = event.target as HTMLInputElement\n\n const pressedKey = event.key\n\n const hasPressedKeysToHandle =\n getKeysToHandle({ keysToHandle, input })?.test(pressedKey) ||\n /(ArrowRight|ArrowLeft|Backspace)/.test(pressedKey)\n\n const hasSelection = hasSelectedValue(input)\n\n const inputPosition = !hasSelection && getInputPosition(input, inputs)\n\n const initialSelectionStart = input.selectionStart\n\n window.requestAnimationFrame(() => {\n if (!hasPressedKeysToHandle || hasSelection) {\n return // stop here\n }\n\n const caretPosition = getCaretPosition(input)\n\n if (\n caretPosition === 'last' &&\n inputPosition !== 'last' &&\n !(initialSelectionStart === 1 && pressedKey === 'ArrowRight')\n ) {\n return goToInput('next', input, inputs)\n }\n\n if (\n caretPosition === 'first' &&\n inputPosition !== 'first' &&\n !(\n initialSelectionStart === 1 &&\n (pressedKey === 'ArrowLeft' || pressedKey === 'Backspace')\n )\n ) {\n return goToInput('previous', input, inputs)\n }\n })\n }\n\n return { onKeyDown }\n}\n\n// Helpers\nfunction refsToInputList(inputRefs: MutableRefObject<HTMLInputElement>[]) {\n return inputRefs.map((ref) => ref.current).filter(Boolean)\n}\n\ntype GetKeysToHandleParams = {\n keysToHandle: RegExp | { [inputId: string]: RegExp[] }\n input: HTMLInputElement\n}\n\nfunction getKeysToHandle({ keysToHandle, input }: GetKeysToHandleParams) {\n if (!keysToHandle) {\n return undefined\n }\n\n if (keysToHandle instanceof RegExp) {\n return keysToHandle\n }\n\n const masks = keysToHandle[input.dataset.maskId]\n\n const selection =\n input.selectionStart === input.selectionEnd\n ? input.selectionStart\n : undefined\n\n if (!selection) {\n return undefined\n }\n\n const maskIndex = selection === input.size ? masks.length - 1 : selection\n\n return masks[maskIndex]\n}\n\nfunction getInputPosition(\n input: HTMLInputElement,\n inputs: HTMLInputElement[]\n) {\n const firstInput = inputs[0]\n const lastInput = inputs[inputs.length - 1]\n\n if (input === firstInput) {\n return 'first'\n }\n\n if (input === lastInput) {\n return 'last'\n }\n\n return 'non-initial'\n}\n\nfunction getSelectionPositions(input: HTMLInputElement) {\n return { start: 0, end: Number(input.size) }\n}\n\nfunction hasSelectedValue(input: HTMLInputElement) {\n return input.selectionEnd > input.selectionStart\n}\n\nfunction getCaretPosition(input: HTMLInputElement) {\n const { start, end } = getSelectionPositions(input)\n\n const selectionStart = input.selectionStart\n const selectionEnd = input.selectionEnd\n\n if (selectionStart === start && selectionEnd === start) {\n return 'first'\n }\n\n if (selectionStart === end && selectionEnd === end) {\n return 'last'\n }\n\n return 'non-initial'\n}\n\nfunction goToInput(\n to: 'next' | 'previous',\n input: HTMLInputElement,\n inputs: HTMLInputElement[]\n) {\n const currentInputIndex = inputs.indexOf(input)\n\n const siblingIndex =\n to === 'next'\n ? currentInputIndex + 1\n : to === 'previous'\n ? currentInputIndex - 1\n : 0\n\n const siblingInput = inputs[siblingIndex]\n\n const { start, end } = getSelectionPositions(siblingInput)\n\n siblingInput.focus()\n\n if (to === 'next') {\n return siblingInput.setSelectionRange(start, start)\n }\n\n if (to === 'previous') {\n return siblingInput.setSelectionRange(end, end)\n }\n}\n\nexport default useHandleCursorPosition\n"],"mappings":"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"}
@@ -78,6 +78,11 @@ html:not([data-visual-test]) .dnb-textarea__textarea {
78
78
  background-color: var(--scrollbar-thumb-hover-color, #666);
79
79
  }
80
80
  }
81
+ @-moz-document url-prefix() {
82
+ .dnb-textarea__textarea {
83
+ overflow-x: clip;
84
+ }
85
+ }
81
86
  .dnb-textarea__input:-webkit-autofill {
82
87
  box-shadow: 0 0 0 var(--border-width) var(--border-color), 0 0 0 10em var(--textarea-background-color) inset;
83
88
  }
@@ -1 +1 @@
1
- .dnb-textarea{--textarea-padding-width:0.5rem;--textarea-rows:2;--textarea-background-color:var(--color-white);display:inline-flex;font-size:var(--font-size-small);line-height:var(--line-height-basis)}.dnb-textarea__inner{display:inline-flex;flex-direction:column;margin:var(--textarea-padding-width)}.dnb-textarea__shell{display:inline-flex;font-size:var(--font-size-basis);position:relative}.dnb-textarea__state{background-color:var(--color-white);border-radius:.25rem;bottom:-.5rem;box-shadow:0 0 0 .0625rem var(--color-sea-green);left:-.5rem;position:absolute;right:-.5rem;top:-.5rem;z-index:1}.dnb-textarea__row{display:inline-flex}.dnb-textarea__suffix.dnb-suffix{padding-left:1rem}.dnb-textarea__textarea{-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;border:none;cursor:auto;font-size:var(--font-size-basis);line-height:var(--line-height-basis);margin:0;outline:none;overflow-y:auto;overscroll-behavior:contain;padding:0 var(--textarea-padding-width);position:relative;scrollbar-color:var(--scrollbar-thumb-color,#888) transparent;z-index:2}html:not([data-visual-test]) .dnb-textarea__textarea{scroll-behavior:smooth}@supports not (scrollbar-color:auto){.dnb-textarea__textarea::-webkit-scrollbar{background-color:var(--scrollbar-track-color,#eee);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-textarea__textarea::-webkit-scrollbar:vertical{width:var(--scrollbar-track-width,.5rem)}.dnb-textarea__textarea::-webkit-scrollbar:horizontal{height:var(--scrollbar-track-width,.5rem)}.dnb-textarea__textarea::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-color,#888);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-textarea__textarea::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-color,#666)}}.dnb-textarea__input:-webkit-autofill{box-shadow:0 0 0 var(--border-width) var(--border-color),0 0 0 10em var(--textarea-background-color) inset}.dnb-textarea__input:autofill{box-shadow:0 0 0 var(--border-width) var(--border-color),0 0 0 10em var(--textarea-background-color) inset}.dnb-textarea__placeholder{-webkit-box-orient:vertical;-webkit-line-clamp:var(--textarea-rows,2);border:none;cursor:auto;display:-webkit-box;font-size:var(--font-size-basis);height:100%;left:0;line-height:var(--line-height-basis);margin:0;outline:none;overflow:hidden;padding:0 var(--textarea-padding-width);pointer-events:none;position:absolute;top:0;width:100%;z-index:3}.dnb-textarea__placeholder,.dnb-textarea__textarea{text-align:left}.dnb-textarea__align--right .dnb-textarea__placeholder,.dnb-textarea__align--right .dnb-textarea__textarea{text-align:right}.dnb-textarea__autoresize .dnb-textarea__textarea{resize:none}.dnb-textarea--disabled .dnb-textarea__textarea,.dnb-textarea__textarea[disabled]{-webkit-user-select:none;user-select:none}.dnb-textarea--disabled .dnb-textarea__textarea::-webkit-scrollbar,.dnb-textarea__textarea[disabled]::-webkit-scrollbar{width:0}.dnb-textarea--focus .dnb-textarea__textarea:not([disabled]):not([readonly])~.dnb-textarea__placeholder,.dnb-textarea--has-content .dnb-textarea__textarea~.dnb-textarea__placeholder{display:none}.dnb-textarea__inner>.dnb-form-status{margin:1rem 0 0 calc(0px - var(--textarea-padding-width));order:2}.dnb-textarea:not(.dnb-textarea--vertical) .dnb-form-label{margin-top:.5rem}.dnb-textarea--vertical{align-items:flex-start;display:flex;flex-direction:column}.dnb-textarea:not(.dnb-textarea--vertical)[class*=__status]{align-items:flex-start}.dnb-textarea:not(.dnb-textarea--vertical)[class*=__status]>.dnb-form-label{margin-top:.25rem}@media screen and (max-width:40em){.dnb-textarea{flex-wrap:wrap}.dnb-textarea>.dnb-form-label{margin-bottom:.5rem;margin-top:.5rem}}.dnb-textarea--stretch{display:flex;flex-grow:1}.dnb-textarea--stretch .dnb-textarea__inner{flex-grow:1}.dnb-textarea--stretch .dnb-textarea__inner,.dnb-textarea--stretch .dnb-textarea__shell,.dnb-textarea--stretch .dnb-textarea__textarea{width:100%}.dnb-textarea--stretch .dnb-form-label+.dnb-textarea__inner{width:auto}.dnb-form-row--horizontal .dnb-textarea--stretch,.dnb-textarea--vertical.dnb-textarea--stretch .dnb-textarea__inner{width:100%}@media screen and (max-width:40em){.dnb-responsive-component .dnb-textarea{align-items:flex-start;display:flex;flex-direction:column;margin-bottom:.5rem}.dnb-responsive-component .dnb-textarea>.dnb-form-label{margin-bottom:.5rem}}html[data-visual-test] .dnb-textarea__textarea{caret-color:var(--color-white)}.dnb-textarea.dnb-skeleton .dnb-textarea__inner{border-radius:.25rem;margin:0}.dnb-textarea.dnb-skeleton .dnb-textarea__inner .dnb-textarea__shell{margin:var(--textarea-padding-width)}.dnb-textarea.dnb-skeleton .dnb-textarea__state,.dnb-textarea.dnb-skeleton .dnb-textarea__textarea{visibility:hidden}
1
+ .dnb-textarea{--textarea-padding-width:0.5rem;--textarea-rows:2;--textarea-background-color:var(--color-white);display:inline-flex;font-size:var(--font-size-small);line-height:var(--line-height-basis)}.dnb-textarea__inner{display:inline-flex;flex-direction:column;margin:var(--textarea-padding-width)}.dnb-textarea__shell{display:inline-flex;font-size:var(--font-size-basis);position:relative}.dnb-textarea__state{background-color:var(--color-white);border-radius:.25rem;bottom:-.5rem;box-shadow:0 0 0 .0625rem var(--color-sea-green);left:-.5rem;position:absolute;right:-.5rem;top:-.5rem;z-index:1}.dnb-textarea__row{display:inline-flex}.dnb-textarea__suffix.dnb-suffix{padding-left:1rem}.dnb-textarea__textarea{-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;border:none;cursor:auto;font-size:var(--font-size-basis);line-height:var(--line-height-basis);margin:0;outline:none;overflow-y:auto;overscroll-behavior:contain;padding:0 var(--textarea-padding-width);position:relative;scrollbar-color:var(--scrollbar-thumb-color,#888) transparent;z-index:2}html:not([data-visual-test]) .dnb-textarea__textarea{scroll-behavior:smooth}@supports not (scrollbar-color:auto){.dnb-textarea__textarea::-webkit-scrollbar{background-color:var(--scrollbar-track-color,#eee);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-textarea__textarea::-webkit-scrollbar:vertical{width:var(--scrollbar-track-width,.5rem)}.dnb-textarea__textarea::-webkit-scrollbar:horizontal{height:var(--scrollbar-track-width,.5rem)}.dnb-textarea__textarea::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-color,#888);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-textarea__textarea::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-color,#666)}}@-moz-document url-prefix(){.dnb-textarea__textarea{overflow-x:clip}}.dnb-textarea__input:-webkit-autofill{box-shadow:0 0 0 var(--border-width) var(--border-color),0 0 0 10em var(--textarea-background-color) inset}.dnb-textarea__input:autofill{box-shadow:0 0 0 var(--border-width) var(--border-color),0 0 0 10em var(--textarea-background-color) inset}.dnb-textarea__placeholder{-webkit-box-orient:vertical;-webkit-line-clamp:var(--textarea-rows,2);border:none;cursor:auto;display:-webkit-box;font-size:var(--font-size-basis);height:100%;left:0;line-height:var(--line-height-basis);margin:0;outline:none;overflow:hidden;padding:0 var(--textarea-padding-width);pointer-events:none;position:absolute;top:0;width:100%;z-index:3}.dnb-textarea__placeholder,.dnb-textarea__textarea{text-align:left}.dnb-textarea__align--right .dnb-textarea__placeholder,.dnb-textarea__align--right .dnb-textarea__textarea{text-align:right}.dnb-textarea__autoresize .dnb-textarea__textarea{resize:none}.dnb-textarea--disabled .dnb-textarea__textarea,.dnb-textarea__textarea[disabled]{-webkit-user-select:none;user-select:none}.dnb-textarea--disabled .dnb-textarea__textarea::-webkit-scrollbar,.dnb-textarea__textarea[disabled]::-webkit-scrollbar{width:0}.dnb-textarea--focus .dnb-textarea__textarea:not([disabled]):not([readonly])~.dnb-textarea__placeholder,.dnb-textarea--has-content .dnb-textarea__textarea~.dnb-textarea__placeholder{display:none}.dnb-textarea__inner>.dnb-form-status{margin:1rem 0 0 calc(0px - var(--textarea-padding-width));order:2}.dnb-textarea:not(.dnb-textarea--vertical) .dnb-form-label{margin-top:.5rem}.dnb-textarea--vertical{align-items:flex-start;display:flex;flex-direction:column}.dnb-textarea:not(.dnb-textarea--vertical)[class*=__status]{align-items:flex-start}.dnb-textarea:not(.dnb-textarea--vertical)[class*=__status]>.dnb-form-label{margin-top:.25rem}@media screen and (max-width:40em){.dnb-textarea{flex-wrap:wrap}.dnb-textarea>.dnb-form-label{margin-bottom:.5rem;margin-top:.5rem}}.dnb-textarea--stretch{display:flex;flex-grow:1}.dnb-textarea--stretch .dnb-textarea__inner{flex-grow:1}.dnb-textarea--stretch .dnb-textarea__inner,.dnb-textarea--stretch .dnb-textarea__shell,.dnb-textarea--stretch .dnb-textarea__textarea{width:100%}.dnb-textarea--stretch .dnb-form-label+.dnb-textarea__inner{width:auto}.dnb-form-row--horizontal .dnb-textarea--stretch,.dnb-textarea--vertical.dnb-textarea--stretch .dnb-textarea__inner{width:100%}@media screen and (max-width:40em){.dnb-responsive-component .dnb-textarea{align-items:flex-start;display:flex;flex-direction:column;margin-bottom:.5rem}.dnb-responsive-component .dnb-textarea>.dnb-form-label{margin-bottom:.5rem}}html[data-visual-test] .dnb-textarea__textarea{caret-color:var(--color-white)}.dnb-textarea.dnb-skeleton .dnb-textarea__inner{border-radius:.25rem;margin:0}.dnb-textarea.dnb-skeleton .dnb-textarea__inner .dnb-textarea__shell{margin:var(--textarea-padding-width)}.dnb-textarea.dnb-skeleton .dnb-textarea__state,.dnb-textarea.dnb-skeleton .dnb-textarea__textarea{visibility:hidden}
@@ -71,6 +71,10 @@
71
71
  @include textareaStyleCommon();
72
72
 
73
73
  @include scrollY(auto);
74
+
75
+ @include IS_FF() {
76
+ overflow-x: clip;
77
+ }
74
78
  }
75
79
 
76
80
  // change the autocomplete appearance once filled out
@@ -1,9 +1,5 @@
1
1
  import { Props as NumberProps } from '../Number';
2
- import type { FieldProps, FieldHelpProps } from '../../types';
3
- export type Props = FieldHelpProps & FieldProps<number, undefined> & {
4
- currency?: NumberProps['currency'];
5
- rightAligned?: NumberProps['rightAligned'];
6
- };
2
+ export type Props = NumberProps;
7
3
  declare function Currency(props: Props): import("react/jsx-runtime").JSX.Element;
8
4
  declare namespace Currency {
9
5
  var _supportsSpacingProps: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Currency.js","names":["_react","_interopRequireDefault","require","_classnames","_shared","_NumberUtils","_defaults","_Number","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","Currency","props","_props$currency","_props$placeholder","context","React","useContext","Context","preparedProps","currency","CURRENCY","placeholder","getCurrencySymbol","locale","createElement","className","classnames","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Currency/Currency.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport { Context } from '../../../../shared'\nimport { getCurrencySymbol } from '../../../../components/number-format/NumberUtils'\nimport { CURRENCY } from '../../../../shared/defaults'\nimport NumberComponent, { Props as NumberProps } from '../Number'\nimport type { FieldProps, FieldHelpProps } from '../../types'\n\nexport type Props = FieldHelpProps &\n FieldProps<number, undefined> & {\n currency?: NumberProps['currency']\n rightAligned?: NumberProps['rightAligned']\n }\n\nfunction Currency(props: Props) {\n const context = React.useContext(Context)\n const preparedProps = {\n ...props,\n currency: props.currency ?? CURRENCY,\n placeholder:\n props.placeholder ??\n getCurrencySymbol(context?.locale, props.currency),\n }\n\n return (\n <NumberComponent\n {...preparedProps}\n className={classnames('dnb-forms-field-currency', props.className)}\n />\n )\n}\n\nCurrency._supportsSpacingProps = true\nexport default Currency\n"],"mappings":"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"}
1
+ {"version":3,"file":"Currency.js","names":["_react","_interopRequireDefault","require","_classnames","_shared","_NumberUtils","_defaults","_Number","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","Currency","props","_props$currency","_props$placeholder","context","React","useContext","Context","preparedProps","currency","CURRENCY","placeholder","getCurrencySymbol","locale","createElement","className","classnames","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Currency/Currency.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport { Context } from '../../../../shared'\nimport { getCurrencySymbol } from '../../../../components/number-format/NumberUtils'\nimport { CURRENCY } from '../../../../shared/defaults'\nimport NumberComponent, { Props as NumberProps } from '../Number'\n\nexport type Props = NumberProps\n\nfunction Currency(props: Props) {\n const context = React.useContext(Context)\n const preparedProps = {\n ...props,\n currency: props.currency ?? CURRENCY,\n placeholder:\n props.placeholder ??\n getCurrencySymbol(context?.locale, props.currency),\n }\n\n return (\n <NumberComponent\n {...preparedProps}\n className={classnames('dnb-forms-field-currency', props.className)}\n />\n )\n}\n\nCurrency._supportsSpacingProps = true\nexport default Currency\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAN,sBAAA,CAAAC,OAAA;AAAiE,SAAAD,uBAAAO,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,SAAA,IAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAAP,MAAA,CAAAS,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAJ,QAAA,CAAAa,KAAA,OAAAP,SAAA;AAAA,SAAAQ,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAhB,MAAA,CAAAgB,IAAA,CAAAF,MAAA,OAAAd,MAAA,CAAAiB,qBAAA,QAAAC,OAAA,GAAAlB,MAAA,CAAAiB,qBAAA,CAAAH,MAAA,GAAAC,cAAA,KAAAG,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAApB,MAAA,CAAAqB,wBAAA,CAAAP,MAAA,EAAAM,GAAA,EAAAE,UAAA,OAAAN,IAAA,CAAAO,IAAA,CAAAX,KAAA,CAAAI,IAAA,EAAAE,OAAA,YAAAF,IAAA;AAAA,SAAAQ,cAAArB,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAS,OAAA,CAAAb,MAAA,CAAAO,MAAA,OAAAkB,OAAA,WAAAjB,GAAA,IAAAkB,eAAA,CAAAvB,MAAA,EAAAK,GAAA,EAAAD,MAAA,CAAAC,GAAA,SAAAR,MAAA,CAAA2B,yBAAA,GAAA3B,MAAA,CAAA4B,gBAAA,CAAAzB,MAAA,EAAAH,MAAA,CAAA2B,yBAAA,CAAApB,MAAA,KAAAM,OAAA,CAAAb,MAAA,CAAAO,MAAA,GAAAkB,OAAA,WAAAjB,GAAA,IAAAR,MAAA,CAAA6B,cAAA,CAAA1B,MAAA,EAAAK,GAAA,EAAAR,MAAA,CAAAqB,wBAAA,CAAAd,MAAA,EAAAC,GAAA,iBAAAL,MAAA;AAAA,SAAAuB,gBAAA9B,GAAA,EAAAY,GAAA,EAAAsB,KAAA,IAAAtB,GAAA,GAAAuB,cAAA,CAAAvB,GAAA,OAAAA,GAAA,IAAAZ,GAAA,IAAAI,MAAA,CAAA6B,cAAA,CAAAjC,GAAA,EAAAY,GAAA,IAAAsB,KAAA,EAAAA,KAAA,EAAAR,UAAA,QAAAU,YAAA,QAAAC,QAAA,oBAAArC,GAAA,CAAAY,GAAA,IAAAsB,KAAA,WAAAlC,GAAA;AAAA,SAAAmC,eAAAG,GAAA,QAAA1B,GAAA,GAAA2B,YAAA,CAAAD,GAAA,2BAAA1B,GAAA,gBAAAA,GAAA,GAAA4B,MAAA,CAAA5B,GAAA;AAAA,SAAA2B,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,CAAA5B,IAAA,CAAA0B,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAC,SAAA,4DAAAN,IAAA,gBAAAF,MAAA,GAAAS,MAAA,EAAAR,KAAA;AAIjE,SAASS,QAAQA,CAACC,KAAY,EAAE;EAAA,IAAAC,eAAA,EAAAC,kBAAA;EAC9B,MAAMC,OAAO,GAAGC,cAAK,CAACC,UAAU,CAACC,eAAO,CAAC;EACzC,MAAMC,aAAa,GAAA9B,aAAA,CAAAA,aAAA,KACduB,KAAK;IACRQ,QAAQ,GAAAP,eAAA,GAAED,KAAK,CAACQ,QAAQ,cAAAP,eAAA,cAAAA,eAAA,GAAIQ,kBAAQ;IACpCC,WAAW,GAAAR,kBAAA,GACTF,KAAK,CAACU,WAAW,cAAAR,kBAAA,cAAAA,kBAAA,GACjB,IAAAS,8BAAiB,EAACR,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAES,MAAM,EAAEZ,KAAK,CAACQ,QAAQ;EAAC,EACrD;EAED,OACEnE,MAAA,CAAAU,OAAA,CAAA8D,aAAA,CAACjE,OAAA,CAAAG,OAAe,EAAAC,QAAA,KACVuD,aAAa;IACjBO,SAAS,EAAE,IAAAC,mBAAU,EAAC,0BAA0B,EAAEf,KAAK,CAACc,SAAS;EAAE,EACpE,CAAC;AAEN;AAEAf,QAAQ,CAACiB,qBAAqB,GAAG,IAAI;AAAA,IAAAC,QAAA,GACtBlB,QAAQ;AAAAmB,OAAA,CAAAnE,OAAA,GAAAkE,QAAA"}
@@ -1,5 +1,7 @@
1
1
  import { FieldProps, FieldHelpProps } from '../../types';
2
- export type Props = FieldHelpProps & FieldProps<string>;
2
+ export type Props = FieldHelpProps & FieldProps<string> & {
3
+ pattern?: string;
4
+ };
3
5
  declare function DateComponent(props: Props): import("react/jsx-runtime").JSX.Element;
4
6
  declare namespace DateComponent {
5
7
  var _supportsSpacingProps: boolean;
@@ -10,6 +10,9 @@ var _components = require("../../../../components");
10
10
  var _hooks = require("../../hooks");
11
11
  var _utils = require("../../../../components/flex/utils");
12
12
  var _Context = _interopRequireDefault(require("../../../../shared/Context"));
13
+ var _classnames = _interopRequireDefault(require("classnames"));
14
+ var _FieldBlock = _interopRequireDefault(require("../../FieldBlock"));
15
+ var _dateFns = require("date-fns");
13
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
17
  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); }
15
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -21,44 +24,82 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typ
21
24
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
22
25
  function DateComponent(props) {
23
26
  const sharedContext = (0, _react.useContext)(_Context.default);
27
+ const tr = sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms;
28
+ const errorMessages = (0, _react.useMemo)(() => _objectSpread({
29
+ required: tr.dateErrorRequired,
30
+ pattern: tr.inputErrorPattern
31
+ }, props.errorMessages), [tr, props.errorMessages]);
32
+ const schema = (0, _react.useMemo)(() => {
33
+ var _props$schema;
34
+ return (_props$schema = props.schema) !== null && _props$schema !== void 0 ? _props$schema : {
35
+ type: 'string',
36
+ pattern: props.pattern
37
+ };
38
+ }, [props.schema, props.pattern]);
39
+ const validateRequired = (0, _react.useCallback)((value, _ref) => {
40
+ let {
41
+ required,
42
+ error
43
+ } = _ref;
44
+ if (required && (!value || !(0, _dateFns.isValid)((0, _dateFns.parseISO)(value)))) {
45
+ return error;
46
+ }
47
+ return undefined;
48
+ }, []);
24
49
  const preparedProps = _objectSpread(_objectSpread({}, props), {}, {
25
- fromInput: _ref => {
50
+ errorMessages,
51
+ schema,
52
+ fromInput: _ref2 => {
26
53
  let {
27
54
  date
28
- } = _ref;
55
+ } = _ref2;
29
56
  return date;
30
57
  },
31
- emptyValue: null
58
+ validateRequired
32
59
  });
33
60
  const {
61
+ id,
34
62
  className,
35
63
  label,
64
+ labelDescription,
65
+ labelSecondary,
36
66
  value,
37
67
  help,
68
+ info,
69
+ warning,
38
70
  error,
71
+ hasError,
39
72
  disabled,
40
73
  handleFocus,
41
74
  handleBlur,
42
75
  handleChange
43
76
  } = (0, _hooks.useDataValue)(preparedProps);
44
- return _react.default.createElement(_components.DatePicker, _extends({
45
- className: className,
77
+ return _react.default.createElement(_FieldBlock.default, _extends({
78
+ className: (0, _classnames.default)('dnb-forms-field-string', className),
79
+ forId: id,
46
80
  label: label !== null && label !== void 0 ? label : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.dateLabel,
47
- label_direction: "vertical",
81
+ labelDescription: labelDescription,
82
+ labelSecondary: labelSecondary,
83
+ info: info,
84
+ warning: warning,
85
+ disabled: disabled,
86
+ error: error
87
+ }, (0, _utils.pickSpacingProps)(props)), _react.default.createElement(_components.DatePicker, _extends({
88
+ id: id,
48
89
  date: value,
49
- status: error === null || error === void 0 ? void 0 : error.message,
50
90
  disabled: disabled,
51
91
  show_input: true,
52
92
  show_cancel_button: true,
53
93
  show_reset_button: true,
94
+ status: error || hasError ? 'error' : undefined,
54
95
  suffix: help ? _react.default.createElement(_components.HelpButton, {
55
96
  title: help.title
56
97
  }, help.contents) : undefined,
57
98
  on_change: handleChange,
58
99
  on_reset: handleChange,
59
- on_show: handleFocus,
60
- on_hide: handleBlur
61
- }, (0, _utils.pickSpacingProps)(props)));
100
+ onFocus: handleFocus,
101
+ onBlur: handleBlur
102
+ }, (0, _utils.pickSpacingProps)(props))));
62
103
  }
63
104
  DateComponent._supportsSpacingProps = true;
64
105
  var _default = DateComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"Date.js","names":["_react","_interopRequireWildcard","require","_components","_hooks","_utils","_Context","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","DateComponent","props","sharedContext","useContext","SharedContext","preparedProps","fromInput","_ref","date","emptyValue","className","label","help","error","disabled","handleFocus","handleBlur","handleChange","useDataValue","createElement","DatePicker","translation","Forms","dateLabel","label_direction","status","message","show_input","show_cancel_button","show_reset_button","suffix","HelpButton","title","contents","on_change","on_reset","on_show","on_hide","pickSpacingProps","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Date/Date.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport { DatePicker, HelpButton } from '../../../../components'\nimport { useDataValue } from '../../hooks'\nimport { FieldProps, FieldHelpProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\n\nexport type Props = FieldHelpProps & FieldProps<string>\n\nfunction DateComponent(props: Props) {\n const sharedContext = useContext(SharedContext)\n const preparedProps: Props = {\n ...props,\n fromInput: ({ date }: { date: string }) => {\n return date\n },\n emptyValue: null,\n }\n\n const {\n className,\n label,\n value,\n help,\n error,\n disabled,\n handleFocus,\n handleBlur,\n handleChange,\n } = useDataValue(preparedProps)\n\n return (\n <DatePicker\n className={className}\n label={label ?? sharedContext?.translation.Forms.dateLabel}\n label_direction=\"vertical\"\n date={value}\n status={error?.message}\n disabled={disabled}\n show_input={true}\n show_cancel_button={true}\n show_reset_button={true}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined\n }\n on_change={handleChange}\n on_reset={handleChange}\n on_show={handleFocus}\n on_hide={handleBlur}\n {...pickSpacingProps(props)}\n />\n )\n}\n\nDateComponent._supportsSpacingProps = true\nexport default DateComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"Date.js","names":["_react","_interopRequireWildcard","require","_components","_hooks","_utils","_Context","_interopRequireDefault","_classnames","_FieldBlock","_dateFns","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","DateComponent","props","sharedContext","useContext","SharedContext","tr","translation","Forms","errorMessages","useMemo","required","dateErrorRequired","pattern","inputErrorPattern","schema","_props$schema","type","validateRequired","useCallback","_ref","error","isValid","parseISO","preparedProps","fromInput","_ref2","date","id","className","label","labelDescription","labelSecondary","help","info","warning","hasError","disabled","handleFocus","handleBlur","handleChange","useDataValue","createElement","classnames","forId","dateLabel","pickSpacingProps","DatePicker","show_input","show_cancel_button","show_reset_button","status","suffix","HelpButton","title","contents","on_change","on_reset","onFocus","onBlur","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Date/Date.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport { DatePicker, HelpButton } from '../../../../components'\nimport { useDataValue } from '../../hooks'\nimport { FieldProps, FieldHelpProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\nimport { JSONSchema7 } from 'json-schema'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { parseISO, isValid } from 'date-fns'\n\nexport type Props = FieldHelpProps &\n FieldProps<string> & {\n // Validation\n pattern?: string\n }\n\nfunction DateComponent(props: Props) {\n const sharedContext = useContext(SharedContext)\n const tr = sharedContext?.translation.Forms\n\n const errorMessages = useMemo(\n () => ({\n required: tr.dateErrorRequired,\n pattern: tr.inputErrorPattern,\n ...props.errorMessages,\n }),\n [tr, props.errorMessages]\n )\n\n const schema = useMemo<JSONSchema7>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, error }) => {\n if (required && (!value || !isValid(parseISO(value)))) {\n return error\n }\n\n return undefined\n },\n []\n )\n\n const preparedProps: Props = {\n ...props,\n errorMessages,\n schema,\n fromInput: ({ date }: { date: string }) => {\n return date\n },\n validateRequired,\n }\n\n const {\n id,\n className,\n label,\n labelDescription,\n labelSecondary,\n value,\n help,\n info,\n warning,\n error,\n hasError,\n disabled,\n handleFocus,\n handleBlur,\n handleChange,\n } = useDataValue(preparedProps)\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-string', className)}\n forId={id}\n label={label ?? sharedContext?.translation.Forms.dateLabel}\n labelDescription={labelDescription}\n labelSecondary={labelSecondary}\n info={info}\n warning={warning}\n disabled={disabled}\n error={error}\n {...pickSpacingProps(props)}\n >\n <DatePicker\n id={id}\n date={value}\n disabled={disabled}\n show_input={true}\n show_cancel_button={true}\n show_reset_button={true}\n status={error || hasError ? 'error' : undefined}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined\n }\n on_change={handleChange}\n on_reset={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...pickSpacingProps(props)}\n />\n </FieldBlock>\n )\n}\n\nDateComponent._supportsSpacingProps = true\nexport default DateComponent\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { InputMaskedProps } from '../../../../components/InputMasked';
2
+ import type { InputAlign, InputSize } from '../../../../components/Input';
2
3
  import { FieldProps, FieldHelpProps } from '../../types';
3
4
  interface ErrorMessages {
4
5
  required?: string;
@@ -14,6 +15,7 @@ export type Props = FieldHelpProps & FieldProps<number, undefined, ErrorMessages
14
15
  currency?: InputMaskedProps['as_currency'];
15
16
  percent?: InputMaskedProps['as_percent'];
16
17
  mask?: InputMaskedProps['mask'];
18
+ step?: number;
17
19
  thousandSeparator?: string | true;
18
20
  decimalSymbol?: string;
19
21
  decimalLimit?: number;
@@ -24,8 +26,10 @@ export type Props = FieldHelpProps & FieldProps<number, undefined, ErrorMessages
24
26
  exclusiveMinimum?: number;
25
27
  exclusiveMaximum?: number;
26
28
  multipleOf?: number;
29
+ size?: InputSize;
27
30
  width?: false | 'small' | 'medium' | 'large' | 'stretch';
28
- rightAligned?: boolean;
31
+ align?: InputAlign;
32
+ showStepControls?: boolean;
29
33
  };
30
34
  declare function NumberComponent(props: Props): import("react/jsx-runtime").JSX.Element;
31
35
  declare namespace NumberComponent {