@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,147 @@
1
+ 'use client';
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function() {
9
+ return _default;
10
+ }
11
+ });
12
+ const _types = require("payload/types");
13
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
14
+ const _context = require("../../Form/context");
15
+ const _Label = /*#__PURE__*/ _interop_require_default(require("../../Label"));
16
+ const _useField = /*#__PURE__*/ _interop_require_default(require("../../useField"));
17
+ const _withCondition = require("../../withCondition");
18
+ const _shared = require("../shared");
19
+ const _Radio = require("./Radio");
20
+ require("./index.scss");
21
+ function _interop_require_default(obj) {
22
+ return obj && obj.__esModule ? obj : {
23
+ default: obj
24
+ };
25
+ }
26
+ function _getRequireWildcardCache(nodeInterop) {
27
+ if (typeof WeakMap !== "function") return null;
28
+ var cacheBabelInterop = new WeakMap();
29
+ var cacheNodeInterop = new WeakMap();
30
+ return (_getRequireWildcardCache = function(nodeInterop) {
31
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
32
+ })(nodeInterop);
33
+ }
34
+ function _interop_require_wildcard(obj, nodeInterop) {
35
+ if (!nodeInterop && obj && obj.__esModule) {
36
+ return obj;
37
+ }
38
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
39
+ return {
40
+ default: obj
41
+ };
42
+ }
43
+ var cache = _getRequireWildcardCache(nodeInterop);
44
+ if (cache && cache.has(obj)) {
45
+ return cache.get(obj);
46
+ }
47
+ var newObj = {
48
+ __proto__: null
49
+ };
50
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
51
+ for(var key in obj){
52
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
53
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
54
+ if (desc && (desc.get || desc.set)) {
55
+ Object.defineProperty(newObj, key, desc);
56
+ } else {
57
+ newObj[key] = obj[key];
58
+ }
59
+ }
60
+ }
61
+ newObj.default = obj;
62
+ if (cache) {
63
+ cache.set(obj, newObj);
64
+ }
65
+ return newObj;
66
+ }
67
+ const baseClass = 'radio-group';
68
+ const RadioGroup = (props)=>{
69
+ const { name, Description, Error, Label: LabelFromProps, className, label, onChange: onChangeFromProps, path: pathFromProps, readOnly, required, style, validate, value: valueFromProps, width } = props;
70
+ const { uuid } = (0, _context.useForm)();
71
+ const Label = LabelFromProps || /*#__PURE__*/ _react.default.createElement(_Label.default, {
72
+ label: label,
73
+ required: required
74
+ });
75
+ const options = 'options' in props ? props.options : [];
76
+ const layout = 'layout' in props ? props.layout : 'horizontal';
77
+ const memoizedValidate = (0, _react.useCallback)((value, validationOptions)=>{
78
+ if (typeof validate === 'function') return validate(value, {
79
+ ...validationOptions,
80
+ options,
81
+ required
82
+ });
83
+ }, [
84
+ validate,
85
+ options,
86
+ required
87
+ ]);
88
+ const { path, setValue, showError, value: valueFromContext } = (0, _useField.default)({
89
+ path: pathFromProps || name,
90
+ validate: memoizedValidate
91
+ });
92
+ const value = valueFromContext || valueFromProps;
93
+ return /*#__PURE__*/ _react.default.createElement("div", {
94
+ className: [
95
+ _shared.fieldBaseClass,
96
+ baseClass,
97
+ className,
98
+ `${baseClass}--layout-${layout}`,
99
+ showError && 'error',
100
+ readOnly && `${baseClass}--read-only`
101
+ ].filter(Boolean).join(' '),
102
+ style: {
103
+ ...style,
104
+ width
105
+ }
106
+ }, /*#__PURE__*/ _react.default.createElement("div", {
107
+ className: `${baseClass}__error-wrap`
108
+ }, Error), Label, /*#__PURE__*/ _react.default.createElement("ul", {
109
+ className: `${baseClass}--group`,
110
+ id: `field-${path.replace(/\./g, '__')}`
111
+ }, options.map((option)=>{
112
+ let optionValue = '';
113
+ let optionLabel = '';
114
+ if ((0, _types.optionIsObject)(option)) {
115
+ optionValue = option.value;
116
+ optionLabel = option.label;
117
+ } else {
118
+ optionValue = option;
119
+ optionLabel = option;
120
+ }
121
+ const isSelected = String(optionValue) === String(value);
122
+ const id = `field-${path}-${optionValue}${uuid ? `-${uuid}` : ''}`;
123
+ return /*#__PURE__*/ _react.default.createElement("li", {
124
+ key: `${path} - ${optionValue}`
125
+ }, /*#__PURE__*/ _react.default.createElement(_Radio.Radio, {
126
+ id: id,
127
+ isSelected: isSelected,
128
+ onChange: ()=>{
129
+ if (typeof onChangeFromProps === 'function') {
130
+ onChangeFromProps(optionValue);
131
+ }
132
+ if (!readOnly) {
133
+ setValue(optionValue);
134
+ }
135
+ },
136
+ option: (0, _types.optionIsObject)(option) ? option : {
137
+ label: option,
138
+ value: option
139
+ },
140
+ path: path,
141
+ uuid: uuid
142
+ }));
143
+ })), Description);
144
+ };
145
+ const _default = (0, _withCondition.withCondition)(RadioGroup);
146
+
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mb3Jtcy9maWVsZHMvUmFkaW9Hcm91cC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgeyBvcHRpb25Jc09iamVjdCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBQcm9wcyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IHVzZUZvcm0gfSBmcm9tICcuLi8uLi9Gb3JtL2NvbnRleHQnXG5pbXBvcnQgTGFiZWxDb21wIGZyb20gJy4uLy4uL0xhYmVsJ1xuaW1wb3J0IHVzZUZpZWxkIGZyb20gJy4uLy4uL3VzZUZpZWxkJ1xuaW1wb3J0IHsgd2l0aENvbmRpdGlvbiB9IGZyb20gJy4uLy4uL3dpdGhDb25kaXRpb24nXG5pbXBvcnQgeyBmaWVsZEJhc2VDbGFzcyB9IGZyb20gJy4uL3NoYXJlZCdcbmltcG9ydCB7IFJhZGlvIH0gZnJvbSAnLi9SYWRpbydcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAncmFkaW8tZ3JvdXAnXG5cbmNvbnN0IFJhZGlvR3JvdXA6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgbmFtZSxcbiAgICBEZXNjcmlwdGlvbixcbiAgICBFcnJvcixcbiAgICBMYWJlbDogTGFiZWxGcm9tUHJvcHMsXG4gICAgY2xhc3NOYW1lLFxuICAgIGxhYmVsLFxuICAgIG9uQ2hhbmdlOiBvbkNoYW5nZUZyb21Qcm9wcyxcbiAgICBwYXRoOiBwYXRoRnJvbVByb3BzLFxuICAgIHJlYWRPbmx5LFxuICAgIHJlcXVpcmVkLFxuICAgIHN0eWxlLFxuICAgIHZhbGlkYXRlLFxuICAgIHZhbHVlOiB2YWx1ZUZyb21Qcm9wcyxcbiAgICB3aWR0aCxcbiAgfSA9IHByb3BzXG5cbiAgY29uc3QgeyB1dWlkIH0gPSB1c2VGb3JtKClcblxuICBjb25zdCBMYWJlbCA9IExhYmVsRnJvbVByb3BzIHx8IDxMYWJlbENvbXAgbGFiZWw9e2xhYmVsfSByZXF1aXJlZD17cmVxdWlyZWR9IC8+XG5cbiAgY29uc3Qgb3B0aW9ucyA9ICdvcHRpb25zJyBpbiBwcm9wcyA/IHByb3BzLm9wdGlvbnMgOiBbXVxuXG4gIGNvbnN0IGxheW91dCA9ICdsYXlvdXQnIGluIHByb3BzID8gcHJvcHMubGF5b3V0IDogJ2hvcml6b250YWwnXG5cbiAgY29uc3QgbWVtb2l6ZWRWYWxpZGF0ZSA9IHVzZUNhbGxiYWNrKFxuICAgICh2YWx1ZSwgdmFsaWRhdGlvbk9wdGlvbnMpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgdmFsaWRhdGUgPT09ICdmdW5jdGlvbicpXG4gICAgICAgIHJldHVybiB2YWxpZGF0ZSh2YWx1ZSwgeyAuLi52YWxpZGF0aW9uT3B0aW9ucywgb3B0aW9ucywgcmVxdWlyZWQgfSlcbiAgICB9LFxuICAgIFt2YWxpZGF0ZSwgb3B0aW9ucywgcmVxdWlyZWRdLFxuICApXG5cbiAgY29uc3Qge1xuICAgIHBhdGgsXG4gICAgc2V0VmFsdWUsXG4gICAgc2hvd0Vycm9yLFxuICAgIHZhbHVlOiB2YWx1ZUZyb21Db250ZXh0LFxuICB9ID0gdXNlRmllbGQ8c3RyaW5nPih7XG4gICAgcGF0aDogcGF0aEZyb21Qcm9wcyB8fCBuYW1lLFxuICAgIHZhbGlkYXRlOiBtZW1vaXplZFZhbGlkYXRlLFxuICB9KVxuXG4gIGNvbnN0IHZhbHVlID0gdmFsdWVGcm9tQ29udGV4dCB8fCB2YWx1ZUZyb21Qcm9wc1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtbXG4gICAgICAgIGZpZWxkQmFzZUNsYXNzLFxuICAgICAgICBiYXNlQ2xhc3MsXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgYCR7YmFzZUNsYXNzfS0tbGF5b3V0LSR7bGF5b3V0fWAsXG4gICAgICAgIHNob3dFcnJvciAmJiAnZXJyb3InLFxuICAgICAgICByZWFkT25seSAmJiBgJHtiYXNlQ2xhc3N9LS1yZWFkLW9ubHlgLFxuICAgICAgXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5qb2luKCcgJyl9XG4gICAgICBzdHlsZT17e1xuICAgICAgICAuLi5zdHlsZSxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9fVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19lcnJvci13cmFwYH0+e0Vycm9yfTwvZGl2PlxuICAgICAge0xhYmVsfVxuICAgICAgPHVsIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfS0tZ3JvdXBgfSBpZD17YGZpZWxkLSR7cGF0aC5yZXBsYWNlKC9cXC4vZywgJ19fJyl9YH0+XG4gICAgICAgIHtvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgbGV0IG9wdGlvblZhbHVlID0gJydcbiAgICAgICAgICBsZXQgb3B0aW9uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBzdHJpbmcgPSAnJ1xuXG4gICAgICAgICAgaWYgKG9wdGlvbklzT2JqZWN0KG9wdGlvbikpIHtcbiAgICAgICAgICAgIG9wdGlvblZhbHVlID0gb3B0aW9uLnZhbHVlXG4gICAgICAgICAgICBvcHRpb25MYWJlbCA9IG9wdGlvbi5sYWJlbFxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvcHRpb25WYWx1ZSA9IG9wdGlvblxuICAgICAgICAgICAgb3B0aW9uTGFiZWwgPSBvcHRpb25cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gU3RyaW5nKG9wdGlvblZhbHVlKSA9PT0gU3RyaW5nKHZhbHVlKVxuXG4gICAgICAgICAgY29uc3QgaWQgPSBgZmllbGQtJHtwYXRofS0ke29wdGlvblZhbHVlfSR7dXVpZCA/IGAtJHt1dWlkfWAgOiAnJ31gXG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGxpIGtleT17YCR7cGF0aH0gLSAke29wdGlvblZhbHVlfWB9PlxuICAgICAgICAgICAgICA8UmFkaW9cbiAgICAgICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICAgICAgaXNTZWxlY3RlZD17aXNTZWxlY3RlZH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvbkNoYW5nZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZUZyb21Qcm9wcyhvcHRpb25WYWx1ZSlcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgaWYgKCFyZWFkT25seSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShvcHRpb25WYWx1ZSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9wdGlvbj17b3B0aW9uSXNPYmplY3Qob3B0aW9uKSA/IG9wdGlvbiA6IHsgbGFiZWw6IG9wdGlvbiwgdmFsdWU6IG9wdGlvbiB9fVxuICAgICAgICAgICAgICAgIHBhdGg9e3BhdGh9XG4gICAgICAgICAgICAgICAgdXVpZD17dXVpZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgIDwvdWw+XG4gICAgICB7RGVzY3JpcHRpb259XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aENvbmRpdGlvbihSYWRpb0dyb3VwKVxuIl0sIm5hbWVzIjpbImJhc2VDbGFzcyIsIlJhZGlvR3JvdXAiLCJwcm9wcyIsIm5hbWUiLCJEZXNjcmlwdGlvbiIsIkVycm9yIiwiTGFiZWwiLCJMYWJlbEZyb21Qcm9wcyIsImNsYXNzTmFtZSIsImxhYmVsIiwib25DaGFuZ2UiLCJvbkNoYW5nZUZyb21Qcm9wcyIsInBhdGgiLCJwYXRoRnJvbVByb3BzIiwicmVhZE9ubHkiLCJyZXF1aXJlZCIsInN0eWxlIiwidmFsaWRhdGUiLCJ2YWx1ZSIsInZhbHVlRnJvbVByb3BzIiwid2lkdGgiLCJ1dWlkIiwidXNlRm9ybSIsIkxhYmVsQ29tcCIsIm9wdGlvbnMiLCJsYXlvdXQiLCJtZW1vaXplZFZhbGlkYXRlIiwidXNlQ2FsbGJhY2siLCJ2YWxpZGF0aW9uT3B0aW9ucyIsInNldFZhbHVlIiwic2hvd0Vycm9yIiwidmFsdWVGcm9tQ29udGV4dCIsInVzZUZpZWxkIiwiZGl2IiwiZmllbGRCYXNlQ2xhc3MiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsInVsIiwiaWQiLCJyZXBsYWNlIiwibWFwIiwib3B0aW9uIiwib3B0aW9uVmFsdWUiLCJvcHRpb25MYWJlbCIsIm9wdGlvbklzT2JqZWN0IiwiaXNTZWxlY3RlZCIsIlN0cmluZyIsImxpIiwia2V5IiwiUmFkaW8iLCJ3aXRoQ29uZGl0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7K0JBNkhBOzs7ZUFBQTs7O3VCQTVIK0I7K0RBQ0k7eUJBSVg7OERBQ0Y7aUVBQ0Q7K0JBQ1M7d0JBQ0M7dUJBQ1Q7UUFDZjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFUCxNQUFNQSxZQUFZO0FBRWxCLE1BQU1DLGFBQThCLENBQUNDO0lBQ25DLE1BQU0sRUFDSkMsSUFBSSxFQUNKQyxXQUFXLEVBQ1hDLEtBQUssRUFDTEMsT0FBT0MsY0FBYyxFQUNyQkMsU0FBUyxFQUNUQyxLQUFLLEVBQ0xDLFVBQVVDLGlCQUFpQixFQUMzQkMsTUFBTUMsYUFBYSxFQUNuQkMsUUFBUSxFQUNSQyxRQUFRLEVBQ1JDLEtBQUssRUFDTEMsUUFBUSxFQUNSQyxPQUFPQyxjQUFjLEVBQ3JCQyxLQUFLLEVBQ04sR0FBR2xCO0lBRUosTUFBTSxFQUFFbUIsSUFBSSxFQUFFLEdBQUdDLElBQUFBLGdCQUFPO0lBRXhCLE1BQU1oQixRQUFRQyxnQ0FBa0IsNkJBQUNnQixjQUFTO1FBQUNkLE9BQU9BO1FBQU9NLFVBQVVBOztJ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
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,216 @@
1
+ 'use client';
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "AddNewRelation", {
7
+ enumerable: true,
8
+ get: function() {
9
+ return AddNewRelation;
10
+ }
11
+ });
12
+ const _translations = require("@payloadcms/translations");
13
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
14
+ const _Button = require("../../../../elements/Button");
15
+ const _DocumentDrawer = require("../../../../elements/DocumentDrawer");
16
+ const _Popup = /*#__PURE__*/ _interop_require_default(require("../../../../elements/Popup"));
17
+ const _PopupButtonList = /*#__PURE__*/ _interop_require_wildcard(require("../../../../elements/Popup/PopupButtonList"));
18
+ const _Tooltip = require("../../../../elements/Tooltip");
19
+ const _Plus = require("../../../../icons/Plus");
20
+ const _Auth = require("../../../../providers/Auth");
21
+ const _Config = require("../../../../providers/Config");
22
+ const _Translation = require("../../../../providers/Translation");
23
+ require("./index.scss");
24
+ const _useRelatedCollections = require("./useRelatedCollections");
25
+ function _interop_require_default(obj) {
26
+ return obj && obj.__esModule ? obj : {
27
+ default: obj
28
+ };
29
+ }
30
+ function _getRequireWildcardCache(nodeInterop) {
31
+ if (typeof WeakMap !== "function") return null;
32
+ var cacheBabelInterop = new WeakMap();
33
+ var cacheNodeInterop = new WeakMap();
34
+ return (_getRequireWildcardCache = function(nodeInterop) {
35
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
36
+ })(nodeInterop);
37
+ }
38
+ function _interop_require_wildcard(obj, nodeInterop) {
39
+ if (!nodeInterop && obj && obj.__esModule) {
40
+ return obj;
41
+ }
42
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
43
+ return {
44
+ default: obj
45
+ };
46
+ }
47
+ var cache = _getRequireWildcardCache(nodeInterop);
48
+ if (cache && cache.has(obj)) {
49
+ return cache.get(obj);
50
+ }
51
+ var newObj = {
52
+ __proto__: null
53
+ };
54
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
55
+ for(var key in obj){
56
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
57
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
58
+ if (desc && (desc.get || desc.set)) {
59
+ Object.defineProperty(newObj, key, desc);
60
+ } else {
61
+ newObj[key] = obj[key];
62
+ }
63
+ }
64
+ }
65
+ newObj.default = obj;
66
+ if (cache) {
67
+ cache.set(obj, newObj);
68
+ }
69
+ return newObj;
70
+ }
71
+ const baseClass = 'relationship-add-new';
72
+ const AddNewRelation = ({ dispatchOptions, hasMany, path, relationTo, setValue, value })=>{
73
+ const relatedCollections = (0, _useRelatedCollections.useRelatedCollections)(relationTo);
74
+ const { permissions } = (0, _Auth.useAuth)();
75
+ const [show, setShow] = (0, _react.useState)(false);
76
+ const [selectedCollection, setSelectedCollection] = (0, _react.useState)();
77
+ const relatedToMany = relatedCollections.length > 1;
78
+ const [collectionConfig, setCollectionConfig] = (0, _react.useState)(()=>!relatedToMany ? relatedCollections[0] : undefined);
79
+ const [popupOpen, setPopupOpen] = (0, _react.useState)(false);
80
+ const { i18n, t } = (0, _Translation.useTranslation)();
81
+ const [showTooltip, setShowTooltip] = (0, _react.useState)(false);
82
+ const config = (0, _Config.useConfig)();
83
+ const [DocumentDrawer, DocumentDrawerToggler, { isDrawerOpen, toggleDrawer }] = (0, _DocumentDrawer.useDocumentDrawer)({
84
+ collectionSlug: collectionConfig?.slug
85
+ });
86
+ const onSave = (0, _react.useCallback)(({ doc, operation })=>{
87
+ if (operation === 'create') {
88
+ const newValue = Array.isArray(relationTo) ? {
89
+ relationTo: collectionConfig.slug,
90
+ value: doc.id
91
+ } : doc.id;
92
+ // ensure the value is not already in the array
93
+ const isNewValue = Array.isArray(relationTo) && Array.isArray(value) ? !value.some((v)=>v && typeof v === 'object' && v.value === doc.id) : value !== doc.id;
94
+ if (isNewValue) {
95
+ // dispatchOptions({
96
+ // collection: collectionConfig,
97
+ // // TODO: fix this
98
+ // // @ts-expect-error-next-line
99
+ // type: 'ADD',
100
+ // config,
101
+ // docs: [doc],
102
+ // i18n,
103
+ // sort: true,
104
+ // })
105
+ if (hasMany) {
106
+ setValue([
107
+ ...Array.isArray(value) ? value : [],
108
+ newValue
109
+ ]);
110
+ } else {
111
+ setValue(newValue);
112
+ }
113
+ }
114
+ setSelectedCollection(undefined);
115
+ }
116
+ }, [
117
+ relationTo,
118
+ collectionConfig,
119
+ dispatchOptions,
120
+ i18n,
121
+ hasMany,
122
+ setValue,
123
+ value,
124
+ config
125
+ ]);
126
+ const onPopupToggle = (0, _react.useCallback)((state)=>{
127
+ setPopupOpen(state);
128
+ }, []);
129
+ (0, _react.useEffect)(()=>{
130
+ if (permissions) {
131
+ if (relatedCollections.length === 1) {
132
+ setShow(permissions.collections[relatedCollections[0].slug].create.permission);
133
+ } else {
134
+ setShow(relatedCollections.some((collection)=>permissions.collections[collection.slug].create.permission));
135
+ }
136
+ }
137
+ }, [
138
+ permissions,
139
+ relatedCollections
140
+ ]);
141
+ (0, _react.useEffect)(()=>{
142
+ if (relatedToMany && selectedCollection) {
143
+ setCollectionConfig(relatedCollections.find((collection)=>collection.slug === selectedCollection));
144
+ }
145
+ }, [
146
+ selectedCollection,
147
+ relatedToMany,
148
+ relatedCollections
149
+ ]);
150
+ (0, _react.useEffect)(()=>{
151
+ if (relatedToMany && collectionConfig) {
152
+ // the drawer must be rendered on the page before before opening it
153
+ // this is why 'selectedCollection' is different from 'collectionConfig'
154
+ toggleDrawer();
155
+ setSelectedCollection(undefined);
156
+ }
157
+ }, [
158
+ toggleDrawer,
159
+ relatedToMany,
160
+ collectionConfig
161
+ ]);
162
+ (0, _react.useEffect)(()=>{
163
+ if (relatedToMany && !isDrawerOpen) {
164
+ setCollectionConfig(undefined);
165
+ }
166
+ }, [
167
+ isDrawerOpen,
168
+ relatedToMany
169
+ ]);
170
+ if (show) {
171
+ return /*#__PURE__*/ _react.default.createElement("div", {
172
+ className: baseClass,
173
+ id: `${path}-add-new`
174
+ }, relatedCollections.length === 1 && /*#__PURE__*/ _react.default.createElement(_react.Fragment, null, /*#__PURE__*/ _react.default.createElement(DocumentDrawerToggler, {
175
+ className: `${baseClass}__add-button`,
176
+ onClick: ()=>setShowTooltip(false),
177
+ onMouseEnter: ()=>setShowTooltip(true),
178
+ onMouseLeave: ()=>setShowTooltip(false)
179
+ }, /*#__PURE__*/ _react.default.createElement(_Tooltip.Tooltip, {
180
+ className: `${baseClass}__tooltip`,
181
+ show: showTooltip
182
+ }, t('fields:addNewLabel', {
183
+ label: (0, _translations.getTranslation)(relatedCollections[0].labels.singular, i18n)
184
+ })), /*#__PURE__*/ _react.default.createElement(_Plus.Plus, null)), /*#__PURE__*/ _react.default.createElement(DocumentDrawer, {
185
+ onSave: onSave
186
+ })), relatedCollections.length > 1 && /*#__PURE__*/ _react.default.createElement(_react.Fragment, null, /*#__PURE__*/ _react.default.createElement(_Popup.default, {
187
+ button: /*#__PURE__*/ _react.default.createElement(_Button.Button, {
188
+ buttonStyle: "none",
189
+ className: `${baseClass}__add-button`,
190
+ tooltip: popupOpen ? undefined : t('fields:addNew')
191
+ }, /*#__PURE__*/ _react.default.createElement(_Plus.Plus, null)),
192
+ buttonType: "custom",
193
+ horizontalAlign: "center",
194
+ onToggleOpen: onPopupToggle,
195
+ render: ({ close: closePopup })=>/*#__PURE__*/ _react.default.createElement(_PopupButtonList.ButtonGroup, null, relatedCollections.map((relatedCollection)=>{
196
+ if (permissions.collections[relatedCollection.slug].create.permission) {
197
+ return /*#__PURE__*/ _react.default.createElement(_PopupButtonList.Button, {
198
+ className: `${baseClass}__relation-button--${relatedCollection.slug}`,
199
+ key: relatedCollection.slug,
200
+ onClick: ()=>{
201
+ closePopup();
202
+ setSelectedCollection(relatedCollection.slug);
203
+ }
204
+ }, (0, _translations.getTranslation)(relatedCollection.labels.singular, i18n));
205
+ }
206
+ return null;
207
+ })),
208
+ size: "medium"
209
+ }), collectionConfig && permissions.collections[collectionConfig.slug].create.permission && /*#__PURE__*/ _react.default.createElement(DocumentDrawer, {
210
+ onSave: onSave
211
+ })));
212
+ }
213
+ return null;
214
+ };
215
+
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9mb3Jtcy9maWVsZHMvUmVsYXRpb25zaGlwL0FkZE5ldy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBnZXRUcmFuc2xhdGlvbiB9IGZyb20gJ0BwYXlsb2FkY21zL3RyYW5zbGF0aW9ucydcbmltcG9ydCBSZWFjdCwgeyBGcmFnbWVudCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBEb2N1bWVudEluZm9Db250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vLi4vcHJvdmlkZXJzL0RvY3VtZW50SW5mby90eXBlcydcbmltcG9ydCB0eXBlIHsgVmFsdWUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB0eXBlIHsgUHJvcHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi8uLi8uLi9lbGVtZW50cy9CdXR0b24nXG5pbXBvcnQgeyB1c2VEb2N1bWVudERyYXdlciB9IGZyb20gJy4uLy4uLy4uLy4uL2VsZW1lbnRzL0RvY3VtZW50RHJhd2VyJ1xuaW1wb3J0IFBvcHVwIGZyb20gJy4uLy4uLy4uLy4uL2VsZW1lbnRzL1BvcHVwJ1xuaW1wb3J0ICogYXMgUG9wdXBMaXN0IGZyb20gJy4uLy4uLy4uLy4uL2VsZW1lbnRzL1BvcHVwL1BvcHVwQnV0dG9uTGlzdCdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICcuLi8uLi8uLi8uLi9lbGVtZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgUGx1cyB9IGZyb20gJy4uLy4uLy4uLy4uL2ljb25zL1BsdXMnXG5pbXBvcnQgeyB1c2VBdXRoIH0gZnJvbSAnLi4vLi4vLi4vLi4vcHJvdmlkZXJzL0F1dGgnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9wcm92aWRlcnMvQ29uZmlnJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9wcm92aWRlcnMvVHJhbnNsYXRpb24nXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcbmltcG9ydCB7IHVzZVJlbGF0ZWRDb2xsZWN0aW9ucyB9IGZyb20gJy4vdXNlUmVsYXRlZENvbGxlY3Rpb25zJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAncmVsYXRpb25zaGlwLWFkZC1uZXcnXG5cbmV4cG9ydCBjb25zdCBBZGROZXdSZWxhdGlvbjogUmVhY3QuRkM8UHJvcHM+ID0gKHtcbiAgZGlzcGF0Y2hPcHRpb25zLFxuICBoYXNNYW55LFxuICBwYXRoLFxuICByZWxhdGlvblRvLFxuICBzZXRWYWx1ZSxcbiAgdmFsdWUsXG59KSA9PiB7XG4gIGNvbnN0IHJlbGF0ZWRDb2xsZWN0aW9ucyA9IHVzZVJlbGF0ZWRDb2xsZWN0aW9ucyhyZWxhdGlvblRvKVxuICBjb25zdCB7IHBlcm1pc3Npb25zIH0gPSB1c2VBdXRoKClcbiAgY29uc3QgW3Nob3csIHNldFNob3ddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzZWxlY3RlZENvbGxlY3Rpb24sIHNldFNlbGVjdGVkQ29sbGVjdGlvbl0gPSB1c2VTdGF0ZTxzdHJpbmc+KClcbiAgY29uc3QgcmVsYXRlZFRvTWFueSA9IHJlbGF0ZWRDb2xsZWN0aW9ucy5sZW5ndGggPiAxXG4gIGNvbnN0IFtjb2xsZWN0aW9uQ29uZmlnLCBzZXRDb2xsZWN0aW9uQ29uZmlnXSA9IHVzZVN0YXRlPFNhbml0aXplZENvbGxlY3Rpb25Db25maWc+KCgpID0+XG4gICAgIXJlbGF0ZWRUb01hbnkgPyByZWxhdGVkQ29sbGVjdGlvbnNbMF0gOiB1bmRlZmluZWQsXG4gIClcbiAgY29uc3QgW3BvcHVwT3Blbiwgc2V0UG9wdXBPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCB7IGkxOG4sIHQgfSA9IHVzZVRyYW5zbGF0aW9uKClcbiAgY29uc3QgW3Nob3dUb29sdGlwLCBzZXRTaG93VG9vbHRpcF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgY29uZmlnID0gdXNlQ29uZmlnKClcblxuICBjb25zdCBbRG9jdW1lbnREcmF3ZXIsIERvY3VtZW50RHJhd2VyVG9nZ2xlciwgeyBpc0RyYXdlck9wZW4sIHRvZ2dsZURyYXdlciB9XSA9IHVzZURvY3VtZW50RHJhd2VyKFxuICAgIHtcbiAgICAgIGNvbGxlY3Rpb25TbHVnOiBjb2xsZWN0aW9uQ29uZmlnPy5zbHVnLFxuICAgIH0sXG4gIClcblxuICBjb25zdCBvblNhdmU6IERvY3VtZW50SW5mb0NvbnRleHRbJ29uU2F2ZSddID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgZG9jLCBvcGVyYXRpb24gfSkgPT4ge1xuICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJ2NyZWF0ZScpIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWU6IFZhbHVlID0gQXJyYXkuaXNBcnJheShyZWxhdGlvblRvKVxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICByZWxhdGlvblRvOiBjb2xsZWN0aW9uQ29uZmlnLnNsdWcsXG4gICAgICAgICAgICAgIHZhbHVlOiBkb2MuaWQsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiBkb2MuaWRcblxuICAgICAgICAvLyBlbnN1cmUgdGhlIHZhbHVlIGlzIG5vdCBhbHJlYWR5IGluIHRoZSBhcnJheVxuICAgICAgICBjb25zdCBpc05ld1ZhbHVlID1cbiAgICAgICAgICBBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pICYmIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICAgICAgICA/ICF2YWx1ZS5zb21lKCh2KSA9PiB2ICYmIHR5cGVvZiB2ID09PSAnb2JqZWN0JyAmJiB2LnZhbHVlID09PSBkb2MuaWQpXG4gICAgICAgICAgICA6IHZhbHVlICE9PSBkb2MuaWRcblxuICAgICAgICBpZiAoaXNOZXdWYWx1ZSkge1xuICAgICAgICAgIC8vIGRpc3BhdGNoT3B0aW9ucyh7XG4gICAgICAgICAgLy8gICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgIC8vICAgLy8gVE9ETzogZml4IHRoaXNcbiAgICAgICAgICAvLyAgIC8vIEB0cy1leHBlY3QtZXJyb3ItbmV4dC1saW5lXG4gICAgICAgICAgLy8gICB0eXBlOiAnQUREJyxcbiAgICAgICAgICAvLyAgIGNvbmZpZyxcbiAgICAgICAgICAvLyAgIGRvY3M6IFtkb2NdLFxuICAgICAgICAgIC8vICAgaTE4bixcbiAgICAgICAgICAvLyAgIHNvcnQ6IHRydWUsXG4gICAgICAgICAgLy8gfSlcblxuICAgICAgICAgIGlmIChoYXNNYW55KSB7XG4gICAgICAgICAgICBzZXRWYWx1ZShbLi4uKEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbXSksIG5ld1ZhbHVlXSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0VmFsdWUobmV3VmFsdWUpXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0U2VsZWN0ZWRDb2xsZWN0aW9uKHVuZGVmaW5lZClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtyZWxhdGlvblRvLCBjb2xsZWN0aW9uQ29uZmlnLCBkaXNwYXRjaE9wdGlvbnMsIGkxOG4sIGhhc01hbnksIHNldFZhbHVlLCB2YWx1ZSwgY29uZmlnXSxcbiAgKVxuXG4gIGNvbnN0IG9uUG9wdXBUb2dnbGUgPSB1c2VDYWxsYmFjaygoc3RhdGUpID0+IHtcbiAgICBzZXRQb3B1cE9wZW4oc3RhdGUpXG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHBlcm1pc3Npb25zKSB7XG4gICAgICBpZiAocmVsYXRlZENvbGxlY3Rpb25zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBzZXRTaG93KHBlcm1pc3Npb25zLmNvbGxlY3Rpb25zW3JlbGF0ZWRDb2xsZWN0aW9uc1swXS5zbHVnXS5jcmVhdGUucGVybWlzc2lvbilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFNob3coXG4gICAgICAgICAgcmVsYXRlZENvbGxlY3Rpb25zLnNvbWUoXG4gICAgICAgICAgICAoY29sbGVjdGlvbikgPT4gcGVybWlzc2lvbnMuY29sbGVjdGlvbnNbY29sbGVjdGlvbi5zbHVnXS5jcmVhdGUucGVybWlzc2lvbixcbiAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuICB9LCBbcGVybWlzc2lvbnMsIHJlbGF0ZWRDb2xsZWN0aW9uc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocmVsYXRlZFRvTWFueSAmJiBzZWxlY3RlZENvbGxlY3Rpb24pIHtcbiAgICAgIHNldENvbGxlY3Rpb25Db25maWcoXG4gICAgICAgIHJlbGF0ZWRDb2xsZWN0aW9ucy5maW5kKChjb2xsZWN0aW9uKSA9PiBjb2xsZWN0aW9uLnNsdWcgPT09IHNlbGVjdGVkQ29sbGVjdGlvbiksXG4gICAgICApXG4gICAgfVxuICB9LCBbc2VsZWN0ZWRDb2xsZWN0aW9uLCByZWxhdGVkVG9NYW55LCByZWxhdGVkQ29sbGVjdGlvbnNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlbGF0ZWRUb01hbnkgJiYgY29sbGVjdGlvbkNvbmZpZykge1xuICAgICAgLy8gdGhlIGRyYXdlciBtdXN0IGJlIHJlbmRlcmVkIG9uIHRoZSBwYWdlIGJlZm9yZSBiZWZvcmUgb3BlbmluZyBpdFxuICAgICAgLy8gdGhpcyBpcyB3aHkgJ3NlbGVjdGVkQ29sbGVjdGlvbicgaXMgZGlmZmVyZW50IGZyb20gJ2NvbGxlY3Rpb25Db25maWcnXG4gICAgICB0b2dnbGVEcmF3ZXIoKVxuICAgICAgc2V0U2VsZWN0ZWRDb2xsZWN0aW9uKHVuZGVmaW5lZClcbiAgICB9XG4gIH0sIFt0b2dnbGVEcmF3ZXIsIHJlbGF0ZWRUb01hbnksIGNvbGxlY3Rpb25Db25maWddKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlbGF0ZWRUb01hbnkgJiYgIWlzRHJhd2VyT3Blbikge1xuICAgICAgc2V0Q29sbGVjdGlvbkNvbmZpZyh1bmRlZmluZWQpXG4gICAgfVxuICB9LCBbaXNEcmF3ZXJPcGVuLCByZWxhdGVkVG9NYW55XSlcblxuICBpZiAoc2hvdykge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YmFzZUNsYXNzfSBpZD17YCR7cGF0aH0tYWRkLW5ld2B9PlxuICAgICAgICB7cmVsYXRlZENvbGxlY3Rpb25zLmxlbmd0aCA9PT0gMSAmJiAoXG4gICAgICAgICAgPEZyYWdtZW50PlxuICAgICAgICAgICAgPERvY3VtZW50RHJhd2VyVG9nZ2xlclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2FkZC1idXR0b25gfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93VG9vbHRpcChmYWxzZSl9XG4gICAgICAgICAgICAgIG9uTW91c2VFbnRlcj17KCkgPT4gc2V0U2hvd1Rvb2x0aXAodHJ1ZSl9XG4gICAgICAgICAgICAgIG9uTW91c2VMZWF2ZT17KCkgPT4gc2V0U2hvd1Rvb2x0aXAoZmFsc2UpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8VG9vbHRpcCBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3Rvb2x0aXBgfSBzaG93PXtzaG93VG9vbHRpcH0+XG4gICAgICAgICAgICAgICAge3QoJ2ZpZWxkczphZGROZXdMYWJlbCcsIHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXRUcmFuc2xhdGlvbihyZWxhdGVkQ29sbGVjdGlvbnNbMF0ubGFiZWxzLnNpbmd1bGFyLCBpMThuKSxcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICA8UGx1cyAvPlxuICAgICAgICAgICAgPC9Eb2N1bWVudERyYXdlclRvZ2dsZXI+XG4gICAgICAgICAgICA8RG9jdW1lbnREcmF3ZXIgb25TYXZlPXtvblNhdmV9IC8+XG4gICAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICAgKX1cbiAgICAgICAge3JlbGF0ZWRDb2xsZWN0aW9ucy5sZW5ndGggPiAxICYmIChcbiAgICAgICAgICA8RnJhZ21lbnQ+XG4gICAgICAgICAgICA8UG9wdXBcbiAgICAgICAgICAgICAgYnV0dG9uPXtcbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICBidXR0b25TdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19hZGQtYnV0dG9uYH1cbiAgICAgICAgICAgICAgICAgIHRvb2x0aXA9e3BvcHVwT3BlbiA/IHVuZGVmaW5lZCA6IHQoJ2ZpZWxkczphZGROZXcnKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UGx1cyAvPlxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJjdXN0b21cIlxuICAgICAgICAgICAgICBob3Jpem9udGFsQWxpZ249XCJjZW50ZXJcIlxuICAgICAgICAgICAgICBvblRvZ2dsZU9wZW49e29uUG9wdXBUb2dnbGV9XG4gICAgICAgICAgICAgIHJlbmRlcj17KHsgY2xvc2U6IGNsb3NlUG9wdXAgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxQb3B1cExpc3QuQnV0dG9uR3JvdXA+XG4gICAgICAgICAgICAgICAgICB7cmVsYXRlZENvbGxlY3Rpb25zLm1hcCgocmVsYXRlZENvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBlcm1pc3Npb25zLmNvbGxlY3Rpb25zW3JlbGF0ZWRDb2xsZWN0aW9uLnNsdWddLmNyZWF0ZS5wZXJtaXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxQb3B1cExpc3QuQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcmVsYXRpb24tYnV0dG9uLS0ke3JlbGF0ZWRDb2xsZWN0aW9uLnNsdWd9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtyZWxhdGVkQ29sbGVjdGlvbi5zbHVnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VQb3B1cCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRDb2xsZWN0aW9uKHJlbGF0ZWRDb2xsZWN0aW9uLnNsdWcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtnZXRUcmFuc2xhdGlvbihyZWxhdGVkQ29sbGVjdGlvbi5sYWJlbHMuc2luZ3VsYXIsIGkxOG4pfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Qb3B1cExpc3QuQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA8L1BvcHVwTGlzdC5CdXR0b25Hcm91cD5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge2NvbGxlY3Rpb25Db25maWcgJiZcbiAgICAgICAgICAgICAgcGVybWlzc2lvbnMuY29sbGVjdGlvbnNbY29sbGVjdGlvbkNvbmZpZy5zbHVnXS5jcmVhdGUucGVybWlzc2lvbiAmJiAoXG4gICAgICAgICAgICAgICAgPERvY3VtZW50RHJhd2VyIG9uU2F2ZT17b25TYXZlfSAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApXG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cbiJdLCJuYW1lcyI6WyJBZGROZXdSZWxhdGlvbiIsImJhc2VDbGFzcyIsImRpc3BhdGNoT3B0aW9ucyIsImhhc01hbnkiLCJwYXRoIiwicmVsYXRpb25UbyIsInNldFZhbHVlIiwidmFsdWUiLCJyZWxhdGVkQ29sbGVjdGlvbnMiLCJ1c2VSZWxhdGVkQ29sbGVjdGlvbnMiLCJwZXJtaXNzaW9ucyIsInVzZUF1dGgiLCJzaG93Iiwic2V0U2hvdyIsInVzZVN0YXRlIiwic2VsZWN0ZWRDb2xsZWN0aW9uIiwic2V0U2VsZWN0ZWRDb2xsZWN0aW9uIiwicmVsYXRlZFRvTWFueSIsImxlbmd0aCIsImNvbGxlY3Rpb25Db25maWciLCJzZXRDb2xsZWN0aW9uQ29uZmlnIiwidW5kZWZpbmVkIiwicG9wdXBPcGVuIiwic2V0UG9wdXBPcGVuIiwiaTE4biIsInQiLCJ1c2VUcmFuc2xhdGlvbiIsInNob3dUb29sdGlwIiwic2V0U2hvd1Rvb2x0aXAiLCJjb25maWciLCJ1c2VDb25maWciLCJEb2N1bWVudERyYXdlciIsIkRvY3VtZW50RHJhd2VyVG9nZ2xlciIsImlzRHJhd2VyT3BlbiIsInRvZ2dsZURyYXdlciIsInVzZURvY3VtZW50RHJhd2VyIiwiY29sbGVjdGlvblNsdWciLCJzbHVnIiwib25TYXZlIiwidXNlQ2FsbGJhY2siLCJkb2MiLCJvcGVyYXRpb24iLCJuZXdWYWx1ZSIsIkFycmF5IiwiaXNBcnJheSIsImlkIiwiaXNOZXdWYWx1ZSIsInNvbWUiLCJ2Iiwib25Qb3B1cFRvZ2dsZSIsInN0YXRlIiwidXNlRWZmZWN0IiwiY29sbGVjdGlvbnMiLCJjcmVhdGUiLCJwZXJtaXNzaW9uIiwiY29sbGVjdGlvbiIsImZpbmQiLCJkaXYiLCJjbGFzc05hbWUiLCJGcmFnbWVudCIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCJUb29sdGlwIiwibGFiZWwiLCJnZXRUcmFuc2xhdGlvbiIsImxhYmVscyIsInNpbmd1bGFyIiwiUGx1cyIsIlBvcHVwIiwiYnV0dG9uIiwiQnV0dG9uIiwiYnV0dG9uU3R5bGUiLCJ0b29sdGlwIiwiYnV0dG9uVHlwZSIsImhvcml6b250YWxBbGlnbiIsIm9uVG9nZ2xlT3BlbiIsInJlbmRlciIsImNsb3NlIiwiY2xvc2VQb3B1cCIsIlBvcHVwTGlzdCIsIkJ1dHRvbkdyb3VwIiwibWFwIiwicmVsYXRlZENvbGxlY3Rpb24iLCJrZXkiLCJzaXplIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7K0JBd0JhQTs7O2VBQUFBOzs7OEJBckJrQjsrREFDbUM7d0JBTTNDO2dDQUNXOzhEQUNoQjt5RUFDUzt5QkFDSDtzQkFDSDtzQkFDRzt3QkFDRTs2QkFDSztRQUN4Qjt1Q0FDK0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRDLE1BQU1DLFlBQVk7QUFFWCxNQUFNRCxpQkFBa0MsQ0FBQyxFQUM5Q0UsZUFBZSxFQUNmQyxPQUFPLEVBQ1BDLElBQUksRUFDSkMsVUFBVSxFQUNWQyxRQUFRLEVBQ1JDLEtBQUssRUFDTjtJQUNDLE1BQU1DLHFCQUFxQkMsSUFBQUEsNENBQXFCLEVBQUNKO0lBQ2pELE1BQU0sRUFBRUssV0FBVyxFQUFFLEdBQUdDLElBQUFBLGFBQU87SUFDL0IsTUFBTSxDQUFDQyxNQUFNQyxRQUFRLEdBQUdDLElBQUFBLGVBQVEsRUFBQztJQUNqQyxNQUFNLENBQUNDLG9CQUFvQkMsc0JBQXNCLEdBQUdGLElBQUFBLGVBQVE7SUFDNUQsTUFBTUcsZ0JBQWdCVCxtQkFBbUJVLE1BQU0sR0FBRztJQUNsRCxNQUFNLENBQUNDLGtCQUFrQkMsb0JBQW9CLEdBQUdOLElBQUFBLGVBQVEsRUFBNEIsSUFDbEYsQ0FBQ0csZ0JBQWdCVCxrQkFBa0IsQ0FBQyxFQUFFLEdBQUdhO0lBRTNDLE1BQU0sQ0FBQ0MsV0FBV0MsYUFBYSxHQUFHVCxJQUFBQSxlQUFRLEVBQUM7SUFDM0MsTUFBTSxFQUFFVSxJ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
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "useRelatedCollections", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return useRelatedCollections;
9
+ }
10
+ });
11
+ const _react = require("react");
12
+ const _Config = require("../../../../providers/Config");
13
+ const useRelatedCollections = (relationTo)=>{
14
+ const config = (0, _Config.useConfig)();
15
+ const [relatedCollections] = (0, _react.useState)(()=>{
16
+ if (relationTo) {
17
+ const relations = typeof relationTo === 'string' ? [
18
+ relationTo
19
+ ] : relationTo;
20
+ return relations.map((relation)=>config.collections.find((collection)=>collection.slug === relation));
21
+ }
22
+ return [];
23
+ });
24
+ return relatedCollections;
25
+ };
26
+
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9mb3Jtcy9maWVsZHMvUmVsYXRpb25zaGlwL0FkZE5ldy91c2VSZWxhdGVkQ29sbGVjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDbGllbnRDb25maWcsIFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9wcm92aWRlcnMvQ29uZmlnJ1xuXG5leHBvcnQgY29uc3QgdXNlUmVsYXRlZENvbGxlY3Rpb25zID0gKFxuICByZWxhdGlvblRvOiBzdHJpbmcgfCBzdHJpbmdbXSxcbik6IENsaWVudENvbmZpZ1snY29sbGVjdGlvbnMnXSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IHVzZUNvbmZpZygpXG5cbiAgY29uc3QgW3JlbGF0ZWRDb2xsZWN0aW9uc10gPSB1c2VTdGF0ZSgoKSA9PiB7XG4gICAgaWYgKHJlbGF0aW9uVG8pIHtcbiAgICAgIGNvbnN0IHJlbGF0aW9ucyA9IHR5cGVvZiByZWxhdGlvblRvID09PSAnc3RyaW5nJyA/IFtyZWxhdGlvblRvXSA6IHJlbGF0aW9uVG9cbiAgICAgIHJldHVybiByZWxhdGlvbnMubWFwKChyZWxhdGlvbikgPT5cbiAgICAgICAgY29uZmlnLmNvbGxlY3Rpb25zLmZpbmQoKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gcmVsYXRpb24pLFxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gW11cbiAgfSlcblxuICByZXR1cm4gcmVsYXRlZENvbGxlY3Rpb25zXG59XG4iXSwibmFtZXMiOlsidXNlUmVsYXRlZENvbGxlY3Rpb25zIiwicmVsYXRpb25UbyIsImNvbmZpZyIsInVzZUNvbmZpZyIsInJlbGF0ZWRDb2xsZWN0aW9ucyIsInVzZVN0YXRlIiwicmVsYXRpb25zIiwibWFwIiwicmVsYXRpb24iLCJjb2xsZWN0aW9ucyIsImZpbmQiLCJjb2xsZWN0aW9uIiwic2x1ZyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFNYUE7OztlQUFBQTs7O3VCQUpZO3dCQUVDO0FBRW5CLE1BQU1BLHdCQUF3QixDQUNuQ0M7SUFFQSxNQUFNQyxTQUFTQyxJQUFBQSxpQkFBUztJQUV4QixNQUFNLENBQUNDLG1CQUFtQixHQUFHQyxJQUFBQSxlQUFRLEVBQUM7UUFDcEMsSUFBSUosWUFBWTtZQUNkLE1BQU1LLFlBQVksT0FBT0wsZUFBZSxXQUFXO2dCQUFDQTthQUFXLEdBQUdBO1lBQ2xFLE9BQU9LLFVBQVVDLEdBQUcsQ0FBQyxDQUFDQyxXQUNwQk4sT0FBT08sV0FBVyxDQUFDQyxJQUFJLENBQUMsQ0FBQ0MsYUFBZUEsV0FBV0MsSUFBSSxLQUFLSjtRQUVoRTtRQUNBLE9BQU8sRUFBRTtJQUNYO0lBRUEsT0FBT0o7QUFDVCJ9
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "createRelationMap", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return createRelationMap;
9
+ }
10
+ });
11
+ const createRelationMap = ({ hasMany, relationTo, value })=>{
12
+ const hasMultipleRelations = Array.isArray(relationTo);
13
+ let relationMap;
14
+ if (Array.isArray(relationTo)) {
15
+ relationMap = relationTo.reduce((map, current)=>{
16
+ return {
17
+ ...map,
18
+ [current]: []
19
+ };
20
+ }, {});
21
+ } else {
22
+ relationMap = {
23
+ [relationTo]: []
24
+ };
25
+ }
26
+ if (value === null) {
27
+ return relationMap;
28
+ }
29
+ const add = (relation, id)=>{
30
+ if ((typeof id === 'string' || typeof id === 'number') && typeof relation === 'string') {
31
+ if (relationMap[relation]) {
32
+ relationMap[relation].push(id);
33
+ } else {
34
+ relationMap[relation] = [
35
+ id
36
+ ];
37
+ }
38
+ }
39
+ };
40
+ if (hasMany && Array.isArray(value)) {
41
+ value.forEach((val)=>{
42
+ if (hasMultipleRelations && typeof val === 'object' && 'relationTo' in val && 'value' in val) {
43
+ add(val.relationTo, val.value);
44
+ }
45
+ if (!hasMultipleRelations && typeof relationTo === 'string') {
46
+ add(relationTo, val);
47
+ }
48
+ });
49
+ } else if (hasMultipleRelations && Array.isArray(relationTo)) {
50
+ if (typeof value === 'object' && 'relationTo' in value && 'value' in value) {
51
+ add(value.relationTo, value.value);
52
+ }
53
+ } else {
54
+ add(relationTo, value);
55
+ }
56
+ return relationMap;
57
+ };
58
+
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mb3Jtcy9maWVsZHMvUmVsYXRpb25zaGlwL2NyZWF0ZVJlbGF0aW9uTWFwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVmFsdWUgfSBmcm9tICcuL3R5cGVzJ1xuXG50eXBlIFJlbGF0aW9uTWFwID0ge1xuICBbcmVsYXRpb246IHN0cmluZ106IChudW1iZXIgfCBzdHJpbmcpW11cbn1cblxudHlwZSBDcmVhdGVSZWxhdGlvbk1hcCA9IChhcmdzOiB7XG4gIGhhc01hbnk6IGJvb2xlYW5cbiAgcmVsYXRpb25Ubzogc3RyaW5nIHwgc3RyaW5nW11cbiAgdmFsdWU6IFZhbHVlIHwgVmFsdWVbXSB8IG51bGwgLy8gcmVhbGx5IG5lZWRzIHRvIGJlIGBWYWx1ZVdpdGhSZWxhdGlvbmBcbn0pID0+IFJlbGF0aW9uTWFwXG5cbmV4cG9ydCBjb25zdCBjcmVhdGVSZWxhdGlvbk1hcDogQ3JlYXRlUmVsYXRpb25NYXAgPSAoeyBoYXNNYW55LCByZWxhdGlvblRvLCB2YWx1ZSB9KSA9PiB7XG4gIGNvbnN0IGhhc011bHRpcGxlUmVsYXRpb25zID0gQXJyYXkuaXNBcnJheShyZWxhdGlvblRvKVxuICBsZXQgcmVsYXRpb25NYXA6IFJlbGF0aW9uTWFwXG4gIGlmIChBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pKSB7XG4gICAgcmVsYXRpb25NYXAgPSByZWxhdGlvblRvLnJlZHVjZSgobWFwLCBjdXJyZW50KSA9PiB7XG4gICAgICByZXR1cm4geyAuLi5tYXAsIFtjdXJyZW50XTogW10gfVxuICAgIH0sIHt9KVxuICB9IGVsc2Uge1xuICAgIHJlbGF0aW9uTWFwID0geyBbcmVsYXRpb25Ub106IFtdIH1cbiAgfVxuXG4gIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiByZWxhdGlvbk1hcFxuICB9XG5cbiAgY29uc3QgYWRkID0gKHJlbGF0aW9uOiBzdHJpbmcsIGlkOiB1bmtub3duKSA9PiB7XG4gICAgaWYgKCh0eXBlb2YgaWQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBpZCA9PT0gJ251bWJlcicpICYmIHR5cGVvZiByZWxhdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmIChyZWxhdGlvbk1hcFtyZWxhdGlvbl0pIHtcbiAgICAgICAgcmVsYXRpb25NYXBbcmVsYXRpb25dLnB1c2goaWQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZWxhdGlvbk1hcFtyZWxhdGlvbl0gPSBbaWRdXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGhhc01hbnkgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICB2YWx1ZS5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgaGFzTXVsdGlwbGVSZWxhdGlvbnMgJiZcbiAgICAgICAgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgJ3JlbGF0aW9uVG8nIGluIHZhbCAmJlxuICAgICAgICAndmFsdWUnIGluIHZhbFxuICAgICAgKSB7XG4gICAgICAgIGFkZCh2YWwucmVsYXRpb25UbywgdmFsLnZhbHVlKVxuICAgICAgfVxuXG4gICAgICBpZiAoIWhhc011bHRpcGxlUmVsYXRpb25zICYmIHR5cGVvZiByZWxhdGlvblRvID09PSAnc3RyaW5nJykge1xuICAgICAgICBhZGQocmVsYXRpb25UbywgdmFsKVxuICAgICAgfVxuICAgIH0pXG4gIH0gZWxzZSBpZiAoaGFzTXVsdGlwbGVSZWxhdGlvbnMgJiYgQXJyYXkuaXNBcnJheShyZWxhdGlvblRvKSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICdyZWxhdGlvblRvJyBpbiB2YWx1ZSAmJiAndmFsdWUnIGluIHZhbHVlKSB7XG4gICAgICBhZGQodmFsdWUucmVsYXRpb25UbywgdmFsdWUudmFsdWUpXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGFkZChyZWxhdGlvblRvLCB2YWx1ZSlcbiAgfVxuXG4gIHJldHVybiByZWxhdGlvbk1hcFxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZVJlbGF0aW9uTWFwIiwiaGFzTWFueSIsInJlbGF0aW9uVG8iLCJ2YWx1ZSIsImhhc011bHRpcGxlUmVsYXRpb25zIiwiQXJyYXkiLCJpc0FycmF5IiwicmVsYXRpb25NYXAiLCJyZWR1Y2UiLCJtYXAiLCJjdXJyZW50IiwiYWRkIiwicmVsYXRpb24iLCJpZCIsInB1c2giLCJmb3JFYWNoIiwidmFsIl0sIm1hcHBpbmdzIjoiOzs7OytCQVlhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSxvQkFBdUMsQ0FBQyxFQUFFQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsS0FBSyxFQUFFO0lBQ2pGLE1BQU1DLHVCQUF1QkMsTUFBTUMsT0FBTyxDQUFDSjtJQUMzQyxJQUFJSztJQUNKLElBQUlGLE1BQU1DLE9BQU8sQ0FBQ0osYUFBYTtRQUM3QkssY0FBY0wsV0FBV00sTUFBTSxDQUFDLENBQUNDLEtBQUtDO1lBQ3BDLE9BQU87Z0JBQUUsR0FBR0QsR0FBRztnQkFBRSxDQUFDQyxRQUFRLEVBQUUsRUFBRTtZQUFDO1FBQ2pDLEdBQUcsQ0FBQztJQUNOLE9BQU87UUFDTEgsY0FBYztZQUFFLENBQUNMLFdBQVcsRUFBRSxFQUFFO1FBQUM7SUFDbkM7SUFFQSxJQUFJQyxVQUFVLE1BQU07UUFDbEIsT0FBT0k7SUFDVDtJQUVBLE1BQU1JLE1BQU0sQ0FBQ0MsVUFBa0JDO1FBQzdCLElBQUksQUFBQyxDQUFBLE9BQU9BLE9BQU8sWUFBWSxPQUFPQSxPQUFPLFFBQU8sS0FBTSxPQUFPRCxhQUFhLFVBQVU7WUFDdEYsSUFBSUwsV0FBVyxDQUFDSyxTQUFTLEVBQUU7Z0JBQ3pCTCxXQUFXLENBQUNLLFNBQVMsQ0FBQ0UsSUFBSSxDQUFDRDtZQUM3QixPQUFPO2dCQUNMTixXQUFXLENBQUNLLFNBQVMsR0FBRztvQkFBQ0M7aUJBQUc7WUFDOUI7UUFDRjtJQUNGO0lBRUEsSUFBSVosV0FBV0ksTUFBTUMsT0FBTyxDQUFDSCxRQUFRO1FBQ25DQSxNQUFNWSxPQUFPLENBQUMsQ0FBQ0M7WUFDYixJQUNFWix3QkFDQSxPQUFPWSxRQUFRLFlBQ2YsZ0JBQWdCQSxPQUNoQixXQUFXQSxLQUNYO2dCQUNBTCxJQUFJSyxJQUFJZCxVQUFVLEVBQUVjLElBQUliLEtBQUs7WUFDL0I7WUFFQSxJQUFJLENBQUNDLHdCQUF3QixPQUFPRixlQUFlLFVBQVU7Z0JBQzNEUyxJQUFJVCxZQUFZYztZQUNsQjtRQUNGO0lBQ0YsT0FBTyxJQUFJWix3QkFBd0JDLE1BQU1DLE9BQU8sQ0FBQ0osYUFBYTtRQUM1RCxJQUFJLE9BQU9DLFVBQVUsWUFBWSxnQkFBZ0JBLFNBQVMsV0FBV0EsT0FBTztZQUMxRVEsSUFBSVIsTUFBTUQsVUFBVSxFQUFFQyxNQUFNQSxLQUFLO1FBQ25DO0lBQ0YsT0FBTztRQUNMUSxJQUFJVCxZQUFZQztJQUNsQjtJQUVBLE9BQU9JO0FBQ1QifQ==
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "findOptionsByValue", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return findOptionsByValue;
9
+ }
10
+ });
11
+ const findOptionsByValue = ({ options, value })=>{
12
+ if (value) {
13
+ if (Array.isArray(value)) {
14
+ return value.map((val)=>{
15
+ let matchedOption;
16
+ options.forEach((optGroup)=>{
17
+ if (!matchedOption) {
18
+ matchedOption = optGroup.options.find((option)=>{
19
+ if (typeof val === 'object') {
20
+ return option.value === val.value && option.relationTo === val.relationTo;
21
+ }
22
+ return val === option.value;
23
+ });
24
+ }
25
+ });
26
+ return matchedOption;
27
+ });
28
+ }
29
+ let matchedOption;
30
+ options.forEach((optGroup)=>{
31
+ if (!matchedOption) {
32
+ matchedOption = optGroup.options.find((option)=>{
33
+ if (typeof value === 'object') {
34
+ return option.value === value.value && option.relationTo === value.relationTo;
35
+ }
36
+ return value === option.value;
37
+ });
38
+ }
39
+ });
40
+ return matchedOption;
41
+ }
42
+ return undefined;
43
+ };
44
+
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9mb3Jtcy9maWVsZHMvUmVsYXRpb25zaGlwL2ZpbmRPcHRpb25zQnlWYWx1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL2VsZW1lbnRzL1JlYWN0U2VsZWN0L3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25Hcm91cCwgVmFsdWUgfSBmcm9tICcuL3R5cGVzJ1xuXG50eXBlIEFyZ3MgPSB7XG4gIG9wdGlvbnM6IE9wdGlvbkdyb3VwW11cbiAgdmFsdWU6IFZhbHVlIHwgVmFsdWVbXVxufVxuXG5leHBvcnQgY29uc3QgZmluZE9wdGlvbnNCeVZhbHVlID0gKHsgb3B0aW9ucywgdmFsdWUgfTogQXJncyk6IE9wdGlvbiB8IE9wdGlvbltdID0+IHtcbiAgaWYgKHZhbHVlKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUubWFwKCh2YWwpID0+IHtcbiAgICAgICAgbGV0IG1hdGNoZWRPcHRpb246IE9wdGlvblxuXG4gICAgICAgIG9wdGlvbnMuZm9yRWFjaCgob3B0R3JvdXApID0+IHtcbiAgICAgICAgICBpZiAoIW1hdGNoZWRPcHRpb24pIHtcbiAgICAgICAgICAgIG1hdGNoZWRPcHRpb24gPSBvcHRHcm91cC5vcHRpb25zLmZpbmQoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnZhbHVlID09PSB2YWwudmFsdWUgJiYgb3B0aW9uLnJlbGF0aW9uVG8gPT09IHZhbC5yZWxhdGlvblRvXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSBvcHRpb24udmFsdWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIHJldHVybiBtYXRjaGVkT3B0aW9uXG4gICAgICB9KVxuICAgIH1cblxuICAgIGxldCBtYXRjaGVkT3B0aW9uOiBPcHRpb25cblxuICAgIG9wdGlvbnMuZm9yRWFjaCgob3B0R3JvdXApID0+IHtcbiAgICAgIGlmICghbWF0Y2hlZE9wdGlvbikge1xuICAgICAgICBtYXRjaGVkT3B0aW9uID0gb3B0R3JvdXAub3B0aW9ucy5maW5kKChvcHRpb24pID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi52YWx1ZSA9PT0gdmFsdWUudmFsdWUgJiYgb3B0aW9uLnJlbGF0aW9uVG8gPT09IHZhbHVlLnJlbGF0aW9uVG9cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHZhbHVlID09PSBvcHRpb24udmFsdWVcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIG1hdGNoZWRPcHRpb25cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWRcbn1cbiJdLCJuYW1lcyI6WyJmaW5kT3B0aW9uc0J5VmFsdWUiLCJvcHRpb25zIiwidmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJ2YWwiLCJtYXRjaGVkT3B0aW9uIiwiZm9yRWFjaCIsIm9wdEdyb3VwIiwiZmluZCIsIm9wdGlvbiIsInJlbGF0aW9uVG8iLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBUWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHFCQUFxQixDQUFDLEVBQUVDLE9BQU8sRUFBRUMsS0FBSyxFQUFRO0lBQ3pELElBQUlBLE9BQU87UUFDVCxJQUFJQyxNQUFNQyxPQUFPLENBQUNGLFFBQVE7WUFDeEIsT0FBT0EsTUFBTUcsR0FBRyxDQUFDLENBQUNDO2dCQUNoQixJQUFJQztnQkFFSk4sUUFBUU8sT0FBTyxDQUFDLENBQUNDO29CQUNmLElBQUksQ0FBQ0YsZUFBZTt3QkFDbEJBLGdCQUFnQkUsU0FBU1IsT0FBTyxDQUFDUyxJQUFJLENBQUMsQ0FBQ0M7NEJBQ3JDLElBQUksT0FBT0wsUUFBUSxVQUFVO2dDQUMzQixPQUFPSyxPQUFPVCxLQUFLLEtBQUtJLElBQUlKLEtBQUssSUFBSVMsT0FBT0MsVUFBVSxLQUFLTixJQUFJTSxVQUFVOzRCQUMzRTs0QkFFQSxPQUFPTixRQUFRSyxPQUFPVCxLQUFLO3dCQUM3QjtvQkFDRjtnQkFDRjtnQkFFQSxPQUFPSztZQUNUO1FBQ0Y7UUFFQSxJQUFJQTtRQUVKTixRQUFRTyxPQUFPLENBQUMsQ0FBQ0M7WUFDZixJQUFJLENBQUNGLGVBQWU7Z0JBQ2xCQSxnQkFBZ0JFLFNBQVNSLE9BQU8sQ0FBQ1MsSUFBSSxDQUFDLENBQUNDO29CQUNyQyxJQUFJLE9BQU9ULFVBQVUsVUFBVTt3QkFDN0IsT0FBT1MsT0FBT1QsS0FBSyxLQUFLQSxNQUFNQSxLQUFLLElBQUlTLE9BQU9DLFVBQVUsS0FBS1YsTUFBTVUsVUFBVTtvQkFDL0U7b0JBQ0EsT0FBT1YsVUFBVVMsT0FBT1QsS0FBSztnQkFDL0I7WUFDRjtRQUNGO1FBRUEsT0FBT0s7SUFDVDtJQUVBLE9BQU9NO0FBQ1QifQ==