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

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 (452) 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.d.ts.map +1 -1
  40. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +48 -0
  41. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +105 -0
  42. package/dist/elements/DocumentHeader/Tabs/getCustomViews.js +48 -0
  43. package/dist/elements/DocumentHeader/Tabs/getViewConfig.js +24 -0
  44. package/dist/elements/DocumentHeader/Tabs/index.js +84 -0
  45. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +27 -0
  46. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +75 -0
  47. package/dist/elements/DocumentHeader/index.js +81 -0
  48. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +82 -0
  49. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js +6 -0
  50. package/dist/elements/DraggableSortable/index.js +96 -0
  51. package/dist/elements/DraggableSortable/types.js +6 -0
  52. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +32 -0
  53. package/dist/elements/DraggableSortable/useDraggableSortable/types.js +6 -0
  54. package/dist/elements/Drawer/index.d.ts +1 -1
  55. package/dist/elements/Drawer/index.js +156 -0
  56. package/dist/elements/Drawer/types.js +6 -0
  57. package/dist/elements/Drawer/useDrawerSlug.js +23 -0
  58. package/dist/elements/Dropzone/index.js +117 -0
  59. package/dist/elements/DuplicateDocument/index.js +217 -0
  60. package/dist/elements/DuplicateDocument/types.js +6 -0
  61. package/dist/elements/EditMany/index.d.ts.map +1 -1
  62. package/dist/elements/EditMany/index.js +277 -0
  63. package/dist/elements/EditMany/types.js +6 -0
  64. package/dist/elements/EditUpload/index.js +390 -0
  65. package/dist/elements/ErrorPill/index.js +37 -0
  66. package/dist/elements/ErrorPill/types.js +6 -0
  67. package/dist/elements/FieldSelect/index.js +138 -0
  68. package/dist/elements/FileDetails/FileMeta/index.js +96 -0
  69. package/dist/elements/FileDetails/FileMeta/types.js +6 -0
  70. package/dist/elements/FileDetails/index.js +59 -0
  71. package/dist/elements/FileDetails/types.js +6 -0
  72. package/dist/elements/GenerateConfirmation/index.js +72 -0
  73. package/dist/elements/GenerateConfirmation/types.js +6 -0
  74. package/dist/elements/GetFilterOptions/index.js +57 -0
  75. package/dist/elements/Gutter/index.js +72 -0
  76. package/dist/elements/Hamburger/index.js +54 -0
  77. package/dist/elements/Header/index.d.ts.map +1 -1
  78. package/dist/elements/Header/index.js +140 -0
  79. package/dist/elements/HydrateClientUser/index.js +28 -0
  80. package/dist/elements/IDLabel/index.js +28 -0
  81. package/dist/elements/ListControls/getTextFieldsToBeSearched.js +21 -0
  82. package/dist/elements/ListControls/index.js +149 -0
  83. package/dist/elements/ListControls/types.js +6 -0
  84. package/dist/elements/ListDrawer/DrawerContent.js +315 -0
  85. package/dist/elements/ListDrawer/index.js +198 -0
  86. package/dist/elements/ListDrawer/types.js +6 -0
  87. package/dist/elements/ListSelection/index.js +83 -0
  88. package/dist/elements/Loading/index.js +103 -0
  89. package/dist/elements/LoadingOverlay/index.js +130 -0
  90. package/dist/elements/LoadingOverlay/reducer.js +49 -0
  91. package/dist/elements/LoadingOverlay/types.js +6 -0
  92. package/dist/elements/Localizer/LocalizerLabel/index.js +43 -0
  93. package/dist/elements/Localizer/index.js +121 -0
  94. package/dist/elements/Logout/index.d.ts.map +1 -1
  95. package/dist/elements/Logout/index.js +49 -0
  96. package/dist/elements/Nav/NavHamburger/index.js +34 -0
  97. package/dist/elements/Nav/NavToggler/index.js +53 -0
  98. package/dist/elements/Nav/NavWrapper/index.js +34 -0
  99. package/dist/elements/Nav/context.js +150 -0
  100. package/dist/elements/Nav/index.d.ts.map +1 -1
  101. package/dist/elements/Nav/index.js +106 -0
  102. package/dist/elements/NavGroup/index.js +129 -0
  103. package/dist/elements/Pagination/ClickableArrow/index.js +36 -0
  104. package/dist/elements/Pagination/ClickableArrow/types.js +6 -0
  105. package/dist/elements/Pagination/Page/index.js +33 -0
  106. package/dist/elements/Pagination/Page/types.js +6 -0
  107. package/dist/elements/Pagination/Separator/index.js +22 -0
  108. package/dist/elements/Pagination/index.js +126 -0
  109. package/dist/elements/Pagination/types.js +6 -0
  110. package/dist/elements/PerPage/index.d.ts.map +1 -1
  111. package/dist/elements/PerPage/index.js +115 -0
  112. package/dist/elements/Pill/index.js +93 -0
  113. package/dist/elements/Pill/types.js +6 -0
  114. package/dist/elements/Popup/PopupButtonList/index.d.ts +2 -2
  115. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  116. package/dist/elements/Popup/PopupButtonList/index.js +118 -0
  117. package/dist/elements/Popup/PopupTrigger/index.js +51 -0
  118. package/dist/elements/Popup/PopupTrigger/types.js +6 -0
  119. package/dist/elements/Popup/index.js +193 -0
  120. package/dist/elements/Popup/types.js +6 -0
  121. package/dist/elements/PreviewButton/index.js +129 -0
  122. package/dist/elements/PreviewSizes/index.js +163 -0
  123. package/dist/elements/Publish/index.js +153 -0
  124. package/dist/elements/PublishMany/index.js +169 -0
  125. package/dist/elements/PublishMany/types.js +6 -0
  126. package/dist/elements/ReactSelect/ClearIndicator/index.js +31 -0
  127. package/dist/elements/ReactSelect/Control/index.js +49 -0
  128. package/dist/elements/ReactSelect/MultiValue/index.js +55 -0
  129. package/dist/elements/ReactSelect/MultiValueLabel/index.js +34 -0
  130. package/dist/elements/ReactSelect/MultiValueRemove/index.js +48 -0
  131. package/dist/elements/ReactSelect/SingleValue/index.js +30 -0
  132. package/dist/elements/ReactSelect/ValueContainer/index.js +29 -0
  133. package/dist/elements/ReactSelect/index.js +177 -0
  134. package/dist/elements/ReactSelect/types.js +6 -0
  135. package/dist/elements/RenderCustomComponent/index.js +28 -0
  136. package/dist/elements/RenderCustomComponent/types.js +6 -0
  137. package/dist/elements/RenderTitle/index.js +42 -0
  138. package/dist/elements/RenderTitle/types.js +6 -0
  139. package/dist/elements/Save/index.js +103 -0
  140. package/dist/elements/SaveDraft/index.js +147 -0
  141. package/dist/elements/SearchFilter/index.d.ts.map +1 -1
  142. package/dist/elements/SearchFilter/index.js +139 -0
  143. package/dist/elements/SearchFilter/types.js +6 -0
  144. package/dist/elements/SelectAll/index.d.ts.map +1 -1
  145. package/dist/elements/SelectAll/index.js +37 -0
  146. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  147. package/dist/elements/SelectRow/index.js +33 -0
  148. package/dist/elements/ShimmerEffect/index.js +96 -0
  149. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  150. package/dist/elements/SortColumn/index.js +139 -0
  151. package/dist/elements/SortColumn/types.js +6 -0
  152. package/dist/elements/SortComplex/index.d.ts.map +1 -1
  153. package/dist/elements/SortComplex/index.js +157 -0
  154. package/dist/elements/SortComplex/types.js +6 -0
  155. package/dist/elements/Status/index.js +202 -0
  156. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  157. package/dist/elements/StayLoggedIn/index.js +57 -0
  158. package/dist/elements/StayLoggedIn/types.js +6 -0
  159. package/dist/elements/StepNav/SetStepNav.js +25 -0
  160. package/dist/elements/StepNav/index.d.ts.map +1 -1
  161. package/dist/elements/StepNav/index.js +127 -0
  162. package/dist/elements/StepNav/types.js +6 -0
  163. package/dist/elements/Table/TableCellProvider/index.js +47 -0
  164. package/dist/elements/Table/index.js +63 -0
  165. package/dist/elements/Table/types.js +6 -0
  166. package/dist/elements/TableColumns/buildColumns.d.ts.map +1 -1
  167. package/dist/elements/TableColumns/buildColumns.js +83 -0
  168. package/dist/elements/TableColumns/columnReducer.js +47 -0
  169. package/dist/elements/TableColumns/index.js +199 -0
  170. package/dist/elements/Thumbnail/index.js +89 -0
  171. package/dist/elements/Thumbnail/types.js +6 -0
  172. package/dist/elements/ThumbnailCard/index.js +54 -0
  173. package/dist/elements/ThumbnailCard/types.js +6 -0
  174. package/dist/elements/Tooltip/index.js +114 -0
  175. package/dist/elements/Tooltip/types.js +6 -0
  176. package/dist/elements/Translation/index.js +81 -0
  177. package/dist/elements/UnpublishMany/index.js +169 -0
  178. package/dist/elements/UnpublishMany/types.js +6 -0
  179. package/dist/elements/Upload/index.js +250 -0
  180. package/dist/elements/Upload/types.js +6 -0
  181. package/dist/elements/ViewDescription/index.js +38 -0
  182. package/dist/elements/ViewDescription/types.js +21 -0
  183. package/dist/elements/WhereBuilder/Condition/Date/index.js +32 -0
  184. package/dist/elements/WhereBuilder/Condition/Date/types.js +6 -0
  185. package/dist/elements/WhereBuilder/Condition/Number/index.js +33 -0
  186. package/dist/elements/WhereBuilder/Condition/Number/types.js +6 -0
  187. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +337 -0
  188. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js +98 -0
  189. package/dist/elements/WhereBuilder/Condition/Relationship/types.js +6 -0
  190. package/dist/elements/WhereBuilder/Condition/Select/index.js +96 -0
  191. package/dist/elements/WhereBuilder/Condition/Select/types.js +6 -0
  192. package/dist/elements/WhereBuilder/Condition/Text/index.js +33 -0
  193. package/dist/elements/WhereBuilder/Condition/Text/types.js +6 -0
  194. package/dist/elements/WhereBuilder/Condition/index.js +203 -0
  195. package/dist/elements/WhereBuilder/Condition/types.js +6 -0
  196. package/dist/elements/WhereBuilder/field-types.js +185 -0
  197. package/dist/elements/WhereBuilder/index.js +235 -0
  198. package/dist/elements/WhereBuilder/reducer.js +88 -0
  199. package/dist/elements/WhereBuilder/transformWhereQuery.js +57 -0
  200. package/dist/elements/WhereBuilder/types.js +6 -0
  201. package/dist/elements/WhereBuilder/validateWhereQuery.js +46 -0
  202. package/dist/exports/assets.js +27 -0
  203. package/dist/exports/elements.d.ts +6 -0
  204. package/dist/exports/elements.d.ts.map +1 -1
  205. package/dist/exports/elements.js +250 -0
  206. package/dist/exports/forms.js +158 -0
  207. package/dist/exports/graphics.js +27 -0
  208. package/dist/exports/hooks.js +55 -0
  209. package/dist/exports/icons.js +82 -0
  210. package/dist/exports/index.js +28 -0
  211. package/dist/exports/providers.js +116 -0
  212. package/dist/exports/templates.js +22 -0
  213. package/dist/exports/types.js +6 -0
  214. package/dist/exports/utilities.js +62 -0
  215. package/dist/forms/Error/index.js +43 -0
  216. package/dist/forms/FieldDescription/index.js +38 -0
  217. package/dist/forms/FieldDescription/types.js +6 -0
  218. package/dist/forms/FieldPathProvider/index.js +44 -0
  219. package/dist/forms/FieldPathProvider/types.js +6 -0
  220. package/dist/forms/Form/buildFieldSchemaMap.js +54 -0
  221. package/dist/forms/Form/buildInitialState.js +26 -0
  222. package/dist/forms/Form/context.js +84 -0
  223. package/dist/forms/Form/createNestedFieldPath.js +25 -0
  224. package/dist/forms/Form/errorMessages.js +15 -0
  225. package/dist/forms/Form/fieldReducer.js +286 -0
  226. package/dist/forms/Form/getDataByPath.js +29 -0
  227. package/dist/forms/Form/getSiblingData.js +50 -0
  228. package/dist/forms/Form/index.js +565 -0
  229. package/dist/forms/Form/initContextState.js +45 -0
  230. package/dist/forms/Form/mergeServerFormState.js +45 -0
  231. package/dist/forms/Form/reduceFieldsToValues.js +34 -0
  232. package/dist/forms/Form/rows.js +53 -0
  233. package/dist/forms/Form/types.js +6 -0
  234. package/dist/forms/Label/index.js +36 -0
  235. package/dist/forms/NullifyField/index.js +103 -0
  236. package/dist/forms/RenderFields/RenderField.js +30 -0
  237. package/dist/forms/RenderFields/index.js +66 -0
  238. package/dist/forms/RenderFields/types.js +6 -0
  239. package/dist/forms/RowLabel/index.js +50 -0
  240. package/dist/forms/RowLabel/types.d.ts +1 -1
  241. package/dist/forms/RowLabel/types.d.ts.map +1 -1
  242. package/dist/forms/RowLabel/types.js +21 -0
  243. package/dist/forms/Submit/index.js +75 -0
  244. package/dist/forms/WatchChildErrors/buildPathSegments.js +37 -0
  245. package/dist/forms/WatchChildErrors/getFieldStateFromPaths.js +35 -0
  246. package/dist/forms/WatchChildErrors/getNestedFieldState.js +28 -0
  247. package/dist/forms/WatchChildErrors/index.js +41 -0
  248. package/dist/forms/fields/Array/ArrayRow.js +87 -0
  249. package/dist/forms/fields/Array/index.js +305 -0
  250. package/dist/forms/fields/Array/types.js +6 -0
  251. package/dist/forms/fields/Blocks/BlockRow.js +101 -0
  252. package/dist/forms/fields/Blocks/BlocksDrawer/BlockSearch/index.js +37 -0
  253. package/dist/forms/fields/Blocks/BlocksDrawer/index.js +134 -0
  254. package/dist/forms/fields/Blocks/BlocksDrawer/types.js +6 -0
  255. package/dist/forms/fields/Blocks/RowActions.js +52 -0
  256. package/dist/forms/fields/Blocks/SectionTitle/index.js +54 -0
  257. package/dist/forms/fields/Blocks/SectionTitle/types.js +6 -0
  258. package/dist/forms/fields/Blocks/index.js +317 -0
  259. package/dist/forms/fields/Blocks/types.js +6 -0
  260. package/dist/forms/fields/Checkbox/Input.d.ts.map +1 -1
  261. package/dist/forms/fields/Checkbox/Input.js +57 -0
  262. package/dist/forms/fields/Checkbox/index.js +134 -0
  263. package/dist/forms/fields/Checkbox/types.js +6 -0
  264. package/dist/forms/fields/Code/index.js +115 -0
  265. package/dist/forms/fields/Code/types.js +6 -0
  266. package/dist/forms/fields/Collapsible/index.js +169 -0
  267. package/dist/forms/fields/Collapsible/types.js +6 -0
  268. package/dist/forms/fields/ConfirmPassword/index.js +112 -0
  269. package/dist/forms/fields/ConfirmPassword/types.js +6 -0
  270. package/dist/forms/fields/DateTime/index.js +115 -0
  271. package/dist/forms/fields/DateTime/types.js +6 -0
  272. package/dist/forms/fields/Email/index.js +121 -0
  273. package/dist/forms/fields/Email/types.js +6 -0
  274. package/dist/forms/fields/Group/index.js +127 -0
  275. package/dist/forms/fields/Group/provider.js +74 -0
  276. package/dist/forms/fields/Group/types.js +6 -0
  277. package/dist/forms/fields/HiddenInput/index.js +88 -0
  278. package/dist/forms/fields/HiddenInput/types.js +6 -0
  279. package/dist/forms/fields/JSON/index.js +137 -0
  280. package/dist/forms/fields/JSON/types.js +6 -0
  281. package/dist/forms/fields/Number/index.js +212 -0
  282. package/dist/forms/fields/Number/types.js +6 -0
  283. package/dist/forms/fields/Password/index.js +116 -0
  284. package/dist/forms/fields/Password/types.js +6 -0
  285. package/dist/forms/fields/Point/index.js +147 -0
  286. package/dist/forms/fields/Point/types.js +6 -0
  287. package/dist/forms/fields/RadioGroup/Radio/index.js +45 -0
  288. package/dist/forms/fields/RadioGroup/index.js +147 -0
  289. package/dist/forms/fields/RadioGroup/types.js +6 -0
  290. package/dist/forms/fields/Relationship/AddNew/index.js +216 -0
  291. package/dist/forms/fields/Relationship/AddNew/types.js +6 -0
  292. package/dist/forms/fields/Relationship/AddNew/useRelatedCollections.js +27 -0
  293. package/dist/forms/fields/Relationship/createRelationMap.js +59 -0
  294. package/dist/forms/fields/Relationship/findOptionsByValue.js +45 -0
  295. package/dist/forms/fields/Relationship/index.js +509 -0
  296. package/dist/forms/fields/Relationship/optionsReducer.js +126 -0
  297. package/dist/forms/fields/Relationship/select-components/MultiValueLabel/index.js +109 -0
  298. package/dist/forms/fields/Relationship/select-components/SingleValue/index.js +108 -0
  299. package/dist/forms/fields/Relationship/types.js +6 -0
  300. package/dist/forms/fields/RichText/index.js +16 -0
  301. package/dist/forms/fields/RichText/types.js +6 -0
  302. package/dist/forms/fields/Row/index.js +42 -0
  303. package/dist/forms/fields/Row/provider.js +74 -0
  304. package/dist/forms/fields/Row/types.js +6 -0
  305. package/dist/forms/fields/Select/index.js +183 -0
  306. package/dist/forms/fields/Select/types.js +6 -0
  307. package/dist/forms/fields/Tabs/Tab/index.js +85 -0
  308. package/dist/forms/fields/Tabs/index.js +167 -0
  309. package/dist/forms/fields/Tabs/provider.js +74 -0
  310. package/dist/forms/fields/Tabs/types.js +6 -0
  311. package/dist/forms/fields/Text/index.js +194 -0
  312. package/dist/forms/fields/Text/types.js +6 -0
  313. package/dist/forms/fields/Textarea/index.js +133 -0
  314. package/dist/forms/fields/Textarea/types.js +6 -0
  315. package/dist/forms/fields/UI/index.js +16 -0
  316. package/dist/forms/fields/Upload/Input.js +3 -0
  317. package/dist/forms/fields/Upload/index.js +210 -0
  318. package/dist/forms/fields/Upload/types.js +6 -0
  319. package/dist/forms/fields/getFilterOptionsQuery.js +39 -0
  320. package/dist/forms/fields/index.js +67 -0
  321. package/dist/forms/fields/shared.d.ts +1 -1
  322. package/dist/forms/fields/shared.d.ts.map +1 -1
  323. package/dist/forms/fields/shared.js +29 -0
  324. package/dist/forms/useField/index.js +169 -0
  325. package/dist/forms/useField/types.js +6 -0
  326. package/dist/forms/utilities/buildStateFromSchema/addFieldStatePromise.js +335 -0
  327. package/dist/forms/utilities/buildStateFromSchema/buildStateFromSchema.spec.js +76 -0
  328. package/dist/forms/utilities/buildStateFromSchema/index.js +35 -0
  329. package/dist/forms/utilities/buildStateFromSchema/iterateFields.js +48 -0
  330. package/dist/forms/withCondition/WatchCondition.js +66 -0
  331. package/dist/forms/withCondition/index.js +33 -0
  332. package/dist/graphics/Account/Default/index.js +43 -0
  333. package/dist/graphics/Account/Gravatar/index.js +42 -0
  334. package/dist/graphics/Account/index.js +50 -0
  335. package/dist/graphics/DefaultBlockImage/index.js +84 -0
  336. package/dist/graphics/ExternalLink/index.js +34 -0
  337. package/dist/graphics/File/index.js +36 -0
  338. package/dist/graphics/Icon/index.js +64 -0
  339. package/dist/graphics/Logo/index.js +60 -0
  340. package/dist/graphics/Search/index.js +42 -0
  341. package/dist/hooks/useAdminThumbnail.js +17 -0
  342. package/dist/hooks/useDebounce.js +31 -0
  343. package/dist/hooks/useDebouncedCallback.js +29 -0
  344. package/dist/hooks/useDebouncedEffect.js +32 -0
  345. package/dist/hooks/useDelay.js +82 -0
  346. package/dist/hooks/useDelayedRender.js +97 -0
  347. package/dist/hooks/useHotkey.js +129 -0
  348. package/dist/hooks/useIntersect.js +39 -0
  349. package/dist/hooks/usePayloadAPI.js +94 -0
  350. package/dist/hooks/useResize.js +59 -0
  351. package/dist/hooks/useThrottledEffect.js +31 -0
  352. package/dist/hooks/useThumbnail.js +57 -0
  353. package/dist/hooks/useUseAsTitle.js +19 -0
  354. package/dist/icons/Calendar/index.js +48 -0
  355. package/dist/icons/Check/index.js +34 -0
  356. package/dist/icons/Chevron/index.js +36 -0
  357. package/dist/icons/CloseMenu/index.js +39 -0
  358. package/dist/icons/CodeBlock/index.js +32 -0
  359. package/dist/icons/Copy/index.js +33 -0
  360. package/dist/icons/DragHandle/index.js +57 -0
  361. package/dist/icons/Edit/index.js +37 -0
  362. package/dist/icons/Line/index.js +30 -0
  363. package/dist/icons/Link/index.js +33 -0
  364. package/dist/icons/LogOut/index.js +37 -0
  365. package/dist/icons/Menu/index.js +45 -0
  366. package/dist/icons/MinimizeMaximize/index.js +87 -0
  367. package/dist/icons/More/index.js +42 -0
  368. package/dist/icons/Plus/index.js +36 -0
  369. package/dist/icons/Search/index.js +36 -0
  370. package/dist/icons/Swap/index.js +43 -0
  371. package/dist/icons/X/index.js +41 -0
  372. package/dist/index.js +20 -0
  373. package/dist/providers/ActionsProvider/SetViewActions/index.d.ts +6 -0
  374. package/dist/providers/ActionsProvider/SetViewActions/index.d.ts.map +1 -0
  375. package/dist/providers/ActionsProvider/SetViewActions/index.js +28 -0
  376. package/dist/providers/ActionsProvider/index.d.ts +3 -2
  377. package/dist/providers/ActionsProvider/index.d.ts.map +1 -1
  378. package/dist/providers/ActionsProvider/index.js +89 -0
  379. package/dist/providers/Auth/HydrateClientUser/index.js +28 -0
  380. package/dist/providers/Auth/index.js +373 -0
  381. package/dist/providers/Auth/types.js +6 -0
  382. package/dist/providers/ClientFunction/index.js +65 -0
  383. package/dist/providers/ComponentMapProvider/index.d.ts +4 -0
  384. package/dist/providers/ComponentMapProvider/index.d.ts.map +1 -1
  385. package/dist/providers/ComponentMapProvider/index.js +110 -0
  386. package/dist/providers/Config/index.js +70 -0
  387. package/dist/providers/CustomProvider/index.js +38 -0
  388. package/dist/providers/DocumentEvents/index.js +77 -0
  389. package/dist/providers/DocumentEvents/types.js +6 -0
  390. package/dist/providers/DocumentInfo/SetDocumentInfo/index.js +34 -0
  391. package/dist/providers/DocumentInfo/index.js +353 -0
  392. package/dist/providers/DocumentInfo/types.js +6 -0
  393. package/dist/providers/EditDepth/index.js +71 -0
  394. package/dist/providers/FormQueryParams/index.js +77 -0
  395. package/dist/providers/ListInfo/index.js +78 -0
  396. package/dist/providers/ListInfo/types.d.ts +2 -2
  397. package/dist/providers/ListInfo/types.d.ts.map +1 -1
  398. package/dist/providers/ListInfo/types.js +6 -0
  399. package/dist/providers/Locale/index.js +122 -0
  400. package/dist/providers/OperationProvider/index.js +71 -0
  401. package/dist/providers/Params/index.js +72 -0
  402. package/dist/providers/Portal/index.js +20 -0
  403. package/dist/providers/Preferences/index.js +184 -0
  404. package/dist/providers/Root/index.js +103 -0
  405. package/dist/providers/SearchParams/index.js +119 -0
  406. package/dist/providers/SearchParams/types.js +6 -0
  407. package/dist/providers/SelectionProvider/index.js +218 -0
  408. package/dist/providers/Theme/index.d.ts +6 -3
  409. package/dist/providers/Theme/index.d.ts.map +1 -1
  410. package/dist/providers/Theme/index.js +121 -0
  411. package/dist/providers/Theme/types.d.ts +1 -0
  412. package/dist/providers/Theme/types.d.ts.map +1 -1
  413. package/dist/providers/Theme/types.js +6 -0
  414. package/dist/providers/Theme/utilities.js +35 -0
  415. package/dist/providers/Translation/index.js +92 -0
  416. package/dist/scss/toastify.scss +0 -1
  417. package/dist/templates/Default/NavHamburger/index.js +28 -0
  418. package/dist/templates/Default/Wrapper/index.js +32 -0
  419. package/dist/templates/Default/index.js +88 -0
  420. package/dist/templates/Default/types.js +6 -0
  421. package/dist/templates/Minimal/index.js +34 -0
  422. package/dist/templates/Minimal/types.js +6 -0
  423. package/dist/utilities/api.js +98 -0
  424. package/dist/utilities/arraysHaveSameStrings.js +28 -0
  425. package/dist/utilities/buildComponentMap/index.d.ts.map +1 -1
  426. package/dist/utilities/buildComponentMap/index.js +106 -0
  427. package/dist/utilities/buildComponentMap/mapActions.d.ts +7 -0
  428. package/dist/utilities/buildComponentMap/mapActions.d.ts.map +1 -0
  429. package/dist/utilities/buildComponentMap/mapActions.js +54 -0
  430. package/dist/utilities/buildComponentMap/mapFields.js +318 -0
  431. package/dist/utilities/buildComponentMap/types.d.ts +7 -0
  432. package/dist/utilities/buildComponentMap/types.d.ts.map +1 -1
  433. package/dist/utilities/buildComponentMap/types.js +6 -0
  434. package/dist/utilities/buildFieldSchemaMap/index.js +36 -0
  435. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +94 -0
  436. package/dist/utilities/buildFieldSchemaMap/types.js +6 -0
  437. package/dist/utilities/canUseDOM.js +13 -0
  438. package/dist/utilities/findLocaleFromCode.js +18 -0
  439. package/dist/utilities/formatDate/getSupportedDateLocale.js +21 -0
  440. package/dist/utilities/formatDate/index.js +78 -0
  441. package/dist/utilities/formatDocTitle.js +33 -0
  442. package/dist/utilities/formatFields.js +14 -0
  443. package/dist/utilities/getFormState.js +28 -0
  444. package/dist/utilities/getOffsetTop.js +26 -0
  445. package/dist/utilities/getRequestLanguage.js +17 -0
  446. package/dist/utilities/getSupportedMonacoLocale.js +26 -0
  447. package/dist/utilities/groupNavItems.js +61 -0
  448. package/dist/utilities/scrollToID.js +22 -0
  449. package/dist/utilities/setsAreEqual.js +17 -0
  450. package/dist/utilities/withMergedProps/index.js +27 -0
  451. package/dist/views/Global/RenderCustomView.js +3 -0
  452. package/package.json +8 -8
@@ -0,0 +1,28 @@
1
+ 'use client';
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "HydrateClientUser", {
7
+ enumerable: true,
8
+ get: function() {
9
+ return HydrateClientUser;
10
+ }
11
+ });
12
+ const _react = require("react");
13
+ const _Auth = require("../../providers/Auth");
14
+ const HydrateClientUser = ({ permissions, user })=>{
15
+ const { setPermissions, setUser } = (0, _Auth.useAuth)();
16
+ (0, _react.useEffect)(()=>{
17
+ setUser(user);
18
+ setPermissions(permissions);
19
+ }, [
20
+ user,
21
+ permissions,
22
+ setUser,
23
+ setPermissions
24
+ ]);
25
+ return null;
26
+ };
27
+
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9IeWRyYXRlQ2xpZW50VXNlci9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB0eXBlIHsgUGVybWlzc2lvbnMsIFVzZXIgfSBmcm9tICdwYXlsb2FkL2F1dGgnXG5cbmltcG9ydCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyB1c2VBdXRoIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL0F1dGgnXG5cbmV4cG9ydCBjb25zdCBIeWRyYXRlQ2xpZW50VXNlcjogUmVhY3QuRkM8eyBwZXJtaXNzaW9uczogUGVybWlzc2lvbnM7IHVzZXI6IFVzZXIgfT4gPSAoe1xuICBwZXJtaXNzaW9ucyxcbiAgdXNlcixcbn0pID0+IHtcbiAgY29uc3QgeyBzZXRQZXJtaXNzaW9ucywgc2V0VXNlciB9ID0gdXNlQXV0aCgpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRVc2VyKHVzZXIpXG4gICAgc2V0UGVybWlzc2lvbnMocGVybWlzc2lvbnMpXG4gIH0sIFt1c2VyLCBwZXJtaXNzaW9ucywgc2V0VXNlciwgc2V0UGVybWlzc2lvbnNdKVxuXG4gIHJldHVybiBudWxsXG59XG4iXSwibmFtZXMiOlsiSHlkcmF0ZUNsaWVudFVzZXIiLCJwZXJtaXNzaW9ucyIsInVzZXIiLCJzZXRQZXJtaXNzaW9ucyIsInNldFVzZXIiLCJ1c2VBdXRoIiwidXNlRWZmZWN0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7K0JBUWFBOzs7ZUFBQUE7Ozt1QkFKYTtzQkFFRjtBQUVqQixNQUFNQSxvQkFBd0UsQ0FBQyxFQUNwRkMsV0FBVyxFQUNYQyxJQUFJLEVBQ0w7SUFDQyxNQUFNLEVBQUVDLGNBQWMsRUFBRUMsT0FBTyxFQUFFLEdBQUdDLElBQUFBLGFBQU87SUFFM0NDLElBQUFBLGdCQUFTLEVBQUM7UUFDUkYsUUFBUUY7UUFDUkMsZUFBZUY7SUFDakIsR0FBRztRQUFDQztRQUFNRDtRQUFhRztRQUFTRDtLQUFlO0lBRS9DLE9BQU87QUFDVCJ9
@@ -0,0 +1,28 @@
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 _react = /*#__PURE__*/ _interop_require_default(require("react"));
12
+ require("./index.scss");
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ const baseClass = 'id-label';
19
+ const IDLabel = ({ id, className, prefix = 'ID:' })=>/*#__PURE__*/ _react.default.createElement("div", {
20
+ className: [
21
+ baseClass,
22
+ className
23
+ ].filter(Boolean).join(' '),
24
+ title: id
25
+ }, prefix, "  ", id);
26
+ const _default = IDLabel;
27
+
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9JRExhYmVsL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnaWQtbGFiZWwnXG5cbmNvbnN0IElETGFiZWw6IFJlYWN0LkZDPHsgY2xhc3NOYW1lPzogc3RyaW5nOyBpZDogc3RyaW5nOyBwcmVmaXg/OiBzdHJpbmcgfT4gPSAoe1xuICBpZCxcbiAgY2xhc3NOYW1lLFxuICBwcmVmaXggPSAnSUQ6Jyxcbn0pID0+IChcbiAgPGRpdiBjbGFzc05hbWU9e1tiYXNlQ2xhc3MsIGNsYXNzTmFtZV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKX0gdGl0bGU9e2lkfT5cbiAgICB7cHJlZml4fVxuICAgICZuYnNwOyZuYnNwO1xuICAgIHtpZH1cbiAgPC9kaXY+XG4pXG5cbmV4cG9ydCBkZWZhdWx0IElETGFiZWxcbiJdLCJuYW1lcyI6WyJiYXNlQ2xhc3MiLCJJRExhYmVsIiwiaWQiLCJjbGFzc05hbWUiLCJwcmVmaXgiLCJkaXYiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsInRpdGxlIl0sIm1hcHBpbmdzIjoiOzs7OytCQWtCQTs7O2VBQUE7Ozs4REFsQmtCO1FBRVg7Ozs7OztBQUVQLE1BQU1BLFlBQVk7QUFFbEIsTUFBTUMsVUFBeUUsQ0FBQyxFQUM5RUMsRUFBRSxFQUNGQyxTQUFTLEVBQ1RDLFNBQVMsS0FBSyxFQUNmLGlCQUNDLDZCQUFDQztRQUFJRixXQUFXO1lBQUNIO1lBQVdHO1NBQVUsQ0FBQ0csTUFBTSxDQUFDQyxTQUFTQyxJQUFJLENBQUM7UUFBTUMsT0FBT1A7T0FDdEVFLFFBQU8sTUFFUEY7TUFJTCxXQUFlRCJ9
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "getTextFieldsToBeSearched", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return getTextFieldsToBeSearched;
9
+ }
10
+ });
11
+ const _types = require("payload/types");
12
+ const _utilities = require("payload/utilities");
13
+ const getTextFieldsToBeSearched = (listSearchableFields, fields)=>{
14
+ if (listSearchableFields) {
15
+ const flattenedFields = (0, _utilities.flattenTopLevelFields)(fields);
16
+ return flattenedFields.filter((field)=>(0, _types.fieldAffectsData)(field) && listSearchableFields.includes(field.name));
17
+ }
18
+ return null;
19
+ };
20
+
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9MaXN0Q29udHJvbHMvZ2V0VGV4dEZpZWxkc1RvQmVTZWFyY2hlZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZpZWxkLCBGaWVsZEFmZmVjdGluZ0RhdGEgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhIH0gZnJvbSAncGF5bG9hZC90eXBlcydcbmltcG9ydCB7IGZsYXR0ZW5Ub3BMZXZlbEZpZWxkcyB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuXG5leHBvcnQgY29uc3QgZ2V0VGV4dEZpZWxkc1RvQmVTZWFyY2hlZCA9IChcbiAgbGlzdFNlYXJjaGFibGVGaWVsZHM6IHN0cmluZ1tdLFxuICBmaWVsZHM6IEZpZWxkW10sXG4pOiBGaWVsZEFmZmVjdGluZ0RhdGFbXSA9PiB7XG4gIGlmIChsaXN0U2VhcmNoYWJsZUZpZWxkcykge1xuICAgIGNvbnN0IGZsYXR0ZW5lZEZpZWxkcyA9IGZsYXR0ZW5Ub3BMZXZlbEZpZWxkcyhmaWVsZHMpXG4gICAgcmV0dXJuIGZsYXR0ZW5lZEZpZWxkcy5maWx0ZXIoXG4gICAgICAoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGxpc3RTZWFyY2hhYmxlRmllbGRzLmluY2x1ZGVzKGZpZWxkLm5hbWUpLFxuICAgICkgYXMgRmllbGRBZmZlY3RpbmdEYXRhW11cbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXSwibmFtZXMiOlsiZ2V0VGV4dEZpZWxkc1RvQmVTZWFyY2hlZCIsImxpc3RTZWFyY2hhYmxlRmllbGRzIiwiZmllbGRzIiwiZmxhdHRlbmVkRmllbGRzIiwiZmxhdHRlblRvcExldmVsRmllbGRzIiwiZmlsdGVyIiwiZmllbGQiLCJmaWVsZEFmZmVjdHNEYXRhIiwiaW5jbHVkZXMiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7OytCQUthQTs7O2VBQUFBOzs7dUJBSG9COzJCQUNLO0FBRS9CLE1BQU1BLDRCQUE0QixDQUN2Q0Msc0JBQ0FDO0lBRUEsSUFBSUQsc0JBQXNCO1FBQ3hCLE1BQU1FLGtCQUFrQkMsSUFBQUEsZ0NBQXFCLEVBQUNGO1FBQzlDLE9BQU9DLGdCQUFnQkUsTUFBTSxDQUMzQixDQUFDQyxRQUFVQyxJQUFBQSx1QkFBZ0IsRUFBQ0QsVUFBVUwscUJBQXFCTyxRQUFRLENBQUNGLE1BQU1HLElBQUk7SUFFbEY7SUFFQSxPQUFPO0FBQ1QifQ==
@@ -0,0 +1,149 @@
1
+ 'use client';
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "ListControls", {
7
+ enumerable: true,
8
+ get: function() {
9
+ return ListControls;
10
+ }
11
+ });
12
+ const _windowinfo = require("@faceless-ui/window-info");
13
+ const _translations = require("@payloadcms/translations");
14
+ const _types = require("payload/types");
15
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
16
+ const _reactanimateheight = /*#__PURE__*/ _interop_require_default(require("react-animate-height"));
17
+ const _Chevron = require("../../icons/Chevron");
18
+ const _SearchParams = require("../../providers/SearchParams");
19
+ const _Translation = require("../../providers/Translation");
20
+ const _ColumnSelector = /*#__PURE__*/ _interop_require_default(require("../ColumnSelector"));
21
+ const _DeleteMany = require("../DeleteMany");
22
+ const _EditMany = require("../EditMany");
23
+ const _Pill = /*#__PURE__*/ _interop_require_default(require("../Pill"));
24
+ const _PublishMany = require("../PublishMany");
25
+ const _SearchFilter = /*#__PURE__*/ _interop_require_default(require("../SearchFilter"));
26
+ const _UnpublishMany = require("../UnpublishMany");
27
+ const _WhereBuilder = /*#__PURE__*/ _interop_require_default(require("../WhereBuilder"));
28
+ const _validateWhereQuery = /*#__PURE__*/ _interop_require_default(require("../WhereBuilder/validateWhereQuery"));
29
+ require("./index.scss");
30
+ function _interop_require_default(obj) {
31
+ return obj && obj.__esModule ? obj : {
32
+ default: obj
33
+ };
34
+ }
35
+ function _getRequireWildcardCache(nodeInterop) {
36
+ if (typeof WeakMap !== "function") return null;
37
+ var cacheBabelInterop = new WeakMap();
38
+ var cacheNodeInterop = new WeakMap();
39
+ return (_getRequireWildcardCache = function(nodeInterop) {
40
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
41
+ })(nodeInterop);
42
+ }
43
+ function _interop_require_wildcard(obj, nodeInterop) {
44
+ if (!nodeInterop && obj && obj.__esModule) {
45
+ return obj;
46
+ }
47
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
48
+ return {
49
+ default: obj
50
+ };
51
+ }
52
+ var cache = _getRequireWildcardCache(nodeInterop);
53
+ if (cache && cache.has(obj)) {
54
+ return cache.get(obj);
55
+ }
56
+ var newObj = {
57
+ __proto__: null
58
+ };
59
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
60
+ for(var key in obj){
61
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
62
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
63
+ if (desc && (desc.get || desc.set)) {
64
+ Object.defineProperty(newObj, key, desc);
65
+ } else {
66
+ newObj[key] = obj[key];
67
+ }
68
+ }
69
+ }
70
+ newObj.default = obj;
71
+ if (cache) {
72
+ cache.set(obj, newObj);
73
+ }
74
+ return newObj;
75
+ }
76
+ const baseClass = 'list-controls';
77
+ const ListControls = (props)=>{
78
+ const { collectionConfig, enableColumns = true, enableSort = false, handleSearchChange, handleSortChange, handleWhereChange, modifySearchQuery = true, textFieldsToBeSearched, titleField } = props;
79
+ const { searchParams } = (0, _SearchParams.useSearchParams)();
80
+ const shouldInitializeWhereOpened = (0, _validateWhereQuery.default)(searchParams?.where);
81
+ const [visibleDrawer, setVisibleDrawer] = (0, _react.useState)(shouldInitializeWhereOpened ? 'where' : undefined);
82
+ const { i18n, t } = (0, _Translation.useTranslation)();
83
+ const { breakpoints: { s: smallBreak } } = (0, _windowinfo.useWindowInfo)();
84
+ return /*#__PURE__*/ _react.default.createElement("div", {
85
+ className: baseClass
86
+ }, /*#__PURE__*/ _react.default.createElement("div", {
87
+ className: `${baseClass}__wrap`
88
+ }, /*#__PURE__*/ _react.default.createElement(_SearchFilter.default, {
89
+ fieldLabel: (titleField && (0, _translations.getTranslation)(titleField.label || titleField.name, i18n)) ?? undefined,
90
+ fieldName: titleField && (0, _types.fieldAffectsData)(titleField) ? titleField.name : undefined,
91
+ handleChange: handleSearchChange,
92
+ listSearchableFields: textFieldsToBeSearched,
93
+ modifySearchQuery: modifySearchQuery
94
+ }), /*#__PURE__*/ _react.default.createElement("div", {
95
+ className: `${baseClass}__buttons`
96
+ }, /*#__PURE__*/ _react.default.createElement("div", {
97
+ className: `${baseClass}__buttons-wrap`
98
+ }, !smallBreak && /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(_EditMany.EditMany, {
99
+ collection: collectionConfig
100
+ }), /*#__PURE__*/ _react.default.createElement(_PublishMany.PublishMany, {
101
+ collection: collectionConfig
102
+ }), /*#__PURE__*/ _react.default.createElement(_UnpublishMany.UnpublishMany, {
103
+ collection: collectionConfig
104
+ }), /*#__PURE__*/ _react.default.createElement(_DeleteMany.DeleteMany, {
105
+ collection: collectionConfig
106
+ })), enableColumns && /*#__PURE__*/ _react.default.createElement(_Pill.default, {
107
+ "aria-controls": `${baseClass}-columns`,
108
+ "aria-expanded": visibleDrawer === 'columns',
109
+ className: `${baseClass}__toggle-columns ${visibleDrawer === 'columns' ? `${baseClass}__buttons-active` : ''}`,
110
+ icon: /*#__PURE__*/ _react.default.createElement(_Chevron.Chevron, null),
111
+ onClick: ()=>setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined),
112
+ pillStyle: "light"
113
+ }, t('general:columns')), /*#__PURE__*/ _react.default.createElement(_Pill.default, {
114
+ "aria-controls": `${baseClass}-where`,
115
+ "aria-expanded": visibleDrawer === 'where',
116
+ className: `${baseClass}__toggle-where ${visibleDrawer === 'where' ? `${baseClass}__buttons-active` : ''}`,
117
+ icon: /*#__PURE__*/ _react.default.createElement(_Chevron.Chevron, null),
118
+ onClick: ()=>setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined),
119
+ pillStyle: "light"
120
+ }, t('general:filters')), enableSort && /*#__PURE__*/ _react.default.createElement(_Pill.default, {
121
+ "aria-controls": `${baseClass}-sort`,
122
+ "aria-expanded": visibleDrawer === 'sort',
123
+ className: `${baseClass}__toggle-sort`,
124
+ icon: /*#__PURE__*/ _react.default.createElement(_Chevron.Chevron, null),
125
+ onClick: ()=>setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined),
126
+ pillStyle: "light"
127
+ }, t('general:sort'))))), enableColumns && /*#__PURE__*/ _react.default.createElement(_reactanimateheight.default, {
128
+ className: `${baseClass}__columns`,
129
+ height: visibleDrawer === 'columns' ? 'auto' : 0,
130
+ id: `${baseClass}-columns`
131
+ }, /*#__PURE__*/ _react.default.createElement(_ColumnSelector.default, {
132
+ collectionSlug: collectionConfig.slug
133
+ })), /*#__PURE__*/ _react.default.createElement(_reactanimateheight.default, {
134
+ className: `${baseClass}__where`,
135
+ height: visibleDrawer === 'where' ? 'auto' : 0,
136
+ id: `${baseClass}-where`
137
+ }, /*#__PURE__*/ _react.default.createElement(_WhereBuilder.default, {
138
+ collectionPluralLabel: collectionConfig?.labels?.plural,
139
+ collectionSlug: collectionConfig.slug,
140
+ handleChange: handleWhereChange,
141
+ modifySearchQuery: modifySearchQuery
142
+ })), enableSort && /*#__PURE__*/ _react.default.createElement(_reactanimateheight.default, {
143
+ className: `${baseClass}__sort`,
144
+ height: visibleDrawer === 'sort' ? 'auto' : 0,
145
+ id: `${baseClass}-sort`
146
+ }, /*#__PURE__*/ _react.default.createElement("p", null, "Sort Complex")));
147
+ };
148
+
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9MaXN0Q29udHJvbHMvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHsgdXNlV2luZG93SW5mbyB9IGZyb20gJ0BmYWNlbGVzcy11aS93aW5kb3ctaW5mbydcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdHJhbnNsYXRpb25zJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBBbmltYXRlSGVpZ2h0IGZyb20gJ3JlYWN0LWFuaW1hdGUtaGVpZ2h0J1xuXG5pbXBvcnQgdHlwZSB7IFByb3BzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgQ2hldnJvbiB9IGZyb20gJy4uLy4uL2ljb25zL0NoZXZyb24nXG5pbXBvcnQgeyB1c2VTZWFyY2hQYXJhbXMgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvU2VhcmNoUGFyYW1zJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvVHJhbnNsYXRpb24nXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nXG5pbXBvcnQgQ29sdW1uU2VsZWN0b3IgZnJvbSAnLi4vQ29sdW1uU2VsZWN0b3InXG5pbXBvcnQgeyBEZWxldGVNYW55IH0gZnJvbSAnLi4vRGVsZXRlTWFueSdcbmltcG9ydCB7IEVkaXRNYW55IH0gZnJvbSAnLi4vRWRpdE1hbnknXG5pbXBvcnQgUGlsbCBmcm9tICcuLi9QaWxsJ1xuaW1wb3J0IHsgUHVibGlzaE1hbnkgfSBmcm9tICcuLi9QdWJsaXNoTWFueSdcbmltcG9ydCBTZWFyY2hGaWx0ZXIgZnJvbSAnLi4vU2VhcmNoRmlsdGVyJ1xuaW1wb3J0IFNvcnRDb21wbGV4IGZyb20gJy4uL1NvcnRDb21wbGV4J1xuaW1wb3J0IHsgVW5wdWJsaXNoTWFueSB9IGZyb20gJy4uL1VucHVibGlzaE1hbnknXG5pbXBvcnQgV2hlcmVCdWlsZGVyIGZyb20gJy4uL1doZXJlQnVpbGRlcidcbmltcG9ydCB2YWxpZGF0ZVdoZXJlUXVlcnkgZnJvbSAnLi4vV2hlcmVCdWlsZGVyL3ZhbGlkYXRlV2hlcmVRdWVyeSdcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnbGlzdC1jb250cm9scydcblxuLyoqXG4gKiBUaGUgTGlzdENvbnRyb2xzIGNvbXBvbmVudCBpcyB1c2VkIHRvIHJlbmRlciB0aGUgY29udHJvbHMgKHNlYXJjaCwgZmlsdGVyLCB3aGVyZSlcbiAqIGZvciBhIGNvbGxlY3Rpb24ncyBsaXN0IHZpZXcuIFlvdSBjYW4gZmluZCB0aG9zZSBkaXJlY3RseSBhYm92ZSB0aGUgdGFibGUgd2hpY2ggbGlzdHNcbiAqIHRoZSBjb2xsZWN0aW9uJ3MgZG9jdW1lbnRzLlxuICovXG5leHBvcnQgY29uc3QgTGlzdENvbnRyb2xzOiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGNvbGxlY3Rpb25Db25maWcsXG4gICAgZW5hYmxlQ29sdW1ucyA9IHRydWUsXG4gICAgZW5hYmxlU29ydCA9IGZhbHNlLFxuICAgIGhhbmRsZVNlYXJjaENoYW5nZSxcbiAgICBoYW5kbGVTb3J0Q2hhbmdlLFxuICAgIGhhbmRsZVdoZXJlQ2hhbmdlLFxuICAgIG1vZGlmeVNlYXJjaFF1ZXJ5ID0gdHJ1ZSxcbiAgICB0ZXh0RmllbGRzVG9CZVNlYXJjaGVkLFxuICAgIHRpdGxlRmllbGQsXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IHsgc2VhcmNoUGFyYW1zIH0gPSB1c2VTZWFyY2hQYXJhbXMoKVxuICBjb25zdCBzaG91bGRJbml0aWFsaXplV2hlcmVPcGVuZWQgPSB2YWxpZGF0ZVdoZXJlUXVlcnkoc2VhcmNoUGFyYW1zPy53aGVyZSlcblxuICBjb25zdCBbdmlzaWJsZURyYXdlciwgc2V0VmlzaWJsZURyYXdlcl0gPSB1c2VTdGF0ZTwnY29sdW1ucycgfCAnc29ydCcgfCAnd2hlcmUnPihcbiAgICBzaG91bGRJbml0aWFsaXplV2hlcmVPcGVuZWQgPyAnd2hlcmUnIDogdW5kZWZpbmVkLFxuICApXG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oKVxuICBjb25zdCB7XG4gICAgYnJlYWtwb2ludHM6IHsgczogc21hbGxCcmVhayB9LFxuICB9ID0gdXNlV2luZG93SW5mbygpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17YmFzZUNsYXNzfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X193cmFwYH0+XG4gICAgICAgIDxTZWFyY2hGaWx0ZXJcbiAgICAgICAgICBmaWVsZExhYmVsPXtcbiAgICAgICAgICAgICh0aXRsZUZpZWxkICYmIGdldFRyYW5zbGF0aW9uKHRpdGxlRmllbGQubGFiZWwgfHwgdGl0bGVGaWVsZC5uYW1lLCBpMThuKSkgPz8gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGZpZWxkTmFtZT17dGl0bGVGaWVsZCAmJiBmaWVsZEFmZmVjdHNEYXRhKHRpdGxlRmllbGQpID8gdGl0bGVGaWVsZC5uYW1lIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGhhbmRsZUNoYW5nZT17aGFuZGxlU2VhcmNoQ2hhbmdlfVxuICAgICAgICAgIGxpc3RTZWFyY2hhYmxlRmllbGRzPXt0ZXh0RmllbGRzVG9CZVNlYXJjaGVkfVxuICAgICAgICAgIG1vZGlmeVNlYXJjaFF1ZXJ5PXttb2RpZnlTZWFyY2hRdWVyeX1cbiAgICAgICAgLz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2J1dHRvbnNgfT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fYnV0dG9ucy13cmFwYH0+XG4gICAgICAgICAgICB7IXNtYWxsQnJlYWsgJiYgKFxuICAgICAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgICAgICAgPEVkaXRNYW55IGNvbGxlY3Rpb249e2NvbGxlY3Rpb25Db25maWd9IC8+XG4gICAgICAgICAgICAgICAgPFB1Ymxpc2hNYW55IGNvbGxlY3Rpb249e2NvbGxlY3Rpb25Db25maWd9IC8+XG4gICAgICAgICAgICAgICAgPFVucHVibGlzaE1hbnkgY29sbGVjdGlvbj17Y29sbGVjdGlvbkNvbmZpZ30gLz5cbiAgICAgICAgICAgICAgICA8RGVsZXRlTWFueSBjb2xsZWN0aW9uPXtjb2xsZWN0aW9uQ29uZmlnfSAvPlxuICAgICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtlbmFibGVDb2x1bW5zICYmIChcbiAgICAgICAgICAgICAgPFBpbGxcbiAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPXtgJHtiYXNlQ2xhc3N9LWNvbHVtbnNgfVxuICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e3Zpc2libGVEcmF3ZXIgPT09ICdjb2x1bW5zJ31cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3RvZ2dsZS1jb2x1bW5zICR7XG4gICAgICAgICAgICAgICAgICB2aXNpYmxlRHJhd2VyID09PSAnY29sdW1ucycgPyBgJHtiYXNlQ2xhc3N9X19idXR0b25zLWFjdGl2ZWAgOiAnJ1xuICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgIGljb249ezxDaGV2cm9uIC8+fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgICAgICBzZXRWaXNpYmxlRHJhd2VyKHZpc2libGVEcmF3ZXIgIT09ICdjb2x1bW5zJyA/ICdjb2x1bW5zJyA6IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGlsbFN0eWxlPVwibGlnaHRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3QoJ2dlbmVyYWw6Y29sdW1ucycpfVxuICAgICAgICAgICAgICA8L1BpbGw+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFBpbGxcbiAgICAgICAgICAgICAgYXJpYS1jb250cm9scz17YCR7YmFzZUNsYXNzfS13aGVyZWB9XG4gICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e3Zpc2libGVEcmF3ZXIgPT09ICd3aGVyZSd9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdG9nZ2xlLXdoZXJlICR7XG4gICAgICAgICAgICAgICAgdmlzaWJsZURyYXdlciA9PT0gJ3doZXJlJyA/IGAke2Jhc2VDbGFzc31fX2J1dHRvbnMtYWN0aXZlYCA6ICcnXG4gICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICBpY29uPXs8Q2hldnJvbiAvPn1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0VmlzaWJsZURyYXdlcih2aXNpYmxlRHJhd2VyICE9PSAnd2hlcmUnID8gJ3doZXJlJyA6IHVuZGVmaW5lZCl9XG4gICAgICAgICAgICAgIHBpbGxTdHlsZT1cImxpZ2h0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3QoJ2dlbmVyYWw6ZmlsdGVycycpfVxuICAgICAgICAgICAgPC9QaWxsPlxuICAgICAgICAgICAge2VuYWJsZVNvcnQgJiYgKFxuICAgICAgICAgICAgICA8UGlsbFxuICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9e2Ake2Jhc2VDbGFzc30tc29ydGB9XG4gICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17dmlzaWJsZURyYXdlciA9PT0gJ3NvcnQnfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdG9nZ2xlLXNvcnRgfVxuICAgICAgICAgICAgICAgIGljb249ezxDaGV2cm9uIC8+fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFZpc2libGVEcmF3ZXIodmlzaWJsZURyYXdlciAhPT0gJ3NvcnQnID8gJ3NvcnQnIDogdW5kZWZpbmVkKX1cbiAgICAgICAgICAgICAgICBwaWxsU3R5bGU9XCJsaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dCgnZ2VuZXJhbDpzb3J0Jyl9XG4gICAgICAgICAgICAgIDwvUGlsbD5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB7ZW5hYmxlQ29sdW1ucyAmJiAoXG4gICAgICAgIDxBbmltYXRlSGVpZ2h0XG4gICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19jb2x1bW5zYH1cbiAgICAgICAgICBoZWlnaHQ9e3Zpc2libGVEcmF3ZXIgPT09ICdjb2x1bW5zJyA/ICdhdXRvJyA6IDB9XG4gICAgICAgICAgaWQ9e2Ake2Jhc2VDbGFzc30tY29sdW1uc2B9XG4gICAgICAgID5cbiAgICAgICAgICA8Q29sdW1uU2VsZWN0b3IgY29sbGVjdGlvblNsdWc9e2NvbGxlY3Rpb25Db25maWcuc2x1Z30gLz5cbiAgICAgICAgPC9BbmltYXRlSGVpZ2h0PlxuICAgICAgKX1cbiAgICAgIDxBbmltYXRlSGVpZ2h0XG4gICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fd2hlcmVgfVxuICAgICAgICBoZWlnaHQ9e3Zpc2libGVEcmF3ZXIgPT09ICd3aGVyZScgPyAnYXV0bycgOiAwfVxuICAgICAgICBpZD17YCR7YmFzZUNsYXNzfS13aGVyZWB9XG4gICAgICA+XG4gICAgICAgIDxXaGVyZUJ1aWxkZXJcbiAgICAgICAgICBjb2xsZWN0aW9uUGx1cmFsTGFiZWw9e2NvbGxlY3Rpb25Db25maWc/LmxhYmVscz8ucGx1cmFsfVxuICAgICAgICAgIGNvbGxlY3Rpb25TbHVnPXtjb2xsZWN0aW9uQ29uZmlnLnNsdWd9XG4gICAgICAgICAgaGFuZGxlQ2hhbmdlPXtoYW5kbGVXaGVyZUNoYW5nZX1cbiAgICAgICAgICBtb2RpZnlTZWFyY2hRdWVyeT17bW9kaWZ5U2VhcmNoUXVlcnl9XG4gICAgICAgIC8+XG4gICAgICA8L0FuaW1hdGVIZWlnaHQ+XG4gICAgICB7ZW5hYmxlU29ydCAmJiAoXG4gICAgICAgIDxBbmltYXRlSGVpZ2h0XG4gICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19zb3J0YH1cbiAgICAgICAgICBoZWlnaHQ9e3Zpc2libGVEcmF3ZXIgPT09ICdzb3J0JyA/ICdhdXRvJyA6IDB9XG4gICAgICAgICAgaWQ9e2Ake2Jhc2VDbGFzc30tc29ydGB9XG4gICAgICAgID5cbiAgICAgICAgICA8cD5Tb3J0IENvbXBsZXg8L3A+XG4gICAgICAgICAgey8qIDxTb3J0Q29tcGxleFxuICAgICAgICAgICAgY29sbGVjdGlvbj17Y29sbGVjdGlvbn1cbiAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17aGFuZGxlU29ydENoYW5nZX1cbiAgICAgICAgICAgIG1vZGlmeVNlYXJjaFF1ZXJ5PXttb2RpZnlTZWFyY2hRdWVyeX1cbiAgICAgICAgICAvPiAqL31cbiAgICAgICAgPC9BbmltYXRlSGVpZ2h0PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkxpc3RDb250cm9scyIsImJhc2VDbGFzcyIsInByb3BzIiwiY29sbGVjdGlvbkNvbmZpZyIsImVuYWJsZUNvbHVtbnMiLCJlbmFibGVTb3J0IiwiaGFuZGxlU2VhcmNoQ2hhbmdlIiwiaGFuZGxlU29ydENoYW5nZSIsImhhbmRsZVdoZXJlQ2hhbmdlIiwibW9kaWZ5U2VhcmNoUXVlcnkiLCJ0ZXh0RmllbGRzVG9CZVNlYXJjaGVkIiwidGl0bGVGaWVsZCIsInNlYXJjaFBhcmFtcyIsInVzZVNlYXJjaFBhcmFtcyIsInNob3VsZEluaXRpYWxpemVXaGVyZU9wZW5lZCIsInZhbGlkYXRlV2hlcmVRdWVyeSIsIndoZXJlIiwidmlzaWJsZURyYXdlciIsInNldFZpc2libGVEcmF3ZXIiLCJ1c2VTdGF0ZSIsInVuZGVmaW5lZCIsImkxOG4iLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJicmVha3BvaW50cyIsInMiLCJzbWFsbEJyZWFrIiwidXNlV2luZG93SW5mbyIsImRpdiIsImNsYXNzTmFtZSIsIlNlYXJjaEZpbHRlciIsImZpZWxkTGFiZWwiLCJnZXRUcmFuc2xhdGlvbiIsImxhYmVsIiwibmFtZSIsImZpZWxkTmFtZSIsImZpZWxkQWZmZWN0c0RhdGEiLCJoYW5kbGVDaGFuZ2UiLCJsaXN0U2VhcmNoYWJsZUZpZWxkcyIsIlJlYWN0IiwiRnJhZ21lbnQiLCJFZGl0TWFueSIsImNvbGxlY3Rpb24iLCJQdWJsaXNoTWFueSIsIlVucHVibGlzaE1hbnkiLCJEZWxldGVNYW55IiwiUGlsbCIsImFyaWEtY29udHJvbHMiLCJhcmlhLWV4cGFuZGVkIiwiaWNvbiIsIkNoZXZyb24iLCJvbkNsaWNrIiwicGlsbFN0eWxlIiwiQW5pbWF0ZUhlaWdodCIsImhlaWdodCIsImlkIiwiQ29sdW1uU2VsZWN0b3IiLCJjb2xsZWN0aW9uU2x1ZyIsInNsdWciLCJXaGVyZUJ1aWxkZXIiLCJjb2xsZWN0aW9uUGx1cmFsTGFiZWwiLCJsYWJlbHMiLCJwbHVyYWwiLCJwIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7K0JBZ0NhQTs7O2VBQUFBOzs7NEJBL0JpQjs4QkFDQzt1QkFDRTsrREFDRDsyRUFDTjt5QkFJRjs4QkFDUTs2QkFDRDt1RUFFSjs0QkFDQTswQkFDRjs2REFDUjs2QkFDVztxRUFDSDsrQkFFSztxRUFDTDsyRUFDTTtRQUN4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFUCxNQUFNQyxZQUFZO0FBT1gsTUFBTUQsZUFBZ0MsQ0FBQ0U7SUFDNUMsTUFBTSxFQUNKQyxnQkFBZ0IsRUFDaEJDLGdCQUFnQixJQUFJLEVBQ3BCQyxhQUFhLEtBQUssRUFDbEJDLGtCQUFrQixFQUNsQkMsZ0JBQWdCLEVBQ2hCQyxpQkFBaUIsRUFDakJDLG9CQUFvQixJQUFJLEVBQ3hCQyxzQkFBc0IsRUFDdEJDLFVB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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,315 @@
1
+ 'use client';
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "ListDrawerContent", {
7
+ enumerable: true,
8
+ get: function() {
9
+ return ListDrawerContent;
10
+ }
11
+ });
12
+ const _modal = require("@faceless-ui/modal");
13
+ const _translations = require("@payloadcms/translations");
14
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
15
+ const _ = require(".");
16
+ const _Label = /*#__PURE__*/ _interop_require_default(require("../../forms/Label"));
17
+ const _usePayloadAPI = /*#__PURE__*/ _interop_require_default(require("../../hooks/usePayloadAPI"));
18
+ const _useUseAsTitle = require("../../hooks/useUseAsTitle");
19
+ const _X = require("../../icons/X");
20
+ const _Auth = require("../../providers/Auth");
21
+ const _ComponentMapProvider = require("../../providers/ComponentMapProvider");
22
+ const _Config = require("../../providers/Config");
23
+ const _ListInfo = require("../../providers/ListInfo");
24
+ const _Preferences = require("../../providers/Preferences");
25
+ const _Translation = require("../../providers/Translation");
26
+ const _DocumentDrawer = require("../DocumentDrawer");
27
+ const _Loading = require("../Loading");
28
+ const _Pill = /*#__PURE__*/ _interop_require_default(require("../Pill"));
29
+ const _ReactSelect = /*#__PURE__*/ _interop_require_default(require("../ReactSelect"));
30
+ const _TableColumns = require("../TableColumns");
31
+ const _ViewDescription = /*#__PURE__*/ _interop_require_default(require("../ViewDescription"));
32
+ function _interop_require_default(obj) {
33
+ return obj && obj.__esModule ? obj : {
34
+ default: obj
35
+ };
36
+ }
37
+ function _getRequireWildcardCache(nodeInterop) {
38
+ if (typeof WeakMap !== "function") return null;
39
+ var cacheBabelInterop = new WeakMap();
40
+ var cacheNodeInterop = new WeakMap();
41
+ return (_getRequireWildcardCache = function(nodeInterop) {
42
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
43
+ })(nodeInterop);
44
+ }
45
+ function _interop_require_wildcard(obj, nodeInterop) {
46
+ if (!nodeInterop && obj && obj.__esModule) {
47
+ return obj;
48
+ }
49
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
50
+ return {
51
+ default: obj
52
+ };
53
+ }
54
+ var cache = _getRequireWildcardCache(nodeInterop);
55
+ if (cache && cache.has(obj)) {
56
+ return cache.get(obj);
57
+ }
58
+ var newObj = {
59
+ __proto__: null
60
+ };
61
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
62
+ for(var key in obj){
63
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
64
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
65
+ if (desc && (desc.get || desc.set)) {
66
+ Object.defineProperty(newObj, key, desc);
67
+ } else {
68
+ newObj[key] = obj[key];
69
+ }
70
+ }
71
+ }
72
+ newObj.default = obj;
73
+ if (cache) {
74
+ cache.set(obj, newObj);
75
+ }
76
+ return newObj;
77
+ }
78
+ const hoistQueryParamsToAnd = (where, queryParams)=>{
79
+ if ('and' in where) {
80
+ where.and.push(queryParams);
81
+ } else if ('or' in where) {
82
+ where = {
83
+ and: [
84
+ where,
85
+ queryParams
86
+ ]
87
+ };
88
+ } else {
89
+ where = {
90
+ and: [
91
+ where,
92
+ queryParams
93
+ ]
94
+ };
95
+ }
96
+ return where;
97
+ };
98
+ const ListDrawerContent = ({ collectionSlugs, customHeader, drawerSlug, filterOptions, onSelect, selectedCollection })=>{
99
+ const { i18n, t } = (0, _Translation.useTranslation)();
100
+ const { permissions } = (0, _Auth.useAuth)();
101
+ const { setPreference } = (0, _Preferences.usePreferences)();
102
+ const { closeModal, isModalOpen } = (0, _modal.useModal)();
103
+ const [limit, setLimit] = (0, _react.useState)();
104
+ const [sort, setSort] = (0, _react.useState)(null);
105
+ const [page, setPage] = (0, _react.useState)(1);
106
+ const [where, setWhere] = (0, _react.useState)(null);
107
+ const [search, setSearch] = (0, _react.useState)('');
108
+ const { componentMap } = (0, _ComponentMapProvider.useComponentMap)();
109
+ const { collections, routes: { api }, serverURL } = (0, _Config.useConfig)();
110
+ const enabledCollectionConfigs = collections.filter(({ slug })=>{
111
+ return collectionSlugs.includes(slug);
112
+ });
113
+ const [selectedCollectionConfig, setSelectedCollectionConfig] = (0, _react.useState)(()=>{
114
+ return enabledCollectionConfigs.find(({ slug })=>slug === selectedCollection) || enabledCollectionConfigs?.[0];
115
+ });
116
+ const { List } = componentMap.collections?.[selectedCollectionConfig?.slug] || {};
117
+ const [selectedOption, setSelectedOption] = (0, _react.useState)(()=>selectedCollectionConfig ? {
118
+ label: (0, _translations.getTranslation)(selectedCollectionConfig.labels.singular, i18n),
119
+ value: selectedCollectionConfig.slug
120
+ } : undefined);
121
+ // const [fields, setFields] = useState<Field[]>(() => formatFields(selectedCollectionConfig))
122
+ const titleField = (0, _useUseAsTitle.useUseTitleField)(selectedCollectionConfig);
123
+ (0, _react.useEffect)(()=>{
124
+ // setFields(formatFields(selectedCollectionConfig))
125
+ }, [
126
+ selectedCollectionConfig
127
+ ]);
128
+ // allow external control of selected collection, same as the initial state logic above
129
+ (0, _react.useEffect)(()=>{
130
+ if (selectedCollection) {
131
+ // if passed a selection, find it and check if it's enabled
132
+ const selectedConfig = enabledCollectionConfigs.find(({ slug })=>slug === selectedCollection) || enabledCollectionConfigs?.[0];
133
+ setSelectedCollectionConfig(selectedConfig);
134
+ }
135
+ }, [
136
+ selectedCollection,
137
+ enabledCollectionConfigs,
138
+ onSelect,
139
+ t
140
+ ]);
141
+ const preferenceKey = `${selectedCollectionConfig.slug}-list`;
142
+ // this is the 'create new' drawer
143
+ const [DocumentDrawer, DocumentDrawerToggler, { drawerSlug: documentDrawerSlug }] = (0, _DocumentDrawer.useDocumentDrawer)({
144
+ collectionSlug: selectedCollectionConfig.slug
145
+ });
146
+ (0, _react.useEffect)(()=>{
147
+ if (selectedOption) {
148
+ setSelectedCollectionConfig(enabledCollectionConfigs.find(({ slug })=>selectedOption.value === slug));
149
+ }
150
+ }, [
151
+ selectedOption,
152
+ enabledCollectionConfigs
153
+ ]);
154
+ const collectionPermissions = permissions?.collections?.[selectedCollectionConfig?.slug];
155
+ const hasCreatePermission = collectionPermissions?.create?.permission;
156
+ // If modal is open, get active page of upload gallery
157
+ const isOpen = isModalOpen(drawerSlug);
158
+ const apiURL = isOpen ? `${serverURL}${api}/${selectedCollectionConfig.slug}` : null;
159
+ const [cacheBust, dispatchCacheBust] = (0, _react.useReducer)((state)=>state + 1, 0) // used to force a re-fetch even when apiURL is unchanged
160
+ ;
161
+ const [{ data, isError, isLoading: isLoadingList }, { setParams }] = (0, _usePayloadAPI.default)(apiURL, {});
162
+ const moreThanOneAvailableCollection = enabledCollectionConfigs.length > 1;
163
+ (0, _react.useEffect)(()=>{
164
+ const { slug, admin: { listSearchableFields } = {}, versions } = selectedCollectionConfig;
165
+ const params = {};
166
+ let copyOfWhere = {
167
+ ...where || {}
168
+ };
169
+ const filterOption = filterOptions?.[slug];
170
+ if (filterOptions && typeof filterOption !== 'boolean') {
171
+ copyOfWhere = hoistQueryParamsToAnd(copyOfWhere, filterOption);
172
+ }
173
+ if (search) {
174
+ const searchAsConditions = (listSearchableFields || [
175
+ titleField?.name
176
+ ]).map((fieldName)=>{
177
+ return {
178
+ [fieldName]: {
179
+ like: search
180
+ }
181
+ };
182
+ }, []);
183
+ if (searchAsConditions.length > 0) {
184
+ const searchFilter = {
185
+ or: [
186
+ ...searchAsConditions
187
+ ]
188
+ };
189
+ copyOfWhere = hoistQueryParamsToAnd(copyOfWhere, searchFilter);
190
+ }
191
+ }
192
+ if (page) params.page = page;
193
+ if (sort) params.sort = sort;
194
+ if (cacheBust) params.cacheBust = cacheBust;
195
+ if (copyOfWhere) params.where = copyOfWhere;
196
+ if (versions?.drafts) params.draft = 'true';
197
+ setParams(params);
198
+ }, [
199
+ page,
200
+ sort,
201
+ where,
202
+ search,
203
+ cacheBust,
204
+ filterOptions,
205
+ selectedCollectionConfig,
206
+ t,
207
+ setParams,
208
+ titleField?.name
209
+ ]);
210
+ (0, _react.useEffect)(()=>{
211
+ const newPreferences = {
212
+ limit,
213
+ sort
214
+ };
215
+ setPreference(preferenceKey, newPreferences, true);
216
+ }, [
217
+ sort,
218
+ limit,
219
+ setPreference,
220
+ preferenceKey
221
+ ]);
222
+ const onCreateNew = (0, _react.useCallback)(({ doc })=>{
223
+ if (typeof onSelect === 'function') {
224
+ onSelect({
225
+ collectionSlug: selectedCollectionConfig.slug,
226
+ docID: doc.id
227
+ });
228
+ }
229
+ dispatchCacheBust();
230
+ closeModal(documentDrawerSlug);
231
+ closeModal(drawerSlug);
232
+ }, [
233
+ closeModal,
234
+ documentDrawerSlug,
235
+ drawerSlug,
236
+ onSelect,
237
+ selectedCollectionConfig
238
+ ]);
239
+ if (!selectedCollectionConfig || isError) {
240
+ return null;
241
+ }
242
+ if (isLoadingList) {
243
+ return /*#__PURE__*/ _react.default.createElement(_Loading.LoadingOverlay, null);
244
+ }
245
+ return /*#__PURE__*/ _react.default.createElement(_ListInfo.ListInfoProvider, {
246
+ Header: /*#__PURE__*/ _react.default.createElement("header", {
247
+ className: `${_.baseClass}__header`
248
+ }, /*#__PURE__*/ _react.default.createElement("div", {
249
+ className: `${_.baseClass}__header-wrap`
250
+ }, /*#__PURE__*/ _react.default.createElement("div", {
251
+ className: `${_.baseClass}__header-content`
252
+ }, /*#__PURE__*/ _react.default.createElement("h2", {
253
+ className: `${_.baseClass}__header-text`
254
+ }, !customHeader ? (0, _translations.getTranslation)(selectedCollectionConfig?.labels?.plural, i18n) : customHeader), hasCreatePermission && /*#__PURE__*/ _react.default.createElement(DocumentDrawerToggler, {
255
+ className: `${_.baseClass}__create-new-button`
256
+ }, /*#__PURE__*/ _react.default.createElement(_Pill.default, null, t('general:createNew')))), /*#__PURE__*/ _react.default.createElement("button", {
257
+ className: `${_.baseClass}__header-close`,
258
+ onClick: ()=>{
259
+ closeModal(drawerSlug);
260
+ },
261
+ type: "button"
262
+ }, /*#__PURE__*/ _react.default.createElement(_X.X, null))), selectedCollectionConfig?.admin?.description && /*#__PURE__*/ _react.default.createElement("div", {
263
+ className: `${_.baseClass}__sub-header`
264
+ }, /*#__PURE__*/ _react.default.createElement(_ViewDescription.default, {
265
+ description: selectedCollectionConfig.admin.description
266
+ })), moreThanOneAvailableCollection && /*#__PURE__*/ _react.default.createElement("div", {
267
+ className: `${_.baseClass}__select-collection-wrap`
268
+ }, /*#__PURE__*/ _react.default.createElement(_Label.default, {
269
+ label: t('upload:selectCollectionToBrowse')
270
+ }), /*#__PURE__*/ _react.default.createElement(_ReactSelect.default, {
271
+ className: `${_.baseClass}__select-collection`,
272
+ onChange: setSelectedOption,
273
+ options: enabledCollectionConfigs.map((coll)=>({
274
+ label: (0, _translations.getTranslation)(coll.labels.singular, i18n),
275
+ value: coll.slug
276
+ })),
277
+ value: selectedOption
278
+ }))),
279
+ collectionSlug: selectedCollectionConfig.slug,
280
+ data: data,
281
+ handlePageChange: setPage,
282
+ handlePerPageChange: setLimit,
283
+ handleSearchChange: setSearch,
284
+ handleSortChange: setSort,
285
+ handleWhereChange: setWhere,
286
+ hasCreatePermission: hasCreatePermission,
287
+ limit: limit || selectedCollectionConfig?.admin?.pagination?.defaultLimit,
288
+ modifySearchParams: false,
289
+ newDocumentURL: null,
290
+ setLimit: setLimit,
291
+ setSort: setSort,
292
+ titleField: titleField
293
+ }, /*#__PURE__*/ _react.default.createElement(_TableColumns.TableColumnsProvider, {
294
+ cellProps: [
295
+ {
296
+ className: `${_.baseClass}__first-cell`,
297
+ link: false,
298
+ onClick: ({ collectionSlug: rowColl, rowData })=>{
299
+ if (typeof onSelect === 'function') {
300
+ onSelect({
301
+ collectionSlug: rowColl,
302
+ docID: rowData.id
303
+ });
304
+ }
305
+ }
306
+ }
307
+ ],
308
+ collectionSlug: selectedCollectionConfig.slug,
309
+ listPreferences: {}
310
+ }, List, /*#__PURE__*/ _react.default.createElement(DocumentDrawer, {
311
+ onSave: onCreateNew
312
+ })));
313
+ };
314
+
315
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9MaXN0RHJhd2VyL0RyYXdlckNvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAncGF5bG9hZC90eXBlcydcbmltcG9ydCB0eXBlIHsgV2hlcmUgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VNb2RhbCB9IGZyb20gJ0BmYWNlbGVzcy11aS9tb2RhbCdcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdHJhbnNsYXRpb25zJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZHVjZXIsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB0eXBlIHsgTGlzdFByZWZlcmVuY2VzIH0gZnJvbSAnLi4vVGFibGVDb2x1bW5zJ1xuaW1wb3J0IHR5cGUgeyBMaXN0RHJhd2VyUHJvcHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBiYXNlQ2xhc3MgfSBmcm9tICcuJ1xuaW1wb3J0IExhYmVsIGZyb20gJy4uLy4uL2Zvcm1zL0xhYmVsJ1xuaW1wb3J0IHVzZVBheWxvYWRBUEkgZnJvbSAnLi4vLi4vaG9va3MvdXNlUGF5bG9hZEFQSSdcbmltcG9ydCB7IHVzZVVzZVRpdGxlRmllbGQgfSBmcm9tICcuLi8uLi9ob29rcy91c2VVc2VBc1RpdGxlJ1xuaW1wb3J0IHsgWCB9IGZyb20gJy4uLy4uL2ljb25zL1gnXG5pbXBvcnQgeyB1c2VBdXRoIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL0F1dGgnXG5pbXBvcnQgeyB1c2VDb21wb25lbnRNYXAgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvQ29tcG9uZW50TWFwUHJvdmlkZXInXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvQ29uZmlnJ1xuaW1wb3J0IHsgTGlzdEluZm9Qcm92aWRlciB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9MaXN0SW5mbydcbmltcG9ydCB7IHVzZVByZWZlcmVuY2VzIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL1ByZWZlcmVuY2VzJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvVHJhbnNsYXRpb24nXG5pbXBvcnQgeyB1c2VEb2N1bWVudERyYXdlciB9IGZyb20gJy4uL0RvY3VtZW50RHJhd2VyJ1xuaW1wb3J0IHsgTG9hZGluZ092ZXJsYXkgfSBmcm9tICcuLi9Mb2FkaW5nJ1xuaW1wb3J0IFBpbGwgZnJvbSAnLi4vUGlsbCdcbmltcG9ydCBSZWFjdFNlbGVjdCBmcm9tICcuLi9SZWFjdFNlbGVjdCdcbmltcG9ydCB7IFRhYmxlQ29sdW1uc1Byb3ZpZGVyIH0gZnJvbSAnLi4vVGFibGVDb2x1bW5zJ1xuaW1wb3J0IFZpZXdEZXNjcmlwdGlvbiBmcm9tICcuLi9WaWV3RGVzY3JpcHRpb24nXG5cbmNvbnN0IGhvaXN0UXVlcnlQYXJhbXNUb0FuZCA9ICh3aGVyZTogV2hlcmUsIHF1ZXJ5UGFyYW1zOiBXaGVyZSkgPT4ge1xuICBpZiAoJ2FuZCcgaW4gd2hlcmUpIHtcbiAgICB3aGVyZS5hbmQucHVzaChxdWVyeVBhcmFtcylcbiAgfSBlbHNlIGlmICgnb3InIGluIHdoZXJlKSB7XG4gICAgd2hlcmUgPSB7XG4gICAgICBhbmQ6IFt3aGVyZSwgcXVlcnlQYXJhbXNdLFxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB3aGVyZSA9IHtcbiAgICAgIGFuZDogW3doZXJlLCBxdWVyeVBhcmFtc10sXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHdoZXJlXG59XG5cbmV4cG9ydCBjb25zdCBMaXN0RHJhd2VyQ29udGVudDogUmVhY3QuRkM8TGlzdERyYXdlclByb3BzPiA9ICh7XG4gIGNvbGxlY3Rpb25TbHVncyxcbiAgY3VzdG9tSGVhZGVyLFxuICBkcmF3ZXJTbHVnLFxuICBmaWx0ZXJPcHRpb25zLFxuICBvblNlbGVjdCxcbiAgc2VsZWN0ZWRDb2xsZWN0aW9uLFxufSkgPT4ge1xuICBjb25zdCB7IGkxOG4sIHQgfSA9IHVzZVRyYW5zbGF0aW9uKClcbiAgY29uc3QgeyBwZXJtaXNzaW9ucyB9ID0gdXNlQXV0aCgpXG4gIGNvbnN0IHsgc2V0UHJlZmVyZW5jZSB9ID0gdXNlUHJlZmVyZW5jZXMoKVxuICBjb25zdCB7IGNsb3NlTW9kYWwsIGlzTW9kYWxPcGVuIH0gPSB1c2VNb2RhbCgpXG4gIGNvbnN0IFtsaW1pdCwgc2V0TGltaXRdID0gdXNlU3RhdGU8bnVtYmVyPigpXG4gIGNvbnN0IFtzb3J0LCBzZXRTb3J0XSA9IHVzZVN0YXRlPHN0cmluZz4obnVsbClcbiAgY29uc3QgW3BhZ2UsIHNldFBhZ2VdID0gdXNlU3RhdGU8bnVtYmVyPigxKVxuICBjb25zdCBbd2hlcmUsIHNldFdoZXJlXSA9IHVzZVN0YXRlPFdoZXJlPihudWxsKVxuICBjb25zdCBbc2VhcmNoLCBzZXRTZWFyY2hdID0gdXNlU3RhdGU8c3RyaW5nPignJylcblxuICBjb25zdCB7IGNvbXBvbmVudE1hcCB9ID0gdXNlQ29tcG9uZW50TWFwKClcblxuICBjb25zdCB7XG4gICAgY29sbGVjdGlvbnMsXG4gICAgcm91dGVzOiB7IGFwaSB9LFxuICAgIHNlcnZlclVSTCxcbiAgfSA9IHVzZUNvbmZpZygpXG5cbiAgY29uc3QgZW5hYmxlZENvbGxlY3Rpb25Db25maWdzID0gY29sbGVjdGlvbnMuZmlsdGVyKCh7IHNsdWcgfSkgPT4ge1xuICAgIHJldHVybiBjb2xsZWN0aW9uU2x1Z3MuaW5jbHVkZXMoc2x1ZylcbiAgfSlcblxuICBjb25zdCBbc2VsZWN0ZWRDb2xsZWN0aW9uQ29uZmlnLCBzZXRTZWxlY3RlZENvbGxlY3Rpb25Db25maWddID1cbiAgICB1c2VTdGF0ZTxTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnPigoKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBlbmFibGVkQ29sbGVjdGlvbkNvbmZpZ3MuZmluZCgoeyBzbHVnIH0pID0+IHNsdWcgPT09IHNlbGVjdGVkQ29sbGVjdGlvbikgfHxcbiAgICAgICAgZW5hYmxlZENvbGxlY3Rpb25Db25maWdzPy5bMF1cbiAgICAgIClcbiAgICB9KVxuXG4gIGNvbnN0IHsgTGlzdCB9ID0gY29tcG9uZW50TWFwLmNvbGxlY3Rpb25zPy5bc2VsZWN0ZWRDb2xsZWN0aW9uQ29uZmlnPy5zbHVnXSB8fCB7fVxuXG4gIGNvbnN0IFtzZWxlY3RlZE9wdGlvbiwgc2V0U2VsZWN0ZWRPcHRpb25dID0gdXNlU3RhdGU8eyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+KCgpID0+XG4gICAgc2VsZWN0ZWRDb2xsZWN0aW9uQ29uZmlnXG4gICAgICA/IHtcbiAgICAgICAgICBsYWJlbDogZ2V0VHJhbnNsYXRpb24oc2VsZWN0ZWRDb2xsZWN0aW9uQ29uZmlnLmxhYmVscy5zaW5ndWxhciwgaTE4biksXG4gICAgICAgICAgdmFsdWU6IHNlbGVjdGVkQ29sbGVjdGlvbkNvbmZpZy5zbHVnLFxuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZCxcbiAgKVxuXG4gIC8vIGNvbnN0IFtmaWVsZHMsIHNldEZpZWxkc10gPSB1c2VTdGF0ZTxGaWVsZFtdPigoKSA9PiBmb3JtYXRGaWVsZHMoc2VsZWN0ZWRDb2xsZWN0aW9uQ29uZmlnKSlcblxuICBjb25zdCB0aXRsZUZpZWxkID0gdXNlVXNlVGl0bGVGaWVsZChzZWxlY3RlZENvbGxlY3Rpb25Db25maWcpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBzZXRGaWVsZHMoZm9ybWF0RmllbGRzKHNlbGVjdGVkQ29sbGVjdGlvbkNvbmZpZykpXG4gIH0sIFtzZWxlY3RlZENvbGxlY3Rpb25Db25maWddKVxuXG4gIC8vIGFsbG93IGV4dGVybmFsIGNvbnRyb2wgb2Ygc2VsZWN0ZWQgY29sbGVjdGlvbiwgc2FtZSBhcyB0aGUgaW5pdGlhbCBzdGF0ZSBsb2dpYyBhYm92ZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzZWxlY3RlZENvbGxlY3Rpb24pIHtcbiAgICAgIC8vIGlmIHBhc3NlZCBhIHNlbGVjdGlvbiwgZmluZCBpdCBhbmQgY2hlY2sgaWYgaXQncyBlbmFibGVkXG4gICAgICBjb25zdCBzZWxlY3RlZENvbmZpZyA9XG4gICAgICAgIGVuYWJsZWRDb2xsZWN0aW9uQ29uZmlncy5maW5kKCh7IHNsdWcgfSkgPT4gc2x1ZyA9PT0gc2VsZWN0ZWRDb2xsZWN0aW9uKSB8fFxuICAgICAgICBlbmFibGVkQ29sbGVjdGlvbkNvbmZpZ3M/LlswXVxuICAgICAgc2V0U2VsZWN0ZWRDb2xsZWN0aW9uQ29uZmlnKHNlbGVjdGVkQ29uZmlnKVxuICAgIH1cbiAgfSwgW3NlbGVjdGVkQ29sbGVjdGlvbiwgZW5hYmxlZENvbGxlY3Rpb25Db25maWdzLCBvblNlbGVjdCwgdF0pXG5cbiAgY29uc3QgcHJlZmVyZW5jZUtleSA9IGAke3NlbGVjdGVkQ29sbGVjdGlvbkNvbmZpZy5zbHVnfS1saXN0YFxuXG4gIC8vIHRoaXMgaXMgdGhlICdjcmVhdGUgbmV3JyBkcmF3ZXJcbiAgY29uc3QgW0RvY3VtZW50RHJhd2VyLCBEb2N1bWVudERyYXdlclRvZ2dsZXIsIHsgZHJhd2VyU2x1ZzogZG9jdW1lbnREcmF3ZXJTbHVnIH1dID1cbiAgICB1c2VEb2N1bWVudERyYXdlcih7XG4gICAgICBjb2xsZWN0aW9uU2x1Zzogc2VsZWN0ZWRDb2xsZWN0aW9uQ29uZmlnLnNsdWcsXG4gICAgfSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzZWxlY3RlZE9wdGlvbikge1xuICAgICAgc2V0U2VsZWN0ZWRDb2xsZWN0aW9uQ29uZmlnKFxuICAgICAgICBlbmFibGVkQ29sbGVjdGlvbkNvbmZpZ3MuZmluZCgoeyBzbHVnIH0pID0+IHNlbGVjdGVkT3B0aW9uLnZhbHVlID09PSBzbHVnKSxcbiAgICAgIClcbiAgICB9XG4gIH0sIFtzZWxlY3RlZE9wdGlvbiwgZW5hYmxlZENvbGxlY3Rpb25Db25maWdzXSlcblxuICBjb25zdCBjb2xsZWN0aW9uUGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucz8uY29sbGVjdGlvbnM/LltzZWxlY3RlZENvbGxlY3Rpb25Db25maWc/LnNsdWddXG4gIGNvbnN0IGhhc0NyZWF0ZVBlcm1pc3Npb24gPSBjb2xsZWN0aW9uUGVybWlzc2lvbnM/LmNyZWF0ZT8ucGVybWlzc2lvblxuXG4gIC8vIElmIG1vZGFsIGlzIG9wZW4sIGdldCBhY3RpdmUgcGFnZSBvZiB1cGxvYWQgZ2FsbGVyeVxuICBjb25zdCBpc09wZW4gPSBpc01vZGFsT3BlbihkcmF3ZXJTbHVnKVxuICBjb25zdCBhcGlVUkwgPSBpc09wZW4gPyBgJHtzZXJ2ZXJVUkx9JHthcGl9LyR7c2VsZWN0ZWRDb2xsZWN0aW9uQ29uZmlnLnNsdWd9YCA6IG51bGxcbiAgY29uc3QgW2NhY2hlQnVzdCwgZGlzcGF0Y2hDYWNoZUJ1c3RdID0gdXNlUmVkdWNlcigoc3RhdGUpID0+IHN0YXRlICsgMSwgMCkgLy8gdXNlZCB0byBmb3JjZSBhIHJlLWZldGNoIGV2ZW4gd2hlbiBhcGlVUkwgaXMgdW5jaGFuZ2VkXG4gIGNvbnN0IFt7IGRhdGEsIGlzRXJyb3IsIGlzTG9hZGluZzogaXNMb2FkaW5nTGlzdCB9LCB7IHNldFBhcmFtcyB9XSA9IHVzZVBheWxvYWRBUEkoYXBpVVJMLCB7fSlcbiAgY29uc3QgbW9yZVRoYW5PbmVBdmFpbGFibGVDb2xsZWN0aW9uID0gZW5hYmxlZENvbGxlY3Rpb25Db25maWdzLmxlbmd0aCA+IDFcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHsgc2x1ZywgYWRtaW46IHsgbGlzdFNlYXJjaGFibGVGaWVsZHMgfSA9IHt9LCB2ZXJzaW9ucyB9ID0gc2VsZWN0ZWRDb2xsZWN0aW9uQ29uZmlnXG4gICAgY29uc3QgcGFyYW1zOiB7XG4gICAgICBjYWNoZUJ1c3Q/OiBudW1iZXJcbiAgICAgIGRyYWZ0Pzogc3RyaW5nXG4gICAgICBsaW1pdD86IG51bWJlclxuICAgICAgcGFnZT86IG51bWJlclxuICAgICAgc2VhcmNoPzogc3RyaW5nXG4gICAgICBzb3J0Pzogc3RyaW5nXG4gICAgICB3aGVyZT86IHVua25vd25cbiAgICB9ID0ge31cblxuICAgIGxldCBjb3B5T2ZXaGVyZSA9IHsgLi4uKHdoZXJlIHx8IHt9KSB9XG4gICAgY29uc3QgZmlsdGVyT3B0aW9uID0gZmlsdGVyT3B0aW9ucz8uW3NsdWddXG5cbiAgICBpZiAoZmlsdGVyT3B0aW9ucyAmJiB0eXBlb2YgZmlsdGVyT3B0aW9uICE9PSAnYm9vbGVhbicpIHtcbiAgICAgIGNvcHlPZldoZXJlID0gaG9pc3RRdWVyeVBhcmFtc1RvQW5kKGNvcHlPZldoZXJlLCBmaWx0ZXJPcHRpb24pXG4gICAgfVxuXG4gICAgaWYgKHNlYXJjaCkge1xuICAgICAgY29uc3Qgc2VhcmNoQXNDb25kaXRpb25zID0gKGxpc3RTZWFyY2hhYmxlRmllbGRzIHx8IFt0aXRsZUZpZWxkPy5uYW1lXSkubWFwKChmaWVsZE5hbWUpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBbZmllbGROYW1lXToge1xuICAgICAgICAgICAgbGlrZTogc2VhcmNoLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIH0sIFtdKVxuXG4gICAgICBpZiAoc2VhcmNoQXNDb25kaXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3Qgc2VhcmNoRmlsdGVyOiBXaGVyZSA9IHtcbiAgICAgICAgICBvcjogWy4uLnNlYXJjaEFzQ29uZGl0aW9uc10sXG4gICAgICAgIH1cblxuICAgICAgICBjb3B5T2ZXaGVyZSA9IGhvaXN0UXVlcnlQYXJhbXNUb0FuZChjb3B5T2ZXaGVyZSwgc2VhcmNoRmlsdGVyKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYWdlKSBwYXJhbXMucGFnZSA9IHBhZ2VcbiAgICBpZiAoc29ydCkgcGFyYW1zLnNvcnQgPSBzb3J0XG4gICAgaWYgKGNhY2hlQnVzdCkgcGFyYW1zLmNhY2hlQnVzdCA9IGNhY2hlQnVzdFxuICAgIGlmIChjb3B5T2ZXaGVyZSkgcGFyYW1zLndoZXJlID0gY29weU9mV2hlcmVcbiAgICBpZiAodmVyc2lvbnM/LmRyYWZ0cykgcGFyYW1zLmRyYWZ0ID0gJ3RydWUnXG5cbiAgICBzZXRQYXJhbXMocGFyYW1zKVxuICB9LCBbXG4gICAgcGFnZSxcbiAgICBzb3J0LFxuICAgIHdoZXJlLFxuICAgIHNlYXJjaCxcbiAgICBjYWNoZUJ1c3QsXG4gICAgZmlsdGVyT3B0aW9ucyxcbiAgICBzZWxlY3RlZENvbGxlY3Rpb25Db25maWcsXG4gICAgdCxcbiAgICBzZXRQYXJhbXMsXG4gICAgdGl0bGVGaWVsZD8ubmFtZSxcbiAgXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG5ld1ByZWZlcmVuY2VzID0ge1xuICAgICAgbGltaXQsXG4gICAgICBzb3J0LFxuICAgIH1cblxuICAgIHNldFByZWZlcmVuY2UocHJlZmVyZW5jZUtleSwgbmV3UHJlZmVyZW5jZXMsIHRydWUpXG4gIH0sIFtzb3J0LCBsaW1pdCwgc2V0UHJlZmVyZW5jZSwgcHJlZmVyZW5jZUtleV0pXG5cbiAgY29uc3Qgb25DcmVhdGVOZXcgPSB1c2VDYWxsYmFjayhcbiAgICAoeyBkb2MgfSkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBvblNlbGVjdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBvblNlbGVjdCh7XG4gICAgICAgICAgY29sbGVjdGlvblNsdWc6IHNlbGVjdGVkQ29sbGVjdGlvbkNvbmZpZy5zbHVnLFxuICAgICAgICAgIGRvY0lEOiBkb2MuaWQsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICBkaXNwYXRjaENhY2hlQnVzdCgpXG4gICAgICBjbG9zZU1vZGFsKGRvY3VtZW50RHJhd2VyU2x1ZylcbiAgICAgIGNsb3NlTW9kYWwoZHJhd2VyU2x1ZylcbiAgICB9LFxuICAgIFtjbG9zZU1vZGFsLCBkb2N1bWVudERyYXdlclNsdWcsIGRyYXdlclNsdWcsIG9uU2VsZWN0LCBzZWxlY3RlZENvbGxlY3Rpb25Db25maWddLFxuICApXG5cbiAgaWYgKCFzZWxlY3RlZENvbGxlY3Rpb25Db25maWcgfHwgaXNFcnJvcikge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBpZiAoaXNMb2FkaW5nTGlzdCkge1xuICAgIHJldHVybiA8TG9hZGluZ092ZXJsYXkgLz5cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPExpc3RJbmZvUHJvdmlkZXJcbiAgICAgIEhlYWRlcj17XG4gICAgICAgIDxoZWFkZXIgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXJgfT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faGVhZGVyLXdyYXBgfT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXItY29udGVudGB9PlxuICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXItdGV4dGB9PlxuICAgICAgICAgICAgICAgIHshY3VzdG9tSGVhZGVyXG4gICAgICAgICAgICAgICAgICA/IGdldFRyYW5zbGF0aW9uKHNlbGVjdGVkQ29sbGVjdGlvbkNvbmZpZz8ubGFiZWxzPy5wbHVyYWwsIGkxOG4pXG4gICAgICAgICAgICAgICAgICA6IGN1c3RvbUhlYWRlcn1cbiAgICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICAgICAge2hhc0NyZWF0ZVBlcm1pc3Npb24gJiYgKFxuICAgICAgICAgICAgICAgIDxEb2N1bWVudERyYXdlclRvZ2dsZXIgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19jcmVhdGUtbmV3LWJ1dHRvbmB9PlxuICAgICAgICAgICAgICAgICAgPFBpbGw+e3QoJ2dlbmVyYWw6Y3JlYXRlTmV3Jyl9PC9QaWxsPlxuICAgICAgICAgICAgICAgIDwvRG9jdW1lbnREcmF3ZXJUb2dnbGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faGVhZGVyLWNsb3NlYH1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgIGNsb3NlTW9kYWwoZHJhd2VyU2x1ZylcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxYIC8+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB7c2VsZWN0ZWRDb2xsZWN0aW9uQ29uZmlnPy5hZG1pbj8uZGVzY3JpcHRpb24gJiYgKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3N1Yi1oZWFkZXJgfT5cbiAgICAgICAgICAgICAgPFZpZXdEZXNjcmlwdGlvbiBkZXNjcmlwdGlvbj17c2VsZWN0ZWRDb2xsZWN0aW9uQ29uZmlnLmFkbWluLmRlc2NyaXB0aW9ufSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7bW9yZVRoYW5PbmVBdmFpbGFibGVDb2xsZWN0aW9uICYmIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19zZWxlY3QtY29sbGVjdGlvbi13cmFwYH0+XG4gICAgICAgICAgICAgIDxMYWJlbCBsYWJlbD17dCgndXBsb2FkOnNlbGVjdENvbGxlY3Rpb25Ub0Jyb3dzZScpfSAvPlxuICAgICAgICAgICAgICA8UmVhY3RTZWxlY3RcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3NlbGVjdC1jb2xsZWN0aW9uYH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17c2V0U2VsZWN0ZWRPcHRpb259IC8vIHRoaXMgaXMgb25seSBjaGFuZ2luZyB0aGUgb3B0aW9ucyB3aGljaCBpcyBub3QgcmVydW5uaW5nIG15IGVmZmVjdFxuICAgICAgICAgICAgICAgIG9wdGlvbnM9e2VuYWJsZWRDb2xsZWN0aW9uQ29uZmlncy5tYXAoKGNvbGwpID0+ICh7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogZ2V0VHJhbnNsYXRpb24oY29sbC5sYWJlbHMuc2luZ3VsYXIsIGkxOG4pLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IGNvbGwuc2x1ZyxcbiAgICAgICAgICAgICAgICB9KSl9XG4gICAgICAgICAgICAgICAgdmFsdWU9e3NlbGVjdGVkT3B0aW9ufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9oZWFkZXI+XG4gICAgICB9XG4gICAgICBjb2xsZWN0aW9uU2x1Zz17c2VsZWN0ZWRDb2xsZWN0aW9uQ29uZmlnLnNsdWd9XG4gICAgICBkYXRhPXtkYXRhfVxuICAgICAgaGFuZGxlUGFnZUNoYW5nZT17c2V0UGFnZX1cbiAgICAgIGhhbmRsZVBlclBhZ2VDaGFuZ2U9e3NldExpbWl0fVxuICAgICAgaGFuZGxlU2VhcmNoQ2hhbmdlPXtzZXRTZWFyY2h9XG4gICAgICBoYW5kbGVTb3J0Q2hhbmdlPXtzZXRTb3J0fVxuICAgICAgaGFuZGxlV2hlcmVDaGFuZ2U9e3NldFdoZXJlfVxuICAgICAgaGFzQ3JlYXRlUGVybWlzc2lvbj17aGFzQ3JlYXRlUGVybWlzc2lvbn1cbiAgICAgIGxpbWl0PXtsaW1pdCB8fCBzZWxlY3RlZENvbGxlY3Rpb25Db25maWc/LmFkbWluPy5wYWdpbmF0aW9uPy5kZWZhdWx0TGltaXR9XG4gICAgICBtb2RpZnlTZWFyY2hQYXJhbXM9e2ZhbHNlfVxuICAgICAgbmV3RG9jdW1lbnRVUkw9e251bGx9XG4gICAgICBzZXRMaW1pdD17c2V0TGltaXR9XG4gICAgICBzZXRTb3J0PXtzZXRTb3J0fVxuICAgICAgdGl0bGVGaWVsZD17dGl0bGVGaWVsZH1cbiAgICA+XG4gICAgICA8VGFibGVDb2x1bW5zUHJvdmlkZXJcbiAgICAgICAgY2VsbFByb3BzPXtbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiBgJHtiYXNlQ2xhc3N9X19maXJzdC1jZWxsYCxcbiAgICAgICAgICAgIGxpbms6IGZhbHNlLFxuICAgICAgICAgICAgb25DbGljazogKHsgY29sbGVjdGlvblNsdWc6IHJvd0NvbGwsIHJvd0RhdGEgfSkgPT4ge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIG9uU2VsZWN0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgb25TZWxlY3Qoe1xuICAgICAgICAgICAgICAgICAgY29sbGVjdGlvblNsdWc6IHJvd0NvbGwsXG4gICAgICAgICAgICAgICAgICBkb2NJRDogcm93RGF0YS5pZCBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdfVxuICAgICAgICBjb2xsZWN0aW9uU2x1Zz17c2VsZWN0ZWRDb2xsZWN0aW9uQ29uZmlnLnNsdWd9XG4gICAgICAgIGxpc3RQcmVmZXJlbmNlcz17e30gYXMgTGlzdFByZWZlcmVuY2VzfSAvLyBUT0RPOiBnZXQgbGlzdCBwcmVmZXJlbmNlc1xuICAgICAgPlxuICAgICAgICB7TGlzdH1cbiAgICAgICAgPERvY3VtZW50RHJhd2VyIG9uU2F2ZT17b25DcmVhdGVOZXd9IC8+XG4gICAgICA8L1RhYmxlQ29sdW1uc1Byb3ZpZGVyPlxuICAgIDwvTGlzdEluZm9Qcm92aWRlcj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkxpc3REcmF3ZXJDb250ZW50IiwiaG9pc3RRdWVyeVBhcmFtc1RvQW5kIiwid2hlcmUiLCJxdWVyeVBhcmFtcyIsImFuZCIsInB1c2giLCJjb2xsZWN0aW9uU2x1Z3MiLCJjdXN0b21IZWFkZXIiLCJkcmF3ZXJTbHVnIiwiZmlsdGVyT3B0aW9ucyIsIm9uU2VsZWN0Iiwic2VsZWN0ZWRDb2xsZWN0aW9uIiwiaTE4biIsInQiLCJ1c2VUcmFuc2xhdGlvbiIsInBlcm1pc3Npb25zIiwidXNlQXV0aCIsInNldFByZWZlcmVuY2UiLCJ1c2VQcmVmZXJlbmNlcyIsImNsb3NlTW9kYWwiLCJpc01vZGFsT3BlbiIsInVzZU1vZGFsIiwibGltaXQiLCJzZXRMaW1pdCIsInVzZVN0YXRlIiwic29ydCIsInNldFNvcnQiLCJwYWdlIiwic2V0UGFnZSIsInNldFdoZXJlIiwic2VhcmNoIiwic2V0U2VhcmNoIiwiY29tcG9uZW50TWFwIiwidXNlQ29tcG9uZW50TWFwIiwiY29sbGVjdGlvbnMiLCJyb3V0ZXMiLCJhcGkiLCJzZXJ2ZXJVUkwiLCJ1c2VDb25maWciLCJlbmFibGVkQ29sbGVjdGlvbkNvbmZpZ3MiLCJmaWx0ZXIiLCJzbHVnIiwiaW5jbHVkZXMiLCJzZWxlY3RlZENvbGxlY3Rpb25Db25maWciLCJzZXRTZWxlY3RlZENvbGxlY3Rpb25Db25maWciLCJmaW5kIiwiTGlzdCIsInNlbGVjdGVkT3B0aW9uIiwic2V0U2VsZWN0ZWRPcHRpb24iLCJsYWJlbCIsImdldFRyYW5zbGF0aW9uIiwibGFiZWxzIiwic2luZ3VsYXIiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsInRpdGxlRmllbGQiLCJ1c2VVc2VUaXRsZUZpZWxkIiwidXNlRWZmZWN0Iiwic2VsZWN0ZWRDb25maWciLCJwcmVmZXJlbmNlS2V5IiwiRG9jdW1lbnREcmF3ZXIiLCJEb2N1bWVudERyYXdlclRvZ2dsZXIiLCJkb2N1bWVudERyYXdlclNsdWciLCJ1c2VEb2N1bWVudERyYXdlciIsImNvbGxlY3Rpb25TbHVnIiwiY29sbGVjdGlvblBlcm1pc3Npb25zIiwiaGFzQ3JlYXRlUGVybWlzc2lvbiIsImNyZWF0ZSIsInBlcm1pc3Npb24iLCJpc09wZW4iLCJhcGlVUkwiLCJjYWNoZUJ1c3QiLCJkaXNwYXRjaENhY2hlQnVzdCIsInVzZVJlZHVjZXIiLCJzdGF0ZSIsImRhdGEiLCJpc0Vycm9yIiwiaXNMb2FkaW5nIiwiaXNMb2FkaW5nTGlzdCIsInNldFBhcmFtcyIsInVzZVBheWxvYWRBUEkiLCJtb3JlVGhhbk9uZUF2YWlsYWJsZUNvbGxlY3Rpb24iLCJsZW5ndGgiLCJhZG1pbiIsImxpc3RTZWFyY2hhYmxlRmllbGRzIiwidmVyc2lvbnMiLCJwYXJhbXMiLCJjb3B5T2ZXaGVyZSIsImZpbHRlck9wdGlvbiIsInNlYXJjaEFzQ29uZGl0aW9ucyIsIm5hbWUiLCJtYXAiLCJmaWVsZE5hbWUiLCJsaWtlIiwic2VhcmNoRmlsdGVyIiwib3IiLCJkcmFmdHMiLCJkcmFmdCIsIm5ld1ByZWZlcmVuY2VzIiwib25DcmVhdGVOZXciLCJ1c2VDYWxsYmFjayIsImRvYyIsImRvY0lEIiwiaWQiLCJMb2FkaW5nT3ZlcmxheSIsIkxpc3RJbmZvUHJvdmlkZXIiLCJIZWFkZXIiLCJoZWFkZXIiLCJjbGFzc05hbWUiLCJiYXNlQ2xhc3MiLCJkaXYiLCJoMiIsInBsdXJhbCIsIlBpbGwiLCJidXR0b24iLCJvbkNsaWNrIiwidHlwZSIsIlgiLCJkZXNjcmlwdGlvbiIsIlZpZXdEZXNjcmlwdGlvbiIsIkxhYmVsIiwiUmVhY3RTZWxlY3QiLCJvbkNoYW5nZSIsIm9wdGlvbnMiLCJjb2xsIiwiaGFuZGxlUGFnZUNoYW5nZSIsImhhbmRsZVBlclBhZ2VDaGFuZ2UiLCJoYW5kbGVTZWFyY2hDaGFuZ2UiLCJoYW5kbGVTb3J0Q2hhbmdlIiwiaGFuZGxlV2hlcmVDaGFuZ2UiLCJwYWdpbmF0aW9uIiwiZGVmYXVsdExpbWl0IiwibW9kaWZ5U2VhcmNoUGFyYW1zIiwibmV3RG9jdW1lbnRVUkwiLCJUYWJsZUNvbHVtbnNQcm92aWRlciIsImNlbGxQcm9wcyIsImxpbmsiLCJyb3dDb2xsIiwicm93RGF0YSIsImxpc3RQcmVmZXJlbmNlcyIsIm9uU2F2ZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OytCQTZDYUE7OztlQUFBQTs7O3VCQXpDWTs4QkFDTTsrREFDcUM7a0JBSzFDOzhEQUNSO3NFQUNROytCQUNPO21CQUNmO3NCQUNNO3NDQUNRO3dCQUNOOzBCQUNPOzZCQUNGOzZCQUNBO2dDQUNHO3lCQUNIOzZEQUNkO29FQUNPOzhCQUNhO3dFQUNUOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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