@payloadcms/ui 3.44.0-internal.6b79dc2 → 3.44.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.
- package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +74 -29
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.scss +5 -4
- package/dist/elements/BulkUpload/FormsManager/index.d.ts +0 -1
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +37 -64
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/reducer.d.ts +1 -0
- package/dist/elements/BulkUpload/FormsManager/reducer.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/reducer.js +1 -0
- package/dist/elements/BulkUpload/FormsManager/reducer.js.map +1 -1
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +1 -1
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +14 -10
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
- package/dist/elements/RelationshipTable/AddNewButton.d.ts +17 -0
- package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -0
- package/dist/elements/RelationshipTable/AddNewButton.js +64 -0
- package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -0
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +35 -49
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.scss +4 -0
- package/dist/elements/ShimmerEffect/index.d.ts +2 -0
- package/dist/elements/ShimmerEffect/index.d.ts.map +1 -1
- package/dist/elements/ShimmerEffect/index.js +5 -3
- package/dist/elements/ShimmerEffect/index.js.map +1 -1
- package/dist/elements/Table/index.scss +1 -0
- package/dist/elements/Thumbnail/createThumbnail.d.ts.map +1 -1
- package/dist/elements/Thumbnail/createThumbnail.js +8 -2
- package/dist/elements/Thumbnail/createThumbnail.js.map +1 -1
- package/dist/exports/client/{CodeEditor-Z3ZZJH7C.js → CodeEditor-YP63NRLU.js} +2 -2
- package/dist/exports/client/{chunk-CNCOIY3Y.js → chunk-5EP6VERX.js} +4 -4
- package/dist/exports/client/{chunk-CNCOIY3Y.js.map → chunk-5EP6VERX.js.map} +3 -3
- package/dist/exports/client/index.d.ts +1 -1
- package/dist/exports/client/index.js +10 -10
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.js +1 -1
- package/dist/exports/shared/index.js.map +2 -2
- package/dist/fields/DateTime/index.d.ts.map +1 -1
- package/dist/fields/DateTime/index.js +1 -0
- package/dist/fields/DateTime/index.js.map +1 -1
- package/dist/providers/ListQuery/types.d.ts +2 -2
- package/dist/providers/ListQuery/types.d.ts.map +1 -1
- package/dist/providers/ListQuery/types.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/index.d.ts +3 -3
- package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
- package/dist/providers/TableColumns/getInitialColumns.d.ts +2 -2
- package/dist/providers/TableColumns/getInitialColumns.d.ts.map +1 -1
- package/dist/providers/TableColumns/getInitialColumns.js.map +1 -1
- package/dist/providers/TableColumns/types.d.ts +2 -2
- package/dist/providers/TableColumns/types.d.ts.map +1 -1
- package/dist/providers/TableColumns/types.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/buildTableState.d.ts +2 -2
- package/dist/utilities/buildTableState.d.ts.map +1 -1
- package/dist/utilities/buildTableState.js +4 -4
- package/dist/utilities/buildTableState.js.map +1 -1
- package/dist/utilities/renderTable.d.ts +3 -3
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js.map +1 -1
- package/package.json +5 -5
- package/dist/elements/BulkUpload/index.scss +0 -0
- /package/dist/exports/client/{CodeEditor-Z3ZZJH7C.js.map → CodeEditor-YP63NRLU.js.map} +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { BuildTableStateArgs, ClientConfig, Column, ErrorResult,
|
|
1
|
+
import type { BuildTableStateArgs, ClientConfig, CollectionPreferences, Column, ErrorResult, PaginatedDocs, ServerFunction } from 'payload';
|
|
2
2
|
type BuildTableStateSuccessResult = {
|
|
3
3
|
clientConfig?: ClientConfig;
|
|
4
4
|
data: PaginatedDocs;
|
|
5
5
|
errors?: never;
|
|
6
|
-
preferences:
|
|
6
|
+
preferences: CollectionPreferences;
|
|
7
7
|
renderedFilters: Map<string, React.ReactNode>;
|
|
8
8
|
state: Column[];
|
|
9
9
|
Table: React.ReactNode;
|
|
@@ -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,MAAM,EACN,WAAW,EACX,
|
|
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"}
|
|
@@ -89,8 +89,8 @@ const buildTableState = async args => {
|
|
|
89
89
|
clientCollectionConfig = clientConfig.collections.find(collection => collection.slug === collectionSlug);
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
|
-
const
|
|
93
|
-
key: Array.isArray(collectionSlug) ? `${parent.collectionSlug}-${parent.joinPath}` :
|
|
92
|
+
const collectionPreferences = await upsertPreferences({
|
|
93
|
+
key: Array.isArray(collectionSlug) ? `${parent.collectionSlug}-${parent.joinPath}` : `collection-${collectionSlug}`,
|
|
94
94
|
req,
|
|
95
95
|
value: {
|
|
96
96
|
columns,
|
|
@@ -167,7 +167,7 @@ const buildTableState = async args => {
|
|
|
167
167
|
clientConfig,
|
|
168
168
|
collectionConfig,
|
|
169
169
|
collections: Array.isArray(collectionSlug) ? collectionSlug : undefined,
|
|
170
|
-
columnPreferences: Array.isArray(collectionSlug) ?
|
|
170
|
+
columnPreferences: Array.isArray(collectionSlug) ? collectionPreferences?.columns : undefined,
|
|
171
171
|
columns,
|
|
172
172
|
docs,
|
|
173
173
|
enableRowSelections,
|
|
@@ -184,7 +184,7 @@ const buildTableState = async args => {
|
|
|
184
184
|
}
|
|
185
185
|
return {
|
|
186
186
|
data,
|
|
187
|
-
preferences:
|
|
187
|
+
preferences: collectionPreferences,
|
|
188
188
|
renderedFilters,
|
|
189
189
|
state: columnState,
|
|
190
190
|
Table
|
|
@@ -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","docs","docsFromArgs","enableRowSelections","orderableFieldName","parent","query","renderRowTypes","i18n","config","user","tableAppearance","incomingUserSlug","collection","adminUserSlug","admin","adminAccessFunction","collections","access","canAccessAdmin","Error","hasUsers","find","depth","limit","pagination","length","clientConfig","importMap","collectionConfig","clientCollectionConfig","Array","isArray","slug","listPreferences","key","joinPath","value","Number","undefined","sort","data","select","currentSelectRef","segments","split","i","joinQuery","where","isNaN","page","parentDoc","findByID","id","joins","overrideAccess","parseInt","locale","columnState","Table","columnPreferences","useAsTitle","renderedFilters","fields","preferences","state"],"sources":["../../src/utilities/buildTableState.ts"],"sourcesContent":["import type {\n BuildTableStateArgs,\n ClientCollectionConfig,\n ClientConfig,\n Column,\n ErrorResult,\n ListPreferences,\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: ListPreferences\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 docs: docsFromArgs,\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 listPreferences = await upsertPreferences<ListPreferences>({\n key: Array.isArray(collectionSlug)\n ? `${parent.collectionSlug}-${parent.joinPath}`\n : `${collectionSlug}-list`,\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 docs = docsFromArgs\n let data: PaginatedDocs\n\n // lookup docs, if desired, i.e. within `join` field which initialize with `depth: 0`\n\n if (!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 docs = data.docs\n } else {\n parentDoc = parentDoc[segments[i]]\n }\n }\n } else {\n data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n limit: query?.limit ? parseInt(query.limit, 10) : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.page ? parseInt(query.page, 10) : undefined,\n sort: query?.sort,\n user: req.user,\n where: query?.where,\n })\n docs = data.docs\n }\n }\n\n const { columnState, Table } = renderTable({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collections: Array.isArray(collectionSlug) ? collectionSlug : undefined,\n columnPreferences: Array.isArray(collectionSlug) ? listPreferences?.columns : undefined, // TODO, might not be neededcolumns,\n columns,\n docs,\n enableRowSelections,\n i18n: req.i18n,\n orderableFieldName,\n payload,\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: listPreferences,\n renderedFilters,\n state: columnState,\n Table,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
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","docs","docsFromArgs","enableRowSelections","orderableFieldName","parent","query","renderRowTypes","i18n","config","user","tableAppearance","incomingUserSlug","collection","adminUserSlug","admin","adminAccessFunction","collections","access","canAccessAdmin","Error","hasUsers","find","depth","limit","pagination","length","clientConfig","importMap","collectionConfig","clientCollectionConfig","Array","isArray","slug","collectionPreferences","key","joinPath","value","Number","undefined","sort","data","select","currentSelectRef","segments","split","i","joinQuery","where","isNaN","page","parentDoc","findByID","id","joins","overrideAccess","parseInt","locale","columnState","Table","columnPreferences","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 docs: docsFromArgs,\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 docs = docsFromArgs\n let data: PaginatedDocs\n\n // lookup docs, if desired, i.e. within `join` field which initialize with `depth: 0`\n\n if (!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 docs = data.docs\n } else {\n parentDoc = parentDoc[segments[i]]\n }\n }\n } else {\n data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n limit: query?.limit ? parseInt(query.limit, 10) : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.page ? parseInt(query.page, 10) : undefined,\n sort: query?.sort,\n user: req.user,\n where: query?.where,\n })\n docs = data.docs\n }\n }\n\n const { columnState, Table } = renderTable({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collections: Array.isArray(collectionSlug) ? collectionSlug : undefined,\n columnPreferences: Array.isArray(collectionSlug) ? collectionPreferences?.columns : undefined, // TODO, might not be neededcolumns,\n columns,\n docs,\n enableRowSelections,\n i18n: req.i18n,\n orderableFieldName,\n payload,\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,4 +1,4 @@
|
|
|
1
|
-
import type { ClientCollectionConfig, ClientConfig, CollectionConfig, Column, Field, ImportMap,
|
|
1
|
+
import type { ClientCollectionConfig, ClientConfig, CollectionConfig, CollectionPreferences, Column, Field, ImportMap, PaginatedDocs, Payload, SanitizedCollectionConfig } 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>;
|
|
@@ -7,8 +7,8 @@ export declare const renderTable: ({ clientCollectionConfig, clientConfig, colle
|
|
|
7
7
|
clientConfig?: ClientConfig;
|
|
8
8
|
collectionConfig?: SanitizedCollectionConfig;
|
|
9
9
|
collections?: string[];
|
|
10
|
-
columnPreferences:
|
|
11
|
-
columns?:
|
|
10
|
+
columnPreferences: CollectionPreferences["columns"];
|
|
11
|
+
columns?: CollectionPreferences["columns"];
|
|
12
12
|
customCellProps?: Record<string, unknown>;
|
|
13
13
|
docs: PaginatedDocs["docs"];
|
|
14
14
|
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,MAAM,EAEN,KAAK,EACL,SAAS,EACT,
|
|
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,aAAa,EACb,OAAO,EACP,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1E,OAAO,KAAK,MAAM,OAAO,CAAA;AAmBzB,eAAO,MAAM,aAAa,WAChB,KAAK,EAAE,aACJ,SAAS,KACnB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAoB3B,CAAA;AAEH,eAAO,MAAM,WAAW,sPAgBrB;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,iBAAiB,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAA;IACnD,OAAO,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAA;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,IAAI,EAAE,UAAU,CAAA;IAChB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,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;CA4KvB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderTable.js","names":["getTranslation","fieldAffectsData","fieldIsHiddenOrDisabled","flattenTopLevelFields","React","RenderServerComponent","OrderableTable","Pill","SelectAll","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","columnPreferences","columns","columnsFromArgs","customCellProps","docs","enableRowSelections","i18n","orderableFieldName","payload","renderRowTypes","tableAppearance","useAsTitle","columnState","clientFields","serverFields","isPolymorphic","collection","find","each","slug","some","push","serverCollectionConfig","config","filter","column","keepPresentationalFields","moveSubFieldsToTop","accessor","undefined","defaultColumns","sharedArgs","collectionSlug","dataType","columnsToUse","unshift","active","disabled","hidden","Heading","t","renderedCells","map","doc","i","_jsx","size","relationTo","labels","singular","_","rowData","appearance","data"],"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 ListPreferences,\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 OrderableTable,\n Pill,\n SelectAll,\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 columnPreferences,\n columns: columnsFromArgs,\n customCellProps,\n docs,\n enableRowSelections,\n i18n,\n orderableFieldName,\n payload,\n renderRowTypes,\n tableAppearance,\n useAsTitle,\n}: {\n clientCollectionConfig?: ClientCollectionConfig\n clientConfig?: ClientConfig\n collectionConfig?: SanitizedCollectionConfig\n collections?: string[]\n columnPreferences: ListPreferences['columns']\n columns?: ListPreferences['columns']\n customCellProps?: Record<string, unknown>\n docs: PaginatedDocs['docs']\n drawerSlug?: string\n enableRowSelections: boolean\n i18n: I18nClient\n orderableFieldName: string\n payload: Payload\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 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 | 'columnPreferences'\n | 'columns'\n | 'customCellProps'\n | 'enableRowSelections'\n | 'i18n'\n | 'payload'\n | 'serverFields'\n | 'useAsTitle'\n > = {\n clientFields,\n columnPreferences,\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,\n })\n } else {\n columnState = buildColumnState({\n ...sharedArgs,\n collectionSlug: clientCollectionConfig.slug,\n dataType: 'monomorphic',\n 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: 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: docs.map((_, i) => <SelectRow key={i} rowData={docs[i]} />),\n } as Column)\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: <Table appearance={tableAppearance} columns={columnsToUse} data={docs} key=\"table\" />,\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: 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 <OrderableTable\n appearance={tableAppearance}\n collection={clientCollectionConfig}\n columns={columnsToUse}\n data={docs}\n key=\"table\"\n />\n ),\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"renderTable.js","names":["getTranslation","fieldAffectsData","fieldIsHiddenOrDisabled","flattenTopLevelFields","React","RenderServerComponent","OrderableTable","Pill","SelectAll","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","columnPreferences","columns","columnsFromArgs","customCellProps","docs","enableRowSelections","i18n","orderableFieldName","payload","renderRowTypes","tableAppearance","useAsTitle","columnState","clientFields","serverFields","isPolymorphic","collection","find","each","slug","some","push","serverCollectionConfig","config","filter","column","keepPresentationalFields","moveSubFieldsToTop","accessor","undefined","defaultColumns","sharedArgs","collectionSlug","dataType","columnsToUse","unshift","active","disabled","hidden","Heading","t","renderedCells","map","doc","i","_jsx","size","relationTo","labels","singular","_","rowData","appearance","data"],"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 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 OrderableTable,\n Pill,\n SelectAll,\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 columnPreferences,\n columns: columnsFromArgs,\n customCellProps,\n docs,\n enableRowSelections,\n i18n,\n orderableFieldName,\n payload,\n renderRowTypes,\n tableAppearance,\n useAsTitle,\n}: {\n clientCollectionConfig?: ClientCollectionConfig\n clientConfig?: ClientConfig\n collectionConfig?: SanitizedCollectionConfig\n collections?: string[]\n columnPreferences: CollectionPreferences['columns']\n columns?: CollectionPreferences['columns']\n customCellProps?: Record<string, unknown>\n docs: PaginatedDocs['docs']\n drawerSlug?: string\n enableRowSelections: boolean\n i18n: I18nClient\n orderableFieldName: string\n payload: Payload\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 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 | 'columnPreferences'\n | 'columns'\n | 'customCellProps'\n | 'enableRowSelections'\n | 'i18n'\n | 'payload'\n | 'serverFields'\n | 'useAsTitle'\n > = {\n clientFields,\n columnPreferences,\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,\n })\n } else {\n columnState = buildColumnState({\n ...sharedArgs,\n collectionSlug: clientCollectionConfig.slug,\n dataType: 'monomorphic',\n 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: 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: docs.map((_, i) => <SelectRow key={i} rowData={docs[i]} />),\n } as Column)\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: <Table appearance={tableAppearance} columns={columnsToUse} data={docs} key=\"table\" />,\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: 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 <OrderableTable\n appearance={tableAppearance}\n collection={clientCollectionConfig}\n columns={columnsToUse}\n data={docs}\n key=\"table\"\n />\n ),\n }\n}\n"],"mappings":";AAeA,SAASA,cAAc,QAAyB;AAChD,SAASC,gBAAgB,EAAEC,uBAAuB,EAAEC,qBAAqB,QAAQ;AACjF,OAAOC,KAAA,MAAW;AAIlB,SAASC,qBAAqB,QAAQ;AACtC,SACEC,cAAc,EACdC,IAAI,EACJC,SAAS,EACTC,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,IAAInB,uBAAA,CAAwBmB,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,EACVrB,qBAAA,CAAsB;MACpBsB,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,iBAAiB;EACjBC,OAAA,EAASC,eAAe;EACxBC,eAAe;EACfC,IAAI;EACJC,mBAAmB;EACnBC,IAAI;EACJC,kBAAkB;EAClBC,OAAO;EACPC,cAAc;EACdC,eAAe;EACfC;AAAU,CAkBX;EAIC;EAEA,IAAIC,WAAA;EACJ,IAAIC,YAAA,GAA8BjB,sBAAA,EAAwBb,MAAA,IAAU,EAAE;EACtE,IAAI+B,YAAA,GAAwBhB,gBAAA,EAAkBf,MAAA,IAAU,EAAE;EAC1D,MAAMgC,aAAA,GAAgBhB,WAAA;EAEtB,IAAIgB,aAAA,EAAe;IACjBF,YAAA,GAAe,EAAE;IACjBC,YAAA,GAAe,EAAE;IACjB,KAAK,MAAME,UAAA,IAAcjB,WAAA,EAAa;MACpC,MAAMH,sBAAA,GAAyBC,YAAA,CAAaE,WAAW,CAACkB,IAAI,CACzDC,IAAA,IAASA,IAAA,CAAKC,IAAI,KAAKH,UAAA;MAE1B,KAAK,MAAM7B,KAAA,IAASR,YAAA,CAAaiB,sBAAA,CAAuBb,MAAM,GAAG;QAC/D,IAAIhB,gBAAA,CAAiBoB,KAAA,GAAQ;UAC3B,IAAI0B,YAAA,CAAaO,IAAI,CAAEF,IAAA,IAASnD,gBAAA,CAAiBmD,IAAA,KAASA,IAAA,CAAK1B,IAAI,KAAKL,KAAA,CAAMK,IAAI,GAAG;YACnF;UACF;QACF;QAEAqB,YAAA,CAAaQ,IAAI,CAAClC,KAAA;MACpB;MAEA,MAAMmC,sBAAA,GAAyBd,OAAA,CAAQT,WAAW,CAACiB,UAAA,CAAW,CAACO,MAAM;MACrE,KAAK,MAAMpC,KAAA,IAASR,YAAA,CAAa2C,sBAAA,CAAuBvC,MAAM,GAAG;QAC/D,IAAIhB,gBAAA,CAAiBoB,KAAA,GAAQ;UAC3B,IAAI2B,YAAA,CAAaM,IAAI,CAAEF,IAAA,IAASnD,gBAAA,CAAiBmD,IAAA,KAASA,IAAA,CAAK1B,IAAI,KAAKL,KAAA,CAAMK,IAAI,GAAG;YACnF;UACF;QACF;QAEAsB,YAAA,CAAaO,IAAI,CAAClC,KAAA;MACpB;IACF;EACF;EAEA,MAAMc,OAAA,GAA8BC,eAAA,GAChCA,eAAA,EAAiBsB,MAAA,CAAQC,MAAA,IACvBxD,qBAAA,CAAsB4C,YAAA,EAAc;IAClCP,IAAA;IACAoB,wBAAA,EAA0B;IAC1BC,kBAAA,EAAoB;EACtB,IAAIP,IAAA,CAAMjC,KAAA;IACR,MAAMyC,QAAA,GACJ,cAAczC,KAAA,GAAQA,KAAA,CAAMyC,QAAQ,GAAG,UAAUzC,KAAA,GAAQA,KAAA,CAAMK,IAAI,GAAGqC,SAAA;IACxE,OAAOD,QAAA,KAAaH,MAAA,CAAOG,QAAQ;EACrC,MAEF/C,iBAAA,CACEkC,aAAA,GAAgBF,YAAA,GAAelC,YAAA,CAAakC,YAAA,GAC5CF,UAAA,EACAI,aAAA,GAAgB,EAAE,GAAGnB,sBAAA,EAAwBR,KAAA,EAAO0C,cAAA;EAG1D,MAAMC,UAAA,GAWF;IACFlB,YAAA;IACAb,iBAAA;IACAC,OAAA;IACAI,mBAAA;IACAC,IAAA;IACA;IACAH,eAAA;IACAK,OAAA;IACAM,YAAA;IACAH;EACF;EAEA,IAAII,aAAA,EAAe;IACjBH,WAAA,GAAchC,gBAAA,CAAiB;MAC7B,GAAGmD,UAAU;MACbC,cAAA,EAAgBH,SAAA;MAChBI,QAAA,EAAU;MACV7B;IACF;EACF,OAAO;IACLQ,WAAA,GAAchC,gBAAA,CAAiB;MAC7B,GAAGmD,UAAU;MACbC,cAAA,EAAgBpC,sBAAA,CAAuBuB,IAAI;MAC3Cc,QAAA,EAAU;MACV7B;IACF;EACF;EAEA,MAAM8B,YAAA,GAAe,C,GAAItB,WAAA,CAAY;EAErC,IAAIH,cAAA,EAAgB;IAClByB,YAAA,CAAaC,OAAO,CAAC;MACnBP,QAAA,EAAU;MACVQ,MAAA,EAAQ;MACRjD,KAAA,EAAO;QACLC,KAAA,EAAO;UACLiD,QAAA,EAAU;QACZ;QACAC,MAAA,EAAQ;MACV;MACAC,OAAA,EAASjC,IAAA,CAAKkC,CAAC,CAAC;MAChBC,aAAA,EAAerC,IAAA,CAAKsC,GAAG,CAAC,CAACC,GAAA,EAAKC,CAAA,kBAC5BC,IAAA,CAACxE,IAAA;QAAayE,IAAA,EAAK;kBAChBhF,cAAA,CACCiC,WAAA,GACIS,OAAA,CAAQT,WAAW,CAAC4C,GAAA,CAAII,UAAU,CAAC,CAACxB,MAAM,CAACyB,MAAM,CAACC,QAAQ,GAC1DrD,sBAAA,CAAuBoD,MAAM,CAACC,QAAQ,EAC1C3C,IAAA;SALOsC,CAAA;IASf;EACF;EAEA,IAAIvC,mBAAA,EAAqB;IACvB6B,YAAA,CAAaC,OAAO,CAAC;MACnBP,QAAA,EAAU;MACVQ,MAAA,EAAQ;MACRjD,KAAA,EAAO;QACLC,KAAA,EAAO;UACLiD,QAAA,EAAU;QACZ;QACAC,MAAA,EAAQ;MACV;MACAC,OAAA,eAASM,IAAA,CAACvE,SAAA;MACVmE,aAAA,EAAerC,IAAA,CAAKsC,GAAG,CAAC,CAACQ,CAAA,EAAGN,CAAA,kBAAMC,IAAA,CAACtE,SAAA;QAAkB4E,OAAA,EAAS/C,IAAI,CAACwC,CAAA;SAAjBA,CAAA;IACpD;EACF;EAEA,IAAI,CAACrC,kBAAA,EAAoB;IACvB,OAAO;MACLK,WAAA;MACA;MACAlC,KAAA,eAAOmE,IAAA,CAACnE,KAAA;QAAM0E,UAAA,EAAY1C,eAAA;QAAiBT,OAAA,EAASiC,YAAA;QAAcmB,IAAA,EAAMjD;SAAU;IACpF;EACF;EAEA8B,YAAA,CAAaC,OAAO,CAAC;IACnBP,QAAA,EAAU;IACVQ,MAAA,EAAQ;IACRjD,KAAA,EAAO;MACLC,KAAA,EAAO;QACLiD,QAAA,EAAU;MACZ;MACAC,MAAA,EAAQ;IACV;IACAC,OAAA,eAASM,IAAA,CAACrE,UAAA;IACViE,aAAA,EAAerC,IAAA,CAAKsC,GAAG,CAAC,CAACQ,CAAA,EAAGN,CAAA,kBAAMC,IAAA,CAACpE,OAAA,MAAamE,CAAA;EAClD;EAEA,OAAO;IACLhC,WAAA;IACA;IACAlC,KAAA,eACEmE,IAAA,CAACzE,cAAA;MACCgF,UAAA,EAAY1C,eAAA;MACZM,UAAA,EAAYpB,sBAAA;MACZK,OAAA,EAASiC,YAAA;MACTmB,IAAA,EAAMjD;OACF;EAGV;AACF","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/ui",
|
|
3
|
-
"version": "3.44.0
|
|
3
|
+
"version": "3.44.0",
|
|
4
4
|
"homepage": "https://payloadcms.com",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
"ts-essentials": "10.0.3",
|
|
137
137
|
"use-context-selector": "2.0.0",
|
|
138
138
|
"uuid": "10.0.0",
|
|
139
|
-
"@payloadcms/translations": "3.44.0
|
|
139
|
+
"@payloadcms/translations": "3.44.0"
|
|
140
140
|
},
|
|
141
141
|
"devDependencies": {
|
|
142
142
|
"@babel/cli": "7.27.2",
|
|
@@ -151,14 +151,14 @@
|
|
|
151
151
|
"babel-plugin-react-compiler": "19.1.0-rc.2",
|
|
152
152
|
"esbuild": "0.25.5",
|
|
153
153
|
"esbuild-sass-plugin": "3.3.1",
|
|
154
|
-
"
|
|
155
|
-
"
|
|
154
|
+
"payload": "3.44.0",
|
|
155
|
+
"@payloadcms/eslint-config": "3.28.0"
|
|
156
156
|
},
|
|
157
157
|
"peerDependencies": {
|
|
158
158
|
"next": "^15.2.3",
|
|
159
159
|
"react": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
|
|
160
160
|
"react-dom": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
|
|
161
|
-
"payload": "3.44.0
|
|
161
|
+
"payload": "3.44.0"
|
|
162
162
|
},
|
|
163
163
|
"engines": {
|
|
164
164
|
"node": "^18.20.2 || >=20.9.0"
|
|
File without changes
|
|
File without changes
|