@dnb/eufemia 10.49.0 → 10.50.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 (507) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/cjs/components/breadcrumb/BreadcrumbItem.d.ts +1 -1
  3. package/cjs/components/breadcrumb/BreadcrumbItem.js +3 -3
  4. package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  5. package/cjs/components/breadcrumb/BreadcrumbMultiple.js +2 -2
  6. package/cjs/components/breadcrumb/BreadcrumbMultiple.js.map +1 -1
  7. package/cjs/components/checkbox/CheckboxDocs.js +1 -1
  8. package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
  9. package/cjs/elements/ElementDocs.d.ts +2 -0
  10. package/cjs/elements/ElementDocs.js +35 -0
  11. package/cjs/elements/ElementDocs.js.map +1 -0
  12. package/cjs/elements/blockquote/BlockquoteDocs.d.ts +2 -0
  13. package/cjs/elements/blockquote/BlockquoteDocs.js +25 -0
  14. package/cjs/elements/blockquote/BlockquoteDocs.js.map +1 -0
  15. package/cjs/elements/hr/HrDocs.d.ts +2 -0
  16. package/cjs/elements/hr/HrDocs.js +25 -0
  17. package/cjs/elements/hr/HrDocs.js.map +1 -0
  18. package/cjs/elements/img/ImgDocs.d.ts +2 -0
  19. package/cjs/elements/img/ImgDocs.js +40 -0
  20. package/cjs/elements/img/ImgDocs.js.map +1 -0
  21. package/cjs/elements/lists/DlDocs.d.ts +2 -0
  22. package/cjs/elements/lists/DlDocs.js +21 -0
  23. package/cjs/elements/lists/DlDocs.js.map +1 -0
  24. package/cjs/elements/lists/OlDocs.d.ts +2 -0
  25. package/cjs/elements/lists/OlDocs.js +31 -0
  26. package/cjs/elements/lists/OlDocs.js.map +1 -0
  27. package/cjs/elements/lists/UlDocs.d.ts +2 -0
  28. package/cjs/elements/lists/UlDocs.js +31 -0
  29. package/cjs/elements/lists/UlDocs.js.map +1 -0
  30. package/cjs/elements/typography/IngressDocs.d.ts +2 -0
  31. package/cjs/elements/typography/IngressDocs.js +15 -0
  32. package/cjs/elements/typography/IngressDocs.js.map +1 -0
  33. package/cjs/elements/typography/LeadDocs.d.ts +2 -0
  34. package/cjs/elements/typography/LeadDocs.js +15 -0
  35. package/cjs/elements/typography/LeadDocs.js.map +1 -0
  36. package/cjs/elements/typography/PDocs.d.ts +2 -0
  37. package/cjs/elements/typography/PDocs.js +40 -0
  38. package/cjs/elements/typography/PDocs.js.map +1 -0
  39. package/cjs/extensions/forms/DataContext/Context.d.ts +18 -7
  40. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  41. package/cjs/extensions/forms/DataContext/Provider/Provider.js +63 -26
  42. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  43. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  44. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  45. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +34 -5
  46. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  47. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -4
  48. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -3
  49. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  50. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +1 -0
  51. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +65 -2
  52. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  53. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +10 -5
  54. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +59 -32
  55. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  56. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +5 -0
  57. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  58. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +1 -1
  59. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  60. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  61. package/cjs/extensions/forms/Form/Handler/Handler.js +3 -1
  62. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  63. package/cjs/extensions/forms/Form/Isolation/Isolation.js +10 -2
  64. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  65. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +0 -2
  66. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  67. package/cjs/extensions/forms/Form/Visibility/Visibility.js +9 -3
  68. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  69. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.d.ts +6 -0
  70. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.js +12 -0
  71. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -0
  72. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  73. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  74. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +3 -3
  75. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  76. package/cjs/extensions/forms/Form/data-context/getData.d.ts +2 -1
  77. package/cjs/extensions/forms/Form/data-context/getData.js +6 -1
  78. package/cjs/extensions/forms/Form/data-context/getData.js.map +1 -1
  79. package/cjs/extensions/forms/Form/data-context/useData.d.ts +4 -1
  80. package/cjs/extensions/forms/Form/data-context/useData.js +32 -9
  81. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  82. package/cjs/extensions/forms/Iterate/Array/Array.js +28 -11
  83. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  84. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js +5 -0
  85. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  86. package/cjs/extensions/forms/Iterate/Array/types.d.ts +1 -0
  87. package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
  88. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js +19 -7
  89. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  90. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +2 -2
  91. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  92. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +11 -1
  93. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  94. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +30 -10
  95. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  96. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +2 -2
  97. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  98. package/cjs/extensions/forms/Iterate/hooks/index.d.ts +1 -0
  99. package/cjs/extensions/forms/Iterate/hooks/index.js +7 -0
  100. package/cjs/extensions/forms/Iterate/hooks/index.js.map +1 -1
  101. package/cjs/extensions/forms/Iterate/hooks/useArrayLimit.d.ts +15 -0
  102. package/cjs/extensions/forms/Iterate/hooks/useArrayLimit.js +50 -0
  103. package/cjs/extensions/forms/Iterate/hooks/useArrayLimit.js.map +1 -0
  104. package/cjs/extensions/forms/Tools/Log.js +1 -1
  105. package/cjs/extensions/forms/Tools/Log.js.map +1 -1
  106. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +12 -0
  107. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js +27 -10
  108. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  109. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +10 -0
  110. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
  111. package/cjs/extensions/forms/Value/Number/Number.js +3 -2
  112. package/cjs/extensions/forms/Value/Number/Number.js.map +1 -1
  113. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +1 -0
  114. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.js +7 -23
  115. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -1
  116. package/cjs/extensions/forms/Value/SelectCountry/useCountry.d.ts +4 -0
  117. package/cjs/extensions/forms/Value/SelectCountry/useCountry.js +33 -0
  118. package/cjs/extensions/forms/Value/SelectCountry/useCountry.js.map +1 -0
  119. package/cjs/extensions/forms/Value/Selection/Selection.js +2 -1
  120. package/cjs/extensions/forms/Value/Selection/Selection.js.map +1 -1
  121. package/cjs/extensions/forms/Value/ValueDocs.js +5 -0
  122. package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
  123. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +8 -6
  124. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  125. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.d.ts +4 -2
  126. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +40 -22
  127. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  128. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js +10 -0
  129. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js.map +1 -1
  130. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +72 -70
  131. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  132. package/cjs/extensions/forms/constants/countries.d.ts +1 -0
  133. package/cjs/extensions/forms/constants/countries.js.map +1 -1
  134. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +5 -4
  135. package/cjs/extensions/forms/constants/locales/en-GB.js +8 -7
  136. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  137. package/cjs/extensions/forms/constants/locales/en-US.d.ts +5 -4
  138. package/cjs/extensions/forms/constants/locales/index.d.ts +10 -8
  139. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +5 -4
  140. package/cjs/extensions/forms/constants/locales/nb-NO.js +8 -7
  141. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  142. package/cjs/extensions/forms/hooks/DataValueDocs.js +1 -1
  143. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  144. package/cjs/extensions/forms/hooks/useFieldProps.js +138 -46
  145. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  146. package/cjs/extensions/forms/hooks/useValueProps.js +31 -8
  147. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  148. package/cjs/extensions/forms/types.d.ts +13 -6
  149. package/cjs/extensions/forms/types.js.map +1 -1
  150. package/cjs/shared/Eufemia.d.ts +1 -1
  151. package/cjs/shared/Eufemia.js +2 -2
  152. package/cjs/shared/Eufemia.js.map +1 -1
  153. package/cjs/shared/locales/en-GB.js.map +1 -1
  154. package/cjs/shared/locales/en-US.d.ts +1 -1
  155. package/cjs/shared/locales/en-US.js +2 -2
  156. package/cjs/shared/locales/en-US.js.map +1 -1
  157. package/cjs/style/core/scopes.scss +1 -1
  158. package/cjs/style/dnb-ui-basis.css +1 -1
  159. package/cjs/style/dnb-ui-basis.min.css +1 -1
  160. package/cjs/style/dnb-ui-body.css +1 -1
  161. package/cjs/style/dnb-ui-body.min.css +1 -1
  162. package/cjs/style/dnb-ui-core.css +1 -1
  163. package/cjs/style/dnb-ui-core.min.css +1 -1
  164. package/components/breadcrumb/BreadcrumbItem.d.ts +1 -1
  165. package/components/breadcrumb/BreadcrumbItem.js +3 -3
  166. package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  167. package/components/breadcrumb/BreadcrumbMultiple.js +2 -2
  168. package/components/breadcrumb/BreadcrumbMultiple.js.map +1 -1
  169. package/components/checkbox/CheckboxDocs.js +1 -1
  170. package/components/checkbox/CheckboxDocs.js.map +1 -1
  171. package/elements/ElementDocs.d.ts +2 -0
  172. package/elements/ElementDocs.js +28 -0
  173. package/elements/ElementDocs.js.map +1 -0
  174. package/elements/blockquote/BlockquoteDocs.d.ts +2 -0
  175. package/elements/blockquote/BlockquoteDocs.js +18 -0
  176. package/elements/blockquote/BlockquoteDocs.js.map +1 -0
  177. package/elements/hr/HrDocs.d.ts +2 -0
  178. package/elements/hr/HrDocs.js +18 -0
  179. package/elements/hr/HrDocs.js.map +1 -0
  180. package/elements/img/ImgDocs.d.ts +2 -0
  181. package/elements/img/ImgDocs.js +33 -0
  182. package/elements/img/ImgDocs.js.map +1 -0
  183. package/elements/lists/DlDocs.d.ts +2 -0
  184. package/elements/lists/DlDocs.js +12 -0
  185. package/elements/lists/DlDocs.js.map +1 -0
  186. package/elements/lists/OlDocs.d.ts +2 -0
  187. package/elements/lists/OlDocs.js +22 -0
  188. package/elements/lists/OlDocs.js.map +1 -0
  189. package/elements/lists/UlDocs.d.ts +2 -0
  190. package/elements/lists/UlDocs.js +22 -0
  191. package/elements/lists/UlDocs.js.map +1 -0
  192. package/elements/typography/IngressDocs.d.ts +2 -0
  193. package/elements/typography/IngressDocs.js +6 -0
  194. package/elements/typography/IngressDocs.js.map +1 -0
  195. package/elements/typography/LeadDocs.d.ts +2 -0
  196. package/elements/typography/LeadDocs.js +6 -0
  197. package/elements/typography/LeadDocs.js.map +1 -0
  198. package/elements/typography/PDocs.d.ts +2 -0
  199. package/elements/typography/PDocs.js +33 -0
  200. package/elements/typography/PDocs.js.map +1 -0
  201. package/es/components/breadcrumb/BreadcrumbItem.d.ts +1 -1
  202. package/es/components/breadcrumb/BreadcrumbItem.js +3 -3
  203. package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  204. package/es/components/breadcrumb/BreadcrumbMultiple.js +2 -2
  205. package/es/components/breadcrumb/BreadcrumbMultiple.js.map +1 -1
  206. package/es/components/checkbox/CheckboxDocs.js +1 -1
  207. package/es/components/checkbox/CheckboxDocs.js.map +1 -1
  208. package/es/elements/ElementDocs.d.ts +2 -0
  209. package/es/elements/ElementDocs.js +28 -0
  210. package/es/elements/ElementDocs.js.map +1 -0
  211. package/es/elements/blockquote/BlockquoteDocs.d.ts +2 -0
  212. package/es/elements/blockquote/BlockquoteDocs.js +18 -0
  213. package/es/elements/blockquote/BlockquoteDocs.js.map +1 -0
  214. package/es/elements/hr/HrDocs.d.ts +2 -0
  215. package/es/elements/hr/HrDocs.js +18 -0
  216. package/es/elements/hr/HrDocs.js.map +1 -0
  217. package/es/elements/img/ImgDocs.d.ts +2 -0
  218. package/es/elements/img/ImgDocs.js +33 -0
  219. package/es/elements/img/ImgDocs.js.map +1 -0
  220. package/es/elements/lists/DlDocs.d.ts +2 -0
  221. package/es/elements/lists/DlDocs.js +12 -0
  222. package/es/elements/lists/DlDocs.js.map +1 -0
  223. package/es/elements/lists/OlDocs.d.ts +2 -0
  224. package/es/elements/lists/OlDocs.js +22 -0
  225. package/es/elements/lists/OlDocs.js.map +1 -0
  226. package/es/elements/lists/UlDocs.d.ts +2 -0
  227. package/es/elements/lists/UlDocs.js +22 -0
  228. package/es/elements/lists/UlDocs.js.map +1 -0
  229. package/es/elements/typography/IngressDocs.d.ts +2 -0
  230. package/es/elements/typography/IngressDocs.js +6 -0
  231. package/es/elements/typography/IngressDocs.js.map +1 -0
  232. package/es/elements/typography/LeadDocs.d.ts +2 -0
  233. package/es/elements/typography/LeadDocs.js +6 -0
  234. package/es/elements/typography/LeadDocs.js.map +1 -0
  235. package/es/elements/typography/PDocs.d.ts +2 -0
  236. package/es/elements/typography/PDocs.js +33 -0
  237. package/es/elements/typography/PDocs.js.map +1 -0
  238. package/es/extensions/forms/DataContext/Context.d.ts +18 -7
  239. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  240. package/es/extensions/forms/DataContext/Provider/Provider.js +61 -26
  241. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  242. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  243. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  244. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +35 -6
  245. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  246. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -4
  247. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +7 -4
  248. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  249. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +1 -0
  250. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +63 -1
  251. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  252. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +10 -5
  253. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +50 -21
  254. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  255. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +5 -0
  256. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  257. package/es/extensions/forms/FieldBlock/FieldBlock.js +1 -1
  258. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  259. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  260. package/es/extensions/forms/Form/Handler/Handler.js +3 -1
  261. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  262. package/es/extensions/forms/Form/Isolation/Isolation.js +10 -2
  263. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  264. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +0 -2
  265. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  266. package/es/extensions/forms/Form/Visibility/Visibility.js +9 -3
  267. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  268. package/es/extensions/forms/Form/Visibility/VisibilityContext.d.ts +6 -0
  269. package/es/extensions/forms/Form/Visibility/VisibilityContext.js +6 -0
  270. package/es/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -0
  271. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  272. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  273. package/es/extensions/forms/Form/Visibility/useVisibility.js +3 -3
  274. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  275. package/es/extensions/forms/Form/data-context/getData.d.ts +2 -1
  276. package/es/extensions/forms/Form/data-context/getData.js +6 -1
  277. package/es/extensions/forms/Form/data-context/getData.js.map +1 -1
  278. package/es/extensions/forms/Form/data-context/useData.d.ts +4 -1
  279. package/es/extensions/forms/Form/data-context/useData.js +31 -9
  280. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  281. package/es/extensions/forms/Iterate/Array/Array.js +29 -12
  282. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  283. package/es/extensions/forms/Iterate/Array/ArrayDocs.js +5 -0
  284. package/es/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  285. package/es/extensions/forms/Iterate/Array/types.d.ts +1 -0
  286. package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
  287. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js +15 -5
  288. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  289. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +2 -2
  290. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  291. package/es/extensions/forms/Iterate/PushButton/PushButton.js +12 -2
  292. package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  293. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +31 -11
  294. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  295. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +2 -2
  296. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  297. package/es/extensions/forms/Iterate/hooks/index.d.ts +1 -0
  298. package/es/extensions/forms/Iterate/hooks/index.js +1 -0
  299. package/es/extensions/forms/Iterate/hooks/index.js.map +1 -1
  300. package/es/extensions/forms/Iterate/hooks/useArrayLimit.d.ts +15 -0
  301. package/es/extensions/forms/Iterate/hooks/useArrayLimit.js +43 -0
  302. package/es/extensions/forms/Iterate/hooks/useArrayLimit.js.map +1 -0
  303. package/es/extensions/forms/Tools/Log.js +1 -1
  304. package/es/extensions/forms/Tools/Log.js.map +1 -1
  305. package/es/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +12 -0
  306. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js +26 -9
  307. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  308. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +10 -0
  309. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
  310. package/es/extensions/forms/Value/Number/Number.js +3 -2
  311. package/es/extensions/forms/Value/Number/Number.js.map +1 -1
  312. package/es/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +1 -0
  313. package/es/extensions/forms/Value/SelectCountry/SelectCountry.js +7 -22
  314. package/es/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -1
  315. package/es/extensions/forms/Value/SelectCountry/useCountry.d.ts +4 -0
  316. package/es/extensions/forms/Value/SelectCountry/useCountry.js +27 -0
  317. package/es/extensions/forms/Value/SelectCountry/useCountry.js.map +1 -0
  318. package/es/extensions/forms/Value/Selection/Selection.js +2 -1
  319. package/es/extensions/forms/Value/Selection/Selection.js.map +1 -1
  320. package/es/extensions/forms/Value/ValueDocs.js +5 -0
  321. package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
  322. package/es/extensions/forms/ValueBlock/ValueBlock.js +8 -6
  323. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  324. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.d.ts +4 -2
  325. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +40 -22
  326. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  327. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js +10 -0
  328. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js.map +1 -1
  329. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +72 -70
  330. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  331. package/es/extensions/forms/constants/countries.d.ts +1 -0
  332. package/es/extensions/forms/constants/countries.js.map +1 -1
  333. package/es/extensions/forms/constants/locales/en-GB.d.ts +5 -4
  334. package/es/extensions/forms/constants/locales/en-GB.js +8 -7
  335. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  336. package/es/extensions/forms/constants/locales/en-US.d.ts +5 -4
  337. package/es/extensions/forms/constants/locales/index.d.ts +10 -8
  338. package/es/extensions/forms/constants/locales/nb-NO.d.ts +5 -4
  339. package/es/extensions/forms/constants/locales/nb-NO.js +8 -7
  340. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  341. package/es/extensions/forms/hooks/DataValueDocs.js +1 -1
  342. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  343. package/es/extensions/forms/hooks/useFieldProps.js +131 -42
  344. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  345. package/es/extensions/forms/hooks/useValueProps.js +32 -9
  346. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  347. package/es/extensions/forms/types.d.ts +13 -6
  348. package/es/extensions/forms/types.js.map +1 -1
  349. package/es/shared/Eufemia.d.ts +1 -1
  350. package/es/shared/Eufemia.js +2 -2
  351. package/es/shared/Eufemia.js.map +1 -1
  352. package/es/shared/locales/en-GB.js.map +1 -1
  353. package/es/shared/locales/en-US.d.ts +1 -1
  354. package/es/shared/locales/en-US.js +2 -2
  355. package/es/shared/locales/en-US.js.map +1 -1
  356. package/es/style/core/scopes.scss +1 -1
  357. package/es/style/dnb-ui-basis.css +1 -1
  358. package/es/style/dnb-ui-basis.min.css +1 -1
  359. package/es/style/dnb-ui-body.css +1 -1
  360. package/es/style/dnb-ui-body.min.css +1 -1
  361. package/es/style/dnb-ui-core.css +1 -1
  362. package/es/style/dnb-ui-core.min.css +1 -1
  363. package/esm/dnb-ui-basis.min.mjs +1 -1
  364. package/esm/dnb-ui-components.min.mjs +1 -1
  365. package/esm/dnb-ui-elements.min.mjs +1 -1
  366. package/esm/dnb-ui-extensions.min.mjs +3 -3
  367. package/esm/dnb-ui-lib.min.mjs +1 -1
  368. package/extensions/forms/DataContext/Context.d.ts +18 -7
  369. package/extensions/forms/DataContext/Context.js.map +1 -1
  370. package/extensions/forms/DataContext/Provider/Provider.js +63 -26
  371. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  372. package/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  373. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  374. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +35 -6
  375. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  376. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -4
  377. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +7 -4
  378. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  379. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +1 -0
  380. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +63 -1
  381. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  382. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +10 -5
  383. package/extensions/forms/Field/SelectCountry/SelectCountry.js +59 -33
  384. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  385. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +5 -0
  386. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  387. package/extensions/forms/FieldBlock/FieldBlock.js +1 -1
  388. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  389. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  390. package/extensions/forms/Form/Handler/Handler.js +3 -1
  391. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  392. package/extensions/forms/Form/Isolation/Isolation.js +10 -2
  393. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  394. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +0 -2
  395. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  396. package/extensions/forms/Form/Visibility/Visibility.js +9 -3
  397. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  398. package/extensions/forms/Form/Visibility/VisibilityContext.d.ts +6 -0
  399. package/extensions/forms/Form/Visibility/VisibilityContext.js +6 -0
  400. package/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -0
  401. package/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  402. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  403. package/extensions/forms/Form/Visibility/useVisibility.js +3 -3
  404. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  405. package/extensions/forms/Form/data-context/getData.d.ts +2 -1
  406. package/extensions/forms/Form/data-context/getData.js +6 -1
  407. package/extensions/forms/Form/data-context/getData.js.map +1 -1
  408. package/extensions/forms/Form/data-context/useData.d.ts +4 -1
  409. package/extensions/forms/Form/data-context/useData.js +32 -9
  410. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  411. package/extensions/forms/Iterate/Array/Array.js +29 -12
  412. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  413. package/extensions/forms/Iterate/Array/ArrayDocs.js +5 -0
  414. package/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  415. package/extensions/forms/Iterate/Array/types.d.ts +1 -0
  416. package/extensions/forms/Iterate/Array/types.js.map +1 -1
  417. package/extensions/forms/Iterate/EditContainer/CancelButton.js +18 -7
  418. package/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  419. package/extensions/forms/Iterate/EditContainer/EditContainer.js +2 -2
  420. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  421. package/extensions/forms/Iterate/PushButton/PushButton.js +12 -2
  422. package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  423. package/extensions/forms/Iterate/PushContainer/PushContainer.js +31 -11
  424. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  425. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +2 -2
  426. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  427. package/extensions/forms/Iterate/hooks/index.d.ts +1 -0
  428. package/extensions/forms/Iterate/hooks/index.js +1 -0
  429. package/extensions/forms/Iterate/hooks/index.js.map +1 -1
  430. package/extensions/forms/Iterate/hooks/useArrayLimit.d.ts +15 -0
  431. package/extensions/forms/Iterate/hooks/useArrayLimit.js +44 -0
  432. package/extensions/forms/Iterate/hooks/useArrayLimit.js.map +1 -0
  433. package/extensions/forms/Tools/Log.js +1 -1
  434. package/extensions/forms/Tools/Log.js.map +1 -1
  435. package/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +12 -0
  436. package/extensions/forms/Value/ArraySelection/ArraySelection.js +27 -10
  437. package/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  438. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +10 -0
  439. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
  440. package/extensions/forms/Value/Number/Number.js +3 -2
  441. package/extensions/forms/Value/Number/Number.js.map +1 -1
  442. package/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +1 -0
  443. package/extensions/forms/Value/SelectCountry/SelectCountry.js +7 -22
  444. package/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -1
  445. package/extensions/forms/Value/SelectCountry/useCountry.d.ts +4 -0
  446. package/extensions/forms/Value/SelectCountry/useCountry.js +27 -0
  447. package/extensions/forms/Value/SelectCountry/useCountry.js.map +1 -0
  448. package/extensions/forms/Value/Selection/Selection.js +2 -1
  449. package/extensions/forms/Value/Selection/Selection.js.map +1 -1
  450. package/extensions/forms/Value/ValueDocs.js +5 -0
  451. package/extensions/forms/Value/ValueDocs.js.map +1 -1
  452. package/extensions/forms/ValueBlock/ValueBlock.js +8 -6
  453. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  454. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.d.ts +4 -2
  455. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +40 -22
  456. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  457. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js +10 -0
  458. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js.map +1 -1
  459. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +72 -70
  460. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  461. package/extensions/forms/constants/countries.d.ts +1 -0
  462. package/extensions/forms/constants/countries.js.map +1 -1
  463. package/extensions/forms/constants/locales/en-GB.d.ts +5 -4
  464. package/extensions/forms/constants/locales/en-GB.js +8 -7
  465. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  466. package/extensions/forms/constants/locales/en-US.d.ts +5 -4
  467. package/extensions/forms/constants/locales/index.d.ts +10 -8
  468. package/extensions/forms/constants/locales/nb-NO.d.ts +5 -4
  469. package/extensions/forms/constants/locales/nb-NO.js +8 -7
  470. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  471. package/extensions/forms/hooks/DataValueDocs.js +1 -1
  472. package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  473. package/extensions/forms/hooks/useFieldProps.js +136 -46
  474. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  475. package/extensions/forms/hooks/useValueProps.js +32 -9
  476. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  477. package/extensions/forms/types.d.ts +13 -6
  478. package/extensions/forms/types.js.map +1 -1
  479. package/package.json +1 -1
  480. package/shared/Eufemia.d.ts +1 -1
  481. package/shared/Eufemia.js +2 -2
  482. package/shared/Eufemia.js.map +1 -1
  483. package/shared/locales/en-GB.js.map +1 -1
  484. package/shared/locales/en-US.d.ts +1 -1
  485. package/shared/locales/en-US.js +2 -2
  486. package/shared/locales/en-US.js.map +1 -1
  487. package/style/core/scopes.scss +1 -1
  488. package/style/dnb-ui-basis.css +1 -1
  489. package/style/dnb-ui-basis.min.css +1 -1
  490. package/style/dnb-ui-body.css +1 -1
  491. package/style/dnb-ui-body.min.css +1 -1
  492. package/style/dnb-ui-core.css +1 -1
  493. package/style/dnb-ui-core.min.css +1 -1
  494. package/umd/dnb-ui-basis.min.js +1 -1
  495. package/umd/dnb-ui-components.min.js +1 -1
  496. package/umd/dnb-ui-elements.min.js +1 -1
  497. package/umd/dnb-ui-extensions.min.js +3 -3
  498. package/umd/dnb-ui-lib.min.js +1 -1
  499. package/cjs/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.d.ts +0 -1
  500. package/cjs/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js +0 -25
  501. package/cjs/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js.map +0 -1
  502. package/es/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.d.ts +0 -1
  503. package/es/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js +0 -19
  504. package/es/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js.map +0 -1
  505. package/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.d.ts +0 -1
  506. package/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js +0 -19
  507. package/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js.map +0 -1
@@ -14,11 +14,18 @@ var _ToolbarContext = _interopRequireDefault(require("../Toolbar/ToolbarContext"
14
14
  var _FieldBoundaryContext = _interopRequireDefault(require("../../DataContext/FieldBoundary/FieldBoundaryContext"));
15
15
  var _icons = require("../../../../icons");
16
16
  var _RemoveButton = _interopRequireDefault(require("../RemoveButton"));
17
+ const _excluded = ["onClick"];
17
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
19
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
20
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
21
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
22
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
23
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
21
24
  function EditToolbarTools(props) {
25
+ const {
26
+ onClick
27
+ } = props,
28
+ rest = _objectWithoutProperties(props, _excluded);
22
29
  const {
23
30
  restoreOriginalValue,
24
31
  switchContainerMode,
@@ -49,7 +56,11 @@ function EditToolbarTools(props) {
49
56
  valueBackupRef.current = null;
50
57
  }
51
58
  }, [arrayValue, containerMode, index]);
52
- const cancelHandler = (0, _react.useCallback)(() => {
59
+ const cancelHandler = (0, _react.useCallback)(_ref => {
60
+ let {
61
+ event
62
+ } = _ref;
63
+ onClick === null || onClick === void 0 ? void 0 : onClick(event);
53
64
  if (hasError && initialContainerMode === 'auto') {
54
65
  setShowBoundaryErrors === null || setShowBoundaryErrors === void 0 ? void 0 : setShowBoundaryErrors(true);
55
66
  if (hasVisibleError) {
@@ -61,7 +72,7 @@ function EditToolbarTools(props) {
61
72
  setShowBoundaryErrors === null || setShowBoundaryErrors === void 0 ? void 0 : setShowBoundaryErrors(false);
62
73
  switchContainerMode === null || switchContainerMode === void 0 ? void 0 : switchContainerMode('view');
63
74
  }
64
- }, [hasError, hasVisibleError, initialContainerMode, restoreOriginalValue, setShowBoundaryErrors, setShowError, switchContainerMode]);
75
+ }, [hasError, hasVisibleError, initialContainerMode, onClick, restoreOriginalValue, setShowBoundaryErrors, setShowError, switchContainerMode]);
65
76
  const wasNew = useWasNew({
66
77
  isNew,
67
78
  containerMode
@@ -71,21 +82,22 @@ function EditToolbarTools(props) {
71
82
  }
72
83
  if (wasNew) {
73
84
  return _react.default.createElement(_RemoveButton.default, _extends({
74
- text: removeButton
75
- }, props));
85
+ text: removeButton,
86
+ onClick: onClick
87
+ }, rest));
76
88
  }
77
89
  return _react.default.createElement(_components.Button, _extends({
78
90
  variant: "tertiary",
79
91
  icon: _icons.close,
80
92
  icon_position: "left",
81
93
  on_click: cancelHandler
82
- }, props), cancelButton);
94
+ }, rest), cancelButton);
83
95
  }
84
- function useWasNew(_ref) {
96
+ function useWasNew(_ref2) {
85
97
  let {
86
98
  isNew,
87
99
  containerMode
88
- } = _ref;
100
+ } = _ref2;
89
101
  const wasNewRef = (0, _react.useRef)(isNew);
90
102
  (0, _react.useEffect)(() => {
91
103
  if (containerMode === 'view') {
@@ -1 +1 @@
1
- {"version":3,"file":"CancelButton.js","names":["_react","_interopRequireWildcard","require","_components","_useTranslation","_interopRequireDefault","_IterateItemContext","_ToolbarContext","_FieldBoundaryContext","_icons","_RemoveButton","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","EditToolbarTools","props","restoreOriginalValue","switchContainerMode","containerMode","initialContainerMode","arrayValue","isNew","index","useContext","IterateItemContext","hasError","hasVisibleError","setShowBoundaryErrors","FieldBoundaryContext","setShowError","ToolbarContext","cancelButton","removeButton","useTranslation","IterateEditContainer","valueBackupRef","useRef","useEffect","current","cancelHandler","useCallback","wasNew","useWasNew","createElement","Fragment","text","Button","variant","icon","close","icon_position","on_click","_ref","wasNewRef"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/CancelButton.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useRef } from 'react'\nimport { Button } from '../../../../components'\nimport useTranslation from '../../hooks/useTranslation'\nimport IterateItemContext from '../IterateItemContext'\nimport ToolbarContext from '../Toolbar/ToolbarContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport { close } from '../../../../icons'\nimport { ButtonProps } from '../../../../components/Button'\nimport RemoveButton, { Props as RemoveButtonProps } from '../RemoveButton'\nimport { ContainerMode } from '../Array'\n\ntype Props = ButtonProps\n\nexport default function EditToolbarTools(props: Props) {\n const {\n restoreOriginalValue,\n switchContainerMode,\n containerMode,\n initialContainerMode,\n arrayValue,\n isNew,\n index,\n } = useContext(IterateItemContext) || {}\n const { hasError, hasVisibleError, setShowBoundaryErrors } =\n useContext(FieldBoundaryContext) || {}\n const { setShowError } = useContext(ToolbarContext) || {}\n\n const { cancelButton, removeButton } =\n useTranslation().IterateEditContainer\n const valueBackupRef = useRef<unknown>()\n\n useEffect(() => {\n if (containerMode === 'edit' && !valueBackupRef.current) {\n valueBackupRef.current = arrayValue?.[index]\n }\n if (containerMode === 'view') {\n valueBackupRef.current = null\n }\n }, [arrayValue, containerMode, index])\n\n const cancelHandler = useCallback(() => {\n if (hasError && initialContainerMode === 'auto') {\n setShowBoundaryErrors?.(true)\n if (hasVisibleError) {\n setShowError(true)\n }\n } else {\n restoreOriginalValue?.(valueBackupRef.current)\n setShowError(false)\n setShowBoundaryErrors?.(false)\n switchContainerMode?.('view')\n }\n }, [\n hasError,\n hasVisibleError,\n initialContainerMode,\n restoreOriginalValue,\n setShowBoundaryErrors,\n setShowError,\n switchContainerMode,\n ])\n\n const wasNew = useWasNew({ isNew, containerMode })\n\n if (containerMode === 'edit' && arrayValue?.length === 0) {\n return <></>\n }\n\n if (wasNew) {\n return (\n <RemoveButton\n text={removeButton}\n {...(props as RemoveButtonProps)}\n />\n )\n }\n\n return (\n <Button\n variant=\"tertiary\"\n icon={close}\n icon_position=\"left\"\n on_click={cancelHandler}\n {...props}\n >\n {cancelButton}\n </Button>\n )\n}\n\nexport function useWasNew({\n isNew,\n containerMode,\n}: {\n isNew: boolean\n containerMode: ContainerMode\n}) {\n const wasNewRef = useRef<unknown>(isNew)\n\n useEffect(() => {\n if (containerMode === 'view') {\n wasNewRef.current = false\n }\n }, [isNew, containerMode])\n\n return wasNewRef.current\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,eAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,qBAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AAEA,IAAAQ,aAAA,GAAAL,sBAAA,CAAAH,OAAA;AAA0E,SAAAG,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAd,wBAAAU,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAAA,SAAAW,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAV,GAAA,IAAAa,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAb,GAAA,KAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,gBAAAS,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAH,SAAA;AAK3D,SAASI,gBAAgBA,CAACC,KAAY,EAAE;EACrD,MAAM;IACJC,oBAAoB;IACpBC,mBAAmB;IACnBC,aAAa;IACbC,oBAAoB;IACpBC,UAAU;IACVC,KAAK;IACLC;EACF,CAAC,GAAG,IAAAC,iBAAU,EAACC,2BAAkB,CAAC,IAAI,CAAC,CAAC;EACxC,MAAM;IAAEC,QAAQ;IAAEC,eAAe;IAAEC;EAAsB,CAAC,GACxD,IAAAJ,iBAAU,EAACK,6BAAoB,CAAC,IAAI,CAAC,CAAC;EACxC,MAAM;IAAEC;EAAa,CAAC,GAAG,IAAAN,iBAAU,EAACO,uBAAc,CAAC,IAAI,CAAC,CAAC;EAEzD,MAAM;IAAEC,YAAY;IAAEC;EAAa,CAAC,GAClC,IAAAC,uBAAc,EAAC,CAAC,CAACC,oBAAoB;EACvC,MAAMC,cAAc,GAAG,IAAAC,aAAM,EAAU,CAAC;EAExC,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAInB,aAAa,KAAK,MAAM,IAAI,CAACiB,cAAc,CAACG,OAAO,EAAE;MACvDH,cAAc,CAACG,OAAO,GAAGlB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAGE,KAAK,CAAC;IAC9C;IACA,IAAIJ,aAAa,KAAK,MAAM,EAAE;MAC5BiB,cAAc,CAACG,OAAO,GAAG,IAAI;IAC/B;EACF,CAAC,EAAE,CAAClB,UAAU,EAAEF,aAAa,EAAEI,KAAK,CAAC,CAAC;EAEtC,MAAMiB,aAAa,GAAG,IAAAC,kBAAW,EAAC,MAAM;IACtC,IAAIf,QAAQ,IAAIN,oBAAoB,KAAK,MAAM,EAAE;MAC/CQ,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAG,IAAI,CAAC;MAC7B,IAAID,eAAe,EAAE;QACnBG,YAAY,CAAC,IAAI,CAAC;MACpB;IACF,CAAC,MAAM;MACLb,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAGmB,cAAc,CAACG,OAAO,CAAC;MAC9CT,YAAY,CAAC,KAAK,CAAC;MACnBF,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAG,KAAK,CAAC;MAC9BV,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;IAC/B;EACF,CAAC,EAAE,CACDQ,QAAQ,EACRC,eAAe,EACfP,oBAAoB,EACpBH,oBAAoB,EACpBW,qBAAqB,EACrBE,YAAY,EACZZ,mBAAmB,CACpB,CAAC;EAEF,MAAMwB,MAAM,GAAGC,SAAS,CAAC;IAAErB,KAAK;IAAEH;EAAc,CAAC,CAAC;EAElD,IAAIA,aAAa,KAAK,MAAM,IAAI,CAAAE,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAET,MAAM,MAAK,CAAC,EAAE;IACxD,OAAOvC,MAAA,CAAAa,OAAA,CAAA0D,aAAA,CAAAvE,MAAA,CAAAa,OAAA,CAAA2D,QAAA,MAAI,CAAC;EACd;EAEA,IAAIH,MAAM,EAAE;IACV,OACErE,MAAA,CAAAa,OAAA,CAAA0D,aAAA,CAAC7D,aAAA,CAAAG,OAAY,EAAAoB,QAAA;MACXwC,IAAI,EAAEb;IAAa,GACdjB,KAAK,CACX,CAAC;EAEN;EAEA,OACE3C,MAAA,CAAAa,OAAA,CAAA0D,aAAA,CAACpE,WAAA,CAAAuE,MAAM,EAAAzC,QAAA;IACL0C,OAAO,EAAC,UAAU;IAClBC,IAAI,EAAEC,YAAM;IACZC,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEZ;EAAc,GACpBxB,KAAK,GAERgB,YACK,CAAC;AAEb;AAEO,SAASW,SAASA,CAAAU,IAAA,EAMtB;EAAA,IANuB;IACxB/B,KAAK;IACLH;EAIF,CAAC,GAAAkC,IAAA;EACC,MAAMC,SAAS,GAAG,IAAAjB,aAAM,EAAUf,KAAK,CAAC;EAExC,IAAAgB,gBAAS,EAAC,MAAM;IACd,IAAInB,aAAa,KAAK,MAAM,EAAE;MAC5BmC,SAAS,CAACf,OAAO,GAAG,KAAK;IAC3B;EACF,CAAC,EAAE,CAACjB,KAAK,EAAEH,aAAa,CAAC,CAAC;EAE1B,OAAOmC,SAAS,CAACf,OAAO;AAC1B"}
1
+ {"version":3,"file":"CancelButton.js","names":["_react","_interopRequireWildcard","require","_components","_useTranslation","_interopRequireDefault","_IterateItemContext","_ToolbarContext","_FieldBoundaryContext","_icons","_RemoveButton","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","EditToolbarTools","props","onClick","rest","restoreOriginalValue","switchContainerMode","containerMode","initialContainerMode","arrayValue","isNew","index","useContext","IterateItemContext","hasError","hasVisibleError","setShowBoundaryErrors","FieldBoundaryContext","setShowError","ToolbarContext","cancelButton","removeButton","useTranslation","IterateEditContainer","valueBackupRef","useRef","useEffect","current","cancelHandler","useCallback","_ref","event","wasNew","useWasNew","createElement","Fragment","text","Button","variant","icon","close","icon_position","on_click","_ref2","wasNewRef"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/CancelButton.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useRef } from 'react'\nimport { Button } from '../../../../components'\nimport useTranslation from '../../hooks/useTranslation'\nimport IterateItemContext from '../IterateItemContext'\nimport ToolbarContext from '../Toolbar/ToolbarContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport { close } from '../../../../icons'\nimport { ButtonProps } from '../../../../components/Button'\nimport RemoveButton, { Props as RemoveButtonProps } from '../RemoveButton'\nimport { ContainerMode } from '../Array'\n\ntype Props = ButtonProps\n\nexport default function EditToolbarTools(props: Props) {\n const { onClick, ...rest } = props\n const {\n restoreOriginalValue,\n switchContainerMode,\n containerMode,\n initialContainerMode,\n arrayValue,\n isNew,\n index,\n } = useContext(IterateItemContext) || {}\n const { hasError, hasVisibleError, setShowBoundaryErrors } =\n useContext(FieldBoundaryContext) || {}\n const { setShowError } = useContext(ToolbarContext) || {}\n\n const { cancelButton, removeButton } =\n useTranslation().IterateEditContainer\n const valueBackupRef = useRef<unknown>()\n\n useEffect(() => {\n if (containerMode === 'edit' && !valueBackupRef.current) {\n valueBackupRef.current = arrayValue?.[index]\n }\n if (containerMode === 'view') {\n valueBackupRef.current = null\n }\n }, [arrayValue, containerMode, index])\n\n const cancelHandler = useCallback(\n ({ event }: { event: React.MouseEvent<HTMLButtonElement> }) => {\n onClick?.(event)\n if (hasError && initialContainerMode === 'auto') {\n setShowBoundaryErrors?.(true)\n if (hasVisibleError) {\n setShowError(true)\n }\n } else {\n restoreOriginalValue?.(valueBackupRef.current)\n setShowError(false)\n setShowBoundaryErrors?.(false)\n switchContainerMode?.('view')\n }\n },\n [\n hasError,\n hasVisibleError,\n initialContainerMode,\n onClick,\n restoreOriginalValue,\n setShowBoundaryErrors,\n setShowError,\n switchContainerMode,\n ]\n )\n\n const wasNew = useWasNew({ isNew, containerMode })\n\n if (containerMode === 'edit' && arrayValue?.length === 0) {\n return <></>\n }\n\n if (wasNew) {\n return (\n <RemoveButton\n text={removeButton}\n onClick={onClick}\n {...(rest as RemoveButtonProps)}\n />\n )\n }\n\n return (\n <Button\n variant=\"tertiary\"\n icon={close}\n icon_position=\"left\"\n on_click={cancelHandler}\n {...rest}\n >\n {cancelButton}\n </Button>\n )\n}\n\nexport function useWasNew({\n isNew,\n containerMode,\n}: {\n isNew: boolean\n containerMode: ContainerMode\n}) {\n const wasNewRef = useRef<unknown>(isNew)\n\n useEffect(() => {\n if (containerMode === 'view') {\n wasNewRef.current = false\n }\n }, [isNew, containerMode])\n\n return wasNewRef.current\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,eAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,qBAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AAEA,IAAAQ,aAAA,GAAAL,sBAAA,CAAAH,OAAA;AAA0E,MAAAS,SAAA;AAAA,SAAAN,uBAAAO,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAf,wBAAAW,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAAA,SAAAW,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAV,GAAA,IAAAa,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAb,GAAA,KAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,gBAAAS,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAH,SAAA;AAAA,SAAAI,yBAAAF,MAAA,EAAAG,QAAA,QAAAH,MAAA,yBAAAJ,MAAA,GAAAQ,6BAAA,CAAAJ,MAAA,EAAAG,QAAA,OAAAhB,GAAA,EAAAU,CAAA,MAAAb,MAAA,CAAAqB,qBAAA,QAAAC,gBAAA,GAAAtB,MAAA,CAAAqB,qBAAA,CAAAL,MAAA,QAAAH,CAAA,MAAAA,CAAA,GAAAS,gBAAA,CAAAP,MAAA,EAAAF,CAAA,MAAAV,GAAA,GAAAmB,gBAAA,CAAAT,CAAA,OAAAM,QAAA,CAAAI,OAAA,CAAApB,GAAA,uBAAAH,MAAA,CAAAI,SAAA,CAAAoB,oBAAA,CAAAlB,IAAA,CAAAU,MAAA,EAAAb,GAAA,aAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,cAAAS,MAAA;AAAA,SAAAQ,8BAAAJ,MAAA,EAAAG,QAAA,QAAAH,MAAA,yBAAAJ,MAAA,WAAAa,UAAA,GAAAzB,MAAA,CAAA0B,IAAA,CAAAV,MAAA,OAAAb,GAAA,EAAAU,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAAY,UAAA,CAAAV,MAAA,EAAAF,CAAA,MAAAV,GAAA,GAAAsB,UAAA,CAAAZ,CAAA,OAAAM,QAAA,CAAAI,OAAA,CAAApB,GAAA,kBAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,YAAAS,MAAA;AAK3D,SAASe,gBAAgBA,CAACC,KAAY,EAAE;EACrD,MAAM;MAAEC;IAAiB,CAAC,GAAGD,KAAK;IAAdE,IAAI,GAAAZ,wBAAA,CAAKU,KAAK,EAAA1C,SAAA;EAClC,MAAM;IACJ6C,oBAAoB;IACpBC,mBAAmB;IACnBC,aAAa;IACbC,oBAAoB;IACpBC,UAAU;IACVC,KAAK;IACLC;EACF,CAAC,GAAG,IAAAC,iBAAU,EAACC,2BAAkB,CAAC,IAAI,CAAC,CAAC;EACxC,MAAM;IAAEC,QAAQ;IAAEC,eAAe;IAAEC;EAAsB,CAAC,GACxD,IAAAJ,iBAAU,EAACK,6BAAoB,CAAC,IAAI,CAAC,CAAC;EACxC,MAAM;IAAEC;EAAa,CAAC,GAAG,IAAAN,iBAAU,EAACO,uBAAc,CAAC,IAAI,CAAC,CAAC;EAEzD,MAAM;IAAEC,YAAY;IAAEC;EAAa,CAAC,GAClC,IAAAC,uBAAc,EAAC,CAAC,CAACC,oBAAoB;EACvC,MAAMC,cAAc,GAAG,IAAAC,aAAM,EAAU,CAAC;EAExC,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAInB,aAAa,KAAK,MAAM,IAAI,CAACiB,cAAc,CAACG,OAAO,EAAE;MACvDH,cAAc,CAACG,OAAO,GAAGlB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAGE,KAAK,CAAC;IAC9C;IACA,IAAIJ,aAAa,KAAK,MAAM,EAAE;MAC5BiB,cAAc,CAACG,OAAO,GAAG,IAAI;IAC/B;EACF,CAAC,EAAE,CAAClB,UAAU,EAAEF,aAAa,EAAEI,KAAK,CAAC,CAAC;EAEtC,MAAMiB,aAAa,GAAG,IAAAC,kBAAW,EAC/BC,IAAA,IAA+D;IAAA,IAA9D;MAAEC;IAAsD,CAAC,GAAAD,IAAA;IACxD3B,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAG4B,KAAK,CAAC;IAChB,IAAIjB,QAAQ,IAAIN,oBAAoB,KAAK,MAAM,EAAE;MAC/CQ,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAG,IAAI,CAAC;MAC7B,IAAID,eAAe,EAAE;QACnBG,YAAY,CAAC,IAAI,CAAC;MACpB;IACF,CAAC,MAAM;MACLb,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAGmB,cAAc,CAACG,OAAO,CAAC;MAC9CT,YAAY,CAAC,KAAK,CAAC;MACnBF,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAG,KAAK,CAAC;MAC9BV,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;IAC/B;EACF,CAAC,EACD,CACEQ,QAAQ,EACRC,eAAe,EACfP,oBAAoB,EACpBL,OAAO,EACPE,oBAAoB,EACpBW,qBAAqB,EACrBE,YAAY,EACZZ,mBAAmB,CAEvB,CAAC;EAED,MAAM0B,MAAM,GAAGC,SAAS,CAAC;IAAEvB,KAAK;IAAEH;EAAc,CAAC,CAAC;EAElD,IAAIA,aAAa,KAAK,MAAM,IAAI,CAAAE,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEpB,MAAM,MAAK,CAAC,EAAE;IACxD,OAAOxC,MAAA,CAAAc,OAAA,CAAAuE,aAAA,CAAArF,MAAA,CAAAc,OAAA,CAAAwE,QAAA,MAAI,CAAC;EACd;EAEA,IAAIH,MAAM,EAAE;IACV,OACEnF,MAAA,CAAAc,OAAA,CAAAuE,aAAA,CAAC3E,aAAA,CAAAI,OAAY,EAAAoB,QAAA;MACXqD,IAAI,EAAEf,YAAa;MACnBlB,OAAO,EAAEA;IAAQ,GACZC,IAAI,CACV,CAAC;EAEN;EAEA,OACEvD,MAAA,CAAAc,OAAA,CAAAuE,aAAA,CAAClF,WAAA,CAAAqF,MAAM,EAAAtD,QAAA;IACLuD,OAAO,EAAC,UAAU;IAClBC,IAAI,EAAEC,YAAM;IACZC,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEd;EAAc,GACpBxB,IAAI,GAEPgB,YACK,CAAC;AAEb;AAEO,SAASa,SAASA,CAAAU,KAAA,EAMtB;EAAA,IANuB;IACxBjC,KAAK;IACLH;EAIF,CAAC,GAAAoC,KAAA;EACC,MAAMC,SAAS,GAAG,IAAAnB,aAAM,EAAUf,KAAK,CAAC;EAExC,IAAAgB,gBAAS,EAAC,MAAM;IACd,IAAInB,aAAa,KAAK,MAAM,EAAE;MAC5BqC,SAAS,CAACjB,OAAO,GAAG,KAAK;IAC3B;EACF,CAAC,EAAE,CAACjB,KAAK,EAAEH,aAAa,CAAC,CAAC;EAE1B,OAAOqC,SAAS,CAACjB,OAAO;AAC1B"}
@@ -69,8 +69,8 @@ function EditContainerWithoutToolbar(props) {
69
69
  });
70
70
  let itemTitle = wasNew && titleWhenNew ? titleWhenNew : title;
71
71
  let ariaLabel = (0, _react.useMemo)(() => (0, _componentHelper.convertJsxToString)(itemTitle), [itemTitle]);
72
- if (ariaLabel.includes('{itemNr}')) {
73
- itemTitle = ariaLabel = ariaLabel.replace('{itemNr}', index + 1);
72
+ if (ariaLabel.includes('{itemN')) {
73
+ itemTitle = ariaLabel = ariaLabel.replace(/\{itemN(r|o)\}/g, String(index + 1));
74
74
  }
75
75
  (0, _hooks.useSwitchContainerMode)({
76
76
  path
@@ -1 +1 @@
1
- {"version":3,"file":"EditContainer.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_componentHelper","_elements","_IterateItemContext","_ArrayItemArea","_Toolbar2","_hooks","_DoneButton","_CancelButton","_Toolbar","_excluded","_excluded2","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","EditContainer","props","_toolbarElement","toolbar","toolbarVariant","children","rest","arrayValue","useContext","IterateItemContext","toolbarElement","createElement","Fragment","hasToolbar","React","Children","toArray","some","child","Toolbar","EditContainerWithoutToolbar","containerMode","isNew","index","path","_ref","className","title","titleWhenNew","restProps","wasNew","useWasNew","itemTitle","ariaLabel","useMemo","convertJsxToString","includes","replace","useSwitchContainerMode","mode","classnames","Lead","size","DoneButton","CancelButton","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/EditContainer.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Lead } from '../../../../elements'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport IterateItemContext from '../IterateItemContext'\nimport ArrayItemArea, { ArrayItemAreaProps } from '../Array/ArrayItemArea'\nimport Toolbar from '../Toolbar'\nimport { useSwitchContainerMode } from '../hooks'\nimport DoneButton from './DoneButton'\nimport CancelButton, { useWasNew } from './CancelButton'\n\nexport type Props = {\n /**\n * The title of the EditContainer.\n */\n title?: React.ReactNode\n\n /**\n * The title for a new item show within the EditContainer.\n */\n titleWhenNew?: React.ReactNode\n\n /**\n * If the EditContainer is open or not.\n */\n open?: boolean\n\n /**\n * An alternative toolbar to be shown in the EditContainer.\n */\n toolbar?: React.ReactNode\n /**\n * The variant of the toolbar.\n */\n toolbarVariant?: 'minimumOneItem'\n}\n\nexport type AllProps = Props & FlexContainerProps & ArrayItemAreaProps\n\nexport default function EditContainer(props: AllProps) {\n const { toolbar, toolbarVariant, children, ...rest } = props\n const { arrayValue } = useContext(IterateItemContext)\n\n let toolbarElement = toolbar\n if (toolbarVariant === 'minimumOneItem' && arrayValue.length <= 1) {\n toolbarElement = <></>\n }\n\n const hasToolbar =\n !toolbarElement &&\n React.Children.toArray(children).some((child) => {\n return child?.['type'] === Toolbar\n })\n\n return (\n <EditContainerWithoutToolbar\n toolbar={\n hasToolbar\n ? null\n : toolbarElement ?? (\n <Toolbar>\n <DoneButton />\n <CancelButton />\n </Toolbar>\n )\n }\n {...rest}\n >\n {children}\n </EditContainerWithoutToolbar>\n )\n}\n\nexport function EditContainerWithoutToolbar(\n props: Props & FlexContainerProps & { toolbar?: React.ReactNode }\n) {\n const { containerMode, isNew, index, path } =\n useContext(IterateItemContext)\n\n const {\n children,\n className,\n title,\n titleWhenNew,\n toolbar,\n ...restProps\n } = props || {}\n\n const wasNew = useWasNew({ isNew, containerMode })\n let itemTitle = wasNew && titleWhenNew ? titleWhenNew : title\n let ariaLabel = useMemo(() => convertJsxToString(itemTitle), [itemTitle])\n if (ariaLabel.includes('{itemNr}')) {\n itemTitle = ariaLabel = ariaLabel.replace('{itemNr}', index + 1)\n }\n\n useSwitchContainerMode({ path })\n\n return (\n <ArrayItemArea\n mode=\"edit\"\n className={classnames('dnb-forms-section-edit-block', className)}\n ariaLabel={ariaLabel}\n {...restProps}\n >\n {itemTitle && <Lead size=\"basis\">{itemTitle}</Lead>}\n {children}\n {toolbar}\n </ArrayItemArea>\n )\n}\n\nEditContainer.DoneButton = DoneButton\nEditContainer.CancelButton = CancelButton\n\nEditContainer._supportsSpacingProps = true\nEditContainerWithoutToolbar._supportsSpacingProps = true\n"],"mappings":"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"}
1
+ {"version":3,"file":"EditContainer.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_componentHelper","_elements","_IterateItemContext","_ArrayItemArea","_Toolbar2","_hooks","_DoneButton","_CancelButton","_Toolbar","_excluded","_excluded2","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","EditContainer","props","_toolbarElement","toolbar","toolbarVariant","children","rest","arrayValue","useContext","IterateItemContext","toolbarElement","createElement","Fragment","hasToolbar","React","Children","toArray","some","child","Toolbar","EditContainerWithoutToolbar","containerMode","isNew","index","path","_ref","className","title","titleWhenNew","restProps","wasNew","useWasNew","itemTitle","ariaLabel","useMemo","convertJsxToString","includes","replace","String","useSwitchContainerMode","mode","classnames","Lead","size","DoneButton","CancelButton","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/EditContainer.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Lead } from '../../../../elements'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport IterateItemContext from '../IterateItemContext'\nimport ArrayItemArea, { ArrayItemAreaProps } from '../Array/ArrayItemArea'\nimport Toolbar from '../Toolbar'\nimport { useSwitchContainerMode } from '../hooks'\nimport DoneButton from './DoneButton'\nimport CancelButton, { useWasNew } from './CancelButton'\n\nexport type Props = {\n /**\n * The title of the EditContainer.\n */\n title?: React.ReactNode\n\n /**\n * The title for a new item show within the EditContainer.\n */\n titleWhenNew?: React.ReactNode\n\n /**\n * If the EditContainer is open or not.\n */\n open?: boolean\n\n /**\n * An alternative toolbar to be shown in the EditContainer.\n */\n toolbar?: React.ReactNode\n /**\n * The variant of the toolbar.\n */\n toolbarVariant?: 'minimumOneItem'\n}\n\nexport type AllProps = Props & FlexContainerProps & ArrayItemAreaProps\n\nexport default function EditContainer(props: AllProps) {\n const { toolbar, toolbarVariant, children, ...rest } = props\n const { arrayValue } = useContext(IterateItemContext)\n\n let toolbarElement = toolbar\n if (toolbarVariant === 'minimumOneItem' && arrayValue.length <= 1) {\n toolbarElement = <></>\n }\n\n const hasToolbar =\n !toolbarElement &&\n React.Children.toArray(children).some((child) => {\n return child?.['type'] === Toolbar\n })\n\n return (\n <EditContainerWithoutToolbar\n toolbar={\n hasToolbar\n ? null\n : toolbarElement ?? (\n <Toolbar>\n <DoneButton />\n <CancelButton />\n </Toolbar>\n )\n }\n {...rest}\n >\n {children}\n </EditContainerWithoutToolbar>\n )\n}\n\nexport function EditContainerWithoutToolbar(\n props: Props & FlexContainerProps & { toolbar?: React.ReactNode }\n) {\n const { containerMode, isNew, index, path } =\n useContext(IterateItemContext)\n\n const {\n children,\n className,\n title,\n titleWhenNew,\n toolbar,\n ...restProps\n } = props || {}\n\n const wasNew = useWasNew({ isNew, containerMode })\n let itemTitle = wasNew && titleWhenNew ? titleWhenNew : title\n let ariaLabel = useMemo(() => convertJsxToString(itemTitle), [itemTitle])\n if (ariaLabel.includes('{itemN')) {\n /**\n * {itemNr} is deprecated, and can be removed in v11 in favor of {itemNo}\n * So in v11 we can use '{itemNo}' instead of a regex\n */\n itemTitle = ariaLabel = ariaLabel.replace(\n /\\{itemN(r|o)\\}/g,\n String(index + 1)\n )\n }\n\n useSwitchContainerMode({ path })\n\n return (\n <ArrayItemArea\n mode=\"edit\"\n className={classnames('dnb-forms-section-edit-block', className)}\n ariaLabel={ariaLabel}\n {...restProps}\n >\n {itemTitle && <Lead size=\"basis\">{itemTitle}</Lead>}\n {children}\n {toolbar}\n </ArrayItemArea>\n )\n}\n\nEditContainer.DoneButton = DoneButton\nEditContainer.CancelButton = CancelButton\n\nEditContainer._supportsSpacingProps = true\nEditContainerWithoutToolbar._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -40,6 +40,12 @@ function PushButton(props) {
40
40
  restProps = _objectWithoutProperties(props, _excluded);
41
41
  const buttonProps = (0, _types.omitDataValueReadWriteProps)(restProps);
42
42
  const arrayValue = (0, _useDataValue.default)().getValueByPath(path);
43
+ const {
44
+ hasReachedLimit,
45
+ setShowStatus
46
+ } = (0, _hooks.useArrayLimit)({
47
+ path
48
+ });
43
49
  if (arrayValue !== undefined && !Array.isArray(arrayValue)) {
44
50
  throw new Error('PushButton received a non-array value');
45
51
  }
@@ -49,6 +55,10 @@ function PushButton(props) {
49
55
  path
50
56
  });
51
57
  const handleClick = (0, _react.useCallback)(async () => {
58
+ if (hasReachedLimit) {
59
+ setShowStatus(true);
60
+ return;
61
+ }
52
62
  const newValue = typeof pushValue === 'function' ? pushValue(arrayValue) : pushValue;
53
63
  if (handlePush) {
54
64
  handlePush(newValue);
@@ -58,7 +68,7 @@ function PushButton(props) {
58
68
  setTimeout(() => {
59
69
  setLastItemContainerMode('view');
60
70
  }, 100);
61
- }, [handlePathChange, handlePush, path, pushValue, setLastItemContainerMode, arrayValue]);
71
+ }, [arrayValue, handlePathChange, handlePush, hasReachedLimit, path, pushValue, setLastItemContainerMode, setShowStatus]);
62
72
  const content = (0, _react.useMemo)(() => {
63
73
  if (children || text) {
64
74
  const str = (0, _componentHelper.convertJsxToString)(children || text);
@@ -1 +1 @@
1
- {"version":3,"file":"PushButton.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_components","_IterateItemContext","_hooks","_types","_icons","_Context","_useDataValue","_componentHelper","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","PushButton","props","handlePathChange","useContext","DataContext","iterateItemContext","IterateItemContext","handlePush","pushValue","className","path","text","children","restProps","buttonProps","omitDataValueReadWriteProps","arrayValue","useDataValue","getValueByPath","undefined","Array","isArray","Error","setLastItemContainerMode","useSwitchContainerMode","handleClick","useCallback","newValue","setTimeout","content","useMemo","str","convertJsxToString","includes","nextItemNo","replace","String","createElement","Button","classnames","variant","icon","add","icon_position","on_click","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Iterate/PushButton/PushButton.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { Button } from '../../../../components'\nimport { ButtonProps } from '../../../../components/Button'\nimport IterateItemContext from '../IterateItemContext'\nimport { useSwitchContainerMode } from '../hooks'\nimport { omitDataValueReadWriteProps, Path } from '../../types'\nimport { add } from '../../../../icons'\nimport DataContext from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\nimport { convertJsxToString } from '../../../../shared/component-helper'\n\nexport type Props = ButtonProps & {\n path?: Path\n pushValue: unknown | ((value: unknown) => void)\n\n /**\n * Used internally\n */\n value?: unknown\n}\n\nfunction PushButton(props: Props) {\n const { handlePathChange } = useContext(DataContext) || {}\n const iterateItemContext = useContext(IterateItemContext)\n const { handlePush } = iterateItemContext ?? {}\n\n const { pushValue, className, path, text, children, ...restProps } =\n props\n const buttonProps = omitDataValueReadWriteProps(restProps)\n const arrayValue = useDataValue().getValueByPath(path)\n\n if (arrayValue !== undefined && !Array.isArray(arrayValue)) {\n throw new Error('PushButton received a non-array value')\n }\n\n const { setLastItemContainerMode } = useSwitchContainerMode({\n path,\n })\n\n const handleClick = useCallback(async () => {\n const newValue =\n typeof pushValue === 'function' ? pushValue(arrayValue) : pushValue\n\n if (handlePush) {\n // Inside an Iterate element - make the change through the Iterate component\n handlePush(newValue)\n } else {\n // If not inside an iterate, it could still manipulate a source data set through useFieldProps\n await handlePathChange?.(path, [...(arrayValue ?? []), newValue])\n }\n\n setTimeout(() => {\n setLastItemContainerMode('view')\n }, 100) // UX improvement because of the \"openDelay\"\n }, [\n handlePathChange,\n handlePush,\n path,\n pushValue,\n setLastItemContainerMode,\n arrayValue,\n ])\n\n const content = useMemo(() => {\n if (children || text) {\n const str = convertJsxToString(children || text)\n\n if (str.includes('{nextItemNo}')) {\n const nextItemNo = (arrayValue?.length || 0) + 1\n return str.replace('{nextItemNo}', String(nextItemNo))\n }\n }\n\n return children || text\n }, [arrayValue?.length, children, text])\n\n return (\n <Button\n className={classnames('dnb-forms-iterate-push-button', className)}\n variant=\"secondary\"\n icon={add}\n icon_position=\"left\"\n on_click={handleClick}\n {...buttonProps}\n >\n {content}\n </Button>\n )\n}\n\nPushButton._supportsSpacingProps = true\nexport default PushButton\n"],"mappings":"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"}
1
+ {"version":3,"file":"PushButton.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_components","_IterateItemContext","_hooks","_types","_icons","_Context","_useDataValue","_componentHelper","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","PushButton","props","handlePathChange","useContext","DataContext","iterateItemContext","IterateItemContext","handlePush","pushValue","className","path","text","children","restProps","buttonProps","omitDataValueReadWriteProps","arrayValue","useDataValue","getValueByPath","hasReachedLimit","setShowStatus","useArrayLimit","undefined","Array","isArray","Error","setLastItemContainerMode","useSwitchContainerMode","handleClick","useCallback","newValue","setTimeout","content","useMemo","str","convertJsxToString","includes","nextItemNo","replace","String","createElement","Button","classnames","variant","icon","add","icon_position","on_click","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Iterate/PushButton/PushButton.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { Button } from '../../../../components'\nimport { ButtonProps } from '../../../../components/Button'\nimport IterateItemContext from '../IterateItemContext'\nimport { useArrayLimit, useSwitchContainerMode } from '../hooks'\nimport { omitDataValueReadWriteProps, Path } from '../../types'\nimport { add } from '../../../../icons'\nimport DataContext from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\nimport { convertJsxToString } from '../../../../shared/component-helper'\n\nexport type Props = ButtonProps & {\n path?: Path\n pushValue: unknown | ((value: unknown) => void)\n\n /**\n * Used internally\n */\n value?: unknown\n}\n\nfunction PushButton(props: Props) {\n const { handlePathChange } = useContext(DataContext) || {}\n const iterateItemContext = useContext(IterateItemContext)\n const { handlePush } = iterateItemContext ?? {}\n\n const { pushValue, className, path, text, children, ...restProps } =\n props\n const buttonProps = omitDataValueReadWriteProps(restProps)\n const arrayValue = useDataValue().getValueByPath(path)\n const { hasReachedLimit, setShowStatus } = useArrayLimit({\n path,\n })\n\n if (arrayValue !== undefined && !Array.isArray(arrayValue)) {\n throw new Error('PushButton received a non-array value')\n }\n\n const { setLastItemContainerMode } = useSwitchContainerMode({\n path,\n })\n\n const handleClick = useCallback(async () => {\n if (hasReachedLimit) {\n setShowStatus(true)\n return // stop here\n }\n\n const newValue =\n typeof pushValue === 'function' ? pushValue(arrayValue) : pushValue\n\n if (handlePush) {\n // Inside an Iterate element - make the change through the Iterate component\n handlePush(newValue)\n } else {\n // If not inside an iterate, it could still manipulate a source data set through useFieldProps\n await handlePathChange?.(path, [...(arrayValue ?? []), newValue])\n }\n\n setTimeout(() => {\n setLastItemContainerMode('view')\n }, 100) // UX improvement because of the \"openDelay\"\n }, [\n arrayValue,\n handlePathChange,\n handlePush,\n hasReachedLimit,\n path,\n pushValue,\n setLastItemContainerMode,\n setShowStatus,\n ])\n\n const content = useMemo(() => {\n if (children || text) {\n const str = convertJsxToString(children || text)\n\n if (str.includes('{nextItemNo}')) {\n const nextItemNo = (arrayValue?.length || 0) + 1\n return str.replace('{nextItemNo}', String(nextItemNo))\n }\n }\n\n return children || text\n }, [arrayValue?.length, children, text])\n\n return (\n <Button\n className={classnames('dnb-forms-iterate-push-button', className)}\n variant=\"secondary\"\n icon={add}\n icon_position=\"left\"\n on_click={handleClick}\n {...buttonProps}\n >\n {content}\n </Button>\n )\n}\n\nPushButton._supportsSpacingProps = true\nexport default PushButton\n"],"mappings":"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"}
@@ -18,9 +18,8 @@ var _components = require("../../../../components");
18
18
  var _hooks = require("../hooks");
19
19
  var _Toolbar = _interopRequireDefault(require("../Toolbar"));
20
20
  var _hooks2 = require("../../hooks");
21
- var _CancelButton;
22
21
  const _excluded = ["data", "path", "title", "children", "openButton", "showOpenButtonWhen"],
23
- _excluded2 = ["title", "openButton", "showOpenButton", "switchContainerModeRef", "children"];
22
+ _excluded2 = ["title", "openButton", "showOpenButton", "switchContainerModeRef", "cancelHandler", "children"];
24
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
25
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -55,6 +54,17 @@ function PushContainer(props) {
55
54
  } = (0, _hooks.useSwitchContainerMode)({
56
55
  path
57
56
  });
57
+ const {
58
+ hasReachedLimit,
59
+ setShowStatus
60
+ } = (0, _hooks.useArrayLimit)({
61
+ path
62
+ });
63
+ const cancelHandler = (0, _react.useCallback)(() => {
64
+ if (hasReachedLimit) {
65
+ setShowStatus(false);
66
+ }
67
+ }, [hasReachedLimit, setShowStatus]);
58
68
  const showOpenButton = showOpenButtonWhen === null || showOpenButtonWhen === void 0 ? void 0 : showOpenButtonWhen(entries);
59
69
  const newItemContextProps = {
60
70
  path,
@@ -78,13 +88,19 @@ function PushContainer(props) {
78
88
  return moveValueToPath(path, [...entries, ...newItems]);
79
89
  },
80
90
  onCommit: (data, _ref2) => {
81
- var _switchContainerModeR;
82
91
  let {
83
- clearData
92
+ clearData,
93
+ preventCommit
84
94
  } = _ref2;
85
- setNextContainerMode('view');
86
- (_switchContainerModeR = switchContainerModeRef.current) === null || _switchContainerModeR === void 0 ? void 0 : _switchContainerModeR.call(switchContainerModeRef, 'view');
87
- clearData();
95
+ if (hasReachedLimit) {
96
+ preventCommit();
97
+ setShowStatus(true);
98
+ } else {
99
+ var _switchContainerModeR;
100
+ setNextContainerMode('view');
101
+ (_switchContainerModeR = switchContainerModeRef.current) === null || _switchContainerModeR === void 0 ? void 0 : _switchContainerModeR.call(switchContainerModeRef, 'view');
102
+ clearData();
103
+ }
88
104
  }
89
105
  }, _react.default.createElement(_PushContainerContext.default.Provider, {
90
106
  value: newItemContextProps
@@ -95,16 +111,18 @@ function PushContainer(props) {
95
111
  title: title,
96
112
  openButton: openButton,
97
113
  switchContainerModeRef: switchContainerModeRef,
98
- showOpenButton: showOpenButton
114
+ showOpenButton: showOpenButton,
115
+ cancelHandler: cancelHandler
99
116
  }, rest), children))));
100
117
  }
101
118
  function NewContainer(_ref3) {
102
- var _DoneButton;
119
+ var _DoneButton, _CancelButton;
103
120
  let {
104
121
  title,
105
122
  openButton,
106
123
  showOpenButton,
107
124
  switchContainerModeRef,
125
+ cancelHandler,
108
126
  children
109
127
  } = _ref3,
110
128
  rest = _objectWithoutProperties(_ref3, _excluded2);
@@ -132,7 +150,9 @@ function NewContainer(_ref3) {
132
150
  gap: "large"
133
151
  }, _DoneButton || (_DoneButton = _react.default.createElement(_EditContainer.DoneButton, {
134
152
  text: createButton
135
- })), showOpenButton && (_CancelButton || (_CancelButton = _react.default.createElement(_EditContainer.CancelButton, null)))));
153
+ })), showOpenButton && (_CancelButton || (_CancelButton = _react.default.createElement(_EditContainer.CancelButton, {
154
+ onClick: cancelHandler
155
+ })))));
136
156
  }));
137
157
  return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_EditContainer.default, _extends({
138
158
  open: !showOpenButton || containerMode === 'edit',
@@ -1 +1 @@
1
- {"version":3,"file":"PushContainer.js","names":["_react","_interopRequireWildcard","require","_Isolation","_interopRequireDefault","_PushContainerContext","_IterateItemContext","_Context","_useDataValue","_EditContainer","_Array","_OpenButton","_components","_hooks","_Toolbar","_hooks2","_CancelButton","_excluded","_excluded2","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_extends","assign","bind","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","PushContainer","props","data","path","title","children","openButton","showOpenButtonWhen","rest","commitHandleRef","useRef","switchContainerModeRef","entries","moveValueToPath","useDataValue","setNextContainerMode","useSwitchContainerMode","showOpenButton","newItemContextProps","switchContainerMode","current","defaultData","useMemo","newItems","createElement","emptyData","transformOnCommit","_ref","onCommit","_ref2","_switchContainerModeR","clearData","Provider","containerMode","NewContainer","_ref3","_DoneButton","useContext","IterateItemContext","createButton","useTranslation","IteratePushContainer","DataContext","restoreOriginalValue","useCallback","toolbar","Consumer","context","Flex","Horizontal","gap","DoneButton","text","CancelButton","Fragment","open","HeightAnimation","OpenButton","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Iterate/PushContainer/PushContainer.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo, useRef } from 'react'\nimport Isolation from '../../Form/Isolation'\nimport PushContainerContext from './PushContainerContext'\nimport IterateItemContext from '../IterateItemContext'\nimport DataContext from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\nimport EditContainer, { CancelButton, DoneButton } from '../EditContainer'\nimport IterateArray, { ContainerMode } from '../Array'\nimport OpenButton from './OpenButton'\nimport { Flex, HeightAnimation } from '../../../../components'\nimport { Path } from '../../types'\nimport { SpacingProps } from '../../../../shared/types'\nimport { useSwitchContainerMode } from '../hooks'\nimport Toolbar from '../Toolbar'\nimport { useTranslation } from '../../hooks'\nimport { ArrayItemAreaProps } from '../Array/ArrayItemArea'\n\nexport type Props = {\n /**\n * The path to the array to add the new item to.\n */\n path: Path\n\n /**\n * The title of the container.\n */\n title?: React.ReactNode\n\n /**\n * The button to open container.\n */\n openButton?: React.ReactNode\n\n /**\n * Define when the \"open button\" should be shown.\n * Should be a function that returns a boolean.\n */\n showOpenButtonWhen?: (list: unknown[]) => boolean\n\n /**\n * Prefilled data to add to the fields.\n */\n data?: unknown | Record<string, unknown>\n\n /**\n * A custom toolbar to be shown below the container.\n */\n toolbar?: React.ReactNode\n\n /**\n * The container contents.\n */\n children: React.ReactNode\n}\n\nexport type AllProps = Props & SpacingProps & ArrayItemAreaProps\n\nfunction PushContainer(props: AllProps) {\n const {\n data = null,\n path,\n title,\n children,\n openButton,\n showOpenButtonWhen,\n ...rest\n } = props\n\n const commitHandleRef = useRef<() => void>()\n const switchContainerModeRef = useRef<(mode: ContainerMode) => void>()\n const { value: entries = [], moveValueToPath } = useDataValue<\n Array<unknown>\n >({ path })\n\n const { setNextContainerMode } = useSwitchContainerMode({ path })\n\n const showOpenButton = showOpenButtonWhen?.(entries)\n const newItemContextProps: PushContainerContext = {\n path,\n entries,\n commitHandleRef,\n switchContainerMode: switchContainerModeRef.current,\n }\n\n const defaultData = useMemo(() => {\n return { newItems: [data] }\n }, [data])\n\n return (\n <Isolation\n defaultData={defaultData}\n emptyData={defaultData}\n commitHandleRef={commitHandleRef}\n transformOnCommit={({ newItems }) => {\n return moveValueToPath(path, [...entries, ...newItems])\n }}\n onCommit={(data, { clearData }) => {\n setNextContainerMode('view')\n switchContainerModeRef.current?.('view')\n clearData()\n }}\n >\n <PushContainerContext.Provider value={newItemContextProps}>\n <IterateArray\n path=\"/newItems\"\n containerMode={showOpenButton ? 'view' : 'edit'}\n >\n <NewContainer\n title={title}\n openButton={openButton}\n switchContainerModeRef={switchContainerModeRef}\n showOpenButton={showOpenButton}\n {...rest}\n >\n {children}\n </NewContainer>\n </IterateArray>\n </PushContainerContext.Provider>\n </Isolation>\n )\n}\n\nfunction NewContainer({\n title,\n openButton,\n showOpenButton,\n switchContainerModeRef,\n children,\n ...rest\n}) {\n const { containerMode, switchContainerMode } =\n useContext(IterateItemContext) || {}\n switchContainerModeRef.current = switchContainerMode\n const { createButton } = useTranslation().IteratePushContainer\n const { clearData } = useContext(DataContext) || {}\n const restoreOriginalValue = useCallback(() => {\n clearData?.()\n }, [clearData])\n\n const toolbar = (\n <Toolbar>\n <IterateItemContext.Consumer>\n {(context) => {\n const newItemContextProps = {\n ...context,\n restoreOriginalValue,\n }\n return (\n <IterateItemContext.Provider value={newItemContextProps}>\n <Flex.Horizontal gap=\"large\">\n <DoneButton text={createButton} />\n {showOpenButton && <CancelButton />}\n </Flex.Horizontal>\n </IterateItemContext.Provider>\n )\n }}\n </IterateItemContext.Consumer>\n </Toolbar>\n )\n\n return (\n <>\n <EditContainer\n open={!showOpenButton || containerMode === 'edit'}\n title={title}\n toolbar={toolbar}\n {...rest}\n >\n {children}\n </EditContainer>\n\n {openButton && typeof showOpenButton === 'boolean' && (\n <HeightAnimation open={showOpenButton && containerMode === 'view'}>\n {openButton}\n </HeightAnimation>\n )}\n </>\n )\n}\n\nPushContainer.OpenButton = OpenButton\nPushContainer._supportsSpacingProps = true\n\nexport default PushContainer\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,mBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,QAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,aAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,cAAA,GAAAR,uBAAA,CAAAC,OAAA;AACA,IAAAQ,MAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,WAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,WAAA,GAAAV,OAAA;AAGA,IAAAW,MAAA,GAAAX,OAAA;AACA,IAAAY,QAAA,GAAAV,sBAAA,CAAAF,OAAA;AACA,IAAAa,OAAA,GAAAb,OAAA;AAA4C,IAAAc,aAAA;AAAA,MAAAC,SAAA;EAAAC,UAAA;AAAA,SAAAd,uBAAAe,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAtB,wBAAAkB,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAAA,SAAAW,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAZ,MAAA,CAAAY,IAAA,CAAAF,MAAA,OAAAV,MAAA,CAAAa,qBAAA,QAAAC,OAAA,GAAAd,MAAA,CAAAa,qBAAA,CAAAH,MAAA,GAAAC,cAAA,KAAAG,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAhB,MAAA,CAAAE,wBAAA,CAAAQ,MAAA,EAAAM,GAAA,EAAAC,UAAA,OAAAL,IAAA,CAAAM,IAAA,CAAAC,KAAA,CAAAP,IAAA,EAAAE,OAAA,YAAAF,IAAA;AAAA,SAAAQ,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAb,OAAA,CAAAT,MAAA,CAAAyB,MAAA,OAAAC,OAAA,WAAAvB,GAAA,IAAAwB,eAAA,CAAAN,MAAA,EAAAlB,GAAA,EAAAsB,MAAA,CAAAtB,GAAA,SAAAH,MAAA,CAAA4B,yBAAA,GAAA5B,MAAA,CAAA6B,gBAAA,CAAAR,MAAA,EAAArB,MAAA,CAAA4B,yBAAA,CAAAH,MAAA,KAAAhB,OAAA,CAAAT,MAAA,CAAAyB,MAAA,GAAAC,OAAA,WAAAvB,GAAA,IAAAH,MAAA,CAAAC,cAAA,CAAAoB,MAAA,EAAAlB,GAAA,EAAAH,MAAA,CAAAE,wBAAA,CAAAuB,MAAA,EAAAtB,GAAA,iBAAAkB,MAAA;AAAA,SAAAM,gBAAAxC,GAAA,EAAAgB,GAAA,EAAA2B,KAAA,IAAA3B,GAAA,GAAA4B,cAAA,CAAA5B,GAAA,OAAAA,GAAA,IAAAhB,GAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAd,GAAA,EAAAgB,GAAA,IAAA2B,KAAA,EAAAA,KAAA,EAAAb,UAAA,QAAAe,YAAA,QAAAC,QAAA,oBAAA9C,GAAA,CAAAgB,GAAA,IAAA2B,KAAA,WAAA3C,GAAA;AAAA,SAAA4C,eAAAG,GAAA,QAAA/B,GAAA,GAAAgC,YAAA,CAAAD,GAAA,2BAAA/B,GAAA,gBAAAA,GAAA,GAAAiC,MAAA,CAAAjC,GAAA;AAAA,SAAAgC,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAjC,IAAA,CAAA+B,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAC,SAAA,4DAAAN,IAAA,gBAAAF,MAAA,GAAAS,MAAA,EAAAR,KAAA;AAAA,SAAAS,SAAA,IAAAA,QAAA,GAAA9C,MAAA,CAAA+C,MAAA,GAAA/C,MAAA,CAAA+C,MAAA,CAAAC,IAAA,eAAA3B,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAnB,GAAA,IAAAsB,MAAA,QAAAzB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAmB,MAAA,EAAAtB,GAAA,KAAAkB,MAAA,CAAAlB,GAAA,IAAAsB,MAAA,CAAAtB,GAAA,gBAAAkB,MAAA,YAAAyB,QAAA,CAAA3B,KAAA,OAAAI,SAAA;AAAA,SAAA0B,yBAAAxB,MAAA,EAAAyB,QAAA,QAAAzB,MAAA,yBAAAJ,MAAA,GAAA8B,6BAAA,CAAA1B,MAAA,EAAAyB,QAAA,OAAA/C,GAAA,EAAAmB,CAAA,MAAAtB,MAAA,CAAAa,qBAAA,QAAAuC,gBAAA,GAAApD,MAAA,CAAAa,qBAAA,CAAAY,MAAA,QAAAH,CAAA,MAAAA,CAAA,GAAA8B,gBAAA,CAAA5B,MAAA,EAAAF,CAAA,MAAAnB,GAAA,GAAAiD,gBAAA,CAAA9B,CAAA,OAAA4B,QAAA,CAAAG,OAAA,CAAAlD,GAAA,uBAAAH,MAAA,CAAAI,SAAA,CAAAkD,oBAAA,CAAAhD,IAAA,CAAAmB,MAAA,EAAAtB,GAAA,aAAAkB,MAAA,CAAAlB,GAAA,IAAAsB,MAAA,CAAAtB,GAAA,cAAAkB,MAAA;AAAA,SAAA8B,8BAAA1B,MAAA,EAAAyB,QAAA,QAAAzB,MAAA,yBAAAJ,MAAA,WAAAkC,UAAA,GAAAvD,MAAA,CAAAY,IAAA,CAAAa,MAAA,OAAAtB,GAAA,EAAAmB,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAAiC,UAAA,CAAA/B,MAAA,EAAAF,CAAA,MAAAnB,GAAA,GAAAoD,UAAA,CAAAjC,CAAA,OAAA4B,QAAA,CAAAG,OAAA,CAAAlD,GAAA,kBAAAkB,MAAA,CAAAlB,GAAA,IAAAsB,MAAA,CAAAtB,GAAA,YAAAkB,MAAA;AA2C5C,SAASmC,aAAaA,CAACC,KAAe,EAAE;EACtC,MAAM;MACJC,IAAI,GAAG,IAAI;MACXC,IAAI;MACJC,KAAK;MACLC,QAAQ;MACRC,UAAU;MACVC;IAEF,CAAC,GAAGN,KAAK;IADJO,IAAI,GAAAf,wBAAA,CACLQ,KAAK,EAAAxE,SAAA;EAET,MAAMgF,eAAe,GAAG,IAAAC,aAAM,EAAa,CAAC;EAC5C,MAAMC,sBAAsB,GAAG,IAAAD,aAAM,EAAgC,CAAC;EACtE,MAAM;IAAEpC,KAAK,EAAEsC,OAAO,GAAG,EAAE;IAAEC;EAAgB,CAAC,GAAG,IAAAC,qBAAY,EAE3D;IAAEX;EAAK,CAAC,CAAC;EAEX,MAAM;IAAEY;EAAqB,CAAC,GAAG,IAAAC,6BAAsB,EAAC;IAAEb;EAAK,CAAC,CAAC;EAEjE,MAAMc,cAAc,GAAGV,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAGK,OAAO,CAAC;EACpD,MAAMM,mBAAyC,GAAG;IAChDf,IAAI;IACJS,OAAO;IACPH,eAAe;IACfU,mBAAmB,EAAER,sBAAsB,CAACS;EAC9C,CAAC;EAED,MAAMC,WAAW,GAAG,IAAAC,cAAO,EAAC,MAAM;IAChC,OAAO;MAAEC,QAAQ,EAAE,CAACrB,IAAI;IAAE,CAAC;EAC7B,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,OACE1F,MAAA,CAAAqB,OAAA,CAAA2F,aAAA,CAAC7G,UAAA,CAAAkB,OAAS;IACRwF,WAAW,EAAEA,WAAY;IACzBI,SAAS,EAAEJ,WAAY;IACvBZ,eAAe,EAAEA,eAAgB;IACjCiB,iBAAiB,EAAEC,IAAA,IAAkB;MAAA,IAAjB;QAAEJ;MAAS,CAAC,GAAAI,IAAA;MAC9B,OAAOd,eAAe,CAACV,IAAI,EAAE,CAAC,GAAGS,OAAO,EAAE,GAAGW,QAAQ,CAAC,CAAC;IACzD,CAAE;IACFK,QAAQ,EAAEA,CAAC1B,IAAI,EAAA2B,KAAA,KAAoB;MAAA,IAAAC,qBAAA;MAAA,IAAlB;QAAEC;MAAU,CAAC,GAAAF,KAAA;MAC5Bd,oBAAoB,CAAC,MAAM,CAAC;MAC5B,CAAAe,qBAAA,GAAAnB,sBAAsB,CAACS,OAAO,cAAAU,qBAAA,uBAA9BA,qBAAA,CAAAhF,IAAA,CAAA6D,sBAAsB,EAAW,MAAM,CAAC;MACxCoB,SAAS,CAAC,CAAC;IACb;EAAE,GAEFvH,MAAA,CAAAqB,OAAA,CAAA2F,aAAA,CAAC3G,qBAAA,CAAAgB,OAAoB,CAACmG,QAAQ;IAAC1D,KAAK,EAAE4C;EAAoB,GACxD1G,MAAA,CAAAqB,OAAA,CAAA2F,aAAA,CAACtG,MAAA,CAAAW,OAAY;IACXsE,IAAI,EAAC,WAAW;IAChB8B,aAAa,EAAEhB,cAAc,GAAG,MAAM,GAAG;EAAO,GAEhDzG,MAAA,CAAAqB,OAAA,CAAA2F,aAAA,CAACU,YAAY,EAAA5C,QAAA;IACXc,KAAK,EAAEA,KAAM;IACbE,UAAU,EAAEA,UAAW;IACvBK,sBAAsB,EAAEA,sBAAuB;IAC/CM,cAAc,EAAEA;EAAe,GAC3BT,IAAI,GAEPH,QACW,CACF,CACe,CACtB,CAAC;AAEhB;AAEA,SAAS6B,YAAYA,CAAAC,KAAA,EAOlB;EAAA,IAAAC,WAAA;EAAA,IAPmB;MACpBhC,KAAK;MACLE,UAAU;MACVW,cAAc;MACdN,sBAAsB;MACtBN;IAEF,CAAC,GAAA8B,KAAA;IADI3B,IAAI,GAAAf,wBAAA,CAAA0C,KAAA,EAAAzG,UAAA;EAEP,MAAM;IAAEuG,aAAa;IAAEd;EAAoB,CAAC,GAC1C,IAAAkB,iBAAU,EAACC,2BAAkB,CAAC,IAAI,CAAC,CAAC;EACtC3B,sBAAsB,CAACS,OAAO,GAAGD,mBAAmB;EACpD,MAAM;IAAEoB;EAAa,CAAC,GAAG,IAAAC,sBAAc,EAAC,CAAC,CAACC,oBAAoB;EAC9D,MAAM;IAAEV;EAAU,CAAC,GAAG,IAAAM,iBAAU,EAACK,gBAAW,CAAC,IAAI,CAAC,CAAC;EACnD,MAAMC,oBAAoB,GAAG,IAAAC,kBAAW,EAAC,MAAM;IAC7Cb,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAG,CAAC;EACf,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf,MAAMc,OAAO,GACXrI,MAAA,CAAAqB,OAAA,CAAA2F,aAAA,CAAClG,QAAA,CAAAO,OAAO,QACNrB,MAAA,CAAAqB,OAAA,CAAA2F,aAAA,CAAC1G,mBAAA,CAAAe,OAAkB,CAACiH,QAAQ,QACxBC,OAAO,IAAK;IACZ,MAAM7B,mBAAmB,GAAAtD,aAAA,CAAAA,aAAA,KACpBmF,OAAO;MACVJ;IAAoB,EACrB;IACD,OACEnI,MAAA,CAAAqB,OAAA,CAAA2F,aAAA,CAAC1G,mBAAA,CAAAe,OAAkB,CAACmG,QAAQ;MAAC1D,KAAK,EAAE4C;IAAoB,GACtD1G,MAAA,CAAAqB,OAAA,CAAA2F,aAAA,CAACpG,WAAA,CAAA4H,IAAI,CAACC,UAAU;MAACC,GAAG,EAAC;IAAO,GAAAd,WAAA,KAAAA,WAAA,GAC1B5H,MAAA,CAAAqB,OAAA,CAAA2F,aAAA,CAACvG,cAAA,CAAAkI,UAAU;MAACC,IAAI,EAAEb;IAAa,CAAE,CAAC,GACjCtB,cAAc,KAAAzF,aAAA,KAAAA,aAAA,GAAIhB,MAAA,CAAAqB,OAAA,CAAA2F,aAAA,CAACvG,cAAA,CAAAoI,YAAY,MAAE,CAAC,EACpB,CACU,CAAC;EAElC,CAC2B,CACtB,CACV;EAED,OACE7I,MAAA,CAAAqB,OAAA,CAAA2F,aAAA,CAAAhH,MAAA,CAAAqB,OAAA,CAAAyH,QAAA,QACE9I,MAAA,CAAAqB,OAAA,CAAA2F,aAAA,CAACvG,cAAA,CAAAY,OAAa,EAAAyD,QAAA;IACZiE,IAAI,EAAE,CAACtC,cAAc,IAAIgB,aAAa,KAAK,MAAO;IAClD7B,KAAK,EAAEA,KAAM;IACbyC,OAAO,EAAEA;EAAQ,GACbrC,IAAI,GAEPH,QACY,CAAC,EAEfC,UAAU,IAAI,OAAOW,cAAc,KAAK,SAAS,IAChDzG,MAAA,CAAAqB,OAAA,CAAA2F,aAAA,CAACpG,WAAA,CAAAoI,eAAe;IAACD,IAAI,EAAEtC,cAAc,IAAIgB,aAAa,KAAK;EAAO,GAC/D3B,UACc,CAEnB,CAAC;AAEP;AAEAN,aAAa,CAACyD,UAAU,GAAGA,mBAAU;AACrCzD,aAAa,CAAC0D,qBAAqB,GAAG,IAAI;AAAA,IAAAC,QAAA,GAE3B3D,aAAa;AAAA4D,OAAA,CAAA/H,OAAA,GAAA8H,QAAA"}
1
+ {"version":3,"file":"PushContainer.js","names":["_react","_interopRequireWildcard","require","_Isolation","_interopRequireDefault","_PushContainerContext","_IterateItemContext","_Context","_useDataValue","_EditContainer","_Array","_OpenButton","_components","_hooks","_Toolbar","_hooks2","_excluded","_excluded2","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_extends","assign","bind","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","PushContainer","props","data","path","title","children","openButton","showOpenButtonWhen","rest","commitHandleRef","useRef","switchContainerModeRef","entries","moveValueToPath","useDataValue","setNextContainerMode","useSwitchContainerMode","hasReachedLimit","setShowStatus","useArrayLimit","cancelHandler","useCallback","showOpenButton","newItemContextProps","switchContainerMode","current","defaultData","useMemo","newItems","createElement","emptyData","transformOnCommit","_ref","onCommit","_ref2","clearData","preventCommit","_switchContainerModeR","Provider","containerMode","NewContainer","_ref3","_DoneButton","_CancelButton","useContext","IterateItemContext","createButton","useTranslation","IteratePushContainer","DataContext","restoreOriginalValue","toolbar","Consumer","context","Flex","Horizontal","gap","DoneButton","text","CancelButton","onClick","Fragment","open","HeightAnimation","OpenButton","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Iterate/PushContainer/PushContainer.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo, useRef } from 'react'\nimport Isolation from '../../Form/Isolation'\nimport PushContainerContext from './PushContainerContext'\nimport IterateItemContext from '../IterateItemContext'\nimport DataContext from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\nimport EditContainer, { CancelButton, DoneButton } from '../EditContainer'\nimport IterateArray, { ContainerMode } from '../Array'\nimport OpenButton from './OpenButton'\nimport { Flex, HeightAnimation } from '../../../../components'\nimport { Path } from '../../types'\nimport { SpacingProps } from '../../../../shared/types'\nimport { useArrayLimit, useSwitchContainerMode } from '../hooks'\nimport Toolbar from '../Toolbar'\nimport { useTranslation } from '../../hooks'\nimport { ArrayItemAreaProps } from '../Array/ArrayItemArea'\n\nexport type Props = {\n /**\n * The path to the array to add the new item to.\n */\n path: Path\n\n /**\n * The title of the container.\n */\n title?: React.ReactNode\n\n /**\n * The button to open container.\n */\n openButton?: React.ReactNode\n\n /**\n * Define when the \"open button\" should be shown.\n * Should be a function that returns a boolean.\n */\n showOpenButtonWhen?: (list: unknown[]) => boolean\n\n /**\n * Prefilled data to add to the fields.\n */\n data?: unknown | Record<string, unknown>\n\n /**\n * A custom toolbar to be shown below the container.\n */\n toolbar?: React.ReactNode\n\n /**\n * The container contents.\n */\n children: React.ReactNode\n}\n\nexport type AllProps = Props & SpacingProps & ArrayItemAreaProps\n\nfunction PushContainer(props: AllProps) {\n const {\n data = null,\n path,\n title,\n children,\n openButton,\n showOpenButtonWhen,\n ...rest\n } = props\n\n const commitHandleRef = useRef<() => void>()\n const switchContainerModeRef = useRef<(mode: ContainerMode) => void>()\n const { value: entries = [], moveValueToPath } = useDataValue<\n Array<unknown>\n >({ path })\n\n const { setNextContainerMode } = useSwitchContainerMode({ path })\n const { hasReachedLimit, setShowStatus } = useArrayLimit({\n path,\n })\n const cancelHandler = useCallback(() => {\n if (hasReachedLimit) {\n setShowStatus(false)\n }\n }, [hasReachedLimit, setShowStatus])\n\n const showOpenButton = showOpenButtonWhen?.(entries)\n const newItemContextProps: PushContainerContext = {\n path,\n entries,\n commitHandleRef,\n switchContainerMode: switchContainerModeRef.current,\n }\n\n const defaultData = useMemo(() => {\n return { newItems: [data] }\n }, [data])\n\n return (\n <Isolation\n defaultData={defaultData}\n emptyData={defaultData}\n commitHandleRef={commitHandleRef}\n transformOnCommit={({ newItems }) => {\n return moveValueToPath(path, [...entries, ...newItems])\n }}\n onCommit={(data, { clearData, preventCommit }) => {\n if (hasReachedLimit) {\n preventCommit()\n setShowStatus(true)\n } else {\n setNextContainerMode('view')\n switchContainerModeRef.current?.('view')\n clearData()\n }\n }}\n >\n <PushContainerContext.Provider value={newItemContextProps}>\n <IterateArray\n path=\"/newItems\"\n containerMode={showOpenButton ? 'view' : 'edit'}\n >\n <NewContainer\n title={title}\n openButton={openButton}\n switchContainerModeRef={switchContainerModeRef}\n showOpenButton={showOpenButton}\n cancelHandler={cancelHandler}\n {...rest}\n >\n {children}\n </NewContainer>\n </IterateArray>\n </PushContainerContext.Provider>\n </Isolation>\n )\n}\n\nfunction NewContainer({\n title,\n openButton,\n showOpenButton,\n switchContainerModeRef,\n cancelHandler,\n children,\n ...rest\n}) {\n const { containerMode, switchContainerMode } =\n useContext(IterateItemContext) || {}\n switchContainerModeRef.current = switchContainerMode\n const { createButton } = useTranslation().IteratePushContainer\n const { clearData } = useContext(DataContext) || {}\n const restoreOriginalValue = useCallback(() => {\n clearData?.()\n }, [clearData])\n\n const toolbar = (\n <Toolbar>\n <IterateItemContext.Consumer>\n {(context) => {\n const newItemContextProps = {\n ...context,\n restoreOriginalValue,\n }\n return (\n <IterateItemContext.Provider value={newItemContextProps}>\n <Flex.Horizontal gap=\"large\">\n <DoneButton text={createButton} />\n {showOpenButton && (\n <CancelButton onClick={cancelHandler} />\n )}\n </Flex.Horizontal>\n </IterateItemContext.Provider>\n )\n }}\n </IterateItemContext.Consumer>\n </Toolbar>\n )\n\n return (\n <>\n <EditContainer\n open={!showOpenButton || containerMode === 'edit'}\n title={title}\n toolbar={toolbar}\n {...rest}\n >\n {children}\n </EditContainer>\n\n {openButton && typeof showOpenButton === 'boolean' && (\n <HeightAnimation open={showOpenButton && containerMode === 'view'}>\n {openButton}\n </HeightAnimation>\n )}\n </>\n )\n}\n\nPushContainer.OpenButton = OpenButton\nPushContainer._supportsSpacingProps = true\n\nexport default PushContainer\n"],"mappings":"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"}
@@ -40,8 +40,8 @@ function ViewContainer(props) {
40
40
  } = (0, _react.useContext)(_IterateItemContext.default);
41
41
  let itemTitle = title;
42
42
  let ariaLabel = (0, _react.useMemo)(() => (0, _componentHelper.convertJsxToString)(itemTitle), [itemTitle]);
43
- if (ariaLabel.includes('{itemNr}')) {
44
- itemTitle = ariaLabel = ariaLabel.replace('{itemNr}', index + 1);
43
+ if (ariaLabel.includes('{itemNo}')) {
44
+ itemTitle = ariaLabel = ariaLabel.replace('{itemNo}', index + 1);
45
45
  }
46
46
  let toolbarElement = toolbar;
47
47
  if (toolbarVariant === 'minimumOneItem' && arrayValue.length <= 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"ViewContainer.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_componentHelper","_components","_elements","_ArrayItemArea","_IterateItemContext","_Toolbar3","_EditButton","_RemoveButton","_Toolbar","_Toolbar2","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","ViewContainer","props","_toolbarElement","_ref","children","className","title","toolbar","toolbarVariant","restProps","index","arrayValue","useContext","IterateItemContext","itemTitle","ariaLabel","useMemo","convertJsxToString","includes","replace","toolbarElement","createElement","hasToolbar","React","Children","toArray","some","child","Toolbar","mode","classnames","Flex","Stack","Lead","size","EditButton","RemoveButton","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Iterate/ViewContainer/ViewContainer.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Flex } from '../../../../components'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport { Lead } from '../../../../elements'\nimport ArrayItemArea, { ArrayItemAreaProps } from '../Array/ArrayItemArea'\nimport IterateItemContext from '../IterateItemContext'\nimport Toolbar from '../Toolbar'\nimport EditButton from './EditButton'\nimport RemoveButton from './RemoveButton'\n\nexport type Props = {\n /**\n * The title of the ViewContainer.\n */\n title?: React.ReactNode\n /**\n * An alternative toolbar to be shown in the ViewContainer.\n */\n toolbar?: React.ReactNode\n /**\n * The variant of the toolbar.\n */\n toolbarVariant?: 'minimumOneItem'\n}\n\nexport type AllProps = Props & FlexContainerProps & ArrayItemAreaProps\n\nfunction ViewContainer(props: AllProps) {\n const {\n children,\n className,\n title,\n toolbar,\n toolbarVariant,\n ...restProps\n } = props || {}\n const { index, arrayValue } = useContext(IterateItemContext)\n\n let itemTitle = title\n let ariaLabel = useMemo(() => convertJsxToString(itemTitle), [itemTitle])\n if (ariaLabel.includes('{itemNr}')) {\n itemTitle = ariaLabel = ariaLabel.replace('{itemNr}', index + 1)\n }\n\n let toolbarElement = toolbar\n if (toolbarVariant === 'minimumOneItem' && arrayValue.length <= 1) {\n toolbarElement = (\n <Toolbar>\n <EditButton />\n </Toolbar>\n )\n }\n\n const hasToolbar =\n !toolbarElement &&\n React.Children.toArray(children).some((child) => {\n return child?.['type'] === Toolbar\n })\n\n return (\n <ArrayItemArea\n mode=\"view\"\n ariaLabel={ariaLabel}\n className={classnames('dnb-forms-section-view-block', className)}\n {...restProps}\n >\n <Flex.Stack>\n {itemTitle && <Lead size=\"basis\">{itemTitle}</Lead>}\n {children}\n {hasToolbar\n ? null\n : toolbarElement ?? (\n <Toolbar>\n <EditButton />\n <RemoveButton />\n </Toolbar>\n )}\n </Flex.Stack>\n </ArrayItemArea>\n )\n}\n\nViewContainer.EditButton = EditButton\nViewContainer.RemoveButton = RemoveButton\n\nViewContainer._supportsSpacingProps = true\nexport default ViewContainer\n"],"mappings":"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"}
1
+ {"version":3,"file":"ViewContainer.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_componentHelper","_components","_elements","_ArrayItemArea","_IterateItemContext","_Toolbar3","_EditButton","_RemoveButton","_Toolbar","_Toolbar2","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","ViewContainer","props","_toolbarElement","_ref","children","className","title","toolbar","toolbarVariant","restProps","index","arrayValue","useContext","IterateItemContext","itemTitle","ariaLabel","useMemo","convertJsxToString","includes","replace","toolbarElement","createElement","hasToolbar","React","Children","toArray","some","child","Toolbar","mode","classnames","Flex","Stack","Lead","size","EditButton","RemoveButton","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Iterate/ViewContainer/ViewContainer.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Flex } from '../../../../components'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport { Lead } from '../../../../elements'\nimport ArrayItemArea, { ArrayItemAreaProps } from '../Array/ArrayItemArea'\nimport IterateItemContext from '../IterateItemContext'\nimport Toolbar from '../Toolbar'\nimport EditButton from './EditButton'\nimport RemoveButton from './RemoveButton'\n\nexport type Props = {\n /**\n * The title of the ViewContainer.\n */\n title?: React.ReactNode\n /**\n * An alternative toolbar to be shown in the ViewContainer.\n */\n toolbar?: React.ReactNode\n /**\n * The variant of the toolbar.\n */\n toolbarVariant?: 'minimumOneItem'\n}\n\nexport type AllProps = Props & FlexContainerProps & ArrayItemAreaProps\n\nfunction ViewContainer(props: AllProps) {\n const {\n children,\n className,\n title,\n toolbar,\n toolbarVariant,\n ...restProps\n } = props || {}\n const { index, arrayValue } = useContext(IterateItemContext)\n\n let itemTitle = title\n let ariaLabel = useMemo(() => convertJsxToString(itemTitle), [itemTitle])\n if (ariaLabel.includes('{itemNo}')) {\n itemTitle = ariaLabel = ariaLabel.replace('{itemNo}', index + 1)\n }\n\n let toolbarElement = toolbar\n if (toolbarVariant === 'minimumOneItem' && arrayValue.length <= 1) {\n toolbarElement = (\n <Toolbar>\n <EditButton />\n </Toolbar>\n )\n }\n\n const hasToolbar =\n !toolbarElement &&\n React.Children.toArray(children).some((child) => {\n return child?.['type'] === Toolbar\n })\n\n return (\n <ArrayItemArea\n mode=\"view\"\n ariaLabel={ariaLabel}\n className={classnames('dnb-forms-section-view-block', className)}\n {...restProps}\n >\n <Flex.Stack>\n {itemTitle && <Lead size=\"basis\">{itemTitle}</Lead>}\n {children}\n {hasToolbar\n ? null\n : toolbarElement ?? (\n <Toolbar>\n <EditButton />\n <RemoveButton />\n </Toolbar>\n )}\n </Flex.Stack>\n </ArrayItemArea>\n )\n}\n\nViewContainer.EditButton = EditButton\nViewContainer.RemoveButton = RemoveButton\n\nViewContainer._supportsSpacingProps = true\nexport default ViewContainer\n"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export { default as useItem } from './useItem';
2
2
  export { default as useSwitchContainerMode } from './useSwitchContainerMode';
3
+ export { default as useArrayLimit } from './useArrayLimit';
@@ -3,6 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "useArrayLimit", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _useArrayLimit.default;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "useItem", {
7
13
  enumerable: true,
8
14
  get: function () {
@@ -17,5 +23,6 @@ Object.defineProperty(exports, "useSwitchContainerMode", {
17
23
  });
18
24
  var _useItem = _interopRequireDefault(require("./useItem"));
19
25
  var _useSwitchContainerMode = _interopRequireDefault(require("./useSwitchContainerMode"));
26
+ var _useArrayLimit = _interopRequireDefault(require("./useArrayLimit"));
20
27
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_useItem","_interopRequireDefault","require","_useSwitchContainerMode","obj","__esModule","default"],"sources":["../../../../../../src/extensions/forms/Iterate/hooks/index.ts"],"sourcesContent":["export { default as useItem } from './useItem'\nexport { default as useSwitchContainerMode } from './useSwitchContainerMode'\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA4E,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA"}
1
+ {"version":3,"file":"index.js","names":["_useItem","_interopRequireDefault","require","_useSwitchContainerMode","_useArrayLimit","obj","__esModule","default"],"sources":["../../../../../../src/extensions/forms/Iterate/hooks/index.ts"],"sourcesContent":["export { default as useItem } from './useItem'\nexport { default as useSwitchContainerMode } from './useSwitchContainerMode'\nexport { default as useArrayLimit } from './useArrayLimit'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA;AAA0D,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA"}
@@ -0,0 +1,15 @@
1
+ import { Path } from '../../types';
2
+ type SharedState = {
3
+ show?: boolean;
4
+ limit?: number;
5
+ total?: number;
6
+ };
7
+ export default function useArrayLimit({ path }: {
8
+ path: Path;
9
+ }): {
10
+ setShowStatus: (show: boolean) => void;
11
+ setLimitProps: (props: Omit<SharedState, 'show'>) => void;
12
+ error: Error;
13
+ hasReachedLimit: boolean;
14
+ };
15
+ export {};
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useArrayLimit;
7
+ var _react = require("react");
8
+ var _hooks = require("../../hooks");
9
+ var _useSharedState = require("../../../../shared/helpers/useSharedState");
10
+ function useArrayLimit(_ref) {
11
+ let {
12
+ path
13
+ } = _ref;
14
+ const sharedState = (0, _useSharedState.useSharedState)(path + '-iterate-limit');
15
+ const {
16
+ set,
17
+ update,
18
+ extend,
19
+ data
20
+ } = sharedState || {};
21
+ const {
22
+ limit,
23
+ total,
24
+ show
25
+ } = data || {};
26
+ const setLimitProps = (0, _react.useCallback)(props => {
27
+ if (props.total !== total) {
28
+ update(props);
29
+ } else {
30
+ set(props);
31
+ }
32
+ }, [set, total, update]);
33
+ const setShowStatus = (0, _react.useCallback)(show => {
34
+ extend({
35
+ show
36
+ });
37
+ }, [extend]);
38
+ const hasReachedLimit = typeof limit === 'number' && total >= limit;
39
+ const {
40
+ itemsLimitReached
41
+ } = (0, _hooks.useTranslation)().IteratePushContainer;
42
+ const error = show ? new Error(itemsLimitReached.replace('{limit}', String(limit))) : undefined;
43
+ return {
44
+ setShowStatus,
45
+ setLimitProps,
46
+ error,
47
+ hasReachedLimit
48
+ };
49
+ }
50
+ //# sourceMappingURL=useArrayLimit.js.map