@dnb/eufemia 10.30.2 → 10.31.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 (294) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/cjs/components/checkbox/CheckIcon.d.ts +1 -1
  3. package/cjs/components/checkbox/CheckIcon.js +4 -9
  4. package/cjs/components/checkbox/CheckIcon.js.map +1 -1
  5. package/cjs/components/checkbox/Checkbox.d.ts +4 -0
  6. package/cjs/components/checkbox/Checkbox.js +9 -3
  7. package/cjs/components/checkbox/Checkbox.js.map +1 -1
  8. package/cjs/components/checkbox/CheckboxDocs.js +10 -5
  9. package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
  10. package/cjs/components/checkbox/style/dnb-checkbox.css +96 -16
  11. package/cjs/components/checkbox/style/dnb-checkbox.min.css +1 -1
  12. package/cjs/components/checkbox/style/dnb-checkbox.scss +158 -22
  13. package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.css +22 -2
  14. package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.min.css +4 -2
  15. package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.scss +28 -2
  16. package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-ui.css +20 -2
  17. package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-ui.min.css +5 -1
  18. package/cjs/components/checkbox/style/themes/dnb-checkbox-theme-ui.scss +25 -2
  19. package/cjs/components/height-animation/HeightAnimationInstance.js +6 -1
  20. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  21. package/cjs/components/modal/Modal.d.ts +2 -0
  22. package/cjs/components/modal/Modal.js +10 -3
  23. package/cjs/components/modal/Modal.js.map +1 -1
  24. package/cjs/extensions/forms/DataContext/Context.d.ts +2 -1
  25. package/cjs/extensions/forms/DataContext/Context.js +0 -1
  26. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  27. package/cjs/extensions/forms/DataContext/Provider/Provider.js +2 -1
  28. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  29. package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +12 -2
  30. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  31. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.d.ts +2 -0
  32. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js +25 -0
  33. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -0
  34. package/cjs/extensions/forms/Field/FieldDocs.js +1 -1
  35. package/cjs/extensions/forms/Field/FieldDocs.js.map +1 -1
  36. package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.d.ts +16 -0
  37. package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.js +53 -0
  38. package/cjs/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -0
  39. package/cjs/extensions/forms/Field/Indeterminate/IndeterminateDocs.d.ts +2 -0
  40. package/cjs/extensions/forms/Field/Indeterminate/IndeterminateDocs.js +38 -0
  41. package/cjs/extensions/forms/Field/Indeterminate/IndeterminateDocs.js.map +1 -0
  42. package/cjs/extensions/forms/Field/Indeterminate/index.d.ts +2 -0
  43. package/cjs/extensions/forms/Field/Indeterminate/index.js +27 -0
  44. package/cjs/extensions/forms/Field/Indeterminate/index.js.map +1 -0
  45. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.d.ts +6 -0
  46. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js +81 -0
  47. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -0
  48. package/cjs/extensions/forms/Field/Name/NameDocs.js +1 -7
  49. package/cjs/extensions/forms/Field/Name/NameDocs.js.map +1 -1
  50. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  51. package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +2 -1
  52. package/cjs/extensions/forms/Field/Toggle/Toggle.js +2 -2
  53. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  54. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.d.ts +2 -0
  55. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js +35 -0
  56. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -0
  57. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  58. package/cjs/extensions/forms/Field/index.js +7 -0
  59. package/cjs/extensions/forms/Field/index.js.map +1 -1
  60. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +1 -0
  61. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +24 -16
  62. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  63. package/cjs/extensions/forms/Form/Handler/Handler.js +2 -2
  64. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  65. package/cjs/extensions/forms/Form/Handler/HandlerDocs.js +5 -0
  66. package/cjs/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -1
  67. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +6 -2
  68. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  69. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +4 -0
  70. package/cjs/extensions/forms/Wizard/Step/Step.js +7 -2
  71. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  72. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  73. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  74. package/cjs/extensions/forms/hooks/useFieldProps.js +1 -1
  75. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  76. package/cjs/extensions/forms/types.d.ts +5 -0
  77. package/cjs/extensions/forms/types.js.map +1 -1
  78. package/cjs/shared/Eufemia.d.ts +1 -1
  79. package/cjs/shared/Eufemia.js +2 -2
  80. package/cjs/shared/Eufemia.js.map +1 -1
  81. package/cjs/style/core/scopes.scss +1 -1
  82. package/cjs/style/dnb-ui-basis.css +1 -1
  83. package/cjs/style/dnb-ui-basis.min.css +1 -1
  84. package/cjs/style/dnb-ui-body.css +1 -1
  85. package/cjs/style/dnb-ui-body.min.css +1 -1
  86. package/cjs/style/dnb-ui-components.css +96 -16
  87. package/cjs/style/dnb-ui-components.min.css +1 -1
  88. package/cjs/style/dnb-ui-core.css +1 -1
  89. package/cjs/style/dnb-ui-core.min.css +1 -1
  90. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +116 -18
  91. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -2
  92. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +118 -18
  93. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +5 -3
  94. package/cjs/style/themes/theme-ui/ui-theme-components.css +116 -18
  95. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +6 -2
  96. package/components/checkbox/CheckIcon.d.ts +1 -1
  97. package/components/checkbox/CheckIcon.js +4 -8
  98. package/components/checkbox/CheckIcon.js.map +1 -1
  99. package/components/checkbox/Checkbox.d.ts +4 -0
  100. package/components/checkbox/Checkbox.js +9 -3
  101. package/components/checkbox/Checkbox.js.map +1 -1
  102. package/components/checkbox/CheckboxDocs.js +10 -5
  103. package/components/checkbox/CheckboxDocs.js.map +1 -1
  104. package/components/checkbox/style/dnb-checkbox.css +96 -16
  105. package/components/checkbox/style/dnb-checkbox.min.css +1 -1
  106. package/components/checkbox/style/dnb-checkbox.scss +158 -22
  107. package/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.css +22 -2
  108. package/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.min.css +4 -2
  109. package/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.scss +28 -2
  110. package/components/checkbox/style/themes/dnb-checkbox-theme-ui.css +20 -2
  111. package/components/checkbox/style/themes/dnb-checkbox-theme-ui.min.css +5 -1
  112. package/components/checkbox/style/themes/dnb-checkbox-theme-ui.scss +25 -2
  113. package/components/height-animation/HeightAnimationInstance.js +6 -1
  114. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  115. package/components/modal/Modal.d.ts +2 -0
  116. package/components/modal/Modal.js +10 -3
  117. package/components/modal/Modal.js.map +1 -1
  118. package/es/components/checkbox/CheckIcon.d.ts +1 -1
  119. package/es/components/checkbox/CheckIcon.js +5 -10
  120. package/es/components/checkbox/CheckIcon.js.map +1 -1
  121. package/es/components/checkbox/Checkbox.d.ts +4 -0
  122. package/es/components/checkbox/Checkbox.js +9 -3
  123. package/es/components/checkbox/Checkbox.js.map +1 -1
  124. package/es/components/checkbox/CheckboxDocs.js +10 -5
  125. package/es/components/checkbox/CheckboxDocs.js.map +1 -1
  126. package/es/components/checkbox/style/dnb-checkbox.css +96 -16
  127. package/es/components/checkbox/style/dnb-checkbox.min.css +1 -1
  128. package/es/components/checkbox/style/dnb-checkbox.scss +158 -22
  129. package/es/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.css +22 -2
  130. package/es/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.min.css +4 -2
  131. package/es/components/checkbox/style/themes/dnb-checkbox-theme-sbanken.scss +28 -2
  132. package/es/components/checkbox/style/themes/dnb-checkbox-theme-ui.css +20 -2
  133. package/es/components/checkbox/style/themes/dnb-checkbox-theme-ui.min.css +5 -1
  134. package/es/components/checkbox/style/themes/dnb-checkbox-theme-ui.scss +25 -2
  135. package/es/components/height-animation/HeightAnimationInstance.js +6 -1
  136. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  137. package/es/components/modal/Modal.d.ts +2 -0
  138. package/es/components/modal/Modal.js +10 -3
  139. package/es/components/modal/Modal.js.map +1 -1
  140. package/es/extensions/forms/DataContext/Context.d.ts +2 -1
  141. package/es/extensions/forms/DataContext/Context.js +0 -1
  142. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  143. package/es/extensions/forms/DataContext/Provider/Provider.js +2 -1
  144. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  145. package/es/extensions/forms/Field/Boolean/Boolean.d.ts +12 -2
  146. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  147. package/es/extensions/forms/Field/Boolean/BooleanDocs.d.ts +2 -0
  148. package/es/extensions/forms/Field/Boolean/BooleanDocs.js +18 -0
  149. package/es/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -0
  150. package/es/extensions/forms/Field/FieldDocs.js +2 -2
  151. package/es/extensions/forms/Field/FieldDocs.js.map +1 -1
  152. package/es/extensions/forms/Field/Indeterminate/Indeterminate.d.ts +16 -0
  153. package/es/extensions/forms/Field/Indeterminate/Indeterminate.js +43 -0
  154. package/es/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -0
  155. package/es/extensions/forms/Field/Indeterminate/IndeterminateDocs.d.ts +2 -0
  156. package/es/extensions/forms/Field/Indeterminate/IndeterminateDocs.js +29 -0
  157. package/es/extensions/forms/Field/Indeterminate/IndeterminateDocs.js.map +1 -0
  158. package/es/extensions/forms/Field/Indeterminate/index.d.ts +2 -0
  159. package/es/extensions/forms/Field/Indeterminate/index.js +3 -0
  160. package/es/extensions/forms/Field/Indeterminate/index.js.map +1 -0
  161. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.d.ts +6 -0
  162. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js +74 -0
  163. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -0
  164. package/es/extensions/forms/Field/Name/NameDocs.js +1 -8
  165. package/es/extensions/forms/Field/Name/NameDocs.js.map +1 -1
  166. package/es/extensions/forms/Field/String/String.js.map +1 -1
  167. package/es/extensions/forms/Field/Toggle/Toggle.d.ts +2 -1
  168. package/es/extensions/forms/Field/Toggle/Toggle.js +2 -2
  169. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  170. package/es/extensions/forms/Field/Toggle/ToggleDocs.d.ts +2 -0
  171. package/es/extensions/forms/Field/Toggle/ToggleDocs.js +28 -0
  172. package/es/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -0
  173. package/es/extensions/forms/Field/index.d.ts +1 -0
  174. package/es/extensions/forms/Field/index.js +1 -0
  175. package/es/extensions/forms/Field/index.js.map +1 -1
  176. package/es/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +1 -0
  177. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +20 -15
  178. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  179. package/es/extensions/forms/Form/Handler/Handler.js +2 -2
  180. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  181. package/es/extensions/forms/Form/Handler/HandlerDocs.js +5 -0
  182. package/es/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -1
  183. package/es/extensions/forms/Wizard/Container/WizardContainer.js +6 -2
  184. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  185. package/es/extensions/forms/Wizard/Step/Step.d.ts +4 -0
  186. package/es/extensions/forms/Wizard/Step/Step.js +7 -2
  187. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  188. package/es/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  189. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  190. package/es/extensions/forms/hooks/useFieldProps.js +1 -1
  191. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  192. package/es/extensions/forms/types.d.ts +5 -0
  193. package/es/extensions/forms/types.js.map +1 -1
  194. package/es/shared/Eufemia.d.ts +1 -1
  195. package/es/shared/Eufemia.js +2 -2
  196. package/es/shared/Eufemia.js.map +1 -1
  197. package/es/style/core/scopes.scss +1 -1
  198. package/es/style/dnb-ui-basis.css +1 -1
  199. package/es/style/dnb-ui-basis.min.css +1 -1
  200. package/es/style/dnb-ui-body.css +1 -1
  201. package/es/style/dnb-ui-body.min.css +1 -1
  202. package/es/style/dnb-ui-components.css +96 -16
  203. package/es/style/dnb-ui-components.min.css +1 -1
  204. package/es/style/dnb-ui-core.css +1 -1
  205. package/es/style/dnb-ui-core.min.css +1 -1
  206. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +116 -18
  207. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -2
  208. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +118 -18
  209. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +5 -3
  210. package/es/style/themes/theme-ui/ui-theme-components.css +116 -18
  211. package/es/style/themes/theme-ui/ui-theme-components.min.css +6 -2
  212. package/esm/dnb-ui-basis.min.mjs +1 -1
  213. package/esm/dnb-ui-components.min.mjs +1 -1
  214. package/esm/dnb-ui-elements.min.mjs +1 -1
  215. package/esm/dnb-ui-extensions.min.mjs +3 -3
  216. package/esm/dnb-ui-lib.min.mjs +1 -1
  217. package/extensions/forms/DataContext/Context.d.ts +2 -1
  218. package/extensions/forms/DataContext/Context.js +0 -1
  219. package/extensions/forms/DataContext/Context.js.map +1 -1
  220. package/extensions/forms/DataContext/Provider/Provider.js +2 -1
  221. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  222. package/extensions/forms/Field/Boolean/Boolean.d.ts +12 -2
  223. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  224. package/extensions/forms/Field/Boolean/BooleanDocs.d.ts +2 -0
  225. package/extensions/forms/Field/Boolean/BooleanDocs.js +18 -0
  226. package/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -0
  227. package/extensions/forms/Field/FieldDocs.js +2 -2
  228. package/extensions/forms/Field/FieldDocs.js.map +1 -1
  229. package/extensions/forms/Field/Indeterminate/Indeterminate.d.ts +16 -0
  230. package/extensions/forms/Field/Indeterminate/Indeterminate.js +43 -0
  231. package/extensions/forms/Field/Indeterminate/Indeterminate.js.map +1 -0
  232. package/extensions/forms/Field/Indeterminate/IndeterminateDocs.d.ts +2 -0
  233. package/extensions/forms/Field/Indeterminate/IndeterminateDocs.js +29 -0
  234. package/extensions/forms/Field/Indeterminate/IndeterminateDocs.js.map +1 -0
  235. package/extensions/forms/Field/Indeterminate/index.d.ts +2 -0
  236. package/extensions/forms/Field/Indeterminate/index.js +3 -0
  237. package/extensions/forms/Field/Indeterminate/index.js.map +1 -0
  238. package/extensions/forms/Field/Indeterminate/useDependencePaths.d.ts +6 -0
  239. package/extensions/forms/Field/Indeterminate/useDependencePaths.js +75 -0
  240. package/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -0
  241. package/extensions/forms/Field/Name/NameDocs.js +1 -8
  242. package/extensions/forms/Field/Name/NameDocs.js.map +1 -1
  243. package/extensions/forms/Field/String/String.js.map +1 -1
  244. package/extensions/forms/Field/Toggle/Toggle.d.ts +2 -1
  245. package/extensions/forms/Field/Toggle/Toggle.js +2 -2
  246. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  247. package/extensions/forms/Field/Toggle/ToggleDocs.d.ts +2 -0
  248. package/extensions/forms/Field/Toggle/ToggleDocs.js +28 -0
  249. package/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -0
  250. package/extensions/forms/Field/index.d.ts +1 -0
  251. package/extensions/forms/Field/index.js +1 -0
  252. package/extensions/forms/Field/index.js.map +1 -1
  253. package/extensions/forms/FieldBlock/FieldBlockDocs.d.ts +1 -0
  254. package/extensions/forms/FieldBlock/FieldBlockDocs.js +20 -15
  255. package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  256. package/extensions/forms/Form/Handler/Handler.js +2 -2
  257. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  258. package/extensions/forms/Form/Handler/HandlerDocs.js +5 -0
  259. package/extensions/forms/Form/Handler/HandlerDocs.js.map +1 -1
  260. package/extensions/forms/Wizard/Container/WizardContainer.js +6 -2
  261. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  262. package/extensions/forms/Wizard/Step/Step.d.ts +4 -0
  263. package/extensions/forms/Wizard/Step/Step.js +7 -2
  264. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  265. package/extensions/forms/Wizard/Step/StepDocs.js +5 -0
  266. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  267. package/extensions/forms/hooks/useFieldProps.js +1 -1
  268. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  269. package/extensions/forms/types.d.ts +5 -0
  270. package/extensions/forms/types.js.map +1 -1
  271. package/package.json +1 -1
  272. package/shared/Eufemia.d.ts +1 -1
  273. package/shared/Eufemia.js +2 -2
  274. package/shared/Eufemia.js.map +1 -1
  275. package/style/core/scopes.scss +1 -1
  276. package/style/dnb-ui-basis.css +1 -1
  277. package/style/dnb-ui-basis.min.css +1 -1
  278. package/style/dnb-ui-body.css +1 -1
  279. package/style/dnb-ui-body.min.css +1 -1
  280. package/style/dnb-ui-components.css +96 -16
  281. package/style/dnb-ui-components.min.css +1 -1
  282. package/style/dnb-ui-core.css +1 -1
  283. package/style/dnb-ui-core.min.css +1 -1
  284. package/style/themes/theme-eiendom/eiendom-theme-components.css +116 -18
  285. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -2
  286. package/style/themes/theme-sbanken/sbanken-theme-components.css +118 -18
  287. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +5 -3
  288. package/style/themes/theme-ui/ui-theme-components.css +116 -18
  289. package/style/themes/theme-ui/ui-theme-components.min.css +6 -2
  290. package/umd/dnb-ui-basis.min.js +1 -1
  291. package/umd/dnb-ui-components.min.js +1 -1
  292. package/umd/dnb-ui-elements.min.js +1 -1
  293. package/umd/dnb-ui-extensions.min.js +3 -3
  294. package/umd/dnb-ui-lib.min.js +1 -1
@@ -0,0 +1,75 @@
1
+ "use client";
2
+
3
+ import { useCallback, useContext, useMemo, useRef } from 'react';
4
+ import pointer from 'json-pointer';
5
+ import DataContext from '../../DataContext/Context';
6
+ export default function useDependencePaths(dependencePaths, propagateIndeterminateState) {
7
+ const {
8
+ data,
9
+ fieldProps,
10
+ handlePathChange
11
+ } = useContext(DataContext) || {};
12
+ const {
13
+ allOn,
14
+ allOff,
15
+ indeterminate
16
+ } = useMemo(() => {
17
+ if (!dependencePaths || !data) {
18
+ return {};
19
+ }
20
+ const check = _ref => {
21
+ let {
22
+ key,
23
+ whenUndefined = false
24
+ } = _ref;
25
+ return dependencePaths === null || dependencePaths === void 0 ? void 0 : dependencePaths.every(path => {
26
+ if (pointer.has(data, path)) {
27
+ var _fieldProps$path;
28
+ const value = pointer.get(data, path);
29
+ if ((whenUndefined ? typeof value === 'undefined' : false) || value === (fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$path = fieldProps[path]) === null || _fieldProps$path === void 0 ? void 0 : _fieldProps$path[key])) {
30
+ return true;
31
+ }
32
+ }
33
+ });
34
+ };
35
+ const allOn = check({
36
+ key: 'valueOn'
37
+ });
38
+ const allOff = check({
39
+ key: 'valueOff',
40
+ whenUndefined: true
41
+ });
42
+ const indeterminate = !allOn && !allOff;
43
+ return {
44
+ allOn,
45
+ allOff,
46
+ indeterminate
47
+ };
48
+ }, [data, dependencePaths, fieldProps]);
49
+ const keepStateRef = useRef();
50
+ useMemo(() => {
51
+ if (allOn && !keepStateRef.current) {
52
+ keepStateRef.current = true;
53
+ } else if (allOff && keepStateRef.current) {
54
+ keepStateRef.current = false;
55
+ } else {
56
+ if (propagateIndeterminateState !== 'auto' && indeterminate) {
57
+ keepStateRef.current = propagateIndeterminateState === 'unchecked';
58
+ }
59
+ }
60
+ }, [allOn, allOff, propagateIndeterminateState, indeterminate]);
61
+ const setAllStates = useCallback(checked => {
62
+ dependencePaths === null || dependencePaths === void 0 ? void 0 : dependencePaths.forEach(path => {
63
+ var _fieldProps$path2;
64
+ const fieldProp = checked ? 'valueOn' : 'valueOff';
65
+ const value = fieldProps === null || fieldProps === void 0 ? void 0 : (_fieldProps$path2 = fieldProps[path]) === null || _fieldProps$path2 === void 0 ? void 0 : _fieldProps$path2[fieldProp];
66
+ handlePathChange === null || handlePathChange === void 0 ? void 0 : handlePathChange(path, value);
67
+ });
68
+ }, [dependencePaths, fieldProps, handlePathChange]);
69
+ return {
70
+ setAllStates,
71
+ indeterminate,
72
+ internalValue: keepStateRef.current
73
+ };
74
+ }
75
+ //# sourceMappingURL=useDependencePaths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDependencePaths.js","names":["useCallback","useContext","useMemo","useRef","pointer","DataContext","useDependencePaths","dependencePaths","propagateIndeterminateState","data","fieldProps","handlePathChange","allOn","allOff","indeterminate","check","_ref","key","whenUndefined","every","path","has","_fieldProps$path","value","get","keepStateRef","current","setAllStates","checked","forEach","_fieldProps$path2","fieldProp","internalValue"],"sources":["../../../../../../src/extensions/forms/Field/Indeterminate/useDependencePaths.tsx"],"sourcesContent":["import { useCallback, useContext, useMemo, useRef } from 'react'\nimport pointer from 'json-pointer'\nimport DataContext from '../../DataContext/Context'\nimport { Props } from './Indeterminate'\n\nexport default function useDependencePaths(\n dependencePaths: Props['dependencePaths'],\n propagateIndeterminateState: Props['propagateIndeterminateState']\n) {\n const { data, fieldProps, handlePathChange } =\n useContext(DataContext) || {}\n\n const { allOn, allOff, indeterminate } = useMemo(() => {\n if (!dependencePaths || !data) {\n return {}\n }\n\n const check = ({ key, whenUndefined = false }) => {\n return dependencePaths?.every((path) => {\n if (pointer.has(data, path)) {\n const value = pointer.get(data, path)\n if (\n // When value is undefined, we should also consider it as off\n (whenUndefined ? typeof value === 'undefined' : false) ||\n value === fieldProps?.[path]?.[key]\n ) {\n return true\n }\n }\n })\n }\n\n const allOn = check({ key: 'valueOn' })\n const allOff = check({ key: 'valueOff', whenUndefined: true })\n const indeterminate = !allOn && !allOff\n\n return {\n allOn,\n allOff,\n indeterminate,\n }\n }, [data, dependencePaths, fieldProps])\n\n const keepStateRef = useRef<boolean>()\n useMemo(() => {\n if (allOn && !keepStateRef.current) {\n keepStateRef.current = true\n } else if (allOff && keepStateRef.current) {\n keepStateRef.current = false\n } else {\n if (propagateIndeterminateState !== 'auto' && indeterminate) {\n keepStateRef.current = propagateIndeterminateState === 'unchecked'\n }\n }\n }, [allOn, allOff, propagateIndeterminateState, indeterminate])\n\n const setAllStates = useCallback(\n (checked: boolean) => {\n dependencePaths?.forEach((path) => {\n const fieldProp = checked ? 'valueOn' : 'valueOff'\n const value = fieldProps?.[path]?.[fieldProp]\n handlePathChange?.(path, value)\n })\n },\n [dependencePaths, fieldProps, handlePathChange]\n )\n\n return {\n setAllStates,\n indeterminate,\n internalValue: keepStateRef.current,\n }\n}\n"],"mappings":"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"}
@@ -1,8 +1 @@
1
- export const NameProperties = {
2
- capitalize: {
3
- doc: 'Will capitalize the first letter of every word, transforming the rest to lowercase. Is enabled by default for first name and last name.',
4
- type: 'boolean',
5
- status: 'optional'
6
- }
7
- };
8
- //# sourceMappingURL=NameDocs.js.map
1
+ export const NameProperties = {};
@@ -1 +1 @@
1
- {"version":3,"file":"NameDocs.js","names":["NameProperties","capitalize","doc","type","status"],"sources":["../../../../../../src/extensions/forms/Field/Name/NameDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const NameProperties: PropertiesTableProps = {\n capitalize: {\n doc: 'Will capitalize the first letter of every word, transforming the rest to lowercase. Is enabled by default for first name and last name.',\n type: 'boolean',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,cAAoC,GAAG;EAClDC,UAAU,EAAE;IACVC,GAAG,EAAE,yIAAyI;IAC9IC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AACF,CAAC"}
1
+ {"version":3,"file":"NameDocs.js","names":["NameProperties"],"sources":["../../../../../../src/extensions/forms/Field/Name/NameDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const NameProperties: PropertiesTableProps = {}\n"],"mappings":"AAEA,OAAO,MAAMA,cAAoC,GAAG,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"String.js","names":["React","useContext","useMemo","useCallback","classnames","HelpButton","Input","Textarea","InputMasked","FieldBlockContext","FieldBlock","useFieldProps","pickSpacingProps","toCapitalized","useErrorMessage","useTranslation","StringComponent","props","_props$width","_value$toString","fieldBlockContext","translations","errorMessages","path","required","Field","errorRequired","minLength","StringField","errorMinLength","maxLength","errorMaxLength","pattern","errorPattern","schema","_props$schema","type","fromInput","event","_event","_event$cleanedValue","_event2","_event3","value","emptyValue","cleanedValue","toEvent","trim","spaces","RegExp","test","replace","handleChange","transform","transformValue","capitalize","String","preparedProps","_objectSpread","width","composition","id","name","className","innerRef","inputClassName","layout","placeholder","label","labelDescription","info","warning","error","hasError","disabled","help","multiline","mask","leftIcon","rightIcon","htmlAttributes","submitElement","clear","align","size","selectall","keepPlaceholder","rows","autoresizeMaxRows","autoresize","characterCounter","autoComplete","inputMode","autoCorrect","spellCheck","autoFocus","autoCapitalize","handleFocus","handleBlur","transformInstantly","cn","sharedProps","suffix","createElement","title","content","undefined","on_focus","on_blur","on_change","stretch","Boolean","inner_ref","status","toString","textareaProps","autoresize_max_rows","inputProps","icon","icon_position","submit_element","keep_placeholder","fieldBlockProps","forId","contentWidth","_extends","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/String/String.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { HelpButton, Input, Textarea } from '../../../../components'\nimport { InputProps } from '../../../../components/input/Input'\nimport InputMasked, {\n InputMaskedProps,\n} from '../../../../components/InputMasked'\nimport { TextareaProps } from '../../../../components/Textarea'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { toCapitalized } from '../../../../shared/component-helper'\nimport type { TextCounterProps } from '../../../../fragments/TextCounter'\nimport type {\n FieldProps,\n FieldHelpProps,\n CustomErrorMessages,\n AllJSONSchemaVersions,\n FieldBlockWidth,\n} from '../../types'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\ninterface ErrorMessages extends CustomErrorMessages {\n required?: string\n schema?: string\n minLength?: string\n maxLength?: string\n pattern?: string\n}\nexport type Props = FieldHelpProps &\n FieldProps<string, undefined | string, ErrorMessages> & {\n // - Shared props\n multiline?: boolean\n inputClassName?: string\n innerRef?: React.RefObject<HTMLInputElement | HTMLTextAreaElement>\n width?: FieldBlockWidth\n size?: InputProps['size'] | TextareaProps['size']\n keepPlaceholder?: InputProps['keep_placeholder']\n\n // - Validation\n minLength?: number\n maxLength?: number\n pattern?: string\n\n // - Input props\n type?: InputProps['type']\n align?: InputProps['align']\n selectall?: InputProps['selectall']\n clear?: boolean\n mask?: InputMaskedProps['mask']\n leftIcon?: string\n rightIcon?: string\n submitElement?: InputProps['submit_element']\n capitalize?: boolean\n trim?: boolean\n\n // - Textarea props\n rows?: TextareaProps['rows']\n autoresizeMaxRows?: TextareaProps['autoresize_max_rows']\n autoresize?: TextareaProps['autoresize']\n characterCounter?: Omit<TextCounterProps, 'text'> | number\n\n // - Html props\n autoComplete?: HTMLInputElement['autocomplete']\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode']\n autoCorrect?: React.HTMLAttributes<HTMLInputElement>['autoCorrect']\n spellCheck?: React.HTMLAttributes<HTMLInputElement>['spellCheck']\n autoFocus?: React.HTMLAttributes<HTMLInputElement>['autoFocus']\n autoCapitalize?: React.HTMLAttributes<HTMLInputElement>['autoCapitalize']\n }\n\nfunction StringComponent(props: Props) {\n const fieldBlockContext = useContext(FieldBlockContext)\n const translations = useTranslation()\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.Field.errorRequired,\n minLength: translations.StringField.errorMinLength,\n maxLength: translations.StringField.errorMaxLength,\n pattern: translations.Field.errorPattern,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n minLength: props.minLength,\n maxLength: props.maxLength,\n pattern: props.pattern,\n },\n [props.schema, props.minLength, props.maxLength, props.pattern]\n )\n const fromInput = useCallback(\n (event: { value: string; cleanedValue?: string }) => {\n if (typeof event === 'string') {\n event = { value: event }\n }\n if (event?.value === '') {\n return props.emptyValue\n }\n // Cleaned value for masked\n return event?.cleanedValue ?? event?.value\n },\n [props.emptyValue]\n )\n const toEvent = useCallback(\n (value: string, type: string) => {\n if (props.trim && type === 'onBlur') {\n const spaces = '[\\\\s ]'\n if (new RegExp(`^${spaces}|${spaces}$`).test(value)) {\n value = value.replace(\n new RegExp(`^${spaces}+|${spaces}+$`, 'g'),\n ''\n )\n handleChange(value)\n }\n }\n return value\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [props.trim]\n )\n const transform = props.transformValue\n const transformValue = useCallback(\n (value: string) => {\n if (props.capitalize) {\n value = toCapitalized(String(value || ''))\n }\n return transform?.(value) || value\n },\n [props.capitalize, transform]\n )\n\n const preparedProps: Props = {\n ...props,\n errorMessages,\n schema,\n fromInput,\n toEvent,\n transformValue,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'large'),\n }\n\n const {\n id,\n name,\n className,\n\n innerRef,\n inputClassName,\n layout,\n placeholder,\n label,\n labelDescription,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n help,\n multiline,\n mask,\n leftIcon,\n rightIcon,\n width,\n htmlAttributes,\n submitElement,\n\n // - Input props\n type,\n clear,\n align,\n size,\n selectall,\n keepPlaceholder,\n\n // - Textarea props\n rows,\n // formId,\n autoresizeMaxRows = 6,\n autoresize = true,\n characterCounter,\n\n // - Html props\n\n autoComplete,\n inputMode,\n autoCorrect,\n spellCheck,\n autoFocus,\n autoCapitalize,\n\n // - Events\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const transformInstantly = useCallback(\n (value: string) => (props.capitalize ? toCapitalized(value) : value),\n [props.capitalize]\n )\n\n const cn = classnames('dnb-forms-field-string__input', inputClassName)\n\n const sharedProps: InputProps & TextareaProps = {\n id,\n name,\n autoComplete,\n autoCorrect,\n spellCheck,\n autoFocus,\n autoCapitalize,\n inputMode,\n className: cn,\n placeholder,\n suffix: help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n on_focus: handleFocus,\n on_blur: handleBlur,\n on_change: handleChange,\n disabled,\n ...htmlAttributes,\n stretch: Boolean(\n width !== undefined || fieldBlockContext?.composition\n ),\n inner_ref: innerRef,\n status: hasError ? 'error' : undefined,\n value: transformInstantly(value?.toString() ?? ''),\n }\n\n const textareaProps: TextareaProps = {\n keepPlaceholder,\n rows,\n autoresize_max_rows: autoresizeMaxRows,\n autoresize,\n characterCounter,\n }\n\n const inputProps: InputProps = {\n type: type,\n clear: clear,\n size: size,\n align: align,\n selectall: selectall,\n icon: leftIcon ?? rightIcon,\n icon_position: rightIcon && !leftIcon ? 'right' : undefined,\n submit_element: submitElement,\n keep_placeholder: keepPlaceholder,\n }\n\n const fieldBlockProps = {\n className: classnames('dnb-forms-field-string', className),\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 return (\n <FieldBlock {...fieldBlockProps}>\n {multiline ? (\n <Textarea {...sharedProps} {...textareaProps} />\n ) : mask ? (\n <InputMasked {...sharedProps} {...inputProps} mask={mask} />\n ) : (\n <Input {...sharedProps} {...inputProps} />\n )}\n </FieldBlock>\n )\n}\n\nStringComponent._supportsSpacingProps = true\nexport default StringComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"String.js","names":["React","useContext","useMemo","useCallback","classnames","HelpButton","Input","Textarea","InputMasked","FieldBlockContext","FieldBlock","useFieldProps","pickSpacingProps","toCapitalized","useErrorMessage","useTranslation","StringComponent","props","_props$width","_value$toString","fieldBlockContext","translations","errorMessages","path","required","Field","errorRequired","minLength","StringField","errorMinLength","maxLength","errorMaxLength","pattern","errorPattern","schema","_props$schema","type","fromInput","event","_event","_event$cleanedValue","_event2","_event3","value","emptyValue","cleanedValue","toEvent","trim","spaces","RegExp","test","replace","handleChange","transform","transformValue","capitalize","String","preparedProps","_objectSpread","width","composition","id","name","className","innerRef","inputClassName","layout","placeholder","label","labelDescription","info","warning","error","hasError","disabled","help","multiline","mask","leftIcon","rightIcon","htmlAttributes","submitElement","clear","align","size","selectall","keepPlaceholder","rows","autoresizeMaxRows","autoresize","characterCounter","autoComplete","inputMode","autoCorrect","spellCheck","autoFocus","autoCapitalize","handleFocus","handleBlur","transformInstantly","cn","sharedProps","suffix","createElement","title","content","undefined","on_focus","on_blur","on_change","stretch","Boolean","inner_ref","status","toString","textareaProps","autoresize_max_rows","inputProps","icon","icon_position","submit_element","keep_placeholder","fieldBlockProps","forId","contentWidth","_extends","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/String/String.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { HelpButton, Input, Textarea } from '../../../../components'\nimport { InputProps } from '../../../../components/input/Input'\nimport InputMasked, {\n InputMaskedProps,\n} from '../../../../components/InputMasked'\nimport { TextareaProps } from '../../../../components/Textarea'\nimport FieldBlockContext from '../../FieldBlock/FieldBlockContext'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { toCapitalized } from '../../../../shared/component-helper'\nimport type { TextCounterProps } from '../../../../fragments/TextCounter'\nimport type {\n FieldProps,\n FieldHelpProps,\n CustomErrorMessages,\n AllJSONSchemaVersions,\n FieldBlockWidth,\n} from '../../types'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\ninterface ErrorMessages extends CustomErrorMessages {\n required?: string\n schema?: string\n minLength?: string\n maxLength?: string\n pattern?: string\n}\nexport type Props = FieldHelpProps &\n FieldProps<string, undefined | string, ErrorMessages> & {\n // - Shared props\n multiline?: boolean\n inputClassName?: string\n innerRef?: React.RefObject<HTMLInputElement | HTMLTextAreaElement>\n width?: FieldBlockWidth\n size?: InputProps['size'] | TextareaProps['size']\n keepPlaceholder?: InputProps['keep_placeholder']\n\n // - Validation\n minLength?: number\n maxLength?: number\n pattern?: string\n\n // - Input props\n type?: InputProps['type']\n align?: InputProps['align']\n selectall?: InputProps['selectall']\n clear?: boolean\n mask?: InputMaskedProps['mask']\n leftIcon?: string\n rightIcon?: string\n submitElement?: InputProps['submit_element']\n capitalize?: boolean\n trim?: boolean\n\n // - Textarea props\n rows?: TextareaProps['rows']\n autoresizeMaxRows?: TextareaProps['autoresize_max_rows']\n autoresize?: TextareaProps['autoresize']\n characterCounter?: Omit<TextCounterProps, 'text'> | number\n\n // - Html props\n autoComplete?: HTMLInputElement['autocomplete']\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode']\n autoCorrect?: React.HTMLAttributes<HTMLInputElement>['autoCorrect']\n spellCheck?: React.HTMLAttributes<HTMLInputElement>['spellCheck']\n autoFocus?: React.HTMLAttributes<HTMLInputElement>['autoFocus']\n autoCapitalize?: React.HTMLAttributes<HTMLInputElement>['autoCapitalize']\n }\n\nfunction StringComponent(props: Props) {\n const fieldBlockContext = useContext(FieldBlockContext)\n const translations = useTranslation()\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.Field.errorRequired,\n minLength: translations.StringField.errorMinLength,\n maxLength: translations.StringField.errorMaxLength,\n pattern: translations.Field.errorPattern,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n minLength: props.minLength,\n maxLength: props.maxLength,\n pattern: props.pattern,\n },\n [props.schema, props.minLength, props.maxLength, props.pattern]\n )\n const fromInput = useCallback(\n (event: { value: string; cleanedValue?: string }) => {\n if (typeof event === 'string') {\n event = { value: event }\n }\n if (event?.value === '') {\n return props.emptyValue\n }\n // Cleaned value for masked\n return event?.cleanedValue ?? event?.value\n },\n [props.emptyValue]\n )\n const toEvent = useCallback(\n (value: string, type: string) => {\n if (props.trim && type === 'onBlur') {\n const spaces = '[\\\\s ]'\n if (new RegExp(`^${spaces}|${spaces}$`).test(value)) {\n value = value.replace(\n new RegExp(`^${spaces}+|${spaces}+$`, 'g'),\n ''\n )\n handleChange(value)\n }\n }\n return value\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [props.trim]\n )\n const transform = props.transformValue\n const transformValue = useCallback(\n (value: string) => {\n if (props.capitalize) {\n value = toCapitalized(String(value || ''))\n }\n return transform?.(value) || value\n },\n [props.capitalize, transform]\n )\n\n const preparedProps: Props = {\n ...props,\n errorMessages,\n schema,\n fromInput,\n toEvent,\n transformValue,\n width:\n props.width ??\n (fieldBlockContext?.composition ? 'stretch' : 'large'),\n }\n\n const {\n id,\n name,\n className,\n innerRef,\n inputClassName,\n layout,\n placeholder,\n label,\n labelDescription,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n help,\n multiline,\n mask,\n leftIcon,\n rightIcon,\n width,\n htmlAttributes,\n submitElement,\n\n // - Input props\n type,\n clear,\n align,\n size,\n selectall,\n keepPlaceholder,\n\n // - Textarea props\n rows,\n autoresizeMaxRows = 6,\n autoresize = true,\n characterCounter,\n\n // - Html props\n autoComplete,\n inputMode,\n autoCorrect,\n spellCheck,\n autoFocus,\n autoCapitalize,\n\n // - Events\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const transformInstantly = useCallback(\n (value: string) => (props.capitalize ? toCapitalized(value) : value),\n [props.capitalize]\n )\n\n const cn = classnames('dnb-forms-field-string__input', inputClassName)\n\n const sharedProps: InputProps & TextareaProps = {\n id,\n name,\n autoComplete,\n autoCorrect,\n spellCheck,\n autoFocus,\n autoCapitalize,\n inputMode,\n className: cn,\n placeholder,\n suffix: help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n on_focus: handleFocus,\n on_blur: handleBlur,\n on_change: handleChange,\n disabled,\n ...htmlAttributes,\n stretch: Boolean(\n width !== undefined || fieldBlockContext?.composition\n ),\n inner_ref: innerRef,\n status: hasError ? 'error' : undefined,\n value: transformInstantly(value?.toString() ?? ''),\n }\n\n const textareaProps: TextareaProps = {\n keepPlaceholder,\n rows,\n autoresize_max_rows: autoresizeMaxRows,\n autoresize,\n characterCounter,\n }\n\n const inputProps: InputProps = {\n type: type,\n clear: clear,\n size: size,\n align: align,\n selectall: selectall,\n icon: leftIcon ?? rightIcon,\n icon_position: rightIcon && !leftIcon ? 'right' : undefined,\n submit_element: submitElement,\n keep_placeholder: keepPlaceholder,\n }\n\n const fieldBlockProps = {\n className: classnames('dnb-forms-field-string', className),\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 return (\n <FieldBlock {...fieldBlockProps}>\n {multiline ? (\n <Textarea {...sharedProps} {...textareaProps} />\n ) : mask ? (\n <InputMasked {...sharedProps} {...inputProps} mask={mask} />\n ) : (\n <Input {...sharedProps} {...inputProps} />\n )}\n </FieldBlock>\n )\n}\n\nStringComponent._supportsSpacingProps = true\nexport default StringComponent\n"],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import { FieldProps } from '../../types';
2
- export type Props = FieldProps<unknown> & {
2
+ export type ToggleProps = {
3
3
  valueOn: unknown;
4
4
  valueOff: unknown;
5
5
  variant?: 'checkbox' | 'checkbox-button' | 'button' | 'buttons';
6
6
  textOn?: string;
7
7
  textOff?: string;
8
8
  };
9
+ export type Props = FieldProps<unknown> & ToggleProps;
9
10
  declare function Toggle(props: Props): import("react/jsx-runtime").JSX.Element;
10
11
  declare namespace Toggle {
11
12
  var _supportsSpacingProps: boolean;
@@ -3,8 +3,8 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
3
  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; }
4
4
  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; }
5
5
  import React, { useCallback } from 'react';
6
- import { Checkbox, ToggleButton } from '../../../../components';
7
6
  import classnames from 'classnames';
7
+ import { Checkbox, ToggleButton } from '../../../../components';
8
8
  import ButtonRow from '../../Form/ButtonRow';
9
9
  import FieldBlock from '../../FieldBlock';
10
10
  import { useFieldProps } from '../../hooks';
@@ -76,7 +76,7 @@ function Toggle(props) {
76
76
  checked: isOn,
77
77
  disabled: disabled,
78
78
  status: hasError ? 'error' : undefined,
79
- on_change: handleCheckboxChange
79
+ onChange: handleCheckboxChange
80
80
  }, htmlAttributes)));
81
81
  case 'button':
82
82
  return React.createElement(FieldBlock, fieldBlockProps, React.createElement(ToggleButton, _extends({
@@ -1 +1 @@
1
- {"version":3,"file":"Toggle.js","names":["React","useCallback","Checkbox","ToggleButton","classnames","ButtonRow","FieldBlock","useFieldProps","pickSpacingProps","ToggleButtonGroupContext","useTranslation","Toggle","props","translations","BooleanField","preparedProps","_objectSpread","errorMessages","id","className","valueOn","valueOff","layout","variant","disabled","label","labelDescription","textOn","textOff","value","info","warning","error","hasError","htmlAttributes","handleChange","handleCheckboxChange","_ref","checked","handleToggleChange","_ref2","cn","fieldBlockPropsWithoutLabel","forId","fieldBlockProps","isOn","isOff","createElement","_extends","status","undefined","on_change","text","yes","no","asFieldset","bottom","Provider","onChange","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Toggle/Toggle.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport { Checkbox, ToggleButton } from '../../../../components'\nimport classnames from 'classnames'\nimport ButtonRow from '../../Form/ButtonRow'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = FieldProps<unknown> & {\n valueOn: unknown\n valueOff: unknown\n variant?: 'checkbox' | 'checkbox-button' | 'button' | 'buttons'\n textOn?: string\n textOff?: string\n}\n\nfunction Toggle(props: Props) {\n const translations = useTranslation().BooleanField\n\n const preparedProps: Props = {\n ...props,\n errorMessages: props.errorMessages,\n }\n\n const {\n id,\n className,\n valueOn,\n valueOff,\n layout,\n variant,\n disabled,\n label,\n labelDescription,\n textOn,\n textOff,\n value,\n info,\n warning,\n error,\n hasError,\n htmlAttributes,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const handleCheckboxChange = useCallback(\n ({ checked }) => {\n handleChange?.(checked ? valueOn : valueOff)\n },\n [handleChange, valueOn, valueOff]\n )\n const handleToggleChange = useCallback(\n ({ value }) => {\n handleChange?.(value === 'on' ? valueOn : valueOff)\n },\n [handleChange, valueOn, valueOff]\n )\n\n const cn = classnames('dnb-forms-field-toggle', className)\n\n const fieldBlockPropsWithoutLabel = {\n forId: id,\n className: cn,\n ...pickSpacingProps(props),\n info,\n warning,\n error,\n disabled,\n }\n\n const fieldBlockProps = {\n ...fieldBlockPropsWithoutLabel,\n layout,\n label,\n labelDescription,\n disabled,\n }\n\n const isOn = value === valueOn\n const isOff = value === valueOff\n\n switch (variant) {\n default:\n case 'checkbox':\n return (\n <FieldBlock {...fieldBlockPropsWithoutLabel}>\n <Checkbox\n id={id}\n className={cn}\n label={label}\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n on_change={handleCheckboxChange}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n text={\n isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n on_change={handleCheckboxChange}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'buttons':\n return (\n <FieldBlock {...fieldBlockProps} asFieldset>\n <ButtonRow bottom=\"x-small\">\n <ToggleButtonGroupContext.Provider\n value={{\n value: isOn ? 'on' : isOff ? 'off' : null, // use \"null\" to reset the value\n onChange: handleToggleChange,\n status: hasError ? 'error' : undefined,\n disabled,\n }}\n >\n <ToggleButton\n text={textOn ?? translations.yes}\n value=\"on\"\n {...htmlAttributes}\n />\n <ToggleButton\n text={textOff ?? translations.no}\n value=\"off\"\n {...htmlAttributes}\n />\n </ToggleButtonGroupContext.Provider>\n </ButtonRow>\n </FieldBlock>\n )\n case 'checkbox-button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n variant=\"checkbox\"\n text={\n isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n on_change={handleCheckboxChange}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n }\n}\n\nToggle._supportsSpacingProps = true\nexport default Toggle\n"],"mappings":"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"}
1
+ {"version":3,"file":"Toggle.js","names":["React","useCallback","classnames","Checkbox","ToggleButton","ButtonRow","FieldBlock","useFieldProps","pickSpacingProps","ToggleButtonGroupContext","useTranslation","Toggle","props","translations","BooleanField","preparedProps","_objectSpread","errorMessages","id","className","valueOn","valueOff","layout","variant","disabled","label","labelDescription","textOn","textOff","value","info","warning","error","hasError","htmlAttributes","handleChange","handleCheckboxChange","_ref","checked","handleToggleChange","_ref2","cn","fieldBlockPropsWithoutLabel","forId","fieldBlockProps","isOn","isOff","createElement","_extends","status","undefined","onChange","text","yes","no","on_change","asFieldset","bottom","Provider","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Toggle/Toggle.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport classnames from 'classnames'\n\nimport { Checkbox, ToggleButton } from '../../../../components'\nimport ButtonRow from '../../Form/ButtonRow'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type ToggleProps = {\n valueOn: unknown\n valueOff: unknown\n variant?: 'checkbox' | 'checkbox-button' | 'button' | 'buttons'\n textOn?: string\n textOff?: string\n}\n\nexport type Props = FieldProps<unknown> & ToggleProps\n\nfunction Toggle(props: Props) {\n const translations = useTranslation().BooleanField\n\n const preparedProps: Props = {\n ...props,\n errorMessages: props.errorMessages,\n }\n\n const {\n id,\n className,\n valueOn,\n valueOff,\n layout,\n variant,\n disabled,\n label,\n labelDescription,\n textOn,\n textOff,\n value,\n info,\n warning,\n error,\n hasError,\n htmlAttributes,\n handleChange,\n } = useFieldProps(preparedProps)\n\n const handleCheckboxChange = useCallback(\n ({ checked }) => {\n handleChange?.(checked ? valueOn : valueOff)\n },\n [handleChange, valueOn, valueOff]\n )\n const handleToggleChange = useCallback(\n ({ value }) => {\n handleChange?.(value === 'on' ? valueOn : valueOff)\n },\n [handleChange, valueOn, valueOff]\n )\n\n const cn = classnames('dnb-forms-field-toggle', className)\n\n const fieldBlockPropsWithoutLabel = {\n forId: id,\n className: cn,\n ...pickSpacingProps(props),\n info,\n warning,\n error,\n disabled,\n }\n\n const fieldBlockProps = {\n ...fieldBlockPropsWithoutLabel,\n layout,\n label,\n labelDescription,\n disabled,\n }\n\n const isOn = value === valueOn\n const isOff = value === valueOff\n\n switch (variant) {\n default:\n case 'checkbox':\n return (\n <FieldBlock {...fieldBlockPropsWithoutLabel}>\n <Checkbox\n id={id}\n className={cn}\n label={label}\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n onChange={handleCheckboxChange}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n text={\n isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n on_change={handleCheckboxChange}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'buttons':\n return (\n <FieldBlock {...fieldBlockProps} asFieldset>\n <ButtonRow bottom=\"x-small\">\n <ToggleButtonGroupContext.Provider\n value={{\n value: isOn ? 'on' : isOff ? 'off' : null, // use \"null\" to reset the value\n onChange: handleToggleChange,\n status: hasError ? 'error' : undefined,\n disabled,\n }}\n >\n <ToggleButton\n text={textOn ?? translations.yes}\n value=\"on\"\n {...htmlAttributes}\n />\n <ToggleButton\n text={textOff ?? translations.no}\n value=\"off\"\n {...htmlAttributes}\n />\n </ToggleButtonGroupContext.Provider>\n </ButtonRow>\n </FieldBlock>\n )\n case 'checkbox-button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n variant=\"checkbox\"\n text={\n isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n on_change={handleCheckboxChange}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n }\n}\n\nToggle._supportsSpacingProps = true\nexport default Toggle\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { PropertiesTableProps } from '../../../../shared/types';
2
+ export declare const ToggleProperties: PropertiesTableProps;
@@ -0,0 +1,28 @@
1
+ export const ToggleProperties = {
2
+ valueOn: {
3
+ doc: 'Source data value when the toggle is in the "on-state" (varies based on UI variant).',
4
+ type: ['string', 'number', 'boolean'],
5
+ status: 'required'
6
+ },
7
+ valueOff: {
8
+ doc: 'Source data value when the toggle is in the "off-state".',
9
+ type: ['string', 'number', 'boolean'],
10
+ status: 'required'
11
+ },
12
+ textOn: {
13
+ doc: 'Text to show in the UI when in the "on-state".',
14
+ type: 'string',
15
+ status: 'optional'
16
+ },
17
+ textOff: {
18
+ doc: 'Text to show in the UI when in the "off-state".',
19
+ type: 'string',
20
+ status: 'optional'
21
+ },
22
+ variant: {
23
+ doc: 'Choice of input feature. Can be: `checkbox`, `button`, `checkbox-button` or `buttons`.',
24
+ type: 'string',
25
+ status: 'optional'
26
+ }
27
+ };
28
+ //# sourceMappingURL=ToggleDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleDocs.js","names":["ToggleProperties","valueOn","doc","type","status","valueOff","textOn","textOff","variant"],"sources":["../../../../../../src/extensions/forms/Field/Toggle/ToggleDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const ToggleProperties: PropertiesTableProps = {\n valueOn: {\n doc: 'Source data value when the toggle is in the \"on-state\" (varies based on UI variant).',\n type: ['string', 'number', 'boolean'],\n status: 'required',\n },\n valueOff: {\n doc: 'Source data value when the toggle is in the \"off-state\".',\n type: ['string', 'number', 'boolean'],\n status: 'required',\n },\n textOn: {\n doc: 'Text to show in the UI when in the \"on-state\".',\n type: 'string',\n status: 'optional',\n },\n textOff: {\n doc: 'Text to show in the UI when in the \"off-state\".',\n type: 'string',\n status: 'optional',\n },\n variant: {\n doc: 'Choice of input feature. Can be: `checkbox`, `button`, `checkbox-button` or `buttons`.',\n type: 'string',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,gBAAsC,GAAG;EACpDC,OAAO,EAAE;IACPC,GAAG,EAAE,sFAAsF;IAC3FC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;IACrCC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACRH,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;IACrCC,MAAM,EAAE;EACV,CAAC;EACDE,MAAM,EAAE;IACNJ,GAAG,EAAE,gDAAgD;IACrDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,OAAO,EAAE;IACPL,GAAG,EAAE,iDAAiD;IACtDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,OAAO,EAAE;IACPN,GAAG,EAAE,wFAAwF;IAC7FC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -2,6 +2,7 @@ export { default as Composition } from './Composition';
2
2
  export { default as String } from './String';
3
3
  export { default as Number } from './Number';
4
4
  export { default as Toggle } from './Toggle';
5
+ export { default as Indeterminate } from './Indeterminate';
5
6
  export { default as Boolean } from './Boolean';
6
7
  export { default as Currency } from './Currency';
7
8
  export { default as Date } from './Date';
@@ -2,6 +2,7 @@ export { default as Composition } from './Composition';
2
2
  export { default as String } from './String';
3
3
  export { default as Number } from './Number';
4
4
  export { default as Toggle } from './Toggle';
5
+ export { default as Indeterminate } from './Indeterminate';
5
6
  export { default as Boolean } from './Boolean';
6
7
  export { default as Currency } from './Currency';
7
8
  export { default as Date } from './Date';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","Composition","String","Number","Toggle","Boolean","Currency","Date","Email","Name","NationalIdentityNumber","PhoneNumber","OrganizationNumber","PostalCodeAndCity","Selection","ArraySelection","Option","SelectCountry","BankAccountNumber","Expiry","Password"],"sources":["../../../../../src/extensions/forms/Field/index.ts"],"sourcesContent":["export { default as Composition } from './Composition'\nexport { default as String } from './String'\nexport { default as Number } from './Number'\nexport { default as Toggle } from './Toggle'\nexport { default as Boolean } from './Boolean'\nexport { default as Currency } from './Currency'\nexport { default as Date } from './Date'\nexport { default as Email } from './Email'\nexport { default as Name } from './Name'\nexport { default as NationalIdentityNumber } from './NationalIdentityNumber'\nexport { default as PhoneNumber } from './PhoneNumber'\nexport { default as OrganizationNumber } from './OrganizationNumber'\nexport { default as PostalCodeAndCity } from './PostalCodeAndCity'\nexport { default as Selection } from './Selection'\nexport { default as ArraySelection } from './ArraySelection'\nexport { default as Option } from './Option'\nexport { default as SelectCountry } from './SelectCountry'\nexport { default as BankAccountNumber } from './BankAccountNumber'\nexport { default as Expiry } from './Expiry'\nexport { default as Password } from './Password'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,WAAW,QAAQ,eAAe;AACtD,SAASD,OAAO,IAAIE,MAAM,QAAQ,UAAU;AAC5C,SAASF,OAAO,IAAIG,MAAM,QAAQ,UAAU;AAC5C,SAASH,OAAO,IAAII,MAAM,QAAQ,UAAU;AAC5C,SAASJ,OAAO,IAAIK,OAAO,QAAQ,WAAW;AAC9C,SAASL,OAAO,IAAIM,QAAQ,QAAQ,YAAY;AAChD,SAASN,OAAO,IAAIO,IAAI,QAAQ,QAAQ;AACxC,SAASP,OAAO,IAAIQ,KAAK,QAAQ,SAAS;AAC1C,SAASR,OAAO,IAAIS,IAAI,QAAQ,QAAQ;AACxC,SAAST,OAAO,IAAIU,sBAAsB,QAAQ,0BAA0B;AAC5E,SAASV,OAAO,IAAIW,WAAW,QAAQ,eAAe;AACtD,SAASX,OAAO,IAAIY,kBAAkB,QAAQ,sBAAsB;AACpE,SAASZ,OAAO,IAAIa,iBAAiB,QAAQ,qBAAqB;AAClE,SAASb,OAAO,IAAIc,SAAS,QAAQ,aAAa;AAClD,SAASd,OAAO,IAAIe,cAAc,QAAQ,kBAAkB;AAC5D,SAASf,OAAO,IAAIgB,MAAM,QAAQ,UAAU;AAC5C,SAAShB,OAAO,IAAIiB,aAAa,QAAQ,iBAAiB;AAC1D,SAASjB,OAAO,IAAIkB,iBAAiB,QAAQ,qBAAqB;AAClE,SAASlB,OAAO,IAAImB,MAAM,QAAQ,UAAU;AAC5C,SAASnB,OAAO,IAAIoB,QAAQ,QAAQ,YAAY"}
1
+ {"version":3,"file":"index.js","names":["default","Composition","String","Number","Toggle","Indeterminate","Boolean","Currency","Date","Email","Name","NationalIdentityNumber","PhoneNumber","OrganizationNumber","PostalCodeAndCity","Selection","ArraySelection","Option","SelectCountry","BankAccountNumber","Expiry","Password"],"sources":["../../../../../src/extensions/forms/Field/index.ts"],"sourcesContent":["export { default as Composition } from './Composition'\nexport { default as String } from './String'\nexport { default as Number } from './Number'\nexport { default as Toggle } from './Toggle'\nexport { default as Indeterminate } from './Indeterminate'\nexport { default as Boolean } from './Boolean'\nexport { default as Currency } from './Currency'\nexport { default as Date } from './Date'\nexport { default as Email } from './Email'\nexport { default as Name } from './Name'\nexport { default as NationalIdentityNumber } from './NationalIdentityNumber'\nexport { default as PhoneNumber } from './PhoneNumber'\nexport { default as OrganizationNumber } from './OrganizationNumber'\nexport { default as PostalCodeAndCity } from './PostalCodeAndCity'\nexport { default as Selection } from './Selection'\nexport { default as ArraySelection } from './ArraySelection'\nexport { default as Option } from './Option'\nexport { default as SelectCountry } from './SelectCountry'\nexport { default as BankAccountNumber } from './BankAccountNumber'\nexport { default as Expiry } from './Expiry'\nexport { default as Password } from './Password'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,WAAW,QAAQ,eAAe;AACtD,SAASD,OAAO,IAAIE,MAAM,QAAQ,UAAU;AAC5C,SAASF,OAAO,IAAIG,MAAM,QAAQ,UAAU;AAC5C,SAASH,OAAO,IAAII,MAAM,QAAQ,UAAU;AAC5C,SAASJ,OAAO,IAAIK,aAAa,QAAQ,iBAAiB;AAC1D,SAASL,OAAO,IAAIM,OAAO,QAAQ,WAAW;AAC9C,SAASN,OAAO,IAAIO,QAAQ,QAAQ,YAAY;AAChD,SAASP,OAAO,IAAIQ,IAAI,QAAQ,QAAQ;AACxC,SAASR,OAAO,IAAIS,KAAK,QAAQ,SAAS;AAC1C,SAAST,OAAO,IAAIU,IAAI,QAAQ,QAAQ;AACxC,SAASV,OAAO,IAAIW,sBAAsB,QAAQ,0BAA0B;AAC5E,SAASX,OAAO,IAAIY,WAAW,QAAQ,eAAe;AACtD,SAASZ,OAAO,IAAIa,kBAAkB,QAAQ,sBAAsB;AACpE,SAASb,OAAO,IAAIc,iBAAiB,QAAQ,qBAAqB;AAClE,SAASd,OAAO,IAAIe,SAAS,QAAQ,aAAa;AAClD,SAASf,OAAO,IAAIgB,cAAc,QAAQ,kBAAkB;AAC5D,SAAShB,OAAO,IAAIiB,MAAM,QAAQ,UAAU;AAC5C,SAASjB,OAAO,IAAIkB,aAAa,QAAQ,iBAAiB;AAC1D,SAASlB,OAAO,IAAImB,iBAAiB,QAAQ,qBAAqB;AAClE,SAASnB,OAAO,IAAIoB,MAAM,QAAQ,UAAU;AAC5C,SAASpB,OAAO,IAAIqB,QAAQ,QAAQ,YAAY"}
@@ -1,2 +1,3 @@
1
1
  import { PropertiesTableProps } from '../../../shared/types';
2
+ export declare const fieldBlockSharedProperties: PropertiesTableProps;
2
3
  export declare const fieldBlockProperties: PropertiesTableProps;
@@ -1,4 +1,7 @@
1
- export const fieldBlockProperties = {
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ 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; }
3
+ 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; }
4
+ export const fieldBlockSharedProperties = {
2
5
  label: {
3
6
  doc: 'Field label to show above / before the input feature.',
4
7
  type: 'string',
@@ -9,11 +12,6 @@ export const fieldBlockProperties = {
9
12
  type: 'string',
10
13
  status: 'optional'
11
14
  },
12
- labelSize: {
13
- doc: 'Define one of the following [heading size](/uilib/elements/heading/): `medium` or `large`.',
14
- type: ['string', 'false'],
15
- status: 'optional'
16
- },
17
15
  layout: {
18
16
  doc: 'Layout for the label and input. Can be `horizontal` or `vertical`.',
19
17
  type: 'string',
@@ -29,9 +27,16 @@ export const fieldBlockProperties = {
29
27
  type: ['string', 'false'],
30
28
  status: 'optional'
31
29
  },
32
- composition: {
33
- doc: 'Use `true` for when you have more than one field wrapped.',
34
- type: 'string',
30
+ '[Space](/uilib/layout/space/properties)': {
31
+ doc: 'Spacing properties like `top` or `bottom` are supported.',
32
+ type: ['string', 'object'],
33
+ status: 'optional'
34
+ }
35
+ };
36
+ export const fieldBlockProperties = _objectSpread(_objectSpread({}, fieldBlockSharedProperties), {}, {
37
+ labelSize: {
38
+ doc: 'Define one of the following [heading size](/uilib/elements/heading/): `medium` or `large`.',
39
+ type: ['string', 'false'],
35
40
  status: 'optional'
36
41
  },
37
42
  asFieldset: {
@@ -39,15 +44,15 @@ export const fieldBlockProperties = {
39
44
  type: 'boolean',
40
45
  status: 'optional'
41
46
  },
47
+ composition: {
48
+ doc: 'Use `true` for when you have more than one field wrapped.',
49
+ type: 'string',
50
+ status: 'optional'
51
+ },
42
52
  disabled: {
43
53
  doc: 'Set `true` to make the inner [FormLabel](/uilib/components/form-label/) behave as disabled.',
44
54
  type: 'boolean',
45
55
  status: 'optional'
46
- },
47
- '[Space](/uilib/layout/space/properties)': {
48
- doc: 'Spacing properties like `top` or `bottom` are supported.',
49
- type: ['string', 'object'],
50
- status: 'optional'
51
56
  }
52
- };
57
+ });
53
58
  //# sourceMappingURL=FieldBlockDocs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldBlockDocs.js","names":["fieldBlockProperties","label","doc","type","status","labelDescription","labelSize","layout","width","contentWidth","composition","asFieldset","disabled"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlockDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../shared/types'\n\nexport const fieldBlockProperties: PropertiesTableProps = {\n label: {\n doc: 'Field label to show above / before the input feature.',\n type: 'string',\n status: 'optional',\n },\n labelDescription: {\n doc: 'A more discreet text displayed beside the label (i.e for \"(optional)\").',\n type: 'string',\n status: 'optional',\n },\n labelSize: {\n doc: 'Define one of the following [heading size](/uilib/elements/heading/): `medium` or `large`.',\n type: ['string', 'false'],\n status: 'optional',\n },\n layout: {\n doc: 'Layout for the label and input. Can be `horizontal` or `vertical`.',\n type: 'string',\n status: 'optional',\n },\n width: {\n doc: '`small`, `medium`, `large`, `stretch` or `false` for predefined standard widths.',\n type: ['string', 'false'],\n status: 'optional',\n },\n contentWidth: {\n doc: '`small`, `medium`, `large`, `stretch` or `false` for predefined standard widths.',\n type: ['string', 'false'],\n status: 'optional',\n },\n composition: {\n doc: 'Use `true` for when you have more than one field wrapped.',\n type: 'string',\n status: 'optional',\n },\n asFieldset: {\n doc: 'Use `true` when you have several form elements. This way a `fieldset` with a `legend` is used.',\n type: 'boolean',\n status: 'optional',\n },\n disabled: {\n doc: 'Set `true` to make the inner [FormLabel](/uilib/components/form-label/) behave as disabled.',\n type: 'boolean',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,oBAA0C,GAAG;EACxDC,KAAK,EAAE;IACLC,GAAG,EAAE,uDAAuD;IAC5DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,gBAAgB,EAAE;IAChBH,GAAG,EAAE,yEAAyE;IAC9EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,SAAS,EAAE;IACTJ,GAAG,EAAE,4FAA4F;IACjGC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDG,MAAM,EAAE;IACNL,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,KAAK,EAAE;IACLN,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDK,YAAY,EAAE;IACZP,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDM,WAAW,EAAE;IACXR,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,UAAU,EAAE;IACVT,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDQ,QAAQ,EAAE;IACRV,GAAG,EAAE,6FAA6F;IAClGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC"}
1
+ {"version":3,"file":"FieldBlockDocs.js","names":["fieldBlockSharedProperties","label","doc","type","status","labelDescription","layout","width","contentWidth","fieldBlockProperties","_objectSpread","labelSize","asFieldset","composition","disabled"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlockDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../shared/types'\n\nexport const fieldBlockSharedProperties: PropertiesTableProps = {\n label: {\n doc: 'Field label to show above / before the input feature.',\n type: 'string',\n status: 'optional',\n },\n labelDescription: {\n doc: 'A more discreet text displayed beside the label (i.e for \"(optional)\").',\n type: 'string',\n status: 'optional',\n },\n layout: {\n doc: 'Layout for the label and input. Can be `horizontal` or `vertical`.',\n type: 'string',\n status: 'optional',\n },\n width: {\n doc: '`small`, `medium`, `large`, `stretch` or `false` for predefined standard widths.',\n type: ['string', 'false'],\n status: 'optional',\n },\n contentWidth: {\n doc: '`small`, `medium`, `large`, `stretch` or `false` for predefined standard widths.',\n type: ['string', 'false'],\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const fieldBlockProperties: PropertiesTableProps = {\n ...fieldBlockSharedProperties,\n labelSize: {\n doc: 'Define one of the following [heading size](/uilib/elements/heading/): `medium` or `large`.',\n type: ['string', 'false'],\n status: 'optional',\n },\n asFieldset: {\n doc: 'Use `true` when you have several form elements. This way a `fieldset` with a `legend` is used.',\n type: 'boolean',\n status: 'optional',\n },\n composition: {\n doc: 'Use `true` for when you have more than one field wrapped.',\n type: 'string',\n status: 'optional',\n },\n disabled: {\n doc: 'Set `true` to make the inner [FormLabel](/uilib/components/form-label/) behave as disabled.',\n type: 'boolean',\n status: 'optional',\n },\n}\n"],"mappings":";;;AAEA,OAAO,MAAMA,0BAAgD,GAAG;EAC9DC,KAAK,EAAE;IACLC,GAAG,EAAE,uDAAuD;IAC5DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,gBAAgB,EAAE;IAChBH,GAAG,EAAE,yEAAyE;IAC9EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,MAAM,EAAE;IACNJ,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,KAAK,EAAE;IACLL,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDI,YAAY,EAAE;IACZN,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMK,oBAA0C,GAAAC,aAAA,CAAAA,aAAA,KAClDV,0BAA0B;EAC7BW,SAAS,EAAE;IACTT,GAAG,EAAE,4FAA4F;IACjGC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDQ,UAAU,EAAE;IACVV,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDS,WAAW,EAAE;IACXX,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDU,QAAQ,EAAE;IACRZ,GAAG,EAAE,6FAA6F;IAClGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AAAC,EACF"}
@@ -76,7 +76,7 @@ function FormElementWithState(_ref2) {
76
76
  const {
77
77
  submitState
78
78
  } = useContext(DataContext) || {};
79
- const states = Object.entries(submitState).filter(_ref3 => {
79
+ const states = Object.entries(submitState || {}).filter(_ref3 => {
80
80
  let [, value] = _ref3;
81
81
  return value;
82
82
  });
@@ -86,7 +86,7 @@ function FormElementWithState(_ref2) {
86
86
  return `${id}-form-status-${key}`;
87
87
  })) || undefined
88
88
  }), children, ['error', 'warning', 'info'].map(key => {
89
- const value = submitState[key];
89
+ const value = submitState === null || submitState === void 0 ? void 0 : submitState[key];
90
90
  return React.createElement(FormStatus, {
91
91
  key: key,
92
92
  state: key,
@@ -1 +1 @@
1
- {"version":3,"file":"Handler.js","names":["React","useContext","DataContextProvider","DataContext","FormElement","FormStatus","useId","combineLabelledBy","FormHandler","_ref","children","defaultData","data","schema","ajvInstance","errorMessages","globalStatusId","filterSubmitData","filterData","transformIn","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","minimumAsyncBehaviorTime","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","autoComplete","locale","translations","disabled","required","rest","_objectWithoutProperties","_excluded","providerProps","id","createElement","FormElementWithState","_ref2","_excluded2","submitState","states","Object","entries","filter","_ref3","value","_extends","map","_ref4","key","undefined","state","className","show","Boolean","no_animation","shellSpace","top","bottom","String"],"sources":["../../../../../../src/extensions/forms/Form/Handler/Handler.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport { JsonObject } from 'json-pointer'\nimport DataContextProvider, {\n Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport DataContext from '../../DataContext/Context'\nimport FormElement from '../Element'\nimport type { ElementAllProps } from '../../../../elements/Element'\nimport FormStatus from '../../../../components/FormStatus'\nimport useId from '../../../../shared/helpers/useId'\nimport { combineLabelledBy } from '../../../../shared/component-helper'\n\nexport type Props = Omit<\n ElementAllProps,\n 'data' | 'as' | 'autoComplete'\n> & {\n /**\n * Will enable autoComplete for all nested Field.String fields\n */\n autoComplete?: boolean\n}\n\nexport default function FormHandler<Data extends JsonObject>({\n children,\n defaultData,\n data,\n schema,\n ajvInstance,\n errorMessages,\n globalStatusId,\n filterSubmitData,\n filterData,\n transformIn,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n scrollTopOnSubmit,\n sessionStorageId,\n autoComplete,\n locale,\n translations,\n disabled,\n required,\n ...rest\n}: ProviderProps<Data> & Omit<Props, keyof ProviderProps<Data>>) {\n const providerProps = {\n id: rest.id,\n defaultData,\n data,\n schema,\n ajvInstance,\n errorMessages,\n globalStatusId,\n filterSubmitData,\n filterData,\n transformIn,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n scrollTopOnSubmit,\n sessionStorageId,\n autoComplete,\n locale,\n translations,\n disabled,\n required,\n }\n\n return (\n <DataContextProvider {...providerProps}>\n <FormElementWithState {...rest}>{children}</FormElementWithState>\n </DataContextProvider>\n )\n}\n\nfunction FormElementWithState({ children, ...rest }) {\n const id = useId()\n const { submitState } = useContext(DataContext) || {}\n const states = Object.entries(submitState).filter(([, value]) => value)\n\n return (\n <FormElement\n {...rest}\n aria-labelledby={\n combineLabelledBy(\n rest,\n states.map(([key]) => {\n return `${id}-form-status-${key}`\n })\n ) || undefined\n }\n >\n {children}\n\n {['error', 'warning', 'info'].map((key) => {\n const value = submitState[key]\n return (\n <FormStatus\n key={key}\n state={key}\n id={`${id}-form-status-${key}`}\n className=\"dnb-forms-status\"\n show={Boolean(value)}\n no_animation={false}\n shellSpace={{ top: 'small', bottom: 'medium' }}\n >\n {String(value?.['message'] || value || '')}\n </FormStatus>\n )\n })}\n </FormElement>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Handler.js","names":["React","useContext","DataContextProvider","DataContext","FormElement","FormStatus","useId","combineLabelledBy","FormHandler","_ref","children","defaultData","data","schema","ajvInstance","errorMessages","globalStatusId","filterSubmitData","filterData","transformIn","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","minimumAsyncBehaviorTime","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","autoComplete","locale","translations","disabled","required","rest","_objectWithoutProperties","_excluded","providerProps","id","createElement","FormElementWithState","_ref2","_excluded2","submitState","states","Object","entries","filter","_ref3","value","_extends","map","_ref4","key","undefined","state","className","show","Boolean","no_animation","shellSpace","top","bottom","String"],"sources":["../../../../../../src/extensions/forms/Form/Handler/Handler.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport { JsonObject } from 'json-pointer'\nimport DataContextProvider, {\n Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport DataContext from '../../DataContext/Context'\nimport FormElement from '../Element'\nimport type { ElementAllProps } from '../../../../elements/Element'\nimport FormStatus from '../../../../components/FormStatus'\nimport useId from '../../../../shared/helpers/useId'\nimport { combineLabelledBy } from '../../../../shared/component-helper'\n\nexport type Props = Omit<\n ElementAllProps,\n 'data' | 'as' | 'autoComplete'\n> & {\n /**\n * Will enable autoComplete for all nested Field.String fields\n */\n autoComplete?: boolean\n}\n\nexport default function FormHandler<Data extends JsonObject>({\n children,\n defaultData,\n data,\n schema,\n ajvInstance,\n errorMessages,\n globalStatusId,\n filterSubmitData,\n filterData,\n transformIn,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n scrollTopOnSubmit,\n sessionStorageId,\n autoComplete,\n locale,\n translations,\n disabled,\n required,\n ...rest\n}: ProviderProps<Data> & Omit<Props, keyof ProviderProps<Data>>) {\n const providerProps = {\n id: rest.id,\n defaultData,\n data,\n schema,\n ajvInstance,\n errorMessages,\n globalStatusId,\n filterSubmitData,\n filterData,\n transformIn,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n scrollTopOnSubmit,\n sessionStorageId,\n autoComplete,\n locale,\n translations,\n disabled,\n required,\n }\n\n return (\n <DataContextProvider {...providerProps}>\n <FormElementWithState {...rest}>{children}</FormElementWithState>\n </DataContextProvider>\n )\n}\n\nfunction FormElementWithState({ children, ...rest }) {\n const id = useId()\n const { submitState } = useContext(DataContext) || {}\n const states = Object.entries(submitState || {}).filter(\n ([, value]) => value\n )\n\n return (\n <FormElement\n {...rest}\n aria-labelledby={\n combineLabelledBy(\n rest,\n states.map(([key]) => {\n return `${id}-form-status-${key}`\n })\n ) || undefined\n }\n >\n {children}\n\n {['error', 'warning', 'info'].map((key) => {\n const value = submitState?.[key]\n return (\n <FormStatus\n key={key}\n state={key}\n id={`${id}-form-status-${key}`}\n className=\"dnb-forms-status\"\n show={Boolean(value)}\n no_animation={false}\n shellSpace={{ top: 'small', bottom: 'medium' }}\n >\n {String(value?.['message'] || value || '')}\n </FormStatus>\n )\n })}\n </FormElement>\n )\n}\n"],"mappings":"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"}
@@ -8,6 +8,11 @@ export const HandlerProperties = _objectSpread(_objectSpread({}, ProviderPropert
8
8
  type: 'boolean',
9
9
  status: 'optional'
10
10
  },
11
+ required: {
12
+ doc: 'Will make all nested form fields required.',
13
+ type: 'boolean',
14
+ status: 'optional'
15
+ },
11
16
  autoComplete: {
12
17
  doc: 'Will set `autoComplete="on"` on all nested [Field.String](/uilib/extensions/forms/base-fields/String/)-fields.',
13
18
  type: 'boolean',
@@ -1 +1 @@
1
- {"version":3,"file":"HandlerDocs.js","names":["ProviderEvents","ProviderProperties","HandlerProperties","_objectSpread","disabled","doc","type","status","autoComplete","HandlerEvents"],"sources":["../../../../../../src/extensions/forms/Form/Handler/HandlerDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport {\n ProviderEvents,\n ProviderProperties,\n} from '../../DataContext/Provider/ProviderDocs'\n\nexport const HandlerProperties: PropertiesTableProps = {\n ...ProviderProperties,\n disabled: {\n doc: 'Will disable all nested form fields.',\n type: 'boolean',\n status: 'optional',\n },\n autoComplete: {\n doc: 'Will set `autoComplete=\"on\"` on all nested [Field.String](/uilib/extensions/forms/base-fields/String/)-fields.',\n type: 'boolean',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n '[DataContext.Provider](/uilib/extensions/forms/DataContext/Provider/properties)':\n {\n doc: 'Provider properties such as `data`.',\n type: 'Various',\n status: 'optional',\n },\n '[Form Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attributes)':\n {\n doc: 'All supported form element attributes.',\n type: 'string',\n status: 'optional',\n },\n}\n\nexport const HandlerEvents: PropertiesTableProps = {\n ...ProviderEvents,\n '[DataContext.Provider](/uilib/extensions/forms/DataContext/Provider/events)':\n {\n doc: 'events such as `onSubmit`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":";;;AACA,SACEA,cAAc,EACdC,kBAAkB,QACb,yCAAyC;AAEhD,OAAO,MAAMC,iBAAuC,GAAAC,aAAA,CAAAA,aAAA,KAC/CF,kBAAkB;EACrBG,QAAQ,EAAE;IACRC,GAAG,EAAE,sCAAsC;IAC3CC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDC,YAAY,EAAE;IACZH,GAAG,EAAE,gHAAgH;IACrHC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACD,iFAAiF,EAC/E;IACEF,GAAG,EAAE,qCAAqC;IAC1CC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACH,8FAA8F,EAC5F;IACEF,GAAG,EAAE,wCAAwC;IAC7CC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV;AAAC,EACJ;AAED,OAAO,MAAME,aAAmC,GAAAN,aAAA,CAAAA,aAAA,KAC3CH,cAAc;EACjB,6EAA6E,EAC3E;IACEK,GAAG,EAAE,4BAA4B;IACjCC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AAAC,EACJ"}
1
+ {"version":3,"file":"HandlerDocs.js","names":["ProviderEvents","ProviderProperties","HandlerProperties","_objectSpread","disabled","doc","type","status","required","autoComplete","HandlerEvents"],"sources":["../../../../../../src/extensions/forms/Form/Handler/HandlerDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport {\n ProviderEvents,\n ProviderProperties,\n} from '../../DataContext/Provider/ProviderDocs'\n\nexport const HandlerProperties: PropertiesTableProps = {\n ...ProviderProperties,\n disabled: {\n doc: 'Will disable all nested form fields.',\n type: 'boolean',\n status: 'optional',\n },\n required: {\n doc: 'Will make all nested form fields required.',\n type: 'boolean',\n status: 'optional',\n },\n autoComplete: {\n doc: 'Will set `autoComplete=\"on\"` on all nested [Field.String](/uilib/extensions/forms/base-fields/String/)-fields.',\n type: 'boolean',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n '[DataContext.Provider](/uilib/extensions/forms/DataContext/Provider/properties)':\n {\n doc: 'Provider properties such as `data`.',\n type: 'Various',\n status: 'optional',\n },\n '[Form Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attributes)':\n {\n doc: 'All supported form element attributes.',\n type: 'string',\n status: 'optional',\n },\n}\n\nexport const HandlerEvents: PropertiesTableProps = {\n ...ProviderEvents,\n '[DataContext.Provider](/uilib/extensions/forms/DataContext/Provider/events)':\n {\n doc: 'events such as `onSubmit`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":";;;AACA,SACEA,cAAc,EACdC,kBAAkB,QACb,yCAAyC;AAEhD,OAAO,MAAMC,iBAAuC,GAAAC,aAAA,CAAAA,aAAA,KAC/CF,kBAAkB;EACrBG,QAAQ,EAAE;IACRC,GAAG,EAAE,sCAAsC;IAC3CC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACRH,GAAG,EAAE,4CAA4C;IACjDC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDE,YAAY,EAAE;IACZJ,GAAG,EAAE,gHAAgH;IACrHC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACD,iFAAiF,EAC/E;IACEF,GAAG,EAAE,qCAAqC;IAC1CC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACH,8FAA8F,EAC5F;IACEF,GAAG,EAAE,wCAAwC;IAC7CC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV;AAAC,EACJ;AAED,OAAO,MAAMG,aAAmC,GAAAP,aAAA,CAAAA,aAAA,KAC3CH,cAAc;EACjB,6EAA6E,EAC3E;IACEK,GAAG,EAAE,4BAA4B;IACjCC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AAAC,EACJ"}
@@ -40,13 +40,15 @@ function WizardContainer(props) {
40
40
  handleSubmitCall,
41
41
  setShowAllErrors,
42
42
  showAllErrors,
43
- setSubmitState
43
+ setSubmitState,
44
+ fieldPropsRef
44
45
  } = useContext(DataContext);
45
46
  const id = useId(idProp);
46
47
  const [, forceUpdate] = useReducer(() => ({}), {});
47
48
  const activeIndexRef = useRef(initialActiveIndex);
48
49
  const errorOnStepRef = useRef({});
49
50
  const stepElementRef = useRef();
51
+ const fieldPropsMemoryRef = useRef();
50
52
  const sharedStateRef = useRef();
51
53
  sharedStateRef.current = useSharedState(hasContext && id ? id + '-wizard' : undefined);
52
54
  errorOnStepRef.current[activeIndexRef.current] = showAllErrors;
@@ -81,6 +83,7 @@ function WizardContainer(props) {
81
83
  skipStepChangeCallFromHook,
82
84
  mode
83
85
  } = _ref;
86
+ fieldPropsMemoryRef.current = fieldPropsRef.current;
84
87
  handleSubmitCall({
85
88
  skipErrorCheck,
86
89
  skipFieldValidation: skipErrorCheck,
@@ -97,13 +100,14 @@ function WizardContainer(props) {
97
100
  }
98
101
  if (!(result instanceof Error)) {
99
102
  handleLayoutEffect();
103
+ fieldPropsRef.current = fieldPropsMemoryRef.current;
100
104
  activeIndexRef.current = index;
101
105
  forceUpdate();
102
106
  }
103
107
  return result;
104
108
  }
105
109
  });
106
- }, [callOnStepChange, handleLayoutEffect, handleSubmitCall, isInteractionRef, onStepChange, setFormState, setShowAllErrors]);
110
+ }, [callOnStepChange, fieldPropsRef, handleLayoutEffect, handleSubmitCall, isInteractionRef, onStepChange, setFormState, setShowAllErrors]);
107
111
  const setActiveIndex = useCallback((index, options) => {
108
112
  if (index === activeIndexRef.current) {
109
113
  return;