@dnb/eufemia 10.69.1 → 10.70.1

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 (918) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/cjs/components/aria-live/AriaLiveDocs.d.ts +2 -0
  3. package/cjs/components/aria-live/AriaLiveDocs.js +54 -0
  4. package/cjs/components/aria-live/AriaLiveDocs.js.map +1 -0
  5. package/cjs/components/autocomplete/AutocompleteDocs.js +3 -3
  6. package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
  7. package/cjs/components/avatar/Avatar.d.ts +10 -0
  8. package/cjs/components/avatar/Avatar.js +12 -3
  9. package/cjs/components/avatar/Avatar.js.map +1 -1
  10. package/cjs/components/avatar/AvatarDocs.d.ts +3 -0
  11. package/cjs/components/avatar/AvatarDocs.js +101 -0
  12. package/cjs/components/avatar/AvatarDocs.js.map +1 -0
  13. package/cjs/components/avatar/AvatarGroup.d.ts +10 -0
  14. package/cjs/components/avatar/AvatarGroup.js +17 -5
  15. package/cjs/components/avatar/AvatarGroup.js.map +1 -1
  16. package/cjs/components/avatar/style/dnb-avatar.css +8 -0
  17. package/cjs/components/avatar/style/dnb-avatar.min.css +1 -1
  18. package/cjs/components/avatar/style/dnb-avatar.scss +9 -0
  19. package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +5 -5
  20. package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
  21. package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +5 -6
  22. package/cjs/components/avatar/style/themes/dnb-avatar-theme-ui.css +5 -5
  23. package/cjs/components/avatar/style/themes/dnb-avatar-theme-ui.min.css +1 -1
  24. package/cjs/components/avatar/style/themes/dnb-avatar-theme-ui.scss +5 -5
  25. package/cjs/components/badge/BadgeDocs.d.ts +2 -0
  26. package/cjs/components/badge/BadgeDocs.js +54 -0
  27. package/cjs/components/badge/BadgeDocs.js.map +1 -0
  28. package/cjs/components/breadcrumb/BreadcrumbDocs.d.ts +5 -0
  29. package/cjs/components/breadcrumb/BreadcrumbDocs.js +125 -0
  30. package/cjs/components/breadcrumb/BreadcrumbDocs.js.map +1 -0
  31. package/cjs/components/button/Button.d.ts +0 -3
  32. package/cjs/components/button/ButtonDocs.d.ts +1 -0
  33. package/cjs/components/button/ButtonDocs.js +8 -1
  34. package/cjs/components/button/ButtonDocs.js.map +1 -1
  35. package/cjs/components/checkbox/CheckboxDocs.js +2 -2
  36. package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
  37. package/cjs/components/date-picker/DatePickerAddon.js +1 -3
  38. package/cjs/components/date-picker/DatePickerAddon.js.map +1 -1
  39. package/cjs/components/date-picker/DatePickerCalc.d.ts +13 -0
  40. package/cjs/components/date-picker/DatePickerCalc.js +44 -0
  41. package/cjs/components/date-picker/DatePickerCalc.js.map +1 -1
  42. package/cjs/components/date-picker/DatePickerCalendar.js +13 -11
  43. package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
  44. package/cjs/components/date-picker/DatePickerContext.d.ts +1 -1
  45. package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
  46. package/cjs/components/date-picker/DatePickerDocs.js +1 -1
  47. package/cjs/components/date-picker/DatePickerDocs.js.map +1 -1
  48. package/cjs/components/date-picker/DatePickerInput.js +120 -94
  49. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  50. package/cjs/components/date-picker/DatePickerProvider.js +2 -2
  51. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  52. package/cjs/components/date-picker/hooks/useViews.d.ts +2 -4
  53. package/cjs/components/date-picker/hooks/useViews.js +37 -23
  54. package/cjs/components/date-picker/hooks/useViews.js.map +1 -1
  55. package/cjs/components/date-picker/style/dnb-date-picker.css +4 -0
  56. package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
  57. package/cjs/components/date-picker/style/dnb-date-picker.scss +3 -0
  58. package/cjs/components/dialog/DialogDocs.d.ts +1 -0
  59. package/cjs/components/dialog/DialogDocs.js +20 -3
  60. package/cjs/components/dialog/DialogDocs.js.map +1 -1
  61. package/cjs/components/drawer/DrawerDocs.d.ts +2 -0
  62. package/cjs/components/drawer/DrawerDocs.js +69 -0
  63. package/cjs/components/drawer/DrawerDocs.js.map +1 -0
  64. package/cjs/components/dropdown/Dropdown.d.ts +20 -20
  65. package/cjs/components/dropdown/DropdownDocs.d.ts +3 -0
  66. package/cjs/components/dropdown/DropdownDocs.js +186 -0
  67. package/cjs/components/dropdown/DropdownDocs.js.map +1 -0
  68. package/cjs/components/flex/ContainerDocs.js +1 -1
  69. package/cjs/components/flex/ContainerDocs.js.map +1 -1
  70. package/cjs/components/flex/ItemDocs.d.ts +2 -0
  71. package/cjs/components/flex/ItemDocs.js +39 -0
  72. package/cjs/components/flex/ItemDocs.js.map +1 -0
  73. package/cjs/components/form-label/FormLabelDocs.d.ts +2 -0
  74. package/cjs/components/form-label/FormLabelDocs.js +59 -0
  75. package/cjs/components/form-label/FormLabelDocs.js.map +1 -0
  76. package/cjs/components/form-row/FormRow.d.ts +45 -0
  77. package/cjs/components/form-row/FormRowDocs.d.ts +2 -0
  78. package/cjs/components/form-row/FormRowDocs.js +89 -0
  79. package/cjs/components/form-row/FormRowDocs.js.map +1 -0
  80. package/cjs/components/form-set/FormSet.d.ts +18 -0
  81. package/cjs/components/form-set/FormSetDocs.d.ts +3 -0
  82. package/cjs/components/form-set/FormSetDocs.js +56 -0
  83. package/cjs/components/form-set/FormSetDocs.js.map +1 -0
  84. package/cjs/components/form-status/FormStatus.d.ts +18 -18
  85. package/cjs/components/form-status/FormStatusDocs.d.ts +2 -0
  86. package/cjs/components/form-status/FormStatusDocs.js +89 -0
  87. package/cjs/components/form-status/FormStatusDocs.js.map +1 -0
  88. package/cjs/components/global-error/GlobalError.d.ts +12 -0
  89. package/cjs/components/global-error/GlobalError.js +15 -6
  90. package/cjs/components/global-error/GlobalError.js.map +1 -1
  91. package/cjs/components/global-error/GlobalErrorDocs.js +14 -4
  92. package/cjs/components/global-error/GlobalErrorDocs.js.map +1 -1
  93. package/cjs/components/global-status/GlobalStatus.d.ts +37 -58
  94. package/cjs/components/global-status/GlobalStatusController.d.ts +0 -9
  95. package/cjs/components/global-status/GlobalStatusDocs.d.ts +6 -0
  96. package/cjs/components/global-status/GlobalStatusDocs.js +192 -0
  97. package/cjs/components/global-status/GlobalStatusDocs.js.map +1 -0
  98. package/cjs/components/grid/ItemDocs.d.ts +2 -0
  99. package/cjs/components/grid/ItemDocs.js +19 -0
  100. package/cjs/components/grid/ItemDocs.js.map +1 -0
  101. package/cjs/components/heading/HeadingDocs.d.ts +2 -0
  102. package/cjs/components/heading/HeadingDocs.js +79 -0
  103. package/cjs/components/heading/HeadingDocs.js.map +1 -0
  104. package/cjs/components/help-button/HelpButtonDocs.d.ts +3 -0
  105. package/cjs/components/help-button/HelpButtonDocs.js +46 -0
  106. package/cjs/components/help-button/HelpButtonDocs.js.map +1 -0
  107. package/cjs/components/icon/IconDocs.d.ts +2 -0
  108. package/cjs/components/icon/IconDocs.js +59 -0
  109. package/cjs/components/icon/IconDocs.js.map +1 -0
  110. package/cjs/components/icon/IconPrimaryDocs.d.ts +2 -0
  111. package/cjs/components/icon/IconPrimaryDocs.js +24 -0
  112. package/cjs/components/icon/IconPrimaryDocs.js.map +1 -0
  113. package/cjs/components/info-card/InfoCard.d.ts +6 -1
  114. package/cjs/components/info-card/InfoCard.js +4 -3
  115. package/cjs/components/info-card/InfoCard.js.map +1 -1
  116. package/cjs/components/info-card/InfoCardDocs.js +8 -3
  117. package/cjs/components/info-card/InfoCardDocs.js.map +1 -1
  118. package/cjs/components/input/Input.d.ts +0 -21
  119. package/cjs/components/input/InputDocs.d.ts +1 -0
  120. package/cjs/components/input/InputDocs.js +36 -4
  121. package/cjs/components/input/InputDocs.js.map +1 -1
  122. package/cjs/components/input-masked/InputMasked.d.ts +0 -15
  123. package/cjs/components/input-masked/InputMaskedDocs.d.ts +2 -0
  124. package/cjs/components/input-masked/InputMaskedDocs.js +70 -1
  125. package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
  126. package/cjs/components/input-masked/MultiInputMaskedDocs.d.ts +4 -0
  127. package/cjs/components/input-masked/MultiInputMaskedDocs.js +93 -0
  128. package/cjs/components/input-masked/MultiInputMaskedDocs.js.map +1 -0
  129. package/cjs/components/input-masked/style/dnb-input-masked.css +9 -0
  130. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  131. package/cjs/components/input-masked/style/dnb-input-masked.scss +12 -0
  132. package/cjs/components/input-masked/text-mask/InputModeNumber.d.ts +8 -0
  133. package/cjs/components/input-masked/text-mask/InputModeNumber.js +32 -9
  134. package/cjs/components/input-masked/text-mask/InputModeNumber.js.map +1 -1
  135. package/cjs/components/input-masked/text-mask/adjustCaretPosition.d.ts +2 -1
  136. package/cjs/components/input-masked/text-mask/adjustCaretPosition.js +3 -2
  137. package/cjs/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  138. package/cjs/components/input-masked/text-mask/createTextMaskInputElement.js +9 -3
  139. package/cjs/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  140. package/cjs/components/modal/ModalDocs.d.ts +3 -0
  141. package/cjs/components/modal/ModalDocs.js +191 -0
  142. package/cjs/components/modal/ModalDocs.js.map +1 -0
  143. package/cjs/components/pagination/Pagination.d.ts +35 -33
  144. package/cjs/components/pagination/Pagination.js +2 -0
  145. package/cjs/components/pagination/Pagination.js.map +1 -1
  146. package/cjs/components/pagination/PaginationDocs.d.ts +3 -0
  147. package/cjs/components/pagination/PaginationDocs.js +191 -0
  148. package/cjs/components/pagination/PaginationDocs.js.map +1 -0
  149. package/cjs/components/pagination/PaginationHelpers.d.ts +0 -3
  150. package/cjs/components/pagination/PaginationInfinity.d.ts +0 -3
  151. package/cjs/components/pagination/PaginationProvider.js +1 -1
  152. package/cjs/components/pagination/PaginationProvider.js.map +1 -1
  153. package/cjs/components/radio/Radio.d.ts +12 -15
  154. package/cjs/components/radio/RadioDocs.d.ts +5 -0
  155. package/cjs/components/radio/RadioDocs.js +145 -0
  156. package/cjs/components/radio/RadioDocs.js.map +1 -0
  157. package/cjs/components/radio/RadioGroup.d.ts +0 -30
  158. package/cjs/components/section/Section.js +2 -7
  159. package/cjs/components/section/Section.js.map +1 -1
  160. package/cjs/components/section/SectionDocs.js +1 -1
  161. package/cjs/components/section/SectionDocs.js.map +1 -1
  162. package/cjs/components/skeleton/SkeletonDocs.d.ts +2 -0
  163. package/cjs/components/skeleton/SkeletonDocs.js +44 -0
  164. package/cjs/components/skeleton/SkeletonDocs.js.map +1 -0
  165. package/cjs/components/skeleton/SkeletonHelper.d.ts +0 -6
  166. package/cjs/components/skip-content/SkipContentDocs.d.ts +2 -0
  167. package/cjs/components/skip-content/SkipContentDocs.js +29 -0
  168. package/cjs/components/skip-content/SkipContentDocs.js.map +1 -0
  169. package/cjs/components/slider/SliderDocs.js +2 -2
  170. package/cjs/components/slider/SliderDocs.js.map +1 -1
  171. package/cjs/components/space/SpaceDocs.d.ts +3 -0
  172. package/cjs/components/space/SpaceDocs.js +61 -0
  173. package/cjs/components/space/SpaceDocs.js.map +1 -0
  174. package/cjs/components/switch/SwitchDocs.js +2 -2
  175. package/cjs/components/switch/SwitchDocs.js.map +1 -1
  176. package/cjs/components/tag/TagDocs.d.ts +4 -0
  177. package/cjs/components/tag/TagDocs.js +93 -0
  178. package/cjs/components/tag/TagDocs.js.map +1 -0
  179. package/cjs/components/textarea/Textarea.d.ts +0 -12
  180. package/cjs/components/textarea/TextareaDocs.d.ts +1 -0
  181. package/cjs/components/textarea/TextareaDocs.js +26 -4
  182. package/cjs/components/textarea/TextareaDocs.js.map +1 -1
  183. package/cjs/components/timeline/TimelineDocs.d.ts +3 -0
  184. package/cjs/components/timeline/TimelineDocs.js +66 -0
  185. package/cjs/components/timeline/TimelineDocs.js.map +1 -0
  186. package/cjs/components/toggle-button/ToggleButton.d.ts +0 -3
  187. package/cjs/components/toggle-button/ToggleButtonDocs.d.ts +1 -0
  188. package/cjs/components/toggle-button/ToggleButtonDocs.js +8 -1
  189. package/cjs/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  190. package/cjs/components/toggle-button/ToggleButtonGroup.d.ts +0 -3
  191. package/cjs/components/toggle-button/ToggleButtonGroupDocs.d.ts +1 -0
  192. package/cjs/components/toggle-button/ToggleButtonGroupDocs.js +9 -2
  193. package/cjs/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
  194. package/cjs/components/tooltip/TooltipDocs.d.ts +2 -0
  195. package/cjs/components/tooltip/TooltipDocs.js +79 -0
  196. package/cjs/components/tooltip/TooltipDocs.js.map +1 -0
  197. package/cjs/components/upload/Upload.js +6 -4
  198. package/cjs/components/upload/Upload.js.map +1 -1
  199. package/cjs/components/upload/UploadDocs.js +5 -0
  200. package/cjs/components/upload/UploadDocs.js.map +1 -1
  201. package/cjs/components/upload/UploadFileList.js +3 -1
  202. package/cjs/components/upload/UploadFileList.js.map +1 -1
  203. package/cjs/components/upload/UploadFileListCell.d.ts +6 -1
  204. package/cjs/components/upload/UploadFileListCell.js +8 -5
  205. package/cjs/components/upload/UploadFileListCell.js.map +1 -1
  206. package/cjs/components/upload/types.d.ts +5 -0
  207. package/cjs/components/upload/types.js.map +1 -1
  208. package/cjs/components/upload/useUpload.d.ts +1 -0
  209. package/cjs/components/upload/useUpload.js +9 -2
  210. package/cjs/components/upload/useUpload.js.map +1 -1
  211. package/cjs/components/visually-hidden/VisuallyHiddenDocs.d.ts +2 -0
  212. package/cjs/components/visually-hidden/VisuallyHiddenDocs.js +19 -0
  213. package/cjs/components/visually-hidden/VisuallyHiddenDocs.js.map +1 -0
  214. package/cjs/extensions/forms/DataContext/At/AtDocs.d.ts +2 -0
  215. package/cjs/extensions/forms/DataContext/At/AtDocs.js +24 -0
  216. package/cjs/extensions/forms/DataContext/At/AtDocs.js.map +1 -0
  217. package/cjs/extensions/forms/DataContext/Context.d.ts +6 -5
  218. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  219. package/cjs/extensions/forms/DataContext/Provider/Provider.js +29 -35
  220. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  221. package/cjs/extensions/forms/Field/Date/Date.d.ts +1 -0
  222. package/cjs/extensions/forms/Field/Date/Date.js +8 -8
  223. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  224. package/cjs/extensions/forms/Field/Password/Password.js +2 -1
  225. package/cjs/extensions/forms/Field/Password/Password.js.map +1 -1
  226. package/cjs/extensions/forms/Field/Password/PasswordDocs.d.ts +1 -0
  227. package/cjs/extensions/forms/Field/Password/PasswordDocs.js +14 -2
  228. package/cjs/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  229. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +9 -3
  230. package/cjs/extensions/forms/Field/String/StringDocs.js +1 -1
  231. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -1
  232. package/cjs/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  233. package/cjs/extensions/forms/Field/Upload/Upload.js +10 -2
  234. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  235. package/cjs/extensions/forms/Form/ButtonRow/ButtonRowDocs.d.ts +2 -0
  236. package/cjs/extensions/forms/Form/ButtonRow/ButtonRowDocs.js +19 -0
  237. package/cjs/extensions/forms/Form/ButtonRow/ButtonRowDocs.js.map +1 -0
  238. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  239. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  240. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +4 -4
  241. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  242. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  243. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  244. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +10 -14
  245. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  246. package/cjs/extensions/forms/Value/Date/Date.d.ts +0 -6
  247. package/cjs/extensions/forms/Value/Date/Date.js +14 -38
  248. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  249. package/cjs/extensions/forms/Wizard/Buttons/ButtonsDocs.d.ts +2 -0
  250. package/cjs/extensions/forms/Wizard/Buttons/ButtonsDocs.js +14 -0
  251. package/cjs/extensions/forms/Wizard/Buttons/ButtonsDocs.js.map +1 -0
  252. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +2 -2
  253. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  254. package/cjs/extensions/forms/hooks/useFieldProps.js +8 -5
  255. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  256. package/cjs/extensions/payment-card/PaymentCard.d.ts +7 -7
  257. package/cjs/extensions/payment-card/PaymentCardDocs.d.ts +5 -0
  258. package/cjs/extensions/payment-card/PaymentCardDocs.js +205 -0
  259. package/cjs/extensions/payment-card/PaymentCardDocs.js.map +1 -0
  260. package/cjs/fragments/scroll-view/ScrollViewDocs.d.ts +2 -0
  261. package/cjs/fragments/scroll-view/ScrollViewDocs.js +19 -0
  262. package/cjs/fragments/scroll-view/ScrollViewDocs.js.map +1 -0
  263. package/cjs/fragments/text-counter/TextCounterDocs.d.ts +2 -0
  264. package/cjs/fragments/text-counter/TextCounterDocs.js +29 -0
  265. package/cjs/fragments/text-counter/TextCounterDocs.js.map +1 -0
  266. package/cjs/shared/Eufemia.d.ts +1 -1
  267. package/cjs/shared/Eufemia.js +2 -2
  268. package/cjs/shared/Eufemia.js.map +1 -1
  269. package/cjs/shared/MediaQueryDocs.d.ts +2 -0
  270. package/cjs/shared/MediaQueryDocs.js +34 -0
  271. package/cjs/shared/MediaQueryDocs.js.map +1 -0
  272. package/cjs/shared/ThemeDocs.d.ts +2 -0
  273. package/cjs/shared/ThemeDocs.js +39 -0
  274. package/cjs/shared/ThemeDocs.js.map +1 -0
  275. package/cjs/shared/helpers.d.ts +1 -0
  276. package/cjs/shared/helpers.js +7 -0
  277. package/cjs/shared/helpers.js.map +1 -1
  278. package/cjs/shared/locales/en-GB.d.ts +1 -0
  279. package/cjs/shared/locales/en-GB.js +1 -0
  280. package/cjs/shared/locales/en-GB.js.map +1 -1
  281. package/cjs/shared/locales/en-US.d.ts +1 -0
  282. package/cjs/shared/locales/index.d.ts +2 -0
  283. package/cjs/shared/locales/nb-NO.d.ts +1 -0
  284. package/cjs/shared/locales/nb-NO.js +1 -0
  285. package/cjs/shared/locales/nb-NO.js.map +1 -1
  286. package/cjs/shared/locales/sv-SE.d.ts +1 -0
  287. package/cjs/shared/locales/sv-SE.js +3 -2
  288. package/cjs/shared/locales/sv-SE.js.map +1 -1
  289. package/cjs/style/core/scopes.scss +1 -1
  290. package/cjs/style/dnb-ui-basis.css +1 -1
  291. package/cjs/style/dnb-ui-basis.min.css +1 -1
  292. package/cjs/style/dnb-ui-body.css +1 -1
  293. package/cjs/style/dnb-ui-body.min.css +1 -1
  294. package/cjs/style/dnb-ui-components.css +21 -0
  295. package/cjs/style/dnb-ui-components.min.css +1 -1
  296. package/cjs/style/dnb-ui-core.css +1 -1
  297. package/cjs/style/dnb-ui-core.min.css +1 -1
  298. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +26 -5
  299. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  300. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +26 -5
  301. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  302. package/cjs/style/themes/theme-ui/ui-theme-components.css +26 -5
  303. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  304. package/components/aria-live/AriaLiveDocs.d.ts +2 -0
  305. package/components/aria-live/AriaLiveDocs.js +48 -0
  306. package/components/aria-live/AriaLiveDocs.js.map +1 -0
  307. package/components/autocomplete/AutocompleteDocs.js +3 -3
  308. package/components/autocomplete/AutocompleteDocs.js.map +1 -1
  309. package/components/avatar/Avatar.d.ts +10 -0
  310. package/components/avatar/Avatar.js +12 -3
  311. package/components/avatar/Avatar.js.map +1 -1
  312. package/components/avatar/AvatarDocs.d.ts +3 -0
  313. package/components/avatar/AvatarDocs.js +95 -0
  314. package/components/avatar/AvatarDocs.js.map +1 -0
  315. package/components/avatar/AvatarGroup.d.ts +10 -0
  316. package/components/avatar/AvatarGroup.js +17 -5
  317. package/components/avatar/AvatarGroup.js.map +1 -1
  318. package/components/avatar/style/dnb-avatar.css +8 -0
  319. package/components/avatar/style/dnb-avatar.min.css +1 -1
  320. package/components/avatar/style/dnb-avatar.scss +9 -0
  321. package/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +5 -5
  322. package/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
  323. package/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +5 -6
  324. package/components/avatar/style/themes/dnb-avatar-theme-ui.css +5 -5
  325. package/components/avatar/style/themes/dnb-avatar-theme-ui.min.css +1 -1
  326. package/components/avatar/style/themes/dnb-avatar-theme-ui.scss +5 -5
  327. package/components/badge/BadgeDocs.d.ts +2 -0
  328. package/components/badge/BadgeDocs.js +48 -0
  329. package/components/badge/BadgeDocs.js.map +1 -0
  330. package/components/breadcrumb/BreadcrumbDocs.d.ts +5 -0
  331. package/components/breadcrumb/BreadcrumbDocs.js +119 -0
  332. package/components/breadcrumb/BreadcrumbDocs.js.map +1 -0
  333. package/components/button/Button.d.ts +0 -3
  334. package/components/button/ButtonDocs.d.ts +1 -0
  335. package/components/button/ButtonDocs.js +7 -0
  336. package/components/button/ButtonDocs.js.map +1 -1
  337. package/components/checkbox/CheckboxDocs.js +2 -2
  338. package/components/checkbox/CheckboxDocs.js.map +1 -1
  339. package/components/date-picker/DatePickerAddon.js +1 -3
  340. package/components/date-picker/DatePickerAddon.js.map +1 -1
  341. package/components/date-picker/DatePickerCalc.d.ts +13 -0
  342. package/components/date-picker/DatePickerCalc.js +41 -0
  343. package/components/date-picker/DatePickerCalc.js.map +1 -1
  344. package/components/date-picker/DatePickerCalendar.js +13 -11
  345. package/components/date-picker/DatePickerCalendar.js.map +1 -1
  346. package/components/date-picker/DatePickerContext.d.ts +1 -1
  347. package/components/date-picker/DatePickerContext.js.map +1 -1
  348. package/components/date-picker/DatePickerDocs.js +1 -1
  349. package/components/date-picker/DatePickerDocs.js.map +1 -1
  350. package/components/date-picker/DatePickerInput.js +121 -95
  351. package/components/date-picker/DatePickerInput.js.map +1 -1
  352. package/components/date-picker/DatePickerProvider.js +2 -2
  353. package/components/date-picker/DatePickerProvider.js.map +1 -1
  354. package/components/date-picker/hooks/useViews.d.ts +2 -4
  355. package/components/date-picker/hooks/useViews.js +38 -24
  356. package/components/date-picker/hooks/useViews.js.map +1 -1
  357. package/components/date-picker/style/dnb-date-picker.css +4 -0
  358. package/components/date-picker/style/dnb-date-picker.min.css +1 -1
  359. package/components/date-picker/style/dnb-date-picker.scss +3 -0
  360. package/components/dialog/DialogDocs.d.ts +1 -0
  361. package/components/dialog/DialogDocs.js +19 -2
  362. package/components/dialog/DialogDocs.js.map +1 -1
  363. package/components/drawer/DrawerDocs.d.ts +2 -0
  364. package/components/drawer/DrawerDocs.js +63 -0
  365. package/components/drawer/DrawerDocs.js.map +1 -0
  366. package/components/dropdown/Dropdown.d.ts +20 -20
  367. package/components/dropdown/DropdownDocs.d.ts +3 -0
  368. package/components/dropdown/DropdownDocs.js +180 -0
  369. package/components/dropdown/DropdownDocs.js.map +1 -0
  370. package/components/flex/ContainerDocs.js +1 -1
  371. package/components/flex/ContainerDocs.js.map +1 -1
  372. package/components/flex/ItemDocs.d.ts +2 -0
  373. package/components/flex/ItemDocs.js +33 -0
  374. package/components/flex/ItemDocs.js.map +1 -0
  375. package/components/form-label/FormLabelDocs.d.ts +2 -0
  376. package/components/form-label/FormLabelDocs.js +53 -0
  377. package/components/form-label/FormLabelDocs.js.map +1 -0
  378. package/components/form-row/FormRow.d.ts +45 -0
  379. package/components/form-row/FormRowDocs.d.ts +2 -0
  380. package/components/form-row/FormRowDocs.js +83 -0
  381. package/components/form-row/FormRowDocs.js.map +1 -0
  382. package/components/form-set/FormSet.d.ts +18 -0
  383. package/components/form-set/FormSetDocs.d.ts +3 -0
  384. package/components/form-set/FormSetDocs.js +50 -0
  385. package/components/form-set/FormSetDocs.js.map +1 -0
  386. package/components/form-status/FormStatus.d.ts +18 -18
  387. package/components/form-status/FormStatusDocs.d.ts +2 -0
  388. package/components/form-status/FormStatusDocs.js +83 -0
  389. package/components/form-status/FormStatusDocs.js.map +1 -0
  390. package/components/global-error/GlobalError.d.ts +12 -0
  391. package/components/global-error/GlobalError.js +15 -6
  392. package/components/global-error/GlobalError.js.map +1 -1
  393. package/components/global-error/GlobalErrorDocs.js +14 -4
  394. package/components/global-error/GlobalErrorDocs.js.map +1 -1
  395. package/components/global-status/GlobalStatus.d.ts +37 -58
  396. package/components/global-status/GlobalStatusController.d.ts +0 -9
  397. package/components/global-status/GlobalStatusDocs.d.ts +6 -0
  398. package/components/global-status/GlobalStatusDocs.js +186 -0
  399. package/components/global-status/GlobalStatusDocs.js.map +1 -0
  400. package/components/grid/ItemDocs.d.ts +2 -0
  401. package/components/grid/ItemDocs.js +13 -0
  402. package/components/grid/ItemDocs.js.map +1 -0
  403. package/components/heading/HeadingDocs.d.ts +2 -0
  404. package/components/heading/HeadingDocs.js +73 -0
  405. package/components/heading/HeadingDocs.js.map +1 -0
  406. package/components/help-button/HelpButtonDocs.d.ts +3 -0
  407. package/components/help-button/HelpButtonDocs.js +40 -0
  408. package/components/help-button/HelpButtonDocs.js.map +1 -0
  409. package/components/icon/IconDocs.d.ts +2 -0
  410. package/components/icon/IconDocs.js +53 -0
  411. package/components/icon/IconDocs.js.map +1 -0
  412. package/components/icon/IconPrimaryDocs.d.ts +2 -0
  413. package/components/icon/IconPrimaryDocs.js +18 -0
  414. package/components/icon/IconPrimaryDocs.js.map +1 -0
  415. package/components/info-card/InfoCard.d.ts +6 -1
  416. package/components/info-card/InfoCard.js +4 -3
  417. package/components/info-card/InfoCard.js.map +1 -1
  418. package/components/info-card/InfoCardDocs.js +8 -3
  419. package/components/info-card/InfoCardDocs.js.map +1 -1
  420. package/components/input/Input.d.ts +0 -21
  421. package/components/input/InputDocs.d.ts +1 -0
  422. package/components/input/InputDocs.js +35 -3
  423. package/components/input/InputDocs.js.map +1 -1
  424. package/components/input-masked/InputMasked.d.ts +0 -15
  425. package/components/input-masked/InputMaskedDocs.d.ts +2 -0
  426. package/components/input-masked/InputMaskedDocs.js +69 -0
  427. package/components/input-masked/InputMaskedDocs.js.map +1 -1
  428. package/components/input-masked/MultiInputMaskedDocs.d.ts +4 -0
  429. package/components/input-masked/MultiInputMaskedDocs.js +87 -0
  430. package/components/input-masked/MultiInputMaskedDocs.js.map +1 -0
  431. package/components/input-masked/style/dnb-input-masked.css +9 -0
  432. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  433. package/components/input-masked/style/dnb-input-masked.scss +12 -0
  434. package/components/input-masked/text-mask/InputModeNumber.d.ts +8 -0
  435. package/components/input-masked/text-mask/InputModeNumber.js +32 -9
  436. package/components/input-masked/text-mask/InputModeNumber.js.map +1 -1
  437. package/components/input-masked/text-mask/adjustCaretPosition.d.ts +2 -1
  438. package/components/input-masked/text-mask/adjustCaretPosition.js +3 -2
  439. package/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  440. package/components/input-masked/text-mask/createTextMaskInputElement.js +9 -3
  441. package/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  442. package/components/modal/ModalDocs.d.ts +3 -0
  443. package/components/modal/ModalDocs.js +185 -0
  444. package/components/modal/ModalDocs.js.map +1 -0
  445. package/components/pagination/Pagination.d.ts +35 -33
  446. package/components/pagination/Pagination.js +2 -0
  447. package/components/pagination/Pagination.js.map +1 -1
  448. package/components/pagination/PaginationDocs.d.ts +3 -0
  449. package/components/pagination/PaginationDocs.js +185 -0
  450. package/components/pagination/PaginationDocs.js.map +1 -0
  451. package/components/pagination/PaginationHelpers.d.ts +0 -3
  452. package/components/pagination/PaginationInfinity.d.ts +0 -3
  453. package/components/pagination/PaginationProvider.js +1 -1
  454. package/components/pagination/PaginationProvider.js.map +1 -1
  455. package/components/radio/Radio.d.ts +12 -15
  456. package/components/radio/RadioDocs.d.ts +5 -0
  457. package/components/radio/RadioDocs.js +139 -0
  458. package/components/radio/RadioDocs.js.map +1 -0
  459. package/components/radio/RadioGroup.d.ts +0 -30
  460. package/components/section/Section.js +1 -6
  461. package/components/section/Section.js.map +1 -1
  462. package/components/section/SectionDocs.js +1 -1
  463. package/components/section/SectionDocs.js.map +1 -1
  464. package/components/skeleton/SkeletonDocs.d.ts +2 -0
  465. package/components/skeleton/SkeletonDocs.js +38 -0
  466. package/components/skeleton/SkeletonDocs.js.map +1 -0
  467. package/components/skeleton/SkeletonHelper.d.ts +0 -6
  468. package/components/skip-content/SkipContentDocs.d.ts +2 -0
  469. package/components/skip-content/SkipContentDocs.js +23 -0
  470. package/components/skip-content/SkipContentDocs.js.map +1 -0
  471. package/components/slider/SliderDocs.js +2 -2
  472. package/components/slider/SliderDocs.js.map +1 -1
  473. package/components/space/SpaceDocs.d.ts +3 -0
  474. package/components/space/SpaceDocs.js +55 -0
  475. package/components/space/SpaceDocs.js.map +1 -0
  476. package/components/switch/SwitchDocs.js +2 -2
  477. package/components/switch/SwitchDocs.js.map +1 -1
  478. package/components/tag/TagDocs.d.ts +4 -0
  479. package/components/tag/TagDocs.js +87 -0
  480. package/components/tag/TagDocs.js.map +1 -0
  481. package/components/textarea/Textarea.d.ts +0 -12
  482. package/components/textarea/TextareaDocs.d.ts +1 -0
  483. package/components/textarea/TextareaDocs.js +25 -3
  484. package/components/textarea/TextareaDocs.js.map +1 -1
  485. package/components/timeline/TimelineDocs.d.ts +3 -0
  486. package/components/timeline/TimelineDocs.js +60 -0
  487. package/components/timeline/TimelineDocs.js.map +1 -0
  488. package/components/toggle-button/ToggleButton.d.ts +0 -3
  489. package/components/toggle-button/ToggleButtonDocs.d.ts +1 -0
  490. package/components/toggle-button/ToggleButtonDocs.js +7 -0
  491. package/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  492. package/components/toggle-button/ToggleButtonGroup.d.ts +0 -3
  493. package/components/toggle-button/ToggleButtonGroupDocs.d.ts +1 -0
  494. package/components/toggle-button/ToggleButtonGroupDocs.js +8 -1
  495. package/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
  496. package/components/tooltip/TooltipDocs.d.ts +2 -0
  497. package/components/tooltip/TooltipDocs.js +73 -0
  498. package/components/tooltip/TooltipDocs.js.map +1 -0
  499. package/components/upload/Upload.js +6 -4
  500. package/components/upload/Upload.js.map +1 -1
  501. package/components/upload/UploadDocs.js +5 -0
  502. package/components/upload/UploadDocs.js.map +1 -1
  503. package/components/upload/UploadFileList.js +3 -1
  504. package/components/upload/UploadFileList.js.map +1 -1
  505. package/components/upload/UploadFileListCell.d.ts +6 -1
  506. package/components/upload/UploadFileListCell.js +8 -5
  507. package/components/upload/UploadFileListCell.js.map +1 -1
  508. package/components/upload/types.d.ts +5 -0
  509. package/components/upload/types.js.map +1 -1
  510. package/components/upload/useUpload.d.ts +1 -0
  511. package/components/upload/useUpload.js +7 -1
  512. package/components/upload/useUpload.js.map +1 -1
  513. package/components/visually-hidden/VisuallyHiddenDocs.d.ts +2 -0
  514. package/components/visually-hidden/VisuallyHiddenDocs.js +13 -0
  515. package/components/visually-hidden/VisuallyHiddenDocs.js.map +1 -0
  516. package/es/components/aria-live/AriaLiveDocs.d.ts +2 -0
  517. package/es/components/aria-live/AriaLiveDocs.js +48 -0
  518. package/es/components/aria-live/AriaLiveDocs.js.map +1 -0
  519. package/es/components/autocomplete/AutocompleteDocs.js +3 -3
  520. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
  521. package/es/components/avatar/Avatar.d.ts +10 -0
  522. package/es/components/avatar/Avatar.js +12 -3
  523. package/es/components/avatar/Avatar.js.map +1 -1
  524. package/es/components/avatar/AvatarDocs.d.ts +3 -0
  525. package/es/components/avatar/AvatarDocs.js +95 -0
  526. package/es/components/avatar/AvatarDocs.js.map +1 -0
  527. package/es/components/avatar/AvatarGroup.d.ts +10 -0
  528. package/es/components/avatar/AvatarGroup.js +17 -5
  529. package/es/components/avatar/AvatarGroup.js.map +1 -1
  530. package/es/components/avatar/style/dnb-avatar.css +8 -0
  531. package/es/components/avatar/style/dnb-avatar.min.css +1 -1
  532. package/es/components/avatar/style/dnb-avatar.scss +9 -0
  533. package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +5 -5
  534. package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
  535. package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +5 -6
  536. package/es/components/avatar/style/themes/dnb-avatar-theme-ui.css +5 -5
  537. package/es/components/avatar/style/themes/dnb-avatar-theme-ui.min.css +1 -1
  538. package/es/components/avatar/style/themes/dnb-avatar-theme-ui.scss +5 -5
  539. package/es/components/badge/BadgeDocs.d.ts +2 -0
  540. package/es/components/badge/BadgeDocs.js +48 -0
  541. package/es/components/badge/BadgeDocs.js.map +1 -0
  542. package/es/components/breadcrumb/BreadcrumbDocs.d.ts +5 -0
  543. package/es/components/breadcrumb/BreadcrumbDocs.js +119 -0
  544. package/es/components/breadcrumb/BreadcrumbDocs.js.map +1 -0
  545. package/es/components/button/Button.d.ts +0 -3
  546. package/es/components/button/ButtonDocs.d.ts +1 -0
  547. package/es/components/button/ButtonDocs.js +7 -0
  548. package/es/components/button/ButtonDocs.js.map +1 -1
  549. package/es/components/checkbox/CheckboxDocs.js +2 -2
  550. package/es/components/checkbox/CheckboxDocs.js.map +1 -1
  551. package/es/components/date-picker/DatePickerAddon.js +1 -3
  552. package/es/components/date-picker/DatePickerAddon.js.map +1 -1
  553. package/es/components/date-picker/DatePickerCalc.d.ts +13 -0
  554. package/es/components/date-picker/DatePickerCalc.js +39 -0
  555. package/es/components/date-picker/DatePickerCalc.js.map +1 -1
  556. package/es/components/date-picker/DatePickerCalendar.js +13 -11
  557. package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
  558. package/es/components/date-picker/DatePickerContext.d.ts +1 -1
  559. package/es/components/date-picker/DatePickerContext.js.map +1 -1
  560. package/es/components/date-picker/DatePickerDocs.js +1 -1
  561. package/es/components/date-picker/DatePickerDocs.js.map +1 -1
  562. package/es/components/date-picker/DatePickerInput.js +116 -92
  563. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  564. package/es/components/date-picker/DatePickerProvider.js +2 -2
  565. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  566. package/es/components/date-picker/hooks/useViews.d.ts +2 -4
  567. package/es/components/date-picker/hooks/useViews.js +39 -25
  568. package/es/components/date-picker/hooks/useViews.js.map +1 -1
  569. package/es/components/date-picker/style/dnb-date-picker.css +4 -0
  570. package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
  571. package/es/components/date-picker/style/dnb-date-picker.scss +3 -0
  572. package/es/components/dialog/DialogDocs.d.ts +1 -0
  573. package/es/components/dialog/DialogDocs.js +19 -2
  574. package/es/components/dialog/DialogDocs.js.map +1 -1
  575. package/es/components/drawer/DrawerDocs.d.ts +2 -0
  576. package/es/components/drawer/DrawerDocs.js +63 -0
  577. package/es/components/drawer/DrawerDocs.js.map +1 -0
  578. package/es/components/dropdown/Dropdown.d.ts +20 -20
  579. package/es/components/dropdown/DropdownDocs.d.ts +3 -0
  580. package/es/components/dropdown/DropdownDocs.js +180 -0
  581. package/es/components/dropdown/DropdownDocs.js.map +1 -0
  582. package/es/components/flex/ContainerDocs.js +1 -1
  583. package/es/components/flex/ContainerDocs.js.map +1 -1
  584. package/es/components/flex/ItemDocs.d.ts +2 -0
  585. package/es/components/flex/ItemDocs.js +33 -0
  586. package/es/components/flex/ItemDocs.js.map +1 -0
  587. package/es/components/form-label/FormLabelDocs.d.ts +2 -0
  588. package/es/components/form-label/FormLabelDocs.js +53 -0
  589. package/es/components/form-label/FormLabelDocs.js.map +1 -0
  590. package/es/components/form-row/FormRow.d.ts +45 -0
  591. package/es/components/form-row/FormRowDocs.d.ts +2 -0
  592. package/es/components/form-row/FormRowDocs.js +83 -0
  593. package/es/components/form-row/FormRowDocs.js.map +1 -0
  594. package/es/components/form-set/FormSet.d.ts +18 -0
  595. package/es/components/form-set/FormSetDocs.d.ts +3 -0
  596. package/es/components/form-set/FormSetDocs.js +50 -0
  597. package/es/components/form-set/FormSetDocs.js.map +1 -0
  598. package/es/components/form-status/FormStatus.d.ts +18 -18
  599. package/es/components/form-status/FormStatusDocs.d.ts +2 -0
  600. package/es/components/form-status/FormStatusDocs.js +83 -0
  601. package/es/components/form-status/FormStatusDocs.js.map +1 -0
  602. package/es/components/global-error/GlobalError.d.ts +12 -0
  603. package/es/components/global-error/GlobalError.js +14 -6
  604. package/es/components/global-error/GlobalError.js.map +1 -1
  605. package/es/components/global-error/GlobalErrorDocs.js +14 -4
  606. package/es/components/global-error/GlobalErrorDocs.js.map +1 -1
  607. package/es/components/global-status/GlobalStatus.d.ts +37 -58
  608. package/es/components/global-status/GlobalStatusController.d.ts +0 -9
  609. package/es/components/global-status/GlobalStatusDocs.d.ts +6 -0
  610. package/es/components/global-status/GlobalStatusDocs.js +186 -0
  611. package/es/components/global-status/GlobalStatusDocs.js.map +1 -0
  612. package/es/components/grid/ItemDocs.d.ts +2 -0
  613. package/es/components/grid/ItemDocs.js +13 -0
  614. package/es/components/grid/ItemDocs.js.map +1 -0
  615. package/es/components/heading/HeadingDocs.d.ts +2 -0
  616. package/es/components/heading/HeadingDocs.js +73 -0
  617. package/es/components/heading/HeadingDocs.js.map +1 -0
  618. package/es/components/help-button/HelpButtonDocs.d.ts +3 -0
  619. package/es/components/help-button/HelpButtonDocs.js +40 -0
  620. package/es/components/help-button/HelpButtonDocs.js.map +1 -0
  621. package/es/components/icon/IconDocs.d.ts +2 -0
  622. package/es/components/icon/IconDocs.js +53 -0
  623. package/es/components/icon/IconDocs.js.map +1 -0
  624. package/es/components/icon/IconPrimaryDocs.d.ts +2 -0
  625. package/es/components/icon/IconPrimaryDocs.js +18 -0
  626. package/es/components/icon/IconPrimaryDocs.js.map +1 -0
  627. package/es/components/info-card/InfoCard.d.ts +6 -1
  628. package/es/components/info-card/InfoCard.js +4 -3
  629. package/es/components/info-card/InfoCard.js.map +1 -1
  630. package/es/components/info-card/InfoCardDocs.js +8 -3
  631. package/es/components/info-card/InfoCardDocs.js.map +1 -1
  632. package/es/components/input/Input.d.ts +0 -21
  633. package/es/components/input/InputDocs.d.ts +1 -0
  634. package/es/components/input/InputDocs.js +35 -3
  635. package/es/components/input/InputDocs.js.map +1 -1
  636. package/es/components/input-masked/InputMasked.d.ts +0 -15
  637. package/es/components/input-masked/InputMaskedDocs.d.ts +2 -0
  638. package/es/components/input-masked/InputMaskedDocs.js +69 -0
  639. package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
  640. package/es/components/input-masked/MultiInputMaskedDocs.d.ts +4 -0
  641. package/es/components/input-masked/MultiInputMaskedDocs.js +87 -0
  642. package/es/components/input-masked/MultiInputMaskedDocs.js.map +1 -0
  643. package/es/components/input-masked/style/dnb-input-masked.css +9 -0
  644. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  645. package/es/components/input-masked/style/dnb-input-masked.scss +12 -0
  646. package/es/components/input-masked/text-mask/InputModeNumber.d.ts +8 -0
  647. package/es/components/input-masked/text-mask/InputModeNumber.js +39 -9
  648. package/es/components/input-masked/text-mask/InputModeNumber.js.map +1 -1
  649. package/es/components/input-masked/text-mask/adjustCaretPosition.d.ts +2 -1
  650. package/es/components/input-masked/text-mask/adjustCaretPosition.js +3 -2
  651. package/es/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  652. package/es/components/input-masked/text-mask/createTextMaskInputElement.js +9 -3
  653. package/es/components/input-masked/text-mask/createTextMaskInputElement.js.map +1 -1
  654. package/es/components/modal/ModalDocs.d.ts +3 -0
  655. package/es/components/modal/ModalDocs.js +185 -0
  656. package/es/components/modal/ModalDocs.js.map +1 -0
  657. package/es/components/pagination/Pagination.d.ts +35 -33
  658. package/es/components/pagination/Pagination.js +2 -0
  659. package/es/components/pagination/Pagination.js.map +1 -1
  660. package/es/components/pagination/PaginationDocs.d.ts +3 -0
  661. package/es/components/pagination/PaginationDocs.js +185 -0
  662. package/es/components/pagination/PaginationDocs.js.map +1 -0
  663. package/es/components/pagination/PaginationHelpers.d.ts +0 -3
  664. package/es/components/pagination/PaginationInfinity.d.ts +0 -3
  665. package/es/components/pagination/PaginationProvider.js +1 -1
  666. package/es/components/pagination/PaginationProvider.js.map +1 -1
  667. package/es/components/radio/Radio.d.ts +12 -15
  668. package/es/components/radio/RadioDocs.d.ts +5 -0
  669. package/es/components/radio/RadioDocs.js +139 -0
  670. package/es/components/radio/RadioDocs.js.map +1 -0
  671. package/es/components/radio/RadioGroup.d.ts +0 -30
  672. package/es/components/section/Section.js +1 -6
  673. package/es/components/section/Section.js.map +1 -1
  674. package/es/components/section/SectionDocs.js +1 -1
  675. package/es/components/section/SectionDocs.js.map +1 -1
  676. package/es/components/skeleton/SkeletonDocs.d.ts +2 -0
  677. package/es/components/skeleton/SkeletonDocs.js +38 -0
  678. package/es/components/skeleton/SkeletonDocs.js.map +1 -0
  679. package/es/components/skeleton/SkeletonHelper.d.ts +0 -6
  680. package/es/components/skip-content/SkipContentDocs.d.ts +2 -0
  681. package/es/components/skip-content/SkipContentDocs.js +23 -0
  682. package/es/components/skip-content/SkipContentDocs.js.map +1 -0
  683. package/es/components/slider/SliderDocs.js +2 -2
  684. package/es/components/slider/SliderDocs.js.map +1 -1
  685. package/es/components/space/SpaceDocs.d.ts +3 -0
  686. package/es/components/space/SpaceDocs.js +55 -0
  687. package/es/components/space/SpaceDocs.js.map +1 -0
  688. package/es/components/switch/SwitchDocs.js +2 -2
  689. package/es/components/switch/SwitchDocs.js.map +1 -1
  690. package/es/components/tag/TagDocs.d.ts +4 -0
  691. package/es/components/tag/TagDocs.js +87 -0
  692. package/es/components/tag/TagDocs.js.map +1 -0
  693. package/es/components/textarea/Textarea.d.ts +0 -12
  694. package/es/components/textarea/TextareaDocs.d.ts +1 -0
  695. package/es/components/textarea/TextareaDocs.js +25 -3
  696. package/es/components/textarea/TextareaDocs.js.map +1 -1
  697. package/es/components/timeline/TimelineDocs.d.ts +3 -0
  698. package/es/components/timeline/TimelineDocs.js +60 -0
  699. package/es/components/timeline/TimelineDocs.js.map +1 -0
  700. package/es/components/toggle-button/ToggleButton.d.ts +0 -3
  701. package/es/components/toggle-button/ToggleButtonDocs.d.ts +1 -0
  702. package/es/components/toggle-button/ToggleButtonDocs.js +7 -0
  703. package/es/components/toggle-button/ToggleButtonDocs.js.map +1 -1
  704. package/es/components/toggle-button/ToggleButtonGroup.d.ts +0 -3
  705. package/es/components/toggle-button/ToggleButtonGroupDocs.d.ts +1 -0
  706. package/es/components/toggle-button/ToggleButtonGroupDocs.js +8 -1
  707. package/es/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -1
  708. package/es/components/tooltip/TooltipDocs.d.ts +2 -0
  709. package/es/components/tooltip/TooltipDocs.js +73 -0
  710. package/es/components/tooltip/TooltipDocs.js.map +1 -0
  711. package/es/components/upload/Upload.js +6 -4
  712. package/es/components/upload/Upload.js.map +1 -1
  713. package/es/components/upload/UploadDocs.js +5 -0
  714. package/es/components/upload/UploadDocs.js.map +1 -1
  715. package/es/components/upload/UploadFileList.js +3 -1
  716. package/es/components/upload/UploadFileList.js.map +1 -1
  717. package/es/components/upload/UploadFileListCell.d.ts +6 -1
  718. package/es/components/upload/UploadFileListCell.js +8 -5
  719. package/es/components/upload/UploadFileListCell.js.map +1 -1
  720. package/es/components/upload/types.d.ts +5 -0
  721. package/es/components/upload/types.js.map +1 -1
  722. package/es/components/upload/useUpload.d.ts +1 -0
  723. package/es/components/upload/useUpload.js +7 -1
  724. package/es/components/upload/useUpload.js.map +1 -1
  725. package/es/components/visually-hidden/VisuallyHiddenDocs.d.ts +2 -0
  726. package/es/components/visually-hidden/VisuallyHiddenDocs.js +13 -0
  727. package/es/components/visually-hidden/VisuallyHiddenDocs.js.map +1 -0
  728. package/es/extensions/forms/DataContext/At/AtDocs.d.ts +2 -0
  729. package/es/extensions/forms/DataContext/At/AtDocs.js +18 -0
  730. package/es/extensions/forms/DataContext/At/AtDocs.js.map +1 -0
  731. package/es/extensions/forms/DataContext/Context.d.ts +6 -5
  732. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  733. package/es/extensions/forms/DataContext/Provider/Provider.js +28 -34
  734. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  735. package/es/extensions/forms/Field/Date/Date.d.ts +1 -0
  736. package/es/extensions/forms/Field/Date/Date.js +2 -3
  737. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  738. package/es/extensions/forms/Field/Password/Password.js +2 -1
  739. package/es/extensions/forms/Field/Password/Password.js.map +1 -1
  740. package/es/extensions/forms/Field/Password/PasswordDocs.d.ts +1 -0
  741. package/es/extensions/forms/Field/Password/PasswordDocs.js +13 -1
  742. package/es/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  743. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +9 -3
  744. package/es/extensions/forms/Field/String/StringDocs.js +1 -1
  745. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -1
  746. package/es/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  747. package/es/extensions/forms/Field/Upload/Upload.js +10 -2
  748. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  749. package/es/extensions/forms/Form/ButtonRow/ButtonRowDocs.d.ts +2 -0
  750. package/es/extensions/forms/Form/ButtonRow/ButtonRowDocs.js +13 -0
  751. package/es/extensions/forms/Form/ButtonRow/ButtonRowDocs.js.map +1 -0
  752. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  753. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  754. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +4 -4
  755. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  756. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  757. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  758. package/es/extensions/forms/Form/Visibility/useVisibility.js +10 -14
  759. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  760. package/es/extensions/forms/Value/Date/Date.d.ts +0 -6
  761. package/es/extensions/forms/Value/Date/Date.js +13 -34
  762. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  763. package/es/extensions/forms/Wizard/Buttons/ButtonsDocs.d.ts +2 -0
  764. package/es/extensions/forms/Wizard/Buttons/ButtonsDocs.js +8 -0
  765. package/es/extensions/forms/Wizard/Buttons/ButtonsDocs.js.map +1 -0
  766. package/es/extensions/forms/Wizard/Container/WizardContainer.js +2 -2
  767. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  768. package/es/extensions/forms/hooks/useFieldProps.js +8 -5
  769. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  770. package/es/extensions/payment-card/PaymentCard.d.ts +7 -7
  771. package/es/extensions/payment-card/PaymentCardDocs.d.ts +5 -0
  772. package/es/extensions/payment-card/PaymentCardDocs.js +199 -0
  773. package/es/extensions/payment-card/PaymentCardDocs.js.map +1 -0
  774. package/es/fragments/scroll-view/ScrollViewDocs.d.ts +2 -0
  775. package/es/fragments/scroll-view/ScrollViewDocs.js +13 -0
  776. package/es/fragments/scroll-view/ScrollViewDocs.js.map +1 -0
  777. package/es/fragments/text-counter/TextCounterDocs.d.ts +2 -0
  778. package/es/fragments/text-counter/TextCounterDocs.js +23 -0
  779. package/es/fragments/text-counter/TextCounterDocs.js.map +1 -0
  780. package/es/shared/Eufemia.d.ts +1 -1
  781. package/es/shared/Eufemia.js +2 -2
  782. package/es/shared/Eufemia.js.map +1 -1
  783. package/es/shared/MediaQueryDocs.d.ts +2 -0
  784. package/es/shared/MediaQueryDocs.js +28 -0
  785. package/es/shared/MediaQueryDocs.js.map +1 -0
  786. package/es/shared/ThemeDocs.d.ts +2 -0
  787. package/es/shared/ThemeDocs.js +33 -0
  788. package/es/shared/ThemeDocs.js.map +1 -0
  789. package/es/shared/helpers.d.ts +1 -0
  790. package/es/shared/helpers.js +6 -0
  791. package/es/shared/helpers.js.map +1 -1
  792. package/es/shared/locales/en-GB.d.ts +1 -0
  793. package/es/shared/locales/en-GB.js +1 -0
  794. package/es/shared/locales/en-GB.js.map +1 -1
  795. package/es/shared/locales/en-US.d.ts +1 -0
  796. package/es/shared/locales/index.d.ts +2 -0
  797. package/es/shared/locales/nb-NO.d.ts +1 -0
  798. package/es/shared/locales/nb-NO.js +1 -0
  799. package/es/shared/locales/nb-NO.js.map +1 -1
  800. package/es/shared/locales/sv-SE.d.ts +1 -0
  801. package/es/shared/locales/sv-SE.js +3 -2
  802. package/es/shared/locales/sv-SE.js.map +1 -1
  803. package/es/style/core/scopes.scss +1 -1
  804. package/es/style/dnb-ui-basis.css +1 -1
  805. package/es/style/dnb-ui-basis.min.css +1 -1
  806. package/es/style/dnb-ui-body.css +1 -1
  807. package/es/style/dnb-ui-body.min.css +1 -1
  808. package/es/style/dnb-ui-components.css +21 -0
  809. package/es/style/dnb-ui-components.min.css +1 -1
  810. package/es/style/dnb-ui-core.css +1 -1
  811. package/es/style/dnb-ui-core.min.css +1 -1
  812. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +26 -5
  813. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  814. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +26 -5
  815. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  816. package/es/style/themes/theme-ui/ui-theme-components.css +26 -5
  817. package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  818. package/esm/dnb-ui-basis.min.mjs +1 -1
  819. package/esm/dnb-ui-components.min.mjs +1 -1
  820. package/esm/dnb-ui-elements.min.mjs +1 -1
  821. package/esm/dnb-ui-extensions.min.mjs +1 -1
  822. package/esm/dnb-ui-lib.min.mjs +1 -1
  823. package/extensions/forms/DataContext/At/AtDocs.d.ts +2 -0
  824. package/extensions/forms/DataContext/At/AtDocs.js +18 -0
  825. package/extensions/forms/DataContext/At/AtDocs.js.map +1 -0
  826. package/extensions/forms/DataContext/Context.d.ts +6 -5
  827. package/extensions/forms/DataContext/Context.js.map +1 -1
  828. package/extensions/forms/DataContext/Provider/Provider.js +29 -35
  829. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  830. package/extensions/forms/Field/Date/Date.d.ts +1 -0
  831. package/extensions/forms/Field/Date/Date.js +2 -3
  832. package/extensions/forms/Field/Date/Date.js.map +1 -1
  833. package/extensions/forms/Field/Password/Password.js +2 -1
  834. package/extensions/forms/Field/Password/Password.js.map +1 -1
  835. package/extensions/forms/Field/Password/PasswordDocs.d.ts +1 -0
  836. package/extensions/forms/Field/Password/PasswordDocs.js +13 -1
  837. package/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  838. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +9 -3
  839. package/extensions/forms/Field/String/StringDocs.js +1 -1
  840. package/extensions/forms/Field/String/StringDocs.js.map +1 -1
  841. package/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  842. package/extensions/forms/Field/Upload/Upload.js +10 -2
  843. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  844. package/extensions/forms/Form/ButtonRow/ButtonRowDocs.d.ts +2 -0
  845. package/extensions/forms/Form/ButtonRow/ButtonRowDocs.js +13 -0
  846. package/extensions/forms/Form/ButtonRow/ButtonRowDocs.js.map +1 -0
  847. package/extensions/forms/Form/Isolation/IsolationDocs.js +1 -1
  848. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  849. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +4 -4
  850. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  851. package/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  852. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  853. package/extensions/forms/Form/Visibility/useVisibility.js +10 -14
  854. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  855. package/extensions/forms/Value/Date/Date.d.ts +0 -6
  856. package/extensions/forms/Value/Date/Date.js +14 -36
  857. package/extensions/forms/Value/Date/Date.js.map +1 -1
  858. package/extensions/forms/Wizard/Buttons/ButtonsDocs.d.ts +2 -0
  859. package/extensions/forms/Wizard/Buttons/ButtonsDocs.js +8 -0
  860. package/extensions/forms/Wizard/Buttons/ButtonsDocs.js.map +1 -0
  861. package/extensions/forms/Wizard/Container/WizardContainer.js +2 -2
  862. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  863. package/extensions/forms/hooks/useFieldProps.js +8 -5
  864. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  865. package/extensions/payment-card/PaymentCard.d.ts +7 -7
  866. package/extensions/payment-card/PaymentCardDocs.d.ts +5 -0
  867. package/extensions/payment-card/PaymentCardDocs.js +199 -0
  868. package/extensions/payment-card/PaymentCardDocs.js.map +1 -0
  869. package/fragments/scroll-view/ScrollViewDocs.d.ts +2 -0
  870. package/fragments/scroll-view/ScrollViewDocs.js +13 -0
  871. package/fragments/scroll-view/ScrollViewDocs.js.map +1 -0
  872. package/fragments/text-counter/TextCounterDocs.d.ts +2 -0
  873. package/fragments/text-counter/TextCounterDocs.js +23 -0
  874. package/fragments/text-counter/TextCounterDocs.js.map +1 -0
  875. package/package.json +1 -1
  876. package/shared/Eufemia.d.ts +1 -1
  877. package/shared/Eufemia.js +2 -2
  878. package/shared/Eufemia.js.map +1 -1
  879. package/shared/MediaQueryDocs.d.ts +2 -0
  880. package/shared/MediaQueryDocs.js +28 -0
  881. package/shared/MediaQueryDocs.js.map +1 -0
  882. package/shared/ThemeDocs.d.ts +2 -0
  883. package/shared/ThemeDocs.js +33 -0
  884. package/shared/ThemeDocs.js.map +1 -0
  885. package/shared/helpers.d.ts +1 -0
  886. package/shared/helpers.js +6 -0
  887. package/shared/helpers.js.map +1 -1
  888. package/shared/locales/en-GB.d.ts +1 -0
  889. package/shared/locales/en-GB.js +1 -0
  890. package/shared/locales/en-GB.js.map +1 -1
  891. package/shared/locales/en-US.d.ts +1 -0
  892. package/shared/locales/index.d.ts +2 -0
  893. package/shared/locales/nb-NO.d.ts +1 -0
  894. package/shared/locales/nb-NO.js +1 -0
  895. package/shared/locales/nb-NO.js.map +1 -1
  896. package/shared/locales/sv-SE.d.ts +1 -0
  897. package/shared/locales/sv-SE.js +3 -2
  898. package/shared/locales/sv-SE.js.map +1 -1
  899. package/style/core/scopes.scss +1 -1
  900. package/style/dnb-ui-basis.css +1 -1
  901. package/style/dnb-ui-basis.min.css +1 -1
  902. package/style/dnb-ui-body.css +1 -1
  903. package/style/dnb-ui-body.min.css +1 -1
  904. package/style/dnb-ui-components.css +21 -0
  905. package/style/dnb-ui-components.min.css +1 -1
  906. package/style/dnb-ui-core.css +1 -1
  907. package/style/dnb-ui-core.min.css +1 -1
  908. package/style/themes/theme-eiendom/eiendom-theme-components.css +26 -5
  909. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  910. package/style/themes/theme-sbanken/sbanken-theme-components.css +26 -5
  911. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  912. package/style/themes/theme-ui/ui-theme-components.css +26 -5
  913. package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  914. package/umd/dnb-ui-basis.min.js +1 -1
  915. package/umd/dnb-ui-components.min.js +1 -1
  916. package/umd/dnb-ui-elements.min.js +1 -1
  917. package/umd/dnb-ui-extensions.min.js +1 -1
  918. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Password.js","names":["React","useContext","useRef","useState","useCallback","classnames","SharedContext","StringField","SubmitButton","IconView","IconViewOff","IconViewMedium","IconViewOffMedium","convertSnakeCaseProps","useTranslation","Password","_ref","_innerRef$current","id","className","innerRef","value","label","disabled","size","externalProps","_objectWithoutProperties","_excluded","props","Object","freeze","hidden","setHidden","sharedContext","translations","ref","current","toggleVisibility","event","onShowPassword","onHidePassword","_objectSpread","focus","getAriaLabel","ariaLabels","showPassword","ariaLabelShow","hidePassword","ariaLabelHide","show_password","hide_password","ToggleVisibilityButton","createElement","type","variant","icon","skeleton","onClick","_extends","submitElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Password/Password.tsx"],"sourcesContent":["import React, {\n useContext,\n useRef,\n useState,\n ElementRef,\n MutableRefObject,\n useCallback,\n} from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport StringField, { Props as StringFieldProps } from '../String'\n\nimport { InputProps, SubmitButton } from '../../../../components/Input'\nimport IconView from '../../../../icons/view'\nimport IconViewOff from '../../../../icons/hide'\nimport IconViewMedium from '../../../../icons/view_medium'\nimport IconViewOffMedium from '../../../../icons/hide_medium'\nimport { convertSnakeCaseProps } from '../../../../shared/helpers/withSnakeCaseProps'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type PasswordVisibilityEvent =\n React.MouseEvent<HTMLButtonElement> & {\n value: string\n }\n\nexport type PasswordProps = Omit<StringFieldProps, 'innerRef'> & {\n /**\n * Fires when the input toggles to show the password.\n */\n onShowPassword?: (event: PasswordVisibilityEvent) => void\n /**\n * Fires when the input toggles to hide the password.\n */\n onHidePassword?: (event: PasswordVisibilityEvent) => void\n /**\n * The sizes you can choose is small (1.5rem), default (2rem), medium (2.5rem) and large (3rem) are supported component sizes. Defaults to default / null. Also, if you define a number like size=\"2\" then it will be forwarded as the input element attribute.\n */\n size?: InputProps['size']\n /**\n * ElementRef passed on to the password input element.\n */\n innerRef?: MutableRefObject<HTMLInputElement>\n /**\n * @deprecated in v11, use use `locales`prop on `Provider` and override `passwordShowLabel` instead.\n */\n show_password?: string\n /**\n * @deprecated in v11, use use `locales`prop on `Provider` and override `passwordHideLabel` instead.\n */\n hide_password?: string\n /**\n * @deprecated in v11, use `onShowPassword` instead.\n */\n on_show_password?: (event: PasswordVisibilityEvent) => void\n /**\n * @deprecated in v11, use `onHidePassword` instead.\n */\n on_hide_password?: (event: PasswordVisibilityEvent) => void\n}\n\nfunction Password({\n id,\n className,\n innerRef,\n value,\n label,\n disabled,\n size,\n ...externalProps\n}: PasswordProps) {\n // Object freeze used to prevent mutation of show_password and hide_password props. Freeze and convertToSnakeCase can be removed in v11.\n const props = convertSnakeCaseProps(Object.freeze(externalProps))\n\n const [hidden, setHidden] = useState<boolean>(true)\n\n const sharedContext = useContext(SharedContext)\n const translations = useTranslation().Password\n\n const ref = useRef<ElementRef<'input'>>(innerRef?.current ?? null)\n\n const toggleVisibility = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n const { onShowPassword, onHidePassword } =\n convertSnakeCaseProps(props)\n\n const value = ref.current.value\n\n setHidden((hidden) => {\n hidden\n ? onShowPassword?.({ ...event, value })\n : onHidePassword?.({ ...event, value })\n\n return !hidden\n })\n\n if (ref.current) {\n ref.current.focus()\n }\n },\n [props]\n )\n\n // Can be removed with v11, just used to make sure that the old show_password and hide_password are still backward compatible.\n const getAriaLabel = useCallback(() => {\n const ariaLabels = {\n showPassword: translations.ariaLabelShow,\n hidePassword: translations.ariaLabelHide,\n }\n\n if (externalProps.show_password) {\n ariaLabels['showPassword'] = externalProps.show_password\n }\n\n if (externalProps.hide_password) {\n ariaLabels['hidePassword'] = externalProps.hide_password\n }\n\n return ariaLabels\n }, [\n externalProps.show_password,\n externalProps.hide_password,\n translations,\n ])\n\n const ariaLabels = getAriaLabel()\n\n const ToggleVisibilityButton = useCallback(() => {\n return (\n <SubmitButton\n id={id + '-submit-button'}\n type=\"button\"\n variant=\"secondary\"\n aria-controls={id}\n aria-label={\n hidden ? ariaLabels.showPassword : ariaLabels.hidePassword\n }\n icon={\n size === 'large'\n ? hidden\n ? IconViewMedium\n : IconViewOffMedium\n : hidden\n ? IconView\n : IconViewOff\n }\n disabled={disabled}\n skeleton={sharedContext.skeleton}\n onClick={toggleVisibility}\n />\n )\n }, [\n id,\n hidden,\n sharedContext.skeleton,\n disabled,\n size,\n toggleVisibility,\n ariaLabels,\n ])\n\n return (\n <StringField\n id={id}\n className={classnames('dnb-forms-field-password', className)}\n label={label ?? translations.label}\n type={hidden ? 'password' : 'text'}\n value={value}\n innerRef={ref}\n aria-describedby={id + '-submit-button'}\n submitElement={<ToggleVisibilityButton />}\n disabled={disabled}\n size={size}\n {...props}\n />\n )\n}\n\nexport default Password\n\nPassword._supportsSpacingProps = true\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Password.js","names":["React","useContext","useRef","useState","useCallback","classnames","SharedContext","StringField","SubmitButton","IconView","IconViewOff","IconViewMedium","IconViewOffMedium","convertSnakeCaseProps","useTranslation","Password","_ref","_innerRef$current","id","className","innerRef","value","label","disabled","size","externalProps","_objectWithoutProperties","_excluded","props","Object","freeze","hidden","setHidden","sharedContext","translations","ref","current","toggleVisibility","event","onShowPassword","onHidePassword","_objectSpread","focus","getAriaLabel","ariaLabels","showPassword","ariaLabelShow","hidePassword","ariaLabelHide","show_password","hide_password","ToggleVisibilityButton","createElement","type","variant","icon","skeleton","onClick","_extends","submitElement","autoComplete","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Password/Password.tsx"],"sourcesContent":["import React, {\n useContext,\n useRef,\n useState,\n ElementRef,\n MutableRefObject,\n useCallback,\n} from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport StringField, { Props as StringFieldProps } from '../String'\n\nimport { InputProps, SubmitButton } from '../../../../components/Input'\nimport IconView from '../../../../icons/view'\nimport IconViewOff from '../../../../icons/hide'\nimport IconViewMedium from '../../../../icons/view_medium'\nimport IconViewOffMedium from '../../../../icons/hide_medium'\nimport { convertSnakeCaseProps } from '../../../../shared/helpers/withSnakeCaseProps'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type PasswordVisibilityEvent =\n React.MouseEvent<HTMLButtonElement> & {\n value: string\n }\n\nexport type PasswordProps = Omit<StringFieldProps, 'innerRef'> & {\n /**\n * Fires when the input toggles to show the password.\n */\n onShowPassword?: (event: PasswordVisibilityEvent) => void\n /**\n * Fires when the input toggles to hide the password.\n */\n onHidePassword?: (event: PasswordVisibilityEvent) => void\n /**\n * The sizes you can choose is small (1.5rem), default (2rem), medium (2.5rem) and large (3rem) are supported component sizes. Defaults to default / null. Also, if you define a number like size=\"2\" then it will be forwarded as the input element attribute.\n */\n size?: InputProps['size']\n /**\n * ElementRef passed on to the password input element.\n */\n innerRef?: MutableRefObject<HTMLInputElement>\n /**\n * @deprecated in v11, use use `locales`prop on `Provider` and override `passwordShowLabel` instead.\n */\n show_password?: string\n /**\n * @deprecated in v11, use use `locales`prop on `Provider` and override `passwordHideLabel` instead.\n */\n hide_password?: string\n /**\n * @deprecated in v11, use `onShowPassword` instead.\n */\n on_show_password?: (event: PasswordVisibilityEvent) => void\n /**\n * @deprecated in v11, use `onHidePassword` instead.\n */\n on_hide_password?: (event: PasswordVisibilityEvent) => void\n}\n\nfunction Password({\n id,\n className,\n innerRef,\n value,\n label,\n disabled,\n size,\n ...externalProps\n}: PasswordProps) {\n // Object freeze used to prevent mutation of show_password and hide_password props. Freeze and convertToSnakeCase can be removed in v11.\n const props = convertSnakeCaseProps(Object.freeze(externalProps))\n\n const [hidden, setHidden] = useState<boolean>(true)\n\n const sharedContext = useContext(SharedContext)\n const translations = useTranslation().Password\n\n const ref = useRef<ElementRef<'input'>>(innerRef?.current ?? null)\n\n const toggleVisibility = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n const { onShowPassword, onHidePassword } =\n convertSnakeCaseProps(props)\n\n const value = ref.current.value\n\n setHidden((hidden) => {\n hidden\n ? onShowPassword?.({ ...event, value })\n : onHidePassword?.({ ...event, value })\n\n return !hidden\n })\n\n if (ref.current) {\n ref.current.focus()\n }\n },\n [props]\n )\n\n // Can be removed with v11, just used to make sure that the old show_password and hide_password are still backward compatible.\n const getAriaLabel = useCallback(() => {\n const ariaLabels = {\n showPassword: translations.ariaLabelShow,\n hidePassword: translations.ariaLabelHide,\n }\n\n if (externalProps.show_password) {\n ariaLabels['showPassword'] = externalProps.show_password\n }\n\n if (externalProps.hide_password) {\n ariaLabels['hidePassword'] = externalProps.hide_password\n }\n\n return ariaLabels\n }, [\n externalProps.show_password,\n externalProps.hide_password,\n translations,\n ])\n\n const ariaLabels = getAriaLabel()\n\n const ToggleVisibilityButton = useCallback(() => {\n return (\n <SubmitButton\n id={id + '-submit-button'}\n type=\"button\"\n variant=\"secondary\"\n aria-controls={id}\n aria-label={\n hidden ? ariaLabels.showPassword : ariaLabels.hidePassword\n }\n icon={\n size === 'large'\n ? hidden\n ? IconViewMedium\n : IconViewOffMedium\n : hidden\n ? IconView\n : IconViewOff\n }\n disabled={disabled}\n skeleton={sharedContext.skeleton}\n onClick={toggleVisibility}\n />\n )\n }, [\n id,\n hidden,\n sharedContext.skeleton,\n disabled,\n size,\n toggleVisibility,\n ariaLabels,\n ])\n\n return (\n <StringField\n id={id}\n className={classnames('dnb-forms-field-password', className)}\n label={label ?? translations.label}\n type={hidden ? 'password' : 'text'}\n value={value}\n innerRef={ref}\n aria-describedby={id + '-submit-button'}\n submitElement={<ToggleVisibilityButton />}\n disabled={disabled}\n size={size}\n autoComplete=\"current-password\"\n {...props}\n />\n )\n}\n\nexport default Password\n\nPassword._supportsSpacingProps = true\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,3 @@
1
1
  import { PropertiesTableProps } from '../../../../shared/types';
2
2
  export declare const PasswordProperties: PropertiesTableProps;
3
+ export declare const PasswordEvents: PropertiesTableProps;
@@ -11,7 +11,7 @@ export const PasswordProperties = {
11
11
  },
12
12
  innerRef: {
13
13
  doc: '`ElementRef` passed on to the password `input` element.',
14
- type: 'object',
14
+ type: 'React.RefObject',
15
15
  status: 'optional'
16
16
  },
17
17
  '[Space](/uilib/layout/space/properties)': {
@@ -20,4 +20,16 @@ export const PasswordProperties = {
20
20
  status: 'optional'
21
21
  }
22
22
  };
23
+ export const PasswordEvents = {
24
+ onShowPassword: {
25
+ doc: 'Will be called when the user toggles the password to be visible.',
26
+ type: 'function',
27
+ status: 'optional'
28
+ },
29
+ onHidePassword: {
30
+ doc: 'Will be called when the user toggles the password to be hidden.',
31
+ type: 'function',
32
+ status: 'optional'
33
+ }
34
+ };
23
35
  //# sourceMappingURL=PasswordDocs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PasswordDocs.js","names":["PasswordProperties","pattern","doc","type","status","size","innerRef"],"sources":["../../../../../../src/extensions/forms/Field/Password/PasswordDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const PasswordProperties: PropertiesTableProps = {\n pattern: {\n doc: 'Validation based on regex pattern for the number field e.g. `pattern=\"w{8}d{4}\"`.',\n type: 'string',\n status: 'optional',\n },\n size: {\n doc: 'The sizes you can choose is small (1.5rem), default (2rem), medium (2.5rem) and large (3rem) are supported component sizes. Defaults to default / null. Also, if you define a number like size=\"2\" then it will be forwarded as the input element attribute. Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).',\n type: ['string', 'number'],\n status: 'optional',\n },\n innerRef: {\n doc: '`ElementRef` passed on to the password `input` element.',\n type: 'object',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,kBAAwC,GAAG;EACtDC,OAAO,EAAE;IACPC,GAAG,EAAE,mFAAmF;IACxFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,oWAAoW;IACzWC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDE,QAAQ,EAAE;IACRJ,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"PasswordDocs.js","names":["PasswordProperties","pattern","doc","type","status","size","innerRef","PasswordEvents","onShowPassword","onHidePassword"],"sources":["../../../../../../src/extensions/forms/Field/Password/PasswordDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const PasswordProperties: PropertiesTableProps = {\n pattern: {\n doc: 'Validation based on regex pattern for the number field e.g. `pattern=\"w{8}d{4}\"`.',\n type: 'string',\n status: 'optional',\n },\n size: {\n doc: 'The sizes you can choose is small (1.5rem), default (2rem), medium (2.5rem) and large (3rem) are supported component sizes. Defaults to default / null. Also, if you define a number like size=\"2\" then it will be forwarded as the input element attribute. Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).',\n type: ['string', 'number'],\n status: 'optional',\n },\n innerRef: {\n doc: '`ElementRef` passed on to the password `input` element.',\n type: 'React.RefObject',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const PasswordEvents: PropertiesTableProps = {\n onShowPassword: {\n doc: 'Will be called when the user toggles the password to be visible.',\n type: 'function',\n status: 'optional',\n },\n onHidePassword: {\n doc: 'Will be called when the user toggles the password to be hidden.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,kBAAwC,GAAG;EACtDC,OAAO,EAAE;IACPC,GAAG,EAAE,mFAAmF;IACxFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,oWAAoW;IACzWC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDE,QAAQ,EAAE;IACRJ,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,iBAAiB;IACvBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMG,cAAoC,GAAG;EAClDC,cAAc,EAAE;IACdN,GAAG,EAAE,kEAAkE;IACvEC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDK,cAAc,EAAE;IACdP,GAAG,EAAE,iEAAiE;IACtEC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC","ignoreList":[]}
@@ -85,8 +85,10 @@ declare function useFieldProvider(props?: Omit<FieldProviderProps, 'children'>):
85
85
  };
86
86
  getValueByPath: import("../../hooks/useDataValue").GetValueByPath<unknown>;
87
87
  getSourceValue: import("../../hooks/useDataValue").GetValueByPath<unknown>;
88
- setFieldEventListener: (path: string, type: "onSubmit" | "onSubmitRequest" | "onPathChange" | "onMount", callback: (params?: {
88
+ setFieldEventListener: (path: string, type: "onSubmit" | "onSubmitCall" | "onSubmitRequest" | "onPathChange" | "onMount", callback: (params?: {
89
89
  value: unknown;
90
+ } | {
91
+ preventSubmit: () => void;
90
92
  }) => void | Promise<void | Error>) => void;
91
93
  validators: Record<string, import("../../types").Validator<unknown, import("../../types").DefaultErrorMessages>>;
92
94
  props: import("../../types").UseFieldProps<unknown, unknown, import("../../types").DefaultErrorMessages>;
@@ -105,8 +107,10 @@ declare function useFieldProvider(props?: Omit<FieldProviderProps, 'children'>):
105
107
  };
106
108
  getValueByPath: import("../../hooks/useDataValue").GetValueByPath<unknown>;
107
109
  getSourceValue: import("../../hooks/useDataValue").GetValueByPath<unknown>;
108
- setFieldEventListener: (path: string, type: "onSubmit" | "onSubmitRequest" | "onPathChange" | "onMount", callback: (params?: {
110
+ setFieldEventListener: (path: string, type: "onSubmit" | "onSubmitCall" | "onSubmitRequest" | "onPathChange" | "onMount", callback: (params?: {
109
111
  value: unknown;
112
+ } | {
113
+ preventSubmit: () => void;
110
114
  }) => void | Promise<void | Error>) => void;
111
115
  validators: Record<string, import("../../types").Validator<unknown, import("../../types").DefaultErrorMessages>>;
112
116
  props: import("../../types").UseFieldProps<unknown, unknown, import("../../types").DefaultErrorMessages>;
@@ -125,8 +129,10 @@ declare function useFieldProvider(props?: Omit<FieldProviderProps, 'children'>):
125
129
  };
126
130
  getValueByPath: import("../../hooks/useDataValue").GetValueByPath<unknown>;
127
131
  getSourceValue: import("../../hooks/useDataValue").GetValueByPath<unknown>;
128
- setFieldEventListener: (path: string, type: "onSubmit" | "onSubmitRequest" | "onPathChange" | "onMount", callback: (params?: {
132
+ setFieldEventListener: (path: string, type: "onSubmit" | "onSubmitCall" | "onSubmitRequest" | "onPathChange" | "onMount", callback: (params?: {
129
133
  value: unknown;
134
+ } | {
135
+ preventSubmit: () => void;
130
136
  }) => void | Promise<void | Error>) => void;
131
137
  validators: Record<string, import("../../types").Validator<unknown, import("../../types").DefaultErrorMessages>>;
132
138
  props: import("../../types").UseFieldProps<unknown, unknown, import("../../types").DefaultErrorMessages>;
@@ -92,7 +92,7 @@ export const stringProperties = {
92
92
  },
93
93
  innerRef: {
94
94
  doc: 'By providing a React.Ref we can get the internally used input element (DOM).',
95
- type: 'React.Ref',
95
+ type: 'React.RefObject',
96
96
  status: 'optional'
97
97
  },
98
98
  submitElement: {
@@ -1 +1 @@
1
- {"version":3,"file":"StringDocs.js","names":["inputProperties","stringProperties","multiline","doc","type","status","leftIcon","rightIcon","capitalize","trim","inputMode","autoComplete","minLength","maxLength","pattern","width","size","_objectSpread","align","selectall","clear","keepPlaceholder","keep_placeholder","rows","autoresizeMaxRows","characterCounter","autoresize","inputClassName","innerRef","submitElement"],"sources":["../../../../../../src/extensions/forms/Field/String/StringDocs.ts"],"sourcesContent":["import { inputProperties } from '../../../../components/input/InputDocs'\nimport { PropertiesTableProps } from '../../../../shared/types'\n\nexport const stringProperties: PropertiesTableProps = {\n multiline: {\n doc: 'True to be able to write in multiple lines (switching from input-element to textarea-element).',\n type: 'boolean',\n status: 'optional',\n },\n leftIcon: {\n doc: 'For icon at the left side of the text input.',\n type: 'string',\n status: 'optional',\n },\n rightIcon: {\n doc: 'For icon at the right side of the text input.',\n type: 'string',\n status: 'optional',\n },\n capitalize: {\n doc: 'When set to true, it will capitalize the first letter of every word, transforming the rest to lowercase.',\n type: 'boolean',\n status: 'optional',\n },\n trim: {\n doc: 'When true, it will trim leading and trailing whitespaces on blur, triggering onChange if the value changes.',\n type: 'boolean',\n status: 'optional',\n },\n inputMode: {\n doc: 'Define an [inputmode](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode).',\n type: 'string',\n status: 'optional',\n },\n autoComplete: {\n doc: 'For HTML [autocomplete](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) attributes.',\n type: ['on', 'string'],\n status: 'optional',\n },\n minLength: {\n doc: 'Validation for minimum length of the text (number of characters).',\n type: 'number',\n status: 'optional',\n },\n maxLength: {\n doc: 'Validation for maximum length of the text (number of characters).',\n type: 'number',\n status: 'optional',\n },\n pattern: {\n doc: 'Validation based on regex pattern.',\n type: 'string',\n status: 'optional',\n },\n width: {\n doc: '`false` for no width (use browser default), small, medium or large for predefined standard widths, stretch to fill available width.',\n type: ['string', 'false'],\n status: 'optional',\n },\n\n // - Input props\n size: {\n ...inputProperties.size,\n doc: `${inputProperties.size.doc} Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).`,\n },\n align: inputProperties.align,\n selectall: inputProperties.selectall,\n clear: inputProperties.clear,\n keepPlaceholder: inputProperties.keep_placeholder,\n\n // - Textarea props\n rows: {\n doc: 'For multiline, set how many rows of text can be shown by default. Defaults to 2.',\n type: 'number',\n status: 'optional',\n },\n autoresizeMaxRows: {\n doc: 'For multiline, set how many rows of text can be shown at max. Defaults to 6',\n type: 'number',\n status: 'optional',\n },\n characterCounter: {\n doc: \"For multiline, use a number to define the displayed max length e.g. `40` or `{ max: 40, variant: 'down' }`.\",\n type: ['number', 'object'],\n status: 'optional',\n },\n autoresize: {\n doc: 'For multiline, set true to expand when writing longer texts. Defaults to true.',\n type: 'boolean',\n status: 'optional',\n },\n\n // - Additional props\n inputClassName: {\n doc: 'Class name set on the <input> DOM element.',\n type: 'string',\n status: 'optional',\n },\n innerRef: {\n doc: 'By providing a React.Ref we can get the internally used input element (DOM).',\n type: 'React.Ref',\n status: 'optional',\n },\n submitElement: {\n doc: 'Accepts a React element which will show up like the \"submit button\" would do on type=\"search\".',\n type: 'React.Element',\n status: 'optional',\n },\n}\n"],"mappings":";;;AAAA,SAASA,eAAe,QAAQ,wCAAwC;AAGxE,OAAO,MAAMC,gBAAsC,GAAG;EACpDC,SAAS,EAAE;IACTC,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACRH,GAAG,EAAE,8CAA8C;IACnDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,SAAS,EAAE;IACTJ,GAAG,EAAE,+CAA+C;IACpDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,UAAU,EAAE;IACVL,GAAG,EAAE,0GAA0G;IAC/GC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,IAAI,EAAE;IACJN,GAAG,EAAE,6GAA6G;IAClHC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,uGAAuG;IAC5GC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,YAAY,EAAE;IACZR,GAAG,EAAE,gHAAgH;IACrHC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;IACtBC,MAAM,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACTT,GAAG,EAAE,mEAAmE;IACxEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,SAAS,EAAE;IACTV,GAAG,EAAE,mEAAmE;IACxEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,OAAO,EAAE;IACPX,GAAG,EAAE,oCAAoC;IACzCC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDU,KAAK,EAAE;IACLZ,GAAG,EAAE,qIAAqI;IAC1IC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EAGDW,IAAI,EAAAC,aAAA,CAAAA,aAAA,KACCjB,eAAe,CAACgB,IAAI;IACvBb,GAAG,EAAE,GAAGH,eAAe,CAACgB,IAAI,CAACb,GAAG;EAAwG,EACzI;EACDe,KAAK,EAAElB,eAAe,CAACkB,KAAK;EAC5BC,SAAS,EAAEnB,eAAe,CAACmB,SAAS;EACpCC,KAAK,EAAEpB,eAAe,CAACoB,KAAK;EAC5BC,eAAe,EAAErB,eAAe,CAACsB,gBAAgB;EAGjDC,IAAI,EAAE;IACJpB,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDmB,iBAAiB,EAAE;IACjBrB,GAAG,EAAE,6EAA6E;IAClFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDoB,gBAAgB,EAAE;IAChBtB,GAAG,EAAE,6GAA6G;IAClHC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDqB,UAAU,EAAE;IACVvB,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EAGDsB,cAAc,EAAE;IACdxB,GAAG,EAAE,4CAA4C;IACjDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDuB,QAAQ,EAAE;IACRzB,GAAG,EAAE,8EAA8E;IACnFC,IAAI,EAAE,WAAW;IACjBC,MAAM,EAAE;EACV,CAAC;EACDwB,aAAa,EAAE;IACb1B,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,eAAe;IACrBC,MAAM,EAAE;EACV;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"StringDocs.js","names":["inputProperties","stringProperties","multiline","doc","type","status","leftIcon","rightIcon","capitalize","trim","inputMode","autoComplete","minLength","maxLength","pattern","width","size","_objectSpread","align","selectall","clear","keepPlaceholder","keep_placeholder","rows","autoresizeMaxRows","characterCounter","autoresize","inputClassName","innerRef","submitElement"],"sources":["../../../../../../src/extensions/forms/Field/String/StringDocs.ts"],"sourcesContent":["import { inputProperties } from '../../../../components/input/InputDocs'\nimport { PropertiesTableProps } from '../../../../shared/types'\n\nexport const stringProperties: PropertiesTableProps = {\n multiline: {\n doc: 'True to be able to write in multiple lines (switching from input-element to textarea-element).',\n type: 'boolean',\n status: 'optional',\n },\n leftIcon: {\n doc: 'For icon at the left side of the text input.',\n type: 'string',\n status: 'optional',\n },\n rightIcon: {\n doc: 'For icon at the right side of the text input.',\n type: 'string',\n status: 'optional',\n },\n capitalize: {\n doc: 'When set to true, it will capitalize the first letter of every word, transforming the rest to lowercase.',\n type: 'boolean',\n status: 'optional',\n },\n trim: {\n doc: 'When true, it will trim leading and trailing whitespaces on blur, triggering onChange if the value changes.',\n type: 'boolean',\n status: 'optional',\n },\n inputMode: {\n doc: 'Define an [inputmode](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode).',\n type: 'string',\n status: 'optional',\n },\n autoComplete: {\n doc: 'For HTML [autocomplete](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) attributes.',\n type: ['on', 'string'],\n status: 'optional',\n },\n minLength: {\n doc: 'Validation for minimum length of the text (number of characters).',\n type: 'number',\n status: 'optional',\n },\n maxLength: {\n doc: 'Validation for maximum length of the text (number of characters).',\n type: 'number',\n status: 'optional',\n },\n pattern: {\n doc: 'Validation based on regex pattern.',\n type: 'string',\n status: 'optional',\n },\n width: {\n doc: '`false` for no width (use browser default), small, medium or large for predefined standard widths, stretch to fill available width.',\n type: ['string', 'false'],\n status: 'optional',\n },\n\n // - Input props\n size: {\n ...inputProperties.size,\n doc: `${inputProperties.size.doc} Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).`,\n },\n align: inputProperties.align,\n selectall: inputProperties.selectall,\n clear: inputProperties.clear,\n keepPlaceholder: inputProperties.keep_placeholder,\n\n // - Textarea props\n rows: {\n doc: 'For multiline, set how many rows of text can be shown by default. Defaults to 2.',\n type: 'number',\n status: 'optional',\n },\n autoresizeMaxRows: {\n doc: 'For multiline, set how many rows of text can be shown at max. Defaults to 6',\n type: 'number',\n status: 'optional',\n },\n characterCounter: {\n doc: \"For multiline, use a number to define the displayed max length e.g. `40` or `{ max: 40, variant: 'down' }`.\",\n type: ['number', 'object'],\n status: 'optional',\n },\n autoresize: {\n doc: 'For multiline, set true to expand when writing longer texts. Defaults to true.',\n type: 'boolean',\n status: 'optional',\n },\n\n // - Additional props\n inputClassName: {\n doc: 'Class name set on the <input> DOM element.',\n type: 'string',\n status: 'optional',\n },\n innerRef: {\n doc: 'By providing a React.Ref we can get the internally used input element (DOM).',\n type: 'React.RefObject',\n status: 'optional',\n },\n submitElement: {\n doc: 'Accepts a React element which will show up like the \"submit button\" would do on type=\"search\".',\n type: 'React.Element',\n status: 'optional',\n },\n}\n"],"mappings":";;;AAAA,SAASA,eAAe,QAAQ,wCAAwC;AAGxE,OAAO,MAAMC,gBAAsC,GAAG;EACpDC,SAAS,EAAE;IACTC,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACRH,GAAG,EAAE,8CAA8C;IACnDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,SAAS,EAAE;IACTJ,GAAG,EAAE,+CAA+C;IACpDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,UAAU,EAAE;IACVL,GAAG,EAAE,0GAA0G;IAC/GC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,IAAI,EAAE;IACJN,GAAG,EAAE,6GAA6G;IAClHC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,uGAAuG;IAC5GC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,YAAY,EAAE;IACZR,GAAG,EAAE,gHAAgH;IACrHC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;IACtBC,MAAM,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACTT,GAAG,EAAE,mEAAmE;IACxEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,SAAS,EAAE;IACTV,GAAG,EAAE,mEAAmE;IACxEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,OAAO,EAAE;IACPX,GAAG,EAAE,oCAAoC;IACzCC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDU,KAAK,EAAE;IACLZ,GAAG,EAAE,qIAAqI;IAC1IC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EAGDW,IAAI,EAAAC,aAAA,CAAAA,aAAA,KACCjB,eAAe,CAACgB,IAAI;IACvBb,GAAG,EAAE,GAAGH,eAAe,CAACgB,IAAI,CAACb,GAAG;EAAwG,EACzI;EACDe,KAAK,EAAElB,eAAe,CAACkB,KAAK;EAC5BC,SAAS,EAAEnB,eAAe,CAACmB,SAAS;EACpCC,KAAK,EAAEpB,eAAe,CAACoB,KAAK;EAC5BC,eAAe,EAAErB,eAAe,CAACsB,gBAAgB;EAGjDC,IAAI,EAAE;IACJpB,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDmB,iBAAiB,EAAE;IACjBrB,GAAG,EAAE,6EAA6E;IAClFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDoB,gBAAgB,EAAE;IAChBtB,GAAG,EAAE,6GAA6G;IAClHC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDqB,UAAU,EAAE;IACVvB,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EAGDsB,cAAc,EAAE;IACdxB,GAAG,EAAE,4CAA4C;IACjDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDuB,QAAQ,EAAE;IACRzB,GAAG,EAAE,8EAA8E;IACnFC,IAAI,EAAE,iBAAiB;IACvBC,MAAM,EAAE;EACV,CAAC;EACDwB,aAAa,EAAE;IACb1B,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,eAAe;IACrBC,MAAM,EAAE;EACV;AACF,CAAC","ignoreList":[]}
@@ -6,7 +6,7 @@ export type { UploadFile, UploadFileNative };
6
6
  export type UploadValue = Array<UploadFile | UploadFileNative>;
7
7
  export type Props = Omit<FieldProps<UploadValue, UploadValue | undefined>, 'name'> & SpacingProps & {
8
8
  width?: Omit<FieldBlockWidth, 'medium' | 'small'>;
9
- } & Pick<Partial<UploadProps>, 'title' | 'text' | 'acceptedFileTypes' | 'filesAmountLimit' | 'fileMaxSize' | 'onFileDelete' | 'onFileClick' | 'skeleton' | 'download'> & {
9
+ } & Pick<Partial<UploadProps>, 'title' | 'text' | 'acceptedFileTypes' | 'filesAmountLimit' | 'fileMaxSize' | 'onFileDelete' | 'onFileClick' | 'skeleton' | 'download' | 'allowDuplicates'> & {
10
10
  fileHandler?: (newFiles: UploadValue) => UploadValue | Promise<UploadValue>;
11
11
  };
12
12
  declare function UploadComponent(props: Props): import("react/jsx-runtime").JSX.Element;
@@ -79,7 +79,9 @@ function UploadComponent(props) {
79
79
  fileMaxSize = 5,
80
80
  skeleton,
81
81
  onFileDelete,
82
- onFileClick
82
+ onFileClick,
83
+ download,
84
+ allowDuplicates
83
85
  } = rest;
84
86
  const {
85
87
  files,
@@ -151,6 +153,8 @@ function UploadComponent(props) {
151
153
  id: id,
152
154
  acceptedFileTypes: acceptedFileTypes,
153
155
  filesAmountLimit: filesAmountLimit,
156
+ download: download,
157
+ allowDuplicates: allowDuplicates,
154
158
  fileMaxSize: fileMaxSize,
155
159
  skeleton: skeleton,
156
160
  onChange: changeHandler,
@@ -177,7 +181,11 @@ export function transformFiles(value) {
177
181
  }
178
182
  value.map(item => {
179
183
  if (item !== null && item !== void 0 && item.file && !(item.file instanceof File)) {
180
- item['file'] = new File([], item['name']);
184
+ var _lastModified, _item$file2, _type, _item$file3;
185
+ item['file'] = new File([], item['name'] || (item === null || item === void 0 ? void 0 : item.file['name']), {
186
+ lastModified: (_lastModified = (_item$file2 = item.file) === null || _item$file2 === void 0 ? void 0 : _item$file2.lastModified) !== null && _lastModified !== void 0 ? _lastModified : 0,
187
+ type: (_type = (_item$file3 = item.file) === null || _item$file3 === void 0 ? void 0 : _item$file3.type) !== null && _type !== void 0 ? _type : ''
188
+ });
181
189
  }
182
190
  return item;
183
191
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Upload.js","names":["React","useCallback","useEffect","useMemo","useRef","classnames","FieldBlock","useFieldProps","useTranslation","useFormsTranslation","Upload","useUpload","pickSpacingProps","HelpButtonInline","HelpButtonInlineContent","useSharedTranslation","FormError","validateRequired","value","_ref","required","isChanged","error","hasError","some","file","errorMessage","hasFiles","length","undefined","UploadComponent","props","sharedTr","formsTr","errorMessages","errorRequired","fromInput","forEach","item","index","_item$file","name","preparedProps","_objectSpread","toInput","transformFiles","_useFieldProps","executeOnChangeRegardlessOfError","id","className","width","widthProp","label","labelDescription","help","htmlAttributes","handleChange","handleFocus","handleBlur","fileHandler","rest","_objectWithoutProperties","_excluded","title","text","acceptedFileTypes","filesAmountLimit","fileMaxSize","skeleton","onFileDelete","onFileClick","files","setFiles","filesRef","current","handleChangeAsync","_filesRef$current","existingFileIds","map","newFiles","filter","includes","newValidFiles","newFilesLoading","isLoading","incomingFiles","incomingFileObj","foundIndex","findIndex","newFile","push","indexOfFirstNewFile","_ref2","updatedFiles","slice","changeHandler","_ref3","fieldBlockProps","forId","labelSrOnly","createElement","_extends","onChange","Fragment","contentId","left","roundedCorner","_supportsSpacingProps","Array","isArray","File"],"sources":["../../../../../../src/extensions/forms/Field/Upload/Upload.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport {\n useFieldProps,\n useTranslation as useFormsTranslation,\n} from '../../hooks'\nimport { FieldProps } from '../../types'\nimport Upload, {\n UploadFile,\n UploadFileNative,\n UploadProps,\n} from '../../../../components/Upload'\nimport useUpload from '../../../../components/upload/useUpload'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport HelpButtonInline, {\n HelpButtonInlineContent,\n} from '../../../../components/help-button/HelpButtonInline'\nimport { useTranslation as useSharedTranslation } from '../../../../shared'\nimport { SpacingProps } from '../../../../shared/types'\nimport { FormError } from '../../utils'\n\nexport type { UploadFile, UploadFileNative }\nexport type UploadValue = Array<UploadFile | UploadFileNative>\nexport type Props = Omit<\n FieldProps<UploadValue, UploadValue | undefined>,\n 'name'\n> &\n SpacingProps & {\n width?: Omit<FieldBlockWidth, 'medium' | 'small'>\n } & Pick<\n Partial<UploadProps>,\n | 'title'\n | 'text'\n | 'acceptedFileTypes'\n | 'filesAmountLimit'\n | 'fileMaxSize'\n | 'onFileDelete'\n | 'onFileClick'\n | 'skeleton'\n | 'download'\n > & {\n fileHandler?: (\n newFiles: UploadValue\n ) => UploadValue | Promise<UploadValue>\n }\n\nconst validateRequired = (\n value: UploadValue,\n { required, isChanged, error }\n) => {\n const hasError = value?.some((file) => file.errorMessage)\n if (hasError) {\n return new FormError('Upload.errorInvalidFiles')\n }\n\n const hasFiles = value?.length > 0\n if (required && ((!isChanged && !hasFiles) || !hasFiles)) {\n return error\n }\n\n return undefined\n}\n\nfunction UploadComponent(props: Props) {\n const sharedTr = useSharedTranslation().Upload\n const formsTr = useFormsTranslation().Upload\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': formsTr.errorRequired,\n }),\n [formsTr.errorRequired]\n )\n\n const fromInput = useCallback((value: UploadValue) => {\n value.forEach((item, index) => {\n value[index] = item\n\n // Store the name in the value, to support session storage (serialization)\n value[index]['name'] = item['name'] || item.file?.name\n })\n\n return value\n }, [])\n\n const preparedProps = {\n errorMessages,\n validateRequired,\n fromInput,\n toInput: transformFiles,\n ...props,\n }\n\n const {\n id,\n className,\n width: widthProp = 'stretch',\n value,\n label,\n labelDescription,\n help,\n htmlAttributes,\n handleChange,\n handleFocus,\n handleBlur,\n fileHandler,\n ...rest\n } = useFieldProps(preparedProps, {\n executeOnChangeRegardlessOfError: true,\n })\n\n // Upload props\n const {\n title = sharedTr.title,\n text = sharedTr.text,\n acceptedFileTypes = ['pdf', 'png', 'jpg', 'jpeg'],\n filesAmountLimit = 100,\n fileMaxSize = 5,\n skeleton,\n onFileDelete,\n onFileClick,\n } = rest\n\n const { files, setFiles } = useUpload(id)\n\n const filesRef = useRef<Array<UploadFile>>()\n\n useEffect(() => {\n filesRef.current = files\n }, [files])\n\n useEffect(() => {\n setFiles(value)\n }, [setFiles, value])\n\n const handleChangeAsync = useCallback(\n async (files: UploadValue) => {\n // Filter out existing files\n const existingFileIds =\n filesRef.current?.map((file) => file.id) || []\n const newFiles = files.filter(\n (file) => !existingFileIds.includes(file.id)\n )\n const newValidFiles = newFiles.filter((file) => !file.errorMessage)\n\n if (newValidFiles.length > 0) {\n // Set loading\n const newFilesLoading = newFiles.map((file) => ({\n ...file,\n isLoading: !file.errorMessage,\n }))\n setFiles([...filesRef.current, ...newFilesLoading])\n\n const incomingFiles = await fileHandler(newValidFiles)\n // merge incoming files into existing order of newFiles.\n incomingFiles.forEach((file) => {\n const incomingFileObj = {\n ...file,\n isLoading: false,\n }\n const foundIndex = newFilesLoading.findIndex(\n (newFile) => newFile.isLoading\n )\n if (foundIndex >= 0) {\n newFilesLoading[foundIndex] = incomingFileObj\n } else {\n // if there's more files incoming than there's files loading (edge case), add them to end of array.\n newFilesLoading.push(incomingFileObj)\n }\n })\n\n const indexOfFirstNewFile = filesRef.current.findIndex(\n ({ id }) => id === newFiles[0].id\n )\n\n const updatedFiles = [\n ...filesRef.current.slice(0, indexOfFirstNewFile),\n ...newFilesLoading,\n ...filesRef.current.slice(\n indexOfFirstNewFile + newFilesLoading.length\n ),\n ]\n\n // Set error, if any\n handleChange(updatedFiles)\n } else {\n handleChange(files)\n }\n },\n [setFiles, fileHandler, handleChange]\n )\n\n const changeHandler = useCallback(\n ({ files }: { files: UploadValue }) => {\n // Prevents the form-status from showing up\n handleBlur()\n handleFocus()\n\n if (fileHandler) {\n handleChangeAsync(files)\n } else {\n handleChange(files)\n }\n },\n [handleBlur, handleFocus, fileHandler, handleChangeAsync, handleChange]\n )\n\n const width = widthProp as FieldBlockWidth\n const fieldBlockProps: FieldBlockProps = {\n id,\n forId: `${id}-input`,\n labelSrOnly: true,\n className: classnames('dnb-forms-field-upload', className),\n width,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Upload\n id={id}\n acceptedFileTypes={acceptedFileTypes}\n filesAmountLimit={filesAmountLimit}\n fileMaxSize={fileMaxSize}\n skeleton={skeleton}\n onChange={changeHandler}\n onFileDelete={onFileDelete}\n onFileClick={onFileClick}\n title={label ?? title}\n text={\n help ? (\n <>\n {labelDescription ?? text}\n <HelpButtonInline\n contentId={`${id}-help`}\n left={text ? 'x-small' : false}\n help={help}\n />\n </>\n ) : (\n labelDescription ?? text\n )\n }\n {...htmlAttributes}\n >\n {help && (\n <HelpButtonInlineContent\n contentId={`${id}-help`}\n help={help}\n roundedCorner={false}\n />\n )}\n </Upload>\n </FieldBlock>\n )\n}\n\nexport default UploadComponent\n\nUploadComponent._supportsSpacingProps = true\n\nexport function transformFiles(value: UploadValue) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return undefined\n }\n\n value.map((item) => {\n if (item?.file && !(item.file instanceof File)) {\n // To support session storage, we recreated the file blob.\n item['file'] = new File([], item['name'])\n }\n return item\n })\n }\n\n return value\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Upload.js","names":["React","useCallback","useEffect","useMemo","useRef","classnames","FieldBlock","useFieldProps","useTranslation","useFormsTranslation","Upload","useUpload","pickSpacingProps","HelpButtonInline","HelpButtonInlineContent","useSharedTranslation","FormError","validateRequired","value","_ref","required","isChanged","error","hasError","some","file","errorMessage","hasFiles","length","undefined","UploadComponent","props","sharedTr","formsTr","errorMessages","errorRequired","fromInput","forEach","item","index","_item$file","name","preparedProps","_objectSpread","toInput","transformFiles","_useFieldProps","executeOnChangeRegardlessOfError","id","className","width","widthProp","label","labelDescription","help","htmlAttributes","handleChange","handleFocus","handleBlur","fileHandler","rest","_objectWithoutProperties","_excluded","title","text","acceptedFileTypes","filesAmountLimit","fileMaxSize","skeleton","onFileDelete","onFileClick","download","allowDuplicates","files","setFiles","filesRef","current","handleChangeAsync","_filesRef$current","existingFileIds","map","newFiles","filter","includes","newValidFiles","newFilesLoading","isLoading","incomingFiles","incomingFileObj","foundIndex","findIndex","newFile","push","indexOfFirstNewFile","_ref2","updatedFiles","slice","changeHandler","_ref3","fieldBlockProps","forId","labelSrOnly","createElement","_extends","onChange","Fragment","contentId","left","roundedCorner","_supportsSpacingProps","Array","isArray","File","_lastModified","_item$file2","_type","_item$file3","lastModified","type"],"sources":["../../../../../../src/extensions/forms/Field/Upload/Upload.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport {\n useFieldProps,\n useTranslation as useFormsTranslation,\n} from '../../hooks'\nimport { FieldProps } from '../../types'\nimport Upload, {\n UploadFile,\n UploadFileNative,\n UploadProps,\n} from '../../../../components/Upload'\nimport useUpload from '../../../../components/upload/useUpload'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport HelpButtonInline, {\n HelpButtonInlineContent,\n} from '../../../../components/help-button/HelpButtonInline'\nimport { useTranslation as useSharedTranslation } from '../../../../shared'\nimport { SpacingProps } from '../../../../shared/types'\nimport { FormError } from '../../utils'\n\nexport type { UploadFile, UploadFileNative }\nexport type UploadValue = Array<UploadFile | UploadFileNative>\nexport type Props = Omit<\n FieldProps<UploadValue, UploadValue | undefined>,\n 'name'\n> &\n SpacingProps & {\n width?: Omit<FieldBlockWidth, 'medium' | 'small'>\n } & Pick<\n Partial<UploadProps>,\n | 'title'\n | 'text'\n | 'acceptedFileTypes'\n | 'filesAmountLimit'\n | 'fileMaxSize'\n | 'onFileDelete'\n | 'onFileClick'\n | 'skeleton'\n | 'download'\n | 'allowDuplicates'\n > & {\n fileHandler?: (\n newFiles: UploadValue\n ) => UploadValue | Promise<UploadValue>\n }\n\nconst validateRequired = (\n value: UploadValue,\n { required, isChanged, error }\n) => {\n const hasError = value?.some((file) => file.errorMessage)\n if (hasError) {\n return new FormError('Upload.errorInvalidFiles')\n }\n\n const hasFiles = value?.length > 0\n if (required && ((!isChanged && !hasFiles) || !hasFiles)) {\n return error\n }\n\n return undefined\n}\n\nfunction UploadComponent(props: Props) {\n const sharedTr = useSharedTranslation().Upload\n const formsTr = useFormsTranslation().Upload\n\n const errorMessages = useMemo(\n () => ({\n 'Field.errorRequired': formsTr.errorRequired,\n }),\n [formsTr.errorRequired]\n )\n\n const fromInput = useCallback((value: UploadValue) => {\n value.forEach((item, index) => {\n value[index] = item\n\n // Store the name in the value, to support session storage (serialization)\n value[index]['name'] = item['name'] || item.file?.name\n })\n\n return value\n }, [])\n\n const preparedProps = {\n errorMessages,\n validateRequired,\n fromInput,\n toInput: transformFiles,\n ...props,\n }\n\n const {\n id,\n className,\n width: widthProp = 'stretch',\n value,\n label,\n labelDescription,\n help,\n htmlAttributes,\n handleChange,\n handleFocus,\n handleBlur,\n fileHandler,\n ...rest\n } = useFieldProps(preparedProps, {\n executeOnChangeRegardlessOfError: true,\n })\n\n // Upload props\n const {\n title = sharedTr.title,\n text = sharedTr.text,\n acceptedFileTypes = ['pdf', 'png', 'jpg', 'jpeg'],\n filesAmountLimit = 100,\n fileMaxSize = 5,\n skeleton,\n onFileDelete,\n onFileClick,\n download,\n allowDuplicates,\n } = rest\n\n const { files, setFiles } = useUpload(id)\n\n const filesRef = useRef<Array<UploadFile>>()\n\n useEffect(() => {\n filesRef.current = files\n }, [files])\n\n useEffect(() => {\n setFiles(value)\n }, [setFiles, value])\n\n const handleChangeAsync = useCallback(\n async (files: UploadValue) => {\n // Filter out existing files\n const existingFileIds =\n filesRef.current?.map((file) => file.id) || []\n const newFiles = files.filter(\n (file) => !existingFileIds.includes(file.id)\n )\n const newValidFiles = newFiles.filter((file) => !file.errorMessage)\n\n if (newValidFiles.length > 0) {\n // Set loading\n const newFilesLoading = newFiles.map((file) => ({\n ...file,\n isLoading: !file.errorMessage,\n }))\n setFiles([...filesRef.current, ...newFilesLoading])\n\n const incomingFiles = await fileHandler(newValidFiles)\n // merge incoming files into existing order of newFiles.\n incomingFiles.forEach((file) => {\n const incomingFileObj = {\n ...file,\n isLoading: false,\n }\n const foundIndex = newFilesLoading.findIndex(\n (newFile) => newFile.isLoading\n )\n if (foundIndex >= 0) {\n newFilesLoading[foundIndex] = incomingFileObj\n } else {\n // if there's more files incoming than there's files loading (edge case), add them to end of array.\n newFilesLoading.push(incomingFileObj)\n }\n })\n\n const indexOfFirstNewFile = filesRef.current.findIndex(\n ({ id }) => id === newFiles[0].id\n )\n\n const updatedFiles = [\n ...filesRef.current.slice(0, indexOfFirstNewFile),\n ...newFilesLoading,\n ...filesRef.current.slice(\n indexOfFirstNewFile + newFilesLoading.length\n ),\n ]\n\n // Set error, if any\n handleChange(updatedFiles)\n } else {\n handleChange(files)\n }\n },\n [setFiles, fileHandler, handleChange]\n )\n\n const changeHandler = useCallback(\n ({ files }: { files: UploadValue }) => {\n // Prevents the form-status from showing up\n handleBlur()\n handleFocus()\n\n if (fileHandler) {\n handleChangeAsync(files)\n } else {\n handleChange(files)\n }\n },\n [handleBlur, handleFocus, fileHandler, handleChangeAsync, handleChange]\n )\n\n const width = widthProp as FieldBlockWidth\n const fieldBlockProps: FieldBlockProps = {\n id,\n forId: `${id}-input`,\n labelSrOnly: true,\n className: classnames('dnb-forms-field-upload', className),\n width,\n help: undefined,\n ...pickSpacingProps(props),\n }\n\n return (\n <FieldBlock {...fieldBlockProps}>\n <Upload\n id={id}\n acceptedFileTypes={acceptedFileTypes}\n filesAmountLimit={filesAmountLimit}\n download={download}\n allowDuplicates={allowDuplicates}\n fileMaxSize={fileMaxSize}\n skeleton={skeleton}\n onChange={changeHandler}\n onFileDelete={onFileDelete}\n onFileClick={onFileClick}\n title={label ?? title}\n text={\n help ? (\n <>\n {labelDescription ?? text}\n <HelpButtonInline\n contentId={`${id}-help`}\n left={text ? 'x-small' : false}\n help={help}\n />\n </>\n ) : (\n labelDescription ?? text\n )\n }\n {...htmlAttributes}\n >\n {help && (\n <HelpButtonInlineContent\n contentId={`${id}-help`}\n help={help}\n roundedCorner={false}\n />\n )}\n </Upload>\n </FieldBlock>\n )\n}\n\nexport default UploadComponent\n\nUploadComponent._supportsSpacingProps = true\n\nexport function transformFiles(value: UploadValue) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return undefined\n }\n\n value.map((item) => {\n if (item?.file && !(item.file instanceof File)) {\n // To support session storage, we recreated the file blob.\n item['file'] = new File([], item['name'] || item?.file['name'], {\n lastModified: (item.file as File)?.lastModified ?? 0,\n type: (item.file as File)?.type ?? '',\n })\n }\n return item\n })\n }\n\n return value\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import { PropertiesTableProps } from '../../../../shared/types';
2
+ export declare const ButtonRowProperties: PropertiesTableProps;
@@ -0,0 +1,13 @@
1
+ export const ButtonRowProperties = {
2
+ children: {
3
+ doc: 'Buttons.',
4
+ type: 'React.ReactNode',
5
+ status: 'required'
6
+ },
7
+ '[Space](/uilib/layout/space/properties)': {
8
+ doc: 'Spacing properties like `top` or `bottom` are supported.',
9
+ type: ['string', 'object'],
10
+ status: 'optional'
11
+ }
12
+ };
13
+ //# sourceMappingURL=ButtonRowDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonRowDocs.js","names":["ButtonRowProperties","children","doc","type","status"],"sources":["../../../../../../src/extensions/forms/Form/ButtonRow/ButtonRowDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const ButtonRowProperties: PropertiesTableProps = {\n children: {\n doc: 'Buttons.',\n type: 'React.ReactNode',\n status: 'required',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,mBAAyC,GAAG;EACvDC,QAAQ,EAAE;IACRC,GAAG,EAAE,UAAU;IACfC,IAAI,EAAE,iBAAiB;IACvBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC","ignoreList":[]}
@@ -15,7 +15,7 @@ export const IsolationProperties = _objectSpread(_objectSpread({
15
15
  },
16
16
  commitHandleRef: {
17
17
  doc: 'Provide a ref to a function that can be called from any location to commit the data to the form.',
18
- type: 'React.Ref',
18
+ type: 'React.RefObject',
19
19
  status: 'optional'
20
20
  },
21
21
  bubbleValidation: {
@@ -1 +1 @@
1
- {"version":3,"file":"IsolationDocs.js","names":["ProviderEvents","ProviderProperties","IsolationProperties","_objectSpread","path","doc","type","status","transformOnCommit","commitHandleRef","bubbleValidation","minimumAsyncBehaviorTime","undefined","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","globalStatusId","IsolationEvents","onCommit","onSubmit","onSubmitRequest","onSubmitComplete"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/IsolationDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport {\n ProviderEvents,\n ProviderProperties,\n} from '../../DataContext/Provider/ProviderDocs'\n\nexport const IsolationProperties: PropertiesTableProps = {\n path: {\n doc: 'JSON Pointer to define the object key for all the generated nested field data.',\n type: 'string',\n status: 'optional',\n },\n transformOnCommit: {\n doc: 'Transform the data before it gets committed to the form. The first parameter is the isolated data object. The second parameter is the outer context data object (Form.Handler).',\n type: 'function',\n status: 'optional',\n },\n commitHandleRef: {\n doc: 'Provide a ref to a function that can be called from any location to commit the data to the form.',\n type: 'React.Ref',\n status: 'optional',\n },\n bubbleValidation: {\n doc: 'Prevent the form from being submitted when there are fields with errors inside the Form.Isolation.',\n type: 'boolean',\n status: 'optional',\n },\n ...ProviderProperties,\n minimumAsyncBehaviorTime: undefined,\n asyncSubmitTimeout: undefined,\n scrollTopOnSubmit: undefined,\n sessionStorageId: undefined,\n globalStatusId: undefined,\n}\n\nexport const IsolationEvents: PropertiesTableProps = {\n onCommit: {\n doc: 'Will be called on a nested form context commit – if validation has passed. The first parameter is the committed data object. The second parameter is an object containing a method to clear the internal data `{ clearData }`.',\n type: 'function',\n status: 'optional',\n },\n ...ProviderEvents,\n onSubmit: undefined,\n onSubmitRequest: undefined,\n onSubmitComplete: undefined,\n}\n"],"mappings":";;;AACA,SACEA,cAAc,EACdC,kBAAkB,QACb,yCAAyC;AAEhD,OAAO,MAAMC,mBAAyC,GAAAC,aAAA,CAAAA,aAAA;EACpDC,IAAI,EAAE;IACJC,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,iBAAiB,EAAE;IACjBH,GAAG,EAAE,iLAAiL;IACtLC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDE,eAAe,EAAE;IACfJ,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,WAAW;IACjBC,MAAM,EAAE;EACV,CAAC;EACDG,gBAAgB,EAAE;IAChBL,GAAG,EAAE,oGAAoG;IACzGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AAAC,GACEN,kBAAkB;EACrBU,wBAAwB,EAAEC,SAAS;EACnCC,kBAAkB,EAAED,SAAS;EAC7BE,iBAAiB,EAAEF,SAAS;EAC5BG,gBAAgB,EAAEH,SAAS;EAC3BI,cAAc,EAAEJ;AAAS,EAC1B;AAED,OAAO,MAAMK,eAAqC,GAAAd,aAAA,CAAAA,aAAA;EAChDe,QAAQ,EAAE;IACRb,GAAG,EAAE,gOAAgO;IACrOC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AAAC,GACEP,cAAc;EACjBmB,QAAQ,EAAEP,SAAS;EACnBQ,eAAe,EAAER,SAAS;EAC1BS,gBAAgB,EAAET;AAAS,EAC5B","ignoreList":[]}
1
+ {"version":3,"file":"IsolationDocs.js","names":["ProviderEvents","ProviderProperties","IsolationProperties","_objectSpread","path","doc","type","status","transformOnCommit","commitHandleRef","bubbleValidation","minimumAsyncBehaviorTime","undefined","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","globalStatusId","IsolationEvents","onCommit","onSubmit","onSubmitRequest","onSubmitComplete"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/IsolationDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport {\n ProviderEvents,\n ProviderProperties,\n} from '../../DataContext/Provider/ProviderDocs'\n\nexport const IsolationProperties: PropertiesTableProps = {\n path: {\n doc: 'JSON Pointer to define the object key for all the generated nested field data.',\n type: 'string',\n status: 'optional',\n },\n transformOnCommit: {\n doc: 'Transform the data before it gets committed to the form. The first parameter is the isolated data object. The second parameter is the outer context data object (Form.Handler).',\n type: 'function',\n status: 'optional',\n },\n commitHandleRef: {\n doc: 'Provide a ref to a function that can be called from any location to commit the data to the form.',\n type: 'React.RefObject',\n status: 'optional',\n },\n bubbleValidation: {\n doc: 'Prevent the form from being submitted when there are fields with errors inside the Form.Isolation.',\n type: 'boolean',\n status: 'optional',\n },\n ...ProviderProperties,\n minimumAsyncBehaviorTime: undefined,\n asyncSubmitTimeout: undefined,\n scrollTopOnSubmit: undefined,\n sessionStorageId: undefined,\n globalStatusId: undefined,\n}\n\nexport const IsolationEvents: PropertiesTableProps = {\n onCommit: {\n doc: 'Will be called on a nested form context commit – if validation has passed. The first parameter is the committed data object. The second parameter is an object containing a method to clear the internal data `{ clearData }`.',\n type: 'function',\n status: 'optional',\n },\n ...ProviderEvents,\n onSubmit: undefined,\n onSubmitRequest: undefined,\n onSubmitComplete: undefined,\n}\n"],"mappings":";;;AACA,SACEA,cAAc,EACdC,kBAAkB,QACb,yCAAyC;AAEhD,OAAO,MAAMC,mBAAyC,GAAAC,aAAA,CAAAA,aAAA;EACpDC,IAAI,EAAE;IACJC,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,iBAAiB,EAAE;IACjBH,GAAG,EAAE,iLAAiL;IACtLC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDE,eAAe,EAAE;IACfJ,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,iBAAiB;IACvBC,MAAM,EAAE;EACV,CAAC;EACDG,gBAAgB,EAAE;IAChBL,GAAG,EAAE,oGAAoG;IACzGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AAAC,GACEN,kBAAkB;EACrBU,wBAAwB,EAAEC,SAAS;EACnCC,kBAAkB,EAAED,SAAS;EAC7BE,iBAAiB,EAAEF,SAAS;EAC5BG,gBAAgB,EAAEH,SAAS;EAC3BI,cAAc,EAAEJ;AAAS,EAC1B;AAED,OAAO,MAAMK,eAAqC,GAAAd,aAAA,CAAAA,aAAA;EAChDe,QAAQ,EAAE;IACRb,GAAG,EAAE,gOAAgO;IACrOC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AAAC,GACEP,cAAc;EACjBmB,QAAQ,EAAEP,SAAS;EACnBQ,eAAe,EAAER,SAAS;EAC1BS,gBAAgB,EAAET;AAAS,EAC5B","ignoreList":[]}
@@ -20,7 +20,7 @@ function SubmitConfirmation(props) {
20
20
  } = props;
21
21
  const {
22
22
  setFormState,
23
- setHandleSubmit,
23
+ setFieldEventListener,
24
24
  handleSubmit: handleFinalSubmit,
25
25
  submitState,
26
26
  formElementRef,
@@ -121,16 +121,16 @@ function SubmitConfirmation(props) {
121
121
  preventSubmit();
122
122
  await setConfirmationState('readyToBeSubmitted');
123
123
  }, [setConfirmationState, validatePreventSubmit]);
124
- setHandleSubmit === null || setHandleSubmit === void 0 ? void 0 : setHandleSubmit(handleSubmit);
124
+ setFieldEventListener === null || setFieldEventListener === void 0 ? void 0 : setFieldEventListener(undefined, 'onSubmit', handleSubmit);
125
125
  const submitHandler = useCallback(async () => {
126
- setHandleSubmit === null || setHandleSubmit === void 0 ? void 0 : setHandleSubmit(handleSubmit, {
126
+ setFieldEventListener === null || setFieldEventListener === void 0 ? void 0 : setFieldEventListener(undefined, 'onSubmit', handleSubmit, {
127
127
  remove: true
128
128
  });
129
129
  await setConfirmationState('submitInProgress');
130
130
  await handleFinalSubmit();
131
131
  await setConfirmationState('submissionComplete');
132
132
  setFocusOnButton();
133
- }, [handleFinalSubmit, handleSubmit, setFocusOnButton, setHandleSubmit, setConfirmationState]);
133
+ }, [handleFinalSubmit, handleSubmit, setFocusOnButton, setFieldEventListener, setConfirmationState]);
134
134
  const sharedProviderParams = {
135
135
  formElement: {
136
136
  disabled: false
@@ -1 +1 @@
1
- {"version":3,"file":"SubmitConfirmation.js","names":["React","useCallback","useContext","useMemo","useReducer","useRef","DataContext","SharedProvider","HeightAnimation","removeUndefinedProps","SubmitConfirmation","props","forceUpdate","preventSubmitWhen","onStateChange","onSubmitResult","renderWithState","children","setFormState","setHandleSubmit","handleSubmit","handleFinalSubmit","submitState","formElementRef","internalDataRef","confirmationStateRef","submitStateRef","preventSubmitRef","undefined","validatePreventSubmit","current","getParamsRef","setConfirmationState","state","window","requestAnimationFrame","keepPending","confirmationState","connectWithDialog","openState","onConfirm","submitHandler","onDecline","cancelHandler","onClose","_ref","triggeredBy","data","Object","keys","length","_objectSpread","setFocusOnButton","form","element","querySelector","focus","e","_ref2","preventSubmit","remove","sharedProviderParams","formElement","disabled","createElement","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport DataContext from '../../DataContext/Context'\nimport SharedProvider from '../../../../shared/Provider'\nimport { ContextProps } from '../../../../shared/Context'\nimport { HeightAnimation } from '../../../../components'\nimport {\n DialogContentProps,\n DialogProps,\n} from '../../../../components/dialog/types'\nimport { EventStateObject } from '../../types'\nimport { removeUndefinedProps } from '../../../../shared/component-helper'\n\nexport type ConfirmationState =\n | 'idle'\n | 'readyToBeSubmitted'\n | 'submitInProgress'\n | 'submissionComplete'\n\nexport type ConfirmParams = {\n data: unknown\n confirmationState: ConfirmationState\n submitState: EventStateObject | undefined\n connectWithDialog: Pick<\n DialogProps & DialogContentProps,\n 'openState' | 'onConfirm' | 'onDecline' | 'onClose'\n >\n setConfirmationState: (state: ConfirmationState) => void\n submitHandler: () => void | Promise<void>\n cancelHandler: () => void | Promise<void>\n}\n\nexport type ConfirmProps = {\n preventSubmitWhen?: (params: ConfirmParams) => boolean\n onStateChange?: (params: ConfirmParams) => void | Promise<void>\n onSubmitResult?: (params: ConfirmParams) => void\n renderWithState?: (params: ConfirmParams) => React.ReactNode\n children?: React.ReactNode\n}\n\nfunction SubmitConfirmation(props: ConfirmProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n preventSubmitWhen,\n onStateChange,\n onSubmitResult,\n renderWithState,\n children,\n } = props\n\n const {\n setFormState,\n setHandleSubmit,\n handleSubmit: handleFinalSubmit,\n submitState,\n formElementRef,\n internalDataRef,\n } = useContext(DataContext)\n\n const confirmationStateRef = useRef<ConfirmationState>('idle')\n const submitStateRef = useRef<EventStateObject>()\n const preventSubmitRef = useRef<boolean>(undefined)\n\n const validatePreventSubmit = useCallback(() => {\n return (preventSubmitRef.current = preventSubmitWhen?.(\n getParamsRef.current()\n ))\n }, [preventSubmitWhen])\n\n const setConfirmationState = useCallback(\n async (state: ConfirmationState) => {\n confirmationStateRef.current = state\n await onStateChange?.(getParamsRef.current())\n if (typeof window !== 'undefined') {\n window.requestAnimationFrame(() => {\n switch (state) {\n case 'idle':\n setFormState('complete', { keepPending: false })\n break\n case 'readyToBeSubmitted':\n setFormState('pending', { keepPending: true })\n break\n case 'submitInProgress':\n setFormState('pending', { keepPending: true })\n break\n case 'submissionComplete':\n setFormState('complete', { keepPending: false })\n break\n default:\n forceUpdate()\n }\n })\n }\n },\n [onStateChange, setFormState]\n )\n\n const getParamsRef = useRef(() => {\n const confirmationState = confirmationStateRef.current\n\n const connectWithDialog = {\n openState: confirmationState === 'readyToBeSubmitted',\n onConfirm: submitHandler,\n onDecline: cancelHandler,\n onClose: ({ triggeredBy }) => {\n if (triggeredBy === 'keyboard') {\n cancelHandler()\n }\n },\n }\n\n return {\n data: internalDataRef?.current,\n confirmationState,\n setConfirmationState,\n submitHandler,\n cancelHandler,\n connectWithDialog,\n submitState: submitStateRef.current,\n } satisfies ConfirmParams\n })\n\n useMemo(() => {\n if (Object.keys(removeUndefinedProps(submitState) || {}).length > 0) {\n submitStateRef.current = {\n ...submitState,\n } as EventStateObject\n onSubmitResult?.(getParamsRef.current())\n }\n }, [submitState, onSubmitResult])\n\n const setFocusOnButton = useCallback(() => {\n try {\n const form = formElementRef.current\n const element = (form.querySelector('.dnb-forms-submit-button') ||\n form) as HTMLElement\n element.focus()\n } catch (e) {\n //\n }\n }, [formElementRef])\n\n const cancelHandler = useCallback(async () => {\n await setConfirmationState('idle')\n setFocusOnButton()\n }, [setFocusOnButton, setConfirmationState])\n\n const handleSubmit = useCallback(\n async ({ preventSubmit }) => {\n if (confirmationStateRef.current === 'submitInProgress') {\n return // stop here\n }\n\n if (validatePreventSubmit() !== true) {\n await setConfirmationState('submitInProgress')\n return // stop here\n }\n\n submitStateRef.current = undefined\n\n // Prevent the form form from being submitted\n preventSubmit()\n\n await setConfirmationState('readyToBeSubmitted')\n },\n [setConfirmationState, validatePreventSubmit]\n )\n setHandleSubmit?.(handleSubmit)\n\n const submitHandler = useCallback(async () => {\n setHandleSubmit?.(handleSubmit, { remove: true })\n\n await setConfirmationState('submitInProgress')\n await handleFinalSubmit()\n await setConfirmationState('submissionComplete')\n\n setFocusOnButton()\n }, [\n handleFinalSubmit,\n handleSubmit,\n setFocusOnButton,\n setHandleSubmit,\n setConfirmationState,\n ])\n\n const sharedProviderParams: ContextProps = {\n formElement: {\n disabled: false,\n },\n }\n\n return (\n <>\n {children}\n\n <SharedProvider {...sharedProviderParams}>\n <HeightAnimation>\n {renderWithState?.(getParamsRef.current())}\n </HeightAnimation>\n </SharedProvider>\n </>\n )\n}\n\nSubmitConfirmation._supportsSpacingProps = 'children'\nexport default SubmitConfirmation\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SubmitConfirmation.js","names":["React","useCallback","useContext","useMemo","useReducer","useRef","DataContext","SharedProvider","HeightAnimation","removeUndefinedProps","SubmitConfirmation","props","forceUpdate","preventSubmitWhen","onStateChange","onSubmitResult","renderWithState","children","setFormState","setFieldEventListener","handleSubmit","handleFinalSubmit","submitState","formElementRef","internalDataRef","confirmationStateRef","submitStateRef","preventSubmitRef","undefined","validatePreventSubmit","current","getParamsRef","setConfirmationState","state","window","requestAnimationFrame","keepPending","confirmationState","connectWithDialog","openState","onConfirm","submitHandler","onDecline","cancelHandler","onClose","_ref","triggeredBy","data","Object","keys","length","_objectSpread","setFocusOnButton","form","element","querySelector","focus","e","_ref2","preventSubmit","remove","sharedProviderParams","formElement","disabled","createElement","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport DataContext from '../../DataContext/Context'\nimport SharedProvider from '../../../../shared/Provider'\nimport { ContextProps } from '../../../../shared/Context'\nimport { HeightAnimation } from '../../../../components'\nimport {\n DialogContentProps,\n DialogProps,\n} from '../../../../components/dialog/types'\nimport { EventStateObject } from '../../types'\nimport { removeUndefinedProps } from '../../../../shared/component-helper'\n\nexport type ConfirmationState =\n | 'idle'\n | 'readyToBeSubmitted'\n | 'submitInProgress'\n | 'submissionComplete'\n\nexport type ConfirmParams = {\n data: unknown\n confirmationState: ConfirmationState\n submitState: EventStateObject | undefined\n connectWithDialog: Pick<\n DialogProps & DialogContentProps,\n 'openState' | 'onConfirm' | 'onDecline' | 'onClose'\n >\n setConfirmationState: (state: ConfirmationState) => void\n submitHandler: () => void | Promise<void>\n cancelHandler: () => void | Promise<void>\n}\n\nexport type ConfirmProps = {\n preventSubmitWhen?: (params: ConfirmParams) => boolean\n onStateChange?: (params: ConfirmParams) => void | Promise<void>\n onSubmitResult?: (params: ConfirmParams) => void\n renderWithState?: (params: ConfirmParams) => React.ReactNode\n children?: React.ReactNode\n}\n\nfunction SubmitConfirmation(props: ConfirmProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n preventSubmitWhen,\n onStateChange,\n onSubmitResult,\n renderWithState,\n children,\n } = props\n\n const {\n setFormState,\n setFieldEventListener,\n handleSubmit: handleFinalSubmit,\n submitState,\n formElementRef,\n internalDataRef,\n } = useContext(DataContext)\n\n const confirmationStateRef = useRef<ConfirmationState>('idle')\n const submitStateRef = useRef<EventStateObject>()\n const preventSubmitRef = useRef<boolean>(undefined)\n\n const validatePreventSubmit = useCallback(() => {\n return (preventSubmitRef.current = preventSubmitWhen?.(\n getParamsRef.current()\n ))\n }, [preventSubmitWhen])\n\n const setConfirmationState = useCallback(\n async (state: ConfirmationState) => {\n confirmationStateRef.current = state\n await onStateChange?.(getParamsRef.current())\n if (typeof window !== 'undefined') {\n window.requestAnimationFrame(() => {\n switch (state) {\n case 'idle':\n setFormState('complete', { keepPending: false })\n break\n case 'readyToBeSubmitted':\n setFormState('pending', { keepPending: true })\n break\n case 'submitInProgress':\n setFormState('pending', { keepPending: true })\n break\n case 'submissionComplete':\n setFormState('complete', { keepPending: false })\n break\n default:\n forceUpdate()\n }\n })\n }\n },\n [onStateChange, setFormState]\n )\n\n const getParamsRef = useRef(() => {\n const confirmationState = confirmationStateRef.current\n\n const connectWithDialog = {\n openState: confirmationState === 'readyToBeSubmitted',\n onConfirm: submitHandler,\n onDecline: cancelHandler,\n onClose: ({ triggeredBy }) => {\n if (triggeredBy === 'keyboard') {\n cancelHandler()\n }\n },\n }\n\n return {\n data: internalDataRef?.current,\n confirmationState,\n setConfirmationState,\n submitHandler,\n cancelHandler,\n connectWithDialog,\n submitState: submitStateRef.current,\n } satisfies ConfirmParams\n })\n\n useMemo(() => {\n if (Object.keys(removeUndefinedProps(submitState) || {}).length > 0) {\n submitStateRef.current = {\n ...submitState,\n } as EventStateObject\n onSubmitResult?.(getParamsRef.current())\n }\n }, [submitState, onSubmitResult])\n\n const setFocusOnButton = useCallback(() => {\n try {\n const form = formElementRef.current\n const element = (form.querySelector('.dnb-forms-submit-button') ||\n form) as HTMLElement\n element.focus()\n } catch (e) {\n //\n }\n }, [formElementRef])\n\n const cancelHandler = useCallback(async () => {\n await setConfirmationState('idle')\n setFocusOnButton()\n }, [setFocusOnButton, setConfirmationState])\n\n const handleSubmit = useCallback(\n async ({ preventSubmit }) => {\n if (confirmationStateRef.current === 'submitInProgress') {\n return // stop here\n }\n\n if (validatePreventSubmit() !== true) {\n await setConfirmationState('submitInProgress')\n return // stop here\n }\n\n submitStateRef.current = undefined\n\n // Prevent the form form from being submitted\n preventSubmit()\n\n await setConfirmationState('readyToBeSubmitted')\n },\n [setConfirmationState, validatePreventSubmit]\n )\n setFieldEventListener?.(undefined, 'onSubmit', handleSubmit)\n\n const submitHandler = useCallback(async () => {\n setFieldEventListener?.(undefined, 'onSubmit', handleSubmit, {\n remove: true,\n })\n\n await setConfirmationState('submitInProgress')\n await handleFinalSubmit()\n await setConfirmationState('submissionComplete')\n\n setFocusOnButton()\n }, [\n handleFinalSubmit,\n handleSubmit,\n setFocusOnButton,\n setFieldEventListener,\n setConfirmationState,\n ])\n\n const sharedProviderParams: ContextProps = {\n formElement: {\n disabled: false,\n },\n }\n\n return (\n <>\n {children}\n\n <SharedProvider {...sharedProviderParams}>\n <HeightAnimation>\n {renderWithState?.(getParamsRef.current())}\n </HeightAnimation>\n </SharedProvider>\n </>\n )\n}\n\nSubmitConfirmation._supportsSpacingProps = 'children'\nexport default SubmitConfirmation\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import { HeightAnimationEvents } from '../../../../components/height-animation/HeightAnimationDocs';
2
2
  export const VisibilityProperties = {
3
3
  visibleWhen: {
4
- doc: 'Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the expected value in order to show children. The first parameter is the value of the path. You can also use `isValid` instead of `hasValue` to only show the children when the field has no errors and has lost focus (blurred). You can change that behavior by using the `validateContinuously` property.',
4
+ doc: 'Provide a `path` or `itemPath`, and a `hasValue` function that returns either a boolean or the expected value to determine whether the children should be shown. The first parameter passed to `hasValue` is the value at the given `path`. If the `path` does not exist, the value will be `undefined`. \nAlternatively, you can use `isValid` instead of `hasValue` to show the children only when the field has no validation errors and has been blurred (lost focus). You can change this behavior by setting the `validateContinuously` property.',
5
5
  type: 'object',
6
6
  status: 'optional'
7
7
  },
@@ -1 +1 @@
1
- {"version":3,"file":"VisibilityDocs.js","names":["HeightAnimationEvents","VisibilityProperties","visibleWhen","doc","type","status","visibleWhenNot","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","inferData","visible","animate","keepInDOM","compensateForGap","filterData","fieldPropsWhenHidden","element","children","VisibilityEvents","onVisible","onOpen","onAnimationEnd"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/VisibilityDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { HeightAnimationEvents } from '../../../../components/height-animation/HeightAnimationDocs'\n\nexport const VisibilityProperties: PropertiesTableProps = {\n visibleWhen: {\n doc: 'Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the expected value in order to show children. The first parameter is the value of the path. You can also use `isValid` instead of `hasValue` to only show the children when the field has no errors and has lost focus (blurred). You can change that behavior by using the `validateContinuously` property.',\n type: 'object',\n status: 'optional',\n },\n visibleWhenNot: {\n doc: 'Same as `visibleWhen`, but with inverted logic.',\n type: 'object',\n status: 'optional',\n },\n pathDefined: {\n doc: 'Given data context path must be defined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathUndefined: {\n doc: 'Given data context path must be undefined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTruthy: {\n doc: 'Given data context path must be truthy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalsy: {\n doc: 'Given data context path must be falsy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTrue: {\n doc: 'Given data context path must be true to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalse: {\n doc: 'Given data context path must be false to show children.',\n type: 'string',\n status: 'optional',\n },\n inferData: {\n doc: 'Will be called to decide by external logic, and show/hide contents based on the return value.',\n type: 'function',\n status: 'optional',\n },\n visible: {\n doc: 'Control visibility directly using the `visible` prop. When used alongside other conditions, the `visible` prop takes precedence.',\n type: 'boolean',\n status: 'optional',\n },\n animate: {\n doc: 'Define if the content should animate during show/hide.',\n type: 'boolean',\n status: 'optional',\n },\n keepInDOM: {\n doc: \"Keep the content in the DOM, even if it's not visible. Can be used to let fields run validation.\",\n type: 'boolean',\n status: 'optional',\n },\n compensateForGap: {\n doc: 'To compensate for CSS gap between the rows, so animation does not jump during the animation. Provide a CSS unit or `auto`. Defaults to `null`.',\n type: 'string',\n status: 'optional',\n },\n filterData: {\n doc: 'Filter data based on provided criteria. More info about `filterData` can be found in the [Getting Started](/uilib/extensions/forms/getting-started/#filter-data) documentation.',\n type: ['object', 'function'],\n status: 'optional',\n },\n fieldPropsWhenHidden: {\n doc: 'When visibility is hidden, and `keepInDOM` is true, pass these props to the children.',\n type: 'various',\n status: 'optional',\n },\n element: {\n doc: 'Define the type of element. Defaults to `div`. Only for when `animate` is true.',\n type: 'string or React.Element',\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n}\n\nexport const VisibilityEvents: PropertiesTableProps = {\n onVisible: {\n doc: 'Callback for when the content gets visible. Returns a boolean as the first parameter.',\n type: HeightAnimationEvents.onOpen.type,\n status: 'optional',\n },\n onAnimationEnd: HeightAnimationEvents.onAnimationEnd,\n}\n"],"mappings":"AACA,SAASA,qBAAqB,QAAQ,6DAA6D;AAEnG,OAAO,MAAMC,oBAA0C,GAAG;EACxDC,WAAW,EAAE;IACXC,GAAG,EAAE,+XAA+X;IACpYC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,cAAc,EAAE;IACdH,GAAG,EAAE,iDAAiD;IACtDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,WAAW,EAAE;IACXJ,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,aAAa,EAAE;IACbL,GAAG,EAAE,6DAA6D;IAClEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,UAAU,EAAE;IACVN,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACTT,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,SAAS,EAAE;IACTV,GAAG,EAAE,+FAA+F;IACpGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDS,OAAO,EAAE;IACPX,GAAG,EAAE,kIAAkI;IACvIC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDU,OAAO,EAAE;IACPZ,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDW,SAAS,EAAE;IACTb,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDY,gBAAgB,EAAE;IAChBd,GAAG,EAAE,gJAAgJ;IACrJC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDa,UAAU,EAAE;IACVf,GAAG,EAAE,iLAAiL;IACtLC,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC5BC,MAAM,EAAE;EACV,CAAC;EACDc,oBAAoB,EAAE;IACpBhB,GAAG,EAAE,uFAAuF;IAC5FC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDe,OAAO,EAAE;IACPjB,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,yBAAyB;IAC/BC,MAAM,EAAE;EACV,CAAC;EACDgB,QAAQ,EAAE;IACRlB,GAAG,EAAE,WAAW;IAChBC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMiB,gBAAsC,GAAG;EACpDC,SAAS,EAAE;IACTpB,GAAG,EAAE,uFAAuF;IAC5FC,IAAI,EAAEJ,qBAAqB,CAACwB,MAAM,CAACpB,IAAI;IACvCC,MAAM,EAAE;EACV,CAAC;EACDoB,cAAc,EAAEzB,qBAAqB,CAACyB;AACxC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VisibilityDocs.js","names":["HeightAnimationEvents","VisibilityProperties","visibleWhen","doc","type","status","visibleWhenNot","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","inferData","visible","animate","keepInDOM","compensateForGap","filterData","fieldPropsWhenHidden","element","children","VisibilityEvents","onVisible","onOpen","onAnimationEnd"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/VisibilityDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { HeightAnimationEvents } from '../../../../components/height-animation/HeightAnimationDocs'\n\nexport const VisibilityProperties: PropertiesTableProps = {\n visibleWhen: {\n doc: 'Provide a `path` or `itemPath`, and a `hasValue` function that returns either a boolean or the expected value to determine whether the children should be shown. The first parameter passed to `hasValue` is the value at the given `path`. If the `path` does not exist, the value will be `undefined`. \\nAlternatively, you can use `isValid` instead of `hasValue` to show the children only when the field has no validation errors and has been blurred (lost focus). You can change this behavior by setting the `validateContinuously` property.',\n type: 'object',\n status: 'optional',\n },\n visibleWhenNot: {\n doc: 'Same as `visibleWhen`, but with inverted logic.',\n type: 'object',\n status: 'optional',\n },\n pathDefined: {\n doc: 'Given data context path must be defined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathUndefined: {\n doc: 'Given data context path must be undefined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTruthy: {\n doc: 'Given data context path must be truthy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalsy: {\n doc: 'Given data context path must be falsy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTrue: {\n doc: 'Given data context path must be true to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalse: {\n doc: 'Given data context path must be false to show children.',\n type: 'string',\n status: 'optional',\n },\n inferData: {\n doc: 'Will be called to decide by external logic, and show/hide contents based on the return value.',\n type: 'function',\n status: 'optional',\n },\n visible: {\n doc: 'Control visibility directly using the `visible` prop. When used alongside other conditions, the `visible` prop takes precedence.',\n type: 'boolean',\n status: 'optional',\n },\n animate: {\n doc: 'Define if the content should animate during show/hide.',\n type: 'boolean',\n status: 'optional',\n },\n keepInDOM: {\n doc: \"Keep the content in the DOM, even if it's not visible. Can be used to let fields run validation.\",\n type: 'boolean',\n status: 'optional',\n },\n compensateForGap: {\n doc: 'To compensate for CSS gap between the rows, so animation does not jump during the animation. Provide a CSS unit or `auto`. Defaults to `null`.',\n type: 'string',\n status: 'optional',\n },\n filterData: {\n doc: 'Filter data based on provided criteria. More info about `filterData` can be found in the [Getting Started](/uilib/extensions/forms/getting-started/#filter-data) documentation.',\n type: ['object', 'function'],\n status: 'optional',\n },\n fieldPropsWhenHidden: {\n doc: 'When visibility is hidden, and `keepInDOM` is true, pass these props to the children.',\n type: 'various',\n status: 'optional',\n },\n element: {\n doc: 'Define the type of element. Defaults to `div`. Only for when `animate` is true.',\n type: 'string or React.Element',\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n}\n\nexport const VisibilityEvents: PropertiesTableProps = {\n onVisible: {\n doc: 'Callback for when the content gets visible. Returns a boolean as the first parameter.',\n type: HeightAnimationEvents.onOpen.type,\n status: 'optional',\n },\n onAnimationEnd: HeightAnimationEvents.onAnimationEnd,\n}\n"],"mappings":"AACA,SAASA,qBAAqB,QAAQ,6DAA6D;AAEnG,OAAO,MAAMC,oBAA0C,GAAG;EACxDC,WAAW,EAAE;IACXC,GAAG,EAAE,yhBAAyhB;IAC9hBC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,cAAc,EAAE;IACdH,GAAG,EAAE,iDAAiD;IACtDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,WAAW,EAAE;IACXJ,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,aAAa,EAAE;IACbL,GAAG,EAAE,6DAA6D;IAClEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,UAAU,EAAE;IACVN,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACTT,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,SAAS,EAAE;IACTV,GAAG,EAAE,+FAA+F;IACpGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDS,OAAO,EAAE;IACPX,GAAG,EAAE,kIAAkI;IACvIC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDU,OAAO,EAAE;IACPZ,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDW,SAAS,EAAE;IACTb,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDY,gBAAgB,EAAE;IAChBd,GAAG,EAAE,gJAAgJ;IACrJC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDa,UAAU,EAAE;IACVf,GAAG,EAAE,iLAAiL;IACtLC,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC5BC,MAAM,EAAE;EACV,CAAC;EACDc,oBAAoB,EAAE;IACpBhB,GAAG,EAAE,uFAAuF;IAC5FC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDe,OAAO,EAAE;IACPjB,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,yBAAyB;IAC/BC,MAAM,EAAE;EACV,CAAC;EACDgB,QAAQ,EAAE;IACRlB,GAAG,EAAE,WAAW;IAChBC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMiB,gBAAsC,GAAG;EACpDC,SAAS,EAAE;IACTpB,GAAG,EAAE,uFAAuF;IAC5FC,IAAI,EAAEJ,qBAAqB,CAACwB,MAAM,CAACpB,IAAI;IACvCC,MAAM,EAAE;EACV,CAAC;EACDoB,cAAc,EAAEzB,qBAAqB,CAACyB;AACxC,CAAC","ignoreList":[]}
@@ -60,23 +60,19 @@ export default function useVisibility(props) {
60
60
  return visibleWhenNot ? !result : result;
61
61
  }
62
62
  if ('hasValue' in visibleWhen || 'withValue' in visibleWhen) {
63
+ var _visibleWhen, _visibleWhen$hasValue, _visibleWhen2, _visibleWhen3;
63
64
  const hasPath = pointer.has(data, path);
64
- if (hasPath) {
65
- var _visibleWhen, _visibleWhen$hasValue, _visibleWhen2, _visibleWhen3;
66
- const value = pointer.get(data, path);
67
- if ((_visibleWhen = visibleWhen) !== null && _visibleWhen !== void 0 && _visibleWhen['withValue']) {
68
- console.warn('VisibleWhen: "withValue" is deprecated, use "hasValue" instead');
69
- }
70
- const hasValue = (_visibleWhen$hasValue = (_visibleWhen2 = visibleWhen) === null || _visibleWhen2 === void 0 ? void 0 : _visibleWhen2['hasValue']) !== null && _visibleWhen$hasValue !== void 0 ? _visibleWhen$hasValue : (_visibleWhen3 = visibleWhen) === null || _visibleWhen3 === void 0 ? void 0 : _visibleWhen3['withValue'];
71
- const result = typeof hasValue === 'function' ? hasValue(value) === false : hasValue !== value;
72
- if (visibleWhenNot) {
73
- if (!result) {
74
- return false;
75
- }
76
- } else if (result) {
65
+ const value = hasPath ? pointer.get(data, path) : undefined;
66
+ if ((_visibleWhen = visibleWhen) !== null && _visibleWhen !== void 0 && _visibleWhen['withValue']) {
67
+ console.warn('VisibleWhen: "withValue" is deprecated, use "hasValue" instead');
68
+ }
69
+ const hasValue = (_visibleWhen$hasValue = (_visibleWhen2 = visibleWhen) === null || _visibleWhen2 === void 0 ? void 0 : _visibleWhen2['hasValue']) !== null && _visibleWhen$hasValue !== void 0 ? _visibleWhen$hasValue : (_visibleWhen3 = visibleWhen) === null || _visibleWhen3 === void 0 ? void 0 : _visibleWhen3['withValue'];
70
+ const result = typeof hasValue === 'function' ? hasValue(value) === false : hasValue !== value;
71
+ if (visibleWhenNot) {
72
+ if (!result) {
77
73
  return false;
78
74
  }
79
- } else {
75
+ } else if (result) {
80
76
  return false;
81
77
  }
82
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useVisibility.js","names":["useCallback","useContext","useRef","pointer","DataContext","usePath","useVisibility","props","hasFieldError","filterDataHandler","mountedFieldsRef","data","originalData","makePath","makeIteratePath","propsRef","current","withinIterate","makeLocalPath","path","check","visible","visibleWhen","visibleWhenNot","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","inferData","filterData","arguments","length","undefined","itemPath","item","get","isMounted","result","continuousValidation","validateContinuously","isFocused","hasPath","has","_visibleWhen","_visibleWhen$hasValue","_visibleWhen2","_visibleWhen3","value","console","warn","hasValue","getValue","Boolean"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/useVisibility.tsx"],"sourcesContent":["import { useCallback, useContext, useRef } from 'react'\nimport pointer from '../../utils/json-pointer'\nimport DataContext from '../../DataContext/Context'\nimport usePath from '../../hooks/usePath'\nimport { Path } from '../../types'\nimport { Props } from './Visibility'\n\nexport type { Props }\n\nexport default function useVisibility(props?: Partial<Props>) {\n const {\n hasFieldError,\n filterDataHandler,\n mountedFieldsRef,\n data: originalData,\n } = useContext(DataContext)\n\n const { makePath, makeIteratePath } = usePath()\n\n // Forward props to the \"check\" method with ref to avoid infinite loop\n const propsRef = useRef(props)\n propsRef.current = props\n\n const { withinIterate } = props || {}\n const makeLocalPath = useCallback(\n (path: Path) => {\n if (withinIterate) {\n return makeIteratePath(path)\n }\n\n return makePath(path)\n },\n [makeIteratePath, makePath, withinIterate]\n )\n\n const check = useCallback(\n (\n {\n visible,\n visibleWhen,\n visibleWhenNot,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n inferData,\n filterData,\n }: Partial<Props> = propsRef.current\n ) => {\n if (typeof visible === 'boolean') {\n return visible\n }\n\n const data =\n (filterData && filterDataHandler?.(originalData, filterData)) ||\n originalData\n\n if (visibleWhen || visibleWhenNot) {\n if (visibleWhenNot) {\n visibleWhen = visibleWhenNot\n }\n\n const path =\n 'itemPath' in visibleWhen\n ? makeIteratePath(visibleWhen.itemPath)\n : makePath(visibleWhen.path)\n\n if ('isValid' in visibleWhen) {\n const item = mountedFieldsRef.current.get(path)\n if (!item || item.isMounted !== true) {\n return visibleWhenNot ? true : false\n }\n const result =\n (visibleWhen.continuousValidation ||\n visibleWhen.validateContinuously\n ? true\n : item.isFocused !== true) && hasFieldError(path) === false\n return visibleWhenNot ? !result : result\n }\n\n if ('hasValue' in visibleWhen || 'withValue' in visibleWhen) {\n const hasPath = pointer.has(data, path)\n\n if (hasPath) {\n const value = pointer.get(data, path)\n\n if (visibleWhen?.['withValue']) {\n console.warn(\n 'VisibleWhen: \"withValue\" is deprecated, use \"hasValue\" instead'\n )\n }\n\n const hasValue =\n visibleWhen?.['hasValue'] ?? visibleWhen?.['withValue']\n const result =\n typeof hasValue === 'function'\n ? hasValue(value) === false\n : hasValue !== value\n\n if (visibleWhenNot) {\n if (!result) {\n return false\n }\n } else if (result) {\n return false\n }\n } else {\n return false\n }\n }\n }\n\n const getValue = (path: Path) => {\n if (pointer.has(data, path)) {\n return pointer.get(data, path)\n }\n }\n\n if (pathDefined) {\n return getValue(makeLocalPath(pathDefined)) !== undefined\n }\n if (pathUndefined) {\n return getValue(makeLocalPath(pathUndefined)) === undefined\n }\n\n if (pathTrue && getValue(makeLocalPath(pathTrue)) !== true) {\n return false\n }\n if (pathFalse && getValue(makeLocalPath(pathFalse)) !== false) {\n return false\n }\n\n if (\n pathTruthy &&\n Boolean(getValue(makeLocalPath(pathTruthy))) === false\n ) {\n return false\n }\n if (\n pathFalsy &&\n Boolean(getValue(makeLocalPath(pathFalsy))) === true\n ) {\n return false\n }\n\n if (inferData && !inferData(data)) {\n return false\n }\n\n // Deprecated can be removed in v11\n if (pathValue && getValue(makeLocalPath(pathValue)) !== whenValue) {\n return false\n }\n\n return true\n },\n [\n filterDataHandler,\n originalData,\n makeLocalPath,\n makeIteratePath,\n makePath,\n mountedFieldsRef,\n hasFieldError,\n ]\n )\n\n return { check }\n}\n"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AACvD,OAAOC,OAAO,MAAM,0BAA0B;AAC9C,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,OAAO,MAAM,qBAAqB;AAMzC,eAAe,SAASC,aAAaA,CAACC,KAAsB,EAAE;EAC5D,MAAM;IACJC,aAAa;IACbC,iBAAiB;IACjBC,gBAAgB;IAChBC,IAAI,EAAEC;EACR,CAAC,GAAGX,UAAU,CAACG,WAAW,CAAC;EAE3B,MAAM;IAAES,QAAQ;IAAEC;EAAgB,CAAC,GAAGT,OAAO,CAAC,CAAC;EAG/C,MAAMU,QAAQ,GAAGb,MAAM,CAACK,KAAK,CAAC;EAC9BQ,QAAQ,CAACC,OAAO,GAAGT,KAAK;EAExB,MAAM;IAAEU;EAAc,CAAC,GAAGV,KAAK,IAAI,CAAC,CAAC;EACrC,MAAMW,aAAa,GAAGlB,WAAW,CAC9BmB,IAAU,IAAK;IACd,IAAIF,aAAa,EAAE;MACjB,OAAOH,eAAe,CAACK,IAAI,CAAC;IAC9B;IAEA,OAAON,QAAQ,CAACM,IAAI,CAAC;EACvB,CAAC,EACD,CAACL,eAAe,EAAED,QAAQ,EAAEI,aAAa,CAC3C,CAAC;EAED,MAAMG,KAAK,GAAGpB,WAAW,CACvB,YAgBK;IAAA,IAfH;MACEqB,OAAO;MACPC,WAAW;MACXC,cAAc;MACdC,WAAW;MACXC,aAAa;MACbC,UAAU;MACVC,SAAS;MACTC,QAAQ;MACRC,SAAS;MACTC,SAAS;MACTC,SAAS;MACTC,SAAS;MACTC;IACc,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGnB,QAAQ,CAACC,OAAO;IAEpC,IAAI,OAAOK,OAAO,KAAK,SAAS,EAAE;MAChC,OAAOA,OAAO;IAChB;IAEA,MAAMV,IAAI,GACPsB,UAAU,KAAIxB,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAGG,YAAY,EAAEqB,UAAU,CAAC,KAC5DrB,YAAY;IAEd,IAAIU,WAAW,IAAIC,cAAc,EAAE;MACjC,IAAIA,cAAc,EAAE;QAClBD,WAAW,GAAGC,cAAc;MAC9B;MAEA,MAAMJ,IAAI,GACR,UAAU,IAAIG,WAAW,GACrBR,eAAe,CAACQ,WAAW,CAACe,QAAQ,CAAC,GACrCxB,QAAQ,CAACS,WAAW,CAACH,IAAI,CAAC;MAEhC,IAAI,SAAS,IAAIG,WAAW,EAAE;QAC5B,MAAMgB,IAAI,GAAG5B,gBAAgB,CAACM,OAAO,CAACuB,GAAG,CAACpB,IAAI,CAAC;QAC/C,IAAI,CAACmB,IAAI,IAAIA,IAAI,CAACE,SAAS,KAAK,IAAI,EAAE;UACpC,OAAOjB,cAAc,GAAG,IAAI,GAAG,KAAK;QACtC;QACA,MAAMkB,MAAM,GACV,CAACnB,WAAW,CAACoB,oBAAoB,IACjCpB,WAAW,CAACqB,oBAAoB,GAC5B,IAAI,GACJL,IAAI,CAACM,SAAS,KAAK,IAAI,KAAKpC,aAAa,CAACW,IAAI,CAAC,KAAK,KAAK;QAC/D,OAAOI,cAAc,GAAG,CAACkB,MAAM,GAAGA,MAAM;MAC1C;MAEA,IAAI,UAAU,IAAInB,WAAW,IAAI,WAAW,IAAIA,WAAW,EAAE;QAC3D,MAAMuB,OAAO,GAAG1C,OAAO,CAAC2C,GAAG,CAACnC,IAAI,EAAEQ,IAAI,CAAC;QAEvC,IAAI0B,OAAO,EAAE;UAAA,IAAAE,YAAA,EAAAC,qBAAA,EAAAC,aAAA,EAAAC,aAAA;UACX,MAAMC,KAAK,GAAGhD,OAAO,CAACoC,GAAG,CAAC5B,IAAI,EAAEQ,IAAI,CAAC;UAErC,KAAA4B,YAAA,GAAIzB,WAAW,cAAAyB,YAAA,eAAXA,YAAA,CAAc,WAAW,CAAC,EAAE;YAC9BK,OAAO,CAACC,IAAI,CACV,gEACF,CAAC;UACH;UAEA,MAAMC,QAAQ,IAAAN,qBAAA,IAAAC,aAAA,GACZ3B,WAAW,cAAA2B,aAAA,uBAAXA,aAAA,CAAc,UAAU,CAAC,cAAAD,qBAAA,cAAAA,qBAAA,IAAAE,aAAA,GAAI5B,WAAW,cAAA4B,aAAA,uBAAXA,aAAA,CAAc,WAAW,CAAC;UACzD,MAAMT,MAAM,GACV,OAAOa,QAAQ,KAAK,UAAU,GAC1BA,QAAQ,CAACH,KAAK,CAAC,KAAK,KAAK,GACzBG,QAAQ,KAAKH,KAAK;UAExB,IAAI5B,cAAc,EAAE;YAClB,IAAI,CAACkB,MAAM,EAAE;cACX,OAAO,KAAK;YACd;UACF,CAAC,MAAM,IAAIA,MAAM,EAAE;YACjB,OAAO,KAAK;UACd;QACF,CAAC,MAAM;UACL,OAAO,KAAK;QACd;MACF;IACF;IAEA,MAAMc,QAAQ,GAAIpC,IAAU,IAAK;MAC/B,IAAIhB,OAAO,CAAC2C,GAAG,CAACnC,IAAI,EAAEQ,IAAI,CAAC,EAAE;QAC3B,OAAOhB,OAAO,CAACoC,GAAG,CAAC5B,IAAI,EAAEQ,IAAI,CAAC;MAChC;IACF,CAAC;IAED,IAAIK,WAAW,EAAE;MACf,OAAO+B,QAAQ,CAACrC,aAAa,CAACM,WAAW,CAAC,CAAC,KAAKY,SAAS;IAC3D;IACA,IAAIX,aAAa,EAAE;MACjB,OAAO8B,QAAQ,CAACrC,aAAa,CAACO,aAAa,CAAC,CAAC,KAAKW,SAAS;IAC7D;IAEA,IAAIR,QAAQ,IAAI2B,QAAQ,CAACrC,aAAa,CAACU,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE;MAC1D,OAAO,KAAK;IACd;IACA,IAAIC,SAAS,IAAI0B,QAAQ,CAACrC,aAAa,CAACW,SAAS,CAAC,CAAC,KAAK,KAAK,EAAE;MAC7D,OAAO,KAAK;IACd;IAEA,IACEH,UAAU,IACV8B,OAAO,CAACD,QAAQ,CAACrC,aAAa,CAACQ,UAAU,CAAC,CAAC,CAAC,KAAK,KAAK,EACtD;MACA,OAAO,KAAK;IACd;IACA,IACEC,SAAS,IACT6B,OAAO,CAACD,QAAQ,CAACrC,aAAa,CAACS,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,EACpD;MACA,OAAO,KAAK;IACd;IAEA,IAAIK,SAAS,IAAI,CAACA,SAAS,CAACrB,IAAI,CAAC,EAAE;MACjC,OAAO,KAAK;IACd;IAGA,IAAImB,SAAS,IAAIyB,QAAQ,CAACrC,aAAa,CAACY,SAAS,CAAC,CAAC,KAAKC,SAAS,EAAE;MACjE,OAAO,KAAK;IACd;IAEA,OAAO,IAAI;EACb,CAAC,EACD,CACEtB,iBAAiB,EACjBG,YAAY,EACZM,aAAa,EACbJ,eAAe,EACfD,QAAQ,EACRH,gBAAgB,EAChBF,aAAa,CAEjB,CAAC;EAED,OAAO;IAAEY;EAAM,CAAC;AAClB","ignoreList":[]}
1
+ {"version":3,"file":"useVisibility.js","names":["useCallback","useContext","useRef","pointer","DataContext","usePath","useVisibility","props","hasFieldError","filterDataHandler","mountedFieldsRef","data","originalData","makePath","makeIteratePath","propsRef","current","withinIterate","makeLocalPath","path","check","visible","visibleWhen","visibleWhenNot","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","inferData","filterData","arguments","length","undefined","itemPath","item","get","isMounted","result","continuousValidation","validateContinuously","isFocused","_visibleWhen","_visibleWhen$hasValue","_visibleWhen2","_visibleWhen3","hasPath","has","value","console","warn","hasValue","getValue","Boolean"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/useVisibility.tsx"],"sourcesContent":["import { useCallback, useContext, useRef } from 'react'\nimport pointer from '../../utils/json-pointer'\nimport DataContext from '../../DataContext/Context'\nimport usePath from '../../hooks/usePath'\nimport { Path } from '../../types'\nimport { Props } from './Visibility'\n\nexport type { Props }\n\nexport default function useVisibility(props?: Partial<Props>) {\n const {\n hasFieldError,\n filterDataHandler,\n mountedFieldsRef,\n data: originalData,\n } = useContext(DataContext)\n\n const { makePath, makeIteratePath } = usePath()\n\n // Forward props to the \"check\" method with ref to avoid infinite loop\n const propsRef = useRef(props)\n propsRef.current = props\n\n const { withinIterate } = props || {}\n const makeLocalPath = useCallback(\n (path: Path) => {\n if (withinIterate) {\n return makeIteratePath(path)\n }\n\n return makePath(path)\n },\n [makeIteratePath, makePath, withinIterate]\n )\n\n const check = useCallback(\n (\n {\n visible,\n visibleWhen,\n visibleWhenNot,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n inferData,\n filterData,\n }: Partial<Props> = propsRef.current\n ) => {\n if (typeof visible === 'boolean') {\n return visible\n }\n\n const data =\n (filterData && filterDataHandler?.(originalData, filterData)) ||\n originalData\n\n if (visibleWhen || visibleWhenNot) {\n if (visibleWhenNot) {\n visibleWhen = visibleWhenNot\n }\n\n const path =\n 'itemPath' in visibleWhen\n ? makeIteratePath(visibleWhen.itemPath)\n : makePath(visibleWhen.path)\n\n if ('isValid' in visibleWhen) {\n const item = mountedFieldsRef.current.get(path)\n if (!item || item.isMounted !== true) {\n return visibleWhenNot ? true : false\n }\n const result =\n (visibleWhen.continuousValidation ||\n visibleWhen.validateContinuously\n ? true\n : item.isFocused !== true) && hasFieldError(path) === false\n return visibleWhenNot ? !result : result\n }\n\n if ('hasValue' in visibleWhen || 'withValue' in visibleWhen) {\n const hasPath = pointer.has(data, path)\n const value = hasPath ? pointer.get(data, path) : undefined\n\n if (visibleWhen?.['withValue']) {\n console.warn(\n 'VisibleWhen: \"withValue\" is deprecated, use \"hasValue\" instead'\n )\n }\n\n const hasValue =\n visibleWhen?.['hasValue'] ?? visibleWhen?.['withValue']\n const result =\n typeof hasValue === 'function'\n ? hasValue(value) === false\n : hasValue !== value\n\n if (visibleWhenNot) {\n if (!result) {\n return false\n }\n } else if (result) {\n return false\n }\n }\n }\n\n const getValue = (path: Path) => {\n if (pointer.has(data, path)) {\n return pointer.get(data, path)\n }\n }\n\n if (pathDefined) {\n return getValue(makeLocalPath(pathDefined)) !== undefined\n }\n if (pathUndefined) {\n return getValue(makeLocalPath(pathUndefined)) === undefined\n }\n\n if (pathTrue && getValue(makeLocalPath(pathTrue)) !== true) {\n return false\n }\n if (pathFalse && getValue(makeLocalPath(pathFalse)) !== false) {\n return false\n }\n\n if (\n pathTruthy &&\n Boolean(getValue(makeLocalPath(pathTruthy))) === false\n ) {\n return false\n }\n if (\n pathFalsy &&\n Boolean(getValue(makeLocalPath(pathFalsy))) === true\n ) {\n return false\n }\n\n if (inferData && !inferData(data)) {\n return false\n }\n\n // Deprecated can be removed in v11\n if (pathValue && getValue(makeLocalPath(pathValue)) !== whenValue) {\n return false\n }\n\n return true\n },\n [\n filterDataHandler,\n originalData,\n makeLocalPath,\n makeIteratePath,\n makePath,\n mountedFieldsRef,\n hasFieldError,\n ]\n )\n\n return { check }\n}\n"],"mappings":"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","ignoreList":[]}