@payloadcms/next 3.84.0 → 4.0.0-internal.38b7f1d

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 (158) hide show
  1. package/dist/cjs/withPayload.cjs +15 -176
  2. package/dist/cjs/withPayload.cjs.map +4 -4
  3. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
  4. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +0 -4
  5. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  6. package/dist/elements/HierarchyTypeField/index.d.ts +9 -0
  7. package/dist/elements/HierarchyTypeField/index.d.ts.map +1 -0
  8. package/dist/elements/HierarchyTypeField/index.js +114 -0
  9. package/dist/elements/HierarchyTypeField/index.js.map +1 -0
  10. package/dist/elements/HierarchyTypeField/index.server.d.ts +9 -0
  11. package/dist/elements/HierarchyTypeField/index.server.d.ts.map +1 -0
  12. package/dist/elements/HierarchyTypeField/index.server.js +32 -0
  13. package/dist/elements/HierarchyTypeField/index.server.js.map +1 -0
  14. package/dist/elements/Nav/SidebarTabs/TabError/index.css +29 -0
  15. package/dist/elements/Nav/SidebarTabs/TabError/index.d.ts +8 -0
  16. package/dist/elements/Nav/SidebarTabs/TabError/index.d.ts.map +1 -0
  17. package/dist/elements/Nav/SidebarTabs/TabError/index.js +42 -0
  18. package/dist/elements/Nav/SidebarTabs/TabError/index.js.map +1 -0
  19. package/dist/elements/Nav/SidebarTabs/constants.d.ts +2 -0
  20. package/dist/elements/Nav/SidebarTabs/constants.d.ts.map +1 -0
  21. package/dist/elements/Nav/SidebarTabs/constants.js +2 -0
  22. package/dist/elements/Nav/SidebarTabs/constants.js.map +1 -0
  23. package/dist/elements/Nav/SidebarTabs/index.client.d.ts +22 -0
  24. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -0
  25. package/dist/elements/Nav/SidebarTabs/index.client.js +195 -0
  26. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -0
  27. package/dist/elements/Nav/SidebarTabs/index.css +80 -0
  28. package/dist/elements/Nav/SidebarTabs/index.d.ts +17 -0
  29. package/dist/elements/Nav/SidebarTabs/index.d.ts.map +1 -0
  30. package/dist/elements/Nav/SidebarTabs/index.js +85 -0
  31. package/dist/elements/Nav/SidebarTabs/index.js.map +1 -0
  32. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts +10 -0
  33. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts.map +1 -0
  34. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +54 -0
  35. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -0
  36. package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -1
  37. package/dist/elements/Nav/getNavPrefs.js +36 -2
  38. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  39. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  40. package/dist/elements/Nav/index.client.js +48 -63
  41. package/dist/elements/Nav/index.client.js.map +1 -1
  42. package/dist/elements/Nav/index.css +155 -0
  43. package/dist/elements/Nav/index.d.ts +1 -1
  44. package/dist/elements/Nav/index.d.ts.map +1 -1
  45. package/dist/elements/Nav/index.js +39 -8
  46. package/dist/elements/Nav/index.js.map +1 -1
  47. package/dist/exports/client.d.ts +2 -1
  48. package/dist/exports/client.d.ts.map +1 -1
  49. package/dist/exports/client.js +2 -1
  50. package/dist/exports/client.js.map +1 -1
  51. package/dist/exports/rsc.d.ts +2 -1
  52. package/dist/exports/rsc.d.ts.map +1 -1
  53. package/dist/exports/rsc.js +2 -1
  54. package/dist/exports/rsc.js.map +1 -1
  55. package/dist/exports/utilities.d.ts +2 -67
  56. package/dist/exports/utilities.d.ts.map +1 -1
  57. package/dist/exports/utilities.js +1 -49
  58. package/dist/exports/utilities.js.map +1 -1
  59. package/dist/layouts/Root/index.d.ts +18 -1
  60. package/dist/layouts/Root/index.d.ts.map +1 -1
  61. package/dist/layouts/Root/index.js +25 -4
  62. package/dist/layouts/Root/index.js.map +1 -1
  63. package/dist/prod/styles.css +1 -1
  64. package/dist/utilities/getHierarchyAncestry.d.ts +24 -0
  65. package/dist/utilities/getHierarchyAncestry.d.ts.map +1 -0
  66. package/dist/utilities/getHierarchyAncestry.js +103 -0
  67. package/dist/utilities/getHierarchyAncestry.js.map +1 -0
  68. package/dist/utilities/getRequestHighContrast.d.ts +10 -0
  69. package/dist/utilities/getRequestHighContrast.d.ts.map +1 -0
  70. package/dist/utilities/getRequestHighContrast.js +18 -0
  71. package/dist/utilities/getRequestHighContrast.js.map +1 -0
  72. package/dist/utilities/handleServerFunctions.js +2 -2
  73. package/dist/utilities/handleServerFunctions.js.map +1 -1
  74. package/dist/views/Account/Settings/index.d.ts.map +1 -1
  75. package/dist/views/Account/Settings/index.js +2 -1
  76. package/dist/views/Account/Settings/index.js.map +1 -1
  77. package/dist/views/Account/ToggleHighContrast/index.d.ts +3 -0
  78. package/dist/views/Account/ToggleHighContrast/index.d.ts.map +1 -0
  79. package/dist/views/Account/ToggleHighContrast/index.js +45 -0
  80. package/dist/views/Account/ToggleHighContrast/index.js.map +1 -0
  81. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +3 -3
  82. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  83. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +1 -1
  84. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  85. package/dist/views/Document/getDocumentView.d.ts.map +1 -1
  86. package/dist/views/Document/getDocumentView.js +3 -9
  87. package/dist/views/Document/getDocumentView.js.map +1 -1
  88. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  89. package/dist/views/Document/renderDocumentSlots.js +16 -8
  90. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  91. package/dist/views/Hierarchy/index.d.ts +18 -0
  92. package/dist/views/Hierarchy/index.d.ts.map +1 -0
  93. package/dist/views/Hierarchy/index.js +20 -0
  94. package/dist/views/Hierarchy/index.js.map +1 -0
  95. package/dist/views/List/handleHierarchy.d.ts +18 -0
  96. package/dist/views/List/handleHierarchy.d.ts.map +1 -0
  97. package/dist/views/List/handleHierarchy.js +258 -0
  98. package/dist/views/List/handleHierarchy.js.map +1 -0
  99. package/dist/views/List/index.d.ts.map +1 -1
  100. package/dist/views/List/index.js +101 -30
  101. package/dist/views/List/index.js.map +1 -1
  102. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts +12 -0
  103. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -0
  104. package/dist/views/Root/getCustomGlobalViewByRoute.js +46 -0
  105. package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -0
  106. package/dist/views/Root/getRouteData.d.ts +1 -4
  107. package/dist/views/Root/getRouteData.d.ts.map +1 -1
  108. package/dist/views/Root/getRouteData.js +83 -110
  109. package/dist/views/Root/getRouteData.js.map +1 -1
  110. package/dist/views/Root/index.d.ts.map +1 -1
  111. package/dist/views/Root/index.js +5 -12
  112. package/dist/views/Root/index.js.map +1 -1
  113. package/dist/views/Root/metadata.d.ts.map +1 -1
  114. package/dist/views/Root/metadata.js +1 -37
  115. package/dist/views/Root/metadata.js.map +1 -1
  116. package/dist/views/Version/Restore/index.js +1 -1
  117. package/dist/views/Version/Restore/index.js.map +1 -1
  118. package/dist/withPayload/withPayload.d.ts +127 -1
  119. package/dist/withPayload/withPayload.d.ts.map +1 -1
  120. package/dist/withPayload/withPayload.js +8 -22
  121. package/dist/withPayload/withPayload.js.map +1 -1
  122. package/dist/withPayload/withPayload.utils.d.ts +0 -14
  123. package/dist/withPayload/withPayload.utils.d.ts.map +1 -1
  124. package/dist/withPayload/withPayload.utils.js +0 -73
  125. package/dist/withPayload/withPayload.utils.js.map +1 -1
  126. package/package.json +11 -11
  127. package/dist/views/BrowseByFolder/buildView.d.ts +0 -13
  128. package/dist/views/BrowseByFolder/buildView.d.ts.map +0 -1
  129. package/dist/views/BrowseByFolder/buildView.js +0 -170
  130. package/dist/views/BrowseByFolder/buildView.js.map +0 -1
  131. package/dist/views/BrowseByFolder/index.d.ts +0 -4
  132. package/dist/views/BrowseByFolder/index.d.ts.map +0 -1
  133. package/dist/views/BrowseByFolder/index.js +0 -20
  134. package/dist/views/BrowseByFolder/index.js.map +0 -1
  135. package/dist/views/BrowseByFolder/metadata.d.ts +0 -4
  136. package/dist/views/BrowseByFolder/metadata.d.ts.map +0 -1
  137. package/dist/views/BrowseByFolder/metadata.js +0 -18
  138. package/dist/views/BrowseByFolder/metadata.js.map +0 -1
  139. package/dist/views/CollectionFolders/buildView.d.ts +0 -15
  140. package/dist/views/CollectionFolders/buildView.d.ts.map +0 -1
  141. package/dist/views/CollectionFolders/buildView.js +0 -156
  142. package/dist/views/CollectionFolders/buildView.js.map +0 -1
  143. package/dist/views/CollectionFolders/index.d.ts +0 -4
  144. package/dist/views/CollectionFolders/index.d.ts.map +0 -1
  145. package/dist/views/CollectionFolders/index.js +0 -20
  146. package/dist/views/CollectionFolders/index.js.map +0 -1
  147. package/dist/views/CollectionFolders/metadata.d.ts +0 -7
  148. package/dist/views/CollectionFolders/metadata.d.ts.map +0 -1
  149. package/dist/views/CollectionFolders/metadata.js +0 -25
  150. package/dist/views/CollectionFolders/metadata.js.map +0 -1
  151. package/dist/views/CollectionFolders/renderFolderViewSlots.d.ts +0 -11
  152. package/dist/views/CollectionFolders/renderFolderViewSlots.d.ts.map +0 -1
  153. package/dist/views/CollectionFolders/renderFolderViewSlots.js +0 -64
  154. package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +0 -1
  155. package/dist/withPayload/withPayloadLegacy.d.ts +0 -2
  156. package/dist/withPayload/withPayloadLegacy.d.ts.map +0 -1
  157. package/dist/withPayload/withPayloadLegacy.js +0 -47
  158. package/dist/withPayload/withPayloadLegacy.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAIpB,SAAS,EACT,mBAAmB,EACnB,uBAAuB,EAEvB,gBAAgB,EAGjB,MAAM,SAAS,CAAA;AAehB,OAAO,KAAmB,MAAM,OAAO,CAAA;AASvC;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;OAGG;IACH,iBAAiB,CAAC,EACd,gBAAgB,GAChB,KAAK,CAAC,aAAa,CAAC,mBAAmB,GAAG,CAAC,mBAAmB,GAAG,uBAAuB,CAAC,CAAC,CAAA;IAC9F,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,GAAG,oBAAoB,CAAA;AAExB;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,SACnB,kBAAkB,KACvB,OAAO,CAAC;IACT,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;CACtB,CA+WA,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAYjD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAKpB,SAAS,EACT,mBAAmB,EACnB,uBAAuB,EAEvB,gBAAgB,EAGjB,MAAM,SAAS,CAAA;AAsBhB,OAAO,KAAmB,MAAM,OAAO,CAAA;AAUvC;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;OAGG;IACH,iBAAiB,CAAC,EACd,gBAAgB,GAChB,KAAK,CAAC,aAAa,CAAC,mBAAmB,GAAG,CAAC,mBAAmB,GAAG,uBAAuB,CAAC,CAAC,CAAA;IAC9F,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,GAAG,oBAAoB,CAAA;AAExB;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,SACnB,kBAAkB,KACvB,OAAO,CAAC;IACT,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;CACtB,CAydA,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAYjD,CAAA"}
@@ -1,13 +1,14 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloadcms/ui';
2
+ import { DefaultListView, HierarchyListView, HydrateAuthProvider, HydrateHierarchyProvider, ListQueryProvider } from '@payloadcms/ui';
3
3
  import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
4
4
  import { getColumns, renderFilters, renderTable, upsertPreferences } from '@payloadcms/ui/rsc';
5
5
  import { notFound } from 'next/navigation.js';
6
- import { appendUploadSelectFields, combineWhereConstraints, formatAdminURL, isNumber, mergeListSearchAndWhere, transformColumnsToPreferences, transformColumnsToSearchParams } from 'payload/shared';
6
+ import { appendDateTimezoneSelectFields, appendUploadSelectFields, combineWhereConstraints, formatAdminURL, isNumber, mergeListSearchAndWhere, transformColumnsToPreferences, transformColumnsToSearchParams } from 'payload/shared';
7
7
  import React, { Fragment } from 'react';
8
8
  import { getDocumentPermissions } from '../Document/getDocumentPermissions.js';
9
9
  import { enrichDocsWithVersionStatus } from './enrichDocsWithVersionStatus.js';
10
10
  import { handleGroupBy } from './handleGroupBy.js';
11
+ import { handleHierarchy } from './handleHierarchy.js';
11
12
  import { renderListViewSlots } from './renderListViewSlots.js';
12
13
  import { resolveAllFilterOptions } from './resolveAllFilterOptions.js';
13
14
  import { transformColumnsToSelect } from './transformColumnsToSelect.js';
@@ -155,12 +156,38 @@ export const renderListView = async args => {
155
156
  i18n,
156
157
  permissions
157
158
  });
158
- const select = collectionConfig.admin.enableListViewSelectAPI ? transformColumnsToSelect(columns) : undefined;
159
+ /** Automatically force select active columns. */
160
+ const select = transformColumnsToSelect(columns);
159
161
  /** Force select image fields for list view thumbnails */
160
162
  appendUploadSelectFields({
161
163
  collectionConfig,
162
164
  select
163
165
  });
166
+ /** Force select `_tz` siblings for any timezone-enabled date fields in select */
167
+ appendDateTimezoneSelectFields({
168
+ fields: collectionConfig.flattenedFields,
169
+ select
170
+ });
171
+ /** Force select `_order` for orderable collections — OrderableTable needs it to compute reorder targets */
172
+ if (collectionConfig.orderable === true) {
173
+ select._order = true;
174
+ }
175
+ /** Force select `_status` for drafts-enabled collections — needed by `enrichDocsWithVersionStatus` and `formatDocURL` */
176
+ if (collectionConfig.versions?.drafts) {
177
+ select._status = true;
178
+ }
179
+ // Check for hierarchy parent param
180
+ const isHierarchyCollection = Boolean(collectionConfig.hierarchy);
181
+ let hierarchyParentId = null;
182
+ if (isHierarchyCollection) {
183
+ if (searchParams?.parent === 'null' || searchParams?.parent === undefined) {
184
+ hierarchyParentId = null;
185
+ } else if (typeof searchParams?.parent === 'string') {
186
+ hierarchyParentId = payload.db.defaultIDType === 'number' && isNumber(searchParams.parent) ? Number(searchParams.parent) : searchParams.parent;
187
+ }
188
+ }
189
+ // Hierarchy data for client-side rendering
190
+ let hierarchyData;
164
191
  try {
165
192
  if (collectionConfig.admin.groupBy && query.groupBy) {
166
193
  ({
@@ -246,6 +273,33 @@ export const renderListView = async args => {
246
273
  throw err;
247
274
  }
248
275
  }
276
+ // Fetch hierarchy data only for hierarchy view
277
+ let HierarchyIcon;
278
+ const isHierarchyView = viewType === 'hierarchy';
279
+ if (isHierarchyCollection && isHierarchyView) {
280
+ // Extract typeFilter from searchParams (comma-separated list of collection slugs)
281
+ const typeFilterParam = searchParams?.typeFilter;
282
+ const typeFilter = typeof typeFilterParam === 'string' && typeFilterParam.length > 0 ? typeFilterParam.split(',') : undefined;
283
+ hierarchyData = await handleHierarchy({
284
+ baseFilter: baseFilterConstraint,
285
+ collectionConfig,
286
+ collectionSlug,
287
+ parentId: hierarchyParentId,
288
+ permissions,
289
+ req,
290
+ search: typeof query?.search === 'string' ? query.search : undefined,
291
+ typeFilter,
292
+ user
293
+ });
294
+ data = hierarchyData.childrenData;
295
+ // Resolve hierarchy icon from collection config
296
+ const hierarchyConfig = typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy : undefined;
297
+ HierarchyIcon = RenderServerComponent({
298
+ Component: hierarchyConfig?.admin?.components?.Icon,
299
+ importMap: payload.importMap,
300
+ key: `hierarchy-icon-${collectionSlug}`
301
+ });
302
+ }
249
303
  const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap);
250
304
  const resolvedFilterOptions = await resolveAllFilterOptions({
251
305
  fields: collectionConfig.fields,
@@ -302,42 +356,59 @@ export const renderListView = async args => {
302
356
  // Needed to prevent: Only plain objects can be passed to Client Components from Server Components. Objects with toJSON methods are not supported. Convert it manually to a simple value before passing it to props.
303
357
  // Is there a way to avoid this? The `where` object is already seemingly plain, but is not bc it originates from the params.
304
358
  query.where = query?.where ? JSON.parse(JSON.stringify(query?.where || {})) : undefined;
359
+ const RenderedListViewComponent = RenderServerComponent({
360
+ clientProps: {
361
+ ...listViewSlots,
362
+ baseFilter: baseFilterConstraint,
363
+ collectionSlug,
364
+ columnState,
365
+ disableBulkDelete,
366
+ disableBulkEdit: collectionConfig.disableBulkEdit ?? disableBulkEdit,
367
+ disableQueryPresets,
368
+ enableRowSelections,
369
+ hasCreatePermission,
370
+ hasDeletePermission,
371
+ hasTrashPermission,
372
+ hierarchyData,
373
+ HierarchyIcon,
374
+ listPreferences: collectionPreferences,
375
+ newDocumentURL,
376
+ queryPreset,
377
+ queryPresetPermissions,
378
+ renderedFilters,
379
+ resolvedFilterOptions,
380
+ Table,
381
+ viewType
382
+ },
383
+ Component: ComponentOverride ?? collectionConfig?.admin?.components?.views?.list?.Component,
384
+ Fallback: viewType === 'hierarchy' ? HierarchyListView : DefaultListView,
385
+ importMap: payload.importMap,
386
+ key: `list-view-${collectionSlug}-${viewType}`,
387
+ serverProps
388
+ });
305
389
  return {
306
390
  List: /*#__PURE__*/_jsxs(Fragment, {
307
391
  children: [/*#__PURE__*/_jsx(HydrateAuthProvider, {
308
392
  permissions: permissions
309
- }), /*#__PURE__*/_jsx(ListQueryProvider, {
393
+ }), isHierarchyView ? /*#__PURE__*/_jsxs(Fragment, {
394
+ children: [/*#__PURE__*/_jsx(HydrateHierarchyProvider, {
395
+ allowedCollections: hierarchyData?.allowedCollections,
396
+ baseFilter: baseFilterConstraint,
397
+ collectionSlug: collectionSlug,
398
+ expandedNodes: hierarchyData?.breadcrumbs?.slice(0, -1).map(b => b.id),
399
+ parent: hierarchyData?.parent,
400
+ parentFieldName: typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy?.parentFieldName : undefined,
401
+ tableData: data,
402
+ treeLimit: typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy?.admin?.treeLimit : undefined,
403
+ typeFieldName: typeof collectionConfig.hierarchy === 'object' && collectionConfig.hierarchy?.collectionSpecific && typeof collectionConfig.hierarchy.collectionSpecific === 'object' ? collectionConfig.hierarchy.collectionSpecific.fieldName : undefined
404
+ }), RenderedListViewComponent]
405
+ }) : /*#__PURE__*/_jsx(ListQueryProvider, {
310
406
  collectionSlug: collectionSlug,
311
407
  data: data,
312
408
  modifySearchParams: !isInDrawer,
313
409
  orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,
314
410
  query: query,
315
- children: RenderServerComponent({
316
- clientProps: {
317
- ...listViewSlots,
318
- collectionSlug,
319
- columnState,
320
- disableBulkDelete,
321
- disableBulkEdit: collectionConfig.disableBulkEdit ?? disableBulkEdit,
322
- disableQueryPresets,
323
- enableRowSelections,
324
- hasCreatePermission,
325
- hasDeletePermission,
326
- hasTrashPermission,
327
- listPreferences: collectionPreferences,
328
- newDocumentURL,
329
- queryPreset,
330
- queryPresetPermissions,
331
- renderedFilters,
332
- resolvedFilterOptions,
333
- Table,
334
- viewType
335
- },
336
- Component: ComponentOverride ?? collectionConfig?.admin?.components?.views?.list?.Component,
337
- Fallback: DefaultListView,
338
- importMap: payload.importMap,
339
- serverProps
340
- })
411
+ children: RenderedListViewComponent
341
412
  })]
342
413
  })
343
414
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["DefaultListView","HydrateAuthProvider","ListQueryProvider","RenderServerComponent","getColumns","renderFilters","renderTable","upsertPreferences","notFound","appendUploadSelectFields","combineWhereConstraints","formatAdminURL","isNumber","mergeListSearchAndWhere","transformColumnsToPreferences","transformColumnsToSearchParams","React","Fragment","getDocumentPermissions","enrichDocsWithVersionStatus","handleGroupBy","renderListViewSlots","resolveAllFilterOptions","transformColumnsToSelect","renderListView","args","clientConfig","ComponentOverride","customCellProps","disableBulkDelete","disableBulkEdit","disableQueryPresets","drawerSlug","enableRowSelections","initPageResult","overrideEntityVisibility","params","query","queryFromArgs","searchParams","trash","viewType","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","routes","admin","adminRoute","collections","read","includes","Error","columnsFromQuery","columns","queryByGroup","JSON","parse","collectionPreferences","key","value","groupBy","limit","Number","undefined","preset","sort","queryPreset","queryPresetPermissions","findByID","id","collection","depth","overrideAccess","data","docPermissions","err","logger","error","where","columnPreference","page","pagination","defaultLimit","defaultSort","baseFilterConstraint","baseFilter","baseListFilter","whereWithMergedSearch","search","and","deletedAt","exists","Table","columnState","docs","hasNextPage","hasPrevPage","nextPage","pagingCounter","prevPage","totalDocs","totalPages","clientCollectionConfig","find","c","select","enableListViewSelectAPI","fieldPermissions","fields","draft","fallbackLocale","includeLockStatus","orderableFieldName","orderable","useAsTitle","name","msg","renderedFilters","importMap","resolvedFilterOptions","staticDescription","description","t","newDocumentURL","path","hasCreatePermission","create","hasDeletePermission","hasTrashPermission","notFoundDocId","serverProps","listPreferences","listSearchableFields","listViewSlots","clientProps","isInDrawer","Boolean","stringify","List","_jsxs","_jsx","modifySearchParams","Component","components","views","list","Fallback","ListView","RenderedList","message","console"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n Column,\n ColumnPreference,\n ListQuery,\n ListViewClientProps,\n ListViewServerPropsOnly,\n PaginatedDocs,\n PayloadComponent,\n QueryPreset,\n SanitizedCollectionPermission,\n} from 'payload'\n\nimport { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getColumns, renderFilters, renderTable, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { notFound } from 'next/navigation.js'\nimport {\n appendUploadSelectFields,\n combineWhereConstraints,\n formatAdminURL,\n isNumber,\n mergeListSearchAndWhere,\n transformColumnsToPreferences,\n transformColumnsToSearchParams,\n} from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { getDocumentPermissions } from '../Document/getDocumentPermissions.js'\nimport { enrichDocsWithVersionStatus } from './enrichDocsWithVersionStatus.js'\nimport { handleGroupBy } from './handleGroupBy.js'\nimport { renderListViewSlots } from './renderListViewSlots.js'\nimport { resolveAllFilterOptions } from './resolveAllFilterOptions.js'\nimport { transformColumnsToSelect } from './transformColumnsToSelect.js'\n\n/**\n * @internal\n */\nexport type RenderListViewArgs = {\n /**\n * Allows providing your own list view component. This will override the default list view component and\n * the collection's configured list view component (if any).\n */\n ComponentOverride?:\n | PayloadComponent\n | React.ComponentType<ListViewClientProps | (ListViewClientProps & ListViewServerPropsOnly)>\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n disableQueryPresets?: boolean\n drawerSlug?: string\n enableRowSelections: boolean\n overrideEntityVisibility?: boolean\n /**\n * If not ListQuery is provided, `req.query` will be used.\n */\n query?: ListQuery\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: boolean\n /**\n * @experimental This prop is subject to change in future releases.\n */\n trash?: boolean\n} & AdminViewServerProps\n\n/**\n * This function is responsible for rendering\n * the list view on the server for both:\n * - default list view\n * - list view within drawers\n *\n * @internal\n */\nexport const renderListView = async (\n args: RenderListViewArgs,\n): Promise<{\n List: React.ReactNode\n}> => {\n const {\n clientConfig,\n ComponentOverride,\n customCellProps,\n disableBulkDelete,\n disableBulkEdit,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n initPageResult,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n trash,\n viewType,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (\n !collectionConfig ||\n !permissions?.collections?.[collectionSlug]?.read ||\n (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility)\n ) {\n throw new Error('not-found')\n }\n\n const query: ListQuery = queryFromArgs || queryFromReq\n\n const columnsFromQuery: ColumnPreference[] = transformColumnsToPreferences(query?.columns)\n\n query.queryByGroup =\n query?.queryByGroup && typeof query.queryByGroup === 'string'\n ? JSON.parse(query.queryByGroup)\n : query?.queryByGroup\n\n const collectionPreferences = await upsertPreferences<CollectionPreferences>({\n key: `collection-${collectionSlug}`,\n req,\n value: {\n columns: columnsFromQuery,\n groupBy: query?.groupBy,\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\n preset: query?.preset,\n sort: query?.sort as string,\n },\n })\n\n let queryPreset: QueryPreset | undefined\n let queryPresetPermissions: SanitizedCollectionPermission | undefined\n\n if (collectionPreferences?.preset) {\n try {\n queryPreset = (await payload.findByID({\n id: collectionPreferences?.preset,\n collection: 'payload-query-presets',\n depth: 0,\n overrideAccess: false,\n user,\n })) as QueryPreset\n\n if (queryPreset) {\n queryPresetPermissions = (\n await getDocumentPermissions({\n id: queryPreset.id,\n collectionConfig: req.payload.collections['payload-query-presets'].config,\n data: queryPreset,\n req,\n })\n )?.docPermissions\n }\n } catch (err) {\n req.payload.logger.error(`Error fetching query preset or preset permissions: ${err}`)\n }\n }\n\n query.preset = queryPreset?.id\n if (queryPreset?.where && !query.where) {\n query.where = queryPreset.where\n }\n query.groupBy = query.groupBy ?? queryPreset?.groupBy ?? collectionPreferences?.groupBy\n\n const columnPreference = query.columns\n ? transformColumnsToPreferences(query.columns)\n : (queryPreset?.columns ?? collectionPreferences?.columns)\n query.columns = transformColumnsToSearchParams(columnPreference)\n\n query.page = isNumber(query?.page) ? Number(query.page) : 0\n\n query.limit = collectionPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n\n query.sort =\n collectionPreferences?.sort ||\n (typeof collectionConfig.defaultSort === 'string' ? collectionConfig.defaultSort : undefined)\n\n const baseFilterConstraint = await (\n collectionConfig.admin?.baseFilter ?? collectionConfig.admin?.baseListFilter\n )?.({\n limit: query.limit,\n page: query.page,\n req,\n sort: query.sort,\n })\n\n let whereWithMergedSearch = mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: combineWhereConstraints([query?.where, baseFilterConstraint]),\n })\n\n if (trash === true) {\n whereWithMergedSearch = {\n and: [\n whereWithMergedSearch,\n {\n deletedAt: {\n exists: true,\n },\n },\n ],\n }\n }\n\n let Table: React.ReactNode | React.ReactNode[] = null\n let columnState: Column[] = []\n let data: PaginatedDocs = {\n // no results default\n docs: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit: query.limit,\n nextPage: null,\n page: 1,\n pagingCounter: 0,\n prevPage: null,\n totalDocs: 0,\n totalPages: 0,\n }\n\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n const columns = getColumns({\n clientConfig,\n collectionConfig: clientCollectionConfig,\n collectionSlug,\n columns: columnPreference,\n i18n,\n permissions,\n })\n\n const select = collectionConfig.admin.enableListViewSelectAPI\n ? transformColumnsToSelect(columns)\n : undefined\n\n /** Force select image fields for list view thumbnails */\n appendUploadSelectFields({\n collectionConfig,\n select,\n })\n\n try {\n if (collectionConfig.admin.groupBy && query.groupBy) {\n ;({ columnState, data, Table } = await handleGroupBy({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collectionSlug,\n columns,\n customCellProps,\n drawerSlug,\n enableRowSelections,\n fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,\n query,\n req,\n select,\n trash,\n user,\n viewType,\n where: whereWithMergedSearch,\n }))\n\n // Enrich documents with correct display status for drafts\n data = await enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n })\n } else {\n data = await req.payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit: query?.limit ? Number(query.limit) : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.page ? Number(query.page) : undefined,\n req,\n select,\n sort: query?.sort,\n trash,\n user,\n where: whereWithMergedSearch,\n })\n\n // Enrich documents with correct display status for drafts\n data = await enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n })\n ;({ columnState, Table } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columns,\n customCellProps,\n data,\n drawerSlug,\n enableRowSelections,\n fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,\n i18n: req.i18n,\n orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,\n payload: req.payload,\n query,\n req,\n useAsTitle: collectionConfig.admin.useAsTitle,\n viewType,\n }))\n }\n } catch (err) {\n if (err.name !== 'QueryError') {\n // QueryErrors are expected when a user filters by a field they do not have access to\n req.payload.logger.error({\n err,\n msg: `There was an error fetching the list view data for collection ${collectionSlug}`,\n })\n throw err\n }\n }\n\n const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap)\n\n const resolvedFilterOptions = await resolveAllFilterOptions({\n fields: collectionConfig.fields,\n req,\n })\n\n const staticDescription =\n typeof collectionConfig.admin.description === 'function'\n ? collectionConfig.admin.description({ t: i18n.t })\n : collectionConfig.admin.description\n\n const newDocumentURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })\n\n const hasCreatePermission = permissions?.collections?.[collectionSlug]?.create\n\n const { hasDeletePermission, hasTrashPermission } = await getDocumentPermissions({\n collectionConfig,\n // Empty object serves as base for computing differentiated trash/delete permissions\n data: {},\n req,\n })\n\n // Check if there's a notFound query parameter (document ID that wasn't found)\n const notFoundDocId = typeof searchParams?.notFound === 'string' ? searchParams.notFound : null\n\n const serverProps: ListViewServerPropsOnly = {\n collectionConfig,\n data,\n i18n,\n limit: query.limit,\n listPreferences: collectionPreferences,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }\n\n const listViewSlots = renderListViewSlots({\n clientProps: {\n collectionSlug,\n hasCreatePermission,\n hasDeletePermission,\n hasTrashPermission,\n newDocumentURL,\n },\n collectionConfig,\n description: staticDescription,\n notFoundDocId,\n payload,\n serverProps,\n })\n\n const isInDrawer = Boolean(drawerSlug)\n\n // Needed to prevent: Only plain objects can be passed to Client Components from Server Components. Objects with toJSON methods are not supported. Convert it manually to a simple value before passing it to props.\n // Is there a way to avoid this? The `where` object is already seemingly plain, but is not bc it originates from the params.\n query.where = query?.where ? JSON.parse(JSON.stringify(query?.where || {})) : undefined\n\n return {\n List: (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListQueryProvider\n collectionSlug={collectionSlug}\n data={data}\n modifySearchParams={!isInDrawer}\n orderableFieldName={collectionConfig.orderable === true ? '_order' : undefined}\n query={query}\n >\n {RenderServerComponent({\n clientProps: {\n ...listViewSlots,\n collectionSlug,\n columnState,\n disableBulkDelete,\n disableBulkEdit: collectionConfig.disableBulkEdit ?? disableBulkEdit,\n disableQueryPresets,\n enableRowSelections,\n hasCreatePermission,\n hasDeletePermission,\n hasTrashPermission,\n listPreferences: collectionPreferences,\n newDocumentURL,\n queryPreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n Table,\n viewType,\n } satisfies ListViewClientProps,\n Component:\n ComponentOverride ?? collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: DefaultListView,\n importMap: payload.importMap,\n serverProps,\n })}\n </ListQueryProvider>\n </Fragment>\n ),\n }\n}\n\nexport const ListView: React.FC<RenderListViewArgs> = async (args) => {\n try {\n const { List: RenderedList } = await renderListView({ ...args, enableRowSelections: true })\n return RenderedList\n } catch (error) {\n // Pass through Next.js errors\n if (error.message === 'not-found') {\n notFound()\n } else {\n console.error(error) // eslint-disable-line no-console\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["DefaultListView","HierarchyListView","HydrateAuthProvider","HydrateHierarchyProvider","ListQueryProvider","RenderServerComponent","getColumns","renderFilters","renderTable","upsertPreferences","notFound","appendDateTimezoneSelectFields","appendUploadSelectFields","combineWhereConstraints","formatAdminURL","isNumber","mergeListSearchAndWhere","transformColumnsToPreferences","transformColumnsToSearchParams","React","Fragment","getDocumentPermissions","enrichDocsWithVersionStatus","handleGroupBy","handleHierarchy","renderListViewSlots","resolveAllFilterOptions","transformColumnsToSelect","renderListView","args","clientConfig","ComponentOverride","customCellProps","disableBulkDelete","disableBulkEdit","disableQueryPresets","drawerSlug","enableRowSelections","initPageResult","overrideEntityVisibility","params","query","queryFromArgs","searchParams","trash","viewType","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","routes","admin","adminRoute","collections","read","includes","Error","columnsFromQuery","columns","queryByGroup","JSON","parse","collectionPreferences","key","value","groupBy","limit","Number","undefined","preset","sort","queryPreset","queryPresetPermissions","findByID","id","collection","depth","overrideAccess","data","docPermissions","err","logger","error","where","columnPreference","page","pagination","defaultLimit","defaultSort","baseFilterConstraint","baseFilter","baseListFilter","whereWithMergedSearch","search","and","deletedAt","exists","Table","columnState","docs","hasNextPage","hasPrevPage","nextPage","pagingCounter","prevPage","totalDocs","totalPages","clientCollectionConfig","find","c","select","fields","flattenedFields","orderable","_order","versions","drafts","_status","isHierarchyCollection","Boolean","hierarchy","hierarchyParentId","parent","db","defaultIDType","hierarchyData","fieldPermissions","draft","fallbackLocale","includeLockStatus","orderableFieldName","useAsTitle","name","msg","HierarchyIcon","isHierarchyView","typeFilterParam","typeFilter","length","split","parentId","childrenData","hierarchyConfig","Component","components","Icon","importMap","renderedFilters","resolvedFilterOptions","staticDescription","description","t","newDocumentURL","path","hasCreatePermission","create","hasDeletePermission","hasTrashPermission","notFoundDocId","serverProps","listPreferences","listSearchableFields","listViewSlots","clientProps","isInDrawer","stringify","RenderedListViewComponent","views","list","Fallback","List","_jsxs","_jsx","allowedCollections","expandedNodes","breadcrumbs","slice","map","b","parentFieldName","tableData","treeLimit","typeFieldName","collectionSpecific","fieldName","modifySearchParams","ListView","RenderedList","message","console"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n Column,\n ColumnPreference,\n HierarchyViewData,\n ListQuery,\n ListViewClientProps,\n ListViewServerPropsOnly,\n PaginatedDocs,\n PayloadComponent,\n QueryPreset,\n SanitizedCollectionPermission,\n} from 'payload'\n\nimport {\n DefaultListView,\n HierarchyListView,\n HydrateAuthProvider,\n HydrateHierarchyProvider,\n ListQueryProvider,\n} from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getColumns, renderFilters, renderTable, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { notFound } from 'next/navigation.js'\nimport {\n appendDateTimezoneSelectFields,\n appendUploadSelectFields,\n combineWhereConstraints,\n formatAdminURL,\n isNumber,\n mergeListSearchAndWhere,\n transformColumnsToPreferences,\n transformColumnsToSearchParams,\n} from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { getDocumentPermissions } from '../Document/getDocumentPermissions.js'\nimport { enrichDocsWithVersionStatus } from './enrichDocsWithVersionStatus.js'\nimport { handleGroupBy } from './handleGroupBy.js'\nimport { handleHierarchy } from './handleHierarchy.js'\nimport { renderListViewSlots } from './renderListViewSlots.js'\nimport { resolveAllFilterOptions } from './resolveAllFilterOptions.js'\nimport { transformColumnsToSelect } from './transformColumnsToSelect.js'\n\n/**\n * @internal\n */\nexport type RenderListViewArgs = {\n /**\n * Allows providing your own list view component. This will override the default list view component and\n * the collection's configured list view component (if any).\n */\n ComponentOverride?:\n | PayloadComponent\n | React.ComponentType<ListViewClientProps | (ListViewClientProps & ListViewServerPropsOnly)>\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n disableQueryPresets?: boolean\n drawerSlug?: string\n enableRowSelections: boolean\n overrideEntityVisibility?: boolean\n /**\n * If not ListQuery is provided, `req.query` will be used.\n */\n query?: ListQuery\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: boolean\n /**\n * @experimental This prop is subject to change in future releases.\n */\n trash?: boolean\n} & AdminViewServerProps\n\n/**\n * This function is responsible for rendering\n * the list view on the server for both:\n * - default list view\n * - list view within drawers\n *\n * @internal\n */\nexport const renderListView = async (\n args: RenderListViewArgs,\n): Promise<{\n List: React.ReactNode\n}> => {\n const {\n clientConfig,\n ComponentOverride,\n customCellProps,\n disableBulkDelete,\n disableBulkEdit,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n initPageResult,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n trash,\n viewType,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (\n !collectionConfig ||\n !permissions?.collections?.[collectionSlug]?.read ||\n (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility)\n ) {\n throw new Error('not-found')\n }\n\n const query: ListQuery = queryFromArgs || queryFromReq\n\n const columnsFromQuery: ColumnPreference[] = transformColumnsToPreferences(query?.columns)\n\n query.queryByGroup =\n query?.queryByGroup && typeof query.queryByGroup === 'string'\n ? JSON.parse(query.queryByGroup)\n : query?.queryByGroup\n\n const collectionPreferences = await upsertPreferences<CollectionPreferences>({\n key: `collection-${collectionSlug}`,\n req,\n value: {\n columns: columnsFromQuery,\n groupBy: query?.groupBy,\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\n preset: query?.preset,\n sort: query?.sort as string,\n },\n })\n\n let queryPreset: QueryPreset | undefined\n let queryPresetPermissions: SanitizedCollectionPermission | undefined\n\n if (collectionPreferences?.preset) {\n try {\n queryPreset = (await payload.findByID({\n id: collectionPreferences?.preset,\n collection: 'payload-query-presets',\n depth: 0,\n overrideAccess: false,\n user,\n })) as QueryPreset\n\n if (queryPreset) {\n queryPresetPermissions = (\n await getDocumentPermissions({\n id: queryPreset.id,\n collectionConfig: req.payload.collections['payload-query-presets'].config,\n data: queryPreset,\n req,\n })\n )?.docPermissions\n }\n } catch (err) {\n req.payload.logger.error(`Error fetching query preset or preset permissions: ${err}`)\n }\n }\n\n query.preset = queryPreset?.id\n if (queryPreset?.where && !query.where) {\n query.where = queryPreset.where\n }\n query.groupBy = query.groupBy ?? queryPreset?.groupBy ?? collectionPreferences?.groupBy\n\n const columnPreference = query.columns\n ? transformColumnsToPreferences(query.columns)\n : (queryPreset?.columns ?? collectionPreferences?.columns)\n query.columns = transformColumnsToSearchParams(columnPreference)\n\n query.page = isNumber(query?.page) ? Number(query.page) : 0\n\n query.limit = collectionPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n\n query.sort =\n collectionPreferences?.sort ||\n (typeof collectionConfig.defaultSort === 'string' ? collectionConfig.defaultSort : undefined)\n\n const baseFilterConstraint = await (\n collectionConfig.admin?.baseFilter ?? collectionConfig.admin?.baseListFilter\n )?.({\n limit: query.limit,\n page: query.page,\n req,\n sort: query.sort,\n })\n\n let whereWithMergedSearch = mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: combineWhereConstraints([query?.where, baseFilterConstraint]),\n })\n\n if (trash === true) {\n whereWithMergedSearch = {\n and: [\n whereWithMergedSearch,\n {\n deletedAt: {\n exists: true,\n },\n },\n ],\n }\n }\n\n let Table: React.ReactNode | React.ReactNode[] = null\n let columnState: Column[] = []\n let data: PaginatedDocs = {\n // no results default\n docs: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit: query.limit,\n nextPage: null,\n page: 1,\n pagingCounter: 0,\n prevPage: null,\n totalDocs: 0,\n totalPages: 0,\n }\n\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n const columns = getColumns({\n clientConfig,\n collectionConfig: clientCollectionConfig,\n collectionSlug,\n columns: columnPreference,\n i18n,\n permissions,\n })\n\n /** Automatically force select active columns. */\n const select = transformColumnsToSelect(columns)\n\n /** Force select image fields for list view thumbnails */\n appendUploadSelectFields({\n collectionConfig,\n select,\n })\n\n /** Force select `_tz` siblings for any timezone-enabled date fields in select */\n appendDateTimezoneSelectFields({\n fields: collectionConfig.flattenedFields,\n select,\n })\n\n /** Force select `_order` for orderable collections — OrderableTable needs it to compute reorder targets */\n if (collectionConfig.orderable === true) {\n select._order = true\n }\n\n /** Force select `_status` for drafts-enabled collections — needed by `enrichDocsWithVersionStatus` and `formatDocURL` */\n if (collectionConfig.versions?.drafts) {\n select._status = true\n }\n\n // Check for hierarchy parent param\n const isHierarchyCollection = Boolean(collectionConfig.hierarchy)\n let hierarchyParentId: null | number | string = null\n\n if (isHierarchyCollection) {\n if (searchParams?.parent === 'null' || searchParams?.parent === undefined) {\n hierarchyParentId = null\n } else if (typeof searchParams?.parent === 'string') {\n hierarchyParentId =\n payload.db.defaultIDType === 'number' && isNumber(searchParams.parent)\n ? Number(searchParams.parent)\n : searchParams.parent\n }\n }\n\n // Hierarchy data for client-side rendering\n let hierarchyData: HierarchyViewData | undefined\n\n try {\n if (collectionConfig.admin.groupBy && query.groupBy) {\n ;({ columnState, data, Table } = await handleGroupBy({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collectionSlug,\n columns,\n customCellProps,\n drawerSlug,\n enableRowSelections,\n fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,\n query,\n req,\n select,\n trash,\n user,\n viewType,\n where: whereWithMergedSearch,\n }))\n\n // Enrich documents with correct display status for drafts\n data = await enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n })\n } else {\n data = await req.payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit: query?.limit ? Number(query.limit) : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.page ? Number(query.page) : undefined,\n req,\n select,\n sort: query?.sort,\n trash,\n user,\n where: whereWithMergedSearch,\n })\n\n // Enrich documents with correct display status for drafts\n data = await enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n })\n ;({ columnState, Table } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columns,\n customCellProps,\n data,\n drawerSlug,\n enableRowSelections,\n fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,\n i18n: req.i18n,\n orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,\n payload: req.payload,\n query,\n req,\n useAsTitle: collectionConfig.admin.useAsTitle,\n viewType,\n }))\n }\n } catch (err) {\n if (err.name !== 'QueryError') {\n // QueryErrors are expected when a user filters by a field they do not have access to\n req.payload.logger.error({\n err,\n msg: `There was an error fetching the list view data for collection ${collectionSlug}`,\n })\n throw err\n }\n }\n\n // Fetch hierarchy data only for hierarchy view\n let HierarchyIcon: React.ReactNode | undefined\n const isHierarchyView = viewType === 'hierarchy'\n\n if (isHierarchyCollection && isHierarchyView) {\n // Extract typeFilter from searchParams (comma-separated list of collection slugs)\n const typeFilterParam = searchParams?.typeFilter\n const typeFilter =\n typeof typeFilterParam === 'string' && typeFilterParam.length > 0\n ? typeFilterParam.split(',')\n : undefined\n\n hierarchyData = await handleHierarchy({\n baseFilter: baseFilterConstraint,\n collectionConfig,\n collectionSlug,\n parentId: hierarchyParentId,\n permissions,\n req,\n search: typeof query?.search === 'string' ? query.search : undefined,\n typeFilter,\n user,\n })\n\n data = hierarchyData.childrenData\n\n // Resolve hierarchy icon from collection config\n const hierarchyConfig =\n typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy : undefined\n\n HierarchyIcon = RenderServerComponent({\n Component: hierarchyConfig?.admin?.components?.Icon,\n importMap: payload.importMap,\n key: `hierarchy-icon-${collectionSlug}`,\n })\n }\n\n const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap)\n\n const resolvedFilterOptions = await resolveAllFilterOptions({\n fields: collectionConfig.fields,\n req,\n })\n\n const staticDescription =\n typeof collectionConfig.admin.description === 'function'\n ? collectionConfig.admin.description({ t: i18n.t })\n : collectionConfig.admin.description\n\n const newDocumentURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })\n\n const hasCreatePermission = permissions?.collections?.[collectionSlug]?.create\n\n const { hasDeletePermission, hasTrashPermission } = await getDocumentPermissions({\n collectionConfig,\n // Empty object serves as base for computing differentiated trash/delete permissions\n data: {},\n req,\n })\n\n // Check if there's a notFound query parameter (document ID that wasn't found)\n const notFoundDocId = typeof searchParams?.notFound === 'string' ? searchParams.notFound : null\n\n const serverProps: ListViewServerPropsOnly = {\n collectionConfig,\n data,\n i18n,\n limit: query.limit,\n listPreferences: collectionPreferences,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }\n\n const listViewSlots = renderListViewSlots({\n clientProps: {\n collectionSlug,\n hasCreatePermission,\n hasDeletePermission,\n hasTrashPermission,\n newDocumentURL,\n },\n collectionConfig,\n description: staticDescription,\n notFoundDocId,\n payload,\n serverProps,\n })\n\n const isInDrawer = Boolean(drawerSlug)\n\n // Needed to prevent: Only plain objects can be passed to Client Components from Server Components. Objects with toJSON methods are not supported. Convert it manually to a simple value before passing it to props.\n // Is there a way to avoid this? The `where` object is already seemingly plain, but is not bc it originates from the params.\n query.where = query?.where ? JSON.parse(JSON.stringify(query?.where || {})) : undefined\n\n const RenderedListViewComponent = RenderServerComponent({\n clientProps: {\n ...listViewSlots,\n baseFilter: baseFilterConstraint,\n collectionSlug,\n columnState,\n disableBulkDelete,\n disableBulkEdit: collectionConfig.disableBulkEdit ?? disableBulkEdit,\n disableQueryPresets,\n enableRowSelections,\n hasCreatePermission,\n hasDeletePermission,\n hasTrashPermission,\n hierarchyData,\n HierarchyIcon,\n listPreferences: collectionPreferences,\n newDocumentURL,\n queryPreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n Table,\n viewType,\n } satisfies ListViewClientProps,\n Component: ComponentOverride ?? collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: viewType === 'hierarchy' ? HierarchyListView : DefaultListView,\n importMap: payload.importMap,\n key: `list-view-${collectionSlug}-${viewType}`,\n serverProps,\n })\n\n return {\n List: (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n {isHierarchyView ? (\n <Fragment>\n <HydrateHierarchyProvider\n allowedCollections={hierarchyData?.allowedCollections}\n baseFilter={baseFilterConstraint}\n collectionSlug={collectionSlug}\n expandedNodes={hierarchyData?.breadcrumbs?.slice(0, -1).map((b) => b.id)}\n parent={hierarchyData?.parent}\n parentFieldName={\n typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy?.parentFieldName\n : undefined\n }\n tableData={data}\n treeLimit={\n typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy?.admin?.treeLimit\n : undefined\n }\n typeFieldName={\n typeof collectionConfig.hierarchy === 'object' &&\n collectionConfig.hierarchy?.collectionSpecific &&\n typeof collectionConfig.hierarchy.collectionSpecific === 'object'\n ? collectionConfig.hierarchy.collectionSpecific.fieldName\n : undefined\n }\n />\n {RenderedListViewComponent}\n </Fragment>\n ) : (\n <ListQueryProvider\n collectionSlug={collectionSlug}\n data={data}\n modifySearchParams={!isInDrawer}\n orderableFieldName={collectionConfig.orderable === true ? '_order' : undefined}\n query={query}\n >\n {RenderedListViewComponent}\n </ListQueryProvider>\n )}\n </Fragment>\n ),\n }\n}\n\nexport const ListView: React.FC<RenderListViewArgs> = async (args) => {\n try {\n const { List: RenderedList } = await renderListView({ ...args, enableRowSelections: true })\n return RenderedList\n } catch (error) {\n // Pass through Next.js errors\n if (error.message === 'not-found') {\n notFound()\n } else {\n console.error(error) // eslint-disable-line no-console\n }\n }\n}\n"],"mappings":";AAeA,SACEA,eAAe,EACfC,iBAAiB,EACjBC,mBAAmB,EACnBC,wBAAwB,EACxBC,iBAAiB,QACZ;AACP,SAASC,qBAAqB,QAAQ;AACtC,SAASC,UAAU,EAAEC,aAAa,EAAEC,WAAW,EAAEC,iBAAiB,QAAQ;AAC1E,SAASC,QAAQ,QAAQ;AACzB,SACEC,8BAA8B,EAC9BC,wBAAwB,EACxBC,uBAAuB,EACvBC,cAAc,EACdC,QAAQ,EACRC,uBAAuB,EACvBC,6BAA6B,EAC7BC,8BAA8B,QACzB;AACP,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,2BAA2B,QAAQ;AAC5C,SAASC,aAAa,QAAQ;AAC9B,SAASC,eAAe,QAAQ;AAChC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,uBAAuB,QAAQ;AACxC,SAASC,wBAAwB,QAAQ;AAgCzC;;;;;;;;AAQA,OAAO,MAAMC,cAAA,GAAiB,MAC5BC,IAAA;EAIA,MAAM;IACJC,YAAY;IACZC,iBAAiB;IACjBC,eAAe;IACfC,iBAAiB;IACjBC,eAAe;IACfC,mBAAmB;IACnBC,UAAU;IACVC,mBAAmB;IACnBC,cAAc;IACdC,wBAAwB;IACxBC,MAAM;IACNC,KAAA,EAAOC,aAAa;IACpBC,YAAY;IACZC,KAAK;IACLC;EAAQ,CACT,GAAGhB,IAAA;EAEJ,MAAM;IACJiB,gBAAgB;IAChBA,gBAAA,EAAkB;MAAEC,IAAA,EAAMC;IAAc,CAAE;IAC1CC,MAAA,EAAQC,UAAU;IAClBC,WAAW;IACXC,GAAG;IACHA,GAAA,EAAK;MACHC,IAAI;MACJC,OAAO;MACPA,OAAA,EAAS;QAAEC;MAAM,CAAE;MACnBd,KAAA,EAAOe,YAAY;MACnBC;IAAI,CACL;IACDC;EAAe,CAChB,GAAGpB,cAAA;EACJ,MAAM;IACJqB,MAAA,EAAQ;MAAEC,KAAA,EAAOC;IAAU;EAAE,CAC9B,GAAGN,MAAA;EAEJ,IACE,CAACT,gBAAA,IACD,CAACK,WAAA,EAAaW,WAAA,GAAcd,cAAA,CAAe,EAAEe,IAAA,IAC5C,CAACL,eAAA,CAAgBI,WAAW,CAACE,QAAQ,CAAChB,cAAA,KAAmB,CAACT,wBAAA,EAC3D;IACA,MAAM,IAAI0B,KAAA,CAAM;EAClB;EAEA,MAAMxB,KAAA,GAAmBC,aAAA,IAAiBc,YAAA;EAE1C,MAAMU,gBAAA,GAAuCjD,6BAAA,CAA8BwB,KAAA,EAAO0B,OAAA;EAElF1B,KAAA,CAAM2B,YAAY,GAChB3B,KAAA,EAAO2B,YAAA,IAAgB,OAAO3B,KAAA,CAAM2B,YAAY,KAAK,WACjDC,IAAA,CAAKC,KAAK,CAAC7B,KAAA,CAAM2B,YAAY,IAC7B3B,KAAA,EAAO2B,YAAA;EAEb,MAAMG,qBAAA,GAAwB,MAAM9D,iBAAA,CAAyC;IAC3E+D,GAAA,EAAK,cAAcxB,cAAA,EAAgB;IACnCI,GAAA;IACAqB,KAAA,EAAO;MACLN,OAAA,EAASD,gBAAA;MACTQ,OAAA,EAASjC,KAAA,EAAOiC,OAAA;MAChBC,KAAA,EAAO5D,QAAA,CAAS0B,KAAA,EAAOkC,KAAA,IAASC,MAAA,CAAOnC,KAAA,CAAMkC,KAAK,IAAIE,SAAA;MACtDC,MAAA,EAAQrC,KAAA,EAAOqC,MAAA;MACfC,IAAA,EAAMtC,KAAA,EAAOsC;IACf;EACF;EAEA,IAAIC,WAAA;EACJ,IAAIC,sBAAA;EAEJ,IAAIV,qBAAA,EAAuBO,MAAA,EAAQ;IACjC,IAAI;MACFE,WAAA,GAAe,MAAM1B,OAAA,CAAQ4B,QAAQ,CAAC;QACpCC,EAAA,EAAIZ,qBAAA,EAAuBO,MAAA;QAC3BM,UAAA,EAAY;QACZC,KAAA,EAAO;QACPC,cAAA,EAAgB;QAChB7B;MACF;MAEA,IAAIuB,WAAA,EAAa;QACfC,sBAAA,GACE,OAAM5D,sBAAA,CAAuB;UAC3B8D,EAAA,EAAIH,WAAA,CAAYG,EAAE;UAClBrC,gBAAA,EAAkBM,GAAA,CAAIE,OAAO,CAACQ,WAAW,CAAC,wBAAwB,CAACP,MAAM;UACzEgC,IAAA,EAAMP,WAAA;UACN5B;QACF,EAAC,GACAoC,cAAA;MACL;IACF,EAAE,OAAOC,GAAA,EAAK;MACZrC,GAAA,CAAIE,OAAO,CAACoC,MAAM,CAACC,KAAK,CAAC,sDAAsDF,GAAA,EAAK;IACtF;EACF;EAEAhD,KAAA,CAAMqC,MAAM,GAAGE,WAAA,EAAaG,EAAA;EAC5B,IAAIH,WAAA,EAAaY,KAAA,IAAS,CAACnD,KAAA,CAAMmD,KAAK,EAAE;IACtCnD,KAAA,CAAMmD,KAAK,GAAGZ,WAAA,CAAYY,KAAK;EACjC;EACAnD,KAAA,CAAMiC,OAAO,GAAGjC,KAAA,CAAMiC,OAAO,IAAIM,WAAA,EAAaN,OAAA,IAAWH,qBAAA,EAAuBG,OAAA;EAEhF,MAAMmB,gBAAA,GAAmBpD,KAAA,CAAM0B,OAAO,GAClClD,6BAAA,CAA8BwB,KAAA,CAAM0B,OAAO,IAC1Ca,WAAA,EAAab,OAAA,IAAWI,qBAAA,EAAuBJ,OAAA;EACpD1B,KAAA,CAAM0B,OAAO,GAAGjD,8BAAA,CAA+B2E,gBAAA;EAE/CpD,KAAA,CAAMqD,IAAI,GAAG/E,QAAA,CAAS0B,KAAA,EAAOqD,IAAA,IAAQlB,MAAA,CAAOnC,KAAA,CAAMqD,IAAI,IAAI;EAE1DrD,KAAA,CAAMkC,KAAK,GAAGJ,qBAAA,EAAuBI,KAAA,IAAS7B,gBAAA,CAAiBc,KAAK,CAACmC,UAAU,CAACC,YAAY;EAE5FvD,KAAA,CAAMsC,IAAI,GACRR,qBAAA,EAAuBQ,IAAA,KACtB,OAAOjC,gBAAA,CAAiBmD,WAAW,KAAK,WAAWnD,gBAAA,CAAiBmD,WAAW,GAAGpB,SAAQ;EAE7F,MAAMqB,oBAAA,GAAuB,MAC3B,CAAApD,gBAAA,CAAiBc,KAAK,EAAEuC,UAAA,IAAcrD,gBAAA,CAAiBc,KAAK,EAAEwC,cAAa,IACzE;IACFzB,KAAA,EAAOlC,KAAA,CAAMkC,KAAK;IAClBmB,IAAA,EAAMrD,KAAA,CAAMqD,IAAI;IAChB1C,GAAA;IACA2B,IAAA,EAAMtC,KAAA,CAAMsC;EACd;EAEA,IAAIsB,qBAAA,GAAwBrF,uBAAA,CAAwB;IAClD8B,gBAAA;IACAwD,MAAA,EAAQ,OAAO7D,KAAA,EAAO6D,MAAA,KAAW,WAAW7D,KAAA,CAAM6D,MAAM,GAAGzB,SAAA;IAC3De,KAAA,EAAO/E,uBAAA,CAAwB,CAAC4B,KAAA,EAAOmD,KAAA,EAAOM,oBAAA,CAAqB;EACrE;EAEA,IAAItD,KAAA,KAAU,MAAM;IAClByD,qBAAA,GAAwB;MACtBE,GAAA,EAAK,CACHF,qBAAA,EACA;QACEG,SAAA,EAAW;UACTC,MAAA,EAAQ;QACV;MACF;IAEJ;EACF;EAEA,IAAIC,KAAA,GAA6C;EACjD,IAAIC,WAAA,GAAwB,EAAE;EAC9B,IAAIpB,IAAA,GAAsB;IACxB;IACAqB,IAAA,EAAM,EAAE;IACRC,WAAA,EAAa;IACbC,WAAA,EAAa;IACbnC,KAAA,EAAOlC,KAAA,CAAMkC,KAAK;IAClBoC,QAAA,EAAU;IACVjB,IAAA,EAAM;IACNkB,aAAA,EAAe;IACfC,QAAA,EAAU;IACVC,SAAA,EAAW;IACXC,UAAA,EAAY;EACd;EAEA,MAAMC,sBAAA,GAAyBtF,YAAA,CAAagC,WAAW,CAACuD,IAAI,CAAEC,CAAA,IAAMA,CAAA,CAAEvE,IAAI,KAAKC,cAAA;EAE/E,MAAMmB,OAAA,GAAU7D,UAAA,CAAW;IACzBwB,YAAA;IACAgB,gBAAA,EAAkBsE,sBAAA;IAClBpE,cAAA;IACAmB,OAAA,EAAS0B,gBAAA;IACTxC,IAAA;IACAF;EACF;EAEA;EACA,MAAMoE,MAAA,GAAS5F,wBAAA,CAAyBwC,OAAA;EAExC;EACAvD,wBAAA,CAAyB;IACvBkC,gBAAA;IACAyE;EACF;EAEA;EACA5G,8BAAA,CAA+B;IAC7B6G,MAAA,EAAQ1E,gBAAA,CAAiB2E,eAAe;IACxCF;EACF;EAEA;EACA,IAAIzE,gBAAA,CAAiB4E,SAAS,KAAK,MAAM;IACvCH,MAAA,CAAOI,MAAM,GAAG;EAClB;EAEA;EACA,IAAI7E,gBAAA,CAAiB8E,QAAQ,EAAEC,MAAA,EAAQ;IACrCN,MAAA,CAAOO,OAAO,GAAG;EACnB;EAEA;EACA,MAAMC,qBAAA,GAAwBC,OAAA,CAAQlF,gBAAA,CAAiBmF,SAAS;EAChE,IAAIC,iBAAA,GAA4C;EAEhD,IAAIH,qBAAA,EAAuB;IACzB,IAAIpF,YAAA,EAAcwF,MAAA,KAAW,UAAUxF,YAAA,EAAcwF,MAAA,KAAWtD,SAAA,EAAW;MACzEqD,iBAAA,GAAoB;IACtB,OAAO,IAAI,OAAOvF,YAAA,EAAcwF,MAAA,KAAW,UAAU;MACnDD,iBAAA,GACE5E,OAAA,CAAQ8E,EAAE,CAACC,aAAa,KAAK,YAAYtH,QAAA,CAAS4B,YAAA,CAAawF,MAAM,IACjEvD,MAAA,CAAOjC,YAAA,CAAawF,MAAM,IAC1BxF,YAAA,CAAawF,MAAM;IAC3B;EACF;EAEA;EACA,IAAIG,aAAA;EAEJ,IAAI;IACF,IAAIxF,gBAAA,CAAiBc,KAAK,CAACc,OAAO,IAAIjC,KAAA,CAAMiC,OAAO,EAAE;MACjD;QAAEiC,WAAW;QAAEpB,IAAI;QAAEmB;MAAK,CAAE,GAAG,MAAMnF,aAAA,CAAc;QACnD6F,sBAAA;QACAtF,YAAA;QACAgB,gBAAA;QACAE,cAAA;QACAmB,OAAA;QACAnC,eAAA;QACAI,UAAA;QACAC,mBAAA;QACAkG,gBAAA,EAAkBpF,WAAA,EAAaW,WAAA,GAAcd,cAAA,CAAe,EAAEwE,MAAA;QAC9D/E,KAAA;QACAW,GAAA;QACAmE,MAAA;QACA3E,KAAA;QACAa,IAAA;QACAZ,QAAA;QACA+C,KAAA,EAAOS;MACT,EAAC;MAED;MACAd,IAAA,GAAO,MAAMjE,2BAAA,CAA4B;QACvCwB,gBAAA;QACAyC,IAAA;QACAnC;MACF;IACF,OAAO;MACLmC,IAAA,GAAO,MAAMnC,GAAA,CAAIE,OAAO,CAAC+D,IAAI,CAAC;QAC5BjC,UAAA,EAAYpC,cAAA;QACZqC,KAAA,EAAO;QACPmD,KAAA,EAAO;QACPC,cAAA,EAAgB;QAChBC,iBAAA,EAAmB;QACnB/D,KAAA,EAAOlC,KAAA,EAAOkC,KAAA,GAAQC,MAAA,CAAOnC,KAAA,CAAMkC,KAAK,IAAIE,SAAA;QAC5C5B,MAAA,EAAQG,GAAA,CAAIH,MAAM;QAClBqC,cAAA,EAAgB;QAChBQ,IAAA,EAAMrD,KAAA,EAAOqD,IAAA,GAAOlB,MAAA,CAAOnC,KAAA,CAAMqD,IAAI,IAAIjB,SAAA;QACzCzB,GAAA;QACAmE,MAAA;QACAxC,IAAA,EAAMtC,KAAA,EAAOsC,IAAA;QACbnC,KAAA;QACAa,IAAA;QACAmC,KAAA,EAAOS;MACT;MAEA;MACAd,IAAA,GAAO,MAAMjE,2BAAA,CAA4B;QACvCwB,gBAAA;QACAyC,IAAA;QACAnC;MACF;MACE;QAAEuD,WAAW;QAAED;MAAK,CAAE,GAAGlG,WAAA,CAAY;QACrC4G,sBAAA;QACAtE,gBAAA;QACAqB,OAAA;QACAnC,eAAA;QACAuD,IAAA;QACAnD,UAAA;QACAC,mBAAA;QACAkG,gBAAA,EAAkBpF,WAAA,EAAaW,WAAA,GAAcd,cAAA,CAAe,EAAEwE,MAAA;QAC9DnE,IAAA,EAAMD,GAAA,CAAIC,IAAI;QACdsF,kBAAA,EAAoB7F,gBAAA,CAAiB4E,SAAS,KAAK,OAAO,WAAW7C,SAAA;QACrEvB,OAAA,EAASF,GAAA,CAAIE,OAAO;QACpBb,KAAA;QACAW,GAAA;QACAwF,UAAA,EAAY9F,gBAAA,CAAiBc,KAAK,CAACgF,UAAU;QAC7C/F;MACF,EAAC;IACH;EACF,EAAE,OAAO4C,GAAA,EAAK;IACZ,IAAIA,GAAA,CAAIoD,IAAI,KAAK,cAAc;MAC7B;MACAzF,GAAA,CAAIE,OAAO,CAACoC,MAAM,CAACC,KAAK,CAAC;QACvBF,GAAA;QACAqD,GAAA,EAAK,iEAAiE9F,cAAA;MACxE;MACA,MAAMyC,GAAA;IACR;EACF;EAEA;EACA,IAAIsD,aAAA;EACJ,MAAMC,eAAA,GAAkBnG,QAAA,KAAa;EAErC,IAAIkF,qBAAA,IAAyBiB,eAAA,EAAiB;IAC5C;IACA,MAAMC,eAAA,GAAkBtG,YAAA,EAAcuG,UAAA;IACtC,MAAMA,UAAA,GACJ,OAAOD,eAAA,KAAoB,YAAYA,eAAA,CAAgBE,MAAM,GAAG,IAC5DF,eAAA,CAAgBG,KAAK,CAAC,OACtBvE,SAAA;IAENyD,aAAA,GAAgB,MAAM9G,eAAA,CAAgB;MACpC2E,UAAA,EAAYD,oBAAA;MACZpD,gBAAA;MACAE,cAAA;MACAqG,QAAA,EAAUnB,iBAAA;MACV/E,WAAA;MACAC,GAAA;MACAkD,MAAA,EAAQ,OAAO7D,KAAA,EAAO6D,MAAA,KAAW,WAAW7D,KAAA,CAAM6D,MAAM,GAAGzB,SAAA;MAC3DqE,UAAA;MACAzF;IACF;IAEA8B,IAAA,GAAO+C,aAAA,CAAcgB,YAAY;IAEjC;IACA,MAAMC,eAAA,GACJ,OAAOzG,gBAAA,CAAiBmF,SAAS,KAAK,WAAWnF,gBAAA,CAAiBmF,SAAS,GAAGpD,SAAA;IAEhFkE,aAAA,GAAgB1I,qBAAA,CAAsB;MACpCmJ,SAAA,EAAWD,eAAA,EAAiB3F,KAAA,EAAO6F,UAAA,EAAYC,IAAA;MAC/CC,SAAA,EAAWrG,OAAA,CAAQqG,SAAS;MAC5BnF,GAAA,EAAK,kBAAkBxB,cAAA;IACzB;EACF;EAEA,MAAM4G,eAAA,GAAkBrJ,aAAA,CAAcuC,gBAAA,CAAiB0E,MAAM,EAAEpE,GAAA,CAAIE,OAAO,CAACqG,SAAS;EAEpF,MAAME,qBAAA,GAAwB,MAAMnI,uBAAA,CAAwB;IAC1D8F,MAAA,EAAQ1E,gBAAA,CAAiB0E,MAAM;IAC/BpE;EACF;EAEA,MAAM0G,iBAAA,GACJ,OAAOhH,gBAAA,CAAiBc,KAAK,CAACmG,WAAW,KAAK,aAC1CjH,gBAAA,CAAiBc,KAAK,CAACmG,WAAW,CAAC;IAAEC,CAAA,EAAG3G,IAAA,CAAK2G;EAAE,KAC/ClH,gBAAA,CAAiBc,KAAK,CAACmG,WAAW;EAExC,MAAME,cAAA,GAAiBnJ,cAAA,CAAe;IACpC+C,UAAA;IACAqG,IAAA,EAAM,gBAAgBlH,cAAA;EACxB;EAEA,MAAMmH,mBAAA,GAAsBhH,WAAA,EAAaW,WAAA,GAAcd,cAAA,CAAe,EAAEoH,MAAA;EAExE,MAAM;IAAEC,mBAAmB;IAAEC;EAAkB,CAAE,GAAG,MAAMjJ,sBAAA,CAAuB;IAC/EyB,gBAAA;IACA;IACAyC,IAAA,EAAM,CAAC;IACPnC;EACF;EAEA;EACA,MAAMmH,aAAA,GAAgB,OAAO5H,YAAA,EAAcjC,QAAA,KAAa,WAAWiC,YAAA,CAAajC,QAAQ,GAAG;EAE3F,MAAM8J,WAAA,GAAuC;IAC3C1H,gBAAA;IACAyC,IAAA;IACAlC,IAAA;IACAsB,KAAA,EAAOlC,KAAA,CAAMkC,KAAK;IAClB8F,eAAA,EAAiBlG,qBAAA;IACjBmG,oBAAA,EAAsB5H,gBAAA,CAAiBc,KAAK,CAAC8G,oBAAoB;IACjEzH,MAAA,EAAQC,UAAA;IACRV,MAAA;IACAc,OAAA;IACAH,WAAA;IACAR,YAAA;IACAc;EACF;EAEA,MAAMkH,aAAA,GAAgBlJ,mBAAA,CAAoB;IACxCmJ,WAAA,EAAa;MACX5H,cAAA;MACAmH,mBAAA;MACAE,mBAAA;MACAC,kBAAA;MACAL;IACF;IACAnH,gBAAA;IACAiH,WAAA,EAAaD,iBAAA;IACbS,aAAA;IACAjH,OAAA;IACAkH;EACF;EAEA,MAAMK,UAAA,GAAa7C,OAAA,CAAQ5F,UAAA;EAE3B;EACA;EACAK,KAAA,CAAMmD,KAAK,GAAGnD,KAAA,EAAOmD,KAAA,GAAQvB,IAAA,CAAKC,KAAK,CAACD,IAAA,CAAKyG,SAAS,CAACrI,KAAA,EAAOmD,KAAA,IAAS,CAAC,MAAMf,SAAA;EAE9E,MAAMkG,yBAAA,GAA4B1K,qBAAA,CAAsB;IACtDuK,WAAA,EAAa;MACX,GAAGD,aAAa;MAChBxE,UAAA,EAAYD,oBAAA;MACZlD,cAAA;MACA2D,WAAA;MACA1E,iBAAA;MACAC,eAAA,EAAiBY,gBAAA,CAAiBZ,eAAe,IAAIA,eAAA;MACrDC,mBAAA;MACAE,mBAAA;MACA8H,mBAAA;MACAE,mBAAA;MACAC,kBAAA;MACAhC,aAAA;MACAS,aAAA;MACA0B,eAAA,EAAiBlG,qBAAA;MACjB0F,cAAA;MACAjF,WAAA;MACAC,sBAAA;MACA2E,eAAA;MACAC,qBAAA;MACAnD,KAAA;MACA7D;IACF;IACA2G,SAAA,EAAWzH,iBAAA,IAAqBe,gBAAA,EAAkBc,KAAA,EAAO6F,UAAA,EAAYuB,KAAA,EAAOC,IAAA,EAAMzB,SAAA;IAClF0B,QAAA,EAAUrI,QAAA,KAAa,cAAc5C,iBAAA,GAAoBD,eAAA;IACzD2J,SAAA,EAAWrG,OAAA,CAAQqG,SAAS;IAC5BnF,GAAA,EAAK,aAAaxB,cAAA,IAAkBH,QAAA,EAAU;IAC9C2H;EACF;EAEA,OAAO;IACLW,IAAA,eACEC,KAAA,CAAChK,QAAA;8BACCiK,IAAA,CAACnL,mBAAA;QAAoBiD,WAAA,EAAaA;UACjC6F,eAAA,gBACCoC,KAAA,CAAChK,QAAA;gCACCiK,IAAA,CAAClL,wBAAA;UACCmL,kBAAA,EAAoBhD,aAAA,EAAegD,kBAAA;UACnCnF,UAAA,EAAYD,oBAAA;UACZlD,cAAA,EAAgBA,cAAA;UAChBuI,aAAA,EAAejD,aAAA,EAAekD,WAAA,EAAaC,KAAA,CAAM,GAAG,CAAC,GAAGC,GAAA,CAAKC,CAAA,IAAMA,CAAA,CAAExG,EAAE;UACvEgD,MAAA,EAAQG,aAAA,EAAeH,MAAA;UACvByD,eAAA,EACE,OAAO9I,gBAAA,CAAiBmF,SAAS,KAAK,WAClCnF,gBAAA,CAAiBmF,SAAS,EAAE2D,eAAA,GAC5B/G,SAAA;UAENgH,SAAA,EAAWtG,IAAA;UACXuG,SAAA,EACE,OAAOhJ,gBAAA,CAAiBmF,SAAS,KAAK,WAClCnF,gBAAA,CAAiBmF,SAAS,EAAErE,KAAA,EAAOkI,SAAA,GACnCjH,SAAA;UAENkH,aAAA,EACE,OAAOjJ,gBAAA,CAAiBmF,SAAS,KAAK,YACtCnF,gBAAA,CAAiBmF,SAAS,EAAE+D,kBAAA,IAC5B,OAAOlJ,gBAAA,CAAiBmF,SAAS,CAAC+D,kBAAkB,KAAK,WACrDlJ,gBAAA,CAAiBmF,SAAS,CAAC+D,kBAAkB,CAACC,SAAS,GACvDpH;YAGPkG,yBAAA;wBAGHM,IAAA,CAACjL,iBAAA;QACC4C,cAAA,EAAgBA,cAAA;QAChBuC,IAAA,EAAMA,IAAA;QACN2G,kBAAA,EAAoB,CAACrB,UAAA;QACrBlC,kBAAA,EAAoB7F,gBAAA,CAAiB4E,SAAS,KAAK,OAAO,WAAW7C,SAAA;QACrEpC,KAAA,EAAOA,KAAA;kBAENsI;;;EAKX;AACF;AAEA,OAAO,MAAMoB,QAAA,GAAyC,MAAOtK,IAAA;EAC3D,IAAI;IACF,MAAM;MAAEsJ,IAAA,EAAMiB;IAAY,CAAE,GAAG,MAAMxK,cAAA,CAAe;MAAE,GAAGC,IAAI;MAAEQ,mBAAA,EAAqB;IAAK;IACzF,OAAO+J,YAAA;EACT,EAAE,OAAOzG,KAAA,EAAO;IACd;IACA,IAAIA,KAAA,CAAM0G,OAAO,KAAK,aAAa;MACjC3L,QAAA;IACF,OAAO;MACL4L,OAAA,CAAQ3G,KAAK,CAACA,KAAA,GAAO;IACvB;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import type { SanitizedGlobalConfig } from 'payload';
2
+ import type { ViewFromConfig } from './getRouteData.js';
3
+ export declare const getCustomGlobalViewByRoute: ({ adminRoute, baseRoute, currentRoute: currentRouteWithAdmin, views, }: {
4
+ adminRoute: string;
5
+ baseRoute: string;
6
+ currentRoute: string;
7
+ views: SanitizedGlobalConfig["admin"]["components"]["views"];
8
+ }) => {
9
+ view: ViewFromConfig;
10
+ viewKey: null | string;
11
+ };
12
+ //# sourceMappingURL=getCustomGlobalViewByRoute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCustomGlobalViewByRoute.d.ts","sourceRoot":"","sources":["../../../src/views/Root/getCustomGlobalViewByRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAIvD,eAAO,MAAM,0BAA0B,2EAKpC;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;CAC7D,KAAG;IACF,IAAI,EAAE,cAAc,CAAA;IACpB,OAAO,EAAE,IAAI,GAAG,MAAM,CAAA;CAwDvB,CAAA"}
@@ -0,0 +1,46 @@
1
+ import { isPathMatchingRoute } from './isPathMatchingRoute.js';
2
+ export const getCustomGlobalViewByRoute = ({
3
+ adminRoute,
4
+ baseRoute,
5
+ currentRoute: currentRouteWithAdmin,
6
+ views
7
+ }) => {
8
+ const currentRoute = adminRoute === '/' ? currentRouteWithAdmin : currentRouteWithAdmin.startsWith(adminRoute) ? currentRouteWithAdmin.slice(adminRoute.length) : currentRouteWithAdmin;
9
+ if (views && typeof views === 'object') {
10
+ const foundEntry = Object.entries(views).find(([key, view]) => {
11
+ if (key === 'edit') {
12
+ return false;
13
+ }
14
+ const isAdminViewConfig = typeof view === 'object' && view !== null && 'path' in view && 'Component' in view && typeof view.path === 'string';
15
+ if (isAdminViewConfig) {
16
+ const adminView = view;
17
+ const viewPath = `${baseRoute}${adminView.path}`;
18
+ return isPathMatchingRoute({
19
+ currentRoute,
20
+ exact: adminView.exact,
21
+ path: viewPath,
22
+ sensitive: adminView.sensitive,
23
+ strict: adminView.strict
24
+ });
25
+ }
26
+ return false;
27
+ });
28
+ if (foundEntry) {
29
+ const [viewKey, foundViewConfig] = foundEntry;
30
+ const adminView = foundViewConfig;
31
+ return {
32
+ view: {
33
+ payloadComponent: adminView.Component
34
+ },
35
+ viewKey
36
+ };
37
+ }
38
+ }
39
+ return {
40
+ view: {
41
+ Component: null
42
+ },
43
+ viewKey: null
44
+ };
45
+ };
46
+ //# sourceMappingURL=getCustomGlobalViewByRoute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCustomGlobalViewByRoute.js","names":["isPathMatchingRoute","getCustomGlobalViewByRoute","adminRoute","baseRoute","currentRoute","currentRouteWithAdmin","views","startsWith","slice","length","foundEntry","Object","entries","find","key","view","isAdminViewConfig","path","adminView","viewPath","exact","sensitive","strict","viewKey","foundViewConfig","payloadComponent","Component"],"sources":["../../../src/views/Root/getCustomGlobalViewByRoute.ts"],"sourcesContent":["import type {\n AdminViewConfig,\n AdminViewServerProps,\n PayloadComponent,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport type { ViewFromConfig } from './getRouteData.js'\n\nimport { isPathMatchingRoute } from './isPathMatchingRoute.js'\n\nexport const getCustomGlobalViewByRoute = ({\n adminRoute,\n baseRoute,\n currentRoute: currentRouteWithAdmin,\n views,\n}: {\n adminRoute: string\n baseRoute: string\n currentRoute: string\n views: SanitizedGlobalConfig['admin']['components']['views']\n}): {\n view: ViewFromConfig\n viewKey: null | string\n} => {\n const currentRoute =\n adminRoute === '/'\n ? currentRouteWithAdmin\n : currentRouteWithAdmin.startsWith(adminRoute)\n ? currentRouteWithAdmin.slice(adminRoute.length)\n : currentRouteWithAdmin\n\n if (views && typeof views === 'object') {\n const foundEntry = Object.entries(views).find(([key, view]) => {\n if (key === 'edit') {\n return false\n }\n\n const isAdminViewConfig =\n typeof view === 'object' &&\n view !== null &&\n 'path' in view &&\n 'Component' in view &&\n typeof view.path === 'string'\n\n if (isAdminViewConfig) {\n const adminView = view as AdminViewConfig\n const viewPath = `${baseRoute}${adminView.path}`\n\n return isPathMatchingRoute({\n currentRoute,\n exact: adminView.exact,\n path: viewPath,\n sensitive: adminView.sensitive,\n strict: adminView.strict,\n })\n }\n\n return false\n })\n\n if (foundEntry) {\n const [viewKey, foundViewConfig] = foundEntry\n const adminView = foundViewConfig as AdminViewConfig\n return {\n view: {\n payloadComponent: adminView.Component as PayloadComponent<AdminViewServerProps>,\n },\n viewKey,\n }\n }\n }\n\n return {\n view: {\n Component: null,\n },\n viewKey: null,\n }\n}\n"],"mappings":"AASA,SAASA,mBAAmB,QAAQ;AAEpC,OAAO,MAAMC,0BAAA,GAA6BA,CAAC;EACzCC,UAAU;EACVC,SAAS;EACTC,YAAA,EAAcC,qBAAqB;EACnCC;AAAK,CAMN;EAIC,MAAMF,YAAA,GACJF,UAAA,KAAe,MACXG,qBAAA,GACAA,qBAAA,CAAsBE,UAAU,CAACL,UAAA,IAC/BG,qBAAA,CAAsBG,KAAK,CAACN,UAAA,CAAWO,MAAM,IAC7CJ,qBAAA;EAER,IAAIC,KAAA,IAAS,OAAOA,KAAA,KAAU,UAAU;IACtC,MAAMI,UAAA,GAAaC,MAAA,CAAOC,OAAO,CAACN,KAAA,EAAOO,IAAI,CAAC,CAAC,CAACC,GAAA,EAAKC,IAAA,CAAK;MACxD,IAAID,GAAA,KAAQ,QAAQ;QAClB,OAAO;MACT;MAEA,MAAME,iBAAA,GACJ,OAAOD,IAAA,KAAS,YAChBA,IAAA,KAAS,QACT,UAAUA,IAAA,IACV,eAAeA,IAAA,IACf,OAAOA,IAAA,CAAKE,IAAI,KAAK;MAEvB,IAAID,iBAAA,EAAmB;QACrB,MAAME,SAAA,GAAYH,IAAA;QAClB,MAAMI,QAAA,GAAW,GAAGhB,SAAA,GAAYe,SAAA,CAAUD,IAAI,EAAE;QAEhD,OAAOjB,mBAAA,CAAoB;UACzBI,YAAA;UACAgB,KAAA,EAAOF,SAAA,CAAUE,KAAK;UACtBH,IAAA,EAAME,QAAA;UACNE,SAAA,EAAWH,SAAA,CAAUG,SAAS;UAC9BC,MAAA,EAAQJ,SAAA,CAAUI;QACpB;MACF;MAEA,OAAO;IACT;IAEA,IAAIZ,UAAA,EAAY;MACd,MAAM,CAACa,OAAA,EAASC,eAAA,CAAgB,GAAGd,UAAA;MACnC,MAAMQ,SAAA,GAAYM,eAAA;MAClB,OAAO;QACLT,IAAA,EAAM;UACJU,gBAAA,EAAkBP,SAAA,CAAUQ;QAC9B;QACAH;MACF;IACF;EACF;EAEA,OAAO;IACLR,IAAA,EAAM;MACJW,SAAA,EAAW;IACb;IACAH,OAAA,EAAS;EACX;AACF","ignoreList":[]}
@@ -1,19 +1,16 @@
1
- import type { AdminViewServerProps, CollectionPreferences, CollectionSlug, CustomComponent, DocumentSubViewTypes, Payload, PayloadComponent, SanitizedCollectionConfig, SanitizedGlobalConfig, ViewTypes } from 'payload';
1
+ import type { AdminViewServerProps, CollectionPreferences, CustomComponent, DocumentSubViewTypes, Payload, PayloadComponent, SanitizedCollectionConfig, SanitizedGlobalConfig, ViewTypes } from 'payload';
2
2
  import type React from 'react';
3
3
  export type ViewFromConfig = {
4
4
  Component?: React.FC<AdminViewServerProps>;
5
5
  payloadComponent?: PayloadComponent<AdminViewServerProps>;
6
6
  };
7
7
  type GetRouteDataResult = {
8
- browseByFolderSlugs: CollectionSlug[];
9
8
  collectionConfig?: SanitizedCollectionConfig;
10
9
  DefaultView: ViewFromConfig;
11
10
  documentSubViewType?: DocumentSubViewTypes;
12
11
  globalConfig?: SanitizedGlobalConfig;
13
12
  routeParams: {
14
13
  collection?: string;
15
- folderCollection?: string;
16
- folderID?: number | string;
17
14
  global?: string;
18
15
  id?: number | string;
19
16
  token?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"getRouteData.d.ts","sourceRoot":"","sources":["../../../src/views/Root/getRouteData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,OAAO,EACP,gBAAgB,EAChB,yBAAyB,EAEzB,qBAAqB,EACrB,SAAS,EACV,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAuC9B,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAA;IAC1C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;CAC1D,CAAA;AAaD,KAAK,kBAAkB,GAAG;IACxB,mBAAmB,EAAE,cAAc,EAAE,CAAA;IACrC,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,WAAW,EAAE,cAAc,CAAA;IAC3B,mBAAmB,CAAC,EAAE,oBAAoB,CAAA;IAC1C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,WAAW,EAAE;QACX,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;QACpB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAC5B,CAAA;IACD,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,SAAS,GAAG,SAAS,CAAA;IACnC,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;IACD,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,YAAY,4GAQtB,gBAAgB,KAAG,kBAgYrB,CAAA"}
1
+ {"version":3,"file":"getRouteData.d.ts","sourceRoot":"","sources":["../../../src/views/Root/getRouteData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,OAAO,EACP,gBAAgB,EAChB,yBAAyB,EAEzB,qBAAqB,EACrB,SAAS,EACV,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAsC9B,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAA;IAC1C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;CAC1D,CAAA;AAYD,KAAK,kBAAkB,GAAG;IACxB,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,WAAW,EAAE,cAAc,CAAA;IAC3B,mBAAmB,CAAC,EAAE,oBAAoB,CAAA;IAC1C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,WAAW,EAAE;QACX,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;QACpB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAC5B,CAAA;IACD,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,SAAS,GAAG,SAAS,CAAA;IACnC,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;IACD,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,YAAY,4GAQtB,gBAAgB,KAAG,kBA6VrB,CAAA"}