@payloadcms/ui 3.55.0-internal.df60e35 → 3.55.0

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 (104) hide show
  1. package/dist/elements/AppHeader/index.scss +1 -0
  2. package/dist/elements/DefaultListViewTabs/index.d.ts +12 -0
  3. package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -0
  4. package/dist/elements/DefaultListViewTabs/index.js +161 -0
  5. package/dist/elements/DefaultListViewTabs/index.js.map +1 -0
  6. package/dist/elements/{ListHeaderTabs → DefaultListViewTabs}/index.scss +1 -1
  7. package/dist/elements/DocumentDrawer/Provider.d.ts +2 -1
  8. package/dist/elements/DocumentDrawer/Provider.d.ts.map +1 -1
  9. package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
  10. package/dist/elements/FieldSelect/reduceFieldOptions.js +1 -1
  11. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  12. package/dist/elements/ListControls/index.d.ts.map +1 -1
  13. package/dist/elements/ListControls/index.js +69 -78
  14. package/dist/elements/ListControls/index.js.map +1 -1
  15. package/dist/elements/ListControls/index.scss +2 -82
  16. package/dist/elements/SearchBar/index.d.ts +2 -3
  17. package/dist/elements/SearchBar/index.d.ts.map +1 -1
  18. package/dist/elements/SearchBar/index.js +2 -3
  19. package/dist/elements/SearchBar/index.js.map +1 -1
  20. package/dist/elements/SearchBar/index.scss +56 -7
  21. package/dist/elements/SearchFilter/index.d.ts +2 -33
  22. package/dist/elements/SearchFilter/index.d.ts.map +1 -1
  23. package/dist/elements/SearchFilter/index.js +7 -5
  24. package/dist/elements/SearchFilter/index.js.map +1 -1
  25. package/dist/elements/SearchFilter/types.d.ts +33 -0
  26. package/dist/elements/SearchFilter/types.d.ts.map +1 -0
  27. package/dist/elements/SearchFilter/types.js +2 -0
  28. package/dist/elements/SearchFilter/types.js.map +1 -0
  29. package/dist/elements/Status/index.d.ts.map +1 -1
  30. package/dist/elements/Status/index.js +1 -1
  31. package/dist/elements/Status/index.js.map +1 -1
  32. package/dist/exports/client/{CodeEditor-MIIBUJZ4.js → CodeEditor-URFJPG6I.js} +2 -2
  33. package/dist/exports/client/chunk-KPQQ5IUL.js +26 -0
  34. package/dist/exports/client/{chunk-Z6O2JA43.js.map → chunk-KPQQ5IUL.js.map} +3 -3
  35. package/dist/exports/client/index.js +12 -12
  36. package/dist/exports/client/index.js.map +4 -4
  37. package/dist/exports/rsc/index.d.ts +1 -0
  38. package/dist/exports/rsc/index.d.ts.map +1 -1
  39. package/dist/exports/rsc/index.js +1 -0
  40. package/dist/exports/rsc/index.js.map +1 -1
  41. package/dist/fields/Blocks/index.d.ts.map +1 -1
  42. package/dist/fields/Blocks/index.js.map +1 -1
  43. package/dist/fields/Join/index.js +1 -1
  44. package/dist/fields/Join/index.js.map +1 -1
  45. package/dist/forms/Form/types.d.ts +6 -3
  46. package/dist/forms/Form/types.d.ts.map +1 -1
  47. package/dist/forms/Form/types.js.map +1 -1
  48. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  49. package/dist/forms/RenderFields/index.js +1 -1
  50. package/dist/forms/RenderFields/index.js.map +1 -1
  51. package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
  52. package/dist/forms/RowLabel/Context/index.js +17 -31
  53. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  54. package/dist/providers/Auth/index.d.ts +2 -1
  55. package/dist/providers/Auth/index.d.ts.map +1 -1
  56. package/dist/providers/Auth/index.js +74 -83
  57. package/dist/providers/Auth/index.js.map +1 -1
  58. package/dist/providers/Config/index.d.ts.map +1 -1
  59. package/dist/providers/Config/index.js +6 -3
  60. package/dist/providers/Config/index.js.map +1 -1
  61. package/dist/styles.css +1 -1
  62. package/dist/utilities/buildFormState.js +2 -1
  63. package/dist/utilities/buildFormState.js.map +1 -1
  64. package/dist/utilities/buildTableState.d.ts.map +1 -1
  65. package/dist/utilities/buildTableState.js +12 -4
  66. package/dist/utilities/buildTableState.js.map +1 -1
  67. package/dist/utilities/getClientConfig.d.ts +2 -7
  68. package/dist/utilities/getClientConfig.d.ts.map +1 -1
  69. package/dist/utilities/getClientConfig.js +19 -8
  70. package/dist/utilities/getClientConfig.js.map +1 -1
  71. package/dist/utilities/getColumns.d.ts +10 -0
  72. package/dist/utilities/getColumns.d.ts.map +1 -0
  73. package/dist/utilities/getColumns.js +36 -0
  74. package/dist/utilities/getColumns.js.map +1 -0
  75. package/dist/utilities/renderTable.d.ts +3 -3
  76. package/dist/utilities/renderTable.d.ts.map +1 -1
  77. package/dist/utilities/renderTable.js +2 -11
  78. package/dist/utilities/renderTable.js.map +1 -1
  79. package/dist/views/BrowseByFolder/index.js +1 -1
  80. package/dist/views/BrowseByFolder/index.js.map +1 -1
  81. package/dist/views/CollectionFolder/index.d.ts.map +1 -1
  82. package/dist/views/CollectionFolder/index.js +5 -15
  83. package/dist/views/CollectionFolder/index.js.map +1 -1
  84. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  85. package/dist/views/Edit/Auth/index.js +1 -1
  86. package/dist/views/Edit/Auth/index.js.map +1 -1
  87. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  88. package/dist/views/List/ListHeader/index.js +5 -13
  89. package/dist/views/List/ListHeader/index.js.map +1 -1
  90. package/package.json +5 -5
  91. package/dist/elements/ListHeaderTabs/ByFolderPill.d.ts +0 -10
  92. package/dist/elements/ListHeaderTabs/ByFolderPill.d.ts.map +0 -1
  93. package/dist/elements/ListHeaderTabs/ByFolderPill.js +0 -70
  94. package/dist/elements/ListHeaderTabs/ByFolderPill.js.map +0 -1
  95. package/dist/elements/ListHeaderTabs/DefaultListPill.d.ts +0 -9
  96. package/dist/elements/ListHeaderTabs/DefaultListPill.d.ts.map +0 -1
  97. package/dist/elements/ListHeaderTabs/DefaultListPill.js +0 -68
  98. package/dist/elements/ListHeaderTabs/DefaultListPill.js.map +0 -1
  99. package/dist/elements/ListHeaderTabs/TrashPill.d.ts +0 -6
  100. package/dist/elements/ListHeaderTabs/TrashPill.d.ts.map +0 -1
  101. package/dist/elements/ListHeaderTabs/TrashPill.js +0 -53
  102. package/dist/elements/ListHeaderTabs/TrashPill.js.map +0 -1
  103. package/dist/exports/client/chunk-Z6O2JA43.js +0 -26
  104. /package/dist/exports/client/{CodeEditor-MIIBUJZ4.js.map → CodeEditor-URFJPG6I.js.map} +0 -0
@@ -103,7 +103,8 @@ export const buildFormState = async args => {
103
103
  config: getClientConfig({
104
104
  config,
105
105
  i18n,
106
- importMap: req.payload.importMap
106
+ importMap: req.payload.importMap,
107
+ user: req.user
107
108
  }),
108
109
  globalSlug,
109
110
  i18n,
@@ -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","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 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 form state but no data, deduce data from that form state, e.g. on initial load\n // Otherwise, use the incoming data as the source of truth, e.g. on subsequent saves\n const data = incomingData || reduceFieldsToValues(formState, true)\n\n let documentData = undefined\n\n if (documentFormState) {\n documentData = reduceFieldsToValues(documentFormState, true)\n }\n\n let blockData = initialBlockData\n\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 // Ensure data.id is present during form state requests, where the data\n // is passed from the client as an argument, without the ID\n if (!data.id && id) {\n data.id = id\n }\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
+ {"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 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, user: req.user }),\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 form state but no data, deduce data from that form state, e.g. on initial load\n // Otherwise, use the incoming data as the source of truth, e.g. on subsequent saves\n const data = incomingData || reduceFieldsToValues(formState, true)\n\n let documentData = undefined\n\n if (documentFormState) {\n documentData = reduceFieldsToValues(documentFormState, true)\n }\n\n let blockData = initialBlockData\n\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 // Ensure data.id is present during form state requests, where the data\n // is passed from the client as an argument, without the ID\n if (!data.id && id) {\n data.id = id\n }\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":"buildTableState.d.ts","sourceRoot":"","sources":["../../src/utilities/buildTableState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EAEnB,YAAY,EACZ,qBAAqB,EACrB,MAAM,EACN,WAAW,EACX,aAAa,EAEb,cAAc,EAEf,MAAM,SAAS,CAAA;AAShB,KAAK,4BAA4B,GAAG;IAClC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,IAAI,EAAE,aAAa,CAAA;IACnB,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,WAAW,EAAE,qBAAqB,CAAA;IAClC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IAC7C,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;CACvB,CAAA;AAED,KAAK,0BAA0B,GAAG;IAChC,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,eAAe,CAAC,EAAE,KAAK,CAAA;IACvB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,CACA;IACE,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,WAAW,CACd,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,0BAA0B,GAAG,4BAA4B,CAAA;AAE7F,eAAO,MAAM,sBAAsB,EAAE,cAAc,CACjD,mBAAmB,EACnB,OAAO,CAAC,qBAAqB,CAAC,CAsB/B,CAAA"}
1
+ {"version":3,"file":"buildTableState.d.ts","sourceRoot":"","sources":["../../src/utilities/buildTableState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EAEnB,YAAY,EACZ,qBAAqB,EACrB,MAAM,EACN,WAAW,EACX,aAAa,EAEb,cAAc,EAEf,MAAM,SAAS,CAAA;AAUhB,KAAK,4BAA4B,GAAG;IAClC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,IAAI,EAAE,aAAa,CAAA;IACnB,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,WAAW,EAAE,qBAAqB,CAAA;IAClC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IAC7C,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;CACvB,CAAA;AAED,KAAK,0BAA0B,GAAG;IAChC,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,eAAe,CAAC,EAAE,KAAK,CAAA;IACvB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,CACA;IACE,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,WAAW,CACd,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,0BAA0B,GAAG,4BAA4B,CAAA;AAE7F,eAAO,MAAM,sBAAsB,EAAE,cAAc,CACjD,mBAAmB,EACnB,OAAO,CAAC,qBAAqB,CAAC,CAsB/B,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { APIError, formatErrors } from 'payload';
2
2
  import { isNumber } from 'payload/shared';
3
3
  import { getClientConfig } from './getClientConfig.js';
4
+ import { getColumns } from './getColumns.js';
4
5
  import { renderFilters, renderTable } from './renderTable.js';
5
6
  import { upsertPreferences } from './upsertPreferences.js';
6
7
  export const buildTableStateHandler = async args => {
@@ -29,7 +30,7 @@ export const buildTableStateHandler = async args => {
29
30
  const buildTableState = async args => {
30
31
  const {
31
32
  collectionSlug,
32
- columns,
33
+ columns: columnsFromArgs,
33
34
  data: dataFromArgs,
34
35
  enableRowSelections,
35
36
  orderableFieldName,
@@ -79,7 +80,8 @@ const buildTableState = async args => {
79
80
  const clientConfig = getClientConfig({
80
81
  config,
81
82
  i18n,
82
- importMap: payload.importMap
83
+ importMap: payload.importMap,
84
+ user
83
85
  });
84
86
  let collectionConfig;
85
87
  let clientCollectionConfig;
@@ -93,7 +95,7 @@ const buildTableState = async args => {
93
95
  key: Array.isArray(collectionSlug) ? `${parent.collectionSlug}-${parent.joinPath}` : `collection-${collectionSlug}`,
94
96
  req,
95
97
  value: {
96
- columns,
98
+ columns: columnsFromArgs,
97
99
  limit: isNumber(query?.limit) ? Number(query.limit) : undefined,
98
100
  sort: query?.sort
99
101
  }
@@ -165,7 +167,13 @@ const buildTableState = async args => {
165
167
  clientConfig,
166
168
  collectionConfig,
167
169
  collections: Array.isArray(collectionSlug) ? collectionSlug : undefined,
168
- columns,
170
+ columns: getColumns({
171
+ clientConfig,
172
+ collectionConfig: clientCollectionConfig,
173
+ collectionSlug,
174
+ columns: columnsFromArgs,
175
+ i18n: req.i18n
176
+ }),
169
177
  data,
170
178
  enableRowSelections,
171
179
  i18n: req.i18n,
@@ -1 +1 @@
1
- {"version":3,"file":"buildTableState.js","names":["APIError","formatErrors","isNumber","getClientConfig","renderFilters","renderTable","upsertPreferences","buildTableStateHandler","args","req","res","buildTableState","err","payload","logger","error","msg","message","collectionSlug","columns","data","dataFromArgs","enableRowSelections","orderableFieldName","parent","query","renderRowTypes","i18n","config","user","tableAppearance","incomingUserSlug","collection","adminUserSlug","admin","adminAccessFunction","collections","access","canAccessAdmin","Error","hasUsers","find","depth","limit","pagination","docs","length","clientConfig","importMap","collectionConfig","clientCollectionConfig","Array","isArray","slug","collectionPreferences","key","joinPath","value","Number","undefined","sort","select","currentSelectRef","segments","split","i","joinQuery","where","isNaN","page","parentDoc","findByID","id","joins","overrideAccess","draft","locale","columnState","Table","useAsTitle","renderedFilters","fields","preferences","state"],"sources":["../../src/utilities/buildTableState.ts"],"sourcesContent":["import type {\n BuildTableStateArgs,\n ClientCollectionConfig,\n ClientConfig,\n CollectionPreferences,\n Column,\n ErrorResult,\n PaginatedDocs,\n SanitizedCollectionConfig,\n ServerFunction,\n Where,\n} from 'payload'\n\nimport { APIError, formatErrors } from 'payload'\nimport { isNumber } from 'payload/shared'\n\nimport { getClientConfig } from './getClientConfig.js'\nimport { renderFilters, renderTable } from './renderTable.js'\nimport { upsertPreferences } from './upsertPreferences.js'\n\ntype BuildTableStateSuccessResult = {\n clientConfig?: ClientConfig\n data: PaginatedDocs\n errors?: never\n preferences: CollectionPreferences\n renderedFilters: Map<string, React.ReactNode>\n state: Column[]\n Table: React.ReactNode\n}\n\ntype BuildTableStateErrorResult = {\n data?: any\n renderedFilters?: never\n state?: never\n Table?: never\n} & (\n | {\n message: string\n }\n | ErrorResult\n)\n\nexport type BuildTableStateResult = BuildTableStateErrorResult | BuildTableStateSuccessResult\n\nexport const buildTableStateHandler: ServerFunction<\n BuildTableStateArgs,\n Promise<BuildTableStateResult>\n> = async (args) => {\n const { req } = args\n\n try {\n const res = await buildTableState(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 return null\n }\n\n return formatErrors(err)\n }\n}\n\nconst buildTableState = async (\n args: BuildTableStateArgs,\n): Promise<BuildTableStateSuccessResult> => {\n const {\n collectionSlug,\n columns,\n data: dataFromArgs,\n enableRowSelections,\n orderableFieldName,\n parent,\n query,\n renderRowTypes,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n user,\n },\n tableAppearance,\n } = args\n\n const incomingUserSlug = user?.collection\n\n const adminUserSlug = config.admin.user\n\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = 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\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 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 clientConfig = getClientConfig({\n config,\n i18n,\n importMap: payload.importMap,\n })\n\n let collectionConfig: SanitizedCollectionConfig\n let clientCollectionConfig: ClientCollectionConfig\n\n if (!Array.isArray(collectionSlug)) {\n if (req.payload.collections[collectionSlug]) {\n collectionConfig = req.payload.collections[collectionSlug].config\n clientCollectionConfig = clientConfig.collections.find(\n (collection) => collection.slug === collectionSlug,\n )\n }\n }\n\n const collectionPreferences = await upsertPreferences<CollectionPreferences>({\n key: Array.isArray(collectionSlug)\n ? `${parent.collectionSlug}-${parent.joinPath}`\n : `collection-${collectionSlug}`,\n req,\n value: {\n columns,\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\n sort: query?.sort as string,\n },\n })\n\n let data: PaginatedDocs = dataFromArgs\n\n // lookup docs, if desired, i.e. within `join` field which initialize with `depth: 0`\n\n if (!data?.docs || query) {\n if (Array.isArray(collectionSlug)) {\n if (!parent) {\n throw new APIError('Unexpected array of collectionSlug, parent must be provided')\n }\n\n const select = {}\n let currentSelectRef = select\n\n const segments = parent.joinPath.split('.')\n\n for (let i = 0; i < segments.length; i++) {\n currentSelectRef[segments[i]] = i === segments.length - 1 ? true : {}\n currentSelectRef = currentSelectRef[segments[i]]\n }\n\n const joinQuery: { limit?: number; page?: number; sort?: string; where?: Where } = {\n sort: query?.sort as string,\n where: query?.where,\n }\n\n if (query) {\n if (!Number.isNaN(Number(query.limit))) {\n joinQuery.limit = Number(query.limit)\n }\n\n if (!Number.isNaN(Number(query.page))) {\n joinQuery.limit = Number(query.limit)\n }\n }\n\n let parentDoc = await payload.findByID({\n id: parent.id,\n collection: parent.collectionSlug,\n depth: 1,\n joins: {\n [parent.joinPath]: joinQuery,\n },\n overrideAccess: false,\n select,\n user: req.user,\n })\n\n for (let i = 0; i < segments.length; i++) {\n if (i === segments.length - 1) {\n data = parentDoc[segments[i]]\n } else {\n parentDoc = parentDoc[segments[i]]\n }\n }\n } else {\n data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n limit: query?.limit,\n locale: req.locale,\n overrideAccess: false,\n page: query?.page,\n sort: query?.sort,\n user: req.user,\n where: query?.where,\n })\n }\n }\n\n const { columnState, Table } = renderTable({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collections: Array.isArray(collectionSlug) ? collectionSlug : undefined,\n columns,\n data,\n enableRowSelections,\n i18n: req.i18n,\n orderableFieldName,\n payload,\n query,\n renderRowTypes,\n tableAppearance,\n useAsTitle: Array.isArray(collectionSlug)\n ? payload.collections[collectionSlug[0]]?.config?.admin?.useAsTitle\n : collectionConfig?.admin?.useAsTitle,\n })\n\n let renderedFilters\n\n if (collectionConfig) {\n renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap)\n }\n\n return {\n data,\n preferences: collectionPreferences,\n renderedFilters,\n state: columnState,\n Table,\n }\n}\n"],"mappings":"AAaA,SAASA,QAAQ,EAAEC,YAAY,QAAQ;AACvC,SAASC,QAAQ,QAAQ;AAEzB,SAASC,eAAe,QAAQ;AAChC,SAASC,aAAa,EAAEC,WAAW,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AA0BlC,OAAO,MAAMC,sBAAA,GAGT,MAAOC,IAAA;EACT,MAAM;IAAEC;EAAG,CAAE,GAAGD,IAAA;EAEhB,IAAI;IACF,MAAME,GAAA,GAAM,MAAMC,eAAA,CAAgBH,IAAA;IAClC,OAAOE,GAAA;EACT,EAAE,OAAOE,GAAA,EAAK;IACZH,GAAA,CAAII,OAAO,CAACC,MAAM,CAACC,KAAK,CAAC;MAAEH,GAAA;MAAKI,GAAA,EAAK;IAAyC;IAE9E,IAAIJ,GAAA,CAAIK,OAAO,KAAK,8CAA8C;MAChE,OAAO;QACLA,OAAA,EAASL,GAAA,CAAIK;MACf;IACF;IAEA,IAAIL,GAAA,CAAIK,OAAO,KAAK,gBAAgB;MAClC,OAAO;IACT;IAEA,OAAOhB,YAAA,CAAaW,GAAA;EACtB;AACF;AAEA,MAAMD,eAAA,GAAkB,MACtBH,IAAA;EAEA,MAAM;IACJU,cAAc;IACdC,OAAO;IACPC,IAAA,EAAMC,YAAY;IAClBC,mBAAmB;IACnBC,kBAAkB;IAClBC,MAAM;IACNC,KAAK;IACLC,cAAc;IACdjB,GAAG;IACHA,GAAA,EAAK;MACHkB,IAAI;MACJd,OAAO;MACPA,OAAA,EAAS;QAAEe;MAAM,CAAE;MACnBC;IAAI,CACL;IACDC;EAAe,CAChB,GAAGtB,IAAA;EAEJ,MAAMuB,gBAAA,GAAmBF,IAAA,EAAMG,UAAA;EAE/B,MAAMC,aAAA,GAAgBL,MAAA,CAAOM,KAAK,CAACL,IAAI;EAEvC;EACA,IAAIE,gBAAA,EAAkB;IACpB,MAAMI,mBAAA,GAAsBtB,OAAA,CAAQuB,WAAW,CAACL,gBAAA,CAAiB,CAACH,MAAM,CAACS,MAAM,EAAEH,KAAA;IAEjF;IACA,IAAIC,mBAAA,EAAqB;MACvB,MAAMG,cAAA,GAAiB,MAAMH,mBAAA,CAAoB;QAAE1B;MAAI;MAEvD,IAAI,CAAC6B,cAAA,EAAgB;QACnB,MAAM,IAAIC,KAAA,CAAM;MAClB;MAEA;IACF,OAAO,IAAIN,aAAA,KAAkBF,gBAAA,EAAkB;MAC7C,MAAM,IAAIQ,KAAA,CAAM;IAClB;EACF,OAAO;IACL,MAAMC,QAAA,GAAW,MAAM3B,OAAA,CAAQ4B,IAAI,CAAC;MAClCT,UAAA,EAAYC,aAAA;MACZS,KAAA,EAAO;MACPC,KAAA,EAAO;MACPC,UAAA,EAAY;IACd;IAEA;IACA,IAAIJ,QAAA,CAASK,IAAI,CAACC,MAAM,EAAE;MACxB,MAAM,IAAIP,KAAA,CAAM;IAClB;EACF;EAEA,MAAMQ,YAAA,GAAe5C,eAAA,CAAgB;IACnCyB,MAAA;IACAD,IAAA;IACAqB,SAAA,EAAWnC,OAAA,CAAQmC;EACrB;EAEA,IAAIC,gBAAA;EACJ,IAAIC,sBAAA;EAEJ,IAAI,CAACC,KAAA,CAAMC,OAAO,CAAClC,cAAA,GAAiB;IAClC,IAAIT,GAAA,CAAII,OAAO,CAACuB,WAAW,CAAClB,cAAA,CAAe,EAAE;MAC3C+B,gBAAA,GAAmBxC,GAAA,CAAII,OAAO,CAACuB,WAAW,CAAClB,cAAA,CAAe,CAACU,MAAM;MACjEsB,sBAAA,GAAyBH,YAAA,CAAaX,WAAW,CAACK,IAAI,CACnDT,UAAA,IAAeA,UAAA,CAAWqB,IAAI,KAAKnC,cAAA;IAExC;EACF;EAEA,MAAMoC,qBAAA,GAAwB,MAAMhD,iBAAA,CAAyC;IAC3EiD,GAAA,EAAKJ,KAAA,CAAMC,OAAO,CAAClC,cAAA,IACf,GAAGM,MAAA,CAAON,cAAc,IAAIM,MAAA,CAAOgC,QAAQ,EAAE,GAC7C,cAActC,cAAA,EAAgB;IAClCT,GAAA;IACAgD,KAAA,EAAO;MACLtC,OAAA;MACAwB,KAAA,EAAOzC,QAAA,CAASuB,KAAA,EAAOkB,KAAA,IAASe,MAAA,CAAOjC,KAAA,CAAMkB,KAAK,IAAIgB,SAAA;MACtDC,IAAA,EAAMnC,KAAA,EAAOmC;IACf;EACF;EAEA,IAAIxC,IAAA,GAAsBC,YAAA;EAE1B;EAEA,IAAI,CAACD,IAAA,EAAMyB,IAAA,IAAQpB,KAAA,EAAO;IACxB,IAAI0B,KAAA,CAAMC,OAAO,CAAClC,cAAA,GAAiB;MACjC,IAAI,CAACM,MAAA,EAAQ;QACX,MAAM,IAAIxB,QAAA,CAAS;MACrB;MAEA,MAAM6D,MAAA,GAAS,CAAC;MAChB,IAAIC,gBAAA,GAAmBD,MAAA;MAEvB,MAAME,QAAA,GAAWvC,MAAA,CAAOgC,QAAQ,CAACQ,KAAK,CAAC;MAEvC,KAAK,IAAIC,CAAA,GAAI,GAAGA,CAAA,GAAIF,QAAA,CAASjB,MAAM,EAAEmB,CAAA,IAAK;QACxCH,gBAAgB,CAACC,QAAQ,CAACE,CAAA,CAAE,CAAC,GAAGA,CAAA,KAAMF,QAAA,CAASjB,MAAM,GAAG,IAAI,OAAO,CAAC;QACpEgB,gBAAA,GAAmBA,gBAAgB,CAACC,QAAQ,CAACE,CAAA,CAAE,CAAC;MAClD;MAEA,MAAMC,SAAA,GAA6E;QACjFN,IAAA,EAAMnC,KAAA,EAAOmC,IAAA;QACbO,KAAA,EAAO1C,KAAA,EAAO0C;MAChB;MAEA,IAAI1C,KAAA,EAAO;QACT,IAAI,CAACiC,MAAA,CAAOU,KAAK,CAACV,MAAA,CAAOjC,KAAA,CAAMkB,KAAK,IAAI;UACtCuB,SAAA,CAAUvB,KAAK,GAAGe,MAAA,CAAOjC,KAAA,CAAMkB,KAAK;QACtC;QAEA,IAAI,CAACe,MAAA,CAAOU,KAAK,CAACV,MAAA,CAAOjC,KAAA,CAAM4C,IAAI,IAAI;UACrCH,SAAA,CAAUvB,KAAK,GAAGe,MAAA,CAAOjC,KAAA,CAAMkB,KAAK;QACtC;MACF;MAEA,IAAI2B,SAAA,GAAY,MAAMzD,OAAA,CAAQ0D,QAAQ,CAAC;QACrCC,EAAA,EAAIhD,MAAA,CAAOgD,EAAE;QACbxC,UAAA,EAAYR,MAAA,CAAON,cAAc;QACjCwB,KAAA,EAAO;QACP+B,KAAA,EAAO;UACL,CAACjD,MAAA,CAAOgC,QAAQ,GAAGU;QACrB;QACAQ,cAAA,EAAgB;QAChBb,MAAA;QACAhC,IAAA,EAAMpB,GAAA,CAAIoB;MACZ;MAEA,KAAK,IAAIoC,CAAA,GAAI,GAAGA,CAAA,GAAIF,QAAA,CAASjB,MAAM,EAAEmB,CAAA,IAAK;QACxC,IAAIA,CAAA,KAAMF,QAAA,CAASjB,MAAM,GAAG,GAAG;UAC7B1B,IAAA,GAAOkD,SAAS,CAACP,QAAQ,CAACE,CAAA,CAAE,CAAC;QAC/B,OAAO;UACLK,SAAA,GAAYA,SAAS,CAACP,QAAQ,CAACE,CAAA,CAAE,CAAC;QACpC;MACF;IACF,OAAO;MACL7C,IAAA,GAAO,MAAMP,OAAA,CAAQ4B,IAAI,CAAC;QACxBT,UAAA,EAAYd,cAAA;QACZwB,KAAA,EAAO;QACPiC,KAAA,EAAO;QACPhC,KAAA,EAAOlB,KAAA,EAAOkB,KAAA;QACdiC,MAAA,EAAQnE,GAAA,CAAImE,MAAM;QAClBF,cAAA,EAAgB;QAChBL,IAAA,EAAM5C,KAAA,EAAO4C,IAAA;QACbT,IAAA,EAAMnC,KAAA,EAAOmC,IAAA;QACb/B,IAAA,EAAMpB,GAAA,CAAIoB,IAAI;QACdsC,KAAA,EAAO1C,KAAA,EAAO0C;MAChB;IACF;EACF;EAEA,MAAM;IAAEU,WAAW;IAAEC;EAAK,CAAE,GAAGzE,WAAA,CAAY;IACzC6C,sBAAA;IACAH,YAAA;IACAE,gBAAA;IACAb,WAAA,EAAae,KAAA,CAAMC,OAAO,CAAClC,cAAA,IAAkBA,cAAA,GAAiByC,SAAA;IAC9DxC,OAAA;IACAC,IAAA;IACAE,mBAAA;IACAK,IAAA,EAAMlB,GAAA,CAAIkB,IAAI;IACdJ,kBAAA;IACAV,OAAA;IACAY,KAAA;IACAC,cAAA;IACAI,eAAA;IACAiD,UAAA,EAAY5B,KAAA,CAAMC,OAAO,CAAClC,cAAA,IACtBL,OAAA,CAAQuB,WAAW,CAAClB,cAAc,CAAC,EAAE,CAAC,EAAEU,MAAA,EAAQM,KAAA,EAAO6C,UAAA,GACvD9B,gBAAA,EAAkBf,KAAA,EAAO6C;EAC/B;EAEA,IAAIC,eAAA;EAEJ,IAAI/B,gBAAA,EAAkB;IACpB+B,eAAA,GAAkB5E,aAAA,CAAc6C,gBAAA,CAAiBgC,MAAM,EAAExE,GAAA,CAAII,OAAO,CAACmC,SAAS;EAChF;EAEA,OAAO;IACL5B,IAAA;IACA8D,WAAA,EAAa5B,qBAAA;IACb0B,eAAA;IACAG,KAAA,EAAON,WAAA;IACPC;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"buildTableState.js","names":["APIError","formatErrors","isNumber","getClientConfig","getColumns","renderFilters","renderTable","upsertPreferences","buildTableStateHandler","args","req","res","buildTableState","err","payload","logger","error","msg","message","collectionSlug","columns","columnsFromArgs","data","dataFromArgs","enableRowSelections","orderableFieldName","parent","query","renderRowTypes","i18n","config","user","tableAppearance","incomingUserSlug","collection","adminUserSlug","admin","adminAccessFunction","collections","access","canAccessAdmin","Error","hasUsers","find","depth","limit","pagination","docs","length","clientConfig","importMap","collectionConfig","clientCollectionConfig","Array","isArray","slug","collectionPreferences","key","joinPath","value","Number","undefined","sort","select","currentSelectRef","segments","split","i","joinQuery","where","isNaN","page","parentDoc","findByID","id","joins","overrideAccess","draft","locale","columnState","Table","useAsTitle","renderedFilters","fields","preferences","state"],"sources":["../../src/utilities/buildTableState.ts"],"sourcesContent":["import type {\n BuildTableStateArgs,\n ClientCollectionConfig,\n ClientConfig,\n CollectionPreferences,\n Column,\n ErrorResult,\n PaginatedDocs,\n SanitizedCollectionConfig,\n ServerFunction,\n Where,\n} from 'payload'\n\nimport { APIError, formatErrors } from 'payload'\nimport { isNumber } from 'payload/shared'\n\nimport { getClientConfig } from './getClientConfig.js'\nimport { getColumns } from './getColumns.js'\nimport { renderFilters, renderTable } from './renderTable.js'\nimport { upsertPreferences } from './upsertPreferences.js'\n\ntype BuildTableStateSuccessResult = {\n clientConfig?: ClientConfig\n data: PaginatedDocs\n errors?: never\n preferences: CollectionPreferences\n renderedFilters: Map<string, React.ReactNode>\n state: Column[]\n Table: React.ReactNode\n}\n\ntype BuildTableStateErrorResult = {\n data?: any\n renderedFilters?: never\n state?: never\n Table?: never\n} & (\n | {\n message: string\n }\n | ErrorResult\n)\n\nexport type BuildTableStateResult = BuildTableStateErrorResult | BuildTableStateSuccessResult\n\nexport const buildTableStateHandler: ServerFunction<\n BuildTableStateArgs,\n Promise<BuildTableStateResult>\n> = async (args) => {\n const { req } = args\n\n try {\n const res = await buildTableState(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 return null\n }\n\n return formatErrors(err)\n }\n}\n\nconst buildTableState = async (\n args: BuildTableStateArgs,\n): Promise<BuildTableStateSuccessResult> => {\n const {\n collectionSlug,\n columns: columnsFromArgs,\n data: dataFromArgs,\n enableRowSelections,\n orderableFieldName,\n parent,\n query,\n renderRowTypes,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n user,\n },\n tableAppearance,\n } = args\n\n const incomingUserSlug = user?.collection\n\n const adminUserSlug = config.admin.user\n\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = 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\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 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 clientConfig = getClientConfig({\n config,\n i18n,\n importMap: payload.importMap,\n user,\n })\n\n let collectionConfig: SanitizedCollectionConfig\n let clientCollectionConfig: ClientCollectionConfig\n\n if (!Array.isArray(collectionSlug)) {\n if (req.payload.collections[collectionSlug]) {\n collectionConfig = req.payload.collections[collectionSlug].config\n clientCollectionConfig = clientConfig.collections.find(\n (collection) => collection.slug === collectionSlug,\n )\n }\n }\n\n const collectionPreferences = await upsertPreferences<CollectionPreferences>({\n key: Array.isArray(collectionSlug)\n ? `${parent.collectionSlug}-${parent.joinPath}`\n : `collection-${collectionSlug}`,\n req,\n value: {\n columns: columnsFromArgs,\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\n sort: query?.sort as string,\n },\n })\n\n let data: PaginatedDocs = dataFromArgs\n\n // lookup docs, if desired, i.e. within `join` field which initialize with `depth: 0`\n\n if (!data?.docs || query) {\n if (Array.isArray(collectionSlug)) {\n if (!parent) {\n throw new APIError('Unexpected array of collectionSlug, parent must be provided')\n }\n\n const select = {}\n let currentSelectRef = select\n\n const segments = parent.joinPath.split('.')\n\n for (let i = 0; i < segments.length; i++) {\n currentSelectRef[segments[i]] = i === segments.length - 1 ? true : {}\n currentSelectRef = currentSelectRef[segments[i]]\n }\n\n const joinQuery: { limit?: number; page?: number; sort?: string; where?: Where } = {\n sort: query?.sort as string,\n where: query?.where,\n }\n\n if (query) {\n if (!Number.isNaN(Number(query.limit))) {\n joinQuery.limit = Number(query.limit)\n }\n\n if (!Number.isNaN(Number(query.page))) {\n joinQuery.limit = Number(query.limit)\n }\n }\n\n let parentDoc = await payload.findByID({\n id: parent.id,\n collection: parent.collectionSlug,\n depth: 1,\n joins: {\n [parent.joinPath]: joinQuery,\n },\n overrideAccess: false,\n select,\n user: req.user,\n })\n\n for (let i = 0; i < segments.length; i++) {\n if (i === segments.length - 1) {\n data = parentDoc[segments[i]]\n } else {\n parentDoc = parentDoc[segments[i]]\n }\n }\n } else {\n data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n limit: query?.limit,\n locale: req.locale,\n overrideAccess: false,\n page: query?.page,\n sort: query?.sort,\n user: req.user,\n where: query?.where,\n })\n }\n }\n\n const { columnState, Table } = renderTable({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collections: Array.isArray(collectionSlug) ? collectionSlug : undefined,\n columns: getColumns({\n clientConfig,\n collectionConfig: clientCollectionConfig,\n collectionSlug,\n columns: columnsFromArgs,\n i18n: req.i18n,\n }),\n data,\n enableRowSelections,\n i18n: req.i18n,\n orderableFieldName,\n payload,\n query,\n renderRowTypes,\n tableAppearance,\n useAsTitle: Array.isArray(collectionSlug)\n ? payload.collections[collectionSlug[0]]?.config?.admin?.useAsTitle\n : collectionConfig?.admin?.useAsTitle,\n })\n\n let renderedFilters\n\n if (collectionConfig) {\n renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap)\n }\n\n return {\n data,\n preferences: collectionPreferences,\n renderedFilters,\n state: columnState,\n Table,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,3 @@
1
- import type { I18nClient } from '@payloadcms/translations';
2
- import type { ClientConfig, ImportMap, SanitizedConfig } from 'payload';
3
- export declare const getClientConfig: (args: {
4
- config: SanitizedConfig;
5
- i18n: I18nClient;
6
- importMap: ImportMap;
7
- }) => ClientConfig;
1
+ import type { ClientConfig, CreateClientConfigArgs } from 'payload';
2
+ export declare const getClientConfig: ({ config, i18n, importMap, user }: CreateClientConfigArgs) => ClientConfig;
8
3
  //# sourceMappingURL=getClientConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getClientConfig.d.ts","sourceRoot":"","sources":["../../src/utilities/getClientConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,0BAA0B,CAAA;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAiBvE,eAAO,MAAM,eAAe,SACnB;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,KAAG,YAoB9E,CAAA"}
1
+ {"version":3,"file":"getClientConfig.d.ts","sourceRoot":"","sources":["../../src/utilities/getClientConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAanE,eAAO,MAAM,eAAe,sCACU,sBAAsB,KAAG,YAgC9D,CAAA"}
@@ -1,27 +1,38 @@
1
- import { createClientConfig } from 'payload';
1
+ import { createClientConfig, createUnauthenticatedClientConfig } from 'payload';
2
2
  import { cache } from 'react';
3
3
  let cachedClientConfigs = global._payload_clientConfigs;
4
4
  if (!cachedClientConfigs) {
5
5
  cachedClientConfigs = global._payload_clientConfigs = {};
6
6
  }
7
- export const getClientConfig = cache(args => {
8
- const {
9
- config,
10
- i18n,
11
- importMap
12
- } = args;
7
+ export const getClientConfig = cache(({
8
+ config,
9
+ i18n,
10
+ importMap,
11
+ user
12
+ }) => {
13
13
  const currentLanguage = i18n.language;
14
14
  if (cachedClientConfigs[currentLanguage] && !global._payload_doNotCacheClientConfig) {
15
+ if (!user) {
16
+ return createUnauthenticatedClientConfig({
17
+ clientConfig: cachedClientConfigs[currentLanguage]
18
+ });
19
+ }
15
20
  return cachedClientConfigs[currentLanguage];
16
21
  }
17
22
  const cachedClientConfig = createClientConfig({
18
23
  config,
19
24
  i18n,
20
- importMap
25
+ importMap,
26
+ user
21
27
  });
22
28
  cachedClientConfigs[currentLanguage] = cachedClientConfig;
23
29
  global._payload_clientConfigs = cachedClientConfigs;
24
30
  global._payload_doNotCacheClientConfig = false;
31
+ if (!user) {
32
+ return createUnauthenticatedClientConfig({
33
+ clientConfig: cachedClientConfig
34
+ });
35
+ }
25
36
  return cachedClientConfig;
26
37
  });
27
38
  //# sourceMappingURL=getClientConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getClientConfig.js","names":["createClientConfig","cache","cachedClientConfigs","global","_payload_clientConfigs","getClientConfig","args","config","i18n","importMap","currentLanguage","language","_payload_doNotCacheClientConfig","cachedClientConfig"],"sources":["../../src/utilities/getClientConfig.ts"],"sourcesContent":["import type { I18nClient, SupportedLanguages } from '@payloadcms/translations'\nimport type { ClientConfig, ImportMap, SanitizedConfig } from 'payload'\n\nimport { createClientConfig } from 'payload'\nimport { cache } from 'react'\n\nlet cachedClientConfigs = global._payload_clientConfigs as Record<\n keyof SupportedLanguages,\n ClientConfig\n>\n\nif (!cachedClientConfigs) {\n cachedClientConfigs = global._payload_clientConfigs = {} as Record<\n keyof SupportedLanguages,\n ClientConfig\n >\n}\n\nexport const getClientConfig = cache(\n (args: { config: SanitizedConfig; i18n: I18nClient; importMap: ImportMap }): ClientConfig => {\n const { config, i18n, importMap } = args\n const currentLanguage = i18n.language\n\n if (cachedClientConfigs[currentLanguage] && !global._payload_doNotCacheClientConfig) {\n return cachedClientConfigs[currentLanguage]\n }\n\n const cachedClientConfig = createClientConfig({\n config,\n i18n,\n importMap,\n })\n\n cachedClientConfigs[currentLanguage] = cachedClientConfig\n global._payload_clientConfigs = cachedClientConfigs\n global._payload_doNotCacheClientConfig = false\n\n return cachedClientConfig\n },\n)\n"],"mappings":"AAGA,SAASA,kBAAkB,QAAQ;AACnC,SAASC,KAAK,QAAQ;AAEtB,IAAIC,mBAAA,GAAsBC,MAAA,CAAOC,sBAAsB;AAKvD,IAAI,CAACF,mBAAA,EAAqB;EACxBA,mBAAA,GAAsBC,MAAA,CAAOC,sBAAsB,GAAG,CAAC;AAIzD;AAEA,OAAO,MAAMC,eAAA,GAAkBJ,KAAA,CAC5BK,IAAA;EACC,MAAM;IAAEC,MAAM;IAAEC,IAAI;IAAEC;EAAS,CAAE,GAAGH,IAAA;EACpC,MAAMI,eAAA,GAAkBF,IAAA,CAAKG,QAAQ;EAErC,IAAIT,mBAAmB,CAACQ,eAAA,CAAgB,IAAI,CAACP,MAAA,CAAOS,+BAA+B,EAAE;IACnF,OAAOV,mBAAmB,CAACQ,eAAA,CAAgB;EAC7C;EAEA,MAAMG,kBAAA,GAAqBb,kBAAA,CAAmB;IAC5CO,MAAA;IACAC,IAAA;IACAC;EACF;EAEAP,mBAAmB,CAACQ,eAAA,CAAgB,GAAGG,kBAAA;EACvCV,MAAA,CAAOC,sBAAsB,GAAGF,mBAAA;EAChCC,MAAA,CAAOS,+BAA+B,GAAG;EAEzC,OAAOC,kBAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"getClientConfig.js","names":["createClientConfig","createUnauthenticatedClientConfig","cache","cachedClientConfigs","global","_payload_clientConfigs","getClientConfig","config","i18n","importMap","user","currentLanguage","language","_payload_doNotCacheClientConfig","clientConfig","cachedClientConfig"],"sources":["../../src/utilities/getClientConfig.ts"],"sourcesContent":["import type { SupportedLanguages } from '@payloadcms/translations'\nimport type { ClientConfig, CreateClientConfigArgs } from 'payload'\n\nimport { createClientConfig, createUnauthenticatedClientConfig } from 'payload'\nimport { cache } from 'react'\n\ntype CachedClientConfigs = Record<keyof SupportedLanguages, ClientConfig>\n\nlet cachedClientConfigs = global._payload_clientConfigs as CachedClientConfigs\n\nif (!cachedClientConfigs) {\n cachedClientConfigs = global._payload_clientConfigs = {} as CachedClientConfigs\n}\n\nexport const getClientConfig = cache(\n ({ config, i18n, importMap, user }: CreateClientConfigArgs): ClientConfig => {\n const currentLanguage = i18n.language\n\n if (cachedClientConfigs[currentLanguage] && !global._payload_doNotCacheClientConfig) {\n if (!user) {\n return createUnauthenticatedClientConfig({\n clientConfig: cachedClientConfigs[currentLanguage],\n }) as unknown as ClientConfig\n }\n\n return cachedClientConfigs[currentLanguage]\n }\n\n const cachedClientConfig = createClientConfig({\n config,\n i18n,\n importMap,\n user,\n })\n\n cachedClientConfigs[currentLanguage] = cachedClientConfig\n global._payload_clientConfigs = cachedClientConfigs\n global._payload_doNotCacheClientConfig = false\n\n if (!user) {\n return createUnauthenticatedClientConfig({\n clientConfig: cachedClientConfig,\n }) as unknown as ClientConfig\n }\n\n return cachedClientConfig\n },\n)\n"],"mappings":"AAGA,SAASA,kBAAkB,EAAEC,iCAAiC,QAAQ;AACtE,SAASC,KAAK,QAAQ;AAItB,IAAIC,mBAAA,GAAsBC,MAAA,CAAOC,sBAAsB;AAEvD,IAAI,CAACF,mBAAA,EAAqB;EACxBA,mBAAA,GAAsBC,MAAA,CAAOC,sBAAsB,GAAG,CAAC;AACzD;AAEA,OAAO,MAAMC,eAAA,GAAkBJ,KAAA,CAC7B,CAAC;EAAEK,MAAM;EAAEC,IAAI;EAAEC,SAAS;EAAEC;AAAI,CAA0B;EACxD,MAAMC,eAAA,GAAkBH,IAAA,CAAKI,QAAQ;EAErC,IAAIT,mBAAmB,CAACQ,eAAA,CAAgB,IAAI,CAACP,MAAA,CAAOS,+BAA+B,EAAE;IACnF,IAAI,CAACH,IAAA,EAAM;MACT,OAAOT,iCAAA,CAAkC;QACvCa,YAAA,EAAcX,mBAAmB,CAACQ,eAAA;MACpC;IACF;IAEA,OAAOR,mBAAmB,CAACQ,eAAA,CAAgB;EAC7C;EAEA,MAAMI,kBAAA,GAAqBf,kBAAA,CAAmB;IAC5CO,MAAA;IACAC,IAAA;IACAC,SAAA;IACAC;EACF;EAEAP,mBAAmB,CAACQ,eAAA,CAAgB,GAAGI,kBAAA;EACvCX,MAAA,CAAOC,sBAAsB,GAAGF,mBAAA;EAChCC,MAAA,CAAOS,+BAA+B,GAAG;EAEzC,IAAI,CAACH,IAAA,EAAM;IACT,OAAOT,iCAAA,CAAkC;MACvCa,YAAA,EAAcC;IAChB;EACF;EAEA,OAAOA,kBAAA;AACT","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import type { I18nClient } from '@payloadcms/translations';
2
+ import type { ClientCollectionConfig, ClientConfig, ColumnPreference } from 'payload';
3
+ export declare const getColumns: ({ clientConfig, collectionConfig, collectionSlug, columns, i18n, }: {
4
+ clientConfig: ClientConfig;
5
+ collectionConfig?: ClientCollectionConfig;
6
+ collectionSlug: string | string[];
7
+ columns: ColumnPreference[];
8
+ i18n: I18nClient;
9
+ }) => ColumnPreference[];
10
+ //# sourceMappingURL=getColumns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getColumns.d.ts","sourceRoot":"","sources":["../../src/utilities/getColumns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAQrF,eAAO,MAAM,UAAU,uEAMpB;IACD,YAAY,EAAE,YAAY,CAAA;IAC1B,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACjC,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,IAAI,EAAE,UAAU,CAAA;CACjB,uBAwCA,CAAA"}
@@ -0,0 +1,36 @@
1
+ import { flattenTopLevelFields } from 'payload';
2
+ import { fieldAffectsData } from 'payload/shared';
3
+ import { filterFields } from '../providers/TableColumns/buildColumnState/filterFields.js';
4
+ import { getInitialColumns } from '../providers/TableColumns/getInitialColumns.js';
5
+ export const getColumns = ({
6
+ clientConfig,
7
+ collectionConfig,
8
+ collectionSlug,
9
+ columns,
10
+ i18n
11
+ }) => {
12
+ const isPolymorphic = Array.isArray(collectionSlug);
13
+ const fields = !isPolymorphic ? collectionConfig?.fields ?? [] : [];
14
+ if (isPolymorphic) {
15
+ for (const collection of collectionSlug) {
16
+ const clientCollectionConfig = clientConfig.collections.find(each => each.slug === collection);
17
+ for (const field of filterFields(clientCollectionConfig.fields)) {
18
+ if (fieldAffectsData(field)) {
19
+ if (fields.some(each => fieldAffectsData(each) && each.name === field.name)) {
20
+ continue;
21
+ }
22
+ }
23
+ fields.push(field);
24
+ }
25
+ }
26
+ }
27
+ return columns ? columns?.filter(column => flattenTopLevelFields(fields, {
28
+ i18n,
29
+ keepPresentationalFields: true,
30
+ moveSubFieldsToTop: true
31
+ })?.some(field => {
32
+ const accessor = 'accessor' in field ? field.accessor : 'name' in field ? field.name : undefined;
33
+ return accessor === column.accessor;
34
+ })) : getInitialColumns(isPolymorphic ? fields : filterFields(fields), collectionConfig.admin?.useAsTitle, isPolymorphic ? [] : collectionConfig?.admin?.defaultColumns);
35
+ };
36
+ //# sourceMappingURL=getColumns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getColumns.js","names":["flattenTopLevelFields","fieldAffectsData","filterFields","getInitialColumns","getColumns","clientConfig","collectionConfig","collectionSlug","columns","i18n","isPolymorphic","Array","isArray","fields","collection","clientCollectionConfig","collections","find","each","slug","field","some","name","push","filter","column","keepPresentationalFields","moveSubFieldsToTop","accessor","undefined","admin","useAsTitle","defaultColumns"],"sources":["../../src/utilities/getColumns.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { ClientCollectionConfig, ClientConfig, ColumnPreference } from 'payload'\n\nimport { flattenTopLevelFields } from 'payload'\nimport { fieldAffectsData } from 'payload/shared'\n\nimport { filterFields } from '../providers/TableColumns/buildColumnState/filterFields.js'\nimport { getInitialColumns } from '../providers/TableColumns/getInitialColumns.js'\n\nexport const getColumns = ({\n clientConfig,\n collectionConfig,\n collectionSlug,\n columns,\n i18n,\n}: {\n clientConfig: ClientConfig\n collectionConfig?: ClientCollectionConfig\n collectionSlug: string | string[]\n columns: ColumnPreference[]\n i18n: I18nClient\n}) => {\n const isPolymorphic = Array.isArray(collectionSlug)\n\n const fields = !isPolymorphic ? (collectionConfig?.fields ?? []) : []\n\n if (isPolymorphic) {\n for (const collection of collectionSlug) {\n const clientCollectionConfig = clientConfig.collections.find(\n (each) => each.slug === collection,\n )\n\n for (const field of filterFields(clientCollectionConfig.fields)) {\n if (fieldAffectsData(field)) {\n if (fields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n fields.push(field)\n }\n }\n }\n\n return columns\n ? columns?.filter((column) =>\n flattenTopLevelFields(fields, {\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 ? fields : filterFields(fields),\n collectionConfig.admin?.useAsTitle,\n isPolymorphic ? [] : collectionConfig?.admin?.defaultColumns,\n )\n}\n"],"mappings":"AAGA,SAASA,qBAAqB,QAAQ;AACtC,SAASC,gBAAgB,QAAQ;AAEjC,SAASC,YAAY,QAAQ;AAC7B,SAASC,iBAAiB,QAAQ;AAElC,OAAO,MAAMC,UAAA,GAAaA,CAAC;EACzBC,YAAY;EACZC,gBAAgB;EAChBC,cAAc;EACdC,OAAO;EACPC;AAAI,CAOL;EACC,MAAMC,aAAA,GAAgBC,KAAA,CAAMC,OAAO,CAACL,cAAA;EAEpC,MAAMM,MAAA,GAAS,CAACH,aAAA,GAAiBJ,gBAAA,EAAkBO,MAAA,IAAU,EAAE,GAAI,EAAE;EAErE,IAAIH,aAAA,EAAe;IACjB,KAAK,MAAMI,UAAA,IAAcP,cAAA,EAAgB;MACvC,MAAMQ,sBAAA,GAAyBV,YAAA,CAAaW,WAAW,CAACC,IAAI,CACzDC,IAAA,IAASA,IAAA,CAAKC,IAAI,KAAKL,UAAA;MAG1B,KAAK,MAAMM,KAAA,IAASlB,YAAA,CAAaa,sBAAA,CAAuBF,MAAM,GAAG;QAC/D,IAAIZ,gBAAA,CAAiBmB,KAAA,GAAQ;UAC3B,IAAIP,MAAA,CAAOQ,IAAI,CAAEH,IAAA,IAASjB,gBAAA,CAAiBiB,IAAA,KAASA,IAAA,CAAKI,IAAI,KAAKF,KAAA,CAAME,IAAI,GAAG;YAC7E;UACF;QACF;QAEAT,MAAA,CAAOU,IAAI,CAACH,KAAA;MACd;IACF;EACF;EAEA,OAAOZ,OAAA,GACHA,OAAA,EAASgB,MAAA,CAAQC,MAAA,IACfzB,qBAAA,CAAsBa,MAAA,EAAQ;IAC5BJ,IAAA;IACAiB,wBAAA,EAA0B;IAC1BC,kBAAA,EAAoB;EACtB,IAAIN,IAAA,CAAMD,KAAA;IACR,MAAMQ,QAAA,GACJ,cAAcR,KAAA,GAAQA,KAAA,CAAMQ,QAAQ,GAAG,UAAUR,KAAA,GAAQA,KAAA,CAAME,IAAI,GAAGO,SAAA;IACxE,OAAOD,QAAA,KAAaH,MAAA,CAAOG,QAAQ;EACrC,MAEFzB,iBAAA,CACEO,aAAA,GAAgBG,MAAA,GAASX,YAAA,CAAaW,MAAA,GACtCP,gBAAA,CAAiBwB,KAAK,EAAEC,UAAA,EACxBrB,aAAA,GAAgB,EAAE,GAAGJ,gBAAA,EAAkBwB,KAAA,EAAOE,cAAA;AAEtD","ignoreList":[]}
@@ -1,13 +1,13 @@
1
- import type { ClientCollectionConfig, ClientConfig, CollectionConfig, CollectionPreferences, Column, Field, ImportMap, ListQuery, PaginatedDocs, Payload, SanitizedCollectionConfig, ViewTypes } from 'payload';
1
+ import type { ClientCollectionConfig, ClientConfig, CollectionConfig, Column, ColumnPreference, 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, viewType, }: {
5
+ export declare const renderTable: ({ clientCollectionConfig, clientConfig, collectionConfig, collections, columns, 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
- columns?: CollectionPreferences["columns"];
10
+ columns: ColumnPreference[];
11
11
  customCellProps?: Record<string, unknown>;
12
12
  data?: PaginatedDocs | undefined;
13
13
  drawerSlug?: string;
@@ -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,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"}
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,MAAM,EACN,gBAAgB,EAChB,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;AAqBzB,eAAO,MAAM,aAAa,WAChB,KAAK,EAAE,aACJ,SAAS,KACnB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAoB3B,CAAA;AAEH,eAAO,MAAM,WAAW,iRAqBrB;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,EAAE,gBAAgB,EAAE,CAAA;IAC3B,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;CAoMvB,CAAA"}
@@ -1,12 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { getTranslation } from '@payloadcms/translations';
3
- import { fieldAffectsData, fieldIsHiddenOrDisabled, flattenTopLevelFields } from 'payload/shared';
3
+ import { fieldAffectsData, fieldIsHiddenOrDisabled } from 'payload/shared';
4
4
  import React from 'react';
5
5
  import { RenderServerComponent } from '../elements/RenderServerComponent/index.js';
6
6
  import { GroupByHeader, GroupByPageControls, OrderableTable, Pill, SelectAll, SelectionProvider, SelectRow, SortHeader, SortRow, Table } from '../exports/client/index.js';
7
7
  import { filterFields } from '../providers/TableColumns/buildColumnState/filterFields.js';
8
8
  import { buildColumnState } from '../providers/TableColumns/buildColumnState/index.js';
9
- import { getInitialColumns } from '../providers/TableColumns/getInitialColumns.js';
10
9
  export const renderFilters = (fields, importMap) => fields.reduce((acc, field) => {
11
10
  if (fieldIsHiddenOrDisabled(field)) {
12
11
  return acc;
@@ -24,7 +23,7 @@ export const renderTable = ({
24
23
  clientConfig,
25
24
  collectionConfig,
26
25
  collections,
27
- columns: columnsFromArgs,
26
+ columns,
28
27
  customCellProps,
29
28
  data,
30
29
  enableRowSelections,
@@ -71,14 +70,6 @@ export const renderTable = ({
71
70
  }
72
71
  }
73
72
  }
74
- const columns = columnsFromArgs ? columnsFromArgs?.filter(column => flattenTopLevelFields(clientFields, {
75
- i18n,
76
- keepPresentationalFields: true,
77
- moveSubFieldsToTop: true
78
- })?.some(field => {
79
- const accessor = 'accessor' in field ? field.accessor : 'name' in field ? field.name : undefined;
80
- return accessor === column.accessor;
81
- })) : getInitialColumns(isPolymorphic ? clientFields : filterFields(clientFields), useAsTitle, isPolymorphic ? [] : clientCollectionConfig?.admin?.defaultColumns);
82
73
  const sharedArgs = {
83
74
  clientFields,
84
75
  columns,
@@ -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","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
+ {"version":3,"file":"renderTable.js","names":["getTranslation","fieldAffectsData","fieldIsHiddenOrDisabled","React","RenderServerComponent","GroupByHeader","GroupByPageControls","OrderableTable","Pill","SelectAll","SelectionProvider","SelectRow","SortHeader","SortRow","Table","filterFields","buildColumnState","renderFilters","fields","importMap","reduce","acc","field","admin","components","Filter","set","name","Component","Map","renderTable","clientCollectionConfig","clientConfig","collectionConfig","collections","columns","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","sharedArgs","collectionSlug","undefined","dataType","docs","columnsToUse","unshift","accessor","active","disabled","hidden","Heading","t","renderedCells","map","doc","i","_jsx","size","relationTo","labels","singular","_","rowData","className","filter","join","_jsxs","totalDocs","appearance"],"sources":["../../src/utilities/renderTable.tsx"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n CollectionConfig,\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 } 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'\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,\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: ColumnPreference[]\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\n for (const collection of collections) {\n const clientCollectionConfig = clientConfig.collections.find(\n (each) => each.slug === collection,\n )\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\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 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":[]}
@@ -293,7 +293,7 @@ function BrowseByFolderViewInContext(props) {
293
293
  AfterListHeaderContent: Description,
294
294
  title: listHeaderTitle,
295
295
  TitleActions: [allowCreateCollectionSlugs.length && _jsx(ListCreateNewDocInFolderButton, {
296
- buttonLabel: t("general:createNew"),
296
+ buttonLabel: allowCreateCollectionSlugs.length > 1 ? t("general:createNew") : `${t("general:create")} ${getTranslation(folderCollectionConfig.labels?.singular, i18n).toLowerCase()}`,
297
297
  collectionSlugs: allowCreateCollectionSlugs,
298
298
  folderAssignedCollections: Array.isArray(folderType) ? folderType : [],
299
299
  onCreateSuccess: clearRouteCache,