@payloadcms/ui 3.0.0-beta.132 → 3.0.0-beta.134

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.
@@ -4,6 +4,7 @@ import type { DocumentDrawerProps } from '../DocumentDrawer/types.js';
4
4
  import './index.scss';
5
5
  type RelationshipTableComponentProps = {
6
6
  readonly allowCreate?: boolean;
7
+ readonly disableTable?: boolean;
7
8
  readonly field: JoinFieldClient;
8
9
  readonly filterOptions?: Where;
9
10
  readonly initialData?: PaginatedDocs;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,eAAe,EAEf,aAAa,EACb,KAAK,EACN,MAAM,SAAS,CAAA;AAEhB,OAAO,KAA0C,MAAM,OAAO,CAAA;AAO9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAkBrE,OAAO,cAAc,CAAA;AAKrB,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAA;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAmNvE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,eAAe,EAEf,aAAa,EACb,KAAK,EACN,MAAM,SAAS,CAAA;AAEhB,OAAO,KAA0C,MAAM,OAAO,CAAA;AAO9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAkBrE,OAAO,cAAc,CAAA;AAKrB,KAAK,+BAA+B,GAAG;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAA;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAoNvE,CAAA"}
@@ -26,6 +26,7 @@ const baseClass = 'relationship-table';
26
26
  export const RelationshipTable = props => {
27
27
  const {
28
28
  allowCreate = true,
29
+ disableTable = false,
29
30
  filterOptions,
30
31
  initialData: initialDataFromProps,
31
32
  initialDrawerData,
@@ -97,10 +98,10 @@ export const RelationshipTable = props => {
97
98
  setIsLoadingTable(false);
98
99
  }, [getTableState, relationTo, filterOptions, query]);
99
100
  useIgnoredEffect(() => {
100
- if (!Table || query) {
101
+ if (!disableTable && (!Table || query)) {
101
102
  void renderTable();
102
103
  }
103
- }, [query], [Table, renderTable]);
104
+ }, [query, disableTable], [Table, renderTable]);
104
105
  const [DocumentDrawer, DocumentDrawerToggler, {
105
106
  closeDrawer,
106
107
  openDrawer
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","Fragment","useCallback","useState","AnimateHeightImport","AnimateHeight","default","getTranslation","Button","Pill","useIgnoredEffect","ChevronIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","useTranslation","hoistQueryParamsToAnd","ColumnSelector","useDocumentDrawer","RelationshipProvider","TableColumnsProvider","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","allowCreate","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","relationTo","Table","setTable","getEntityConfig","permissions","docs","Array","isArray","reduce","acc","doc","id","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","collectionConfig","collectionSlug","isLoadingTable","setIsLoadingTable","data","setData","columnState","setColumnState","getTableState","renderTable","newQuery","where","newData","state","newColumnState","NewTable","enableRowSelections","renderRowTypes","tableAppearance","DocumentDrawer","DocumentDrawerToggler","closeDrawer","openDrawer","onDrawerSave","args","foundDocIndex","findIndex","withNewOrUpdatedDoc","undefined","newDocs","onDrawerCreate","preferenceKey","canCreate","collections","create","_jsxs","className","_jsx","icon","direction","onClick","pillStyle","length","label","labels","plural","singular","defaultLimit","admin","pagination","modifySearchParams","onQueryChange","LinkedCellOverride","sortColumnProps","appearance","height","slug","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n JoinFieldClient,\n ListQuery,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport React, { Fragment, useCallback, useState } from 'react'\nimport AnimateHeightImport from 'react-animate-height'\n\nconst AnimateHeight = AnimateHeightImport.default || AnimateHeightImport\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\nimport type { Column } from '../Table/index.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js'\nimport { ChevronIcon } from '../../icons/Chevron/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 { ColumnSelector } from '../ColumnSelector/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { TableColumnsProvider } from '../TableColumns/index.js'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport './index.scss'\nimport { RelationshipTablePagination } from './Pagination.js'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly allowCreate?: 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 relationTo: string\n}\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n allowCreate = true,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n\n const { 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(\n () => getEntityConfig({ collectionSlug: relationTo }) as ClientCollectionConfig,\n )\n\n const [isLoadingTable, setIsLoadingTable] = useState(true)\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 ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n docs,\n enableRowSelections: false,\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 [getTableState, relationTo, filterOptions, query],\n )\n\n useIgnoredEffect(\n () => {\n if (!Table || query) {\n void renderTable()\n }\n },\n [query],\n [Table, renderTable],\n )\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer, openDrawer }] = useDocumentDrawer({\n collectionSlug: relationTo,\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 void onDrawerSave(args)\n },\n [closeDrawer, onDrawerSave],\n )\n\n const preferenceKey = `${relationTo}-list`\n\n const canCreate = allowCreate !== false && permissions?.collections?.[relationTo]?.create\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {canCreate && <DocumentDrawerToggler>{i18n.t('fields:addNew')}</DocumentDrawerToggler>}\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 {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: 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 collectionSlug={relationTo}\n data={data}\n defaultLimit={collectionConfig?.admin?.pagination?.defaultLimit}\n modifySearchParams={false}\n onQueryChange={setQuery}\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n collectionSlug={relationTo}\n columnState={columnState}\n docs={data.docs}\n LinkedCellOverride={<DrawerLink onDrawerSave={onDrawerSave} />}\n preferenceKey={preferenceKey}\n renderRowTypes\n setTable={setTable}\n sortColumnProps={{\n appearance: 'condensed',\n }}\n tableAppearance=\"condensed\"\n >\n {/* @ts-expect-error TODO: get this CJS import to work, eslint keeps removing the type assertion */}\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={openColumnSelector ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <div className={`${baseClass}__columns-inner`}>\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </div>\n </AnimateHeight>\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n <DocumentDrawer initialData={initialDrawerData} onSave={onDrawerCreate} />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","Fragment","useCallback","useState","AnimateHeightImport","AnimateHeight","default","getTranslation","Button","Pill","useIgnoredEffect","ChevronIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","useTranslation","hoistQueryParamsToAnd","ColumnSelector","useDocumentDrawer","RelationshipProvider","TableColumnsProvider","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","allowCreate","disableTable","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","relationTo","Table","setTable","getEntityConfig","permissions","docs","Array","isArray","reduce","acc","doc","id","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","collectionConfig","collectionSlug","isLoadingTable","setIsLoadingTable","data","setData","columnState","setColumnState","getTableState","renderTable","newQuery","where","newData","state","newColumnState","NewTable","enableRowSelections","renderRowTypes","tableAppearance","DocumentDrawer","DocumentDrawerToggler","closeDrawer","openDrawer","onDrawerSave","args","foundDocIndex","findIndex","withNewOrUpdatedDoc","undefined","newDocs","onDrawerCreate","preferenceKey","canCreate","collections","create","_jsxs","className","_jsx","icon","direction","onClick","pillStyle","length","label","labels","plural","singular","defaultLimit","admin","pagination","modifySearchParams","onQueryChange","LinkedCellOverride","sortColumnProps","appearance","height","slug","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n JoinFieldClient,\n ListQuery,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport React, { Fragment, useCallback, useState } from 'react'\nimport AnimateHeightImport from 'react-animate-height'\n\nconst AnimateHeight = AnimateHeightImport.default || AnimateHeightImport\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\nimport type { Column } from '../Table/index.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js'\nimport { ChevronIcon } from '../../icons/Chevron/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 { ColumnSelector } from '../ColumnSelector/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { TableColumnsProvider } from '../TableColumns/index.js'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport './index.scss'\nimport { RelationshipTablePagination } from './Pagination.js'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly allowCreate?: boolean\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 relationTo: string\n}\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n allowCreate = true,\n disableTable = false,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n\n const { 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(\n () => getEntityConfig({ collectionSlug: relationTo }) as ClientCollectionConfig,\n )\n\n const [isLoadingTable, setIsLoadingTable] = useState(true)\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 ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n docs,\n enableRowSelections: false,\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 [getTableState, relationTo, filterOptions, query],\n )\n\n useIgnoredEffect(\n () => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n },\n [query, disableTable],\n [Table, renderTable],\n )\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer, openDrawer }] = useDocumentDrawer({\n collectionSlug: relationTo,\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 void onDrawerSave(args)\n },\n [closeDrawer, onDrawerSave],\n )\n\n const preferenceKey = `${relationTo}-list`\n\n const canCreate = allowCreate !== false && permissions?.collections?.[relationTo]?.create\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {canCreate && <DocumentDrawerToggler>{i18n.t('fields:addNew')}</DocumentDrawerToggler>}\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 {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: 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 collectionSlug={relationTo}\n data={data}\n defaultLimit={collectionConfig?.admin?.pagination?.defaultLimit}\n modifySearchParams={false}\n onQueryChange={setQuery}\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n collectionSlug={relationTo}\n columnState={columnState}\n docs={data.docs}\n LinkedCellOverride={<DrawerLink onDrawerSave={onDrawerSave} />}\n preferenceKey={preferenceKey}\n renderRowTypes\n setTable={setTable}\n sortColumnProps={{\n appearance: 'condensed',\n }}\n tableAppearance=\"condensed\"\n >\n {/* @ts-expect-error TODO: get this CJS import to work, eslint keeps removing the type assertion */}\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={openColumnSelector ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <div className={`${baseClass}__columns-inner`}>\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </div>\n </AnimateHeight>\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n <DocumentDrawer initialData={initialDrawerData} onSave={onDrawerCreate} />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}