@dnb/eufemia 10.37.0 → 10.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (480) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/cjs/components/accordion/Accordion.d.ts +13 -3
  3. package/cjs/components/accordion/Accordion.js +14 -9
  4. package/cjs/components/accordion/Accordion.js.map +1 -1
  5. package/cjs/components/accordion/AccordionContext.d.ts +2 -0
  6. package/cjs/components/accordion/AccordionContext.js.map +1 -1
  7. package/cjs/components/accordion/AccordionDocs.js +5 -0
  8. package/cjs/components/accordion/AccordionDocs.js.map +1 -1
  9. package/cjs/components/accordion/AccordionGroup.js +6 -3
  10. package/cjs/components/accordion/AccordionGroup.js.map +1 -1
  11. package/cjs/components/accordion/AccordionProviderContext.d.ts +2 -0
  12. package/cjs/components/accordion/AccordionProviderContext.js.map +1 -1
  13. package/cjs/components/accordion/AccordionStore.d.ts +2 -0
  14. package/cjs/components/accordion/AccordionStore.js +1 -1
  15. package/cjs/components/accordion/AccordionStore.js.map +1 -1
  16. package/cjs/components/accordion/style/themes/dnb-accordion-theme-ui.css +1 -0
  17. package/cjs/components/accordion/style/themes/dnb-accordion-theme-ui.min.css +1 -1
  18. package/cjs/components/accordion/style/themes/dnb-accordion-theme-ui.scss +3 -0
  19. package/cjs/components/button/Button.d.ts +2 -1
  20. package/cjs/components/button/Button.js +5 -2
  21. package/cjs/components/button/Button.js.map +1 -1
  22. package/cjs/components/card/Card.js +4 -3
  23. package/cjs/components/card/Card.js.map +1 -1
  24. package/cjs/components/card/style/dnb-card.css +16 -0
  25. package/cjs/components/card/style/dnb-card.min.css +1 -1
  26. package/cjs/components/card/style/dnb-card.scss +17 -0
  27. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.css +4 -4
  28. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -1
  29. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.scss +3 -5
  30. package/cjs/components/card/style/themes/dnb-card-theme-ui.css +4 -7
  31. package/cjs/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
  32. package/cjs/components/card/style/themes/dnb-card-theme-ui.scss +3 -7
  33. package/cjs/components/checkbox/style/dnb-checkbox.scss +1 -1
  34. package/cjs/components/height-animation/HeightAnimation.d.ts +1 -1
  35. package/cjs/components/height-animation/HeightAnimation.js +6 -2
  36. package/cjs/components/height-animation/HeightAnimation.js.map +1 -1
  37. package/cjs/components/height-animation/HeightAnimationDocs.d.ts +3 -0
  38. package/cjs/components/height-animation/HeightAnimationDocs.js +83 -0
  39. package/cjs/components/height-animation/HeightAnimationDocs.js.map +1 -0
  40. package/cjs/components/height-animation/style/dnb-height-animation.css +3 -2
  41. package/cjs/components/height-animation/style/dnb-height-animation.min.css +1 -1
  42. package/cjs/components/height-animation/style/dnb-height-animation.scss +3 -2
  43. package/cjs/components/height-animation/useHeightAnimation.d.ts +6 -1
  44. package/cjs/components/height-animation/useHeightAnimation.js +36 -6
  45. package/cjs/components/height-animation/useHeightAnimation.js.map +1 -1
  46. package/cjs/components/modal/Modal.js +1 -1
  47. package/cjs/components/modal/Modal.js.map +1 -1
  48. package/cjs/components/modal/types.d.ts +4 -0
  49. package/cjs/components/modal/types.js.map +1 -1
  50. package/cjs/components/radio/RadioGroup.js +4 -2
  51. package/cjs/components/radio/RadioGroup.js.map +1 -1
  52. package/cjs/components/radio/style/dnb-radio.css +8 -5
  53. package/cjs/components/radio/style/dnb-radio.min.css +1 -1
  54. package/cjs/components/radio/style/dnb-radio.scss +11 -13
  55. package/cjs/components/section/Section.js +3 -0
  56. package/cjs/components/section/Section.js.map +1 -1
  57. package/cjs/components/section/style/dnb-section.scss +2 -0
  58. package/cjs/components/table/Table.d.ts +6 -3
  59. package/cjs/components/table/Table.js +6 -2
  60. package/cjs/components/table/Table.js.map +1 -1
  61. package/cjs/components/table/TableClickableHead.d.ts +22 -0
  62. package/cjs/components/table/TableClickableHead.js +116 -0
  63. package/cjs/components/table/TableClickableHead.js.map +1 -0
  64. package/cjs/components/table/TableDocs.js +6 -6
  65. package/cjs/components/table/TableDocs.js.map +1 -1
  66. package/cjs/components/table/TableTr.d.ts +12 -12
  67. package/cjs/components/table/TableTr.js +13 -6
  68. package/cjs/components/table/TableTr.js.map +1 -1
  69. package/cjs/components/table/style/dnb-table.css +61 -61
  70. package/cjs/components/table/style/dnb-table.min.css +1 -1
  71. package/cjs/components/table/style/dnb-table.scss +1 -1
  72. package/cjs/components/table/style/table-accordion.scss +28 -36
  73. package/cjs/components/table/style/table-td.scss +1 -1
  74. package/cjs/components/table/table-accordion/TableAccordionHead.d.ts +0 -1
  75. package/cjs/components/table/table-accordion/TableAccordionHead.js +45 -74
  76. package/cjs/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  77. package/cjs/components/table/table-navigation/TableNavigationHead.d.ts +4 -0
  78. package/cjs/components/table/table-navigation/TableNavigationHead.js +56 -0
  79. package/cjs/components/table/table-navigation/TableNavigationHead.js.map +1 -0
  80. package/cjs/components/toggle-button/ToggleButtonGroup.js +6 -3
  81. package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  82. package/cjs/components/toggle-button/style/dnb-toggle-button.css +3 -3
  83. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  84. package/cjs/components/toggle-button/style/dnb-toggle-button.scss +6 -2
  85. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +14 -0
  86. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +90 -31
  87. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  88. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +12 -3
  89. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  90. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +14 -3
  91. package/cjs/extensions/forms/Field/Number/Number.d.ts +3 -1
  92. package/cjs/extensions/forms/Field/Number/Number.js +6 -2
  93. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  94. package/cjs/extensions/forms/Field/Number/NumberDocs.js +10 -0
  95. package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  96. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +15 -3
  97. package/cjs/extensions/forms/Field/Selection/Selection.js +71 -42
  98. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  99. package/cjs/extensions/forms/Field/Selection/style/dnb-selection.css +9 -0
  100. package/cjs/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
  101. package/cjs/extensions/forms/Field/Selection/style/dnb-selection.scss +16 -0
  102. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +3 -1
  103. package/cjs/extensions/forms/Form/Visibility/Visibility.js +4 -2
  104. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  105. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +5 -0
  106. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  107. package/cjs/extensions/forms/hooks/DataValueDocs.js +1 -1
  108. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  109. package/cjs/extensions/forms/style/dnb-forms.css +21 -3
  110. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  111. package/cjs/extensions/forms/types.d.ts +1 -1
  112. package/cjs/extensions/forms/types.js.map +1 -1
  113. package/cjs/extensions/payment-card/utils/cardProducts.js +7 -7
  114. package/cjs/extensions/payment-card/utils/cardProducts.js.map +1 -1
  115. package/cjs/shared/Eufemia.d.ts +1 -1
  116. package/cjs/shared/Eufemia.js +2 -2
  117. package/cjs/shared/Eufemia.js.map +1 -1
  118. package/cjs/shared/locales/en-GB.d.ts +1 -0
  119. package/cjs/shared/locales/en-GB.js +2 -1
  120. package/cjs/shared/locales/en-GB.js.map +1 -1
  121. package/cjs/shared/locales/en-US.d.ts +1 -0
  122. package/cjs/shared/locales/index.d.ts +2 -0
  123. package/cjs/shared/locales/nb-NO.d.ts +1 -0
  124. package/cjs/shared/locales/nb-NO.js +2 -1
  125. package/cjs/shared/locales/nb-NO.js.map +1 -1
  126. package/cjs/style/core/scopes.scss +1 -1
  127. package/cjs/style/dnb-ui-basis.css +1 -1
  128. package/cjs/style/dnb-ui-basis.min.css +1 -1
  129. package/cjs/style/dnb-ui-body.css +1 -1
  130. package/cjs/style/dnb-ui-body.min.css +1 -1
  131. package/cjs/style/dnb-ui-components.css +112 -74
  132. package/cjs/style/dnb-ui-components.min.css +3 -3
  133. package/cjs/style/dnb-ui-core.css +1 -1
  134. package/cjs/style/dnb-ui-core.min.css +1 -1
  135. package/cjs/style/dnb-ui-extensions.css +21 -3
  136. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  137. package/cjs/style/dnb-ui-forms.css +21 -3
  138. package/cjs/style/dnb-ui-forms.min.css +1 -1
  139. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +138 -84
  140. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  141. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +21 -3
  142. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  143. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +21 -3
  144. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  145. package/cjs/style/themes/theme-sbanken/fonts.scss +1 -1
  146. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +137 -81
  147. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  148. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +21 -3
  149. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  150. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +21 -3
  151. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  152. package/cjs/style/themes/theme-ui/ui-theme-components.css +138 -84
  153. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +5 -5
  154. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +21 -3
  155. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  156. package/cjs/style/themes/theme-ui/ui-theme-forms.css +21 -3
  157. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  158. package/components/accordion/Accordion.d.ts +13 -3
  159. package/components/accordion/Accordion.js +15 -10
  160. package/components/accordion/Accordion.js.map +1 -1
  161. package/components/accordion/AccordionContext.d.ts +2 -0
  162. package/components/accordion/AccordionContext.js.map +1 -1
  163. package/components/accordion/AccordionDocs.js +5 -0
  164. package/components/accordion/AccordionDocs.js.map +1 -1
  165. package/components/accordion/AccordionGroup.js +6 -3
  166. package/components/accordion/AccordionGroup.js.map +1 -1
  167. package/components/accordion/AccordionProviderContext.d.ts +2 -0
  168. package/components/accordion/AccordionProviderContext.js.map +1 -1
  169. package/components/accordion/AccordionStore.d.ts +2 -0
  170. package/components/accordion/AccordionStore.js +1 -1
  171. package/components/accordion/AccordionStore.js.map +1 -1
  172. package/components/accordion/style/themes/dnb-accordion-theme-ui.css +1 -0
  173. package/components/accordion/style/themes/dnb-accordion-theme-ui.min.css +1 -1
  174. package/components/accordion/style/themes/dnb-accordion-theme-ui.scss +3 -0
  175. package/components/button/Button.d.ts +2 -1
  176. package/components/button/Button.js +5 -2
  177. package/components/button/Button.js.map +1 -1
  178. package/components/card/Card.js +4 -3
  179. package/components/card/Card.js.map +1 -1
  180. package/components/card/style/dnb-card.css +16 -0
  181. package/components/card/style/dnb-card.min.css +1 -1
  182. package/components/card/style/dnb-card.scss +17 -0
  183. package/components/card/style/themes/dnb-card-theme-sbanken.css +4 -4
  184. package/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -1
  185. package/components/card/style/themes/dnb-card-theme-sbanken.scss +3 -5
  186. package/components/card/style/themes/dnb-card-theme-ui.css +4 -7
  187. package/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
  188. package/components/card/style/themes/dnb-card-theme-ui.scss +3 -7
  189. package/components/checkbox/style/dnb-checkbox.scss +1 -1
  190. package/components/height-animation/HeightAnimation.d.ts +1 -1
  191. package/components/height-animation/HeightAnimation.js +6 -2
  192. package/components/height-animation/HeightAnimation.js.map +1 -1
  193. package/components/height-animation/HeightAnimationDocs.d.ts +3 -0
  194. package/components/height-animation/HeightAnimationDocs.js +75 -0
  195. package/components/height-animation/HeightAnimationDocs.js.map +1 -0
  196. package/components/height-animation/style/dnb-height-animation.css +3 -2
  197. package/components/height-animation/style/dnb-height-animation.min.css +1 -1
  198. package/components/height-animation/style/dnb-height-animation.scss +3 -2
  199. package/components/height-animation/useHeightAnimation.d.ts +6 -1
  200. package/components/height-animation/useHeightAnimation.js +37 -7
  201. package/components/height-animation/useHeightAnimation.js.map +1 -1
  202. package/components/modal/Modal.js +1 -1
  203. package/components/modal/Modal.js.map +1 -1
  204. package/components/modal/types.d.ts +4 -0
  205. package/components/modal/types.js.map +1 -1
  206. package/components/radio/RadioGroup.js +4 -2
  207. package/components/radio/RadioGroup.js.map +1 -1
  208. package/components/radio/style/dnb-radio.css +8 -5
  209. package/components/radio/style/dnb-radio.min.css +1 -1
  210. package/components/radio/style/dnb-radio.scss +11 -13
  211. package/components/section/Section.js +3 -0
  212. package/components/section/Section.js.map +1 -1
  213. package/components/section/style/dnb-section.scss +2 -0
  214. package/components/table/Table.d.ts +6 -3
  215. package/components/table/Table.js +6 -2
  216. package/components/table/Table.js.map +1 -1
  217. package/components/table/TableClickableHead.d.ts +22 -0
  218. package/components/table/TableClickableHead.js +103 -0
  219. package/components/table/TableClickableHead.js.map +1 -0
  220. package/components/table/TableDocs.js +6 -6
  221. package/components/table/TableDocs.js.map +1 -1
  222. package/components/table/TableTr.d.ts +12 -12
  223. package/components/table/TableTr.js +13 -6
  224. package/components/table/TableTr.js.map +1 -1
  225. package/components/table/style/dnb-table.css +61 -61
  226. package/components/table/style/dnb-table.min.css +1 -1
  227. package/components/table/style/dnb-table.scss +1 -1
  228. package/components/table/style/table-accordion.scss +28 -36
  229. package/components/table/style/table-td.scss +1 -1
  230. package/components/table/table-accordion/TableAccordionHead.d.ts +0 -1
  231. package/components/table/table-accordion/TableAccordionHead.js +44 -72
  232. package/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  233. package/components/table/table-navigation/TableNavigationHead.d.ts +4 -0
  234. package/components/table/table-navigation/TableNavigationHead.js +48 -0
  235. package/components/table/table-navigation/TableNavigationHead.js.map +1 -0
  236. package/components/toggle-button/ToggleButtonGroup.js +6 -3
  237. package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  238. package/components/toggle-button/style/dnb-toggle-button.css +3 -3
  239. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  240. package/components/toggle-button/style/dnb-toggle-button.scss +6 -2
  241. package/es/components/accordion/Accordion.d.ts +13 -3
  242. package/es/components/accordion/Accordion.js +15 -10
  243. package/es/components/accordion/Accordion.js.map +1 -1
  244. package/es/components/accordion/AccordionContext.d.ts +2 -0
  245. package/es/components/accordion/AccordionContext.js.map +1 -1
  246. package/es/components/accordion/AccordionDocs.js +5 -0
  247. package/es/components/accordion/AccordionDocs.js.map +1 -1
  248. package/es/components/accordion/AccordionGroup.js +6 -3
  249. package/es/components/accordion/AccordionGroup.js.map +1 -1
  250. package/es/components/accordion/AccordionProviderContext.d.ts +2 -0
  251. package/es/components/accordion/AccordionProviderContext.js.map +1 -1
  252. package/es/components/accordion/AccordionStore.d.ts +2 -0
  253. package/es/components/accordion/AccordionStore.js +1 -1
  254. package/es/components/accordion/AccordionStore.js.map +1 -1
  255. package/es/components/accordion/style/themes/dnb-accordion-theme-ui.css +1 -0
  256. package/es/components/accordion/style/themes/dnb-accordion-theme-ui.min.css +1 -1
  257. package/es/components/accordion/style/themes/dnb-accordion-theme-ui.scss +3 -0
  258. package/es/components/button/Button.d.ts +2 -1
  259. package/es/components/button/Button.js +5 -2
  260. package/es/components/button/Button.js.map +1 -1
  261. package/es/components/card/Card.js +4 -3
  262. package/es/components/card/Card.js.map +1 -1
  263. package/es/components/card/style/dnb-card.css +16 -0
  264. package/es/components/card/style/dnb-card.min.css +1 -1
  265. package/es/components/card/style/dnb-card.scss +17 -0
  266. package/es/components/card/style/themes/dnb-card-theme-sbanken.css +4 -4
  267. package/es/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -1
  268. package/es/components/card/style/themes/dnb-card-theme-sbanken.scss +3 -5
  269. package/es/components/card/style/themes/dnb-card-theme-ui.css +4 -7
  270. package/es/components/card/style/themes/dnb-card-theme-ui.min.css +1 -1
  271. package/es/components/card/style/themes/dnb-card-theme-ui.scss +3 -7
  272. package/es/components/checkbox/style/dnb-checkbox.scss +1 -1
  273. package/es/components/height-animation/HeightAnimation.d.ts +1 -1
  274. package/es/components/height-animation/HeightAnimation.js +6 -2
  275. package/es/components/height-animation/HeightAnimation.js.map +1 -1
  276. package/es/components/height-animation/HeightAnimationDocs.d.ts +3 -0
  277. package/es/components/height-animation/HeightAnimationDocs.js +75 -0
  278. package/es/components/height-animation/HeightAnimationDocs.js.map +1 -0
  279. package/es/components/height-animation/style/dnb-height-animation.css +3 -2
  280. package/es/components/height-animation/style/dnb-height-animation.min.css +1 -1
  281. package/es/components/height-animation/style/dnb-height-animation.scss +3 -2
  282. package/es/components/height-animation/useHeightAnimation.d.ts +6 -1
  283. package/es/components/height-animation/useHeightAnimation.js +37 -7
  284. package/es/components/height-animation/useHeightAnimation.js.map +1 -1
  285. package/es/components/modal/Modal.js +1 -1
  286. package/es/components/modal/Modal.js.map +1 -1
  287. package/es/components/modal/types.d.ts +4 -0
  288. package/es/components/modal/types.js.map +1 -1
  289. package/es/components/radio/RadioGroup.js +4 -2
  290. package/es/components/radio/RadioGroup.js.map +1 -1
  291. package/es/components/radio/style/dnb-radio.css +8 -5
  292. package/es/components/radio/style/dnb-radio.min.css +1 -1
  293. package/es/components/radio/style/dnb-radio.scss +11 -13
  294. package/es/components/section/Section.js +3 -0
  295. package/es/components/section/Section.js.map +1 -1
  296. package/es/components/section/style/dnb-section.scss +2 -0
  297. package/es/components/table/Table.d.ts +6 -3
  298. package/es/components/table/Table.js +6 -2
  299. package/es/components/table/Table.js.map +1 -1
  300. package/es/components/table/TableClickableHead.d.ts +22 -0
  301. package/es/components/table/TableClickableHead.js +101 -0
  302. package/es/components/table/TableClickableHead.js.map +1 -0
  303. package/es/components/table/TableDocs.js +6 -6
  304. package/es/components/table/TableDocs.js.map +1 -1
  305. package/es/components/table/TableTr.d.ts +12 -12
  306. package/es/components/table/TableTr.js +13 -6
  307. package/es/components/table/TableTr.js.map +1 -1
  308. package/es/components/table/style/dnb-table.css +61 -61
  309. package/es/components/table/style/dnb-table.min.css +1 -1
  310. package/es/components/table/style/dnb-table.scss +1 -1
  311. package/es/components/table/style/table-accordion.scss +28 -36
  312. package/es/components/table/style/table-td.scss +1 -1
  313. package/es/components/table/table-accordion/TableAccordionHead.d.ts +0 -1
  314. package/es/components/table/table-accordion/TableAccordionHead.js +44 -71
  315. package/es/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  316. package/es/components/table/table-navigation/TableNavigationHead.d.ts +4 -0
  317. package/es/components/table/table-navigation/TableNavigationHead.js +48 -0
  318. package/es/components/table/table-navigation/TableNavigationHead.js.map +1 -0
  319. package/es/components/toggle-button/ToggleButtonGroup.js +6 -3
  320. package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  321. package/es/components/toggle-button/style/dnb-toggle-button.css +3 -3
  322. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  323. package/es/components/toggle-button/style/dnb-toggle-button.scss +6 -2
  324. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +14 -0
  325. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +87 -29
  326. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  327. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +12 -3
  328. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  329. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +14 -3
  330. package/es/extensions/forms/Field/Number/Number.d.ts +3 -1
  331. package/es/extensions/forms/Field/Number/Number.js +6 -2
  332. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  333. package/es/extensions/forms/Field/Number/NumberDocs.js +10 -0
  334. package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  335. package/es/extensions/forms/Field/Selection/Selection.d.ts +15 -3
  336. package/es/extensions/forms/Field/Selection/Selection.js +68 -42
  337. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  338. package/es/extensions/forms/Field/Selection/style/dnb-selection.css +9 -0
  339. package/es/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
  340. package/es/extensions/forms/Field/Selection/style/dnb-selection.scss +16 -0
  341. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +3 -1
  342. package/es/extensions/forms/Form/Visibility/Visibility.js +4 -2
  343. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  344. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +5 -0
  345. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  346. package/es/extensions/forms/hooks/DataValueDocs.js +1 -1
  347. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  348. package/es/extensions/forms/style/dnb-forms.css +21 -3
  349. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  350. package/es/extensions/forms/types.d.ts +1 -1
  351. package/es/extensions/forms/types.js.map +1 -1
  352. package/es/extensions/payment-card/utils/cardProducts.js +7 -7
  353. package/es/extensions/payment-card/utils/cardProducts.js.map +1 -1
  354. package/es/shared/Eufemia.d.ts +1 -1
  355. package/es/shared/Eufemia.js +2 -2
  356. package/es/shared/Eufemia.js.map +1 -1
  357. package/es/shared/locales/en-GB.d.ts +1 -0
  358. package/es/shared/locales/en-GB.js +2 -1
  359. package/es/shared/locales/en-GB.js.map +1 -1
  360. package/es/shared/locales/en-US.d.ts +1 -0
  361. package/es/shared/locales/index.d.ts +2 -0
  362. package/es/shared/locales/nb-NO.d.ts +1 -0
  363. package/es/shared/locales/nb-NO.js +2 -1
  364. package/es/shared/locales/nb-NO.js.map +1 -1
  365. package/es/style/core/scopes.scss +1 -1
  366. package/es/style/dnb-ui-basis.css +1 -1
  367. package/es/style/dnb-ui-basis.min.css +1 -1
  368. package/es/style/dnb-ui-body.css +1 -1
  369. package/es/style/dnb-ui-body.min.css +1 -1
  370. package/es/style/dnb-ui-components.css +112 -74
  371. package/es/style/dnb-ui-components.min.css +3 -3
  372. package/es/style/dnb-ui-core.css +1 -1
  373. package/es/style/dnb-ui-core.min.css +1 -1
  374. package/es/style/dnb-ui-extensions.css +21 -3
  375. package/es/style/dnb-ui-extensions.min.css +1 -1
  376. package/es/style/dnb-ui-forms.css +21 -3
  377. package/es/style/dnb-ui-forms.min.css +1 -1
  378. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +138 -84
  379. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  380. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +21 -3
  381. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  382. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +21 -3
  383. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  384. package/es/style/themes/theme-sbanken/fonts.scss +1 -1
  385. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +137 -81
  386. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  387. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +21 -3
  388. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  389. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +21 -3
  390. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  391. package/es/style/themes/theme-ui/ui-theme-components.css +138 -84
  392. package/es/style/themes/theme-ui/ui-theme-components.min.css +5 -5
  393. package/es/style/themes/theme-ui/ui-theme-extensions.css +21 -3
  394. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  395. package/es/style/themes/theme-ui/ui-theme-forms.css +21 -3
  396. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  397. package/esm/dnb-ui-basis.min.mjs +1 -1
  398. package/esm/dnb-ui-components.min.mjs +1 -1
  399. package/esm/dnb-ui-elements.min.mjs +1 -1
  400. package/esm/dnb-ui-extensions.min.mjs +2 -2
  401. package/esm/dnb-ui-lib.min.mjs +1 -1
  402. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +14 -0
  403. package/extensions/forms/Field/ArraySelection/ArraySelection.js +88 -29
  404. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  405. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +12 -3
  406. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  407. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +14 -3
  408. package/extensions/forms/Field/Number/Number.d.ts +3 -1
  409. package/extensions/forms/Field/Number/Number.js +6 -2
  410. package/extensions/forms/Field/Number/Number.js.map +1 -1
  411. package/extensions/forms/Field/Number/NumberDocs.js +10 -0
  412. package/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  413. package/extensions/forms/Field/Selection/Selection.d.ts +15 -3
  414. package/extensions/forms/Field/Selection/Selection.js +69 -42
  415. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  416. package/extensions/forms/Field/Selection/style/dnb-selection.css +9 -0
  417. package/extensions/forms/Field/Selection/style/dnb-selection.min.css +1 -1
  418. package/extensions/forms/Field/Selection/style/dnb-selection.scss +16 -0
  419. package/extensions/forms/Form/Visibility/Visibility.d.ts +3 -1
  420. package/extensions/forms/Form/Visibility/Visibility.js +4 -2
  421. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  422. package/extensions/forms/Form/Visibility/VisibilityDocs.js +5 -0
  423. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  424. package/extensions/forms/hooks/DataValueDocs.js +1 -1
  425. package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  426. package/extensions/forms/style/dnb-forms.css +21 -3
  427. package/extensions/forms/style/dnb-forms.min.css +1 -1
  428. package/extensions/forms/types.d.ts +1 -1
  429. package/extensions/forms/types.js.map +1 -1
  430. package/extensions/payment-card/utils/cardProducts.js +7 -7
  431. package/extensions/payment-card/utils/cardProducts.js.map +1 -1
  432. package/package.json +1 -1
  433. package/shared/Eufemia.d.ts +1 -1
  434. package/shared/Eufemia.js +2 -2
  435. package/shared/Eufemia.js.map +1 -1
  436. package/shared/locales/en-GB.d.ts +1 -0
  437. package/shared/locales/en-GB.js +2 -1
  438. package/shared/locales/en-GB.js.map +1 -1
  439. package/shared/locales/en-US.d.ts +1 -0
  440. package/shared/locales/index.d.ts +2 -0
  441. package/shared/locales/nb-NO.d.ts +1 -0
  442. package/shared/locales/nb-NO.js +2 -1
  443. package/shared/locales/nb-NO.js.map +1 -1
  444. package/style/core/scopes.scss +1 -1
  445. package/style/dnb-ui-basis.css +1 -1
  446. package/style/dnb-ui-basis.min.css +1 -1
  447. package/style/dnb-ui-body.css +1 -1
  448. package/style/dnb-ui-body.min.css +1 -1
  449. package/style/dnb-ui-components.css +112 -74
  450. package/style/dnb-ui-components.min.css +3 -3
  451. package/style/dnb-ui-core.css +1 -1
  452. package/style/dnb-ui-core.min.css +1 -1
  453. package/style/dnb-ui-extensions.css +21 -3
  454. package/style/dnb-ui-extensions.min.css +1 -1
  455. package/style/dnb-ui-forms.css +21 -3
  456. package/style/dnb-ui-forms.min.css +1 -1
  457. package/style/themes/theme-eiendom/eiendom-theme-components.css +138 -84
  458. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  459. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +21 -3
  460. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  461. package/style/themes/theme-eiendom/eiendom-theme-forms.css +21 -3
  462. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  463. package/style/themes/theme-sbanken/fonts.scss +1 -1
  464. package/style/themes/theme-sbanken/sbanken-theme-components.css +137 -81
  465. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  466. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +21 -3
  467. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  468. package/style/themes/theme-sbanken/sbanken-theme-forms.css +21 -3
  469. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  470. package/style/themes/theme-ui/ui-theme-components.css +138 -84
  471. package/style/themes/theme-ui/ui-theme-components.min.css +5 -5
  472. package/style/themes/theme-ui/ui-theme-extensions.css +21 -3
  473. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  474. package/style/themes/theme-ui/ui-theme-forms.css +21 -3
  475. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  476. package/umd/dnb-ui-basis.min.js +1 -1
  477. package/umd/dnb-ui-components.min.js +1 -1
  478. package/umd/dnb-ui-elements.min.js +1 -1
  479. package/umd/dnb-ui-extensions.min.js +3 -3
  480. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Number.js","names":["_react","_interopRequireWildcard","require","_components","_Context","_interopRequireDefault","_FieldBlockContext","_classnames","_FieldBlock","_hooks","_utils","_SliderHelpers","_useErrorMessage","_useTranslation","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","NumberComponent","props","_props$width","_sharedContext$transl","_sharedContext$transl2","fieldBlockContext","useContext","FieldBlockContext","sharedContext","SharedContext","translations","useTranslation","currency","currencyDisplay","percent","mask","step","decimalLimit","prefix","suffix","showStepControls","errorMessages","useErrorMessage","path","required","Field","errorRequired","minimum","NumberField","errorMinimum","maximum","errorMaximum","exclusiveMinimum","errorExclusiveMinimum","exclusiveMaximum","errorExclusiveMaximum","multipleOf","errorMultipleOf","schema","useMemo","_props$schema","type","toInput","useCallback","external","fromInput","_ref","numberValue","emptyValue","transformValue","currentValue","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","maskProps","mask_options","as_currency","currency_mask","as_percent","as_number","number_mask","preparedProps","valueType","width","composition","id","name","className","inputClassName","autoComplete","layout","placeholder","label","labelDescription","startWith","disabled","htmlAttributes","info","warning","error","hasError","help","size","align","handleFocus","handleBlur","handleChange","useFieldProps","onKeyDownHandler","_ref2","event","clamp","persist","preventDefault","fieldBlockProps","classnames","contentClassName","forId","contentWidth","pickSpacingProps","increaseClickHandler","increaseProps","variant","icon","tabIndex","onClick","title","translation","Slider","addTitle","replace","decreaseClickHandler","decreaseProps","subtractTitle","ariaParams","role","inputProps","onKeyDown","onFocus","onBlur","onChange","status","stretch","Boolean","createElement","HelpButton","content","asFieldset","Button","InputMasked","left","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Number/Number.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport { InputMasked, HelpButton, Button } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport type { InputAlign, InputSize } from '../../../../components/Input'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldProps,\n FieldHelpProps,\n AllJSONSchemaVersions,\n CustomErrorMessages,\n FieldBlockWidth,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { ButtonProps, ButtonSize } from '../../../../components/Button'\nimport { clamp } from '../../../../components/slider/SliderHelpers'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\ninterface ErrorMessages extends CustomErrorMessages {\n required?: string\n schema?: string\n minimum?: string\n maximum?: string\n exclusiveMinimum?: string\n exclusiveMaximum?: string\n multipleOf?: string\n}\n\nexport type Props = FieldHelpProps &\n FieldProps<number, undefined, ErrorMessages> & {\n inputClassName?: string\n currency?: InputMaskedProps['as_currency']\n currencyDisplay?: 'code' | 'symbol' | 'narrowSymbol' | 'name'\n percent?: InputMaskedProps['as_percent']\n mask?: InputMaskedProps['mask']\n step?: number\n startWith?: number\n // Formatting\n decimalLimit?: number\n prefix?: string\n suffix?: string\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n size?: InputSize\n width?: FieldBlockWidth\n align?: InputAlign\n showStepControls?: boolean\n }\n\nfunction NumberComponent(props: Props) {\n const fieldBlockContext = useContext(FieldBlockContext)\n const sharedContext = useContext(SharedContext)\n const translations = useTranslation()\n\n const {\n currency,\n currencyDisplay,\n percent,\n mask,\n step = 1,\n decimalLimit = 12,\n prefix,\n suffix,\n showStepControls,\n } = props\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.Field.errorRequired,\n minimum: translations.NumberField.errorMinimum,\n maximum: translations.NumberField.errorMaximum,\n exclusiveMinimum: translations.NumberField.errorExclusiveMinimum,\n exclusiveMaximum: translations.NumberField.errorExclusiveMaximum,\n multipleOf: translations.NumberField.errorMultipleOf,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'number',\n minimum: props.minimum,\n maximum: props.maximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n [\n props.schema,\n props.minimum,\n props.maximum,\n props.exclusiveMinimum,\n props.exclusiveMaximum,\n props.multipleOf,\n ]\n )\n\n const toInput = useCallback((external: number | undefined) => {\n if (external === undefined) {\n return null\n }\n return external\n }, [])\n const fromInput = useCallback(\n ({ value, numberValue }: { value: string; numberValue: number }) => {\n if (value === '') {\n return props.emptyValue\n }\n return numberValue\n },\n [props.emptyValue]\n )\n const transformValue = useCallback(\n (value: number, currentValue: number) => {\n if (\n value > Number.MAX_SAFE_INTEGER ||\n value < Number.MIN_SAFE_INTEGER\n ) {\n return currentValue\n }\n\n return value\n },\n []\n )\n\n const maskProps: Partial<InputMaskedProps> = useMemo(() => {\n const mask_options = { prefix, suffix, decimalLimit }\n\n if (currency) {\n return {\n as_currency: currency,\n mask_options,\n currency_mask: {\n currencyDisplay,\n },\n }\n }\n\n if (percent) {\n return {\n as_percent: percent,\n mask_options,\n }\n }\n\n // Custom mask based on props\n return {\n as_number: true,\n mask,\n number_mask: {\n ...mask_options,\n },\n }\n }, [\n currency,\n currencyDisplay,\n decimalLimit,\n mask,\n percent,\n prefix,\n suffix,\n ])\n\n const preparedProps: Props = {\n valueType: 'number',\n ...props,\n errorMessages,\n schema,\n toInput,\n fromInput,\n transformValue,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'medium'),\n }\n\n const {\n id,\n name,\n className,\n inputClassName,\n autoComplete,\n layout,\n placeholder,\n label,\n labelDescription,\n value,\n startWith = null,\n minimum = Number.MIN_SAFE_INTEGER,\n maximum = Number.MAX_SAFE_INTEGER,\n disabled,\n htmlAttributes,\n info,\n warning,\n error,\n hasError,\n help,\n size,\n width,\n align,\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const onKeyDownHandler = useCallback(\n ({ key, event }) => {\n if (!showStepControls) {\n return\n }\n\n let numberValue = null\n\n switch (key) {\n case 'ArrowUp':\n numberValue = clamp(\n (value ?? startWith) + step,\n minimum,\n maximum\n )\n break\n case 'ArrowDown':\n numberValue = clamp(\n (value ?? startWith) - step,\n minimum,\n maximum\n )\n break\n }\n\n if (numberValue !== null) {\n event.persist()\n event.preventDefault()\n handleChange({ numberValue })\n }\n },\n [\n handleChange,\n maximum,\n minimum,\n showStepControls,\n startWith,\n step,\n value,\n ]\n )\n\n const fieldBlockProps = {\n className: classnames(\n 'dnb-forms-field-number',\n 'dnb-input__border--tokens', // Used by \"dnb-input__border\"\n className\n ),\n contentClassName: classnames(\n 'dnb-forms-field-number__contents',\n showStepControls && 'dnb-forms-field-number__contents--has-controls',\n hasError && 'dnb-input__status--error', // Also used by \"dnb-input__border\"\n disabled && 'dnb-input--disabled' // Also used by \"dnb-input__border\"\n ),\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width:\n (width === 'stretch' || fieldBlockContext?.composition) &&\n !showStepControls\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n const increaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) + step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const increaseProps: ButtonProps = showStepControls && {\n 'aria-hidden': true,\n className: 'dnb-button--control-after',\n variant: 'secondary',\n icon: 'add',\n size: (size || 'small') as ButtonSize,\n tabIndex: -1,\n disabled: disabled || value >= maximum,\n onClick: increaseClickHandler,\n title: sharedContext?.translation.Slider.addTitle?.replace(\n '%s',\n String(value + step)\n ),\n }\n\n const decreaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) - step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const decreaseProps: ButtonProps = showStepControls && {\n ...increaseProps,\n className: 'dnb-button--control-before',\n icon: 'subtract',\n size: (size || 'small') as ButtonSize,\n disabled: disabled || value <= minimum,\n onClick: decreaseClickHandler,\n title: sharedContext?.translation.Slider.subtractTitle?.replace(\n '%s',\n String(value - step)\n ),\n }\n\n const ariaParams = showStepControls && {\n role: 'spinbutton',\n 'aria-valuemin': String(minimum),\n 'aria-valuemax': String(maximum),\n 'aria-valuenow': String(value), // without it, VO will read an invalid value\n 'aria-valuetext': String(value), // without it, VO will read %\n }\n\n const inputProps = {\n id,\n name,\n autoComplete,\n className: classnames(\n 'dnb-forms-field-number__input',\n `dnb-input--${size}`,\n inputClassName\n ),\n step: showStepControls ? step : undefined,\n placeholder,\n value,\n align: showStepControls ? 'center' : align,\n ...maskProps,\n onKeyDown: onKeyDownHandler,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: handleChange,\n disabled,\n ...htmlAttributes,\n status: hasError ? 'error' : undefined,\n stretch: Boolean(\n width !== undefined || fieldBlockContext?.composition\n ),\n suffix:\n help && !showStepControls ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n ...ariaParams,\n }\n\n if (showStepControls) {\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <span className=\"dnb-input__border dnb-input__border--root\">\n {<Button {...decreaseProps} />}\n <InputMasked {...inputProps} />\n {<Button {...increaseProps} />}\n </span>\n {help && (\n <HelpButton left=\"x-small\" title={help.title}>\n {help.content}\n </HelpButton>\n )}\n </FieldBlock>\n )\n }\n\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <InputMasked {...inputProps} />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"Number.js","names":["_react","_interopRequireWildcard","require","_components","_Context","_interopRequireDefault","_FieldBlockContext","_classnames","_FieldBlock","_hooks","_utils","_SliderHelpers","_useErrorMessage","_useTranslation","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","NumberComponent","props","_props$width","_sharedContext$transl","_sharedContext$transl2","fieldBlockContext","useContext","FieldBlockContext","sharedContext","SharedContext","translations","useTranslation","currency","currencyDisplay","percent","mask","step","decimalLimit","allowNegative","disallowLeadingZeroes","prefix","suffix","showStepControls","errorMessages","useErrorMessage","path","required","Field","errorRequired","minimum","NumberField","errorMinimum","maximum","errorMaximum","exclusiveMinimum","errorExclusiveMinimum","exclusiveMaximum","errorExclusiveMaximum","multipleOf","errorMultipleOf","schema","useMemo","_props$schema","type","toInput","useCallback","external","fromInput","_ref","numberValue","emptyValue","transformValue","currentValue","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","maskProps","mask_options","as_currency","currency_mask","as_percent","as_number","number_mask","preparedProps","valueType","width","composition","id","name","className","inputClassName","autoComplete","layout","placeholder","label","labelDescription","startWith","disabled","htmlAttributes","info","warning","error","hasError","help","size","align","handleFocus","handleBlur","handleChange","useFieldProps","onKeyDownHandler","_ref2","event","clamp","persist","preventDefault","fieldBlockProps","classnames","contentClassName","forId","contentWidth","pickSpacingProps","increaseClickHandler","increaseProps","variant","icon","tabIndex","onClick","title","translation","Slider","addTitle","replace","decreaseClickHandler","decreaseProps","subtractTitle","ariaParams","role","inputProps","onKeyDown","onFocus","onBlur","onChange","status","stretch","Boolean","createElement","HelpButton","content","asFieldset","Button","InputMasked","left","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Number/Number.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport { InputMasked, HelpButton, Button } from '../../../../components'\nimport { InputMaskedProps } from '../../../../components/InputMasked'\nimport type { InputAlign, InputSize } from '../../../../components/Input'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldProps,\n FieldHelpProps,\n AllJSONSchemaVersions,\n CustomErrorMessages,\n FieldBlockWidth,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { ButtonProps, ButtonSize } from '../../../../components/Button'\nimport { clamp } from '../../../../components/slider/SliderHelpers'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\ninterface ErrorMessages extends CustomErrorMessages {\n required?: string\n schema?: string\n minimum?: string\n maximum?: string\n exclusiveMinimum?: string\n exclusiveMaximum?: string\n multipleOf?: string\n}\n\nexport type Props = FieldHelpProps &\n FieldProps<number, undefined | number, ErrorMessages> & {\n inputClassName?: string\n currency?: InputMaskedProps['as_currency']\n currencyDisplay?: 'code' | 'symbol' | 'narrowSymbol' | 'name'\n percent?: InputMaskedProps['as_percent']\n mask?: InputMaskedProps['mask']\n step?: number\n startWith?: number\n // Formatting\n decimalLimit?: number\n allowNegative?: boolean\n disallowLeadingZeroes?: boolean\n prefix?: string\n suffix?: string\n // Validation\n minimum?: number // aka greater than or equal to\n maximum?: number // aka less than or equal to\n exclusiveMinimum?: number // aka greater than\n exclusiveMaximum?: number // aka less than\n multipleOf?: number\n // Styling\n size?: InputSize\n width?: FieldBlockWidth\n align?: InputAlign\n showStepControls?: boolean\n }\n\nfunction NumberComponent(props: Props) {\n const fieldBlockContext = useContext(FieldBlockContext)\n const sharedContext = useContext(SharedContext)\n const translations = useTranslation()\n\n const {\n currency,\n currencyDisplay,\n percent,\n mask,\n step = 1,\n decimalLimit = 12,\n allowNegative = true,\n disallowLeadingZeroes = false,\n prefix,\n suffix,\n showStepControls,\n } = props\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.Field.errorRequired,\n minimum: translations.NumberField.errorMinimum,\n maximum: translations.NumberField.errorMaximum,\n exclusiveMinimum: translations.NumberField.errorExclusiveMinimum,\n exclusiveMaximum: translations.NumberField.errorExclusiveMaximum,\n multipleOf: translations.NumberField.errorMultipleOf,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'number',\n minimum: props.minimum,\n maximum: props.maximum,\n exclusiveMinimum: props.exclusiveMinimum,\n exclusiveMaximum: props.exclusiveMaximum,\n multipleOf: props.multipleOf,\n },\n [\n props.schema,\n props.minimum,\n props.maximum,\n props.exclusiveMinimum,\n props.exclusiveMaximum,\n props.multipleOf,\n ]\n )\n\n const toInput = useCallback((external: number | undefined) => {\n if (external === undefined) {\n return null\n }\n return external\n }, [])\n const fromInput = useCallback(\n ({ value, numberValue }: { value: string; numberValue: number }) => {\n if (value === '') {\n return props.emptyValue\n }\n return numberValue\n },\n [props.emptyValue]\n )\n const transformValue = useCallback(\n (value: number, currentValue: number) => {\n if (\n value > Number.MAX_SAFE_INTEGER ||\n value < Number.MIN_SAFE_INTEGER\n ) {\n return currentValue\n }\n\n return value\n },\n []\n )\n\n const maskProps: Partial<InputMaskedProps> = useMemo(() => {\n const mask_options = {\n prefix,\n suffix,\n decimalLimit,\n allowNegative,\n disallowLeadingZeroes,\n }\n\n if (currency) {\n return {\n as_currency: currency,\n mask_options,\n currency_mask: {\n currencyDisplay,\n },\n }\n }\n\n if (percent) {\n return {\n as_percent: percent,\n mask_options,\n }\n }\n\n // Custom mask based on props\n return {\n as_number: true,\n mask,\n number_mask: {\n ...mask_options,\n },\n }\n }, [\n currency,\n currencyDisplay,\n decimalLimit,\n mask,\n percent,\n prefix,\n suffix,\n allowNegative,\n disallowLeadingZeroes,\n ])\n\n const preparedProps: Props = {\n valueType: 'number',\n ...props,\n errorMessages,\n schema,\n toInput,\n fromInput,\n transformValue,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'medium'),\n }\n\n const {\n id,\n name,\n className,\n inputClassName,\n autoComplete,\n layout,\n placeholder,\n label,\n labelDescription,\n value,\n startWith = null,\n minimum = Number.MIN_SAFE_INTEGER,\n maximum = Number.MAX_SAFE_INTEGER,\n disabled,\n htmlAttributes,\n info,\n warning,\n error,\n hasError,\n help,\n size,\n width,\n align,\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const onKeyDownHandler = useCallback(\n ({ key, event }) => {\n if (!showStepControls) {\n return\n }\n\n let numberValue = null\n\n switch (key) {\n case 'ArrowUp':\n numberValue = clamp(\n (value ?? startWith) + step,\n minimum,\n maximum\n )\n break\n case 'ArrowDown':\n numberValue = clamp(\n (value ?? startWith) - step,\n minimum,\n maximum\n )\n break\n }\n\n if (numberValue !== null) {\n event.persist()\n event.preventDefault()\n handleChange({ numberValue })\n }\n },\n [\n handleChange,\n maximum,\n minimum,\n showStepControls,\n startWith,\n step,\n value,\n ]\n )\n\n const fieldBlockProps = {\n className: classnames(\n 'dnb-forms-field-number',\n 'dnb-input__border--tokens', // Used by \"dnb-input__border\"\n className\n ),\n contentClassName: classnames(\n 'dnb-forms-field-number__contents',\n showStepControls && 'dnb-forms-field-number__contents--has-controls',\n hasError && 'dnb-input__status--error', // Also used by \"dnb-input__border\"\n disabled && 'dnb-input--disabled' // Also used by \"dnb-input__border\"\n ),\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width:\n (width === 'stretch' || fieldBlockContext?.composition) &&\n !showStepControls\n ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\n\n const increaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) + step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const increaseProps: ButtonProps = showStepControls && {\n 'aria-hidden': true,\n className: 'dnb-button--control-after',\n variant: 'secondary',\n icon: 'add',\n size: (size || 'small') as ButtonSize,\n tabIndex: -1,\n disabled: disabled || value >= maximum,\n onClick: increaseClickHandler,\n title: sharedContext?.translation.Slider.addTitle?.replace(\n '%s',\n String(value + step)\n ),\n }\n\n const decreaseClickHandler = useCallback(() => {\n handleChange({\n numberValue: clamp((value ?? startWith) - step, minimum, maximum),\n })\n }, [handleChange, maximum, minimum, startWith, step, value])\n\n const decreaseProps: ButtonProps = showStepControls && {\n ...increaseProps,\n className: 'dnb-button--control-before',\n icon: 'subtract',\n size: (size || 'small') as ButtonSize,\n disabled: disabled || value <= minimum,\n onClick: decreaseClickHandler,\n title: sharedContext?.translation.Slider.subtractTitle?.replace(\n '%s',\n String(value - step)\n ),\n }\n\n const ariaParams = showStepControls && {\n role: 'spinbutton',\n 'aria-valuemin': String(minimum),\n 'aria-valuemax': String(maximum),\n 'aria-valuenow': String(value), // without it, VO will read an invalid value\n 'aria-valuetext': String(value), // without it, VO will read %\n }\n\n const inputProps = {\n id,\n name,\n autoComplete,\n className: classnames(\n 'dnb-forms-field-number__input',\n `dnb-input--${size}`,\n inputClassName\n ),\n step: showStepControls ? step : undefined,\n placeholder,\n value,\n align: showStepControls ? 'center' : align,\n ...maskProps,\n onKeyDown: onKeyDownHandler,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onChange: handleChange,\n disabled,\n ...htmlAttributes,\n status: hasError ? 'error' : undefined,\n stretch: Boolean(\n width !== undefined || fieldBlockContext?.composition\n ),\n suffix:\n help && !showStepControls ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n ...ariaParams,\n }\n\n if (showStepControls) {\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <span className=\"dnb-input__border dnb-input__border--root\">\n {<Button {...decreaseProps} />}\n <InputMasked {...inputProps} />\n {<Button {...increaseProps} />}\n </span>\n {help && (\n <HelpButton left=\"x-small\" title={help.title}>\n {help.content}\n </HelpButton>\n )}\n </FieldBlock>\n )\n }\n\n return (\n <FieldBlock {...fieldBlockProps} asFieldset={false}>\n <InputMasked {...inputProps} />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
@@ -21,6 +21,16 @@ const numberProperties = {
21
21
  type: ['boolean', 'string'],
22
22
  status: 'optional'
23
23
  },
24
+ allowNegative: {
25
+ doc: 'Whether or not to allow negative numbers. Defaults to `true`.',
26
+ type: 'boolean',
27
+ status: 'optional'
28
+ },
29
+ disallowLeadingZeroes: {
30
+ doc: 'Whether or not to allow leading zeroes. Defaults to `false`.',
31
+ type: 'boolean',
32
+ status: 'optional'
33
+ },
24
34
  minimum: {
25
35
  doc: 'Validation for inclusive minimum number value (greater than or equal). Defaults to `Number.MIN_SAFE_INTEGER`.',
26
36
  type: 'number',
@@ -1 +1 @@
1
- {"version":3,"file":"NumberDocs.js","names":["_InputDocs","require","numberProperties","decimalLimit","doc","type","status","percent","currency","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","width","size","inputProperties","align","help","autoComplete","prefix","suffix","step","startWith","showStepControls","exports"],"sources":["../../../../../../src/extensions/forms/Field/Number/NumberDocs.ts"],"sourcesContent":["import { inputProperties } from '../../../../components/input/InputDocs'\nimport { PropertiesTableProps } from '../../../../shared/types'\n\nexport const numberProperties: PropertiesTableProps = {\n decimalLimit: {\n doc: 'Max number of decimals. Values with more decimals will be rounded. Defaults to `12`.',\n type: 'number',\n status: 'optional',\n },\n percent: {\n doc: 'Format a number as percentage.',\n type: 'boolean',\n status: 'optional',\n },\n currency: {\n doc: 'Currency code (ISO 4217) or `true` to use the default `NOK`. Uses two decimals by default.',\n type: ['boolean', 'string'],\n status: 'optional',\n },\n minimum: {\n doc: 'Validation for inclusive minimum number value (greater than or equal). Defaults to `Number.MIN_SAFE_INTEGER`.',\n type: 'number',\n status: 'optional',\n },\n maximum: {\n doc: 'Validation for inclusive maximum number value (less than or equal). Defaults to `Number.MAX_SAFE_INTEGER`.',\n type: 'number',\n status: 'optional',\n },\n exclusiveMinimum: {\n doc: 'Validation for exclusive minimum number value (greater than).',\n type: 'number',\n status: 'optional',\n },\n exclusiveMaximum: {\n doc: 'Validation for exclusive maximum number value (less than).',\n type: 'number',\n status: 'optional',\n },\n multipleOf: {\n doc: 'Validation that requires the number to be a multiple of given value.',\n type: 'number',\n status: 'optional',\n },\n width: {\n doc: '`false` for no width (use browser default), `small`, `medium` or `large` for predefined standard widths, `stretch` for fill available width.',\n type: ['string', 'false'],\n status: 'optional',\n },\n size: inputProperties.size,\n align: {\n doc: 'Lateral alignment of contents of input field, one of `left` (default), `center`, or `right`.',\n type: 'string',\n status: 'optional',\n },\n help: {\n doc: 'Provide a help button. Object consisting of `title` and `content`.',\n type: 'object',\n status: 'optional',\n },\n autoComplete: {\n doc: 'For HTML `autocomplete` attributes.',\n type: ['on', 'string'],\n status: 'optional',\n },\n prefix: {\n doc: 'Text added before the value input.',\n type: 'string',\n status: 'optional',\n },\n suffix: {\n doc: 'Text added after the value input.',\n type: 'string',\n status: 'optional',\n },\n step: {\n doc: 'Determines step granularity when in/decreasing value input through step controls buttons or arrow keys. Defaults to 1.',\n type: 'number',\n status: 'optional',\n },\n startWith: {\n doc: 'When no `value` or `defaultValue` is given, start with a given value when in/decreasing value input through step controls buttons or arrow keys. Defaults to `null`.',\n type: 'number',\n status: 'optional',\n },\n showStepControls: {\n doc: 'Show buttons that in/decreases value input by the step value.',\n type: 'boolean',\n status: 'optional',\n },\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAGO,MAAMC,gBAAsC,GAAG;EACpDC,YAAY,EAAE;IACZC,GAAG,EAAE,sFAAsF;IAC3FC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,OAAO,EAAE;IACPH,GAAG,EAAE,gCAAgC;IACrCC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDE,QAAQ,EAAE;IACRJ,GAAG,EAAE,4FAA4F;IACjGC,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC3BC,MAAM,EAAE;EACV,CAAC;EACDG,OAAO,EAAE;IACPL,GAAG,EAAE,+GAA+G;IACpHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,OAAO,EAAE;IACPN,GAAG,EAAE,4GAA4G;IACjHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,gBAAgB,EAAE;IAChBP,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,gBAAgB,EAAE;IAChBR,GAAG,EAAE,4DAA4D;IACjEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,UAAU,EAAE;IACVT,GAAG,EAAE,sEAAsE;IAC3EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,KAAK,EAAE;IACLV,GAAG,EAAE,8IAA8I;IACnJC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDS,IAAI,EAAEC,0BAAe,CAACD,IAAI;EAC1BE,KAAK,EAAE;IACLb,GAAG,EAAE,8FAA8F;IACnGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDY,IAAI,EAAE;IACJd,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDa,YAAY,EAAE;IACZf,GAAG,EAAE,qCAAqC;IAC1CC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;IACtBC,MAAM,EAAE;EACV,CAAC;EACDc,MAAM,EAAE;IACNhB,GAAG,EAAE,oCAAoC;IACzCC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDe,MAAM,EAAE;IACNjB,GAAG,EAAE,mCAAmC;IACxCC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDgB,IAAI,EAAE;IACJlB,GAAG,EAAE,wHAAwH;IAC7HC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDiB,SAAS,EAAE;IACTnB,GAAG,EAAE,sKAAsK;IAC3KC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDkB,gBAAgB,EAAE;IAChBpB,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AACF,CAAC;AAAAmB,OAAA,CAAAvB,gBAAA,GAAAA,gBAAA"}
1
+ {"version":3,"file":"NumberDocs.js","names":["_InputDocs","require","numberProperties","decimalLimit","doc","type","status","percent","currency","allowNegative","disallowLeadingZeroes","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","width","size","inputProperties","align","help","autoComplete","prefix","suffix","step","startWith","showStepControls","exports"],"sources":["../../../../../../src/extensions/forms/Field/Number/NumberDocs.ts"],"sourcesContent":["import { inputProperties } from '../../../../components/input/InputDocs'\nimport { PropertiesTableProps } from '../../../../shared/types'\n\nexport const numberProperties: PropertiesTableProps = {\n decimalLimit: {\n doc: 'Max number of decimals. Values with more decimals will be rounded. Defaults to `12`.',\n type: 'number',\n status: 'optional',\n },\n percent: {\n doc: 'Format a number as percentage.',\n type: 'boolean',\n status: 'optional',\n },\n currency: {\n doc: 'Currency code (ISO 4217) or `true` to use the default `NOK`. Uses two decimals by default.',\n type: ['boolean', 'string'],\n status: 'optional',\n },\n allowNegative: {\n doc: 'Whether or not to allow negative numbers. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n disallowLeadingZeroes: {\n doc: 'Whether or not to allow leading zeroes. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n minimum: {\n doc: 'Validation for inclusive minimum number value (greater than or equal). Defaults to `Number.MIN_SAFE_INTEGER`.',\n type: 'number',\n status: 'optional',\n },\n maximum: {\n doc: 'Validation for inclusive maximum number value (less than or equal). Defaults to `Number.MAX_SAFE_INTEGER`.',\n type: 'number',\n status: 'optional',\n },\n exclusiveMinimum: {\n doc: 'Validation for exclusive minimum number value (greater than).',\n type: 'number',\n status: 'optional',\n },\n exclusiveMaximum: {\n doc: 'Validation for exclusive maximum number value (less than).',\n type: 'number',\n status: 'optional',\n },\n multipleOf: {\n doc: 'Validation that requires the number to be a multiple of given value.',\n type: 'number',\n status: 'optional',\n },\n width: {\n doc: '`false` for no width (use browser default), `small`, `medium` or `large` for predefined standard widths, `stretch` for fill available width.',\n type: ['string', 'false'],\n status: 'optional',\n },\n size: inputProperties.size,\n align: {\n doc: 'Lateral alignment of contents of input field, one of `left` (default), `center`, or `right`.',\n type: 'string',\n status: 'optional',\n },\n help: {\n doc: 'Provide a help button. Object consisting of `title` and `content`.',\n type: 'object',\n status: 'optional',\n },\n autoComplete: {\n doc: 'For HTML `autocomplete` attributes.',\n type: ['on', 'string'],\n status: 'optional',\n },\n prefix: {\n doc: 'Text added before the value input.',\n type: 'string',\n status: 'optional',\n },\n suffix: {\n doc: 'Text added after the value input.',\n type: 'string',\n status: 'optional',\n },\n step: {\n doc: 'Determines step granularity when in/decreasing value input through step controls buttons or arrow keys. Defaults to 1.',\n type: 'number',\n status: 'optional',\n },\n startWith: {\n doc: 'When no `value` or `defaultValue` is given, start with a given value when in/decreasing value input through step controls buttons or arrow keys. Defaults to `null`.',\n type: 'number',\n status: 'optional',\n },\n showStepControls: {\n doc: 'Show buttons that in/decreases value input by the step value.',\n type: 'boolean',\n status: 'optional',\n },\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAGO,MAAMC,gBAAsC,GAAG;EACpDC,YAAY,EAAE;IACZC,GAAG,EAAE,sFAAsF;IAC3FC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,OAAO,EAAE;IACPH,GAAG,EAAE,gCAAgC;IACrCC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDE,QAAQ,EAAE;IACRJ,GAAG,EAAE,4FAA4F;IACjGC,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC3BC,MAAM,EAAE;EACV,CAAC;EACDG,aAAa,EAAE;IACbL,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,qBAAqB,EAAE;IACrBN,GAAG,EAAE,8DAA8D;IACnEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,OAAO,EAAE;IACPP,GAAG,EAAE,+GAA+G;IACpHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,OAAO,EAAE;IACPR,GAAG,EAAE,4GAA4G;IACjHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,gBAAgB,EAAE;IAChBT,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,gBAAgB,EAAE;IAChBV,GAAG,EAAE,4DAA4D;IACjEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,UAAU,EAAE;IACVX,GAAG,EAAE,sEAAsE;IAC3EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDU,KAAK,EAAE;IACLZ,GAAG,EAAE,8IAA8I;IACnJC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDW,IAAI,EAAEC,0BAAe,CAACD,IAAI;EAC1BE,KAAK,EAAE;IACLf,GAAG,EAAE,8FAA8F;IACnGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDc,IAAI,EAAE;IACJhB,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDe,YAAY,EAAE;IACZjB,GAAG,EAAE,qCAAqC;IAC1CC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;IACtBC,MAAM,EAAE;EACV,CAAC;EACDgB,MAAM,EAAE;IACNlB,GAAG,EAAE,oCAAoC;IACzCC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDiB,MAAM,EAAE;IACNnB,GAAG,EAAE,mCAAmC;IACxCC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDkB,IAAI,EAAE;IACJpB,GAAG,EAAE,wHAAwH;IAC7HC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDmB,SAAS,EAAE;IACTrB,GAAG,EAAE,sKAAsK;IAC3KC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDoB,gBAAgB,EAAE;IAChBtB,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AACF,CAAC;AAAAqB,OAAA,CAAAzB,gBAAA,GAAAA,gBAAA"}
@@ -1,14 +1,15 @@
1
1
  import React from 'react';
2
- import { FieldProps, FieldHelpProps, FieldBlockWidth } from '../../types';
2
+ import { ReturnAdditional } from '../../hooks/useFieldProps';
3
+ import { FormError, FieldProps, FieldHelpProps, FieldBlockWidth } from '../../types';
3
4
  import type { FormStatusText } from '../../../../components/FormStatus';
4
5
  import type { AutocompleteAllProps, AutocompleteProps } from '../../../../components/Autocomplete';
5
6
  import type { DropdownAllProps, DropdownProps } from '../../../../components/Dropdown';
6
7
  import { ToCamelCase } from '../../../../shared/helpers/withCamelCaseProps';
7
- interface IOption {
8
+ type IOption = {
8
9
  title: string | React.ReactNode;
9
10
  value: number | string;
10
11
  status: FormStatusText;
11
- }
12
+ };
12
13
  export type Data = AutocompleteAllProps['data'] | DropdownAllProps['data'];
13
14
  export type Props = FieldHelpProps & FieldProps<IOption['value']> & {
14
15
  variant?: 'dropdown' | 'autocomplete' | 'radio' | 'button';
@@ -23,4 +24,15 @@ declare function Selection(props: Props): import("react/jsx-runtime").JSX.Elemen
23
24
  declare namespace Selection {
24
25
  var _supportsSpacingProps: boolean;
25
26
  }
27
+ export declare function getStatus(error: Error | FormError | undefined, info: React.ReactNode, warning: React.ReactNode): string;
28
+ export declare function getRadioOrToggleOptions({ id, value, variant, info, warning, htmlAttributes, children, hasError, }: {
29
+ id: string;
30
+ value: Props['value'];
31
+ variant: Props['variant'];
32
+ info: Props['info'];
33
+ warning: Props['warning'];
34
+ htmlAttributes: Props['htmlAttributes'];
35
+ children: Props['children'];
36
+ hasError: ReturnAdditional<Props['value']>['hasError'];
37
+ }): any;
26
38
  export default Selection;
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ exports.getRadioOrToggleOptions = getRadioOrToggleOptions;
8
+ exports.getStatus = getStatus;
7
9
  var _react = _interopRequireWildcard(require("react"));
8
10
  var _classnames = _interopRequireDefault(require("classnames"));
9
11
  var _componentHelper = require("../../../../shared/component-helper");
@@ -14,14 +16,13 @@ var _utils = require("../../../../components/flex/utils");
14
16
  var _FieldBlock = _interopRequireDefault(require("../../FieldBlock"));
15
17
  var _types = require("../../types");
16
18
  var _withCamelCaseProps = require("../../../../shared/helpers/withCamelCaseProps");
17
- const _excluded = ["error", "title", "help", "children"],
18
- _excluded2 = ["value", "title", "status"];
19
+ const _excluded = ["error", "title", "help", "children"];
19
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
21
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
22
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
23
23
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
24
24
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
25
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
25
26
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
26
27
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
28
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -92,34 +93,10 @@ function Selection(props) {
92
93
  label,
93
94
  labelDescription
94
95
  });
95
- const getStatus = (0, _react.useCallback)(error => {
96
- var _error$message;
97
- return (_error$message = error === null || error === void 0 ? void 0 : error.message) !== null && _error$message !== void 0 ? _error$message : warning instanceof Error && warning.message || warning instanceof _types.FormError && warning.message || (warning === null || warning === void 0 ? void 0 : warning.toString()) || info instanceof Error && info.message || info instanceof _types.FormError && info.message || (info === null || info === void 0 ? void 0 : info.toString());
98
- }, [info, warning]);
99
- const status = getStatus(error);
100
96
  switch (variant) {
101
97
  case 'radio':
102
98
  case 'button':
103
99
  {
104
- const options = _react.default.Children.toArray(children).filter(child => _react.default.isValidElement(child) && child.type === _Option.default).map(option => {
105
- const _option$props = option.props,
106
- {
107
- error,
108
- title,
109
- help,
110
- children
111
- } = _option$props,
112
- rest = _objectWithoutProperties(_option$props, _excluded);
113
- const status = getStatus(error);
114
- return _objectSpread({
115
- title: title !== null && title !== void 0 ? title : children,
116
- status,
117
- suffix: help ? _react.default.createElement(_components.HelpButton, {
118
- size: "small",
119
- title: help.title
120
- }, help.content) : undefined
121
- }, rest);
122
- });
123
100
  const Component = variant === 'radio' ? _components.Radio : _components.ToggleButton;
124
101
  return _react.default.createElement(_FieldBlock.default, fieldSectionProps, _react.default.createElement(Component.Group, {
125
102
  className: cn,
@@ -127,26 +104,21 @@ function Selection(props) {
127
104
  disabled: disabled,
128
105
  on_change: onChangeHandler,
129
106
  value: String(value !== null && value !== void 0 ? value : '')
130
- }, options.map((option, i) => {
131
- const {
132
- value,
133
- title,
134
- status
135
- } = option,
136
- rest = _objectWithoutProperties(option, _excluded2);
137
- return _react.default.createElement(Component, _extends({
138
- id: options.length === 1 ? id : undefined,
139
- key: `option-${i}-${value}`,
140
- label: variant === 'radio' ? title : undefined,
141
- text: variant === 'button' ? title : undefined,
142
- value: String(value !== null && value !== void 0 ? value : ''),
143
- status: (hasError || status) && 'error'
144
- }, htmlAttributes, rest));
107
+ }, getRadioOrToggleOptions({
108
+ id,
109
+ value,
110
+ variant,
111
+ info,
112
+ warning,
113
+ htmlAttributes,
114
+ children,
115
+ hasError
145
116
  })));
146
117
  }
147
118
  case 'autocomplete':
148
119
  case 'dropdown':
149
120
  {
121
+ const status = getStatus(error, info, warning);
150
122
  const sharedProps = _objectSpread(_objectSpread({
151
123
  id,
152
124
  list_class: 'dnb-forms-field-selection__list',
@@ -171,6 +143,63 @@ function Selection(props) {
171
143
  }
172
144
  }
173
145
  }
146
+ function getStatus(error, info, warning) {
147
+ var _error$message;
148
+ return (_error$message = error === null || error === void 0 ? void 0 : error.message) !== null && _error$message !== void 0 ? _error$message : warning instanceof Error && warning.message || warning instanceof _types.FormError && warning.message || (warning === null || warning === void 0 ? void 0 : warning.toString()) || info instanceof Error && info.message || info instanceof _types.FormError && info.message || (info === null || info === void 0 ? void 0 : info.toString());
149
+ }
150
+ function getRadioOrToggleOptions(_ref5) {
151
+ let {
152
+ id,
153
+ value,
154
+ variant,
155
+ info,
156
+ warning,
157
+ htmlAttributes,
158
+ children,
159
+ hasError
160
+ } = _ref5;
161
+ const optionsCount = _react.default.Children.count(children);
162
+ const Component = variant === 'radio' ? _components.Radio : _components.ToggleButton;
163
+ const createOption = (props, i) => {
164
+ const {
165
+ error,
166
+ title,
167
+ help,
168
+ children
169
+ } = props,
170
+ rest = _objectWithoutProperties(props, _excluded);
171
+ const label = title !== null && title !== void 0 ? title : children;
172
+ const status = getStatus(error, info, warning);
173
+ const suffix = help ? _react.default.createElement(_components.HelpButton, {
174
+ size: "small",
175
+ title: help.title
176
+ }, help.content) : undefined;
177
+ return _react.default.createElement(Component, _extends({
178
+ id: optionsCount === 1 ? id : undefined,
179
+ key: `option-${i}-${value}`,
180
+ label: variant === 'radio' ? label : undefined,
181
+ text: variant === 'button' ? label : undefined,
182
+ value: String(value !== null && value !== void 0 ? value : ''),
183
+ status: (hasError || status) && 'error',
184
+ suffix: suffix
185
+ }, htmlAttributes, rest));
186
+ };
187
+ const mapOptions = children => {
188
+ return _react.default.Children.toArray(children).map((child, i) => {
189
+ if (_react.default.isValidElement(child)) {
190
+ if (child.type === _Option.default) {
191
+ return createOption(child.props, i);
192
+ }
193
+ if (child.props.children) {
194
+ const nestedChildren = mapOptions(child.props.children);
195
+ return _react.default.cloneElement(child, child.props, nestedChildren);
196
+ }
197
+ }
198
+ return child;
199
+ });
200
+ };
201
+ return mapOptions(children);
202
+ }
174
203
  Selection._supportsSpacingProps = true;
175
204
  var _default = Selection;
176
205
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"file":"Selection.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_componentHelper","_components","_Option","_hooks","_utils","_FieldBlock","_types","_withCamelCaseProps","_excluded","_excluded2","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","ownKeys","object","enumerableOnly","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","Selection","props","clearValue","useMemo","makeUniqueId","id","className","variant","label","labelDescription","layout","optionsLayout","placeholder","info","warning","error","hasError","disabled","help","emptyValue","width","htmlAttributes","setHasFocus","handleChange","children","data","autocompleteProps","dropdownProps","useFieldProps","handleDropdownChange","useCallback","_ref","selectedKey","onChangeHandler","_ref2","handleShow","_ref3","handleHide","_ref4","cn","classnames","fieldSectionProps","forId","pickSpacingProps","getStatus","_error$message","message","Error","FormError","toString","status","options","React","Children","toArray","child","isValidElement","type","OptionField","map","option","_option$props","title","rest","suffix","createElement","HelpButton","size","content","Component","Radio","ToggleButton","Group","layout_direction","on_change","text","sharedProps","list_class","portal_class","makeOptions","on_show","on_hide","stretch","Autocomplete","convertCamelCaseProps","Dropdown","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Selection/Selection.tsx"],"sourcesContent":["import React, { useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport {\n ToggleButton,\n Dropdown,\n Radio,\n HelpButton,\n Autocomplete,\n} from '../../../../components'\nimport OptionField, { makeOptions } from '../Option'\nimport { useFieldProps } from '../../hooks'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport FieldBlock from '../../FieldBlock'\nimport {\n FormError,\n FieldProps,\n FieldHelpProps,\n FieldBlockWidth,\n} from '../../types'\nimport type { FormStatusText } from '../../../../components/FormStatus'\nimport type {\n AutocompleteAllProps,\n AutocompleteProps,\n} from '../../../../components/Autocomplete'\nimport type {\n DropdownAllProps,\n DropdownProps,\n} from '../../../../components/Dropdown'\nimport {\n convertCamelCaseProps,\n ToCamelCase,\n} from '../../../../shared/helpers/withCamelCaseProps'\n\ninterface IOption {\n title: string | React.ReactNode\n value: number | string\n status: FormStatusText\n}\n\nexport type Data = AutocompleteAllProps['data'] | DropdownAllProps['data']\n\nexport type Props = FieldHelpProps &\n FieldProps<IOption['value']> & {\n variant?: 'dropdown' | 'autocomplete' | 'radio' | 'button'\n optionsLayout?: 'horizontal' | 'vertical'\n children?: React.ReactNode\n\n // - Autocomplete and Dropdown specific props\n autocompleteProps?: ToCamelCase<AutocompleteProps>\n dropdownProps?: ToCamelCase<DropdownProps>\n data?: Data\n width?: FieldBlockWidth\n }\n\nfunction Selection(props: Props) {\n const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, [])\n\n const {\n id,\n className,\n variant = 'dropdown',\n label,\n labelDescription,\n layout = 'vertical',\n optionsLayout = 'vertical',\n placeholder,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n help,\n emptyValue,\n width = 'large',\n htmlAttributes,\n setHasFocus,\n handleChange,\n children,\n\n // - Autocomplete and Dropdown specific props\n data,\n autocompleteProps,\n dropdownProps,\n } = useFieldProps(props)\n\n const handleDropdownChange = useCallback(\n ({ data }) => {\n const selectedKey = data?.selectedKey\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey\n )\n },\n [handleChange, emptyValue, clearValue]\n )\n\n const onChangeHandler = useCallback(\n ({ value }) => {\n handleChange?.(value === undefined ? emptyValue : value)\n },\n [handleChange, emptyValue]\n )\n\n // Specific handleShow and handleHide because Dropdown preserve the initially received callbacks, so changes\n // due to `useCallback` usage will have no effect, leading to useFieldPropss handleFocus and handleBlur sending out old\n // copies of value as arguments.\n const handleShow = useCallback(\n ({ data }) => {\n setHasFocus(true, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const handleHide = useCallback(\n ({ data }) => {\n setHasFocus(false, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const cn = classnames(\n 'dnb-forms-field-selection',\n `dnb-forms-field-selection__variant--${variant}`,\n `dnb-forms-field-selection__options-layout--${optionsLayout}`,\n className\n )\n\n const fieldSectionProps = {\n forId: id,\n className: cn,\n ...pickSpacingProps(props),\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n }\n\n const getStatus = useCallback(\n (error: Error | FormError | undefined) => {\n return (\n error?.message ??\n ((warning instanceof Error && warning.message) ||\n (warning instanceof FormError && warning.message) ||\n warning?.toString() ||\n (info instanceof Error && info.message) ||\n (info instanceof FormError && info.message) ||\n info?.toString())\n )\n },\n [info, warning]\n )\n\n const status = getStatus(error)\n\n switch (variant) {\n case 'radio':\n case 'button': {\n const options: IOption[] = React.Children.toArray(children)\n .filter(\n (child) =>\n React.isValidElement(child) && child.type === OptionField\n )\n .map((option: React.ReactElement) => {\n const { error, title, help, children, ...rest } = option.props\n const status = getStatus(error)\n\n return {\n title: title ?? children,\n status,\n suffix: help ? (\n <HelpButton size=\"small\" title={help.title}>\n {help.content}\n </HelpButton>\n ) : undefined,\n ...rest,\n }\n })\n\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n return (\n <FieldBlock {...fieldSectionProps}>\n <Component.Group\n className={cn}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n disabled={disabled}\n on_change={onChangeHandler}\n value={String(value ?? '')}\n >\n {options.map((option, i) => {\n const { value, title, status, ...rest } = option\n return (\n <Component\n id={options.length === 1 ? id : undefined}\n key={`option-${i}-${value}`}\n label={variant === 'radio' ? title : undefined}\n text={variant === 'button' ? title : undefined}\n value={String(value ?? '')}\n status={(hasError || status) && 'error'}\n {...htmlAttributes}\n {...rest}\n />\n )\n })}\n </Component.Group>\n </FieldBlock>\n )\n }\n\n case 'autocomplete':\n case 'dropdown': {\n const sharedProps: AutocompleteAllProps & DropdownAllProps = {\n id,\n list_class: 'dnb-forms-field-selection__list',\n portal_class: 'dnb-forms-field-selection__portal',\n title: placeholder,\n value: String(value ?? ''),\n status: (hasError || status) && 'error',\n disabled,\n ...htmlAttributes,\n data: data ?? makeOptions<Data>(children),\n suffix: help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n on_change: handleDropdownChange,\n on_show: handleShow,\n on_hide: handleHide,\n stretch: true,\n }\n\n return (\n <FieldBlock {...fieldSectionProps} width={width}>\n {variant === 'autocomplete' ? (\n <Autocomplete\n {...sharedProps}\n {...(autocompleteProps\n ? (convertCamelCaseProps(\n autocompleteProps\n ) as AutocompleteAllProps)\n : null)}\n />\n ) : (\n <Dropdown\n {...sharedProps}\n {...(dropdownProps\n ? (convertCamelCaseProps(\n dropdownProps\n ) as DropdownAllProps)\n : null)}\n />\n )}\n </FieldBlock>\n )\n }\n }\n}\n\nSelection._supportsSpacingProps = true\nexport default Selection\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAOA,IAAAK,OAAA,GAAAN,uBAAA,CAAAC,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AAeA,IAAAU,mBAAA,GAAAV,OAAA;AAGsD,MAAAW,SAAA;EAAAC,UAAA;AAAA,SAAAV,uBAAAW,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAlB,wBAAAc,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAAA,SAAAW,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAV,GAAA,IAAAa,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAb,GAAA,KAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,gBAAAS,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAH,SAAA;AAAA,SAAAI,yBAAAF,MAAA,EAAAG,QAAA,QAAAH,MAAA,yBAAAJ,MAAA,GAAAQ,6BAAA,CAAAJ,MAAA,EAAAG,QAAA,OAAAhB,GAAA,EAAAU,CAAA,MAAAb,MAAA,CAAAqB,qBAAA,QAAAC,gBAAA,GAAAtB,MAAA,CAAAqB,qBAAA,CAAAL,MAAA,QAAAH,CAAA,MAAAA,CAAA,GAAAS,gBAAA,CAAAP,MAAA,EAAAF,CAAA,MAAAV,GAAA,GAAAmB,gBAAA,CAAAT,CAAA,OAAAM,QAAA,CAAAI,OAAA,CAAApB,GAAA,uBAAAH,MAAA,CAAAI,SAAA,CAAAoB,oBAAA,CAAAlB,IAAA,CAAAU,MAAA,EAAAb,GAAA,aAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,cAAAS,MAAA;AAAA,SAAAQ,8BAAAJ,MAAA,EAAAG,QAAA,QAAAH,MAAA,yBAAAJ,MAAA,WAAAa,UAAA,GAAAzB,MAAA,CAAA0B,IAAA,CAAAV,MAAA,OAAAb,GAAA,EAAAU,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAAY,UAAA,CAAAV,MAAA,EAAAF,CAAA,MAAAV,GAAA,GAAAsB,UAAA,CAAAZ,CAAA,OAAAM,QAAA,CAAAI,OAAA,CAAApB,GAAA,kBAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,YAAAS,MAAA;AAAA,SAAAe,QAAAC,MAAA,EAAAC,cAAA,QAAAH,IAAA,GAAA1B,MAAA,CAAA0B,IAAA,CAAAE,MAAA,OAAA5B,MAAA,CAAAqB,qBAAA,QAAAS,OAAA,GAAA9B,MAAA,CAAAqB,qBAAA,CAAAO,MAAA,GAAAC,cAAA,KAAAC,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAhC,MAAA,CAAAE,wBAAA,CAAA0B,MAAA,EAAAI,GAAA,EAAAC,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAjB,KAAA,CAAAS,IAAA,EAAAI,OAAA,YAAAJ,IAAA;AAAA,SAAAS,cAAAvB,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAc,OAAA,CAAA3B,MAAA,CAAAgB,MAAA,OAAAoB,OAAA,WAAAjC,GAAA,IAAAkC,eAAA,CAAAzB,MAAA,EAAAT,GAAA,EAAAa,MAAA,CAAAb,GAAA,SAAAH,MAAA,CAAAsC,yBAAA,GAAAtC,MAAA,CAAAuC,gBAAA,CAAA3B,MAAA,EAAAZ,MAAA,CAAAsC,yBAAA,CAAAtB,MAAA,KAAAW,OAAA,CAAA3B,MAAA,CAAAgB,MAAA,GAAAoB,OAAA,WAAAjC,GAAA,IAAAH,MAAA,CAAAC,cAAA,CAAAW,MAAA,EAAAT,GAAA,EAAAH,MAAA,CAAAE,wBAAA,CAAAc,MAAA,EAAAb,GAAA,iBAAAS,MAAA;AAAA,SAAAyB,gBAAAlD,GAAA,EAAAgB,GAAA,EAAAqC,KAAA,IAAArC,GAAA,GAAAsC,cAAA,CAAAtC,GAAA,OAAAA,GAAA,IAAAhB,GAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAd,GAAA,EAAAgB,GAAA,IAAAqC,KAAA,EAAAA,KAAA,EAAAP,UAAA,QAAAS,YAAA,QAAAC,QAAA,oBAAAxD,GAAA,CAAAgB,GAAA,IAAAqC,KAAA,WAAArD,GAAA;AAAA,SAAAsD,eAAAG,GAAA,QAAAzC,GAAA,GAAA0C,YAAA,CAAAD,GAAA,2BAAAzC,GAAA,gBAAAA,GAAA,GAAA2C,MAAA,CAAA3C,GAAA;AAAA,SAAA0C,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAA3C,IAAA,CAAAyC,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAC,SAAA,4DAAAN,IAAA,gBAAAF,MAAA,GAAAS,MAAA,EAAAR,KAAA;AAuBtD,SAASS,SAASA,CAACC,KAAY,EAAE;EAC/B,MAAMC,UAAU,GAAG,IAAAC,cAAO,EAAC,MAAO,gBAAe,IAAAC,6BAAY,EAAC,CAAE,EAAC,EAAE,EAAE,CAAC;EAEtE,MAAM;IACJC,EAAE;IACFC,SAAS;IACTC,OAAO,GAAG,UAAU;IACpBC,KAAK;IACLC,gBAAgB;IAChBC,MAAM,GAAG,UAAU;IACnBC,aAAa,GAAG,UAAU;IAC1BC,WAAW;IACX5B,KAAK;IACL6B,IAAI;IACJC,OAAO;IACPC,KAAK;IACLC,QAAQ;IACRC,QAAQ;IACRC,IAAI;IACJC,UAAU;IACVC,KAAK,GAAG,OAAO;IACfC,cAAc;IACdC,WAAW;IACXC,YAAY;IACZC,QAAQ;IAGRC,IAAI;IACJC,iBAAiB;IACjBC;EACF,CAAC,GAAG,IAAAC,oBAAa,EAAC3B,KAAK,CAAC;EAExB,MAAM4B,oBAAoB,GAAG,IAAAC,kBAAW,EACtCC,IAAA,IAAc;IAAA,IAAb;MAAEN;IAAK,CAAC,GAAAM,IAAA;IACP,MAAMC,WAAW,GAAGP,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEO,WAAW;IACrCT,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CACV,CAACS,WAAW,IAAIA,WAAW,KAAK9B,UAAU,GACtCiB,UAAU,GACVa,WACN,CAAC;EACH,CAAC,EACD,CAACT,YAAY,EAAEJ,UAAU,EAAEjB,UAAU,CACvC,CAAC;EAED,MAAM+B,eAAe,GAAG,IAAAH,kBAAW,EACjCI,KAAA,IAAe;IAAA,IAAd;MAAElD;IAAM,CAAC,GAAAkD,KAAA;IACRX,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGvC,KAAK,KAAKY,SAAS,GAAGuB,UAAU,GAAGnC,KAAK,CAAC;EAC1D,CAAC,EACD,CAACuC,YAAY,EAAEJ,UAAU,CAC3B,CAAC;EAKD,MAAMgB,UAAU,GAAG,IAAAL,kBAAW,EAC5BM,KAAA,IAAc;IAAA,IAAb;MAAEX;IAAK,CAAC,GAAAW,KAAA;IACPd,WAAW,CAAC,IAAI,EAAEG,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEO,WAAW,CAAC;EACtC,CAAC,EACD,CAACV,WAAW,CACd,CAAC;EAED,MAAMe,UAAU,GAAG,IAAAP,kBAAW,EAC5BQ,KAAA,IAAc;IAAA,IAAb;MAAEb;IAAK,CAAC,GAAAa,KAAA;IACPhB,WAAW,CAAC,KAAK,EAAEG,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEO,WAAW,CAAC;EACvC,CAAC,EACD,CAACV,WAAW,CACd,CAAC;EAED,MAAMiB,EAAE,GAAG,IAAAC,mBAAU,mEAEoBjC,OAAO,+CACAI,aAAc,IAC5DL,SACF,CAAC;EAED,MAAMmC,iBAAiB,GAAA9D,aAAA,CAAAA,aAAA;IACrB+D,KAAK,EAAErC,EAAE;IACTC,SAAS,EAAEiC;EAAE,GACV,IAAAI,uBAAgB,EAAC1C,KAAK,CAAC;IAC1BY,IAAI;IACJC,OAAO;IACPC,KAAK;IACLL,MAAM;IACNF,KAAK;IACLC;EAAgB,EACjB;EAED,MAAMmC,SAAS,GAAG,IAAAd,kBAAW,EAC1Bf,KAAoC,IAAK;IAAA,IAAA8B,cAAA;IACxC,QAAAA,cAAA,GACE9B,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE+B,OAAO,cAAAD,cAAA,cAAAA,cAAA,GACZ/B,OAAO,YAAYiC,KAAK,IAAIjC,OAAO,CAACgC,OAAO,IAC1ChC,OAAO,YAAYkC,gBAAS,IAAIlC,OAAO,CAACgC,OAAQ,KACjDhC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEmC,QAAQ,CAAC,CAAC,KAClBpC,IAAI,YAAYkC,KAAK,IAAIlC,IAAI,CAACiC,OAAQ,IACtCjC,IAAI,YAAYmC,gBAAS,IAAInC,IAAI,CAACiC,OAAQ,KAC3CjC,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEoC,QAAQ,CAAC,CAAC;EAEtB,CAAC,EACD,CAACpC,IAAI,EAAEC,OAAO,CAChB,CAAC;EAED,MAAMoC,MAAM,GAAGN,SAAS,CAAC7B,KAAK,CAAC;EAE/B,QAAQR,OAAO;IACb,KAAK,OAAO;IACZ,KAAK,QAAQ;MAAE;QACb,MAAM4C,OAAkB,GAAGC,cAAK,CAACC,QAAQ,CAACC,OAAO,CAAC9B,QAAQ,CAAC,CACxDjD,MAAM,CACJgF,KAAK,IACJH,cAAK,CAACI,cAAc,CAACD,KAAK,CAAC,IAAIA,KAAK,CAACE,IAAI,KAAKC,eAClD,CAAC,CACAC,GAAG,CAAEC,MAA0B,IAAK;UACnC,MAAAC,aAAA,GAAkDD,MAAM,CAAC3D,KAAK;YAAxD;cAAEc,KAAK;cAAE+C,KAAK;cAAE5C,IAAI;cAAEM;YAAkB,CAAC,GAAAqC,aAAA;YAANE,IAAI,GAAArG,wBAAA,CAAAmG,aAAA,EAAApI,SAAA;UAC7C,MAAMyH,MAAM,GAAGN,SAAS,CAAC7B,KAAK,CAAC;UAE/B,OAAApC,aAAA;YACEmF,KAAK,EAAEA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAItC,QAAQ;YACxB0B,MAAM;YACNc,MAAM,EAAE9C,IAAI,GACVtG,MAAA,CAAAiB,OAAA,CAAAoI,aAAA,CAAC/I,WAAA,CAAAgJ,UAAU;cAACC,IAAI,EAAC,OAAO;cAACL,KAAK,EAAE5C,IAAI,CAAC4C;YAAM,GACxC5C,IAAI,CAACkD,OACI,CAAC,GACXxE;UAAS,GACVmE,IAAI;QAEX,CAAC,CAAC;QAEJ,MAAMM,SAAS,GACb9D,OAAO,KAAK,OAAO,GAAG+D,iBAAK,GAAGC,wBACO;QAEvC,OACE3J,MAAA,CAAAiB,OAAA,CAAAoI,aAAA,CAAC3I,WAAA,CAAAO,OAAU,EAAK4G,iBAAiB,EAC/B7H,MAAA,CAAAiB,OAAA,CAAAoI,aAAA,CAACI,SAAS,CAACG,KAAK;UACdlE,SAAS,EAAEiC,EAAG;UACdkC,gBAAgB,EACd9D,aAAa,KAAK,YAAY,GAAG,KAAK,GAAG,QAC1C;UACDM,QAAQ,EAAEA,QAAS;UACnByD,SAAS,EAAEzC,eAAgB;UAC3BjD,KAAK,EAAEM,MAAM,CAACN,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAE;QAAE,GAE1BmE,OAAO,CAACQ,GAAG,CAAC,CAACC,MAAM,EAAEvG,CAAC,KAAK;UAC1B,MAAM;cAAE2B,KAAK;cAAE8E,KAAK;cAAEZ;YAAgB,CAAC,GAAGU,MAAM;YAAfG,IAAI,GAAArG,wBAAA,CAAKkG,MAAM,EAAAlI,UAAA;UAChD,OACEd,MAAA,CAAAiB,OAAA,CAAAoI,aAAA,CAACI,SAAS,EAAApH,QAAA;YACRoD,EAAE,EAAE8C,OAAO,CAAC5F,MAAM,KAAK,CAAC,GAAG8C,EAAE,GAAGT,SAAU;YAC1CjD,GAAG,EAAG,UAASU,CAAE,IAAG2B,KAAM,EAAE;YAC5BwB,KAAK,EAAED,OAAO,KAAK,OAAO,GAAGuD,KAAK,GAAGlE,SAAU;YAC/C+E,IAAI,EAAEpE,OAAO,KAAK,QAAQ,GAAGuD,KAAK,GAAGlE,SAAU;YAC/CZ,KAAK,EAAEM,MAAM,CAACN,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAE,CAAE;YAC3BkE,MAAM,EAAE,CAAClC,QAAQ,IAAIkC,MAAM,KAAK;UAAQ,GACpC7B,cAAc,EACd0C,IAAI,CACT,CAAC;QAEN,CAAC,CACc,CACP,CAAC;MAEjB;IAEA,KAAK,cAAc;IACnB,KAAK,UAAU;MAAE;QACf,MAAMa,WAAoD,GAAAjG,aAAA,CAAAA,aAAA;UACxD0B,EAAE;UACFwE,UAAU,EAAE,iCAAiC;UAC7CC,YAAY,EAAE,mCAAmC;UACjDhB,KAAK,EAAElD,WAAW;UAClB5B,KAAK,EAAEM,MAAM,CAACN,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAE,CAAC;UAC1BkE,MAAM,EAAE,CAAClC,QAAQ,IAAIkC,MAAM,KAAK,OAAO;UACvCjC;QAAQ,GACLI,cAAc;UACjBI,IAAI,EAAEA,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAI,IAAAsD,mBAAW,EAAOvD,QAAQ,CAAC;UACzCwC,MAAM,EAAE9C,IAAI,GACVtG,MAAA,CAAAiB,OAAA,CAAAoI,aAAA,CAAC/I,WAAA,CAAAgJ,UAAU;YAACJ,KAAK,EAAE5C,IAAI,CAAC4C;UAAM,GAAE5C,IAAI,CAACkD,OAAoB,CAAC,GACxDxE,SAAS;UACb8E,SAAS,EAAE7C,oBAAoB;UAC/BmD,OAAO,EAAE7C,UAAU;UACnB8C,OAAO,EAAE5C,UAAU;UACnB6C,OAAO,EAAE;QAAI,EACd;QAED,OACEtK,MAAA,CAAAiB,OAAA,CAAAoI,aAAA,CAAC3I,WAAA,CAAAO,OAAU,EAAAoB,QAAA,KAAKwF,iBAAiB;UAAErB,KAAK,EAAEA;QAAM,IAC7Cb,OAAO,KAAK,cAAc,GACzB3F,MAAA,CAAAiB,OAAA,CAAAoI,aAAA,CAAC/I,WAAA,CAAAiK,YAAY,EAAAlI,QAAA,KACP2H,WAAW,EACVlD,iBAAiB,GACjB,IAAA0D,yCAAqB,EACpB1D,iBACF,CAAC,GACD,IAAI,CACT,CAAC,GAEF9G,MAAA,CAAAiB,OAAA,CAAAoI,aAAA,CAAC/I,WAAA,CAAAmK,QAAQ,EAAApI,QAAA,KACH2H,WAAW,EACVjD,aAAa,GACb,IAAAyD,yCAAqB,EACpBzD,aACF,CAAC,GACD,IAAI,CACT,CAEO,CAAC;MAEjB;EACF;AACF;AAEA3B,SAAS,CAACsF,qBAAqB,GAAG,IAAI;AAAA,IAAAC,QAAA,GACvBvF,SAAS;AAAAwF,OAAA,CAAA3J,OAAA,GAAA0J,QAAA"}
1
+ {"version":3,"file":"Selection.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_componentHelper","_components","_Option","_hooks","_utils","_FieldBlock","_types","_withCamelCaseProps","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","i","getOwnPropertySymbols","sourceSymbolKeys","length","indexOf","propertyIsEnumerable","sourceKeys","keys","_extends","assign","bind","arguments","apply","ownKeys","object","enumerableOnly","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","Selection","props","clearValue","useMemo","makeUniqueId","id","className","variant","label","labelDescription","layout","optionsLayout","placeholder","info","warning","error","hasError","disabled","help","emptyValue","width","htmlAttributes","setHasFocus","handleChange","children","data","autocompleteProps","dropdownProps","useFieldProps","handleDropdownChange","useCallback","_ref","selectedKey","onChangeHandler","_ref2","handleShow","_ref3","handleHide","_ref4","cn","classnames","fieldSectionProps","forId","pickSpacingProps","Component","Radio","ToggleButton","createElement","Group","layout_direction","on_change","getRadioOrToggleOptions","status","getStatus","sharedProps","list_class","portal_class","title","makeOptions","suffix","HelpButton","content","on_show","on_hide","stretch","Autocomplete","convertCamelCaseProps","Dropdown","_error$message","message","Error","FormError","toString","_ref5","optionsCount","React","Children","count","createOption","rest","size","text","mapOptions","toArray","map","child","isValidElement","type","OptionField","nestedChildren","cloneElement","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Selection/Selection.tsx"],"sourcesContent":["import React, { useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport {\n ToggleButton,\n Dropdown,\n Radio,\n HelpButton,\n Autocomplete,\n} from '../../../../components'\nimport OptionField, { makeOptions } from '../Option'\nimport { useFieldProps } from '../../hooks'\nimport { ReturnAdditional } from '../../hooks/useFieldProps'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport FieldBlock from '../../FieldBlock'\nimport {\n FormError,\n FieldProps,\n FieldHelpProps,\n FieldBlockWidth,\n} from '../../types'\nimport type { FormStatusText } from '../../../../components/FormStatus'\nimport type {\n AutocompleteAllProps,\n AutocompleteProps,\n} from '../../../../components/Autocomplete'\nimport type {\n DropdownAllProps,\n DropdownProps,\n} from '../../../../components/Dropdown'\nimport { HelpButtonProps } from '../../../../components/HelpButton'\nimport {\n convertCamelCaseProps,\n ToCamelCase,\n} from '../../../../shared/helpers/withCamelCaseProps'\n\ntype IOption = {\n title: string | React.ReactNode\n value: number | string\n status: FormStatusText\n}\ntype OptionProps = React.ComponentProps<\n React.FC<{\n error: Error | FormError | undefined\n title: React.ReactNode\n help: HelpButtonProps\n children: React.ReactNode\n }>\n>\n\nexport type Data = AutocompleteAllProps['data'] | DropdownAllProps['data']\n\nexport type Props = FieldHelpProps &\n FieldProps<IOption['value']> & {\n variant?: 'dropdown' | 'autocomplete' | 'radio' | 'button'\n optionsLayout?: 'horizontal' | 'vertical'\n children?: React.ReactNode\n\n // - Autocomplete and Dropdown specific props\n autocompleteProps?: ToCamelCase<AutocompleteProps>\n dropdownProps?: ToCamelCase<DropdownProps>\n data?: Data\n width?: FieldBlockWidth\n }\n\nfunction Selection(props: Props) {\n const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, [])\n\n const {\n id,\n className,\n variant = 'dropdown',\n label,\n labelDescription,\n layout = 'vertical',\n optionsLayout = 'vertical',\n placeholder,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n help,\n emptyValue,\n width = 'large',\n htmlAttributes,\n setHasFocus,\n handleChange,\n children,\n\n // - Autocomplete and Dropdown specific props\n data,\n autocompleteProps,\n dropdownProps,\n } = useFieldProps(props)\n\n const handleDropdownChange = useCallback(\n ({ data }) => {\n const selectedKey = data?.selectedKey\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey\n )\n },\n [handleChange, emptyValue, clearValue]\n )\n\n const onChangeHandler = useCallback(\n ({ value }) => {\n handleChange?.(value === undefined ? emptyValue : value)\n },\n [handleChange, emptyValue]\n )\n\n // Specific handleShow and handleHide because Dropdown preserve the initially received callbacks, so changes\n // due to `useCallback` usage will have no effect, leading to useFieldPropss handleFocus and handleBlur sending out old\n // copies of value as arguments.\n const handleShow = useCallback(\n ({ data }) => {\n setHasFocus(true, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const handleHide = useCallback(\n ({ data }) => {\n setHasFocus(false, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const cn = classnames(\n 'dnb-forms-field-selection',\n `dnb-forms-field-selection__variant--${variant}`,\n `dnb-forms-field-selection__options-layout--${optionsLayout}`,\n className\n )\n\n const fieldSectionProps = {\n forId: id,\n className: cn,\n ...pickSpacingProps(props),\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n }\n\n switch (variant) {\n case 'radio':\n case 'button': {\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n return (\n <FieldBlock {...fieldSectionProps}>\n <Component.Group\n className={cn}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n disabled={disabled}\n on_change={onChangeHandler}\n value={String(value ?? '')}\n >\n {getRadioOrToggleOptions({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n hasError,\n })}\n </Component.Group>\n </FieldBlock>\n )\n }\n\n case 'autocomplete':\n case 'dropdown': {\n const status = getStatus(error, info, warning)\n const sharedProps: AutocompleteAllProps & DropdownAllProps = {\n id,\n list_class: 'dnb-forms-field-selection__list',\n portal_class: 'dnb-forms-field-selection__portal',\n title: placeholder,\n value: String(value ?? ''),\n status: (hasError || status) && 'error',\n disabled,\n ...htmlAttributes,\n data: data ?? makeOptions<Data>(children),\n suffix: help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n on_change: handleDropdownChange,\n on_show: handleShow,\n on_hide: handleHide,\n stretch: true,\n }\n\n return (\n <FieldBlock {...fieldSectionProps} width={width}>\n {variant === 'autocomplete' ? (\n <Autocomplete\n {...sharedProps}\n {...(autocompleteProps\n ? (convertCamelCaseProps(\n autocompleteProps\n ) as AutocompleteAllProps)\n : null)}\n />\n ) : (\n <Dropdown\n {...sharedProps}\n {...(dropdownProps\n ? (convertCamelCaseProps(\n dropdownProps\n ) as DropdownAllProps)\n : null)}\n />\n )}\n </FieldBlock>\n )\n }\n }\n}\n\nexport function getStatus(\n error: Error | FormError | undefined,\n info: React.ReactNode,\n warning: React.ReactNode\n) {\n return (\n error?.message ??\n ((warning instanceof Error && warning.message) ||\n (warning instanceof FormError && warning.message) ||\n warning?.toString() ||\n (info instanceof Error && info.message) ||\n (info instanceof FormError && info.message) ||\n info?.toString())\n )\n}\n\nexport function getRadioOrToggleOptions({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n hasError,\n}: {\n id: string\n value: Props['value']\n variant: Props['variant']\n info: Props['info']\n warning: Props['warning']\n htmlAttributes: Props['htmlAttributes']\n children: Props['children']\n hasError: ReturnAdditional<Props['value']>['hasError']\n}) {\n const optionsCount = React.Children.count(children)\n\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n const createOption = (props: OptionProps, i: number) => {\n const { error, title, help, children, ...rest } = props\n\n const label = title ?? children\n const status = getStatus(error, info, warning)\n const suffix = help ? (\n <HelpButton size=\"small\" title={help.title}>\n {help.content}\n </HelpButton>\n ) : undefined\n\n return (\n <Component\n id={optionsCount === 1 ? id : undefined}\n key={`option-${i}-${value}`}\n label={variant === 'radio' ? label : undefined}\n text={variant === 'button' ? label : undefined}\n value={String(value ?? '')}\n status={(hasError || status) && 'error'}\n suffix={suffix}\n {...htmlAttributes}\n {...rest}\n />\n )\n }\n\n const mapOptions = (children: React.ReactNode) => {\n return React.Children.toArray(children).map(\n (child: React.ReactElement<OptionProps>, i) => {\n if (React.isValidElement(child)) {\n if (child.type === OptionField) {\n return createOption(child.props, i)\n }\n\n if (child.props.children) {\n const nestedChildren = mapOptions(child.props.children)\n return React.cloneElement(child, child.props, nestedChildren)\n }\n }\n\n return child\n }\n )\n }\n\n return mapOptions(children)\n}\n\nSelection._supportsSpacingProps = true\nexport default Selection\n"],"mappings":"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"}
@@ -6,4 +6,13 @@
6
6
  }
7
7
  .dnb-forms-field-selection__variant--button .dnb-forms-field-block--layout-horizontal .dnb-form-label {
8
8
  line-height: 2.5rem;
9
+ }
10
+ .dnb-forms-field-selection .dnb-forms-field-block__contents {
11
+ display: flex;
12
+ }
13
+ .dnb-forms-field-selection .dnb-radio-group .dnb-height-animation, .dnb-forms-field-selection .dnb-radio-group > .dnb-flex-container,
14
+ .dnb-forms-field-selection .dnb-toggle-button-group .dnb-height-animation,
15
+ .dnb-forms-field-selection .dnb-toggle-button-group > .dnb-flex-container {
16
+ width: 100%;
17
+ flex-grow: 1;
9
18
  }
@@ -1 +1 @@
1
- .dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label{align-self:center}.dnb-forms-field-selection__options-layout--horizontal .dnb-forms-field-block--layout-horizontal .dnb-form-label,.dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label{margin-bottom:0}.dnb-forms-field-selection__variant--button .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem}
1
+ .dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label{align-self:center}.dnb-forms-field-selection__options-layout--horizontal .dnb-forms-field-block--layout-horizontal .dnb-form-label,.dnb-forms-field-selection__variant--dropdown .dnb-forms-field-block--layout-horizontal .dnb-form-label{margin-bottom:0}.dnb-forms-field-selection__variant--button .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem}.dnb-forms-field-selection .dnb-forms-field-block__contents{display:flex}.dnb-forms-field-selection .dnb-radio-group .dnb-height-animation,.dnb-forms-field-selection .dnb-radio-group>.dnb-flex-container,.dnb-forms-field-selection .dnb-toggle-button-group .dnb-height-animation,.dnb-forms-field-selection .dnb-toggle-button-group>.dnb-flex-container{flex-grow:1;width:100%}
@@ -21,4 +21,20 @@
21
21
  }
22
22
  }
23
23
  }
24
+
25
+ // In order to stretch nested Section components
26
+ // Because __contents is not a flex container by default (and should not be)
27
+ .dnb-forms-field-block__contents {
28
+ display: flex;
29
+ }
30
+
31
+ .dnb-radio-group,
32
+ .dnb-toggle-button-group {
33
+ // On order to stretch a nested Section component
34
+ .dnb-height-animation,
35
+ & > .dnb-flex-container {
36
+ width: 100%;
37
+ flex-grow: 1;
38
+ }
39
+ }
24
40
  }
@@ -36,6 +36,8 @@ export type Props = {
36
36
  animate?: boolean;
37
37
  /** Keep the content in the DOM, even if it's not visible */
38
38
  keepInDOM?: boolean;
39
+ /** 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`. */
40
+ compensateForGap?: HeightAnimationProps['compensateForGap'];
39
41
  /** When visibility is hidden, and `keepInDOM` is true, pass these props to the children */
40
42
  fieldPropsWhenHidden?: UseFieldProps & DataAttributes & AriaAttributes;
41
43
  element?: HeightAnimationProps['element'];
@@ -45,7 +47,7 @@ export type Props = {
45
47
  /** @deprecated Use `visibleWhen` instead */
46
48
  whenValue?: unknown;
47
49
  };
48
- declare function Visibility({ visible, pathDefined, pathUndefined, pathTruthy, pathFalsy, pathTrue, pathFalse, pathValue, whenValue, visibleWhen, visibleWhenNot, inferData, filterData, animate, keepInDOM, fieldPropsWhenHidden, children, ...rest }: Props): import("react/jsx-runtime").JSX.Element;
50
+ declare function Visibility({ visible, pathDefined, pathUndefined, pathTruthy, pathFalsy, pathTrue, pathFalse, pathValue, whenValue, visibleWhen, visibleWhenNot, inferData, filterData, animate, keepInDOM, compensateForGap, fieldPropsWhenHidden, children, ...rest }: Props): import("react/jsx-runtime").JSX.Element;
49
51
  declare namespace Visibility {
50
52
  var _supportsSpacingProps: string;
51
53
  }
@@ -10,7 +10,7 @@ var _useMountEffect = _interopRequireDefault(require("../../../../shared/helpers
10
10
  var _HeightAnimation = _interopRequireDefault(require("../../../../components/HeightAnimation"));
11
11
  var _FieldProps = _interopRequireDefault(require("../FieldProps"));
12
12
  var _useVisibility = _interopRequireDefault(require("./useVisibility"));
13
- const _excluded = ["visible", "pathDefined", "pathUndefined", "pathTruthy", "pathFalsy", "pathTrue", "pathFalse", "pathValue", "whenValue", "visibleWhen", "visibleWhenNot", "inferData", "filterData", "animate", "keepInDOM", "fieldPropsWhenHidden", "children"];
13
+ const _excluded = ["visible", "pathDefined", "pathUndefined", "pathTruthy", "pathFalsy", "pathTrue", "pathFalse", "pathValue", "whenValue", "visibleWhen", "visibleWhenNot", "inferData", "filterData", "animate", "keepInDOM", "compensateForGap", "fieldPropsWhenHidden", "children"];
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
16
16
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
@@ -32,6 +32,7 @@ function Visibility(_ref) {
32
32
  filterData,
33
33
  animate,
34
34
  keepInDOM,
35
+ compensateForGap,
35
36
  fieldPropsWhenHidden,
36
37
  children
37
38
  } = _ref,
@@ -64,7 +65,8 @@ function Visibility(_ref) {
64
65
  return _react.default.createElement(_HeightAnimation.default, _extends({
65
66
  open: open,
66
67
  keepInDOM: Boolean(keepInDOM),
67
- className: "dnb-forms-visibility"
68
+ className: "dnb-forms-visibility",
69
+ compensateForGap: compensateForGap
68
70
  }, rest), _react.default.createElement(_FieldProps.default, props, children));
69
71
  }
70
72
  if (keepInDOM) {