@payloadcms/ui 3.0.0-canary.0374de4 → 3.0.0-canary.0992b47

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 (189) hide show
  1. package/dist/elements/BulkUpload/EditForm/index.js +1 -3
  2. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  3. package/dist/elements/BulkUpload/FormsManager/index.js +1 -3
  4. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  5. package/dist/elements/Button/types.d.ts +0 -6
  6. package/dist/elements/Button/types.d.ts.map +1 -1
  7. package/dist/elements/Button/types.js.map +1 -1
  8. package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
  9. package/dist/elements/ColumnSelector/index.js +2 -14
  10. package/dist/elements/ColumnSelector/index.js.map +1 -1
  11. package/dist/elements/DocumentControls/index.d.ts +1 -4
  12. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  13. package/dist/elements/DocumentControls/index.js +5 -41
  14. package/dist/elements/DocumentControls/index.js.map +1 -1
  15. package/dist/elements/DocumentControls/index.scss +0 -8
  16. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  17. package/dist/elements/DocumentDrawer/DrawerContent.js +17 -23
  18. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  19. package/dist/elements/DocumentDrawer/types.d.ts +1 -4
  20. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  21. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  22. package/dist/elements/EditMany/index.d.ts.map +1 -1
  23. package/dist/elements/EditMany/index.js +12 -19
  24. package/dist/elements/EditMany/index.js.map +1 -1
  25. package/dist/elements/Hamburger/index.scss +0 -4
  26. package/dist/elements/ListControls/index.d.ts.map +1 -1
  27. package/dist/elements/ListControls/index.js +5 -9
  28. package/dist/elements/ListControls/index.js.map +1 -1
  29. package/dist/elements/ListControls/index.scss +6 -0
  30. package/dist/elements/ListDrawer/DrawerContent.d.ts +0 -2
  31. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  32. package/dist/elements/ListDrawer/DrawerContent.js +1 -1
  33. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  34. package/dist/elements/Localizer/LocalizerLabel/index.d.ts.map +1 -1
  35. package/dist/elements/Localizer/LocalizerLabel/index.js +5 -9
  36. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  37. package/dist/elements/Localizer/LocalizerLabel/index.scss +3 -7
  38. package/dist/elements/Pagination/index.d.ts.map +1 -1
  39. package/dist/elements/Pagination/index.js +1 -1
  40. package/dist/elements/Pagination/index.js.map +1 -1
  41. package/dist/elements/PerPage/index.d.ts +5 -5
  42. package/dist/elements/PerPage/index.d.ts.map +1 -1
  43. package/dist/elements/PerPage/index.js +1 -2
  44. package/dist/elements/PerPage/index.js.map +1 -1
  45. package/dist/elements/Pill/index.scss +1 -3
  46. package/dist/elements/PreviewButton/usePreviewURL.d.ts.map +1 -1
  47. package/dist/elements/PreviewButton/usePreviewURL.js +0 -1
  48. package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -1
  49. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  50. package/dist/elements/PublishButton/index.js +46 -97
  51. package/dist/elements/PublishButton/index.js.map +1 -1
  52. package/dist/elements/ReactSelect/index.scss +0 -4
  53. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  54. package/dist/elements/SelectRow/index.js +24 -60
  55. package/dist/elements/SelectRow/index.js.map +1 -1
  56. package/dist/elements/SortColumn/index.d.ts +0 -1
  57. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  58. package/dist/elements/SortColumn/index.js +17 -29
  59. package/dist/elements/SortColumn/index.js.map +1 -1
  60. package/dist/elements/SortColumn/index.scss +1 -10
  61. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts +3 -2
  62. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  63. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +40 -43
  64. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  65. package/dist/elements/Table/DefaultCell/fields/Relationship/index.scss +3 -0
  66. package/dist/elements/Table/DefaultCell/fields/index.d.ts +0 -1
  67. package/dist/elements/Table/DefaultCell/fields/index.d.ts.map +1 -1
  68. package/dist/elements/Table/DefaultCell/fields/index.js +0 -1
  69. package/dist/elements/Table/DefaultCell/fields/index.js.map +1 -1
  70. package/dist/elements/Table/index.d.ts +6 -3
  71. package/dist/elements/Table/index.d.ts.map +1 -1
  72. package/dist/elements/Table/index.js +31 -36
  73. package/dist/elements/Table/index.js.map +1 -1
  74. package/dist/elements/Table/index.scss +0 -49
  75. package/dist/elements/TableColumns/buildColumnState.d.ts +2 -5
  76. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  77. package/dist/elements/TableColumns/buildColumnState.js +22 -35
  78. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  79. package/dist/elements/TableColumns/index.d.ts +0 -4
  80. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  81. package/dist/elements/TableColumns/index.js +68 -79
  82. package/dist/elements/TableColumns/index.js.map +1 -1
  83. package/dist/elements/Tooltip/index.d.ts +0 -1
  84. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  85. package/dist/elements/Tooltip/index.js +13 -15
  86. package/dist/elements/Tooltip/index.js.map +1 -1
  87. package/dist/elements/Tooltip/index.scss +2 -2
  88. package/dist/exports/client/index.d.ts +0 -1
  89. package/dist/exports/client/index.d.ts.map +1 -1
  90. package/dist/exports/client/index.js +19 -19
  91. package/dist/exports/client/index.js.map +4 -4
  92. package/dist/exports/shared/index.js +2 -2
  93. package/dist/exports/shared/index.js.map +2 -2
  94. package/dist/fields/Checkbox/Input.js +1 -1
  95. package/dist/fields/Checkbox/Input.js.map +1 -1
  96. package/dist/fields/Checkbox/index.scss +0 -13
  97. package/dist/fields/Relationship/select-components/SingleValue/index.d.ts.map +1 -1
  98. package/dist/fields/Relationship/select-components/SingleValue/index.js +14 -11
  99. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  100. package/dist/fields/Upload/Input.d.ts.map +1 -1
  101. package/dist/fields/Upload/Input.js +11 -10
  102. package/dist/fields/Upload/Input.js.map +1 -1
  103. package/dist/fields/Upload/UploadCard/index.scss +1 -0
  104. package/dist/fields/index.d.ts.map +1 -1
  105. package/dist/fields/index.js +0 -2
  106. package/dist/fields/index.js.map +1 -1
  107. package/dist/forms/Form/index.js +2 -6
  108. package/dist/forms/Form/index.js.map +1 -1
  109. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  110. package/dist/forms/RenderFields/RenderField.js +1 -3
  111. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  112. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  113. package/dist/forms/RenderFields/index.js +15 -18
  114. package/dist/forms/RenderFields/index.js.map +1 -1
  115. package/dist/forms/buildStateFromSchema/index.d.ts +0 -2
  116. package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
  117. package/dist/forms/buildStateFromSchema/index.js.map +1 -1
  118. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  119. package/dist/hooks/usePayloadAPI.js.map +1 -1
  120. package/dist/icons/Chevron/index.d.ts +3 -3
  121. package/dist/icons/Chevron/index.d.ts.map +1 -1
  122. package/dist/icons/Chevron/index.js +4 -4
  123. package/dist/icons/Chevron/index.js.map +1 -1
  124. package/dist/icons/Chevron/index.scss +1 -9
  125. package/dist/providers/Config/createClientConfig/collections.d.ts.map +1 -1
  126. package/dist/providers/Config/createClientConfig/collections.js +1 -1
  127. package/dist/providers/Config/createClientConfig/collections.js.map +1 -1
  128. package/dist/providers/Config/createClientConfig/fields.d.ts.map +1 -1
  129. package/dist/providers/Config/createClientConfig/fields.js +0 -3
  130. package/dist/providers/Config/createClientConfig/fields.js.map +1 -1
  131. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  132. package/dist/providers/DocumentInfo/index.js +8 -112
  133. package/dist/providers/DocumentInfo/index.js.map +1 -1
  134. package/dist/providers/DocumentInfo/types.d.ts +26 -32
  135. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  136. package/dist/providers/DocumentInfo/types.js.map +1 -1
  137. package/dist/providers/ListQuery/index.d.ts +5 -5
  138. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  139. package/dist/providers/ListQuery/index.js.map +1 -1
  140. package/dist/providers/Selection/index.d.ts +1 -1
  141. package/dist/providers/Selection/index.d.ts.map +1 -1
  142. package/dist/providers/Selection/index.js +31 -55
  143. package/dist/providers/Selection/index.js.map +1 -1
  144. package/dist/styles.css +1 -1
  145. package/dist/utilities/buildFormState.d.ts +3 -9
  146. package/dist/utilities/buildFormState.d.ts.map +1 -1
  147. package/dist/utilities/buildFormState.js +4 -88
  148. package/dist/utilities/buildFormState.js.map +1 -1
  149. package/dist/utilities/getFormState.d.ts +2 -8
  150. package/dist/utilities/getFormState.d.ts.map +1 -1
  151. package/dist/utilities/getFormState.js +1 -3
  152. package/dist/utilities/getFormState.js.map +1 -1
  153. package/package.json +5 -5
  154. package/dist/elements/Locked/index.d.ts +0 -8
  155. package/dist/elements/Locked/index.d.ts.map +0 -1
  156. package/dist/elements/Locked/index.js +0 -72
  157. package/dist/elements/Locked/index.js.map +0 -1
  158. package/dist/elements/Locked/index.scss +0 -14
  159. package/dist/elements/RelationshipTable/TableWrapper.d.ts +0 -8
  160. package/dist/elements/RelationshipTable/TableWrapper.d.ts.map +0 -1
  161. package/dist/elements/RelationshipTable/TableWrapper.js +0 -69
  162. package/dist/elements/RelationshipTable/TableWrapper.js.map +0 -1
  163. package/dist/elements/RelationshipTable/cells/DrawerLink/index.d.ts +0 -8
  164. package/dist/elements/RelationshipTable/cells/DrawerLink/index.d.ts.map +0 -1
  165. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +0 -82
  166. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +0 -1
  167. package/dist/elements/RelationshipTable/cells/DrawerLink/index.scss +0 -4
  168. package/dist/elements/RelationshipTable/index.d.ts +0 -13
  169. package/dist/elements/RelationshipTable/index.d.ts.map +0 -1
  170. package/dist/elements/RelationshipTable/index.js +0 -365
  171. package/dist/elements/RelationshipTable/index.js.map +0 -1
  172. package/dist/elements/RelationshipTable/index.scss +0 -26
  173. package/dist/elements/Table/RenderCell.d.ts +0 -11
  174. package/dist/elements/Table/RenderCell.d.ts.map +0 -1
  175. package/dist/elements/Table/RenderCell.js +0 -30
  176. package/dist/elements/Table/RenderCell.js.map +0 -1
  177. package/dist/fields/Join/index.d.ts +0 -9
  178. package/dist/fields/Join/index.d.ts.map +0 -1
  179. package/dist/fields/Join/index.js +0 -70
  180. package/dist/fields/Join/index.js.map +0 -1
  181. package/dist/icons/Lock/index.d.ts +0 -6
  182. package/dist/icons/Lock/index.d.ts.map +0 -1
  183. package/dist/icons/Lock/index.js +0 -27
  184. package/dist/icons/Lock/index.js.map +0 -1
  185. package/dist/icons/Lock/index.scss +0 -8
  186. package/dist/utilities/deepMerge.d.ts +0 -12
  187. package/dist/utilities/deepMerge.d.ts.map +0 -1
  188. package/dist/utilities/deepMerge.js +0 -25
  189. package/dist/utilities/deepMerge.js.map +0 -1
@@ -10,12 +10,11 @@ import { SortColumn } from '../SortColumn/index.js';
10
10
  import { DefaultCell } from '../Table/DefaultCell/index.js';
11
11
  export const buildColumnState = args => {
12
12
  const {
13
- beforeRows,
13
+ cellProps,
14
14
  columnPreferences,
15
15
  columns,
16
16
  enableRowSelections,
17
17
  fields,
18
- sortColumnProps,
19
18
  useAsTitle
20
19
  } = args;
21
20
  let sortedFieldMap = flattenFieldMap(fields);
@@ -76,8 +75,7 @@ export const buildColumnState = args => {
76
75
  disable: fieldAffectsDataSubFields || field?._isPresentational || undefined,
77
76
  Label: Label,
78
77
  label: 'label' in field ? field.label : undefined,
79
- name: 'name' in field ? field.name : undefined,
80
- ...(sortColumnProps || {})
78
+ name: 'name' in field ? field.name : undefined
81
79
  });
82
80
  if (field) {
83
81
  const column = {
@@ -86,21 +84,19 @@ export const buildColumnState = args => {
86
84
  cellProps: {
87
85
  field: {
88
86
  ...(field || {}),
89
- admin: {
90
- ...(field.admin || {}),
91
- components: {
92
- ...(field.admin?.components || {}),
93
- Cell: field.admin?.components?.Cell || {
94
- type: 'client',
95
- Component: DefaultCell,
96
- RenderedComponent: null
97
- },
98
- Label
99
- }
100
- }
101
- }
87
+ ...(cellProps?.[index]?.field || {})
88
+ },
89
+ ...cellProps?.[index]
102
90
  },
103
- Heading
91
+ components: {
92
+ Cell: field.admin?.components?.Cell || {
93
+ type: 'client',
94
+ Component: DefaultCell,
95
+ RenderedComponent: null
96
+ },
97
+ Heading
98
+ },
99
+ Label
104
100
  };
105
101
  acc.push(column);
106
102
  }
@@ -110,26 +106,17 @@ export const buildColumnState = args => {
110
106
  sorted.unshift({
111
107
  accessor: '_select',
112
108
  active: true,
113
- cellProps: {
114
- field: {
115
- admin: {
116
- components: {
117
- Cell: {
118
- type: 'client',
119
- Component: null,
120
- RenderedComponent: /*#__PURE__*/_jsx(SelectRow, {})
121
- },
122
- Label: null
123
- }
124
- }
125
- }
109
+ components: {
110
+ Cell: {
111
+ type: 'client',
112
+ Component: null,
113
+ RenderedComponent: /*#__PURE__*/_jsx(SelectRow, {})
114
+ },
115
+ Heading: /*#__PURE__*/_jsx(SelectAll, {})
126
116
  },
127
- Heading: /*#__PURE__*/_jsx(SelectAll, {})
117
+ Label: null
128
118
  });
129
119
  }
130
- if (beforeRows) {
131
- sorted.unshift(...beforeRows);
132
- }
133
120
  return sorted;
134
121
  };
135
122
  //# sourceMappingURL=buildColumnState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildColumnState.js","names":["React","FieldLabel","flattenFieldMap","SelectAll","SelectRow","SortColumn","DefaultCell","buildColumnState","args","beforeRows","columnPreferences","columns","enableRowSelections","fields","sortColumnProps","useAsTitle","sortedFieldMap","idFieldIndex","findIndex","field","name","idField","splice","unshift","useAsTitleFieldIndex","useAsTitleField","sortTo","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","columnPreference","find","preference","active","Array","isArray","length","includes","push","CustomLabelToRender","admin","components","Label","undefined","_jsx","unstyled","fieldAffectsDataSubFields","type","Heading","disable","_isPresentational","label","cellProps","Cell","Component","RenderedComponent"],"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, SanitizedCollectionConfig, StaticLabel } from 'payload'\n\nimport React from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { flattenFieldMap } from '../../utilities/flattenFieldMap.js'\nimport { SelectAll } from '../SelectAll/index.js'\nimport { SelectRow } from '../SelectRow/index.js'\nimport { SortColumn } from '../SortColumn/index.js'\nimport { DefaultCell } from '../Table/DefaultCell/index.js'\n\ntype Args = {\n beforeRows?: Column[]\n columnPreferences: ColumnPreferences\n columns?: ColumnPreferences\n enableRowSelections: boolean\n enableRowTypes?: boolean\n fields: ClientField[]\n sortColumnProps?: Partial<SortColumnProps>\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const buildColumnState = (args: Args): Column[] => {\n const {\n beforeRows,\n columnPreferences,\n columns,\n enableRowSelections,\n fields,\n sortColumnProps,\n useAsTitle,\n } = args\n\n let sortedFieldMap = flattenFieldMap(fields)\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap.findIndex((field) => 'name' in field && field.name === 'id')\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortedFieldMap.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n if (aIndex === -1 && bIndex === -1) {\n return 0\n }\n if (aIndex === -1) {\n return 1\n }\n if (bIndex === -1) {\n return -1\n }\n return aIndex - bIndex\n })\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap.reduce((acc, field, index) => {\n const columnPreference = columnPreferences?.find(\n (preference) => 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find((column) => 'name' in field && column.accessor === field.name)?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n const CustomLabelToRender =\n field &&\n 'admin' in field &&\n 'components' in field.admin &&\n 'Label' in field.admin.components &&\n field.admin.components.Label !== undefined // let it return `null`\n ? field.admin.components.Label\n : undefined\n\n const Label = <FieldLabel field={field} Label={CustomLabelToRender} unstyled />\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n disable={fieldAffectsDataSubFields || field?._isPresentational || undefined}\n Label={Label}\n label={'label' in field ? (field.label as StaticLabel) : undefined}\n name={'name' in field ? field.name : undefined}\n {...(sortColumnProps || {})}\n />\n )\n\n if (field) {\n const column: Column = {\n accessor: 'name' in field ? field.name : undefined,\n active,\n cellProps: {\n field: {\n ...(field || ({} as ClientField)),\n admin: {\n ...(field.admin || {}),\n components: {\n ...(field.admin?.components || {}),\n Cell: field.admin?.components?.Cell || {\n type: 'client',\n Component: DefaultCell,\n RenderedComponent: null,\n },\n Label,\n },\n },\n } as ClientField,\n },\n Heading,\n }\n\n acc.push(column)\n }\n\n return acc\n }, [])\n\n if (enableRowSelections) {\n sorted.unshift({\n accessor: '_select',\n active: true,\n cellProps: {\n field: {\n admin: {\n components: {\n Cell: {\n type: 'client',\n Component: null,\n RenderedComponent: <SelectRow />,\n },\n Label: null,\n },\n },\n } as ClientField,\n },\n Heading: <SelectAll />,\n })\n }\n\n if (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"buildColumnState.js","names":["React","FieldLabel","flattenFieldMap","SelectAll","SelectRow","SortColumn","DefaultCell","buildColumnState","args","cellProps","columnPreferences","columns","enableRowSelections","fields","useAsTitle","sortedFieldMap","idFieldIndex","findIndex","field","name","idField","splice","unshift","useAsTitleFieldIndex","useAsTitleField","sortTo","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","columnPreference","find","preference","active","Array","isArray","length","includes","push","CustomLabelToRender","admin","components","Label","undefined","_jsx","unstyled","fieldAffectsDataSubFields","type","Heading","disable","_isPresentational","label","Cell","Component","RenderedComponent"],"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["'use client'\nimport type {\n CellComponentProps,\n ClientField,\n SanitizedCollectionConfig,\n StaticLabel,\n} from 'payload'\n\nimport React from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { flattenFieldMap } from '../../utilities/flattenFieldMap.js'\nimport { SelectAll } from '../SelectAll/index.js'\nimport { SelectRow } from '../SelectRow/index.js'\nimport { SortColumn } from '../SortColumn/index.js'\nimport { DefaultCell } from '../Table/DefaultCell/index.js'\n\ntype Args = {\n cellProps: Partial<CellComponentProps>[]\n columnPreferences: ColumnPreferences\n columns?: ColumnPreferences\n enableRowSelections: boolean\n fields: ClientField[]\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const buildColumnState = (args: Args): Column[] => {\n const { cellProps, columnPreferences, columns, enableRowSelections, fields, useAsTitle } = args\n\n let sortedFieldMap = flattenFieldMap(fields)\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap.findIndex((field) => 'name' in field && field.name === 'id')\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortedFieldMap.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n if (aIndex === -1 && bIndex === -1) {\n return 0\n }\n if (aIndex === -1) {\n return 1\n }\n if (bIndex === -1) {\n return -1\n }\n return aIndex - bIndex\n })\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap.reduce((acc, field, index) => {\n const columnPreference = columnPreferences?.find(\n (preference) => 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find((column) => 'name' in field && column.accessor === field.name)?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n const CustomLabelToRender =\n field &&\n 'admin' in field &&\n 'components' in field.admin &&\n 'Label' in field.admin.components &&\n field.admin.components.Label !== undefined // let it return `null`\n ? field.admin.components.Label\n : undefined\n\n const Label = <FieldLabel field={field} Label={CustomLabelToRender} unstyled />\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n disable={fieldAffectsDataSubFields || field?._isPresentational || undefined}\n Label={Label}\n label={'label' in field ? (field.label as StaticLabel) : undefined}\n name={'name' in field ? field.name : undefined}\n />\n )\n\n if (field) {\n const column: Column = {\n accessor: 'name' in field ? field.name : undefined,\n active,\n cellProps: {\n field: {\n ...(field || ({} as ClientField)),\n ...(cellProps?.[index]?.field || ({} as ClientField)),\n } as ClientField,\n ...cellProps?.[index],\n },\n components: {\n Cell: field.admin?.components?.Cell || {\n type: 'client',\n Component: DefaultCell,\n RenderedComponent: null,\n },\n Heading,\n },\n Label,\n }\n\n acc.push(column)\n }\n\n return acc\n }, [])\n\n if (enableRowSelections) {\n sorted.unshift({\n accessor: '_select',\n active: true,\n components: {\n Cell: {\n type: 'client',\n Component: null,\n RenderedComponent: <SelectRow />,\n },\n Heading: <SelectAll />,\n },\n Label: null,\n })\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,8 @@
1
1
  import type { CellComponentProps } from 'payload';
2
2
  import React from 'react';
3
3
  import type { ColumnPreferences } from '../../providers/ListInfo/index.js';
4
- import type { SortColumnProps } from '../SortColumn/index.js';
5
4
  import type { Column } from '../Table/index.js';
6
5
  export interface ITableColumns {
7
- cellProps?: Partial<CellComponentProps>[];
8
6
  columns: Column[];
9
7
  moveColumn: (args: {
10
8
  fromIndex: number;
@@ -19,14 +17,12 @@ export type ListPreferences = {
19
17
  columns: ColumnPreferences;
20
18
  };
21
19
  type Props = {
22
- readonly beforeRows?: Column[];
23
20
  readonly cellProps?: Partial<CellComponentProps>[];
24
21
  readonly children: React.ReactNode;
25
22
  readonly collectionSlug: string;
26
23
  readonly enableRowSelections?: boolean;
27
24
  readonly listPreferences?: ListPreferences;
28
25
  readonly preferenceKey: string;
29
- readonly sortColumnProps?: Partial<SortColumnProps>;
30
26
  };
31
27
  export declare const TableColumnsProvider: React.FC<Props>;
32
28
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAA6B,MAAM,SAAS,CAAA;AAE5E,OAAO,KAA2D,MAAM,OAAO,CAAA;AAE/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAQ/C,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAA;IACzC,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAClE,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAC7C,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CACvC;AAED,eAAO,MAAM,kBAAkB,8BAAoD,CAAA;AAEnF,eAAO,MAAM,eAAe,QAAO,aAA+C,CAAA;AAElF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,iBAAiB,CAAA;CAC3B,CAAA;AAED,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAA;IAClD,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAA;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CACpD,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA4JhD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAA6B,MAAM,SAAS,CAAA;AAE5E,OAAO,KAA2D,MAAM,OAAO,CAAA;AAE/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAQ/C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAClE,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAC7C,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CACvC;AAED,eAAO,MAAM,kBAAkB,8BAAoD,CAAA;AAEnF,eAAO,MAAM,eAAe,QAAO,aAA+C,CAAA;AAElF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,iBAAiB,CAAA;CAC3B,CAAA;AAED,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAA;IAClD,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAA;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyJhD,CAAA"}
@@ -13,16 +13,14 @@ export const useTableColumns = () => {
13
13
  return useContext(TableColumnContext);
14
14
  };
15
15
  export const TableColumnsProvider = t0 => {
16
- const $ = _c(59);
16
+ const $ = _c(53);
17
17
  const {
18
- beforeRows,
19
18
  cellProps,
20
19
  children,
21
20
  collectionSlug,
22
21
  enableRowSelections: t1,
23
22
  listPreferences,
24
- preferenceKey,
25
- sortColumnProps
23
+ preferenceKey
26
24
  } = t0;
27
25
  const enableRowSelections = t1 === undefined ? false : t1;
28
26
  const {
@@ -35,7 +33,7 @@ export const TableColumnsProvider = t0 => {
35
33
  if ($[0] !== collectionSlug || $[1] !== collections) {
36
34
  let t4;
37
35
  if ($[3] !== collectionSlug) {
38
- t4 = c => c.slug === collectionSlug;
36
+ t4 = collectionConfig => collectionConfig.slug === collectionSlug;
39
37
  $[3] = collectionSlug;
40
38
  $[4] = t4;
41
39
  } else {
@@ -48,11 +46,11 @@ export const TableColumnsProvider = t0 => {
48
46
  } else {
49
47
  t3 = $[2];
50
48
  }
51
- const collectionConfig = t3;
49
+ const collectionConfig_0 = t3;
52
50
  const {
53
51
  admin: t4,
54
52
  fields
55
- } = collectionConfig;
53
+ } = collectionConfig_0;
56
54
  const {
57
55
  defaultColumns,
58
56
  useAsTitle
@@ -74,48 +72,46 @@ export const TableColumnsProvider = t0 => {
74
72
  }
75
73
  const [initialColumns] = useState(t5);
76
74
  let t6;
77
- if ($[9] !== beforeRows || $[10] !== listPreferences || $[11] !== initialColumns || $[12] !== enableRowSelections || $[13] !== fields || $[14] !== sortColumnProps || $[15] !== useAsTitle) {
75
+ if ($[9] !== cellProps || $[10] !== listPreferences || $[11] !== initialColumns || $[12] !== enableRowSelections || $[13] !== fields || $[14] !== useAsTitle) {
78
76
  t6 = () => buildColumnState({
79
- beforeRows,
77
+ cellProps,
80
78
  columnPreferences: listPreferences?.columns,
81
79
  columns: initialColumns,
82
80
  enableRowSelections,
83
81
  fields,
84
- sortColumnProps,
85
82
  useAsTitle
86
83
  });
87
- $[9] = beforeRows;
84
+ $[9] = cellProps;
88
85
  $[10] = listPreferences;
89
86
  $[11] = initialColumns;
90
87
  $[12] = enableRowSelections;
91
88
  $[13] = fields;
92
- $[14] = sortColumnProps;
93
- $[15] = useAsTitle;
94
- $[16] = t6;
89
+ $[14] = useAsTitle;
90
+ $[15] = t6;
95
91
  } else {
96
- t6 = $[16];
92
+ t6 = $[15];
97
93
  }
98
94
  const [tableColumns, setTableColumns] = React.useState(t6);
99
95
  let t7;
100
- if ($[17] !== setPreference || $[18] !== preferenceKey) {
96
+ if ($[16] !== setPreference || $[17] !== preferenceKey) {
101
97
  t7 = newColumns => {
102
- const columns = newColumns.map(c_0 => ({
103
- accessor: c_0?.accessor,
104
- active: c_0?.active
98
+ const columns = newColumns.map(c => ({
99
+ accessor: c?.accessor,
100
+ active: c?.active
105
101
  }));
106
102
  setPreference(preferenceKey, {
107
103
  columns
108
104
  }, true);
109
105
  };
110
- $[17] = setPreference;
111
- $[18] = preferenceKey;
112
- $[19] = t7;
106
+ $[16] = setPreference;
107
+ $[17] = preferenceKey;
108
+ $[18] = t7;
113
109
  } else {
114
- t7 = $[19];
110
+ t7 = $[18];
115
111
  }
116
112
  const updateColumnPreferences = t7;
117
113
  let t8;
118
- if ($[20] !== tableColumns || $[21] !== updateColumnPreferences) {
114
+ if ($[19] !== tableColumns || $[20] !== updateColumnPreferences) {
119
115
  t8 = args => {
120
116
  const {
121
117
  fromIndex,
@@ -127,15 +123,15 @@ export const TableColumnsProvider = t0 => {
127
123
  setTableColumns(withMovedColumn);
128
124
  updateColumnPreferences(withMovedColumn);
129
125
  };
130
- $[20] = tableColumns;
131
- $[21] = updateColumnPreferences;
132
- $[22] = t8;
126
+ $[19] = tableColumns;
127
+ $[20] = updateColumnPreferences;
128
+ $[21] = t8;
133
129
  } else {
134
- t8 = $[22];
130
+ t8 = $[21];
135
131
  }
136
132
  const moveColumn = t8;
137
133
  let t9;
138
- if ($[23] !== tableColumns || $[24] !== updateColumnPreferences) {
134
+ if ($[22] !== tableColumns || $[23] !== updateColumnPreferences) {
139
135
  t9 = column => {
140
136
  const toggledColumns = tableColumns.map(col => ({
141
137
  ...col,
@@ -144,15 +140,15 @@ export const TableColumnsProvider = t0 => {
144
140
  setTableColumns(toggledColumns);
145
141
  updateColumnPreferences(toggledColumns);
146
142
  };
147
- $[23] = tableColumns;
148
- $[24] = updateColumnPreferences;
149
- $[25] = t9;
143
+ $[22] = tableColumns;
144
+ $[23] = updateColumnPreferences;
145
+ $[24] = t9;
150
146
  } else {
151
- t9 = $[25];
147
+ t9 = $[24];
152
148
  }
153
149
  const toggleColumn = t9;
154
150
  let t10;
155
- if ($[26] !== tableColumns || $[27] !== updateColumnPreferences) {
151
+ if ($[25] !== tableColumns || $[26] !== updateColumnPreferences) {
156
152
  t10 = activeColumnAccessors => {
157
153
  const activeColumns = tableColumns.map(col_0 => ({
158
154
  ...col_0,
@@ -160,15 +156,15 @@ export const TableColumnsProvider = t0 => {
160
156
  }));
161
157
  updateColumnPreferences(activeColumns);
162
158
  };
163
- $[26] = tableColumns;
164
- $[27] = updateColumnPreferences;
165
- $[28] = t10;
159
+ $[25] = tableColumns;
160
+ $[26] = updateColumnPreferences;
161
+ $[27] = t10;
166
162
  } else {
167
- t10 = $[28];
163
+ t10 = $[27];
168
164
  }
169
165
  const setActiveColumns = t10;
170
166
  let t11;
171
- if ($[29] !== collectionSlug || $[30] !== listPreferences || $[31] !== getPreference || $[32] !== preferenceKey || $[33] !== beforeRows || $[34] !== initialColumns || $[35] !== enableRowSelections || $[36] !== fields || $[37] !== sortColumnProps || $[38] !== useAsTitle) {
167
+ if ($[28] !== collectionSlug || $[29] !== listPreferences || $[30] !== getPreference || $[31] !== preferenceKey || $[32] !== cellProps || $[33] !== initialColumns || $[34] !== fields || $[35] !== useAsTitle) {
172
168
  t11 = () => {
173
169
  const sync = async () => {
174
170
  const collectionHasChanged = prevCollection.current !== collectionSlug;
@@ -177,12 +173,11 @@ export const TableColumnsProvider = t0 => {
177
173
  prevCollection.current = collectionSlug;
178
174
  if (currentPreferences?.columns) {
179
175
  setTableColumns(buildColumnState({
180
- beforeRows,
176
+ cellProps,
181
177
  columnPreferences: currentPreferences?.columns,
182
178
  columns: initialColumns,
183
- enableRowSelections,
179
+ enableRowSelections: true,
184
180
  fields,
185
- sortColumnProps,
186
181
  useAsTitle
187
182
  }));
188
183
  }
@@ -190,44 +185,39 @@ export const TableColumnsProvider = t0 => {
190
185
  };
191
186
  sync();
192
187
  };
193
- $[29] = collectionSlug;
194
- $[30] = listPreferences;
195
- $[31] = getPreference;
196
- $[32] = preferenceKey;
197
- $[33] = beforeRows;
198
- $[34] = initialColumns;
199
- $[35] = enableRowSelections;
200
- $[36] = fields;
201
- $[37] = sortColumnProps;
202
- $[38] = useAsTitle;
203
- $[39] = t11;
188
+ $[28] = collectionSlug;
189
+ $[29] = listPreferences;
190
+ $[30] = getPreference;
191
+ $[31] = preferenceKey;
192
+ $[32] = cellProps;
193
+ $[33] = initialColumns;
194
+ $[34] = fields;
195
+ $[35] = useAsTitle;
196
+ $[36] = t11;
204
197
  } else {
205
- t11 = $[39];
198
+ t11 = $[36];
206
199
  }
207
200
  let t12;
208
- if ($[40] !== preferenceKey || $[41] !== getPreference || $[42] !== collectionSlug || $[43] !== fields || $[44] !== defaultColumns || $[45] !== useAsTitle || $[46] !== listPreferences || $[47] !== initialColumns || $[48] !== beforeRows || $[49] !== enableRowSelections || $[50] !== sortColumnProps) {
209
- t12 = [preferenceKey, getPreference, collectionSlug, fields, defaultColumns, useAsTitle, listPreferences, initialColumns, beforeRows, enableRowSelections, sortColumnProps];
210
- $[40] = preferenceKey;
211
- $[41] = getPreference;
212
- $[42] = collectionSlug;
213
- $[43] = fields;
214
- $[44] = defaultColumns;
215
- $[45] = useAsTitle;
216
- $[46] = listPreferences;
217
- $[47] = initialColumns;
218
- $[48] = beforeRows;
219
- $[49] = enableRowSelections;
220
- $[50] = sortColumnProps;
221
- $[51] = t12;
201
+ if ($[37] !== preferenceKey || $[38] !== getPreference || $[39] !== collectionSlug || $[40] !== fields || $[41] !== cellProps || $[42] !== defaultColumns || $[43] !== useAsTitle || $[44] !== listPreferences || $[45] !== initialColumns) {
202
+ t12 = [preferenceKey, getPreference, collectionSlug, fields, cellProps, defaultColumns, useAsTitle, listPreferences, initialColumns];
203
+ $[37] = preferenceKey;
204
+ $[38] = getPreference;
205
+ $[39] = collectionSlug;
206
+ $[40] = fields;
207
+ $[41] = cellProps;
208
+ $[42] = defaultColumns;
209
+ $[43] = useAsTitle;
210
+ $[44] = listPreferences;
211
+ $[45] = initialColumns;
212
+ $[46] = t12;
222
213
  } else {
223
- t12 = $[51];
214
+ t12 = $[46];
224
215
  }
225
216
  React.useEffect(t11, t12);
226
217
  let t13;
227
- if ($[52] !== cellProps || $[53] !== tableColumns || $[54] !== moveColumn || $[55] !== setActiveColumns || $[56] !== toggleColumn || $[57] !== children) {
218
+ if ($[47] !== tableColumns || $[48] !== moveColumn || $[49] !== setActiveColumns || $[50] !== toggleColumn || $[51] !== children) {
228
219
  t13 = _jsx(TableColumnContext.Provider, {
229
220
  value: {
230
- cellProps,
231
221
  columns: tableColumns,
232
222
  moveColumn,
233
223
  setActiveColumns,
@@ -235,15 +225,14 @@ export const TableColumnsProvider = t0 => {
235
225
  },
236
226
  children
237
227
  });
238
- $[52] = cellProps;
239
- $[53] = tableColumns;
240
- $[54] = moveColumn;
241
- $[55] = setActiveColumns;
242
- $[56] = toggleColumn;
243
- $[57] = children;
244
- $[58] = t13;
228
+ $[47] = tableColumns;
229
+ $[48] = moveColumn;
230
+ $[49] = setActiveColumns;
231
+ $[50] = toggleColumn;
232
+ $[51] = children;
233
+ $[52] = t13;
245
234
  } else {
246
- t13 = $[58];
235
+ t13 = $[52];
247
236
  }
248
237
  return t13;
249
238
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","createContext","useCallback","useContext","useState","useConfig","usePreferences","buildColumnState","filterFields","getInitialColumns","TableColumnContext","useTableColumns","TableColumnsProvider","t0","$","beforeRows","cellProps","children","collectionSlug","enableRowSelections","t1","listPreferences","preferenceKey","sortColumnProps","undefined","config","t2","collections","t3","t4","slug","find","collectionConfig","admin","fields","defaultColumns","useAsTitle","prevCollection","useRef","getPreference","setPreference","t5","initialColumns","t6","columnPreferences","columns","tableColumns","setTableColumns","t7","newColumns","map","c_0","accessor","active","updateColumnPreferences","t8","args","fromIndex","toIndex","withMovedColumn","columnToMove","splice","moveColumn","t9","column","toggledColumns","col","field","name","toggleColumn","t10","activeColumnAccessors","activeColumns","col_0","includes","setActiveColumns","t11","sync","collectionHasChanged","current","currentPreferences","t12","useEffect","t13","_jsx","Provider","value"],"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { CellComponentProps, SanitizedCollectionConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext, useState } from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { buildColumnState } from './buildColumnState.js'\nimport { filterFields } from './filterFields.js'\nimport { getInitialColumns } from './getInitialColumns.js'\n\nexport interface ITableColumns {\n cellProps?: Partial<CellComponentProps>[]\n columns: Column[]\n moveColumn: (args: { fromIndex: number; toIndex: number }) => void\n setActiveColumns: (columns: string[]) => void\n toggleColumn: (column: string) => void\n}\n\nexport const TableColumnContext = createContext<ITableColumns>({} as ITableColumns)\n\nexport const useTableColumns = (): ITableColumns => useContext(TableColumnContext)\n\nexport type ListPreferences = {\n columns: ColumnPreferences\n}\n\ntype Props = {\n readonly beforeRows?: Column[]\n readonly cellProps?: Partial<CellComponentProps>[]\n readonly children: React.ReactNode\n readonly collectionSlug: string\n readonly enableRowSelections?: boolean\n readonly listPreferences?: ListPreferences\n readonly preferenceKey: string\n readonly sortColumnProps?: Partial<SortColumnProps>\n}\n\nexport const TableColumnsProvider: React.FC<Props> = ({\n beforeRows,\n cellProps,\n children,\n collectionSlug,\n enableRowSelections = false,\n listPreferences,\n preferenceKey,\n sortColumnProps,\n}) => {\n const {\n config: { collections },\n } = useConfig()\n\n const collectionConfig = collections.find((c) => c.slug === collectionSlug)\n\n const {\n admin: { defaultColumns, useAsTitle },\n fields,\n } = collectionConfig\n\n const prevCollection = React.useRef<SanitizedCollectionConfig['slug']>(collectionSlug)\n const { getPreference, setPreference } = usePreferences()\n\n const [initialColumns] = useState<ColumnPreferences>(() =>\n getInitialColumns(filterFields(fields), useAsTitle, defaultColumns),\n )\n\n const [tableColumns, setTableColumns] = React.useState(() =>\n buildColumnState({\n beforeRows,\n columnPreferences: listPreferences?.columns,\n columns: initialColumns,\n enableRowSelections,\n fields,\n sortColumnProps,\n useAsTitle,\n }),\n )\n\n const updateColumnPreferences = React.useCallback(\n (newColumns: Column[]) => {\n const columns = newColumns.map((c) => ({\n accessor: c?.accessor,\n active: c?.active,\n }))\n\n void setPreference(preferenceKey, { columns }, true)\n },\n [preferenceKey, setPreference],\n )\n\n const moveColumn = useCallback(\n (args: { fromIndex: number; toIndex: number }) => {\n const { fromIndex, toIndex } = args\n const withMovedColumn = [...tableColumns]\n const [columnToMove] = withMovedColumn.splice(fromIndex, 1)\n withMovedColumn.splice(toIndex, 0, columnToMove)\n setTableColumns(withMovedColumn)\n updateColumnPreferences(withMovedColumn)\n },\n [tableColumns, updateColumnPreferences],\n )\n\n const toggleColumn = useCallback(\n (column: string) => {\n const toggledColumns = tableColumns.map((col) => {\n return {\n ...col,\n active:\n col?.cellProps?.field &&\n 'name' in col.cellProps.field &&\n col?.cellProps?.field?.name === column\n ? !col.active\n : col.active,\n }\n })\n\n setTableColumns(toggledColumns)\n updateColumnPreferences(toggledColumns)\n },\n [tableColumns, updateColumnPreferences],\n )\n\n const setActiveColumns = React.useCallback(\n (activeColumnAccessors) => {\n const activeColumns = tableColumns.map((col) => {\n return {\n ...col,\n active: activeColumnAccessors.includes(col.accessor),\n }\n })\n\n updateColumnPreferences(activeColumns)\n },\n [tableColumns, updateColumnPreferences],\n )\n\n // //////////////////////////////////////////////\n // Get preferences on collection change (drawers)\n // //////////////////////////////////////////////\n\n React.useEffect(() => {\n const sync = async () => {\n const collectionHasChanged = prevCollection.current !== collectionSlug\n\n if (collectionHasChanged || !listPreferences) {\n const currentPreferences = await getPreference<{\n columns: ColumnPreferences\n }>(preferenceKey)\n prevCollection.current = collectionSlug\n\n if (currentPreferences?.columns) {\n setTableColumns(\n buildColumnState({\n beforeRows,\n columnPreferences: currentPreferences?.columns,\n columns: initialColumns,\n enableRowSelections,\n fields,\n sortColumnProps,\n useAsTitle,\n }),\n )\n }\n }\n }\n\n void sync()\n }, [\n preferenceKey,\n getPreference,\n collectionSlug,\n fields,\n defaultColumns,\n useAsTitle,\n listPreferences,\n initialColumns,\n beforeRows,\n enableRowSelections,\n sortColumnProps,\n ])\n\n return (\n <TableColumnContext.Provider\n value={{\n cellProps,\n columns: tableColumns,\n moveColumn,\n setActiveColumns,\n toggleColumn,\n }}\n >\n {children}\n </TableColumnContext.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","createContext","useCallback","useContext","useState","useConfig","usePreferences","buildColumnState","filterFields","getInitialColumns","TableColumnContext","useTableColumns","TableColumnsProvider","t0","$","cellProps","children","collectionSlug","enableRowSelections","t1","listPreferences","preferenceKey","undefined","config","t2","collections","t3","t4","collectionConfig","slug","find","collectionConfig_0","admin","fields","defaultColumns","useAsTitle","prevCollection","useRef","getPreference","setPreference","t5","initialColumns","t6","columnPreferences","columns","tableColumns","setTableColumns","t7","newColumns","map","accessor","active","updateColumnPreferences","t8","args","fromIndex","toIndex","withMovedColumn","columnToMove","splice","moveColumn","t9","column","toggledColumns","col","field","name","toggleColumn","t10","activeColumnAccessors","activeColumns","col_0","includes","setActiveColumns","t11","sync","collectionHasChanged","current","currentPreferences","t12","useEffect","t13","_jsx","Provider","value"],"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { CellComponentProps, SanitizedCollectionConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext, useState } from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { buildColumnState } from './buildColumnState.js'\nimport { filterFields } from './filterFields.js'\nimport { getInitialColumns } from './getInitialColumns.js'\n\nexport interface ITableColumns {\n columns: Column[]\n moveColumn: (args: { fromIndex: number; toIndex: number }) => void\n setActiveColumns: (columns: string[]) => void\n toggleColumn: (column: string) => void\n}\n\nexport const TableColumnContext = createContext<ITableColumns>({} as ITableColumns)\n\nexport const useTableColumns = (): ITableColumns => useContext(TableColumnContext)\n\nexport type ListPreferences = {\n columns: ColumnPreferences\n}\n\ntype Props = {\n readonly cellProps?: Partial<CellComponentProps>[]\n readonly children: React.ReactNode\n readonly collectionSlug: string\n readonly enableRowSelections?: boolean\n readonly listPreferences?: ListPreferences\n readonly preferenceKey: string\n}\n\nexport const TableColumnsProvider: React.FC<Props> = ({\n cellProps,\n children,\n collectionSlug,\n enableRowSelections = false,\n listPreferences,\n preferenceKey,\n}) => {\n const {\n config: { collections },\n } = useConfig()\n\n const collectionConfig = collections.find(\n (collectionConfig) => collectionConfig.slug === collectionSlug,\n )\n\n const {\n admin: { defaultColumns, useAsTitle },\n fields,\n } = collectionConfig\n\n const prevCollection = React.useRef<SanitizedCollectionConfig['slug']>(collectionSlug)\n const { getPreference, setPreference } = usePreferences()\n\n const [initialColumns] = useState<ColumnPreferences>(() =>\n getInitialColumns(filterFields(fields), useAsTitle, defaultColumns),\n )\n\n const [tableColumns, setTableColumns] = React.useState(() =>\n buildColumnState({\n cellProps,\n columnPreferences: listPreferences?.columns,\n columns: initialColumns,\n enableRowSelections,\n fields,\n useAsTitle,\n }),\n )\n\n const updateColumnPreferences = React.useCallback(\n (newColumns: Column[]) => {\n const columns = newColumns.map((c) => ({\n accessor: c?.accessor,\n active: c?.active,\n }))\n\n void setPreference(preferenceKey, { columns }, true)\n },\n [preferenceKey, setPreference],\n )\n\n const moveColumn = useCallback(\n (args: { fromIndex: number; toIndex: number }) => {\n const { fromIndex, toIndex } = args\n\n const withMovedColumn = [...tableColumns]\n const [columnToMove] = withMovedColumn.splice(fromIndex, 1)\n withMovedColumn.splice(toIndex, 0, columnToMove)\n\n setTableColumns(withMovedColumn)\n updateColumnPreferences(withMovedColumn)\n },\n [tableColumns, updateColumnPreferences],\n )\n\n const toggleColumn = useCallback(\n (column: string) => {\n const toggledColumns = tableColumns.map((col) => {\n return {\n ...col,\n active:\n col?.cellProps?.field &&\n 'name' in col.cellProps.field &&\n col?.cellProps?.field?.name === column\n ? !col.active\n : col.active,\n }\n })\n\n setTableColumns(toggledColumns)\n updateColumnPreferences(toggledColumns)\n },\n [tableColumns, updateColumnPreferences],\n )\n\n const setActiveColumns = React.useCallback(\n (activeColumnAccessors) => {\n const activeColumns = tableColumns.map((col) => {\n return {\n ...col,\n active: activeColumnAccessors.includes(col.accessor),\n }\n })\n\n updateColumnPreferences(activeColumns)\n },\n [tableColumns, updateColumnPreferences],\n )\n\n // //////////////////////////////////////////////\n // Get preferences on collection change (drawers)\n // //////////////////////////////////////////////\n\n React.useEffect(() => {\n const sync = async () => {\n const collectionHasChanged = prevCollection.current !== collectionSlug\n\n if (collectionHasChanged || !listPreferences) {\n const currentPreferences = await getPreference<{\n columns: ColumnPreferences\n }>(preferenceKey)\n prevCollection.current = collectionSlug\n\n if (currentPreferences?.columns) {\n setTableColumns(\n buildColumnState({\n cellProps,\n columnPreferences: currentPreferences?.columns,\n columns: initialColumns,\n enableRowSelections: true,\n fields,\n useAsTitle,\n }),\n )\n }\n }\n }\n\n void sync()\n }, [\n preferenceKey,\n getPreference,\n collectionSlug,\n fields,\n cellProps,\n defaultColumns,\n useAsTitle,\n listPreferences,\n initialColumns,\n ])\n\n return (\n <TableColumnContext.Provider\n value={{\n columns: tableColumns,\n moveColumn,\n setActiveColumns,\n toggleColumn,\n }}\n >\n {children}\n </TableColumnContext.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,6 @@ export type Props = {
6
6
  children: React.ReactNode;
7
7
  className?: string;
8
8
  delay?: number;
9
- position?: 'bottom' | 'top';
10
9
  show?: boolean;
11
10
  /**
12
11
  * If the tooltip position should not change depending on if the toolbar is outside the boundingRef. @default false
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Tooltip/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAGxC,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IACxC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IACjD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAA;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAmFnC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Tooltip/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAGxC,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IACxC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IACjD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkFnC,CAAA"}
@@ -6,14 +6,13 @@ import React, { useEffect } from 'react';
6
6
  import { useIntersect } from '../../hooks/useIntersect.js';
7
7
  import './index.scss';
8
8
  export const Tooltip = props => {
9
- const $ = _c(24);
9
+ const $ = _c(23);
10
10
  const {
11
11
  alignCaret: t0,
12
12
  boundingRef,
13
13
  children,
14
14
  className,
15
15
  delay: t1,
16
- position: positionFromProps,
17
16
  show: t2,
18
17
  staticPositioning: t3
19
18
  } = props;
@@ -86,20 +85,20 @@ export const Tooltip = props => {
86
85
  }
87
86
  useEffect(t8, t9);
88
87
  let t10;
89
- if ($[10] !== staticPositioning || $[11] !== alignCaret || $[12] !== className || $[13] !== children || $[14] !== ref || $[15] !== show || $[16] !== positionFromProps || $[17] !== position) {
88
+ if ($[10] !== staticPositioning || $[11] !== alignCaret || $[12] !== className || $[13] !== children || $[14] !== ref || $[15] !== show || $[16] !== position) {
90
89
  const t11 = show && "tooltip--show";
91
90
  const t12 = `tooltip--caret-${alignCaret}`;
92
- const t13 = `tooltip--position-${positionFromProps || position}`;
91
+ const t13 = `tooltip--position-${position}`;
93
92
  let t14;
94
- if ($[19] !== className || $[20] !== t11 || $[21] !== t12 || $[22] !== t13) {
93
+ if ($[18] !== className || $[19] !== t11 || $[20] !== t12 || $[21] !== t13) {
95
94
  t14 = ["tooltip", className, t11, t12, t13].filter(Boolean);
96
- $[19] = className;
97
- $[20] = t11;
98
- $[21] = t12;
99
- $[22] = t13;
100
- $[23] = t14;
95
+ $[18] = className;
96
+ $[19] = t11;
97
+ $[20] = t12;
98
+ $[21] = t13;
99
+ $[22] = t14;
101
100
  } else {
102
- t14 = $[23];
101
+ t14 = $[22];
103
102
  }
104
103
  t10 = _jsxs(React.Fragment, {
105
104
  children: [!staticPositioning && _jsx("aside", {
@@ -128,11 +127,10 @@ export const Tooltip = props => {
128
127
  $[13] = children;
129
128
  $[14] = ref;
130
129
  $[15] = show;
131
- $[16] = positionFromProps;
132
- $[17] = position;
133
- $[18] = t10;
130
+ $[16] = position;
131
+ $[17] = t10;
134
132
  } else {
135
- t10 = $[18];
133
+ t10 = $[17];
136
134
  }
137
135
  return t10;
138
136
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useEffect","useIntersect","Tooltip","props","$","alignCaret","t0","boundingRef","children","className","delay","t1","position","positionFromProps","show","t2","staticPositioning","t3","undefined","showFromProps","setShow","useState","setPosition","getTitleAttribute","_temp","t4","current","t5","root","rootMargin","threshold","ref","intersectionEntry","t6","t7","timerId","clearTimeout","t8","t9","isIntersecting","t10","t11","t12","t13","t14","filter","Boolean","_jsxs","Fragment","_jsx","join","style","opacity","title","content"],"sources":["../../../src/elements/Tooltip/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect } from 'react'\n\nimport { useIntersect } from '../../hooks/useIntersect.js'\nimport './index.scss'\n\nexport type Props = {\n alignCaret?: 'center' | 'left' | 'right'\n boundingRef?: React.RefObject<HTMLElement | null>\n children: React.ReactNode\n className?: string\n delay?: number\n position?: 'bottom' | 'top'\n show?: boolean\n /**\n * If the tooltip position should not change depending on if the toolbar is outside the boundingRef. @default false\n */\n staticPositioning?: boolean\n}\n\nexport const Tooltip: React.FC<Props> = (props) => {\n const {\n alignCaret = 'center',\n boundingRef,\n children,\n className,\n delay = 350,\n position: positionFromProps,\n show: showFromProps = true,\n staticPositioning = false,\n } = props\n\n const [show, setShow] = React.useState(showFromProps)\n const [position, setPosition] = React.useState<'bottom' | 'top'>('top')\n\n const getTitleAttribute = (content) => (typeof content === 'string' ? content : '')\n\n const [ref, intersectionEntry] = useIntersect(\n {\n root: boundingRef?.current || null,\n rootMargin: '-145px 0px 0px 100px',\n threshold: 0,\n },\n staticPositioning,\n )\n\n useEffect(() => {\n let timerId: NodeJS.Timeout\n\n // do not use the delay on transition-out\n if (delay && showFromProps) {\n timerId = setTimeout(() => {\n setShow(showFromProps)\n }, delay)\n } else {\n setShow(showFromProps)\n }\n\n return () => {\n if (timerId) {\n clearTimeout(timerId)\n }\n }\n }, [showFromProps, delay])\n\n useEffect(() => {\n if (staticPositioning) {\n return\n }\n setPosition(intersectionEntry?.isIntersecting ? 'top' : 'bottom')\n }, [intersectionEntry, staticPositioning])\n\n // The first aside is always on top. The purpose of that is that it can reliably be used for the interaction observer (as it's not moving around), to calculate the position of the actual tooltip.\n return (\n <React.Fragment>\n {!staticPositioning && (\n <aside\n aria-hidden=\"true\"\n className={['tooltip', className, `tooltip--caret-${alignCaret}`, 'tooltip--position-top']\n .filter(Boolean)\n .join(' ')}\n ref={ref}\n style={{ opacity: '0' }}\n >\n <div className=\"tooltip-content\">{children}</div>\n </aside>\n )}\n <aside\n className={[\n 'tooltip',\n className,\n show && 'tooltip--show',\n `tooltip--caret-${alignCaret}`,\n `tooltip--position-${positionFromProps || position}`,\n ]\n .filter(Boolean)\n .join(' ')}\n title={getTitleAttribute(children)}\n >\n <div className=\"tooltip-content\">{children}</div>\n </aside>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useEffect","useIntersect","Tooltip","props","$","alignCaret","t0","boundingRef","children","className","delay","t1","show","t2","staticPositioning","t3","undefined","showFromProps","setShow","useState","position","setPosition","getTitleAttribute","_temp","t4","current","t5","root","rootMargin","threshold","ref","intersectionEntry","t6","t7","timerId","clearTimeout","t8","t9","isIntersecting","t10","t11","t12","t13","t14","filter","Boolean","_jsxs","Fragment","_jsx","join","style","opacity","title","content"],"sources":["../../../src/elements/Tooltip/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect } from 'react'\n\nimport { useIntersect } from '../../hooks/useIntersect.js'\nimport './index.scss'\n\nexport type Props = {\n alignCaret?: 'center' | 'left' | 'right'\n boundingRef?: React.RefObject<HTMLElement | null>\n children: React.ReactNode\n className?: string\n delay?: number\n show?: boolean\n /**\n * If the tooltip position should not change depending on if the toolbar is outside the boundingRef. @default false\n */\n staticPositioning?: boolean\n}\n\nexport const Tooltip: React.FC<Props> = (props) => {\n const {\n alignCaret = 'center',\n boundingRef,\n children,\n className,\n delay = 350,\n show: showFromProps = true,\n staticPositioning = false,\n } = props\n\n const [show, setShow] = React.useState(showFromProps)\n const [position, setPosition] = React.useState<'bottom' | 'top'>('top')\n\n const getTitleAttribute = (content) => (typeof content === 'string' ? content : '')\n\n const [ref, intersectionEntry] = useIntersect(\n {\n root: boundingRef?.current || null,\n rootMargin: '-145px 0px 0px 100px',\n threshold: 0,\n },\n staticPositioning,\n )\n\n useEffect(() => {\n let timerId: NodeJS.Timeout\n\n // do not use the delay on transition-out\n if (delay && showFromProps) {\n timerId = setTimeout(() => {\n setShow(showFromProps)\n }, delay)\n } else {\n setShow(showFromProps)\n }\n\n return () => {\n if (timerId) {\n clearTimeout(timerId)\n }\n }\n }, [showFromProps, delay])\n\n useEffect(() => {\n if (staticPositioning) {\n return\n }\n setPosition(intersectionEntry?.isIntersecting ? 'top' : 'bottom')\n }, [intersectionEntry, staticPositioning])\n\n // The first aside is always on top. The purpose of that is that it can reliably be used for the interaction observer (as it's not moving around), to calculate the position of the actual tooltip.\n return (\n <React.Fragment>\n {!staticPositioning && (\n <aside\n aria-hidden=\"true\"\n className={['tooltip', className, `tooltip--caret-${alignCaret}`, 'tooltip--position-top']\n .filter(Boolean)\n .join(' ')}\n ref={ref}\n style={{ opacity: '0' }}\n >\n <div className=\"tooltip-content\">{children}</div>\n </aside>\n )}\n <aside\n className={[\n 'tooltip',\n className,\n show && 'tooltip--show',\n `tooltip--caret-${alignCaret}`,\n `tooltip--position-${position}`,\n ]\n .filter(Boolean)\n .join(' ')}\n title={getTitleAttribute(children)}\n >\n <div className=\"tooltip-content\">{children}</div>\n </aside>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}