@payloadcms/ui 3.4.1-canary.417e3d2 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/elements/Button/index.d.ts.map +1 -1
  2. package/dist/elements/Button/index.js +1 -0
  3. package/dist/elements/Button/index.js.map +1 -1
  4. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  5. package/dist/elements/Popup/PopupTrigger/index.js +1 -1
  6. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  7. package/dist/elements/Popup/PopupTrigger/index.scss +4 -0
  8. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  9. package/dist/elements/RelationshipTable/index.js +145 -280
  10. package/dist/elements/RelationshipTable/index.js.map +1 -1
  11. package/dist/elements/TableColumns/index.js +1 -2
  12. package/dist/elements/TableColumns/index.js.map +1 -1
  13. package/dist/exports/client/{CodeEditor-RZ32B2QF.js → CodeEditor-FR4GQI3P.js} +2 -2
  14. package/dist/exports/client/{DatePicker-QW5V4BQV.js → DatePicker-IHDOZXIJ.js} +2 -2
  15. package/dist/exports/client/{chunk-KZPVHMBR.js → chunk-JPWZT3ZI.js} +1 -1
  16. package/dist/exports/client/{chunk-KZPVHMBR.js.map → chunk-JPWZT3ZI.js.map} +1 -1
  17. package/dist/exports/client/{chunk-CKHKQPOO.js → chunk-RO7ZK4KN.js} +1 -1
  18. package/dist/exports/client/{chunk-CKHKQPOO.js.map → chunk-RO7ZK4KN.js.map} +1 -1
  19. package/dist/exports/client/index.d.ts +0 -4
  20. package/dist/exports/client/index.d.ts.map +1 -1
  21. package/dist/exports/client/index.js +10 -10
  22. package/dist/exports/client/index.js.map +4 -4
  23. package/dist/fields/Tabs/index.d.ts +0 -15
  24. package/dist/fields/Tabs/index.d.ts.map +1 -1
  25. package/dist/fields/Tabs/index.js +2 -2
  26. package/dist/fields/Tabs/index.js.map +1 -1
  27. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  28. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +16 -2
  29. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  30. package/dist/providers/ListQuery/index.d.ts +3 -3
  31. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  32. package/dist/providers/ListQuery/index.js +2 -2
  33. package/dist/providers/ListQuery/index.js.map +1 -1
  34. package/dist/styles.css +1 -1
  35. package/dist/views/Edit/SetDocumentStepNav/index.d.ts.map +1 -1
  36. package/dist/views/Edit/SetDocumentStepNav/index.js +0 -2
  37. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  38. package/package.json +7 -11
  39. /package/dist/exports/client/{CodeEditor-RZ32B2QF.js.map → CodeEditor-FR4GQI3P.js.map} +0 -0
  40. /package/dist/exports/client/{DatePicker-QW5V4BQV.js.map → DatePicker-IHDOZXIJ.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useCallback","useState","Button","Pill","useIgnoredEffect","ChevronIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","useTranslation","hoistQueryParamsToAnd","AnimateHeight","ColumnSelector","useDocumentDrawer","RelationshipProvider","TableColumnsProvider","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","$","AfterInput","allowCreate","t0","BeforeInput","disableTable","t1","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","relationTo","undefined","Table","setTable","getEntityConfig","permissions","t2","docs","Array","isArray","reduce","_temp","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","t3","collectionSlug","collectionConfig","isLoadingTable","setIsLoadingTable","data","setData","columnState","setColumnState","getTableState","t4","newQuery","where","newData","state","newColumnState","NewTable","enableRowSelections","renderRowTypes","tableAppearance","renderTable","t5","t6","t7","t8","DocumentDrawer","DocumentDrawerToggler","t9","closeDrawer","openDrawer","t10","args","foundDocIndex","findIndex","doc_0","doc","id","withNewOrUpdatedDoc","newDocs","onDrawerSave","t11","args_0","onDrawerCreate","preferenceKey","canCreate","collections","create","t12","_jsx","className","children","t13","t14","t15","t16","_jsxs","icon","direction","pillStyle","length","label","labels","plural","onClick","singular","defaultLimit","admin","pagination","modifySearchParams","onQueryChange","LinkedCellOverride","height","slug","onSave","acc"],"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 { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useState } from 'react'\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 { AnimateHeight } from '../AnimateHeight/index.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 './index.scss'\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 relationTo: string\n}\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\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(!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 ...(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 && (\n <DocumentDrawerToggler className={`${baseClass}__add-new`}>\n {i18n.t('fields:addNew')}\n </DocumentDrawerToggler>\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: 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 <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 {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","useState","Button","Pill","useIgnoredEffect","ChevronIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","useTranslation","hoistQueryParamsToAnd","AnimateHeight","ColumnSelector","useDocumentDrawer","RelationshipProvider","TableColumnsProvider","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","disableTable","field","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","limit","String","defaultLimit","admin","pagination","sort","defaultSort","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","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 { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useState } from 'react'\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 { AnimateHeight } from '../AnimateHeight/index.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 './index.scss'\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 relationTo: 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 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(!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 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 [\n query,\n field.defaultLimit,\n field.defaultSort,\n collectionConfig.admin.pagination.defaultLimit,\n collectionConfig.defaultSort,\n filterOptions,\n getTableState,\n relationTo,\n ],\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 && (\n <DocumentDrawerToggler className={`${baseClass}__add-new`}>\n {i18n.t('fields:addNew')}\n </DocumentDrawerToggler>\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: 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={\n field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit\n }\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 <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 {AfterInput}\n <DocumentDrawer initialData={initialDrawerData} onSave={onDrawerCreate} />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -51,8 +51,7 @@ export const TableColumnsProvider = ({
51
51
  });
52
52
  const prevCollection = React.useRef(collectionSlug);
53
53
  const {
54
- getPreference,
55
- setPreference
54
+ getPreference
56
55
  } = usePreferences();
57
56
  const [tableColumns, setTableColumns] = React.useState(columnState);
58
57
  const tableStateControllerRef = React.useRef(null);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","createContext","useCallback","useContext","useConfig","usePreferences","useServerFunctions","abortAndIgnore","TableColumnContext","useTableColumns","sanitizeColumns","columns","map","accessor","active","TableColumnsProvider","children","collectionSlug","columnState","docs","enableRowSelections","LinkedCellOverride","listPreferences","preferenceKey","renderRowTypes","setTable","sortColumnProps","tableAppearance","getEntityConfig","getTableState","admin","defaultColumns","useAsTitle","fields","prevCollection","useRef","getPreference","setPreference","tableColumns","setTableColumns","useState","tableStateControllerRef","moveColumn","args","current","fromIndex","toIndex","withMovedColumn","columnToMove","splice","controller","AbortController","result","signal","state","Table","toggleColumn","column","newColumnState","toggledColumns","reduce","acc","col","push","setActiveColumns","activeColumnAccessors","activeColumns","includes","sort","first","second","indexOfFirst","indexOf","indexOfSecond","resetColumnsState","useEffect","sync","collectionHasChanged","currentPreferences","_jsx","Provider","value"],"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, SanitizedCollectionConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext } from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListQuery/index.js'\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { abortAndIgnore } from '../../utilities/abortAndIgnore.js'\n\nexport interface ITableColumns {\n columns: Column[]\n LinkedCellOverride?: React.ReactNode\n moveColumn: (args: { fromIndex: number; toIndex: number }) => Promise<void>\n resetColumnsState: () => Promise<void>\n setActiveColumns: (columns: string[]) => Promise<void>\n toggleColumn: (column: string) => Promise<void>\n}\n\nexport const TableColumnContext = createContext<ITableColumns>({} as ITableColumns)\n\nexport const useTableColumns = (): ITableColumns => useContext(TableColumnContext)\n\nexport type ListPreferences = {\n columns: ColumnPreferences\n}\n\ntype Props = {\n readonly children: React.ReactNode\n readonly collectionSlug: string\n readonly columnState: Column[]\n readonly docs: any[]\n readonly enableRowSelections?: boolean\n readonly LinkedCellOverride?: React.ReactNode\n readonly listPreferences?: ListPreferences\n readonly preferenceKey: string\n readonly renderRowTypes?: boolean\n readonly setTable: (Table: React.ReactNode) => void\n readonly sortColumnProps?: Partial<SortColumnProps>\n readonly tableAppearance?: 'condensed' | 'default'\n}\n\n// strip out Heading, Label, and renderedCells properties, they cannot be sent to the server\nconst sanitizeColumns = (columns: Column[]) => {\n return columns.map(({ accessor, active }) => ({\n accessor,\n active,\n }))\n}\n\nexport const TableColumnsProvider: React.FC<Props> = ({\n children,\n collectionSlug,\n columnState,\n docs,\n enableRowSelections,\n LinkedCellOverride,\n listPreferences,\n preferenceKey,\n renderRowTypes,\n setTable,\n sortColumnProps,\n tableAppearance,\n}) => {\n const { getEntityConfig } = useConfig()\n\n const { getTableState } = useServerFunctions()\n\n const { admin: { defaultColumns, useAsTitle } = {}, fields } = getEntityConfig({\n collectionSlug,\n }) as ClientCollectionConfig\n\n const prevCollection = React.useRef<SanitizedCollectionConfig['slug']>(collectionSlug)\n const { getPreference, setPreference } = usePreferences()\n\n const [tableColumns, setTableColumns] = React.useState(columnState)\n const tableStateControllerRef = React.useRef<AbortController>(null)\n\n const moveColumn = useCallback(\n async (args: { fromIndex: number; toIndex: number }) => {\n abortAndIgnore(tableStateControllerRef.current)\n\n const { fromIndex, toIndex } = args\n const withMovedColumn = [...tableColumns]\n const [columnToMove] = withMovedColumn.splice(fromIndex, 1)\n withMovedColumn.splice(toIndex, 0, columnToMove)\n\n setTableColumns(withMovedColumn)\n\n const controller = new AbortController()\n tableStateControllerRef.current = controller\n\n const result = await getTableState({\n collectionSlug,\n columns: sanitizeColumns(withMovedColumn),\n docs,\n enableRowSelections,\n renderRowTypes,\n signal: controller.signal,\n tableAppearance,\n })\n\n if (result) {\n setTableColumns(result.state)\n setTable(result.Table)\n }\n },\n [\n tableColumns,\n collectionSlug,\n docs,\n getTableState,\n setTable,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const toggleColumn = useCallback(\n async (column: string) => {\n abortAndIgnore(tableStateControllerRef.current)\n\n const { newColumnState, toggledColumns } = tableColumns.reduce<{\n newColumnState: Column[]\n toggledColumns: Pick<Column, 'accessor' | 'active'>[]\n }>(\n (acc, col) => {\n if (col.accessor === column) {\n acc.newColumnState.push({\n ...col,\n accessor: col.accessor,\n active: !col.active,\n })\n acc.toggledColumns.push({\n accessor: col.accessor,\n active: !col.active,\n })\n } else {\n acc.newColumnState.push(col)\n acc.toggledColumns.push({\n accessor: col.accessor,\n active: col.active,\n })\n }\n\n return acc\n },\n { newColumnState: [], toggledColumns: [] },\n )\n\n setTableColumns(newColumnState)\n\n const controller = new AbortController()\n tableStateControllerRef.current = controller\n\n const result = await getTableState({\n collectionSlug,\n columns: toggledColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n signal: controller.signal,\n tableAppearance,\n })\n\n if (result) {\n setTableColumns(result.state)\n setTable(result.Table)\n }\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const setActiveColumns = React.useCallback(\n async (activeColumnAccessors: string[]) => {\n const activeColumns: Pick<Column, 'accessor' | 'active'>[] = tableColumns\n .map((col) => {\n return {\n accessor: col.accessor,\n active: activeColumnAccessors.includes(col.accessor),\n }\n })\n .sort((first, second) => {\n const indexOfFirst = activeColumnAccessors.indexOf(first.accessor)\n const indexOfSecond = activeColumnAccessors.indexOf(second.accessor)\n\n if (indexOfFirst === -1 || indexOfSecond === -1) {\n return 0\n }\n\n return indexOfFirst > indexOfSecond ? 1 : -1\n })\n const { state: columnState, Table } = await getTableState({\n collectionSlug,\n columns: activeColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n })\n\n setTableColumns(columnState)\n setTable(Table)\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const resetColumnsState = React.useCallback(async () => {\n await setActiveColumns(defaultColumns)\n }, [defaultColumns, setActiveColumns])\n\n // //////////////////////////////////////////////\n // Get preferences on collection change (drawers)\n // //////////////////////////////////////////////\n\n React.useEffect(() => {\n const sync = async () => {\n const collectionHasChanged = prevCollection.current !== collectionSlug\n\n if (collectionHasChanged || !listPreferences) {\n const currentPreferences = await getPreference<{\n columns: ColumnPreferences\n }>(preferenceKey)\n\n prevCollection.current = collectionSlug\n\n if (currentPreferences?.columns) {\n // setTableColumns()\n // buildColumnState({\n // beforeRows,\n // columnPreferences: currentPreferences?.columns,\n // columns: initialColumns,\n // enableRowSelections,\n // fields,\n // sortColumnProps,\n // useAsTitle,\n // }),\n }\n }\n }\n\n void sync()\n }, [\n preferenceKey,\n getPreference,\n collectionSlug,\n fields,\n defaultColumns,\n useAsTitle,\n listPreferences,\n enableRowSelections,\n sortColumnProps,\n ])\n\n React.useEffect(() => {\n return () => {\n abortAndIgnore(tableStateControllerRef.current)\n }\n }, [])\n\n return (\n <TableColumnContext.Provider\n value={{\n columns: tableColumns,\n LinkedCellOverride,\n moveColumn,\n resetColumnsState,\n setActiveColumns,\n toggleColumn,\n }}\n >\n {children}\n </TableColumnContext.Provider>\n )\n}\n"],"mappings":"AAAA;;;AAGA,OAAOA,KAAA,IAASC,aAAa,EAAEC,WAAW,EAAEC,UAAU,QAAQ;AAM9D,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAW/B,OAAO,MAAMC,kBAAA,gBAAqBP,aAAA,CAA6B,CAAC;AAEhE,OAAO,MAAMQ,eAAA,GAAkBA,CAAA;EAAA,OAAqBN,UAAA,CAAAK,kBAAW;AAAA;AAqB/D;AACA,MAAME,eAAA,GAAmBC,OAAA;EACvB,OAAOA,OAAA,CAAQC,GAAG,CAAC,CAAC;IAAEC,QAAQ;IAAEC;EAAM,CAAE,MAAM;IAC5CD,QAAA;IACAC;EACF;AACF;AAEA,OAAO,MAAMC,oBAAA,GAAwCA,CAAC;EACpDC,QAAQ;EACRC,cAAc;EACdC,WAAW;EACXC,IAAI;EACJC,mBAAmB;EACnBC,kBAAkB;EAClBC,eAAe;EACfC,aAAa;EACbC,cAAc;EACdC,QAAQ;EACRC,eAAe;EACfC;AAAe,CAChB;EACC,MAAM;IAAEC;EAAe,CAAE,GAAGxB,SAAA;EAE5B,MAAM;IAAEyB;EAAa,CAAE,GAAGvB,kBAAA;EAE1B,MAAM;IAAEwB,KAAA,EAAO;MAAEC,cAAc;MAAEC;IAAU,CAAE,GAAG,CAAC,CAAC;IAAEC;EAAM,CAAE,GAAGL,eAAA,CAAgB;IAC7EX;EACF;EAEA,MAAMiB,cAAA,GAAiBlC,KAAA,CAAMmC,MAAM,CAAoClB,cAAA;EACvE,MAAM;IAAEmB,aAAa;IAAEC;EAAa,CAAE,GAAGhC,cAAA;EAEzC,MAAM,CAACiC,YAAA,EAAcC,eAAA,CAAgB,GAAGvC,KAAA,CAAMwC,QAAQ,CAACtB,WAAA;EACvD,MAAMuB,uBAAA,GAA0BzC,KAAA,CAAMmC,MAAM,CAAkB;EAE9D,MAAMO,UAAA,GAAaxC,WAAA,CACjB,MAAOyC,IAAA;IACLpC,cAAA,CAAekC,uBAAA,CAAwBG,OAAO;IAE9C,MAAM;MAAEC,SAAS;MAAEC;IAAO,CAAE,GAAGH,IAAA;IAC/B,MAAMI,eAAA,GAAkB,C,GAAIT,YAAA,CAAa;IACzC,MAAM,CAACU,YAAA,CAAa,GAAGD,eAAA,CAAgBE,MAAM,CAACJ,SAAA,EAAW;IACzDE,eAAA,CAAgBE,MAAM,CAACH,OAAA,EAAS,GAAGE,YAAA;IAEnCT,eAAA,CAAgBQ,eAAA;IAEhB,MAAMG,UAAA,GAAa,IAAIC,eAAA;IACvBV,uBAAA,CAAwBG,OAAO,GAAGM,UAAA;IAElC,MAAME,MAAA,GAAS,MAAMvB,aAAA,CAAc;MACjCZ,cAAA;MACAN,OAAA,EAASD,eAAA,CAAgBqC,eAAA;MACzB5B,IAAA;MACAC,mBAAA;MACAI,cAAA;MACA6B,MAAA,EAAQH,UAAA,CAAWG,MAAM;MACzB1B;IACF;IAEA,IAAIyB,MAAA,EAAQ;MACVb,eAAA,CAAgBa,MAAA,CAAOE,KAAK;MAC5B7B,QAAA,CAAS2B,MAAA,CAAOG,KAAK;IACvB;EACF,GACA,CACEjB,YAAA,EACArB,cAAA,EACAE,IAAA,EACAU,aAAA,EACAJ,QAAA,EACAL,mBAAA,EACAI,cAAA,EACAG,eAAA,CACD;EAGH,MAAM6B,YAAA,GAAetD,WAAA,CACnB,MAAOuD,MAAA;IACLlD,cAAA,CAAekC,uBAAA,CAAwBG,OAAO;IAE9C,MAAM;MAAEc,cAAc;MAAEC;IAAc,CAAE,GAAGrB,YAAA,CAAasB,MAAM,CAI5D,CAACC,GAAA,EAAKC,GAAA;MACJ,IAAIA,GAAA,CAAIjD,QAAQ,KAAK4C,MAAA,EAAQ;QAC3BI,GAAA,CAAIH,cAAc,CAACK,IAAI,CAAC;UACtB,GAAGD,GAAG;UACNjD,QAAA,EAAUiD,GAAA,CAAIjD,QAAQ;UACtBC,MAAA,EAAQ,CAACgD,GAAA,CAAIhD;QACf;QACA+C,GAAA,CAAIF,cAAc,CAACI,IAAI,CAAC;UACtBlD,QAAA,EAAUiD,GAAA,CAAIjD,QAAQ;UACtBC,MAAA,EAAQ,CAACgD,GAAA,CAAIhD;QACf;MACF,OAAO;QACL+C,GAAA,CAAIH,cAAc,CAACK,IAAI,CAACD,GAAA;QACxBD,GAAA,CAAIF,cAAc,CAACI,IAAI,CAAC;UACtBlD,QAAA,EAAUiD,GAAA,CAAIjD,QAAQ;UACtBC,MAAA,EAAQgD,GAAA,CAAIhD;QACd;MACF;MAEA,OAAO+C,GAAA;IACT,GACA;MAAEH,cAAA,EAAgB,EAAE;MAAEC,cAAA,EAAgB;IAAG;IAG3CpB,eAAA,CAAgBmB,cAAA;IAEhB,MAAMR,YAAA,GAAa,IAAIC,eAAA;IACvBV,uBAAA,CAAwBG,OAAO,GAAGM,YAAA;IAElC,MAAME,QAAA,GAAS,MAAMvB,aAAA,CAAc;MACjCZ,cAAA;MACAN,OAAA,EAASgD,cAAA;MACTxC,IAAA;MACAC,mBAAA;MACAI,cAAA;MACA6B,MAAA,EAAQH,YAAA,CAAWG,MAAM;MACzB1B;IACF;IAEA,IAAIyB,QAAA,EAAQ;MACVb,eAAA,CAAgBa,QAAA,CAAOE,KAAK;MAC5B7B,QAAA,CAAS2B,QAAA,CAAOG,KAAK;IACvB;EACF,GACA,CACEjB,YAAA,EACAT,aAAA,EACAJ,QAAA,EACAR,cAAA,EACAE,IAAA,EACAC,mBAAA,EACAI,cAAA,EACAG,eAAA,CACD;EAGH,MAAMqC,gBAAA,GAAmBhE,KAAA,CAAME,WAAW,CACxC,MAAO+D,qBAAA;IACL,MAAMC,aAAA,GAAuD5B,YAAA,CAC1D1B,GAAG,CAAEkD,KAAA;MACJ,OAAO;QACLjD,QAAA,EAAUiD,KAAA,CAAIjD,QAAQ;QACtBC,MAAA,EAAQmD,qBAAA,CAAsBE,QAAQ,CAACL,KAAA,CAAIjD,QAAQ;MACrD;IACF,GACCuD,IAAI,CAAC,CAACC,KAAA,EAAOC,MAAA;MACZ,MAAMC,YAAA,GAAeN,qBAAA,CAAsBO,OAAO,CAACH,KAAA,CAAMxD,QAAQ;MACjE,MAAM4D,aAAA,GAAgBR,qBAAA,CAAsBO,OAAO,CAACF,MAAA,CAAOzD,QAAQ;MAEnE,IAAI0D,YAAA,KAAiB,CAAC,KAAKE,aAAA,KAAkB,CAAC,GAAG;QAC/C,OAAO;MACT;MAEA,OAAOF,YAAA,GAAeE,aAAA,GAAgB,IAAI,CAAC;IAC7C;IACF,MAAM;MAAEnB,KAAA,EAAOpC,aAAW;MAAEqC;IAAK,CAAE,GAAG,MAAM1B,aAAA,CAAc;MACxDZ,cAAA;MACAN,OAAA,EAASuD,aAAA;MACT/C,IAAA;MACAC,mBAAA;MACAI,cAAA;MACAG;IACF;IAEAY,eAAA,CAAgBrB,aAAA;IAChBO,QAAA,CAAS8B,KAAA;EACX,GACA,CACEjB,YAAA,EACAT,aAAA,EACAJ,QAAA,EACAR,cAAA,EACAE,IAAA,EACAC,mBAAA,EACAI,cAAA,EACAG,eAAA,CACD;EAGH,MAAM+C,iBAAA,GAAoB1E,KAAA,CAAME,WAAW,CAAC;IAC1C,MAAM8D,gBAAA,CAAiBjC,cAAA;EACzB,GAAG,CAACA,cAAA,EAAgBiC,gBAAA,CAAiB;EAErC;EACA;EACA;EAEAhE,KAAA,CAAM2E,SAAS,CAAC;IACd,MAAMC,IAAA,GAAO,MAAAA,CAAA;MACX,MAAMC,oBAAA,GAAuB3C,cAAA,CAAeU,OAAO,KAAK3B,cAAA;MAExD,IAAI4D,oBAAA,IAAwB,CAACvD,eAAA,EAAiB;QAC5C,MAAMwD,kBAAA,GAAqB,MAAM1C,aAAA,CAE9Bb,aAAA;QAEHW,cAAA,CAAeU,OAAO,GAAG3B,cAAA;QAEzB,IAAI6D,kBAAA,EAAoBnE,OAAA,EAAS;UAC/B;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;QAAA;MAEJ;IACF;IAEA,KAAKiE,IAAA;EACP,GAAG,CACDrD,aAAA,EACAa,aAAA,EACAnB,cAAA,EACAgB,MAAA,EACAF,cAAA,EACAC,UAAA,EACAV,eAAA,EACAF,mBAAA,EACAM,eAAA,CACD;EAED1B,KAAA,CAAM2E,SAAS,CAAC;IACd,OAAO;MACLpE,cAAA,CAAekC,uBAAA,CAAwBG,OAAO;IAChD;EACF,GAAG,EAAE;EAEL,oBACEmC,IAAA,CAACvE,kBAAA,CAAmBwE,QAAQ;IAC1BC,KAAA,EAAO;MACLtE,OAAA,EAAS2B,YAAA;MACTjB,kBAAA;MACAqB,UAAA;MACAgC,iBAAA;MACAV,gBAAA;MACAR;IACF;cAECxC;;AAGP","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","createContext","useCallback","useContext","useConfig","usePreferences","useServerFunctions","abortAndIgnore","TableColumnContext","useTableColumns","sanitizeColumns","columns","map","accessor","active","TableColumnsProvider","children","collectionSlug","columnState","docs","enableRowSelections","LinkedCellOverride","listPreferences","preferenceKey","renderRowTypes","setTable","sortColumnProps","tableAppearance","getEntityConfig","getTableState","admin","defaultColumns","useAsTitle","fields","prevCollection","useRef","getPreference","tableColumns","setTableColumns","useState","tableStateControllerRef","moveColumn","args","current","fromIndex","toIndex","withMovedColumn","columnToMove","splice","controller","AbortController","result","signal","state","Table","toggleColumn","column","newColumnState","toggledColumns","reduce","acc","col","push","setActiveColumns","activeColumnAccessors","activeColumns","includes","sort","first","second","indexOfFirst","indexOf","indexOfSecond","resetColumnsState","useEffect","sync","collectionHasChanged","currentPreferences","_jsx","Provider","value"],"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, SanitizedCollectionConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext } from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListQuery/index.js'\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { abortAndIgnore } from '../../utilities/abortAndIgnore.js'\n\nexport interface ITableColumns {\n columns: Column[]\n LinkedCellOverride?: React.ReactNode\n moveColumn: (args: { fromIndex: number; toIndex: number }) => Promise<void>\n resetColumnsState: () => Promise<void>\n setActiveColumns: (columns: string[]) => Promise<void>\n toggleColumn: (column: string) => Promise<void>\n}\n\nexport const TableColumnContext = createContext<ITableColumns>({} as ITableColumns)\n\nexport const useTableColumns = (): ITableColumns => useContext(TableColumnContext)\n\nexport type ListPreferences = {\n columns: ColumnPreferences\n}\n\ntype Props = {\n readonly children: React.ReactNode\n readonly collectionSlug: string\n readonly columnState: Column[]\n readonly docs: any[]\n readonly enableRowSelections?: boolean\n readonly LinkedCellOverride?: React.ReactNode\n readonly listPreferences?: ListPreferences\n readonly preferenceKey: string\n readonly renderRowTypes?: boolean\n readonly setTable: (Table: React.ReactNode) => void\n readonly sortColumnProps?: Partial<SortColumnProps>\n readonly tableAppearance?: 'condensed' | 'default'\n}\n\n// strip out Heading, Label, and renderedCells properties, they cannot be sent to the server\nconst sanitizeColumns = (columns: Column[]) => {\n return columns.map(({ accessor, active }) => ({\n accessor,\n active,\n }))\n}\n\nexport const TableColumnsProvider: React.FC<Props> = ({\n children,\n collectionSlug,\n columnState,\n docs,\n enableRowSelections,\n LinkedCellOverride,\n listPreferences,\n preferenceKey,\n renderRowTypes,\n setTable,\n sortColumnProps,\n tableAppearance,\n}) => {\n const { getEntityConfig } = useConfig()\n\n const { getTableState } = useServerFunctions()\n\n const { admin: { defaultColumns, useAsTitle } = {}, fields } = getEntityConfig({\n collectionSlug,\n }) as ClientCollectionConfig\n\n const prevCollection = React.useRef<SanitizedCollectionConfig['slug']>(collectionSlug)\n const { getPreference } = usePreferences()\n\n const [tableColumns, setTableColumns] = React.useState(columnState)\n const tableStateControllerRef = React.useRef<AbortController>(null)\n\n const moveColumn = useCallback(\n async (args: { fromIndex: number; toIndex: number }) => {\n abortAndIgnore(tableStateControllerRef.current)\n\n const { fromIndex, toIndex } = args\n const withMovedColumn = [...tableColumns]\n const [columnToMove] = withMovedColumn.splice(fromIndex, 1)\n withMovedColumn.splice(toIndex, 0, columnToMove)\n\n setTableColumns(withMovedColumn)\n\n const controller = new AbortController()\n tableStateControllerRef.current = controller\n\n const result = await getTableState({\n collectionSlug,\n columns: sanitizeColumns(withMovedColumn),\n docs,\n enableRowSelections,\n renderRowTypes,\n signal: controller.signal,\n tableAppearance,\n })\n\n if (result) {\n setTableColumns(result.state)\n setTable(result.Table)\n }\n },\n [\n tableColumns,\n collectionSlug,\n docs,\n getTableState,\n setTable,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const toggleColumn = useCallback(\n async (column: string) => {\n abortAndIgnore(tableStateControllerRef.current)\n\n const { newColumnState, toggledColumns } = tableColumns.reduce<{\n newColumnState: Column[]\n toggledColumns: Pick<Column, 'accessor' | 'active'>[]\n }>(\n (acc, col) => {\n if (col.accessor === column) {\n acc.newColumnState.push({\n ...col,\n accessor: col.accessor,\n active: !col.active,\n })\n acc.toggledColumns.push({\n accessor: col.accessor,\n active: !col.active,\n })\n } else {\n acc.newColumnState.push(col)\n acc.toggledColumns.push({\n accessor: col.accessor,\n active: col.active,\n })\n }\n\n return acc\n },\n { newColumnState: [], toggledColumns: [] },\n )\n\n setTableColumns(newColumnState)\n\n const controller = new AbortController()\n tableStateControllerRef.current = controller\n\n const result = await getTableState({\n collectionSlug,\n columns: toggledColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n signal: controller.signal,\n tableAppearance,\n })\n\n if (result) {\n setTableColumns(result.state)\n setTable(result.Table)\n }\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const setActiveColumns = React.useCallback(\n async (activeColumnAccessors: string[]) => {\n const activeColumns: Pick<Column, 'accessor' | 'active'>[] = tableColumns\n .map((col) => {\n return {\n accessor: col.accessor,\n active: activeColumnAccessors.includes(col.accessor),\n }\n })\n .sort((first, second) => {\n const indexOfFirst = activeColumnAccessors.indexOf(first.accessor)\n const indexOfSecond = activeColumnAccessors.indexOf(second.accessor)\n\n if (indexOfFirst === -1 || indexOfSecond === -1) {\n return 0\n }\n\n return indexOfFirst > indexOfSecond ? 1 : -1\n })\n const { state: columnState, Table } = await getTableState({\n collectionSlug,\n columns: activeColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n })\n\n setTableColumns(columnState)\n setTable(Table)\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const resetColumnsState = React.useCallback(async () => {\n await setActiveColumns(defaultColumns)\n }, [defaultColumns, setActiveColumns])\n\n // //////////////////////////////////////////////\n // Get preferences on collection change (drawers)\n // //////////////////////////////////////////////\n\n React.useEffect(() => {\n const sync = async () => {\n const collectionHasChanged = prevCollection.current !== collectionSlug\n\n if (collectionHasChanged || !listPreferences) {\n const currentPreferences = await getPreference<{\n columns: ColumnPreferences\n }>(preferenceKey)\n\n prevCollection.current = collectionSlug\n\n if (currentPreferences?.columns) {\n // setTableColumns()\n // buildColumnState({\n // beforeRows,\n // columnPreferences: currentPreferences?.columns,\n // columns: initialColumns,\n // enableRowSelections,\n // fields,\n // sortColumnProps,\n // useAsTitle,\n // }),\n }\n }\n }\n\n void sync()\n }, [\n preferenceKey,\n getPreference,\n collectionSlug,\n fields,\n defaultColumns,\n useAsTitle,\n listPreferences,\n enableRowSelections,\n sortColumnProps,\n ])\n\n React.useEffect(() => {\n return () => {\n abortAndIgnore(tableStateControllerRef.current)\n }\n }, [])\n\n return (\n <TableColumnContext.Provider\n value={{\n columns: tableColumns,\n LinkedCellOverride,\n moveColumn,\n resetColumnsState,\n setActiveColumns,\n toggleColumn,\n }}\n >\n {children}\n </TableColumnContext.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -10,5 +10,5 @@ function require(m) {
10
10
  }
11
11
  // Workaround end
12
12
 
13
- import{i as a}from"./chunk-CKHKQPOO.js";import"./chunk-5LKBKI4T.js";export{a as default};
14
- //# sourceMappingURL=CodeEditor-RZ32B2QF.js.map
13
+ import{i as a}from"./chunk-RO7ZK4KN.js";import"./chunk-5LKBKI4T.js";export{a as default};
14
+ //# sourceMappingURL=CodeEditor-FR4GQI3P.js.map
@@ -10,5 +10,5 @@ function require(m) {
10
10
  }
11
11
  // Workaround end
12
12
 
13
- import{n as a}from"./chunk-KZPVHMBR.js";import"./chunk-5LKBKI4T.js";export{a as default};
14
- //# sourceMappingURL=DatePicker-QW5V4BQV.js.map
13
+ import{n as a}from"./chunk-JPWZT3ZI.js";import"./chunk-5LKBKI4T.js";export{a as default};
14
+ //# sourceMappingURL=DatePicker-IHDOZXIJ.js.map
@@ -26,4 +26,4 @@ react-datepicker/dist/react-datepicker.min.js:
26
26
  Released under the MIT License.
27
27
  *)
28
28
  */
29
- //# sourceMappingURL=chunk-KZPVHMBR.js.map
29
+ //# sourceMappingURL=chunk-JPWZT3ZI.js.map