@payloadcms/ui 3.0.0-canary.23fcb9e → 3.0.0-canary.294ea5c

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 (140) hide show
  1. package/dist/elements/AddNewRelation/index.d.ts.map +1 -0
  2. package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/index.js +98 -82
  3. package/dist/elements/AddNewRelation/index.js.map +1 -0
  4. package/dist/elements/AddNewRelation/index.scss +42 -0
  5. package/dist/elements/AddNewRelation/types.d.ts +11 -0
  6. package/dist/elements/AddNewRelation/types.d.ts.map +1 -0
  7. package/dist/elements/AddNewRelation/types.js.map +1 -0
  8. package/dist/elements/AddNewRelation/useRelatedCollections.d.ts.map +1 -0
  9. package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/useRelatedCollections.js +1 -1
  10. package/dist/elements/AddNewRelation/useRelatedCollections.js.map +1 -0
  11. package/dist/elements/AppHeader/index.js +41 -80
  12. package/dist/elements/AppHeader/index.js.map +1 -1
  13. package/dist/elements/Autosave/index.js +148 -231
  14. package/dist/elements/Autosave/index.js.map +1 -1
  15. package/dist/elements/Button/index.js +86 -218
  16. package/dist/elements/Button/index.js.map +1 -1
  17. package/dist/elements/Collapsible/index.js +44 -62
  18. package/dist/elements/Collapsible/index.js.map +1 -1
  19. package/dist/elements/Collapsible/index.scss +15 -28
  20. package/dist/elements/CopyToClipboard/index.js +20 -54
  21. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  22. package/dist/elements/DocumentDrawer/DrawerContent.js +1 -1
  23. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  24. package/dist/elements/DocumentDrawer/index.js +1 -1
  25. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  26. package/dist/elements/Dropzone/index.js +59 -119
  27. package/dist/elements/Dropzone/index.js.map +1 -1
  28. package/dist/elements/EditMany/index.js +124 -230
  29. package/dist/elements/EditMany/index.js.map +1 -1
  30. package/dist/elements/EditUpload/index.js +133 -206
  31. package/dist/elements/EditUpload/index.js.map +1 -1
  32. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +20 -0
  33. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -0
  34. package/dist/elements/FileDetails/DraggableFileDetails/index.js +116 -0
  35. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -0
  36. package/dist/elements/FileDetails/DraggableFileDetails/index.scss +33 -0
  37. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +17 -0
  38. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -0
  39. package/dist/elements/FileDetails/StaticFileDetails/index.js +71 -0
  40. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -0
  41. package/dist/elements/FileDetails/{index.scss → StaticFileDetails/index.scss} +1 -1
  42. package/dist/elements/FileDetails/index.d.ts +19 -4
  43. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  44. package/dist/elements/FileDetails/index.js +11 -62
  45. package/dist/elements/FileDetails/index.js.map +1 -1
  46. package/dist/elements/ListControls/index.d.ts.map +1 -1
  47. package/dist/elements/ListControls/index.js +91 -192
  48. package/dist/elements/ListControls/index.js.map +1 -1
  49. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  50. package/dist/elements/ListDrawer/DrawerContent.js +42 -31
  51. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  52. package/dist/elements/ListDrawer/index.d.ts.map +1 -1
  53. package/dist/elements/ListDrawer/index.js.map +1 -1
  54. package/dist/elements/ListDrawer/types.d.ts +4 -1
  55. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  56. package/dist/elements/ListDrawer/types.js.map +1 -1
  57. package/dist/elements/Nav/context.js +47 -83
  58. package/dist/elements/Nav/context.js.map +1 -1
  59. package/dist/elements/SaveButton/index.js +30 -81
  60. package/dist/elements/SaveButton/index.js.map +1 -1
  61. package/dist/elements/SaveDraftButton/index.js +54 -116
  62. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  63. package/dist/elements/SearchFilter/index.js +21 -77
  64. package/dist/elements/SearchFilter/index.js.map +1 -1
  65. package/dist/elements/SelectMany/index.d.ts +6 -0
  66. package/dist/elements/SelectMany/index.d.ts.map +1 -0
  67. package/dist/elements/SelectMany/index.js +29 -0
  68. package/dist/elements/SelectMany/index.js.map +1 -0
  69. package/dist/elements/Upload/index.js +130 -280
  70. package/dist/elements/Upload/index.js.map +1 -1
  71. package/dist/exports/client/{CodeEditor-C4FLUUO7.js → CodeEditor-MTP455NO.js} +2 -2
  72. package/dist/exports/client/chunk-NJHSEGFB.js +14 -0
  73. package/dist/exports/client/{chunk-UGBVRIVY.js.map → chunk-NJHSEGFB.js.map} +2 -2
  74. package/dist/exports/client/index.d.ts +1 -1
  75. package/dist/exports/client/index.d.ts.map +1 -1
  76. package/dist/exports/client/index.js +13 -13
  77. package/dist/exports/client/index.js.map +4 -4
  78. package/dist/fields/Relationship/index.d.ts.map +1 -1
  79. package/dist/fields/Relationship/index.js +319 -507
  80. package/dist/fields/Relationship/index.js.map +1 -1
  81. package/dist/fields/Upload/HasMany/index.d.ts +4 -0
  82. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -0
  83. package/dist/fields/Upload/HasMany/index.js +238 -0
  84. package/dist/fields/Upload/HasMany/index.js.map +1 -0
  85. package/dist/fields/Upload/HasMany/index.scss +71 -0
  86. package/dist/fields/Upload/{Input.d.ts → HasOne/Input.d.ts} +1 -1
  87. package/dist/fields/Upload/HasOne/Input.d.ts.map +1 -0
  88. package/dist/fields/Upload/{Input.js → HasOne/Input.js} +12 -12
  89. package/dist/fields/Upload/HasOne/Input.js.map +1 -0
  90. package/dist/fields/Upload/HasOne/index.d.ts +12 -0
  91. package/dist/fields/Upload/HasOne/index.d.ts.map +1 -0
  92. package/dist/fields/Upload/HasOne/index.js +131 -0
  93. package/dist/fields/Upload/HasOne/index.js.map +1 -0
  94. package/dist/fields/Upload/{index.scss → HasOne/index.scss} +1 -1
  95. package/dist/fields/Upload/index.d.ts +4 -4
  96. package/dist/fields/Upload/index.d.ts.map +1 -1
  97. package/dist/fields/Upload/index.js +84 -98
  98. package/dist/fields/Upload/index.js.map +1 -1
  99. package/dist/forms/Submit/index.js +12 -28
  100. package/dist/forms/Submit/index.js.map +1 -1
  101. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  102. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +1 -27
  103. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  104. package/dist/hooks/useDelay.js +15 -48
  105. package/dist/hooks/useDelay.js.map +1 -1
  106. package/dist/hooks/useDelayedRender.js +32 -71
  107. package/dist/hooks/useDelayedRender.js.map +1 -1
  108. package/dist/hooks/useIntersect.js +14 -20
  109. package/dist/hooks/useIntersect.js.map +1 -1
  110. package/dist/providers/Config/createClientConfig/collections.d.ts.map +1 -1
  111. package/dist/providers/Config/createClientConfig/collections.js +8 -6
  112. package/dist/providers/Config/createClientConfig/collections.js.map +1 -1
  113. package/dist/providers/ListInfo/index.d.ts +6 -0
  114. package/dist/providers/ListInfo/index.d.ts.map +1 -1
  115. package/dist/providers/ListInfo/index.js.map +1 -1
  116. package/dist/providers/Preferences/index.js +1 -3
  117. package/dist/providers/Preferences/index.js.map +1 -1
  118. package/dist/providers/Selection/index.d.ts +5 -3
  119. package/dist/providers/Selection/index.d.ts.map +1 -1
  120. package/dist/providers/Selection/index.js +102 -190
  121. package/dist/providers/Selection/index.js.map +1 -1
  122. package/dist/scss/app.scss +6 -6
  123. package/dist/scss/type.scss +4 -4
  124. package/dist/styles.css +1 -1
  125. package/package.json +8 -8
  126. package/dist/exports/client/chunk-UGBVRIVY.js +0 -14
  127. package/dist/fields/Relationship/AddNew/index.d.ts.map +0 -1
  128. package/dist/fields/Relationship/AddNew/index.js.map +0 -1
  129. package/dist/fields/Relationship/AddNew/index.scss +0 -28
  130. package/dist/fields/Relationship/AddNew/types.d.ts +0 -12
  131. package/dist/fields/Relationship/AddNew/types.d.ts.map +0 -1
  132. package/dist/fields/Relationship/AddNew/types.js.map +0 -1
  133. package/dist/fields/Relationship/AddNew/useRelatedCollections.d.ts.map +0 -1
  134. package/dist/fields/Relationship/AddNew/useRelatedCollections.js.map +0 -1
  135. package/dist/fields/Upload/Input.d.ts.map +0 -1
  136. package/dist/fields/Upload/Input.js.map +0 -1
  137. /package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/index.d.ts +0 -0
  138. /package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/types.js +0 -0
  139. /package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/useRelatedCollections.d.ts +0 -0
  140. /package/dist/exports/client/{CodeEditor-C4FLUUO7.js.map → CodeEditor-MTP455NO.js.map} +0 -0
@@ -1,10 +1,9 @@
1
1
  'use client';
2
2
 
3
- import { c as _c } from "react/compiler-runtime";
4
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
4
  import { useWindowInfo } from '@faceless-ui/window-info';
6
5
  import { getTranslation } from '@payloadcms/translations';
7
- import React, { useEffect, useRef, useState } from 'react';
6
+ import React, { Fragment, useEffect, useRef, useState } from 'react';
8
7
  import AnimateHeightImport from 'react-animate-height';
9
8
  const AnimateHeight = AnimateHeightImport.default || AnimateHeightImport;
10
9
  import { useUseTitleField } from '../../hooks/useUseAsTitle.js';
@@ -32,20 +31,20 @@ const baseClass = 'list-controls';
32
31
  * the collection's documents.
33
32
  */
34
33
  export const ListControls = props => {
35
- const $ = _c(34);
36
34
  const {
37
35
  collectionConfig,
38
- enableColumns: t0,
39
- enableSort: t1,
36
+ enableColumns = true,
37
+ enableSort = false,
40
38
  fields
41
39
  } = props;
42
- const enableColumns = t0 === undefined ? true : t0;
43
- const enableSort = t1 === undefined ? false : t1;
44
40
  const {
45
41
  handleSearchChange
46
42
  } = useListQuery();
47
43
  const {
48
- collectionSlug
44
+ beforeActions,
45
+ collectionSlug,
46
+ disableBulkDelete,
47
+ disableBulkEdit
49
48
  } = useListInfo();
50
49
  const {
51
50
  searchParams
@@ -56,228 +55,128 @@ export const ListControls = props => {
56
55
  t
57
56
  } = useTranslation();
58
57
  const {
59
- breakpoints: t2
58
+ breakpoints: {
59
+ s: smallBreak
60
+ }
60
61
  } = useWindowInfo();
61
- const {
62
- s: smallBreak
63
- } = t2;
64
- const [search, setSearch] = useState(typeof searchParams?.search === "string" ? searchParams?.search : "");
65
- let t3;
66
- if ($[0] !== titleField || $[1] !== i18n) {
67
- t3 = (titleField && getTranslation("label" in titleField && typeof titleField.label === "string" ? titleField.label : "name" in titleField ? titleField.name : null, i18n)) ?? "ID";
68
- $[0] = titleField;
69
- $[1] = i18n;
70
- $[2] = t3;
71
- } else {
72
- t3 = $[2];
73
- }
74
- const searchLabel = t3;
75
- let t4;
76
- if ($[3] !== collectionConfig.admin.listSearchableFields || $[4] !== fields) {
77
- t4 = getTextFieldsToBeSearched(collectionConfig.admin.listSearchableFields, fields);
78
- $[3] = collectionConfig.admin.listSearchableFields;
79
- $[4] = fields;
80
- $[5] = t4;
81
- } else {
82
- t4 = $[5];
83
- }
84
- const listSearchableFields = t4;
85
- const searchLabelTranslated = useRef(t("general:searchBy", {
62
+ const [search, setSearch] = useState(typeof searchParams?.search === 'string' ? searchParams?.search : '');
63
+ const searchLabel = (titleField && getTranslation('label' in titleField && typeof titleField.label === 'string' ? titleField.label : 'name' in titleField ? titleField.name : null, i18n)) ?? 'ID';
64
+ const listSearchableFields = getTextFieldsToBeSearched(collectionConfig.admin.listSearchableFields, fields);
65
+ const searchLabelTranslated = useRef(t('general:searchBy', {
86
66
  label: getTranslation(searchLabel, i18n)
87
67
  }));
88
68
  const hasWhereParam = useRef(Boolean(searchParams?.where));
89
69
  const shouldInitializeWhereOpened = validateWhereQuery(searchParams?.where);
90
- const [visibleDrawer, setVisibleDrawer] = useState(shouldInitializeWhereOpened ? "where" : undefined);
91
- let t5;
92
- if ($[6] !== searchParams) {
93
- t5 = () => {
94
- if (hasWhereParam.current && !searchParams?.where) {
95
- setVisibleDrawer(undefined);
96
- hasWhereParam.current = false;
97
- } else {
98
- if (searchParams?.where) {
99
- hasWhereParam.current = true;
100
- }
101
- }
102
- };
103
- $[6] = searchParams;
104
- $[7] = t5;
105
- } else {
106
- t5 = $[7];
107
- }
108
- const t6 = searchParams?.where;
109
- let t7;
110
- if ($[8] !== t6) {
111
- t7 = [setVisibleDrawer, t6];
112
- $[8] = t6;
113
- $[9] = t7;
114
- } else {
115
- t7 = $[9];
116
- }
117
- useEffect(t5, t7);
118
- let t8;
119
- if ($[10] !== t || $[11] !== listSearchableFields || $[12] !== i18n || $[13] !== searchLabel) {
120
- t8 = [t, listSearchableFields, i18n, searchLabel];
121
- $[10] = t;
122
- $[11] = listSearchableFields;
123
- $[12] = i18n;
124
- $[13] = searchLabel;
125
- $[14] = t8;
126
- } else {
127
- t8 = $[14];
128
- }
70
+ const [visibleDrawer, setVisibleDrawer] = useState(shouldInitializeWhereOpened ? 'where' : undefined);
71
+ useEffect(() => {
72
+ if (hasWhereParam.current && !searchParams?.where) {
73
+ setVisibleDrawer(undefined);
74
+ hasWhereParam.current = false;
75
+ } else if (searchParams?.where) {
76
+ hasWhereParam.current = true;
77
+ }
78
+ }, [setVisibleDrawer, searchParams?.where]);
129
79
  useEffect(() => {
130
80
  if (listSearchableFields?.length > 0) {
131
81
  searchLabelTranslated.current = listSearchableFields.reduce((placeholderText, field, i) => {
132
- const label = "label" in field && field.label ? field.label : "name" in field ? field.name : null;
82
+ const label = 'label' in field && field.label ? field.label : 'name' in field ? field.name : null;
133
83
  if (i === 0) {
134
- return `${t("general:searchBy", {
84
+ return `${t('general:searchBy', {
135
85
  label: getTranslation(label, i18n)
136
86
  })}`;
137
87
  }
138
88
  if (i === listSearchableFields.length - 1) {
139
- return `${placeholderText} ${t("general:or")} ${getTranslation(label, i18n)}`;
89
+ return `${placeholderText} ${t('general:or')} ${getTranslation(label, i18n)}`;
140
90
  }
141
91
  return `${placeholderText}, ${getTranslation(label, i18n)}`;
142
- }, "");
92
+ }, '');
143
93
  } else {
144
- searchLabelTranslated.current = t("general:searchBy", {
94
+ searchLabelTranslated.current = t('general:searchBy', {
145
95
  label: getTranslation(searchLabel, i18n)
146
96
  });
147
97
  }
148
- }, t8);
149
- let t9;
150
- if ($[15] !== handleSearchChange) {
151
- t9 = search_0 => void handleSearchChange(search_0);
152
- $[15] = handleSearchChange;
153
- $[16] = t9;
154
- } else {
155
- t9 = $[16];
156
- }
157
- let t10;
158
- if ($[17] !== enableColumns || $[18] !== visibleDrawer || $[19] !== t) {
159
- t10 = enableColumns && _jsx(Pill, {
160
- "aria-controls": `${baseClass}-columns`,
161
- "aria-expanded": visibleDrawer === "columns",
162
- className: `${baseClass}__toggle-columns ${visibleDrawer === "columns" ? `${baseClass}__buttons-active` : ""}`,
163
- icon: _jsx(ChevronIcon, {}),
164
- onClick: () => setVisibleDrawer(visibleDrawer !== "columns" ? "columns" : undefined),
165
- pillStyle: "light",
166
- children: t("general:columns")
167
- });
168
- $[17] = enableColumns;
169
- $[18] = visibleDrawer;
170
- $[19] = t;
171
- $[20] = t10;
172
- } else {
173
- t10 = $[20];
174
- }
175
- let t11;
176
- if ($[21] !== visibleDrawer) {
177
- t11 = () => setVisibleDrawer(visibleDrawer !== "where" ? "where" : undefined);
178
- $[21] = visibleDrawer;
179
- $[22] = t11;
180
- } else {
181
- t11 = $[22];
182
- }
183
- let t12;
184
- if ($[23] !== enableSort || $[24] !== visibleDrawer || $[25] !== t) {
185
- t12 = enableSort && _jsx(Pill, {
186
- "aria-controls": `${baseClass}-sort`,
187
- "aria-expanded": visibleDrawer === "sort",
188
- className: `${baseClass}__toggle-sort`,
189
- icon: _jsx(ChevronIcon, {}),
190
- onClick: () => setVisibleDrawer(visibleDrawer !== "sort" ? "sort" : undefined),
191
- pillStyle: "light",
192
- children: t("general:sort")
193
- });
194
- $[23] = enableSort;
195
- $[24] = visibleDrawer;
196
- $[25] = t;
197
- $[26] = t12;
198
- } else {
199
- t12 = $[26];
200
- }
201
- let t13;
202
- if ($[27] !== enableColumns || $[28] !== visibleDrawer || $[29] !== collectionConfig) {
203
- t13 = enableColumns && _jsx(AnimateHeight, {
204
- className: `${baseClass}__columns`,
205
- height: visibleDrawer === "columns" ? "auto" : 0,
206
- id: `${baseClass}-columns`,
207
- children: _jsx(ColumnSelector, {
208
- collectionSlug: collectionConfig.slug
209
- })
210
- });
211
- $[27] = enableColumns;
212
- $[28] = visibleDrawer;
213
- $[29] = collectionConfig;
214
- $[30] = t13;
215
- } else {
216
- t13 = $[30];
217
- }
218
- let t14;
219
- if ($[31] !== enableSort || $[32] !== visibleDrawer) {
220
- t14 = enableSort && _jsx(AnimateHeight, {
221
- className: `${baseClass}__sort`,
222
- height: visibleDrawer === "sort" ? "auto" : 0,
223
- id: `${baseClass}-sort`,
224
- children: _jsx("p", {
225
- children: "Sort Complex"
226
- })
227
- });
228
- $[31] = enableSort;
229
- $[32] = visibleDrawer;
230
- $[33] = t14;
231
- } else {
232
- t14 = $[33];
233
- }
234
- return _jsxs("div", {
98
+ }, [t, listSearchableFields, i18n, searchLabel]);
99
+ return /*#__PURE__*/_jsxs("div", {
235
100
  className: baseClass,
236
- children: [_jsxs("div", {
101
+ children: [/*#__PURE__*/_jsxs("div", {
237
102
  className: `${baseClass}__wrap`,
238
- children: [_jsx(SearchIcon, {}), _jsx(SearchFilter, {
239
- fieldName: "name" in titleField ? titleField?.name : null,
240
- handleChange: t9,
103
+ children: [/*#__PURE__*/_jsx(SearchIcon, {}), /*#__PURE__*/_jsx(SearchFilter, {
104
+ fieldName: 'name' in titleField ? titleField?.name : null,
105
+ handleChange: search_0 => {
106
+ return void handleSearchChange(search_0);
107
+ },
241
108
  initialParams: searchParams,
242
109
  label: searchLabelTranslated.current,
243
110
  setValue: setSearch,
244
111
  value: search
245
- }, collectionSlug), _jsx("div", {
112
+ }, collectionSlug), /*#__PURE__*/_jsx("div", {
246
113
  className: `${baseClass}__buttons`,
247
- children: _jsxs("div", {
114
+ children: /*#__PURE__*/_jsxs("div", {
248
115
  className: `${baseClass}__buttons-wrap`,
249
- children: [!smallBreak && _jsxs(React.Fragment, {
250
- children: [_jsx(EditMany, {
251
- collection: collectionConfig,
252
- fields
253
- }), _jsx(PublishMany, {
254
- collection: collectionConfig
255
- }), _jsx(UnpublishMany, {
256
- collection: collectionConfig
257
- }), _jsx(DeleteMany, {
116
+ children: [!smallBreak && /*#__PURE__*/_jsxs(React.Fragment, {
117
+ children: [beforeActions && beforeActions, !disableBulkEdit && /*#__PURE__*/_jsxs(Fragment, {
118
+ children: [/*#__PURE__*/_jsx(EditMany, {
119
+ collection: collectionConfig,
120
+ fields: fields
121
+ }), /*#__PURE__*/_jsx(PublishMany, {
122
+ collection: collectionConfig
123
+ }), /*#__PURE__*/_jsx(UnpublishMany, {
124
+ collection: collectionConfig
125
+ })]
126
+ }), !disableBulkDelete && /*#__PURE__*/_jsx(DeleteMany, {
258
127
  collection: collectionConfig
259
128
  })]
260
- }), t10, _jsx(Pill, {
129
+ }), enableColumns && /*#__PURE__*/_jsx(Pill, {
130
+ "aria-controls": `${baseClass}-columns`,
131
+ "aria-expanded": visibleDrawer === 'columns',
132
+ className: `${baseClass}__toggle-columns ${visibleDrawer === 'columns' ? `${baseClass}__buttons-active` : ''}`,
133
+ icon: /*#__PURE__*/_jsx(ChevronIcon, {}),
134
+ onClick: () => setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined),
135
+ pillStyle: "light",
136
+ children: t('general:columns')
137
+ }), /*#__PURE__*/_jsx(Pill, {
261
138
  "aria-controls": `${baseClass}-where`,
262
- "aria-expanded": visibleDrawer === "where",
263
- className: `${baseClass}__toggle-where ${visibleDrawer === "where" ? `${baseClass}__buttons-active` : ""}`,
264
- icon: _jsx(ChevronIcon, {}),
265
- onClick: t11,
139
+ "aria-expanded": visibleDrawer === 'where',
140
+ className: `${baseClass}__toggle-where ${visibleDrawer === 'where' ? `${baseClass}__buttons-active` : ''}`,
141
+ icon: /*#__PURE__*/_jsx(ChevronIcon, {}),
142
+ onClick: () => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined),
266
143
  pillStyle: "light",
267
- children: t("general:filters")
268
- }), t12]
144
+ children: t('general:filters')
145
+ }), enableSort && /*#__PURE__*/_jsx(Pill, {
146
+ "aria-controls": `${baseClass}-sort`,
147
+ "aria-expanded": visibleDrawer === 'sort',
148
+ className: `${baseClass}__toggle-sort`,
149
+ icon: /*#__PURE__*/_jsx(ChevronIcon, {}),
150
+ onClick: () => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined),
151
+ pillStyle: "light",
152
+ children: t('general:sort')
153
+ })]
269
154
  })
270
155
  })]
271
- }), t13, _jsx(AnimateHeight, {
156
+ }), enableColumns && /*#__PURE__*/_jsx(AnimateHeight, {
157
+ className: `${baseClass}__columns`,
158
+ height: visibleDrawer === 'columns' ? 'auto' : 0,
159
+ id: `${baseClass}-columns`,
160
+ children: /*#__PURE__*/_jsx(ColumnSelector, {
161
+ collectionSlug: collectionConfig.slug
162
+ })
163
+ }), /*#__PURE__*/_jsx(AnimateHeight, {
272
164
  className: `${baseClass}__where`,
273
- height: visibleDrawer === "where" ? "auto" : 0,
165
+ height: visibleDrawer === 'where' ? 'auto' : 0,
274
166
  id: `${baseClass}-where`,
275
- children: _jsx(WhereBuilder, {
167
+ children: /*#__PURE__*/_jsx(WhereBuilder, {
276
168
  collectionPluralLabel: collectionConfig?.labels?.plural,
277
169
  collectionSlug: collectionConfig.slug,
278
- fields
170
+ fields: fields
279
171
  }, String(hasWhereParam.current && !searchParams?.where))
280
- }), t14]
172
+ }), enableSort && /*#__PURE__*/_jsx(AnimateHeight, {
173
+ className: `${baseClass}__sort`,
174
+ height: visibleDrawer === 'sort' ? 'auto' : 0,
175
+ id: `${baseClass}-sort`,
176
+ children: /*#__PURE__*/_jsx("p", {
177
+ children: "Sort Complex"
178
+ })
179
+ })]
281
180
  });
282
181
  };
283
182
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useWindowInfo","getTranslation","React","useEffect","useRef","useState","AnimateHeightImport","AnimateHeight","default","useUseTitleField","ChevronIcon","SearchIcon","useListInfo","useListQuery","useSearchParams","useTranslation","ColumnSelector","DeleteMany","EditMany","Pill","PublishMany","SearchFilter","UnpublishMany","WhereBuilder","validateWhereQuery","getTextFieldsToBeSearched","baseClass","ListControls","props","$","collectionConfig","enableColumns","t0","enableSort","t1","fields","undefined","handleSearchChange","collectionSlug","searchParams","titleField","i18n","t","breakpoints","t2","s","smallBreak","search","setSearch","t3","label","name","searchLabel","t4","admin","listSearchableFields","searchLabelTranslated","hasWhereParam","Boolean","where","shouldInitializeWhereOpened","visibleDrawer","setVisibleDrawer","t5","current","t6","t7","t8","length","reduce","placeholderText","field","i","t9","search_0","t10","_jsx","className","icon","onClick","pillStyle","children","t11","t12","t13","height","id","slug","t14","_jsxs","fieldName","handleChange","initialParams","setValue","value","Fragment","collection","collectionPluralLabel","labels","plural","String"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ClientField, Where } from 'payload'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useRef, useState } from 'react'\nimport AnimateHeightImport from 'react-animate-height'\n\nconst AnimateHeight = (AnimateHeightImport.default ||\n AnimateHeightImport) as typeof AnimateHeightImport.default\n\nimport { useUseTitleField } from '../../hooks/useUseAsTitle.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { SearchIcon } from '../../icons/Search/index.js'\nimport { useListInfo } from '../../providers/ListInfo/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { DeleteMany } from '../DeleteMany/index.js'\nimport { EditMany } from '../EditMany/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { PublishMany } from '../PublishMany/index.js'\nimport { SearchFilter } from '../SearchFilter/index.js'\nimport { UnpublishMany } from '../UnpublishMany/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport validateWhereQuery from '../WhereBuilder/validateWhereQuery.js'\nimport { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js'\nimport './index.scss'\n\nconst baseClass = 'list-controls'\n\nexport type ListControlsProps = {\n readonly collectionConfig: ClientCollectionConfig\n readonly enableColumns?: boolean\n readonly enableSort?: boolean\n readonly fields: ClientField[]\n readonly handleSearchChange?: (search: string) => void\n readonly handleSortChange?: (sort: string) => void\n readonly handleWhereChange?: (where: Where) => void\n}\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const { collectionConfig, enableColumns = true, enableSort = false, fields } = props\n\n const { handleSearchChange } = useListQuery()\n const { collectionSlug } = useListInfo()\n const { searchParams } = useSearchParams()\n const titleField = useUseTitleField(collectionConfig, fields)\n const { i18n, t } = useTranslation()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n const [search, setSearch] = useState(\n typeof searchParams?.search === 'string' ? searchParams?.search : '',\n )\n\n const searchLabel =\n (titleField &&\n getTranslation(\n 'label' in titleField && typeof titleField.label === 'string'\n ? titleField.label\n : 'name' in titleField\n ? titleField.name\n : null,\n i18n,\n )) ??\n 'ID'\n\n const listSearchableFields = getTextFieldsToBeSearched(\n collectionConfig.admin.listSearchableFields,\n fields,\n )\n\n const searchLabelTranslated = useRef(\n t('general:searchBy', { label: getTranslation(searchLabel, i18n) }),\n )\n\n const hasWhereParam = useRef(Boolean(searchParams?.where))\n\n const shouldInitializeWhereOpened = validateWhereQuery(searchParams?.where)\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n shouldInitializeWhereOpened ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !searchParams?.where) {\n setVisibleDrawer(undefined)\n hasWhereParam.current = false\n } else if (searchParams?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, searchParams?.where])\n\n useEffect(() => {\n if (listSearchableFields?.length > 0) {\n searchLabelTranslated.current = listSearchableFields.reduce(\n (placeholderText: string, field, i: number) => {\n const label =\n 'label' in field && field.label ? field.label : 'name' in field ? field.name : null\n\n if (i === 0) {\n return `${t('general:searchBy', {\n label: getTranslation(label, i18n),\n })}`\n }\n\n if (i === listSearchableFields.length - 1) {\n return `${placeholderText} ${t('general:or')} ${getTranslation(label, i18n)}`\n }\n\n return `${placeholderText}, ${getTranslation(label, i18n)}`\n },\n '',\n )\n } else {\n searchLabelTranslated.current = t('general:searchBy', {\n label: getTranslation(searchLabel, i18n),\n })\n }\n }, [t, listSearchableFields, i18n, searchLabel])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <SearchIcon />\n <SearchFilter\n fieldName={'name' in titleField ? titleField?.name : null}\n handleChange={(search) => {\n return void handleSearchChange(search)\n }}\n initialParams={searchParams}\n key={collectionSlug}\n label={searchLabelTranslated.current}\n setValue={setSearch}\n value={search}\n />\n <div className={`${baseClass}__buttons`}>\n <div className={`${baseClass}__buttons-wrap`}>\n {!smallBreak && (\n <React.Fragment>\n <EditMany collection={collectionConfig} fields={fields} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n <DeleteMany collection={collectionConfig} />\n </React.Fragment>\n )}\n {enableColumns && (\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={visibleDrawer === 'columns'}\n className={`${baseClass}__toggle-columns ${\n visibleDrawer === 'columns' ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon />}\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined)\n }\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n )}\n <Pill\n aria-controls={`${baseClass}-where`}\n aria-expanded={visibleDrawer === 'where'}\n className={`${baseClass}__toggle-where ${\n visibleDrawer === 'where' ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:filters')}\n </Pill>\n {enableSort && (\n <Pill\n aria-controls={`${baseClass}-sort`}\n aria-expanded={visibleDrawer === 'sort'}\n className={`${baseClass}__toggle-sort`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:sort')}\n </Pill>\n )}\n </div>\n </div>\n </div>\n {enableColumns && (\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={visibleDrawer === 'columns' ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </AnimateHeight>\n )}\n <AnimateHeight\n className={`${baseClass}__where`}\n height={visibleDrawer === 'where' ? 'auto' : 0}\n id={`${baseClass}-where`}\n >\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={fields}\n key={String(hasWhereParam.current && !searchParams?.where)}\n />\n </AnimateHeight>\n {enableSort && (\n <AnimateHeight\n className={`${baseClass}__sort`}\n height={visibleDrawer === 'sort' ? 'auto' : 0}\n id={`${baseClass}-sort`}\n >\n <p>Sort Complex</p>\n {/* <SortComplex\n collection={collection}\n handleChange={handleSortChange}\n modifySearchQuery={modifySearchQuery}\n /> */}\n </AnimateHeight>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useWindowInfo","getTranslation","React","Fragment","useEffect","useRef","useState","AnimateHeightImport","AnimateHeight","default","useUseTitleField","ChevronIcon","SearchIcon","useListInfo","useListQuery","useSearchParams","useTranslation","ColumnSelector","DeleteMany","EditMany","Pill","PublishMany","SearchFilter","UnpublishMany","WhereBuilder","validateWhereQuery","getTextFieldsToBeSearched","baseClass","ListControls","props","collectionConfig","enableColumns","enableSort","fields","handleSearchChange","beforeActions","collectionSlug","disableBulkDelete","disableBulkEdit","searchParams","titleField","i18n","t","breakpoints","s","smallBreak","search","setSearch","searchLabel","label","name","listSearchableFields","admin","searchLabelTranslated","hasWhereParam","Boolean","where","shouldInitializeWhereOpened","visibleDrawer","setVisibleDrawer","undefined","current","length","reduce","placeholderText","field","i","_jsxs","className","_jsx","fieldName","handleChange","initialParams","setValue","value","collection","icon","onClick","pillStyle","height","id","slug","collectionPluralLabel","labels","plural","String"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ClientField, Where } from 'payload'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect, useRef, useState } from 'react'\nimport AnimateHeightImport from 'react-animate-height'\n\nconst AnimateHeight = (AnimateHeightImport.default ||\n AnimateHeightImport) as typeof AnimateHeightImport.default\n\nimport { useUseTitleField } from '../../hooks/useUseAsTitle.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { SearchIcon } from '../../icons/Search/index.js'\nimport { useListInfo } from '../../providers/ListInfo/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { DeleteMany } from '../DeleteMany/index.js'\nimport { EditMany } from '../EditMany/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { PublishMany } from '../PublishMany/index.js'\nimport { SearchFilter } from '../SearchFilter/index.js'\nimport { UnpublishMany } from '../UnpublishMany/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport validateWhereQuery from '../WhereBuilder/validateWhereQuery.js'\nimport { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js'\nimport './index.scss'\n\nconst baseClass = 'list-controls'\n\nexport type ListControlsProps = {\n readonly collectionConfig: ClientCollectionConfig\n readonly enableColumns?: boolean\n readonly enableSort?: boolean\n readonly fields: ClientField[]\n readonly handleSearchChange?: (search: string) => void\n readonly handleSortChange?: (sort: string) => void\n readonly handleWhereChange?: (where: Where) => void\n}\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const { collectionConfig, enableColumns = true, enableSort = false, fields } = props\n\n const { handleSearchChange } = useListQuery()\n const { beforeActions, collectionSlug, disableBulkDelete, disableBulkEdit } = useListInfo()\n const { searchParams } = useSearchParams()\n const titleField = useUseTitleField(collectionConfig, fields)\n const { i18n, t } = useTranslation()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n const [search, setSearch] = useState(\n typeof searchParams?.search === 'string' ? searchParams?.search : '',\n )\n\n const searchLabel =\n (titleField &&\n getTranslation(\n 'label' in titleField && typeof titleField.label === 'string'\n ? titleField.label\n : 'name' in titleField\n ? titleField.name\n : null,\n i18n,\n )) ??\n 'ID'\n\n const listSearchableFields = getTextFieldsToBeSearched(\n collectionConfig.admin.listSearchableFields,\n fields,\n )\n\n const searchLabelTranslated = useRef(\n t('general:searchBy', { label: getTranslation(searchLabel, i18n) }),\n )\n\n const hasWhereParam = useRef(Boolean(searchParams?.where))\n\n const shouldInitializeWhereOpened = validateWhereQuery(searchParams?.where)\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n shouldInitializeWhereOpened ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !searchParams?.where) {\n setVisibleDrawer(undefined)\n hasWhereParam.current = false\n } else if (searchParams?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, searchParams?.where])\n\n useEffect(() => {\n if (listSearchableFields?.length > 0) {\n searchLabelTranslated.current = listSearchableFields.reduce(\n (placeholderText: string, field, i: number) => {\n const label =\n 'label' in field && field.label ? field.label : 'name' in field ? field.name : null\n\n if (i === 0) {\n return `${t('general:searchBy', {\n label: getTranslation(label, i18n),\n })}`\n }\n\n if (i === listSearchableFields.length - 1) {\n return `${placeholderText} ${t('general:or')} ${getTranslation(label, i18n)}`\n }\n\n return `${placeholderText}, ${getTranslation(label, i18n)}`\n },\n '',\n )\n } else {\n searchLabelTranslated.current = t('general:searchBy', {\n label: getTranslation(searchLabel, i18n),\n })\n }\n }, [t, listSearchableFields, i18n, searchLabel])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <SearchIcon />\n <SearchFilter\n fieldName={'name' in titleField ? titleField?.name : null}\n handleChange={(search) => {\n return void handleSearchChange(search)\n }}\n initialParams={searchParams}\n key={collectionSlug}\n label={searchLabelTranslated.current}\n setValue={setSearch}\n value={search}\n />\n <div className={`${baseClass}__buttons`}>\n <div className={`${baseClass}__buttons-wrap`}>\n {!smallBreak && (\n <React.Fragment>\n {beforeActions && beforeActions}\n {!disableBulkEdit && (\n <Fragment>\n <EditMany collection={collectionConfig} fields={fields} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n </Fragment>\n )}\n {!disableBulkDelete && <DeleteMany collection={collectionConfig} />}\n </React.Fragment>\n )}\n {enableColumns && (\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={visibleDrawer === 'columns'}\n className={`${baseClass}__toggle-columns ${\n visibleDrawer === 'columns' ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon />}\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined)\n }\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n )}\n <Pill\n aria-controls={`${baseClass}-where`}\n aria-expanded={visibleDrawer === 'where'}\n className={`${baseClass}__toggle-where ${\n visibleDrawer === 'where' ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:filters')}\n </Pill>\n {enableSort && (\n <Pill\n aria-controls={`${baseClass}-sort`}\n aria-expanded={visibleDrawer === 'sort'}\n className={`${baseClass}__toggle-sort`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:sort')}\n </Pill>\n )}\n </div>\n </div>\n </div>\n {enableColumns && (\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={visibleDrawer === 'columns' ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </AnimateHeight>\n )}\n <AnimateHeight\n className={`${baseClass}__where`}\n height={visibleDrawer === 'where' ? 'auto' : 0}\n id={`${baseClass}-where`}\n >\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={fields}\n key={String(hasWhereParam.current && !searchParams?.where)}\n />\n </AnimateHeight>\n {enableSort && (\n <AnimateHeight\n className={`${baseClass}__sort`}\n height={visibleDrawer === 'sort' ? 'auto' : 0}\n id={`${baseClass}-sort`}\n >\n <p>Sort Complex</p>\n {/* <SortComplex\n collection={collection}\n handleChange={handleSortChange}\n modifySearchQuery={modifySearchQuery}\n /> */}\n </AnimateHeight>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAuD,MAAM,OAAO,CAAA;AAE3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAoCjD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAoRvD,CAAA"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAuD,MAAM,OAAO,CAAA;AAE3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAqCjD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA4RvD,CAAA"}
@@ -5,6 +5,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { useModal } from '@faceless-ui/modal';
6
6
  import { getTranslation } from '@payloadcms/translations';
7
7
  import React, { useCallback, useEffect, useReducer, useState } from 'react';
8
+ import { SelectMany } from '../../elements/SelectMany/index.js';
8
9
  import { FieldLabel } from '../../fields/FieldLabel/index.js';
9
10
  import { usePayloadAPI } from '../../hooks/usePayloadAPI.js';
10
11
  import { XIcon } from '../../icons/X/index.js';
@@ -37,12 +38,14 @@ const hoistQueryParamsToAnd = (where, queryParams) => {
37
38
  return where;
38
39
  };
39
40
  export const ListDrawerContent = t0 => {
40
- const $ = _c(95);
41
+ const $ = _c(97);
41
42
  const {
42
43
  collectionSlugs,
43
44
  customHeader,
44
45
  drawerSlug,
46
+ enableRowSelections,
45
47
  filterOptions,
48
+ onBulkSelect,
46
49
  onSelect,
47
50
  selectedCollection
48
51
  } = t0;
@@ -385,35 +388,35 @@ export const ListDrawerContent = t0 => {
385
388
  t21 = $[63];
386
389
  }
387
390
  let t22;
388
- if ($[64] !== t21 || $[65] !== hasCreatePermission || $[66] !== t || $[67] !== DocumentDrawerToggler || $[68] !== closeModal || $[69] !== drawerSlug || $[70] !== selectedCollectionConfig || $[71] !== moreThanOneAvailableCollection || $[72] !== i18n || $[73] !== enabledCollectionConfigs || $[74] !== selectedOption || $[75] !== limit || $[76] !== onSelect || $[77] !== List || $[78] !== onCreateNew || $[79] !== DocumentDrawer || $[80] !== preferenceKey || $[81] !== data || $[82] !== sort) {
391
+ if ($[64] !== t21 || $[65] !== hasCreatePermission || $[66] !== t || $[67] !== DocumentDrawerToggler || $[68] !== closeModal || $[69] !== drawerSlug || $[70] !== selectedCollectionConfig || $[71] !== moreThanOneAvailableCollection || $[72] !== i18n || $[73] !== enabledCollectionConfigs || $[74] !== selectedOption || $[75] !== enableRowSelections || $[76] !== onBulkSelect || $[77] !== limit || $[78] !== onSelect || $[79] !== List || $[80] !== onCreateNew || $[81] !== DocumentDrawer || $[82] !== preferenceKey || $[83] !== data || $[84] !== sort) {
389
392
  let t23;
390
- if ($[84] !== hasCreatePermission || $[85] !== t || $[86] !== DocumentDrawerToggler) {
393
+ if ($[86] !== hasCreatePermission || $[87] !== t || $[88] !== DocumentDrawerToggler) {
391
394
  t23 = hasCreatePermission && _jsx(DocumentDrawerToggler, {
392
395
  className: `${baseClass}__create-new-button`,
393
396
  children: _jsx(Pill, {
394
397
  children: t("general:createNew")
395
398
  })
396
399
  });
397
- $[84] = hasCreatePermission;
398
- $[85] = t;
399
- $[86] = DocumentDrawerToggler;
400
- $[87] = t23;
400
+ $[86] = hasCreatePermission;
401
+ $[87] = t;
402
+ $[88] = DocumentDrawerToggler;
403
+ $[89] = t23;
401
404
  } else {
402
- t23 = $[87];
405
+ t23 = $[89];
403
406
  }
404
407
  let t24;
405
- if ($[88] !== closeModal || $[89] !== drawerSlug) {
408
+ if ($[90] !== closeModal || $[91] !== drawerSlug) {
406
409
  t24 = () => {
407
410
  closeModal(drawerSlug);
408
411
  };
409
- $[88] = closeModal;
410
- $[89] = drawerSlug;
411
- $[90] = t24;
412
+ $[90] = closeModal;
413
+ $[91] = drawerSlug;
414
+ $[92] = t24;
412
415
  } else {
413
- t24 = $[90];
416
+ t24 = $[92];
414
417
  }
415
418
  let t25;
416
- if ($[91] !== selectedCollectionConfig) {
419
+ if ($[93] !== selectedCollectionConfig) {
417
420
  t25 = (selectedCollectionConfig?.admin?.description || selectedCollectionConfig?.admin?.components?.Description) && _jsx("div", {
418
421
  className: `${baseClass}__sub-header`,
419
422
  children: _jsx(ViewDescription, {
@@ -421,13 +424,13 @@ export const ListDrawerContent = t0 => {
421
424
  description: selectedCollectionConfig.admin?.description
422
425
  })
423
426
  });
424
- $[91] = selectedCollectionConfig;
425
- $[92] = t25;
427
+ $[93] = selectedCollectionConfig;
428
+ $[94] = t25;
426
429
  } else {
427
- t25 = $[92];
430
+ t25 = $[94];
428
431
  }
429
432
  let t26;
430
- if ($[93] !== onSelect) {
433
+ if ($[95] !== onSelect) {
431
434
  t26 = t27 => {
432
435
  const {
433
436
  collectionSlug: rowColl,
@@ -440,10 +443,10 @@ export const ListDrawerContent = t0 => {
440
443
  });
441
444
  }
442
445
  };
443
- $[93] = onSelect;
444
- $[94] = t26;
446
+ $[95] = onSelect;
447
+ $[96] = t26;
445
448
  } else {
446
- t26 = $[94];
449
+ t26 = $[96];
447
450
  }
448
451
  t22 = _jsx(ListInfoProvider, {
449
452
  Header: _jsxs("header", {
@@ -479,8 +482,13 @@ export const ListDrawerContent = t0 => {
479
482
  })]
480
483
  })]
481
484
  }),
485
+ beforeActions: enableRowSelections ? [_jsx(SelectMany, {
486
+ onClick: onBulkSelect
487
+ }, "select-many")] : undefined,
482
488
  collectionConfig: selectedCollectionConfig,
483
489
  collectionSlug: selectedCollectionConfig.slug,
490
+ disableBulkDelete: true,
491
+ disableBulkEdit: true,
484
492
  hasCreatePermission,
485
493
  newDocumentURL: null,
486
494
  children: _jsx(ListQueryProvider, {
@@ -501,6 +509,7 @@ export const ListDrawerContent = t0 => {
501
509
  onClick: t26
502
510
  }],
503
511
  collectionSlug: selectedCollectionConfig.slug,
512
+ enableRowSelections,
504
513
  preferenceKey,
505
514
  children: [_jsx(RenderComponent, {
506
515
  mappedComponent: List
@@ -521,17 +530,19 @@ export const ListDrawerContent = t0 => {
521
530
  $[72] = i18n;
522
531
  $[73] = enabledCollectionConfigs;
523
532
  $[74] = selectedOption;
524
- $[75] = limit;
525
- $[76] = onSelect;
526
- $[77] = List;
527
- $[78] = onCreateNew;
528
- $[79] = DocumentDrawer;
529
- $[80] = preferenceKey;
530
- $[81] = data;
531
- $[82] = sort;
532
- $[83] = t22;
533
+ $[75] = enableRowSelections;
534
+ $[76] = onBulkSelect;
535
+ $[77] = limit;
536
+ $[78] = onSelect;
537
+ $[79] = List;
538
+ $[80] = onCreateNew;
539
+ $[81] = DocumentDrawer;
540
+ $[82] = preferenceKey;
541
+ $[83] = data;
542
+ $[84] = sort;
543
+ $[85] = t22;
533
544
  } else {
534
- t22 = $[83];
545
+ t22 = $[85];
535
546
  }
536
547
  return t22;
537
548
  };