@payloadcms/ui 3.30.0 → 3.31.0-canary.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 (215) hide show
  1. package/dist/elements/ColumnSelector/index.js +1 -1
  2. package/dist/elements/ColumnSelector/index.js.map +1 -1
  3. package/dist/elements/ColumnSelector/index.scss +2 -3
  4. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  5. package/dist/elements/DeleteDocument/index.js +1 -2
  6. package/dist/elements/DeleteDocument/index.js.map +1 -1
  7. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  8. package/dist/elements/DeleteMany/index.js +1 -1
  9. package/dist/elements/DeleteMany/index.js.map +1 -1
  10. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  11. package/dist/elements/DocumentDrawer/DrawerContent.js +2 -1
  12. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  13. package/dist/elements/DocumentDrawer/types.d.ts +4 -0
  14. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  15. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  16. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  17. package/dist/elements/EditMany/DrawerContent.js +1 -2
  18. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  19. package/dist/elements/ListControls/ActiveQueryPreset/index.d.ts +8 -0
  20. package/dist/elements/ListControls/ActiveQueryPreset/index.d.ts.map +1 -0
  21. package/dist/elements/ListControls/ActiveQueryPreset/index.js +154 -0
  22. package/dist/elements/ListControls/ActiveQueryPreset/index.js.map +1 -0
  23. package/dist/elements/ListControls/ActiveQueryPreset/index.scss +21 -0
  24. package/dist/elements/ListControls/index.d.ts +1 -24
  25. package/dist/elements/ListControls/index.d.ts.map +1 -1
  26. package/dist/elements/ListControls/index.js +115 -86
  27. package/dist/elements/ListControls/index.js.map +1 -1
  28. package/dist/elements/ListControls/index.scss +5 -9
  29. package/dist/elements/ListControls/types.d.ts +28 -0
  30. package/dist/elements/ListControls/types.d.ts.map +1 -0
  31. package/dist/elements/ListControls/types.js.map +1 -0
  32. package/dist/elements/ListControls/useQueryPresets.d.ts +17 -0
  33. package/dist/elements/ListControls/useQueryPresets.d.ts.map +1 -0
  34. package/dist/elements/ListControls/useQueryPresets.js +260 -0
  35. package/dist/elements/ListControls/useQueryPresets.js.map +1 -0
  36. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  37. package/dist/elements/ListDrawer/DrawerContent.js +4 -2
  38. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  39. package/dist/elements/ListDrawer/types.d.ts +3 -2
  40. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  41. package/dist/elements/ListDrawer/types.js.map +1 -1
  42. package/dist/elements/Pill/index.d.ts +1 -1
  43. package/dist/elements/Pill/index.d.ts.map +1 -1
  44. package/dist/elements/Pill/index.js +2 -0
  45. package/dist/elements/Pill/index.js.map +1 -1
  46. package/dist/elements/Pill/index.scss +29 -6
  47. package/dist/elements/Popup/PopupButtonList/index.d.ts +2 -1
  48. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  49. package/dist/elements/Popup/PopupButtonList/index.js +2 -0
  50. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  51. package/dist/elements/Popup/PopupDivider/index.d.ts +4 -0
  52. package/dist/elements/Popup/PopupDivider/index.d.ts.map +1 -0
  53. package/dist/elements/Popup/PopupDivider/index.js +10 -0
  54. package/dist/elements/Popup/PopupDivider/index.js.map +1 -0
  55. package/dist/elements/Popup/PopupDivider/index.scss +10 -0
  56. package/dist/elements/Popup/PopupGroupLabel/index.d.ts +6 -0
  57. package/dist/elements/Popup/PopupGroupLabel/index.d.ts.map +1 -0
  58. package/dist/elements/Popup/PopupGroupLabel/index.js +13 -0
  59. package/dist/elements/Popup/PopupGroupLabel/index.js.map +1 -0
  60. package/dist/elements/Popup/PopupGroupLabel/index.scss +8 -0
  61. package/dist/elements/Popup/index.d.ts.map +1 -1
  62. package/dist/elements/Popup/index.js +2 -2
  63. package/dist/elements/Popup/index.js.map +1 -1
  64. package/dist/elements/QueryPresets/cells/AccessCell/index.d.ts +4 -0
  65. package/dist/elements/QueryPresets/cells/AccessCell/index.d.ts.map +1 -0
  66. package/dist/elements/QueryPresets/cells/AccessCell/index.js +25 -0
  67. package/dist/elements/QueryPresets/cells/AccessCell/index.js.map +1 -0
  68. package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts +5 -0
  69. package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts.map +1 -0
  70. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +25 -0
  71. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -0
  72. package/dist/elements/QueryPresets/cells/ColumnsCell/index.scss +9 -0
  73. package/dist/elements/QueryPresets/cells/WhereCell/index.d.ts +4 -0
  74. package/dist/elements/QueryPresets/cells/WhereCell/index.d.ts.map +1 -0
  75. package/dist/elements/QueryPresets/cells/WhereCell/index.js +29 -0
  76. package/dist/elements/QueryPresets/cells/WhereCell/index.js.map +1 -0
  77. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts +4 -0
  78. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +1 -0
  79. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +65 -0
  80. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -0
  81. package/dist/elements/QueryPresets/fields/ColumnsField/index.scss +17 -0
  82. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts +4 -0
  83. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +1 -0
  84. package/dist/elements/QueryPresets/fields/WhereField/index.js +121 -0
  85. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -0
  86. package/dist/elements/QueryPresets/fields/WhereField/index.scss +23 -0
  87. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +1 -1
  88. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  89. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  90. package/dist/elements/RelationshipTable/index.js +3 -4
  91. package/dist/elements/RelationshipTable/index.js.map +1 -1
  92. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  93. package/dist/elements/WhereBuilder/Condition/index.js +1 -1
  94. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  95. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  96. package/dist/elements/WhereBuilder/index.js +18 -15
  97. package/dist/elements/WhereBuilder/index.js.map +1 -1
  98. package/dist/exports/client/index.d.ts +7 -2
  99. package/dist/exports/client/index.d.ts.map +1 -1
  100. package/dist/exports/client/index.js +23 -23
  101. package/dist/exports/client/index.js.map +4 -4
  102. package/dist/exports/shared/index.d.ts +8 -3
  103. package/dist/exports/shared/index.d.ts.map +1 -1
  104. package/dist/exports/shared/index.js +2 -2
  105. package/dist/exports/shared/index.js.map +4 -4
  106. package/dist/icons/Chevron/index.d.ts +1 -0
  107. package/dist/icons/Chevron/index.d.ts.map +1 -1
  108. package/dist/icons/Chevron/index.js +2 -0
  109. package/dist/icons/Chevron/index.js.map +1 -1
  110. package/dist/icons/Dots/index.d.ts +2 -0
  111. package/dist/icons/Dots/index.d.ts.map +1 -1
  112. package/dist/icons/Dots/index.js +5 -2
  113. package/dist/icons/Dots/index.js.map +1 -1
  114. package/dist/icons/Dots/index.scss +14 -0
  115. package/dist/icons/People/index.d.ts +6 -0
  116. package/dist/icons/People/index.d.ts.map +1 -0
  117. package/dist/icons/People/index.js +18 -0
  118. package/dist/icons/People/index.js.map +1 -0
  119. package/dist/icons/People/index.scss +11 -0
  120. package/dist/providers/DocumentInfo/types.d.ts +1 -0
  121. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  122. package/dist/providers/DocumentInfo/types.js.map +1 -1
  123. package/dist/providers/EntityVisibility/index.d.ts.map +1 -1
  124. package/dist/providers/EntityVisibility/index.js.map +1 -1
  125. package/dist/providers/ListQuery/context.d.ts +2 -0
  126. package/dist/providers/ListQuery/context.d.ts.map +1 -1
  127. package/dist/providers/ListQuery/context.js +2 -0
  128. package/dist/providers/ListQuery/context.js.map +1 -1
  129. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  130. package/dist/providers/ListQuery/index.js +29 -13
  131. package/dist/providers/ListQuery/index.js.map +1 -1
  132. package/dist/providers/ListQuery/types.d.ts +6 -3
  133. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  134. package/dist/providers/ListQuery/types.js.map +1 -1
  135. package/dist/providers/Preferences/index.d.ts.map +1 -1
  136. package/dist/providers/Preferences/index.js.map +1 -1
  137. package/dist/providers/ServerFunctions/index.d.ts +1 -0
  138. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  139. package/dist/providers/ServerFunctions/index.js.map +1 -1
  140. package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +1 -0
  141. package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.js +2 -2
  142. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -0
  143. package/dist/{elements → providers}/TableColumns/buildColumnState.d.ts +1 -1
  144. package/dist/providers/TableColumns/buildColumnState.d.ts.map +1 -0
  145. package/dist/{elements → providers}/TableColumns/buildColumnState.js +1 -1
  146. package/dist/providers/TableColumns/buildColumnState.js.map +1 -0
  147. package/dist/{elements → providers}/TableColumns/buildPolymorphicColumnState.d.ts +1 -1
  148. package/dist/providers/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -0
  149. package/dist/{elements → providers}/TableColumns/buildPolymorphicColumnState.js +1 -1
  150. package/dist/providers/TableColumns/buildPolymorphicColumnState.js.map +1 -0
  151. package/dist/providers/TableColumns/context.d.ts.map +1 -0
  152. package/dist/providers/TableColumns/context.js.map +1 -0
  153. package/dist/providers/TableColumns/filterFields.d.ts.map +1 -0
  154. package/dist/providers/TableColumns/filterFields.js.map +1 -0
  155. package/dist/providers/TableColumns/getInitialColumns.d.ts.map +1 -0
  156. package/dist/providers/TableColumns/getInitialColumns.js.map +1 -0
  157. package/dist/providers/TableColumns/index.d.ts.map +1 -0
  158. package/dist/{elements → providers}/TableColumns/index.js +4 -2
  159. package/dist/providers/TableColumns/index.js.map +1 -0
  160. package/dist/{elements → providers}/TableColumns/types.d.ts +1 -1
  161. package/dist/providers/TableColumns/types.d.ts.map +1 -0
  162. package/dist/providers/TableColumns/types.js +2 -0
  163. package/dist/providers/TableColumns/types.js.map +1 -0
  164. package/dist/styles.css +1 -1
  165. package/dist/utilities/renderTable.js +4 -4
  166. package/dist/utilities/renderTable.js.map +1 -1
  167. package/dist/utilities/upsertPreferences.d.ts +7 -2
  168. package/dist/utilities/upsertPreferences.d.ts.map +1 -1
  169. package/dist/utilities/upsertPreferences.js +11 -5
  170. package/dist/utilities/upsertPreferences.js.map +1 -1
  171. package/dist/views/Edit/index.d.ts.map +1 -1
  172. package/dist/views/Edit/index.js +2 -1
  173. package/dist/views/Edit/index.js.map +1 -1
  174. package/dist/views/List/index.d.ts.map +1 -1
  175. package/dist/views/List/index.js +7 -1
  176. package/dist/views/List/index.js.map +1 -1
  177. package/package.json +5 -5
  178. package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +0 -1
  179. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +0 -1
  180. package/dist/elements/TableColumns/buildColumnState.d.ts.map +0 -1
  181. package/dist/elements/TableColumns/buildColumnState.js.map +0 -1
  182. package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +0 -1
  183. package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +0 -1
  184. package/dist/elements/TableColumns/context.d.ts.map +0 -1
  185. package/dist/elements/TableColumns/context.js.map +0 -1
  186. package/dist/elements/TableColumns/filterFields.d.ts.map +0 -1
  187. package/dist/elements/TableColumns/filterFields.js.map +0 -1
  188. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +0 -1
  189. package/dist/elements/TableColumns/getInitialColumns.js.map +0 -1
  190. package/dist/elements/TableColumns/index.d.ts.map +0 -1
  191. package/dist/elements/TableColumns/index.js.map +0 -1
  192. package/dist/elements/TableColumns/types.d.ts.map +0 -1
  193. package/dist/elements/TableColumns/types.js.map +0 -1
  194. package/dist/elements/WhereBuilder/transformWhereQuery.d.ts +0 -8
  195. package/dist/elements/WhereBuilder/transformWhereQuery.d.ts.map +0 -1
  196. package/dist/elements/WhereBuilder/transformWhereQuery.js +0 -45
  197. package/dist/elements/WhereBuilder/transformWhereQuery.js.map +0 -1
  198. package/dist/elements/WhereBuilder/validateWhereQuery.d.ts +0 -4
  199. package/dist/elements/WhereBuilder/validateWhereQuery.d.ts.map +0 -1
  200. package/dist/elements/WhereBuilder/validateWhereQuery.js +0 -36
  201. package/dist/elements/WhereBuilder/validateWhereQuery.js.map +0 -1
  202. package/dist/utilities/mergeListSearchAndWhere.d.ts +0 -10
  203. package/dist/utilities/mergeListSearchAndWhere.d.ts.map +0 -1
  204. package/dist/utilities/mergeListSearchAndWhere.js +0 -47
  205. package/dist/utilities/mergeListSearchAndWhere.js.map +0 -1
  206. /package/dist/elements/{TableColumns → ListControls}/types.js +0 -0
  207. /package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.d.ts +0 -0
  208. /package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.scss +0 -0
  209. /package/dist/{elements → providers}/TableColumns/context.d.ts +0 -0
  210. /package/dist/{elements → providers}/TableColumns/context.js +0 -0
  211. /package/dist/{elements → providers}/TableColumns/filterFields.d.ts +0 -0
  212. /package/dist/{elements → providers}/TableColumns/filterFields.js +0 -0
  213. /package/dist/{elements → providers}/TableColumns/getInitialColumns.d.ts +0 -0
  214. /package/dist/{elements → providers}/TableColumns/getInitialColumns.js +0 -0
  215. /package/dist/{elements → providers}/TableColumns/index.d.ts +0 -0
@@ -2,10 +2,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { getTranslation } from '@payloadcms/translations';
3
3
  import { fieldAffectsData, fieldIsHiddenOrDisabled, flattenTopLevelFields } from 'payload/shared';
4
4
  import { RenderServerComponent } from '../elements/RenderServerComponent/index.js';
5
- import { buildColumnState } from '../elements/TableColumns/buildColumnState.js';
6
- import { buildPolymorphicColumnState } from '../elements/TableColumns/buildPolymorphicColumnState.js';
7
- import { filterFields } from '../elements/TableColumns/filterFields.js';
8
- import { getInitialColumns } from '../elements/TableColumns/getInitialColumns.js';
5
+ import { buildColumnState } from '../providers/TableColumns/buildColumnState.js';
6
+ import { buildPolymorphicColumnState } from '../providers/TableColumns/buildPolymorphicColumnState.js';
7
+ import { filterFields } from '../providers/TableColumns/filterFields.js';
8
+ import { getInitialColumns } from '../providers/TableColumns/getInitialColumns.js';
9
9
  // eslint-disable-next-line payload/no-imports-from-exports-dir
10
10
  import { Pill, SelectAll, SelectRow, Table } from '../exports/client/index.js';
11
11
  export const renderFilters = (fields, importMap) => fields.reduce((acc, field) => {
@@ -1 +1 @@
1
- {"version":3,"file":"renderTable.js","names":["getTranslation","fieldAffectsData","fieldIsHiddenOrDisabled","flattenTopLevelFields","RenderServerComponent","buildColumnState","buildPolymorphicColumnState","filterFields","getInitialColumns","Pill","SelectAll","SelectRow","Table","renderFilters","fields","importMap","reduce","acc","field","admin","components","Filter","set","name","Component","Map","renderTable","clientCollectionConfig","clientConfig","collectionConfig","collections","columnPreferences","columns","columnsFromArgs","customCellProps","docs","enableRowSelections","i18n","payload","renderRowTypes","tableAppearance","useAsTitle","columnState","collection","config","find","each","slug","some","push","filter","column","accessor","defaultColumns","columnsToUse","unshift","active","disabled","hidden","Heading","t","renderedCells","map","doc","i","_jsx","relationTo","labels","singular","_","rowData","appearance","data"],"sources":["../../src/utilities/renderTable.tsx"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n CollectionConfig,\n Field,\n ImportMap,\n ListPreferences,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n} from 'payload'\n\nimport { getTranslation, type I18nClient } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsHiddenOrDisabled, flattenTopLevelFields } from 'payload/shared'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport type { Column } from '../exports/client/index.js'\n\nimport { RenderServerComponent } from '../elements/RenderServerComponent/index.js'\nimport { buildColumnState } from '../elements/TableColumns/buildColumnState.js'\nimport { buildPolymorphicColumnState } from '../elements/TableColumns/buildPolymorphicColumnState.js'\nimport { filterFields } from '../elements/TableColumns/filterFields.js'\nimport { getInitialColumns } from '../elements/TableColumns/getInitialColumns.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport { Pill, SelectAll, SelectRow, Table } from '../exports/client/index.js'\n\nexport const renderFilters = (\n fields: Field[],\n importMap: ImportMap,\n): Map<string, React.ReactNode> =>\n fields.reduce(\n (acc, field) => {\n if (fieldIsHiddenOrDisabled(field)) {\n return acc\n }\n\n if ('name' in field && field.admin?.components?.Filter) {\n acc.set(\n field.name,\n RenderServerComponent({\n Component: field.admin.components?.Filter,\n importMap,\n }),\n )\n }\n\n return acc\n },\n new Map() as Map<string, React.ReactNode>,\n )\n\nexport const renderTable = ({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collections,\n columnPreferences,\n columns: columnsFromArgs,\n customCellProps,\n docs,\n enableRowSelections,\n i18n,\n payload,\n renderRowTypes,\n tableAppearance,\n useAsTitle,\n}: {\n clientCollectionConfig?: ClientCollectionConfig\n clientConfig?: ClientConfig\n collectionConfig?: SanitizedCollectionConfig\n collections?: string[]\n columnPreferences: ListPreferences['columns']\n columns?: ListPreferences['columns']\n customCellProps?: Record<string, any>\n docs: PaginatedDocs['docs']\n drawerSlug?: string\n enableRowSelections: boolean\n i18n: I18nClient\n payload: Payload\n renderRowTypes?: boolean\n tableAppearance?: 'condensed' | 'default'\n useAsTitle: CollectionConfig['admin']['useAsTitle']\n}): {\n columnState: Column[]\n Table: React.ReactNode\n} => {\n // Ensure that columns passed as args comply with the field config, i.e. `hidden`, `disableListColumn`, etc.\n\n let columnState: Column[]\n\n if (collections) {\n const fields: ClientField[] = []\n for (const collection of collections) {\n const config = clientConfig.collections.find((each) => each.slug === collection)\n\n for (const field of filterFields(config.fields)) {\n if (fieldAffectsData(field)) {\n if (fields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n fields.push(field)\n }\n }\n\n const columns = columnsFromArgs\n ? columnsFromArgs?.filter((column) =>\n flattenTopLevelFields(fields, true)?.some(\n (field) => 'name' in field && field.name === column.accessor,\n ),\n )\n : getInitialColumns(fields, useAsTitle, [])\n\n columnState = buildPolymorphicColumnState({\n columnPreferences,\n columns,\n enableRowSelections,\n fields,\n i18n,\n // sortColumnProps,\n customCellProps,\n docs,\n payload,\n useAsTitle,\n })\n } else {\n const columns = columnsFromArgs\n ? columnsFromArgs?.filter((column) =>\n flattenTopLevelFields(clientCollectionConfig.fields, true)?.some(\n (field) => 'name' in field && field.name === column.accessor,\n ),\n )\n : getInitialColumns(\n filterFields(clientCollectionConfig.fields),\n useAsTitle,\n clientCollectionConfig?.admin?.defaultColumns,\n )\n\n columnState = buildColumnState({\n clientCollectionConfig,\n collectionConfig,\n columnPreferences,\n columns,\n enableRowSelections,\n i18n,\n // sortColumnProps,\n customCellProps,\n docs,\n payload,\n useAsTitle,\n })\n }\n\n const columnsToUse = [...columnState]\n\n if (renderRowTypes) {\n columnsToUse.unshift({\n accessor: 'collection',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: i18n.t('version:type'),\n renderedCells: docs.map((doc, i) => (\n <Pill key={i}>\n {getTranslation(\n collections\n ? payload.collections[doc.relationTo].config.labels.singular\n : clientCollectionConfig.labels.singular,\n i18n,\n )}\n </Pill>\n )),\n } as Column)\n }\n\n if (enableRowSelections) {\n columnsToUse.unshift({\n accessor: '_select',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SelectAll />,\n renderedCells: docs.map((_, i) => <SelectRow key={i} rowData={docs[i]} />),\n } as Column)\n }\n\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: <Table appearance={tableAppearance} columns={columnsToUse} data={docs} key=\"table\" />,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"renderTable.js","names":["getTranslation","fieldAffectsData","fieldIsHiddenOrDisabled","flattenTopLevelFields","RenderServerComponent","buildColumnState","buildPolymorphicColumnState","filterFields","getInitialColumns","Pill","SelectAll","SelectRow","Table","renderFilters","fields","importMap","reduce","acc","field","admin","components","Filter","set","name","Component","Map","renderTable","clientCollectionConfig","clientConfig","collectionConfig","collections","columnPreferences","columns","columnsFromArgs","customCellProps","docs","enableRowSelections","i18n","payload","renderRowTypes","tableAppearance","useAsTitle","columnState","collection","config","find","each","slug","some","push","filter","column","accessor","defaultColumns","columnsToUse","unshift","active","disabled","hidden","Heading","t","renderedCells","map","doc","i","_jsx","relationTo","labels","singular","_","rowData","appearance","data"],"sources":["../../src/utilities/renderTable.tsx"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n CollectionConfig,\n Field,\n ImportMap,\n ListPreferences,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n} from 'payload'\n\nimport { getTranslation, type I18nClient } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsHiddenOrDisabled, flattenTopLevelFields } from 'payload/shared'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport type { Column } from '../exports/client/index.js'\n\nimport { RenderServerComponent } from '../elements/RenderServerComponent/index.js'\nimport { buildColumnState } from '../providers/TableColumns/buildColumnState.js'\nimport { buildPolymorphicColumnState } from '../providers/TableColumns/buildPolymorphicColumnState.js'\nimport { filterFields } from '../providers/TableColumns/filterFields.js'\nimport { getInitialColumns } from '../providers/TableColumns/getInitialColumns.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport { Pill, SelectAll, SelectRow, Table } from '../exports/client/index.js'\n\nexport const renderFilters = (\n fields: Field[],\n importMap: ImportMap,\n): Map<string, React.ReactNode> =>\n fields.reduce(\n (acc, field) => {\n if (fieldIsHiddenOrDisabled(field)) {\n return acc\n }\n\n if ('name' in field && field.admin?.components?.Filter) {\n acc.set(\n field.name,\n RenderServerComponent({\n Component: field.admin.components?.Filter,\n importMap,\n }),\n )\n }\n\n return acc\n },\n new Map() as Map<string, React.ReactNode>,\n )\n\nexport const renderTable = ({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collections,\n columnPreferences,\n columns: columnsFromArgs,\n customCellProps,\n docs,\n enableRowSelections,\n i18n,\n payload,\n renderRowTypes,\n tableAppearance,\n useAsTitle,\n}: {\n clientCollectionConfig?: ClientCollectionConfig\n clientConfig?: ClientConfig\n collectionConfig?: SanitizedCollectionConfig\n collections?: string[]\n columnPreferences: ListPreferences['columns']\n columns?: ListPreferences['columns']\n customCellProps?: Record<string, any>\n docs: PaginatedDocs['docs']\n drawerSlug?: string\n enableRowSelections: boolean\n i18n: I18nClient\n payload: Payload\n renderRowTypes?: boolean\n tableAppearance?: 'condensed' | 'default'\n useAsTitle: CollectionConfig['admin']['useAsTitle']\n}): {\n columnState: Column[]\n Table: React.ReactNode\n} => {\n // Ensure that columns passed as args comply with the field config, i.e. `hidden`, `disableListColumn`, etc.\n\n let columnState: Column[]\n\n if (collections) {\n const fields: ClientField[] = []\n for (const collection of collections) {\n const config = clientConfig.collections.find((each) => each.slug === collection)\n\n for (const field of filterFields(config.fields)) {\n if (fieldAffectsData(field)) {\n if (fields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n fields.push(field)\n }\n }\n\n const columns = columnsFromArgs\n ? columnsFromArgs?.filter((column) =>\n flattenTopLevelFields(fields, true)?.some(\n (field) => 'name' in field && field.name === column.accessor,\n ),\n )\n : getInitialColumns(fields, useAsTitle, [])\n\n columnState = buildPolymorphicColumnState({\n columnPreferences,\n columns,\n enableRowSelections,\n fields,\n i18n,\n // sortColumnProps,\n customCellProps,\n docs,\n payload,\n useAsTitle,\n })\n } else {\n const columns = columnsFromArgs\n ? columnsFromArgs?.filter((column) =>\n flattenTopLevelFields(clientCollectionConfig.fields, true)?.some(\n (field) => 'name' in field && field.name === column.accessor,\n ),\n )\n : getInitialColumns(\n filterFields(clientCollectionConfig.fields),\n useAsTitle,\n clientCollectionConfig?.admin?.defaultColumns,\n )\n\n columnState = buildColumnState({\n clientCollectionConfig,\n collectionConfig,\n columnPreferences,\n columns,\n enableRowSelections,\n i18n,\n // sortColumnProps,\n customCellProps,\n docs,\n payload,\n useAsTitle,\n })\n }\n\n const columnsToUse = [...columnState]\n\n if (renderRowTypes) {\n columnsToUse.unshift({\n accessor: 'collection',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: i18n.t('version:type'),\n renderedCells: docs.map((doc, i) => (\n <Pill key={i}>\n {getTranslation(\n collections\n ? payload.collections[doc.relationTo].config.labels.singular\n : clientCollectionConfig.labels.singular,\n i18n,\n )}\n </Pill>\n )),\n } as Column)\n }\n\n if (enableRowSelections) {\n columnsToUse.unshift({\n accessor: '_select',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SelectAll />,\n renderedCells: docs.map((_, i) => <SelectRow key={i} rowData={docs[i]} />),\n } as Column)\n }\n\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: <Table appearance={tableAppearance} columns={columnsToUse} data={docs} key=\"table\" />,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -11,9 +11,14 @@ export declare const getPreferences: <T>(key: string, payload: Payload, userID:
11
11
  * @param key - The key of the preferences to update
12
12
  * @param value - The new value to merge with the existing preferences
13
13
  */
14
- export declare const upsertPreferences: <T extends Record<string, unknown> | string>({ key, req, value: incomingValue, }: {
14
+ export declare const upsertPreferences: <T extends Record<string, unknown> | string>({ customMerge, key, req, value: incomingValue, }: {
15
15
  key: string;
16
16
  req: PayloadRequest;
17
+ } & ({
18
+ customMerge: (existingValue: T) => T;
19
+ value?: never;
20
+ } | {
21
+ customMerge?: never;
17
22
  value: T;
18
- }) => Promise<T>;
23
+ })) => Promise<T>;
19
24
  //# sourceMappingURL=upsertPreferences.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"upsertPreferences.d.ts","sourceRoot":"","sources":["../../src/utilities/upsertPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAO7E,eAAO,MAAM,cAAc,GAClB,CAAC,OACD,MAAM,WACF,OAAO,UACR,qBAAqB,YACnB,MAAM,KACf,OAAO,CAAC;IAAE,EAAE,EAAE,qBAAqB,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CA+BnD,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,uCAI/E;IACD,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,cAAc,CAAA;IACnB,KAAK,EAAE,CAAC,CAAA;CACT,KAAG,OAAO,CAAC,CAAC,CAsDZ,CAAA"}
1
+ {"version":3,"file":"upsertPreferences.d.ts","sourceRoot":"","sources":["../../src/utilities/upsertPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAO7E,eAAO,MAAM,cAAc,GAClB,CAAC,OACD,MAAM,WACF,OAAO,UACR,qBAAqB,YACnB,MAAM,KACf,OAAO,CAAC;IAAE,EAAE,EAAE,qBAAqB,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CA+BnD,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,oDAK/E;IACD,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,cAAc,CAAA;CACpB,GAAG,CACA;IACE,WAAW,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAA;IACpC,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GACD;IACE,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,KAAK,EAAE,CAAC,CAAA;CACT,CACJ,KAAG,OAAO,CAAC,CAAC,CA4DZ,CAAA"}
@@ -34,6 +34,7 @@ export const getPreferences = cache(async (key, payload, userID, userSlug) => {
34
34
  * @param value - The new value to merge with the existing preferences
35
35
  */
36
36
  export const upsertPreferences = async ({
37
+ customMerge,
37
38
  key,
38
39
  req,
39
40
  value: incomingValue
@@ -56,11 +57,16 @@ export const upsertPreferences = async ({
56
57
  user: req.user
57
58
  });
58
59
  } else {
59
- // Strings are valid JSON, i.e. `locale` saved as a string to the locale preferences
60
- const mergedPrefs = typeof incomingValue === 'object' ? {
61
- ...(typeof existingPrefs.value === 'object' ? existingPrefs?.value : {}),
62
- ...removeUndefined(incomingValue || {})
63
- } : incomingValue;
60
+ let mergedPrefs;
61
+ if (typeof customMerge === 'function') {
62
+ mergedPrefs = customMerge(existingPrefs.value);
63
+ } else {
64
+ // Strings are valid JSON, i.e. `locale` saved as a string to the locale preferences
65
+ mergedPrefs = typeof incomingValue === 'object' ? {
66
+ ...(typeof existingPrefs.value === 'object' ? existingPrefs?.value : {}),
67
+ ...removeUndefined(incomingValue || {})
68
+ } : incomingValue;
69
+ }
64
70
  if (!dequal(mergedPrefs, existingPrefs.value)) {
65
71
  newPrefs = await req.payload.update({
66
72
  id: existingPrefs.id,
@@ -1 +1 @@
1
- {"version":3,"file":"upsertPreferences.js","names":["dequal","cache","removeUndefined","getPreferences","key","payload","userID","userSlug","result","find","collection","depth","limit","pagination","where","and","equals","then","res","docs","upsertPreferences","req","value","incomingValue","existingPrefs","user","id","newPrefs","create","data","disableTransaction","mergedPrefs","update"],"sources":["../../src/utilities/upsertPreferences.ts"],"sourcesContent":["import type { DefaultDocumentIDType, Payload, PayloadRequest } from 'payload'\n\nimport { dequal } from 'dequal/lite'\nimport { cache } from 'react'\n\nimport { removeUndefined } from './removeUndefined.js'\n\nexport const getPreferences = cache(\n async <T>(\n key: string,\n payload: Payload,\n userID: DefaultDocumentIDType,\n userSlug: string,\n ): Promise<{ id: DefaultDocumentIDType; value: T }> => {\n const result = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n pagination: false,\n where: {\n and: [\n {\n key: {\n equals: key,\n },\n },\n {\n 'user.relationTo': {\n equals: userSlug,\n },\n },\n {\n 'user.value': {\n equals: userID,\n },\n },\n ],\n },\n })\n .then((res) => res.docs?.[0])) as { id: DefaultDocumentIDType; value: T }\n\n return result\n },\n)\n\n/**\n * Will update the given preferences by key, creating a new record if it doesn't already exist, or merging existing preferences with the new value.\n * This is not possible to do with the existing `db.upsert` operation because it stores on the `value` key and does not perform a deep merge beyond the first level.\n * I.e. if you have a preferences record with a `value` key, `db.upsert` will overwrite the existing value. In the future if this supported we should use that instead.\n * @param req - The PayloadRequest object\n * @param key - The key of the preferences to update\n * @param value - The new value to merge with the existing preferences\n */\nexport const upsertPreferences = async <T extends Record<string, unknown> | string>({\n key,\n req,\n value: incomingValue,\n}: {\n key: string\n req: PayloadRequest\n value: T\n}): Promise<T> => {\n const existingPrefs: { id?: DefaultDocumentIDType; value?: T } = req.user\n ? await getPreferences<T>(key, req.payload, req.user.id, req.user.collection)\n : {}\n\n let newPrefs = existingPrefs?.value\n\n if (!existingPrefs?.id) {\n await req.payload.create({\n collection: 'payload-preferences',\n data: {\n key,\n user: {\n collection: req.user.collection,\n value: req.user.id,\n },\n value: incomingValue,\n },\n depth: 0,\n disableTransaction: true,\n user: req.user,\n })\n } else {\n // Strings are valid JSON, i.e. `locale` saved as a string to the locale preferences\n const mergedPrefs =\n typeof incomingValue === 'object'\n ? {\n ...(typeof existingPrefs.value === 'object' ? existingPrefs?.value : {}), // Shallow merge existing prefs to acquire any missing keys from incoming value\n ...removeUndefined(incomingValue || {}),\n }\n : incomingValue\n\n if (!dequal(mergedPrefs, existingPrefs.value)) {\n newPrefs = await req.payload\n .update({\n id: existingPrefs.id,\n collection: 'payload-preferences',\n data: {\n key,\n user: {\n collection: req.user.collection,\n value: req.user.id,\n },\n value: mergedPrefs,\n },\n depth: 0,\n disableTransaction: true,\n user: req.user,\n })\n ?.then((res) => res.value)\n }\n }\n\n return newPrefs\n}\n"],"mappings":"AAEA,SAASA,MAAM,QAAQ;AACvB,SAASC,KAAK,QAAQ;AAEtB,SAASC,eAAe,QAAQ;AAEhC,OAAO,MAAMC,cAAA,GAAiBF,KAAA,CAC5B,OACEG,GAAA,EACAC,OAAA,EACAC,MAAA,EACAC,QAAA;EAEA,MAAMC,MAAA,GAAU,MAAMH,OAAA,CACnBI,IAAI,CAAC;IACJC,UAAA,EAAY;IACZC,KAAA,EAAO;IACPC,KAAA,EAAO;IACPC,UAAA,EAAY;IACZC,KAAA,EAAO;MACLC,GAAA,EAAK,CACH;QACEX,GAAA,EAAK;UACHY,MAAA,EAAQZ;QACV;MACF,GACA;QACE,mBAAmB;UACjBY,MAAA,EAAQT;QACV;MACF,GACA;QACE,cAAc;UACZS,MAAA,EAAQV;QACV;MACF;IAEJ;EACF,GACCW,IAAI,CAAEC,GAAA,IAAQA,GAAA,CAAIC,IAAI,GAAG,EAAE;EAE9B,OAAOX,MAAA;AACT;AAGF;;;;;;;;AAQA,OAAO,MAAMY,iBAAA,GAAoB,MAAAA,CAAmD;EAClFhB,GAAG;EACHiB,GAAG;EACHC,KAAA,EAAOC;AAAa,CAKrB;EACC,MAAMC,aAAA,GAA2DH,GAAA,CAAII,IAAI,GACrE,MAAMtB,cAAA,CAAkBC,GAAA,EAAKiB,GAAA,CAAIhB,OAAO,EAAEgB,GAAA,CAAII,IAAI,CAACC,EAAE,EAAEL,GAAA,CAAII,IAAI,CAACf,UAAU,IAC1E,CAAC;EAEL,IAAIiB,QAAA,GAAWH,aAAA,EAAeF,KAAA;EAE9B,IAAI,CAACE,aAAA,EAAeE,EAAA,EAAI;IACtB,MAAML,GAAA,CAAIhB,OAAO,CAACuB,MAAM,CAAC;MACvBlB,UAAA,EAAY;MACZmB,IAAA,EAAM;QACJzB,GAAA;QACAqB,IAAA,EAAM;UACJf,UAAA,EAAYW,GAAA,CAAII,IAAI,CAACf,UAAU;UAC/BY,KAAA,EAAOD,GAAA,CAAII,IAAI,CAACC;QAClB;QACAJ,KAAA,EAAOC;MACT;MACAZ,KAAA,EAAO;MACPmB,kBAAA,EAAoB;MACpBL,IAAA,EAAMJ,GAAA,CAAII;IACZ;EACF,OAAO;IACL;IACA,MAAMM,WAAA,GACJ,OAAOR,aAAA,KAAkB,WACrB;MACE,IAAI,OAAOC,aAAA,CAAcF,KAAK,KAAK,WAAWE,aAAA,EAAeF,KAAA,GAAQ,CAAC,CAAC;MACvE,GAAGpB,eAAA,CAAgBqB,aAAA,IAAiB,CAAC;IACvC,IACAA,aAAA;IAEN,IAAI,CAACvB,MAAA,CAAO+B,WAAA,EAAaP,aAAA,CAAcF,KAAK,GAAG;MAC7CK,QAAA,GAAW,MAAMN,GAAA,CAAIhB,OAAO,CACzB2B,MAAM,CAAC;QACNN,EAAA,EAAIF,aAAA,CAAcE,EAAE;QACpBhB,UAAA,EAAY;QACZmB,IAAA,EAAM;UACJzB,GAAA;UACAqB,IAAA,EAAM;YACJf,UAAA,EAAYW,GAAA,CAAII,IAAI,CAACf,UAAU;YAC/BY,KAAA,EAAOD,GAAA,CAAII,IAAI,CAACC;UAClB;UACAJ,KAAA,EAAOS;QACT;QACApB,KAAA,EAAO;QACPmB,kBAAA,EAAoB;QACpBL,IAAA,EAAMJ,GAAA,CAAII;MACZ,IACER,IAAA,CAAMC,GAAA,IAAQA,GAAA,CAAII,KAAK;IAC7B;EACF;EAEA,OAAOK,QAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"upsertPreferences.js","names":["dequal","cache","removeUndefined","getPreferences","key","payload","userID","userSlug","result","find","collection","depth","limit","pagination","where","and","equals","then","res","docs","upsertPreferences","customMerge","req","value","incomingValue","existingPrefs","user","id","newPrefs","create","data","disableTransaction","mergedPrefs","update"],"sources":["../../src/utilities/upsertPreferences.ts"],"sourcesContent":["import type { DefaultDocumentIDType, Payload, PayloadRequest } from 'payload'\n\nimport { dequal } from 'dequal/lite'\nimport { cache } from 'react'\n\nimport { removeUndefined } from './removeUndefined.js'\n\nexport const getPreferences = cache(\n async <T>(\n key: string,\n payload: Payload,\n userID: DefaultDocumentIDType,\n userSlug: string,\n ): Promise<{ id: DefaultDocumentIDType; value: T }> => {\n const result = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n pagination: false,\n where: {\n and: [\n {\n key: {\n equals: key,\n },\n },\n {\n 'user.relationTo': {\n equals: userSlug,\n },\n },\n {\n 'user.value': {\n equals: userID,\n },\n },\n ],\n },\n })\n .then((res) => res.docs?.[0])) as { id: DefaultDocumentIDType; value: T }\n\n return result\n },\n)\n\n/**\n * Will update the given preferences by key, creating a new record if it doesn't already exist, or merging existing preferences with the new value.\n * This is not possible to do with the existing `db.upsert` operation because it stores on the `value` key and does not perform a deep merge beyond the first level.\n * I.e. if you have a preferences record with a `value` key, `db.upsert` will overwrite the existing value. In the future if this supported we should use that instead.\n * @param req - The PayloadRequest object\n * @param key - The key of the preferences to update\n * @param value - The new value to merge with the existing preferences\n */\nexport const upsertPreferences = async <T extends Record<string, unknown> | string>({\n customMerge,\n key,\n req,\n value: incomingValue,\n}: {\n key: string\n req: PayloadRequest\n} & (\n | {\n customMerge: (existingValue: T) => T\n value?: never\n }\n | {\n customMerge?: never\n value: T\n }\n)): Promise<T> => {\n const existingPrefs: { id?: DefaultDocumentIDType; value?: T } = req.user\n ? await getPreferences<T>(key, req.payload, req.user.id, req.user.collection)\n : {}\n\n let newPrefs = existingPrefs?.value\n\n if (!existingPrefs?.id) {\n await req.payload.create({\n collection: 'payload-preferences',\n data: {\n key,\n user: {\n collection: req.user.collection,\n value: req.user.id,\n },\n value: incomingValue,\n },\n depth: 0,\n disableTransaction: true,\n user: req.user,\n })\n } else {\n let mergedPrefs: T\n\n if (typeof customMerge === 'function') {\n mergedPrefs = customMerge(existingPrefs.value)\n } else {\n // Strings are valid JSON, i.e. `locale` saved as a string to the locale preferences\n mergedPrefs =\n typeof incomingValue === 'object'\n ? ({\n ...(typeof existingPrefs.value === 'object' ? existingPrefs?.value : {}), // Shallow merge existing prefs to acquire any missing keys from incoming value\n ...removeUndefined(incomingValue || {}),\n } as T)\n : incomingValue\n }\n\n if (!dequal(mergedPrefs, existingPrefs.value)) {\n newPrefs = await req.payload\n .update({\n id: existingPrefs.id,\n collection: 'payload-preferences',\n data: {\n key,\n user: {\n collection: req.user.collection,\n value: req.user.id,\n },\n value: mergedPrefs,\n },\n depth: 0,\n disableTransaction: true,\n user: req.user,\n })\n ?.then((res) => res.value)\n }\n }\n\n return newPrefs\n}\n"],"mappings":"AAEA,SAASA,MAAM,QAAQ;AACvB,SAASC,KAAK,QAAQ;AAEtB,SAASC,eAAe,QAAQ;AAEhC,OAAO,MAAMC,cAAA,GAAiBF,KAAA,CAC5B,OACEG,GAAA,EACAC,OAAA,EACAC,MAAA,EACAC,QAAA;EAEA,MAAMC,MAAA,GAAU,MAAMH,OAAA,CACnBI,IAAI,CAAC;IACJC,UAAA,EAAY;IACZC,KAAA,EAAO;IACPC,KAAA,EAAO;IACPC,UAAA,EAAY;IACZC,KAAA,EAAO;MACLC,GAAA,EAAK,CACH;QACEX,GAAA,EAAK;UACHY,MAAA,EAAQZ;QACV;MACF,GACA;QACE,mBAAmB;UACjBY,MAAA,EAAQT;QACV;MACF,GACA;QACE,cAAc;UACZS,MAAA,EAAQV;QACV;MACF;IAEJ;EACF,GACCW,IAAI,CAAEC,GAAA,IAAQA,GAAA,CAAIC,IAAI,GAAG,EAAE;EAE9B,OAAOX,MAAA;AACT;AAGF;;;;;;;;AAQA,OAAO,MAAMY,iBAAA,GAAoB,MAAAA,CAAmD;EAClFC,WAAW;EACXjB,GAAG;EACHkB,GAAG;EACHC,KAAA,EAAOC;AAAa,CAarB;EACC,MAAMC,aAAA,GAA2DH,GAAA,CAAII,IAAI,GACrE,MAAMvB,cAAA,CAAkBC,GAAA,EAAKkB,GAAA,CAAIjB,OAAO,EAAEiB,GAAA,CAAII,IAAI,CAACC,EAAE,EAAEL,GAAA,CAAII,IAAI,CAAChB,UAAU,IAC1E,CAAC;EAEL,IAAIkB,QAAA,GAAWH,aAAA,EAAeF,KAAA;EAE9B,IAAI,CAACE,aAAA,EAAeE,EAAA,EAAI;IACtB,MAAML,GAAA,CAAIjB,OAAO,CAACwB,MAAM,CAAC;MACvBnB,UAAA,EAAY;MACZoB,IAAA,EAAM;QACJ1B,GAAA;QACAsB,IAAA,EAAM;UACJhB,UAAA,EAAYY,GAAA,CAAII,IAAI,CAAChB,UAAU;UAC/Ba,KAAA,EAAOD,GAAA,CAAII,IAAI,CAACC;QAClB;QACAJ,KAAA,EAAOC;MACT;MACAb,KAAA,EAAO;MACPoB,kBAAA,EAAoB;MACpBL,IAAA,EAAMJ,GAAA,CAAII;IACZ;EACF,OAAO;IACL,IAAIM,WAAA;IAEJ,IAAI,OAAOX,WAAA,KAAgB,YAAY;MACrCW,WAAA,GAAcX,WAAA,CAAYI,aAAA,CAAcF,KAAK;IAC/C,OAAO;MACL;MACAS,WAAA,GACE,OAAOR,aAAA,KAAkB,WACpB;QACC,IAAI,OAAOC,aAAA,CAAcF,KAAK,KAAK,WAAWE,aAAA,EAAeF,KAAA,GAAQ,CAAC,CAAC;QACvE,GAAGrB,eAAA,CAAgBsB,aAAA,IAAiB,CAAC;MACvC,IACAA,aAAA;IACR;IAEA,IAAI,CAACxB,MAAA,CAAOgC,WAAA,EAAaP,aAAA,CAAcF,KAAK,GAAG;MAC7CK,QAAA,GAAW,MAAMN,GAAA,CAAIjB,OAAO,CACzB4B,MAAM,CAAC;QACNN,EAAA,EAAIF,aAAA,CAAcE,EAAE;QACpBjB,UAAA,EAAY;QACZoB,IAAA,EAAM;UACJ1B,GAAA;UACAsB,IAAA,EAAM;YACJhB,UAAA,EAAYY,GAAA,CAAII,IAAI,CAAChB,UAAU;YAC/Ba,KAAA,EAAOD,GAAA,CAAII,IAAI,CAACC;UAClB;UACAJ,KAAA,EAAOS;QACT;QACArB,KAAA,EAAO;QACPoB,kBAAA,EAAoB;QACpBL,IAAA,EAAMJ,GAAA,CAAII;MACZ,IACET,IAAA,CAAMC,GAAA,IAAQA,GAAA,CAAIK,KAAK;IAC7B;EACF;EAEA,OAAOK,QAAA;AACT","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,uBAAuB,EAAa,MAAM,SAAS,CAAA;AAI7E,OAAO,KAAsE,MAAM,OAAO,CAAA;AA8B1F,OAAO,cAAc,CAAA;AAOrB,wBAAgB,eAAe,CAAC,EAC9B,WAAW,EACX,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,EACf,MAAM,EAAE,YAAY,GACrB,EAAE,uBAAuB,qBAiiBzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,uBAAuB,EAAa,MAAM,SAAS,CAAA;AAI7E,OAAO,KAAsE,MAAM,OAAO,CAAA;AA8B1F,OAAO,cAAc,CAAA;AAOrB,wBAAgB,eAAe,CAAC,EAC9B,WAAW,EACX,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,EACf,MAAM,EAAE,YAAY,GACrB,EAAE,uBAAuB,qBAkiBzB"}
@@ -66,6 +66,7 @@ export function DefaultEditView({
66
66
  isEditing,
67
67
  isInitializing,
68
68
  lastUpdateTime,
69
+ redirectAfterCreate,
69
70
  redirectAfterDelete,
70
71
  redirectAfterDuplicate,
71
72
  savedDocumentData,
@@ -204,7 +205,7 @@ export function DefaultEditView({
204
205
  updatedAt: operation_0 === 'update' ? new Date().toISOString() : document?.updatedAt || new Date().toISOString()
205
206
  });
206
207
  }
207
- if (!isEditing && depth < 2) {
208
+ if (!isEditing && depth < 2 && redirectAfterCreate !== false) {
208
209
  // Redirect to the same locale if it's been set
209
210
  const redirectRoute = formatAdminURL({
210
211
  adminRoute,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useRouter","useSearchParams","formatAdminURL","React","Fragment","useCallback","useEffect","useMemo","useRef","useState","DocumentControls","DocumentDrawerHeader","useDocumentDrawerContext","DocumentFields","DocumentLocked","DocumentTakeOver","LeaveWithoutSaving","Upload","Form","useAuth","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","OperationProvider","useRouteTransition","useServerFunctions","useUploadEdits","abortAndIgnore","handleAbortRef","handleBackToDashboard","handleGoBack","handleTakeOver","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","Description","PreviewButton","PublishButton","SaveButton","SaveDraftButton","CustomUpload","id","action","AfterDocument","AfterFields","apiURL","BeforeFields","collectionSlug","currentEditor","disableActions","disableCreate","disableLeaveWithoutSaving","docPermissions","documentIsLocked","getDocPermissions","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","incrementVersionCount","initialState","isEditing","isInitializing","lastUpdateTime","redirectAfterDelete","redirectAfterDuplicate","savedDocumentData","setCurrentEditor","setDocumentIsLocked","unlockDocument","updateDocumentEditor","updateSavedDocumentData","clearDoc","drawerSlug","onDelete","onDuplicate","onSave","onSaveFromContext","isInDrawer","Boolean","refreshCookieAsync","user","config","admin","userSlug","routes","adminRoute","getEntityConfig","collectionConfig","globalConfig","depth","router","params","reportUpdate","resetUploadEdits","getFormState","startRouteTransition","abortOnChangeRef","abortOnSaveRef","locale","get","entitySlug","slug","operation","auth","undefined","upload","docConfig","lockDocumentsProp","lockDocuments","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","autosaveEnabled","versions","drafts","autosave","preventLeaveWithoutSaving","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","editSessionStartTime","setEditSessionStartTime","Date","now","lockExpiryTime","isLockExpired","documentLockStateRef","hasShownLockedModal","isLocked","classes","push","schemaPathSegments","validateBeforeSubmit","setValidateBeforeSubmit","disableLocalStrategy","handleDocumentLocking","lockedState","previousOwnerID","current","lockedUserID","json","controller","document","doc","result","updatedAt","toISOString","redirectRoute","path","docPreferences","state","data","renderAllFields","returnLockStatus","schemaPath","join","signal","skipValidation","onChange","formState","prevFormState","submitted","currentTime","timeSinceLastUpdate","updateLastEdited","shouldUnlockDocument","some","window","location","pathname","includes","abortOnChange","abortOnSave","shouldShowDocumentLockedModal","_jsx","className","filter","_jsxs","disabled","disableValidationOnSubmit","isDocumentForm","method","onSuccess","isActive","onReadOnly","onTakeOver","pluralLabel","labels","plural","useAsTitle","fallback","toString","customComponents","onDrawerCreateNew","permissions","readOnlyForIncomingUser","email","loginWithUsername","readOnly","requirePassword","useAPIKey","username","verify","uploadConfig","fields"],"sources":["../../../src/views/Edit/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientUser, DocumentViewClientProps, FormState } from 'payload'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\nimport type { LockedState } from '../../utilities/buildFormState.js'\n\nimport { DocumentControls } from '../../elements/DocumentControls/index.js'\nimport { DocumentDrawerHeader } from '../../elements/DocumentDrawer/DrawerHeader/index.js'\nimport { useDocumentDrawerContext } from '../../elements/DocumentDrawer/Provider.js'\nimport { DocumentFields } from '../../elements/DocumentFields/index.js'\nimport { DocumentLocked } from '../../elements/DocumentLocked/index.js'\nimport { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js'\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { Upload } from '../../elements/Upload/index.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { OperationProvider } from '../../providers/Operation/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { handleBackToDashboard } from '../../utilities/handleBackToDashboard.js'\nimport { handleGoBack } from '../../utilities/handleGoBack.js'\nimport { handleTakeOver } from '../../utilities/handleTakeOver.js'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport function DefaultEditView({\n Description,\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n Upload: CustomUpload,\n}: DocumentViewClientProps) {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeFields,\n collectionSlug,\n currentEditor,\n disableActions,\n disableCreate,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n getDocPermissions,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n incrementVersionCount,\n initialState,\n isEditing,\n isInitializing,\n lastUpdateTime,\n redirectAfterDelete,\n redirectAfterDuplicate,\n savedDocumentData,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n updateDocumentEditor,\n updateSavedDocumentData,\n } = useDocumentInfo()\n\n const {\n clearDoc,\n drawerSlug,\n onDelete,\n onDuplicate,\n onSave: onSaveFromContext,\n } = useDocumentDrawerContext()\n\n const isInDrawer = Boolean(drawerSlug)\n\n const { refreshCookieAsync, user } = useAuth()\n\n const {\n config,\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const globalConfig = getEntityConfig({ globalSlug })\n\n const depth = useEditDepth()\n\n const router = useRouter()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n\n const abortOnChangeRef = useRef<AbortController>(null)\n const abortOnSaveRef = useRef<AbortController>(null)\n\n const locale = params.get('locale')\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const operation = collectionSlug && !id ? 'create' : 'update'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n const isLockingEnabled = lockDocumentsProp !== false\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const autosaveEnabled = Boolean(\n (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave),\n )\n\n const preventLeaveWithoutSaving =\n typeof disableLeaveWithoutSaving !== 'undefined' ? !disableLeaveWithoutSaving : !autosaveEnabled\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\n\n const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now())\n\n const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds\n\n const isLockExpired = Date.now() > lockExpiryTime\n\n const documentLockStateRef = useRef<{\n hasShownLockedModal: boolean\n isLocked: boolean\n user: ClientUser | number | string\n } | null>({\n hasShownLockedModal: false,\n isLocked: false,\n user: null,\n })\n\n const classes = [baseClass, (id || globalSlug) && `${baseClass}--is-editing`]\n\n if (globalSlug) {\n classes.push(`global-edit--${globalSlug}`)\n }\n\n if (collectionSlug) {\n classes.push(`collection-edit--${collectionSlug}`)\n }\n\n const schemaPathSegments = useMemo(() => [entitySlug], [entitySlug])\n\n const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(() => {\n if (operation === 'create' && auth && !auth.disableLocalStrategy) {\n return true\n }\n\n return false\n })\n\n const handleDocumentLocking = useCallback(\n (lockedState: LockedState) => {\n setDocumentIsLocked(true)\n const previousOwnerID =\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id\n : documentLockStateRef.current?.user\n\n if (lockedState) {\n const lockedUserID =\n typeof lockedState.user === 'string' || typeof lockedState.user === 'number'\n ? lockedState.user\n : lockedState.user.id\n\n if (!documentLockStateRef.current || lockedUserID !== previousOwnerID) {\n if (previousOwnerID === user.id && lockedUserID !== user.id) {\n setShowTakeOverModal(true)\n documentLockStateRef.current.hasShownLockedModal = true\n }\n\n documentLockStateRef.current = {\n hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal || false,\n isLocked: true,\n user: lockedState.user as ClientUser,\n }\n setCurrentEditor(lockedState.user as ClientUser)\n }\n }\n },\n [setCurrentEditor, setDocumentIsLocked, user?.id],\n )\n\n const onSave = useCallback(\n async (json): Promise<FormState> => {\n const controller = handleAbortRef(abortOnSaveRef)\n\n const document = json?.doc || json?.result\n\n reportUpdate({\n id,\n entitySlug,\n updatedAt: document?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n incrementVersionCount()\n\n if (typeof updateSavedDocumentData === 'function') {\n void updateSavedDocumentData(document || {})\n }\n\n if (typeof onSaveFromContext === 'function') {\n const operation = id ? 'update' : 'create'\n\n void onSaveFromContext({\n ...json,\n operation,\n updatedAt:\n operation === 'update'\n ? new Date().toISOString()\n : document?.updatedAt || new Date().toISOString(),\n })\n }\n\n if (!isEditing && depth < 2) {\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${document?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n\n startRouteTransition(() => router.push(redirectRoute))\n } else {\n resetUploadEdits()\n }\n\n await getDocPermissions(json)\n\n if ((id || globalSlug) && !autosaveEnabled) {\n const docPreferences = await getDocPreferences()\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: document,\n docPermissions,\n docPreferences,\n globalSlug,\n operation,\n renderAllFields: true,\n returnLockStatus: false,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n skipValidation: true,\n })\n\n // Unlock the document after save\n if (isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n abortOnSaveRef.current = null\n\n return state\n }\n },\n [\n reportUpdate,\n id,\n entitySlug,\n user,\n collectionSlug,\n userSlug,\n incrementVersionCount,\n updateSavedDocumentData,\n onSaveFromContext,\n isEditing,\n depth,\n getDocPermissions,\n globalSlug,\n autosaveEnabled,\n refreshCookieAsync,\n adminRoute,\n locale,\n router,\n resetUploadEdits,\n getDocPreferences,\n getFormState,\n docPermissions,\n operation,\n schemaPathSegments,\n isLockingEnabled,\n setDocumentIsLocked,\n startRouteTransition,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const currentTime = Date.now()\n const timeSinceLastUpdate = currentTime - editSessionStartTime\n\n const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds\n\n if (updateLastEdited) {\n setEditSessionStartTime(currentTime)\n }\n\n const docPreferences = await getDocPreferences()\n\n const { lockedState, state } = await getFormState({\n id,\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n skipValidation: !submitted,\n // Performance optimization: Setting it to false ensure that only fields that have explicit requireRender set in the form state will be rendered (e.g. new array rows).\n // We only want to render ALL fields on initial render, not in onChange.\n renderAllFields: false,\n returnLockStatus: isLockingEnabled,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n updateLastEdited,\n })\n\n if (isLockingEnabled) {\n handleDocumentLocking(lockedState)\n }\n\n abortOnChangeRef.current = null\n\n return state\n },\n [\n id,\n collectionSlug,\n getDocPreferences,\n getFormState,\n globalSlug,\n handleDocumentLocking,\n isLockingEnabled,\n operation,\n schemaPathSegments,\n docPermissions,\n editSessionStartTime,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n if (isLockingEnabled && documentIsLocked && (id || globalSlug)) {\n // Only retain the lock if the user is still viewing the document\n const shouldUnlockDocument = !['preview', 'api', 'versions'].some((path) =>\n window.location.pathname.includes(path),\n )\n if (shouldUnlockDocument) {\n // Check if this user is still the current editor\n if (\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id === user?.id\n : documentLockStateRef.current?.user === user?.id\n ) {\n void unlockDocument(id, collectionSlug ?? globalSlug)\n setDocumentIsLocked(false)\n setCurrentEditor(null)\n }\n }\n }\n\n setShowTakeOverModal(false)\n }\n }, [\n collectionSlug,\n globalSlug,\n id,\n unlockDocument,\n user,\n setCurrentEditor,\n isLockingEnabled,\n documentIsLocked,\n setDocumentIsLocked,\n ])\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n const abortOnSave = abortOnSaveRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n abortAndIgnore(abortOnSave)\n }\n }, [])\n\n const shouldShowDocumentLockedModal =\n documentIsLocked &&\n currentEditor &&\n (typeof currentEditor === 'object'\n ? currentEditor.id !== user?.id\n : currentEditor !== user?.id) &&\n !isReadOnlyForIncomingUser &&\n !showTakeOverModal &&\n !documentLockStateRef.current?.hasShownLockedModal &&\n !isLockExpired\n\n return (\n <main className={classes.filter(Boolean).join(' ')}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || isInitializing || !hasSavePermission}\n disableValidationOnSubmit={!validateBeforeSubmit}\n initialState={!isInitializing && initialState}\n isDocumentForm={true}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {isInDrawer && <DocumentDrawerHeader drawerSlug={drawerSlug} />}\n {isLockingEnabled && shouldShowDocumentLockedModal && !isReadOnlyForIncomingUser && (\n <DocumentLocked\n handleGoBack={() => handleGoBack({ adminRoute, collectionSlug, router })}\n isActive={shouldShowDocumentLockedModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n false,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n )\n }\n updatedAt={lastUpdateTime}\n user={currentEditor}\n />\n )}\n {isLockingEnabled && showTakeOverModal && (\n <DocumentTakeOver\n handleBackToDashboard={() => handleBackToDashboard({ adminRoute, router })}\n isActive={showTakeOverModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n />\n )}\n {!isReadOnlyForIncomingUser && preventLeaveWithoutSaving && <LeaveWithoutSaving />}\n {!isInDrawer && (\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={collectionConfig?.labels?.plural}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={depth <= 1 ? id?.toString() : undefined}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n customComponents={{\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n }}\n data={savedDocumentData}\n disableActions={disableActions}\n disableCreate={disableCreate}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n onDelete={onDelete}\n onDrawerCreateNew={clearDoc}\n onDuplicate={onDuplicate}\n onSave={onSave}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n true,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n setIsReadOnlyForIncomingUser,\n )\n }\n permissions={docPermissions}\n readOnlyForIncomingUser={isReadOnlyForIncomingUser}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\n />\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={savedDocumentData?.email}\n loginWithUsername={auth?.loginWithUsername}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n setValidateBeforeSubmit={setValidateBeforeSubmit}\n useAPIKey={auth.useAPIKey}\n username={savedDocumentData?.username}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n {CustomUpload || (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n )}\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n Description={Description}\n docPermissions={docPermissions}\n fields={docConfig.fields}\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission}\n schemaPathSegments={schemaPathSegments}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useRouter","useSearchParams","formatAdminURL","React","Fragment","useCallback","useEffect","useMemo","useRef","useState","DocumentControls","DocumentDrawerHeader","useDocumentDrawerContext","DocumentFields","DocumentLocked","DocumentTakeOver","LeaveWithoutSaving","Upload","Form","useAuth","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","OperationProvider","useRouteTransition","useServerFunctions","useUploadEdits","abortAndIgnore","handleAbortRef","handleBackToDashboard","handleGoBack","handleTakeOver","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","Description","PreviewButton","PublishButton","SaveButton","SaveDraftButton","CustomUpload","id","action","AfterDocument","AfterFields","apiURL","BeforeFields","collectionSlug","currentEditor","disableActions","disableCreate","disableLeaveWithoutSaving","docPermissions","documentIsLocked","getDocPermissions","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","incrementVersionCount","initialState","isEditing","isInitializing","lastUpdateTime","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","savedDocumentData","setCurrentEditor","setDocumentIsLocked","unlockDocument","updateDocumentEditor","updateSavedDocumentData","clearDoc","drawerSlug","onDelete","onDuplicate","onSave","onSaveFromContext","isInDrawer","Boolean","refreshCookieAsync","user","config","admin","userSlug","routes","adminRoute","getEntityConfig","collectionConfig","globalConfig","depth","router","params","reportUpdate","resetUploadEdits","getFormState","startRouteTransition","abortOnChangeRef","abortOnSaveRef","locale","get","entitySlug","slug","operation","auth","undefined","upload","docConfig","lockDocumentsProp","lockDocuments","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","autosaveEnabled","versions","drafts","autosave","preventLeaveWithoutSaving","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","editSessionStartTime","setEditSessionStartTime","Date","now","lockExpiryTime","isLockExpired","documentLockStateRef","hasShownLockedModal","isLocked","classes","push","schemaPathSegments","validateBeforeSubmit","setValidateBeforeSubmit","disableLocalStrategy","handleDocumentLocking","lockedState","previousOwnerID","current","lockedUserID","json","controller","document","doc","result","updatedAt","toISOString","redirectRoute","path","docPreferences","state","data","renderAllFields","returnLockStatus","schemaPath","join","signal","skipValidation","onChange","formState","prevFormState","submitted","currentTime","timeSinceLastUpdate","updateLastEdited","shouldUnlockDocument","some","window","location","pathname","includes","abortOnChange","abortOnSave","shouldShowDocumentLockedModal","_jsx","className","filter","_jsxs","disabled","disableValidationOnSubmit","isDocumentForm","method","onSuccess","isActive","onReadOnly","onTakeOver","pluralLabel","labels","plural","useAsTitle","fallback","toString","customComponents","onDrawerCreateNew","permissions","readOnlyForIncomingUser","email","loginWithUsername","readOnly","requirePassword","useAPIKey","username","verify","uploadConfig","fields"],"sources":["../../../src/views/Edit/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientUser, DocumentViewClientProps, FormState } from 'payload'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\nimport type { LockedState } from '../../utilities/buildFormState.js'\n\nimport { DocumentControls } from '../../elements/DocumentControls/index.js'\nimport { DocumentDrawerHeader } from '../../elements/DocumentDrawer/DrawerHeader/index.js'\nimport { useDocumentDrawerContext } from '../../elements/DocumentDrawer/Provider.js'\nimport { DocumentFields } from '../../elements/DocumentFields/index.js'\nimport { DocumentLocked } from '../../elements/DocumentLocked/index.js'\nimport { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js'\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { Upload } from '../../elements/Upload/index.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { OperationProvider } from '../../providers/Operation/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { handleBackToDashboard } from '../../utilities/handleBackToDashboard.js'\nimport { handleGoBack } from '../../utilities/handleGoBack.js'\nimport { handleTakeOver } from '../../utilities/handleTakeOver.js'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport function DefaultEditView({\n Description,\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n Upload: CustomUpload,\n}: DocumentViewClientProps) {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeFields,\n collectionSlug,\n currentEditor,\n disableActions,\n disableCreate,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n getDocPermissions,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n incrementVersionCount,\n initialState,\n isEditing,\n isInitializing,\n lastUpdateTime,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n savedDocumentData,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n updateDocumentEditor,\n updateSavedDocumentData,\n } = useDocumentInfo()\n\n const {\n clearDoc,\n drawerSlug,\n onDelete,\n onDuplicate,\n onSave: onSaveFromContext,\n } = useDocumentDrawerContext()\n\n const isInDrawer = Boolean(drawerSlug)\n\n const { refreshCookieAsync, user } = useAuth()\n\n const {\n config,\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const globalConfig = getEntityConfig({ globalSlug })\n\n const depth = useEditDepth()\n\n const router = useRouter()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n\n const abortOnChangeRef = useRef<AbortController>(null)\n const abortOnSaveRef = useRef<AbortController>(null)\n\n const locale = params.get('locale')\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const operation = collectionSlug && !id ? 'create' : 'update'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n const isLockingEnabled = lockDocumentsProp !== false\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const autosaveEnabled = Boolean(\n (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave),\n )\n\n const preventLeaveWithoutSaving =\n typeof disableLeaveWithoutSaving !== 'undefined' ? !disableLeaveWithoutSaving : !autosaveEnabled\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\n\n const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now())\n\n const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds\n\n const isLockExpired = Date.now() > lockExpiryTime\n\n const documentLockStateRef = useRef<{\n hasShownLockedModal: boolean\n isLocked: boolean\n user: ClientUser | number | string\n } | null>({\n hasShownLockedModal: false,\n isLocked: false,\n user: null,\n })\n\n const classes = [baseClass, (id || globalSlug) && `${baseClass}--is-editing`]\n\n if (globalSlug) {\n classes.push(`global-edit--${globalSlug}`)\n }\n\n if (collectionSlug) {\n classes.push(`collection-edit--${collectionSlug}`)\n }\n\n const schemaPathSegments = useMemo(() => [entitySlug], [entitySlug])\n\n const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(() => {\n if (operation === 'create' && auth && !auth.disableLocalStrategy) {\n return true\n }\n\n return false\n })\n\n const handleDocumentLocking = useCallback(\n (lockedState: LockedState) => {\n setDocumentIsLocked(true)\n const previousOwnerID =\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id\n : documentLockStateRef.current?.user\n\n if (lockedState) {\n const lockedUserID =\n typeof lockedState.user === 'string' || typeof lockedState.user === 'number'\n ? lockedState.user\n : lockedState.user.id\n\n if (!documentLockStateRef.current || lockedUserID !== previousOwnerID) {\n if (previousOwnerID === user.id && lockedUserID !== user.id) {\n setShowTakeOverModal(true)\n documentLockStateRef.current.hasShownLockedModal = true\n }\n\n documentLockStateRef.current = {\n hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal || false,\n isLocked: true,\n user: lockedState.user as ClientUser,\n }\n setCurrentEditor(lockedState.user as ClientUser)\n }\n }\n },\n [setCurrentEditor, setDocumentIsLocked, user?.id],\n )\n\n const onSave = useCallback(\n async (json): Promise<FormState> => {\n const controller = handleAbortRef(abortOnSaveRef)\n\n const document = json?.doc || json?.result\n\n reportUpdate({\n id,\n entitySlug,\n updatedAt: document?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n incrementVersionCount()\n\n if (typeof updateSavedDocumentData === 'function') {\n void updateSavedDocumentData(document || {})\n }\n\n if (typeof onSaveFromContext === 'function') {\n const operation = id ? 'update' : 'create'\n\n void onSaveFromContext({\n ...json,\n operation,\n updatedAt:\n operation === 'update'\n ? new Date().toISOString()\n : document?.updatedAt || new Date().toISOString(),\n })\n }\n\n if (!isEditing && depth < 2 && redirectAfterCreate !== false) {\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${document?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n\n startRouteTransition(() => router.push(redirectRoute))\n } else {\n resetUploadEdits()\n }\n\n await getDocPermissions(json)\n\n if ((id || globalSlug) && !autosaveEnabled) {\n const docPreferences = await getDocPreferences()\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: document,\n docPermissions,\n docPreferences,\n globalSlug,\n operation,\n renderAllFields: true,\n returnLockStatus: false,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n skipValidation: true,\n })\n\n // Unlock the document after save\n if (isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n abortOnSaveRef.current = null\n\n return state\n }\n },\n [\n reportUpdate,\n id,\n entitySlug,\n user,\n collectionSlug,\n userSlug,\n incrementVersionCount,\n updateSavedDocumentData,\n onSaveFromContext,\n isEditing,\n depth,\n getDocPermissions,\n globalSlug,\n autosaveEnabled,\n refreshCookieAsync,\n adminRoute,\n locale,\n router,\n resetUploadEdits,\n getDocPreferences,\n getFormState,\n docPermissions,\n operation,\n schemaPathSegments,\n isLockingEnabled,\n setDocumentIsLocked,\n startRouteTransition,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const currentTime = Date.now()\n const timeSinceLastUpdate = currentTime - editSessionStartTime\n\n const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds\n\n if (updateLastEdited) {\n setEditSessionStartTime(currentTime)\n }\n\n const docPreferences = await getDocPreferences()\n\n const { lockedState, state } = await getFormState({\n id,\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n skipValidation: !submitted,\n // Performance optimization: Setting it to false ensure that only fields that have explicit requireRender set in the form state will be rendered (e.g. new array rows).\n // We only want to render ALL fields on initial render, not in onChange.\n renderAllFields: false,\n returnLockStatus: isLockingEnabled,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n updateLastEdited,\n })\n\n if (isLockingEnabled) {\n handleDocumentLocking(lockedState)\n }\n\n abortOnChangeRef.current = null\n\n return state\n },\n [\n id,\n collectionSlug,\n getDocPreferences,\n getFormState,\n globalSlug,\n handleDocumentLocking,\n isLockingEnabled,\n operation,\n schemaPathSegments,\n docPermissions,\n editSessionStartTime,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n if (isLockingEnabled && documentIsLocked && (id || globalSlug)) {\n // Only retain the lock if the user is still viewing the document\n const shouldUnlockDocument = !['preview', 'api', 'versions'].some((path) =>\n window.location.pathname.includes(path),\n )\n if (shouldUnlockDocument) {\n // Check if this user is still the current editor\n if (\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id === user?.id\n : documentLockStateRef.current?.user === user?.id\n ) {\n void unlockDocument(id, collectionSlug ?? globalSlug)\n setDocumentIsLocked(false)\n setCurrentEditor(null)\n }\n }\n }\n\n setShowTakeOverModal(false)\n }\n }, [\n collectionSlug,\n globalSlug,\n id,\n unlockDocument,\n user,\n setCurrentEditor,\n isLockingEnabled,\n documentIsLocked,\n setDocumentIsLocked,\n ])\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n const abortOnSave = abortOnSaveRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n abortAndIgnore(abortOnSave)\n }\n }, [])\n\n const shouldShowDocumentLockedModal =\n documentIsLocked &&\n currentEditor &&\n (typeof currentEditor === 'object'\n ? currentEditor.id !== user?.id\n : currentEditor !== user?.id) &&\n !isReadOnlyForIncomingUser &&\n !showTakeOverModal &&\n !documentLockStateRef.current?.hasShownLockedModal &&\n !isLockExpired\n\n return (\n <main className={classes.filter(Boolean).join(' ')}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || isInitializing || !hasSavePermission}\n disableValidationOnSubmit={!validateBeforeSubmit}\n initialState={!isInitializing && initialState}\n isDocumentForm={true}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {isInDrawer && <DocumentDrawerHeader drawerSlug={drawerSlug} />}\n {isLockingEnabled && shouldShowDocumentLockedModal && !isReadOnlyForIncomingUser && (\n <DocumentLocked\n handleGoBack={() => handleGoBack({ adminRoute, collectionSlug, router })}\n isActive={shouldShowDocumentLockedModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n false,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n )\n }\n updatedAt={lastUpdateTime}\n user={currentEditor}\n />\n )}\n {isLockingEnabled && showTakeOverModal && (\n <DocumentTakeOver\n handleBackToDashboard={() => handleBackToDashboard({ adminRoute, router })}\n isActive={showTakeOverModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n />\n )}\n {!isReadOnlyForIncomingUser && preventLeaveWithoutSaving && <LeaveWithoutSaving />}\n {!isInDrawer && (\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={collectionConfig?.labels?.plural}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={depth <= 1 ? id?.toString() : undefined}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n customComponents={{\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n }}\n data={savedDocumentData}\n disableActions={disableActions}\n disableCreate={disableCreate}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n onDelete={onDelete}\n onDrawerCreateNew={clearDoc}\n onDuplicate={onDuplicate}\n onSave={onSave}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n true,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n setIsReadOnlyForIncomingUser,\n )\n }\n permissions={docPermissions}\n readOnlyForIncomingUser={isReadOnlyForIncomingUser}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\n />\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={savedDocumentData?.email}\n loginWithUsername={auth?.loginWithUsername}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n setValidateBeforeSubmit={setValidateBeforeSubmit}\n useAPIKey={auth.useAPIKey}\n username={savedDocumentData?.username}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n {CustomUpload || (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n )}\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n Description={Description}\n docPermissions={docPermissions}\n fields={docConfig.fields}\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission}\n schemaPathSegments={schemaPathSegments}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAKlD,OAAO,KAAwC,MAAM,OAAO,CAAA;AAwB5D,OAAO,cAAc,CAAA;AAIrB,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,qBAsPzD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAKlD,OAAO,KAAwC,MAAM,OAAO,CAAA;AAwB5D,OAAO,cAAc,CAAA;AAIrB,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,qBA8PzD"}
@@ -19,12 +19,12 @@ import { RenderCustomComponent } from '../../elements/RenderCustomComponent/inde
19
19
  import { SelectMany } from '../../elements/SelectMany/index.js';
20
20
  import { useStepNav } from '../../elements/StepNav/index.js';
21
21
  import { RelationshipProvider } from '../../elements/Table/RelationshipProvider/index.js';
22
- import { TableColumnsProvider } from '../../elements/TableColumns/index.js';
23
22
  import { ViewDescription } from '../../elements/ViewDescription/index.js';
24
23
  import { useAuth } from '../../providers/Auth/index.js';
25
24
  import { useConfig } from '../../providers/Config/index.js';
26
25
  import { useListQuery } from '../../providers/ListQuery/index.js';
27
26
  import { SelectionProvider } from '../../providers/Selection/index.js';
27
+ import { TableColumnsProvider } from '../../providers/TableColumns/index.js';
28
28
  import { useTranslation } from '../../providers/Translation/index.js';
29
29
  import { useWindowInfo } from '../../providers/WindowInfo/index.js';
30
30
  import { ListHeader } from './ListHeader/index.js';
@@ -43,10 +43,13 @@ export function DefaultListView(props) {
43
43
  Description,
44
44
  disableBulkDelete,
45
45
  disableBulkEdit,
46
+ disableQueryPresets,
46
47
  enableRowSelections,
47
48
  hasCreatePermission: hasCreatePermissionFromProps,
48
49
  listMenuItems,
49
50
  newDocumentURL,
51
+ queryPreset,
52
+ queryPresetPermissions,
50
53
  renderedFilters,
51
54
  resolvedFilterOptions,
52
55
  Table: InitialTable
@@ -217,7 +220,10 @@ export function DefaultListView(props) {
217
220
  beforeActions: t5,
218
221
  collectionConfig,
219
222
  collectionSlug,
223
+ disableQueryPresets: collectionConfig?.enableQueryPresets !== true || disableQueryPresets,
220
224
  listMenuItems,
225
+ queryPreset,
226
+ queryPresetPermissions,
221
227
  renderedFilters,
222
228
  resolvedFilterOptions
223
229
  }), BeforeListTable, docs.length > 0 && _jsx(RelationshipProvider, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","useRouter","formatFilesize","isNumber","React","Fragment","useEffect","useState","useBulkUpload","Button","Gutter","ListControls","useListDrawerContext","ListSelection","useModal","Pagination","PerPage","RenderCustomComponent","SelectMany","useStepNav","RelationshipProvider","TableColumnsProvider","ViewDescription","useAuth","useConfig","useListQuery","SelectionProvider","useTranslation","useWindowInfo","ListHeader","baseClass","DefaultListView","props","$","AfterList","AfterListTable","beforeActions","BeforeList","BeforeListTable","collectionSlug","columnState","Description","disableBulkDelete","disableBulkEdit","enableRowSelections","hasCreatePermission","hasCreatePermissionFromProps","listMenuItems","newDocumentURL","renderedFilters","resolvedFilterOptions","Table","InitialTable","setTable","allowCreate","createNewDrawerSlug","drawerSlug","listDrawerSlug","onBulkSelect","undefined","t0","t1","user","getEntityConfig","router","data","defaultLimit","initialLimit","handlePageChange","handlePerPageChange","query","openModal","setCollectionSlug","setCurrentActivePath","setOnSuccess","bulkUploadDrawerSlug","collectionConfig","labels","upload","isUploadCollection","Boolean","isBulkUploadEnabled","bulkUpload","isInDrawer","i18n","t","setStepNav","breakpoints","t2","s","smallBreak","t3","t4","docs","map","_temp","refresh","openBulkUpload","label","plural","t5","_jsx","onClick","children","className","_jsxs","totalDocs","CustomComponent","Fallback","description","admin","hideFileInputOnCreate","length","el","singular","to","hasNextPage","hasPrevPage","limit","nextPage","numberOfNeighbors","onChange","page","prevPage","totalPages","handleChange","Number","limits","pagination","resetPage","pagingCounter","doc","filesize"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ListViewClientProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatFilesize, isNumber } from 'payload/shared'\nimport React, { Fragment, useEffect, useState } from 'react'\n\nimport { useBulkUpload } from '../../elements/BulkUpload/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { Gutter } from '../../elements/Gutter/index.js'\nimport { ListControls } from '../../elements/ListControls/index.js'\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { ListSelection } from '../../elements/ListSelection/index.js'\nimport { useModal } from '../../elements/Modal/index.js'\nimport { Pagination } from '../../elements/Pagination/index.js'\nimport { PerPage } from '../../elements/PerPage/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { SelectMany } from '../../elements/SelectMany/index.js'\nimport { useStepNav } from '../../elements/StepNav/index.js'\nimport { RelationshipProvider } from '../../elements/Table/RelationshipProvider/index.js'\nimport { TableColumnsProvider } from '../../elements/TableColumns/index.js'\nimport { ViewDescription } from '../../elements/ViewDescription/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { SelectionProvider } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useWindowInfo } from '../../providers/WindowInfo/index.js'\nimport { ListHeader } from './ListHeader/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-list'\n\nexport function DefaultListView(props: ListViewClientProps) {\n const {\n AfterList,\n AfterListTable,\n beforeActions,\n BeforeList,\n BeforeListTable,\n collectionSlug,\n columnState,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n hasCreatePermission: hasCreatePermissionFromProps,\n listMenuItems,\n newDocumentURL,\n renderedFilters,\n resolvedFilterOptions,\n Table: InitialTable,\n } = props\n\n const [Table, setTable] = useState(InitialTable)\n\n const {\n allowCreate,\n createNewDrawerSlug,\n drawerSlug: listDrawerSlug,\n onBulkSelect,\n } = useListDrawerContext()\n\n const hasCreatePermission =\n allowCreate !== undefined\n ? allowCreate && hasCreatePermissionFromProps\n : hasCreatePermissionFromProps\n\n useEffect(() => {\n if (InitialTable) {\n setTable(InitialTable)\n }\n }, [InitialTable])\n\n const { user } = useAuth()\n\n const { getEntityConfig } = useConfig()\n const router = useRouter()\n\n const {\n data,\n defaultLimit: initialLimit,\n handlePageChange,\n handlePerPageChange,\n query,\n } = useListQuery()\n\n const { openModal } = useModal()\n const { setCollectionSlug, setCurrentActivePath, setOnSuccess } = useBulkUpload()\n const { drawerSlug: bulkUploadDrawerSlug } = useBulkUpload()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { labels, upload } = collectionConfig\n\n const isUploadCollection = Boolean(upload)\n\n const isBulkUploadEnabled = isUploadCollection && collectionConfig.upload.bulkUpload\n\n const isInDrawer = Boolean(listDrawerSlug)\n\n const { i18n, t } = useTranslation()\n\n const { setStepNav } = useStepNav()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const docs = React.useMemo(() => {\n if (isUploadCollection) {\n return data.docs.map((doc) => {\n return {\n ...doc,\n filesize: formatFilesize(doc.filesize),\n }\n })\n } else {\n return data.docs\n }\n }, [data.docs, isUploadCollection])\n\n const openBulkUpload = React.useCallback(() => {\n setCollectionSlug(collectionSlug)\n setCurrentActivePath(collectionSlug)\n openModal(bulkUploadDrawerSlug)\n setOnSuccess(collectionSlug, () => router.refresh())\n }, [\n router,\n collectionSlug,\n bulkUploadDrawerSlug,\n openModal,\n setCollectionSlug,\n setCurrentActivePath,\n setOnSuccess,\n ])\n\n useEffect(() => {\n if (!isInDrawer) {\n setStepNav([\n {\n label: labels?.plural,\n },\n ])\n }\n }, [setStepNav, labels, isInDrawer])\n\n return (\n <Fragment>\n <TableColumnsProvider collectionSlug={collectionSlug} columnState={columnState}>\n <div className={`${baseClass} ${baseClass}--${collectionSlug}`}>\n <SelectionProvider docs={docs} totalDocs={data.totalDocs} user={user}>\n {BeforeList}\n <Gutter className={`${baseClass}__wrap`}>\n <ListHeader\n collectionConfig={collectionConfig}\n Description={\n <div className={`${baseClass}__sub-header`}>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={\n <ViewDescription\n collectionSlug={collectionSlug}\n description={collectionConfig?.admin?.description}\n />\n }\n />\n </div>\n }\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n hasCreatePermission={hasCreatePermission}\n i18n={i18n}\n isBulkUploadEnabled={isBulkUploadEnabled && !upload.hideFileInputOnCreate}\n newDocumentURL={newDocumentURL}\n openBulkUpload={openBulkUpload}\n smallBreak={smallBreak}\n t={t}\n />\n <ListControls\n beforeActions={\n enableRowSelections && typeof onBulkSelect === 'function'\n ? beforeActions\n ? [...beforeActions, <SelectMany key=\"select-many\" onClick={onBulkSelect} />]\n : [<SelectMany key=\"select-many\" onClick={onBulkSelect} />]\n : beforeActions\n }\n collectionConfig={collectionConfig}\n collectionSlug={collectionSlug}\n listMenuItems={listMenuItems}\n renderedFilters={renderedFilters}\n resolvedFilterOptions={resolvedFilterOptions}\n />\n {BeforeListTable}\n {docs.length > 0 && <RelationshipProvider>{Table}</RelationshipProvider>}\n {docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t('general:noResults', { label: getTranslation(labels?.plural, i18n) })}\n </p>\n {hasCreatePermission && newDocumentURL && (\n <Fragment>\n {isInDrawer ? (\n <Button el=\"button\" onClick={() => openModal(createNewDrawerSlug)}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n </Button>\n ) : (\n <Button el=\"link\" to={newDocumentURL}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n </Button>\n )}\n </Fragment>\n )}\n </div>\n )}\n {AfterListTable}\n {docs.length > 0 && (\n <div className={`${baseClass}__page-controls`}>\n <Pagination\n hasNextPage={data.hasNextPage}\n hasPrevPage={data.hasPrevPage}\n limit={data.limit}\n nextPage={data.nextPage}\n numberOfNeighbors={1}\n onChange={(page) => void handlePageChange(page)}\n page={data.page}\n prevPage={data.prevPage}\n totalPages={data.totalPages}\n />\n {data.totalDocs > 0 && (\n <Fragment>\n <div className={`${baseClass}__page-info`}>\n {data.page * data.limit - (data.limit - 1)}-\n {data.totalPages > 1 && data.totalPages !== data.page\n ? data.limit * data.page\n : data.totalDocs}{' '}\n {i18n.t('general:of')} {data.totalDocs}\n </div>\n <PerPage\n handleChange={(limit) => void handlePerPageChange(limit)}\n limit={isNumber(query?.limit) ? Number(query.limit) : initialLimit}\n limits={collectionConfig?.admin?.pagination?.limits}\n resetPage={data.totalDocs <= data.pagingCounter}\n />\n {smallBreak && (\n <div className={`${baseClass}__list-selection`}>\n <ListSelection\n collectionConfig={collectionConfig}\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n label={getTranslation(collectionConfig.labels.plural, i18n)}\n />\n <div className={`${baseClass}__list-selection-actions`}>\n {enableRowSelections && typeof onBulkSelect === 'function'\n ? beforeActions\n ? [\n ...beforeActions,\n <SelectMany key=\"select-many\" onClick={onBulkSelect} />,\n ]\n : [<SelectMany key=\"select-many\" onClick={onBulkSelect} />]\n : beforeActions}\n </div>\n </div>\n )}\n </Fragment>\n )}\n </div>\n )}\n </Gutter>\n {AfterList}\n </SelectionProvider>\n </div>\n </TableColumnsProvider>\n </Fragment>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,EAAEC,QAAQ,QAAQ;AACzC,OAAOC,KAAA,IAASC,QAAQ,EAAEC,SAAS,EAAEC,QAAQ,QAAQ;AAErD,SAASC,aAAa,QAAQ;AAC9B,SAASC,MAAM,QAAQ;AACvB,SAASC,MAAM,QAAQ;AACvB,SAASC,YAAY,QAAQ;AAC7B,SAASC,oBAAoB,QAAQ;AACrC,SAASC,aAAa,QAAQ;AAC9B,SAASC,QAAQ,QAAQ;AACzB,SAASC,UAAU,QAAQ;AAC3B,SAASC,OAAO,QAAQ;AACxB,SAASC,qBAAqB,QAAQ;AACtC,SAASC,UAAU,QAAQ;AAC3B,SAASC,UAAU,QAAQ;AAC3B,SAASC,oBAAoB,QAAQ;AACrC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,eAAe,QAAQ;AAChC,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,YAAY,QAAQ;AAC7B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,cAAc,QAAQ;AAC/B,SAASC,aAAa,QAAQ;AAC9B,SAASC,UAAU,QAAQ;AAC3B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,SAAAC,gBAAAC,KAAA;EAAA,MAAAC,CAAA,GAAAlC,EAAA;EACL;IAAAmC,SAAA;IAAAC,cAAA;IAAAC,aAAA;IAAAC,UAAA;IAAAC,eAAA;IAAAC,cAAA;IAAAC,WAAA;IAAAC,WAAA;IAAAC,iBAAA;IAAAC,eAAA;IAAAC,mBAAA;IAAAC,mBAAA,EAAAC,4BAAA;IAAAC,aAAA;IAAAC,cAAA;IAAAC,eAAA;IAAAC,qBAAA;IAAAC,KAAA,EAAAC;EAAA,IAkBIpB,KAAA;EAEJ,OAAAmB,KAAA,EAAAE,QAAA,IAA0B9C,QAAA,CAAS6C,YAAA;EAEnC;IAAAE,WAAA;IAAAC,mBAAA;IAAAC,UAAA,EAAAC,cAAA;IAAAC;EAAA,IAKI9C,oBAAA;EAEJ,MAAAiC,mBAAA,GACES,WAAA,KAAAK,SAAgB,GACZL,WAAA,IAAeR,4BAAA,GACfA,4BAAA;EAAA,IAAAc,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAA5B,CAAA,QAAAmB,YAAA;IAEIQ,EAAA,GAAAA,CAAA;MAAA,IACJR,YAAA;QACFC,QAAA,CAASD,YAAA;MAAA;IAAA;IAEVS,EAAA,IAACT,YAAA;IAAanB,CAAA,MAAAmB,YAAA;IAAAnB,CAAA,MAAA2B,EAAA;IAAA3B,CAAA,MAAA4B,EAAA;EAAA;IAAAD,EAAA,GAAA3B,CAAA;IAAA4B,EAAA,GAAA5B,CAAA;EAAA;EAJjB3B,SAAA,CAAUsD,EAIV,EAAGC,EAAc;EAEjB;IAAAC;EAAA,IAAiBvC,OAAA;EAEjB;IAAAwC;EAAA,IAA4BvC,SAAA;EAC5B,MAAAwC,MAAA,GAAe/D,SAAA;EAEf;IAAAgE,IAAA;IAAAC,YAAA,EAAAC,YAAA;IAAAC,gBAAA;IAAAC,mBAAA;IAAAC;EAAA,IAMI7C,YAAA;EAEJ;IAAA8C;EAAA,IAAsBzD,QAAA;EACtB;IAAA0D,iBAAA;IAAAC,oBAAA;IAAAC;EAAA,IAAkElE,aAAA;EAClE;IAAAgD,UAAA,EAAAmB;EAAA,IAA6CnE,aAAA;EAE7C,MAAAoE,gBAAA,GAAyBb,eAAA;IAAAxB;EAAA,CAAiC;EAE1D;IAAAsC,MAAA;IAAAC;EAAA,IAA2BF,gBAAA;EAE3B,MAAAG,kBAAA,GAA2BC,OAAA,CAAQF,MAAA;EAEnC,MAAAG,mBAAA,GAA4BF,kBAAA,IAAsBH,gBAAA,CAAAE,MAAA,CAAAI,UAAkC;EAEpF,MAAAC,UAAA,GAAmBH,OAAA,CAAQvB,cAAA;EAE3B;IAAA2B,IAAA;IAAAC;EAAA,IAAoB1D,cAAA;EAEpB;IAAA2D;EAAA,IAAuBnE,UAAA;EAEvB;IAAAoE,WAAA,EAAAC;EAAA,IAEI5D,aAAA;EADW;IAAA6D,CAAA,EAAAC;EAAA,IAAAF,EAAiB;EAAA,IAAAG,EAAA;EAAA,IAI1BZ,kBAAA;IAAA,IAAAa,EAAA;IAAA,IAAA3D,CAAA,QAAAgC,IAAA,CAAA4B,IAAA;MACKD,EAAA,GAAA3B,IAAA,CAAA4B,IAAA,CAAAC,GAAA,CAAAC,KAKP;MAAA9D,CAAA,MAAAgC,IAAA,CAAA4B,IAAA;MAAA5D,CAAA,MAAA2D,EAAA;IAAA;MAAAA,EAAA,GAAA3D,CAAA;IAAA;IALA0D,EAAA,GAAOC,EAKP;EAAA;IAEAD,EAAA,GAAO1B,IAAA,CAAA4B,IAAA;EAAS;EATpB,MAAAA,IAAA,GAAaF,EAWqB;EAAA,IAAAC,EAAA;EAAA,IAAA3D,CAAA,QAAA0C,oBAAA,IAAA1C,CAAA,QAAAM,cAAA,IAAAN,CAAA,QAAAsC,SAAA,IAAAtC,CAAA,QAAA+B,MAAA,IAAA/B,CAAA,QAAAuC,iBAAA,IAAAvC,CAAA,SAAAwC,oBAAA,IAAAxC,CAAA,SAAAyC,YAAA;IAEOkB,EAAA,GAAAA,CAAA;MACvCpB,iBAAA,CAAkBjC,cAAA;MAClBkC,oBAAA,CAAqBlC,cAAA;MACrBgC,SAAA,CAAUI,oBAAA;MACVD,YAAA,CAAanC,cAAA,QAAsByB,MAAA,CAAAgC,OAAA,CAAc;IAAA;IACnD/D,CAAA,MAAA0C,oBAAA;IAAA1C,CAAA,MAAAM,cAAA;IAAAN,CAAA,MAAAsC,SAAA;IAAAtC,CAAA,MAAA+B,MAAA;IAAA/B,CAAA,MAAAuC,iBAAA;IAAAvC,CAAA,OAAAwC,oBAAA;IAAAxC,CAAA,OAAAyC,YAAA;IAAAzC,CAAA,OAAA2D,EAAA;EAAA;IAAAA,EAAA,GAAA3D,CAAA;EAAA;EALA,MAAAgE,cAAA,GAAuBL,EAatB;EAEDtF,SAAA;IAAA,KACO6E,UAAA;MACHG,UAAA;QAAAY,KAAA,EAEWrB,MAAA,EAAAsB;MAAA,EAEV;IAAA;EAAA,IAEDb,UAAA,EAAYT,MAAA,EAAQM,UAAA,CAAW;EAAA,IAAAiB,EAAA;EAAA,IAAAnE,CAAA,SAAAG,aAAA,IAAAH,CAAA,SAAAW,mBAAA,IAAAX,CAAA,SAAAyB,YAAA;IAoCnB0C,EAAA,GAAAxD,mBAAA,IAAuB,OAAOc,YAAA,KAAiB,aAC3CtB,aAAA,OACMA,aAAA,EAAeiE,IAAA,CAAAnF,UAAA;MAAAoF,OAAA,EAAuC5C;IAAA,GAAvB,mBAClC2C,IAAA,CAAAnF,UAAA;MAAAoF,OAAA,EAAuC5C;IAAA,GAAvB,eAAwC,GAC3DtB,aAAA;IAAAH,CAAA,OAAAG,aAAA;IAAAH,CAAA,OAAAW,mBAAA;IAAAX,CAAA,OAAAyB,YAAA;IAAAzB,CAAA,OAAAmE,EAAA;EAAA;IAAAA,EAAA,GAAAnE,CAAA;EAAA;EAAA,OArClBoE,IAAA,CAAAhG,QAAA;IAAAkG,QAAA,EACEF,IAAA,CAAAhF,oBAAA;MAAAkB,cAAA;MAAAC,WAAA;MAAA+D,QAAA,EACEF,IAAA,CAAC;QAAAG,SAAA,EAAe,GAAA1E,SAAA,IAAAA,SAAA,KAA8BS,cAAA,EAAgB;QAAAgE,QAAA,EAC5DE,KAAA,CAAA/E,iBAAA;UAAAmE,IAAA;UAAAa,SAAA,EAA0CzC,IAAA,CAAAyC,SAAA;UAAA5C,IAAA;UAAAyC,QAAA,GACvClE,UAAA,EACDoE,KAAA,CAAA/F,MAAA;YAAA8F,SAAA,EAAmB,GAAA1E,SAAA,QAAoB;YAAAyE,QAAA,GACrCF,IAAA,CAAAxE,UAAA;cAAA+C,gBAAA;cAAAnC,WAAA,EAGI4D,IAAA,CAAC;gBAAAG,SAAA,EAAe,GAAA1E,SAAA,cAA0B;gBAAAyE,QAAA,EACxCF,IAAA,CAAApF,qBAAA;kBAAA0F,eAAA,EACmBlE,WAAA;kBAAAmE,QAAA,EAEfP,IAAA,CAAA/E,eAAA;oBAAAiB,cAAA;oBAAAsE,WAAA,EAEejC,gBAAA,EAAAkC,KAAA,EAAAD;kBAAA,C;;;;;;;mCAUF5B,mBAAA,KAAwBH,MAAA,CAAAiC,qBAA4B;cAAA/D,cAAA;cAAAiD,cAAA;cAAAP,UAAA;cAAAL;YAAA,C,GAM3EgB,IAAA,CAAA1F,YAAA;cAAAyB,aAAA,EAEIgE,EAII;cAAAxB,gBAAA;cAAArC,cAAA;cAAAQ,aAAA;cAAAE,eAAA;cAAAC;YAAA,C,GAQPZ,eAAA,EACAuD,IAAA,CAAAmB,MAAA,IAAc,IAAKX,IAAA,CAAAjF,oBAAA;cAAAmF,QAAA,EAAuBpD;YAAA,C,GAC1C0C,IAAA,CAAAmB,MAAA,MAAgB,IACfP,KAAA,CAAC;cAAAD,SAAA,EAAe,GAAA1E,SAAA,cAA0B;cAAAyE,QAAA,GACxCF,IAAA,CAAC;gBAAAE,QAAA,EACEnB,IAAA,CAAAC,CAAA,CAAO;kBAAAa,KAAA,EAA8BlG,cAAA,CAAe6E,MAAA,EAAAsB,MAAA,EAAgBf,IAAA;gBAAA,CAAM;cAAA,C,GAE5EvC,mBAAA,IAAuBG,cAAA,IACtBqD,IAAA,CAAAhG,QAAA;gBAAAkG,QAAA,EACGpB,UAAA,GACCkB,IAAA,CAAA5F,MAAA;kBAAAwG,EAAA,EAAW;kBAAAX,OAAA,EAAAA,CAAA,KAAwB/B,SAAA,CAAUhB,mBAAA;kBAAAgD,QAAA,EAC1CnB,IAAA,CAAAC,CAAA,CAAO;oBAAAa,KAAA,EACClG,cAAA,CAAe6E,MAAA,EAAAqC,QAAA,EAAkB9B,IAAA;kBAAA,CAC1C;gBAAA,C,IAGFiB,IAAA,CAAA5F,MAAA;kBAAAwG,EAAA,EAAW;kBAAAE,EAAA,EAAWnE,cAAA;kBAAAuD,QAAA,EACnBnB,IAAA,CAAAC,CAAA,CAAO;oBAAAa,KAAA,EACClG,cAAA,CAAe6E,MAAA,EAAAqC,QAAA,EAAkB9B,IAAA;kBAAA,CAC1C;gBAAA,C;;gBAOXjD,cAAA,EACA0D,IAAA,CAAAmB,MAAA,IAAc,IACbP,KAAA,CAAC;cAAAD,SAAA,EAAe,GAAA1E,SAAA,iBAA6B;cAAAyE,QAAA,GAC3CF,IAAA,CAAAtF,UAAA;gBAAAqG,WAAA,EACenD,IAAA,CAAAmD,WAAA;gBAAAC,WAAA,EACApD,IAAA,CAAAoD,WAAA;gBAAAC,KAAA,EACNrD,IAAA,CAAAqD,KAAA;gBAAAC,QAAA,EACGtD,IAAA,CAAAsD,QAAA;gBAAAC,iBAAA;gBAAAC,QAAA,EAAAC,IAAA,SAEetD,gBAAA,CAAiBsD,IAAA;gBAAAA,IAAA,EACpCzD,IAAA,CAAAyD,IAAA;gBAAAC,QAAA,EACI1D,IAAA,CAAA0D,QAAA;gBAAAC,UAAA,EACE3D,IAAA,CAAA2D;cAAA,C,GAEb3D,IAAA,CAAAyC,SAAA,IAAiB,IAChBD,KAAA,CAAApG,QAAA;gBAAAkG,QAAA,GACEE,KAAA,CAAC;kBAAAD,SAAA,EAAe,GAAA1E,SAAA,aAAyB;kBAAAyE,QAAA,GACtCtC,IAAA,CAAAyD,IAAA,GAAYzD,IAAA,CAAAqD,KAAU,IAAIrD,IAAA,CAAAqD,KAAA,IAAa,GAAG,KAC1CrD,IAAA,CAAA2D,UAAA,IAAkB,IAAK3D,IAAA,CAAA2D,UAAA,KAAoB3D,IAAA,CAAAyD,IAAS,GACjDzD,IAAA,CAAAqD,KAAA,GAAarD,IAAA,CAAAyD,IAAS,GACtBzD,IAAA,CAAAyC,SAAc,EAAE,KACnBtB,IAAA,CAAAC,CAAA,CAAO,eAAc,KAAEpB,IAAA,CAAAyC,SAAA;gBAAA,C,GAE1BL,IAAA,CAAArF,OAAA;kBAAA6G,YAAA,EAAAP,KAAA,SACgCjD,mBAAA,CAAoBiD,KAAA;kBAAAA,KAAA,EAC3CnH,QAAA,CAASmE,KAAA,EAAAgD,KAAO,IAASQ,MAAA,CAAOxD,KAAA,CAAAgD,KAAW,IAAInD,YAAA;kBAAA4D,MAAA,EAC9CnD,gBAAA,EAAAkC,KAAA,EAAAkB,UAAA,EAAAD,MAAA;kBAAAE,SAAA,EACGhE,IAAA,CAAAyC,SAAA,IAAkBzC,IAAA,CAAAiE;gBAAkB,C,GAEhDxC,UAAA,IACCe,KAAA,CAAC;kBAAAD,SAAA,EAAe,GAAA1E,SAAA,kBAA8B;kBAAAyE,QAAA,GAC5CF,IAAA,CAAAxF,aAAA;oBAAA+D,gBAAA;oBAAAlC,iBAAA;oBAAAC,eAAA;oBAAAuD,KAAA,EAISlG,cAAA,CAAe4E,gBAAA,CAAAC,MAAA,CAAAsB,MAAA,EAAgCf,IAAA;kBAAA,C,GAExDiB,IAAA,CAAC;oBAAAG,SAAA,EAAe,GAAA1E,SAAA,0BAAsC;oBAAAyE,QAAA,EACnD3D,mBAAA,IAAuB,OAAOc,YAAA,KAAiB,aAC5CtB,aAAA,OAEOA,aAAA,EACHiE,IAAA,CAAAnF,UAAA;sBAAAoF,OAAA,EAAuC5C;oBAAA,GAAvB,mBAEjB2C,IAAA,CAAAnF,UAAA;sBAAAoF,OAAA,EAAuC5C;oBAAA,GAAvB,eAAwC,GAC3DtB;kBAAA,C;;;;cASnBF,SAAA;QAAA,C;;;;;AAhPN,SAAA6D,MAAAoC,GAAA;EAAA;IAAA,GAgFMA,GAAG;IAAAC,QAAA,EACIlI,cAAA,CAAeiI,GAAA,CAAAC,QAAY;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","useRouter","formatFilesize","isNumber","React","Fragment","useEffect","useState","useBulkUpload","Button","Gutter","ListControls","useListDrawerContext","ListSelection","useModal","Pagination","PerPage","RenderCustomComponent","SelectMany","useStepNav","RelationshipProvider","ViewDescription","useAuth","useConfig","useListQuery","SelectionProvider","TableColumnsProvider","useTranslation","useWindowInfo","ListHeader","baseClass","DefaultListView","props","$","AfterList","AfterListTable","beforeActions","BeforeList","BeforeListTable","collectionSlug","columnState","Description","disableBulkDelete","disableBulkEdit","disableQueryPresets","enableRowSelections","hasCreatePermission","hasCreatePermissionFromProps","listMenuItems","newDocumentURL","queryPreset","queryPresetPermissions","renderedFilters","resolvedFilterOptions","Table","InitialTable","setTable","allowCreate","createNewDrawerSlug","drawerSlug","listDrawerSlug","onBulkSelect","undefined","t0","t1","user","getEntityConfig","router","data","defaultLimit","initialLimit","handlePageChange","handlePerPageChange","query","openModal","setCollectionSlug","setCurrentActivePath","setOnSuccess","bulkUploadDrawerSlug","collectionConfig","labels","upload","isUploadCollection","Boolean","isBulkUploadEnabled","bulkUpload","isInDrawer","i18n","t","setStepNav","breakpoints","t2","s","smallBreak","t3","t4","docs","map","_temp","refresh","openBulkUpload","label","plural","t5","_jsx","onClick","children","className","_jsxs","totalDocs","CustomComponent","Fallback","description","admin","hideFileInputOnCreate","enableQueryPresets","length","el","singular","to","hasNextPage","hasPrevPage","limit","nextPage","numberOfNeighbors","onChange","page","prevPage","totalPages","handleChange","Number","limits","pagination","resetPage","pagingCounter","doc","filesize"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ListViewClientProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatFilesize, isNumber } from 'payload/shared'\nimport React, { Fragment, useEffect, useState } from 'react'\n\nimport { useBulkUpload } from '../../elements/BulkUpload/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { Gutter } from '../../elements/Gutter/index.js'\nimport { ListControls } from '../../elements/ListControls/index.js'\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { ListSelection } from '../../elements/ListSelection/index.js'\nimport { useModal } from '../../elements/Modal/index.js'\nimport { Pagination } from '../../elements/Pagination/index.js'\nimport { PerPage } from '../../elements/PerPage/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { SelectMany } from '../../elements/SelectMany/index.js'\nimport { useStepNav } from '../../elements/StepNav/index.js'\nimport { RelationshipProvider } from '../../elements/Table/RelationshipProvider/index.js'\nimport { ViewDescription } from '../../elements/ViewDescription/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { SelectionProvider } from '../../providers/Selection/index.js'\nimport { TableColumnsProvider } from '../../providers/TableColumns/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useWindowInfo } from '../../providers/WindowInfo/index.js'\nimport { ListHeader } from './ListHeader/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-list'\n\nexport function DefaultListView(props: ListViewClientProps) {\n const {\n AfterList,\n AfterListTable,\n beforeActions,\n BeforeList,\n BeforeListTable,\n collectionSlug,\n columnState,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n disableQueryPresets,\n enableRowSelections,\n hasCreatePermission: hasCreatePermissionFromProps,\n listMenuItems,\n newDocumentURL,\n queryPreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n Table: InitialTable,\n } = props\n\n const [Table, setTable] = useState(InitialTable)\n\n const {\n allowCreate,\n createNewDrawerSlug,\n drawerSlug: listDrawerSlug,\n onBulkSelect,\n } = useListDrawerContext()\n\n const hasCreatePermission =\n allowCreate !== undefined\n ? allowCreate && hasCreatePermissionFromProps\n : hasCreatePermissionFromProps\n\n useEffect(() => {\n if (InitialTable) {\n setTable(InitialTable)\n }\n }, [InitialTable])\n\n const { user } = useAuth()\n\n const { getEntityConfig } = useConfig()\n const router = useRouter()\n\n const {\n data,\n defaultLimit: initialLimit,\n handlePageChange,\n handlePerPageChange,\n query,\n } = useListQuery()\n\n const { openModal } = useModal()\n const { setCollectionSlug, setCurrentActivePath, setOnSuccess } = useBulkUpload()\n const { drawerSlug: bulkUploadDrawerSlug } = useBulkUpload()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { labels, upload } = collectionConfig\n\n const isUploadCollection = Boolean(upload)\n\n const isBulkUploadEnabled = isUploadCollection && collectionConfig.upload.bulkUpload\n\n const isInDrawer = Boolean(listDrawerSlug)\n\n const { i18n, t } = useTranslation()\n\n const { setStepNav } = useStepNav()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const docs = React.useMemo(() => {\n if (isUploadCollection) {\n return data.docs.map((doc) => {\n return {\n ...doc,\n filesize: formatFilesize(doc.filesize),\n }\n })\n } else {\n return data.docs\n }\n }, [data.docs, isUploadCollection])\n\n const openBulkUpload = React.useCallback(() => {\n setCollectionSlug(collectionSlug)\n setCurrentActivePath(collectionSlug)\n openModal(bulkUploadDrawerSlug)\n setOnSuccess(collectionSlug, () => router.refresh())\n }, [\n router,\n collectionSlug,\n bulkUploadDrawerSlug,\n openModal,\n setCollectionSlug,\n setCurrentActivePath,\n setOnSuccess,\n ])\n\n useEffect(() => {\n if (!isInDrawer) {\n setStepNav([\n {\n label: labels?.plural,\n },\n ])\n }\n }, [setStepNav, labels, isInDrawer])\n\n return (\n <Fragment>\n <TableColumnsProvider collectionSlug={collectionSlug} columnState={columnState}>\n <div className={`${baseClass} ${baseClass}--${collectionSlug}`}>\n <SelectionProvider docs={docs} totalDocs={data.totalDocs} user={user}>\n {BeforeList}\n <Gutter className={`${baseClass}__wrap`}>\n <ListHeader\n collectionConfig={collectionConfig}\n Description={\n <div className={`${baseClass}__sub-header`}>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={\n <ViewDescription\n collectionSlug={collectionSlug}\n description={collectionConfig?.admin?.description}\n />\n }\n />\n </div>\n }\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n hasCreatePermission={hasCreatePermission}\n i18n={i18n}\n isBulkUploadEnabled={isBulkUploadEnabled && !upload.hideFileInputOnCreate}\n newDocumentURL={newDocumentURL}\n openBulkUpload={openBulkUpload}\n smallBreak={smallBreak}\n t={t}\n />\n <ListControls\n beforeActions={\n enableRowSelections && typeof onBulkSelect === 'function'\n ? beforeActions\n ? [...beforeActions, <SelectMany key=\"select-many\" onClick={onBulkSelect} />]\n : [<SelectMany key=\"select-many\" onClick={onBulkSelect} />]\n : beforeActions\n }\n collectionConfig={collectionConfig}\n collectionSlug={collectionSlug}\n disableQueryPresets={\n collectionConfig?.enableQueryPresets !== true || disableQueryPresets\n }\n listMenuItems={listMenuItems}\n queryPreset={queryPreset}\n queryPresetPermissions={queryPresetPermissions}\n renderedFilters={renderedFilters}\n resolvedFilterOptions={resolvedFilterOptions}\n />\n {BeforeListTable}\n {docs.length > 0 && <RelationshipProvider>{Table}</RelationshipProvider>}\n {docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t('general:noResults', { label: getTranslation(labels?.plural, i18n) })}\n </p>\n {hasCreatePermission && newDocumentURL && (\n <Fragment>\n {isInDrawer ? (\n <Button el=\"button\" onClick={() => openModal(createNewDrawerSlug)}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n </Button>\n ) : (\n <Button el=\"link\" to={newDocumentURL}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n </Button>\n )}\n </Fragment>\n )}\n </div>\n )}\n {AfterListTable}\n {docs.length > 0 && (\n <div className={`${baseClass}__page-controls`}>\n <Pagination\n hasNextPage={data.hasNextPage}\n hasPrevPage={data.hasPrevPage}\n limit={data.limit}\n nextPage={data.nextPage}\n numberOfNeighbors={1}\n onChange={(page) => void handlePageChange(page)}\n page={data.page}\n prevPage={data.prevPage}\n totalPages={data.totalPages}\n />\n {data.totalDocs > 0 && (\n <Fragment>\n <div className={`${baseClass}__page-info`}>\n {data.page * data.limit - (data.limit - 1)}-\n {data.totalPages > 1 && data.totalPages !== data.page\n ? data.limit * data.page\n : data.totalDocs}{' '}\n {i18n.t('general:of')} {data.totalDocs}\n </div>\n <PerPage\n handleChange={(limit) => void handlePerPageChange(limit)}\n limit={isNumber(query?.limit) ? Number(query.limit) : initialLimit}\n limits={collectionConfig?.admin?.pagination?.limits}\n resetPage={data.totalDocs <= data.pagingCounter}\n />\n {smallBreak && (\n <div className={`${baseClass}__list-selection`}>\n <ListSelection\n collectionConfig={collectionConfig}\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n label={getTranslation(collectionConfig.labels.plural, i18n)}\n />\n <div className={`${baseClass}__list-selection-actions`}>\n {enableRowSelections && typeof onBulkSelect === 'function'\n ? beforeActions\n ? [\n ...beforeActions,\n <SelectMany key=\"select-many\" onClick={onBulkSelect} />,\n ]\n : [<SelectMany key=\"select-many\" onClick={onBulkSelect} />]\n : beforeActions}\n </div>\n </div>\n )}\n </Fragment>\n )}\n </div>\n )}\n </Gutter>\n {AfterList}\n </SelectionProvider>\n </div>\n </TableColumnsProvider>\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/ui",
3
- "version": "3.30.0",
3
+ "version": "3.31.0-canary.0",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -132,7 +132,7 @@
132
132
  "ts-essentials": "10.0.3",
133
133
  "use-context-selector": "2.0.0",
134
134
  "uuid": "10.0.0",
135
- "@payloadcms/translations": "3.30.0"
135
+ "@payloadcms/translations": "3.31.0-canary.0"
136
136
  },
137
137
  "devDependencies": {
138
138
  "@babel/cli": "7.26.4",
@@ -148,14 +148,14 @@
148
148
  "esbuild": "0.24.2",
149
149
  "esbuild-sass-plugin": "3.3.1",
150
150
  "eslint-plugin-react-compiler": "19.0.0-beta-714736e-20250131",
151
- "payload": "3.30.0",
152
- "@payloadcms/eslint-config": "3.28.0"
151
+ "@payloadcms/eslint-config": "3.28.0",
152
+ "payload": "3.31.0-canary.0"
153
153
  },
154
154
  "peerDependencies": {
155
155
  "next": "^15.2.3",
156
156
  "react": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
157
157
  "react-dom": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
158
- "payload": "3.30.0"
158
+ "payload": "3.31.0-canary.0"
159
159
  },
160
160
  "engines": {
161
161
  "node": "^18.20.2 || >=20.9.0"
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/TableColumns/RenderDefaultCell/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAOrB,eAAO,MAAM,YAAY,QAAO,yBAAyB,GAAG,IAC/B,CAAA;AAE7B,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,WAAW,EAAE,yBAAyB,CAAA;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CA4BA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useListDrawerContext","DefaultCell","useTableColumns","baseClass","CellPropsContext","createContext","useCellProps","use","RenderDefaultCell","t0","$","clientProps","columnIndex","isLinkedColumn","drawerSlug","onSelect","LinkedCellOverride","t1","propsToPass","className","link","t2","t3","collectionSlug","rowColl","rowData","doc","docID","id","onClick","_jsx","value","children"],"sources":["../../../../src/elements/TableColumns/RenderDefaultCell/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps } from 'payload'\n\nimport React from 'react'\n\nimport { useListDrawerContext } from '../../../elements/ListDrawer/Provider.js'\nimport { DefaultCell } from '../../Table/DefaultCell/index.js'\nimport './index.scss'\nimport { useTableColumns } from '../index.js'\n\nconst baseClass = 'default-cell'\n\nconst CellPropsContext = React.createContext<DefaultCellComponentProps | null>(null)\n\nexport const useCellProps = (): DefaultCellComponentProps | null =>\n React.use(CellPropsContext)\n\nexport const RenderDefaultCell: React.FC<{\n clientProps: DefaultCellComponentProps\n columnIndex: number\n enableRowSelections?: boolean\n isLinkedColumn?: boolean\n}> = ({ clientProps, columnIndex, isLinkedColumn }) => {\n const { drawerSlug, onSelect } = useListDrawerContext()\n const { LinkedCellOverride } = useTableColumns()\n\n const propsToPass: DefaultCellComponentProps = {\n ...clientProps,\n columnIndex,\n }\n\n if (isLinkedColumn && drawerSlug) {\n propsToPass.className = `${baseClass}__first-cell`\n propsToPass.link = false\n propsToPass.onClick = ({ collectionSlug: rowColl, rowData }) => {\n if (typeof onSelect === 'function') {\n onSelect({\n collectionSlug: rowColl,\n doc: rowData,\n docID: rowData.id as string,\n })\n }\n }\n }\n\n return (\n <CellPropsContext value={propsToPass}>\n {isLinkedColumn && LinkedCellOverride ? LinkedCellOverride : <DefaultCell {...propsToPass} />}\n </CellPropsContext>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,MAAW;AAElB,SAASC,oBAAoB,QAAQ;AACrC,SAASC,WAAW,QAAQ;AAC5B,OAAO;AACP,SAASC,eAAe,QAAQ;AAEhC,MAAMC,SAAA,GAAY;AAElB,MAAMC,gBAAA,gBAAmBL,KAAA,CAAMM,aAAa,CAAmC;AAE/E,OAAO,MAAMC,YAAA,GAAeA,CAAA,KAC1BP,KAAA,CAAMQ,GAAG,CAACH,gBAAA;AAEZ,OAAO,MAAMI,iBAAA,GAKRC,EAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EAAC;IAAAa,WAAA;IAAAC,WAAA;IAAAC;EAAA,IAAAJ,EAA4C;EAChD;IAAAK,UAAA;IAAAC;EAAA,IAAiCf,oBAAA;EACjC;IAAAgB;EAAA,IAA+Bd,eAAA;EAAA,IAAAe,EAAA;EAAA,IAAAP,CAAA,QAAAM,kBAAA,IAAAN,CAAA,QAAAC,WAAA,IAAAD,CAAA,QAAAE,WAAA,IAAAF,CAAA,QAAAI,UAAA,IAAAJ,CAAA,QAAAG,cAAA,IAAAH,CAAA,QAAAK,QAAA;IAE/B,MAAAG,WAAA;MAAA,GACKP,WAAW;MAAAC;IAAA;IAEhB,IAEIC,cAAA,IAAkBC,UAAA;MACpBI,WAAA,CAAAC,SAAA,GAAwB,GAAAhB,SAAA,cAA0B;MAClDe,WAAA,CAAAE,IAAA;MAAA,IAAAC,EAAA;MAAA,IAAAX,CAAA,QAAAK,QAAA;QACsBM,EAAA,GAAAC,EAAA;UAAC;YAAAC,cAAA,EAAAC,OAAA;YAAAC;UAAA,IAAAH,EAAoC;UAAA,IACrD,OAAOP,QAAA,KAAa;YACtBA,QAAA;cAAAQ,cAAA,EACkBC,OAAA;cAAAE,GAAA,EACXD,OAAA;cAAAE,KAAA,EACEF,OAAA,CAAAG;YAAA,CACT;UAAA;QAAA;QAEJlB,CAAA,MAAAK,QAAA;QAAAL,CAAA,MAAAW,EAAA;MAAA;QAAAA,EAAA,GAAAX,CAAA;MAAA;MARAQ,WAAA,CAAAW,OAAA,GAAsBR,EAQtB;IAAA;IAIAJ,EAAA,GAAAa,IAAA,CAAA1B,gBAAA;MAAA2B,KAAA,EAAyBb,WAAA;MAAAc,QAAA,EACtBnB,cAAA,IAAkBG,kBAAA,GAAqBA,kBAAA,GAAqBc,IAAA,CAAA7B,WAAA;QAAA,GAAiBiB;MAAW,C;;;;;;;;;;;;SAD3FD,E;CAIJ","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildColumnState.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,sBAAsB,EAGtB,MAAM,EACN,yBAAyB,EAGzB,eAAe,EACf,aAAa,EACb,OAAO,EACP,yBAAyB,EAG1B,MAAM,SAAS,CAAA;AAWhB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAa7D,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,iBAAiB,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IAC7C,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IACpC,eAAe,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;IAC7D,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1C,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,gBAAgB,SAAU,IAAI,KAAG,MAAM,EAgRnD,CAAA"}