@payloadcms/ui 3.25.0-canary.36940b2 → 3.25.0-canary.3d5c763

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 (72) hide show
  1. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +10 -30
  3. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  4. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +3 -2
  5. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  6. package/dist/elements/BulkUpload/FormsManager/createFormData.js +19 -2
  7. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  8. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  9. package/dist/elements/BulkUpload/FormsManager/index.js +8 -2
  10. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  11. package/dist/elements/Link/index.d.ts +9 -1
  12. package/dist/elements/Link/index.d.ts.map +1 -1
  13. package/dist/elements/Link/index.js +6 -0
  14. package/dist/elements/Link/index.js.map +1 -1
  15. package/dist/elements/ListControls/index.d.ts.map +1 -1
  16. package/dist/elements/ListControls/index.js +1 -1
  17. package/dist/elements/ListControls/index.js.map +1 -1
  18. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  19. package/dist/elements/RelationshipTable/index.js +3 -4
  20. package/dist/elements/RelationshipTable/index.js.map +1 -1
  21. package/dist/elements/TableColumns/buildColumnState.d.ts +3 -3
  22. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  23. package/dist/elements/TableColumns/buildColumnState.js +5 -6
  24. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  25. package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts +3 -3
  26. package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -1
  27. package/dist/elements/TableColumns/buildPolymorphicColumnState.js +5 -6
  28. package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +1 -1
  29. package/dist/elements/TableColumns/getInitialColumns.d.ts +2 -2
  30. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -1
  31. package/dist/elements/TableColumns/getInitialColumns.js +1 -2
  32. package/dist/elements/TableColumns/getInitialColumns.js.map +1 -1
  33. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  34. package/dist/elements/TableColumns/index.js +11 -21
  35. package/dist/elements/TableColumns/index.js.map +1 -1
  36. package/dist/exports/client/{CodeEditor-G3Y4UHC4.js → CodeEditor-L6GW2VQ6.js} +2 -2
  37. package/dist/exports/client/{chunk-4L367VSB.js → chunk-ZZDNSFEW.js} +2 -2
  38. package/dist/exports/client/{chunk-4L367VSB.js.map → chunk-ZZDNSFEW.js.map} +2 -2
  39. package/dist/exports/client/index.d.ts +2 -0
  40. package/dist/exports/client/index.d.ts.map +1 -1
  41. package/dist/exports/client/index.js +23 -23
  42. package/dist/exports/client/index.js.map +4 -4
  43. package/dist/exports/shared/index.js +2 -2
  44. package/dist/exports/shared/index.js.map +2 -2
  45. package/dist/fields/JSON/index.d.ts.map +1 -1
  46. package/dist/fields/JSON/index.js +16 -12
  47. package/dist/fields/JSON/index.js.map +1 -1
  48. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  49. package/dist/forms/Form/fieldReducer.js +30 -14
  50. package/dist/forms/Form/fieldReducer.js.map +1 -1
  51. package/dist/forms/Form/index.d.ts.map +1 -1
  52. package/dist/forms/Form/index.js +28 -4
  53. package/dist/forms/Form/index.js.map +1 -1
  54. package/dist/forms/Form/types.d.ts +1 -1
  55. package/dist/forms/Form/types.d.ts.map +1 -1
  56. package/dist/forms/Form/types.js.map +1 -1
  57. package/dist/providers/Root/index.d.ts.map +1 -1
  58. package/dist/providers/Root/index.js +4 -1
  59. package/dist/providers/Root/index.js.map +1 -1
  60. package/dist/providers/UploadHandlers/index.d.ts +21 -0
  61. package/dist/providers/UploadHandlers/index.d.ts.map +1 -0
  62. package/dist/providers/UploadHandlers/index.js +72 -0
  63. package/dist/providers/UploadHandlers/index.js.map +1 -0
  64. package/dist/styles.css +1 -1
  65. package/dist/utilities/renderTable.d.ts +3 -4
  66. package/dist/utilities/renderTable.d.ts.map +1 -1
  67. package/dist/utilities/renderTable.js +2 -2
  68. package/dist/utilities/renderTable.js.map +1 -1
  69. package/dist/views/List/index.d.ts.map +1 -1
  70. package/dist/views/List/index.js.map +1 -1
  71. package/package.json +6 -6
  72. /package/dist/exports/client/{CodeEditor-G3Y4UHC4.js.map → CodeEditor-L6GW2VQ6.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","React","Fragment","useCallback","useEffect","useState","Button","Pill","useEffectEvent","ChevronIcon","PlusIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","useTranslation","hoistQueryParamsToAnd","AnimateHeight","ColumnSelector","useDocumentDrawer","Popup","PopupList","RelationshipProvider","TableColumnsProvider","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","disableTable","field","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","parent","relationTo","Table","setTable","config","getEntityConfig","permissions","docs","Array","isArray","reduce","acc","doc","id","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","collectionConfig","collectionSlug","selectedCollection","setSelectedCollection","undefined","isLoadingTable","setIsLoadingTable","data","setData","columnState","setColumnState","getTableState","renderTable","newQuery","limit","String","defaultLimit","admin","pagination","sort","defaultSort","where","defaultColumns","map","accessor","active","newData","state","newColumnState","NewTable","columns","enableRowSelections","renderRowTypes","tableAppearance","handleTableRender","DocumentDrawer","DocumentDrawerToggler","closeDrawer","isDrawerOpen","openDrawer","onDrawerSave","args","foundDocIndex","findIndex","withNewOrUpdatedDoc","newDocs","onDrawerCreate","onDrawerDelete","filter","preferenceKey","joinPath","canCreate","collections","create","_jsxs","className","_jsx","button","buttonStyle","buttonType","horizontalAlign","render","close","closePopup","ButtonGroup","relatedCollection","onClick","find","each","slug","labels","singular","size","icon","direction","pillStyle","length","label","plural","modifySearchParams","onQueryChange","LinkedCellOverride","sortColumnProps","appearance","height","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport type {\n CollectionSlug,\n Column,\n JoinFieldClient,\n ListQuery,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useEffect, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport './index.scss'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { TableColumnsProvider } from '../TableColumns/index.js'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n readonly BeforeInput?: React.ReactNode\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly parent?: {\n collectionSlug: CollectionSlug\n id: number | string\n joinPath: string\n }\n readonly relationTo: string | string[]\n}\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n disableTable = false,\n field,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n parent,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n const { config, getEntityConfig } = useConfig()\n\n const { permissions } = useAuth()\n\n const [initialData] = useState<PaginatedDocs>(() => {\n if (initialDataFromProps) {\n return {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n return [...acc, doc]\n }, [])\n : [],\n }\n }\n })\n\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n const [openColumnSelector, setOpenColumnSelector] = useState(false)\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug: relationTo }))\n\n const [selectedCollection, setSelectedCollection] = useState(\n Array.isArray(relationTo) ? undefined : relationTo,\n )\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n const [data, setData] = useState<PaginatedDocs>(initialData)\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (docs?: PaginatedDocs['docs']) => {\n const newQuery: ListQuery = {\n limit: String(field?.defaultLimit || collectionConfig?.admin?.pagination?.defaultLimit),\n sort: field.defaultSort || collectionConfig?.defaultSort,\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n // map columns from string[] to ListPreferences['columns']\n const defaultColumns = field.admin.defaultColumns\n ? field.admin.defaultColumns.map((accessor) => ({\n accessor,\n active: true,\n }))\n : undefined\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n columns: defaultColumns,\n docs,\n enableRowSelections: false,\n parent,\n query: newQuery,\n renderRowTypes: true,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [\n field.defaultLimit,\n field.defaultSort,\n field.admin.defaultColumns,\n collectionConfig?.admin?.pagination?.defaultLimit,\n collectionConfig?.defaultSort,\n query,\n filterOptions,\n getTableState,\n relationTo,\n parent,\n ],\n )\n\n const handleTableRender = useEffectEvent((query: ListQuery, disableTable: boolean) => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n })\n\n useEffect(() => {\n handleTableRender(query, disableTable)\n }, [query, disableTable])\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer, isDrawerOpen, openDrawer }] =\n useDocumentDrawer({\n collectionSlug: selectedCollection,\n })\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n const foundDocIndex = data?.docs?.findIndex((doc) => doc.id === args.doc.id)\n let withNewOrUpdatedDoc: PaginatedDocs['docs'] = undefined\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = args.doc\n withNewOrUpdatedDoc = newDocs\n } else {\n withNewOrUpdatedDoc = [args.doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedDoc)\n },\n [data?.docs, renderTable],\n )\n\n const onDrawerCreate = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n closeDrawer()\n\n void onDrawerSave(args)\n },\n [closeDrawer, onDrawerSave],\n )\n\n const onDrawerDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n const newDocs = data.docs.filter((doc) => doc.id !== args.id)\n void renderTable(newDocs)\n },\n [data?.docs, renderTable],\n )\n\n const preferenceKey = `${Array.isArray(relationTo) ? `${parent.collectionSlug}-${parent.joinPath}` : relationTo}-list`\n\n const canCreate =\n allowCreate !== false &&\n permissions?.collections?.[Array.isArray(relationTo) ? relationTo[0] : relationTo]?.create\n\n useEffect(() => {\n if (Array.isArray(relationTo) && selectedCollection) {\n openDrawer()\n }\n }, [selectedCollection, openDrawer, relationTo])\n\n useEffect(() => {\n if (Array.isArray(relationTo) && !isDrawerOpen && selectedCollection) {\n setSelectedCollection(undefined)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDrawerOpen])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {!Array.isArray(relationTo) && canCreate && (\n <DocumentDrawerToggler className={`${baseClass}__add-new`}>\n {i18n.t('fields:addNew')}\n </DocumentDrawerToggler>\n )}\n\n {Array.isArray(relationTo) && (\n <Fragment>\n <Popup\n button={\n <Button buttonStyle=\"none\" className={`${baseClass}__add-new-polymorphic`}>\n {i18n.t('fields:addNew')}\n <PlusIcon />\n </Button>\n }\n buttonType=\"custom\"\n horizontalAlign=\"center\"\n render={({ close: closePopup }) => (\n <PopupList.ButtonGroup>\n {relationTo.map((relatedCollection) => {\n if (permissions.collections[relatedCollection].create) {\n return (\n <PopupList.Button\n className={`${baseClass}__relation-button--${relatedCollection}`}\n key={relatedCollection}\n onClick={() => {\n closePopup()\n setSelectedCollection(relatedCollection)\n }}\n >\n {getTranslation(\n config.collections.find((each) => each.slug === relatedCollection)\n .labels.singular,\n i18n,\n )}\n </PopupList.Button>\n )\n }\n\n return null\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"medium\"\n />\n </Fragment>\n )}\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={openColumnSelector}\n className={`${baseClass}__toggle-columns ${\n openColumnSelector ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon direction={openColumnSelector ? 'up' : 'down'} />}\n onClick={() => setOpenColumnSelector(!openColumnSelector)}\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n </div>\n </div>\n {BeforeInput}\n {isLoadingTable ? (\n <p>{t('general:loading')}</p>\n ) : (\n <Fragment>\n {data?.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t('general:noResults', {\n label: Array.isArray(relationTo)\n ? i18n.t('general:documents')\n : getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n </p>\n {canCreate && (\n <Button onClick={openDrawer}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n {data?.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n data={data}\n defaultLimit={\n field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit\n }\n modifySearchParams={false}\n onQueryChange={setQuery}\n >\n <TableColumnsProvider\n collectionSlug={Array.isArray(relationTo) ? relationTo[0] : relationTo}\n columnState={columnState}\n docs={data.docs}\n LinkedCellOverride={\n <DrawerLink onDrawerDelete={onDrawerDelete} onDrawerSave={onDrawerSave} />\n }\n preferenceKey={preferenceKey}\n renderRowTypes\n setTable={setTable}\n sortColumnProps={{\n appearance: 'condensed',\n }}\n tableAppearance=\"condensed\"\n >\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={openColumnSelector ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <div className={`${baseClass}__columns-inner`}>\n {collectionConfig && (\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n )}\n </div>\n </AnimateHeight>\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer initialData={initialDrawerData} onSave={onDrawerCreate} />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","Fragment","useCallback","useEffect","useState","Button","Pill","useEffectEvent","ChevronIcon","PlusIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","useTranslation","hoistQueryParamsToAnd","AnimateHeight","ColumnSelector","useDocumentDrawer","Popup","PopupList","RelationshipProvider","TableColumnsProvider","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","disableTable","field","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","parent","relationTo","Table","setTable","config","getEntityConfig","permissions","docs","Array","isArray","reduce","acc","doc","id","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","collectionConfig","collectionSlug","selectedCollection","setSelectedCollection","undefined","isLoadingTable","setIsLoadingTable","data","setData","columnState","setColumnState","getTableState","renderTable","newQuery","limit","String","defaultLimit","admin","pagination","sort","defaultSort","where","defaultColumns","map","accessor","newData","state","newColumnState","NewTable","columns","enableRowSelections","renderRowTypes","tableAppearance","handleTableRender","DocumentDrawer","DocumentDrawerToggler","closeDrawer","isDrawerOpen","openDrawer","onDrawerSave","args","foundDocIndex","findIndex","withNewOrUpdatedDoc","newDocs","onDrawerCreate","onDrawerDelete","filter","preferenceKey","joinPath","canCreate","collections","create","_jsxs","className","_jsx","button","buttonStyle","buttonType","horizontalAlign","render","close","closePopup","ButtonGroup","relatedCollection","onClick","find","each","slug","labels","singular","size","icon","direction","pillStyle","length","label","plural","modifySearchParams","onQueryChange","LinkedCellOverride","sortColumnProps","appearance","height","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport type {\n CollectionSlug,\n Column,\n ColumnPreference,\n JoinFieldClient,\n ListQuery,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useEffect, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { TableColumnsProvider } from '../TableColumns/index.js'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\nimport './index.scss'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n readonly BeforeInput?: React.ReactNode\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly parent?: {\n collectionSlug: CollectionSlug\n id: number | string\n joinPath: string\n }\n readonly relationTo: string | string[]\n}\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n disableTable = false,\n field,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n parent,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n const { config, getEntityConfig } = useConfig()\n\n const { permissions } = useAuth()\n\n const [initialData] = useState<PaginatedDocs>(() => {\n if (initialDataFromProps) {\n return {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n return [...acc, doc]\n }, [])\n : [],\n }\n }\n })\n\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n const [openColumnSelector, setOpenColumnSelector] = useState(false)\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug: relationTo }))\n\n const [selectedCollection, setSelectedCollection] = useState(\n Array.isArray(relationTo) ? undefined : relationTo,\n )\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n const [data, setData] = useState<PaginatedDocs>(initialData)\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (docs?: PaginatedDocs['docs']) => {\n const newQuery: ListQuery = {\n limit: String(field?.defaultLimit || collectionConfig?.admin?.pagination?.defaultLimit),\n sort: field.defaultSort || collectionConfig?.defaultSort,\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n // map columns from string[] to ColumnPreference[]\n const defaultColumns: ColumnPreference[] = field.admin.defaultColumns\n ? field.admin.defaultColumns.map((accessor) => ({\n [accessor]: true,\n }))\n : undefined\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n columns: defaultColumns,\n docs,\n enableRowSelections: false,\n parent,\n query: newQuery,\n renderRowTypes: true,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [\n field.defaultLimit,\n field.defaultSort,\n field.admin.defaultColumns,\n collectionConfig?.admin?.pagination?.defaultLimit,\n collectionConfig?.defaultSort,\n query,\n filterOptions,\n getTableState,\n relationTo,\n parent,\n ],\n )\n\n const handleTableRender = useEffectEvent((query: ListQuery, disableTable: boolean) => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n })\n\n useEffect(() => {\n handleTableRender(query, disableTable)\n }, [query, disableTable])\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer, isDrawerOpen, openDrawer }] =\n useDocumentDrawer({\n collectionSlug: selectedCollection,\n })\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n const foundDocIndex = data?.docs?.findIndex((doc) => doc.id === args.doc.id)\n let withNewOrUpdatedDoc: PaginatedDocs['docs'] = undefined\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = args.doc\n withNewOrUpdatedDoc = newDocs\n } else {\n withNewOrUpdatedDoc = [args.doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedDoc)\n },\n [data?.docs, renderTable],\n )\n\n const onDrawerCreate = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n closeDrawer()\n\n void onDrawerSave(args)\n },\n [closeDrawer, onDrawerSave],\n )\n\n const onDrawerDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n const newDocs = data.docs.filter((doc) => doc.id !== args.id)\n void renderTable(newDocs)\n },\n [data?.docs, renderTable],\n )\n\n const preferenceKey = `${Array.isArray(relationTo) ? `${parent.collectionSlug}-${parent.joinPath}` : relationTo}-list`\n\n const canCreate =\n allowCreate !== false &&\n permissions?.collections?.[Array.isArray(relationTo) ? relationTo[0] : relationTo]?.create\n\n useEffect(() => {\n if (Array.isArray(relationTo) && selectedCollection) {\n openDrawer()\n }\n }, [selectedCollection, openDrawer, relationTo])\n\n useEffect(() => {\n if (Array.isArray(relationTo) && !isDrawerOpen && selectedCollection) {\n setSelectedCollection(undefined)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDrawerOpen])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {!Array.isArray(relationTo) && canCreate && (\n <DocumentDrawerToggler className={`${baseClass}__add-new`}>\n {i18n.t('fields:addNew')}\n </DocumentDrawerToggler>\n )}\n\n {Array.isArray(relationTo) && (\n <Fragment>\n <Popup\n button={\n <Button buttonStyle=\"none\" className={`${baseClass}__add-new-polymorphic`}>\n {i18n.t('fields:addNew')}\n <PlusIcon />\n </Button>\n }\n buttonType=\"custom\"\n horizontalAlign=\"center\"\n render={({ close: closePopup }) => (\n <PopupList.ButtonGroup>\n {relationTo.map((relatedCollection) => {\n if (permissions.collections[relatedCollection].create) {\n return (\n <PopupList.Button\n className={`${baseClass}__relation-button--${relatedCollection}`}\n key={relatedCollection}\n onClick={() => {\n closePopup()\n setSelectedCollection(relatedCollection)\n }}\n >\n {getTranslation(\n config.collections.find((each) => each.slug === relatedCollection)\n .labels.singular,\n i18n,\n )}\n </PopupList.Button>\n )\n }\n\n return null\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"medium\"\n />\n </Fragment>\n )}\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={openColumnSelector}\n className={`${baseClass}__toggle-columns ${\n openColumnSelector ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon direction={openColumnSelector ? 'up' : 'down'} />}\n onClick={() => setOpenColumnSelector(!openColumnSelector)}\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n </div>\n </div>\n {BeforeInput}\n {isLoadingTable ? (\n <p>{t('general:loading')}</p>\n ) : (\n <Fragment>\n {data?.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t('general:noResults', {\n label: Array.isArray(relationTo)\n ? i18n.t('general:documents')\n : getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n </p>\n {canCreate && (\n <Button onClick={openDrawer}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n {data?.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n data={data}\n defaultLimit={\n field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit\n }\n modifySearchParams={false}\n onQueryChange={setQuery}\n >\n <TableColumnsProvider\n collectionSlug={Array.isArray(relationTo) ? relationTo[0] : relationTo}\n columnState={columnState}\n docs={data.docs}\n LinkedCellOverride={\n <DrawerLink onDrawerDelete={onDrawerDelete} onDrawerSave={onDrawerSave} />\n }\n preferenceKey={preferenceKey}\n renderRowTypes\n setTable={setTable}\n sortColumnProps={{\n appearance: 'condensed',\n }}\n tableAppearance=\"condensed\"\n >\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={openColumnSelector ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <div className={`${baseClass}__columns-inner`}>\n {collectionConfig && (\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n )}\n </div>\n </AnimateHeight>\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer initialData={initialDrawerData} onSave={onDrawerCreate} />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,12 @@
1
1
  import type { I18nClient } from '@payloadcms/translations';
2
- import type { ClientCollectionConfig, Column, DefaultCellComponentProps, ListPreferences, PaginatedDocs, Payload, SanitizedCollectionConfig } from 'payload';
2
+ import type { ClientCollectionConfig, Column, ColumnPreference, DefaultCellComponentProps, PaginatedDocs, Payload, SanitizedCollectionConfig } from 'payload';
3
3
  import type { SortColumnProps } from '../SortColumn/index.js';
4
4
  type Args = {
5
5
  beforeRows?: Column[];
6
6
  clientCollectionConfig: ClientCollectionConfig;
7
7
  collectionConfig: SanitizedCollectionConfig;
8
- columnPreferences: ListPreferences['columns'];
9
- columns?: ListPreferences['columns'];
8
+ columnPreferences: ColumnPreference[];
9
+ columns?: ColumnPreference[];
10
10
  customCellProps: DefaultCellComponentProps['customCellProps'];
11
11
  docs: PaginatedDocs['docs'];
12
12
  enableRowSelections: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"buildColumnState.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,sBAAsB,EAGtB,MAAM,EACN,yBAAyB,EAGzB,eAAe,EACf,aAAa,EACb,OAAO,EACP,yBAAyB,EAG1B,MAAM,SAAS,CAAA;AAWhB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAW7D,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,iBAAiB,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IAC7C,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IACpC,eAAe,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;IAC7D,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1C,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,gBAAgB,SAAU,IAAI,KAAG,MAAM,EAsQnD,CAAA"}
1
+ {"version":3,"file":"buildColumnState.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,sBAAsB,EAGtB,MAAM,EACN,gBAAgB,EAChB,yBAAyB,EAGzB,aAAa,EACb,OAAO,EACP,yBAAyB,EAG1B,MAAM,SAAS,CAAA;AAWhB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAW7D,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,iBAAiB,EAAE,gBAAgB,EAAE,CAAA;IACrC,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,eAAe,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;IAC7D,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1C,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,gBAAgB,SAAU,IAAI,KAAG,MAAM,EAgQnD,CAAA"}
@@ -39,8 +39,8 @@ export const buildColumnState = args => {
39
39
  }
40
40
  const sortTo = columnPreferences || columns;
41
41
  const sortFieldMap = (fieldMap, sortTo) => fieldMap?.sort((a, b) => {
42
- const aIndex = sortTo.findIndex(column => 'name' in a && column.accessor === a.name);
43
- const bIndex = sortTo.findIndex(column => 'name' in b && column.accessor === b.name);
42
+ const aIndex = sortTo.findIndex(column => 'name' in a && a.name in column);
43
+ const bIndex = sortTo.findIndex(column => 'name' in b && b.name in column);
44
44
  if (aIndex === -1 && bIndex === -1) {
45
45
  return 0;
46
46
  }
@@ -64,12 +64,11 @@ export const buildColumnState = args => {
64
64
  return acc;
65
65
  }
66
66
  const _field = _sortedFieldMap.find(f => 'name' in field && 'name' in f && f.name === field.name);
67
- const columnPreference = columnPreferences?.find(preference => field && 'name' in field && preference.accessor === field.name);
68
67
  let active = false;
69
- if (columnPreference) {
70
- active = columnPreference.active;
68
+ if (columnPreferences) {
69
+ active = 'name' in field && columnPreferences?.some(col => col?.[field.name]);
71
70
  } else if (columns && Array.isArray(columns) && columns.length > 0) {
72
- active = columns.find(column => field && 'name' in field && column.accessor === field.name)?.active;
71
+ active = 'name' in field && columns.some(col => col?.[field.name]);
73
72
  } else if (activeColumnsIndices.length < 4) {
74
73
  active = true;
75
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"buildColumnState.js","names":["MissingEditorProp","fieldIsHiddenOrDisabled","fieldIsID","fieldIsPresentationalOnly","flattenTopLevelFields","React","RenderCustomComponent","RenderDefaultCell","SortColumn","RenderServerComponent","filterFields","buildColumnState","args","beforeRows","clientCollectionConfig","collectionConfig","columnPreferences","columns","customCellProps","docs","enableRowSelections","i18n","payload","sortColumnProps","useAsTitle","sortedFieldMap","fields","_sortedFieldMap","idFieldIndex","findIndex","field","idField","splice","unshift","useAsTitleFieldIndex","name","useAsTitleField","sortTo","sortFieldMap","fieldMap","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","_field","find","f","columnPreference","preference","active","Array","isArray","length","includes","push","CustomLabelToRender","admin","components","Label","undefined","clientProps","customLabelServerProps","clientField","collectionSlug","slug","CustomLabel","Component","importMap","serverProps","fieldAffectsDataSubFields","type","Heading","_jsx","disable","label","baseCellClientProps","cellData","rowData","renderedCells","map","doc","i","isLinkedColumn","cellClientProps","link","cellServerProps","className","columnIndex","onClick","CustomCell","editor","Error","CellComponent","CustomCellComponent","Cell","CustomComponent","Fallback"],"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type {\n ClientCollectionConfig,\n ClientComponentProps,\n ClientField,\n Column,\n DefaultCellComponentProps,\n DefaultServerCellComponentProps,\n Field,\n ListPreferences,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n ServerComponentProps,\n StaticLabel,\n} from 'payload'\n\nimport { MissingEditorProp } from 'payload'\nimport {\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsPresentationalOnly,\n flattenTopLevelFields,\n} from 'payload/shared'\nimport React from 'react'\n\nimport type { SortColumnProps } from '../SortColumn/index.js'\n\nimport {\n RenderCustomComponent,\n RenderDefaultCell,\n SortColumn,\n // eslint-disable-next-line payload/no-imports-from-exports-dir\n} from '../../exports/client/index.js'\nimport { RenderServerComponent } from '../RenderServerComponent/index.js'\nimport { filterFields } from './filterFields.js'\n\ntype Args = {\n beforeRows?: Column[]\n clientCollectionConfig: ClientCollectionConfig\n collectionConfig: SanitizedCollectionConfig\n columnPreferences: ListPreferences['columns']\n columns?: ListPreferences['columns']\n customCellProps: DefaultCellComponentProps['customCellProps']\n docs: PaginatedDocs['docs']\n enableRowSelections: boolean\n enableRowTypes?: boolean\n i18n: I18nClient\n payload: Payload\n sortColumnProps?: Partial<SortColumnProps>\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const buildColumnState = (args: Args): Column[] => {\n const {\n beforeRows,\n clientCollectionConfig,\n collectionConfig,\n columnPreferences,\n columns,\n customCellProps,\n docs,\n enableRowSelections,\n i18n,\n payload,\n sortColumnProps,\n useAsTitle,\n } = args\n\n // clientFields contains the fake `id` column\n let sortedFieldMap = flattenTopLevelFields(\n filterFields(clientCollectionConfig.fields),\n true,\n ) as ClientField[]\n\n let _sortedFieldMap = flattenTopLevelFields(\n filterFields(collectionConfig.fields),\n true,\n ) as Field[] // TODO: think of a way to avoid this additional flatten\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap?.findIndex((field) => fieldIsID(field))\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n const sortFieldMap = (fieldMap, sortTo) =>\n fieldMap?.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n\n if (aIndex === -1 && bIndex === -1) {\n return 0\n }\n\n if (aIndex === -1) {\n return 1\n }\n\n if (bIndex === -1) {\n return -1\n }\n\n return aIndex - bIndex\n })\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortFieldMap(sortedFieldMap, sortTo)\n _sortedFieldMap = sortFieldMap(_sortedFieldMap, sortTo) // TODO: think of a way to avoid this additional sort\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap?.reduce((acc, field, index) => {\n if (fieldIsHiddenOrDisabled(field) && !fieldIsID(field)) {\n return acc\n }\n\n const _field = _sortedFieldMap.find(\n (f) => 'name' in field && 'name' in f && f.name === field.name,\n )\n\n const columnPreference = columnPreferences?.find(\n (preference) => field && 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find(\n (column) => field && 'name' in field && column.accessor === field.name,\n )?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n const CustomLabelToRender =\n _field &&\n 'admin' in _field &&\n 'components' in _field.admin &&\n 'Label' in _field.admin.components &&\n _field.admin.components.Label !== undefined // let it return `null`\n ? _field.admin.components.Label\n : undefined\n\n // TODO: customComponent will be optional in v4\n const clientProps: Omit<ClientComponentProps, 'customComponents'> = {\n field,\n }\n\n const customLabelServerProps: Pick<\n ServerComponentProps,\n 'clientField' | 'collectionSlug' | 'field' | 'i18n' | 'payload'\n > = {\n clientField: field,\n collectionSlug: collectionConfig.slug,\n field: _field,\n i18n,\n payload,\n }\n\n const CustomLabel = CustomLabelToRender\n ? RenderServerComponent({\n clientProps,\n Component: CustomLabelToRender,\n importMap: payload.importMap,\n serverProps: customLabelServerProps,\n })\n : undefined\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n disable={fieldAffectsDataSubFields || fieldIsPresentationalOnly(field) || undefined}\n Label={CustomLabel}\n label={field && 'label' in field ? (field.label as StaticLabel) : undefined}\n name={'name' in field ? field.name : undefined}\n {...(sortColumnProps || {})}\n />\n )\n\n const baseCellClientProps: DefaultCellComponentProps = {\n cellData: undefined,\n collectionSlug: clientCollectionConfig.slug,\n customCellProps,\n field,\n rowData: undefined,\n }\n\n const column: Column = {\n accessor: 'name' in field ? field.name : undefined,\n active,\n CustomLabel,\n field,\n Heading,\n renderedCells: active\n ? docs.map((doc, i) => {\n const isLinkedColumn = index === activeColumnsIndices[0]\n\n const cellClientProps: DefaultCellComponentProps = {\n ...baseCellClientProps,\n cellData: 'name' in field ? doc[field.name] : undefined,\n link: isLinkedColumn,\n rowData: doc,\n }\n\n const cellServerProps: DefaultServerCellComponentProps = {\n cellData: cellClientProps.cellData,\n className: baseCellClientProps.className,\n collectionConfig,\n collectionSlug: collectionConfig.slug,\n columnIndex: baseCellClientProps.columnIndex,\n customCellProps: baseCellClientProps.customCellProps,\n field: _field,\n i18n,\n link: cellClientProps.link,\n onClick: baseCellClientProps.onClick,\n payload,\n rowData: doc,\n }\n\n let CustomCell = null\n\n if (_field?.type === 'richText') {\n if (!_field?.editor) {\n throw new MissingEditorProp(_field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof _field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!_field.admin) {\n _field.admin = {}\n }\n\n if (!_field.admin.components) {\n _field.admin.components = {}\n }\n\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: _field.editor.CellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n const CustomCellComponent = _field?.admin?.components?.Cell\n\n if (CustomCellComponent) {\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: CustomCellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n CustomCell = undefined\n }\n }\n\n return (\n <RenderCustomComponent\n CustomComponent={CustomCell}\n Fallback={\n <RenderDefaultCell\n clientProps={cellClientProps}\n columnIndex={index}\n enableRowSelections={enableRowSelections}\n isLinkedColumn={isLinkedColumn}\n />\n }\n key={`${i}-${index}`}\n />\n )\n })\n : [],\n }\n\n acc.push(column)\n\n return acc\n }, [])\n\n if (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"buildColumnState.js","names":["MissingEditorProp","fieldIsHiddenOrDisabled","fieldIsID","fieldIsPresentationalOnly","flattenTopLevelFields","React","RenderCustomComponent","RenderDefaultCell","SortColumn","RenderServerComponent","filterFields","buildColumnState","args","beforeRows","clientCollectionConfig","collectionConfig","columnPreferences","columns","customCellProps","docs","enableRowSelections","i18n","payload","sortColumnProps","useAsTitle","sortedFieldMap","fields","_sortedFieldMap","idFieldIndex","findIndex","field","idField","splice","unshift","useAsTitleFieldIndex","name","useAsTitleField","sortTo","sortFieldMap","fieldMap","sort","a","b","aIndex","column","bIndex","activeColumnsIndices","sorted","reduce","acc","index","_field","find","f","active","some","col","Array","isArray","length","includes","push","CustomLabelToRender","admin","components","Label","undefined","clientProps","customLabelServerProps","clientField","collectionSlug","slug","CustomLabel","Component","importMap","serverProps","fieldAffectsDataSubFields","type","Heading","_jsx","disable","label","baseCellClientProps","cellData","rowData","accessor","renderedCells","map","doc","i","isLinkedColumn","cellClientProps","link","cellServerProps","className","columnIndex","onClick","CustomCell","editor","Error","CellComponent","CustomCellComponent","Cell","CustomComponent","Fallback"],"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type {\n ClientCollectionConfig,\n ClientComponentProps,\n ClientField,\n Column,\n ColumnPreference,\n DefaultCellComponentProps,\n DefaultServerCellComponentProps,\n Field,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n ServerComponentProps,\n StaticLabel,\n} from 'payload'\n\nimport { MissingEditorProp } from 'payload'\nimport {\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsPresentationalOnly,\n flattenTopLevelFields,\n} from 'payload/shared'\nimport React from 'react'\n\nimport type { SortColumnProps } from '../SortColumn/index.js'\n\nimport {\n RenderCustomComponent,\n RenderDefaultCell,\n SortColumn,\n // eslint-disable-next-line payload/no-imports-from-exports-dir\n} from '../../exports/client/index.js'\nimport { RenderServerComponent } from '../RenderServerComponent/index.js'\nimport { filterFields } from './filterFields.js'\n\ntype Args = {\n beforeRows?: Column[]\n clientCollectionConfig: ClientCollectionConfig\n collectionConfig: SanitizedCollectionConfig\n columnPreferences: ColumnPreference[]\n columns?: ColumnPreference[]\n customCellProps: DefaultCellComponentProps['customCellProps']\n docs: PaginatedDocs['docs']\n enableRowSelections: boolean\n enableRowTypes?: boolean\n i18n: I18nClient\n payload: Payload\n sortColumnProps?: Partial<SortColumnProps>\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const buildColumnState = (args: Args): Column[] => {\n const {\n beforeRows,\n clientCollectionConfig,\n collectionConfig,\n columnPreferences,\n columns,\n customCellProps,\n docs,\n enableRowSelections,\n i18n,\n payload,\n sortColumnProps,\n useAsTitle,\n } = args\n\n // clientFields contains the fake `id` column\n let sortedFieldMap = flattenTopLevelFields(\n filterFields(clientCollectionConfig.fields),\n true,\n ) as ClientField[]\n\n let _sortedFieldMap = flattenTopLevelFields(\n filterFields(collectionConfig.fields),\n true,\n ) as Field[] // TODO: think of a way to avoid this additional flatten\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap?.findIndex((field) => fieldIsID(field))\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n const sortFieldMap = (fieldMap, sortTo: ColumnPreference[]) =>\n fieldMap?.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && a.name in column)\n const bIndex = sortTo.findIndex((column) => 'name' in b && b.name in column)\n\n if (aIndex === -1 && bIndex === -1) {\n return 0\n }\n\n if (aIndex === -1) {\n return 1\n }\n\n if (bIndex === -1) {\n return -1\n }\n\n return aIndex - bIndex\n })\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortFieldMap(sortedFieldMap, sortTo)\n _sortedFieldMap = sortFieldMap(_sortedFieldMap, sortTo) // TODO: think of a way to avoid this additional sort\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap?.reduce((acc, field, index) => {\n if (fieldIsHiddenOrDisabled(field) && !fieldIsID(field)) {\n return acc\n }\n\n const _field = _sortedFieldMap.find(\n (f) => 'name' in field && 'name' in f && f.name === field.name,\n )\n\n let active = false\n\n if (columnPreferences) {\n active = 'name' in field && columnPreferences?.some((col) => col?.[field.name])\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = 'name' in field && columns.some((col) => col?.[field.name])\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n const CustomLabelToRender =\n _field &&\n 'admin' in _field &&\n 'components' in _field.admin &&\n 'Label' in _field.admin.components &&\n _field.admin.components.Label !== undefined // let it return `null`\n ? _field.admin.components.Label\n : undefined\n\n // TODO: customComponent will be optional in v4\n const clientProps: Omit<ClientComponentProps, 'customComponents'> = {\n field,\n }\n\n const customLabelServerProps: Pick<\n ServerComponentProps,\n 'clientField' | 'collectionSlug' | 'field' | 'i18n' | 'payload'\n > = {\n clientField: field,\n collectionSlug: collectionConfig.slug,\n field: _field,\n i18n,\n payload,\n }\n\n const CustomLabel = CustomLabelToRender\n ? RenderServerComponent({\n clientProps,\n Component: CustomLabelToRender,\n importMap: payload.importMap,\n serverProps: customLabelServerProps,\n })\n : undefined\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n disable={fieldAffectsDataSubFields || fieldIsPresentationalOnly(field) || undefined}\n Label={CustomLabel}\n label={field && 'label' in field ? (field.label as StaticLabel) : undefined}\n name={'name' in field ? field.name : undefined}\n {...(sortColumnProps || {})}\n />\n )\n\n const baseCellClientProps: DefaultCellComponentProps = {\n cellData: undefined,\n collectionSlug: clientCollectionConfig.slug,\n customCellProps,\n field,\n rowData: undefined,\n }\n\n const column: Column = {\n accessor: 'name' in field ? field.name : undefined,\n active,\n CustomLabel,\n field,\n Heading,\n renderedCells: active\n ? docs.map((doc, i) => {\n const isLinkedColumn = index === activeColumnsIndices[0]\n\n const cellClientProps: DefaultCellComponentProps = {\n ...baseCellClientProps,\n cellData: 'name' in field ? doc[field.name] : undefined,\n link: isLinkedColumn,\n rowData: doc,\n }\n\n const cellServerProps: DefaultServerCellComponentProps = {\n cellData: cellClientProps.cellData,\n className: baseCellClientProps.className,\n collectionConfig,\n collectionSlug: collectionConfig.slug,\n columnIndex: baseCellClientProps.columnIndex,\n customCellProps: baseCellClientProps.customCellProps,\n field: _field,\n i18n,\n link: cellClientProps.link,\n onClick: baseCellClientProps.onClick,\n payload,\n rowData: doc,\n }\n\n let CustomCell = null\n\n if (_field?.type === 'richText') {\n if (!_field?.editor) {\n throw new MissingEditorProp(_field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof _field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!_field.admin) {\n _field.admin = {}\n }\n\n if (!_field.admin.components) {\n _field.admin.components = {}\n }\n\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: _field.editor.CellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n const CustomCellComponent = _field?.admin?.components?.Cell\n\n if (CustomCellComponent) {\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: CustomCellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n CustomCell = undefined\n }\n }\n\n return (\n <RenderCustomComponent\n CustomComponent={CustomCell}\n Fallback={\n <RenderDefaultCell\n clientProps={cellClientProps}\n columnIndex={index}\n enableRowSelections={enableRowSelections}\n isLinkedColumn={isLinkedColumn}\n />\n }\n key={`${i}-${index}`}\n />\n )\n })\n : [],\n }\n\n acc.push(column)\n\n return acc\n }, [])\n\n if (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,10 @@
1
1
  import type { I18nClient } from '@payloadcms/translations';
2
- import type { ClientField, Column, DefaultCellComponentProps, ListPreferences, PaginatedDocs, Payload, SanitizedCollectionConfig } from 'payload';
2
+ import type { ClientField, Column, ColumnPreference, DefaultCellComponentProps, PaginatedDocs, Payload, SanitizedCollectionConfig } from 'payload';
3
3
  import type { SortColumnProps } from '../SortColumn/index.js';
4
4
  type Args = {
5
5
  beforeRows?: Column[];
6
- columnPreferences: ListPreferences['columns'];
7
- columns?: ListPreferences['columns'];
6
+ columnPreferences: ColumnPreference[];
7
+ columns?: ColumnPreference[];
8
8
  customCellProps: DefaultCellComponentProps['customCellProps'];
9
9
  docs: PaginatedDocs['docs'];
10
10
  enableRowSelections: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"buildPolymorphicColumnState.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/buildPolymorphicColumnState.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,WAAW,EACX,MAAM,EACN,yBAAyB,EAGzB,eAAe,EACf,aAAa,EACb,OAAO,EACP,yBAAyB,EAE1B,MAAM,SAAS,CAAA;AAWhB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAW7D,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,iBAAiB,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IAC7C,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IACpC,eAAe,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;IAC7D,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1C,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,2BAA2B,SAAU,IAAI,KAAG,MAAM,EA2P9D,CAAA"}
1
+ {"version":3,"file":"buildPolymorphicColumnState.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/buildPolymorphicColumnState.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,yBAAyB,EAGzB,aAAa,EACb,OAAO,EACP,yBAAyB,EAE1B,MAAM,SAAS,CAAA;AAWhB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAW7D,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,iBAAiB,EAAE,gBAAgB,EAAE,CAAA;IACrC,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,eAAe,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;IAC7D,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1C,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,2BAA2B,SAAU,IAAI,KAAG,MAAM,EAqP9D,CAAA"}
@@ -39,8 +39,8 @@ export const buildPolymorphicColumnState = args => {
39
39
  }
40
40
  const sortTo = columnPreferences || columns;
41
41
  const sortFieldMap = (fieldMap, sortTo) => fieldMap?.sort((a, b) => {
42
- const aIndex = sortTo.findIndex(column => 'name' in a && column.accessor === a.name);
43
- const bIndex = sortTo.findIndex(column => 'name' in b && column.accessor === b.name);
42
+ const aIndex = sortTo.findIndex(column => 'name' in a && a.name in column);
43
+ const bIndex = sortTo.findIndex(column => 'name' in b && b.name in column);
44
44
  if (aIndex === -1 && bIndex === -1) {
45
45
  return 0;
46
46
  }
@@ -64,12 +64,11 @@ export const buildPolymorphicColumnState = args => {
64
64
  return acc;
65
65
  }
66
66
  const _field = _sortedFieldMap.find(f => 'name' in field && 'name' in f && f.name === field.name);
67
- const columnPreference = columnPreferences?.find(preference => field && 'name' in field && preference.accessor === field.name);
68
67
  let active = false;
69
- if (columnPreference) {
70
- active = columnPreference.active;
68
+ if (columnPreferences) {
69
+ active = 'name' in field && columnPreferences?.some(col => col?.[field.name]);
71
70
  } else if (columns && Array.isArray(columns) && columns.length > 0) {
72
- active = columns.find(column => field && 'name' in field && column.accessor === field.name)?.active;
71
+ active = 'name' in field && columns.some(col => col?.[field.name]);
73
72
  } else if (activeColumnsIndices.length < 4) {
74
73
  active = true;
75
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"buildPolymorphicColumnState.js","names":["MissingEditorProp","fieldIsHiddenOrDisabled","fieldIsID","fieldIsPresentationalOnly","flattenTopLevelFields","React","RenderCustomComponent","RenderDefaultCell","SortColumn","RenderServerComponent","filterFields","buildPolymorphicColumnState","args","beforeRows","columnPreferences","columns","customCellProps","docs","enableRowSelections","fields","i18n","payload","sortColumnProps","useAsTitle","sortedFieldMap","_sortedFieldMap","idFieldIndex","findIndex","field","idField","splice","unshift","useAsTitleFieldIndex","name","useAsTitleField","sortTo","sortFieldMap","fieldMap","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","_field","find","f","columnPreference","preference","active","Array","isArray","length","includes","push","CustomLabel","undefined","fieldAffectsDataSubFields","type","Heading","_jsx","disable","Label","label","renderedCells","map","doc","i","isLinkedColumn","collectionSlug","relationTo","value","baseCellClientProps","cellData","rowData","cellClientProps","link","cellServerProps","className","collectionConfig","collections","config","columnIndex","onClick","CustomCell","editor","Error","admin","components","clientProps","Component","CellComponent","importMap","serverProps","CustomCellComponent","Cell","CustomComponent","Fallback"],"sources":["../../../src/elements/TableColumns/buildPolymorphicColumnState.tsx"],"sourcesContent":["// Dirty copy of buildColumnState.tsx with some changes to not break things\n\nimport type { I18nClient } from '@payloadcms/translations'\nimport type {\n ClientField,\n Column,\n DefaultCellComponentProps,\n DefaultServerCellComponentProps,\n Field,\n ListPreferences,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n StaticLabel,\n} from 'payload'\n\nimport { MissingEditorProp } from 'payload'\nimport {\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsPresentationalOnly,\n flattenTopLevelFields,\n} from 'payload/shared'\nimport React from 'react'\n\nimport type { SortColumnProps } from '../SortColumn/index.js'\n\nimport {\n RenderCustomComponent,\n RenderDefaultCell,\n SortColumn,\n // eslint-disable-next-line payload/no-imports-from-exports-dir\n} from '../../exports/client/index.js'\nimport { RenderServerComponent } from '../RenderServerComponent/index.js'\nimport { filterFields } from './filterFields.js'\n\ntype Args = {\n beforeRows?: Column[]\n columnPreferences: ListPreferences['columns']\n columns?: ListPreferences['columns']\n customCellProps: DefaultCellComponentProps['customCellProps']\n docs: PaginatedDocs['docs']\n enableRowSelections: boolean\n enableRowTypes?: boolean\n fields: ClientField[]\n i18n: I18nClient\n payload: Payload\n sortColumnProps?: Partial<SortColumnProps>\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const buildPolymorphicColumnState = (args: Args): Column[] => {\n const {\n beforeRows,\n columnPreferences,\n columns,\n customCellProps,\n docs,\n enableRowSelections,\n fields,\n i18n,\n payload,\n sortColumnProps,\n useAsTitle,\n } = args\n\n // clientFields contains the fake `id` column\n let sortedFieldMap = flattenTopLevelFields(filterFields(fields), true) as ClientField[]\n\n let _sortedFieldMap = flattenTopLevelFields(filterFields(fields), true) as Field[] // TODO: think of a way to avoid this additional flatten\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap?.findIndex((field) => fieldIsID(field))\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n const sortFieldMap = (fieldMap, sortTo) =>\n fieldMap?.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n\n if (aIndex === -1 && bIndex === -1) {\n return 0\n }\n\n if (aIndex === -1) {\n return 1\n }\n\n if (bIndex === -1) {\n return -1\n }\n\n return aIndex - bIndex\n })\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortFieldMap(sortedFieldMap, sortTo)\n _sortedFieldMap = sortFieldMap(_sortedFieldMap, sortTo) // TODO: think of a way to avoid this additional sort\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap?.reduce((acc, field, index) => {\n if (fieldIsHiddenOrDisabled(field) && !fieldIsID(field)) {\n return acc\n }\n\n const _field = _sortedFieldMap.find(\n (f) => 'name' in field && 'name' in f && f.name === field.name,\n )\n\n const columnPreference = columnPreferences?.find(\n (preference) => field && 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find(\n (column) => field && 'name' in field && column.accessor === field.name,\n )?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n // const CustomLabelToRender =\n // _field &&\n // 'admin' in _field &&\n // 'components' in _field.admin &&\n // 'Label' in _field.admin.components &&\n // _field.admin.components.Label !== undefined // let it return `null`\n // ? _field.admin.components.Label\n // : undefined\n\n // // TODO: customComponent will be optional in v4\n // const clientProps: Omit<ClientComponentProps, 'customComponents'> = {\n // field,\n // }\n\n // const customLabelServerProps: Pick<\n // ServerComponentProps,\n // 'clientField' | 'collectionSlug' | 'field' | 'i18n' | 'payload'\n // > = {\n // clientField: field,\n // collectionSlug: collectionConfig.slug,\n // field: _field,\n // i18n,\n // payload,\n // }\n\n const CustomLabel = undefined\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n disable={fieldAffectsDataSubFields || fieldIsPresentationalOnly(field) || undefined}\n Label={CustomLabel}\n label={field && 'label' in field ? (field.label as StaticLabel) : undefined}\n name={'name' in field ? field.name : undefined}\n {...(sortColumnProps || {})}\n />\n )\n\n const column: Column = {\n accessor: 'name' in field ? field.name : undefined,\n active,\n CustomLabel,\n field,\n Heading,\n renderedCells: active\n ? docs.map((doc, i) => {\n const isLinkedColumn = index === activeColumnsIndices[0]\n\n const collectionSlug = doc.relationTo\n doc = doc.value\n\n const baseCellClientProps: DefaultCellComponentProps = {\n cellData: undefined,\n collectionSlug,\n customCellProps,\n field,\n rowData: undefined,\n }\n\n const cellClientProps: DefaultCellComponentProps = {\n ...baseCellClientProps,\n cellData: 'name' in field ? doc[field.name] : undefined,\n link: isLinkedColumn,\n rowData: doc,\n }\n\n const cellServerProps: DefaultServerCellComponentProps = {\n cellData: cellClientProps.cellData,\n className: baseCellClientProps.className,\n collectionConfig: payload.collections[collectionSlug].config,\n collectionSlug,\n columnIndex: baseCellClientProps.columnIndex,\n customCellProps: baseCellClientProps.customCellProps,\n field: _field,\n i18n,\n link: cellClientProps.link,\n onClick: baseCellClientProps.onClick,\n payload,\n rowData: doc,\n }\n\n let CustomCell = null\n\n if (_field?.type === 'richText') {\n if (!_field?.editor) {\n throw new MissingEditorProp(_field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof _field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!_field.admin) {\n _field.admin = {}\n }\n\n if (!_field.admin.components) {\n _field.admin.components = {}\n }\n\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: _field.editor.CellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n const CustomCellComponent = _field?.admin?.components?.Cell\n\n if (CustomCellComponent) {\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: CustomCellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n CustomCell = undefined\n }\n }\n\n return (\n <RenderCustomComponent\n CustomComponent={CustomCell}\n Fallback={\n <RenderDefaultCell\n clientProps={cellClientProps}\n columnIndex={index}\n enableRowSelections={enableRowSelections}\n isLinkedColumn={isLinkedColumn}\n />\n }\n key={`${i}-${index}`}\n />\n )\n })\n : [],\n }\n\n acc.push(column)\n\n return acc\n }, [])\n\n if (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"buildPolymorphicColumnState.js","names":["MissingEditorProp","fieldIsHiddenOrDisabled","fieldIsID","fieldIsPresentationalOnly","flattenTopLevelFields","React","RenderCustomComponent","RenderDefaultCell","SortColumn","RenderServerComponent","filterFields","buildPolymorphicColumnState","args","beforeRows","columnPreferences","columns","customCellProps","docs","enableRowSelections","fields","i18n","payload","sortColumnProps","useAsTitle","sortedFieldMap","_sortedFieldMap","idFieldIndex","findIndex","field","idField","splice","unshift","useAsTitleFieldIndex","name","useAsTitleField","sortTo","sortFieldMap","fieldMap","sort","a","b","aIndex","column","bIndex","activeColumnsIndices","sorted","reduce","acc","index","_field","find","f","active","some","col","Array","isArray","length","includes","push","CustomLabel","undefined","fieldAffectsDataSubFields","type","Heading","_jsx","disable","Label","label","accessor","renderedCells","map","doc","i","isLinkedColumn","collectionSlug","relationTo","value","baseCellClientProps","cellData","rowData","cellClientProps","link","cellServerProps","className","collectionConfig","collections","config","columnIndex","onClick","CustomCell","editor","Error","admin","components","clientProps","Component","CellComponent","importMap","serverProps","CustomCellComponent","Cell","CustomComponent","Fallback"],"sources":["../../../src/elements/TableColumns/buildPolymorphicColumnState.tsx"],"sourcesContent":["// Dirty copy of buildColumnState.tsx with some changes to not break things\n\nimport type { I18nClient } from '@payloadcms/translations'\nimport type {\n ClientField,\n Column,\n ColumnPreference,\n DefaultCellComponentProps,\n DefaultServerCellComponentProps,\n Field,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n StaticLabel,\n} from 'payload'\n\nimport { MissingEditorProp } from 'payload'\nimport {\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsPresentationalOnly,\n flattenTopLevelFields,\n} from 'payload/shared'\nimport React from 'react'\n\nimport type { SortColumnProps } from '../SortColumn/index.js'\n\nimport {\n RenderCustomComponent,\n RenderDefaultCell,\n SortColumn,\n // eslint-disable-next-line payload/no-imports-from-exports-dir\n} from '../../exports/client/index.js'\nimport { RenderServerComponent } from '../RenderServerComponent/index.js'\nimport { filterFields } from './filterFields.js'\n\ntype Args = {\n beforeRows?: Column[]\n columnPreferences: ColumnPreference[]\n columns?: ColumnPreference[]\n customCellProps: DefaultCellComponentProps['customCellProps']\n docs: PaginatedDocs['docs']\n enableRowSelections: boolean\n enableRowTypes?: boolean\n fields: ClientField[]\n i18n: I18nClient\n payload: Payload\n sortColumnProps?: Partial<SortColumnProps>\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const buildPolymorphicColumnState = (args: Args): Column[] => {\n const {\n beforeRows,\n columnPreferences,\n columns,\n customCellProps,\n docs,\n enableRowSelections,\n fields,\n i18n,\n payload,\n sortColumnProps,\n useAsTitle,\n } = args\n\n // clientFields contains the fake `id` column\n let sortedFieldMap = flattenTopLevelFields(filterFields(fields), true) as ClientField[]\n\n let _sortedFieldMap = flattenTopLevelFields(filterFields(fields), true) as Field[] // TODO: think of a way to avoid this additional flatten\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap?.findIndex((field) => fieldIsID(field))\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n const sortFieldMap = (fieldMap, sortTo) =>\n fieldMap?.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && a.name in column)\n const bIndex = sortTo.findIndex((column) => 'name' in b && b.name in column)\n\n if (aIndex === -1 && bIndex === -1) {\n return 0\n }\n\n if (aIndex === -1) {\n return 1\n }\n\n if (bIndex === -1) {\n return -1\n }\n\n return aIndex - bIndex\n })\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortFieldMap(sortedFieldMap, sortTo)\n _sortedFieldMap = sortFieldMap(_sortedFieldMap, sortTo) // TODO: think of a way to avoid this additional sort\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap?.reduce((acc, field, index) => {\n if (fieldIsHiddenOrDisabled(field) && !fieldIsID(field)) {\n return acc\n }\n\n const _field = _sortedFieldMap.find(\n (f) => 'name' in field && 'name' in f && f.name === field.name,\n )\n\n let active = false\n\n if (columnPreferences) {\n active = 'name' in field && columnPreferences?.some((col) => col?.[field.name])\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = 'name' in field && columns.some((col) => col?.[field.name])\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n // const CustomLabelToRender =\n // _field &&\n // 'admin' in _field &&\n // 'components' in _field.admin &&\n // 'Label' in _field.admin.components &&\n // _field.admin.components.Label !== undefined // let it return `null`\n // ? _field.admin.components.Label\n // : undefined\n\n // // TODO: customComponent will be optional in v4\n // const clientProps: Omit<ClientComponentProps, 'customComponents'> = {\n // field,\n // }\n\n // const customLabelServerProps: Pick<\n // ServerComponentProps,\n // 'clientField' | 'collectionSlug' | 'field' | 'i18n' | 'payload'\n // > = {\n // clientField: field,\n // collectionSlug: collectionConfig.slug,\n // field: _field,\n // i18n,\n // payload,\n // }\n\n const CustomLabel = undefined\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n disable={fieldAffectsDataSubFields || fieldIsPresentationalOnly(field) || undefined}\n Label={CustomLabel}\n label={field && 'label' in field ? (field.label as StaticLabel) : undefined}\n name={'name' in field ? field.name : undefined}\n {...(sortColumnProps || {})}\n />\n )\n\n const column: Column = {\n accessor: 'name' in field ? field.name : undefined,\n active,\n CustomLabel,\n field,\n Heading,\n renderedCells: active\n ? docs.map((doc, i) => {\n const isLinkedColumn = index === activeColumnsIndices[0]\n\n const collectionSlug = doc.relationTo\n doc = doc.value\n\n const baseCellClientProps: DefaultCellComponentProps = {\n cellData: undefined,\n collectionSlug,\n customCellProps,\n field,\n rowData: undefined,\n }\n\n const cellClientProps: DefaultCellComponentProps = {\n ...baseCellClientProps,\n cellData: 'name' in field ? doc[field.name] : undefined,\n link: isLinkedColumn,\n rowData: doc,\n }\n\n const cellServerProps: DefaultServerCellComponentProps = {\n cellData: cellClientProps.cellData,\n className: baseCellClientProps.className,\n collectionConfig: payload.collections[collectionSlug].config,\n collectionSlug,\n columnIndex: baseCellClientProps.columnIndex,\n customCellProps: baseCellClientProps.customCellProps,\n field: _field,\n i18n,\n link: cellClientProps.link,\n onClick: baseCellClientProps.onClick,\n payload,\n rowData: doc,\n }\n\n let CustomCell = null\n\n if (_field?.type === 'richText') {\n if (!_field?.editor) {\n throw new MissingEditorProp(_field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof _field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!_field.admin) {\n _field.admin = {}\n }\n\n if (!_field.admin.components) {\n _field.admin.components = {}\n }\n\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: _field.editor.CellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n const CustomCellComponent = _field?.admin?.components?.Cell\n\n if (CustomCellComponent) {\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: CustomCellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n CustomCell = undefined\n }\n }\n\n return (\n <RenderCustomComponent\n CustomComponent={CustomCell}\n Fallback={\n <RenderDefaultCell\n clientProps={cellClientProps}\n columnIndex={index}\n enableRowSelections={enableRowSelections}\n isLinkedColumn={isLinkedColumn}\n />\n }\n key={`${i}-${index}`}\n />\n )\n })\n : [],\n }\n\n acc.push(column)\n\n return acc\n }, [])\n\n if (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,8 @@
1
- import type { ClientField, CollectionConfig, Field, ListPreferences } from 'payload';
1
+ import type { ClientField, CollectionConfig, ColumnPreference, Field } from 'payload';
2
2
  /**
3
3
  * Returns the initial columns to display in the table based on the following criteria:
4
4
  * 1. If `defaultColumns` is set in the collection config, use those columns
5
5
  * 2. Otherwise take `useAtTitle, if set, and the next 3 fields that are not hidden or disabled
6
6
  */
7
- export declare const getInitialColumns: <T extends ClientField[] | Field[]>(fields: T, useAsTitle: CollectionConfig["admin"]["useAsTitle"], defaultColumns: CollectionConfig["admin"]["defaultColumns"]) => ListPreferences["columns"];
7
+ export declare const getInitialColumns: <T extends ClientField[] | Field[]>(fields: T, useAsTitle: CollectionConfig["admin"]["useAsTitle"], defaultColumns: CollectionConfig["admin"]["defaultColumns"]) => ColumnPreference[];
8
8
  //# sourceMappingURL=getInitialColumns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getInitialColumns.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/getInitialColumns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAiCpF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,WAAW,EAAE,GAAG,KAAK,EAAE,UACzD,CAAC,cACG,gBAAgB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,kBACnC,gBAAgB,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,KAC1D,eAAe,CAAC,SAAS,CAoB3B,CAAA"}
1
+ {"version":3,"file":"getInitialColumns.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/getInitialColumns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAiCrF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,WAAW,EAAE,GAAG,KAAK,EAAE,UACzD,CAAC,cACG,gBAAgB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,kBACnC,gBAAgB,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,KAC1D,gBAAgB,EAmBlB,CAAA"}
@@ -29,8 +29,7 @@ export const getInitialColumns = (fields, useAsTitle, defaultColumns) => {
29
29
  initialColumns = initialColumns.slice(0, 4);
30
30
  }
31
31
  return initialColumns.map(column => ({
32
- accessor: column,
33
- active: true
32
+ [column]: true
34
33
  }));
35
34
  };
36
35
  //# sourceMappingURL=getInitialColumns.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getInitialColumns.js","names":["fieldAffectsData","getRemainingColumns","fields","useAsTitle","reduce","remaining","field","name","type","tabs","tabFieldColumns","tab","getInitialColumns","defaultColumns","initialColumns","Array","isArray","length","push","remainingColumns","concat","slice","map","column","accessor","active"],"sources":["../../../src/elements/TableColumns/getInitialColumns.ts"],"sourcesContent":["import type { ClientField, CollectionConfig, Field, ListPreferences } from 'payload'\n\nimport { fieldAffectsData } from 'payload/shared'\n\nconst getRemainingColumns = <T extends ClientField[] | Field[]>(\n fields: T,\n useAsTitle: string,\n): ListPreferences['columns'] =>\n fields?.reduce((remaining, field) => {\n if (fieldAffectsData(field) && field.name === useAsTitle) {\n return remaining\n }\n\n if (!fieldAffectsData(field) && 'fields' in field) {\n return [...remaining, ...getRemainingColumns(field.fields, useAsTitle)]\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n return [\n ...remaining,\n ...field.tabs.reduce(\n (tabFieldColumns, tab) => [\n ...tabFieldColumns,\n ...('name' in tab ? [tab.name] : getRemainingColumns(tab.fields, useAsTitle)),\n ],\n [],\n ),\n ]\n }\n\n return [...remaining, field.name]\n }, [])\n\n/**\n * Returns the initial columns to display in the table based on the following criteria:\n * 1. If `defaultColumns` is set in the collection config, use those columns\n * 2. Otherwise take `useAtTitle, if set, and the next 3 fields that are not hidden or disabled\n */\nexport const getInitialColumns = <T extends ClientField[] | Field[]>(\n fields: T,\n useAsTitle: CollectionConfig['admin']['useAsTitle'],\n defaultColumns: CollectionConfig['admin']['defaultColumns'],\n): ListPreferences['columns'] => {\n let initialColumns = []\n\n if (Array.isArray(defaultColumns) && defaultColumns.length >= 1) {\n initialColumns = defaultColumns\n } else {\n if (useAsTitle) {\n initialColumns.push(useAsTitle)\n }\n\n const remainingColumns = getRemainingColumns(fields, useAsTitle)\n\n initialColumns = initialColumns.concat(remainingColumns)\n initialColumns = initialColumns.slice(0, 4)\n }\n\n return initialColumns.map((column) => ({\n accessor: column,\n active: true,\n }))\n}\n"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ;AAEjC,MAAMC,mBAAA,GAAsBA,CAC1BC,MAAA,EACAC,UAAA,KAEAD,MAAA,EAAQE,MAAA,CAAO,CAACC,SAAA,EAAWC,KAAA;EACzB,IAAIN,gBAAA,CAAiBM,KAAA,KAAUA,KAAA,CAAMC,IAAI,KAAKJ,UAAA,EAAY;IACxD,OAAOE,SAAA;EACT;EAEA,IAAI,CAACL,gBAAA,CAAiBM,KAAA,KAAU,YAAYA,KAAA,EAAO;IACjD,OAAO,C,GAAID,SAAA,E,GAAcJ,mBAAA,CAAoBK,KAAA,CAAMJ,MAAM,EAAEC,UAAA,EAAY;EACzE;EAEA,IAAIG,KAAA,CAAME,IAAI,KAAK,UAAU,UAAUF,KAAA,EAAO;IAC5C,OAAO,C,GACFD,SAAA,E,GACAC,KAAA,CAAMG,IAAI,CAACL,MAAM,CAClB,CAACM,eAAA,EAAiBC,GAAA,KAAQ,C,GACrBD,eAAA,E,IACC,UAAUC,GAAA,GAAM,CAACA,GAAA,CAAIJ,IAAI,CAAC,GAAGN,mBAAA,CAAoBU,GAAA,CAAIT,MAAM,EAAEC,UAAA,GAClE,EACD,EAAE,EAEL;EACH;EAEA,OAAO,C,GAAIE,SAAA,EAAWC,KAAA,CAAMC,IAAI,CAAC;AACnC,GAAG,EAAE;AAEP;;;;;AAKA,OAAO,MAAMK,iBAAA,GAAoBA,CAC/BV,MAAA,EACAC,UAAA,EACAU,cAAA;EAEA,IAAIC,cAAA,GAAiB,EAAE;EAEvB,IAAIC,KAAA,CAAMC,OAAO,CAACH,cAAA,KAAmBA,cAAA,CAAeI,MAAM,IAAI,GAAG;IAC/DH,cAAA,GAAiBD,cAAA;EACnB,OAAO;IACL,IAAIV,UAAA,EAAY;MACdW,cAAA,CAAeI,IAAI,CAACf,UAAA;IACtB;IAEA,MAAMgB,gBAAA,GAAmBlB,mBAAA,CAAoBC,MAAA,EAAQC,UAAA;IAErDW,cAAA,GAAiBA,cAAA,CAAeM,MAAM,CAACD,gBAAA;IACvCL,cAAA,GAAiBA,cAAA,CAAeO,KAAK,CAAC,GAAG;EAC3C;EAEA,OAAOP,cAAA,CAAeQ,GAAG,CAAEC,MAAA,KAAY;IACrCC,QAAA,EAAUD,MAAA;IACVE,MAAA,EAAQ;EACV;AACF","ignoreList":[]}
1
+ {"version":3,"file":"getInitialColumns.js","names":["fieldAffectsData","getRemainingColumns","fields","useAsTitle","reduce","remaining","field","name","type","tabs","tabFieldColumns","tab","getInitialColumns","defaultColumns","initialColumns","Array","isArray","length","push","remainingColumns","concat","slice","map","column"],"sources":["../../../src/elements/TableColumns/getInitialColumns.ts"],"sourcesContent":["import type { ClientField, CollectionConfig, ColumnPreference, Field } from 'payload'\n\nimport { fieldAffectsData } from 'payload/shared'\n\nconst getRemainingColumns = <T extends ClientField[] | Field[]>(\n fields: T,\n useAsTitle: string,\n): ColumnPreference[] =>\n fields?.reduce((remaining, field) => {\n if (fieldAffectsData(field) && field.name === useAsTitle) {\n return remaining\n }\n\n if (!fieldAffectsData(field) && 'fields' in field) {\n return [...remaining, ...getRemainingColumns(field.fields, useAsTitle)]\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n return [\n ...remaining,\n ...field.tabs.reduce(\n (tabFieldColumns, tab) => [\n ...tabFieldColumns,\n ...('name' in tab ? [tab.name] : getRemainingColumns(tab.fields, useAsTitle)),\n ],\n [],\n ),\n ]\n }\n\n return [...remaining, field.name]\n }, [])\n\n/**\n * Returns the initial columns to display in the table based on the following criteria:\n * 1. If `defaultColumns` is set in the collection config, use those columns\n * 2. Otherwise take `useAtTitle, if set, and the next 3 fields that are not hidden or disabled\n */\nexport const getInitialColumns = <T extends ClientField[] | Field[]>(\n fields: T,\n useAsTitle: CollectionConfig['admin']['useAsTitle'],\n defaultColumns: CollectionConfig['admin']['defaultColumns'],\n): ColumnPreference[] => {\n let initialColumns = []\n\n if (Array.isArray(defaultColumns) && defaultColumns.length >= 1) {\n initialColumns = defaultColumns\n } else {\n if (useAsTitle) {\n initialColumns.push(useAsTitle)\n }\n\n const remainingColumns = getRemainingColumns(fields, useAsTitle)\n\n initialColumns = initialColumns.concat(remainingColumns)\n initialColumns = initialColumns.slice(0, 4)\n }\n\n return initialColumns.map((column) => ({\n [column]: true,\n }))\n}\n"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ;AAEjC,MAAMC,mBAAA,GAAsBA,CAC1BC,MAAA,EACAC,UAAA,KAEAD,MAAA,EAAQE,MAAA,CAAO,CAACC,SAAA,EAAWC,KAAA;EACzB,IAAIN,gBAAA,CAAiBM,KAAA,KAAUA,KAAA,CAAMC,IAAI,KAAKJ,UAAA,EAAY;IACxD,OAAOE,SAAA;EACT;EAEA,IAAI,CAACL,gBAAA,CAAiBM,KAAA,KAAU,YAAYA,KAAA,EAAO;IACjD,OAAO,C,GAAID,SAAA,E,GAAcJ,mBAAA,CAAoBK,KAAA,CAAMJ,MAAM,EAAEC,UAAA,EAAY;EACzE;EAEA,IAAIG,KAAA,CAAME,IAAI,KAAK,UAAU,UAAUF,KAAA,EAAO;IAC5C,OAAO,C,GACFD,SAAA,E,GACAC,KAAA,CAAMG,IAAI,CAACL,MAAM,CAClB,CAACM,eAAA,EAAiBC,GAAA,KAAQ,C,GACrBD,eAAA,E,IACC,UAAUC,GAAA,GAAM,CAACA,GAAA,CAAIJ,IAAI,CAAC,GAAGN,mBAAA,CAAoBU,GAAA,CAAIT,MAAM,EAAEC,UAAA,GAClE,EACD,EAAE,EAEL;EACH;EAEA,OAAO,C,GAAIE,SAAA,EAAWC,KAAA,CAAMC,IAAI,CAAC;AACnC,GAAG,EAAE;AAEP;;;;;AAKA,OAAO,MAAMK,iBAAA,GAAoBA,CAC/BV,MAAA,EACAC,UAAA,EACAU,cAAA;EAEA,IAAIC,cAAA,GAAiB,EAAE;EAEvB,IAAIC,KAAA,CAAMC,OAAO,CAACH,cAAA,KAAmBA,cAAA,CAAeI,MAAM,IAAI,GAAG;IAC/DH,cAAA,GAAiBD,cAAA;EACnB,OAAO;IACL,IAAIV,UAAA,EAAY;MACdW,cAAA,CAAeI,IAAI,CAACf,UAAA;IACtB;IAEA,MAAMgB,gBAAA,GAAmBlB,mBAAA,CAAoBC,MAAA,EAAQC,UAAA;IAErDW,cAAA,GAAiBA,cAAA,CAAeM,MAAM,CAACD,gBAAA;IACvCL,cAAA,GAAiBA,cAAA,CAAeO,KAAK,CAAC,GAAG;EAC3C;EAEA,OAAOP,cAAA,CAAeQ,GAAG,CAAEC,MAAA,KAAY;IACrC,CAACA,MAAA,GAAS;EACZ;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAA6B,MAAM,SAAS,CAAA;AAEjF,OAAO,KAA4D,MAAM,OAAO,CAAA;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAO7D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACpC,UAAU,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3E,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAChD;AAED,eAAO,MAAM,kBAAkB,8BAAoD,CAAA;AAEnF,eAAO,MAAM,eAAe,QAAO,aAA+C,CAAA;AAElF,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;IACpB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAA;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CACnD,CAAA;AAUD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA4PhD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAoB,eAAe,EAA6B,MAAM,SAAS,CAAA;AAEnG,OAAO,KAA4D,MAAM,OAAO,CAAA;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAO7D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACpC,UAAU,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3E,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAChD;AAED,eAAO,MAAM,kBAAkB,8BAAoD,CAAA;AAEnF,eAAO,MAAM,eAAe,QAAO,aAA+C,CAAA;AAElF,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;IACpB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAA;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CACnD,CAAA;AAQD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAqPhD,CAAA"}
@@ -11,15 +11,12 @@ export const useTableColumns = () => {
11
11
  return useContext(TableColumnContext);
12
12
  };
13
13
  // strip out Heading, Label, and renderedCells properties, they cannot be sent to the server
14
- const sanitizeColumns = columns => {
15
- return columns.map(({
16
- accessor,
17
- active
18
- }) => ({
19
- accessor,
20
- active
21
- }));
22
- };
14
+ const formatColumnPreferences = columns => columns.map(({
15
+ accessor,
16
+ active
17
+ }) => ({
18
+ [accessor]: active
19
+ }));
23
20
  export const TableColumnsProvider = ({
24
21
  children,
25
22
  collectionSlug,
@@ -68,7 +65,7 @@ export const TableColumnsProvider = ({
68
65
  setTableColumns(withMovedColumn);
69
66
  const result = await getTableState({
70
67
  collectionSlug,
71
- columns: sanitizeColumns(withMovedColumn),
68
+ columns: formatColumnPreferences(withMovedColumn),
72
69
  docs,
73
70
  enableRowSelections,
74
71
  renderRowTypes,
@@ -94,14 +91,12 @@ export const TableColumnsProvider = ({
94
91
  active: !col.active
95
92
  });
96
93
  acc.toggledColumns.push({
97
- accessor: col.accessor,
98
- active: !col.active
94
+ [col.accessor]: !col.active
99
95
  });
100
96
  } else {
101
97
  acc.newColumnState.push(col);
102
98
  acc.toggledColumns.push({
103
- accessor: col.accessor,
104
- active: col.active
99
+ [col.accessor]: col.active
105
100
  });
106
101
  }
107
102
  return acc;
@@ -126,19 +121,14 @@ export const TableColumnsProvider = ({
126
121
  abortToggleColumnRef.current = null;
127
122
  }, [tableColumns, getTableState, setTable, collectionSlug, docs, enableRowSelections, renderRowTypes, tableAppearance]);
128
123
  const setActiveColumns = React.useCallback(async activeColumnAccessors => {
129
- const activeColumns = tableColumns.map(col_0 => {
130
- return {
131
- accessor: col_0.accessor,
132
- active: activeColumnAccessors.includes(col_0.accessor)
133
- };
134
- }).sort((first, second) => {
124
+ const activeColumns = formatColumnPreferences(tableColumns.sort((first, second) => {
135
125
  const indexOfFirst = activeColumnAccessors.indexOf(first.accessor);
136
126
  const indexOfSecond = activeColumnAccessors.indexOf(second.accessor);
137
127
  if (indexOfFirst === -1 || indexOfSecond === -1) {
138
128
  return 0;
139
129
  }
140
130
  return indexOfFirst > indexOfSecond ? 1 : -1;
141
- });
131
+ }));
142
132
  const {
143
133
  state: columnState_0,
144
134
  Table