@dnb/eufemia 10.32.0 → 10.33.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 (551) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/cjs/components/flex/Container.js +4 -4
  3. package/cjs/components/flex/Container.js.map +1 -1
  4. package/cjs/components/grid/Container.d.ts +2 -2
  5. package/cjs/components/grid/Container.js.map +1 -1
  6. package/cjs/components/grid/ContainerDocs.d.ts +2 -0
  7. package/cjs/components/grid/ContainerDocs.js +30 -0
  8. package/cjs/components/grid/ContainerDocs.js.map +1 -0
  9. package/cjs/components/grid/style/dnb-grid.css +6 -0
  10. package/cjs/components/grid/style/dnb-grid.min.css +1 -1
  11. package/cjs/components/grid/style/grid-container.scss +6 -0
  12. package/cjs/components/slider/SliderDocs.d.ts +3 -0
  13. package/cjs/components/slider/SliderDocs.js +158 -0
  14. package/cjs/components/slider/SliderDocs.js.map +1 -0
  15. package/cjs/extensions/forms/DataContext/Context.d.ts +7 -5
  16. package/cjs/extensions/forms/DataContext/Context.js +0 -1
  17. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  18. package/cjs/extensions/forms/DataContext/Provider/Provider.js +13 -3
  19. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  20. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +1 -1
  21. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
  22. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  23. package/cjs/extensions/forms/Field/Composition/Composition.d.ts +2 -2
  24. package/cjs/extensions/forms/Field/Composition/Composition.js.map +1 -1
  25. package/cjs/extensions/forms/Field/Number/Number.js +3 -3
  26. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  27. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
  28. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +2 -2
  29. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  30. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
  31. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  32. package/cjs/extensions/forms/Field/Selection/Selection.js +3 -3
  33. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  34. package/cjs/extensions/forms/Field/Slider/Slider.d.ts +34 -0
  35. package/cjs/extensions/forms/Field/Slider/Slider.js +115 -0
  36. package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -0
  37. package/cjs/extensions/forms/Field/Slider/SliderDocs.d.ts +3 -0
  38. package/cjs/extensions/forms/Field/Slider/SliderDocs.js +34 -0
  39. package/cjs/extensions/forms/Field/Slider/SliderDocs.js.map +1 -0
  40. package/cjs/extensions/forms/Field/Slider/index.d.ts +2 -0
  41. package/cjs/extensions/forms/Field/Slider/index.js +27 -0
  42. package/cjs/extensions/forms/Field/Slider/index.js.map +1 -0
  43. package/cjs/extensions/forms/Field/String/String.js +2 -2
  44. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  45. package/cjs/extensions/forms/Field/Toggle/Toggle.js +7 -7
  46. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  47. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  48. package/cjs/extensions/forms/Field/index.js +7 -0
  49. package/cjs/extensions/forms/Field/index.js.map +1 -1
  50. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  51. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  52. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +0 -1
  53. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  54. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +0 -1
  55. package/cjs/extensions/forms/Form/FieldProps/FieldProps.d.ts +19 -5
  56. package/cjs/extensions/forms/Form/FieldProps/FieldProps.js +52 -21
  57. package/cjs/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
  58. package/cjs/extensions/forms/Form/FieldProps/FieldPropsContext.d.ts +1 -0
  59. package/cjs/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +1 -1
  60. package/cjs/extensions/forms/Form/Section/Section.d.ts +44 -0
  61. package/cjs/extensions/forms/Form/Section/Section.js +67 -0
  62. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -0
  63. package/cjs/extensions/forms/Form/Section/SectionContext.d.ts +11 -0
  64. package/cjs/extensions/forms/Form/Section/SectionContext.js +12 -0
  65. package/cjs/extensions/forms/Form/Section/SectionContext.js.map +1 -0
  66. package/cjs/extensions/forms/Form/Section/SectionDocs.d.ts +3 -0
  67. package/cjs/extensions/forms/Form/Section/SectionDocs.js +43 -0
  68. package/cjs/extensions/forms/Form/Section/SectionDocs.js.map +1 -0
  69. package/cjs/extensions/forms/Form/Section/index.d.ts +2 -0
  70. package/cjs/extensions/forms/Form/Section/index.js +27 -0
  71. package/cjs/extensions/forms/Form/Section/index.js.map +1 -0
  72. package/cjs/extensions/forms/Form/Visibility/Visibility.js +15 -9
  73. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  74. package/cjs/extensions/forms/Form/data-context/useData.js +6 -2
  75. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  76. package/cjs/extensions/forms/Form/index.d.ts +1 -1
  77. package/cjs/extensions/forms/Form/index.js +7 -5
  78. package/cjs/extensions/forms/Form/index.js.map +1 -1
  79. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +2 -2
  80. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  81. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
  82. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  83. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
  84. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  85. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  86. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  87. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -2
  88. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  89. package/cjs/extensions/forms/Tools/GenerateSchema.d.ts +19 -0
  90. package/cjs/extensions/forms/Tools/GenerateSchema.js +143 -0
  91. package/cjs/extensions/forms/Tools/GenerateSchema.js.map +1 -0
  92. package/cjs/extensions/forms/Tools/ListAllProps.d.ts +15 -0
  93. package/cjs/extensions/forms/Tools/ListAllProps.js +73 -0
  94. package/cjs/extensions/forms/Tools/ListAllProps.js.map +1 -0
  95. package/{es/extensions/forms/Form → cjs/extensions/forms}/Tools/index.d.ts +1 -0
  96. package/cjs/extensions/forms/{Form/Tools → Tools}/index.js +7 -0
  97. package/cjs/extensions/forms/Tools/index.js.map +1 -0
  98. package/cjs/extensions/forms/Value/Number/Number.js +4 -2
  99. package/cjs/extensions/forms/Value/Number/Number.js.map +1 -1
  100. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +2 -2
  101. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  102. package/cjs/extensions/forms/blocks/Category/FirstBlock/FirstBlock.d.ts +2 -0
  103. package/cjs/extensions/forms/blocks/Category/FirstBlock/FirstBlock.js +46 -0
  104. package/cjs/extensions/forms/blocks/Category/FirstBlock/FirstBlock.js.map +1 -0
  105. package/cjs/extensions/forms/blocks/Category/FirstBlock/index.d.ts +2 -0
  106. package/cjs/extensions/forms/blocks/Category/FirstBlock/index.js +27 -0
  107. package/cjs/extensions/forms/blocks/Category/FirstBlock/index.js.map +1 -0
  108. package/cjs/extensions/forms/blocks/Category/index.d.ts +1 -0
  109. package/cjs/extensions/forms/blocks/Category/index.js +14 -0
  110. package/cjs/extensions/forms/blocks/Category/index.js.map +1 -0
  111. package/cjs/extensions/forms/blocks/index.d.ts +1 -0
  112. package/cjs/extensions/forms/blocks/index.js +11 -0
  113. package/cjs/extensions/forms/blocks/index.js.map +1 -0
  114. package/cjs/extensions/forms/hooks/index.d.ts +2 -5
  115. package/cjs/extensions/forms/hooks/index.js +12 -4
  116. package/cjs/extensions/forms/hooks/index.js.map +1 -1
  117. package/cjs/extensions/forms/hooks/useDataValue.d.ts +9 -0
  118. package/cjs/extensions/forms/hooks/useDataValue.js +39 -0
  119. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -0
  120. package/cjs/extensions/forms/hooks/useExternalValue.d.ts +12 -0
  121. package/cjs/extensions/forms/hooks/useExternalValue.js +47 -0
  122. package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -0
  123. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +1 -10
  124. package/cjs/extensions/forms/hooks/useFieldProps.js +60 -81
  125. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  126. package/cjs/extensions/forms/hooks/usePath.d.ts +14 -0
  127. package/cjs/extensions/forms/hooks/usePath.js +72 -0
  128. package/cjs/extensions/forms/hooks/usePath.js.map +1 -0
  129. package/cjs/extensions/forms/hooks/useValueProps.js +17 -4
  130. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  131. package/cjs/extensions/forms/index.d.ts +2 -0
  132. package/cjs/extensions/forms/index.js +4 -1
  133. package/cjs/extensions/forms/index.js.map +1 -1
  134. package/cjs/extensions/forms/style/dnb-forms.css +0 -1
  135. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  136. package/cjs/extensions/forms/types.d.ts +6 -3
  137. package/cjs/extensions/forms/types.js.map +1 -1
  138. package/cjs/fragments/drawer-list/DrawerListHelpers.js +3 -2
  139. package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  140. package/cjs/shared/Context.d.ts +3 -3
  141. package/cjs/shared/Context.js +8 -8
  142. package/cjs/shared/Context.js.map +1 -1
  143. package/cjs/shared/Eufemia.d.ts +1 -1
  144. package/cjs/shared/Eufemia.js +2 -2
  145. package/cjs/shared/Eufemia.js.map +1 -1
  146. package/cjs/style/core/scopes.scss +1 -1
  147. package/cjs/style/dnb-ui-basis.css +1 -1
  148. package/cjs/style/dnb-ui-basis.min.css +1 -1
  149. package/cjs/style/dnb-ui-body.css +1 -1
  150. package/cjs/style/dnb-ui-body.min.css +1 -1
  151. package/cjs/style/dnb-ui-components.css +6 -1
  152. package/cjs/style/dnb-ui-components.min.css +2 -2
  153. package/cjs/style/dnb-ui-core.css +1 -1
  154. package/cjs/style/dnb-ui-core.min.css +1 -1
  155. package/cjs/style/dnb-ui-extensions.css +0 -1
  156. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  157. package/cjs/style/dnb-ui-forms.css +0 -1
  158. package/cjs/style/dnb-ui-forms.min.css +1 -1
  159. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +6 -2
  160. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  161. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +0 -1
  162. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  163. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +0 -1
  164. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  165. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +6 -2
  166. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  167. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +0 -1
  168. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  169. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +0 -1
  170. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  171. package/cjs/style/themes/theme-ui/ui-theme-components.css +6 -2
  172. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  173. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +0 -1
  174. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  175. package/cjs/style/themes/theme-ui/ui-theme-forms.css +0 -1
  176. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  177. package/components/flex/Container.js +4 -4
  178. package/components/flex/Container.js.map +1 -1
  179. package/components/grid/Container.d.ts +2 -2
  180. package/components/grid/Container.js.map +1 -1
  181. package/components/grid/ContainerDocs.d.ts +2 -0
  182. package/components/grid/ContainerDocs.js +23 -0
  183. package/components/grid/ContainerDocs.js.map +1 -0
  184. package/components/grid/style/dnb-grid.css +6 -0
  185. package/components/grid/style/dnb-grid.min.css +1 -1
  186. package/components/grid/style/grid-container.scss +6 -0
  187. package/components/slider/SliderDocs.d.ts +3 -0
  188. package/components/slider/SliderDocs.js +150 -0
  189. package/components/slider/SliderDocs.js.map +1 -0
  190. package/es/components/flex/Container.js +4 -4
  191. package/es/components/flex/Container.js.map +1 -1
  192. package/es/components/grid/Container.d.ts +2 -2
  193. package/es/components/grid/Container.js.map +1 -1
  194. package/es/components/grid/ContainerDocs.d.ts +2 -0
  195. package/es/components/grid/ContainerDocs.js +23 -0
  196. package/es/components/grid/ContainerDocs.js.map +1 -0
  197. package/es/components/grid/style/dnb-grid.css +6 -0
  198. package/es/components/grid/style/dnb-grid.min.css +1 -1
  199. package/es/components/grid/style/grid-container.scss +6 -0
  200. package/es/components/slider/SliderDocs.d.ts +3 -0
  201. package/es/components/slider/SliderDocs.js +150 -0
  202. package/es/components/slider/SliderDocs.js.map +1 -0
  203. package/es/extensions/forms/DataContext/Context.d.ts +7 -5
  204. package/es/extensions/forms/DataContext/Context.js +0 -1
  205. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  206. package/es/extensions/forms/DataContext/Provider/Provider.js +14 -4
  207. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  208. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +1 -1
  209. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
  210. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  211. package/es/extensions/forms/Field/Composition/Composition.d.ts +2 -2
  212. package/es/extensions/forms/Field/Composition/Composition.js.map +1 -1
  213. package/es/extensions/forms/Field/Number/Number.js +3 -3
  214. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  215. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
  216. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +2 -2
  217. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  218. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
  219. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  220. package/es/extensions/forms/Field/Selection/Selection.js +3 -3
  221. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  222. package/es/extensions/forms/Field/Slider/Slider.d.ts +34 -0
  223. package/es/extensions/forms/Field/Slider/Slider.js +103 -0
  224. package/es/extensions/forms/Field/Slider/Slider.js.map +1 -0
  225. package/es/extensions/forms/Field/Slider/SliderDocs.d.ts +3 -0
  226. package/es/extensions/forms/Field/Slider/SliderDocs.js +26 -0
  227. package/es/extensions/forms/Field/Slider/SliderDocs.js.map +1 -0
  228. package/es/extensions/forms/Field/Slider/index.d.ts +2 -0
  229. package/es/extensions/forms/Field/Slider/index.js +3 -0
  230. package/es/extensions/forms/Field/Slider/index.js.map +1 -0
  231. package/es/extensions/forms/Field/String/String.js +2 -2
  232. package/es/extensions/forms/Field/String/String.js.map +1 -1
  233. package/es/extensions/forms/Field/Toggle/Toggle.js +7 -7
  234. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  235. package/es/extensions/forms/Field/index.d.ts +1 -0
  236. package/es/extensions/forms/Field/index.js +1 -0
  237. package/es/extensions/forms/Field/index.js.map +1 -1
  238. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  239. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  240. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +0 -1
  241. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  242. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +0 -1
  243. package/es/extensions/forms/Form/FieldProps/FieldProps.d.ts +19 -5
  244. package/es/extensions/forms/Form/FieldProps/FieldProps.js +49 -21
  245. package/es/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
  246. package/es/extensions/forms/Form/FieldProps/FieldPropsContext.d.ts +1 -0
  247. package/es/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +1 -1
  248. package/es/extensions/forms/Form/Section/Section.d.ts +44 -0
  249. package/es/extensions/forms/Form/Section/Section.js +56 -0
  250. package/es/extensions/forms/Form/Section/Section.js.map +1 -0
  251. package/es/extensions/forms/Form/Section/SectionContext.d.ts +11 -0
  252. package/es/extensions/forms/Form/Section/SectionContext.js +4 -0
  253. package/es/extensions/forms/Form/Section/SectionContext.js.map +1 -0
  254. package/es/extensions/forms/Form/Section/SectionDocs.d.ts +3 -0
  255. package/es/extensions/forms/Form/Section/SectionDocs.js +35 -0
  256. package/es/extensions/forms/Form/Section/SectionDocs.js.map +1 -0
  257. package/es/extensions/forms/Form/Section/index.d.ts +2 -0
  258. package/es/extensions/forms/Form/Section/index.js +3 -0
  259. package/es/extensions/forms/Form/Section/index.js.map +1 -0
  260. package/es/extensions/forms/Form/Visibility/Visibility.js +16 -10
  261. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  262. package/es/extensions/forms/Form/data-context/useData.js +6 -2
  263. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  264. package/es/extensions/forms/Form/index.d.ts +1 -1
  265. package/es/extensions/forms/Form/index.js +1 -1
  266. package/es/extensions/forms/Form/index.js.map +1 -1
  267. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +2 -2
  268. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  269. package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
  270. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  271. package/es/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
  272. package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  273. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  274. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  275. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -2
  276. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  277. package/es/extensions/forms/Tools/GenerateSchema.d.ts +19 -0
  278. package/es/extensions/forms/Tools/GenerateSchema.js +130 -0
  279. package/es/extensions/forms/Tools/GenerateSchema.js.map +1 -0
  280. package/es/extensions/forms/Tools/ListAllProps.d.ts +15 -0
  281. package/es/extensions/forms/Tools/ListAllProps.js +65 -0
  282. package/es/extensions/forms/Tools/ListAllProps.js.map +1 -0
  283. package/{extensions/forms/Form → es/extensions/forms}/Tools/index.d.ts +1 -0
  284. package/es/extensions/forms/Tools/index.js +3 -0
  285. package/es/extensions/forms/Tools/index.js.map +1 -0
  286. package/es/extensions/forms/Value/Number/Number.js +4 -2
  287. package/es/extensions/forms/Value/Number/Number.js.map +1 -1
  288. package/es/extensions/forms/Wizard/Container/WizardContainer.js +2 -2
  289. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  290. package/es/extensions/forms/blocks/Category/FirstBlock/FirstBlock.d.ts +2 -0
  291. package/es/extensions/forms/blocks/Category/FirstBlock/FirstBlock.js +39 -0
  292. package/es/extensions/forms/blocks/Category/FirstBlock/FirstBlock.js.map +1 -0
  293. package/es/extensions/forms/blocks/Category/FirstBlock/index.d.ts +2 -0
  294. package/es/extensions/forms/blocks/Category/FirstBlock/index.js +3 -0
  295. package/es/extensions/forms/blocks/Category/FirstBlock/index.js.map +1 -0
  296. package/es/extensions/forms/blocks/Category/index.d.ts +1 -0
  297. package/es/extensions/forms/blocks/Category/index.js +1 -0
  298. package/es/extensions/forms/blocks/Category/index.js.map +1 -0
  299. package/es/extensions/forms/blocks/index.d.ts +1 -0
  300. package/es/extensions/forms/blocks/index.js +1 -0
  301. package/es/extensions/forms/blocks/index.js.map +1 -0
  302. package/es/extensions/forms/hooks/index.d.ts +2 -5
  303. package/es/extensions/forms/hooks/index.js +2 -1
  304. package/es/extensions/forms/hooks/index.js.map +1 -1
  305. package/es/extensions/forms/hooks/useDataValue.d.ts +9 -0
  306. package/es/extensions/forms/hooks/useDataValue.js +32 -0
  307. package/es/extensions/forms/hooks/useDataValue.js.map +1 -0
  308. package/es/extensions/forms/hooks/useExternalValue.d.ts +12 -0
  309. package/es/extensions/forms/hooks/useExternalValue.js +41 -0
  310. package/es/extensions/forms/hooks/useExternalValue.js.map +1 -0
  311. package/es/extensions/forms/hooks/useFieldProps.d.ts +1 -10
  312. package/es/extensions/forms/hooks/useFieldProps.js +59 -78
  313. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  314. package/es/extensions/forms/hooks/usePath.d.ts +14 -0
  315. package/es/extensions/forms/hooks/usePath.js +64 -0
  316. package/es/extensions/forms/hooks/usePath.js.map +1 -0
  317. package/es/extensions/forms/hooks/useValueProps.js +16 -4
  318. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  319. package/es/extensions/forms/index.d.ts +2 -0
  320. package/es/extensions/forms/index.js +1 -0
  321. package/es/extensions/forms/index.js.map +1 -1
  322. package/es/extensions/forms/style/dnb-forms.css +0 -1
  323. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  324. package/es/extensions/forms/types.d.ts +6 -3
  325. package/es/extensions/forms/types.js.map +1 -1
  326. package/es/fragments/drawer-list/DrawerListHelpers.js +3 -2
  327. package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  328. package/es/shared/Context.d.ts +3 -3
  329. package/es/shared/Context.js +8 -8
  330. package/es/shared/Context.js.map +1 -1
  331. package/es/shared/Eufemia.d.ts +1 -1
  332. package/es/shared/Eufemia.js +2 -2
  333. package/es/shared/Eufemia.js.map +1 -1
  334. package/es/style/core/scopes.scss +1 -1
  335. package/es/style/dnb-ui-basis.css +1 -1
  336. package/es/style/dnb-ui-basis.min.css +1 -1
  337. package/es/style/dnb-ui-body.css +1 -1
  338. package/es/style/dnb-ui-body.min.css +1 -1
  339. package/es/style/dnb-ui-components.css +6 -1
  340. package/es/style/dnb-ui-components.min.css +2 -2
  341. package/es/style/dnb-ui-core.css +1 -1
  342. package/es/style/dnb-ui-core.min.css +1 -1
  343. package/es/style/dnb-ui-extensions.css +0 -1
  344. package/es/style/dnb-ui-extensions.min.css +1 -1
  345. package/es/style/dnb-ui-forms.css +0 -1
  346. package/es/style/dnb-ui-forms.min.css +1 -1
  347. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +6 -2
  348. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  349. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +0 -1
  350. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  351. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +0 -1
  352. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  353. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +6 -2
  354. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  355. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +0 -1
  356. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  357. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +0 -1
  358. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  359. package/es/style/themes/theme-ui/ui-theme-components.css +6 -2
  360. package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  361. package/es/style/themes/theme-ui/ui-theme-extensions.css +0 -1
  362. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  363. package/es/style/themes/theme-ui/ui-theme-forms.css +0 -1
  364. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  365. package/esm/dnb-ui-basis.min.mjs +1 -1
  366. package/esm/dnb-ui-components.min.mjs +1 -1
  367. package/esm/dnb-ui-elements.min.mjs +1 -1
  368. package/esm/dnb-ui-extensions.min.mjs +3 -3
  369. package/esm/dnb-ui-lib.min.mjs +1 -1
  370. package/extensions/forms/DataContext/Context.d.ts +7 -5
  371. package/extensions/forms/DataContext/Context.js +0 -1
  372. package/extensions/forms/DataContext/Context.js.map +1 -1
  373. package/extensions/forms/DataContext/Provider/Provider.js +14 -4
  374. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  375. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +1 -1
  376. package/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
  377. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  378. package/extensions/forms/Field/Composition/Composition.d.ts +2 -2
  379. package/extensions/forms/Field/Composition/Composition.js.map +1 -1
  380. package/extensions/forms/Field/Number/Number.js +3 -3
  381. package/extensions/forms/Field/Number/Number.js.map +1 -1
  382. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
  383. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +2 -2
  384. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  385. package/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -4
  386. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  387. package/extensions/forms/Field/Selection/Selection.js +3 -3
  388. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  389. package/extensions/forms/Field/Slider/Slider.d.ts +34 -0
  390. package/extensions/forms/Field/Slider/Slider.js +104 -0
  391. package/extensions/forms/Field/Slider/Slider.js.map +1 -0
  392. package/extensions/forms/Field/Slider/SliderDocs.d.ts +3 -0
  393. package/extensions/forms/Field/Slider/SliderDocs.js +26 -0
  394. package/extensions/forms/Field/Slider/SliderDocs.js.map +1 -0
  395. package/extensions/forms/Field/Slider/index.d.ts +2 -0
  396. package/extensions/forms/Field/Slider/index.js +3 -0
  397. package/extensions/forms/Field/Slider/index.js.map +1 -0
  398. package/extensions/forms/Field/String/String.js +2 -2
  399. package/extensions/forms/Field/String/String.js.map +1 -1
  400. package/extensions/forms/Field/Toggle/Toggle.js +7 -7
  401. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  402. package/extensions/forms/Field/index.d.ts +1 -0
  403. package/extensions/forms/Field/index.js +1 -0
  404. package/extensions/forms/Field/index.js.map +1 -1
  405. package/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  406. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  407. package/extensions/forms/FieldBlock/style/dnb-field-block.css +0 -1
  408. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  409. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +0 -1
  410. package/extensions/forms/Form/FieldProps/FieldProps.d.ts +19 -5
  411. package/extensions/forms/Form/FieldProps/FieldProps.js +50 -21
  412. package/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
  413. package/extensions/forms/Form/FieldProps/FieldPropsContext.d.ts +1 -0
  414. package/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +1 -1
  415. package/extensions/forms/Form/Section/Section.d.ts +44 -0
  416. package/extensions/forms/Form/Section/Section.js +56 -0
  417. package/extensions/forms/Form/Section/Section.js.map +1 -0
  418. package/extensions/forms/Form/Section/SectionContext.d.ts +11 -0
  419. package/extensions/forms/Form/Section/SectionContext.js +4 -0
  420. package/extensions/forms/Form/Section/SectionContext.js.map +1 -0
  421. package/extensions/forms/Form/Section/SectionDocs.d.ts +3 -0
  422. package/extensions/forms/Form/Section/SectionDocs.js +35 -0
  423. package/extensions/forms/Form/Section/SectionDocs.js.map +1 -0
  424. package/extensions/forms/Form/Section/index.d.ts +2 -0
  425. package/extensions/forms/Form/Section/index.js +3 -0
  426. package/extensions/forms/Form/Section/index.js.map +1 -0
  427. package/extensions/forms/Form/Visibility/Visibility.js +16 -10
  428. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  429. package/extensions/forms/Form/data-context/useData.js +6 -2
  430. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  431. package/extensions/forms/Form/index.d.ts +1 -1
  432. package/extensions/forms/Form/index.js +1 -2
  433. package/extensions/forms/Form/index.js.map +1 -1
  434. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +2 -2
  435. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  436. package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
  437. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  438. package/extensions/forms/Iterate/PushButton/PushButton.js +1 -1
  439. package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  440. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  441. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  442. package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -2
  443. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  444. package/extensions/forms/Tools/GenerateSchema.d.ts +19 -0
  445. package/extensions/forms/Tools/GenerateSchema.js +133 -0
  446. package/extensions/forms/Tools/GenerateSchema.js.map +1 -0
  447. package/extensions/forms/Tools/ListAllProps.d.ts +15 -0
  448. package/extensions/forms/Tools/ListAllProps.js +67 -0
  449. package/extensions/forms/Tools/ListAllProps.js.map +1 -0
  450. package/{cjs/extensions/forms/Form → extensions/forms}/Tools/index.d.ts +1 -0
  451. package/extensions/forms/Tools/index.js +3 -0
  452. package/extensions/forms/Tools/index.js.map +1 -0
  453. package/extensions/forms/Value/Number/Number.js +4 -2
  454. package/extensions/forms/Value/Number/Number.js.map +1 -1
  455. package/extensions/forms/Wizard/Container/WizardContainer.js +2 -2
  456. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  457. package/extensions/forms/blocks/Category/FirstBlock/FirstBlock.d.ts +2 -0
  458. package/extensions/forms/blocks/Category/FirstBlock/FirstBlock.js +39 -0
  459. package/extensions/forms/blocks/Category/FirstBlock/FirstBlock.js.map +1 -0
  460. package/extensions/forms/blocks/Category/FirstBlock/index.d.ts +2 -0
  461. package/extensions/forms/blocks/Category/FirstBlock/index.js +3 -0
  462. package/extensions/forms/blocks/Category/FirstBlock/index.js.map +1 -0
  463. package/extensions/forms/blocks/Category/index.d.ts +1 -0
  464. package/extensions/forms/blocks/Category/index.js +1 -0
  465. package/extensions/forms/blocks/Category/index.js.map +1 -0
  466. package/extensions/forms/blocks/index.d.ts +1 -0
  467. package/extensions/forms/blocks/index.js +3 -0
  468. package/extensions/forms/blocks/index.js.map +1 -0
  469. package/extensions/forms/hooks/index.d.ts +2 -5
  470. package/extensions/forms/hooks/index.js +2 -1
  471. package/extensions/forms/hooks/index.js.map +1 -1
  472. package/extensions/forms/hooks/useDataValue.d.ts +9 -0
  473. package/extensions/forms/hooks/useDataValue.js +33 -0
  474. package/extensions/forms/hooks/useDataValue.js.map +1 -0
  475. package/extensions/forms/hooks/useExternalValue.d.ts +12 -0
  476. package/extensions/forms/hooks/useExternalValue.js +41 -0
  477. package/extensions/forms/hooks/useExternalValue.js.map +1 -0
  478. package/extensions/forms/hooks/useFieldProps.d.ts +1 -10
  479. package/extensions/forms/hooks/useFieldProps.js +59 -79
  480. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  481. package/extensions/forms/hooks/usePath.d.ts +14 -0
  482. package/extensions/forms/hooks/usePath.js +66 -0
  483. package/extensions/forms/hooks/usePath.js.map +1 -0
  484. package/extensions/forms/hooks/useValueProps.js +16 -4
  485. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  486. package/extensions/forms/index.d.ts +2 -0
  487. package/extensions/forms/index.js +2 -0
  488. package/extensions/forms/index.js.map +1 -1
  489. package/extensions/forms/style/dnb-forms.css +0 -1
  490. package/extensions/forms/style/dnb-forms.min.css +1 -1
  491. package/extensions/forms/types.d.ts +6 -3
  492. package/extensions/forms/types.js.map +1 -1
  493. package/fragments/drawer-list/DrawerListHelpers.js +3 -2
  494. package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  495. package/package.json +1 -1
  496. package/shared/Context.d.ts +3 -3
  497. package/shared/Context.js +8 -8
  498. package/shared/Context.js.map +1 -1
  499. package/shared/Eufemia.d.ts +1 -1
  500. package/shared/Eufemia.js +2 -2
  501. package/shared/Eufemia.js.map +1 -1
  502. package/style/core/scopes.scss +1 -1
  503. package/style/dnb-ui-basis.css +1 -1
  504. package/style/dnb-ui-basis.min.css +1 -1
  505. package/style/dnb-ui-body.css +1 -1
  506. package/style/dnb-ui-body.min.css +1 -1
  507. package/style/dnb-ui-components.css +6 -1
  508. package/style/dnb-ui-components.min.css +2 -2
  509. package/style/dnb-ui-core.css +1 -1
  510. package/style/dnb-ui-core.min.css +1 -1
  511. package/style/dnb-ui-extensions.css +0 -1
  512. package/style/dnb-ui-extensions.min.css +1 -1
  513. package/style/dnb-ui-forms.css +0 -1
  514. package/style/dnb-ui-forms.min.css +1 -1
  515. package/style/themes/theme-eiendom/eiendom-theme-components.css +6 -2
  516. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  517. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +0 -1
  518. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  519. package/style/themes/theme-eiendom/eiendom-theme-forms.css +0 -1
  520. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  521. package/style/themes/theme-sbanken/sbanken-theme-components.css +6 -2
  522. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  523. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +0 -1
  524. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  525. package/style/themes/theme-sbanken/sbanken-theme-forms.css +0 -1
  526. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  527. package/style/themes/theme-ui/ui-theme-components.css +6 -2
  528. package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  529. package/style/themes/theme-ui/ui-theme-extensions.css +0 -1
  530. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  531. package/style/themes/theme-ui/ui-theme-forms.css +0 -1
  532. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  533. package/umd/dnb-ui-basis.min.js +1 -1
  534. package/umd/dnb-ui-components.min.js +1 -1
  535. package/umd/dnb-ui-elements.min.js +1 -1
  536. package/umd/dnb-ui-extensions.min.js +3 -3
  537. package/umd/dnb-ui-lib.min.js +1 -1
  538. package/cjs/extensions/forms/Form/Tools/GenerateSchema.d.ts +0 -8
  539. package/cjs/extensions/forms/Form/Tools/GenerateSchema.js +0 -100
  540. package/cjs/extensions/forms/Form/Tools/GenerateSchema.js.map +0 -1
  541. package/cjs/extensions/forms/Form/Tools/index.js.map +0 -1
  542. package/es/extensions/forms/Form/Tools/GenerateSchema.d.ts +0 -8
  543. package/es/extensions/forms/Form/Tools/GenerateSchema.js +0 -89
  544. package/es/extensions/forms/Form/Tools/GenerateSchema.js.map +0 -1
  545. package/es/extensions/forms/Form/Tools/index.js +0 -1
  546. package/es/extensions/forms/Form/Tools/index.js.map +0 -1
  547. package/extensions/forms/Form/Tools/GenerateSchema.d.ts +0 -8
  548. package/extensions/forms/Form/Tools/GenerateSchema.js +0 -90
  549. package/extensions/forms/Form/Tools/GenerateSchema.js.map +0 -1
  550. package/extensions/forms/Form/Tools/index.js +0 -1
  551. package/extensions/forms/Form/Tools/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Number.js","names":["React","useContext","useMemo","useCallback","InputMasked","HelpButton","Button","SharedContext","FieldBlockContext","classnames","FieldBlock","useFieldProps","pickSpacingProps","clamp","useErrorMessage","useTranslation","NumberComponent","props","_props$width","_sharedContext$transl","_sharedContext$transl2","fieldBlockContext","sharedContext","translations","currency","currencyDisplay","percent","mask","step","decimalLimit","prefix","suffix","showStepControls","errorMessages","path","required","Field","errorRequired","minimum","NumberField","errorMinimum","maximum","errorMaximum","exclusiveMinimum","errorExclusiveMinimum","exclusiveMaximum","errorExclusiveMaximum","multipleOf","errorMultipleOf","schema","_props$schema","type","toInput","external","undefined","fromInput","value","numberValue","emptyValue","transformValue","currentValue","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","maskProps","mask_options","as_currency","currency_mask","as_percent","as_number","number_mask","_objectSpread","preparedProps","valueType","width","composition","id","name","className","inputClassName","autoComplete","layout","placeholder","label","labelDescription","disabled","htmlAttributes","info","warning","error","hasError","help","size","align","handleFocus","handleBlur","handleChange","onKeyDownHandler","key","event","persist","preventDefault","fieldBlockProps","contentClassName","forId","contentWidth","increaseProps","variant","icon","tabIndex","onClick","title","translation","Slider","addTitle","replace","String","decreaseProps","subtractTitle","ariaParams","role","inputProps","onKeyDown","onFocus","onBlur","onChange","status","stretch","Boolean","createElement","content","_extends","asFieldset","left","_supportsSpacingProps"],"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 // 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 ''\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 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((value as number) + step, minimum, maximum)\n break\n case 'ArrowDown':\n numberValue = clamp((value as number) - step, minimum, maximum)\n break\n }\n\n if (numberValue !== null) {\n event.persist()\n event.preventDefault()\n handleChange({ numberValue })\n }\n },\n [handleChange, maximum, minimum, showStepControls, step, value]\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 ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\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: () => {\n handleChange({\n numberValue: clamp((value as number) + step, minimum, maximum),\n })\n },\n title: sharedContext?.translation.Slider.addTitle?.replace(\n '%s',\n String(value + step)\n ),\n }\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: () => {\n handleChange({\n numberValue: clamp((value as number) - step, minimum, maximum),\n })\n },\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","useContext","useMemo","useCallback","InputMasked","HelpButton","Button","SharedContext","FieldBlockContext","classnames","FieldBlock","useFieldProps","pickSpacingProps","clamp","useErrorMessage","useTranslation","NumberComponent","props","_props$width","_sharedContext$transl","_sharedContext$transl2","fieldBlockContext","sharedContext","translations","currency","currencyDisplay","percent","mask","step","decimalLimit","prefix","suffix","showStepControls","errorMessages","path","required","Field","errorRequired","minimum","NumberField","errorMinimum","maximum","errorMaximum","exclusiveMinimum","errorExclusiveMinimum","exclusiveMaximum","errorExclusiveMaximum","multipleOf","errorMultipleOf","schema","_props$schema","type","toInput","external","undefined","fromInput","value","numberValue","emptyValue","transformValue","currentValue","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","maskProps","mask_options","as_currency","currency_mask","as_percent","as_number","number_mask","_objectSpread","preparedProps","valueType","width","composition","id","name","className","inputClassName","autoComplete","layout","placeholder","label","labelDescription","disabled","htmlAttributes","info","warning","error","hasError","help","size","align","handleFocus","handleBlur","handleChange","onKeyDownHandler","key","event","persist","preventDefault","fieldSectionProps","contentClassName","forId","contentWidth","increaseProps","variant","icon","tabIndex","onClick","title","translation","Slider","addTitle","replace","String","decreaseProps","subtractTitle","ariaParams","role","inputProps","onKeyDown","onFocus","onBlur","onChange","status","stretch","Boolean","createElement","content","_extends","asFieldset","left","_supportsSpacingProps"],"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 // 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 ''\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 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((value as number) + step, minimum, maximum)\n break\n case 'ArrowDown':\n numberValue = clamp((value as number) - step, minimum, maximum)\n break\n }\n\n if (numberValue !== null) {\n event.persist()\n event.preventDefault()\n handleChange({ numberValue })\n }\n },\n [handleChange, maximum, minimum, showStepControls, step, value]\n )\n\n const fieldSectionProps = {\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 ? width\n : undefined,\n contentWidth: width !== false ? width : undefined,\n ...pickSpacingProps(props),\n }\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: () => {\n handleChange({\n numberValue: clamp((value as number) + step, minimum, maximum),\n })\n },\n title: sharedContext?.translation.Slider.addTitle?.replace(\n '%s',\n String(value + step)\n ),\n }\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: () => {\n handleChange({\n numberValue: clamp((value as number) - step, minimum, maximum),\n })\n },\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 {...fieldSectionProps} 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 {...fieldSectionProps} asFieldset={false}>\n <InputMasked {...inputProps} />\n </FieldBlock>\n )\n}\n\nNumberComponent._supportsSpacingProps = true\nexport default NumberComponent\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { Props as FieldBlockProps } from '../../FieldBlock';
1
+ import { Props as FieldSectionProps } from '../../FieldBlock';
2
2
  import { Props as StringFieldProps } from '../String';
3
3
  import { FieldHelpProps } from '../../types';
4
- export type Props = FieldHelpProps & Omit<FieldBlockProps, 'children'> & Partial<Record<'postalCode' | 'city', StringFieldProps>>;
4
+ export type Props = FieldHelpProps & Omit<FieldSectionProps, 'children'> & Partial<Record<'postalCode' | 'city', StringFieldProps>>;
5
5
  declare function PostalCodeAndCity(props: Props): import("react/jsx-runtime").JSX.Element;
6
6
  declare namespace PostalCodeAndCity {
7
7
  var _supportsSpacingProps: boolean;
@@ -18,10 +18,10 @@ function PostalCodeAndCity(props) {
18
18
  help,
19
19
  width = 'large'
20
20
  } = props,
21
- fieldBlockProps = _objectWithoutProperties(props, _excluded);
21
+ fieldSectionProps = _objectWithoutProperties(props, _excluded);
22
22
  return React.createElement(CompositionField, _extends({
23
23
  className: classnames('dnb-forms-field-postal-code-and-city', props.className)
24
- }, fieldBlockProps, {
24
+ }, fieldSectionProps, {
25
25
  width: width
26
26
  }), React.createElement(StringField, _extends({}, postalCode, {
27
27
  pattern: (_postalCode$pattern = postalCode.pattern) !== null && _postalCode$pattern !== void 0 ? _postalCode$pattern : '^[0-9]{4}$',
@@ -1 +1 @@
1
- {"version":3,"file":"PostalCodeAndCity.js","names":["React","classnames","StringField","CompositionField","useTranslation","PostalCodeAndCity","props","_postalCode$pattern","_postalCode$label","_postalCode$placehold","_city$label","_city$pattern","translations","postalCode","city","help","width","fieldBlockProps","_objectWithoutProperties","_excluded","createElement","_extends","className","pattern","mask","label","PostalCode","errorMessages","_objectSpread","required","errorRequired","errorPattern","placeholder","inputClassName","inputMode","autoComplete","City","trim","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport { Props as FieldBlockProps } from '../../FieldBlock'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport CompositionField from '../Composition'\nimport { FieldHelpProps } from '../../types'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = FieldHelpProps &\n Omit<FieldBlockProps, 'children'> &\n Partial<Record<'postalCode' | 'city', StringFieldProps>>\n\nfunction PostalCodeAndCity(props: Props) {\n const translations = useTranslation()\n\n const {\n postalCode = {},\n city = {},\n help,\n width = 'large',\n ...fieldBlockProps\n } = props\n\n return (\n <CompositionField\n className={classnames(\n 'dnb-forms-field-postal-code-and-city',\n props.className\n )}\n {...fieldBlockProps}\n width={width}\n >\n <StringField\n {...postalCode}\n pattern={postalCode.pattern ?? '^[0-9]{4}$'}\n mask={[/\\d/, /\\d/, /\\d/, /\\d/]}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__postal-code',\n postalCode.className\n )}\n label={postalCode.label ?? translations.PostalCode.label}\n errorMessages={{\n required: translations.PostalCode.errorRequired,\n pattern: translations.PostalCode.errorPattern,\n ...postalCode.errorMessages,\n }}\n placeholder={postalCode.placeholder ?? '0000'}\n width={false}\n inputClassName=\"dnb-forms-field-postal-code-and-city__postal-code-input\"\n inputMode=\"numeric\"\n autoComplete=\"postal-code\"\n />\n <StringField\n {...city}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__city',\n city.className\n )}\n label={city.label ?? translations.City.label}\n errorMessages={{\n required: translations.City.errorRequired,\n pattern: translations.City.errorPattern,\n ...city.errorMessages,\n }}\n pattern={city.pattern ?? '^[A-Za-zÆØÅæøå -]+$'}\n trim\n width=\"stretch\"\n autoComplete=\"address-level2\"\n help={help}\n />\n </CompositionField>\n )\n}\n\nPostalCodeAndCity._supportsSpacingProps = true\nexport default PostalCodeAndCity\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,WAAW,MAAqC,WAAW;AAClE,OAAOC,gBAAgB,MAAM,gBAAgB;AAE7C,OAAOC,cAAc,MAAM,4BAA4B;AAMvD,SAASC,iBAAiBA,CAACC,KAAY,EAAE;EAAA,IAAAC,mBAAA,EAAAC,iBAAA,EAAAC,qBAAA,EAAAC,WAAA,EAAAC,aAAA;EACvC,MAAMC,YAAY,GAAGR,cAAc,CAAC,CAAC;EAErC,MAAM;MACJS,UAAU,GAAG,CAAC,CAAC;MACfC,IAAI,GAAG,CAAC,CAAC;MACTC,IAAI;MACJC,KAAK,GAAG;IAEV,CAAC,GAAGV,KAAK;IADJW,eAAe,GAAAC,wBAAA,CAChBZ,KAAK,EAAAa,SAAA;EAET,OACEnB,KAAA,CAAAoB,aAAA,CAACjB,gBAAgB,EAAAkB,QAAA;IACfC,SAAS,EAAErB,UAAU,CACnB,sCAAsC,EACtCK,KAAK,CAACgB,SACR;EAAE,GACEL,eAAe;IACnBD,KAAK,EAAEA;EAAM,IAEbhB,KAAA,CAAAoB,aAAA,CAAClB,WAAW,EAAAmB,QAAA,KACNR,UAAU;IACdU,OAAO,GAAAhB,mBAAA,GAAEM,UAAU,CAACU,OAAO,cAAAhB,mBAAA,cAAAA,mBAAA,GAAI,YAAa;IAC5CiB,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE;IAC/BF,SAAS,EAAErB,UAAU,CACnB,mDAAmD,EACnDY,UAAU,CAACS,SACb,CAAE;IACFG,KAAK,GAAAjB,iBAAA,GAAEK,UAAU,CAACY,KAAK,cAAAjB,iBAAA,cAAAA,iBAAA,GAAII,YAAY,CAACc,UAAU,CAACD,KAAM;IACzDE,aAAa,EAAAC,aAAA;MACXC,QAAQ,EAAEjB,YAAY,CAACc,UAAU,CAACI,aAAa;MAC/CP,OAAO,EAAEX,YAAY,CAACc,UAAU,CAACK;IAAY,GAC1ClB,UAAU,CAACc,aAAa,CAC3B;IACFK,WAAW,GAAAvB,qBAAA,GAAEI,UAAU,CAACmB,WAAW,cAAAvB,qBAAA,cAAAA,qBAAA,GAAI,MAAO;IAC9CO,KAAK,EAAE,KAAM;IACbiB,cAAc,EAAC,yDAAyD;IACxEC,SAAS,EAAC,SAAS;IACnBC,YAAY,EAAC;EAAa,EAC3B,CAAC,EACFnC,KAAA,CAAAoB,aAAA,CAAClB,WAAW,EAAAmB,QAAA,KACNP,IAAI;IACRQ,SAAS,EAAErB,UAAU,CACnB,4CAA4C,EAC5Ca,IAAI,CAACQ,SACP,CAAE;IACFG,KAAK,GAAAf,WAAA,GAAEI,IAAI,CAACW,KAAK,cAAAf,WAAA,cAAAA,WAAA,GAAIE,YAAY,CAACwB,IAAI,CAACX,KAAM;IAC7CE,aAAa,EAAAC,aAAA;MACXC,QAAQ,EAAEjB,YAAY,CAACwB,IAAI,CAACN,aAAa;MACzCP,OAAO,EAAEX,YAAY,CAACwB,IAAI,CAACL;IAAY,GACpCjB,IAAI,CAACa,aAAa,CACrB;IACFJ,OAAO,GAAAZ,aAAA,GAAEG,IAAI,CAACS,OAAO,cAAAZ,aAAA,cAAAA,aAAA,GAAI,qBAAsB;IAC/C0B,IAAI;IACJrB,KAAK,EAAC,SAAS;IACfmB,YAAY,EAAC,gBAAgB;IAC7BpB,IAAI,EAAEA;EAAK,EACZ,CACe,CAAC;AAEvB;AAEAV,iBAAiB,CAACiC,qBAAqB,GAAG,IAAI;AAC9C,eAAejC,iBAAiB"}
1
+ {"version":3,"file":"PostalCodeAndCity.js","names":["React","classnames","StringField","CompositionField","useTranslation","PostalCodeAndCity","props","_postalCode$pattern","_postalCode$label","_postalCode$placehold","_city$label","_city$pattern","translations","postalCode","city","help","width","fieldSectionProps","_objectWithoutProperties","_excluded","createElement","_extends","className","pattern","mask","label","PostalCode","errorMessages","_objectSpread","required","errorRequired","errorPattern","placeholder","inputClassName","inputMode","autoComplete","City","trim","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport { Props as FieldSectionProps } from '../../FieldBlock'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport CompositionField from '../Composition'\nimport { FieldHelpProps } from '../../types'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = FieldHelpProps &\n Omit<FieldSectionProps, 'children'> &\n Partial<Record<'postalCode' | 'city', StringFieldProps>>\n\nfunction PostalCodeAndCity(props: Props) {\n const translations = useTranslation()\n\n const {\n postalCode = {},\n city = {},\n help,\n width = 'large',\n ...fieldSectionProps\n } = props\n\n return (\n <CompositionField\n className={classnames(\n 'dnb-forms-field-postal-code-and-city',\n props.className\n )}\n {...fieldSectionProps}\n width={width}\n >\n <StringField\n {...postalCode}\n pattern={postalCode.pattern ?? '^[0-9]{4}$'}\n mask={[/\\d/, /\\d/, /\\d/, /\\d/]}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__postal-code',\n postalCode.className\n )}\n label={postalCode.label ?? translations.PostalCode.label}\n errorMessages={{\n required: translations.PostalCode.errorRequired,\n pattern: translations.PostalCode.errorPattern,\n ...postalCode.errorMessages,\n }}\n placeholder={postalCode.placeholder ?? '0000'}\n width={false}\n inputClassName=\"dnb-forms-field-postal-code-and-city__postal-code-input\"\n inputMode=\"numeric\"\n autoComplete=\"postal-code\"\n />\n <StringField\n {...city}\n className={classnames(\n 'dnb-forms-field-postal-code-and-city__city',\n city.className\n )}\n label={city.label ?? translations.City.label}\n errorMessages={{\n required: translations.City.errorRequired,\n pattern: translations.City.errorPattern,\n ...city.errorMessages,\n }}\n pattern={city.pattern ?? '^[A-Za-zÆØÅæøå -]+$'}\n trim\n width=\"stretch\"\n autoComplete=\"address-level2\"\n help={help}\n />\n </CompositionField>\n )\n}\n\nPostalCodeAndCity._supportsSpacingProps = true\nexport default PostalCodeAndCity\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,WAAW,MAAqC,WAAW;AAClE,OAAOC,gBAAgB,MAAM,gBAAgB;AAE7C,OAAOC,cAAc,MAAM,4BAA4B;AAMvD,SAASC,iBAAiBA,CAACC,KAAY,EAAE;EAAA,IAAAC,mBAAA,EAAAC,iBAAA,EAAAC,qBAAA,EAAAC,WAAA,EAAAC,aAAA;EACvC,MAAMC,YAAY,GAAGR,cAAc,CAAC,CAAC;EAErC,MAAM;MACJS,UAAU,GAAG,CAAC,CAAC;MACfC,IAAI,GAAG,CAAC,CAAC;MACTC,IAAI;MACJC,KAAK,GAAG;IAEV,CAAC,GAAGV,KAAK;IADJW,iBAAiB,GAAAC,wBAAA,CAClBZ,KAAK,EAAAa,SAAA;EAET,OACEnB,KAAA,CAAAoB,aAAA,CAACjB,gBAAgB,EAAAkB,QAAA;IACfC,SAAS,EAAErB,UAAU,CACnB,sCAAsC,EACtCK,KAAK,CAACgB,SACR;EAAE,GACEL,iBAAiB;IACrBD,KAAK,EAAEA;EAAM,IAEbhB,KAAA,CAAAoB,aAAA,CAAClB,WAAW,EAAAmB,QAAA,KACNR,UAAU;IACdU,OAAO,GAAAhB,mBAAA,GAAEM,UAAU,CAACU,OAAO,cAAAhB,mBAAA,cAAAA,mBAAA,GAAI,YAAa;IAC5CiB,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE;IAC/BF,SAAS,EAAErB,UAAU,CACnB,mDAAmD,EACnDY,UAAU,CAACS,SACb,CAAE;IACFG,KAAK,GAAAjB,iBAAA,GAAEK,UAAU,CAACY,KAAK,cAAAjB,iBAAA,cAAAA,iBAAA,GAAII,YAAY,CAACc,UAAU,CAACD,KAAM;IACzDE,aAAa,EAAAC,aAAA;MACXC,QAAQ,EAAEjB,YAAY,CAACc,UAAU,CAACI,aAAa;MAC/CP,OAAO,EAAEX,YAAY,CAACc,UAAU,CAACK;IAAY,GAC1ClB,UAAU,CAACc,aAAa,CAC3B;IACFK,WAAW,GAAAvB,qBAAA,GAAEI,UAAU,CAACmB,WAAW,cAAAvB,qBAAA,cAAAA,qBAAA,GAAI,MAAO;IAC9CO,KAAK,EAAE,KAAM;IACbiB,cAAc,EAAC,yDAAyD;IACxEC,SAAS,EAAC,SAAS;IACnBC,YAAY,EAAC;EAAa,EAC3B,CAAC,EACFnC,KAAA,CAAAoB,aAAA,CAAClB,WAAW,EAAAmB,QAAA,KACNP,IAAI;IACRQ,SAAS,EAAErB,UAAU,CACnB,4CAA4C,EAC5Ca,IAAI,CAACQ,SACP,CAAE;IACFG,KAAK,GAAAf,WAAA,GAAEI,IAAI,CAACW,KAAK,cAAAf,WAAA,cAAAA,WAAA,GAAIE,YAAY,CAACwB,IAAI,CAACX,KAAM;IAC7CE,aAAa,EAAAC,aAAA;MACXC,QAAQ,EAAEjB,YAAY,CAACwB,IAAI,CAACN,aAAa;MACzCP,OAAO,EAAEX,YAAY,CAACwB,IAAI,CAACL;IAAY,GACpCjB,IAAI,CAACa,aAAa,CACrB;IACFJ,OAAO,GAAAZ,aAAA,GAAEG,IAAI,CAACS,OAAO,cAAAZ,aAAA,cAAAA,aAAA,GAAI,qBAAsB;IAC/C0B,IAAI;IACJrB,KAAK,EAAC,SAAS;IACfmB,YAAY,EAAC,gBAAgB;IAC7BpB,IAAI,EAAEA;EAAK,EACZ,CACe,CAAC;AAEvB;AAEAV,iBAAiB,CAACiC,qBAAqB,GAAG,IAAI;AAC9C,eAAejC,iBAAiB"}
@@ -56,17 +56,17 @@ function SelectCountry(props) {
56
56
  langRef.current = lang;
57
57
  dataRef.current = getCountryData({
58
58
  lang,
59
- filter: !wasFilled.current ? country => country.iso === props.value : filterCountries,
59
+ filter: !wasFilled.current ? country => country.iso === value : filterCountries,
60
60
  sort: ccFilter
61
61
  });
62
- if (isLangChange && props.value && typeof window !== 'undefined') {
62
+ if (isLangChange && value && typeof window !== 'undefined') {
63
63
  updateValue(null);
64
64
  window.requestAnimationFrame(() => {
65
- updateValue(props.value);
65
+ updateValue(value);
66
66
  });
67
67
  }
68
68
  }
69
- }, [lang, filterCountries, ccFilter, updateValue, props.value]);
69
+ }, [lang, filterCountries, ccFilter, updateValue, value]);
70
70
  const handleCountryChange = useCallback(({
71
71
  data
72
72
  }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"SelectCountry.js","names":["React","useCallback","useContext","useMemo","classnames","SharedContext","Autocomplete","HelpButton","pickSpacingProps","countries","prioritizedCountries","useFieldProps","FieldBlock","useErrorMessage","useTranslation","SelectCountry","props","_sharedContext$locale","sharedContext","translations","lang","locale","split","errorMessages","path","required","errorRequired","defaultProps","preparedProps","_objectSpread","className","placeholder","label","ccFilter","info","warning","error","hasError","disabled","value","width","help","htmlAttributes","handleFocus","handleBlur","handleChange","updateValue","forceUpdate","filterCountries","makeCountryFilterSet","undefined","dataRef","useRef","langRef","wasFilled","isLangChange","current","getCountryData","filter","country","iso","sort","window","requestAnimationFrame","handleCountryChange","data","newValue","selectedKey","find","fillData","onFocusHandler","updateData","onTypeHandler","currentValue","setHidden","event","_event$nativeEvent","nativeEvent","search","toLowerCase","i18n","Object","values","some","s","includes","createElement","_extends","label_direction","input_icon","on_show","on_focus","on_blur","on_change","on_type","stretch","status","show_submit_button","suffix","title","content","autoComplete","no_animation","noAnimation","makeObject","_country$i18n$lang","en","a","b","indexA","indexOf","indexB","priorityA","priorityB","localeCompare","map","_country$regions","regions","continent","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/SelectCountry/SelectCountry.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport { Autocomplete, HelpButton } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport countries, {\n prioritizedCountries,\n type CountryType,\n type CountryLang,\n} from '../../constants/countries'\nimport { useFieldProps } from '../../hooks'\nimport { FieldBlockWidth, FieldHelpProps, FieldProps } from '../../types'\nimport FieldBlock from '../../FieldBlock'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type CountryFilterSet =\n | 'Scandinavia'\n | 'Nordic'\n | 'Europe'\n | 'Prioritized'\n\nexport type Props = FieldHelpProps &\n FieldProps<string, undefined | string> & {\n countries?: CountryFilterSet\n\n // Styling\n width?: FieldBlockWidth\n\n /**\n * For internal use only.\n *\n * @param country\n * @returns boolean\n */\n filterCountries?: (country: CountryType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n }\n\nfunction SelectCountry(props: Props) {\n const sharedContext = useContext(SharedContext)\n const translations = useTranslation().SelectCountry\n const lang = sharedContext.locale?.split('-')[0] as CountryLang\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.errorRequired,\n })\n\n const defaultProps: Partial<Props> = {\n errorMessages,\n }\n const preparedProps: Props = {\n ...defaultProps,\n ...props,\n }\n\n const {\n className,\n placeholder = translations.placeholder,\n label = translations.label,\n countries: ccFilter = 'Prioritized',\n info,\n warning,\n error,\n hasError,\n disabled,\n value,\n width = 'large',\n help,\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n forceUpdate,\n filterCountries = ccFilter !== 'Prioritized'\n ? makeCountryFilterSet(ccFilter)\n : undefined,\n } = useFieldProps(preparedProps)\n\n const dataRef = React.useRef(null)\n const langRef = React.useRef(lang)\n const wasFilled = React.useRef(false)\n\n /**\n * We do not process the whole country list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the countrycode changes or lang changes.\n * We then update data set when value changes.\n */\n useMemo(() => {\n const isLangChange = lang !== langRef.current\n\n if (isLangChange || !wasFilled.current) {\n langRef.current = lang\n dataRef.current = getCountryData({\n lang,\n filter: !wasFilled.current\n ? (country) => country.iso === props.value\n : filterCountries,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n\n // To force Autocomplete to re-evaluate the internal data\n if (isLangChange && props.value && typeof window !== 'undefined') {\n updateValue(null)\n window.requestAnimationFrame(() => {\n updateValue(props.value)\n })\n }\n }\n }, [lang, filterCountries, ccFilter, updateValue, props.value])\n\n const handleCountryChange = useCallback(\n ({ data }: { data: { selectedKey: string } }) => {\n const newValue = data?.selectedKey\n const country = countries.find(({ iso }) => newValue === iso)\n if (country?.iso) {\n handleChange(country.iso, country)\n }\n },\n [handleChange]\n )\n\n const fillData = useCallback(() => {\n if (!wasFilled.current) {\n wasFilled.current = true\n dataRef.current = getCountryData({\n lang: langRef.current,\n filter: filterCountries,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n forceUpdate()\n }\n }, [ccFilter, filterCountries, forceUpdate])\n\n const onFocusHandler = useCallback(\n ({ updateData }) => {\n fillData()\n updateData(dataRef.current)\n handleFocus()\n },\n [fillData, handleFocus]\n )\n\n const onTypeHandler = useCallback(\n ({ value: currentValue, setHidden, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const search = currentValue.toLowerCase()\n const country = countries.find(({ i18n }) =>\n Object.values(i18n).some((s) => s.toLowerCase().includes(search))\n )\n if (country?.iso) {\n setHidden()\n handleChange(country.iso, country)\n }\n }\n },\n [handleChange]\n )\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-select-country', className)}\n width={width}\n info={info}\n warning={warning}\n error={error}\n {...pickSpacingProps(props)}\n >\n <Autocomplete\n placeholder={placeholder}\n label_direction=\"vertical\"\n label={label}\n input_icon={false}\n data={dataRef.current}\n value={value}\n disabled={disabled}\n on_show={fillData}\n on_focus={onFocusHandler}\n on_blur={handleBlur}\n on_change={handleCountryChange}\n on_type={onTypeHandler}\n stretch\n status={hasError ? 'error' : undefined}\n show_submit_button\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined\n }\n autoComplete=\"country-name\"\n no_animation={props.noAnimation}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\ntype GetCountryData = {\n lang?: CountryLang\n filter?: Props['filterCountries']\n sort?: Extract<CountryFilterSet, 'Prioritized'>\n makeObject?: (\n country: CountryType,\n lang: string\n ) => {\n selectedKey: string\n selected_value?: string\n content: string\n }\n}\n\nexport function getCountryData({\n lang = 'nb',\n filter = null,\n sort = null,\n makeObject = (country: CountryType, lang: string) => {\n const content = country.i18n[lang] ?? country.i18n.en\n return {\n selectedKey: country.iso,\n content,\n }\n },\n}: GetCountryData = {}) {\n return countries\n .filter((country) => {\n if (typeof filter === 'function') {\n return filter(country)\n }\n\n return !filter\n })\n .sort(({ i18n: a }, { i18n: b }) => {\n if (sort === 'Prioritized') {\n const indexA = prioritizedCountries.indexOf(a['en'])\n const indexB = prioritizedCountries.indexOf(b['en'])\n\n const priorityA = indexA !== -1\n const priorityB = indexB !== -1\n\n if (priorityA && priorityB) {\n return indexA - indexB\n } else if (priorityA) {\n return -1\n } else if (priorityB) {\n return 1\n }\n }\n\n return a[lang].localeCompare(b[lang])\n })\n .map((country) => makeObject(country, lang))\n}\n\nexport function makeCountryFilterSet(ccFilter: CountryFilterSet) {\n return (country: CountryType) => {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic':\n return country.regions?.includes(ccFilter)\n case 'Europe':\n return country.continent.includes(ccFilter)\n }\n return true\n }\n}\n\nSelectCountry._supportsSpacingProps = true\nexport default SelectCountry\n"],"mappings":"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"}
1
+ {"version":3,"file":"SelectCountry.js","names":["React","useCallback","useContext","useMemo","classnames","SharedContext","Autocomplete","HelpButton","pickSpacingProps","countries","prioritizedCountries","useFieldProps","FieldBlock","useErrorMessage","useTranslation","SelectCountry","props","_sharedContext$locale","sharedContext","translations","lang","locale","split","errorMessages","path","required","errorRequired","defaultProps","preparedProps","_objectSpread","className","placeholder","label","ccFilter","info","warning","error","hasError","disabled","value","width","help","htmlAttributes","handleFocus","handleBlur","handleChange","updateValue","forceUpdate","filterCountries","makeCountryFilterSet","undefined","dataRef","useRef","langRef","wasFilled","isLangChange","current","getCountryData","filter","country","iso","sort","window","requestAnimationFrame","handleCountryChange","data","newValue","selectedKey","find","fillData","onFocusHandler","updateData","onTypeHandler","currentValue","setHidden","event","_event$nativeEvent","nativeEvent","search","toLowerCase","i18n","Object","values","some","s","includes","createElement","_extends","label_direction","input_icon","on_show","on_focus","on_blur","on_change","on_type","stretch","status","show_submit_button","suffix","title","content","autoComplete","no_animation","noAnimation","makeObject","_country$i18n$lang","en","a","b","indexA","indexOf","indexB","priorityA","priorityB","localeCompare","map","_country$regions","regions","continent","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/SelectCountry/SelectCountry.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport SharedContext from '../../../../shared/Context'\nimport { Autocomplete, HelpButton } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport countries, {\n prioritizedCountries,\n type CountryType,\n type CountryLang,\n} from '../../constants/countries'\nimport { useFieldProps } from '../../hooks'\nimport { FieldBlockWidth, FieldHelpProps, FieldProps } from '../../types'\nimport FieldBlock from '../../FieldBlock'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type CountryFilterSet =\n | 'Scandinavia'\n | 'Nordic'\n | 'Europe'\n | 'Prioritized'\n\nexport type Props = FieldHelpProps &\n FieldProps<string, undefined | string> & {\n countries?: CountryFilterSet\n\n // Styling\n width?: FieldBlockWidth\n\n /**\n * For internal use only.\n *\n * @param country\n * @returns boolean\n */\n filterCountries?: (country: CountryType) => boolean\n\n /**\n * For internal testing purposes\n */\n noAnimation?: boolean\n }\n\nfunction SelectCountry(props: Props) {\n const sharedContext = useContext(SharedContext)\n const translations = useTranslation().SelectCountry\n const lang = sharedContext.locale?.split('-')[0] as CountryLang\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.errorRequired,\n })\n\n const defaultProps: Partial<Props> = {\n errorMessages,\n }\n const preparedProps: Props = {\n ...defaultProps,\n ...props,\n }\n\n const {\n className,\n placeholder = translations.placeholder,\n label = translations.label,\n countries: ccFilter = 'Prioritized',\n info,\n warning,\n error,\n hasError,\n disabled,\n value,\n width = 'large',\n help,\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n updateValue,\n forceUpdate,\n filterCountries = ccFilter !== 'Prioritized'\n ? makeCountryFilterSet(ccFilter)\n : undefined,\n } = useFieldProps(preparedProps)\n\n const dataRef = React.useRef(null)\n const langRef = React.useRef(lang)\n const wasFilled = React.useRef(false)\n\n /**\n * We do not process the whole country list at the first render.\n * Only when the Autocomplete opens (focus).\n * To achieve this, we use memo instead of effect to update refs in sync.\n *\n * We set or update the data list depending on if the countrycode changes or lang changes.\n * We then update data set when value changes.\n */\n useMemo(() => {\n const isLangChange = lang !== langRef.current\n\n if (isLangChange || !wasFilled.current) {\n langRef.current = lang\n dataRef.current = getCountryData({\n lang,\n filter: !wasFilled.current\n ? (country) => country.iso === value\n : filterCountries,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n\n // To force Autocomplete to re-evaluate the internal data\n if (isLangChange && value && typeof window !== 'undefined') {\n updateValue(null)\n window.requestAnimationFrame(() => {\n updateValue(value)\n })\n }\n }\n }, [lang, filterCountries, ccFilter, updateValue, value])\n\n const handleCountryChange = useCallback(\n ({ data }: { data: { selectedKey: string } }) => {\n const newValue = data?.selectedKey\n const country = countries.find(({ iso }) => newValue === iso)\n if (country?.iso) {\n handleChange(country.iso, country)\n }\n },\n [handleChange]\n )\n\n const fillData = useCallback(() => {\n if (!wasFilled.current) {\n wasFilled.current = true\n dataRef.current = getCountryData({\n lang: langRef.current,\n filter: filterCountries,\n sort: ccFilter as Extract<CountryFilterSet, 'Prioritized'>,\n })\n forceUpdate()\n }\n }, [ccFilter, filterCountries, forceUpdate])\n\n const onFocusHandler = useCallback(\n ({ updateData }) => {\n fillData()\n updateData(dataRef.current)\n handleFocus()\n },\n [fillData, handleFocus]\n )\n\n const onTypeHandler = useCallback(\n ({ value: currentValue, setHidden, event }) => {\n // Handle browser autofill/autocomplete\n if (typeof event?.nativeEvent?.data === 'undefined') {\n const search = currentValue.toLowerCase()\n const country = countries.find(({ i18n }) =>\n Object.values(i18n).some((s) => s.toLowerCase().includes(search))\n )\n if (country?.iso) {\n setHidden()\n handleChange(country.iso, country)\n }\n }\n },\n [handleChange]\n )\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-select-country', className)}\n width={width}\n info={info}\n warning={warning}\n error={error}\n {...pickSpacingProps(props)}\n >\n <Autocomplete\n placeholder={placeholder}\n label_direction=\"vertical\"\n label={label}\n input_icon={false}\n data={dataRef.current}\n value={value}\n disabled={disabled}\n on_show={fillData}\n on_focus={onFocusHandler}\n on_blur={handleBlur}\n on_change={handleCountryChange}\n on_type={onTypeHandler}\n stretch\n status={hasError ? 'error' : undefined}\n show_submit_button\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined\n }\n autoComplete=\"country-name\"\n no_animation={props.noAnimation}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\ntype GetCountryData = {\n lang?: CountryLang\n filter?: Props['filterCountries']\n sort?: Extract<CountryFilterSet, 'Prioritized'>\n makeObject?: (\n country: CountryType,\n lang: string\n ) => {\n selectedKey: string\n selected_value?: string\n content: string\n }\n}\n\nexport function getCountryData({\n lang = 'nb',\n filter = null,\n sort = null,\n makeObject = (country: CountryType, lang: string) => {\n const content = country.i18n[lang] ?? country.i18n.en\n return {\n selectedKey: country.iso,\n content,\n }\n },\n}: GetCountryData = {}) {\n return countries\n .filter((country) => {\n if (typeof filter === 'function') {\n return filter(country)\n }\n\n return !filter\n })\n .sort(({ i18n: a }, { i18n: b }) => {\n if (sort === 'Prioritized') {\n const indexA = prioritizedCountries.indexOf(a['en'])\n const indexB = prioritizedCountries.indexOf(b['en'])\n\n const priorityA = indexA !== -1\n const priorityB = indexB !== -1\n\n if (priorityA && priorityB) {\n return indexA - indexB\n } else if (priorityA) {\n return -1\n } else if (priorityB) {\n return 1\n }\n }\n\n return a[lang].localeCompare(b[lang])\n })\n .map((country) => makeObject(country, lang))\n}\n\nexport function makeCountryFilterSet(ccFilter: CountryFilterSet) {\n return (country: CountryType) => {\n switch (ccFilter) {\n case 'Scandinavia':\n case 'Nordic':\n return country.regions?.includes(ccFilter)\n case 'Europe':\n return country.continent.includes(ccFilter)\n }\n return true\n }\n}\n\nSelectCountry._supportsSpacingProps = true\nexport default SelectCountry\n"],"mappings":"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"}
@@ -66,7 +66,7 @@ function Selection(props) {
66
66
  setHasFocus(false, data === null || data === void 0 ? void 0 : data.selectedKey);
67
67
  }, [setHasFocus]);
68
68
  const cn = classnames(`dnb-forms-field-selection dnb-forms-field-selection__variant--${variant} dnb-forms-field-selection__options-layout--${optionsLayout}`, className);
69
- const fieldBlockProps = _objectSpread(_objectSpread({
69
+ const fieldSectionProps = _objectSpread(_objectSpread({
70
70
  forId: id,
71
71
  className: cn
72
72
  }, pickSpacingProps(props)), {}, {
@@ -101,7 +101,7 @@ function Selection(props) {
101
101
  }, rest);
102
102
  });
103
103
  const Component = variant === 'radio' ? Radio : ToggleButton;
104
- return React.createElement(FieldBlock, fieldBlockProps, React.createElement(Component.Group, {
104
+ return React.createElement(FieldBlock, fieldSectionProps, React.createElement(Component.Group, {
105
105
  className: cn,
106
106
  layout_direction: optionsLayout === 'horizontal' ? 'row' : 'column',
107
107
  disabled: disabled,
@@ -145,7 +145,7 @@ function Selection(props) {
145
145
  on_hide: handleHide,
146
146
  stretch: true
147
147
  });
148
- return React.createElement(FieldBlock, _extends({}, fieldBlockProps, {
148
+ return React.createElement(FieldBlock, _extends({}, fieldSectionProps, {
149
149
  width: width
150
150
  }), variant === 'autocomplete' ? React.createElement(Autocomplete, _extends({}, sharedProps, autocompleteProps ? convertCamelCaseProps(autocompleteProps) : null)) : React.createElement(Dropdown, _extends({}, sharedProps, dropdownProps ? convertCamelCaseProps(dropdownProps) : null)));
151
151
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Selection.js","names":["React","useMemo","useCallback","classnames","makeUniqueId","ToggleButton","Dropdown","Radio","HelpButton","Autocomplete","OptionField","makeOptions","useFieldProps","pickSpacingProps","FieldBlock","FormError","convertCamelCaseProps","Selection","props","clearValue","id","className","variant","label","labelDescription","layout","optionsLayout","placeholder","value","info","warning","error","hasError","disabled","help","emptyValue","width","htmlAttributes","setHasFocus","handleChange","children","data","autocompleteProps","dropdownProps","handleDropdownChange","selectedKey","onChangeHandler","undefined","handleShow","handleHide","cn","fieldBlockProps","_objectSpread","forId","getStatus","_error$message","message","Error","toString","status","options","Children","toArray","filter","child","isValidElement","type","map","option","_option$props","title","rest","_objectWithoutProperties","_excluded","Component","createElement","Group","layout_direction","on_change","String","i","_excluded2","_extends","length","key","text","sharedProps","list_class","portal_class","suffix","content","on_show","on_hide","stretch","_supportsSpacingProps"],"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: { 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 fieldBlockProps = {\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, children, ...rest } = option.props\n const status = getStatus(error)\n\n return {\n title: title ?? children,\n status,\n ...rest,\n }\n })\n\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n return (\n <FieldBlock {...fieldBlockProps}>\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 {...fieldBlockProps} 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":"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"}
1
+ {"version":3,"file":"Selection.js","names":["React","useMemo","useCallback","classnames","makeUniqueId","ToggleButton","Dropdown","Radio","HelpButton","Autocomplete","OptionField","makeOptions","useFieldProps","pickSpacingProps","FieldBlock","FormError","convertCamelCaseProps","Selection","props","clearValue","id","className","variant","label","labelDescription","layout","optionsLayout","placeholder","value","info","warning","error","hasError","disabled","help","emptyValue","width","htmlAttributes","setHasFocus","handleChange","children","data","autocompleteProps","dropdownProps","handleDropdownChange","selectedKey","onChangeHandler","undefined","handleShow","handleHide","cn","fieldSectionProps","_objectSpread","forId","getStatus","_error$message","message","Error","toString","status","options","Children","toArray","filter","child","isValidElement","type","map","option","_option$props","title","rest","_objectWithoutProperties","_excluded","Component","createElement","Group","layout_direction","on_change","String","i","_excluded2","_extends","length","key","text","sharedProps","list_class","portal_class","suffix","content","on_show","on_hide","stretch","_supportsSpacingProps"],"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: { 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, children, ...rest } = option.props\n const status = getStatus(error)\n\n return {\n title: title ?? children,\n status,\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":"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"}
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ import { FieldBlockWidth, FieldHelpProps, FieldProps, Path } from '../../types';
3
+ import { SliderProps } from '../../../../components/Slider';
4
+ export type SliderVisibilityEvent = React.MouseEvent<HTMLButtonElement> & {
5
+ value: string;
6
+ };
7
+ export type SliderValue = number | Array<number>;
8
+ export type Props = FieldHelpProps & FieldProps<SliderValue> & {
9
+ /**
10
+ * Define an array with JSON Pointers for multiple thumb buttons.
11
+ */
12
+ paths?: Array<Path>;
13
+ step?: SliderProps['step'] | Path;
14
+ min?: SliderProps['min'] | Path;
15
+ max?: SliderProps['max'] | Path;
16
+ vertical?: SliderProps['vertical'];
17
+ reverse?: SliderProps['reverse'];
18
+ hideButtons?: SliderProps['hideButtons'];
19
+ multiThumbBehavior?: SliderProps['multiThumbBehavior'];
20
+ thumbTitle?: SliderProps['thumbTitle'];
21
+ subtractTitle?: SliderProps['subtractTitle'];
22
+ addTitle?: SliderProps['addTitle'];
23
+ numberFormat?: SliderProps['numberFormat'];
24
+ tooltip?: SliderProps['tooltip'];
25
+ alwaysShowTooltip?: SliderProps['alwaysShowTooltip'];
26
+ extensions?: SliderProps['extensions'];
27
+ /** Styling */
28
+ width?: FieldBlockWidth;
29
+ };
30
+ declare function SliderComponent(props: Props): import("react/jsx-runtime").JSX.Element;
31
+ declare namespace SliderComponent {
32
+ var _supportsSpacingProps: boolean;
33
+ }
34
+ export default SliderComponent;
@@ -0,0 +1,103 @@
1
+ "use client";
2
+
3
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
+ 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; }
5
+ 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; }
6
+ import React, { useCallback, useContext, useRef } from 'react';
7
+ import FieldBlock from '../../FieldBlock';
8
+ import { useFieldProps } from '../../hooks';
9
+ import Slider from '../../../../components/Slider';
10
+ import { pickSpacingProps } from '../../../../components/flex/utils';
11
+ import { HelpButton } from '../../../../components';
12
+ import DataContext from '../../DataContext/Context';
13
+ import useDataValue from '../../hooks/useDataValue';
14
+ function SliderComponent(props) {
15
+ var _ref, _props$paths;
16
+ const dataContextRef = useRef();
17
+ dataContextRef.current = useContext(DataContext);
18
+ const {
19
+ getValue
20
+ } = useDataValue();
21
+ const getValues = useCallback(source => {
22
+ if (Array.isArray(source)) {
23
+ return source.map(s => getValue(s) || 0);
24
+ }
25
+ return getValue(source) || 0;
26
+ }, [getValue]);
27
+ const value = getValues((_ref = (_props$paths = props.paths) !== null && _props$paths !== void 0 ? _props$paths : props.path) !== null && _ref !== void 0 ? _ref : props.value);
28
+ const preparedProps = _objectSpread(_objectSpread({}, props), {}, {
29
+ step: getValue(props.step),
30
+ min: getValue(props.min),
31
+ max: getValue(props.max)
32
+ });
33
+ const {
34
+ id,
35
+ step = 1,
36
+ min = 0,
37
+ max = 100,
38
+ width = 'stretch',
39
+ layout,
40
+ label,
41
+ help,
42
+ labelDescription,
43
+ info,
44
+ warning,
45
+ error,
46
+ hasError,
47
+ disabled,
48
+ handleChange,
49
+ handleFocus,
50
+ handleBlur
51
+ } = useFieldProps(preparedProps);
52
+ const handleLocalChange = useCallback(({
53
+ value
54
+ }) => {
55
+ if (Array.isArray(props.paths) && Array.isArray(value)) {
56
+ value.forEach((value, i) => {
57
+ dataContextRef.current.updateDataValue(props.paths[i], value);
58
+ });
59
+ }
60
+ handleChange === null || handleChange === void 0 ? void 0 : handleChange(value);
61
+ }, [handleChange, props.paths]);
62
+ const fieldSectionProps = _objectSpread({
63
+ forId: id,
64
+ layout,
65
+ label,
66
+ labelDescription,
67
+ info,
68
+ warning,
69
+ error,
70
+ disabled,
71
+ width
72
+ }, pickSpacingProps(props));
73
+ const sliderProps = {
74
+ value,
75
+ step,
76
+ min,
77
+ max,
78
+ disabled,
79
+ status: hasError ? 'error' : undefined,
80
+ suffix: help ? React.createElement(HelpButton, {
81
+ title: help.title
82
+ }, help.content) : undefined,
83
+ on_change: handleLocalChange,
84
+ on_drag_start: handleFocus,
85
+ on_drag_end: handleBlur,
86
+ vertical: props.vertical,
87
+ reverse: props.reverse,
88
+ hideButtons: props.hideButtons,
89
+ multiThumbBehavior: props.multiThumbBehavior,
90
+ thumbTitle: props.thumbTitle,
91
+ subtractTitle: props.subtractTitle,
92
+ addTitle: props.addTitle,
93
+ numberFormat: props.numberFormat,
94
+ tooltip: props.tooltip,
95
+ alwaysShowTooltip: props.alwaysShowTooltip,
96
+ extensions: props.extensions,
97
+ stretch: true
98
+ };
99
+ return React.createElement(FieldBlock, fieldSectionProps, React.createElement(Slider, sliderProps));
100
+ }
101
+ export default SliderComponent;
102
+ SliderComponent._supportsSpacingProps = true;
103
+ //# sourceMappingURL=Slider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slider.js","names":["React","useCallback","useContext","useRef","FieldBlock","useFieldProps","Slider","pickSpacingProps","HelpButton","DataContext","useDataValue","SliderComponent","props","_ref","_props$paths","dataContextRef","current","getValue","getValues","source","Array","isArray","map","s","value","paths","path","preparedProps","_objectSpread","step","min","max","id","width","layout","label","help","labelDescription","info","warning","error","hasError","disabled","handleChange","handleFocus","handleBlur","handleLocalChange","forEach","i","updateDataValue","fieldSectionProps","forId","sliderProps","status","undefined","suffix","createElement","title","content","on_change","on_drag_start","on_drag_end","vertical","reverse","hideButtons","multiThumbBehavior","thumbTitle","subtractTitle","addTitle","numberFormat","tooltip","alwaysShowTooltip","extensions","stretch","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Slider/Slider.tsx"],"sourcesContent":["import React, { useCallback, useContext, useRef } from 'react'\nimport FieldBlock, { Props as FieldSectionProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldBlockWidth,\n FieldHelpProps,\n FieldProps,\n Path,\n} from '../../types'\nimport Slider, { SliderProps } from '../../../../components/Slider'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { HelpButton } from '../../../../components'\nimport DataContext, { ContextState } from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\n\nexport type SliderVisibilityEvent = React.MouseEvent<HTMLButtonElement> & {\n value: string\n}\n\nexport type SliderValue = number | Array<number>\nexport type Props = FieldHelpProps &\n FieldProps<SliderValue> & {\n /**\n * Define an array with JSON Pointers for multiple thumb buttons.\n */\n paths?: Array<Path>\n step?: SliderProps['step'] | Path\n min?: SliderProps['min'] | Path\n max?: SliderProps['max'] | Path\n vertical?: SliderProps['vertical']\n reverse?: SliderProps['reverse']\n hideButtons?: SliderProps['hideButtons']\n multiThumbBehavior?: SliderProps['multiThumbBehavior']\n thumbTitle?: SliderProps['thumbTitle']\n subtractTitle?: SliderProps['subtractTitle']\n addTitle?: SliderProps['addTitle']\n numberFormat?: SliderProps['numberFormat']\n tooltip?: SliderProps['tooltip']\n alwaysShowTooltip?: SliderProps['alwaysShowTooltip']\n extensions?: SliderProps['extensions']\n\n /** Styling */\n width?: FieldBlockWidth\n }\n\nfunction SliderComponent(props: Props) {\n const dataContextRef = useRef<ContextState>()\n dataContextRef.current = useContext<ContextState>(DataContext)\n\n const { getValue } = useDataValue()\n const getValues = useCallback(\n (source: SliderValue | Path | Array<Path>) => {\n if (Array.isArray(source)) {\n return source.map((s) => getValue(s) || 0)\n }\n\n return getValue(source) || 0\n },\n [getValue]\n )\n\n const value = getValues(props.paths ?? props.path ?? props.value)\n const preparedProps = {\n ...props,\n step: getValue(props.step),\n min: getValue(props.min),\n max: getValue(props.max),\n }\n\n const {\n id,\n step = 1,\n min = 0,\n max = 100,\n width = 'stretch',\n layout,\n label,\n help,\n labelDescription,\n info,\n warning,\n error,\n hasError,\n disabled,\n handleChange,\n handleFocus,\n handleBlur,\n } = useFieldProps(preparedProps)\n\n const handleLocalChange = useCallback(\n ({ value }: { value: number | number[] }) => {\n if (Array.isArray(props.paths) && Array.isArray(value)) {\n value.forEach((value, i) => {\n dataContextRef.current.updateDataValue(props.paths[i], value)\n })\n }\n\n handleChange?.(value)\n },\n [handleChange, props.paths]\n )\n\n const fieldSectionProps: FieldSectionProps = {\n forId: id,\n layout,\n label,\n labelDescription,\n info,\n warning,\n error,\n disabled,\n width,\n ...pickSpacingProps(props),\n }\n\n const sliderProps: SliderProps = {\n value,\n step,\n min,\n max,\n disabled,\n status: hasError ? 'error' : undefined,\n suffix: help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n on_change: handleLocalChange,\n on_drag_start: handleFocus,\n on_drag_end: handleBlur,\n vertical: props.vertical,\n reverse: props.reverse,\n hideButtons: props.hideButtons,\n multiThumbBehavior: props.multiThumbBehavior,\n thumbTitle: props.thumbTitle,\n subtractTitle: props.subtractTitle,\n addTitle: props.addTitle,\n numberFormat: props.numberFormat,\n tooltip: props.tooltip,\n alwaysShowTooltip: props.alwaysShowTooltip,\n extensions: props.extensions,\n stretch: true,\n }\n\n return (\n <FieldBlock {...fieldSectionProps}>\n <Slider {...sliderProps} />\n </FieldBlock>\n )\n}\n\nexport default SliderComponent\n\nSliderComponent._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { PropertiesTableProps } from '../../../../shared/types';
2
+ export declare const SliderFieldProperties: PropertiesTableProps;
3
+ export declare const SliderFieldEvents: PropertiesTableProps;
@@ -0,0 +1,26 @@
1
+ import { SliderProperties } from '../../../../components/slider/SliderDocs';
2
+ export const SliderFieldProperties = {
3
+ paths: {
4
+ doc: 'Define an array with JSON Pointer paths for multiple thumb buttons.',
5
+ type: 'Array<string>',
6
+ status: 'required'
7
+ },
8
+ min: SliderProperties.min,
9
+ max: SliderProperties.max,
10
+ step: SliderProperties.step,
11
+ vertical: SliderProperties.vertical,
12
+ reverse: SliderProperties.reverse,
13
+ stretch: SliderProperties.stretch,
14
+ hideButtons: SliderProperties.hideButtons,
15
+ multiThumbBehavior: SliderProperties.multiThumbBehavior,
16
+ thumbTitle: SliderProperties.thumbTitle,
17
+ subtractTitle: SliderProperties.subtractTitle,
18
+ addTitle: SliderProperties.addTitle,
19
+ numberFormat: SliderProperties.numberFormat,
20
+ tooltip: SliderProperties.tooltip,
21
+ alwaysShowTooltip: SliderProperties.alwaysShowTooltip,
22
+ extensions: SliderProperties.extensions,
23
+ '[Space](/uilib/layout/space/properties)': SliderProperties['[Space](/uilib/layout/space/properties)']
24
+ };
25
+ export const SliderFieldEvents = {};
26
+ //# sourceMappingURL=SliderDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SliderDocs.js","names":["SliderProperties","SliderFieldProperties","paths","doc","type","status","min","max","step","vertical","reverse","stretch","hideButtons","multiThumbBehavior","thumbTitle","subtractTitle","addTitle","numberFormat","tooltip","alwaysShowTooltip","extensions","SliderFieldEvents"],"sources":["../../../../../../src/extensions/forms/Field/Slider/SliderDocs.ts"],"sourcesContent":["import { SliderProperties } from '../../../../components/slider/SliderDocs'\nimport { PropertiesTableProps } from '../../../../shared/types'\n\nexport const SliderFieldProperties: PropertiesTableProps = {\n paths: {\n doc: 'Define an array with JSON Pointer paths for multiple thumb buttons.',\n type: 'Array<string>',\n status: 'required',\n },\n min: SliderProperties.min,\n max: SliderProperties.max,\n step: SliderProperties.step,\n vertical: SliderProperties.vertical,\n reverse: SliderProperties.reverse,\n stretch: SliderProperties.stretch,\n hideButtons: SliderProperties.hideButtons,\n multiThumbBehavior: SliderProperties.multiThumbBehavior,\n thumbTitle: SliderProperties.thumbTitle,\n subtractTitle: SliderProperties.subtractTitle,\n addTitle: SliderProperties.addTitle,\n numberFormat: SliderProperties.numberFormat,\n tooltip: SliderProperties.tooltip,\n alwaysShowTooltip: SliderProperties.alwaysShowTooltip,\n extensions: SliderProperties.extensions,\n '[Space](/uilib/layout/space/properties)':\n SliderProperties['[Space](/uilib/layout/space/properties)'],\n}\n\nexport const SliderFieldEvents: PropertiesTableProps = {}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,0CAA0C;AAG3E,OAAO,MAAMC,qBAA2C,GAAG;EACzDC,KAAK,EAAE;IACLC,GAAG,EAAE,qEAAqE;IAC1EC,IAAI,EAAE,eAAe;IACrBC,MAAM,EAAE;EACV,CAAC;EACDC,GAAG,EAAEN,gBAAgB,CAACM,GAAG;EACzBC,GAAG,EAAEP,gBAAgB,CAACO,GAAG;EACzBC,IAAI,EAAER,gBAAgB,CAACQ,IAAI;EAC3BC,QAAQ,EAAET,gBAAgB,CAACS,QAAQ;EACnCC,OAAO,EAAEV,gBAAgB,CAACU,OAAO;EACjCC,OAAO,EAAEX,gBAAgB,CAACW,OAAO;EACjCC,WAAW,EAAEZ,gBAAgB,CAACY,WAAW;EACzCC,kBAAkB,EAAEb,gBAAgB,CAACa,kBAAkB;EACvDC,UAAU,EAAEd,gBAAgB,CAACc,UAAU;EACvCC,aAAa,EAAEf,gBAAgB,CAACe,aAAa;EAC7CC,QAAQ,EAAEhB,gBAAgB,CAACgB,QAAQ;EACnCC,YAAY,EAAEjB,gBAAgB,CAACiB,YAAY;EAC3CC,OAAO,EAAElB,gBAAgB,CAACkB,OAAO;EACjCC,iBAAiB,EAAEnB,gBAAgB,CAACmB,iBAAiB;EACrDC,UAAU,EAAEpB,gBAAgB,CAACoB,UAAU;EACvC,yCAAyC,EACvCpB,gBAAgB,CAAC,yCAAyC;AAC9D,CAAC;AAED,OAAO,MAAMqB,iBAAuC,GAAG,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default } from './Slider';
2
+ export * from './Slider';
@@ -0,0 +1,3 @@
1
+ export { default } from './Slider';
2
+ export * from './Slider';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["default"],"sources":["../../../../../../src/extensions/forms/Field/Slider/index.ts"],"sourcesContent":["export { default } from './Slider'\nexport * from './Slider'\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,UAAU;AAClC,cAAc,UAAU"}
@@ -159,7 +159,7 @@ function StringComponent(props) {
159
159
  submit_element: submitElement,
160
160
  keep_placeholder: keepPlaceholder
161
161
  };
162
- const fieldBlockProps = _objectSpread({
162
+ const fieldSectionProps = _objectSpread({
163
163
  className: classnames('dnb-forms-field-string', className),
164
164
  forId: id,
165
165
  layout,
@@ -172,7 +172,7 @@ function StringComponent(props) {
172
172
  width: width === 'stretch' || fieldBlockContext !== null && fieldBlockContext !== void 0 && fieldBlockContext.composition ? width : undefined,
173
173
  contentWidth: width !== false ? width : undefined
174
174
  }, pickSpacingProps(props));
175
- return React.createElement(FieldBlock, fieldBlockProps, multiline ? React.createElement(Textarea, _extends({}, sharedProps, textareaProps)) : mask ? React.createElement(InputMasked, _extends({}, sharedProps, inputProps, {
175
+ return React.createElement(FieldBlock, fieldSectionProps, multiline ? React.createElement(Textarea, _extends({}, sharedProps, textareaProps)) : mask ? React.createElement(InputMasked, _extends({}, sharedProps, inputProps, {
176
176
  mask: mask
177
177
  })) : React.createElement(Input, _extends({}, sharedProps, inputProps)));
178
178
  }