@payloadcms/ui 3.25.0 → 3.26.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 (103) hide show
  1. package/dist/elements/AnimateHeight/index.scss +7 -5
  2. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  3. package/dist/elements/AppHeader/index.js +2 -3
  4. package/dist/elements/AppHeader/index.js.map +1 -1
  5. package/dist/elements/Autosave/index.d.ts.map +1 -1
  6. package/dist/elements/Autosave/index.js +13 -2
  7. package/dist/elements/Autosave/index.js.map +1 -1
  8. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  9. package/dist/elements/BulkUpload/FormsManager/index.js +37 -21
  10. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  11. package/dist/elements/FieldSelect/index.js +1 -1
  12. package/dist/elements/FieldSelect/index.js.map +1 -1
  13. package/dist/elements/Localizer/index.d.ts.map +1 -1
  14. package/dist/elements/Localizer/index.js +36 -24
  15. package/dist/elements/Localizer/index.js.map +1 -1
  16. package/dist/elements/Logout/index.d.ts.map +1 -1
  17. package/dist/elements/Logout/index.js +4 -9
  18. package/dist/elements/Logout/index.js.map +1 -1
  19. package/dist/elements/Nav/context.d.ts.map +1 -1
  20. package/dist/elements/Nav/context.js +8 -1
  21. package/dist/elements/Nav/context.js.map +1 -1
  22. package/dist/elements/PublishButton/index.js +1 -0
  23. package/dist/elements/PublishButton/index.js.map +1 -1
  24. package/dist/elements/RelationshipTable/index.d.ts +1 -1
  25. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  26. package/dist/elements/RelationshipTable/index.js +4 -11
  27. package/dist/elements/RelationshipTable/index.js.map +1 -1
  28. package/dist/elements/TableColumns/context.d.ts +4 -0
  29. package/dist/elements/TableColumns/context.d.ts.map +1 -0
  30. package/dist/elements/TableColumns/context.js +4 -0
  31. package/dist/elements/TableColumns/context.js.map +1 -0
  32. package/dist/elements/TableColumns/index.d.ts +3 -31
  33. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  34. package/dist/elements/TableColumns/index.js +49 -164
  35. package/dist/elements/TableColumns/index.js.map +1 -1
  36. package/dist/elements/TableColumns/types.d.ts +52 -0
  37. package/dist/elements/TableColumns/types.d.ts.map +1 -0
  38. package/dist/elements/TableColumns/types.js +2 -0
  39. package/dist/elements/TableColumns/types.js.map +1 -0
  40. package/dist/elements/WhereBuilder/Condition/index.d.ts +2 -5
  41. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  42. package/dist/elements/WhereBuilder/Condition/index.js +7 -7
  43. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  44. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  45. package/dist/elements/WhereBuilder/index.js +22 -31
  46. package/dist/elements/WhereBuilder/index.js.map +1 -1
  47. package/dist/elements/WhereBuilder/types.d.ts +6 -2
  48. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  49. package/dist/elements/WhereBuilder/types.js.map +1 -1
  50. package/dist/exports/client/index.d.ts +1 -1
  51. package/dist/exports/client/index.d.ts.map +1 -1
  52. package/dist/exports/client/index.js +11 -11
  53. package/dist/exports/client/index.js.map +4 -4
  54. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
  55. package/dist/fields/Upload/HasMany/index.js +12 -4
  56. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  57. package/dist/fields/Upload/HasOne/index.d.ts.map +1 -1
  58. package/dist/fields/Upload/HasOne/index.js +15 -5
  59. package/dist/fields/Upload/HasOne/index.js.map +1 -1
  60. package/dist/fields/Upload/RelationshipContent/index.d.ts +1 -0
  61. package/dist/fields/Upload/RelationshipContent/index.d.ts.map +1 -1
  62. package/dist/fields/Upload/RelationshipContent/index.js +13 -11
  63. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  64. package/dist/forms/Form/context.d.ts +11 -1
  65. package/dist/forms/Form/context.d.ts.map +1 -1
  66. package/dist/forms/Form/context.js +13 -1
  67. package/dist/forms/Form/context.js.map +1 -1
  68. package/dist/forms/Form/index.d.ts.map +1 -1
  69. package/dist/forms/Form/index.js +14 -7
  70. package/dist/forms/Form/index.js.map +1 -1
  71. package/dist/forms/Form/initContextState.d.ts.map +1 -1
  72. package/dist/forms/Form/initContextState.js +2 -0
  73. package/dist/forms/Form/initContextState.js.map +1 -1
  74. package/dist/forms/Form/types.d.ts +9 -0
  75. package/dist/forms/Form/types.d.ts.map +1 -1
  76. package/dist/forms/Form/types.js.map +1 -1
  77. package/dist/forms/Submit/index.d.ts.map +1 -1
  78. package/dist/forms/Submit/index.js +3 -2
  79. package/dist/forms/Submit/index.js.map +1 -1
  80. package/dist/providers/ListQuery/context.d.ts +4 -0
  81. package/dist/providers/ListQuery/context.d.ts.map +1 -0
  82. package/dist/providers/ListQuery/context.js +4 -0
  83. package/dist/providers/ListQuery/context.js.map +1 -0
  84. package/dist/providers/ListQuery/index.d.ts +2 -27
  85. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  86. package/dist/providers/ListQuery/index.js +51 -37
  87. package/dist/providers/ListQuery/index.js.map +1 -1
  88. package/dist/providers/ListQuery/types.d.ts +33 -0
  89. package/dist/providers/ListQuery/types.d.ts.map +1 -0
  90. package/dist/providers/ListQuery/types.js +2 -0
  91. package/dist/providers/ListQuery/types.js.map +1 -0
  92. package/dist/providers/RouteTransition/ProgressBar/index.scss +19 -17
  93. package/dist/styles.css +1 -1
  94. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
  95. package/dist/utilities/copyDataFromLocale.js +6 -2
  96. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  97. package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
  98. package/dist/utilities/handleFormStateLocking.js +4 -2
  99. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  100. package/dist/views/List/index.d.ts.map +1 -1
  101. package/dist/views/List/index.js +0 -7
  102. package/dist/views/List/index.js.map +1 -1
  103. package/package.json +4 -4
@@ -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","transformColumnsToPreferences","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","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","height","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n type CollectionSlug,\n type Column,\n type JoinFieldClient,\n type ListQuery,\n type PaginatedDocs,\n type Where,\n} from 'payload'\nimport { transformColumnsToPreferences } from 'payload/shared'\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: transformColumnsToPreferences(query?.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 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 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 columns={transformColumnsToPreferences(columnState)}\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 LinkedCellOverride={\n <DrawerLink onDrawerDelete={onDrawerDelete} onDrawerSave={onDrawerSave} />\n }\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":[]}
@@ -0,0 +1,4 @@
1
+ import type { ITableColumns } from './types.js';
2
+ export declare const TableColumnContext: import("react").Context<ITableColumns>;
3
+ export declare const useTableColumns: () => ITableColumns;
4
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,eAAO,MAAM,kBAAkB,wCAAoD,CAAA;AAEnF,eAAO,MAAM,eAAe,QAAO,aAA+C,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { createContext, useContext } from 'react';
2
+ export const TableColumnContext = createContext({});
3
+ export const useTableColumns = () => useContext(TableColumnContext);
4
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","names":["createContext","useContext","TableColumnContext","useTableColumns"],"sources":["../../../src/elements/TableColumns/context.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nimport type { ITableColumns } from './types.js'\n\nexport const TableColumnContext = createContext<ITableColumns>({} as ITableColumns)\n\nexport const useTableColumns = (): ITableColumns => useContext(TableColumnContext)\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ;AAI1C,OAAO,MAAMC,kBAAA,GAAqBF,aAAA,CAA6B,CAAC;AAEhE,OAAO,MAAMG,eAAA,GAAkBA,CAAA,KAAqBF,UAAA,CAAWC,kBAAA","ignoreList":[]}
@@ -1,33 +1,5 @@
1
- import type { Column, ListPreferences } from 'payload';
2
1
  import React from 'react';
3
- import type { SortColumnProps } from '../SortColumn/index.js';
4
- export interface ITableColumns {
5
- columns: Column[];
6
- LinkedCellOverride?: React.ReactNode;
7
- moveColumn: (args: {
8
- fromIndex: number;
9
- toIndex: number;
10
- }) => Promise<void>;
11
- resetColumnsState: () => Promise<void>;
12
- setActiveColumns: (columns: string[]) => Promise<void>;
13
- toggleColumn: (column: string) => Promise<void>;
14
- }
15
- export declare const TableColumnContext: React.Context<ITableColumns>;
16
- export declare const useTableColumns: () => ITableColumns;
17
- type Props = {
18
- readonly children: React.ReactNode;
19
- readonly collectionSlug: string | string[];
20
- readonly columnState: Column[];
21
- readonly docs: any[];
22
- readonly enableRowSelections?: boolean;
23
- readonly LinkedCellOverride?: React.ReactNode;
24
- readonly listPreferences?: ListPreferences;
25
- readonly preferenceKey: string;
26
- readonly renderRowTypes?: boolean;
27
- readonly setTable: (Table: React.ReactNode) => void;
28
- readonly sortColumnProps?: Partial<SortColumnProps>;
29
- readonly tableAppearance?: 'condensed' | 'default';
30
- };
31
- export declare const TableColumnsProvider: React.FC<Props>;
32
- export {};
2
+ import type { TableColumnsProviderProps } from './types.js';
3
+ export { useTableColumns } from './context.js';
4
+ export declare const TableColumnsProvider: React.FC<TableColumnsProviderProps>;
33
5
  //# sourceMappingURL=index.d.ts.map
@@ -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":"AAGA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAE3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAM3D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA4FpE,CAAA"}
@@ -1,199 +1,84 @@
1
1
  'use client';
2
2
 
3
3
  import { jsx as _jsx } from "react/jsx-runtime";
4
- import React, { createContext, useCallback, useContext, useEffect } from 'react';
4
+ import { transformColumnsToSearchParams } from 'payload/shared';
5
+ import React, { startTransition, useCallback } from 'react';
5
6
  import { useConfig } from '../../providers/Config/index.js';
6
- import { usePreferences } from '../../providers/Preferences/index.js';
7
- import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
8
- import { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js';
9
- export const TableColumnContext = /*#__PURE__*/createContext({});
10
- export const useTableColumns = () => {
11
- return useContext(TableColumnContext);
12
- };
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
- };
7
+ import { useListQuery } from '../../providers/ListQuery/index.js';
8
+ import { TableColumnContext } from './context.js';
9
+ export { useTableColumns } from './context.js';
23
10
  export const TableColumnsProvider = ({
24
11
  children,
25
12
  collectionSlug,
26
- columnState,
27
- docs,
28
- enableRowSelections,
29
- LinkedCellOverride,
30
- listPreferences,
31
- preferenceKey,
32
- renderRowTypes,
33
- setTable,
34
- sortColumnProps,
35
- tableAppearance
13
+ columnState: columnStateFromProps,
14
+ LinkedCellOverride
36
15
  }) => {
37
16
  const {
38
17
  getEntityConfig
39
18
  } = useConfig();
40
19
  const {
41
- getTableState
42
- } = useServerFunctions();
20
+ query: currentQuery,
21
+ refineListData
22
+ } = useListQuery();
43
23
  const {
44
24
  admin: {
45
- defaultColumns,
46
- useAsTitle
47
- } = {},
48
- fields
25
+ defaultColumns
26
+ } = {}
49
27
  } = getEntityConfig({
50
28
  collectionSlug
51
29
  });
52
- const prevCollection = React.useRef(Array.isArray(collectionSlug) ? collectionSlug[0] : collectionSlug);
53
- const {
54
- getPreference
55
- } = usePreferences();
56
- const [tableColumns, setTableColumns] = React.useState(columnState);
57
- const abortTableStateRef = React.useRef(null);
58
- const abortToggleColumnRef = React.useRef(null);
59
- const moveColumn = useCallback(async args => {
60
- const controller = handleAbortRef(abortTableStateRef);
61
- const {
62
- fromIndex,
63
- toIndex
64
- } = args;
65
- const withMovedColumn = [...tableColumns];
66
- const [columnToMove] = withMovedColumn.splice(fromIndex, 1);
67
- withMovedColumn.splice(toIndex, 0, columnToMove);
68
- setTableColumns(withMovedColumn);
69
- const result = await getTableState({
70
- collectionSlug,
71
- columns: sanitizeColumns(withMovedColumn),
72
- docs,
73
- enableRowSelections,
74
- renderRowTypes,
75
- signal: controller.signal,
76
- tableAppearance
77
- });
78
- if (result) {
79
- setTableColumns(result.state);
80
- setTable(result.Table);
81
- }
82
- abortTableStateRef.current = null;
83
- }, [tableColumns, collectionSlug, docs, getTableState, setTable, enableRowSelections, renderRowTypes, tableAppearance]);
30
+ const [columnState, setOptimisticColumnState] = React.useOptimistic(columnStateFromProps, (state, action) => action);
84
31
  const toggleColumn = useCallback(async column => {
85
- const controller_0 = handleAbortRef(abortToggleColumnRef);
86
- const {
87
- newColumnState,
88
- toggledColumns
89
- } = tableColumns.reduce((acc, col) => {
32
+ const newColumnState = (columnState || []).map(col => {
90
33
  if (col.accessor === column) {
91
- acc.newColumnState.push({
34
+ return {
92
35
  ...col,
93
- accessor: col.accessor,
94
- active: !col.active
95
- });
96
- acc.toggledColumns.push({
97
- accessor: col.accessor,
98
36
  active: !col.active
99
- });
100
- } else {
101
- acc.newColumnState.push(col);
102
- acc.toggledColumns.push({
103
- accessor: col.accessor,
104
- active: col.active
105
- });
37
+ };
106
38
  }
107
- return acc;
108
- }, {
109
- newColumnState: [],
110
- toggledColumns: []
39
+ return col;
111
40
  });
112
- setTableColumns(newColumnState);
113
- const result_0 = await getTableState({
114
- collectionSlug,
115
- columns: toggledColumns,
116
- docs,
117
- enableRowSelections,
118
- renderRowTypes,
119
- signal: controller_0.signal,
120
- tableAppearance
41
+ startTransition(() => {
42
+ setOptimisticColumnState(newColumnState);
121
43
  });
122
- if (result_0) {
123
- setTableColumns(result_0.state);
124
- setTable(result_0.Table);
125
- }
126
- abortToggleColumnRef.current = null;
127
- }, [tableColumns, getTableState, setTable, collectionSlug, docs, enableRowSelections, renderRowTypes, tableAppearance]);
128
- 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) => {
135
- const indexOfFirst = activeColumnAccessors.indexOf(first.accessor);
136
- const indexOfSecond = activeColumnAccessors.indexOf(second.accessor);
137
- if (indexOfFirst === -1 || indexOfSecond === -1) {
138
- return 0;
139
- }
140
- return indexOfFirst > indexOfSecond ? 1 : -1;
44
+ await refineListData({
45
+ columns: transformColumnsToSearchParams(newColumnState)
141
46
  });
47
+ }, [refineListData, columnState, setOptimisticColumnState]);
48
+ const moveColumn = useCallback(async args => {
142
49
  const {
143
- state: columnState_0,
144
- Table
145
- } = await getTableState({
146
- collectionSlug,
147
- columns: activeColumns,
148
- docs,
149
- enableRowSelections,
150
- renderRowTypes,
151
- tableAppearance
50
+ fromIndex,
51
+ toIndex
52
+ } = args;
53
+ const newColumnState_0 = [...(columnState || [])];
54
+ const [columnToMove] = newColumnState_0.splice(fromIndex, 1);
55
+ newColumnState_0.splice(toIndex, 0, columnToMove);
56
+ startTransition(() => {
57
+ setOptimisticColumnState(newColumnState_0);
152
58
  });
153
- setTableColumns(columnState_0);
154
- setTable(Table);
155
- }, [tableColumns, getTableState, setTable, collectionSlug, docs, enableRowSelections, renderRowTypes, tableAppearance]);
59
+ await refineListData({
60
+ columns: transformColumnsToSearchParams(newColumnState_0)
61
+ });
62
+ }, [columnState, refineListData, setOptimisticColumnState]);
63
+ const setActiveColumns = useCallback(async columns => {
64
+ const newColumnState_1 = currentQuery.columns;
65
+ columns.forEach(colName => {
66
+ const colIndex = newColumnState_1.findIndex(c => colName === c);
67
+ // ensure the name does not begin with a `-` which denotes an inactive column
68
+ if (colIndex !== undefined && newColumnState_1[colIndex][0] === '-') {
69
+ newColumnState_1[colIndex] = colName.slice(1);
70
+ }
71
+ });
72
+ await refineListData({
73
+ columns: newColumnState_1
74
+ });
75
+ }, [currentQuery, refineListData]);
156
76
  const resetColumnsState = React.useCallback(async () => {
157
77
  await setActiveColumns(defaultColumns);
158
78
  }, [defaultColumns, setActiveColumns]);
159
- // //////////////////////////////////////////////
160
- // Get preferences on collection change (drawers)
161
- // //////////////////////////////////////////////
162
- React.useEffect(() => {
163
- const sync = async () => {
164
- const defaultCollection = Array.isArray(collectionSlug) ? collectionSlug[0] : collectionSlug;
165
- const collectionHasChanged = prevCollection.current !== defaultCollection;
166
- if (collectionHasChanged || !listPreferences) {
167
- const currentPreferences = await getPreference(preferenceKey);
168
- prevCollection.current = defaultCollection;
169
- if (currentPreferences?.columns) {
170
- // setTableColumns()
171
- // buildColumnState({
172
- // beforeRows,
173
- // columnPreferences: currentPreferences?.columns,
174
- // columns: initialColumns,
175
- // enableRowSelections,
176
- // fields,
177
- // sortColumnProps,
178
- // useAsTitle,
179
- // }),
180
- }
181
- }
182
- };
183
- void sync();
184
- }, [preferenceKey, getPreference, collectionSlug, fields, defaultColumns, useAsTitle, listPreferences, enableRowSelections, sortColumnProps]);
185
- useEffect(() => {
186
- setTableColumns(columnState);
187
- }, [columnState]);
188
- useEffect(() => {
189
- const abortTableState = abortTableStateRef.current;
190
- return () => {
191
- abortAndIgnore(abortTableState);
192
- };
193
- }, []);
194
79
  return /*#__PURE__*/_jsx(TableColumnContext.Provider, {
195
80
  value: {
196
- columns: tableColumns,
81
+ columns: columnState,
197
82
  LinkedCellOverride,
198
83
  moveColumn,
199
84
  resetColumnsState,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","createContext","useCallback","useContext","useEffect","useConfig","usePreferences","useServerFunctions","abortAndIgnore","handleAbortRef","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","Array","isArray","getPreference","tableColumns","setTableColumns","useState","abortTableStateRef","abortToggleColumnRef","moveColumn","args","controller","fromIndex","toIndex","withMovedColumn","columnToMove","splice","result","signal","state","Table","current","toggleColumn","column","newColumnState","toggledColumns","reduce","acc","col","push","setActiveColumns","activeColumnAccessors","activeColumns","includes","sort","first","second","indexOfFirst","indexOf","indexOfSecond","resetColumnsState","sync","defaultCollection","collectionHasChanged","currentPreferences","abortTableState","_jsx","Provider","value"],"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { Column, ListPreferences, SanitizedCollectionConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext, useEffect } from 'react'\n\nimport type { SortColumnProps } from '../SortColumn/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, handleAbortRef } 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\ntype Props = {\n readonly children: React.ReactNode\n readonly collectionSlug: string | 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 })\n\n const prevCollection = React.useRef<SanitizedCollectionConfig['slug']>(\n Array.isArray(collectionSlug) ? collectionSlug[0] : collectionSlug,\n )\n const { getPreference } = usePreferences()\n\n const [tableColumns, setTableColumns] = React.useState(columnState)\n const abortTableStateRef = React.useRef<AbortController>(null)\n const abortToggleColumnRef = React.useRef<AbortController>(null)\n\n const moveColumn = useCallback(\n async (args: { fromIndex: number; toIndex: number }) => {\n const controller = handleAbortRef(abortTableStateRef)\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 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 abortTableStateRef.current = null\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 const controller = handleAbortRef(abortToggleColumnRef)\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 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 abortToggleColumnRef.current = null\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\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 defaultCollection = Array.isArray(collectionSlug) ? collectionSlug[0] : collectionSlug\n const collectionHasChanged = prevCollection.current !== defaultCollection\n\n if (collectionHasChanged || !listPreferences) {\n const currentPreferences = await getPreference<{\n columns: ListPreferences['columns']\n }>(preferenceKey)\n\n prevCollection.current = defaultCollection\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 useEffect(() => {\n setTableColumns(columnState)\n }, [columnState])\n\n useEffect(() => {\n const abortTableState = abortTableStateRef.current\n\n return () => {\n abortAndIgnore(abortTableState)\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":[]}
1
+ {"version":3,"file":"index.js","names":["transformColumnsToSearchParams","React","startTransition","useCallback","useConfig","useListQuery","TableColumnContext","useTableColumns","TableColumnsProvider","children","collectionSlug","columnState","columnStateFromProps","LinkedCellOverride","getEntityConfig","query","currentQuery","refineListData","admin","defaultColumns","setOptimisticColumnState","useOptimistic","state","action","toggleColumn","column","newColumnState","map","col","accessor","active","columns","moveColumn","args","fromIndex","toIndex","columnToMove","splice","setActiveColumns","forEach","colName","colIndex","findIndex","c","undefined","slice","resetColumnsState","_jsx","Provider","value"],"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport { type Column } from 'payload'\nimport { transformColumnsToSearchParams } from 'payload/shared'\nimport React, { startTransition, useCallback } from 'react'\n\nimport type { TableColumnsProviderProps } from './types.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { TableColumnContext } from './context.js'\n\nexport { useTableColumns } from './context.js'\n\nexport const TableColumnsProvider: React.FC<TableColumnsProviderProps> = ({\n children,\n collectionSlug,\n columnState: columnStateFromProps,\n LinkedCellOverride,\n}) => {\n const { getEntityConfig } = useConfig()\n const { query: currentQuery, refineListData } = useListQuery()\n\n const { admin: { defaultColumns } = {} } = getEntityConfig({\n collectionSlug,\n })\n\n const [columnState, setOptimisticColumnState] = React.useOptimistic(\n columnStateFromProps,\n (state, action: Column[]) => action,\n )\n\n const toggleColumn = useCallback(\n async (column: string) => {\n const newColumnState = (columnState || []).map((col) => {\n if (col.accessor === column) {\n return { ...col, active: !col.active }\n }\n return col\n })\n\n startTransition(() => {\n setOptimisticColumnState(newColumnState)\n })\n\n await refineListData({\n columns: transformColumnsToSearchParams(newColumnState),\n })\n },\n [refineListData, columnState, setOptimisticColumnState],\n )\n\n const moveColumn = useCallback(\n async (args: { fromIndex: number; toIndex: number }) => {\n const { fromIndex, toIndex } = args\n const newColumnState = [...(columnState || [])]\n const [columnToMove] = newColumnState.splice(fromIndex, 1)\n newColumnState.splice(toIndex, 0, columnToMove)\n\n startTransition(() => {\n setOptimisticColumnState(newColumnState)\n })\n\n await refineListData({\n columns: transformColumnsToSearchParams(newColumnState),\n })\n },\n [columnState, refineListData, setOptimisticColumnState],\n )\n\n const setActiveColumns = useCallback(\n async (columns: string[]) => {\n const newColumnState = currentQuery.columns\n\n columns.forEach((colName) => {\n const colIndex = newColumnState.findIndex((c) => colName === c)\n\n // ensure the name does not begin with a `-` which denotes an inactive column\n if (colIndex !== undefined && newColumnState[colIndex][0] === '-') {\n newColumnState[colIndex] = colName.slice(1)\n }\n })\n\n await refineListData({ columns: newColumnState })\n },\n [currentQuery, refineListData],\n )\n\n const resetColumnsState = React.useCallback(async () => {\n await setActiveColumns(defaultColumns)\n }, [defaultColumns, setActiveColumns])\n\n return (\n <TableColumnContext.Provider\n value={{\n columns: columnState,\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":[]}
@@ -0,0 +1,52 @@
1
+ import type { Column, ListPreferences } from 'payload';
2
+ import type { SortColumnProps } from '../SortColumn/index.js';
3
+ export interface ITableColumns {
4
+ columns: Column[];
5
+ LinkedCellOverride?: React.ReactNode;
6
+ moveColumn: (args: {
7
+ fromIndex: number;
8
+ toIndex: number;
9
+ }) => Promise<void>;
10
+ resetColumnsState: () => Promise<void>;
11
+ setActiveColumns: (columns: string[]) => Promise<void>;
12
+ toggleColumn: (column: string) => Promise<void>;
13
+ }
14
+ export type TableColumnsProviderProps = {
15
+ readonly children: React.ReactNode;
16
+ readonly collectionSlug: string | string[];
17
+ readonly columnState: Column[];
18
+ /**
19
+ * @deprecated
20
+ */
21
+ readonly docs?: any[];
22
+ /**
23
+ * @deprecated
24
+ */
25
+ readonly enableRowSelections?: boolean;
26
+ readonly LinkedCellOverride?: React.ReactNode;
27
+ /**
28
+ * @deprecated
29
+ */
30
+ readonly listPreferences?: ListPreferences;
31
+ /**
32
+ * @deprecated
33
+ */
34
+ readonly preferenceKey?: string;
35
+ /**
36
+ * @deprecated
37
+ */
38
+ readonly renderRowTypes?: boolean;
39
+ /**
40
+ * @deprecated
41
+ */
42
+ readonly setTable?: (Table: React.ReactNode) => void;
43
+ /**
44
+ * @deprecated
45
+ */
46
+ readonly sortColumnProps?: Partial<SortColumnProps>;
47
+ /**
48
+ * @deprecated
49
+ */
50
+ readonly tableAppearance?: 'condensed' | 'default';
51
+ };
52
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAE7D,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,MAAM,MAAM,yBAAyB,GAAG;IACtC,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;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACrB;;OAEG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7C;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAA;IAC1C;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B;;OAEG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAA;IACpD;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACnD;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CACnD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/TableColumns/types.ts"],"sourcesContent":["import type { Column, ListPreferences } from 'payload'\n\nimport type { SortColumnProps } from '../SortColumn/index.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 type TableColumnsProviderProps = {\n readonly children: React.ReactNode\n readonly collectionSlug: string | string[]\n readonly columnState: Column[]\n /**\n * @deprecated\n */\n readonly docs?: any[]\n /**\n * @deprecated\n */\n readonly enableRowSelections?: boolean\n readonly LinkedCellOverride?: React.ReactNode\n /**\n * @deprecated\n */\n readonly listPreferences?: ListPreferences\n /**\n * @deprecated\n */\n readonly preferenceKey?: string\n /**\n * @deprecated\n */\n readonly renderRowTypes?: boolean\n /**\n * @deprecated\n */\n readonly setTable?: (Table: React.ReactNode) => void\n /**\n * @deprecated\n */\n readonly sortColumnProps?: Partial<SortColumnProps>\n /**\n * @deprecated\n */\n readonly tableAppearance?: 'condensed' | 'default'\n}\n"],"mappings":"AAaA","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { AddCondition, ReducedField, UpdateCondition } from '../types.js';
2
+ import type { AddCondition, ReducedField, RemoveCondition, UpdateCondition } from '../types.js';
3
3
  export type Props = {
4
4
  readonly addCondition: AddCondition;
5
5
  readonly andIndex: number;
@@ -8,10 +8,7 @@ export type Props = {
8
8
  readonly operator: Operator;
9
9
  readonly orIndex: number;
10
10
  readonly reducedFields: ReducedField[];
11
- readonly removeCondition: ({ andIndex, orIndex }: {
12
- andIndex: number;
13
- orIndex: number;
14
- }) => void;
11
+ readonly removeCondition: RemoveCondition;
15
12
  readonly RenderedFilter: React.ReactNode;
16
13
  readonly updateCondition: UpdateCondition;
17
14
  readonly value: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE9E,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAA;IAC7C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,EAAE,YAAY,EAAE,CAAA;IACtC,QAAQ,CAAC,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAChG,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAA;IACxC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,OAAO,KAAK,EAAE,QAAQ,EAA2B,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAUvF,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA+JrC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE/F,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAA;IAC7C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,EAAE,YAAY,EAAE,CAAA;IACtC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAA;IACxC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,OAAO,KAAK,EAAE,QAAQ,EAA2B,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAUvF,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA+JrC,CAAA"}
@@ -43,9 +43,9 @@ export const Condition = props => {
43
43
  } else if (reducedField?.field && 'options' in reducedField.field) {
44
44
  valueOptions = reducedField.field.options;
45
45
  }
46
- const updateValue = useEffectEvent(debouncedValue_0 => {
46
+ const updateValue = useEffectEvent(async debouncedValue_0 => {
47
47
  if (operator) {
48
- updateCondition({
48
+ await updateCondition({
49
49
  andIndex,
50
50
  field: reducedField,
51
51
  operator,
@@ -55,12 +55,12 @@ export const Condition = props => {
55
55
  }
56
56
  });
57
57
  useEffect(() => {
58
- updateValue(debouncedValue);
58
+ void updateValue(debouncedValue);
59
59
  }, [debouncedValue]);
60
60
  const disabled = !reducedField?.value && typeof reducedField?.value !== 'number' || reducedField?.field?.admin?.disableListFilter;
61
- const handleFieldChange = useCallback(field_0 => {
61
+ const handleFieldChange = useCallback(async field_0 => {
62
62
  setInternalValue(undefined);
63
- updateCondition({
63
+ await updateCondition({
64
64
  andIndex,
65
65
  field: reducedFields.find(option => option.value === field_0.value),
66
66
  operator,
@@ -68,8 +68,8 @@ export const Condition = props => {
68
68
  value: undefined
69
69
  });
70
70
  }, [andIndex, operator, orIndex, reducedFields, updateCondition]);
71
- const handleOperatorChange = useCallback(operator_0 => {
72
- updateCondition({
71
+ const handleOperatorChange = useCallback(async operator_0 => {
72
+ await updateCondition({
73
73
  andIndex,
74
74
  field: reducedField,
75
75
  operator: operator_0.value,