@dnb/eufemia 10.43.0 → 10.45.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 (803) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/cjs/components/autocomplete/Autocomplete.d.ts +2 -2
  3. package/cjs/components/autocomplete/AutocompleteDocs.js +7 -7
  4. package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
  5. package/cjs/components/button/Button.d.ts +1 -1
  6. package/cjs/components/button/Button.js +6 -5
  7. package/cjs/components/button/Button.js.map +1 -1
  8. package/cjs/components/checkbox/style/dnb-checkbox.scss +1 -1
  9. package/cjs/components/input-masked/InputMaskedHooks.js +4 -0
  10. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  11. package/cjs/components/radio/style/dnb-radio.scss +1 -1
  12. package/cjs/components/space/Space.d.ts +1 -1
  13. package/cjs/components/space/Space.js.map +1 -1
  14. package/cjs/components/table/TableStickyHeader.js.map +1 -1
  15. package/cjs/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  16. package/cjs/components/table/table-navigation/TableNavigationHead.js +1 -1
  17. package/cjs/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  18. package/cjs/components/upload/Upload.js +2 -1
  19. package/cjs/components/upload/Upload.js.map +1 -1
  20. package/cjs/components/upload/UploadDocs.d.ts +1 -0
  21. package/cjs/components/upload/UploadDocs.js +18 -5
  22. package/cjs/components/upload/UploadDocs.js.map +1 -1
  23. package/cjs/components/upload/UploadInfo.js +57 -5
  24. package/cjs/components/upload/UploadInfo.js.map +1 -1
  25. package/cjs/components/upload/UploadVerify.d.ts +4 -2
  26. package/cjs/components/upload/UploadVerify.js +34 -4
  27. package/cjs/components/upload/UploadVerify.js.map +1 -1
  28. package/cjs/components/upload/style/dnb-upload.css +15 -0
  29. package/cjs/components/upload/style/dnb-upload.min.css +1 -1
  30. package/cjs/components/upload/style/dnb-upload.scss +17 -0
  31. package/cjs/components/upload/types.d.ts +9 -3
  32. package/cjs/components/upload/types.js.map +1 -1
  33. package/cjs/extensions/forms/DataContext/Context.d.ts +9 -3
  34. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  35. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +8 -0
  36. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  37. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +8 -0
  38. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  39. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +5 -12
  40. package/cjs/extensions/forms/DataContext/Provider/Provider.js +58 -18
  41. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  42. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +6 -1
  43. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  44. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +2 -1
  45. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +29 -24
  46. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  47. package/cjs/extensions/forms/Field/Currency/CurrencyDocs.d.ts +2 -0
  48. package/cjs/extensions/forms/Field/Currency/CurrencyDocs.js +31 -0
  49. package/cjs/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -0
  50. package/cjs/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
  51. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  52. package/cjs/extensions/forms/Field/FieldDocs.d.ts +7 -0
  53. package/cjs/extensions/forms/Field/FieldDocs.js +20 -1
  54. package/cjs/extensions/forms/Field/FieldDocs.js.map +1 -1
  55. package/cjs/extensions/forms/Field/Name/Name.js +2 -2
  56. package/cjs/extensions/forms/Field/Name/Name.js.map +1 -1
  57. package/cjs/extensions/forms/Field/Number/Number.js +7 -12
  58. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  59. package/cjs/extensions/forms/Field/Option/Option.d.ts +2 -4
  60. package/cjs/extensions/forms/Field/Option/Option.js +0 -21
  61. package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
  62. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -2
  63. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -15
  64. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  65. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +3 -0
  66. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +28 -0
  67. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -0
  68. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  69. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +32 -16
  70. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  71. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +1 -0
  72. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +16 -0
  73. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -0
  74. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +42 -15
  75. package/cjs/extensions/forms/Field/Selection/Selection.js +92 -29
  76. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  77. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +10 -0
  78. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  79. package/cjs/extensions/forms/Field/Toggle/Toggle.js +1 -1
  80. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  81. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +3 -3
  82. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  83. package/cjs/extensions/forms/Form/Element/Element.js +11 -9
  84. package/cjs/extensions/forms/Form/Element/Element.js.map +1 -1
  85. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  86. package/cjs/extensions/forms/Form/Handler/Handler.js +3 -1
  87. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  88. package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +26 -5
  89. package/cjs/extensions/forms/Form/Isolation/Isolation.js +84 -26
  90. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  91. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -0
  92. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
  93. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +11 -1
  94. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  95. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +13 -5
  96. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  97. package/cjs/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +10 -13
  98. package/cjs/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -1
  99. package/cjs/extensions/forms/Form/Section/Section.js +2 -2
  100. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  101. package/cjs/extensions/forms/Form/data-context/clearData.d.ts +1 -0
  102. package/cjs/extensions/forms/Form/data-context/clearData.js +16 -0
  103. package/cjs/extensions/forms/Form/data-context/clearData.js.map +1 -0
  104. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  105. package/cjs/extensions/forms/Form/index.js +7 -0
  106. package/cjs/extensions/forms/Form/index.js.map +1 -1
  107. package/cjs/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js +3 -3
  108. package/cjs/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js.map +1 -1
  109. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +2 -2
  110. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  111. package/cjs/extensions/forms/Iterate/Array/Array.js +7 -5
  112. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  113. package/cjs/extensions/forms/Iterate/Array/types.d.ts +1 -4
  114. package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
  115. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +1 -3
  116. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +25 -19
  117. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  118. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +10 -0
  119. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  120. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +44 -14
  121. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  122. package/cjs/extensions/forms/Iterate/{IterateElementContext.d.ts → IterateItemContext.d.ts} +3 -3
  123. package/cjs/extensions/forms/Iterate/{IterateElementContext.js → IterateItemContext.js} +3 -3
  124. package/cjs/extensions/forms/Iterate/IterateItemContext.js.map +1 -0
  125. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +3 -3
  126. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  127. package/cjs/extensions/forms/Iterate/PushButton/PushButtonDocs.js +5 -0
  128. package/cjs/extensions/forms/Iterate/PushButton/PushButtonDocs.js.map +1 -1
  129. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.d.ts +4 -0
  130. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js +42 -0
  131. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -0
  132. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +37 -0
  133. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +95 -0
  134. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -0
  135. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerContext.d.ts +11 -0
  136. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerContext.js +12 -0
  137. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerContext.js.map +1 -0
  138. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.d.ts +3 -0
  139. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +42 -0
  140. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -0
  141. package/cjs/extensions/forms/Iterate/PushContainer/index.d.ts +2 -0
  142. package/cjs/extensions/forms/Iterate/PushContainer/index.js +27 -0
  143. package/cjs/extensions/forms/Iterate/PushContainer/index.js.map +1 -0
  144. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +4 -4
  145. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  146. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +4 -0
  147. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +13 -5
  148. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  149. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  150. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  151. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +3 -3
  152. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  153. package/cjs/extensions/forms/Iterate/hooks/useItem.d.ts +1 -0
  154. package/cjs/extensions/forms/Iterate/hooks/useItem.js +15 -0
  155. package/cjs/extensions/forms/Iterate/hooks/useItem.js.map +1 -0
  156. package/cjs/extensions/forms/Iterate/index.d.ts +3 -1
  157. package/cjs/extensions/forms/Iterate/index.js +17 -3
  158. package/cjs/extensions/forms/Iterate/index.js.map +1 -1
  159. package/cjs/extensions/forms/Iterate/style/dnb-iterate.css +1 -1
  160. package/cjs/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -1
  161. package/cjs/extensions/forms/Iterate/style/dnb-iterate.scss +1 -1
  162. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +19 -0
  163. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js +81 -0
  164. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -0
  165. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.d.ts +2 -0
  166. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +15 -0
  167. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -0
  168. package/cjs/extensions/forms/Value/ArraySelection/index.d.ts +2 -0
  169. package/cjs/extensions/forms/Value/ArraySelection/index.js +27 -0
  170. package/cjs/extensions/forms/Value/ArraySelection/index.js.map +1 -0
  171. package/cjs/extensions/forms/Value/Selection/Selection.d.ts +9 -0
  172. package/cjs/extensions/forms/Value/Selection/Selection.js +58 -0
  173. package/cjs/extensions/forms/Value/Selection/Selection.js.map +1 -0
  174. package/cjs/extensions/forms/Value/Selection/SelectionDocs.d.ts +2 -0
  175. package/cjs/extensions/forms/Value/Selection/SelectionDocs.js +15 -0
  176. package/cjs/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -0
  177. package/cjs/extensions/forms/Value/Selection/index.d.ts +2 -0
  178. package/cjs/extensions/forms/Value/Selection/index.js +27 -0
  179. package/cjs/extensions/forms/Value/Selection/index.js.map +1 -0
  180. package/cjs/extensions/forms/Value/ValueDocs.js +6 -1
  181. package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
  182. package/cjs/extensions/forms/Value/index.d.ts +2 -0
  183. package/cjs/extensions/forms/Value/index.js +14 -0
  184. package/cjs/extensions/forms/Value/index.js.map +1 -1
  185. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +3 -3
  186. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  187. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +27 -11
  188. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  189. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  190. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  191. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +7 -0
  192. package/cjs/extensions/forms/constants/locales/en-GB.js +7 -0
  193. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  194. package/cjs/extensions/forms/constants/locales/en-US.d.ts +7 -0
  195. package/cjs/extensions/forms/constants/locales/index.d.ts +14 -0
  196. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +7 -0
  197. package/cjs/extensions/forms/constants/locales/nb-NO.js +7 -0
  198. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  199. package/cjs/extensions/forms/hooks/DataValueDocs.js +4 -4
  200. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  201. package/cjs/extensions/forms/hooks/useDataValue.d.ts +2 -0
  202. package/cjs/extensions/forms/hooks/useDataValue.js +29 -13
  203. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  204. package/cjs/extensions/forms/hooks/useExternalValue.js +4 -4
  205. package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -1
  206. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +5 -5
  207. package/cjs/extensions/forms/hooks/useFieldProps.js +49 -31
  208. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  209. package/cjs/extensions/forms/hooks/usePath.js +3 -3
  210. package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
  211. package/cjs/extensions/forms/hooks/useValueProps.js +4 -1
  212. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  213. package/cjs/extensions/forms/style/dnb-forms.css +1 -1
  214. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  215. package/cjs/extensions/forms/types.d.ts +20 -7
  216. package/cjs/extensions/forms/types.js.map +1 -1
  217. package/cjs/shared/Eufemia.d.ts +1 -1
  218. package/cjs/shared/Eufemia.js +2 -2
  219. package/cjs/shared/Eufemia.js.map +1 -1
  220. package/cjs/shared/helpers/isAsync.js +2 -2
  221. package/cjs/shared/helpers/isAsync.js.map +1 -1
  222. package/cjs/shared/locales/en-GB.d.ts +1 -0
  223. package/cjs/shared/locales/en-GB.js +1 -0
  224. package/cjs/shared/locales/en-GB.js.map +1 -1
  225. package/cjs/shared/locales/en-US.d.ts +1 -0
  226. package/cjs/shared/locales/index.d.ts +2 -0
  227. package/cjs/shared/locales/nb-NO.d.ts +1 -0
  228. package/cjs/shared/locales/nb-NO.js +2 -1
  229. package/cjs/shared/locales/nb-NO.js.map +1 -1
  230. package/cjs/shared/useTheme.d.ts +4 -10
  231. package/cjs/shared/useTheme.js +7 -5
  232. package/cjs/shared/useTheme.js.map +1 -1
  233. package/cjs/style/core/scopes.scss +1 -1
  234. package/cjs/style/dnb-ui-basis.css +1 -1
  235. package/cjs/style/dnb-ui-basis.min.css +1 -1
  236. package/cjs/style/dnb-ui-body.css +1 -1
  237. package/cjs/style/dnb-ui-body.min.css +1 -1
  238. package/cjs/style/dnb-ui-components.css +16 -1
  239. package/cjs/style/dnb-ui-components.min.css +2 -2
  240. package/cjs/style/dnb-ui-core.css +1 -1
  241. package/cjs/style/dnb-ui-core.min.css +1 -1
  242. package/cjs/style/dnb-ui-extensions.css +1 -1
  243. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  244. package/cjs/style/dnb-ui-forms.css +1 -1
  245. package/cjs/style/dnb-ui-forms.min.css +1 -1
  246. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +17 -2
  247. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  248. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
  249. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  250. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  251. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  252. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +17 -2
  253. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  254. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
  255. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  256. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  257. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  258. package/cjs/style/themes/theme-ui/ui-theme-components.css +17 -2
  259. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  260. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +1 -1
  261. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  262. package/cjs/style/themes/theme-ui/ui-theme-forms.css +1 -1
  263. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  264. package/components/autocomplete/Autocomplete.d.ts +2 -2
  265. package/components/autocomplete/AutocompleteDocs.js +7 -7
  266. package/components/autocomplete/AutocompleteDocs.js.map +1 -1
  267. package/components/button/Button.d.ts +1 -1
  268. package/components/button/Button.js +6 -5
  269. package/components/button/Button.js.map +1 -1
  270. package/components/checkbox/style/dnb-checkbox.scss +1 -1
  271. package/components/input-masked/InputMaskedHooks.js +4 -0
  272. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  273. package/components/radio/style/dnb-radio.scss +1 -1
  274. package/components/space/Space.d.ts +1 -1
  275. package/components/space/Space.js.map +1 -1
  276. package/components/table/TableStickyHeader.js.map +1 -1
  277. package/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  278. package/components/table/table-navigation/TableNavigationHead.js +1 -1
  279. package/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  280. package/components/upload/Upload.js +2 -1
  281. package/components/upload/Upload.js.map +1 -1
  282. package/components/upload/UploadDocs.d.ts +1 -0
  283. package/components/upload/UploadDocs.js +16 -4
  284. package/components/upload/UploadDocs.js.map +1 -1
  285. package/components/upload/UploadInfo.js +57 -5
  286. package/components/upload/UploadInfo.js.map +1 -1
  287. package/components/upload/UploadVerify.d.ts +4 -2
  288. package/components/upload/UploadVerify.js +32 -4
  289. package/components/upload/UploadVerify.js.map +1 -1
  290. package/components/upload/style/dnb-upload.css +15 -0
  291. package/components/upload/style/dnb-upload.min.css +1 -1
  292. package/components/upload/style/dnb-upload.scss +17 -0
  293. package/components/upload/types.d.ts +9 -3
  294. package/components/upload/types.js.map +1 -1
  295. package/es/components/autocomplete/Autocomplete.d.ts +2 -2
  296. package/es/components/autocomplete/AutocompleteDocs.js +7 -7
  297. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
  298. package/es/components/button/Button.d.ts +1 -1
  299. package/es/components/button/Button.js +6 -5
  300. package/es/components/button/Button.js.map +1 -1
  301. package/es/components/checkbox/style/dnb-checkbox.scss +1 -1
  302. package/es/components/input-masked/InputMaskedHooks.js +4 -0
  303. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  304. package/es/components/radio/style/dnb-radio.scss +1 -1
  305. package/es/components/space/Space.d.ts +1 -1
  306. package/es/components/space/Space.js.map +1 -1
  307. package/es/components/table/TableStickyHeader.js.map +1 -1
  308. package/es/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  309. package/es/components/table/table-navigation/TableNavigationHead.js +1 -1
  310. package/es/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  311. package/es/components/upload/Upload.js +2 -1
  312. package/es/components/upload/Upload.js.map +1 -1
  313. package/es/components/upload/UploadDocs.d.ts +1 -0
  314. package/es/components/upload/UploadDocs.js +16 -4
  315. package/es/components/upload/UploadDocs.js.map +1 -1
  316. package/es/components/upload/UploadInfo.js +57 -5
  317. package/es/components/upload/UploadInfo.js.map +1 -1
  318. package/es/components/upload/UploadVerify.d.ts +4 -2
  319. package/es/components/upload/UploadVerify.js +32 -4
  320. package/es/components/upload/UploadVerify.js.map +1 -1
  321. package/es/components/upload/style/dnb-upload.css +15 -0
  322. package/es/components/upload/style/dnb-upload.min.css +1 -1
  323. package/es/components/upload/style/dnb-upload.scss +17 -0
  324. package/es/components/upload/types.d.ts +9 -3
  325. package/es/components/upload/types.js.map +1 -1
  326. package/es/extensions/forms/DataContext/Context.d.ts +9 -3
  327. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  328. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +8 -0
  329. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  330. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +9 -1
  331. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  332. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +5 -12
  333. package/es/extensions/forms/DataContext/Provider/Provider.js +56 -18
  334. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  335. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +6 -1
  336. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  337. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +2 -1
  338. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +28 -24
  339. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  340. package/es/extensions/forms/Field/Currency/CurrencyDocs.d.ts +2 -0
  341. package/es/extensions/forms/Field/Currency/CurrencyDocs.js +22 -0
  342. package/es/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -0
  343. package/es/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
  344. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  345. package/es/extensions/forms/Field/FieldDocs.d.ts +7 -0
  346. package/es/extensions/forms/Field/FieldDocs.js +16 -0
  347. package/es/extensions/forms/Field/FieldDocs.js.map +1 -1
  348. package/es/extensions/forms/Field/Name/Name.js +2 -2
  349. package/es/extensions/forms/Field/Name/Name.js.map +1 -1
  350. package/es/extensions/forms/Field/Number/Number.js +7 -12
  351. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  352. package/es/extensions/forms/Field/Option/Option.d.ts +2 -4
  353. package/es/extensions/forms/Field/Option/Option.js +0 -20
  354. package/es/extensions/forms/Field/Option/Option.js.map +1 -1
  355. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -2
  356. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +32 -15
  357. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  358. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +3 -0
  359. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +20 -0
  360. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -0
  361. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  362. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +16 -3
  363. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  364. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +1 -0
  365. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +9 -0
  366. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -0
  367. package/es/extensions/forms/Field/Selection/Selection.d.ts +42 -15
  368. package/es/extensions/forms/Field/Selection/Selection.js +86 -28
  369. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  370. package/es/extensions/forms/Field/Selection/SelectionDocs.js +10 -0
  371. package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  372. package/es/extensions/forms/Field/Toggle/Toggle.js +1 -1
  373. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  374. package/es/extensions/forms/FieldBlock/FieldBlock.js +3 -3
  375. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  376. package/es/extensions/forms/Form/Element/Element.js +9 -9
  377. package/es/extensions/forms/Form/Element/Element.js.map +1 -1
  378. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  379. package/es/extensions/forms/Form/Handler/Handler.js +3 -1
  380. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  381. package/es/extensions/forms/Form/Isolation/Isolation.d.ts +26 -5
  382. package/es/extensions/forms/Form/Isolation/Isolation.js +85 -27
  383. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  384. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -0
  385. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
  386. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +11 -1
  387. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  388. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +13 -5
  389. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  390. package/es/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +10 -11
  391. package/es/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -1
  392. package/es/extensions/forms/Form/Section/Section.js +2 -2
  393. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  394. package/es/extensions/forms/Form/data-context/clearData.d.ts +1 -0
  395. package/es/extensions/forms/Form/data-context/clearData.js +10 -0
  396. package/es/extensions/forms/Form/data-context/clearData.js.map +1 -0
  397. package/es/extensions/forms/Form/index.d.ts +1 -0
  398. package/es/extensions/forms/Form/index.js +1 -0
  399. package/es/extensions/forms/Form/index.js.map +1 -1
  400. package/es/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js +3 -3
  401. package/es/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js.map +1 -1
  402. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +2 -2
  403. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  404. package/es/extensions/forms/Iterate/Array/Array.js +7 -5
  405. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  406. package/es/extensions/forms/Iterate/Array/types.d.ts +1 -4
  407. package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
  408. package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +1 -3
  409. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +26 -20
  410. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  411. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +10 -0
  412. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  413. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +44 -14
  414. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  415. package/{extensions/forms/Iterate/IterateElementContext.d.ts → es/extensions/forms/Iterate/IterateItemContext.d.ts} +3 -3
  416. package/es/extensions/forms/Iterate/IterateItemContext.js +4 -0
  417. package/es/extensions/forms/Iterate/IterateItemContext.js.map +1 -0
  418. package/es/extensions/forms/Iterate/PushButton/PushButton.js +3 -3
  419. package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  420. package/es/extensions/forms/Iterate/PushButton/PushButtonDocs.js +5 -0
  421. package/es/extensions/forms/Iterate/PushButton/PushButtonDocs.js.map +1 -1
  422. package/es/extensions/forms/Iterate/PushContainer/OpenButton.d.ts +4 -0
  423. package/es/extensions/forms/Iterate/PushContainer/OpenButton.js +32 -0
  424. package/es/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -0
  425. package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +37 -0
  426. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +80 -0
  427. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -0
  428. package/es/extensions/forms/Iterate/PushContainer/PushContainerContext.d.ts +11 -0
  429. package/es/extensions/forms/Iterate/PushContainer/PushContainerContext.js +6 -0
  430. package/es/extensions/forms/Iterate/PushContainer/PushContainerContext.js.map +1 -0
  431. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.d.ts +3 -0
  432. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +34 -0
  433. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -0
  434. package/es/extensions/forms/Iterate/PushContainer/index.d.ts +2 -0
  435. package/es/extensions/forms/Iterate/PushContainer/index.js +3 -0
  436. package/es/extensions/forms/Iterate/PushContainer/index.js.map +1 -0
  437. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +4 -4
  438. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  439. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +4 -0
  440. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +15 -6
  441. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  442. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  443. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  444. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +3 -3
  445. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  446. package/es/extensions/forms/Iterate/hooks/useItem.d.ts +1 -0
  447. package/es/extensions/forms/Iterate/hooks/useItem.js +9 -0
  448. package/es/extensions/forms/Iterate/hooks/useItem.js.map +1 -0
  449. package/es/extensions/forms/Iterate/index.d.ts +3 -1
  450. package/es/extensions/forms/Iterate/index.js +3 -1
  451. package/es/extensions/forms/Iterate/index.js.map +1 -1
  452. package/es/extensions/forms/Iterate/style/dnb-iterate.css +1 -1
  453. package/es/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -1
  454. package/es/extensions/forms/Iterate/style/dnb-iterate.scss +1 -1
  455. package/es/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +19 -0
  456. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js +66 -0
  457. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -0
  458. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.d.ts +2 -0
  459. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +8 -0
  460. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -0
  461. package/es/extensions/forms/Value/ArraySelection/index.d.ts +2 -0
  462. package/es/extensions/forms/Value/ArraySelection/index.js +3 -0
  463. package/es/extensions/forms/Value/ArraySelection/index.js.map +1 -0
  464. package/es/extensions/forms/Value/Selection/Selection.d.ts +9 -0
  465. package/es/extensions/forms/Value/Selection/Selection.js +48 -0
  466. package/es/extensions/forms/Value/Selection/Selection.js.map +1 -0
  467. package/es/extensions/forms/Value/Selection/SelectionDocs.d.ts +2 -0
  468. package/es/extensions/forms/Value/Selection/SelectionDocs.js +8 -0
  469. package/es/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -0
  470. package/es/extensions/forms/Value/Selection/index.d.ts +2 -0
  471. package/es/extensions/forms/Value/Selection/index.js +3 -0
  472. package/es/extensions/forms/Value/Selection/index.js.map +1 -0
  473. package/es/extensions/forms/Value/ValueDocs.js +6 -1
  474. package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
  475. package/es/extensions/forms/Value/index.d.ts +2 -0
  476. package/es/extensions/forms/Value/index.js +2 -0
  477. package/es/extensions/forms/Value/index.js.map +1 -1
  478. package/es/extensions/forms/ValueBlock/ValueBlock.js +3 -3
  479. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  480. package/es/extensions/forms/Wizard/Container/WizardContainer.js +16 -1
  481. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  482. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  483. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  484. package/es/extensions/forms/constants/locales/en-GB.d.ts +7 -0
  485. package/es/extensions/forms/constants/locales/en-GB.js +7 -0
  486. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  487. package/es/extensions/forms/constants/locales/en-US.d.ts +7 -0
  488. package/es/extensions/forms/constants/locales/index.d.ts +14 -0
  489. package/es/extensions/forms/constants/locales/nb-NO.d.ts +7 -0
  490. package/es/extensions/forms/constants/locales/nb-NO.js +7 -0
  491. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  492. package/es/extensions/forms/hooks/DataValueDocs.js +4 -4
  493. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  494. package/es/extensions/forms/hooks/useDataValue.d.ts +2 -0
  495. package/es/extensions/forms/hooks/useDataValue.js +29 -13
  496. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  497. package/es/extensions/forms/hooks/useExternalValue.js +4 -4
  498. package/es/extensions/forms/hooks/useExternalValue.js.map +1 -1
  499. package/es/extensions/forms/hooks/useFieldProps.d.ts +5 -5
  500. package/es/extensions/forms/hooks/useFieldProps.js +49 -31
  501. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  502. package/es/extensions/forms/hooks/usePath.js +2 -2
  503. package/es/extensions/forms/hooks/usePath.js.map +1 -1
  504. package/es/extensions/forms/hooks/useValueProps.js +4 -1
  505. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  506. package/es/extensions/forms/style/dnb-forms.css +1 -1
  507. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  508. package/es/extensions/forms/types.d.ts +20 -7
  509. package/es/extensions/forms/types.js.map +1 -1
  510. package/es/shared/Eufemia.d.ts +1 -1
  511. package/es/shared/Eufemia.js +2 -2
  512. package/es/shared/Eufemia.js.map +1 -1
  513. package/es/shared/helpers/isAsync.js +2 -2
  514. package/es/shared/helpers/isAsync.js.map +1 -1
  515. package/es/shared/locales/en-GB.d.ts +1 -0
  516. package/es/shared/locales/en-GB.js +1 -0
  517. package/es/shared/locales/en-GB.js.map +1 -1
  518. package/es/shared/locales/en-US.d.ts +1 -0
  519. package/es/shared/locales/index.d.ts +2 -0
  520. package/es/shared/locales/nb-NO.d.ts +1 -0
  521. package/es/shared/locales/nb-NO.js +2 -1
  522. package/es/shared/locales/nb-NO.js.map +1 -1
  523. package/es/shared/useTheme.d.ts +4 -10
  524. package/es/shared/useTheme.js +7 -5
  525. package/es/shared/useTheme.js.map +1 -1
  526. package/es/style/core/scopes.scss +1 -1
  527. package/es/style/dnb-ui-basis.css +1 -1
  528. package/es/style/dnb-ui-basis.min.css +1 -1
  529. package/es/style/dnb-ui-body.css +1 -1
  530. package/es/style/dnb-ui-body.min.css +1 -1
  531. package/es/style/dnb-ui-components.css +16 -1
  532. package/es/style/dnb-ui-components.min.css +2 -2
  533. package/es/style/dnb-ui-core.css +1 -1
  534. package/es/style/dnb-ui-core.min.css +1 -1
  535. package/es/style/dnb-ui-extensions.css +1 -1
  536. package/es/style/dnb-ui-extensions.min.css +1 -1
  537. package/es/style/dnb-ui-forms.css +1 -1
  538. package/es/style/dnb-ui-forms.min.css +1 -1
  539. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +17 -2
  540. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  541. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
  542. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  543. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  544. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  545. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +17 -2
  546. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  547. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
  548. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  549. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  550. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  551. package/es/style/themes/theme-ui/ui-theme-components.css +17 -2
  552. package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  553. package/es/style/themes/theme-ui/ui-theme-extensions.css +1 -1
  554. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  555. package/es/style/themes/theme-ui/ui-theme-forms.css +1 -1
  556. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  557. package/esm/dnb-ui-basis.min.mjs +1 -1
  558. package/esm/dnb-ui-components.min.mjs +1 -1
  559. package/esm/dnb-ui-elements.min.mjs +1 -1
  560. package/esm/dnb-ui-extensions.min.mjs +5 -5
  561. package/esm/dnb-ui-lib.min.mjs +1 -1
  562. package/extensions/forms/DataContext/Context.d.ts +9 -3
  563. package/extensions/forms/DataContext/Context.js.map +1 -1
  564. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +8 -0
  565. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  566. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +9 -1
  567. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  568. package/extensions/forms/DataContext/Provider/Provider.d.ts +5 -12
  569. package/extensions/forms/DataContext/Provider/Provider.js +56 -18
  570. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  571. package/extensions/forms/DataContext/Provider/ProviderDocs.js +6 -1
  572. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  573. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +2 -1
  574. package/extensions/forms/Field/ArraySelection/ArraySelection.js +28 -24
  575. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  576. package/extensions/forms/Field/Currency/CurrencyDocs.d.ts +2 -0
  577. package/extensions/forms/Field/Currency/CurrencyDocs.js +22 -0
  578. package/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -0
  579. package/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
  580. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  581. package/extensions/forms/Field/FieldDocs.d.ts +7 -0
  582. package/extensions/forms/Field/FieldDocs.js +18 -0
  583. package/extensions/forms/Field/FieldDocs.js.map +1 -1
  584. package/extensions/forms/Field/Name/Name.js +2 -2
  585. package/extensions/forms/Field/Name/Name.js.map +1 -1
  586. package/extensions/forms/Field/Number/Number.js +7 -12
  587. package/extensions/forms/Field/Number/Number.js.map +1 -1
  588. package/extensions/forms/Field/Option/Option.d.ts +2 -4
  589. package/extensions/forms/Field/Option/Option.js +0 -20
  590. package/extensions/forms/Field/Option/Option.js.map +1 -1
  591. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -2
  592. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -15
  593. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  594. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +3 -0
  595. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +20 -0
  596. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -0
  597. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  598. package/extensions/forms/Field/SelectCountry/SelectCountry.js +32 -16
  599. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  600. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +1 -0
  601. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +9 -0
  602. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -0
  603. package/extensions/forms/Field/Selection/Selection.d.ts +42 -15
  604. package/extensions/forms/Field/Selection/Selection.js +90 -28
  605. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  606. package/extensions/forms/Field/Selection/SelectionDocs.js +10 -0
  607. package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  608. package/extensions/forms/Field/Toggle/Toggle.js +1 -1
  609. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  610. package/extensions/forms/FieldBlock/FieldBlock.js +3 -3
  611. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  612. package/extensions/forms/Form/Element/Element.js +9 -9
  613. package/extensions/forms/Form/Element/Element.js.map +1 -1
  614. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  615. package/extensions/forms/Form/Handler/Handler.js +3 -1
  616. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  617. package/extensions/forms/Form/Isolation/Isolation.d.ts +26 -5
  618. package/extensions/forms/Form/Isolation/Isolation.js +85 -27
  619. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  620. package/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -0
  621. package/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
  622. package/extensions/forms/Form/Isolation/IsolationDocs.js +11 -1
  623. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  624. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +13 -5
  625. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  626. package/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +10 -11
  627. package/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -1
  628. package/extensions/forms/Form/Section/Section.js +2 -2
  629. package/extensions/forms/Form/Section/Section.js.map +1 -1
  630. package/extensions/forms/Form/data-context/clearData.d.ts +1 -0
  631. package/extensions/forms/Form/data-context/clearData.js +10 -0
  632. package/extensions/forms/Form/data-context/clearData.js.map +1 -0
  633. package/extensions/forms/Form/index.d.ts +1 -0
  634. package/extensions/forms/Form/index.js +1 -0
  635. package/extensions/forms/Form/index.js.map +1 -1
  636. package/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js +3 -3
  637. package/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js.map +1 -1
  638. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +2 -2
  639. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  640. package/extensions/forms/Iterate/Array/Array.js +7 -5
  641. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  642. package/extensions/forms/Iterate/Array/types.d.ts +1 -4
  643. package/extensions/forms/Iterate/Array/types.js.map +1 -1
  644. package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +1 -3
  645. package/extensions/forms/Iterate/EditContainer/EditContainer.js +26 -20
  646. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  647. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +10 -0
  648. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  649. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +44 -14
  650. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  651. package/{es/extensions/forms/Iterate/IterateElementContext.d.ts → extensions/forms/Iterate/IterateItemContext.d.ts} +3 -3
  652. package/extensions/forms/Iterate/IterateItemContext.js +4 -0
  653. package/extensions/forms/Iterate/IterateItemContext.js.map +1 -0
  654. package/extensions/forms/Iterate/PushButton/PushButton.js +3 -3
  655. package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  656. package/extensions/forms/Iterate/PushButton/PushButtonDocs.js +5 -0
  657. package/extensions/forms/Iterate/PushButton/PushButtonDocs.js.map +1 -1
  658. package/extensions/forms/Iterate/PushContainer/OpenButton.d.ts +4 -0
  659. package/extensions/forms/Iterate/PushContainer/OpenButton.js +32 -0
  660. package/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -0
  661. package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +37 -0
  662. package/extensions/forms/Iterate/PushContainer/PushContainer.js +83 -0
  663. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -0
  664. package/extensions/forms/Iterate/PushContainer/PushContainerContext.d.ts +11 -0
  665. package/extensions/forms/Iterate/PushContainer/PushContainerContext.js +6 -0
  666. package/extensions/forms/Iterate/PushContainer/PushContainerContext.js.map +1 -0
  667. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.d.ts +3 -0
  668. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +34 -0
  669. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -0
  670. package/extensions/forms/Iterate/PushContainer/index.d.ts +2 -0
  671. package/extensions/forms/Iterate/PushContainer/index.js +3 -0
  672. package/extensions/forms/Iterate/PushContainer/index.js.map +1 -0
  673. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +4 -4
  674. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  675. package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +4 -0
  676. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +15 -6
  677. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  678. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  679. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  680. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +3 -3
  681. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  682. package/extensions/forms/Iterate/hooks/useItem.d.ts +1 -0
  683. package/extensions/forms/Iterate/hooks/useItem.js +9 -0
  684. package/extensions/forms/Iterate/hooks/useItem.js.map +1 -0
  685. package/extensions/forms/Iterate/index.d.ts +3 -1
  686. package/extensions/forms/Iterate/index.js +3 -1
  687. package/extensions/forms/Iterate/index.js.map +1 -1
  688. package/extensions/forms/Iterate/style/dnb-iterate.css +1 -1
  689. package/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -1
  690. package/extensions/forms/Iterate/style/dnb-iterate.scss +1 -1
  691. package/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +19 -0
  692. package/extensions/forms/Value/ArraySelection/ArraySelection.js +70 -0
  693. package/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -0
  694. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.d.ts +2 -0
  695. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +8 -0
  696. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -0
  697. package/extensions/forms/Value/ArraySelection/index.d.ts +2 -0
  698. package/extensions/forms/Value/ArraySelection/index.js +3 -0
  699. package/extensions/forms/Value/ArraySelection/index.js.map +1 -0
  700. package/extensions/forms/Value/Selection/Selection.d.ts +9 -0
  701. package/extensions/forms/Value/Selection/Selection.js +48 -0
  702. package/extensions/forms/Value/Selection/Selection.js.map +1 -0
  703. package/extensions/forms/Value/Selection/SelectionDocs.d.ts +2 -0
  704. package/extensions/forms/Value/Selection/SelectionDocs.js +8 -0
  705. package/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -0
  706. package/extensions/forms/Value/Selection/index.d.ts +2 -0
  707. package/extensions/forms/Value/Selection/index.js +3 -0
  708. package/extensions/forms/Value/Selection/index.js.map +1 -0
  709. package/extensions/forms/Value/ValueDocs.js +6 -1
  710. package/extensions/forms/Value/ValueDocs.js.map +1 -1
  711. package/extensions/forms/Value/index.d.ts +2 -0
  712. package/extensions/forms/Value/index.js +2 -0
  713. package/extensions/forms/Value/index.js.map +1 -1
  714. package/extensions/forms/ValueBlock/ValueBlock.js +3 -3
  715. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  716. package/extensions/forms/Wizard/Container/WizardContainer.js +27 -11
  717. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  718. package/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  719. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  720. package/extensions/forms/constants/locales/en-GB.d.ts +7 -0
  721. package/extensions/forms/constants/locales/en-GB.js +7 -0
  722. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  723. package/extensions/forms/constants/locales/en-US.d.ts +7 -0
  724. package/extensions/forms/constants/locales/index.d.ts +14 -0
  725. package/extensions/forms/constants/locales/nb-NO.d.ts +7 -0
  726. package/extensions/forms/constants/locales/nb-NO.js +7 -0
  727. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  728. package/extensions/forms/hooks/DataValueDocs.js +4 -4
  729. package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  730. package/extensions/forms/hooks/useDataValue.d.ts +2 -0
  731. package/extensions/forms/hooks/useDataValue.js +29 -13
  732. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  733. package/extensions/forms/hooks/useExternalValue.js +4 -4
  734. package/extensions/forms/hooks/useExternalValue.js.map +1 -1
  735. package/extensions/forms/hooks/useFieldProps.d.ts +5 -5
  736. package/extensions/forms/hooks/useFieldProps.js +49 -31
  737. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  738. package/extensions/forms/hooks/usePath.js +2 -2
  739. package/extensions/forms/hooks/usePath.js.map +1 -1
  740. package/extensions/forms/hooks/useValueProps.js +4 -1
  741. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  742. package/extensions/forms/style/dnb-forms.css +1 -1
  743. package/extensions/forms/style/dnb-forms.min.css +1 -1
  744. package/extensions/forms/types.d.ts +20 -7
  745. package/extensions/forms/types.js.map +1 -1
  746. package/package.json +1 -1
  747. package/shared/Eufemia.d.ts +1 -1
  748. package/shared/Eufemia.js +2 -2
  749. package/shared/Eufemia.js.map +1 -1
  750. package/shared/helpers/isAsync.js +2 -2
  751. package/shared/helpers/isAsync.js.map +1 -1
  752. package/shared/locales/en-GB.d.ts +1 -0
  753. package/shared/locales/en-GB.js +1 -0
  754. package/shared/locales/en-GB.js.map +1 -1
  755. package/shared/locales/en-US.d.ts +1 -0
  756. package/shared/locales/index.d.ts +2 -0
  757. package/shared/locales/nb-NO.d.ts +1 -0
  758. package/shared/locales/nb-NO.js +2 -1
  759. package/shared/locales/nb-NO.js.map +1 -1
  760. package/shared/useTheme.d.ts +4 -10
  761. package/shared/useTheme.js +7 -5
  762. package/shared/useTheme.js.map +1 -1
  763. package/style/core/scopes.scss +1 -1
  764. package/style/dnb-ui-basis.css +1 -1
  765. package/style/dnb-ui-basis.min.css +1 -1
  766. package/style/dnb-ui-body.css +1 -1
  767. package/style/dnb-ui-body.min.css +1 -1
  768. package/style/dnb-ui-components.css +16 -1
  769. package/style/dnb-ui-components.min.css +2 -2
  770. package/style/dnb-ui-core.css +1 -1
  771. package/style/dnb-ui-core.min.css +1 -1
  772. package/style/dnb-ui-extensions.css +1 -1
  773. package/style/dnb-ui-extensions.min.css +1 -1
  774. package/style/dnb-ui-forms.css +1 -1
  775. package/style/dnb-ui-forms.min.css +1 -1
  776. package/style/themes/theme-eiendom/eiendom-theme-components.css +17 -2
  777. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  778. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
  779. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  780. package/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  781. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  782. package/style/themes/theme-sbanken/sbanken-theme-components.css +17 -2
  783. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  784. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
  785. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  786. package/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  787. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  788. package/style/themes/theme-ui/ui-theme-components.css +17 -2
  789. package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  790. package/style/themes/theme-ui/ui-theme-extensions.css +1 -1
  791. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  792. package/style/themes/theme-ui/ui-theme-forms.css +1 -1
  793. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  794. package/umd/dnb-ui-basis.min.js +1 -1
  795. package/umd/dnb-ui-components.min.js +1 -1
  796. package/umd/dnb-ui-elements.min.js +1 -1
  797. package/umd/dnb-ui-extensions.min.js +5 -5
  798. package/umd/dnb-ui-lib.min.js +1 -1
  799. package/cjs/extensions/forms/Iterate/IterateElementContext.js.map +0 -1
  800. package/es/extensions/forms/Iterate/IterateElementContext.js +0 -4
  801. package/es/extensions/forms/Iterate/IterateElementContext.js.map +0 -1
  802. package/extensions/forms/Iterate/IterateElementContext.js +0 -4
  803. package/extensions/forms/Iterate/IterateElementContext.js.map +0 -1
@@ -77,7 +77,7 @@ export type ButtonProps = {
77
77
  */
78
78
  variant?: ButtonVariant;
79
79
  /**
80
- * The size of the button. For now there is "small", "medium", "default" and "large".
80
+ * The size of the button. For now there is `small`, `medium`, `default` and `large`.
81
81
  */
82
82
  size?: ButtonSize;
83
83
  /**
@@ -29,8 +29,8 @@ export default class Button extends React.PureComponent {
29
29
  }
30
30
  constructor(props) {
31
31
  super(props);
32
- _defineProperty(this, "onClickHandler", event => {
33
- const afterContent = dispatchCustomElementEvent(this, 'on_click', {
32
+ _defineProperty(this, "getOnClickHandler", src => event => {
33
+ const afterContent = dispatchCustomElementEvent(src, 'on_click', {
34
34
  event
35
35
  });
36
36
  if (afterContent && React.isValidElement(afterContent)) {
@@ -135,8 +135,8 @@ export default class Button extends React.PureComponent {
135
135
  id: this._id,
136
136
  disabled: isTrue(disabled)
137
137
  }, attributes);
138
- if (this.props.on_click || this.props.onClick) {
139
- params.onClick = this.onClickHandler;
138
+ if (props.on_click || props.onClick) {
139
+ params.onClick = this.getOnClickHandler(props);
140
140
  }
141
141
  if (Element !== Anchor && !params.type) {
142
142
  params.type = params.type === '' ? undefined : 'button';
@@ -240,7 +240,8 @@ Button.defaultProps = {
240
240
  innerRef: null,
241
241
  children: null,
242
242
  element: null,
243
- on_click: null
243
+ on_click: null,
244
+ onClick: null
244
245
  };
245
246
  function Content({
246
247
  title,
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["React","PropTypes","classnames","Context","warn","makeUniqueId","isTrue","extendPropsWithContextInClassComponent","validateDOMAttributes","processChildren","getStatusState","dispatchCustomElementEvent","spacingPropTypes","createSpacingClasses","skeletonDOMAttributes","createSkeletonClass","pickFormElementProps","IconPrimary","FormStatus","Anchor","pickIcon","opensNewTab","launch","Tooltip","buttonVariantPropType","variant","oneOf","Button","PureComponent","getContent","props","constructor","_defineProperty","event","afterContent","isValidElement","setState","_id","id","status","tooltip","_ref","createRef","state","componentDidMount","innerRef","current","inner_ref","render","_this$context","_this$context2","_this$context3","_this$context4","_this$context4$theme","defaultProps","skeleton","context","FormRow","formElement","class","classProp","className","size","title","custom_content","status_state","status_props","status_no_animation","globalStatus","disabled","text","_text","icon","_icon","icon_position","icon_size","wrap","bounding","stretch","element","attributes","_objectWithoutProperties","_excluded","showStatus","usedVariant","usedSize","iconSize","content","isIconOnly","Boolean","Element","href","to","omitClass","target","classes","theme","darkBackground","params","_objectSpread","on_click","onClick","onClickHandler","type","undefined","createElement","Fragment","_extends","ref","Content","show","label","text_id","no_animation","targetElement","process","env","NODE_ENV","propTypes","oneOfType","string","node","func","number","bool","object","shape","message","rel","children","_span","key","_span2","_span3","array","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/button/Button.js"],"sourcesContent":["/**\n * Web Button Component\n *\n * This is a legacy component.\n * For referencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport Context from '../../shared/Context'\nimport {\n warn,\n makeUniqueId,\n isTrue,\n extendPropsWithContextInClassComponent,\n validateDOMAttributes,\n processChildren,\n getStatusState,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport IconPrimary from '../icon-primary/IconPrimary'\nimport FormStatus from '../form-status/FormStatus'\nimport Anchor, { pickIcon, opensNewTab } from '../anchor/Anchor'\nimport { launch } from '../../icons'\nimport Tooltip from '../tooltip/Tooltip'\n\nexport const buttonVariantPropType = {\n variant: PropTypes.oneOf([\n 'primary',\n 'secondary',\n 'tertiary',\n 'signal',\n\n /**\n * For internal use only (as of now)\n */\n 'unstyled',\n ]),\n}\n\n/**\n * The button component should be used as the call-to-action in a form, or as a user interaction mechanism. Generally speaking, a button should not be used when a link would do the trick. Exceptions are made at times when it is used as a navigation element in the action-nav element.\n */\nexport default class Button extends React.PureComponent {\n static contextType = Context\n\n static getContent(props) {\n return processChildren(props)\n }\n\n constructor(props) {\n super(props)\n\n this._id =\n props.id || ((props.status || props.tooltip) && makeUniqueId()) // cause we need an id anyway\n this._ref = React.createRef()\n\n this.state = { afterContent: null }\n }\n\n componentDidMount() {\n if (this.props.innerRef) {\n typeof this.props.innerRef === 'function'\n ? this.props.innerRef(this._ref.current)\n : (this.props.innerRef.current = this._ref.current)\n }\n if (this.props.inner_ref) {\n typeof this.props.innerRef === 'function'\n ? this.props.inner_ref(this._ref.current)\n : (this.props.inner_ref.current = this._ref.current)\n }\n }\n\n onClickHandler = (event) => {\n const afterContent = dispatchCustomElementEvent(this, 'on_click', {\n event,\n })\n if (afterContent && React.isValidElement(afterContent)) {\n this.setState({\n afterContent,\n })\n }\n }\n\n render() {\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n Button.defaultProps,\n { skeleton: this.context?.skeleton },\n // Deprecated – can be removed in v11\n pickFormElementProps(this.context?.FormRow),\n pickFormElementProps(this.context?.formElement),\n this.context.Button\n )\n\n const {\n class: classProp, // @deprecated – can be removed in v11\n className,\n variant,\n size,\n title,\n custom_content,\n tooltip,\n status,\n status_state,\n status_props,\n status_no_animation,\n globalStatus,\n id, // eslint-disable-line\n disabled,\n text: _text, // eslint-disable-line\n icon: _icon, // eslint-disable-line\n icon_position,\n icon_size,\n wrap,\n bounding, // eslint-disable-line\n stretch,\n skeleton,\n element,\n inner_ref, // eslint-disable-line\n innerRef, // eslint-disable-line\n ...attributes\n } = props\n\n const showStatus = getStatusState(status)\n\n let { text, icon } = props\n let usedVariant = variant\n let usedSize = size\n let iconSize = icon_size\n const content = Button.getContent(this.props)\n\n if (\n variant === 'tertiary' &&\n (text || content) &&\n !icon &&\n icon !== false\n ) {\n warn(\n `Icon required: A Tertiary Button requires an icon to be WCAG compliant in most cases, because variant tertiary has no underline.\n(Override this warning using icon={false}, or consider using one of the other variants)`\n )\n }\n\n // if only has Icon, then resize it and define it as secondary\n const isIconOnly = Boolean(!text && !content && icon)\n if (isIconOnly) {\n if (!usedVariant) {\n usedVariant = 'secondary'\n }\n if (!iconSize && (usedSize === 'default' || usedSize === 'large')) {\n iconSize = 'medium'\n }\n if (!usedSize) {\n usedSize = 'medium'\n }\n } else if (content) {\n if (!usedVariant) {\n usedVariant = 'primary'\n }\n if (!usedSize) {\n usedSize = 'default'\n }\n }\n if (!iconSize && variant === 'tertiary' && icon_position === 'top') {\n iconSize = 'medium'\n }\n\n const Element = element\n ? element\n : props.href || props.to\n ? Anchor\n : 'button'\n if (Element === Anchor) {\n attributes.omitClass = true\n if (opensNewTab(props.target, props.href) && !icon) {\n icon = launch\n }\n }\n\n const classes = classnames(\n 'dnb-button',\n `dnb-button--${usedVariant || 'primary'}`,\n usedSize && usedSize !== 'default' && `dnb-button--size-${usedSize}`,\n this.context?.theme?.darkBackground &&\n `dnb-button--on-dark-background`,\n icon && `dnb-button--icon-position-${icon_position}`,\n isTrue(stretch) && 'dnb-button--stretch',\n icon && iconSize && `dnb-button--icon-size-${iconSize}`,\n (text || content || custom_content) && 'dnb-button--has-text',\n icon && 'dnb-button--has-icon',\n wrap && 'dnb-button--wrap',\n status && `dnb-button__status--${status_state}`,\n createSkeletonClass(\n variant === 'tertiary' ? 'font' : 'shape',\n skeleton,\n this.context\n ),\n createSpacingClasses(props),\n classProp, // @deprecated – can be removed in v11\n className,\n props.href || props.to ? '' : null, // dnb-anchor--no-underline dnb-anchor--no-hover\n Element === Anchor && 'dnb-anchor--no-style'\n )\n\n const params = {\n className: classes,\n title,\n id: this._id,\n disabled: isTrue(disabled),\n ...attributes,\n }\n\n if (this.props.on_click || this.props.onClick) {\n params.onClick = this.onClickHandler\n }\n\n if (Element !== Anchor && !params.type) {\n params.type = params.type === '' ? undefined : 'button'\n }\n\n skeletonDOMAttributes(params, skeleton, this.context)\n\n // also used for code markup simulation\n validateDOMAttributes(this.props, params)\n\n return (\n <>\n <Element ref={this._ref} {...params}>\n <Content\n {...this.props}\n icon={icon}\n icon_size={iconSize}\n content={text || content}\n custom_content={custom_content}\n isIconOnly={isIconOnly}\n skeleton={isTrue(skeleton)}\n />\n </Element>\n\n {this.state.afterContent}\n\n <FormStatus\n show={showStatus}\n id={this._id + '-form-status'}\n globalStatus={globalStatus}\n label={text}\n text={status}\n state={status_state}\n text_id={this._id + '-status'} // used for \"aria-describedby\"\n no_animation={status_no_animation}\n skeleton={skeleton}\n {...status_props}\n />\n\n {tooltip && this._ref && (\n <Tooltip\n id={this._id + '-tooltip'}\n targetElement={this._ref}\n tooltip={tooltip}\n />\n )}\n </>\n )\n }\n}\n\nButton.propTypes = {\n text: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n type: PropTypes.string,\n title: PropTypes.node,\n variant: buttonVariantPropType.variant,\n size: PropTypes.oneOf(['default', 'small', 'medium', 'large']),\n icon: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n PropTypes.func,\n ]),\n icon_position: PropTypes.oneOf(['left', 'right', 'top']),\n icon_size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n tooltip: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n status: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.func,\n PropTypes.node,\n ]),\n status_state: PropTypes.string,\n status_props: PropTypes.object,\n status_no_animation: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n globalStatus: PropTypes.shape({\n id: PropTypes.string,\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n }),\n id: PropTypes.string,\n href: PropTypes.string,\n target: PropTypes.string,\n rel: PropTypes.string,\n to: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func,\n ]),\n custom_content: PropTypes.node,\n wrap: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n bounding: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n stretch: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n disabled: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n inner_ref: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n className: PropTypes.string,\n /**\n * @deprecated – use className instead. Will be removed in v11.\n */\n class: PropTypes.string,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n element: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.object,\n PropTypes.node,\n ]),\n\n ...spacingPropTypes,\n\n on_click: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n}\n\nButton.defaultProps = {\n type: null, // set the type because of the anchor/href situation – can be made more smart in future\n text: null,\n variant: null,\n size: null,\n title: null,\n icon: null,\n icon_position: 'right',\n icon_size: null,\n href: null,\n target: null,\n rel: null,\n to: null,\n id: null,\n custom_content: null,\n wrap: null,\n bounding: null,\n stretch: null,\n skeleton: null,\n disabled: null,\n tooltip: null,\n status: null,\n status_state: 'error',\n status_props: null,\n status_no_animation: null,\n globalStatus: null,\n inner_ref: null,\n\n className: null,\n /**\n * @deprecated – use className instead. Will be removed in v11.\n */\n class: null,\n innerRef: null,\n children: null,\n element: null,\n\n on_click: null,\n}\n\nfunction Content({\n title,\n content,\n custom_content,\n icon,\n icon_size,\n bounding,\n skeleton,\n isIconOnly,\n}) {\n return (\n <>\n {isTrue(bounding) && (\n <span key=\"button-bounding\" className=\"dnb-button__bounding\" />\n )}\n\n {custom_content && (\n <React.Fragment key=\"button-custom-content\">\n {custom_content}\n </React.Fragment>\n )}\n\n {content && (\n <>\n <span\n key=\"button-alignment\"\n className=\"dnb-button__alignment\"\n aria-hidden\n >\n &zwnj;\n </span>\n <span\n key=\"button-text\"\n className=\"dnb-button__text dnb-skeleton--show-font\"\n >\n {content}\n </span>\n </>\n )}\n\n {\n // on empty text, use a zero-width non-joiner\n // so the icon button gets vertical aligned\n // we need the dnb-button__text for alignment\n !content && icon && (\n <span\n key=\"button-alignment\"\n className=\"dnb-button__alignment\"\n aria-hidden\n >\n &zwnj;\n </span>\n )\n }\n\n {icon &&\n (pickIcon(icon, 'dnb-button__icon') || (\n <IconPrimary\n key=\"button-icon\"\n className=\"dnb-button__icon\"\n icon={icon}\n size={icon_size}\n aria-hidden={isIconOnly && !title ? null : true}\n skeleton={skeleton}\n />\n ))}\n </>\n )\n}\n\nContent.propTypes = {\n title: PropTypes.node,\n custom_content: PropTypes.node,\n content: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array,\n PropTypes.node,\n ]),\n icon: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n PropTypes.func,\n ]),\n icon_size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n bounding: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n skeleton: PropTypes.bool,\n isIconOnly: PropTypes.bool,\n}\n\nContent.defaultProps = {\n custom_content: null,\n title: null,\n content: null,\n icon: null,\n icon_size: 'default',\n bounding: null,\n skeleton: null,\n isIconOnly: null,\n}\n\nButton._formElement = true\nButton._supportsSpacingProps = true\n"],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","names":["React","PropTypes","classnames","Context","warn","makeUniqueId","isTrue","extendPropsWithContextInClassComponent","validateDOMAttributes","processChildren","getStatusState","dispatchCustomElementEvent","spacingPropTypes","createSpacingClasses","skeletonDOMAttributes","createSkeletonClass","pickFormElementProps","IconPrimary","FormStatus","Anchor","pickIcon","opensNewTab","launch","Tooltip","buttonVariantPropType","variant","oneOf","Button","PureComponent","getContent","props","constructor","_defineProperty","src","event","afterContent","isValidElement","setState","_id","id","status","tooltip","_ref","createRef","state","componentDidMount","innerRef","current","inner_ref","render","_this$context","_this$context2","_this$context3","_this$context4","_this$context4$theme","defaultProps","skeleton","context","FormRow","formElement","class","classProp","className","size","title","custom_content","status_state","status_props","status_no_animation","globalStatus","disabled","text","_text","icon","_icon","icon_position","icon_size","wrap","bounding","stretch","element","attributes","_objectWithoutProperties","_excluded","showStatus","usedVariant","usedSize","iconSize","content","isIconOnly","Boolean","Element","href","to","omitClass","target","classes","theme","darkBackground","params","_objectSpread","on_click","onClick","getOnClickHandler","type","undefined","createElement","Fragment","_extends","ref","Content","show","label","text_id","no_animation","targetElement","process","env","NODE_ENV","propTypes","oneOfType","string","node","func","number","bool","object","shape","message","rel","children","_span","key","_span2","_span3","array","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/button/Button.js"],"sourcesContent":["/**\n * Web Button Component\n *\n * This is a legacy component.\n * For referencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport Context from '../../shared/Context'\nimport {\n warn,\n makeUniqueId,\n isTrue,\n extendPropsWithContextInClassComponent,\n validateDOMAttributes,\n processChildren,\n getStatusState,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport IconPrimary from '../icon-primary/IconPrimary'\nimport FormStatus from '../form-status/FormStatus'\nimport Anchor, { pickIcon, opensNewTab } from '../anchor/Anchor'\nimport { launch } from '../../icons'\nimport Tooltip from '../tooltip/Tooltip'\n\nexport const buttonVariantPropType = {\n variant: PropTypes.oneOf([\n 'primary',\n 'secondary',\n 'tertiary',\n 'signal',\n\n /**\n * For internal use only (as of now)\n */\n 'unstyled',\n ]),\n}\n\n/**\n * The button component should be used as the call-to-action in a form, or as a user interaction mechanism. Generally speaking, a button should not be used when a link would do the trick. Exceptions are made at times when it is used as a navigation element in the action-nav element.\n */\nexport default class Button extends React.PureComponent {\n static contextType = Context\n\n static getContent(props) {\n return processChildren(props)\n }\n\n constructor(props) {\n super(props)\n\n this._id =\n props.id || ((props.status || props.tooltip) && makeUniqueId()) // cause we need an id anyway\n this._ref = React.createRef()\n\n this.state = { afterContent: null }\n }\n\n componentDidMount() {\n if (this.props.innerRef) {\n typeof this.props.innerRef === 'function'\n ? this.props.innerRef(this._ref.current)\n : (this.props.innerRef.current = this._ref.current)\n }\n if (this.props.inner_ref) {\n typeof this.props.innerRef === 'function'\n ? this.props.inner_ref(this._ref.current)\n : (this.props.inner_ref.current = this._ref.current)\n }\n }\n\n getOnClickHandler = (src) => (event) => {\n const afterContent = dispatchCustomElementEvent(src, 'on_click', {\n event,\n })\n if (afterContent && React.isValidElement(afterContent)) {\n this.setState({\n afterContent,\n })\n }\n }\n\n render() {\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n Button.defaultProps,\n { skeleton: this.context?.skeleton },\n // Deprecated – can be removed in v11\n pickFormElementProps(this.context?.FormRow),\n pickFormElementProps(this.context?.formElement),\n this.context.Button\n )\n\n const {\n class: classProp, // @deprecated – can be removed in v11\n className,\n variant,\n size,\n title,\n custom_content,\n tooltip,\n status,\n status_state,\n status_props,\n status_no_animation,\n globalStatus,\n id, // eslint-disable-line\n disabled,\n text: _text, // eslint-disable-line\n icon: _icon, // eslint-disable-line\n icon_position,\n icon_size,\n wrap,\n bounding, // eslint-disable-line\n stretch,\n skeleton,\n element,\n inner_ref, // eslint-disable-line\n innerRef, // eslint-disable-line\n ...attributes\n } = props\n\n const showStatus = getStatusState(status)\n\n let { text, icon } = props\n let usedVariant = variant\n let usedSize = size\n let iconSize = icon_size\n const content = Button.getContent(this.props)\n\n if (\n variant === 'tertiary' &&\n (text || content) &&\n !icon &&\n icon !== false\n ) {\n warn(\n `Icon required: A Tertiary Button requires an icon to be WCAG compliant in most cases, because variant tertiary has no underline.\n(Override this warning using icon={false}, or consider using one of the other variants)`\n )\n }\n\n // if only has Icon, then resize it and define it as secondary\n const isIconOnly = Boolean(!text && !content && icon)\n if (isIconOnly) {\n if (!usedVariant) {\n usedVariant = 'secondary'\n }\n if (!iconSize && (usedSize === 'default' || usedSize === 'large')) {\n iconSize = 'medium'\n }\n if (!usedSize) {\n usedSize = 'medium'\n }\n } else if (content) {\n if (!usedVariant) {\n usedVariant = 'primary'\n }\n if (!usedSize) {\n usedSize = 'default'\n }\n }\n if (!iconSize && variant === 'tertiary' && icon_position === 'top') {\n iconSize = 'medium'\n }\n\n const Element = element\n ? element\n : props.href || props.to\n ? Anchor\n : 'button'\n if (Element === Anchor) {\n attributes.omitClass = true\n if (opensNewTab(props.target, props.href) && !icon) {\n icon = launch\n }\n }\n\n const classes = classnames(\n 'dnb-button',\n `dnb-button--${usedVariant || 'primary'}`,\n usedSize && usedSize !== 'default' && `dnb-button--size-${usedSize}`,\n this.context?.theme?.darkBackground &&\n `dnb-button--on-dark-background`,\n icon && `dnb-button--icon-position-${icon_position}`,\n isTrue(stretch) && 'dnb-button--stretch',\n icon && iconSize && `dnb-button--icon-size-${iconSize}`,\n (text || content || custom_content) && 'dnb-button--has-text',\n icon && 'dnb-button--has-icon',\n wrap && 'dnb-button--wrap',\n status && `dnb-button__status--${status_state}`,\n createSkeletonClass(\n variant === 'tertiary' ? 'font' : 'shape',\n skeleton,\n this.context\n ),\n createSpacingClasses(props),\n classProp, // @deprecated – can be removed in v11\n className,\n props.href || props.to ? '' : null, // dnb-anchor--no-underline dnb-anchor--no-hover\n Element === Anchor && 'dnb-anchor--no-style'\n )\n\n const params = {\n className: classes,\n title,\n id: this._id,\n disabled: isTrue(disabled),\n ...attributes,\n }\n\n if (props.on_click || props.onClick) {\n params.onClick = this.getOnClickHandler(props)\n }\n\n if (Element !== Anchor && !params.type) {\n params.type = params.type === '' ? undefined : 'button'\n }\n\n skeletonDOMAttributes(params, skeleton, this.context)\n\n // also used for code markup simulation\n validateDOMAttributes(this.props, params)\n\n return (\n <>\n <Element ref={this._ref} {...params}>\n <Content\n {...this.props}\n icon={icon}\n icon_size={iconSize}\n content={text || content}\n custom_content={custom_content}\n isIconOnly={isIconOnly}\n skeleton={isTrue(skeleton)}\n />\n </Element>\n\n {this.state.afterContent}\n\n <FormStatus\n show={showStatus}\n id={this._id + '-form-status'}\n globalStatus={globalStatus}\n label={text}\n text={status}\n state={status_state}\n text_id={this._id + '-status'} // used for \"aria-describedby\"\n no_animation={status_no_animation}\n skeleton={skeleton}\n {...status_props}\n />\n\n {tooltip && this._ref && (\n <Tooltip\n id={this._id + '-tooltip'}\n targetElement={this._ref}\n tooltip={tooltip}\n />\n )}\n </>\n )\n }\n}\n\nButton.propTypes = {\n text: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n type: PropTypes.string,\n title: PropTypes.node,\n variant: buttonVariantPropType.variant,\n size: PropTypes.oneOf(['default', 'small', 'medium', 'large']),\n icon: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n PropTypes.func,\n ]),\n icon_position: PropTypes.oneOf(['left', 'right', 'top']),\n icon_size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n tooltip: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n status: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.func,\n PropTypes.node,\n ]),\n status_state: PropTypes.string,\n status_props: PropTypes.object,\n status_no_animation: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n globalStatus: PropTypes.shape({\n id: PropTypes.string,\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n }),\n id: PropTypes.string,\n href: PropTypes.string,\n target: PropTypes.string,\n rel: PropTypes.string,\n to: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func,\n ]),\n custom_content: PropTypes.node,\n wrap: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n bounding: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n stretch: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n disabled: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n inner_ref: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n className: PropTypes.string,\n /**\n * @deprecated – use className instead. Will be removed in v11.\n */\n class: PropTypes.string,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n element: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.object,\n PropTypes.node,\n ]),\n\n ...spacingPropTypes,\n\n on_click: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n}\n\nButton.defaultProps = {\n type: null, // set the type because of the anchor/href situation – can be made more smart in future\n text: null,\n variant: null,\n size: null,\n title: null,\n icon: null,\n icon_position: 'right',\n icon_size: null,\n href: null,\n target: null,\n rel: null,\n to: null,\n id: null,\n custom_content: null,\n wrap: null,\n bounding: null,\n stretch: null,\n skeleton: null,\n disabled: null,\n tooltip: null,\n status: null,\n status_state: 'error',\n status_props: null,\n status_no_animation: null,\n globalStatus: null,\n inner_ref: null,\n\n className: null,\n /**\n * @deprecated – use className instead. Will be removed in v11.\n */\n class: null,\n innerRef: null,\n children: null,\n element: null,\n\n on_click: null,\n onClick: null,\n}\n\nfunction Content({\n title,\n content,\n custom_content,\n icon,\n icon_size,\n bounding,\n skeleton,\n isIconOnly,\n}) {\n return (\n <>\n {isTrue(bounding) && (\n <span key=\"button-bounding\" className=\"dnb-button__bounding\" />\n )}\n\n {custom_content && (\n <React.Fragment key=\"button-custom-content\">\n {custom_content}\n </React.Fragment>\n )}\n\n {content && (\n <>\n <span\n key=\"button-alignment\"\n className=\"dnb-button__alignment\"\n aria-hidden\n >\n &zwnj;\n </span>\n <span\n key=\"button-text\"\n className=\"dnb-button__text dnb-skeleton--show-font\"\n >\n {content}\n </span>\n </>\n )}\n\n {\n // on empty text, use a zero-width non-joiner\n // so the icon button gets vertical aligned\n // we need the dnb-button__text for alignment\n !content && icon && (\n <span\n key=\"button-alignment\"\n className=\"dnb-button__alignment\"\n aria-hidden\n >\n &zwnj;\n </span>\n )\n }\n\n {icon &&\n (pickIcon(icon, 'dnb-button__icon') || (\n <IconPrimary\n key=\"button-icon\"\n className=\"dnb-button__icon\"\n icon={icon}\n size={icon_size}\n aria-hidden={isIconOnly && !title ? null : true}\n skeleton={skeleton}\n />\n ))}\n </>\n )\n}\n\nContent.propTypes = {\n title: PropTypes.node,\n custom_content: PropTypes.node,\n content: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array,\n PropTypes.node,\n ]),\n icon: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n PropTypes.func,\n ]),\n icon_size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n bounding: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n skeleton: PropTypes.bool,\n isIconOnly: PropTypes.bool,\n}\n\nContent.defaultProps = {\n custom_content: null,\n title: null,\n content: null,\n icon: null,\n icon_size: 'default',\n bounding: null,\n skeleton: null,\n isIconOnly: null,\n}\n\nButton._formElement = true\nButton._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -243,7 +243,7 @@
243
243
  */
244
244
 
245
245
  // stylelint-disable no-descending-specificity
246
- // We prioritize categorisation and readability over specificity here
246
+ // We prioritize categorization and readability over specificity here
247
247
 
248
248
  /** Normal state **/
249
249
 
@@ -226,6 +226,10 @@ const useCallEvent = ({
226
226
  keyCode = event.data;
227
227
  isUnidentified = false;
228
228
  }
229
+ if (isUnidentified && event.key === '0') {
230
+ keyCode = '0';
231
+ isUnidentified = false;
232
+ }
229
233
  if (name === 'on_key_down' && !isUnidentified && maskParams !== null && maskParams !== void 0 && maskParams.disallowLeadingZeroes && (keyCode === '0' || keyCode === 'numpad 0' || value.replace(/[^\d]/g, '') === '' && decimalSeparators.test(keyCode))) {
230
234
  const testValue = (value.slice(0, selStart) + '0' + value.slice(selStart + 1, value.length)).replace(/[^\d]/g, '');
231
235
  if (/^0/.test(testValue)) {
@@ -1 +1 @@
1
- {"version":3,"file":"InputMaskedHooks.js","names":["React","classnames","cleanNumber","getCurrencySymbol","isTrue","dispatchCustomElementEvent","extendPropsWithContext","safeSetSelection","TextMask","createNumberMask","keycode","InputMaskedContext","isRequestingLocaleSupport","isRequestingNumberMask","correctNumberValue","handlePercentMask","handleCurrencyMask","handleNumberMask","correctCaretPosition","getSoftKeyboardAttributes","handleThousandsSeparator","handleDecimalSeparator","fromJSON","invisibleSpace","useLayoutEffect","window","useEffect","useFilteredProps","props","useContext","mask","number_mask","currency_mask","number_format","mask_options","as_currency","as_number","as_percent","locale","show_mask","show_guide","pipe","keep_char_positions","placeholder_char","attributes","_objectWithoutProperties","_excluded","htmlAttributes","Object","freeze","useTranslation","context","useLocalValue","maskParams","useNumberMaskParams","localValue","setLocalValue","useState","value","useNumberMask","useMask","numberMask","useMaskParams","placeholder","showMask","placeholderChar","showGuide","keepCharPositions","useInputElement","inner_ref","isFn","refHook","useRef","ref","current","inputElementRef","createElement","InputElement","params","innerRef","_extends","inputRef","inputElement","guide","className","useEventMapping","callEvent","useCallEvent","onBeforeInput","event","onFocus","onBlur","onMouseUp","onMouseDown","onKeyDown","onSubmit","onChange","on_focus","undefined","on_blur","on_key_down","on_submit","on_change","isNumberMask","decimalSeparators","isUnidentified","name","target","selStart","selectionStart","keyCode","which","data","disallowLeadingZeroes","replace","test","testValue","slice","length","preventDefault","decimalSymbol","hasDecimalSymbol","includes","allowedDecimals","decimalLimit","allowDecimal","charAtSelection","index","indexOf","thousandsSeparatorSymbol","num","prefix","suffix","decimalSeparator","thousandsSeparator","numberValue","Number","cleanedValue","String","charAt","runCorrectCaretPosition","__getCorrectCaretPosition","result","_currency_mask","_objectSpread","currency","_currency_mask2","currencyDisplay"],"sources":["../../../../src/components/input-masked/InputMaskedHooks.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport React 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// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\n/**\n * Takes all component properties and filters out all internal used properties\n *\n * @returns object {props, htmlAttributes}\n */\nexport const useFilteredProps = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n mask, // eslint-disable-line\n number_mask, // eslint-disable-line\n currency_mask, // eslint-disable-line\n number_format, // eslint-disable-line\n mask_options, // eslint-disable-line\n as_currency, // eslint-disable-line\n as_number, // eslint-disable-line\n as_percent, // eslint-disable-line\n locale, // eslint-disable-line\n show_mask, // eslint-disable-line\n show_guide, // eslint-disable-line\n pipe, // eslint-disable-line\n keep_char_positions, // eslint-disable-line\n placeholder_char, // eslint-disable-line\n\n // Get get rest of possible attributes\n ...attributes\n } = props\n\n return { props, htmlAttributes: Object.freeze(attributes) }\n}\n\n/**\n * Returns locale from either component or context\n *\n * @returns string\n */\nexport const useTranslation = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n\n let { locale } = props\n if (!locale && context?.locale) {\n locale = context.locale\n }\n\n return locale\n}\n\n/**\n * Handle internal value state\n *\n * It handles both the value state given as a prop form outside,\n * along with the current written and internal value.\n *\n * @returns object with internal value state and state setter\n */\nexport const useLocalValue = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n const maskParams = useNumberMaskParams() || {}\n const locale = useTranslation()\n\n const [localValue, setLocalValue] = React.useState(() =>\n correctNumberValue({\n locale,\n props,\n maskParams,\n })\n )\n\n /**\n * Use an effect here, just;\n * because when a property gets changed from outside\n */\n React.useEffect(() => {\n const value = correctNumberValue({\n localValue,\n locale,\n props,\n maskParams,\n })\n\n setLocalValue(value)\n\n // Do not set \"localValue\" and \"maskParams\" here\n }, [props, context, locale]) // eslint-disable-line\n\n return { localValue, setLocalValue }\n}\n\n/**\n * Create createNumberMask if number mask parameters exists\n *\n * @returns mask function\n */\nexport const useNumberMask = () => {\n const maskParams = useNumberMaskParams()\n const { props } = React.useContext(InputMaskedContext)\n\n if (!maskParams || !isRequestingNumberMask(props)) {\n return null\n }\n\n const mask = createNumberMask(maskParams)\n\n mask.maskParams = maskParams\n\n return mask\n}\n\n/**\n * Returns either internal mask or given property mask\n *\n * @returns mask function\n */\nexport const useMask = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const numberMask = useNumberMask()\n if (numberMask) {\n return numberMask\n }\n\n return props.mask\n}\n\n/**\n * Returns the final mask params\n *\n * @returns mask params\n */\nexport const useMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n keep_char_positions,\n show_guide,\n show_mask,\n placeholder_char,\n placeholder,\n } = props\n\n const mask = useMask()\n const maskParams = useNumberMaskParams() || {}\n\n maskParams.showMask = !placeholder && isTrue(show_mask)\n\n // Revalidated placeholder char to a zero width space\n maskParams.placeholderChar = placeholder_char\n if (typeof mask?.placeholderChar !== 'undefined') {\n maskParams.placeholderChar = mask.placeholderChar\n }\n if (maskParams.placeholderChar === null) {\n maskParams.placeholderChar = invisibleSpace\n }\n\n if (typeof mask?.showMask !== 'undefined') {\n maskParams.showMask = mask.showMask\n }\n\n maskParams.showGuide = isTrue(show_guide)\n maskParams.keepCharPositions = isTrue(keep_char_positions)\n\n return maskParams\n}\n\n/**\n * Handle the TextMask dependency\n *\n * @returns React Element\n */\nexport const useInputElement = () => {\n const { props } = React.useContext(InputMaskedContext)\n const { pipe, inner_ref } = props\n\n const mask = useMask()\n const { showMask, showGuide, placeholderChar, keepCharPositions } =\n useMaskParams()\n\n const isFn = typeof inner_ref === 'function'\n const refHook = React.useRef()\n const ref = (!isFn && inner_ref) || refHook\n\n useLayoutEffect(() => {\n if (isFn) {\n inner_ref?.(ref.current)\n }\n }, [inner_ref, isFn, ref])\n\n // Create the actual input element\n const inputElementRef = React.useRef(<input ref={ref} />)\n\n 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 = useTranslation()\n\n if (!isRequestingNumberMask(props)) {\n return { ...fromJSON(props.mask_options) }\n }\n\n let { number_mask, currency_mask, mask_options } = props\n const { as_number, as_percent, as_currency, value } = props\n\n mask_options = fromJSON(mask_options)\n number_mask = isTrue(number_mask) ? {} : fromJSON(number_mask)\n currency_mask = isTrue(currency_mask)\n ? {}\n : fromJSON(currency_mask, {\n currency: currency_mask,\n })\n if (!currency_mask?.currency) {\n delete currency_mask.currency\n }\n\n if (isRequestingLocaleSupport(props)) {\n const thousandsSeparatorSymbol = handleThousandsSeparator(locale)\n const decimalSymbol = handleDecimalSeparator(locale)\n\n if (isTrue(as_number) || isTrue(as_percent)) {\n number_mask = extendPropsWithContext(number_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n })\n } else if (as_currency) {\n currency_mask = extendPropsWithContext(currency_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n currency: getCurrencySymbol(\n locale,\n typeof as_currency === 'string' ? as_currency : null,\n currency_mask?.currencyDisplay,\n value\n ),\n })\n }\n }\n\n let maskParams = null\n\n if (number_mask) {\n maskParams = handleNumberMask({\n mask_options,\n number_mask,\n })\n\n if (isTrue(as_percent)) {\n maskParams = handlePercentMask({ props, locale, maskParams })\n }\n } else if (currency_mask) {\n maskParams = handleCurrencyMask({\n mask_options,\n currency_mask,\n })\n }\n\n return maskParams\n}\n"],"mappings":";;;;;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,WAAW,EACXC,iBAAiB,QACZ,8BAA8B;AACrC,SACEC,MAAM,EACNC,0BAA0B,EAC1BC,sBAAsB,QACjB,+BAA+B;AACtC,SAASC,gBAAgB,QAAQ,wCAAwC;AAEzE,OAAOC,QAAQ,MAAM,YAAY;AACjC,OAAOC,gBAAgB,MAAM,2BAA2B;AACxD,OAAOC,OAAO,MAAM,SAAS;AAC7B,OAAOC,kBAAkB,MAAM,sBAAsB;AAErD,SACEC,yBAAyB,EACzBC,sBAAsB,EACtBC,kBAAkB,EAClBC,iBAAiB,EACjBC,kBAAkB,EAClBC,gBAAgB,EAChBC,oBAAoB,EACpBC,yBAAyB,EACzBC,wBAAwB,EACxBC,sBAAsB,EACtBC,QAAQ,EACRC,cAAc,QACT,oBAAoB;AAG3B,MAAMC,eAAe,GACnB,OAAOC,MAAM,KAAK,WAAW,GAAGzB,KAAK,CAAC0B,SAAS,GAAG1B,KAAK,CAACwB,eAAe;AAOzE,OAAO,MAAMG,gBAAgB,GAAGA,CAAA,KAAM;EACpC,MAAM;IAAEC;EAAM,CAAC,GAAG5B,KAAK,CAAC6B,UAAU,CAAClB,kBAAkB,CAAC;EAEtD,MAAM;MACJmB,IAAI;MACJC,WAAW;MACXC,aAAa;MACbC,aAAa;MACbC,YAAY;MACZC,WAAW;MACXC,SAAS;MACTC,UAAU;MACVC,MAAM;MACNC,SAAS;MACTC,UAAU;MACVC,IAAI;MACJC,mBAAmB;MACnBC;IAIF,CAAC,GAAGf,KAAK;IADJgB,UAAU,GAAAC,wBAAA,CACXjB,KAAK,EAAAkB,SAAA;EAET,OAAO;IAAElB,KAAK;IAAEmB,cAAc,EAAEC,MAAM,CAACC,MAAM,CAACL,UAAU;EAAE,CAAC;AAC7D,CAAC;AAOD,OAAO,MAAMM,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAM;IAAEtB,KAAK;IAAEuB;EAAQ,CAAC,GAAGnD,KAAK,CAAC6B,UAAU,CAAClB,kBAAkB,CAAC;EAE/D,IAAI;IAAE2B;EAAO,CAAC,GAAGV,KAAK;EACtB,IAAI,CAACU,MAAM,IAAIa,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEb,MAAM,EAAE;IAC9BA,MAAM,GAAGa,OAAO,CAACb,MAAM;EACzB;EAEA,OAAOA,MAAM;AACf,CAAC;AAUD,OAAO,MAAMc,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAM;IAAExB,KAAK;IAAEuB;EAAQ,CAAC,GAAGnD,KAAK,CAAC6B,UAAU,CAAClB,kBAAkB,CAAC;EAC/D,MAAM0C,UAAU,GAAGC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC;EAC9C,MAAMhB,MAAM,GAAGY,cAAc,CAAC,CAAC;EAE/B,MAAM,CAACK,UAAU,EAAEC,aAAa,CAAC,GAAGxD,KAAK,CAACyD,QAAQ,CAAC,MACjD3C,kBAAkB,CAAC;IACjBwB,MAAM;IACNV,KAAK;IACLyB;EACF,CAAC,CACH,CAAC;EAMDrD,KAAK,CAAC0B,SAAS,CAAC,MAAM;IACpB,MAAMgC,KAAK,GAAG5C,kBAAkB,CAAC;MAC/ByC,UAAU;MACVjB,MAAM;MACNV,KAAK;MACLyB;IACF,CAAC,CAAC;IAEFG,aAAa,CAACE,KAAK,CAAC;EAGtB,CAAC,EAAE,CAAC9B,KAAK,EAAEuB,OAAO,EAAEb,MAAM,CAAC,CAAC;EAE5B,OAAO;IAAEiB,UAAU;IAAEC;EAAc,CAAC;AACtC,CAAC;AAOD,OAAO,MAAMG,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAMN,UAAU,GAAGC,mBAAmB,CAAC,CAAC;EACxC,MAAM;IAAE1B;EAAM,CAAC,GAAG5B,KAAK,CAAC6B,UAAU,CAAClB,kBAAkB,CAAC;EAEtD,IAAI,CAAC0C,UAAU,IAAI,CAACxC,sBAAsB,CAACe,KAAK,CAAC,EAAE;IACjD,OAAO,IAAI;EACb;EAEA,MAAME,IAAI,GAAGrB,gBAAgB,CAAC4C,UAAU,CAAC;EAEzCvB,IAAI,CAACuB,UAAU,GAAGA,UAAU;EAE5B,OAAOvB,IAAI;AACb,CAAC;AAOD,OAAO,MAAM8B,OAAO,GAAGA,CAAA,KAAM;EAC3B,MAAM;IAAEhC;EAAM,CAAC,GAAG5B,KAAK,CAAC6B,UAAU,CAAClB,kBAAkB,CAAC;EAEtD,MAAMkD,UAAU,GAAGF,aAAa,CAAC,CAAC;EAClC,IAAIE,UAAU,EAAE;IACd,OAAOA,UAAU;EACnB;EAEA,OAAOjC,KAAK,CAACE,IAAI;AACnB,CAAC;AAOD,OAAO,MAAMgC,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAM;IAAElC;EAAM,CAAC,GAAG5B,KAAK,CAAC6B,UAAU,CAAClB,kBAAkB,CAAC;EAEtD,MAAM;IACJ+B,mBAAmB;IACnBF,UAAU;IACVD,SAAS;IACTI,gBAAgB;IAChBoB;EACF,CAAC,GAAGnC,KAAK;EAET,MAAME,IAAI,GAAG8B,OAAO,CAAC,CAAC;EACtB,MAAMP,UAAU,GAAGC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC;EAE9CD,UAAU,CAACW,QAAQ,GAAG,CAACD,WAAW,IAAI3D,MAAM,CAACmC,SAAS,CAAC;EAGvDc,UAAU,CAACY,eAAe,GAAGtB,gBAAgB;EAC7C,IAAI,QAAOb,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEmC,eAAe,MAAK,WAAW,EAAE;IAChDZ,UAAU,CAACY,eAAe,GAAGnC,IAAI,CAACmC,eAAe;EACnD;EACA,IAAIZ,UAAU,CAACY,eAAe,KAAK,IAAI,EAAE;IACvCZ,UAAU,CAACY,eAAe,GAAG1C,cAAc;EAC7C;EAEA,IAAI,QAAOO,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEkC,QAAQ,MAAK,WAAW,EAAE;IACzCX,UAAU,CAACW,QAAQ,GAAGlC,IAAI,CAACkC,QAAQ;EACrC;EAEAX,UAAU,CAACa,SAAS,GAAG9D,MAAM,CAACoC,UAAU,CAAC;EACzCa,UAAU,CAACc,iBAAiB,GAAG/D,MAAM,CAACsC,mBAAmB,CAAC;EAE1D,OAAOW,UAAU;AACnB,CAAC;AAOD,OAAO,MAAMe,eAAe,GAAGA,CAAA,KAAM;EACnC,MAAM;IAAExC;EAAM,CAAC,GAAG5B,KAAK,CAAC6B,UAAU,CAAClB,kBAAkB,CAAC;EACtD,MAAM;IAAE8B,IAAI;IAAE4B;EAAU,CAAC,GAAGzC,KAAK;EAEjC,MAAME,IAAI,GAAG8B,OAAO,CAAC,CAAC;EACtB,MAAM;IAAEI,QAAQ;IAAEE,SAAS;IAAED,eAAe;IAAEE;EAAkB,CAAC,GAC/DL,aAAa,CAAC,CAAC;EAEjB,MAAMQ,IAAI,GAAG,OAAOD,SAAS,KAAK,UAAU;EAC5C,MAAME,OAAO,GAAGvE,KAAK,CAACwE,MAAM,CAAC,CAAC;EAC9B,MAAMC,GAAG,GAAI,CAACH,IAAI,IAAID,SAAS,IAAKE,OAAO;EAE3C/C,eAAe,CAAC,MAAM;IACpB,IAAI8C,IAAI,EAAE;MACRD,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAGI,GAAG,CAACC,OAAO,CAAC;IAC1B;EACF,CAAC,EAAE,CAACL,SAAS,EAAEC,IAAI,EAAEG,GAAG,CAAC,CAAC;EAG1B,MAAME,eAAe,GAAG3E,KAAK,CAACwE,MAAM,CAACxE,KAAA,CAAA4E,aAAA;IAAOH,GAAG,EAAEA;EAAI,CAAE,CAAC,CAAC;EAEzD,MAAMI,YAAY,GAAGA,CAACC,MAAM,EAAEC,QAAQ,KAAK;IAEzCA,QAAQ,CAACL,OAAO,GAAGD,GAAG,CAACC,OAAO;IAE9B,OACE1E,KAAA,CAAA4E,aAAA,CAACpE,QAAQ,EAAAwE,QAAA;MACPC,QAAQ,EAAER,GAAI;MACdS,YAAY,EAAEP,eAAe,CAACD,OAAQ;MACtCjC,IAAI,EAAEA,IAAK;MACXX,IAAI,EAAEA,IAAI,IAAI,EAAG;MACjBkC,QAAQ,EAAEA,QAAS;MACnBmB,KAAK,EAAEjB,SAAU;MACjBC,iBAAiB,EAAEA,iBAAkB;MACrCF,eAAe,EAAEA;IAAgB,GAC7B9C,yBAAyB,CAACW,IAAI,CAAC,EAC/BgD,MAAM;MACVM,SAAS,EAAEnF,UAAU,CACnB6E,MAAM,CAACM,SAAS,EAChBpB,QAAQ,IACNE,SAAS,IACTD,eAAe,IACfA,eAAe,KAAK1C,cAAc,IAClC,yBACJ;IAAE,EACH,CAAC;EAEN,CAAC;EACD,OAAOsD,YAAY;AACrB,CAAC;AASD,OAAO,MAAMQ,eAAe,GAAGA,CAAC;EAAE7B;AAAc,CAAC,KAAK;EACpD,MAAM8B,SAAS,GAAGC,YAAY,CAAC;IAAE/B;EAAc,CAAC,CAAC;EAEjD,OAAO;IACLgC,aAAa,EAAGC,KAAK,IAAKH,SAAS,CAAC;MAAEG;IAAM,CAAC,EAAE,iBAAiB,CAAC;IACjEC,OAAO,EAAGZ,MAAM,IAAKQ,SAAS,CAACR,MAAM,EAAE,UAAU,CAAC;IAClDa,MAAM,EAAGb,MAAM,IAAKQ,SAAS,CAACR,MAAM,EAAE,SAAS,CAAC;IAChDc,SAAS,EAAGH,KAAK,IAAKH,SAAS,CAAC;MAAEG;IAAM,CAAC,EAAE,aAAa,CAAC;IACzDI,WAAW,EAAGJ,KAAK,IAAKH,SAAS,CAAC;MAAEG;IAAM,CAAC,EAAE,eAAe,CAAC;IAC7DK,SAAS,EAAGhB,MAAM,IAAKQ,SAAS,CAACR,MAAM,EAAE,aAAa,CAAC;IACvDiB,QAAQ,EAAGjB,MAAM,IAAKQ,SAAS,CAACR,MAAM,EAAE,WAAW,CAAC;IACpDkB,QAAQ,EAAGlB,MAAM,IAAKQ,SAAS,CAACR,MAAM,EAAE,WAAW,CAAC;IAEpDmB,QAAQ,EAAEC,SAAS;IACnBC,OAAO,EAAED,SAAS;IAClBE,WAAW,EAAEF,SAAS;IACtBG,SAAS,EAAEH,SAAS;IACpBI,SAAS,EAAEJ;EACb,CAAC;AACH,CAAC;AASD,MAAMX,YAAY,GAAGA,CAAC;EAAE/B;AAAc,CAAC,KAAK;EAC1C,MAAM;IAAE5B;EAAM,CAAC,GAAG5B,KAAK,CAAC6B,UAAU,CAAClB,kBAAkB,CAAC;EACtD,MAAM0C,UAAU,GAAGS,aAAa,CAAC,CAAC;EAClC,MAAMyC,YAAY,GAAG5C,aAAa,CAAC,CAAC;EAGpC,MAAM6C,iBAAiB,GAAG,QAAQ;EAClC,IAAIC,cAAc,GAAG,KAAK;EAE1B,MAAMnB,SAAS,GAAGA,CAAC;IAAEG,KAAK;IAAE/B;EAAM,CAAC,EAAEgD,IAAI,KAAK;IAC5ChD,KAAK,GAAGA,KAAK,IAAI+B,KAAK,CAACkB,MAAM,CAACjD,KAAK;IACnC,MAAMkD,QAAQ,GAAGnB,KAAK,CAACkB,MAAM,CAACE,cAAc;IAC5C,IAAIC,OAAO,GAAGpG,OAAO,CAAC+E,KAAK,CAAC;IAG5B,IACEiB,IAAI,KAAK,aAAa,KACrBjB,KAAK,CAACsB,KAAK,KAAK,GAAG,IAAID,OAAO,KAAKZ,SAAS,CAAC,EAC9C;MACAO,cAAc,GAAG,IAAI;IACvB;IAIA,IACEA,cAAc,IACdC,IAAI,KAAK,iBAAiB,IAC1B,QAAOjB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEuB,IAAI,MAAK,WAAW,EAClC;MACAN,IAAI,GAAG,aAAa;MACpBI,OAAO,GAAGrB,KAAK,CAACuB,IAAI;MACpBP,cAAc,GAAG,KAAK;IACxB;IAGA,IACEC,IAAI,KAAK,aAAa,IACtB,CAACD,cAAc,IACfpD,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAE4D,qBAAqB,KAChCH,OAAO,KAAK,GAAG,IACdA,OAAO,KAAK,UAAU,IACrBpD,KAAK,CAACwD,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,EAAE,IACjCV,iBAAiB,CAACW,IAAI,CAACL,OAAO,CAAE,CAAC,EACrC;MACA,MAAMM,SAAS,GAAG,CAChB1D,KAAK,CAAC2D,KAAK,CAAC,CAAC,EAAET,QAAQ,CAAC,GACxB,GAAG,GACHlD,KAAK,CAAC2D,KAAK,CAACT,QAAQ,GAAG,CAAC,EAAElD,KAAK,CAAC4D,MAAM,CAAC,EACvCJ,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;MAEvB,IAAI,IAAI,CAACC,IAAI,CAACC,SAAS,CAAC,EAAE;QACxB3B,KAAK,CAAC8B,cAAc,CAAC,CAAC;MACxB;IACF;IAEA,IACEb,IAAI,KAAK,aAAa,IACtBH,YAAY,IACZ,CAACE,cAAc,IACfpD,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEmE,aAAa,EACzB;MACA,MAAMC,gBAAgB,GAAG/D,KAAK,CAACgE,QAAQ,CAACrE,UAAU,CAACmE,aAAa,CAAC;MACjE,MAAMG,eAAe,GACnBtE,UAAU,CAACuE,YAAY,GAAG,CAAC,IAAIvE,UAAU,CAACwE,YAAY,KAAK,KAAK;MAElE,IAAI,CAACF,eAAe,IAAInB,iBAAiB,CAACW,IAAI,CAACL,OAAO,CAAC,EAAE;QACvDrB,KAAK,CAAC8B,cAAc,CAAC,CAAC;MACxB;MAEA,MAAMO,eAAe,GAAGpE,KAAK,CAAC2D,KAAK,CAACT,QAAQ,EAAEA,QAAQ,GAAG,CAAC,CAAC;MAE3D,IAAIe,eAAe,EAAE;QAEnB,IAAIF,gBAAgB,IAAIjB,iBAAiB,CAACW,IAAI,CAACL,OAAO,CAAC,EAAE;UAEvD,IAAIN,iBAAiB,CAACW,IAAI,CAACW,eAAe,CAAC,EAAE;YAC3C,MAAMC,KAAK,GAAGrE,KAAK,CAACsE,OAAO,CAAC3E,UAAU,CAACmE,aAAa,CAAC;YACrD,IAAIO,KAAK,GAAG,CAAC,CAAC,EAAE;cACdxH,gBAAgB,CAACkF,KAAK,CAACkB,MAAM,EAAEoB,KAAK,GAAG,CAAC,CAAC;YAC3C;UACF;UAGAtC,KAAK,CAAC8B,cAAc,CAAC,CAAC;QACxB,CAAC,MAGI,IACH,CAACE,gBAAgB,IACjBX,OAAO,KAAKzD,UAAU,CAACmE,aAAa,IACpChB,iBAAiB,CAACW,IAAI,CAACL,OAAO,CAAC,EAC/B;UACApD,KAAK,GAAGA,KAAK,CAAC2D,KAAK,CAAC,CAAC,EAAET,QAAQ,CAAC;UAChCpD,aAAa,CAACE,KAAK,GAAGL,UAAU,CAACmE,aAAa,CAAC;UAC/C/B,KAAK,CAACkB,MAAM,CAACjD,KAAK,GAAGA,KAAK,GAAGL,UAAU,CAACmE,aAAa;UACrD/B,KAAK,CAAC8B,cAAc,CAAC,CAAC;QACxB;MACF;MAGA,IACET,OAAO,KAAK,QAAQ,IACpBgB,eAAe,MAAMzE,UAAU,CAAC4E,wBAAwB,IAAI,GAAG,CAAC,EAChE;QACA1H,gBAAgB,CAACkF,KAAK,CAACkB,MAAM,EAAEC,QAAQ,GAAG,CAAC,CAAC;QAC5CnB,KAAK,CAAC8B,cAAc,CAAC,CAAC;MACxB;IACF;IAEA,IAAIW,GAAG,GAAGhI,WAAW,CAACwD,KAAK,EAAE;MAC3ByE,MAAM,EAAE9E,UAAU,CAAC8E,MAAM;MACzBC,MAAM,EAAE/E,UAAU,CAAC+E,MAAM;MACzBC,gBAAgB,EAAEhF,UAAU,CAACmE,aAAa,IAAI,GAAG;MACjDc,kBAAkB,EAAEjF,UAAU,CAAC4E,wBAAwB,IAAI;IAC7D,CAAC,CAAC;IAGF,IAAIC,GAAG,KAAK,GAAG,EAAE;MACfA,GAAG,GAAG,CAAC,CAAC;IACV;IAEA,MAAMK,WAAW,GAAGC,MAAM,CAACN,GAAG,CAAC;IAG/B,MAAMO,YAAY,GAChBF,WAAW,KAAK,CAAC,IAAIG,MAAM,CAACR,GAAG,CAAC,CAACS,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE,GAAGT,GAAG;IAE/D,QAAQxB,IAAI;MACV,KAAK,UAAU;MACf,KAAK,aAAa;MAClB,KAAK,eAAe;MACpB,KAAK,aAAa;QAChBjB,KAAK,CAACkB,MAAM,CAACiC,uBAAuB,GAAG,MACrC1H,oBAAoB,CAACuE,KAAK,CAACkB,MAAM,EAAEtD,UAAU,EAAEzB,KAAK,CAAC;QACvD,IAAI,CAAC6D,KAAK,CAACkB,MAAM,CAACkC,yBAAyB,EAAE;UAC3CpD,KAAK,CAACkB,MAAM,CAACiC,uBAAuB,CAAC,CAAC;QACxC;QACA;IACJ;IAEA,MAAME,MAAM,GAAGzI,0BAA0B,CAACuB,KAAK,EAAE8E,IAAI,EAAE;MACrDjB,KAAK;MACL/B,KAAK;MACL6E,WAAW;MACXE;IACF,CAAC,CAAC;IAEF,IAAI/B,IAAI,KAAK,WAAW,EAAE;MACxBlD,aAAa,CAACE,KAAK,CAAC;IACtB;IAEA,OAAOoF,MAAM;EACf,CAAC;EAED,OAAOxD,SAAS;AAClB,CAAC;AAOD,MAAMhC,mBAAmB,GAAGA,CAAA,KAAM;EAAA,IAAAyF,cAAA;EAChC,MAAM;IAAEnH;EAAM,CAAC,GAAG5B,KAAK,CAAC6B,UAAU,CAAClB,kBAAkB,CAAC;EACtD,MAAM2B,MAAM,GAAGY,cAAc,CAAC,CAAC;EAE/B,IAAI,CAACrC,sBAAsB,CAACe,KAAK,CAAC,EAAE;IAClC,OAAAoH,aAAA,KAAY1H,QAAQ,CAACM,KAAK,CAACM,YAAY,CAAC;EAC1C;EAEA,IAAI;IAAEH,WAAW;IAAEC,aAAa;IAAEE;EAAa,CAAC,GAAGN,KAAK;EACxD,MAAM;IAAEQ,SAAS;IAAEC,UAAU;IAAEF,WAAW;IAAEuB;EAAM,CAAC,GAAG9B,KAAK;EAE3DM,YAAY,GAAGZ,QAAQ,CAACY,YAAY,CAAC;EACrCH,WAAW,GAAG3B,MAAM,CAAC2B,WAAW,CAAC,GAAG,CAAC,CAAC,GAAGT,QAAQ,CAACS,WAAW,CAAC;EAC9DC,aAAa,GAAG5B,MAAM,CAAC4B,aAAa,CAAC,GACjC,CAAC,CAAC,GACFV,QAAQ,CAACU,aAAa,EAAE;IACtBiH,QAAQ,EAAEjH;EACZ,CAAC,CAAC;EACN,IAAI,GAAA+G,cAAA,GAAC/G,aAAa,cAAA+G,cAAA,eAAbA,cAAA,CAAeE,QAAQ,GAAE;IAC5B,OAAOjH,aAAa,CAACiH,QAAQ;EAC/B;EAEA,IAAIrI,yBAAyB,CAACgB,KAAK,CAAC,EAAE;IACpC,MAAMqG,wBAAwB,GAAG7G,wBAAwB,CAACkB,MAAM,CAAC;IACjE,MAAMkF,aAAa,GAAGnG,sBAAsB,CAACiB,MAAM,CAAC;IAEpD,IAAIlC,MAAM,CAACgC,SAAS,CAAC,IAAIhC,MAAM,CAACiC,UAAU,CAAC,EAAE;MAC3CN,WAAW,GAAGzB,sBAAsB,CAACyB,WAAW,EAAE,IAAI,EAAE;QACtDyF,aAAa;QACbS;MACF,CAAC,CAAC;IACJ,CAAC,MAAM,IAAI9F,WAAW,EAAE;MAAA,IAAA+G,eAAA;MACtBlH,aAAa,GAAG1B,sBAAsB,CAAC0B,aAAa,EAAE,IAAI,EAAE;QAC1DwF,aAAa;QACbS,wBAAwB;QACxBgB,QAAQ,EAAE9I,iBAAiB,CACzBmC,MAAM,EACN,OAAOH,WAAW,KAAK,QAAQ,GAAGA,WAAW,GAAG,IAAI,GAAA+G,eAAA,GACpDlH,aAAa,cAAAkH,eAAA,uBAAbA,eAAA,CAAeC,eAAe,EAC9BzF,KACF;MACF,CAAC,CAAC;IACJ;EACF;EAEA,IAAIL,UAAU,GAAG,IAAI;EAErB,IAAItB,WAAW,EAAE;IACfsB,UAAU,GAAGpC,gBAAgB,CAAC;MAC5BiB,YAAY;MACZH;IACF,CAAC,CAAC;IAEF,IAAI3B,MAAM,CAACiC,UAAU,CAAC,EAAE;MACtBgB,UAAU,GAAGtC,iBAAiB,CAAC;QAAEa,KAAK;QAAEU,MAAM;QAAEe;MAAW,CAAC,CAAC;IAC/D;EACF,CAAC,MAAM,IAAIrB,aAAa,EAAE;IACxBqB,UAAU,GAAGrC,kBAAkB,CAAC;MAC9BkB,YAAY;MACZF;IACF,CAAC,CAAC;EACJ;EAEA,OAAOqB,UAAU;AACnB,CAAC"}
1
+ {"version":3,"file":"InputMaskedHooks.js","names":["React","classnames","cleanNumber","getCurrencySymbol","isTrue","dispatchCustomElementEvent","extendPropsWithContext","safeSetSelection","TextMask","createNumberMask","keycode","InputMaskedContext","isRequestingLocaleSupport","isRequestingNumberMask","correctNumberValue","handlePercentMask","handleCurrencyMask","handleNumberMask","correctCaretPosition","getSoftKeyboardAttributes","handleThousandsSeparator","handleDecimalSeparator","fromJSON","invisibleSpace","useLayoutEffect","window","useEffect","useFilteredProps","props","useContext","mask","number_mask","currency_mask","number_format","mask_options","as_currency","as_number","as_percent","locale","show_mask","show_guide","pipe","keep_char_positions","placeholder_char","attributes","_objectWithoutProperties","_excluded","htmlAttributes","Object","freeze","useTranslation","context","useLocalValue","maskParams","useNumberMaskParams","localValue","setLocalValue","useState","value","useNumberMask","useMask","numberMask","useMaskParams","placeholder","showMask","placeholderChar","showGuide","keepCharPositions","useInputElement","inner_ref","isFn","refHook","useRef","ref","current","inputElementRef","createElement","InputElement","params","innerRef","_extends","inputRef","inputElement","guide","className","useEventMapping","callEvent","useCallEvent","onBeforeInput","event","onFocus","onBlur","onMouseUp","onMouseDown","onKeyDown","onSubmit","onChange","on_focus","undefined","on_blur","on_key_down","on_submit","on_change","isNumberMask","decimalSeparators","isUnidentified","name","target","selStart","selectionStart","keyCode","which","data","key","disallowLeadingZeroes","replace","test","testValue","slice","length","preventDefault","decimalSymbol","hasDecimalSymbol","includes","allowedDecimals","decimalLimit","allowDecimal","charAtSelection","index","indexOf","thousandsSeparatorSymbol","num","prefix","suffix","decimalSeparator","thousandsSeparator","numberValue","Number","cleanedValue","String","charAt","runCorrectCaretPosition","__getCorrectCaretPosition","result","_currency_mask","_objectSpread","currency","_currency_mask2","currencyDisplay"],"sources":["../../../../src/components/input-masked/InputMaskedHooks.js"],"sourcesContent":["/**\n * Web InputMasked Component\n *\n */\n\nimport React 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// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\n/**\n * Takes all component properties and filters out all internal used properties\n *\n * @returns object {props, htmlAttributes}\n */\nexport const useFilteredProps = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n mask, // eslint-disable-line\n number_mask, // eslint-disable-line\n currency_mask, // eslint-disable-line\n number_format, // eslint-disable-line\n mask_options, // eslint-disable-line\n as_currency, // eslint-disable-line\n as_number, // eslint-disable-line\n as_percent, // eslint-disable-line\n locale, // eslint-disable-line\n show_mask, // eslint-disable-line\n show_guide, // eslint-disable-line\n pipe, // eslint-disable-line\n keep_char_positions, // eslint-disable-line\n placeholder_char, // eslint-disable-line\n\n // Get get rest of possible attributes\n ...attributes\n } = props\n\n return { props, htmlAttributes: Object.freeze(attributes) }\n}\n\n/**\n * Returns locale from either component or context\n *\n * @returns string\n */\nexport const useTranslation = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n\n let { locale } = props\n if (!locale && context?.locale) {\n locale = context.locale\n }\n\n return locale\n}\n\n/**\n * Handle internal value state\n *\n * It handles both the value state given as a prop form outside,\n * along with the current written and internal value.\n *\n * @returns object with internal value state and state setter\n */\nexport const useLocalValue = () => {\n const { props, context } = React.useContext(InputMaskedContext)\n const maskParams = useNumberMaskParams() || {}\n const locale = useTranslation()\n\n const [localValue, setLocalValue] = React.useState(() =>\n correctNumberValue({\n locale,\n props,\n maskParams,\n })\n )\n\n /**\n * Use an effect here, just;\n * because when a property gets changed from outside\n */\n React.useEffect(() => {\n const value = correctNumberValue({\n localValue,\n locale,\n props,\n maskParams,\n })\n\n setLocalValue(value)\n\n // Do not set \"localValue\" and \"maskParams\" here\n }, [props, context, locale]) // eslint-disable-line\n\n return { localValue, setLocalValue }\n}\n\n/**\n * Create createNumberMask if number mask parameters exists\n *\n * @returns mask function\n */\nexport const useNumberMask = () => {\n const maskParams = useNumberMaskParams()\n const { props } = React.useContext(InputMaskedContext)\n\n if (!maskParams || !isRequestingNumberMask(props)) {\n return null\n }\n\n const mask = createNumberMask(maskParams)\n\n mask.maskParams = maskParams\n\n return mask\n}\n\n/**\n * Returns either internal mask or given property mask\n *\n * @returns mask function\n */\nexport const useMask = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const numberMask = useNumberMask()\n if (numberMask) {\n return numberMask\n }\n\n return props.mask\n}\n\n/**\n * Returns the final mask params\n *\n * @returns mask params\n */\nexport const useMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n\n const {\n keep_char_positions,\n show_guide,\n show_mask,\n placeholder_char,\n placeholder,\n } = props\n\n const mask = useMask()\n const maskParams = useNumberMaskParams() || {}\n\n maskParams.showMask = !placeholder && isTrue(show_mask)\n\n // Revalidated placeholder char to a zero width space\n maskParams.placeholderChar = placeholder_char\n if (typeof mask?.placeholderChar !== 'undefined') {\n maskParams.placeholderChar = mask.placeholderChar\n }\n if (maskParams.placeholderChar === null) {\n maskParams.placeholderChar = invisibleSpace\n }\n\n if (typeof mask?.showMask !== 'undefined') {\n maskParams.showMask = mask.showMask\n }\n\n maskParams.showGuide = isTrue(show_guide)\n maskParams.keepCharPositions = isTrue(keep_char_positions)\n\n return maskParams\n}\n\n/**\n * Handle the TextMask dependency\n *\n * @returns React Element\n */\nexport const useInputElement = () => {\n const { props } = React.useContext(InputMaskedContext)\n const { pipe, inner_ref } = props\n\n const mask = useMask()\n const { showMask, showGuide, placeholderChar, keepCharPositions } =\n useMaskParams()\n\n const isFn = typeof inner_ref === 'function'\n const refHook = React.useRef()\n const ref = (!isFn && inner_ref) || refHook\n\n useLayoutEffect(() => {\n if (isFn) {\n inner_ref?.(ref.current)\n }\n }, [inner_ref, isFn, ref])\n\n // Create the actual input element\n const inputElementRef = React.useRef(<input ref={ref} />)\n\n 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 // Add support for \"await userEvent.type(input, '0...')\"\n if (isUnidentified && event.key === '0') {\n keyCode = '0'\n isUnidentified = false\n }\n\n // Prevent entering a leading zero\n if (\n name === 'on_key_down' &&\n !isUnidentified &&\n maskParams?.disallowLeadingZeroes &&\n (keyCode === '0' ||\n keyCode === 'numpad 0' ||\n (value.replace(/[^\\d]/g, '') === '' &&\n decimalSeparators.test(keyCode)))\n ) {\n const testValue = (\n value.slice(0, selStart) +\n '0' +\n value.slice(selStart + 1, value.length)\n ).replace(/[^\\d]/g, '')\n\n if (/^0/.test(testValue)) {\n event.preventDefault()\n }\n }\n\n if (\n name === 'on_key_down' &&\n isNumberMask &&\n !isUnidentified &&\n maskParams?.decimalSymbol\n ) {\n const hasDecimalSymbol = value.includes(maskParams.decimalSymbol)\n const allowedDecimals =\n maskParams.decimalLimit > 0 || maskParams.allowDecimal !== false\n\n if (!allowedDecimals && decimalSeparators.test(keyCode)) {\n event.preventDefault()\n }\n\n const charAtSelection = value.slice(selStart, selStart + 1)\n\n if (allowedDecimals) {\n // if we have already a decimal ...\n if (hasDecimalSymbol && decimalSeparators.test(keyCode)) {\n // ... we set the cursor on after the decimalSeparators\n if (decimalSeparators.test(charAtSelection)) {\n const index = value.indexOf(maskParams.decimalSymbol)\n if (index > -1) {\n safeSetSelection(event.target, index + 1)\n }\n }\n\n // ... we do not allow to type another\n event.preventDefault()\n }\n\n // replace other decimal\n else if (\n !hasDecimalSymbol &&\n keyCode !== maskParams.decimalSymbol &&\n decimalSeparators.test(keyCode)\n ) {\n value = value.slice(0, selStart)\n setLocalValue(value + maskParams.decimalSymbol)\n event.target.value = value + maskParams.decimalSymbol\n event.preventDefault()\n }\n }\n\n // move cursor to right if key is delete and char at selection is thousand separator\n if (\n keyCode === 'delete' &&\n charAtSelection === (maskParams.thousandsSeparatorSymbol || ' ')\n ) {\n safeSetSelection(event.target, selStart + 1)\n event.preventDefault()\n }\n }\n\n let num = cleanNumber(value, {\n prefix: maskParams.prefix,\n suffix: maskParams.suffix,\n decimalSeparator: maskParams.decimalSymbol || ',',\n thousandsSeparator: maskParams.thousandsSeparatorSymbol || ' ',\n })\n\n // We don't want to return NaN, so we set it to 0\n if (num === '-') {\n num = -0\n }\n\n const numberValue = Number(num)\n\n // Return '' (empty string) when the user has entered something invalid\n const cleanedValue =\n numberValue === 0 && String(num).charAt(0) !== '0' ? '' : num\n\n switch (name) {\n case 'on_focus':\n case 'on_key_down':\n case 'on_mouse_down':\n case 'on_mouse_up':\n event.target.runCorrectCaretPosition = () =>\n correctCaretPosition(event.target, maskParams, props)\n if (!event.target.__getCorrectCaretPosition) {\n event.target.runCorrectCaretPosition()\n }\n break\n }\n\n const result = dispatchCustomElementEvent(props, name, {\n event,\n value,\n numberValue,\n cleanedValue,\n })\n\n if (name === 'on_change') {\n setLocalValue(value)\n }\n\n return result\n }\n\n return callEvent\n}\n\n/**\n * Returns number mask parameters if requested by the component properties\n *\n * @returns object of number mask parameter\n */\nconst useNumberMaskParams = () => {\n const { props } = React.useContext(InputMaskedContext)\n const locale = useTranslation()\n\n if (!isRequestingNumberMask(props)) {\n return { ...fromJSON(props.mask_options) }\n }\n\n let { number_mask, currency_mask, mask_options } = props\n const { as_number, as_percent, as_currency, value } = props\n\n mask_options = fromJSON(mask_options)\n number_mask = isTrue(number_mask) ? {} : fromJSON(number_mask)\n currency_mask = isTrue(currency_mask)\n ? {}\n : fromJSON(currency_mask, {\n currency: currency_mask,\n })\n if (!currency_mask?.currency) {\n delete currency_mask.currency\n }\n\n if (isRequestingLocaleSupport(props)) {\n const thousandsSeparatorSymbol = handleThousandsSeparator(locale)\n const decimalSymbol = handleDecimalSeparator(locale)\n\n if (isTrue(as_number) || isTrue(as_percent)) {\n number_mask = extendPropsWithContext(number_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n })\n } else if (as_currency) {\n currency_mask = extendPropsWithContext(currency_mask, null, {\n decimalSymbol,\n thousandsSeparatorSymbol,\n currency: getCurrencySymbol(\n locale,\n typeof as_currency === 'string' ? as_currency : null,\n currency_mask?.currencyDisplay,\n value\n ),\n })\n }\n }\n\n let maskParams = null\n\n if (number_mask) {\n maskParams = handleNumberMask({\n mask_options,\n number_mask,\n })\n\n if (isTrue(as_percent)) {\n maskParams = handlePercentMask({ props, locale, maskParams })\n }\n } else if (currency_mask) {\n maskParams = handleCurrencyMask({\n mask_options,\n currency_mask,\n })\n }\n\n return maskParams\n}\n"],"mappings":"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"}
@@ -297,7 +297,7 @@
297
297
  */
298
298
 
299
299
  // stylelint-disable no-descending-specificity
300
- // We prioritize categorisation and readability over specificity here */
300
+ // We prioritize categorization and readability over specificity here */
301
301
 
302
302
  /** Normal state **/
303
303
 
@@ -24,7 +24,7 @@ export type SpaceProps = {
24
24
  */
25
25
  no_collapse?: boolean;
26
26
  /**
27
- * If set to `true`, then the space element will be 100% in `width`.
27
+ * If set to `true`, then the space element will be 100% in width.
28
28
  * Default: false
29
29
  */
30
30
  stretch?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Space.js","names":["React","classnames","isTrue","extendPropsWithContext","validateDOMAttributes","Context","spacingPropTypes","createSpacingClasses","createSpacingProperties","isInline","skeletonDOMAttributes","createSkeletonClass","defaultProps","Space","localProps","context","useContext","props","space","skeleton","element","inline","no_collapse","top","right","bottom","left","style","innerSpace","stretch","innerRef","className","children","attributes","_objectWithoutProperties","_excluded","params","_objectSpread","styleObj","createElement","Element","_extends","_supportsSpacingProps","_ref","_excluded2","ElementDynamic","component","R"],"sources":["../../../../src/components/space/Space.tsx"],"sourcesContent":["/**\n * Web Space Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport {\n isTrue,\n extendPropsWithContext,\n validateDOMAttributes,\n} from '../../shared/component-helper'\nimport Context, { ContextProps } from '../../shared/Context'\nimport { spacingPropTypes } from './SpacingHelper'\nimport {\n createSpacingClasses,\n createSpacingProperties,\n isInline,\n} from './SpacingUtils'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\n\nimport type {\n DynamicElement,\n DynamicElementParams,\n SpacingProps,\n} from '../../shared/types'\nimport type { SkeletonShow } from '../Skeleton'\n\nexport { spacingPropTypes }\n\nexport type SpaceProps = {\n /**\n * Defines the HTML element used.\n * Default: div\n */\n element?: DynamicElement\n\n /**\n * If set to `true`, then `display: inline-block;` is used, so the HTML elements get aligned horizontally. Defaults to `false`.\n * Default: false\n */\n inline?: boolean\n\n /**\n * If set to `true`, then a wrapper with `display: flow-root;` is used. This way you avoid **Margin Collapsing**. Defaults to `false`. _Note:_ You can't use `inline={true}` in combination.\n * Default: false\n */\n no_collapse?: boolean\n\n /**\n * If set to `true`, then the space element will be 100% in `width`.\n * Default: false\n */\n stretch?: boolean\n\n /**\n * If set to `true`, a loading skeleton will be shown.\n * Default: false\n */\n skeleton?: SkeletonShow\n\n /**\n * Send along a custom React Ref.\n * Default: null\n */\n innerRef?: React.RefObject<HTMLElement>\n} & SpacingProps\n\nexport type SpaceAllProps = SpaceProps &\n Omit<React.HTMLProps<HTMLElement>, 'ref'>\n\nconst defaultProps = {}\n\nexport default function Space(localProps: SpaceAllProps) {\n const context = React.useContext<ContextProps & SpacingProps>(Context)\n\n // consume the space context\n const props = context.space\n ? // use only the props from context, who are available here anyway\n extendPropsWithContext(\n localProps,\n defaultProps,\n { space: context.space },\n { skeleton: context?.skeleton }\n )\n : localProps\n\n const {\n element = 'div',\n inline,\n no_collapse,\n top,\n right,\n bottom,\n left,\n style,\n space,\n innerSpace, // eslint-disable-line\n stretch,\n skeleton,\n innerRef,\n className,\n children,\n\n ...attributes\n } = props\n\n const params = {\n className: classnames(\n 'dnb-space',\n isTrue(stretch) && 'dnb-space--stretch',\n isTrue(inline) && 'dnb-space--inline',\n createSkeletonClass(null, skeleton), // do not send along context\n createSpacingClasses({ top, right, bottom, left, space }),\n className\n ),\n ...attributes,\n }\n\n const styleObj = {\n ...style,\n ...createSpacingProperties(props),\n } as React.CSSProperties\n\n skeletonDOMAttributes(params, skeleton) // do not send along context\n\n return (\n <Element\n element={element}\n no_collapse={no_collapse}\n innerRef={innerRef}\n style={styleObj}\n {...params}\n >\n {children}\n </Element>\n )\n}\n\nSpace._supportsSpacingProps = true\n\nfunction Element({\n element,\n no_collapse,\n children,\n innerRef,\n ...props\n}: SpaceAllProps) {\n const ElementDynamic = element\n\n if (element?.['_name'] === 'Section') {\n props['innerRef'] = innerRef\n } else {\n // also used for code markup simulation\n validateDOMAttributes({}, props)\n props['ref'] = innerRef\n }\n\n const component = (\n <ElementDynamic {...(props as DynamicElementParams)}>\n {children}\n </ElementDynamic>\n )\n\n if (isTrue(no_collapse)) {\n const R =\n ElementDynamic === 'span' || isInline(element as string)\n ? 'span'\n : 'div'\n return (\n <R\n className={classnames(\n 'dnb-space--no-collapse',\n isInline(element as string) && 'dnb-space--inline'\n )}\n >\n {component}\n </R>\n )\n }\n\n return component\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Space.js","names":["React","classnames","isTrue","extendPropsWithContext","validateDOMAttributes","Context","spacingPropTypes","createSpacingClasses","createSpacingProperties","isInline","skeletonDOMAttributes","createSkeletonClass","defaultProps","Space","localProps","context","useContext","props","space","skeleton","element","inline","no_collapse","top","right","bottom","left","style","innerSpace","stretch","innerRef","className","children","attributes","_objectWithoutProperties","_excluded","params","_objectSpread","styleObj","createElement","Element","_extends","_supportsSpacingProps","_ref","_excluded2","ElementDynamic","component","R"],"sources":["../../../../src/components/space/Space.tsx"],"sourcesContent":["/**\n * Web Space Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport {\n isTrue,\n extendPropsWithContext,\n validateDOMAttributes,\n} from '../../shared/component-helper'\nimport Context, { ContextProps } from '../../shared/Context'\nimport { spacingPropTypes } from './SpacingHelper'\nimport {\n createSpacingClasses,\n createSpacingProperties,\n isInline,\n} from './SpacingUtils'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\n\nimport type {\n DynamicElement,\n DynamicElementParams,\n SpacingProps,\n} from '../../shared/types'\nimport type { SkeletonShow } from '../Skeleton'\n\nexport { spacingPropTypes }\n\nexport type SpaceProps = {\n /**\n * Defines the HTML element used.\n * Default: div\n */\n element?: DynamicElement\n\n /**\n * If set to `true`, then `display: inline-block;` is used, so the HTML elements get aligned horizontally. Defaults to `false`.\n * Default: false\n */\n inline?: boolean\n\n /**\n * If set to `true`, then a wrapper with `display: flow-root;` is used. This way you avoid **Margin Collapsing**. Defaults to `false`. _Note:_ You can't use `inline={true}` in combination.\n * Default: false\n */\n no_collapse?: boolean\n\n /**\n * If set to `true`, then the space element will be 100% in width.\n * Default: false\n */\n stretch?: boolean\n\n /**\n * If set to `true`, a loading skeleton will be shown.\n * Default: false\n */\n skeleton?: SkeletonShow\n\n /**\n * Send along a custom React Ref.\n * Default: null\n */\n innerRef?: React.RefObject<HTMLElement>\n} & SpacingProps\n\nexport type SpaceAllProps = SpaceProps &\n Omit<React.HTMLProps<HTMLElement>, 'ref'>\n\nconst defaultProps = {}\n\nexport default function Space(localProps: SpaceAllProps) {\n const context = React.useContext<ContextProps & SpacingProps>(Context)\n\n // consume the space context\n const props = context.space\n ? // use only the props from context, who are available here anyway\n extendPropsWithContext(\n localProps,\n defaultProps,\n { space: context.space },\n { skeleton: context?.skeleton }\n )\n : localProps\n\n const {\n element = 'div',\n inline,\n no_collapse,\n top,\n right,\n bottom,\n left,\n style,\n space,\n innerSpace, // eslint-disable-line\n stretch,\n skeleton,\n innerRef,\n className,\n children,\n\n ...attributes\n } = props\n\n const params = {\n className: classnames(\n 'dnb-space',\n isTrue(stretch) && 'dnb-space--stretch',\n isTrue(inline) && 'dnb-space--inline',\n createSkeletonClass(null, skeleton), // do not send along context\n createSpacingClasses({ top, right, bottom, left, space }),\n className\n ),\n ...attributes,\n }\n\n const styleObj = {\n ...style,\n ...createSpacingProperties(props),\n } as React.CSSProperties\n\n skeletonDOMAttributes(params, skeleton) // do not send along context\n\n return (\n <Element\n element={element}\n no_collapse={no_collapse}\n innerRef={innerRef}\n style={styleObj}\n {...params}\n >\n {children}\n </Element>\n )\n}\n\nSpace._supportsSpacingProps = true\n\nfunction Element({\n element,\n no_collapse,\n children,\n innerRef,\n ...props\n}: SpaceAllProps) {\n const ElementDynamic = element\n\n if (element?.['_name'] === 'Section') {\n props['innerRef'] = innerRef\n } else {\n // also used for code markup simulation\n validateDOMAttributes({}, props)\n props['ref'] = innerRef\n }\n\n const component = (\n <ElementDynamic {...(props as DynamicElementParams)}>\n {children}\n </ElementDynamic>\n )\n\n if (isTrue(no_collapse)) {\n const R =\n ElementDynamic === 'span' || isInline(element as string)\n ? 'span'\n : 'div'\n return (\n <R\n className={classnames(\n 'dnb-space--no-collapse',\n isInline(element as string) && 'dnb-space--inline'\n )}\n >\n {component}\n </R>\n )\n }\n\n return component\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableStickyHeader.js","names":["React","getPreviousSibling","warn","getOffsetTop","useStickyHeader","sticky","stickyOffset","elementRef","useRef","useEffect","isSticky","thHeight","offsetTopPx","tableOffset","tableHeight","totalOffset","hasScrollbar","scrollViewElem","timeout","tableElem","current","trElem","querySelector","thElem","getThElement","setSizes","parseFloat","String","includes","Math","round","modalElem","offsetHeight","scrollElem","scrollHeight","style","setProperty","offset","onScroll","scrollTop","window","pageYOffset","classList","add","removeProperty","remove","onResize","applyObservers","document","addEventListener","e","stickyWarning","setTimeout","clearTimeout","removeEventListener","message","element"],"sources":["../../../../src/components/table/TableStickyHeader.tsx"],"sourcesContent":["import React from 'react'\nimport { getPreviousSibling, warn } from '../../shared/component-helper'\nimport { getOffsetTop } from '../../shared/helpers'\n\nexport type StickyTableHeaderProps = {\n /**\n * Makes the Table header sticky\n * Default: false\n */\n sticky?: boolean | 'css-position'\n\n /**\n * The offset from top in rem or em unit\n * Default: false\n */\n stickyOffset?: string | number\n}\n\nexport const useStickyHeader = ({\n sticky,\n stickyOffset,\n}: StickyTableHeaderProps) => {\n const elementRef = React.useRef<HTMLTableElement>()\n\n React.useEffect(() => {\n if (sticky) {\n let isSticky = false\n let thHeight = 0\n let offsetTopPx = 0\n let tableOffset = 0\n let tableHeight = 0\n let totalOffset = 0\n let hasScrollbar = null\n let scrollViewElem = null\n let timeout: NodeJS.Timeout = null\n\n try {\n const tableElem = elementRef.current\n\n const trElem: HTMLTableRowElement = tableElem.querySelector(\n 'thead > tr:first-of-type, thead > .dnb-table__tr:first-of-type'\n )\n const thElem = getThElement(tableElem)\n\n const setSizes = () => {\n offsetTopPx = parseFloat(String(stickyOffset)) || 0\n if (offsetTopPx > 0) {\n if (String(stickyOffset).includes('rem')) {\n offsetTopPx = Math.round(offsetTopPx * 16)\n }\n }\n\n const modalElem = getPreviousSibling(\n '.dnb-modal__content',\n tableElem\n )\n\n if (modalElem) {\n scrollViewElem = modalElem.querySelector('.dnb-scroll-view')\n\n if (offsetTopPx === 0) {\n offsetTopPx =\n (\n modalElem.querySelector(\n '.dnb-modal__header__bar'\n ) as HTMLElement\n ).offsetHeight || 0\n }\n } else {\n const scrollElem = getPreviousSibling(\n '.dnb-scroll-view',\n tableElem\n ) as HTMLElement\n\n if (scrollElem) {\n hasScrollbar =\n scrollElem.scrollHeight - 1 > scrollElem.offsetHeight\n\n if (hasScrollbar) {\n scrollViewElem = scrollElem\n }\n }\n }\n\n thHeight = thElem.offsetHeight\n tableHeight = tableElem.offsetHeight\n tableOffset = getOffsetTop(tableElem)\n totalOffset = tableOffset - offsetTopPx\n\n if (sticky === 'css-position') {\n trElem.style.setProperty(\n '--table-top',\n `${offsetTopPx / 16}rem`\n )\n }\n }\n\n let offset = 0\n const onScroll = () => {\n if (scrollViewElem) {\n offset = scrollViewElem.scrollTop\n } else {\n offset = window.pageYOffset\n }\n\n offset -= hasScrollbar ? offsetTopPx : totalOffset\n\n // By sub thHeight and checking for the height, we avoid a scrollbar inside a Table.ScrollView\n if (offset > 0 && offset < tableHeight - thHeight) {\n if (sticky !== 'css-position') {\n trElem.style.setProperty(\n '--table-offset',\n String(offset) + 'px'\n )\n }\n\n if (!isSticky) {\n isSticky = true\n\n trElem.classList.add('is-sticky')\n }\n } else {\n if (isSticky) {\n isSticky = false\n\n if (offset <= 0) {\n if (sticky !== 'css-position') {\n trElem.style.removeProperty('--table-offset')\n }\n }\n\n trElem.classList.remove('is-sticky')\n }\n }\n }\n\n const onResize = () => {\n setSizes()\n onScroll()\n }\n\n const applyObservers = () => {\n try {\n trElem.classList.add('sticky')\n if (sticky === 'css-position') {\n trElem.classList.add('css-position')\n }\n\n setSizes()\n\n const scrollElem = scrollViewElem || document\n scrollElem.addEventListener('scroll', onScroll)\n window.addEventListener('resize', onResize)\n } catch (e) {\n stickyWarning(e)\n }\n }\n\n timeout = setTimeout(applyObservers, 100) // to get a more precise offset/sizes, we delay the initialisation\n\n return () => {\n clearTimeout(timeout)\n document.removeEventListener('scroll', onScroll)\n window.removeEventListener('resize', onResize)\n }\n } catch (e) {\n stickyWarning(e)\n }\n }\n }, [elementRef, sticky, stickyOffset])\n\n return { elementRef }\n}\n\nconst stickyWarning = (message = '') => {\n warn('Could not enable Sticky mode in table:', message)\n}\nconst getThElement = (element: HTMLTableElement): HTMLTableCellElement => {\n return element.querySelector(\n 'thead > tr:first-of-type > th:first-of-type, thead > .dnb-table__tr:first-of-type > .dnb-table__th:first-of-type'\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TableStickyHeader.js","names":["React","getPreviousSibling","warn","getOffsetTop","useStickyHeader","sticky","stickyOffset","elementRef","useRef","useEffect","isSticky","thHeight","offsetTopPx","tableOffset","tableHeight","totalOffset","hasScrollbar","scrollViewElem","timeout","tableElem","current","trElem","querySelector","thElem","getThElement","setSizes","parseFloat","String","includes","Math","round","modalElem","offsetHeight","scrollElem","scrollHeight","style","setProperty","offset","onScroll","scrollTop","window","pageYOffset","classList","add","removeProperty","remove","onResize","applyObservers","document","addEventListener","e","stickyWarning","setTimeout","clearTimeout","removeEventListener","message","element"],"sources":["../../../../src/components/table/TableStickyHeader.tsx"],"sourcesContent":["import React from 'react'\nimport { getPreviousSibling, warn } from '../../shared/component-helper'\nimport { getOffsetTop } from '../../shared/helpers'\n\nexport type StickyTableHeaderProps = {\n /**\n * Makes the Table header sticky\n * Default: false\n */\n sticky?: boolean | 'css-position'\n\n /**\n * The offset from top in rem or em unit\n * Default: false\n */\n stickyOffset?: string | number\n}\n\nexport const useStickyHeader = ({\n sticky,\n stickyOffset,\n}: StickyTableHeaderProps) => {\n const elementRef = React.useRef<HTMLTableElement>()\n\n React.useEffect(() => {\n if (sticky) {\n let isSticky = false\n let thHeight = 0\n let offsetTopPx = 0\n let tableOffset = 0\n let tableHeight = 0\n let totalOffset = 0\n let hasScrollbar = null\n let scrollViewElem = null\n let timeout: NodeJS.Timeout = null\n\n try {\n const tableElem = elementRef.current\n\n const trElem: HTMLTableRowElement = tableElem.querySelector(\n 'thead > tr:first-of-type, thead > .dnb-table__tr:first-of-type'\n )\n const thElem = getThElement(tableElem)\n\n const setSizes = () => {\n offsetTopPx = parseFloat(String(stickyOffset)) || 0\n if (offsetTopPx > 0) {\n if (String(stickyOffset).includes('rem')) {\n offsetTopPx = Math.round(offsetTopPx * 16)\n }\n }\n\n const modalElem = getPreviousSibling(\n '.dnb-modal__content',\n tableElem\n )\n\n if (modalElem) {\n scrollViewElem = modalElem.querySelector('.dnb-scroll-view')\n\n if (offsetTopPx === 0) {\n offsetTopPx =\n (\n modalElem.querySelector(\n '.dnb-modal__header__bar'\n ) as HTMLElement\n ).offsetHeight || 0\n }\n } else {\n const scrollElem = getPreviousSibling(\n '.dnb-scroll-view',\n tableElem\n ) as HTMLElement\n\n if (scrollElem) {\n hasScrollbar =\n scrollElem.scrollHeight - 1 > scrollElem.offsetHeight\n\n if (hasScrollbar) {\n scrollViewElem = scrollElem\n }\n }\n }\n\n thHeight = thElem.offsetHeight\n tableHeight = tableElem.offsetHeight\n tableOffset = getOffsetTop(tableElem)\n totalOffset = tableOffset - offsetTopPx\n\n if (sticky === 'css-position') {\n trElem.style.setProperty(\n '--table-top',\n `${offsetTopPx / 16}rem`\n )\n }\n }\n\n let offset = 0\n const onScroll = () => {\n if (scrollViewElem) {\n offset = scrollViewElem.scrollTop\n } else {\n offset = window.pageYOffset\n }\n\n offset -= hasScrollbar ? offsetTopPx : totalOffset\n\n // By sub thHeight and checking for the height, we avoid a scrollbar inside a Table.ScrollView\n if (offset > 0 && offset < tableHeight - thHeight) {\n if (sticky !== 'css-position') {\n trElem.style.setProperty(\n '--table-offset',\n String(offset) + 'px'\n )\n }\n\n if (!isSticky) {\n isSticky = true\n\n trElem.classList.add('is-sticky')\n }\n } else {\n if (isSticky) {\n isSticky = false\n\n if (offset <= 0) {\n if (sticky !== 'css-position') {\n trElem.style.removeProperty('--table-offset')\n }\n }\n\n trElem.classList.remove('is-sticky')\n }\n }\n }\n\n const onResize = () => {\n setSizes()\n onScroll()\n }\n\n const applyObservers = () => {\n try {\n trElem.classList.add('sticky')\n if (sticky === 'css-position') {\n trElem.classList.add('css-position')\n }\n\n setSizes()\n\n const scrollElem = scrollViewElem || document\n scrollElem.addEventListener('scroll', onScroll)\n window.addEventListener('resize', onResize)\n } catch (e) {\n stickyWarning(e)\n }\n }\n\n timeout = setTimeout(applyObservers, 100) // to get a more precise offset/sizes, we delay the initialization\n\n return () => {\n clearTimeout(timeout)\n document.removeEventListener('scroll', onScroll)\n window.removeEventListener('resize', onResize)\n }\n } catch (e) {\n stickyWarning(e)\n }\n }\n }, [elementRef, sticky, stickyOffset])\n\n return { elementRef }\n}\n\nconst stickyWarning = (message = '') => {\n warn('Could not enable Sticky mode in table:', message)\n}\nconst getThElement = (element: HTMLTableElement): HTMLTableCellElement => {\n return element.querySelector(\n 'thead > tr:first-of-type > th:first-of-type, thead > .dnb-table__tr:first-of-type > .dnb-table__th:first-of-type'\n )\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableAccordionHead.js","names":["React","useEffect","Td","TableContext","TableClickableButtonTd","TableClickableHead","TableIconSrTh","isTableHead","onClickTr","TableAccordionContext","TableAccordionContentSingle","TableAccordionContentRow","TableAccordionHead","allProps","_React$useContext","children","expanded","noAnimation","onClick","onOpened","onClosed","count","props","_objectWithoutProperties","_excluded","tableContext","useContext","trIsOpen","setOpen","useState","location","id","hash","trIsHover","setHover","trHadClick","setHadClick","headerContent","Children","toArray","addContent","content","accordionChevronPlacement","push","unshift","accordionContent","filter","element","isAccordionElement","hasAccordionContent","length","every","isValidElement","_tableContext$collaps","collapseTrCallbacks","current","tableContextAllProps","createElement","ariaLabel","accordionToggleButtonSR","icon","toggleOpenTr","key","_tableContext$allProp","text","_Td","countTds","type","Provider","value","_extends","clickable","onMouseEnter","onMouseEnterHandler","onMouseLeave","onMouseLeaveHandler","onKeyDown","onKeyDownHandler","event","toggleOpenFn","allowInteractiveElement"],"sources":["../../../../../src/components/table/table-accordion/TableAccordionHead.tsx"],"sourcesContent":["import React, { useEffect } from 'react'\nimport Td from '../TableTd'\nimport { TableContext } from '../TableContext'\nimport {\n TableClickableButtonTd,\n TableClickableHead,\n TableIconSrTh,\n isTableHead,\n onClickTr,\n} from '../TableClickableHead'\nimport { TableAccordionContext } from './TableAccordionContext'\nimport {\n TableAccordionContentSingle,\n TableAccordionContentRow,\n} from './TableAccordionContent'\n\nimport type {\n TableAccordionContentSingleProps,\n TableAccordionContentRowProps,\n} from './TableAccordionContent'\nimport type { TableTrProps } from '../TableTr'\n\nexport type TableAccordionHeadProps = {\n /** The row number */\n count: number\n} & TableTrProps &\n React.TableHTMLAttributes<HTMLTableRowElement>\n\nexport function TableAccordionHead(allProps: TableAccordionHeadProps) {\n const {\n children,\n expanded,\n noAnimation,\n onClick,\n onOpened,\n onClosed,\n count,\n ...props\n } = allProps\n const tableContext = React.useContext(TableContext)\n\n const [trIsOpen, setOpen] = React.useState(() => {\n if (typeof expanded === 'boolean') {\n return expanded\n } else if (typeof location !== 'undefined') {\n const id = props?.id\n if (id && '#' + id === location.hash) {\n return true\n }\n }\n\n return false\n })\n const [trIsHover, setHover] = React.useState(false)\n const [trHadClick, setHadClick] = React.useState(false)\n\n let headerContent = React.Children.toArray(children)\n\n const addContent = (content) => {\n if (tableContext.allProps.accordionChevronPlacement === 'end') {\n headerContent.push(content)\n } else {\n headerContent.unshift(content)\n }\n }\n\n /**\n * Handle Accordion Content\n */\n const accordionContent = headerContent.filter(\n (element: React.ReactElement) => {\n return isAccordionElement(element)\n }\n ) as React.ReactElement<\n TableAccordionContentSingleProps | TableAccordionContentRowProps\n >[]\n\n const hasAccordionContent =\n accordionContent.length !== 0 &&\n accordionContent.every((element) => React.isValidElement(element))\n\n useEffect(() => {\n if (\n hasAccordionContent &&\n tableContext?.collapseTrCallbacks?.current &&\n count\n ) {\n tableContext.collapseTrCallbacks.current[count] = () => {\n setOpen(false)\n }\n }\n }, [count, tableContext?.collapseTrCallbacks, hasAccordionContent])\n\n const tableContextAllProps = React.useContext(TableContext)?.allProps\n\n if (hasAccordionContent) {\n // Remove the AccordionContent, and use it outside of the tr\n headerContent = headerContent.filter((element: React.ReactElement) => {\n return !isAccordionElement(element)\n })\n\n addContent(\n <TableClickableButtonTd\n trIsOpen={trIsOpen}\n ariaLabel={tableContextAllProps?.accordionToggleButtonSR}\n icon=\"chevron_down\"\n onClick={toggleOpenTr}\n key=\"td-icon\"\n />\n )\n } else if (isTableHead(headerContent)) {\n addContent(\n <TableIconSrTh\n key=\"th-icon\"\n text={tableContext?.allProps?.accordionToggleButtonSR}\n />\n )\n } else if (!hasAccordionContent) {\n addContent(<Td key=\"empty-td\"></Td>)\n }\n\n const countTds = hasAccordionContent\n ? headerContent.filter((element: React.ReactElement) => {\n return (\n element.type === Td || element.type === TableClickableButtonTd\n ) // TODO: We may need to include this in future --> || component.type === Td.MainCell\n }).length\n : null\n\n return (\n <TableAccordionContext.Provider\n value={{\n toggleOpenTr,\n trIsOpen,\n noAnimation,\n countTds,\n onOpened,\n onClosed,\n }}\n >\n <TableClickableHead\n trIsOpen={trIsOpen}\n trIsHover={trIsHover}\n trHadClick={trHadClick}\n clickable={hasAccordionContent}\n noAnimation={noAnimation}\n onClick={toggleOpenTr}\n onMouseEnter={onMouseEnterHandler}\n onMouseLeave={onMouseLeaveHandler}\n onKeyDown={onKeyDownHandler}\n ariaLabel={tableContextAllProps?.accordionToggleButtonSR}\n {...props}\n >\n {headerContent}\n </TableClickableHead>\n {accordionContent}\n </TableAccordionContext.Provider>\n )\n\n function onMouseEnterHandler() {\n setHover(true)\n }\n\n function onKeyDownHandler(event: React.SyntheticEvent) {\n toggleOpenTr(event, true)\n }\n\n function onMouseLeaveHandler() {\n setHover(false)\n setHadClick(false)\n }\n\n function toggleOpenFn(event: React.SyntheticEvent) {\n setOpen(!trIsOpen)\n setHadClick(true)\n onClick?.(event)\n }\n\n function toggleOpenTr(\n event: React.SyntheticEvent,\n allowInteractiveElement?: boolean\n ) {\n onClickTr(event, allowInteractiveElement, toggleOpenFn)\n }\n}\n\nconst isAccordionElement = (element: React.ReactElement) =>\n element.type === TableAccordionContentSingle ||\n element.type === TableAccordionContentRow\n"],"mappings":"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"}
1
+ {"version":3,"file":"TableAccordionHead.js","names":["React","useEffect","Td","TableContext","TableClickableButtonTd","TableClickableHead","TableIconSrTh","isTableHead","onClickTr","TableAccordionContext","TableAccordionContentSingle","TableAccordionContentRow","TableAccordionHead","allProps","_React$useContext","children","expanded","noAnimation","onClick","onOpened","onClosed","count","props","_objectWithoutProperties","_excluded","tableContext","useContext","trIsOpen","setOpen","useState","location","id","hash","trIsHover","setHover","trHadClick","setHadClick","headerContent","Children","toArray","addContent","content","accordionChevronPlacement","push","unshift","accordionContent","filter","element","isAccordionElement","hasAccordionContent","length","every","isValidElement","_tableContext$collaps","collapseTrCallbacks","current","tableContextAllProps","createElement","ariaLabel","accordionToggleButtonSR","icon","toggleOpenTr","key","_tableContext$allProp","text","_Td","countTds","type","Provider","value","_extends","clickable","onMouseEnter","onMouseEnterHandler","onMouseLeave","onMouseLeaveHandler","onKeyDown","onKeyDownHandler","event","toggleOpenFn","allowInteractiveElement"],"sources":["../../../../../src/components/table/table-accordion/TableAccordionHead.tsx"],"sourcesContent":["import React, { useEffect } from 'react'\nimport Td from '../TableTd'\nimport { TableContext } from '../TableContext'\nimport {\n TableClickableButtonTd,\n TableClickableHead,\n TableIconSrTh,\n isTableHead,\n onClickTr,\n} from '../TableClickableHead'\nimport { TableAccordionContext } from './TableAccordionContext'\nimport {\n TableAccordionContentSingle,\n TableAccordionContentRow,\n} from './TableAccordionContent'\n\nimport type {\n TableAccordionContentSingleProps,\n TableAccordionContentRowProps,\n} from './TableAccordionContent'\nimport type { TableTrProps } from '../TableTr'\n\nexport type TableAccordionHeadProps = {\n /** The row number */\n count: number\n} & TableTrProps &\n React.TableHTMLAttributes<HTMLTableRowElement>\n\nexport function TableAccordionHead(allProps: TableAccordionHeadProps) {\n const {\n children,\n expanded,\n noAnimation,\n onClick,\n onOpened,\n onClosed,\n count,\n ...props\n } = allProps\n const tableContext = React.useContext(TableContext)\n\n const [trIsOpen, setOpen] = React.useState(() => {\n if (typeof expanded === 'boolean') {\n return expanded\n } else if (typeof location !== 'undefined') {\n const id = props?.id\n if (id && '#' + id === location.hash) {\n return true\n }\n }\n\n return false\n })\n const [trIsHover, setHover] = React.useState(false)\n const [trHadClick, setHadClick] = React.useState(false)\n\n let headerContent = React.Children.toArray(children)\n\n const addContent = (content) => {\n if (tableContext.allProps.accordionChevronPlacement === 'end') {\n headerContent.push(content)\n } else {\n headerContent.unshift(content)\n }\n }\n\n /**\n * Handle Accordion Content\n */\n const accordionContent = headerContent.filter(\n (element: React.ReactElement) => {\n return isAccordionElement(element)\n }\n ) as React.ReactElement<\n TableAccordionContentSingleProps | TableAccordionContentRowProps\n >[]\n\n const hasAccordionContent =\n accordionContent.length !== 0 &&\n accordionContent.every((element) => React.isValidElement(element))\n\n useEffect(() => {\n if (\n hasAccordionContent &&\n tableContext?.collapseTrCallbacks?.current &&\n count\n ) {\n tableContext.collapseTrCallbacks.current[count] = () => {\n setOpen(false)\n }\n }\n }, [count, tableContext?.collapseTrCallbacks, hasAccordionContent])\n\n const tableContextAllProps = React.useContext(TableContext)?.allProps\n\n if (hasAccordionContent) {\n // Remove the AccordionContent, and use it outside of the tr\n headerContent = headerContent.filter((element: React.ReactElement) => {\n return !isAccordionElement(element)\n })\n\n addContent(\n <TableClickableButtonTd\n trIsOpen={trIsOpen}\n ariaLabel={tableContextAllProps?.accordionToggleButtonSR}\n icon=\"chevron_down\"\n onClick={toggleOpenTr}\n key=\"td-icon\"\n />\n )\n } else if (isTableHead(headerContent)) {\n addContent(\n <TableIconSrTh\n key=\"th-icon\"\n text={tableContext?.allProps?.accordionToggleButtonSR}\n />\n )\n } else if (!hasAccordionContent) {\n addContent(<Td key=\"empty-td\" />)\n }\n\n const countTds = hasAccordionContent\n ? headerContent.filter((element: React.ReactElement) => {\n return (\n element.type === Td || element.type === TableClickableButtonTd\n ) // TODO: We may need to include this in future --> || component.type === Td.MainCell\n }).length\n : null\n\n return (\n <TableAccordionContext.Provider\n value={{\n toggleOpenTr,\n trIsOpen,\n noAnimation,\n countTds,\n onOpened,\n onClosed,\n }}\n >\n <TableClickableHead\n trIsOpen={trIsOpen}\n trIsHover={trIsHover}\n trHadClick={trHadClick}\n clickable={hasAccordionContent}\n noAnimation={noAnimation}\n onClick={toggleOpenTr}\n onMouseEnter={onMouseEnterHandler}\n onMouseLeave={onMouseLeaveHandler}\n onKeyDown={onKeyDownHandler}\n ariaLabel={tableContextAllProps?.accordionToggleButtonSR}\n {...props}\n >\n {headerContent}\n </TableClickableHead>\n {accordionContent}\n </TableAccordionContext.Provider>\n )\n\n function onMouseEnterHandler() {\n setHover(true)\n }\n\n function onKeyDownHandler(event: React.SyntheticEvent) {\n toggleOpenTr(event, true)\n }\n\n function onMouseLeaveHandler() {\n setHover(false)\n setHadClick(false)\n }\n\n function toggleOpenFn(event: React.SyntheticEvent) {\n setOpen(!trIsOpen)\n setHadClick(true)\n onClick?.(event)\n }\n\n function toggleOpenTr(\n event: React.SyntheticEvent,\n allowInteractiveElement?: boolean\n ) {\n onClickTr(event, allowInteractiveElement, toggleOpenFn)\n }\n}\n\nconst isAccordionElement = (element: React.ReactElement) =>\n element.type === TableAccordionContentSingle ||\n element.type === TableAccordionContentRow\n"],"mappings":"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"}
@@ -14,7 +14,7 @@ export function TableNavigationHead(allProps) {
14
14
  } = allProps,
15
15
  props = _objectWithoutProperties(allProps, _excluded);
16
16
  const tableContext = React.useContext(TableContext);
17
- let content = React.Children.toArray(children);
17
+ const content = React.Children.toArray(children);
18
18
  const hasOnClick = typeof onClick === 'function';
19
19
  const tableContextAllProps = (_React$useContext = React.useContext(TableContext)) === null || _React$useContext === void 0 ? void 0 : _React$useContext.allProps;
20
20
  if (hasOnClick) {
@@ -1 +1 @@
1
- {"version":3,"file":"TableNavigationHead.js","names":["React","Td","TableContext","TableClickableButtonTd","TableClickableHead","TableIconSrTh","isTableHead","onClickTr","TableNavigationHead","allProps","_React$useContext","children","onClick","props","_objectWithoutProperties","_excluded","tableContext","useContext","content","Children","toArray","hasOnClick","tableContextAllProps","push","createElement","key","ariaLabel","navigationButtonSR","icon","onClickHandler","_tableContext$allProp","text","_Td","_extends","clickable","onKeyDown","event","allowInteractiveElement"],"sources":["../../../../../src/components/table/table-navigation/TableNavigationHead.tsx"],"sourcesContent":["import React from 'react'\nimport Td from '../TableTd'\nimport { TableContext } from '../TableContext'\nimport {\n TableClickableButtonTd,\n TableClickableHead,\n TableIconSrTh,\n isTableHead,\n onClickTr,\n} from '../TableClickableHead'\n\nimport type { TableTrProps } from '../TableTr'\n\nexport type TableNavigationHeadProps = TableTrProps &\n React.TableHTMLAttributes<HTMLTableRowElement>\n\nexport function TableNavigationHead(allProps: TableNavigationHeadProps) {\n const { children, onClick, ...props } = allProps\n const tableContext = React.useContext(TableContext)\n\n let content = React.Children.toArray(children)\n\n const hasOnClick = typeof onClick === 'function'\n\n const tableContextAllProps = React.useContext(TableContext)?.allProps\n\n if (hasOnClick) {\n content.push(\n <TableClickableButtonTd\n key=\"td-icon\"\n ariaLabel={tableContextAllProps?.navigationButtonSR}\n icon=\"chevron_right\"\n onClick={onClickHandler}\n />\n )\n } else if (isTableHead(content)) {\n content.push(\n <TableIconSrTh\n key=\"th-icon\"\n text={tableContext?.allProps?.navigationButtonSR}\n />\n )\n } else if (!hasOnClick) {\n content.push(<Td key=\"empty-td\"></Td>)\n }\n\n return (\n <TableClickableHead\n clickable={hasOnClick}\n onClick={onClickHandler}\n onKeyDown={onClick}\n ariaLabel={tableContextAllProps?.navigationButtonSR}\n {...props}\n >\n {content}\n </TableClickableHead>\n )\n\n function onClickHandler(\n event: React.SyntheticEvent,\n allowInteractiveElement?: boolean\n ) {\n onClickTr(event, allowInteractiveElement, onClick)\n }\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,EAAE,MAAM,YAAY;AAC3B,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SACEC,sBAAsB,EACtBC,kBAAkB,EAClBC,aAAa,EACbC,WAAW,EACXC,SAAS,QACJ,uBAAuB;AAO9B,OAAO,SAASC,mBAAmBA,CAACC,QAAkC,EAAE;EAAA,IAAAC,iBAAA;EACtE,MAAM;MAAEC,QAAQ;MAAEC;IAAkB,CAAC,GAAGH,QAAQ;IAAlBI,KAAK,GAAAC,wBAAA,CAAKL,QAAQ,EAAAM,SAAA;EAChD,MAAMC,YAAY,GAAGhB,KAAK,CAACiB,UAAU,CAACf,YAAY,CAAC;EAEnD,IAAIgB,OAAO,GAAGlB,KAAK,CAACmB,QAAQ,CAACC,OAAO,CAACT,QAAQ,CAAC;EAE9C,MAAMU,UAAU,GAAG,OAAOT,OAAO,KAAK,UAAU;EAEhD,MAAMU,oBAAoB,IAAAZ,iBAAA,GAAGV,KAAK,CAACiB,UAAU,CAACf,YAAY,CAAC,cAAAQ,iBAAA,uBAA9BA,iBAAA,CAAgCD,QAAQ;EAErE,IAAIY,UAAU,EAAE;IACdH,OAAO,CAACK,IAAI,CACVvB,KAAA,CAAAwB,aAAA,CAACrB,sBAAsB;MACrBsB,GAAG,EAAC,SAAS;MACbC,SAAS,EAAEJ,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEK,kBAAmB;MACpDC,IAAI,EAAC,eAAe;MACpBhB,OAAO,EAAEiB;IAAe,CACzB,CACH,CAAC;EACH,CAAC,MAAM,IAAIvB,WAAW,CAACY,OAAO,CAAC,EAAE;IAAA,IAAAY,qBAAA;IAC/BZ,OAAO,CAACK,IAAI,CACVvB,KAAA,CAAAwB,aAAA,CAACnB,aAAa;MACZoB,GAAG,EAAC,SAAS;MACbM,IAAI,EAAEf,YAAY,aAAZA,YAAY,wBAAAc,qBAAA,GAAZd,YAAY,CAAEP,QAAQ,cAAAqB,qBAAA,uBAAtBA,qBAAA,CAAwBH;IAAmB,CAClD,CACH,CAAC;EACH,CAAC,MAAM,IAAI,CAACN,UAAU,EAAE;IACtBH,OAAO,CAACK,IAAI,CAAAS,GAAA,KAAAA,GAAA,GAAChC,KAAA,CAAAwB,aAAA,CAACvB,EAAE;MAACwB,GAAG,EAAC;IAAU,CAAK,CAAC,EAAC;EACxC;EAEA,OACEzB,KAAA,CAAAwB,aAAA,CAACpB,kBAAkB,EAAA6B,QAAA;IACjBC,SAAS,EAAEb,UAAW;IACtBT,OAAO,EAAEiB,cAAe;IACxBM,SAAS,EAAEvB,OAAQ;IACnBc,SAAS,EAAEJ,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEK;EAAmB,GAChDd,KAAK,GAERK,OACiB,CAAC;EAGvB,SAASW,cAAcA,CACrBO,KAA2B,EAC3BC,uBAAiC,EACjC;IACA9B,SAAS,CAAC6B,KAAK,EAAEC,uBAAuB,EAAEzB,OAAO,CAAC;EACpD;AACF"}
1
+ {"version":3,"file":"TableNavigationHead.js","names":["React","Td","TableContext","TableClickableButtonTd","TableClickableHead","TableIconSrTh","isTableHead","onClickTr","TableNavigationHead","allProps","_React$useContext","children","onClick","props","_objectWithoutProperties","_excluded","tableContext","useContext","content","Children","toArray","hasOnClick","tableContextAllProps","push","createElement","key","ariaLabel","navigationButtonSR","icon","onClickHandler","_tableContext$allProp","text","_Td","_extends","clickable","onKeyDown","event","allowInteractiveElement"],"sources":["../../../../../src/components/table/table-navigation/TableNavigationHead.tsx"],"sourcesContent":["import React from 'react'\nimport Td from '../TableTd'\nimport { TableContext } from '../TableContext'\nimport {\n TableClickableButtonTd,\n TableClickableHead,\n TableIconSrTh,\n isTableHead,\n onClickTr,\n} from '../TableClickableHead'\n\nimport type { TableTrProps } from '../TableTr'\n\nexport type TableNavigationHeadProps = TableTrProps &\n React.TableHTMLAttributes<HTMLTableRowElement>\n\nexport function TableNavigationHead(allProps: TableNavigationHeadProps) {\n const { children, onClick, ...props } = allProps\n const tableContext = React.useContext(TableContext)\n\n const content = React.Children.toArray(children)\n\n const hasOnClick = typeof onClick === 'function'\n\n const tableContextAllProps = React.useContext(TableContext)?.allProps\n\n if (hasOnClick) {\n content.push(\n <TableClickableButtonTd\n key=\"td-icon\"\n ariaLabel={tableContextAllProps?.navigationButtonSR}\n icon=\"chevron_right\"\n onClick={onClickHandler}\n />\n )\n } else if (isTableHead(content)) {\n content.push(\n <TableIconSrTh\n key=\"th-icon\"\n text={tableContext?.allProps?.navigationButtonSR}\n />\n )\n } else if (!hasOnClick) {\n content.push(<Td key=\"empty-td\" />)\n }\n\n return (\n <TableClickableHead\n clickable={hasOnClick}\n onClick={onClickHandler}\n onKeyDown={onClick}\n ariaLabel={tableContextAllProps?.navigationButtonSR}\n {...props}\n >\n {content}\n </TableClickableHead>\n )\n\n function onClickHandler(\n event: React.SyntheticEvent,\n allowInteractiveElement?: boolean\n ) {\n onClickTr(event, allowInteractiveElement, onClick)\n }\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,EAAE,MAAM,YAAY;AAC3B,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SACEC,sBAAsB,EACtBC,kBAAkB,EAClBC,aAAa,EACbC,WAAW,EACXC,SAAS,QACJ,uBAAuB;AAO9B,OAAO,SAASC,mBAAmBA,CAACC,QAAkC,EAAE;EAAA,IAAAC,iBAAA;EACtE,MAAM;MAAEC,QAAQ;MAAEC;IAAkB,CAAC,GAAGH,QAAQ;IAAlBI,KAAK,GAAAC,wBAAA,CAAKL,QAAQ,EAAAM,SAAA;EAChD,MAAMC,YAAY,GAAGhB,KAAK,CAACiB,UAAU,CAACf,YAAY,CAAC;EAEnD,MAAMgB,OAAO,GAAGlB,KAAK,CAACmB,QAAQ,CAACC,OAAO,CAACT,QAAQ,CAAC;EAEhD,MAAMU,UAAU,GAAG,OAAOT,OAAO,KAAK,UAAU;EAEhD,MAAMU,oBAAoB,IAAAZ,iBAAA,GAAGV,KAAK,CAACiB,UAAU,CAACf,YAAY,CAAC,cAAAQ,iBAAA,uBAA9BA,iBAAA,CAAgCD,QAAQ;EAErE,IAAIY,UAAU,EAAE;IACdH,OAAO,CAACK,IAAI,CACVvB,KAAA,CAAAwB,aAAA,CAACrB,sBAAsB;MACrBsB,GAAG,EAAC,SAAS;MACbC,SAAS,EAAEJ,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEK,kBAAmB;MACpDC,IAAI,EAAC,eAAe;MACpBhB,OAAO,EAAEiB;IAAe,CACzB,CACH,CAAC;EACH,CAAC,MAAM,IAAIvB,WAAW,CAACY,OAAO,CAAC,EAAE;IAAA,IAAAY,qBAAA;IAC/BZ,OAAO,CAACK,IAAI,CACVvB,KAAA,CAAAwB,aAAA,CAACnB,aAAa;MACZoB,GAAG,EAAC,SAAS;MACbM,IAAI,EAAEf,YAAY,aAAZA,YAAY,wBAAAc,qBAAA,GAAZd,YAAY,CAAEP,QAAQ,cAAAqB,qBAAA,uBAAtBA,qBAAA,CAAwBH;IAAmB,CAClD,CACH,CAAC;EACH,CAAC,MAAM,IAAI,CAACN,UAAU,EAAE;IACtBH,OAAO,CAACK,IAAI,CAAAS,GAAA,KAAAA,GAAA,GAAChC,KAAA,CAAAwB,aAAA,CAACvB,EAAE;MAACwB,GAAG,EAAC;IAAU,CAAE,CAAC,EAAC;EACrC;EAEA,OACEzB,KAAA,CAAAwB,aAAA,CAACpB,kBAAkB,EAAA6B,QAAA;IACjBC,SAAS,EAAEb,UAAW;IACtBT,OAAO,EAAEiB,cAAe;IACxBM,SAAS,EAAEvB,OAAQ;IACnBc,SAAS,EAAEJ,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEK;EAAmB,GAChDd,KAAK,GAERK,OACiB,CAAC;EAGvB,SAASW,cAAcA,CACrBO,KAA2B,EAC3BC,uBAAiC,EACjC;IACA9B,SAAS,CAAC6B,KAAK,EAAEC,uBAAuB,EAAEzB,OAAO,CAAC;EACpD;AACF"}
@@ -5,7 +5,7 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
5
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
6
6
  var _UploadInfo, _UploadFileInput, _UploadFileList;
7
7
  const _excluded = ["buttonTextSingular", "textSingular"],
8
- _excluded2 = ["id", "skeleton", "className", "acceptedFileTypes", "filesAmountLimit", "fileMaxSize", "onChange", "onFileDelete", "title", "text", "fileTypeDescription", "fileSizeDescription", "fileAmountDescription", "fileSizeContent", "buttonText", "loadingText", "errorLargeFile", "errorUnsupportedFile", "errorAmountLimit", "deleteButton", "fileListAriaLabel"];
8
+ _excluded2 = ["id", "skeleton", "className", "acceptedFileTypes", "filesAmountLimit", "fileMaxSize", "onChange", "onFileDelete", "title", "text", "fileTypeTableCaption", "fileTypeDescription", "fileSizeDescription", "fileAmountDescription", "fileSizeContent", "buttonText", "loadingText", "errorLargeFile", "errorUnsupportedFile", "errorAmountLimit", "deleteButton", "fileListAriaLabel"];
9
9
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
10
10
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11
11
  import React, { useCallback } from 'react';
@@ -48,6 +48,7 @@ const Upload = localProps => {
48
48
  onFileDelete,
49
49
  title,
50
50
  text,
51
+ fileTypeTableCaption,
51
52
  fileTypeDescription,
52
53
  fileSizeDescription,
53
54
  fileAmountDescription,