@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,235 @@
1
+ // import queryString from 'qs'
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 _translations = require("@payloadcms/translations");
13
+ const _utilities = require("payload/utilities");
14
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
15
+ const _Config = require("../../providers/Config");
16
+ const _SearchParams = require("../../providers/SearchParams");
17
+ const _Translation = require("../../providers/Translation");
18
+ const _Button = require("../Button");
19
+ const _Condition = /*#__PURE__*/ _interop_require_default(require("./Condition"));
20
+ const _fieldtypes = /*#__PURE__*/ _interop_require_default(require("./field-types"));
21
+ require("./index.scss");
22
+ const _reducer = /*#__PURE__*/ _interop_require_default(require("./reducer"));
23
+ const _transformWhereQuery = require("./transformWhereQuery");
24
+ const _validateWhereQuery = /*#__PURE__*/ _interop_require_default(require("./validateWhereQuery"));
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 = 'where-builder';
72
+ const reduceFields = (fields, i18n)=>(0, _utilities.flattenTopLevelFields)(fields).reduce((reduced, field)=>{
73
+ if (typeof _fieldtypes.default[field.type] === 'object') {
74
+ const operatorKeys = new Set();
75
+ const operators = _fieldtypes.default[field.type].operators.reduce((acc, operator)=>{
76
+ if (!operatorKeys.has(operator.value)) {
77
+ operatorKeys.add(operator.value);
78
+ return [
79
+ ...acc,
80
+ {
81
+ ...operator,
82
+ label: i18n.t(`operators:${operator.label}`)
83
+ }
84
+ ];
85
+ }
86
+ return acc;
87
+ }, []);
88
+ const formattedField = {
89
+ label: (0, _translations.getTranslation)(field.label || field.name, i18n),
90
+ value: field.name,
91
+ ..._fieldtypes.default[field.type],
92
+ operators,
93
+ props: {
94
+ ...field
95
+ }
96
+ };
97
+ return [
98
+ ...reduced,
99
+ formattedField
100
+ ];
101
+ }
102
+ return reduced;
103
+ }, []);
104
+ /**
105
+ * The WhereBuilder component is used to render the filter controls for a collection's list view.
106
+ * It is part of the {@link ListControls} component which is used to render the controls (search, filter, where).
107
+ */ const WhereBuilder = (props)=>{
108
+ const { collectionPluralLabel, collectionSlug, handleChange, modifySearchQuery = true } = props;
109
+ const { i18n, t } = (0, _Translation.useTranslation)();
110
+ const config = (0, _Config.useConfig)();
111
+ const collection = config.collections.find((c)=>c.slug === collectionSlug);
112
+ const [reducedFields] = (0, _react.useState)(()=>reduceFields(collection.fields, i18n));
113
+ const { searchParams } = (0, _SearchParams.useSearchParams)();
114
+ // This handles initializing the where conditions from the search query (URL). That way, if you pass in
115
+ // query params to the URL, the where conditions will be initialized from those and displayed in the UI.
116
+ // Example: /admin/collections/posts?where[or][0][and][0][text][equals]=example%20post
117
+ const [conditions, dispatchConditions] = (0, _react.useReducer)(_reducer.default, searchParams.where, (whereFromSearch)=>{
118
+ if (modifySearchQuery && whereFromSearch) {
119
+ if ((0, _validateWhereQuery.default)(whereFromSearch)) {
120
+ return whereFromSearch.or;
121
+ }
122
+ // Transform the where query to be in the right format. This will transform something simple like [text][equals]=example%20post to the right format
123
+ const transformedWhere = (0, _transformWhereQuery.transformWhereQuery)(whereFromSearch);
124
+ if ((0, _validateWhereQuery.default)(transformedWhere)) {
125
+ return transformedWhere.or;
126
+ }
127
+ console.warn('Invalid where query in URL. Ignoring.');
128
+ }
129
+ return [];
130
+ });
131
+ // This handles updating the search query (URL) when the where conditions change
132
+ // useThrottledEffect(
133
+ // () => {
134
+ // const currentParams = queryString.parse(history.location.search, {
135
+ // depth: 10,
136
+ // ignoreQueryPrefix: true,
137
+ // }) as { where: Where }
138
+ // const paramsToKeep =
139
+ // typeof currentParams?.where === 'object' && 'or' in currentParams.where
140
+ // ? currentParams.where.or.reduce((keptParams, param) => {
141
+ // const newParam = { ...param }
142
+ // if (param.and) {
143
+ // delete newParam.and
144
+ // }
145
+ // return [...keptParams, newParam]
146
+ // }, [])
147
+ // : []
148
+ // const hasNewWhereConditions = conditions.length > 0
149
+ // const newWhereQuery = {
150
+ // ...(typeof currentParams?.where === 'object' &&
151
+ // (validateWhereQuery(currentParams?.where) || !hasNewWhereConditions)
152
+ // ? currentParams.where
153
+ // : {}),
154
+ // or: [...conditions, ...paramsToKeep],
155
+ // }
156
+ // if (handleChange) handleChange(newWhereQuery as Where)
157
+ // const hasExistingConditions =
158
+ // typeof currentParams?.where === 'object' && 'or' in currentParams.where
159
+ // if (
160
+ // modifySearchQuery &&
161
+ // ((hasExistingConditions && !hasNewWhereConditions) || hasNewWhereConditions)
162
+ // ) {
163
+ // history.replace({
164
+ // search: queryString.stringify(
165
+ // {
166
+ // ...currentParams,
167
+ // page: 1,
168
+ // where: newWhereQuery,
169
+ // },
170
+ // { addQueryPrefix: true },
171
+ // ),
172
+ // })
173
+ // }
174
+ // },
175
+ // 500,
176
+ // [conditions, modifySearchQuery, handleChange],
177
+ // )
178
+ return /*#__PURE__*/ _react.default.createElement("div", {
179
+ className: baseClass
180
+ }, conditions.length > 0 && /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement("div", {
181
+ className: `${baseClass}__label`
182
+ }, t('general:filterWhere', {
183
+ label: (0, _translations.getTranslation)(collectionPluralLabel, i18n)
184
+ })), /*#__PURE__*/ _react.default.createElement("ul", {
185
+ className: `${baseClass}__or-filters`
186
+ }, conditions.map((or, orIndex)=>/*#__PURE__*/ _react.default.createElement("li", {
187
+ key: orIndex
188
+ }, orIndex !== 0 && /*#__PURE__*/ _react.default.createElement("div", {
189
+ className: `${baseClass}__label`
190
+ }, t('general:or')), /*#__PURE__*/ _react.default.createElement("ul", {
191
+ className: `${baseClass}__and-filters`
192
+ }, Array.isArray(or?.and) && or.and.map((_, andIndex)=>/*#__PURE__*/ _react.default.createElement("li", {
193
+ key: andIndex
194
+ }, andIndex !== 0 && /*#__PURE__*/ _react.default.createElement("div", {
195
+ className: `${baseClass}__label`
196
+ }, t('general:and')), /*#__PURE__*/ _react.default.createElement(_Condition.default, {
197
+ andIndex: andIndex,
198
+ dispatch: dispatchConditions,
199
+ fields: reducedFields,
200
+ key: andIndex,
201
+ orIndex: orIndex,
202
+ value: conditions[orIndex].and[andIndex]
203
+ }))))))), /*#__PURE__*/ _react.default.createElement(_Button.Button, {
204
+ buttonStyle: "icon-label",
205
+ className: `${baseClass}__add-or`,
206
+ icon: "plus",
207
+ iconPosition: "left",
208
+ iconStyle: "with-border",
209
+ onClick: ()=>{
210
+ if (reducedFields.length > 0) dispatchConditions({
211
+ type: 'add',
212
+ field: reducedFields[0].value
213
+ });
214
+ }
215
+ }, t('general:or'))), conditions.length === 0 && /*#__PURE__*/ _react.default.createElement("div", {
216
+ className: `${baseClass}__no-filters`
217
+ }, /*#__PURE__*/ _react.default.createElement("div", {
218
+ className: `${baseClass}__label`
219
+ }, t('general:noFiltersSet')), /*#__PURE__*/ _react.default.createElement(_Button.Button, {
220
+ buttonStyle: "icon-label",
221
+ className: `${baseClass}__add-first-filter`,
222
+ icon: "plus",
223
+ iconPosition: "left",
224
+ iconStyle: "with-border",
225
+ onClick: ()=>{
226
+ if (reducedFields.length > 0) dispatchConditions({
227
+ type: 'add',
228
+ field: reducedFields[0].value
229
+ });
230
+ }
231
+ }, t('general:addFilter'))));
232
+ };
233
+ const _default = WhereBuilder;
234
+
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9XaGVyZUJ1aWxkZXIvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCBxdWVyeVN0cmluZyBmcm9tICdxcydcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdHJhbnNsYXRpb25zJ1xuaW1wb3J0IHsgZmxhdHRlblRvcExldmVsRmllbGRzIH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVkdWNlciwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuLy8gaW1wb3J0IHR5cGUgeyBXaGVyZSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFByb3BzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgdXNlQ29uZmlnIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL0NvbmZpZydcbi8vIGltcG9ydCB1c2VUaHJvdHRsZWRFZmZlY3QgZnJvbSAnLi4vLi4vaG9va3MvdXNlVGhyb3R0bGVkRWZmZWN0J1xuaW1wb3J0IHsgdXNlU2VhcmNoUGFyYW1zIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL1NlYXJjaFBhcmFtcydcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL1RyYW5zbGF0aW9uJ1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJ1xuaW1wb3J0IENvbmRpdGlvbiBmcm9tICcuL0NvbmRpdGlvbidcbmltcG9ydCBmaWVsZFR5cGVzIGZyb20gJy4vZmllbGQtdHlwZXMnXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcbmltcG9ydCByZWR1Y2VyIGZyb20gJy4vcmVkdWNlcidcbmltcG9ydCB7IHRyYW5zZm9ybVdoZXJlUXVlcnkgfSBmcm9tICcuL3RyYW5zZm9ybVdoZXJlUXVlcnknXG5pbXBvcnQgdmFsaWRhdGVXaGVyZVF1ZXJ5IGZyb20gJy4vdmFsaWRhdGVXaGVyZVF1ZXJ5J1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnd2hlcmUtYnVpbGRlcidcblxuY29uc3QgcmVkdWNlRmllbGRzID0gKGZpZWxkcywgaTE4bikgPT5cbiAgZmxhdHRlblRvcExldmVsRmllbGRzKGZpZWxkcykucmVkdWNlKChyZWR1Y2VkLCBmaWVsZCkgPT4ge1xuICAgIGlmICh0eXBlb2YgZmllbGRUeXBlc1tmaWVsZC50eXBlXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGNvbnN0IG9wZXJhdG9yS2V5cyA9IG5ldyBTZXQoKVxuICAgICAgY29uc3Qgb3BlcmF0b3JzID0gZmllbGRUeXBlc1tmaWVsZC50eXBlXS5vcGVyYXRvcnMucmVkdWNlKChhY2MsIG9wZXJhdG9yKSA9PiB7XG4gICAgICAgIGlmICghb3BlcmF0b3JLZXlzLmhhcyhvcGVyYXRvci52YWx1ZSkpIHtcbiAgICAgICAgICBvcGVyYXRvcktleXMuYWRkKG9wZXJhdG9yLnZhbHVlKVxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIC4uLm9wZXJhdG9yLFxuICAgICAgICAgICAgICBsYWJlbDogaTE4bi50KGBvcGVyYXRvcnM6JHtvcGVyYXRvci5sYWJlbH1gKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2NcbiAgICAgIH0sIFtdKVxuXG4gICAgICBjb25zdCBmb3JtYXR0ZWRGaWVsZCA9IHtcbiAgICAgICAgbGFiZWw6IGdldFRyYW5zbGF0aW9uKGZpZWxkLmxhYmVsIHx8IGZpZWxkLm5hbWUsIGkxOG4pLFxuICAgICAgICB2YWx1ZTogZmllbGQubmFtZSxcbiAgICAgICAgLi4uZmllbGRUeXBlc1tmaWVsZC50eXBlXSxcbiAgICAgICAgb3BlcmF0b3JzLFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIC4uLmZpZWxkLFxuICAgICAgICB9LFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gWy4uLnJlZHVjZWQsIGZvcm1hdHRlZEZpZWxkXVxuICAgIH1cblxuICAgIHJldHVybiByZWR1Y2VkXG4gIH0sIFtdKVxuXG4vKipcbiAqIFRoZSBXaGVyZUJ1aWxkZXIgY29tcG9uZW50IGlzIHVzZWQgdG8gcmVuZGVyIHRoZSBmaWx0ZXIgY29udHJvbHMgZm9yIGEgY29sbGVjdGlvbidzIGxpc3Qgdmlldy5cbiAqIEl0IGlzIHBhcnQgb2YgdGhlIHtAbGluayBMaXN0Q29udHJvbHN9IGNvbXBvbmVudCB3aGljaCBpcyB1c2VkIHRvIHJlbmRlciB0aGUgY29udHJvbHMgKHNlYXJjaCwgZmlsdGVyLCB3aGVyZSkuXG4gKi9cbmNvbnN0IFdoZXJlQnVpbGRlcjogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29sbGVjdGlvblBsdXJhbExhYmVsLCBjb2xsZWN0aW9uU2x1ZywgaGFuZGxlQ2hhbmdlLCBtb2RpZnlTZWFyY2hRdWVyeSA9IHRydWUgfSA9IHByb3BzXG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGNvbnN0IGNvbmZpZyA9IHVzZUNvbmZpZygpXG4gIGNvbnN0IGNvbGxlY3Rpb24gPSBjb25maWcuY29sbGVjdGlvbnMuZmluZCgoYykgPT4gYy5zbHVnID09PSBjb2xsZWN0aW9uU2x1ZylcbiAgY29uc3QgW3JlZHVjZWRGaWVsZHNdID0gdXNlU3RhdGUoKCkgPT4gcmVkdWNlRmllbGRzKGNvbGxlY3Rpb24uZmllbGRzLCBpMThuKSlcblxuICBjb25zdCB7IHNlYXJjaFBhcmFtcyB9ID0gdXNlU2VhcmNoUGFyYW1zKClcblxuICAvLyBUaGlzIGhhbmRsZXMgaW5pdGlhbGl6aW5nIHRoZSB3aGVyZSBjb25kaXRpb25zIGZyb20gdGhlIHNlYXJjaCBxdWVyeSAoVVJMKS4gVGhhdCB3YXksIGlmIHlvdSBwYXNzIGluXG4gIC8vIHF1ZXJ5IHBhcmFtcyB0byB0aGUgVVJMLCB0aGUgd2hlcmUgY29uZGl0aW9ucyB3aWxsIGJlIGluaXRpYWxpemVkIGZyb20gdGhvc2UgYW5kIGRpc3BsYXllZCBpbiB0aGUgVUkuXG4gIC8vIEV4YW1wbGU6IC9hZG1pbi9jb2xsZWN0aW9ucy9wb3N0cz93aGVyZVtvcl1bMF1bYW5kXVswXVt0ZXh0XVtlcXVhbHNdPWV4YW1wbGUlMjBwb3N0XG4gIGNvbnN0IFtjb25kaXRpb25zLCBkaXNwYXRjaENvbmRpdGlvbnNdID0gdXNlUmVkdWNlcihcbiAgICByZWR1Y2VyLFxuICAgIHNlYXJjaFBhcmFtcy53aGVyZSxcbiAgICAod2hlcmVGcm9tU2VhcmNoKSA9PiB7XG4gICAgICBpZiAobW9kaWZ5U2VhcmNoUXVlcnkgJiYgd2hlcmVGcm9tU2VhcmNoKSB7XG4gICAgICAgIGlmICh2YWxpZGF0ZVdoZXJlUXVlcnkod2hlcmVGcm9tU2VhcmNoKSkge1xuICAgICAgICAgIHJldHVybiB3aGVyZUZyb21TZWFyY2gub3JcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgd2hlcmUgcXVlcnkgdG8gYmUgaW4gdGhlIHJpZ2h0IGZvcm1hdC4gVGhpcyB3aWxsIHRyYW5zZm9ybSBzb21ldGhpbmcgc2ltcGxlIGxpa2UgW3RleHRdW2VxdWFsc109ZXhhbXBsZSUyMHBvc3QgdG8gdGhlIHJpZ2h0IGZvcm1hdFxuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZFdoZXJlID0gdHJhbnNmb3JtV2hlcmVRdWVyeSh3aGVyZUZyb21TZWFyY2gpXG5cbiAgICAgICAgaWYgKHZhbGlkYXRlV2hlcmVRdWVyeSh0cmFuc2Zvcm1lZFdoZXJlKSkge1xuICAgICAgICAgIHJldHVybiB0cmFuc2Zvcm1lZFdoZXJlLm9yXG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLndhcm4oJ0ludmFsaWQgd2hlcmUgcXVlcnkgaW4gVVJMLiBJZ25vcmluZy4nKVxuICAgICAgfVxuICAgICAgcmV0dXJuIFtdXG4gICAgfSxcbiAgKVxuXG4gIC8vIFRoaXMgaGFuZGxlcyB1cGRhdGluZyB0aGUgc2VhcmNoIHF1ZXJ5IChVUkwpIHdoZW4gdGhlIHdoZXJlIGNvbmRpdGlvbnMgY2hhbmdlXG4gIC8vIHVzZVRocm90dGxlZEVmZmVjdChcbiAgLy8gICAoKSA9PiB7XG4gIC8vICAgICBjb25zdCBjdXJyZW50UGFyYW1zID0gcXVlcnlTdHJpbmcucGFyc2UoaGlzdG9yeS5sb2NhdGlvbi5zZWFyY2gsIHtcbiAgLy8gICAgICAgZGVwdGg6IDEwLFxuICAvLyAgICAgICBpZ25vcmVRdWVyeVByZWZpeDogdHJ1ZSxcbiAgLy8gICAgIH0pIGFzIHsgd2hlcmU6IFdoZXJlIH1cblxuICAvLyAgICAgY29uc3QgcGFyYW1zVG9LZWVwID1cbiAgLy8gICAgICAgdHlwZW9mIGN1cnJlbnRQYXJhbXM/LndoZXJlID09PSAnb2JqZWN0JyAmJiAnb3InIGluIGN1cnJlbnRQYXJhbXMud2hlcmVcbiAgLy8gICAgICAgICA/IGN1cnJlbnRQYXJhbXMud2hlcmUub3IucmVkdWNlKChrZXB0UGFyYW1zLCBwYXJhbSkgPT4ge1xuICAvLyAgICAgICAgICAgICBjb25zdCBuZXdQYXJhbSA9IHsgLi4ucGFyYW0gfVxuICAvLyAgICAgICAgICAgICBpZiAocGFyYW0uYW5kKSB7XG4gIC8vICAgICAgICAgICAgICAgZGVsZXRlIG5ld1BhcmFtLmFuZFxuICAvLyAgICAgICAgICAgICB9XG4gIC8vICAgICAgICAgICAgIHJldHVybiBbLi4ua2VwdFBhcmFtcywgbmV3UGFyYW1dXG4gIC8vICAgICAgICAgICB9LCBbXSlcbiAgLy8gICAgICAgICA6IFtdXG5cbiAgLy8gICAgIGNvbnN0IGhhc05ld1doZXJlQ29uZGl0aW9ucyA9IGNvbmRpdGlvbnMubGVuZ3RoID4gMFxuXG4gIC8vICAgICBjb25zdCBuZXdXaGVyZVF1ZXJ5ID0ge1xuICAvLyAgICAgICAuLi4odHlwZW9mIGN1cnJlbnRQYXJhbXM/LndoZXJlID09PSAnb2JqZWN0JyAmJlxuICAvLyAgICAgICAodmFsaWRhdGVXaGVyZVF1ZXJ5KGN1cnJlbnRQYXJhbXM/LndoZXJlKSB8fCAhaGFzTmV3V2hlcmVDb25kaXRpb25zKVxuICAvLyAgICAgICAgID8gY3VycmVudFBhcmFtcy53aGVyZVxuICAvLyAgICAgICAgIDoge30pLFxuICAvLyAgICAgICBvcjogWy4uLmNvbmRpdGlvbnMsIC4uLnBhcmFtc1RvS2VlcF0sXG4gIC8vICAgICB9XG5cbiAgLy8gICAgIGlmIChoYW5kbGVDaGFuZ2UpIGhhbmRsZUNoYW5nZShuZXdXaGVyZVF1ZXJ5IGFzIFdoZXJlKVxuXG4gIC8vICAgICBjb25zdCBoYXNFeGlzdGluZ0NvbmRpdGlvbnMgPVxuICAvLyAgICAgICB0eXBlb2YgY3VycmVudFBhcmFtcz8ud2hlcmUgPT09ICdvYmplY3QnICYmICdvcicgaW4gY3VycmVudFBhcmFtcy53aGVyZVxuXG4gIC8vICAgICBpZiAoXG4gIC8vICAgICAgIG1vZGlmeVNlYXJjaFF1ZXJ5ICYmXG4gIC8vICAgICAgICgoaGFzRXhpc3RpbmdDb25kaXRpb25zICYmICFoYXNOZXdXaGVyZUNvbmRpdGlvbnMpIHx8IGhhc05ld1doZXJlQ29uZGl0aW9ucylcbiAgLy8gICAgICkge1xuICAvLyAgICAgICBoaXN0b3J5LnJlcGxhY2Uoe1xuICAvLyAgICAgICAgIHNlYXJjaDogcXVlcnlTdHJpbmcuc3RyaW5naWZ5KFxuICAvLyAgICAgICAgICAge1xuICAvLyAgICAgICAgICAgICAuLi5jdXJyZW50UGFyYW1zLFxuICAvLyAgICAgICAgICAgICBwYWdlOiAxLFxuICAvLyAgICAgICAgICAgICB3aGVyZTogbmV3V2hlcmVRdWVyeSxcbiAgLy8gICAgICAgICAgIH0sXG4gIC8vICAgICAgICAgICB7IGFkZFF1ZXJ5UHJlZml4OiB0cnVlIH0sXG4gIC8vICAgICAgICAgKSxcbiAgLy8gICAgICAgfSlcbiAgLy8gICAgIH1cbiAgLy8gICB9LFxuICAvLyAgIDUwMCxcbiAgLy8gICBbY29uZGl0aW9ucywgbW9kaWZ5U2VhcmNoUXVlcnksIGhhbmRsZUNoYW5nZV0sXG4gIC8vIClcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtiYXNlQ2xhc3N9PlxuICAgICAge2NvbmRpdGlvbnMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbGFiZWxgfT5cbiAgICAgICAgICAgIHt0KCdnZW5lcmFsOmZpbHRlcldoZXJlJywgeyBsYWJlbDogZ2V0VHJhbnNsYXRpb24oY29sbGVjdGlvblBsdXJhbExhYmVsLCBpMThuKSB9KX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8dWwgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19vci1maWx0ZXJzYH0+XG4gICAgICAgICAgICB7Y29uZGl0aW9ucy5tYXAoKG9yLCBvckluZGV4KSA9PiAoXG4gICAgICAgICAgICAgIDxsaSBrZXk9e29ySW5kZXh9PlxuICAgICAgICAgICAgICAgIHtvckluZGV4ICE9PSAwICYmIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19sYWJlbGB9Pnt0KCdnZW5lcmFsOm9yJyl9PC9kaXY+fVxuICAgICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2FuZC1maWx0ZXJzYH0+XG4gICAgICAgICAgICAgICAgICB7QXJyYXkuaXNBcnJheShvcj8uYW5kKSAmJlxuICAgICAgICAgICAgICAgICAgICBvci5hbmQubWFwKChfLCBhbmRJbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxsaSBrZXk9e2FuZEluZGV4fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHthbmRJbmRleCAhPT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19sYWJlbGB9Pnt0KCdnZW5lcmFsOmFuZCcpfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDb25kaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kSW5kZXg9e2FuZEluZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaD17ZGlzcGF0Y2hDb25kaXRpb25zfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHM9e3JlZHVjZWRGaWVsZHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YW5kSW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9ySW5kZXg9e29ySW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtjb25kaXRpb25zW29ySW5kZXhdLmFuZFthbmRJbmRleF19XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwiaWNvbi1sYWJlbFwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2FkZC1vcmB9XG4gICAgICAgICAgICBpY29uPVwicGx1c1wiXG4gICAgICAgICAgICBpY29uUG9zaXRpb249XCJsZWZ0XCJcbiAgICAgICAgICAgIGljb25TdHlsZT1cIndpdGgtYm9yZGVyXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHJlZHVjZWRGaWVsZHMubGVuZ3RoID4gMClcbiAgICAgICAgICAgICAgICBkaXNwYXRjaENvbmRpdGlvbnMoeyB0eXBlOiAnYWRkJywgZmllbGQ6IHJlZHVjZWRGaWVsZHNbMF0udmFsdWUgfSlcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3QoJ2dlbmVyYWw6b3InKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICl9XG4gICAgICB7Y29uZGl0aW9ucy5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbm8tZmlsdGVyc2B9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19sYWJlbGB9Pnt0KCdnZW5lcmFsOm5vRmlsdGVyc1NldCcpfTwvZGl2PlxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwiaWNvbi1sYWJlbFwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2FkZC1maXJzdC1maWx0ZXJgfVxuICAgICAgICAgICAgaWNvbj1cInBsdXNcIlxuICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgICAgICBpY29uU3R5bGU9XCJ3aXRoLWJvcmRlclwiXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChyZWR1Y2VkRmllbGRzLmxlbmd0aCA+IDApXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2hDb25kaXRpb25zKHsgdHlwZTogJ2FkZCcsIGZpZWxkOiByZWR1Y2VkRmllbGRzWzBdLnZhbHVlIH0pXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt0KCdnZW5lcmFsOmFkZEZpbHRlcicpfVxuICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgV2hlcmVCdWlsZGVyXG4iXSwibmFtZXMiOlsiYmFzZUNsYXNzIiwicmVkdWNlRmllbGRzIiwiZmllbGRzIiwiaTE4biIsImZsYXR0ZW5Ub3BMZXZlbEZpZWxkcyIsInJlZHVjZSIsInJlZHVjZWQiLCJmaWVsZCIsImZpZWxkVHlwZXMiLCJ0eXBlIiwib3BlcmF0b3JLZXlzIiwiU2V0Iiwib3BlcmF0b3JzIiwiYWNjIiwib3BlcmF0b3IiLCJoYXMiLCJ2YWx1ZSIsImFkZCIsImxhYmVsIiwidCIsImZvcm1hdHRlZEZpZWxkIiwiZ2V0VHJhbnNsYXRpb24iLCJuYW1lIiwicHJvcHMiLCJXaGVyZUJ1aWxkZXIiLCJjb2xsZWN0aW9uUGx1cmFsTGFiZWwiLCJjb2xsZWN0aW9uU2x1ZyIsImhhbmRsZUNoYW5nZSIsIm1vZGlmeVNlYXJjaFF1ZXJ5IiwidXNlVHJhbnNsYXRpb24iLCJjb25maWciLCJ1c2VDb25maWciLCJjb2xsZWN0aW9uIiwiY29sbGVjdGlvbnMiLCJmaW5kIiwiYyIsInNsdWciLCJyZWR1Y2VkRmllbGRzIiwidXNlU3RhdGUiLCJzZWFyY2hQYXJhbXMiLCJ1c2VTZWFyY2hQYXJhbXMiLCJjb25kaXRpb25zIiwiZGlzcGF0Y2hDb25kaXRpb25zIiwidXNlUmVkdWNlciIsInJlZHVjZXIiLCJ3aGVyZSIsIndoZXJlRnJvbVNlYXJjaCIsInZhbGlkYXRlV2hlcmVRdWVyeSIsIm9yIiwidHJhbnNmb3JtZWRXaGVyZSIsInRyYW5zZm9ybVdoZXJlUXVlcnkiLCJjb25zb2xlIiwid2FybiIsImRpdiIsImNsYXNzTmFtZSIsImxlbmd0aCIsIlJlYWN0IiwiRnJhZ21lbnQiLCJ1bCIsIm1hcCIsIm9ySW5kZXgiLCJsaSIsImtleSIsIkFycmF5IiwiaXNBcnJheSIsImFuZCIsIl8iLCJhbmRJbmRleCIsIkNvbmRpdGlvbiIsImRpc3BhdGNoIiwiQnV0dG9uIiwiYnV0dG9uU3R5bGUiLCJpY29uIiwiaWNvblBvc2l0aW9uIiwiaWNvblN0eWxlIiwib25DbGljayJdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCOzs7OzsrQkEwTi9COzs7ZUFBQTs7OzhCQXpOK0I7MkJBQ087K0RBQ007d0JBS2xCOzhCQUVNOzZCQUNEO3dCQUNSO2tFQUNEO21FQUNDO1FBQ2hCO2dFQUNhO3FDQUNnQjsyRUFDTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFL0IsTUFBTUEsWUFBWTtBQUVsQixNQUFNQyxlQUFlLENBQUNDLFFBQVFDLE9BQzVCQyxJQUFBQSxnQ0FBcUIsRUFBQ0YsUUFBUUcsTUFBTSxDQUFDLENBQUNDLFNBQVNDO1FBQzdDLElBQUksT0FBT0MsbUJBQVUsQ0FBQ0QsTUFBTUUsSUFBSSxDQUFDLEtBQUssVUFBVTtZQUM5QyxNQUFNQyxlQUFlLElBQUlDO1lBQ3pCLE1BQU1DLFlBQVlKLG1CQUFVLENBQUNELE1BQU1FLElBQUksQ0FBQyxDQUFDRyxTQUFTLENBQUNQLE1BQU0sQ0FBQyxDQUFDUSxLQUFLQztnQkFDOUQsSUFBSSxDQUFDSixhQUFhSyxHQUFHLENBQUNELFNBQVNFLEtBQUssR0FBRztvQkFDckNOLGFBQWFPLEdBQUcsQ0FBQ0gsU0FBU0UsS0FBSztvQkFDL0IsT0FBTzsyQkFDRkg7d0JBQ0g7NEJBQ0UsR0FBR0MsUUFBUTs0QkFDWEksT0FBT2YsS0FBS2dCLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRUwsU0FBU0ksS0FBSyxDQUFDLENBQUM7d0JBQzdDO3FCQUNEO2dCQUNIO2dCQUNBLE9BQU9MO1lBQ1QsR0FBRyxFQUFFO1lBRUwsTUFBTU8saUJBQWlCO2dCQUNyQkYsT0FBT0csSUFBQUEsNEJBQWMsRUFBQ2QsTUFBTVcsS0FBSyxJQUFJWCxNQUFNZSxJQUFJLEVBQUVuQjtnQkFDakRhLE9BQU9ULE1BQU1lLElBQUk7Z0JBQ2pCLEdBQUdkLG1CQUFVLENBQUNELE1BQU1FLElBQUksQ0FBQztnQkFDekJHO2dCQUNBVyxPQUFPO29CQUNMLEdBQUdoQixLQUFLO2dCQUNWO1lBQ0Y7WUFFQSxPQUFPO21CQUFJRDtnQkFBU2M7YUFBZTtRQUNyQztRQUVBLE9BQU9kO0lBQ1QsR0FBRyxFQUFFO0FBRVA7OztDQUdDLEdBQ0QsTUFBTWtCLGVBQWdDLENBQUNEO0lBQ3JDLE1BQU0sRUFBRUUscUJBQXFCLEVBQUVDLGNBQWMsRUFBRUMsWUFBWSxFQUFFQyxvQkFBb0IsSUFBSSxFQUFFLEdBQUdMO0lBQzFGLE1BQU0sRUFBRXBCLElBQUksRUFBRWdCLENBQUMsRUFBRSxHQUFHVSxJQUFBQSwyQkFBYztJQUVsQyxNQUFNQyxTQUFTQyxJQUFBQSxpQkFBUztJQUN4QixNQUFNQyxhQUFhRixPQUFPRyxXQUFXLENBQUNDLElBQUksQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxJQUFJLEtBQUtWO0lBQzdELE1BQU0sQ0FBQ1csY0FBYyxHQUFHQyxJQUFBQSxlQUFRLEVBQUMsSUFBTXJDLGFBQWErQixXQUFXOUIsTUFBTSxFQUFFQztJQUV2RSxNQUFNLEVBQUVvQyxZQUFZLEVBQUUsR0FBR0MsSUFBQUEsNkJBQWU7SUFFeEMsdUdBQXVHO0lBQ3ZHLHdHQUF3RztJQUN4RyxzRkFBc0Y7SUFDdEYsTUFBTSxDQUFDQyxZQUFZQyxtQkFBbUIsR0FBR0MsSUFBQUEsaUJBQVUsRUFDakRDLGdCQUFPLEVBQ1BMLGFBQWFNLEtBQUssRUFDbEIsQ0FBQ0M7UUFDQyxJQUFJbEIscUJBQXFCa0IsaUJBQWlCO1lBQ3hDLElBQUlDLElBQUFBLDJCQUFrQixFQUFDRCxrQkFBa0I7Z0JBQ3ZDLE9BQU9BLGdCQUFnQkUsRUFBRTtZQUMzQjtZQUVBLG1KQUFtSjtZQUNuSixNQUFNQyxtQkFBbUJDLElBQUFBLHdDQUFtQixFQUFDSjtZQUU3QyxJQUFJQyxJQUFBQSwyQkFBa0IsRUFBQ0UsbUJBQW1CO2dCQUN4QyxPQUFPQSxpQkFBaUJELEVBQUU7WUFDNUI7WUFFQUcsUUFBUUMsSUFBSSxDQUFDO1FBQ2Y7UUFDQSxPQUFPLEVBQUU7SUFDWDtJQUdGLGdGQUFnRjtJQUNoRixzQkFBc0I7SUFDdEIsWUFBWTtJQUNaLHlFQUF5RTtJQUN6RSxtQkFBbUI7SUFDbkIsaUNBQWlDO0lBQ2pDLDZCQUE2QjtJQUU3QiwyQkFBMkI7SUFDM0IsZ0ZBQWdGO0lBQ2hGLG1FQUFtRTtJQUNuRSw0Q0FBNEM7SUFDNUMsK0JBQStCO0lBQy9CLG9DQUFvQztJQUNwQyxnQkFBZ0I7SUFDaEIsK0NBQStDO0lBQy9DLG1CQUFtQjtJQUNuQixlQUFlO0lBRWYsMERBQTBEO0lBRTFELDhCQUE4QjtJQUM5Qix3REFBd0Q7SUFDeEQsNkVBQTZFO0lBQzdFLGdDQUFnQztJQUNoQyxpQkFBaUI7SUFDakIsOENBQThDO0lBQzlDLFFBQVE7SUFFUiw2REFBNkQ7SUFFN0Qsb0NBQW9DO0lBQ3BDLGdGQUFnRjtJQUVoRixXQUFXO0lBQ1gsNkJBQTZCO0lBQzdCLHFGQUFxRjtJQUNyRixVQUFVO0lBQ1YsMEJBQTBCO0lBQzFCLHlDQUF5QztJQUN6QyxjQUFjO0lBQ2QsZ0NBQWdDO0lBQ2hDLHVCQUF1QjtJQUN2QixvQ0FBb0M7SUFDcEMsZUFBZTtJQUNmLHNDQUFzQztJQUN0QyxhQUFhO0lBQ2IsV0FBVztJQUNYLFFBQVE7SUFDUixPQUFPO0lBQ1AsU0FBUztJQUNULG1EQUFtRDtJQUNuRCxJQUFJO0lBRUoscUJBQ0UsNkJBQUNDO1FBQUlDLFdBQVd0RDtPQUNieUMsV0FBV2MsTUFBTSxHQUFHLG1CQUNuQiw2QkFBQ0MsY0FBSyxDQUFDQyxRQUFRLHNCQUNiLDZCQUFDSjtRQUFJQyxXQUFXLENBQUMsRUFBRXRELFVBQVUsT0FBTyxDQUFDO09BQ2xDbUIsRUFBRSx1QkFBdUI7UUFBRUQsT0FBT0csSUFBQUEsNEJBQWMsRUFBQ0ksdUJBQXVCdEI7SUFBTSxtQkFFakYsNkJBQUN1RDtRQUFHSixXQUFXLENBQUMsRUFBRXRELFVBQVUsWUFBWSxDQUFDO09BQ3RDeUMsV0FBV2tCLEdBQUcsQ0FBQyxDQUFDWCxJQUFJWSx3QkFDbkIsNkJBQUNDO1lBQUdDLEtBQUtGO1dBQ05BLFlBQVksbUJBQUssNkJBQUNQO1lBQUlDLFdBQVcsQ0FBQyxFQUFFdEQsVUFBVSxPQUFPLENBQUM7V0FBR21CLEVBQUUsOEJBQzVELDZCQUFDdUM7WUFBR0osV0FBVyxDQUFDLEVBQUV0RCxVQUFVLGFBQWEsQ0FBQztXQUN2QytELE1BQU1DLE9BQU8sQ0FBQ2hCLElBQUlpQixRQUNqQmpCLEdBQUdpQixHQUFHLENBQUNOLEdBQUcsQ0FBQyxDQUFDTyxHQUFHQyx5QkFDYiw2QkFBQ047Z0JBQUdDLEtBQUtLO2VBQ05BLGFBQWEsbUJBQ1osNkJBQUNkO2dCQUFJQyxXQUFXLENBQUMsRUFBRXRELFVBQVUsT0FBTyxDQUFDO2VBQUdtQixFQUFFLCtCQUU1Qyw2QkFBQ2lELGtCQUFTO2dCQUNSRCxVQUFVQTtnQkFDVkUsVUFBVTNCO2dCQUNWeEMsUUFBUW1DO2dCQUNSeUIsS0FBS0s7Z0JBQ0xQLFNBQVNBO2dCQUNUNUMsT0FBT3lCLFVBQVUsQ0FBQ21CLFFBQVEsQ0FBQ0ssR0FBRyxDQUFDRSxTQUFTO29DQVF4RCw2QkFBQ0csY0FBTTtRQUNMQyxhQUFZO1FBQ1pqQixXQUFXLENBQUMsRUFBRXRELFVBQVUsUUFBUSxDQUFDO1FBQ2pDd0UsTUFBSztRQUNMQyxjQUFhO1FBQ2JDLFdBQVU7UUFDVkMsU0FBUztZQUNQLElBQUl0QyxjQUFja0IsTUFBTSxHQUFHLEdBQ3pCYixtQkFBbUI7Z0JBQUVqQyxNQUFNO2dCQUFPRixPQUFPOEIsYUFBYSxDQUFDLEVBQUUsQ0FBQ3JCLEtBQUs7WUFBQztRQUNwRTtPQUVDRyxFQUFFLGlCQUlSc0IsV0FBV2MsTUFBTSxLQUFLLG1CQUNyQiw2QkFBQ0Y7UUFBSUMsV0FBVyxDQUFDLEVBQUV0RCxVQUFVLFlBQVksQ0FBQztxQkFDeEMsNkJBQUNxRDtRQUFJQyxXQUFXLENBQUMsRUFBRXRELFVBQVUsT0FBTyxDQUFDO09BQUdtQixFQUFFLHdDQUMxQyw2QkFBQ21ELGNBQU07UUFDTEMsYUFBWTtRQUNaakIsV0FBVyxDQUFDLEVBQUV0RCxVQUFVLGtCQUFrQixDQUFDO1FBQzNDd0UsTUFBSztRQUNMQyxjQUFhO1FBQ2JDLFdBQVU7UUFDVkMsU0FBUztZQUNQLElBQUl0QyxjQUFja0IsTUFBTSxHQUFHLEdBQ3pCYixtQkFBbUI7Z0JBQUVqQyxNQUFNO2dCQUFPRixPQUFPOEIsYUFBYSxDQUFDLEVBQUUsQ0FBQ3JCLEtBQUs7WUFBQztRQUNwRTtPQUVDRyxFQUFFO0FBTWY7TUFFQSxXQUFlSyJ9
@@ -0,0 +1,88 @@
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 reducer = (state, action)=>{
12
+ const newState = [
13
+ ...state
14
+ ];
15
+ const { andIndex, orIndex } = action;
16
+ switch(action.type){
17
+ case 'add':
18
+ {
19
+ const { field, relation } = action;
20
+ if (relation === 'and') {
21
+ newState[orIndex].and.splice(andIndex, 0, {
22
+ [field]: {}
23
+ });
24
+ return newState;
25
+ }
26
+ return [
27
+ ...newState,
28
+ {
29
+ and: [
30
+ {
31
+ [field]: {}
32
+ }
33
+ ]
34
+ }
35
+ ];
36
+ }
37
+ case 'remove':
38
+ {
39
+ newState[orIndex].and.splice(andIndex, 1);
40
+ if (newState[orIndex].and.length === 0) {
41
+ newState.splice(orIndex, 1);
42
+ }
43
+ return newState;
44
+ }
45
+ case 'update':
46
+ {
47
+ const { field, operator, value } = action;
48
+ if (typeof newState[orIndex].and[andIndex] === 'object') {
49
+ newState[orIndex].and[andIndex] = {
50
+ ...newState[orIndex].and[andIndex]
51
+ };
52
+ const [existingFieldName, existingCondition] = Object.entries(newState[orIndex].and[andIndex])[0] || [
53
+ undefined,
54
+ undefined
55
+ ];
56
+ if (operator) {
57
+ newState[orIndex].and[andIndex] = {
58
+ [existingFieldName]: {
59
+ [operator]: Object.values(existingCondition)[0]
60
+ }
61
+ };
62
+ }
63
+ if (field) {
64
+ newState[orIndex].and[andIndex] = {
65
+ [field]: operator ? {
66
+ [operator]: value
67
+ } : {}
68
+ };
69
+ }
70
+ if (value !== undefined) {
71
+ newState[orIndex].and[andIndex] = {
72
+ [existingFieldName]: Object.keys(existingCondition)[0] ? {
73
+ [Object.keys(existingCondition)[0]]: value
74
+ } : {}
75
+ };
76
+ }
77
+ }
78
+ return newState;
79
+ }
80
+ default:
81
+ {
82
+ return newState;
83
+ }
84
+ }
85
+ };
86
+ const _default = reducer;
87
+
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9XaGVyZUJ1aWxkZXIvcmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFdoZXJlIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHR5cGUgeyBBY3Rpb24gfSBmcm9tICcuL3R5cGVzJ1xuXG5jb25zdCByZWR1Y2VyID0gKHN0YXRlOiBXaGVyZVtdLCBhY3Rpb246IEFjdGlvbik6IFdoZXJlW10gPT4ge1xuICBjb25zdCBuZXdTdGF0ZSA9IFsuLi5zdGF0ZV1cblxuICBjb25zdCB7IGFuZEluZGV4LCBvckluZGV4IH0gPSBhY3Rpb25cblxuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSAnYWRkJzoge1xuICAgICAgY29uc3QgeyBmaWVsZCwgcmVsYXRpb24gfSA9IGFjdGlvblxuXG4gICAgICBpZiAocmVsYXRpb24gPT09ICdhbmQnKSB7XG4gICAgICAgIG5ld1N0YXRlW29ySW5kZXhdLmFuZC5zcGxpY2UoYW5kSW5kZXgsIDAsIHsgW2ZpZWxkXToge30gfSlcbiAgICAgICAgcmV0dXJuIG5ld1N0YXRlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgICB7XG4gICAgICAgICAgYW5kOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFtmaWVsZF06IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXVxuICAgIH1cblxuICAgIGNhc2UgJ3JlbW92ZSc6IHtcbiAgICAgIG5ld1N0YXRlW29ySW5kZXhdLmFuZC5zcGxpY2UoYW5kSW5kZXgsIDEpXG5cbiAgICAgIGlmIChuZXdTdGF0ZVtvckluZGV4XS5hbmQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIG5ld1N0YXRlLnNwbGljZShvckluZGV4LCAxKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3U3RhdGVcbiAgICB9XG5cbiAgICBjYXNlICd1cGRhdGUnOiB7XG4gICAgICBjb25zdCB7IGZpZWxkLCBvcGVyYXRvciwgdmFsdWUgfSA9IGFjdGlvblxuXG4gICAgICBpZiAodHlwZW9mIG5ld1N0YXRlW29ySW5kZXhdLmFuZFthbmRJbmRleF0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgIG5ld1N0YXRlW29ySW5kZXhdLmFuZFthbmRJbmRleF0gPSB7XG4gICAgICAgICAgLi4ubmV3U3RhdGVbb3JJbmRleF0uYW5kW2FuZEluZGV4XSxcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IFtleGlzdGluZ0ZpZWxkTmFtZSwgZXhpc3RpbmdDb25kaXRpb25dID0gT2JqZWN0LmVudHJpZXMoXG4gICAgICAgICAgbmV3U3RhdGVbb3JJbmRleF0uYW5kW2FuZEluZGV4XSxcbiAgICAgICAgKVswXSB8fCBbdW5kZWZpbmVkLCB1bmRlZmluZWRdXG5cbiAgICAgICAgaWYgKG9wZXJhdG9yKSB7XG4gICAgICAgICAgbmV3U3RhdGVbb3JJbmRleF0uYW5kW2FuZEluZGV4XSA9IHtcbiAgICAgICAgICAgIFtleGlzdGluZ0ZpZWxkTmFtZV06IHtcbiAgICAgICAgICAgICAgW29wZXJhdG9yXTogT2JqZWN0LnZhbHVlcyhleGlzdGluZ0NvbmRpdGlvbilbMF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWVsZCkge1xuICAgICAgICAgIG5ld1N0YXRlW29ySW5kZXhdLmFuZFthbmRJbmRleF0gPSB7XG4gICAgICAgICAgICBbZmllbGRdOiBvcGVyYXRvciA/IHsgW29wZXJhdG9yXTogdmFsdWUgfSA6IHt9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgbmV3U3RhdGVbb3JJbmRleF0uYW5kW2FuZEluZGV4XSA9IHtcbiAgICAgICAgICAgIFtleGlzdGluZ0ZpZWxkTmFtZV06IE9iamVjdC5rZXlzKGV4aXN0aW5nQ29uZGl0aW9uKVswXVxuICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIFtPYmplY3Qua2V5cyhleGlzdGluZ0NvbmRpdGlvbilbMF1dOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDoge30sXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXdTdGF0ZVxuICAgIH1cblxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiBuZXdTdGF0ZVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCByZWR1Y2VyXG4iXSwibmFtZXMiOlsicmVkdWNlciIsInN0YXRlIiwiYWN0aW9uIiwibmV3U3RhdGUiLCJhbmRJbmRleCIsIm9ySW5kZXgiLCJ0eXBlIiwiZmllbGQiLCJyZWxhdGlvbiIsImFuZCIsInNwbGljZSIsImxlbmd0aCIsIm9wZXJhdG9yIiwidmFsdWUiLCJleGlzdGluZ0ZpZWxkTmFtZSIsImV4aXN0aW5nQ29uZGl0aW9uIiwiT2JqZWN0IiwiZW50cmllcyIsInVuZGVmaW5lZCIsInZhbHVlcyIsImtleXMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBc0ZBOzs7ZUFBQTs7O0FBbEZBLE1BQU1BLFVBQVUsQ0FBQ0MsT0FBZ0JDO0lBQy9CLE1BQU1DLFdBQVc7V0FBSUY7S0FBTTtJQUUzQixNQUFNLEVBQUVHLFFBQVEsRUFBRUMsT0FBTyxFQUFFLEdBQUdIO0lBRTlCLE9BQVFBLE9BQU9JLElBQUk7UUFDakIsS0FBSztZQUFPO2dCQUNWLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxRQUFRLEVBQUUsR0FBR047Z0JBRTVCLElBQUlNLGFBQWEsT0FBTztvQkFDdEJMLFFBQVEsQ0FBQ0UsUUFBUSxDQUFDSSxHQUFHLENBQUNDLE1BQU0sQ0FBQ04sVUFBVSxHQUFHO3dCQUFFLENBQUNHLE1BQU0sRUFBRSxDQUFDO29CQUFFO29CQUN4RCxPQUFPSjtnQkFDVDtnQkFFQSxPQUFPO3VCQUNGQTtvQkFDSDt3QkFDRU0sS0FBSzs0QkFDSDtnQ0FDRSxDQUFDRixNQUFNLEVBQUUsQ0FBQzs0QkFDWjt5QkFDRDtvQkFDSDtpQkFDRDtZQUNIO1FBRUEsS0FBSztZQUFVO2dCQUNiSixRQUFRLENBQUNFLFFBQVEsQ0FBQ0ksR0FBRyxDQUFDQyxNQUFNLENBQUNOLFVBQVU7Z0JBRXZDLElBQUlELFFBQVEsQ0FBQ0UsUUFBUSxDQUFDSSxHQUFHLENBQUNFLE1BQU0sS0FBSyxHQUFHO29CQUN0Q1IsU0FBU08sTUFBTSxDQUFDTCxTQUFTO2dCQUMzQjtnQkFFQSxPQUFPRjtZQUNUO1FBRUEsS0FBSztZQUFVO2dCQUNiLE1BQU0sRUFBRUksS0FBSyxFQUFFSyxRQUFRLEVBQUVDLEtBQUssRUFBRSxHQUFHWDtnQkFFbkMsSUFBSSxPQUFPQyxRQUFRLENBQUNFLFFBQVEsQ0FBQ0ksR0FBRyxDQUFDTCxTQUFTLEtBQUssVUFBVTtvQkFDdkRELFFBQVEsQ0FBQ0UsUUFBUSxDQUFDSSxHQUFHLENBQUNMLFNBQVMsR0FBRzt3QkFDaEMsR0FBR0QsUUFBUSxDQUFDRSxRQUFRLENBQUNJLEdBQUcsQ0FBQ0wsU0FBUztvQkFDcEM7b0JBRUEsTUFBTSxDQUFDVSxtQkFBbUJDLGtCQUFrQixHQUFHQyxPQUFPQyxPQUFPLENBQzNEZCxRQUFRLENBQUNFLFFBQVEsQ0FBQ0ksR0FBRyxDQUFDTCxTQUFTLENBQ2hDLENBQUMsRUFBRSxJQUFJO3dCQUFDYzt3QkFBV0E7cUJBQVU7b0JBRTlCLElBQUlOLFVBQVU7d0JBQ1pULFFBQVEsQ0FBQ0UsUUFBUSxDQUFDSSxHQUFHLENBQUNMLFNBQVMsR0FBRzs0QkFDaEMsQ0FBQ1Usa0JBQWtCLEVBQUU7Z0NBQ25CLENBQUNGLFNBQVMsRUFBRUksT0FBT0csTUFBTSxDQUFDSixrQkFBa0IsQ0FBQyxFQUFFOzRCQUNqRDt3QkFDRjtvQkFDRjtvQkFFQSxJQUFJUixPQUFPO3dCQUNUSixRQUFRLENBQUNFLFFBQVEsQ0FBQ0ksR0FBRyxDQUFDTCxTQUFTLEdBQUc7NEJBQ2hDLENBQUNHLE1BQU0sRUFBRUssV0FBVztnQ0FBRSxDQUFDQSxTQUFTLEVBQUVDOzRCQUFNLElBQUksQ0FBQzt3QkFDL0M7b0JBQ0Y7b0JBRUEsSUFBSUEsVUFBVUssV0FBVzt3QkFDdkJmLFFBQVEsQ0FBQ0UsUUFBUSxDQUFDSSxHQUFHLENBQUNMLFNBQVMsR0FBRzs0QkFDaEMsQ0FBQ1Usa0JBQWtCLEVBQUVFLE9BQU9JLElBQUksQ0FBQ0wsa0JBQWtCLENBQUMsRUFBRSxHQUNsRDtnQ0FDRSxDQUFDQyxPQUFPSSxJQUFJLENBQUNMLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxFQUFFRjs0QkFDdkMsSUFDQSxDQUFDO3dCQUNQO29CQUNGO2dCQUNGO2dCQUVBLE9BQU9WO1lBQ1Q7UUFFQTtZQUFTO2dCQUNQLE9BQU9BO1lBQ1Q7SUFDRjtBQUNGO01BRUEsV0FBZUgifQ==
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "transformWhereQuery", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return transformWhereQuery;
9
+ }
10
+ });
11
+ const transformWhereQuery = (whereQuery)=>{
12
+ if (!whereQuery) {
13
+ return {};
14
+ }
15
+ // Check if 'whereQuery' has 'or' field but no 'and'. This is the case for "correct" queries
16
+ if (whereQuery.or && !whereQuery.and) {
17
+ return {
18
+ or: whereQuery.or.map((query)=>{
19
+ // ...but if the or query does not have an and, we need to add it
20
+ if (!query.and) {
21
+ return {
22
+ and: [
23
+ query
24
+ ]
25
+ };
26
+ }
27
+ return query;
28
+ })
29
+ };
30
+ }
31
+ // Check if 'whereQuery' has 'and' field but no 'or'.
32
+ if (whereQuery.and && !whereQuery.or) {
33
+ return {
34
+ or: [
35
+ {
36
+ and: whereQuery.and
37
+ }
38
+ ]
39
+ };
40
+ }
41
+ // Check if 'whereQuery' has neither 'or' nor 'and'.
42
+ if (!whereQuery.or && !whereQuery.and) {
43
+ return {
44
+ or: [
45
+ {
46
+ and: [
47
+ whereQuery
48
+ ]
49
+ }
50
+ ]
51
+ };
52
+ }
53
+ // If 'whereQuery' has 'or' and 'and', just return it as it is.
54
+ return whereQuery;
55
+ };
56
+
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9XaGVyZUJ1aWxkZXIvdHJhbnNmb3JtV2hlcmVRdWVyeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFdoZXJlIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuLyoqXG4gKiBTb21ldGhpbmcgbGlrZSBbb3JdWzBdW2FuZF1bMF1bdGV4dF1bZXF1YWxzXT1leGFtcGxlJTIwcG9zdCB3aWxsIHdvcmsgYW5kIHBhc3MgdGhyb3VnaCB0aGUgdmFsaWRhdGVXaGVyZVF1ZXJ5IGNoZWNrLlxuICogSG93ZXZlciwgc29tZXRoaW5nIGxpa2UgW3RleHRdW2VxdWFsc109ZXhhbXBsZSUyMHBvc3Qgd2lsbCBub3Qgd29yayBhbmQgd2lsbCBmYWlsIHRoZSB2YWxpZGF0ZVdoZXJlUXVlcnkgY2hlY2ssXG4gKiBldmVuIHRob3VnaCBpdCBpcyBhIHZhbGlkIFdoZXJlIHF1ZXJ5LiBUaGlzIG5lZWRzIHRvIGJlIHRyYW5zZm9ybWVkIGhlcmUuXG4gKi9cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1XaGVyZVF1ZXJ5ID0gKHdoZXJlUXVlcnkpOiBXaGVyZSA9PiB7XG4gIGlmICghd2hlcmVRdWVyeSkge1xuICAgIHJldHVybiB7fVxuICB9XG4gIC8vIENoZWNrIGlmICd3aGVyZVF1ZXJ5JyBoYXMgJ29yJyBmaWVsZCBidXQgbm8gJ2FuZCcuIFRoaXMgaXMgdGhlIGNhc2UgZm9yIFwiY29ycmVjdFwiIHF1ZXJpZXNcbiAgaWYgKHdoZXJlUXVlcnkub3IgJiYgIXdoZXJlUXVlcnkuYW5kKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9yOiB3aGVyZVF1ZXJ5Lm9yLm1hcCgocXVlcnkpID0+IHtcbiAgICAgICAgLy8gLi4uYnV0IGlmIHRoZSBvciBxdWVyeSBkb2VzIG5vdCBoYXZlIGFuIGFuZCwgd2UgbmVlZCB0byBhZGQgaXRcbiAgICAgICAgaWYgKCFxdWVyeS5hbmQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYW5kOiBbcXVlcnldLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcXVlcnlcbiAgICAgIH0pLFxuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmICd3aGVyZVF1ZXJ5JyBoYXMgJ2FuZCcgZmllbGQgYnV0IG5vICdvcicuXG4gIGlmICh3aGVyZVF1ZXJ5LmFuZCAmJiAhd2hlcmVRdWVyeS5vcikge1xuICAgIHJldHVybiB7XG4gICAgICBvcjogW1xuICAgICAgICB7XG4gICAgICAgICAgYW5kOiB3aGVyZVF1ZXJ5LmFuZCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgJ3doZXJlUXVlcnknIGhhcyBuZWl0aGVyICdvcicgbm9yICdhbmQnLlxuICBpZiAoIXdoZXJlUXVlcnkub3IgJiYgIXdoZXJlUXVlcnkuYW5kKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9yOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhbmQ6IFt3aGVyZVF1ZXJ5XSwgLy8gdG9wLWxldmVsIHNpYmxpbmdzIGFyZSBjb25zaWRlcmVkICdhbmQnXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH1cbiAgfVxuXG4gIC8vIElmICd3aGVyZVF1ZXJ5JyBoYXMgJ29yJyBhbmQgJ2FuZCcsIGp1c3QgcmV0dXJuIGl0IGFzIGl0IGlzLlxuICByZXR1cm4gd2hlcmVRdWVyeVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybVdoZXJlUXVlcnkiLCJ3aGVyZVF1ZXJ5Iiwib3IiLCJhbmQiLCJtYXAiLCJxdWVyeSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFPYUE7OztlQUFBQTs7O0FBQU4sTUFBTUEsc0JBQXNCLENBQUNDO0lBQ2xDLElBQUksQ0FBQ0EsWUFBWTtRQUNmLE9BQU8sQ0FBQztJQUNWO0lBQ0EsNEZBQTRGO0lBQzVGLElBQUlBLFdBQVdDLEVBQUUsSUFBSSxDQUFDRCxXQUFXRSxHQUFHLEVBQUU7UUFDcEMsT0FBTztZQUNMRCxJQUFJRCxXQUFXQyxFQUFFLENBQUNFLEdBQUcsQ0FBQyxDQUFDQztnQkFDckIsaUVBQWlFO2dCQUNqRSxJQUFJLENBQUNBLE1BQU1GLEdBQUcsRUFBRTtvQkFDZCxPQUFPO3dCQUNMQSxLQUFLOzRCQUFDRTt5QkFBTTtvQkFDZDtnQkFDRjtnQkFDQSxPQUFPQTtZQUNUO1FBQ0Y7SUFDRjtJQUVBLHFEQUFxRDtJQUNyRCxJQUFJSixXQUFXRSxHQUFHLElBQUksQ0FBQ0YsV0FBV0MsRUFBRSxFQUFFO1FBQ3BDLE9BQU87WUFDTEEsSUFBSTtnQkFDRjtvQkFDRUMsS0FBS0YsV0FBV0UsR0FBRztnQkFDckI7YUFDRDtRQUNIO0lBQ0Y7SUFFQSxvREFBb0Q7SUFDcEQsSUFBSSxDQUFDRixXQUFXQyxFQUFFLElBQUksQ0FBQ0QsV0FBV0UsR0FBRyxFQUFFO1FBQ3JDLE9BQU87WUFDTEQsSUFBSTtnQkFDRjtvQkFDRUMsS0FBSzt3QkFBQ0Y7cUJBQVc7Z0JBQ25CO2FBQ0Q7UUFDSDtJQUNGO0lBRUEsK0RBQStEO0lBQy9ELE9BQU9BO0FBQ1QifQ==
@@ -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,46 @@
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 _types = require("payload/types");
12
+ const validateWhereQuery = (whereQuery)=>{
13
+ if (whereQuery?.or?.length > 0 && whereQuery?.or?.[0]?.and && whereQuery?.or?.[0]?.and?.length > 0) {
14
+ // At this point we know that the whereQuery has 'or' and 'and' fields,
15
+ // now let's check the structure and content of these fields.
16
+ const isValid = whereQuery.or.every((orQuery)=>{
17
+ if (orQuery.and && Array.isArray(orQuery.and)) {
18
+ return orQuery.and.every((andQuery)=>{
19
+ if (typeof andQuery !== 'object') {
20
+ return false;
21
+ }
22
+ const andKeys = Object.keys(andQuery);
23
+ // If there are no keys, it's not a valid WhereField.
24
+ if (andKeys.length === 0) {
25
+ return false;
26
+ }
27
+ // eslint-disable-next-line no-restricted-syntax
28
+ for (const key of andKeys){
29
+ const operator = Object.keys(andQuery[key])[0];
30
+ // Check if the key is a valid Operator.
31
+ if (!operator || !_types.validOperators.includes(operator)) {
32
+ return false;
33
+ }
34
+ }
35
+ return true;
36
+ });
37
+ }
38
+ return false;
39
+ });
40
+ return isValid;
41
+ }
42
+ return false;
43
+ };
44
+ const _default = validateWhereQuery;
45
+
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9XaGVyZUJ1aWxkZXIvdmFsaWRhdGVXaGVyZVF1ZXJ5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT3BlcmF0b3IsIFdoZXJlIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgdmFsaWRPcGVyYXRvcnMgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5jb25zdCB2YWxpZGF0ZVdoZXJlUXVlcnkgPSAod2hlcmVRdWVyeSk6IHdoZXJlUXVlcnkgaXMgV2hlcmUgPT4ge1xuICBpZiAoXG4gICAgd2hlcmVRdWVyeT8ub3I/Lmxlbmd0aCA+IDAgJiZcbiAgICB3aGVyZVF1ZXJ5Py5vcj8uWzBdPy5hbmQgJiZcbiAgICB3aGVyZVF1ZXJ5Py5vcj8uWzBdPy5hbmQ/Lmxlbmd0aCA+IDBcbiAgKSB7XG4gICAgLy8gQXQgdGhpcyBwb2ludCB3ZSBrbm93IHRoYXQgdGhlIHdoZXJlUXVlcnkgaGFzICdvcicgYW5kICdhbmQnIGZpZWxkcyxcbiAgICAvLyBub3cgbGV0J3MgY2hlY2sgdGhlIHN0cnVjdHVyZSBhbmQgY29udGVudCBvZiB0aGVzZSBmaWVsZHMuXG5cbiAgICBjb25zdCBpc1ZhbGlkID0gd2hlcmVRdWVyeS5vci5ldmVyeSgob3JRdWVyeSkgPT4ge1xuICAgICAgaWYgKG9yUXVlcnkuYW5kICYmIEFycmF5LmlzQXJyYXkob3JRdWVyeS5hbmQpKSB7XG4gICAgICAgIHJldHVybiBvclF1ZXJ5LmFuZC5ldmVyeSgoYW5kUXVlcnkpID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIGFuZFF1ZXJ5ICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGFuZEtleXMgPSBPYmplY3Qua2V5cyhhbmRRdWVyeSlcbiAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbm8ga2V5cywgaXQncyBub3QgYSB2YWxpZCBXaGVyZUZpZWxkLlxuICAgICAgICAgIGlmIChhbmRLZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGFuZEtleXMpIHtcbiAgICAgICAgICAgIGNvbnN0IG9wZXJhdG9yID0gT2JqZWN0LmtleXMoYW5kUXVlcnlba2V5XSlbMF1cbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBrZXkgaXMgYSB2YWxpZCBPcGVyYXRvci5cbiAgICAgICAgICAgIGlmICghb3BlcmF0b3IgfHwgIXZhbGlkT3BlcmF0b3JzLmluY2x1ZGVzKG9wZXJhdG9yIGFzIE9wZXJhdG9yKSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0pXG5cbiAgICByZXR1cm4gaXNWYWxpZFxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmV4cG9ydCBkZWZhdWx0IHZhbGlkYXRlV2hlcmVRdWVyeVxuIl0sIm5hbWVzIjpbInZhbGlkYXRlV2hlcmVRdWVyeSIsIndoZXJlUXVlcnkiLCJvciIsImxlbmd0aCIsImFuZCIsImlzVmFsaWQiLCJldmVyeSIsIm9yUXVlcnkiLCJBcnJheSIsImlzQXJyYXkiLCJhbmRRdWVyeSIsImFuZEtleXMiLCJPYmplY3QiLCJrZXlzIiwia2V5Iiwib3BlcmF0b3IiLCJ2YWxpZE9wZXJhdG9ycyIsImluY2x1ZGVzIl0sIm1hcHBpbmdzIjoiOzs7OytCQTRDQTs7O2VBQUE7Ozt1QkExQytCO0FBRS9CLE1BQU1BLHFCQUFxQixDQUFDQztJQUMxQixJQUNFQSxZQUFZQyxJQUFJQyxTQUFTLEtBQ3pCRixZQUFZQyxJQUFJLENBQUMsRUFBRSxFQUFFRSxPQUNyQkgsWUFBWUMsSUFBSSxDQUFDLEVBQUUsRUFBRUUsS0FBS0QsU0FBUyxHQUNuQztRQUNBLHVFQUF1RTtRQUN2RSw2REFBNkQ7UUFFN0QsTUFBTUUsVUFBVUosV0FBV0MsRUFBRSxDQUFDSSxLQUFLLENBQUMsQ0FBQ0M7WUFDbkMsSUFBSUEsUUFBUUgsR0FBRyxJQUFJSSxNQUFNQyxPQUFPLENBQUNGLFFBQVFILEdBQUcsR0FBRztnQkFDN0MsT0FBT0csUUFBUUgsR0FBRyxDQUFDRSxLQUFLLENBQUMsQ0FBQ0k7b0JBQ3hCLElBQUksT0FBT0EsYUFBYSxVQUFVO3dCQUNoQyxPQUFPO29CQUNUO29CQUNBLE1BQU1DLFVBQVVDLE9BQU9DLElBQUksQ0FBQ0g7b0JBQzVCLHFEQUFxRDtvQkFDckQsSUFBSUMsUUFBUVIsTUFBTSxLQUFLLEdBQUc7d0JBQ3hCLE9BQU87b0JBQ1Q7b0JBQ0EsZ0RBQWdEO29CQUNoRCxLQUFLLE1BQU1XLE9BQU9ILFFBQVM7d0JBQ3pCLE1BQU1JLFdBQVdILE9BQU9DLElBQUksQ0FBQ0gsUUFBUSxDQUFDSSxJQUFJLENBQUMsQ0FBQyxFQUFFO3dCQUM5Qyx3Q0FBd0M7d0JBQ3hDLElBQUksQ0FBQ0MsWUFBWSxDQUFDQyxxQkFBYyxDQUFDQyxRQUFRLENBQUNGLFdBQXVCOzRCQUMvRCxPQUFPO3dCQUNUO29CQUNGO29CQUNBLE9BQU87Z0JBQ1Q7WUFDRjtZQUNBLE9BQU87UUFDVDtRQUVBLE9BQU9WO0lBQ1Q7SUFFQSxPQUFPO0FBQ1Q7TUFFQSxXQUFlTCJ9
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ payloadFavicon: function() {
13
+ return _faviconsvg.default;
14
+ },
15
+ payloadOgImage: function() {
16
+ return _ogimagepng.default;
17
+ }
18
+ });
19
+ const _faviconsvg = /*#__PURE__*/ _interop_require_default(require("../assets/favicon.svg"));
20
+ const _ogimagepng = /*#__PURE__*/ _interop_require_default(require("../assets/og-image.png"));
21
+ function _interop_require_default(obj) {
22
+ return obj && obj.__esModule ? obj : {
23
+ default: obj
24
+ };
25
+ }
26
+
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBvcnRzL2Fzc2V0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIHBheWxvYWRGYXZpY29uIH0gZnJvbSAnLi4vYXNzZXRzL2Zhdmljb24uc3ZnJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwYXlsb2FkT2dJbWFnZSB9IGZyb20gJy4uL2Fzc2V0cy9vZy1pbWFnZS5wbmcnXG4iXSwibmFtZXMiOlsicGF5bG9hZEZhdmljb24iLCJwYXlsb2FkT2dJbWFnZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFBb0JBLGNBQWM7ZUFBZEEsbUJBQWM7O0lBQ2RDLGNBQWM7ZUFBZEEsbUJBQWM7OzttRUFEUTttRUFDQSJ9