@payloadcms/ui 3.0.0-alpha.0 → 3.0.0-alpha.2

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 (419) hide show
  1. package/dist/@types/assets.d.js +3 -0
  2. package/dist/config.js +13 -0
  3. package/dist/elements/ArrayAction/index.js +120 -0
  4. package/dist/elements/ArrayAction/types.js +6 -0
  5. package/dist/elements/Autosave/index.d.ts.map +1 -1
  6. package/dist/elements/Autosave/index.js +207 -0
  7. package/dist/elements/Autosave/types.js +6 -0
  8. package/dist/elements/Banner/index.js +52 -0
  9. package/dist/elements/Banner/types.js +6 -0
  10. package/dist/elements/Button/index.js +166 -0
  11. package/dist/elements/Button/types.js +6 -0
  12. package/dist/elements/Card/index.js +46 -0
  13. package/dist/elements/Card/types.js +6 -0
  14. package/dist/elements/CodeEditor/CodeEditor.js +53 -0
  15. package/dist/elements/CodeEditor/index.js +68 -0
  16. package/dist/elements/CodeEditor/types.js +6 -0
  17. package/dist/elements/Collapsible/index.js +128 -0
  18. package/dist/elements/Collapsible/provider.js +90 -0
  19. package/dist/elements/Collapsible/types.js +6 -0
  20. package/dist/elements/ColumnSelector/index.js +109 -0
  21. package/dist/elements/ColumnSelector/types.js +6 -0
  22. package/dist/elements/CopyToClipboard/index.js +98 -0
  23. package/dist/elements/CopyToClipboard/types.js +6 -0
  24. package/dist/elements/DatePicker/DatePicker.js +147 -0
  25. package/dist/elements/DatePicker/index.js +63 -0
  26. package/dist/elements/DatePicker/types.js +6 -0
  27. package/dist/elements/DeleteDocument/index.js +178 -0
  28. package/dist/elements/DeleteDocument/types.js +6 -0
  29. package/dist/elements/DeleteMany/index.js +176 -0
  30. package/dist/elements/DeleteMany/types.js +6 -0
  31. package/dist/elements/DocumentControls/index.d.ts +2 -2
  32. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  33. package/dist/elements/DocumentControls/index.js +159 -0
  34. package/dist/elements/DocumentDrawer/DrawerContent.js +219 -0
  35. package/dist/elements/DocumentDrawer/index.js +185 -0
  36. package/dist/elements/DocumentDrawer/types.js +6 -0
  37. package/dist/elements/DocumentFields/index.js +55 -0
  38. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +23 -0
  39. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +42 -0
  40. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +105 -0
  41. package/dist/elements/DocumentHeader/Tabs/getCustomViews.js +48 -0
  42. package/dist/elements/DocumentHeader/Tabs/getViewConfig.js +24 -0
  43. package/dist/elements/DocumentHeader/Tabs/index.js +84 -0
  44. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +27 -0
  45. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +75 -0
  46. package/dist/elements/DocumentHeader/index.js +81 -0
  47. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +82 -0
  48. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js +6 -0
  49. package/dist/elements/DraggableSortable/index.js +96 -0
  50. package/dist/elements/DraggableSortable/types.js +6 -0
  51. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +32 -0
  52. package/dist/elements/DraggableSortable/useDraggableSortable/types.js +6 -0
  53. package/dist/elements/Drawer/index.js +156 -0
  54. package/dist/elements/Drawer/types.js +6 -0
  55. package/dist/elements/Drawer/useDrawerSlug.js +23 -0
  56. package/dist/elements/Dropzone/index.js +117 -0
  57. package/dist/elements/DuplicateDocument/index.js +217 -0
  58. package/dist/elements/DuplicateDocument/types.js +6 -0
  59. package/dist/elements/EditMany/index.js +274 -0
  60. package/dist/elements/EditMany/types.js +6 -0
  61. package/dist/elements/EditUpload/index.js +390 -0
  62. package/dist/elements/ErrorPill/index.js +37 -0
  63. package/dist/elements/ErrorPill/types.js +6 -0
  64. package/dist/elements/FieldSelect/index.js +138 -0
  65. package/dist/elements/FileDetails/FileMeta/index.js +96 -0
  66. package/dist/elements/FileDetails/FileMeta/types.js +6 -0
  67. package/dist/elements/FileDetails/index.js +59 -0
  68. package/dist/elements/FileDetails/types.js +6 -0
  69. package/dist/elements/GenerateConfirmation/index.js +72 -0
  70. package/dist/elements/GenerateConfirmation/types.js +6 -0
  71. package/dist/elements/GetFilterOptions/index.js +57 -0
  72. package/dist/elements/Gutter/index.js +72 -0
  73. package/dist/elements/Hamburger/index.js +54 -0
  74. package/dist/elements/Header/index.d.ts.map +1 -1
  75. package/dist/elements/Header/index.js +140 -0
  76. package/dist/elements/HydrateClientUser/index.js +28 -0
  77. package/dist/elements/IDLabel/index.js +28 -0
  78. package/dist/elements/ListControls/getTextFieldsToBeSearched.js +21 -0
  79. package/dist/elements/ListControls/index.js +149 -0
  80. package/dist/elements/ListControls/types.js +6 -0
  81. package/dist/elements/ListDrawer/DrawerContent.js +315 -0
  82. package/dist/elements/ListDrawer/index.js +198 -0
  83. package/dist/elements/ListDrawer/types.js +6 -0
  84. package/dist/elements/ListSelection/index.js +83 -0
  85. package/dist/elements/Loading/index.js +103 -0
  86. package/dist/elements/LoadingOverlay/index.js +130 -0
  87. package/dist/elements/LoadingOverlay/reducer.js +49 -0
  88. package/dist/elements/LoadingOverlay/types.js +6 -0
  89. package/dist/elements/Localizer/LocalizerLabel/index.js +43 -0
  90. package/dist/elements/Localizer/index.js +121 -0
  91. package/dist/elements/Logout/index.d.ts.map +1 -1
  92. package/dist/elements/Logout/index.js +49 -0
  93. package/dist/elements/Nav/NavHamburger/index.js +34 -0
  94. package/dist/elements/Nav/NavToggler/index.js +53 -0
  95. package/dist/elements/Nav/NavWrapper/index.js +34 -0
  96. package/dist/elements/Nav/context.js +150 -0
  97. package/dist/elements/Nav/index.d.ts.map +1 -1
  98. package/dist/elements/Nav/index.js +106 -0
  99. package/dist/elements/NavGroup/index.js +129 -0
  100. package/dist/elements/Pagination/ClickableArrow/index.js +36 -0
  101. package/dist/elements/Pagination/ClickableArrow/types.js +6 -0
  102. package/dist/elements/Pagination/Page/index.js +33 -0
  103. package/dist/elements/Pagination/Page/types.js +6 -0
  104. package/dist/elements/Pagination/Separator/index.js +22 -0
  105. package/dist/elements/Pagination/index.js +126 -0
  106. package/dist/elements/Pagination/types.js +6 -0
  107. package/dist/elements/PerPage/index.d.ts.map +1 -1
  108. package/dist/elements/PerPage/index.js +115 -0
  109. package/dist/elements/Pill/index.js +93 -0
  110. package/dist/elements/Pill/types.js +6 -0
  111. package/dist/elements/Popup/PopupButtonList/index.d.ts +2 -2
  112. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  113. package/dist/elements/Popup/PopupButtonList/index.js +118 -0
  114. package/dist/elements/Popup/PopupTrigger/index.js +51 -0
  115. package/dist/elements/Popup/PopupTrigger/types.js +6 -0
  116. package/dist/elements/Popup/index.js +193 -0
  117. package/dist/elements/Popup/types.js +6 -0
  118. package/dist/elements/PreviewButton/index.js +129 -0
  119. package/dist/elements/PreviewSizes/index.js +163 -0
  120. package/dist/elements/Publish/index.js +153 -0
  121. package/dist/elements/PublishMany/index.js +169 -0
  122. package/dist/elements/PublishMany/types.js +6 -0
  123. package/dist/elements/ReactSelect/ClearIndicator/index.js +31 -0
  124. package/dist/elements/ReactSelect/Control/index.js +49 -0
  125. package/dist/elements/ReactSelect/MultiValue/index.js +55 -0
  126. package/dist/elements/ReactSelect/MultiValueLabel/index.js +34 -0
  127. package/dist/elements/ReactSelect/MultiValueRemove/index.js +48 -0
  128. package/dist/elements/ReactSelect/SingleValue/index.js +30 -0
  129. package/dist/elements/ReactSelect/ValueContainer/index.js +29 -0
  130. package/dist/elements/ReactSelect/index.js +177 -0
  131. package/dist/elements/ReactSelect/types.js +6 -0
  132. package/dist/elements/RenderCustomComponent/index.js +28 -0
  133. package/dist/elements/RenderCustomComponent/types.js +6 -0
  134. package/dist/elements/RenderTitle/index.js +42 -0
  135. package/dist/elements/RenderTitle/types.js +6 -0
  136. package/dist/elements/Save/index.js +103 -0
  137. package/dist/elements/SaveDraft/index.js +147 -0
  138. package/dist/elements/SearchFilter/index.d.ts.map +1 -1
  139. package/dist/elements/SearchFilter/index.js +139 -0
  140. package/dist/elements/SearchFilter/types.js +6 -0
  141. package/dist/elements/SelectAll/index.js +35 -0
  142. package/dist/elements/SelectRow/index.js +31 -0
  143. package/dist/elements/ShimmerEffect/index.js +96 -0
  144. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  145. package/dist/elements/SortColumn/index.js +139 -0
  146. package/dist/elements/SortColumn/types.js +6 -0
  147. package/dist/elements/SortComplex/index.d.ts.map +1 -1
  148. package/dist/elements/SortComplex/index.js +157 -0
  149. package/dist/elements/SortComplex/types.js +6 -0
  150. package/dist/elements/Status/index.js +202 -0
  151. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  152. package/dist/elements/StayLoggedIn/index.js +57 -0
  153. package/dist/elements/StayLoggedIn/types.js +6 -0
  154. package/dist/elements/StepNav/SetStepNav.js +25 -0
  155. package/dist/elements/StepNav/index.d.ts.map +1 -1
  156. package/dist/elements/StepNav/index.js +127 -0
  157. package/dist/elements/StepNav/types.js +6 -0
  158. package/dist/elements/Table/TableCellProvider/index.js +47 -0
  159. package/dist/elements/Table/index.js +63 -0
  160. package/dist/elements/Table/types.js +6 -0
  161. package/dist/elements/TableColumns/buildColumns.js +77 -0
  162. package/dist/elements/TableColumns/columnReducer.js +47 -0
  163. package/dist/elements/TableColumns/index.js +199 -0
  164. package/dist/elements/Thumbnail/index.js +89 -0
  165. package/dist/elements/Thumbnail/types.js +6 -0
  166. package/dist/elements/ThumbnailCard/index.js +54 -0
  167. package/dist/elements/ThumbnailCard/types.js +6 -0
  168. package/dist/elements/Tooltip/index.js +114 -0
  169. package/dist/elements/Tooltip/types.js +6 -0
  170. package/dist/elements/Translation/index.js +81 -0
  171. package/dist/elements/UnpublishMany/index.js +169 -0
  172. package/dist/elements/UnpublishMany/types.js +6 -0
  173. package/dist/elements/Upload/index.js +250 -0
  174. package/dist/elements/Upload/types.js +6 -0
  175. package/dist/elements/ViewDescription/index.js +38 -0
  176. package/dist/elements/ViewDescription/types.js +21 -0
  177. package/dist/elements/WhereBuilder/Condition/Date/index.js +32 -0
  178. package/dist/elements/WhereBuilder/Condition/Date/types.js +6 -0
  179. package/dist/elements/WhereBuilder/Condition/Number/index.js +33 -0
  180. package/dist/elements/WhereBuilder/Condition/Number/types.js +6 -0
  181. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +337 -0
  182. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js +98 -0
  183. package/dist/elements/WhereBuilder/Condition/Relationship/types.js +6 -0
  184. package/dist/elements/WhereBuilder/Condition/Select/index.js +96 -0
  185. package/dist/elements/WhereBuilder/Condition/Select/types.js +6 -0
  186. package/dist/elements/WhereBuilder/Condition/Text/index.js +33 -0
  187. package/dist/elements/WhereBuilder/Condition/Text/types.js +6 -0
  188. package/dist/elements/WhereBuilder/Condition/index.js +203 -0
  189. package/dist/elements/WhereBuilder/Condition/types.js +6 -0
  190. package/dist/elements/WhereBuilder/field-types.js +185 -0
  191. package/dist/elements/WhereBuilder/index.js +235 -0
  192. package/dist/elements/WhereBuilder/reducer.js +88 -0
  193. package/dist/elements/WhereBuilder/transformWhereQuery.js +57 -0
  194. package/dist/elements/WhereBuilder/types.js +6 -0
  195. package/dist/elements/WhereBuilder/validateWhereQuery.js +46 -0
  196. package/dist/exports/assets.js +27 -0
  197. package/dist/exports/elements.js +226 -0
  198. package/dist/exports/forms.js +158 -0
  199. package/dist/exports/graphics.js +27 -0
  200. package/dist/exports/hooks.js +55 -0
  201. package/dist/exports/icons.js +82 -0
  202. package/dist/exports/index.js +28 -0
  203. package/dist/exports/providers.js +116 -0
  204. package/dist/exports/templates.js +22 -0
  205. package/dist/exports/types.js +6 -0
  206. package/dist/exports/utilities.js +62 -0
  207. package/dist/forms/Error/index.js +43 -0
  208. package/dist/forms/FieldDescription/index.js +38 -0
  209. package/dist/forms/FieldDescription/types.js +6 -0
  210. package/dist/forms/FieldPathProvider/index.js +44 -0
  211. package/dist/forms/FieldPathProvider/types.js +6 -0
  212. package/dist/forms/Form/buildFieldSchemaMap.js +54 -0
  213. package/dist/forms/Form/buildInitialState.js +26 -0
  214. package/dist/forms/Form/context.js +84 -0
  215. package/dist/forms/Form/createNestedFieldPath.js +25 -0
  216. package/dist/forms/Form/errorMessages.js +15 -0
  217. package/dist/forms/Form/fieldReducer.js +286 -0
  218. package/dist/forms/Form/getDataByPath.js +29 -0
  219. package/dist/forms/Form/getSiblingData.js +50 -0
  220. package/dist/forms/Form/index.js +565 -0
  221. package/dist/forms/Form/initContextState.js +45 -0
  222. package/dist/forms/Form/mergeServerFormState.js +45 -0
  223. package/dist/forms/Form/reduceFieldsToValues.js +34 -0
  224. package/dist/forms/Form/rows.js +53 -0
  225. package/dist/forms/Form/types.js +6 -0
  226. package/dist/forms/Label/index.js +36 -0
  227. package/dist/forms/NullifyField/index.js +103 -0
  228. package/dist/forms/RenderFields/RenderField.js +30 -0
  229. package/dist/forms/RenderFields/index.js +66 -0
  230. package/dist/forms/RenderFields/types.js +6 -0
  231. package/dist/forms/RowLabel/index.js +50 -0
  232. package/dist/forms/RowLabel/types.js +21 -0
  233. package/dist/forms/Submit/index.js +75 -0
  234. package/dist/forms/WatchChildErrors/buildPathSegments.js +37 -0
  235. package/dist/forms/WatchChildErrors/getFieldStateFromPaths.js +35 -0
  236. package/dist/forms/WatchChildErrors/getNestedFieldState.js +28 -0
  237. package/dist/forms/WatchChildErrors/index.js +41 -0
  238. package/dist/forms/fields/Array/ArrayRow.js +87 -0
  239. package/dist/forms/fields/Array/index.js +305 -0
  240. package/dist/forms/fields/Array/types.js +6 -0
  241. package/dist/forms/fields/Blocks/BlockRow.js +101 -0
  242. package/dist/forms/fields/Blocks/BlocksDrawer/BlockSearch/index.js +37 -0
  243. package/dist/forms/fields/Blocks/BlocksDrawer/index.js +134 -0
  244. package/dist/forms/fields/Blocks/BlocksDrawer/types.js +6 -0
  245. package/dist/forms/fields/Blocks/RowActions.js +52 -0
  246. package/dist/forms/fields/Blocks/SectionTitle/index.js +54 -0
  247. package/dist/forms/fields/Blocks/SectionTitle/types.js +6 -0
  248. package/dist/forms/fields/Blocks/index.js +317 -0
  249. package/dist/forms/fields/Blocks/types.js +6 -0
  250. package/dist/forms/fields/Checkbox/Input.js +56 -0
  251. package/dist/forms/fields/Checkbox/index.js +134 -0
  252. package/dist/forms/fields/Checkbox/types.js +6 -0
  253. package/dist/forms/fields/Code/index.js +115 -0
  254. package/dist/forms/fields/Code/types.js +6 -0
  255. package/dist/forms/fields/Collapsible/index.js +169 -0
  256. package/dist/forms/fields/Collapsible/types.js +6 -0
  257. package/dist/forms/fields/ConfirmPassword/index.js +112 -0
  258. package/dist/forms/fields/ConfirmPassword/types.js +6 -0
  259. package/dist/forms/fields/DateTime/index.js +115 -0
  260. package/dist/forms/fields/DateTime/types.js +6 -0
  261. package/dist/forms/fields/Email/index.js +121 -0
  262. package/dist/forms/fields/Email/types.js +6 -0
  263. package/dist/forms/fields/Group/index.js +127 -0
  264. package/dist/forms/fields/Group/provider.js +74 -0
  265. package/dist/forms/fields/Group/types.js +6 -0
  266. package/dist/forms/fields/HiddenInput/index.js +88 -0
  267. package/dist/forms/fields/HiddenInput/types.js +6 -0
  268. package/dist/forms/fields/JSON/index.js +137 -0
  269. package/dist/forms/fields/JSON/types.js +6 -0
  270. package/dist/forms/fields/Number/index.js +212 -0
  271. package/dist/forms/fields/Number/types.js +6 -0
  272. package/dist/forms/fields/Password/index.js +116 -0
  273. package/dist/forms/fields/Password/types.js +6 -0
  274. package/dist/forms/fields/Point/index.js +147 -0
  275. package/dist/forms/fields/Point/types.js +6 -0
  276. package/dist/forms/fields/RadioGroup/Radio/index.js +45 -0
  277. package/dist/forms/fields/RadioGroup/index.js +147 -0
  278. package/dist/forms/fields/RadioGroup/types.js +6 -0
  279. package/dist/forms/fields/Relationship/AddNew/index.js +216 -0
  280. package/dist/forms/fields/Relationship/AddNew/types.js +6 -0
  281. package/dist/forms/fields/Relationship/AddNew/useRelatedCollections.js +27 -0
  282. package/dist/forms/fields/Relationship/createRelationMap.js +59 -0
  283. package/dist/forms/fields/Relationship/findOptionsByValue.js +45 -0
  284. package/dist/forms/fields/Relationship/index.js +509 -0
  285. package/dist/forms/fields/Relationship/optionsReducer.js +126 -0
  286. package/dist/forms/fields/Relationship/select-components/MultiValueLabel/index.js +109 -0
  287. package/dist/forms/fields/Relationship/select-components/SingleValue/index.js +108 -0
  288. package/dist/forms/fields/Relationship/types.js +6 -0
  289. package/dist/forms/fields/RichText/index.js +16 -0
  290. package/dist/forms/fields/RichText/types.js +6 -0
  291. package/dist/forms/fields/Row/index.js +42 -0
  292. package/dist/forms/fields/Row/provider.js +74 -0
  293. package/dist/forms/fields/Row/types.js +6 -0
  294. package/dist/forms/fields/Select/index.js +183 -0
  295. package/dist/forms/fields/Select/types.js +6 -0
  296. package/dist/forms/fields/Tabs/Tab/index.js +85 -0
  297. package/dist/forms/fields/Tabs/index.js +167 -0
  298. package/dist/forms/fields/Tabs/provider.js +74 -0
  299. package/dist/forms/fields/Tabs/types.js +6 -0
  300. package/dist/forms/fields/Text/index.js +194 -0
  301. package/dist/forms/fields/Text/types.js +6 -0
  302. package/dist/forms/fields/Textarea/index.js +133 -0
  303. package/dist/forms/fields/Textarea/types.js +6 -0
  304. package/dist/forms/fields/UI/index.js +16 -0
  305. package/dist/forms/fields/Upload/Input.js +3 -0
  306. package/dist/forms/fields/Upload/index.js +210 -0
  307. package/dist/forms/fields/Upload/types.js +6 -0
  308. package/dist/forms/fields/getFilterOptionsQuery.js +39 -0
  309. package/dist/forms/fields/index.js +67 -0
  310. package/dist/forms/fields/shared.js +29 -0
  311. package/dist/forms/useField/index.js +169 -0
  312. package/dist/forms/useField/types.js +6 -0
  313. package/dist/forms/utilities/buildStateFromSchema/addFieldStatePromise.js +335 -0
  314. package/dist/forms/utilities/buildStateFromSchema/buildStateFromSchema.spec.js +76 -0
  315. package/dist/forms/utilities/buildStateFromSchema/index.js +35 -0
  316. package/dist/forms/utilities/buildStateFromSchema/iterateFields.js +48 -0
  317. package/dist/forms/withCondition/WatchCondition.js +66 -0
  318. package/dist/forms/withCondition/index.js +33 -0
  319. package/dist/graphics/Account/Default/index.js +43 -0
  320. package/dist/graphics/Account/Gravatar/index.js +42 -0
  321. package/dist/graphics/Account/index.js +50 -0
  322. package/dist/graphics/DefaultBlockImage/index.js +84 -0
  323. package/dist/graphics/ExternalLink/index.js +34 -0
  324. package/dist/graphics/File/index.js +36 -0
  325. package/dist/graphics/Icon/index.js +64 -0
  326. package/dist/graphics/Logo/index.js +60 -0
  327. package/dist/graphics/Search/index.js +42 -0
  328. package/dist/hooks/useAdminThumbnail.js +17 -0
  329. package/dist/hooks/useDebounce.js +31 -0
  330. package/dist/hooks/useDebouncedCallback.js +29 -0
  331. package/dist/hooks/useDebouncedEffect.js +32 -0
  332. package/dist/hooks/useDelay.js +82 -0
  333. package/dist/hooks/useDelayedRender.js +97 -0
  334. package/dist/hooks/useHotkey.js +129 -0
  335. package/dist/hooks/useIntersect.js +39 -0
  336. package/dist/hooks/usePayloadAPI.js +94 -0
  337. package/dist/hooks/useResize.js +59 -0
  338. package/dist/hooks/useThrottledEffect.js +31 -0
  339. package/dist/hooks/useThumbnail.js +57 -0
  340. package/dist/hooks/useUseAsTitle.js +19 -0
  341. package/dist/icons/Calendar/index.js +48 -0
  342. package/dist/icons/Check/index.js +34 -0
  343. package/dist/icons/Chevron/index.js +36 -0
  344. package/dist/icons/CloseMenu/index.js +39 -0
  345. package/dist/icons/CodeBlock/index.js +32 -0
  346. package/dist/icons/Copy/index.js +33 -0
  347. package/dist/icons/DragHandle/index.js +57 -0
  348. package/dist/icons/Edit/index.js +37 -0
  349. package/dist/icons/Line/index.js +30 -0
  350. package/dist/icons/Link/index.js +33 -0
  351. package/dist/icons/LogOut/index.js +37 -0
  352. package/dist/icons/Menu/index.js +45 -0
  353. package/dist/icons/MinimizeMaximize/index.js +87 -0
  354. package/dist/icons/More/index.js +42 -0
  355. package/dist/icons/Plus/index.js +36 -0
  356. package/dist/icons/Search/index.js +36 -0
  357. package/dist/icons/Swap/index.js +43 -0
  358. package/dist/icons/X/index.js +41 -0
  359. package/dist/index.js +20 -0
  360. package/dist/providers/ActionsProvider/index.js +89 -0
  361. package/dist/providers/Auth/HydrateClientUser/index.js +28 -0
  362. package/dist/providers/Auth/index.js +373 -0
  363. package/dist/providers/Auth/types.js +6 -0
  364. package/dist/providers/ClientFunction/index.js +65 -0
  365. package/dist/providers/ComponentMapProvider/index.js +98 -0
  366. package/dist/providers/Config/index.js +70 -0
  367. package/dist/providers/CustomProvider/index.js +38 -0
  368. package/dist/providers/DocumentEvents/index.js +77 -0
  369. package/dist/providers/DocumentEvents/types.js +6 -0
  370. package/dist/providers/DocumentInfo/SetDocumentInfo/index.js +34 -0
  371. package/dist/providers/DocumentInfo/index.js +353 -0
  372. package/dist/providers/DocumentInfo/types.js +6 -0
  373. package/dist/providers/EditDepth/index.js +71 -0
  374. package/dist/providers/FormQueryParams/index.js +77 -0
  375. package/dist/providers/ListInfo/index.js +78 -0
  376. package/dist/providers/ListInfo/types.js +6 -0
  377. package/dist/providers/Locale/index.js +122 -0
  378. package/dist/providers/OperationProvider/index.js +71 -0
  379. package/dist/providers/Params/index.js +72 -0
  380. package/dist/providers/Portal/index.js +20 -0
  381. package/dist/providers/Preferences/index.js +184 -0
  382. package/dist/providers/Root/index.js +103 -0
  383. package/dist/providers/SearchParams/index.js +119 -0
  384. package/dist/providers/SearchParams/types.js +6 -0
  385. package/dist/providers/SelectionProvider/index.js +218 -0
  386. package/dist/providers/Theme/index.js +123 -0
  387. package/dist/providers/Theme/types.js +6 -0
  388. package/dist/providers/Theme/utilities.js +35 -0
  389. package/dist/providers/Translation/index.js +92 -0
  390. package/dist/templates/Default/NavHamburger/index.js +28 -0
  391. package/dist/templates/Default/Wrapper/index.js +32 -0
  392. package/dist/templates/Default/index.js +88 -0
  393. package/dist/templates/Default/types.js +6 -0
  394. package/dist/templates/Minimal/index.js +34 -0
  395. package/dist/templates/Minimal/types.js +6 -0
  396. package/dist/utilities/api.js +98 -0
  397. package/dist/utilities/arraysHaveSameStrings.js +28 -0
  398. package/dist/utilities/buildComponentMap/index.js +101 -0
  399. package/dist/utilities/buildComponentMap/mapFields.js +318 -0
  400. package/dist/utilities/buildComponentMap/types.js +6 -0
  401. package/dist/utilities/buildFieldSchemaMap/index.js +36 -0
  402. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +94 -0
  403. package/dist/utilities/buildFieldSchemaMap/types.js +6 -0
  404. package/dist/utilities/canUseDOM.js +13 -0
  405. package/dist/utilities/findLocaleFromCode.js +18 -0
  406. package/dist/utilities/formatDate/getSupportedDateLocale.js +21 -0
  407. package/dist/utilities/formatDate/index.js +78 -0
  408. package/dist/utilities/formatDocTitle.js +33 -0
  409. package/dist/utilities/formatFields.js +14 -0
  410. package/dist/utilities/getFormState.js +28 -0
  411. package/dist/utilities/getOffsetTop.js +26 -0
  412. package/dist/utilities/getRequestLanguage.js +17 -0
  413. package/dist/utilities/getSupportedMonacoLocale.js +26 -0
  414. package/dist/utilities/groupNavItems.js +61 -0
  415. package/dist/utilities/scrollToID.js +22 -0
  416. package/dist/utilities/setsAreEqual.js +17 -0
  417. package/dist/utilities/withMergedProps/index.js +27 -0
  418. package/dist/views/Global/RenderCustomView.js +3 -0
  419. package/package.json +5 -5
@@ -0,0 +1,286 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "fieldReducer", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return fieldReducer;
9
+ }
10
+ });
11
+ const _bsonobjectid = /*#__PURE__*/ _interop_require_default(require("bson-objectid"));
12
+ const _deepequal = /*#__PURE__*/ _interop_require_default(require("deep-equal"));
13
+ const _utilities = require("payload/utilities");
14
+ const _rows = require("./rows");
15
+ function _interop_require_default(obj) {
16
+ return obj && obj.__esModule ? obj : {
17
+ default: obj
18
+ };
19
+ }
20
+ function fieldReducer(state, action) {
21
+ switch(action.type){
22
+ case 'REPLACE_STATE':
23
+ {
24
+ const newState = {};
25
+ if (action.optimize !== false) {
26
+ // Only update fields that have changed
27
+ // by comparing old value / initialValue to new
28
+ // ..
29
+ // This is a performance enhancement for saving
30
+ // large documents with hundreds of fields
31
+ Object.entries(action.state).forEach(([path, field])=>{
32
+ const oldField = state[path];
33
+ const newField = field;
34
+ if (!(0, _deepequal.default)(oldField, newField)) {
35
+ newState[path] = newField;
36
+ } else if (oldField) {
37
+ newState[path] = oldField;
38
+ }
39
+ });
40
+ } else {
41
+ // If we're not optimizing, just set the state to the new state
42
+ return action.state;
43
+ }
44
+ return newState;
45
+ }
46
+ case 'REMOVE':
47
+ {
48
+ const newState = {
49
+ ...state
50
+ };
51
+ if (newState[action.path]) delete newState[action.path];
52
+ return newState;
53
+ }
54
+ case 'UPDATE':
55
+ {
56
+ const newField = Object.entries(action).reduce((field, [key, value])=>{
57
+ if ([
58
+ 'disableFormData',
59
+ 'errorMessage',
60
+ 'initialValue',
61
+ 'rows',
62
+ 'valid',
63
+ 'validate',
64
+ 'value'
65
+ ].includes(key)) {
66
+ return {
67
+ ...field,
68
+ [key]: value
69
+ };
70
+ }
71
+ return field;
72
+ }, state[action.path] || {});
73
+ const newState = {
74
+ ...state,
75
+ [action.path]: newField
76
+ };
77
+ return newState;
78
+ }
79
+ case 'REMOVE_ROW':
80
+ {
81
+ const { path, rowIndex } = action;
82
+ const { remainingFields, rows } = (0, _rows.separateRows)(path, state);
83
+ const rowsMetadata = [
84
+ ...state[path]?.rows || []
85
+ ];
86
+ rows.splice(rowIndex, 1);
87
+ rowsMetadata.splice(rowIndex, 1);
88
+ const newState = {
89
+ ...remainingFields,
90
+ [path]: {
91
+ ...state[path],
92
+ disableFormData: rows.length > 0,
93
+ rows: rowsMetadata,
94
+ value: rows.length
95
+ },
96
+ ...(0, _rows.flattenRows)(path, rows)
97
+ };
98
+ return newState;
99
+ }
100
+ case 'ADD_ROW':
101
+ {
102
+ const { blockType, path, rowIndex: rowIndexFromArgs, subFieldState = {} } = action;
103
+ const rowIndex = typeof rowIndexFromArgs === 'number' ? rowIndexFromArgs : state[path]?.rows?.length || 0;
104
+ const withNewRow = [
105
+ ...state[path]?.rows || []
106
+ ];
107
+ const newRow = {
108
+ id: new _bsonobjectid.default().toHexString(),
109
+ blockType: blockType || undefined,
110
+ collapsed: false
111
+ };
112
+ withNewRow.splice(rowIndex, 0, newRow);
113
+ if (blockType) {
114
+ subFieldState.blockType = {
115
+ initialValue: blockType,
116
+ valid: true,
117
+ value: blockType
118
+ };
119
+ }
120
+ // add new row to array _field state_
121
+ const { remainingFields, rows: siblingRows } = (0, _rows.separateRows)(path, state);
122
+ siblingRows.splice(rowIndex, 0, subFieldState);
123
+ const newState = {
124
+ ...remainingFields,
125
+ ...(0, _rows.flattenRows)(path, siblingRows),
126
+ [path]: {
127
+ ...state[path],
128
+ disableFormData: true,
129
+ rows: withNewRow,
130
+ value: siblingRows.length
131
+ }
132
+ };
133
+ return newState;
134
+ }
135
+ case 'REPLACE_ROW':
136
+ {
137
+ const { blockType, path, rowIndex: rowIndexArg } = action;
138
+ const subFieldState = {};
139
+ const { remainingFields, rows: siblingRows } = (0, _rows.separateRows)(path, state);
140
+ const rowIndex = Math.max(0, Math.min(rowIndexArg, siblingRows?.length - 1 || 0));
141
+ const rowsMetadata = [
142
+ ...state[path]?.rows || []
143
+ ];
144
+ rowsMetadata[rowIndex] = {
145
+ id: new _bsonobjectid.default().toHexString(),
146
+ blockType: blockType || undefined,
147
+ collapsed: false
148
+ };
149
+ if (blockType) {
150
+ subFieldState.blockType = {
151
+ initialValue: blockType,
152
+ valid: true,
153
+ value: blockType
154
+ };
155
+ }
156
+ // replace form _field state_
157
+ siblingRows[rowIndex] = subFieldState;
158
+ const newState = {
159
+ ...remainingFields,
160
+ ...(0, _rows.flattenRows)(path, siblingRows),
161
+ [path]: {
162
+ ...state[path],
163
+ disableFormData: true,
164
+ rows: rowsMetadata,
165
+ value: siblingRows.length
166
+ }
167
+ };
168
+ return newState;
169
+ }
170
+ case 'DUPLICATE_ROW':
171
+ {
172
+ const { path, rowIndex } = action;
173
+ const { remainingFields, rows } = (0, _rows.separateRows)(path, state);
174
+ const rowsMetadata = state[path]?.rows || [];
175
+ const duplicateRowMetadata = (0, _utilities.deepCopyObject)(rowsMetadata[rowIndex]);
176
+ if (duplicateRowMetadata.id) duplicateRowMetadata.id = new _bsonobjectid.default().toHexString();
177
+ const duplicateRowState = (0, _utilities.deepCopyObject)(rows[rowIndex]);
178
+ if (duplicateRowState.id) duplicateRowState.id = new _bsonobjectid.default().toHexString();
179
+ // If there are subfields
180
+ if (Object.keys(duplicateRowState).length > 0) {
181
+ // Add new object containing subfield names to unflattenedRows array
182
+ rows.splice(rowIndex + 1, 0, duplicateRowState);
183
+ rowsMetadata.splice(rowIndex + 1, 0, duplicateRowMetadata);
184
+ }
185
+ const newState = {
186
+ ...remainingFields,
187
+ [path]: {
188
+ ...state[path],
189
+ disableFormData: true,
190
+ rows: rowsMetadata,
191
+ value: rows.length
192
+ },
193
+ ...(0, _rows.flattenRows)(path, rows)
194
+ };
195
+ return newState;
196
+ }
197
+ case 'MOVE_ROW':
198
+ {
199
+ const { moveFromIndex, moveToIndex, path } = action;
200
+ const { remainingFields, rows } = (0, _rows.separateRows)(path, state);
201
+ // copy the row to move
202
+ const copyOfMovingRow = rows[moveFromIndex];
203
+ // delete the row by index
204
+ rows.splice(moveFromIndex, 1);
205
+ // insert row copyOfMovingRow back in
206
+ rows.splice(moveToIndex, 0, copyOfMovingRow);
207
+ // modify array/block internal row state (i.e. collapsed, blockType)
208
+ const rowStateCopy = [
209
+ ...state[path]?.rows || []
210
+ ];
211
+ const movingRowState = {
212
+ ...rowStateCopy[moveFromIndex]
213
+ };
214
+ rowStateCopy.splice(moveFromIndex, 1);
215
+ rowStateCopy.splice(moveToIndex, 0, movingRowState);
216
+ const newState = {
217
+ ...remainingFields,
218
+ ...(0, _rows.flattenRows)(path, rows),
219
+ [path]: {
220
+ ...state[path],
221
+ rows: rowStateCopy
222
+ }
223
+ };
224
+ return newState;
225
+ }
226
+ case 'SET_ROW_COLLAPSED':
227
+ {
228
+ const { collapsed, path, rowID, setDocFieldPreferences } = action;
229
+ const arrayState = state[path];
230
+ const { collapsedRowIDs, matchedIndex } = state[path].rows.reduce((acc, row, index)=>{
231
+ const isMatchingRow = row.id === rowID;
232
+ if (isMatchingRow) acc.matchedIndex = index;
233
+ if (!isMatchingRow && row.collapsed) acc.collapsedRowIDs.push(row.id);
234
+ else if (isMatchingRow && collapsed) acc.collapsedRowIDs.push(row.id);
235
+ return acc;
236
+ }, {
237
+ collapsedRowIDs: [],
238
+ matchedIndex: undefined
239
+ });
240
+ if (matchedIndex > -1) {
241
+ arrayState.rows[matchedIndex].collapsed = collapsed;
242
+ setDocFieldPreferences(path, {
243
+ collapsed: collapsedRowIDs
244
+ });
245
+ }
246
+ const newState = {
247
+ ...state,
248
+ [path]: {
249
+ ...arrayState
250
+ }
251
+ };
252
+ return newState;
253
+ }
254
+ case 'SET_ALL_ROWS_COLLAPSED':
255
+ {
256
+ const { collapsed, path, setDocFieldPreferences } = action;
257
+ const { collapsedRowIDs, rows } = state[path].rows.reduce((acc, row)=>{
258
+ if (collapsed) acc.collapsedRowIDs.push(row.id);
259
+ acc.rows.push({
260
+ ...row,
261
+ collapsed
262
+ });
263
+ return acc;
264
+ }, {
265
+ collapsedRowIDs: [],
266
+ rows: []
267
+ });
268
+ setDocFieldPreferences(path, {
269
+ collapsed: collapsedRowIDs
270
+ });
271
+ return {
272
+ ...state,
273
+ [path]: {
274
+ ...state[path],
275
+ rows
276
+ }
277
+ };
278
+ }
279
+ default:
280
+ {
281
+ return state;
282
+ }
283
+ }
284
+ }
285
+
286
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mb3Jtcy9Gb3JtL2ZpZWxkUmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgT2JqZWN0SWQgZnJvbSAnYnNvbi1vYmplY3RpZCdcbmltcG9ydCBlcXVhbCBmcm9tICdkZWVwLWVxdWFsJ1xuaW1wb3J0IHsgZGVlcENvcHlPYmplY3QgfSBmcm9tICdwYXlsb2FkL3V0aWxpdGllcydcblxuaW1wb3J0IHR5cGUgeyBGaWVsZEFjdGlvbiwgRm9ybUZpZWxkLCBGb3JtU3RhdGUsIFJvdyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGZsYXR0ZW5Sb3dzLCBzZXBhcmF0ZVJvd3MgfSBmcm9tICcuL3Jvd3MnXG5cbi8qKlxuICogUmVkdWNlciB3aGljaCBtb2RpZmllcyB0aGUgZm9ybSBmaWVsZCBzdGF0ZSAoYWxsIHRoZSBjdXJyZW50IGRhdGEgb2YgdGhlIGZpZWxkcyBpbiB0aGUgZm9ybSkuIFdoZW4gY2FsbGVkIHVzaW5nIGRpc3BhdGNoLCBpdCB3aWxsIHJldHVybiBhIG5ldyBzdGF0ZSBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWVsZFJlZHVjZXIoc3RhdGU6IEZvcm1TdGF0ZSwgYWN0aW9uOiBGaWVsZEFjdGlvbik6IEZvcm1TdGF0ZSB7XG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlICdSRVBMQUNFX1NUQVRFJzoge1xuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7fVxuXG4gICAgICBpZiAoYWN0aW9uLm9wdGltaXplICE9PSBmYWxzZSkge1xuICAgICAgICAvLyBPbmx5IHVwZGF0ZSBmaWVsZHMgdGhhdCBoYXZlIGNoYW5nZWRcbiAgICAgICAgLy8gYnkgY29tcGFyaW5nIG9sZCB2YWx1ZSAvIGluaXRpYWxWYWx1ZSB0byBuZXdcbiAgICAgICAgLy8gLi5cbiAgICAgICAgLy8gVGhpcyBpcyBhIHBlcmZvcm1hbmNlIGVuaGFuY2VtZW50IGZvciBzYXZpbmdcbiAgICAgICAgLy8gbGFyZ2UgZG9jdW1lbnRzIHdpdGggaHVuZHJlZHMgb2YgZmllbGRzXG5cbiAgICAgICAgT2JqZWN0LmVudHJpZXMoYWN0aW9uLnN0YXRlKS5mb3JFYWNoKChbcGF0aCwgZmllbGRdKSA9PiB7XG4gICAgICAgICAgY29uc3Qgb2xkRmllbGQgPSBzdGF0ZVtwYXRoXVxuICAgICAgICAgIGNvbnN0IG5ld0ZpZWxkID0gZmllbGRcblxuICAgICAgICAgIGlmICghZXF1YWwob2xkRmllbGQsIG5ld0ZpZWxkKSkge1xuICAgICAgICAgICAgbmV3U3RhdGVbcGF0aF0gPSBuZXdGaWVsZFxuICAgICAgICAgIH0gZWxzZSBpZiAob2xkRmllbGQpIHtcbiAgICAgICAgICAgIG5ld1N0YXRlW3BhdGhdID0gb2xkRmllbGRcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiB3ZSdyZSBub3Qgb3B0aW1pemluZywganVzdCBzZXQgdGhlIHN0YXRlIHRvIHRoZSBuZXcgc3RhdGVcbiAgICAgICAgcmV0dXJuIGFjdGlvbi5zdGF0ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3U3RhdGVcbiAgICB9XG5cbiAgICBjYXNlICdSRU1PVkUnOiB7XG4gICAgICBjb25zdCBuZXdTdGF0ZSA9IHsgLi4uc3RhdGUgfVxuICAgICAgaWYgKG5ld1N0YXRlW2FjdGlvbi5wYXRoXSkgZGVsZXRlIG5ld1N0YXRlW2FjdGlvbi5wYXRoXVxuICAgICAgcmV0dXJuIG5ld1N0YXRlXG4gICAgfVxuXG4gICAgY2FzZSAnVVBEQVRFJzoge1xuICAgICAgY29uc3QgbmV3RmllbGQgPSBPYmplY3QuZW50cmllcyhhY3Rpb24pLnJlZHVjZShcbiAgICAgICAgKGZpZWxkLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICdkaXNhYmxlRm9ybURhdGEnLFxuICAgICAgICAgICAgICAnZXJyb3JNZXNzYWdlJyxcbiAgICAgICAgICAgICAgJ2luaXRpYWxWYWx1ZScsXG4gICAgICAgICAgICAgICdyb3dzJyxcbiAgICAgICAgICAgICAgJ3ZhbGlkJyxcbiAgICAgICAgICAgICAgJ3ZhbGlkYXRlJyxcbiAgICAgICAgICAgICAgJ3ZhbHVlJyxcbiAgICAgICAgICAgIF0uaW5jbHVkZXMoa2V5KVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgICAgICAgIFtrZXldOiB2YWx1ZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZmllbGRcbiAgICAgICAgfSxcbiAgICAgICAgc3RhdGVbYWN0aW9uLnBhdGhdIHx8ICh7fSBhcyBGb3JtRmllbGQpLFxuICAgICAgKVxuXG4gICAgICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIFthY3Rpb24ucGF0aF06IG5ld0ZpZWxkLFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3U3RhdGVcbiAgICB9XG5cbiAgICBjYXNlICdSRU1PVkVfUk9XJzoge1xuICAgICAgY29uc3QgeyBwYXRoLCByb3dJbmRleCB9ID0gYWN0aW9uXG4gICAgICBjb25zdCB7IHJlbWFpbmluZ0ZpZWxkcywgcm93cyB9ID0gc2VwYXJhdGVSb3dzKHBhdGgsIHN0YXRlKVxuICAgICAgY29uc3Qgcm93c01ldGFkYXRhID0gWy4uLihzdGF0ZVtwYXRoXT8ucm93cyB8fCBbXSldXG5cbiAgICAgIHJvd3Muc3BsaWNlKHJvd0luZGV4LCAxKVxuICAgICAgcm93c01ldGFkYXRhLnNwbGljZShyb3dJbmRleCwgMSlcblxuICAgICAgY29uc3QgbmV3U3RhdGU6IEZvcm1TdGF0ZSA9IHtcbiAgICAgICAgLi4ucmVtYWluaW5nRmllbGRzLFxuICAgICAgICBbcGF0aF06IHtcbiAgICAgICAgICAuLi5zdGF0ZVtwYXRoXSxcbiAgICAgICAgICBkaXNhYmxlRm9ybURhdGE6IHJvd3MubGVuZ3RoID4gMCxcbiAgICAgICAgICByb3dzOiByb3dzTWV0YWRhdGEsXG4gICAgICAgICAgdmFsdWU6IHJvd3MubGVuZ3RoLFxuICAgICAgICB9LFxuICAgICAgICAuLi5mbGF0dGVuUm93cyhwYXRoLCByb3dzKSxcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ld1N0YXRlXG4gICAgfVxuXG4gICAgY2FzZSAnQUREX1JPVyc6IHtcbiAgICAgIGNvbnN0IHsgYmxvY2tUeXBlLCBwYXRoLCByb3dJbmRleDogcm93SW5kZXhGcm9tQXJncywgc3ViRmllbGRTdGF0ZSA9IHt9IH0gPSBhY3Rpb25cblxuICAgICAgY29uc3Qgcm93SW5kZXggPVxuICAgICAgICB0eXBlb2Ygcm93SW5kZXhGcm9tQXJncyA9PT0gJ251bWJlcicgPyByb3dJbmRleEZyb21BcmdzIDogc3RhdGVbcGF0aF0/LnJvd3M/Lmxlbmd0aCB8fCAwXG5cbiAgICAgIGNvbnN0IHdpdGhOZXdSb3cgPSBbLi4uKHN0YXRlW3BhdGhdPy5yb3dzIHx8IFtdKV1cblxuICAgICAgY29uc3QgbmV3Um93OiBSb3cgPSB7XG4gICAgICAgIGlkOiBuZXcgT2JqZWN0SWQoKS50b0hleFN0cmluZygpLFxuICAgICAgICBibG9ja1R5cGU6IGJsb2NrVHlwZSB8fCB1bmRlZmluZWQsXG4gICAgICAgIGNvbGxhcHNlZDogZmFsc2UsXG4gICAgICB9XG5cbiAgICAgIHdpdGhOZXdSb3cuc3BsaWNlKHJvd0luZGV4LCAwLCBuZXdSb3cpXG5cbiAgICAgIGlmIChibG9ja1R5cGUpIHtcbiAgICAgICAgc3ViRmllbGRTdGF0ZS5ibG9ja1R5cGUgPSB7XG4gICAgICAgICAgaW5pdGlhbFZhbHVlOiBibG9ja1R5cGUsXG4gICAgICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICAgICAgdmFsdWU6IGJsb2NrVHlwZSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBhZGQgbmV3IHJvdyB0byBhcnJheSBfZmllbGQgc3RhdGVfXG4gICAgICBjb25zdCB7IHJlbWFpbmluZ0ZpZWxkcywgcm93czogc2libGluZ1Jvd3MgfSA9IHNlcGFyYXRlUm93cyhwYXRoLCBzdGF0ZSlcbiAgICAgIHNpYmxpbmdSb3dzLnNwbGljZShyb3dJbmRleCwgMCwgc3ViRmllbGRTdGF0ZSlcblxuICAgICAgY29uc3QgbmV3U3RhdGU6IEZvcm1TdGF0ZSA9IHtcbiAgICAgICAgLi4ucmVtYWluaW5nRmllbGRzLFxuICAgICAgICAuLi5mbGF0dGVuUm93cyhwYXRoLCBzaWJsaW5nUm93cyksXG4gICAgICAgIFtwYXRoXToge1xuICAgICAgICAgIC4uLnN0YXRlW3BhdGhdLFxuICAgICAgICAgIGRpc2FibGVGb3JtRGF0YTogdHJ1ZSxcbiAgICAgICAgICByb3dzOiB3aXRoTmV3Um93LFxuICAgICAgICAgIHZhbHVlOiBzaWJsaW5nUm93cy5sZW5ndGgsXG4gICAgICAgIH0sXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXdTdGF0ZVxuICAgIH1cblxuICAgIGNhc2UgJ1JFUExBQ0VfUk9XJzoge1xuICAgICAgY29uc3QgeyBibG9ja1R5cGUsIHBhdGgsIHJvd0luZGV4OiByb3dJbmRleEFyZyB9ID0gYWN0aW9uXG4gICAgICBjb25zdCBzdWJGaWVsZFN0YXRlOiBGb3JtU3RhdGUgPSB7fVxuXG4gICAgICBjb25zdCB7IHJlbWFpbmluZ0ZpZWxkcywgcm93czogc2libGluZ1Jvd3MgfSA9IHNlcGFyYXRlUm93cyhwYXRoLCBzdGF0ZSlcbiAgICAgIGNvbnN0IHJvd0luZGV4ID0gTWF0aC5tYXgoMCwgTWF0aC5taW4ocm93SW5kZXhBcmcsIHNpYmxpbmdSb3dzPy5sZW5ndGggLSAxIHx8IDApKVxuXG4gICAgICBjb25zdCByb3dzTWV0YWRhdGEgPSBbLi4uKHN0YXRlW3BhdGhdPy5yb3dzIHx8IFtdKV1cbiAgICAgIHJvd3NNZXRhZGF0YVtyb3dJbmRleF0gPSB7XG4gICAgICAgIGlkOiBuZXcgT2JqZWN0SWQoKS50b0hleFN0cmluZygpLFxuICAgICAgICBibG9ja1R5cGU6IGJsb2NrVHlwZSB8fCB1bmRlZmluZWQsXG4gICAgICAgIGNvbGxhcHNlZDogZmFsc2UsXG4gICAgICB9XG5cbiAgICAgIGlmIChibG9ja1R5cGUpIHtcbiAgICAgICAgc3ViRmllbGRTdGF0ZS5ibG9ja1R5cGUgPSB7XG4gICAgICAgICAgaW5pdGlhbFZhbHVlOiBibG9ja1R5cGUsXG4gICAgICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICAgICAgdmFsdWU6IGJsb2NrVHlwZSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyByZXBsYWNlIGZvcm0gX2ZpZWxkIHN0YXRlX1xuICAgICAgc2libGluZ1Jvd3Nbcm93SW5kZXhdID0gc3ViRmllbGRTdGF0ZVxuXG4gICAgICBjb25zdCBuZXdTdGF0ZTogRm9ybVN0YXRlID0ge1xuICAgICAgICAuLi5yZW1haW5pbmdGaWVsZHMsXG4gICAgICAgIC4uLmZsYXR0ZW5Sb3dzKHBhdGgsIHNpYmxpbmdSb3dzKSxcbiAgICAgICAgW3BhdGhdOiB7XG4gICAgICAgICAgLi4uc3RhdGVbcGF0aF0sXG4gICAgICAgICAgZGlzYWJsZUZvcm1EYXRhOiB0cnVlLFxuICAgICAgICAgIHJvd3M6IHJvd3NNZXRhZGF0YSxcbiAgICAgICAgICB2YWx1ZTogc2libGluZ1Jvd3MubGVuZ3RoLFxuICAgICAgICB9LFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3U3RhdGVcbiAgICB9XG5cbiAgICBjYXNlICdEVVBMSUNBVEVfUk9XJzoge1xuICAgICAgY29uc3QgeyBwYXRoLCByb3dJbmRleCB9ID0gYWN0aW9uXG4gICAgICBjb25zdCB7IHJlbWFpbmluZ0ZpZWxkcywgcm93cyB9ID0gc2VwYXJhdGVSb3dzKHBhdGgsIHN0YXRlKVxuICAgICAgY29uc3Qgcm93c01ldGFkYXRhID0gc3RhdGVbcGF0aF0/LnJvd3MgfHwgW11cblxuICAgICAgY29uc3QgZHVwbGljYXRlUm93TWV0YWRhdGEgPSBkZWVwQ29weU9iamVjdChyb3dzTWV0YWRhdGFbcm93SW5kZXhdKVxuICAgICAgaWYgKGR1cGxpY2F0ZVJvd01ldGFkYXRhLmlkKSBkdXBsaWNhdGVSb3dNZXRhZGF0YS5pZCA9IG5ldyBPYmplY3RJZCgpLnRvSGV4U3RyaW5nKClcblxuICAgICAgY29uc3QgZHVwbGljYXRlUm93U3RhdGUgPSBkZWVwQ29weU9iamVjdChyb3dzW3Jvd0luZGV4XSlcbiAgICAgIGlmIChkdXBsaWNhdGVSb3dTdGF0ZS5pZCkgZHVwbGljYXRlUm93U3RhdGUuaWQgPSBuZXcgT2JqZWN0SWQoKS50b0hleFN0cmluZygpXG5cbiAgICAgIC8vIElmIHRoZXJlIGFyZSBzdWJmaWVsZHNcbiAgICAgIGlmIChPYmplY3Qua2V5cyhkdXBsaWNhdGVSb3dTdGF0ZSkubGVuZ3RoID4gMCkge1xuICAgICAgICAvLyBBZGQgbmV3IG9iamVjdCBjb250YWluaW5nIHN1YmZpZWxkIG5hbWVzIHRvIHVuZmxhdHRlbmVkUm93cyBhcnJheVxuICAgICAgICByb3dzLnNwbGljZShyb3dJbmRleCArIDEsIDAsIGR1cGxpY2F0ZVJvd1N0YXRlKVxuICAgICAgICByb3dzTWV0YWRhdGEuc3BsaWNlKHJvd0luZGV4ICsgMSwgMCwgZHVwbGljYXRlUm93TWV0YWRhdGEpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICAuLi5yZW1haW5pbmdGaWVsZHMsXG4gICAgICAgIFtwYXRoXToge1xuICAgICAgICAgIC4uLnN0YXRlW3BhdGhdLFxuICAgICAgICAgIGRpc2FibGVGb3JtRGF0YTogdHJ1ZSxcbiAgICAgICAgICByb3dzOiByb3dzTWV0YWRhdGEsXG4gICAgICAgICAgdmFsdWU6IHJvd3MubGVuZ3RoLFxuICAgICAgICB9LFxuICAgICAgICAuLi5mbGF0dGVuUm93cyhwYXRoLCByb3dzKSxcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ld1N0YXRlXG4gICAgfVxuXG4gICAgY2FzZSAnTU9WRV9ST1cnOiB7XG4gICAgICBjb25zdCB7IG1vdmVGcm9tSW5kZXgsIG1vdmVUb0luZGV4LCBwYXRoIH0gPSBhY3Rpb25cbiAgICAgIGNvbnN0IHsgcmVtYWluaW5nRmllbGRzLCByb3dzIH0gPSBzZXBhcmF0ZVJvd3MocGF0aCwgc3RhdGUpXG5cbiAgICAgIC8vIGNvcHkgdGhlIHJvdyB0byBtb3ZlXG4gICAgICBjb25zdCBjb3B5T2ZNb3ZpbmdSb3cgPSByb3dzW21vdmVGcm9tSW5kZXhdXG4gICAgICAvLyBkZWxldGUgdGhlIHJvdyBieSBpbmRleFxuICAgICAgcm93cy5zcGxpY2UobW92ZUZyb21JbmRleCwgMSlcbiAgICAgIC8vIGluc2VydCByb3cgY29weU9mTW92aW5nUm93IGJhY2sgaW5cbiAgICAgIHJvd3Muc3BsaWNlKG1vdmVUb0luZGV4LCAwLCBjb3B5T2ZNb3ZpbmdSb3cpXG5cbiAgICAgIC8vIG1vZGlmeSBhcnJheS9ibG9jayBpbnRlcm5hbCByb3cgc3RhdGUgKGkuZS4gY29sbGFwc2VkLCBibG9ja1R5cGUpXG4gICAgICBjb25zdCByb3dTdGF0ZUNvcHkgPSBbLi4uKHN0YXRlW3BhdGhdPy5yb3dzIHx8IFtdKV1cbiAgICAgIGNvbnN0IG1vdmluZ1Jvd1N0YXRlID0geyAuLi5yb3dTdGF0ZUNvcHlbbW92ZUZyb21JbmRleF0gfVxuICAgICAgcm93U3RhdGVDb3B5LnNwbGljZShtb3ZlRnJvbUluZGV4LCAxKVxuICAgICAgcm93U3RhdGVDb3B5LnNwbGljZShtb3ZlVG9JbmRleCwgMCwgbW92aW5nUm93U3RhdGUpXG5cbiAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICAuLi5yZW1haW5pbmdGaWVsZHMsXG4gICAgICAgIC4uLmZsYXR0ZW5Sb3dzKHBhdGgsIHJvd3MpLFxuICAgICAgICBbcGF0aF06IHtcbiAgICAgICAgICAuLi5zdGF0ZVtwYXRoXSxcbiAgICAgICAgICByb3dzOiByb3dTdGF0ZUNvcHksXG4gICAgICAgIH0sXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXdTdGF0ZVxuICAgIH1cblxuICAgIGNhc2UgJ1NFVF9ST1dfQ09MTEFQU0VEJzoge1xuICAgICAgY29uc3QgeyBjb2xsYXBzZWQsIHBhdGgsIHJvd0lELCBzZXREb2NGaWVsZFByZWZlcmVuY2VzIH0gPSBhY3Rpb25cblxuICAgICAgY29uc3QgYXJyYXlTdGF0ZSA9IHN0YXRlW3BhdGhdXG5cbiAgICAgIGNvbnN0IHsgY29sbGFwc2VkUm93SURzLCBtYXRjaGVkSW5kZXggfSA9IHN0YXRlW3BhdGhdLnJvd3MucmVkdWNlKFxuICAgICAgICAoYWNjLCByb3csIGluZGV4KSA9PiB7XG4gICAgICAgICAgY29uc3QgaXNNYXRjaGluZ1JvdyA9IHJvdy5pZCA9PT0gcm93SURcbiAgICAgICAgICBpZiAoaXNNYXRjaGluZ1JvdykgYWNjLm1hdGNoZWRJbmRleCA9IGluZGV4XG5cbiAgICAgICAgICBpZiAoIWlzTWF0Y2hpbmdSb3cgJiYgcm93LmNvbGxhcHNlZCkgYWNjLmNvbGxhcHNlZFJvd0lEcy5wdXNoKHJvdy5pZClcbiAgICAgICAgICBlbHNlIGlmIChpc01hdGNoaW5nUm93ICYmIGNvbGxhcHNlZCkgYWNjLmNvbGxhcHNlZFJvd0lEcy5wdXNoKHJvdy5pZClcblxuICAgICAgICAgIHJldHVybiBhY2NcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNvbGxhcHNlZFJvd0lEczogW10sXG4gICAgICAgICAgbWF0Y2hlZEluZGV4OiB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICApXG5cbiAgICAgIGlmIChtYXRjaGVkSW5kZXggPiAtMSkge1xuICAgICAgICBhcnJheVN0YXRlLnJvd3NbbWF0Y2hlZEluZGV4XS5jb2xsYXBzZWQgPSBjb2xsYXBzZWRcbiAgICAgICAgc2V0RG9jRmllbGRQcmVmZXJlbmNlcyhwYXRoLCB7IGNvbGxhcHNlZDogY29sbGFwc2VkUm93SURzIH0pXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgW3BhdGhdOiB7XG4gICAgICAgICAgLi4uYXJyYXlTdGF0ZSxcbiAgICAgICAgfSxcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ld1N0YXRlXG4gICAgfVxuXG4gICAgY2FzZSAnU0VUX0FMTF9ST1dTX0NPTExBUFNFRCc6IHtcbiAgICAgIGNvbnN0IHsgY29sbGFwc2VkLCBwYXRoLCBzZXREb2NGaWVsZFByZWZlcmVuY2VzIH0gPSBhY3Rpb25cblxuICAgICAgY29uc3QgeyBjb2xsYXBzZWRSb3dJRHMsIHJvd3MgfSA9IHN0YXRlW3BhdGhdLnJvd3MucmVkdWNlKFxuICAgICAgICAoYWNjLCByb3cpID0+IHtcbiAgICAgICAgICBpZiAoY29sbGFwc2VkKSBhY2MuY29sbGFwc2VkUm93SURzLnB1c2gocm93LmlkKVxuXG4gICAgICAgICAgYWNjLnJvd3MucHVzaCh7XG4gICAgICAgICAgICAuLi5yb3csXG4gICAgICAgICAgICBjb2xsYXBzZWQsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHJldHVybiBhY2NcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNvbGxhcHNlZFJvd0lEczogW10sXG4gICAgICAgICAgcm93czogW10sXG4gICAgICAgIH0sXG4gICAgICApXG5cbiAgICAgIHNldERvY0ZpZWxkUHJlZmVyZW5jZXMocGF0aCwgeyBjb2xsYXBzZWQ6IGNvbGxhcHNlZFJvd0lEcyB9KVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgW3BhdGhdOiB7XG4gICAgICAgICAgLi4uc3RhdGVbcGF0aF0sXG4gICAgICAgICAgcm93cyxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gc3RhdGVcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmaWVsZFJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsInR5cGUiLCJuZXdTdGF0ZSIsIm9wdGltaXplIiwiT2JqZWN0IiwiZW50cmllcyIsImZvckVhY2giLCJwYXRoIiwiZmllbGQiLCJvbGRGaWVsZCIsIm5ld0ZpZWxkIiwiZXF1YWwiLCJyZWR1Y2UiLCJrZXkiLCJ2YWx1ZSIsImluY2x1ZGVzIiwicm93SW5kZXgiLCJyZW1haW5pbmdGaWVsZHMiLCJyb3dzIiwic2VwYXJhdGVSb3dzIiwicm93c01ldGFkYXRhIiwic3BsaWNlIiwiZGlzYWJsZUZvcm1EYXRhIiwibGVuZ3RoIiwiZmxhdHRlblJvd3MiLCJibG9ja1R5cGUiLCJyb3dJbmRleEZyb21BcmdzIiwic3ViRmllbGRTdGF0ZSIsIndpdGhOZXdSb3ciLCJuZXdSb3ciLCJpZCIsIk9iamVjdElkIiwidG9IZXhTdHJpbmciLCJ1bmRlZmluZWQiLCJjb2xsYXBzZWQiLCJpbml0aWFsVmFsdWUiLCJ2YWxpZCIsInNpYmxpbmdSb3dzIiwicm93SW5kZXhBcmciLCJNYXRoIiwibWF4IiwibWluIiwiZHVwbGljYXRlUm93TWV0YWRhdGEiLCJkZWVwQ29weU9iamVjdCIsImR1cGxpY2F0ZVJvd1N0YXRlIiwia2V5cyIsIm1vdmVGcm9tSW5kZXgiLCJtb3ZlVG9JbmRleCIsImNvcHlPZk1vdmluZ1JvdyIsInJvd1N0YXRlQ29weSIsIm1vdmluZ1Jvd1N0YXRlIiwicm93SUQiLCJzZXREb2NGaWVsZFByZWZlcmVuY2VzIiwiYXJyYXlTdGF0ZSIsImNvbGxhcHNlZFJvd0lEcyIsIm1hdGNoZWRJbmRleCIsImFjYyIsInJvdyIsImluZGV4IiwiaXNNYXRjaGluZ1JvdyIsInB1c2giXSwibWFwcGluZ3MiOiI7Ozs7K0JBV2dCQTs7O2VBQUFBOzs7cUVBWEs7a0VBQ0g7MkJBQ2E7c0JBSVc7Ozs7OztBQUtuQyxTQUFTQSxhQUFhQyxLQUFnQixFQUFFQyxNQUFtQjtJQUNoRSxPQUFRQSxPQUFPQyxJQUFJO1FBQ2pCLEtBQUs7WUFBaUI7Z0JBQ3BCLE1BQU1DLFdBQVcsQ0FBQztnQkFFbEIsSUFBSUYsT0FBT0csUUFBUSxLQUFLLE9BQU87b0JBQzdCLHVDQUF1QztvQkFDdkMsK0NBQStDO29CQUMvQyxLQUFLO29CQUNMLCtDQUErQztvQkFDL0MsMENBQTBDO29CQUUxQ0MsT0FB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
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _flatley = require("flatley");
12
+ const getDataByPath = (fields, path)=>{
13
+ const pathPrefixToRemove = path.substring(0, path.lastIndexOf('.') + 1);
14
+ const name = path.split('.').pop();
15
+ const data = {};
16
+ Object.keys(fields).forEach((key)=>{
17
+ if (!fields[key].disableFormData && (key.indexOf(`${path}.`) === 0 || key === path)) {
18
+ data[key.replace(pathPrefixToRemove, '')] = fields[key].value;
19
+ if (fields[key]?.rows && fields[key].rows.length === 0) {
20
+ data[key.replace(pathPrefixToRemove, '')] = [];
21
+ }
22
+ }
23
+ });
24
+ const unflattenedData = (0, _flatley.unflatten)(data);
25
+ return unflattenedData?.[name];
26
+ };
27
+ const _default = getDataByPath;
28
+
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mb3Jtcy9Gb3JtL2dldERhdGFCeVBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdW5mbGF0dGVuIH0gZnJvbSAnZmxhdGxleSdcblxuaW1wb3J0IHR5cGUgeyBGb3JtU3RhdGUgfSBmcm9tICcuL3R5cGVzJ1xuXG5jb25zdCBnZXREYXRhQnlQYXRoID0gPFQgPSB1bmtub3duPihmaWVsZHM6IEZvcm1TdGF0ZSwgcGF0aDogc3RyaW5nKTogVCA9PiB7XG4gIGNvbnN0IHBhdGhQcmVmaXhUb1JlbW92ZSA9IHBhdGguc3Vic3RyaW5nKDAsIHBhdGgubGFzdEluZGV4T2YoJy4nKSArIDEpXG4gIGNvbnN0IG5hbWUgPSBwYXRoLnNwbGl0KCcuJykucG9wKClcblxuICBjb25zdCBkYXRhID0ge31cbiAgT2JqZWN0LmtleXMoZmllbGRzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBpZiAoIWZpZWxkc1trZXldLmRpc2FibGVGb3JtRGF0YSAmJiAoa2V5LmluZGV4T2YoYCR7cGF0aH0uYCkgPT09IDAgfHwga2V5ID09PSBwYXRoKSkge1xuICAgICAgZGF0YVtrZXkucmVwbGFjZShwYXRoUHJlZml4VG9SZW1vdmUsICcnKV0gPSBmaWVsZHNba2V5XS52YWx1ZVxuXG4gICAgICBpZiAoZmllbGRzW2tleV0/LnJvd3MgJiYgZmllbGRzW2tleV0ucm93cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZGF0YVtrZXkucmVwbGFjZShwYXRoUHJlZml4VG9SZW1vdmUsICcnKV0gPSBbXVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICBjb25zdCB1bmZsYXR0ZW5lZERhdGEgPSB1bmZsYXR0ZW4oZGF0YSlcblxuICByZXR1cm4gdW5mbGF0dGVuZWREYXRhPy5bbmFtZV1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0RGF0YUJ5UGF0aFxuIl0sIm5hbWVzIjpbImdldERhdGFCeVBhdGgiLCJmaWVsZHMiLCJwYXRoIiwicGF0aFByZWZpeFRvUmVtb3ZlIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJuYW1lIiwic3BsaXQiLCJwb3AiLCJkYXRhIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJkaXNhYmxlRm9ybURhdGEiLCJpbmRleE9mIiwicmVwbGFjZSIsInZhbHVlIiwicm93cyIsImxlbmd0aCIsInVuZmxhdHRlbmVkRGF0YSIsInVuZmxhdHRlbiJdLCJtYXBwaW5ncyI6Ijs7OzsrQkF3QkE7OztlQUFBOzs7eUJBeEIwQjtBQUkxQixNQUFNQSxnQkFBZ0IsQ0FBY0MsUUFBbUJDO0lBQ3JELE1BQU1DLHFCQUFxQkQsS0FBS0UsU0FBUyxDQUFDLEdBQUdGLEtBQUtHLFdBQVcsQ0FBQyxPQUFPO0lBQ3JFLE1BQU1DLE9BQU9KLEtBQUtLLEtBQUssQ0FBQyxLQUFLQyxHQUFHO0lBRWhDLE1BQU1DLE9BQU8sQ0FBQztJQUNkQyxPQUFPQyxJQUFJLENBQUNWLFFBQVFXLE9BQU8sQ0FBQyxDQUFDQztRQUMzQixJQUFJLENBQUNaLE1BQU0sQ0FBQ1ksSUFBSSxDQUFDQyxlQUFlLElBQUtELENBQUFBLElBQUlFLE9BQU8sQ0FBQyxDQUFDLEVBQUViLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBS1csUUFBUVgsSUFBRyxHQUFJO1lBQ25GTyxJQUFJLENBQUNJLElBQUlHLE9BQU8sQ0FBQ2Isb0JBQW9CLElBQUksR0FBR0YsTUFBTSxDQUFDWSxJQUFJLENBQUNJLEtBQUs7WUFFN0QsSUFBSWhCLE1BQU0sQ0FBQ1ksSUFBSSxFQUFFSyxRQUFRakIsTUFBTSxDQUFDWSxJQUFJLENBQUNLLElBQUksQ0FBQ0MsTUFBTSxLQUFLLEdBQUc7Z0JBQ3REVixJQUFJLENBQUNJLElBQUlHLE9BQU8sQ0FBQ2Isb0JBQW9CLElBQUksR0FBRyxFQUFFO1lBQ2hEO1FBQ0Y7SUFDRjtJQUVBLE1BQU1pQixrQkFBa0JDLElBQUFBLGtCQUFTLEVBQUNaO0lBRWxDLE9BQU9XLGlCQUFpQixDQUFDZCxLQUFLO0FBQ2hDO01BRUEsV0FBZU4ifQ==
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _flatley = require("flatley");
12
+ const _reduceFieldsToValues = /*#__PURE__*/ _interop_require_default(require("./reduceFieldsToValues"));
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ const getSiblingData = (fields, path)=>{
19
+ if (path.indexOf('.') === -1) {
20
+ return (0, _reduceFieldsToValues.default)(fields, true);
21
+ }
22
+ const siblingFields = {};
23
+ // Determine if the last segment of the path is an array-based row
24
+ const pathSegments = path.split('.');
25
+ const lastSegment = pathSegments[pathSegments.length - 1];
26
+ const lastSegmentIsRowIndex = !Number.isNaN(Number(lastSegment));
27
+ let parentFieldPath;
28
+ if (lastSegmentIsRowIndex) {
29
+ // If the last segment is a row index,
30
+ // the sibling data is that row's contents
31
+ // so create a parent field path that will
32
+ // retrieve all contents of that row index only
33
+ parentFieldPath = `${path}.`;
34
+ } else {
35
+ // Otherwise, the last path segment is a field name
36
+ // and it should be removed
37
+ parentFieldPath = path.substring(0, path.lastIndexOf('.') + 1);
38
+ }
39
+ Object.keys(fields).forEach((fieldKey)=>{
40
+ if (!fields[fieldKey].disableFormData && fieldKey.indexOf(parentFieldPath) === 0) {
41
+ siblingFields[fieldKey.replace(parentFieldPath, '')] = fields[fieldKey].value;
42
+ }
43
+ });
44
+ return (0, _flatley.unflatten)(siblingFields, {
45
+ safe: true
46
+ });
47
+ };
48
+ const _default = getSiblingData;
49
+
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mb3Jtcy9Gb3JtL2dldFNpYmxpbmdEYXRhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGF0YSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHVuZmxhdHRlbiB9IGZyb20gJ2ZsYXRsZXknXG5cbmltcG9ydCB0eXBlIHsgRm9ybVN0YXRlIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHJlZHVjZUZpZWxkc1RvVmFsdWVzIGZyb20gJy4vcmVkdWNlRmllbGRzVG9WYWx1ZXMnXG5cbmNvbnN0IGdldFNpYmxpbmdEYXRhID0gKGZpZWxkczogRm9ybVN0YXRlLCBwYXRoOiBzdHJpbmcpOiBEYXRhID0+IHtcbiAgaWYgKHBhdGguaW5kZXhPZignLicpID09PSAtMSkge1xuICAgIHJldHVybiByZWR1Y2VGaWVsZHNUb1ZhbHVlcyhmaWVsZHMsIHRydWUpXG4gIH1cbiAgY29uc3Qgc2libGluZ0ZpZWxkcyA9IHt9XG5cbiAgLy8gRGV0ZXJtaW5lIGlmIHRoZSBsYXN0IHNlZ21lbnQgb2YgdGhlIHBhdGggaXMgYW4gYXJyYXktYmFzZWQgcm93XG4gIGNvbnN0IHBhdGhTZWdtZW50cyA9IHBhdGguc3BsaXQoJy4nKVxuICBjb25zdCBsYXN0U2VnbWVudCA9IHBhdGhTZWdtZW50c1twYXRoU2VnbWVudHMubGVuZ3RoIC0gMV1cbiAgY29uc3QgbGFzdFNlZ21lbnRJc1Jvd0luZGV4ID0gIU51bWJlci5pc05hTihOdW1iZXIobGFzdFNlZ21lbnQpKVxuXG4gIGxldCBwYXJlbnRGaWVsZFBhdGg6IHN0cmluZ1xuXG4gIGlmIChsYXN0U2VnbWVudElzUm93SW5kZXgpIHtcbiAgICAvLyBJZiB0aGUgbGFzdCBzZWdtZW50IGlzIGEgcm93IGluZGV4LFxuICAgIC8vIHRoZSBzaWJsaW5nIGRhdGEgaXMgdGhhdCByb3cncyBjb250ZW50c1xuICAgIC8vIHNvIGNyZWF0ZSBhIHBhcmVudCBmaWVsZCBwYXRoIHRoYXQgd2lsbFxuICAgIC8vIHJldHJpZXZlIGFsbCBjb250ZW50cyBvZiB0aGF0IHJvdyBpbmRleCBvbmx5XG4gICAgcGFyZW50RmllbGRQYXRoID0gYCR7cGF0aH0uYFxuICB9IGVsc2Uge1xuICAgIC8vIE90aGVyd2lzZSwgdGhlIGxhc3QgcGF0aCBzZWdtZW50IGlzIGEgZmllbGQgbmFtZVxuICAgIC8vIGFuZCBpdCBzaG91bGQgYmUgcmVtb3ZlZFxuICAgIHBhcmVudEZpZWxkUGF0aCA9IHBhdGguc3Vic3RyaW5nKDAsIHBhdGgubGFzdEluZGV4T2YoJy4nKSArIDEpXG4gIH1cblxuICBPYmplY3Qua2V5cyhmaWVsZHMpLmZvckVhY2goKGZpZWxkS2V5KSA9PiB7XG4gICAgaWYgKCFmaWVsZHNbZmllbGRLZXldLmRpc2FibGVGb3JtRGF0YSAmJiBmaWVsZEtleS5pbmRleE9mKHBhcmVudEZpZWxkUGF0aCkgPT09IDApIHtcbiAgICAgIHNpYmxpbmdGaWVsZHNbZmllbGRLZXkucmVwbGFjZShwYXJlbnRGaWVsZFBhdGgsICcnKV0gPSBmaWVsZHNbZmllbGRLZXldLnZhbHVlXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiB1bmZsYXR0ZW4oc2libGluZ0ZpZWxkcywgeyBzYWZlOiB0cnVlIH0pXG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldFNpYmxpbmdEYXRhXG4iXSwibmFtZXMiOlsiZ2V0U2libGluZ0RhdGEiLCJmaWVsZHMiLCJwYXRoIiwiaW5kZXhPZiIsInJlZHVjZUZpZWxkc1RvVmFsdWVzIiwic2libGluZ0ZpZWxkcyIsInBhdGhTZWdtZW50cyIsInNwbGl0IiwibGFzdFNlZ21lbnQiLCJsZW5ndGgiLCJsYXN0U2VnbWVudElzUm93SW5kZXgiLCJOdW1iZXIiLCJpc05hTiIsInBhcmVudEZpZWxkUGF0aCIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJmaWVsZEtleSIsImRpc2FibGVGb3JtRGF0YSIsInJlcGxhY2UiLCJ2YWx1ZSIsInVuZmxhdHRlbiIsInNhZmUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBMENBOzs7ZUFBQTs7O3lCQXhDMEI7NkVBSU87Ozs7OztBQUVqQyxNQUFNQSxpQkFBaUIsQ0FBQ0MsUUFBbUJDO0lBQ3pDLElBQUlBLEtBQUtDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRztRQUM1QixPQUFPQyxJQUFBQSw2QkFBb0IsRUFBQ0gsUUFBUTtJQUN0QztJQUNBLE1BQU1JLGdCQUFnQixDQUFDO0lBRXZCLGtFQUFrRTtJQUNsRSxNQUFNQyxlQUFlSixLQUFLSyxLQUFLLENBQUM7SUFDaEMsTUFBTUMsY0FBY0YsWUFBWSxDQUFDQSxhQUFhRyxNQUFNLEdBQUcsRUFBRTtJQUN6RCxNQUFNQyx3QkFBd0IsQ0FBQ0MsT0FBT0MsS0FBSyxDQUFDRCxPQUFPSDtJQUVuRCxJQUFJSztJQUVKLElBQUlILHVCQUF1QjtRQUN6QixzQ0FBc0M7UUFDdEMsMENBQTBDO1FBQzFDLDBDQUEwQztRQUMxQywrQ0FBK0M7UUFDL0NHLGtCQUFrQixDQUFDLEVBQUVYLEtBQUssQ0FBQyxDQUFDO0lBQzlCLE9BQU87UUFDTCxtREFBbUQ7UUFDbkQsMkJBQTJCO1FBQzNCVyxrQkFBa0JYLEtBQUtZLFNBQVMsQ0FBQyxHQUFHWixLQUFLYSxXQUFXLENBQUMsT0FBTztJQUM5RDtJQUVBQyxPQUFPQyxJQUFJLENBQUNoQixRQUFRaUIsT0FBTyxDQUFDLENBQUNDO1FBQzNCLElBQUksQ0FBQ2xCLE1BQU0sQ0FBQ2tCLFNBQVMsQ0FBQ0MsZUFBZSxJQUFJRCxTQUFTaEIsT0FBTyxDQUFDVSxxQkFBcUIsR0FBRztZQUNoRlIsYUFBYSxDQUFDYyxTQUFTRSxPQUFPLENBQUNSLGlCQUFpQixJQUFJLEdBQUdaLE1BQU0sQ0FBQ2tCLFNBQVMsQ0FBQ0csS0FBSztRQUMvRTtJQUNGO0lBRUEsT0FBT0MsSUFBQUEsa0JBQVMsRUFBQ2xCLGVBQWU7UUFBRW1CLE1BQU07SUFBSztBQUMvQztNQUVBLFdBQWV4QiJ9