@payloadcms/ui 3.49.0-canary.8 → 3.49.1

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 (197) hide show
  1. package/dist/elements/AddNewRelation/index.d.ts.map +1 -1
  2. package/dist/elements/AddNewRelation/index.js +1 -1
  3. package/dist/elements/AddNewRelation/index.js.map +1 -1
  4. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  5. package/dist/elements/DeleteDocument/index.js +65 -47
  6. package/dist/elements/DeleteDocument/index.js.map +1 -1
  7. package/dist/elements/DeleteDocument/index.scss +10 -0
  8. package/dist/elements/DeleteMany/index.d.ts +6 -2
  9. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  10. package/dist/elements/DeleteMany/index.js +153 -51
  11. package/dist/elements/DeleteMany/index.js.map +1 -1
  12. package/dist/elements/DeleteMany/index.scss +13 -0
  13. package/dist/elements/DocumentControls/index.d.ts +3 -0
  14. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  15. package/dist/elements/DocumentControls/index.js +24 -5
  16. package/dist/elements/DocumentControls/index.js.map +1 -1
  17. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  18. package/dist/elements/DocumentDrawer/DrawerContent.js +4 -2
  19. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  20. package/dist/elements/DocumentDrawer/Provider.d.ts +5 -1
  21. package/dist/elements/DocumentDrawer/Provider.d.ts.map +1 -1
  22. package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
  23. package/dist/elements/DocumentDrawer/index.d.ts +19 -0
  24. package/dist/elements/DocumentDrawer/index.d.ts.map +1 -1
  25. package/dist/elements/DocumentDrawer/index.js +28 -9
  26. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  27. package/dist/elements/DocumentDrawer/types.d.ts +26 -12
  28. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  29. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  30. package/dist/elements/DocumentFields/index.d.ts +1 -0
  31. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  32. package/dist/elements/DocumentFields/index.js +3 -1
  33. package/dist/elements/DocumentFields/index.js.map +1 -1
  34. package/dist/elements/FolderView/Cell/index.client.d.ts +3 -2
  35. package/dist/elements/FolderView/Cell/index.client.d.ts.map +1 -1
  36. package/dist/elements/FolderView/Cell/index.client.js +3 -1
  37. package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
  38. package/dist/elements/FolderView/Cell/index.server.d.ts.map +1 -1
  39. package/dist/elements/FolderView/Cell/index.server.js +2 -1
  40. package/dist/elements/FolderView/Cell/index.server.js.map +1 -1
  41. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts +7 -0
  42. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -0
  43. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +164 -0
  44. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -0
  45. package/dist/elements/ListHeader/TitleActions/index.d.ts +1 -0
  46. package/dist/elements/ListHeader/TitleActions/index.d.ts.map +1 -1
  47. package/dist/elements/ListHeader/TitleActions/index.js +1 -0
  48. package/dist/elements/ListHeader/TitleActions/index.js.map +1 -1
  49. package/dist/elements/ListHeaderTabs/ByFolderPill.d.ts +10 -0
  50. package/dist/elements/ListHeaderTabs/ByFolderPill.d.ts.map +1 -0
  51. package/dist/elements/ListHeaderTabs/ByFolderPill.js +70 -0
  52. package/dist/elements/ListHeaderTabs/ByFolderPill.js.map +1 -0
  53. package/dist/elements/ListHeaderTabs/DefaultListPill.d.ts +9 -0
  54. package/dist/elements/ListHeaderTabs/DefaultListPill.d.ts.map +1 -0
  55. package/dist/elements/ListHeaderTabs/DefaultListPill.js +68 -0
  56. package/dist/elements/ListHeaderTabs/DefaultListPill.js.map +1 -0
  57. package/dist/elements/ListHeaderTabs/TrashPill.d.ts +6 -0
  58. package/dist/elements/ListHeaderTabs/TrashPill.d.ts.map +1 -0
  59. package/dist/elements/ListHeaderTabs/TrashPill.js +53 -0
  60. package/dist/elements/ListHeaderTabs/TrashPill.js.map +1 -0
  61. package/dist/elements/{ListFolderPills → ListHeaderTabs}/index.scss +1 -2
  62. package/dist/elements/ListSelection/index.scss +1 -1
  63. package/dist/elements/PermanentlyDeleteButton/index.d.ts +14 -0
  64. package/dist/elements/PermanentlyDeleteButton/index.d.ts.map +1 -0
  65. package/dist/elements/PermanentlyDeleteButton/index.js +147 -0
  66. package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -0
  67. package/dist/elements/RelationshipTable/cells/DrawerLink/index.d.ts +3 -3
  68. package/dist/elements/RelationshipTable/cells/DrawerLink/index.d.ts.map +1 -1
  69. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +19 -70
  70. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  71. package/dist/elements/RelationshipTable/cells/DrawerLink/index.scss +10 -0
  72. package/dist/elements/RelationshipTable/index.d.ts +1 -0
  73. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  74. package/dist/elements/RelationshipTable/index.js +61 -40
  75. package/dist/elements/RelationshipTable/index.js.map +1 -1
  76. package/dist/elements/RestoreButton/index.d.ts +15 -0
  77. package/dist/elements/RestoreButton/index.d.ts.map +1 -0
  78. package/dist/elements/RestoreButton/index.js +171 -0
  79. package/dist/elements/RestoreButton/index.js.map +1 -0
  80. package/dist/elements/RestoreButton/index.scss +25 -0
  81. package/dist/elements/RestoreMany/index.d.ts +9 -0
  82. package/dist/elements/RestoreMany/index.d.ts.map +1 -0
  83. package/dist/elements/RestoreMany/index.js +193 -0
  84. package/dist/elements/RestoreMany/index.js.map +1 -0
  85. package/dist/elements/RestoreMany/index.scss +25 -0
  86. package/dist/elements/Status/index.d.ts.map +1 -1
  87. package/dist/elements/Status/index.js +6 -4
  88. package/dist/elements/Status/index.js.map +1 -1
  89. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  90. package/dist/elements/Table/DefaultCell/index.js +12 -9
  91. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  92. package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
  93. package/dist/elements/Toasts/fieldErrors.js +4 -1
  94. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  95. package/dist/elements/TrashBanner/index.d.ts +4 -0
  96. package/dist/elements/TrashBanner/index.d.ts.map +1 -0
  97. package/dist/elements/TrashBanner/index.js +37 -0
  98. package/dist/elements/TrashBanner/index.js.map +1 -0
  99. package/dist/elements/TrashBanner/index.scss +20 -0
  100. package/dist/exports/client/index.js +24 -22
  101. package/dist/exports/client/index.js.map +4 -4
  102. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  103. package/dist/fields/Checkbox/Input.js +2 -0
  104. package/dist/fields/Checkbox/Input.js.map +1 -1
  105. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  106. package/dist/fields/Relationship/Input.js.map +1 -1
  107. package/dist/fields/Relationship/index.d.ts.map +1 -1
  108. package/dist/fields/Relationship/index.js +8 -8
  109. package/dist/fields/Relationship/index.js.map +1 -1
  110. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +1 -0
  111. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  112. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +7 -0
  113. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  114. package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -1
  115. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  116. package/dist/forms/fieldSchemasToFormState/index.js +2 -0
  117. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  118. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -1
  119. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  120. package/dist/forms/fieldSchemasToFormState/iterateFields.js +2 -0
  121. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  122. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  123. package/dist/forms/fieldSchemasToFormState/renderField.js +2 -1
  124. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  125. package/dist/forms/fieldSchemasToFormState/types.d.ts +1 -0
  126. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  127. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  128. package/dist/{elements/AddNewRelation → hooks}/useRelatedCollections.d.ts +3 -0
  129. package/dist/hooks/useRelatedCollections.d.ts.map +1 -0
  130. package/dist/{elements/AddNewRelation → hooks}/useRelatedCollections.js +4 -1
  131. package/dist/hooks/useRelatedCollections.js.map +1 -0
  132. package/dist/icons/Trash/index.d.ts +6 -0
  133. package/dist/icons/Trash/index.d.ts.map +1 -0
  134. package/dist/icons/Trash/index.js +22 -0
  135. package/dist/icons/Trash/index.js.map +1 -0
  136. package/dist/icons/Trash/index.scss +6 -0
  137. package/dist/providers/DocumentInfo/types.d.ts +2 -0
  138. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  139. package/dist/providers/DocumentInfo/types.js.map +1 -1
  140. package/dist/providers/ServerFunctions/index.d.ts +1 -0
  141. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  142. package/dist/providers/ServerFunctions/index.js.map +1 -1
  143. package/dist/providers/TableColumns/buildColumnState/index.d.ts +2 -1
  144. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  145. package/dist/providers/TableColumns/buildColumnState/index.js +4 -2
  146. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  147. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +3 -2
  148. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
  149. package/dist/providers/TableColumns/buildColumnState/renderCell.js +4 -2
  150. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  151. package/dist/styles.css +1 -1
  152. package/dist/utilities/buildFormState.d.ts.map +1 -1
  153. package/dist/utilities/buildFormState.js +2 -0
  154. package/dist/utilities/buildFormState.js.map +1 -1
  155. package/dist/utilities/getDisplayedFieldValue.d.ts.map +1 -1
  156. package/dist/utilities/getDisplayedFieldValue.js +2 -2
  157. package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
  158. package/dist/utilities/hasOptionLabelJSXElement.js +2 -2
  159. package/dist/utilities/hasOptionLabelJSXElement.js.map +1 -1
  160. package/dist/utilities/isValidReactElement.d.ts +7 -0
  161. package/dist/utilities/isValidReactElement.d.ts.map +1 -0
  162. package/dist/utilities/isValidReactElement.js +10 -0
  163. package/dist/utilities/isValidReactElement.js.map +1 -0
  164. package/dist/utilities/renderTable.d.ts +4 -3
  165. package/dist/utilities/renderTable.d.ts.map +1 -1
  166. package/dist/utilities/renderTable.js +15 -13
  167. package/dist/utilities/renderTable.js.map +1 -1
  168. package/dist/views/CollectionFolder/index.d.ts.map +1 -1
  169. package/dist/views/CollectionFolder/index.js +15 -5
  170. package/dist/views/CollectionFolder/index.js.map +1 -1
  171. package/dist/views/Edit/Auth/index.js +5 -4
  172. package/dist/views/Edit/Auth/index.js.map +1 -1
  173. package/dist/views/Edit/SetDocumentStepNav/index.d.ts +1 -0
  174. package/dist/views/Edit/SetDocumentStepNav/index.d.ts.map +1 -1
  175. package/dist/views/Edit/SetDocumentStepNav/index.js +26 -15
  176. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  177. package/dist/views/Edit/index.d.ts.map +1 -1
  178. package/dist/views/Edit/index.js +11 -3
  179. package/dist/views/Edit/index.js.map +1 -1
  180. package/dist/views/List/ListHeader/index.d.ts +4 -2
  181. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  182. package/dist/views/List/ListHeader/index.js +24 -9
  183. package/dist/views/List/ListHeader/index.js.map +1 -1
  184. package/dist/views/List/ListSelection/index.d.ts +2 -1
  185. package/dist/views/List/ListSelection/index.d.ts.map +1 -1
  186. package/dist/views/List/ListSelection/index.js +26 -17
  187. package/dist/views/List/ListSelection/index.js.map +1 -1
  188. package/dist/views/List/index.d.ts.map +1 -1
  189. package/dist/views/List/index.js +28 -13
  190. package/dist/views/List/index.js.map +1 -1
  191. package/package.json +7 -7
  192. package/dist/elements/AddNewRelation/useRelatedCollections.d.ts.map +0 -1
  193. package/dist/elements/AddNewRelation/useRelatedCollections.js.map +0 -1
  194. package/dist/elements/ListFolderPills/index.d.ts +0 -10
  195. package/dist/elements/ListFolderPills/index.d.ts.map +0 -1
  196. package/dist/elements/ListFolderPills/index.js +0 -97
  197. package/dist/elements/ListFolderPills/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"buildFormState.d.ts","sourceRoot":"","sources":["../../src/utilities/buildFormState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,cAAc,EACf,MAAM,SAAS,CAAA;AAYhB,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;CACnC,CAAA;AAED,KAAK,2BAA2B,GAAG;IACjC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAED,KAAK,yBAAyB,GAAG;IAC/B,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,CACA;IACE,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,WAAW,CACd,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,GAAG,2BAA2B,CAAA;AAE1F,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAChD,kBAAkB,EAClB,OAAO,CAAC,oBAAoB,CAAC,CAsD9B,CAAA;AAED,eAAO,MAAM,cAAc,SACnB,kBAAkB,KACvB,OAAO,CAAC,2BAA2B,CAoJrC,CAAA"}
1
+ {"version":3,"file":"buildFormState.d.ts","sourceRoot":"","sources":["../../src/utilities/buildFormState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,cAAc,EACf,MAAM,SAAS,CAAA;AAYhB,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;CACnC,CAAA;AAED,KAAK,2BAA2B,GAAG;IACjC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAED,KAAK,yBAAyB,GAAG;IAC/B,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,CACA;IACE,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,WAAW,CACd,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,GAAG,2BAA2B,CAAA;AAE1F,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAChD,kBAAkB,EAClB,OAAO,CAAC,oBAAoB,CAAC,CAsD9B,CAAA;AAED,eAAO,MAAM,cAAc,SACnB,kBAAkB,KACvB,OAAO,CAAC,2BAA2B,CAsJrC,CAAA"}
@@ -72,6 +72,7 @@ export const buildFormState = async args => {
72
72
  initialBlockFormState,
73
73
  mockRSCs,
74
74
  operation,
75
+ readOnly,
75
76
  renderAllFields,
76
77
  req,
77
78
  req: {
@@ -157,6 +158,7 @@ export const buildFormState = async args => {
157
158
  fields: {}
158
159
  },
159
160
  previousFormState: formState,
161
+ readOnly,
160
162
  renderAllFields,
161
163
  renderFieldFn: renderField,
162
164
  req,
@@ -1 +1 @@
1
- {"version":3,"file":"buildFormState.js","names":["formatErrors","getSelectMode","reduceFieldsToValues","fieldSchemasToFormState","renderField","getClientConfig","getClientSchemaMap","getSchemaMap","handleFormStateLocking","buildFormStateHandler","args","req","incomingUserSlug","user","collection","adminUserSlug","payload","config","admin","adminAccessFunction","collections","access","canAccessAdmin","Error","hasUsers","find","depth","limit","pagination","docs","length","res","buildFormState","err","logger","error","msg","message","id","idFromArgs","collectionSlug","data","incomingData","docPermissions","docPreferences","documentFormState","formState","globalSlug","initialBlockData","initialBlockFormState","mockRSCs","operation","renderAllFields","i18n","returnLockStatus","schemaPath","select","skipValidation","updateLastEdited","selectMode","undefined","schemaMap","clientSchemaMap","importMap","fieldOrEntityConfig","get","fields","type","documentData","blockData","Array","isArray","formStateResult","clientFieldSchemaMap","fieldSchemaMap","permissions","preferences","previousFormState","renderFieldFn","upload","file","lockedStateResult","lockedState","state"],"sources":["../../src/utilities/buildFormState.ts"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientConfig,\n ClientUser,\n ErrorResult,\n FormState,\n ServerFunction,\n} from 'payload'\n\nimport { formatErrors } from 'payload'\nimport { getSelectMode, reduceFieldsToValues } from 'payload/shared'\n\nimport { fieldSchemasToFormState } from '../forms/fieldSchemasToFormState/index.js'\nimport { renderField } from '../forms/fieldSchemasToFormState/renderField.js'\nimport { getClientConfig } from './getClientConfig.js'\nimport { getClientSchemaMap } from './getClientSchemaMap.js'\nimport { getSchemaMap } from './getSchemaMap.js'\nimport { handleFormStateLocking } from './handleFormStateLocking.js'\n\nexport type LockedState = {\n isLocked: boolean\n lastEditedAt: string\n user: ClientUser | number | string\n}\n\ntype BuildFormStateSuccessResult = {\n clientConfig?: ClientConfig\n errors?: never\n indexPath?: string\n lockedState?: LockedState\n state: FormState\n}\n\ntype BuildFormStateErrorResult = {\n lockedState?: never\n state?: never\n} & (\n | {\n message: string\n }\n | ErrorResult\n)\n\nexport type BuildFormStateResult = BuildFormStateErrorResult | BuildFormStateSuccessResult\n\nexport const buildFormStateHandler: ServerFunction<\n BuildFormStateArgs,\n Promise<BuildFormStateResult>\n> = async (args) => {\n const { req } = args\n\n const incomingUserSlug = req.user?.collection\n const adminUserSlug = req.payload.config.admin.user\n\n try {\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = req.payload.collections[incomingUserSlug].config.access?.admin\n\n // Run the admin access function from the config if it exists\n if (adminAccessFunction) {\n const canAccessAdmin = await adminAccessFunction({ req })\n\n if (!canAccessAdmin) {\n throw new Error('Unauthorized')\n }\n // Match the user collection to the global admin config\n } else if (adminUserSlug !== incomingUserSlug) {\n throw new Error('Unauthorized')\n }\n } else {\n const hasUsers = await req.payload.find({\n collection: adminUserSlug,\n depth: 0,\n limit: 1,\n pagination: false,\n })\n\n // If there are users, we should not allow access because of /create-first-user\n if (hasUsers.docs.length) {\n throw new Error('Unauthorized')\n }\n }\n\n const res = await buildFormState(args)\n return res\n } catch (err) {\n req.payload.logger.error({ err, msg: `There was an error building form state` })\n\n if (err.message === 'Could not find field schema for given path') {\n return {\n message: err.message,\n }\n }\n\n if (err.message === 'Unauthorized') {\n throw new Error('Unauthorized')\n }\n\n return formatErrors(err)\n }\n}\n\nexport const buildFormState = async (\n args: BuildFormStateArgs,\n): Promise<BuildFormStateSuccessResult> => {\n const {\n id: idFromArgs,\n collectionSlug,\n data: incomingData,\n docPermissions,\n docPreferences,\n documentFormState,\n formState,\n globalSlug,\n initialBlockData,\n initialBlockFormState,\n mockRSCs,\n operation,\n renderAllFields,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n },\n returnLockStatus,\n schemaPath = collectionSlug || globalSlug,\n select,\n skipValidation,\n updateLastEdited,\n } = args\n\n const selectMode = select ? getSelectMode(select) : undefined\n\n let data = incomingData\n\n if (!collectionSlug && !globalSlug) {\n throw new Error('Either collectionSlug or globalSlug must be provided')\n }\n\n const schemaMap = getSchemaMap({\n collectionSlug,\n config,\n globalSlug,\n i18n,\n })\n\n const clientSchemaMap = getClientSchemaMap({\n collectionSlug,\n config: getClientConfig({ config, i18n, importMap: req.payload.importMap }),\n globalSlug,\n i18n,\n payload,\n schemaMap,\n })\n\n const id = collectionSlug ? idFromArgs : undefined\n const fieldOrEntityConfig = schemaMap.get(schemaPath)\n\n if (!fieldOrEntityConfig) {\n throw new Error(`Could not find \"${schemaPath}\" in the fieldSchemaMap`)\n }\n\n if (\n (!('fields' in fieldOrEntityConfig) ||\n !fieldOrEntityConfig.fields ||\n !fieldOrEntityConfig.fields.length) &&\n 'type' in fieldOrEntityConfig &&\n fieldOrEntityConfig.type !== 'blocks'\n ) {\n throw new Error(\n `The field found in fieldSchemaMap for \"${schemaPath}\" does not contain any subfields.`,\n )\n }\n\n // If there is a form state,\n // then we can deduce data from that form state\n if (formState) {\n data = reduceFieldsToValues(formState, true)\n }\n\n let documentData = undefined\n if (documentFormState) {\n documentData = reduceFieldsToValues(documentFormState, true)\n }\n\n let blockData = initialBlockData\n if (initialBlockFormState) {\n blockData = reduceFieldsToValues(initialBlockFormState, true)\n }\n\n /**\n * When building state for sub schemas we need to adjust:\n * - `fields`\n * - `parentSchemaPath`\n * - `parentPath`\n *\n * Type assertion is fine because we wrap sub schemas in an array\n * so we can safely map over them within `fieldSchemasToFormState`\n */\n const fields = Array.isArray(fieldOrEntityConfig)\n ? fieldOrEntityConfig\n : 'fields' in fieldOrEntityConfig\n ? fieldOrEntityConfig.fields\n : [fieldOrEntityConfig]\n\n const formStateResult = await fieldSchemasToFormState({\n id,\n clientFieldSchemaMap: clientSchemaMap,\n collectionSlug,\n data,\n documentData,\n fields,\n fieldSchemaMap: schemaMap,\n initialBlockData: blockData,\n mockRSCs,\n operation,\n permissions: docPermissions?.fields || {},\n preferences: docPreferences || { fields: {} },\n previousFormState: formState,\n renderAllFields,\n renderFieldFn: renderField,\n req,\n schemaPath,\n select,\n selectMode,\n skipValidation,\n })\n\n // Maintain form state of auth / upload fields\n if (collectionSlug && formState) {\n if (payload.collections[collectionSlug]?.config?.upload && formState.file) {\n formStateResult.file = formState.file\n }\n }\n\n let lockedStateResult\n\n if (returnLockStatus) {\n lockedStateResult = await handleFormStateLocking({\n id,\n collectionSlug,\n globalSlug,\n req,\n updateLastEdited,\n })\n }\n\n return {\n lockedState: lockedStateResult,\n state: formStateResult,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"buildFormState.js","names":["formatErrors","getSelectMode","reduceFieldsToValues","fieldSchemasToFormState","renderField","getClientConfig","getClientSchemaMap","getSchemaMap","handleFormStateLocking","buildFormStateHandler","args","req","incomingUserSlug","user","collection","adminUserSlug","payload","config","admin","adminAccessFunction","collections","access","canAccessAdmin","Error","hasUsers","find","depth","limit","pagination","docs","length","res","buildFormState","err","logger","error","msg","message","id","idFromArgs","collectionSlug","data","incomingData","docPermissions","docPreferences","documentFormState","formState","globalSlug","initialBlockData","initialBlockFormState","mockRSCs","operation","readOnly","renderAllFields","i18n","returnLockStatus","schemaPath","select","skipValidation","updateLastEdited","selectMode","undefined","schemaMap","clientSchemaMap","importMap","fieldOrEntityConfig","get","fields","type","documentData","blockData","Array","isArray","formStateResult","clientFieldSchemaMap","fieldSchemaMap","permissions","preferences","previousFormState","renderFieldFn","upload","file","lockedStateResult","lockedState","state"],"sources":["../../src/utilities/buildFormState.ts"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientConfig,\n ClientUser,\n ErrorResult,\n FormState,\n ServerFunction,\n} from 'payload'\n\nimport { formatErrors } from 'payload'\nimport { getSelectMode, reduceFieldsToValues } from 'payload/shared'\n\nimport { fieldSchemasToFormState } from '../forms/fieldSchemasToFormState/index.js'\nimport { renderField } from '../forms/fieldSchemasToFormState/renderField.js'\nimport { getClientConfig } from './getClientConfig.js'\nimport { getClientSchemaMap } from './getClientSchemaMap.js'\nimport { getSchemaMap } from './getSchemaMap.js'\nimport { handleFormStateLocking } from './handleFormStateLocking.js'\n\nexport type LockedState = {\n isLocked: boolean\n lastEditedAt: string\n user: ClientUser | number | string\n}\n\ntype BuildFormStateSuccessResult = {\n clientConfig?: ClientConfig\n errors?: never\n indexPath?: string\n lockedState?: LockedState\n state: FormState\n}\n\ntype BuildFormStateErrorResult = {\n lockedState?: never\n state?: never\n} & (\n | {\n message: string\n }\n | ErrorResult\n)\n\nexport type BuildFormStateResult = BuildFormStateErrorResult | BuildFormStateSuccessResult\n\nexport const buildFormStateHandler: ServerFunction<\n BuildFormStateArgs,\n Promise<BuildFormStateResult>\n> = async (args) => {\n const { req } = args\n\n const incomingUserSlug = req.user?.collection\n const adminUserSlug = req.payload.config.admin.user\n\n try {\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = req.payload.collections[incomingUserSlug].config.access?.admin\n\n // Run the admin access function from the config if it exists\n if (adminAccessFunction) {\n const canAccessAdmin = await adminAccessFunction({ req })\n\n if (!canAccessAdmin) {\n throw new Error('Unauthorized')\n }\n // Match the user collection to the global admin config\n } else if (adminUserSlug !== incomingUserSlug) {\n throw new Error('Unauthorized')\n }\n } else {\n const hasUsers = await req.payload.find({\n collection: adminUserSlug,\n depth: 0,\n limit: 1,\n pagination: false,\n })\n\n // If there are users, we should not allow access because of /create-first-user\n if (hasUsers.docs.length) {\n throw new Error('Unauthorized')\n }\n }\n\n const res = await buildFormState(args)\n return res\n } catch (err) {\n req.payload.logger.error({ err, msg: `There was an error building form state` })\n\n if (err.message === 'Could not find field schema for given path') {\n return {\n message: err.message,\n }\n }\n\n if (err.message === 'Unauthorized') {\n throw new Error('Unauthorized')\n }\n\n return formatErrors(err)\n }\n}\n\nexport const buildFormState = async (\n args: BuildFormStateArgs,\n): Promise<BuildFormStateSuccessResult> => {\n const {\n id: idFromArgs,\n collectionSlug,\n data: incomingData,\n docPermissions,\n docPreferences,\n documentFormState,\n formState,\n globalSlug,\n initialBlockData,\n initialBlockFormState,\n mockRSCs,\n operation,\n readOnly,\n renderAllFields,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n },\n returnLockStatus,\n schemaPath = collectionSlug || globalSlug,\n select,\n skipValidation,\n updateLastEdited,\n } = args\n\n const selectMode = select ? getSelectMode(select) : undefined\n\n let data = incomingData\n\n if (!collectionSlug && !globalSlug) {\n throw new Error('Either collectionSlug or globalSlug must be provided')\n }\n\n const schemaMap = getSchemaMap({\n collectionSlug,\n config,\n globalSlug,\n i18n,\n })\n\n const clientSchemaMap = getClientSchemaMap({\n collectionSlug,\n config: getClientConfig({ config, i18n, importMap: req.payload.importMap }),\n globalSlug,\n i18n,\n payload,\n schemaMap,\n })\n\n const id = collectionSlug ? idFromArgs : undefined\n const fieldOrEntityConfig = schemaMap.get(schemaPath)\n\n if (!fieldOrEntityConfig) {\n throw new Error(`Could not find \"${schemaPath}\" in the fieldSchemaMap`)\n }\n\n if (\n (!('fields' in fieldOrEntityConfig) ||\n !fieldOrEntityConfig.fields ||\n !fieldOrEntityConfig.fields.length) &&\n 'type' in fieldOrEntityConfig &&\n fieldOrEntityConfig.type !== 'blocks'\n ) {\n throw new Error(\n `The field found in fieldSchemaMap for \"${schemaPath}\" does not contain any subfields.`,\n )\n }\n\n // If there is a form state,\n // then we can deduce data from that form state\n if (formState) {\n data = reduceFieldsToValues(formState, true)\n }\n\n let documentData = undefined\n if (documentFormState) {\n documentData = reduceFieldsToValues(documentFormState, true)\n }\n\n let blockData = initialBlockData\n if (initialBlockFormState) {\n blockData = reduceFieldsToValues(initialBlockFormState, true)\n }\n\n /**\n * When building state for sub schemas we need to adjust:\n * - `fields`\n * - `parentSchemaPath`\n * - `parentPath`\n *\n * Type assertion is fine because we wrap sub schemas in an array\n * so we can safely map over them within `fieldSchemasToFormState`\n */\n const fields = Array.isArray(fieldOrEntityConfig)\n ? fieldOrEntityConfig\n : 'fields' in fieldOrEntityConfig\n ? fieldOrEntityConfig.fields\n : [fieldOrEntityConfig]\n\n const formStateResult = await fieldSchemasToFormState({\n id,\n clientFieldSchemaMap: clientSchemaMap,\n collectionSlug,\n data,\n documentData,\n fields,\n fieldSchemaMap: schemaMap,\n initialBlockData: blockData,\n mockRSCs,\n operation,\n permissions: docPermissions?.fields || {},\n preferences: docPreferences || { fields: {} },\n previousFormState: formState,\n readOnly,\n renderAllFields,\n renderFieldFn: renderField,\n req,\n schemaPath,\n select,\n selectMode,\n skipValidation,\n })\n\n // Maintain form state of auth / upload fields\n if (collectionSlug && formState) {\n if (payload.collections[collectionSlug]?.config?.upload && formState.file) {\n formStateResult.file = formState.file\n }\n }\n\n let lockedStateResult\n\n if (returnLockStatus) {\n lockedStateResult = await handleFormStateLocking({\n id,\n collectionSlug,\n globalSlug,\n req,\n updateLastEdited,\n })\n }\n\n return {\n lockedState: lockedStateResult,\n state: formStateResult,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"getDisplayedFieldValue.d.ts","sourceRoot":"","sources":["../../src/utilities/getDisplayedFieldValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAK1C;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,aAAc,GAAG,SAAS,WAAW,QAAQ,UAAU,QAgBzF,CAAA"}
1
+ {"version":3,"file":"getDisplayedFieldValue.d.ts","sourceRoot":"","sources":["../../src/utilities/getDisplayedFieldValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAM1C;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,aAAc,GAAG,SAAS,WAAW,QAAQ,UAAU,QAgBzF,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { getTranslation } from '@payloadcms/translations';
2
- import React from 'react';
2
+ import { isValidReactElement } from './isValidReactElement.js';
3
3
  /**
4
4
  * Returns the appropriate display value for a field.
5
5
  * - For select and radio fields:
@@ -14,7 +14,7 @@ export const getDisplayedFieldValue = (cellData, field, i18n) => {
14
14
  const selectedOption = field.options.find(opt => typeof opt === 'object' ? opt.value === cellData : opt === cellData);
15
15
  if (selectedOption) {
16
16
  if (typeof selectedOption === 'object' && 'label' in selectedOption) {
17
- return React.isValidElement(selectedOption.label) ? selectedOption.label // Return JSX directly
17
+ return isValidReactElement(selectedOption.label) ? selectedOption.label // Return JSX directly
18
18
  : getTranslation(selectedOption.label, i18n) || selectedOption.value // Use translation or fallback to value
19
19
  ;
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getDisplayedFieldValue.js","names":["getTranslation","React","getDisplayedFieldValue","cellData","field","i18n","type","Array","isArray","options","selectedOption","find","opt","value","isValidElement","label"],"sources":["../../src/utilities/getDisplayedFieldValue.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { ClientField } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\n/**\n * Returns the appropriate display value for a field.\n * - For select and radio fields:\n * - Returns JSX elements as-is.\n * - Translates localized label objects based on the current language.\n * - Returns string labels directly.\n * - Falls back to the option value if no valid label is found.\n * - For all other field types, returns `cellData` unchanged.\n */\nexport const getDisplayedFieldValue = (cellData: any, field: ClientField, i18n: I18nClient) => {\n if ((field?.type === 'select' || field?.type === 'radio') && Array.isArray(field.options)) {\n const selectedOption = field.options.find((opt) =>\n typeof opt === 'object' ? opt.value === cellData : opt === cellData,\n )\n\n if (selectedOption) {\n if (typeof selectedOption === 'object' && 'label' in selectedOption) {\n return React.isValidElement(selectedOption.label)\n ? selectedOption.label // Return JSX directly\n : getTranslation(selectedOption.label, i18n) || selectedOption.value // Use translation or fallback to value\n }\n return selectedOption // If option is a string, return it directly\n }\n }\n return cellData // Default fallback if no match found\n}\n"],"mappings":"AAGA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB;;;;;;;;;AASA,OAAO,MAAMC,sBAAA,GAAyBA,CAACC,QAAA,EAAeC,KAAA,EAAoBC,IAAA;EACxE,IAAI,CAACD,KAAA,EAAOE,IAAA,KAAS,YAAYF,KAAA,EAAOE,IAAA,KAAS,OAAM,KAAMC,KAAA,CAAMC,OAAO,CAACJ,KAAA,CAAMK,OAAO,GAAG;IACzF,MAAMC,cAAA,GAAiBN,KAAA,CAAMK,OAAO,CAACE,IAAI,CAAEC,GAAA,IACzC,OAAOA,GAAA,KAAQ,WAAWA,GAAA,CAAIC,KAAK,KAAKV,QAAA,GAAWS,GAAA,KAAQT,QAAA;IAG7D,IAAIO,cAAA,EAAgB;MAClB,IAAI,OAAOA,cAAA,KAAmB,YAAY,WAAWA,cAAA,EAAgB;QACnE,OAAOT,KAAA,CAAMa,cAAc,CAACJ,cAAA,CAAeK,KAAK,IAC5CL,cAAA,CAAeK,KAAK,CAAC;QAAA,EACrBf,cAAA,CAAeU,cAAA,CAAeK,KAAK,EAAEV,IAAA,KAASK,cAAA,CAAeG,KAAK,CAAC;QAAA;MACzE;MACA,OAAOH,cAAA,CAAe;MAAA;IACxB;EACF;EACA,OAAOP,QAAA,CAAS;EAAA;AAClB","ignoreList":[]}
1
+ {"version":3,"file":"getDisplayedFieldValue.js","names":["getTranslation","isValidReactElement","getDisplayedFieldValue","cellData","field","i18n","type","Array","isArray","options","selectedOption","find","opt","value","label"],"sources":["../../src/utilities/getDisplayedFieldValue.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { ClientField } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport { isValidReactElement } from './isValidReactElement.js'\n\n/**\n * Returns the appropriate display value for a field.\n * - For select and radio fields:\n * - Returns JSX elements as-is.\n * - Translates localized label objects based on the current language.\n * - Returns string labels directly.\n * - Falls back to the option value if no valid label is found.\n * - For all other field types, returns `cellData` unchanged.\n */\nexport const getDisplayedFieldValue = (cellData: any, field: ClientField, i18n: I18nClient) => {\n if ((field?.type === 'select' || field?.type === 'radio') && Array.isArray(field.options)) {\n const selectedOption = field.options.find((opt) =>\n typeof opt === 'object' ? opt.value === cellData : opt === cellData,\n )\n\n if (selectedOption) {\n if (typeof selectedOption === 'object' && 'label' in selectedOption) {\n return isValidReactElement(selectedOption.label)\n ? selectedOption.label // Return JSX directly\n : getTranslation(selectedOption.label, i18n) || selectedOption.value // Use translation or fallback to value\n }\n return selectedOption // If option is a string, return it directly\n }\n }\n return cellData // Default fallback if no match found\n}\n"],"mappings":"AAGA,SAASA,cAAc,QAAQ;AAE/B,SAASC,mBAAmB,QAAQ;AAEpC;;;;;;;;;AASA,OAAO,MAAMC,sBAAA,GAAyBA,CAACC,QAAA,EAAeC,KAAA,EAAoBC,IAAA;EACxE,IAAI,CAACD,KAAA,EAAOE,IAAA,KAAS,YAAYF,KAAA,EAAOE,IAAA,KAAS,OAAM,KAAMC,KAAA,CAAMC,OAAO,CAACJ,KAAA,CAAMK,OAAO,GAAG;IACzF,MAAMC,cAAA,GAAiBN,KAAA,CAAMK,OAAO,CAACE,IAAI,CAAEC,GAAA,IACzC,OAAOA,GAAA,KAAQ,WAAWA,GAAA,CAAIC,KAAK,KAAKV,QAAA,GAAWS,GAAA,KAAQT,QAAA;IAG7D,IAAIO,cAAA,EAAgB;MAClB,IAAI,OAAOA,cAAA,KAAmB,YAAY,WAAWA,cAAA,EAAgB;QACnE,OAAOT,mBAAA,CAAoBS,cAAA,CAAeI,KAAK,IAC3CJ,cAAA,CAAeI,KAAK,CAAC;QAAA,EACrBd,cAAA,CAAeU,cAAA,CAAeI,KAAK,EAAET,IAAA,KAASK,cAAA,CAAeG,KAAK,CAAC;QAAA;MACzE;MACA,OAAOH,cAAA,CAAe;MAAA;IACxB;EACF;EACA,OAAOP,QAAA,CAAS;EAAA;AAClB","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { isValidReactElement } from './isValidReactElement.js';
2
2
  export const hasOptionLabelJSXElement = cellClientProps => {
3
3
  const {
4
4
  cellData,
@@ -6,7 +6,7 @@ export const hasOptionLabelJSXElement = cellClientProps => {
6
6
  } = cellClientProps;
7
7
  if ((field?.type === 'select' || field?.type == 'radio') && Array.isArray(field?.options)) {
8
8
  const matchingOption = field.options.find(option => typeof option === 'object' && option.value === cellData);
9
- if (matchingOption && typeof matchingOption === 'object' && React.isValidElement(matchingOption.label)) {
9
+ if (matchingOption && typeof matchingOption === 'object' && isValidReactElement(matchingOption.label)) {
10
10
  return true;
11
11
  }
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hasOptionLabelJSXElement.js","names":["React","hasOptionLabelJSXElement","cellClientProps","cellData","field","type","Array","isArray","options","matchingOption","find","option","value","isValidElement","label"],"sources":["../../src/utilities/hasOptionLabelJSXElement.ts"],"sourcesContent":["import type { DefaultCellComponentProps } from 'payload'\n\nimport React from 'react'\n\nexport const hasOptionLabelJSXElement = (cellClientProps: DefaultCellComponentProps) => {\n const { cellData, field } = cellClientProps\n\n if ((field?.type === 'select' || field?.type == 'radio') && Array.isArray(field?.options)) {\n const matchingOption = field.options.find(\n (option) => typeof option === 'object' && option.value === cellData,\n )\n\n if (\n matchingOption &&\n typeof matchingOption === 'object' &&\n React.isValidElement(matchingOption.label)\n ) {\n return true\n }\n }\n\n return false\n}\n"],"mappings":"AAEA,OAAOA,KAAA,MAAW;AAElB,OAAO,MAAMC,wBAAA,GAA4BC,eAAA;EACvC,MAAM;IAAEC,QAAQ;IAAEC;EAAK,CAAE,GAAGF,eAAA;EAE5B,IAAI,CAACE,KAAA,EAAOC,IAAA,KAAS,YAAYD,KAAA,EAAOC,IAAA,IAAQ,OAAM,KAAMC,KAAA,CAAMC,OAAO,CAACH,KAAA,EAAOI,OAAA,GAAU;IACzF,MAAMC,cAAA,GAAiBL,KAAA,CAAMI,OAAO,CAACE,IAAI,CACtCC,MAAA,IAAW,OAAOA,MAAA,KAAW,YAAYA,MAAA,CAAOC,KAAK,KAAKT,QAAA;IAG7D,IACEM,cAAA,IACA,OAAOA,cAAA,KAAmB,YAC1BT,KAAA,CAAMa,cAAc,CAACJ,cAAA,CAAeK,KAAK,GACzC;MACA,OAAO;IACT;EACF;EAEA,OAAO;AACT","ignoreList":[]}
1
+ {"version":3,"file":"hasOptionLabelJSXElement.js","names":["isValidReactElement","hasOptionLabelJSXElement","cellClientProps","cellData","field","type","Array","isArray","options","matchingOption","find","option","value","label"],"sources":["../../src/utilities/hasOptionLabelJSXElement.ts"],"sourcesContent":["import type { DefaultCellComponentProps } from 'payload'\n\nimport { isValidReactElement } from './isValidReactElement.js'\n\nexport const hasOptionLabelJSXElement = (cellClientProps: DefaultCellComponentProps) => {\n const { cellData, field } = cellClientProps\n\n if ((field?.type === 'select' || field?.type == 'radio') && Array.isArray(field?.options)) {\n const matchingOption = field.options.find(\n (option) => typeof option === 'object' && option.value === cellData,\n )\n\n if (\n matchingOption &&\n typeof matchingOption === 'object' &&\n isValidReactElement(matchingOption.label)\n ) {\n return true\n }\n }\n\n return false\n}\n"],"mappings":"AAEA,SAASA,mBAAmB,QAAQ;AAEpC,OAAO,MAAMC,wBAAA,GAA4BC,eAAA;EACvC,MAAM;IAAEC,QAAQ;IAAEC;EAAK,CAAE,GAAGF,eAAA;EAE5B,IAAI,CAACE,KAAA,EAAOC,IAAA,KAAS,YAAYD,KAAA,EAAOC,IAAA,IAAQ,OAAM,KAAMC,KAAA,CAAMC,OAAO,CAACH,KAAA,EAAOI,OAAA,GAAU;IACzF,MAAMC,cAAA,GAAiBL,KAAA,CAAMI,OAAO,CAACE,IAAI,CACtCC,MAAA,IAAW,OAAOA,MAAA,KAAW,YAAYA,MAAA,CAAOC,KAAK,KAAKT,QAAA;IAG7D,IACEM,cAAA,IACA,OAAOA,cAAA,KAAmB,YAC1BT,mBAAA,CAAoBS,cAAA,CAAeI,KAAK,GACxC;MACA,OAAO;IACT;EACF;EAEA,OAAO;AACT","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import { type ReactElement } from 'react';
2
+ /**
3
+ * Since Next.js 15.4, `React.isValidElement()` returns `false` for components that cross the server-client boundary.
4
+ * This utility expands on that check so that it returns true for valid React elements.
5
+ */
6
+ export declare function isValidReactElement<P>(object: {} | null | undefined): object is ReactElement<P>;
7
+ //# sourceMappingURL=isValidReactElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isValidReactElement.d.ts","sourceRoot":"","sources":["../../src/utilities/isValidReactElement.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAIhD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,CAE/F"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ const LazyReactComponentSymbol = Symbol.for('react.lazy');
3
+ /**
4
+ * Since Next.js 15.4, `React.isValidElement()` returns `false` for components that cross the server-client boundary.
5
+ * This utility expands on that check so that it returns true for valid React elements.
6
+ */
7
+ export function isValidReactElement(object) {
8
+ return React.isValidElement(object) || object?.['$$typeof'] === LazyReactComponentSymbol;
9
+ }
10
+ //# sourceMappingURL=isValidReactElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isValidReactElement.js","names":["React","LazyReactComponentSymbol","Symbol","for","isValidReactElement","object","isValidElement"],"sources":["../../src/utilities/isValidReactElement.ts"],"sourcesContent":["import React, { type ReactElement } from 'react'\n\nconst LazyReactComponentSymbol = Symbol.for('react.lazy')\n\n/**\n * Since Next.js 15.4, `React.isValidElement()` returns `false` for components that cross the server-client boundary.\n * This utility expands on that check so that it returns true for valid React elements.\n */\nexport function isValidReactElement<P>(object: {} | null | undefined): object is ReactElement<P> {\n return React.isValidElement(object) || object?.['$$typeof'] === LazyReactComponentSymbol\n}\n"],"mappings":"AAAA,OAAOA,KAAA,MAAkC;AAEzC,MAAMC,wBAAA,GAA2BC,MAAA,CAAOC,GAAG,CAAC;AAE5C;;;;AAIA,OAAO,SAASC,oBAAuBC,MAA6B;EAClE,OAAOL,KAAA,CAAMM,cAAc,CAACD,MAAA,KAAWA,MAAA,GAAS,WAAW,KAAKJ,wBAAA;AAClE","ignoreList":[]}
@@ -1,15 +1,15 @@
1
- import type { ClientCollectionConfig, ClientConfig, CollectionConfig, CollectionPreferences, Column, Field, ImportMap, ListQuery, PaginatedDocs, Payload, SanitizedCollectionConfig } from 'payload';
1
+ import type { ClientCollectionConfig, ClientConfig, CollectionConfig, CollectionPreferences, Column, Field, ImportMap, ListQuery, PaginatedDocs, Payload, SanitizedCollectionConfig, ViewTypes } from 'payload';
2
2
  import { type I18nClient } from '@payloadcms/translations';
3
3
  import React from 'react';
4
4
  export declare const renderFilters: (fields: Field[], importMap: ImportMap) => Map<string, React.ReactNode>;
5
- export declare const renderTable: ({ clientCollectionConfig, clientConfig, collectionConfig, collections, columns: columnsFromArgs, customCellProps, data, enableRowSelections, groupByFieldPath, groupByValue, heading, i18n, key, orderableFieldName, payload, query, renderRowTypes, tableAppearance, useAsTitle, }: {
5
+ export declare const renderTable: ({ clientCollectionConfig, clientConfig, collectionConfig, collections, columns: columnsFromArgs, customCellProps, data, enableRowSelections, groupByFieldPath, groupByValue, heading, i18n, key, orderableFieldName, payload, query, renderRowTypes, tableAppearance, useAsTitle, viewType, }: {
6
6
  clientCollectionConfig?: ClientCollectionConfig;
7
7
  clientConfig?: ClientConfig;
8
8
  collectionConfig?: SanitizedCollectionConfig;
9
9
  collections?: string[];
10
10
  columns?: CollectionPreferences["columns"];
11
11
  customCellProps?: Record<string, unknown>;
12
- data: PaginatedDocs;
12
+ data?: PaginatedDocs | undefined;
13
13
  drawerSlug?: string;
14
14
  enableRowSelections: boolean;
15
15
  groupByFieldPath?: string;
@@ -23,6 +23,7 @@ export declare const renderTable: ({ clientCollectionConfig, clientConfig, colle
23
23
  renderRowTypes?: boolean;
24
24
  tableAppearance?: "condensed" | "default";
25
25
  useAsTitle: CollectionConfig["admin"]["useAsTitle"];
26
+ viewType?: ViewTypes;
26
27
  }) => {
27
28
  columnState: Column[];
28
29
  Table: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"renderTable.d.ts","sourceRoot":"","sources":["../../src/utilities/renderTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EAEZ,gBAAgB,EAChB,qBAAqB,EACrB,MAAM,EAEN,KAAK,EACL,SAAS,EACT,SAAS,EACT,aAAa,EACb,OAAO,EACP,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1E,OAAO,KAAK,MAAM,OAAO,CAAA;AAsBzB,eAAO,MAAM,aAAa,WAChB,KAAK,EAAE,aACJ,SAAS,KACnB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAoB3B,CAAA;AAEH,eAAO,MAAM,WAAW,wRAoBrB;IACD,sBAAsB,CAAC,EAAE,sBAAsB,CAAA;IAC/C,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAA;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,IAAI,EAAE,aAAa,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,UAAU,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,kBAAkB,EAAE,MAAM,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,eAAe,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IACzC,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CACpD,KAAG;IACF,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;CA+MvB,CAAA"}
1
+ {"version":3,"file":"renderTable.d.ts","sourceRoot":"","sources":["../../src/utilities/renderTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EAEZ,gBAAgB,EAChB,qBAAqB,EACrB,MAAM,EAEN,KAAK,EACL,SAAS,EACT,SAAS,EACT,aAAa,EACb,OAAO,EACP,yBAAyB,EACzB,SAAS,EACV,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1E,OAAO,KAAK,MAAM,OAAO,CAAA;AAsBzB,eAAO,MAAM,aAAa,WAChB,KAAK,EAAE,aACJ,SAAS,KACnB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAoB3B,CAAA;AAEH,eAAO,MAAM,WAAW,kSAqBrB;IACD,sBAAsB,CAAC,EAAE,sBAAsB,CAAA;IAC/C,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAA;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;IAChC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,UAAU,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,kBAAkB,EAAE,MAAM,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,eAAe,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IACzC,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;IACnD,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,KAAG;IACF,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;CAmNvB,CAAA"}
@@ -38,7 +38,8 @@ export const renderTable = ({
38
38
  query,
39
39
  renderRowTypes,
40
40
  tableAppearance,
41
- useAsTitle
41
+ useAsTitle,
42
+ viewType
42
43
  }) => {
43
44
  // Ensure that columns passed as args comply with the field config, i.e. `hidden`, `disableListColumn`, etc.
44
45
  let columnState;
@@ -87,21 +88,22 @@ export const renderTable = ({
87
88
  customCellProps,
88
89
  payload,
89
90
  serverFields,
90
- useAsTitle
91
+ useAsTitle,
92
+ viewType
91
93
  };
92
94
  if (isPolymorphic) {
93
95
  columnState = buildColumnState({
94
96
  ...sharedArgs,
95
97
  collectionSlug: undefined,
96
98
  dataType: 'polymorphic',
97
- docs: data.docs
99
+ docs: data?.docs || []
98
100
  });
99
101
  } else {
100
102
  columnState = buildColumnState({
101
103
  ...sharedArgs,
102
104
  collectionSlug: clientCollectionConfig.slug,
103
105
  dataType: 'monomorphic',
104
- docs: data.docs
106
+ docs: data?.docs || []
105
107
  });
106
108
  }
107
109
  const columnsToUse = [...columnState];
@@ -116,7 +118,7 @@ export const renderTable = ({
116
118
  hidden: true
117
119
  },
118
120
  Heading: i18n.t('version:type'),
119
- renderedCells: data.docs.map((doc, i) => /*#__PURE__*/_jsx(Pill, {
121
+ renderedCells: (data?.docs || []).map((doc, i) => /*#__PURE__*/_jsx(Pill, {
120
122
  size: "small",
121
123
  children: getTranslation(collections ? payload.collections[doc.relationTo].config.labels.singular : clientCollectionConfig.labels.singular, i18n)
122
124
  }, i))
@@ -133,8 +135,8 @@ export const renderTable = ({
133
135
  hidden: true
134
136
  },
135
137
  Heading: /*#__PURE__*/_jsx(SelectAll, {}),
136
- renderedCells: data.docs.map((_, i) => /*#__PURE__*/_jsx(SelectRow, {
137
- rowData: data.docs[i]
138
+ renderedCells: (data?.docs || []).map((_, i) => /*#__PURE__*/_jsx(SelectRow, {
139
+ rowData: data?.docs[i]
138
140
  }, i))
139
141
  });
140
142
  }
@@ -145,8 +147,8 @@ export const renderTable = ({
145
147
  Table: /*#__PURE__*/_jsx("div", {
146
148
  className: ['table-wrap', groupByValue !== undefined && `table-wrap--group-by`].filter(Boolean).join(' '),
147
149
  children: /*#__PURE__*/_jsxs(SelectionProvider, {
148
- docs: data.docs,
149
- totalDocs: data.totalDocs,
150
+ docs: data?.docs || [],
151
+ totalDocs: data?.totalDocs || 0,
150
152
  children: [/*#__PURE__*/_jsx(GroupByHeader, {
151
153
  collectionConfig: clientCollectionConfig,
152
154
  groupByFieldPath: groupByFieldPath,
@@ -155,7 +157,7 @@ export const renderTable = ({
155
157
  }), /*#__PURE__*/_jsx(Table, {
156
158
  appearance: tableAppearance,
157
159
  columns: columnsToUse,
158
- data: data.docs
160
+ data: data?.docs || []
159
161
  }), /*#__PURE__*/_jsx(GroupByPageControls, {
160
162
  collectionConfig: clientCollectionConfig,
161
163
  data: data,
@@ -174,7 +176,7 @@ export const renderTable = ({
174
176
  children: /*#__PURE__*/_jsx(Table, {
175
177
  appearance: tableAppearance,
176
178
  columns: columnsToUse,
177
- data: data.docs
179
+ data: data?.docs || []
178
180
  })
179
181
  }, key)
180
182
  };
@@ -189,7 +191,7 @@ export const renderTable = ({
189
191
  hidden: true
190
192
  },
191
193
  Heading: /*#__PURE__*/_jsx(SortHeader, {}),
192
- renderedCells: data.docs.map((_, i) => /*#__PURE__*/_jsx(SortRow, {}, i))
194
+ renderedCells: (data?.docs || []).map((_, i) => /*#__PURE__*/_jsx(SortRow, {}, i))
193
195
  });
194
196
  return {
195
197
  columnState,
@@ -200,7 +202,7 @@ export const renderTable = ({
200
202
  appearance: tableAppearance,
201
203
  collection: clientCollectionConfig,
202
204
  columns: columnsToUse,
203
- data: data.docs
205
+ data: data?.docs || []
204
206
  })
205
207
  }, key)
206
208
  };
@@ -1 +1 @@
1
- {"version":3,"file":"renderTable.js","names":["getTranslation","fieldAffectsData","fieldIsHiddenOrDisabled","flattenTopLevelFields","React","RenderServerComponent","GroupByHeader","GroupByPageControls","OrderableTable","Pill","SelectAll","SelectionProvider","SelectRow","SortHeader","SortRow","Table","filterFields","buildColumnState","getInitialColumns","renderFilters","fields","importMap","reduce","acc","field","admin","components","Filter","set","name","Component","Map","renderTable","clientCollectionConfig","clientConfig","collectionConfig","collections","columns","columnsFromArgs","customCellProps","data","enableRowSelections","groupByFieldPath","groupByValue","heading","i18n","key","orderableFieldName","payload","query","renderRowTypes","tableAppearance","useAsTitle","columnState","clientFields","serverFields","isPolymorphic","isGroupingBy","Boolean","groupBy","collection","find","each","slug","some","push","serverCollectionConfig","config","filter","column","keepPresentationalFields","moveSubFieldsToTop","accessor","undefined","defaultColumns","sharedArgs","collectionSlug","dataType","docs","columnsToUse","unshift","active","disabled","hidden","Heading","t","renderedCells","map","doc","i","_jsx","size","relationTo","labels","singular","_","rowData","className","join","_jsxs","totalDocs","appearance"],"sources":["../../src/utilities/renderTable.tsx"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n CollectionConfig,\n CollectionPreferences,\n Column,\n ColumnPreference,\n Field,\n ImportMap,\n ListQuery,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n} from 'payload'\n\nimport { getTranslation, type I18nClient } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsHiddenOrDisabled, flattenTopLevelFields } from 'payload/shared'\nimport React from 'react'\n\nimport type { BuildColumnStateArgs } from '../providers/TableColumns/buildColumnState/index.js'\n\nimport { RenderServerComponent } from '../elements/RenderServerComponent/index.js'\nimport {\n GroupByHeader,\n GroupByPageControls,\n OrderableTable,\n Pill,\n SelectAll,\n SelectionProvider,\n SelectRow,\n SortHeader,\n SortRow,\n Table,\n // eslint-disable-next-line payload/no-imports-from-exports-dir -- these MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\n} from '../exports/client/index.js'\nimport { filterFields } from '../providers/TableColumns/buildColumnState/filterFields.js'\nimport { buildColumnState } from '../providers/TableColumns/buildColumnState/index.js'\nimport { getInitialColumns } from '../providers/TableColumns/getInitialColumns.js'\n\nexport const renderFilters = (\n fields: Field[],\n importMap: ImportMap,\n): Map<string, React.ReactNode> =>\n fields.reduce(\n (acc, field) => {\n if (fieldIsHiddenOrDisabled(field)) {\n return acc\n }\n\n if ('name' in field && field.admin?.components?.Filter) {\n acc.set(\n field.name,\n RenderServerComponent({\n Component: field.admin.components?.Filter,\n importMap,\n }),\n )\n }\n\n return acc\n },\n new Map() as Map<string, React.ReactNode>,\n )\n\nexport const renderTable = ({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collections,\n columns: columnsFromArgs,\n customCellProps,\n data,\n enableRowSelections,\n groupByFieldPath,\n groupByValue,\n heading,\n i18n,\n key = 'table',\n orderableFieldName,\n payload,\n query,\n renderRowTypes,\n tableAppearance,\n useAsTitle,\n}: {\n clientCollectionConfig?: ClientCollectionConfig\n clientConfig?: ClientConfig\n collectionConfig?: SanitizedCollectionConfig\n collections?: string[]\n columns?: CollectionPreferences['columns']\n customCellProps?: Record<string, unknown>\n data: PaginatedDocs\n drawerSlug?: string\n enableRowSelections: boolean\n groupByFieldPath?: string\n groupByValue?: string\n heading?: string\n i18n: I18nClient\n key?: string\n orderableFieldName: string\n payload: Payload\n query?: ListQuery\n renderRowTypes?: boolean\n tableAppearance?: 'condensed' | 'default'\n useAsTitle: CollectionConfig['admin']['useAsTitle']\n}): {\n columnState: Column[]\n Table: React.ReactNode\n} => {\n // Ensure that columns passed as args comply with the field config, i.e. `hidden`, `disableListColumn`, etc.\n\n let columnState: Column[]\n let clientFields: ClientField[] = clientCollectionConfig?.fields || []\n let serverFields: Field[] = collectionConfig?.fields || []\n const isPolymorphic = collections\n\n const isGroupingBy = Boolean(collectionConfig?.admin?.groupBy && query?.groupBy)\n\n if (isPolymorphic) {\n clientFields = []\n serverFields = []\n for (const collection of collections) {\n const clientCollectionConfig = clientConfig.collections.find(\n (each) => each.slug === collection,\n )\n for (const field of filterFields(clientCollectionConfig.fields)) {\n if (fieldAffectsData(field)) {\n if (clientFields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n clientFields.push(field)\n }\n\n const serverCollectionConfig = payload.collections[collection].config\n for (const field of filterFields(serverCollectionConfig.fields)) {\n if (fieldAffectsData(field)) {\n if (serverFields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n serverFields.push(field)\n }\n }\n }\n\n const columns: ColumnPreference[] = columnsFromArgs\n ? columnsFromArgs?.filter((column) =>\n flattenTopLevelFields(clientFields, {\n i18n,\n keepPresentationalFields: true,\n moveSubFieldsToTop: true,\n })?.some((field) => {\n const accessor =\n 'accessor' in field ? field.accessor : 'name' in field ? field.name : undefined\n return accessor === column.accessor\n }),\n )\n : getInitialColumns(\n isPolymorphic ? clientFields : filterFields(clientFields),\n useAsTitle,\n isPolymorphic ? [] : clientCollectionConfig?.admin?.defaultColumns,\n )\n\n const sharedArgs: Pick<\n BuildColumnStateArgs,\n | 'clientFields'\n | 'columns'\n | 'customCellProps'\n | 'enableRowSelections'\n | 'i18n'\n | 'payload'\n | 'serverFields'\n | 'useAsTitle'\n > = {\n clientFields,\n columns,\n enableRowSelections,\n i18n,\n // sortColumnProps,\n customCellProps,\n payload,\n serverFields,\n useAsTitle,\n }\n\n if (isPolymorphic) {\n columnState = buildColumnState({\n ...sharedArgs,\n collectionSlug: undefined,\n dataType: 'polymorphic',\n docs: data.docs,\n })\n } else {\n columnState = buildColumnState({\n ...sharedArgs,\n collectionSlug: clientCollectionConfig.slug,\n dataType: 'monomorphic',\n docs: data.docs,\n })\n }\n\n const columnsToUse = [...columnState]\n\n if (renderRowTypes) {\n columnsToUse.unshift({\n accessor: 'collection',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: i18n.t('version:type'),\n renderedCells: data.docs.map((doc, i) => (\n <Pill key={i} size=\"small\">\n {getTranslation(\n collections\n ? payload.collections[doc.relationTo].config.labels.singular\n : clientCollectionConfig.labels.singular,\n i18n,\n )}\n </Pill>\n )),\n } as Column)\n }\n\n if (enableRowSelections) {\n columnsToUse.unshift({\n accessor: '_select',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SelectAll />,\n renderedCells: data.docs.map((_, i) => <SelectRow key={i} rowData={data.docs[i]} />),\n } as Column)\n }\n\n if (isGroupingBy) {\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <div\n className={['table-wrap', groupByValue !== undefined && `table-wrap--group-by`]\n .filter(Boolean)\n .join(' ')}\n key={key}\n >\n <SelectionProvider docs={data.docs} totalDocs={data.totalDocs}>\n <GroupByHeader\n collectionConfig={clientCollectionConfig}\n groupByFieldPath={groupByFieldPath}\n groupByValue={groupByValue}\n heading={heading}\n />\n <Table appearance={tableAppearance} columns={columnsToUse} data={data.docs} />\n <GroupByPageControls\n collectionConfig={clientCollectionConfig}\n data={data}\n groupByValue={groupByValue}\n />\n </SelectionProvider>\n </div>\n ),\n }\n }\n\n if (!orderableFieldName) {\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <div className=\"table-wrap\" key={key}>\n <Table appearance={tableAppearance} columns={columnsToUse} data={data.docs} />\n </div>\n ),\n }\n }\n\n columnsToUse.unshift({\n accessor: '_dragHandle',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SortHeader />,\n renderedCells: data.docs.map((_, i) => <SortRow key={i} />),\n } as Column)\n\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <div className=\"table-wrap\" key={key}>\n <OrderableTable\n appearance={tableAppearance}\n collection={clientCollectionConfig}\n columns={columnsToUse}\n data={data.docs}\n />\n </div>\n ),\n }\n}\n"],"mappings":";AAgBA,SAASA,cAAc,QAAyB;AAChD,SAASC,gBAAgB,EAAEC,uBAAuB,EAAEC,qBAAqB,QAAQ;AACjF,OAAOC,KAAA,MAAW;AAIlB,SAASC,qBAAqB,QAAQ;AACtC,SACEC,aAAa,EACbC,mBAAmB,EACnBC,cAAc,EACdC,IAAI,EACJC,SAAS,EACTC,iBAAiB,EACjBC,SAAS,EACTC,UAAU,EACVC,OAAO,EACPC,KAAK,QAEA;AACP,SAASC,YAAY,QAAQ;AAC7B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,iBAAiB,QAAQ;AAElC,OAAO,MAAMC,aAAA,GAAgBA,CAC3BC,MAAA,EACAC,SAAA,KAEAD,MAAA,CAAOE,MAAM,CACX,CAACC,GAAA,EAAKC,KAAA;EACJ,IAAItB,uBAAA,CAAwBsB,KAAA,GAAQ;IAClC,OAAOD,GAAA;EACT;EAEA,IAAI,UAAUC,KAAA,IAASA,KAAA,CAAMC,KAAK,EAAEC,UAAA,EAAYC,MAAA,EAAQ;IACtDJ,GAAA,CAAIK,GAAG,CACLJ,KAAA,CAAMK,IAAI,EACVxB,qBAAA,CAAsB;MACpByB,SAAA,EAAWN,KAAA,CAAMC,KAAK,CAACC,UAAU,EAAEC,MAAA;MACnCN;IACF;EAEJ;EAEA,OAAOE,GAAA;AACT,GACA,IAAIQ,GAAA;AAGR,OAAO,MAAMC,WAAA,GAAcA,CAAC;EAC1BC,sBAAsB;EACtBC,YAAY;EACZC,gBAAgB;EAChBC,WAAW;EACXC,OAAA,EAASC,eAAe;EACxBC,eAAe;EACfC,IAAI;EACJC,mBAAmB;EACnBC,gBAAgB;EAChBC,YAAY;EACZC,OAAO;EACPC,IAAI;EACJC,GAAA,GAAM,OAAO;EACbC,kBAAkB;EAClBC,OAAO;EACPC,KAAK;EACLC,cAAc;EACdC,eAAe;EACfC;AAAU,CAsBX;EAIC;EAEA,IAAIC,WAAA;EACJ,IAAIC,YAAA,GAA8BrB,sBAAA,EAAwBb,MAAA,IAAU,EAAE;EACtE,IAAImC,YAAA,GAAwBpB,gBAAA,EAAkBf,MAAA,IAAU,EAAE;EAC1D,MAAMoC,aAAA,GAAgBpB,WAAA;EAEtB,MAAMqB,YAAA,GAAeC,OAAA,CAAQvB,gBAAA,EAAkBV,KAAA,EAAOkC,OAAA,IAAWV,KAAA,EAAOU,OAAA;EAExE,IAAIH,aAAA,EAAe;IACjBF,YAAA,GAAe,EAAE;IACjBC,YAAA,GAAe,EAAE;IACjB,KAAK,MAAMK,UAAA,IAAcxB,WAAA,EAAa;MACpC,MAAMH,sBAAA,GAAyBC,YAAA,CAAaE,WAAW,CAACyB,IAAI,CACzDC,IAAA,IAASA,IAAA,CAAKC,IAAI,KAAKH,UAAA;MAE1B,KAAK,MAAMpC,KAAA,IAASR,YAAA,CAAaiB,sBAAA,CAAuBb,MAAM,GAAG;QAC/D,IAAInB,gBAAA,CAAiBuB,KAAA,GAAQ;UAC3B,IAAI8B,YAAA,CAAaU,IAAI,CAAEF,IAAA,IAAS7D,gBAAA,CAAiB6D,IAAA,KAASA,IAAA,CAAKjC,IAAI,KAAKL,KAAA,CAAMK,IAAI,GAAG;YACnF;UACF;QACF;QAEAyB,YAAA,CAAaW,IAAI,CAACzC,KAAA;MACpB;MAEA,MAAM0C,sBAAA,GAAyBlB,OAAA,CAAQZ,WAAW,CAACwB,UAAA,CAAW,CAACO,MAAM;MACrE,KAAK,MAAM3C,KAAA,IAASR,YAAA,CAAakD,sBAAA,CAAuB9C,MAAM,GAAG;QAC/D,IAAInB,gBAAA,CAAiBuB,KAAA,GAAQ;UAC3B,IAAI+B,YAAA,CAAaS,IAAI,CAAEF,IAAA,IAAS7D,gBAAA,CAAiB6D,IAAA,KAASA,IAAA,CAAKjC,IAAI,KAAKL,KAAA,CAAMK,IAAI,GAAG;YACnF;UACF;QACF;QAEA0B,YAAA,CAAaU,IAAI,CAACzC,KAAA;MACpB;IACF;EACF;EAEA,MAAMa,OAAA,GAA8BC,eAAA,GAChCA,eAAA,EAAiB8B,MAAA,CAAQC,MAAA,IACvBlE,qBAAA,CAAsBmD,YAAA,EAAc;IAClCT,IAAA;IACAyB,wBAAA,EAA0B;IAC1BC,kBAAA,EAAoB;EACtB,IAAIP,IAAA,CAAMxC,KAAA;IACR,MAAMgD,QAAA,GACJ,cAAchD,KAAA,GAAQA,KAAA,CAAMgD,QAAQ,GAAG,UAAUhD,KAAA,GAAQA,KAAA,CAAMK,IAAI,GAAG4C,SAAA;IACxE,OAAOD,QAAA,KAAaH,MAAA,CAAOG,QAAQ;EACrC,MAEFtD,iBAAA,CACEsC,aAAA,GAAgBF,YAAA,GAAetC,YAAA,CAAasC,YAAA,GAC5CF,UAAA,EACAI,aAAA,GAAgB,EAAE,GAAGvB,sBAAA,EAAwBR,KAAA,EAAOiD,cAAA;EAG1D,MAAMC,UAAA,GAUF;IACFrB,YAAA;IACAjB,OAAA;IACAI,mBAAA;IACAI,IAAA;IACA;IACAN,eAAA;IACAS,OAAA;IACAO,YAAA;IACAH;EACF;EAEA,IAAII,aAAA,EAAe;IACjBH,WAAA,GAAcpC,gBAAA,CAAiB;MAC7B,GAAG0D,UAAU;MACbC,cAAA,EAAgBH,SAAA;MAChBI,QAAA,EAAU;MACVC,IAAA,EAAMtC,IAAA,CAAKsC;IACb;EACF,OAAO;IACLzB,WAAA,GAAcpC,gBAAA,CAAiB;MAC7B,GAAG0D,UAAU;MACbC,cAAA,EAAgB3C,sBAAA,CAAuB8B,IAAI;MAC3Cc,QAAA,EAAU;MACVC,IAAA,EAAMtC,IAAA,CAAKsC;IACb;EACF;EAEA,MAAMC,YAAA,GAAe,C,GAAI1B,WAAA,CAAY;EAErC,IAAIH,cAAA,EAAgB;IAClB6B,YAAA,CAAaC,OAAO,CAAC;MACnBR,QAAA,EAAU;MACVS,MAAA,EAAQ;MACRzD,KAAA,EAAO;QACLC,KAAA,EAAO;UACLyD,QAAA,EAAU;QACZ;QACAC,MAAA,EAAQ;MACV;MACAC,OAAA,EAASvC,IAAA,CAAKwC,CAAC,CAAC;MAChBC,aAAA,EAAe9C,IAAA,CAAKsC,IAAI,CAACS,GAAG,CAAC,CAACC,GAAA,EAAKC,CAAA,kBACjCC,IAAA,CAACjF,IAAA;QAAakF,IAAA,EAAK;kBAChB3F,cAAA,CACCoC,WAAA,GACIY,OAAA,CAAQZ,WAAW,CAACoD,GAAA,CAAII,UAAU,CAAC,CAACzB,MAAM,CAAC0B,MAAM,CAACC,QAAQ,GAC1D7D,sBAAA,CAAuB4D,MAAM,CAACC,QAAQ,EAC1CjD,IAAA;SALO4C,CAAA;IASf;EACF;EAEA,IAAIhD,mBAAA,EAAqB;IACvBsC,YAAA,CAAaC,OAAO,CAAC;MACnBR,QAAA,EAAU;MACVS,MAAA,EAAQ;MACRzD,KAAA,EAAO;QACLC,KAAA,EAAO;UACLyD,QAAA,EAAU;QACZ;QACAC,MAAA,EAAQ;MACV;MACAC,OAAA,eAASM,IAAA,CAAChF,SAAA;MACV4E,aAAA,EAAe9C,IAAA,CAAKsC,IAAI,CAACS,GAAG,CAAC,CAACQ,CAAA,EAAGN,CAAA,kBAAMC,IAAA,CAAC9E,SAAA;QAAkBoF,OAAA,EAASxD,IAAA,CAAKsC,IAAI,CAACW,CAAA;SAAtBA,CAAA;IACzD;EACF;EAEA,IAAIhC,YAAA,EAAc;IAChB,OAAO;MACLJ,WAAA;MACA;MACAtC,KAAA,eACE2E,IAAA,CAAC;QACCO,SAAA,EAAW,CAAC,cAActD,YAAA,KAAiB8B,SAAA,IAAa,sBAAsB,CAAC,CAC5EL,MAAM,CAACV,OAAA,EACPwC,IAAI,CAAC;kBAGR,aAAAC,KAAA,CAACxF,iBAAA;UAAkBmE,IAAA,EAAMtC,IAAA,CAAKsC,IAAI;UAAEsB,SAAA,EAAW5D,IAAA,CAAK4D,SAAS;kCAC3DV,IAAA,CAACpF,aAAA;YACC6B,gBAAA,EAAkBF,sBAAA;YAClBS,gBAAA,EAAkBA,gBAAA;YAClBC,YAAA,EAAcA,YAAA;YACdC,OAAA,EAASA;2BAEX8C,IAAA,CAAC3E,KAAA;YAAMsF,UAAA,EAAYlD,eAAA;YAAiBd,OAAA,EAAS0C,YAAA;YAAcvC,IAAA,EAAMA,IAAA,CAAKsC;2BACtEY,IAAA,CAACnF,mBAAA;YACC4B,gBAAA,EAAkBF,sBAAA;YAClBO,IAAA,EAAMA,IAAA;YACNG,YAAA,EAAcA;;;SAbbG,GAAA;IAkBX;EACF;EAEA,IAAI,CAACC,kBAAA,EAAoB;IACvB,OAAO;MACLM,WAAA;MACA;MACAtC,KAAA,eACE2E,IAAA,CAAC;QAAIO,SAAA,EAAU;kBACb,aAAAP,IAAA,CAAC3E,KAAA;UAAMsF,UAAA,EAAYlD,eAAA;UAAiBd,OAAA,EAAS0C,YAAA;UAAcvC,IAAA,EAAMA,IAAA,CAAKsC;;SADvChC,GAAA;IAIrC;EACF;EAEAiC,YAAA,CAAaC,OAAO,CAAC;IACnBR,QAAA,EAAU;IACVS,MAAA,EAAQ;IACRzD,KAAA,EAAO;MACLC,KAAA,EAAO;QACLyD,QAAA,EAAU;MACZ;MACAC,MAAA,EAAQ;IACV;IACAC,OAAA,eAASM,IAAA,CAAC7E,UAAA;IACVyE,aAAA,EAAe9C,IAAA,CAAKsC,IAAI,CAACS,GAAG,CAAC,CAACQ,CAAA,EAAGN,CAAA,kBAAMC,IAAA,CAAC5E,OAAA,MAAa2E,CAAA;EACvD;EAEA,OAAO;IACLpC,WAAA;IACA;IACAtC,KAAA,eACE2E,IAAA,CAAC;MAAIO,SAAA,EAAU;gBACb,aAAAP,IAAA,CAAClF,cAAA;QACC6F,UAAA,EAAYlD,eAAA;QACZS,UAAA,EAAY3B,sBAAA;QACZI,OAAA,EAAS0C,YAAA;QACTvC,IAAA,EAAMA,IAAA,CAAKsC;;OALkBhC,GAAA;EASrC;AACF","ignoreList":[]}
1
+ {"version":3,"file":"renderTable.js","names":["getTranslation","fieldAffectsData","fieldIsHiddenOrDisabled","flattenTopLevelFields","React","RenderServerComponent","GroupByHeader","GroupByPageControls","OrderableTable","Pill","SelectAll","SelectionProvider","SelectRow","SortHeader","SortRow","Table","filterFields","buildColumnState","getInitialColumns","renderFilters","fields","importMap","reduce","acc","field","admin","components","Filter","set","name","Component","Map","renderTable","clientCollectionConfig","clientConfig","collectionConfig","collections","columns","columnsFromArgs","customCellProps","data","enableRowSelections","groupByFieldPath","groupByValue","heading","i18n","key","orderableFieldName","payload","query","renderRowTypes","tableAppearance","useAsTitle","viewType","columnState","clientFields","serverFields","isPolymorphic","isGroupingBy","Boolean","groupBy","collection","find","each","slug","some","push","serverCollectionConfig","config","filter","column","keepPresentationalFields","moveSubFieldsToTop","accessor","undefined","defaultColumns","sharedArgs","collectionSlug","dataType","docs","columnsToUse","unshift","active","disabled","hidden","Heading","t","renderedCells","map","doc","i","_jsx","size","relationTo","labels","singular","_","rowData","className","join","_jsxs","totalDocs","appearance"],"sources":["../../src/utilities/renderTable.tsx"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n CollectionConfig,\n CollectionPreferences,\n Column,\n ColumnPreference,\n Field,\n ImportMap,\n ListQuery,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n ViewTypes,\n} from 'payload'\n\nimport { getTranslation, type I18nClient } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsHiddenOrDisabled, flattenTopLevelFields } from 'payload/shared'\nimport React from 'react'\n\nimport type { BuildColumnStateArgs } from '../providers/TableColumns/buildColumnState/index.js'\n\nimport { RenderServerComponent } from '../elements/RenderServerComponent/index.js'\nimport {\n GroupByHeader,\n GroupByPageControls,\n OrderableTable,\n Pill,\n SelectAll,\n SelectionProvider,\n SelectRow,\n SortHeader,\n SortRow,\n Table,\n // eslint-disable-next-line payload/no-imports-from-exports-dir -- these MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\n} from '../exports/client/index.js'\nimport { filterFields } from '../providers/TableColumns/buildColumnState/filterFields.js'\nimport { buildColumnState } from '../providers/TableColumns/buildColumnState/index.js'\nimport { getInitialColumns } from '../providers/TableColumns/getInitialColumns.js'\n\nexport const renderFilters = (\n fields: Field[],\n importMap: ImportMap,\n): Map<string, React.ReactNode> =>\n fields.reduce(\n (acc, field) => {\n if (fieldIsHiddenOrDisabled(field)) {\n return acc\n }\n\n if ('name' in field && field.admin?.components?.Filter) {\n acc.set(\n field.name,\n RenderServerComponent({\n Component: field.admin.components?.Filter,\n importMap,\n }),\n )\n }\n\n return acc\n },\n new Map() as Map<string, React.ReactNode>,\n )\n\nexport const renderTable = ({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collections,\n columns: columnsFromArgs,\n customCellProps,\n data,\n enableRowSelections,\n groupByFieldPath,\n groupByValue,\n heading,\n i18n,\n key = 'table',\n orderableFieldName,\n payload,\n query,\n renderRowTypes,\n tableAppearance,\n useAsTitle,\n viewType,\n}: {\n clientCollectionConfig?: ClientCollectionConfig\n clientConfig?: ClientConfig\n collectionConfig?: SanitizedCollectionConfig\n collections?: string[]\n columns?: CollectionPreferences['columns']\n customCellProps?: Record<string, unknown>\n data?: PaginatedDocs | undefined\n drawerSlug?: string\n enableRowSelections: boolean\n groupByFieldPath?: string\n groupByValue?: string\n heading?: string\n i18n: I18nClient\n key?: string\n orderableFieldName: string\n payload: Payload\n query?: ListQuery\n renderRowTypes?: boolean\n tableAppearance?: 'condensed' | 'default'\n useAsTitle: CollectionConfig['admin']['useAsTitle']\n viewType?: ViewTypes\n}): {\n columnState: Column[]\n Table: React.ReactNode\n} => {\n // Ensure that columns passed as args comply with the field config, i.e. `hidden`, `disableListColumn`, etc.\n\n let columnState: Column[]\n let clientFields: ClientField[] = clientCollectionConfig?.fields || []\n let serverFields: Field[] = collectionConfig?.fields || []\n const isPolymorphic = collections\n\n const isGroupingBy = Boolean(collectionConfig?.admin?.groupBy && query?.groupBy)\n\n if (isPolymorphic) {\n clientFields = []\n serverFields = []\n for (const collection of collections) {\n const clientCollectionConfig = clientConfig.collections.find(\n (each) => each.slug === collection,\n )\n for (const field of filterFields(clientCollectionConfig.fields)) {\n if (fieldAffectsData(field)) {\n if (clientFields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n clientFields.push(field)\n }\n\n const serverCollectionConfig = payload.collections[collection].config\n for (const field of filterFields(serverCollectionConfig.fields)) {\n if (fieldAffectsData(field)) {\n if (serverFields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n serverFields.push(field)\n }\n }\n }\n\n const columns: ColumnPreference[] = columnsFromArgs\n ? columnsFromArgs?.filter((column) =>\n flattenTopLevelFields(clientFields, {\n i18n,\n keepPresentationalFields: true,\n moveSubFieldsToTop: true,\n })?.some((field) => {\n const accessor =\n 'accessor' in field ? field.accessor : 'name' in field ? field.name : undefined\n return accessor === column.accessor\n }),\n )\n : getInitialColumns(\n isPolymorphic ? clientFields : filterFields(clientFields),\n useAsTitle,\n isPolymorphic ? [] : clientCollectionConfig?.admin?.defaultColumns,\n )\n\n const sharedArgs: Pick<\n BuildColumnStateArgs,\n | 'clientFields'\n | 'columns'\n | 'customCellProps'\n | 'enableRowSelections'\n | 'i18n'\n | 'payload'\n | 'serverFields'\n | 'useAsTitle'\n | 'viewType'\n > = {\n clientFields,\n columns,\n enableRowSelections,\n i18n,\n // sortColumnProps,\n customCellProps,\n payload,\n serverFields,\n useAsTitle,\n viewType,\n }\n\n if (isPolymorphic) {\n columnState = buildColumnState({\n ...sharedArgs,\n collectionSlug: undefined,\n dataType: 'polymorphic',\n docs: data?.docs || [],\n })\n } else {\n columnState = buildColumnState({\n ...sharedArgs,\n collectionSlug: clientCollectionConfig.slug,\n dataType: 'monomorphic',\n docs: data?.docs || [],\n })\n }\n\n const columnsToUse = [...columnState]\n\n if (renderRowTypes) {\n columnsToUse.unshift({\n accessor: 'collection',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: i18n.t('version:type'),\n renderedCells: (data?.docs || []).map((doc, i) => (\n <Pill key={i} size=\"small\">\n {getTranslation(\n collections\n ? payload.collections[doc.relationTo].config.labels.singular\n : clientCollectionConfig.labels.singular,\n i18n,\n )}\n </Pill>\n )),\n } as Column)\n }\n\n if (enableRowSelections) {\n columnsToUse.unshift({\n accessor: '_select',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SelectAll />,\n renderedCells: (data?.docs || []).map((_, i) => (\n <SelectRow key={i} rowData={data?.docs[i]} />\n )),\n } as Column)\n }\n\n if (isGroupingBy) {\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <div\n className={['table-wrap', groupByValue !== undefined && `table-wrap--group-by`]\n .filter(Boolean)\n .join(' ')}\n key={key}\n >\n <SelectionProvider docs={data?.docs || []} totalDocs={data?.totalDocs || 0}>\n <GroupByHeader\n collectionConfig={clientCollectionConfig}\n groupByFieldPath={groupByFieldPath}\n groupByValue={groupByValue}\n heading={heading}\n />\n <Table appearance={tableAppearance} columns={columnsToUse} data={data?.docs || []} />\n <GroupByPageControls\n collectionConfig={clientCollectionConfig}\n data={data}\n groupByValue={groupByValue}\n />\n </SelectionProvider>\n </div>\n ),\n }\n }\n\n if (!orderableFieldName) {\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <div className=\"table-wrap\" key={key}>\n <Table appearance={tableAppearance} columns={columnsToUse} data={data?.docs || []} />\n </div>\n ),\n }\n }\n\n columnsToUse.unshift({\n accessor: '_dragHandle',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SortHeader />,\n renderedCells: (data?.docs || []).map((_, i) => <SortRow key={i} />),\n } as Column)\n\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <div className=\"table-wrap\" key={key}>\n <OrderableTable\n appearance={tableAppearance}\n collection={clientCollectionConfig}\n columns={columnsToUse}\n data={data?.docs || []}\n />\n </div>\n ),\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/CollectionFolder/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAMxD,OAAO,KAAmB,MAAM,OAAO,CAAA;AA2BvC,OAAO,cAAc,CAAA;AAIrB,wBAAgB,2BAA2B,CAAC,EAC1C,wBAAwB,EAAE,qBAAqB,EAC/C,0BAA0B,EAC1B,cAAc,EACd,WAAW,EACX,SAAS,EACT,eAAe,EACf,QAAQ,EACR,sBAAsB,EACtB,MAAM,EACN,IAAI,EACJ,UAAU,EACV,GAAG,WAAW,EACf,EAAE,yBAAyB,qBAkB3B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/CollectionFolder/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAMxD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAyBvC,OAAO,cAAc,CAAA;AAQrB,wBAAgB,2BAA2B,CAAC,EAC1C,wBAAwB,EAAE,qBAAqB,EAC/C,0BAA0B,EAC1B,cAAc,EACd,WAAW,EACX,SAAS,EACT,eAAe,EACf,QAAQ,EACR,sBAAsB,EACtB,MAAM,EACN,IAAI,EACJ,UAAU,EACV,GAAG,WAAW,EACf,EAAE,yBAAyB,qBAkB3B"}
@@ -14,9 +14,11 @@ import { DragOverlaySelection } from '../../elements/FolderView/DragOverlaySelec
14
14
  import { SortByPill } from '../../elements/FolderView/SortByPill/index.js';
15
15
  import { ToggleViewButtons } from '../../elements/FolderView/ToggleViewButtons/index.js';
16
16
  import { Gutter } from '../../elements/Gutter/index.js';
17
- import { ListFolderPills } from '../../elements/ListFolderPills/index.js';
18
17
  import { ListHeader } from '../../elements/ListHeader/index.js';
19
18
  import { ListBulkUploadButton, ListCreateNewDocInFolderButton } from '../../elements/ListHeader/TitleActions/index.js';
19
+ import { ByFolderPill } from '../../elements/ListHeaderTabs/ByFolderPill.js';
20
+ import { DefaultListPill } from '../../elements/ListHeaderTabs/DefaultListPill.js';
21
+ import { TrashPill } from '../../elements/ListHeaderTabs/TrashPill.js';
20
22
  import { NoListResults } from '../../elements/NoListResults/index.js';
21
23
  import { SearchBar } from '../../elements/SearchBar/index.js';
22
24
  import { useStepNav } from '../../elements/StepNav/index.js';
@@ -25,11 +27,11 @@ import { useEditDepth } from '../../providers/EditDepth/index.js';
25
27
  import { FolderProvider, useFolder } from '../../providers/Folders/index.js';
26
28
  import { usePreferences } from '../../providers/Preferences/index.js';
27
29
  import { useRouteCache } from '../../providers/RouteCache/index.js';
30
+ import './index.scss';
28
31
  import { useRouteTransition } from '../../providers/RouteTransition/index.js';
29
32
  import { useTranslation } from '../../providers/Translation/index.js';
30
33
  import { useWindowInfo } from '../../providers/WindowInfo/index.js';
31
34
  import { ListSelection } from './ListSelection/index.js';
32
- import './index.scss';
33
35
  const baseClass = 'collection-folder-list';
34
36
  export function DefaultCollectionFolderView({
35
37
  allCollectionFolderSlugs: folderCollectionSlugs,
@@ -262,11 +264,19 @@ function CollectionFolderViewInContext(props) {
262
264
  disableBulkDelete,
263
265
  disableBulkEdit: collectionConfig.disableBulkEdit ?? disableBulkEdit,
264
266
  folderAssignedCollections: Array.isArray(folderType) ? folderType : [collectionSlug]
265
- }, "list-selection"), config.folders && collectionConfig.folders && _jsx(ListFolderPills, {
267
+ }, "list-selection"), config.folders && collectionConfig.folders && _jsxs(Fragment, {
268
+ children: [_jsx(DefaultListPill, {
269
+ collectionConfig,
270
+ viewType: "folders"
271
+ }, "list-header-default-button"), _jsx(ByFolderPill, {
272
+ collectionConfig,
273
+ folderCollectionSlug,
274
+ viewType: "folders"
275
+ }, "list-header-by-folder-button")]
276
+ }, "list-header-folder-view-buttons"), collectionConfig.trash && _jsx(TrashPill, {
266
277
  collectionConfig,
267
- folderCollectionSlug,
268
278
  viewType: "folders"
269
- }, "list-header-buttons")].filter(Boolean),
279
+ }, "list-header-trash-button")].filter(Boolean),
270
280
  AfterListHeaderContent: Description,
271
281
  title: getTranslation(labels?.plural, i18n),
272
282
  TitleActions: [allowCreateCollectionSlugs.length && _jsx(ListCreateNewDocInFolderButton, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useDndMonitor","getTranslation","useRouter","formatAdminURL","React","Fragment","DroppableBreadcrumb","ColoredFolderIcon","CurrentFolderActions","DragOverlaySelection","SortByPill","ToggleViewButtons","Gutter","ListFolderPills","ListHeader","ListBulkUploadButton","ListCreateNewDocInFolderButton","NoListResults","SearchBar","useStepNav","useConfig","useEditDepth","FolderProvider","useFolder","usePreferences","useRouteCache","useRouteTransition","useTranslation","useWindowInfo","ListSelection","baseClass","DefaultCollectionFolderView","allCollectionFolderSlugs","folderCollectionSlugs","allowCreateCollectionSlugs","baseFolderPath","breadcrumbs","documents","folderFieldName","folderID","FolderResultsComponent","search","sort","subfolders","restOfProps","_jsx","CollectionFolderViewInContext","props","$","AfterFolderList","AfterFolderListTable","BeforeFolderList","BeforeFolderListTable","collectionSlug","Description","disableBulkDelete","disableBulkEdit","viewPreference","config","getEntityConfig","i18n","t","drawerDepth","setStepNav","setPreference","dragOverlayItem","folderCollectionConfig","folderCollectionSlug","folderType","getSelectedItems","moveToFolder","refineFolderData","selectedItemKeys","setIsDragging","router","startRouteTransition","clearRouteCache","collectionConfig","labels","upload","isUploadCollection","Boolean","isBulkUploadEnabled","bulkUpload","breakpoints","t0","s","smallBreak","t1","event","over","data","current","type","itemsToMove","toFolderID","id","t2","error","console","onDragEnd","handleSetViewType","view","plural","t3","folders","routes","admin","useEffect","length","label","_jsxs","className","children","filter","join","onClick","push","adminRoute","path","slug","map","crumb","crumbIndex","name","totalDocsAndSubfolders","t4","search_0","query","updateURL","t5","size","item","selectedCount","DndEventListener","Actions","folderAssignedCollections","Array","isArray","viewType","AfterListHeaderContent","title","TitleActions","buttonLabel","collectionSlugs","onCreateSuccess","slugPrefix","hasCreatePermission","includes","activeView","setActiveView","onSearchChange","searchQueryParam","singular","toLowerCase","Message","onDragCancel","onDragStart"],"sources":["../../../src/views/CollectionFolder/index.tsx"],"sourcesContent":["'use client'\n\nimport type { DragEndEvent } from '@dnd-kit/core'\nimport type { FolderListViewClientProps } from 'payload'\n\nimport { useDndMonitor } from '@dnd-kit/core'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { DroppableBreadcrumb } from '../../elements/FolderView/Breadcrumbs/index.js'\nimport { ColoredFolderIcon } from '../../elements/FolderView/ColoredFolderIcon/index.js'\nimport { CurrentFolderActions } from '../../elements/FolderView/CurrentFolderActions/index.js'\nimport { DragOverlaySelection } from '../../elements/FolderView/DragOverlaySelection/index.js'\nimport { SortByPill } from '../../elements/FolderView/SortByPill/index.js'\nimport { ToggleViewButtons } from '../../elements/FolderView/ToggleViewButtons/index.js'\nimport { Gutter } from '../../elements/Gutter/index.js'\nimport { ListFolderPills } from '../../elements/ListFolderPills/index.js'\nimport { ListHeader } from '../../elements/ListHeader/index.js'\nimport {\n ListBulkUploadButton,\n ListCreateNewDocInFolderButton,\n} from '../../elements/ListHeader/TitleActions/index.js'\nimport { NoListResults } from '../../elements/NoListResults/index.js'\nimport { SearchBar } from '../../elements/SearchBar/index.js'\nimport { useStepNav } from '../../elements/StepNav/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { FolderProvider, useFolder } from '../../providers/Folders/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useWindowInfo } from '../../providers/WindowInfo/index.js'\nimport { ListSelection } from './ListSelection/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-folder-list'\n\nexport function DefaultCollectionFolderView({\n allCollectionFolderSlugs: folderCollectionSlugs,\n allowCreateCollectionSlugs,\n baseFolderPath,\n breadcrumbs,\n documents,\n folderFieldName,\n folderID,\n FolderResultsComponent,\n search,\n sort,\n subfolders,\n ...restOfProps\n}: FolderListViewClientProps) {\n return (\n <FolderProvider\n allCollectionFolderSlugs={folderCollectionSlugs}\n allowCreateCollectionSlugs={allowCreateCollectionSlugs}\n baseFolderPath={baseFolderPath}\n breadcrumbs={breadcrumbs}\n documents={documents}\n folderFieldName={folderFieldName}\n folderID={folderID}\n FolderResultsComponent={FolderResultsComponent}\n search={search}\n sort={sort}\n subfolders={subfolders}\n >\n <CollectionFolderViewInContext {...restOfProps} />\n </FolderProvider>\n )\n}\n\ntype CollectionFolderViewInContextProps = Omit<\n FolderListViewClientProps,\n | 'allCollectionFolderSlugs'\n | 'allowCreateCollectionSlugs'\n | 'baseFolderPath'\n | 'breadcrumbs'\n | 'documents'\n | 'folderFieldName'\n | 'folderID'\n | 'FolderResultsComponent'\n | 'subfolders'\n>\n\nfunction CollectionFolderViewInContext(props: CollectionFolderViewInContextProps) {\n const {\n AfterFolderList,\n AfterFolderListTable,\n BeforeFolderList,\n BeforeFolderListTable,\n collectionSlug,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n search,\n viewPreference,\n } = props\n\n const { config, getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n const drawerDepth = useEditDepth()\n const { setStepNav } = useStepNav()\n const { setPreference } = usePreferences()\n const {\n allowCreateCollectionSlugs,\n breadcrumbs,\n documents,\n dragOverlayItem,\n folderCollectionConfig,\n folderCollectionSlug,\n FolderResultsComponent,\n folderType,\n getSelectedItems,\n moveToFolder,\n refineFolderData,\n selectedItemKeys,\n setIsDragging,\n subfolders,\n } = useFolder()\n\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n const { clearRouteCache } = useRouteCache()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { labels, upload } = collectionConfig\n const isUploadCollection = Boolean(upload)\n const isBulkUploadEnabled = isUploadCollection && collectionConfig.upload.bulkUpload\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const onDragEnd = React.useCallback(\n async (event: DragEndEvent) => {\n if (!event.over) {\n return\n }\n\n if (event.over.data.current.type === 'folder' && 'id' in event.over.data.current) {\n try {\n await moveToFolder({\n itemsToMove: getSelectedItems(),\n toFolderID: event.over.data.current.id,\n })\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error moving items:', error)\n }\n\n clearRouteCache()\n }\n },\n [moveToFolder, getSelectedItems, clearRouteCache],\n )\n\n const handleSetViewType = React.useCallback(\n async (view: 'grid' | 'list') => {\n await setPreference(`${collectionSlug}-collection-folder`, {\n viewPreference: view,\n })\n clearRouteCache()\n },\n [collectionSlug, setPreference, clearRouteCache],\n )\n\n React.useEffect(() => {\n if (!drawerDepth) {\n setStepNav([\n !breadcrumbs.length\n ? {\n label: (\n <div className={`${baseClass}__step-nav-icon-label`} key=\"root\">\n <ColoredFolderIcon />\n {getTranslation(labels?.plural, i18n)}\n </div>\n ),\n }\n : {\n label: (\n <DroppableBreadcrumb\n className={[\n `${baseClass}__step-nav-droppable`,\n `${baseClass}__step-nav-icon-label`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={null}\n key=\"root\"\n onClick={() => {\n startRouteTransition(() => {\n if (config.folders) {\n router.push(\n formatAdminURL({\n adminRoute: config.routes.admin,\n path: `/collections/${collectionSlug}/${config.folders.slug}`,\n }),\n )\n }\n })\n }}\n >\n <ColoredFolderIcon />\n {getTranslation(labels?.plural, i18n)}\n </DroppableBreadcrumb>\n ),\n },\n ...breadcrumbs.map((crumb, crumbIndex) => {\n return {\n label:\n crumbIndex === breadcrumbs.length - 1 ? (\n crumb.name\n ) : (\n <DroppableBreadcrumb\n className={`${baseClass}__step-nav-droppable`}\n id={crumb.id}\n key={crumb.id}\n onClick={() => {\n startRouteTransition(() => {\n if (config.folders) {\n router.push(\n formatAdminURL({\n adminRoute: config.routes.admin,\n path: `/collections/${collectionSlug}/${config.folders.slug}/${crumb.id}`,\n }),\n )\n }\n })\n }}\n >\n {crumb.name}\n </DroppableBreadcrumb>\n ),\n }\n }),\n ])\n }\n }, [\n breadcrumbs,\n collectionSlug,\n config.folders,\n config.routes.admin,\n drawerDepth,\n i18n,\n labels?.plural,\n router,\n setStepNav,\n startRouteTransition,\n ])\n\n const totalDocsAndSubfolders = documents.length + subfolders.length\n\n return (\n <Fragment>\n <DndEventListener onDragEnd={onDragEnd} setIsDragging={setIsDragging} />\n\n <div className={`${baseClass} ${baseClass}--${collectionSlug}`}>\n {BeforeFolderList}\n <Gutter className={`${baseClass}__wrap`}>\n <ListHeader\n Actions={[\n !smallBreak && (\n <ListSelection\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={collectionConfig.disableBulkEdit ?? disableBulkEdit}\n folderAssignedCollections={\n Array.isArray(folderType) ? folderType : [collectionSlug]\n }\n key=\"list-selection\"\n />\n ),\n config.folders && collectionConfig.folders && (\n <ListFolderPills\n collectionConfig={collectionConfig}\n folderCollectionSlug={folderCollectionSlug}\n key=\"list-header-buttons\"\n viewType=\"folders\"\n />\n ),\n ].filter(Boolean)}\n AfterListHeaderContent={Description}\n title={getTranslation(labels?.plural, i18n)}\n TitleActions={[\n allowCreateCollectionSlugs.length && (\n <ListCreateNewDocInFolderButton\n buttonLabel={t('general:createNew')}\n collectionSlugs={allowCreateCollectionSlugs}\n folderAssignedCollections={\n Array.isArray(folderType) ? folderType : [collectionSlug]\n }\n key=\"create-new-button\"\n onCreateSuccess={clearRouteCache}\n slugPrefix=\"create-document--header-pill\"\n />\n ),\n <ListBulkUploadButton\n collectionSlug={collectionSlug}\n hasCreatePermission={allowCreateCollectionSlugs.includes(collectionSlug)}\n isBulkUploadEnabled={isBulkUploadEnabled}\n key=\"bulk-upload-button\"\n />,\n ].filter(Boolean)}\n />\n <SearchBar\n Actions={[\n <SortByPill key=\"sort-by-pill\" />,\n <ToggleViewButtons\n activeView={viewPreference}\n key=\"toggle-view-buttons\"\n setActiveView={handleSetViewType}\n />,\n <CurrentFolderActions key=\"current-folder-actions\" />,\n ].filter(Boolean)}\n label={t('general:searchBy', {\n label: t('general:name'),\n })}\n onSearchChange={(search) => refineFolderData({ query: { search }, updateURL: true })}\n searchQueryParam={search}\n />\n {BeforeFolderListTable}\n {totalDocsAndSubfolders > 0 && FolderResultsComponent}\n {totalDocsAndSubfolders === 0 && (\n <NoListResults\n Actions={[\n allowCreateCollectionSlugs.includes(folderCollectionSlug) && (\n <ListCreateNewDocInFolderButton\n buttonLabel={`${t('general:create')} ${getTranslation(folderCollectionConfig.labels?.singular, i18n).toLowerCase()}`}\n collectionSlugs={[folderCollectionConfig.slug]}\n folderAssignedCollections={\n Array.isArray(folderType) ? folderType : [collectionSlug]\n }\n key=\"create-folder\"\n onCreateSuccess={clearRouteCache}\n slugPrefix=\"create-folder--no-results\"\n />\n ),\n allowCreateCollectionSlugs.includes(collectionSlug) && (\n <ListCreateNewDocInFolderButton\n buttonLabel={`${t('general:create')} ${t('general:document').toLowerCase()}`}\n collectionSlugs={[collectionSlug]}\n folderAssignedCollections={\n Array.isArray(folderType) ? folderType : [collectionSlug]\n }\n key=\"create-document\"\n onCreateSuccess={clearRouteCache}\n slugPrefix=\"create-document--no-results\"\n />\n ),\n ].filter(Boolean)}\n Message={\n <p>\n {i18n.t('general:noResults', {\n label: `${getTranslation(labels?.plural, i18n)} ${t('general:or').toLowerCase()} ${getTranslation(\n folderCollectionConfig.labels?.plural,\n i18n,\n )}`,\n })}\n </p>\n }\n />\n )}\n {AfterFolderListTable}\n </Gutter>\n {AfterFolderList}\n </div>\n {selectedItemKeys.size > 0 && dragOverlayItem && (\n <DragOverlaySelection item={dragOverlayItem} selectedCount={selectedItemKeys.size} />\n )}\n </Fragment>\n )\n}\n\nfunction DndEventListener({ onDragEnd, setIsDragging }) {\n useDndMonitor({\n onDragCancel() {\n setIsDragging(false)\n },\n onDragEnd(event) {\n setIsDragging(false)\n onDragEnd(event)\n },\n onDragStart() {\n setIsDragging(true)\n },\n })\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useDndMonitor","getTranslation","useRouter","formatAdminURL","React","Fragment","DroppableBreadcrumb","ColoredFolderIcon","CurrentFolderActions","DragOverlaySelection","SortByPill","ToggleViewButtons","Gutter","ListHeader","ListBulkUploadButton","ListCreateNewDocInFolderButton","ByFolderPill","DefaultListPill","TrashPill","NoListResults","SearchBar","useStepNav","useConfig","useEditDepth","FolderProvider","useFolder","usePreferences","useRouteCache","useRouteTransition","useTranslation","useWindowInfo","ListSelection","baseClass","DefaultCollectionFolderView","allCollectionFolderSlugs","folderCollectionSlugs","allowCreateCollectionSlugs","baseFolderPath","breadcrumbs","documents","folderFieldName","folderID","FolderResultsComponent","search","sort","subfolders","restOfProps","_jsx","CollectionFolderViewInContext","props","$","AfterFolderList","AfterFolderListTable","BeforeFolderList","BeforeFolderListTable","collectionSlug","Description","disableBulkDelete","disableBulkEdit","viewPreference","config","getEntityConfig","i18n","t","drawerDepth","setStepNav","setPreference","dragOverlayItem","folderCollectionConfig","folderCollectionSlug","folderType","getSelectedItems","moveToFolder","refineFolderData","selectedItemKeys","setIsDragging","router","startRouteTransition","clearRouteCache","collectionConfig","labels","upload","isUploadCollection","Boolean","isBulkUploadEnabled","bulkUpload","breakpoints","t0","s","smallBreak","t1","event","over","data","current","type","itemsToMove","toFolderID","id","t2","error","console","onDragEnd","handleSetViewType","view","plural","t3","folders","routes","admin","useEffect","length","label","_jsxs","className","children","filter","join","onClick","push","adminRoute","path","slug","map","crumb","crumbIndex","name","totalDocsAndSubfolders","t4","search_0","query","updateURL","t5","size","item","selectedCount","DndEventListener","Actions","folderAssignedCollections","Array","isArray","viewType","trash","AfterListHeaderContent","title","TitleActions","buttonLabel","collectionSlugs","onCreateSuccess","slugPrefix","hasCreatePermission","includes","activeView","setActiveView","onSearchChange","searchQueryParam","singular","toLowerCase","Message","onDragCancel","onDragStart"],"sources":["../../../src/views/CollectionFolder/index.tsx"],"sourcesContent":["'use client'\n\nimport type { DragEndEvent } from '@dnd-kit/core'\nimport type { FolderListViewClientProps } from 'payload'\n\nimport { useDndMonitor } from '@dnd-kit/core'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { DroppableBreadcrumb } from '../../elements/FolderView/Breadcrumbs/index.js'\nimport { ColoredFolderIcon } from '../../elements/FolderView/ColoredFolderIcon/index.js'\nimport { CurrentFolderActions } from '../../elements/FolderView/CurrentFolderActions/index.js'\nimport { DragOverlaySelection } from '../../elements/FolderView/DragOverlaySelection/index.js'\nimport { SortByPill } from '../../elements/FolderView/SortByPill/index.js'\nimport { ToggleViewButtons } from '../../elements/FolderView/ToggleViewButtons/index.js'\nimport { Gutter } from '../../elements/Gutter/index.js'\nimport { ListHeader } from '../../elements/ListHeader/index.js'\nimport {\n ListBulkUploadButton,\n ListCreateNewDocInFolderButton,\n} from '../../elements/ListHeader/TitleActions/index.js'\nimport { ByFolderPill } from '../../elements/ListHeaderTabs/ByFolderPill.js'\nimport { DefaultListPill } from '../../elements/ListHeaderTabs/DefaultListPill.js'\nimport { TrashPill } from '../../elements/ListHeaderTabs/TrashPill.js'\nimport { NoListResults } from '../../elements/NoListResults/index.js'\nimport { SearchBar } from '../../elements/SearchBar/index.js'\nimport { useStepNav } from '../../elements/StepNav/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { FolderProvider, useFolder } from '../../providers/Folders/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport './index.scss'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useWindowInfo } from '../../providers/WindowInfo/index.js'\nimport { ListSelection } from './ListSelection/index.js'\n\nconst baseClass = 'collection-folder-list'\n\nexport function DefaultCollectionFolderView({\n allCollectionFolderSlugs: folderCollectionSlugs,\n allowCreateCollectionSlugs,\n baseFolderPath,\n breadcrumbs,\n documents,\n folderFieldName,\n folderID,\n FolderResultsComponent,\n search,\n sort,\n subfolders,\n ...restOfProps\n}: FolderListViewClientProps) {\n return (\n <FolderProvider\n allCollectionFolderSlugs={folderCollectionSlugs}\n allowCreateCollectionSlugs={allowCreateCollectionSlugs}\n baseFolderPath={baseFolderPath}\n breadcrumbs={breadcrumbs}\n documents={documents}\n folderFieldName={folderFieldName}\n folderID={folderID}\n FolderResultsComponent={FolderResultsComponent}\n search={search}\n sort={sort}\n subfolders={subfolders}\n >\n <CollectionFolderViewInContext {...restOfProps} />\n </FolderProvider>\n )\n}\n\ntype CollectionFolderViewInContextProps = Omit<\n FolderListViewClientProps,\n | 'allCollectionFolderSlugs'\n | 'allowCreateCollectionSlugs'\n | 'baseFolderPath'\n | 'breadcrumbs'\n | 'documents'\n | 'folderFieldName'\n | 'folderID'\n | 'FolderResultsComponent'\n | 'subfolders'\n>\n\nfunction CollectionFolderViewInContext(props: CollectionFolderViewInContextProps) {\n const {\n AfterFolderList,\n AfterFolderListTable,\n BeforeFolderList,\n BeforeFolderListTable,\n collectionSlug,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n search,\n viewPreference,\n } = props\n\n const { config, getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n const drawerDepth = useEditDepth()\n const { setStepNav } = useStepNav()\n const { setPreference } = usePreferences()\n const {\n allowCreateCollectionSlugs,\n breadcrumbs,\n documents,\n dragOverlayItem,\n folderCollectionConfig,\n folderCollectionSlug,\n FolderResultsComponent,\n folderType,\n getSelectedItems,\n moveToFolder,\n refineFolderData,\n selectedItemKeys,\n setIsDragging,\n subfolders,\n } = useFolder()\n\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n const { clearRouteCache } = useRouteCache()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { labels, upload } = collectionConfig\n const isUploadCollection = Boolean(upload)\n const isBulkUploadEnabled = isUploadCollection && collectionConfig.upload.bulkUpload\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const onDragEnd = React.useCallback(\n async (event: DragEndEvent) => {\n if (!event.over) {\n return\n }\n\n if (event.over.data.current.type === 'folder' && 'id' in event.over.data.current) {\n try {\n await moveToFolder({\n itemsToMove: getSelectedItems(),\n toFolderID: event.over.data.current.id,\n })\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error moving items:', error)\n }\n\n clearRouteCache()\n }\n },\n [moveToFolder, getSelectedItems, clearRouteCache],\n )\n\n const handleSetViewType = React.useCallback(\n async (view: 'grid' | 'list') => {\n await setPreference(`${collectionSlug}-collection-folder`, {\n viewPreference: view,\n })\n clearRouteCache()\n },\n [collectionSlug, setPreference, clearRouteCache],\n )\n\n React.useEffect(() => {\n if (!drawerDepth) {\n setStepNav([\n !breadcrumbs.length\n ? {\n label: (\n <div className={`${baseClass}__step-nav-icon-label`} key=\"root\">\n <ColoredFolderIcon />\n {getTranslation(labels?.plural, i18n)}\n </div>\n ),\n }\n : {\n label: (\n <DroppableBreadcrumb\n className={[\n `${baseClass}__step-nav-droppable`,\n `${baseClass}__step-nav-icon-label`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={null}\n key=\"root\"\n onClick={() => {\n startRouteTransition(() => {\n if (config.folders) {\n router.push(\n formatAdminURL({\n adminRoute: config.routes.admin,\n path: `/collections/${collectionSlug}/${config.folders.slug}`,\n }),\n )\n }\n })\n }}\n >\n <ColoredFolderIcon />\n {getTranslation(labels?.plural, i18n)}\n </DroppableBreadcrumb>\n ),\n },\n ...breadcrumbs.map((crumb, crumbIndex) => {\n return {\n label:\n crumbIndex === breadcrumbs.length - 1 ? (\n crumb.name\n ) : (\n <DroppableBreadcrumb\n className={`${baseClass}__step-nav-droppable`}\n id={crumb.id}\n key={crumb.id}\n onClick={() => {\n startRouteTransition(() => {\n if (config.folders) {\n router.push(\n formatAdminURL({\n adminRoute: config.routes.admin,\n path: `/collections/${collectionSlug}/${config.folders.slug}/${crumb.id}`,\n }),\n )\n }\n })\n }}\n >\n {crumb.name}\n </DroppableBreadcrumb>\n ),\n }\n }),\n ])\n }\n }, [\n breadcrumbs,\n collectionSlug,\n config.folders,\n config.routes.admin,\n drawerDepth,\n i18n,\n labels?.plural,\n router,\n setStepNav,\n startRouteTransition,\n ])\n\n const totalDocsAndSubfolders = documents.length + subfolders.length\n\n return (\n <Fragment>\n <DndEventListener onDragEnd={onDragEnd} setIsDragging={setIsDragging} />\n\n <div className={`${baseClass} ${baseClass}--${collectionSlug}`}>\n {BeforeFolderList}\n <Gutter className={`${baseClass}__wrap`}>\n <ListHeader\n Actions={[\n !smallBreak && (\n <ListSelection\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={collectionConfig.disableBulkEdit ?? disableBulkEdit}\n folderAssignedCollections={\n Array.isArray(folderType) ? folderType : [collectionSlug]\n }\n key=\"list-selection\"\n />\n ),\n config.folders && collectionConfig.folders && (\n <Fragment key=\"list-header-folder-view-buttons\">\n <DefaultListPill\n collectionConfig={collectionConfig}\n key=\"list-header-default-button\"\n viewType=\"folders\"\n />\n <ByFolderPill\n collectionConfig={collectionConfig}\n folderCollectionSlug={folderCollectionSlug}\n key=\"list-header-by-folder-button\"\n viewType=\"folders\"\n />\n </Fragment>\n ),\n collectionConfig.trash && (\n <TrashPill\n collectionConfig={collectionConfig}\n key=\"list-header-trash-button\"\n viewType=\"folders\"\n />\n ),\n ].filter(Boolean)}\n AfterListHeaderContent={Description}\n title={getTranslation(labels?.plural, i18n)}\n TitleActions={[\n allowCreateCollectionSlugs.length && (\n <ListCreateNewDocInFolderButton\n buttonLabel={t('general:createNew')}\n collectionSlugs={allowCreateCollectionSlugs}\n folderAssignedCollections={\n Array.isArray(folderType) ? folderType : [collectionSlug]\n }\n key=\"create-new-button\"\n onCreateSuccess={clearRouteCache}\n slugPrefix=\"create-document--header-pill\"\n />\n ),\n <ListBulkUploadButton\n collectionSlug={collectionSlug}\n hasCreatePermission={allowCreateCollectionSlugs.includes(collectionSlug)}\n isBulkUploadEnabled={isBulkUploadEnabled}\n key=\"bulk-upload-button\"\n />,\n ].filter(Boolean)}\n />\n <SearchBar\n Actions={[\n <SortByPill key=\"sort-by-pill\" />,\n <ToggleViewButtons\n activeView={viewPreference}\n key=\"toggle-view-buttons\"\n setActiveView={handleSetViewType}\n />,\n <CurrentFolderActions key=\"current-folder-actions\" />,\n ].filter(Boolean)}\n label={t('general:searchBy', {\n label: t('general:name'),\n })}\n onSearchChange={(search) => refineFolderData({ query: { search }, updateURL: true })}\n searchQueryParam={search}\n />\n {BeforeFolderListTable}\n {totalDocsAndSubfolders > 0 && FolderResultsComponent}\n {totalDocsAndSubfolders === 0 && (\n <NoListResults\n Actions={[\n allowCreateCollectionSlugs.includes(folderCollectionSlug) && (\n <ListCreateNewDocInFolderButton\n buttonLabel={`${t('general:create')} ${getTranslation(folderCollectionConfig.labels?.singular, i18n).toLowerCase()}`}\n collectionSlugs={[folderCollectionConfig.slug]}\n folderAssignedCollections={\n Array.isArray(folderType) ? folderType : [collectionSlug]\n }\n key=\"create-folder\"\n onCreateSuccess={clearRouteCache}\n slugPrefix=\"create-folder--no-results\"\n />\n ),\n allowCreateCollectionSlugs.includes(collectionSlug) && (\n <ListCreateNewDocInFolderButton\n buttonLabel={`${t('general:create')} ${t('general:document').toLowerCase()}`}\n collectionSlugs={[collectionSlug]}\n folderAssignedCollections={\n Array.isArray(folderType) ? folderType : [collectionSlug]\n }\n key=\"create-document\"\n onCreateSuccess={clearRouteCache}\n slugPrefix=\"create-document--no-results\"\n />\n ),\n ].filter(Boolean)}\n Message={\n <p>\n {i18n.t('general:noResults', {\n label: `${getTranslation(labels?.plural, i18n)} ${t('general:or').toLowerCase()} ${getTranslation(\n folderCollectionConfig.labels?.plural,\n i18n,\n )}`,\n })}\n </p>\n }\n />\n )}\n {AfterFolderListTable}\n </Gutter>\n {AfterFolderList}\n </div>\n {selectedItemKeys.size > 0 && dragOverlayItem && (\n <DragOverlaySelection item={dragOverlayItem} selectedCount={selectedItemKeys.size} />\n )}\n </Fragment>\n )\n}\n\nfunction DndEventListener({ onDragEnd, setIsDragging }) {\n useDndMonitor({\n onDragCancel() {\n setIsDragging(false)\n },\n onDragEnd(event) {\n setIsDragging(false)\n onDragEnd(event)\n },\n onDragStart() {\n setIsDragging(true)\n },\n })\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}