@payloadcms/ui 3.15.1 → 3.15.2-canary.595a742

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 (58) hide show
  1. package/dist/elements/Autosave/index.d.ts.map +1 -1
  2. package/dist/elements/Autosave/index.js +3 -1
  3. package/dist/elements/Autosave/index.js.map +1 -1
  4. package/dist/elements/FileDetails/FileMeta/index.d.ts +0 -2
  5. package/dist/elements/FileDetails/FileMeta/index.d.ts.map +1 -1
  6. package/dist/elements/FileDetails/FileMeta/index.js +22 -86
  7. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  8. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +0 -1
  9. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
  10. package/dist/elements/FileDetails/StaticFileDetails/index.js +0 -4
  11. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  12. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  13. package/dist/elements/PublishButton/index.js +272 -114
  14. package/dist/elements/PublishButton/index.js.map +1 -1
  15. package/dist/elements/RelationshipTable/index.js +1 -1
  16. package/dist/elements/RelationshipTable/index.js.map +1 -1
  17. package/dist/elements/Status/index.d.ts.map +1 -1
  18. package/dist/elements/Status/index.js +118 -188
  19. package/dist/elements/Status/index.js.map +1 -1
  20. package/dist/elements/TableColumns/buildColumnState.d.ts +3 -4
  21. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  22. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  23. package/dist/elements/TableColumns/getInitialColumns.d.ts +2 -3
  24. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -1
  25. package/dist/elements/TableColumns/getInitialColumns.js.map +1 -1
  26. package/dist/elements/TableColumns/index.d.ts +1 -4
  27. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  28. package/dist/elements/TableColumns/index.js.map +1 -1
  29. package/dist/exports/client/index.d.ts +2 -1
  30. package/dist/exports/client/index.d.ts.map +1 -1
  31. package/dist/exports/client/index.js +10 -10
  32. package/dist/exports/client/index.js.map +3 -3
  33. package/dist/exports/shared/index.js +1 -1
  34. package/dist/exports/shared/index.js.map +2 -2
  35. package/dist/providers/ListQuery/index.d.ts +0 -2
  36. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  37. package/dist/providers/ListQuery/index.js.map +1 -1
  38. package/dist/providers/Locale/index.d.ts +1 -0
  39. package/dist/providers/Locale/index.d.ts.map +1 -1
  40. package/dist/providers/Locale/index.js +5 -4
  41. package/dist/providers/Locale/index.js.map +1 -1
  42. package/dist/providers/Root/index.d.ts +2 -1
  43. package/dist/providers/Root/index.d.ts.map +1 -1
  44. package/dist/providers/Root/index.js +2 -0
  45. package/dist/providers/Root/index.js.map +1 -1
  46. package/dist/utilities/buildTableState.d.ts +1 -2
  47. package/dist/utilities/buildTableState.d.ts.map +1 -1
  48. package/dist/utilities/buildTableState.js.map +1 -1
  49. package/dist/utilities/renderTable.d.ts +3 -4
  50. package/dist/utilities/renderTable.d.ts.map +1 -1
  51. package/dist/utilities/renderTable.js.map +1 -1
  52. package/dist/views/List/index.d.ts +1 -1
  53. package/dist/views/List/index.d.ts.map +1 -1
  54. package/dist/views/List/index.js.map +1 -1
  55. package/dist/views/List/types.d.ts +0 -6
  56. package/dist/views/List/types.d.ts.map +1 -1
  57. package/dist/views/List/types.js.map +1 -1
  58. package/package.json +4 -4
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
 
3
+ import { c as _c } from "react/compiler-runtime";
3
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
5
  import { useModal } from '@faceless-ui/modal';
5
6
  import * as qs from 'qs-esm';
@@ -15,9 +16,11 @@ import { useOperation } from '../../providers/Operation/index.js';
15
16
  import { useTranslation } from '../../providers/Translation/index.js';
16
17
  import { PopupList } from '../Popup/index.js';
17
18
  import { ScheduleDrawer } from './ScheduleDrawer/index.js';
18
- export const PublishButton = ({
19
- label: labelProp
20
- }) => {
19
+ export const PublishButton = t0 => {
20
+ const $ = _c(60);
21
+ const {
22
+ label: labelProp
23
+ } = t0;
21
24
  const {
22
25
  id,
23
26
  collectionSlug,
@@ -26,6 +29,7 @@ export const PublishButton = ({
26
29
  hasPublishedDoc,
27
30
  hasPublishPermission,
28
31
  setHasPublishedDoc,
32
+ setMostRecentVersionIsAutosaved,
29
33
  setUnpublishedVersionCount,
30
34
  unpublishedVersionCount,
31
35
  uploadStatus
@@ -48,136 +52,290 @@ export const PublishButton = ({
48
52
  const drawerSlug = `schedule-publish-${id}`;
49
53
  const {
50
54
  localization,
51
- routes: {
52
- api
53
- },
55
+ routes: t1,
54
56
  serverURL
55
57
  } = config;
58
+ const {
59
+ api
60
+ } = t1;
56
61
  const {
57
62
  i18n,
58
63
  t
59
64
  } = useTranslation();
60
- const label = labelProp || t('version:publishChanges');
61
- const entityConfig = React.useMemo(() => {
65
+ let t2;
66
+ if ($[0] !== labelProp || $[1] !== t) {
67
+ t2 = labelProp || t("version:publishChanges");
68
+ $[0] = labelProp;
69
+ $[1] = t;
70
+ $[2] = t2;
71
+ } else {
72
+ t2 = $[2];
73
+ }
74
+ const label = t2;
75
+ let t3;
76
+ bb0: {
62
77
  if (collectionSlug) {
63
- return config.collections.find(({
64
- slug
65
- }) => slug === collectionSlug);
78
+ let t4;
79
+ if ($[3] !== collectionSlug || $[4] !== config.collections) {
80
+ let t5;
81
+ if ($[6] !== collectionSlug) {
82
+ t5 = t6 => {
83
+ const {
84
+ slug
85
+ } = t6;
86
+ return slug === collectionSlug;
87
+ };
88
+ $[6] = collectionSlug;
89
+ $[7] = t5;
90
+ } else {
91
+ t5 = $[7];
92
+ }
93
+ t4 = config.collections.find(t5);
94
+ $[3] = collectionSlug;
95
+ $[4] = config.collections;
96
+ $[5] = t4;
97
+ } else {
98
+ t4 = $[5];
99
+ }
100
+ t3 = t4;
101
+ break bb0;
66
102
  }
67
103
  if (globalSlug) {
68
- return config.globals.find(({
69
- slug: slug_0
70
- }) => slug_0 === globalSlug);
104
+ let t4;
105
+ if ($[8] !== config.globals || $[9] !== globalSlug) {
106
+ let t5;
107
+ if ($[11] !== globalSlug) {
108
+ t5 = t6 => {
109
+ const {
110
+ slug: slug_0
111
+ } = t6;
112
+ return slug_0 === globalSlug;
113
+ };
114
+ $[11] = globalSlug;
115
+ $[12] = t5;
116
+ } else {
117
+ t5 = $[12];
118
+ }
119
+ t4 = config.globals.find(t5);
120
+ $[8] = config.globals;
121
+ $[9] = globalSlug;
122
+ $[10] = t4;
123
+ } else {
124
+ t4 = $[10];
125
+ }
126
+ t3 = t4;
127
+ break bb0;
71
128
  }
72
- }, [collectionSlug, globalSlug, config]);
73
- const scheduledPublishEnabled = typeof entityConfig?.versions?.drafts === 'object' && entityConfig?.versions?.drafts.schedulePublish;
129
+ t3 = undefined;
130
+ }
131
+ const entityConfig = t3;
74
132
  const hasNewerVersions = unpublishedVersionCount > 0;
75
- const canPublish = hasPublishPermission && (modified || hasNewerVersions || !hasPublishedDoc) && uploadStatus !== 'uploading';
133
+ const canPublish = hasPublishPermission && (modified || hasNewerVersions || !hasPublishedDoc) && uploadStatus !== "uploading";
134
+ const scheduledPublishEnabled = typeof entityConfig?.versions?.drafts === "object" && entityConfig?.versions?.drafts.schedulePublish;
135
+ const canSchedulePublish = Boolean(scheduledPublishEnabled && hasPublishPermission && (globalSlug || collectionSlug && id));
76
136
  const operation = useOperation();
77
- const disabled = operation === 'update' && !modified;
78
- const saveDraft = useCallback(async () => {
79
- if (disabled) {
80
- return;
81
- }
82
- const search = `?locale=${localeCode}&depth=0&fallback-locale=null&draft=true`;
83
- let action;
84
- let method = 'POST';
85
- if (collectionSlug) {
86
- action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}${search}`;
87
- if (id) {
88
- method = 'PATCH';
137
+ const disabled = operation === "update" && !modified;
138
+ let t4;
139
+ if ($[13] !== api || $[14] !== collectionSlug || $[15] !== disabled || $[16] !== globalSlug || $[17] !== id || $[18] !== localeCode || $[19] !== serverURL || $[20] !== submit) {
140
+ t4 = async () => {
141
+ if (disabled) {
142
+ return;
89
143
  }
90
- }
91
- if (globalSlug) {
92
- action = `${serverURL}${api}/globals/${globalSlug}${search}`;
93
- }
94
- await submit({
95
- action,
96
- method,
97
- overrides: {
98
- _status: 'draft'
99
- },
100
- skipValidation: true
101
- });
102
- }, [submit, collectionSlug, globalSlug, serverURL, api, localeCode, id, disabled]);
103
- useHotkey({
104
- cmdCtrlKey: true,
105
- editDepth,
106
- keyCodes: ['s']
107
- }, e => {
108
- e.preventDefault();
109
- e.stopPropagation();
110
- if (saveDraft && docConfig.versions?.drafts && docConfig.versions?.drafts?.autosave) {
111
- void saveDraft();
112
- }
113
- });
114
- const publish = useCallback(() => {
115
- if (uploadStatus === 'uploading') {
116
- return;
117
- }
118
- void submit({
119
- overrides: {
120
- _status: 'published'
144
+ const search = `?locale=${localeCode}&depth=0&fallback-locale=null&draft=true`;
145
+ let action;
146
+ let method = "POST";
147
+ if (collectionSlug) {
148
+ action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ""}${search}`;
149
+ if (id) {
150
+ method = "PATCH";
151
+ }
121
152
  }
122
- });
123
- setUnpublishedVersionCount(0);
124
- setHasPublishedDoc(true);
125
- }, [setHasPublishedDoc, submit, setUnpublishedVersionCount, uploadStatus]);
126
- const publishSpecificLocale = useCallback(locale => {
127
- if (uploadStatus === 'uploading') {
128
- return;
129
- }
130
- const params = qs.stringify({
131
- publishSpecificLocale: locale
132
- });
133
- const action_0 = `${serverURL}${api}${globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}/${id ? `${'/' + id}` : ''}`}${params ? '?' + params : ''}`;
134
- void submit({
135
- action: action_0,
136
- overrides: {
137
- _status: 'published'
153
+ if (globalSlug) {
154
+ action = `${serverURL}${api}/globals/${globalSlug}${search}`;
138
155
  }
139
- });
140
- setHasPublishedDoc(true);
141
- }, [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus]);
156
+ await submit({
157
+ action,
158
+ method,
159
+ overrides: {
160
+ _status: "draft"
161
+ },
162
+ skipValidation: true
163
+ });
164
+ };
165
+ $[13] = api;
166
+ $[14] = collectionSlug;
167
+ $[15] = disabled;
168
+ $[16] = globalSlug;
169
+ $[17] = id;
170
+ $[18] = localeCode;
171
+ $[19] = serverURL;
172
+ $[20] = submit;
173
+ $[21] = t4;
174
+ } else {
175
+ t4 = $[21];
176
+ }
177
+ const saveDraft = t4;
178
+ let t5;
179
+ if ($[22] === Symbol.for("react.memo_cache_sentinel")) {
180
+ t5 = ["s"];
181
+ $[22] = t5;
182
+ } else {
183
+ t5 = $[22];
184
+ }
185
+ let t6;
186
+ if ($[23] !== editDepth) {
187
+ t6 = {
188
+ cmdCtrlKey: true,
189
+ editDepth,
190
+ keyCodes: t5
191
+ };
192
+ $[23] = editDepth;
193
+ $[24] = t6;
194
+ } else {
195
+ t6 = $[24];
196
+ }
197
+ let t7;
198
+ if ($[25] !== docConfig || $[26] !== saveDraft) {
199
+ t7 = e => {
200
+ e.preventDefault();
201
+ e.stopPropagation();
202
+ if (saveDraft && docConfig.versions?.drafts && docConfig.versions?.drafts?.autosave) {
203
+ saveDraft();
204
+ }
205
+ };
206
+ $[25] = docConfig;
207
+ $[26] = saveDraft;
208
+ $[27] = t7;
209
+ } else {
210
+ t7 = $[27];
211
+ }
212
+ useHotkey(t6, t7);
213
+ let t8;
214
+ if ($[28] !== setHasPublishedDoc || $[29] !== setMostRecentVersionIsAutosaved || $[30] !== setUnpublishedVersionCount || $[31] !== submit || $[32] !== uploadStatus) {
215
+ t8 = () => {
216
+ if (uploadStatus === "uploading") {
217
+ return;
218
+ }
219
+ submit({
220
+ overrides: {
221
+ _status: "published"
222
+ }
223
+ });
224
+ setUnpublishedVersionCount(0);
225
+ setMostRecentVersionIsAutosaved(false);
226
+ setHasPublishedDoc(true);
227
+ };
228
+ $[28] = setHasPublishedDoc;
229
+ $[29] = setMostRecentVersionIsAutosaved;
230
+ $[30] = setUnpublishedVersionCount;
231
+ $[31] = submit;
232
+ $[32] = uploadStatus;
233
+ $[33] = t8;
234
+ } else {
235
+ t8 = $[33];
236
+ }
237
+ const publish = t8;
238
+ let t9;
239
+ if ($[34] !== api || $[35] !== collectionSlug || $[36] !== globalSlug || $[37] !== id || $[38] !== serverURL || $[39] !== setHasPublishedDoc || $[40] !== submit || $[41] !== uploadStatus) {
240
+ t9 = locale => {
241
+ if (uploadStatus === "uploading") {
242
+ return;
243
+ }
244
+ const params = qs.stringify({
245
+ publishSpecificLocale: locale
246
+ });
247
+ const action_0 = `${serverURL}${api}${globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}/${id ? `${"/" + id}` : ""}`}${params ? "?" + params : ""}`;
248
+ submit({
249
+ action: action_0,
250
+ overrides: {
251
+ _status: "published"
252
+ }
253
+ });
254
+ setHasPublishedDoc(true);
255
+ };
256
+ $[34] = api;
257
+ $[35] = collectionSlug;
258
+ $[36] = globalSlug;
259
+ $[37] = id;
260
+ $[38] = serverURL;
261
+ $[39] = setHasPublishedDoc;
262
+ $[40] = submit;
263
+ $[41] = uploadStatus;
264
+ $[42] = t9;
265
+ } else {
266
+ t9 = $[42];
267
+ }
268
+ const publishSpecificLocale = t9;
142
269
  if (!hasPublishPermission) {
143
270
  return null;
144
271
  }
145
- return /*#__PURE__*/_jsxs(React.Fragment, {
146
- children: [/*#__PURE__*/_jsx(FormSubmit, {
147
- buttonId: "action-save",
148
- disabled: !canPublish,
149
- onClick: publish,
150
- size: "medium",
151
- SubMenuPopupContent: localization || scheduledPublishEnabled ? ({
272
+ const t10 = !canPublish;
273
+ let t11;
274
+ if ($[43] !== canSchedulePublish || $[44] !== drawerSlug || $[45] !== i18n?.language || $[46] !== localeCode || $[47] !== localization || $[48] !== publishSpecificLocale || $[49] !== t || $[50] !== toggleModal) {
275
+ t11 = localization || canSchedulePublish ? t12 => {
276
+ const {
152
277
  close
153
- }) => {
154
- return /*#__PURE__*/_jsxs(React.Fragment, {
155
- children: [scheduledPublishEnabled && /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
156
- children: /*#__PURE__*/_jsx(PopupList.Button, {
157
- onClick: () => [toggleModal(drawerSlug), close()],
158
- children: t('version:schedulePublish')
159
- })
160
- }, "schedule-publish"), localization ? localization.locales.map(locale_0 => {
161
- const formattedLabel = typeof locale_0.label === 'string' ? locale_0.label : locale_0.label && locale_0.label[i18n?.language];
162
- const isActive = typeof locale_0 === 'string' ? locale_0 === localeCode : locale_0.code === localeCode;
163
- if (isActive) {
164
- return /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
165
- children: /*#__PURE__*/_jsx(PopupList.Button, {
166
- onClick: () => [publishSpecificLocale(locale_0.code), close()],
167
- children: t('version:publishIn', {
168
- locale: formattedLabel || locale_0.code
169
- })
278
+ } = t12;
279
+ return _jsxs(React.Fragment, {
280
+ children: [canSchedulePublish && _jsx(PopupList.ButtonGroup, {
281
+ children: _jsx(PopupList.Button, {
282
+ onClick: () => [toggleModal(drawerSlug), close()],
283
+ children: t("version:schedulePublish")
284
+ })
285
+ }, "schedule-publish"), localization ? localization.locales.map(locale_0 => {
286
+ const formattedLabel = typeof locale_0.label === "string" ? locale_0.label : locale_0.label && locale_0.label[i18n?.language];
287
+ const isActive = typeof locale_0 === "string" ? locale_0 === localeCode : locale_0.code === localeCode;
288
+ if (isActive) {
289
+ return _jsx(PopupList.ButtonGroup, {
290
+ children: _jsx(PopupList.Button, {
291
+ onClick: () => [publishSpecificLocale(locale_0.code), close()],
292
+ children: t("version:publishIn", {
293
+ locale: formattedLabel || locale_0.code
170
294
  })
171
- }, locale_0.code);
172
- }
173
- }) : null]
174
- });
175
- } : undefined,
176
- type: "button",
177
- children: label
178
- }), scheduledPublishEnabled && isModalOpen(drawerSlug) && /*#__PURE__*/_jsx(ScheduleDrawer, {
179
- slug: drawerSlug
180
- })]
181
- });
295
+ })
296
+ }, locale_0.code);
297
+ }
298
+ }) : null]
299
+ });
300
+ } : undefined;
301
+ $[43] = canSchedulePublish;
302
+ $[44] = drawerSlug;
303
+ $[45] = i18n?.language;
304
+ $[46] = localeCode;
305
+ $[47] = localization;
306
+ $[48] = publishSpecificLocale;
307
+ $[49] = t;
308
+ $[50] = toggleModal;
309
+ $[51] = t11;
310
+ } else {
311
+ t11 = $[51];
312
+ }
313
+ let t12;
314
+ if ($[52] !== canSchedulePublish || $[53] !== drawerSlug || $[54] !== isModalOpen || $[55] !== label || $[56] !== publish || $[57] !== t10 || $[58] !== t11) {
315
+ t12 = _jsxs(React.Fragment, {
316
+ children: [_jsx(FormSubmit, {
317
+ buttonId: "action-save",
318
+ disabled: t10,
319
+ onClick: publish,
320
+ size: "medium",
321
+ SubMenuPopupContent: t11,
322
+ type: "button",
323
+ children: label
324
+ }), canSchedulePublish && isModalOpen(drawerSlug) && _jsx(ScheduleDrawer, {
325
+ slug: drawerSlug
326
+ })]
327
+ });
328
+ $[52] = canSchedulePublish;
329
+ $[53] = drawerSlug;
330
+ $[54] = isModalOpen;
331
+ $[55] = label;
332
+ $[56] = publish;
333
+ $[57] = t10;
334
+ $[58] = t11;
335
+ $[59] = t12;
336
+ } else {
337
+ t12 = $[59];
338
+ }
339
+ return t12;
182
340
  };
183
341
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","qs","React","useCallback","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","PopupList","ScheduleDrawer","PublishButton","label","labelProp","id","collectionSlug","docConfig","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","submit","modified","editDepth","code","localeCode","isModalOpen","toggleModal","drawerSlug","localization","routes","api","serverURL","i18n","t","entityConfig","useMemo","collections","find","slug","globals","scheduledPublishEnabled","versions","drafts","schedulePublish","hasNewerVersions","canPublish","operation","disabled","saveDraft","search","action","method","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","autosave","publish","publishSpecificLocale","locale","params","stringify","_jsxs","Fragment","_jsx","buttonId","onClick","size","SubMenuPopupContent","close","ButtonGroup","Button","locales","map","formattedLabel","language","isActive","undefined","type"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { ScheduleDrawer } from './ScheduleDrawer/index.js'\n\nexport const PublishButton: React.FC<{ label?: string }> = ({ label: labelProp }) => {\n const {\n id,\n collectionSlug,\n docConfig,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config } = useConfig()\n const { submit } = useForm()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n const { code: localeCode } = useLocale()\n const { isModalOpen, toggleModal } = useModal()\n\n const drawerSlug = `schedule-publish-${id}`\n\n const {\n localization,\n routes: { api },\n serverURL,\n } = config\n\n const { i18n, t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return config.collections.find(({ slug }) => slug === collectionSlug)\n }\n\n if (globalSlug) {\n return config.globals.find(({ slug }) => slug === globalSlug)\n }\n }, [collectionSlug, globalSlug, config])\n\n const scheduledPublishEnabled =\n typeof entityConfig?.versions?.drafts === 'object' &&\n entityConfig?.versions?.drafts.schedulePublish\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const operation = useOperation()\n\n const disabled = operation === 'update' && !modified\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const search = `?locale=${localeCode}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}${search}`\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = `${serverURL}${api}/globals/${globalSlug}${search}`\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [submit, collectionSlug, globalSlug, serverURL, api, localeCode, id, disabled])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && docConfig.versions?.drafts && docConfig.versions?.drafts?.autosave) {\n void saveDraft()\n }\n })\n\n const publish = useCallback(() => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n void submit({\n overrides: {\n _status: 'published',\n },\n })\n\n setUnpublishedVersionCount(0)\n setHasPublishedDoc(true)\n }, [setHasPublishedDoc, submit, setUnpublishedVersionCount, uploadStatus])\n\n const publishSpecificLocale = useCallback(\n (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify({\n publishSpecificLocale: locale,\n })\n\n const action = `${serverURL}${api}${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}/${id ? `${'/' + id}` : ''}`\n }${params ? '?' + params : ''}`\n\n void submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n setHasPublishedDoc(true)\n },\n [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus],\n )\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n onClick={publish}\n size=\"medium\"\n SubMenuPopupContent={\n localization || scheduledPublishEnabled\n ? ({ close }) => {\n return (\n <React.Fragment>\n {scheduledPublishEnabled && (\n <PopupList.ButtonGroup key=\"schedule-publish\">\n <PopupList.Button onClick={() => [toggleModal(drawerSlug), close()]}>\n {t('version:schedulePublish')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n {localization\n ? localization.locales.map((locale) => {\n const formattedLabel =\n typeof locale.label === 'string'\n ? locale.label\n : locale.label && locale.label[i18n?.language]\n\n const isActive =\n typeof locale === 'string'\n ? locale === localeCode\n : locale.code === localeCode\n\n if (isActive) {\n return (\n <PopupList.ButtonGroup key={locale.code}>\n <PopupList.Button\n onClick={() => [publishSpecificLocale(locale.code), close()]}\n >\n {t('version:publishIn', {\n locale: formattedLabel || locale.code,\n })}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n }\n })\n : null}\n </React.Fragment>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {label}\n </FormSubmit>\n {scheduledPublishEnabled && isModalOpen(drawerSlug) && <ScheduleDrawer slug={drawerSlug} />}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","qs","React","useCallback","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","PopupList","ScheduleDrawer","PublishButton","t0","$","label","labelProp","id","collectionSlug","docConfig","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","submit","modified","editDepth","code","localeCode","isModalOpen","toggleModal","drawerSlug","localization","routes","t1","serverURL","api","i18n","t","t2","t3","bb0","t4","collections","t5","t6","slug","find","globals","slug_0","undefined","entityConfig","hasNewerVersions","canPublish","scheduledPublishEnabled","versions","drafts","schedulePublish","canSchedulePublish","Boolean","operation","disabled","search","action","method","overrides","_status","skipValidation","saveDraft","Symbol","for","cmdCtrlKey","keyCodes","t7","e","preventDefault","stopPropagation","autosave","t8","publish","t9","locale","params","stringify","publishSpecificLocale","action_0","t10","t11","language","t12","close","_jsxs","Fragment","children","_jsx","ButtonGroup","Button","onClick","locales","map","locale_0","formattedLabel","isActive","buttonId","size","SubMenuPopupContent","type"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { ScheduleDrawer } from './ScheduleDrawer/index.js'\n\nexport const PublishButton: React.FC<{ label?: string }> = ({ label: labelProp }) => {\n const {\n id,\n collectionSlug,\n docConfig,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config } = useConfig()\n const { submit } = useForm()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n const { code: localeCode } = useLocale()\n const { isModalOpen, toggleModal } = useModal()\n\n const drawerSlug = `schedule-publish-${id}`\n\n const {\n localization,\n routes: { api },\n serverURL,\n } = config\n\n const { i18n, t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return config.collections.find(({ slug }) => slug === collectionSlug)\n }\n\n if (globalSlug) {\n return config.globals.find(({ slug }) => slug === globalSlug)\n }\n }, [collectionSlug, globalSlug, config])\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const scheduledPublishEnabled =\n typeof entityConfig?.versions?.drafts === 'object' &&\n entityConfig?.versions?.drafts.schedulePublish\n\n const canSchedulePublish = Boolean(\n scheduledPublishEnabled && hasPublishPermission && (globalSlug || (collectionSlug && id)),\n )\n\n const operation = useOperation()\n\n const disabled = operation === 'update' && !modified\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const search = `?locale=${localeCode}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}${search}`\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = `${serverURL}${api}/globals/${globalSlug}${search}`\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [submit, collectionSlug, globalSlug, serverURL, api, localeCode, id, disabled])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && docConfig.versions?.drafts && docConfig.versions?.drafts?.autosave) {\n void saveDraft()\n }\n })\n\n const publish = useCallback(() => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n void submit({\n overrides: {\n _status: 'published',\n },\n })\n\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }, [\n setHasPublishedDoc,\n submit,\n setUnpublishedVersionCount,\n uploadStatus,\n setMostRecentVersionIsAutosaved,\n ])\n\n const publishSpecificLocale = useCallback(\n (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify({\n publishSpecificLocale: locale,\n })\n\n const action = `${serverURL}${api}${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}/${id ? `${'/' + id}` : ''}`\n }${params ? '?' + params : ''}`\n\n void submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n setHasPublishedDoc(true)\n },\n [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus],\n )\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n onClick={publish}\n size=\"medium\"\n SubMenuPopupContent={\n localization || canSchedulePublish\n ? ({ close }) => {\n return (\n <React.Fragment>\n {canSchedulePublish && (\n <PopupList.ButtonGroup key=\"schedule-publish\">\n <PopupList.Button onClick={() => [toggleModal(drawerSlug), close()]}>\n {t('version:schedulePublish')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n {localization\n ? localization.locales.map((locale) => {\n const formattedLabel =\n typeof locale.label === 'string'\n ? locale.label\n : locale.label && locale.label[i18n?.language]\n\n const isActive =\n typeof locale === 'string'\n ? locale === localeCode\n : locale.code === localeCode\n\n if (isActive) {\n return (\n <PopupList.ButtonGroup key={locale.code}>\n <PopupList.Button\n onClick={() => [publishSpecificLocale(locale.code), close()]}\n >\n {t('version:publishIn', {\n locale: formattedLabel || locale.code,\n })}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n }\n })\n : null}\n </React.Fragment>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {label}\n </FormSubmit>\n {canSchedulePublish && isModalOpen(drawerSlug) && <ScheduleDrawer slug={drawerSlug} />}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -84,7 +84,7 @@ export const RelationshipTable = props => {
84
84
  if (filterOptions) {
85
85
  newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions);
86
86
  }
87
- // map columns from string[] to ColumnPreferences
87
+ // map columns from string[] to ListPreferences['columns']
88
88
  const defaultColumns = field.admin.defaultColumns ? field.admin.defaultColumns.map(accessor => ({
89
89
  accessor,
90
90
  active: true
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","React","Fragment","useCallback","useState","Button","Pill","useIgnoredEffect","ChevronIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","useTranslation","hoistQueryParamsToAnd","AnimateHeight","ColumnSelector","useDocumentDrawer","RelationshipProvider","TableColumnsProvider","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","disableTable","field","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","relationTo","Table","setTable","getEntityConfig","permissions","docs","Array","isArray","reduce","acc","doc","id","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","collectionConfig","collectionSlug","isLoadingTable","setIsLoadingTable","data","setData","columnState","setColumnState","getTableState","renderTable","newQuery","limit","String","defaultLimit","admin","pagination","sort","defaultSort","where","defaultColumns","map","accessor","active","undefined","newData","state","newColumnState","NewTable","columns","enableRowSelections","renderRowTypes","tableAppearance","DocumentDrawer","DocumentDrawerToggler","closeDrawer","openDrawer","onDrawerSave","args","foundDocIndex","findIndex","withNewOrUpdatedDoc","newDocs","onDrawerCreate","onDrawerDelete","filter","preferenceKey","canCreate","collections","create","_jsxs","className","_jsx","icon","direction","onClick","pillStyle","length","label","labels","plural","singular","modifySearchParams","onQueryChange","LinkedCellOverride","sortColumnProps","appearance","height","slug","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n JoinFieldClient,\n ListQuery,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\nimport type { Column } from '../Table/index.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { TableColumnsProvider } from '../TableColumns/index.js'\nimport './index.scss'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n readonly BeforeInput?: React.ReactNode\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly relationTo: string\n}\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n disableTable = false,\n field,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n const { getEntityConfig } = useConfig()\n\n const { permissions } = useAuth()\n\n const [initialData] = useState<PaginatedDocs>(() => {\n if (initialDataFromProps) {\n return {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n return [...acc, doc]\n }, [])\n : [],\n }\n }\n })\n\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n const [openColumnSelector, setOpenColumnSelector] = useState(false)\n\n const [collectionConfig] = useState(\n () => getEntityConfig({ collectionSlug: relationTo }) as ClientCollectionConfig,\n )\n\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n const [data, setData] = useState<PaginatedDocs>(initialData)\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (docs?: PaginatedDocs['docs']) => {\n const newQuery: ListQuery = {\n limit: String(field.defaultLimit || collectionConfig.admin.pagination.defaultLimit),\n sort: field.defaultSort || collectionConfig.defaultSort,\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n // map columns from string[] to ColumnPreferences\n const defaultColumns = field.admin.defaultColumns\n ? field.admin.defaultColumns.map((accessor) => ({\n accessor,\n active: true,\n }))\n : undefined\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n columns: defaultColumns,\n docs,\n enableRowSelections: false,\n query: newQuery,\n renderRowTypes: true,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [\n field.defaultLimit,\n field.defaultSort,\n field.admin.defaultColumns,\n collectionConfig.admin.pagination.defaultLimit,\n collectionConfig.defaultSort,\n query,\n filterOptions,\n getTableState,\n relationTo,\n ],\n )\n\n useIgnoredEffect(\n () => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n },\n [query, disableTable],\n [Table, renderTable],\n )\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer, openDrawer }] = useDocumentDrawer({\n collectionSlug: relationTo,\n })\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n const foundDocIndex = data?.docs?.findIndex((doc) => doc.id === args.doc.id)\n let withNewOrUpdatedDoc: PaginatedDocs['docs'] = undefined\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = args.doc\n withNewOrUpdatedDoc = newDocs\n } else {\n withNewOrUpdatedDoc = [args.doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedDoc)\n },\n [data.docs, renderTable],\n )\n\n const onDrawerCreate = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n closeDrawer()\n void onDrawerSave(args)\n },\n [closeDrawer, onDrawerSave],\n )\n\n const onDrawerDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n const newDocs = data.docs.filter((doc) => doc.id !== args.id)\n void renderTable(newDocs)\n },\n [data.docs, renderTable],\n )\n\n const preferenceKey = `${relationTo}-list`\n\n const canCreate = allowCreate !== false && permissions?.collections?.[relationTo]?.create\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {canCreate && (\n <DocumentDrawerToggler className={`${baseClass}__add-new`}>\n {i18n.t('fields:addNew')}\n </DocumentDrawerToggler>\n )}\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={openColumnSelector}\n className={`${baseClass}__toggle-columns ${\n openColumnSelector ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon direction={openColumnSelector ? 'up' : 'down'} />}\n onClick={() => setOpenColumnSelector(!openColumnSelector)}\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n </div>\n </div>\n {BeforeInput}\n {isLoadingTable ? (\n <p>{t('general:loading')}</p>\n ) : (\n <Fragment>\n {data.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t('general:noResults', {\n label: getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n </p>\n {canCreate && (\n <Button onClick={openDrawer}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n {data.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n collectionSlug={relationTo}\n data={data}\n defaultLimit={\n field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit\n }\n modifySearchParams={false}\n onQueryChange={setQuery}\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n collectionSlug={relationTo}\n columnState={columnState}\n docs={data.docs}\n LinkedCellOverride={\n <DrawerLink onDrawerDelete={onDrawerDelete} onDrawerSave={onDrawerSave} />\n }\n preferenceKey={preferenceKey}\n renderRowTypes\n setTable={setTable}\n sortColumnProps={{\n appearance: 'condensed',\n }}\n tableAppearance=\"condensed\"\n >\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={openColumnSelector ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <div className={`${baseClass}__columns-inner`}>\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </div>\n </AnimateHeight>\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer initialData={initialDrawerData} onSave={onDrawerCreate} />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","Fragment","useCallback","useState","Button","Pill","useIgnoredEffect","ChevronIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","useTranslation","hoistQueryParamsToAnd","AnimateHeight","ColumnSelector","useDocumentDrawer","RelationshipProvider","TableColumnsProvider","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","disableTable","field","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","relationTo","Table","setTable","getEntityConfig","permissions","docs","Array","isArray","reduce","acc","doc","id","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","collectionConfig","collectionSlug","isLoadingTable","setIsLoadingTable","data","setData","columnState","setColumnState","getTableState","renderTable","newQuery","limit","String","defaultLimit","admin","pagination","sort","defaultSort","where","defaultColumns","map","accessor","active","undefined","newData","state","newColumnState","NewTable","columns","enableRowSelections","renderRowTypes","tableAppearance","DocumentDrawer","DocumentDrawerToggler","closeDrawer","openDrawer","onDrawerSave","args","foundDocIndex","findIndex","withNewOrUpdatedDoc","newDocs","onDrawerCreate","onDrawerDelete","filter","preferenceKey","canCreate","collections","create","_jsxs","className","_jsx","icon","direction","onClick","pillStyle","length","label","labels","plural","singular","modifySearchParams","onQueryChange","LinkedCellOverride","sortColumnProps","appearance","height","slug","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n JoinFieldClient,\n ListQuery,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\nimport type { Column } from '../Table/index.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { hoistQueryParamsToAnd } from '../../utilities/mergeListSearchAndWhere.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { TableColumnsProvider } from '../TableColumns/index.js'\nimport './index.scss'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n readonly BeforeInput?: React.ReactNode\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly relationTo: string\n}\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n disableTable = false,\n field,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n const { getEntityConfig } = useConfig()\n\n const { permissions } = useAuth()\n\n const [initialData] = useState<PaginatedDocs>(() => {\n if (initialDataFromProps) {\n return {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n return [...acc, doc]\n }, [])\n : [],\n }\n }\n })\n\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n const [openColumnSelector, setOpenColumnSelector] = useState(false)\n\n const [collectionConfig] = useState(\n () => getEntityConfig({ collectionSlug: relationTo }) as ClientCollectionConfig,\n )\n\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n const [data, setData] = useState<PaginatedDocs>(initialData)\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (docs?: PaginatedDocs['docs']) => {\n const newQuery: ListQuery = {\n limit: String(field.defaultLimit || collectionConfig.admin.pagination.defaultLimit),\n sort: field.defaultSort || collectionConfig.defaultSort,\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n // map columns from string[] to ListPreferences['columns']\n const defaultColumns = field.admin.defaultColumns\n ? field.admin.defaultColumns.map((accessor) => ({\n accessor,\n active: true,\n }))\n : undefined\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n columns: defaultColumns,\n docs,\n enableRowSelections: false,\n query: newQuery,\n renderRowTypes: true,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [\n field.defaultLimit,\n field.defaultSort,\n field.admin.defaultColumns,\n collectionConfig.admin.pagination.defaultLimit,\n collectionConfig.defaultSort,\n query,\n filterOptions,\n getTableState,\n relationTo,\n ],\n )\n\n useIgnoredEffect(\n () => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n },\n [query, disableTable],\n [Table, renderTable],\n )\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer, openDrawer }] = useDocumentDrawer({\n collectionSlug: relationTo,\n })\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n const foundDocIndex = data?.docs?.findIndex((doc) => doc.id === args.doc.id)\n let withNewOrUpdatedDoc: PaginatedDocs['docs'] = undefined\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = args.doc\n withNewOrUpdatedDoc = newDocs\n } else {\n withNewOrUpdatedDoc = [args.doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedDoc)\n },\n [data.docs, renderTable],\n )\n\n const onDrawerCreate = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n closeDrawer()\n void onDrawerSave(args)\n },\n [closeDrawer, onDrawerSave],\n )\n\n const onDrawerDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n const newDocs = data.docs.filter((doc) => doc.id !== args.id)\n void renderTable(newDocs)\n },\n [data.docs, renderTable],\n )\n\n const preferenceKey = `${relationTo}-list`\n\n const canCreate = allowCreate !== false && permissions?.collections?.[relationTo]?.create\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {canCreate && (\n <DocumentDrawerToggler className={`${baseClass}__add-new`}>\n {i18n.t('fields:addNew')}\n </DocumentDrawerToggler>\n )}\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={openColumnSelector}\n className={`${baseClass}__toggle-columns ${\n openColumnSelector ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon direction={openColumnSelector ? 'up' : 'down'} />}\n onClick={() => setOpenColumnSelector(!openColumnSelector)}\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n </div>\n </div>\n {BeforeInput}\n {isLoadingTable ? (\n <p>{t('general:loading')}</p>\n ) : (\n <Fragment>\n {data.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t('general:noResults', {\n label: getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n </p>\n {canCreate && (\n <Button onClick={openDrawer}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n {data.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n collectionSlug={relationTo}\n data={data}\n defaultLimit={\n field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit\n }\n modifySearchParams={false}\n onQueryChange={setQuery}\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n collectionSlug={relationTo}\n columnState={columnState}\n docs={data.docs}\n LinkedCellOverride={\n <DrawerLink onDrawerDelete={onDrawerDelete} onDrawerSave={onDrawerSave} />\n }\n preferenceKey={preferenceKey}\n renderRowTypes\n setTable={setTable}\n sortColumnProps={{\n appearance: 'condensed',\n }}\n tableAppearance=\"condensed\"\n >\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={openColumnSelector ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <div className={`${baseClass}__columns-inner`}>\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </div>\n </AnimateHeight>\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer initialData={initialDrawerData} onSave={onDrawerCreate} />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Status/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAYpD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EA6N1B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Status/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAYpD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAwO1B,CAAA"}