@payloadcms/next 3.68.0-internal-debug.591ab42 → 3.68.0-internal-debug.e9b66ee
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.
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +6 -21
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js +20 -44
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.js +41 -73
- package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +1 -10
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
- package/dist/elements/DocumentHeader/index.js +7 -45
- package/dist/elements/DocumentHeader/index.js.map +1 -1
- package/dist/elements/FormHeader/index.js +4 -25
- package/dist/elements/FormHeader/index.js.map +1 -1
- package/dist/elements/Nav/NavHamburger/index.js +5 -21
- package/dist/elements/Nav/NavHamburger/index.js.map +1 -1
- package/dist/elements/Nav/NavWrapper/index.js +10 -24
- package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
- package/dist/elements/Nav/SettingsMenuButton/index.js +4 -27
- package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
- package/dist/elements/Nav/index.client.js +43 -91
- package/dist/elements/Nav/index.client.js.map +1 -1
- package/dist/elements/Nav/index.js +48 -100
- package/dist/elements/Nav/index.js.map +1 -1
- package/dist/layouts/Root/NestProviders.js +3 -12
- package/dist/layouts/Root/NestProviders.js.map +1 -1
- package/dist/layouts/Root/index.js +19 -84
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/prod/styles.css +5 -0
- package/dist/routes/rest/og/image.js +61 -97
- package/dist/routes/rest/og/image.js.map +1 -1
- package/dist/routes/rest/og/index.js +1 -15
- package/dist/routes/rest/og/index.js.map +1 -1
- package/dist/templates/Default/NavHamburger/index.js +1 -10
- package/dist/templates/Default/NavHamburger/index.js.map +1 -1
- package/dist/templates/Default/Wrapper/index.js +9 -16
- package/dist/templates/Default/Wrapper/index.js.map +1 -1
- package/dist/templates/Default/index.js +38 -106
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/templates/Minimal/index.js +3 -18
- package/dist/templates/Minimal/index.js.map +1 -1
- package/dist/views/API/LocaleSelector/index.js +5 -15
- package/dist/views/API/LocaleSelector/index.js.map +1 -1
- package/dist/views/API/RenderJSON/index.js +59 -156
- package/dist/views/API/RenderJSON/index.js.map +1 -1
- package/dist/views/API/index.client.js +71 -215
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/API/index.js +1 -7
- package/dist/views/API/index.js.map +1 -1
- package/dist/views/Account/ResetPreferences/index.js +8 -35
- package/dist/views/Account/ResetPreferences/index.js.map +1 -1
- package/dist/views/Account/Settings/LanguageSelector.js +3 -15
- package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
- package/dist/views/Account/Settings/index.js +12 -58
- package/dist/views/Account/Settings/index.js.map +1 -1
- package/dist/views/Account/ToggleTheme/index.js +19 -30
- package/dist/views/Account/ToggleTheme/index.js.map +1 -1
- package/dist/views/Account/index.js +25 -83
- package/dist/views/Account/index.js.map +1 -1
- package/dist/views/BrowseByFolder/buildView.js +28 -38
- package/dist/views/BrowseByFolder/buildView.js.map +1 -1
- package/dist/views/CollectionFolders/buildView.js +35 -45
- package/dist/views/CollectionFolders/buildView.js.map +1 -1
- package/dist/views/CreateFirstUser/index.client.js +20 -75
- package/dist/views/CreateFirstUser/index.client.js.map +1 -1
- package/dist/views/CreateFirstUser/index.js +5 -36
- package/dist/views/CreateFirstUser/index.js.map +1 -1
- package/dist/views/Dashboard/Default/index.js +94 -169
- package/dist/views/Dashboard/Default/index.js.map +1 -1
- package/dist/views/Dashboard/index.js +24 -43
- package/dist/views/Dashboard/index.js.map +1 -1
- package/dist/views/Document/index.js +14 -76
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Edit/index.js +1 -9
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +57 -104
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
- package/dist/views/ForgotPassword/index.js +23 -75
- package/dist/views/ForgotPassword/index.js.map +1 -1
- package/dist/views/List/index.js +31 -53
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/List/renderListViewSlots.js +9 -21
- package/dist/views/List/renderListViewSlots.js.map +1 -1
- package/dist/views/Login/LoginField/index.js +23 -49
- package/dist/views/Login/LoginField/index.js.map +1 -1
- package/dist/views/Login/LoginForm/index.js +20 -68
- package/dist/views/Login/LoginForm/index.js.map +1 -1
- package/dist/views/Login/index.js +33 -66
- package/dist/views/Login/index.js.map +1 -1
- package/dist/views/Logout/LogoutClient.js +7 -36
- package/dist/views/Logout/LogoutClient.js.map +1 -1
- package/dist/views/Logout/index.js +4 -26
- package/dist/views/Logout/index.js.map +1 -1
- package/dist/views/NotFound/index.client.js +15 -55
- package/dist/views/NotFound/index.client.js.map +1 -1
- package/dist/views/NotFound/index.js +5 -33
- package/dist/views/NotFound/index.js.map +1 -1
- package/dist/views/ResetPassword/ResetPasswordForm/index.js +12 -57
- package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
- package/dist/views/ResetPassword/index.js +23 -86
- package/dist/views/ResetPassword/index.js.map +1 -1
- package/dist/views/Root/index.js +12 -52
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Unauthorized/index.js +15 -50
- package/dist/views/Unauthorized/index.js.map +1 -1
- package/dist/views/Verify/index.js +10 -47
- package/dist/views/Verify/index.js.map +1 -1
- package/dist/views/Version/Default/SelectedLocalesContext.js +1 -1
- package/dist/views/Version/Default/SelectedLocalesContext.js.map +1 -1
- package/dist/views/Version/Default/index.js +52 -258
- package/dist/views/Version/Default/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +16 -65
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +24 -66
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +5 -34
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +4 -17
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +10 -55
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +43 -128
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +23 -151
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +3 -16
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +4 -17
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +51 -122
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +4 -17
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +27 -176
- package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/index.js +1 -9
- package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
- package/dist/views/Version/Restore/index.js +21 -61
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js +16 -24
- package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
- package/dist/views/Version/SelectComparison/VersionDrawer/index.js +6 -37
- package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
- package/dist/views/Version/SelectComparison/index.js +10 -40
- package/dist/views/Version/SelectComparison/index.js.map +1 -1
- package/dist/views/Version/SelectLocales/index.js +17 -33
- package/dist/views/Version/SelectLocales/index.js.map +1 -1
- package/dist/views/Version/VersionPillLabel/VersionPillLabel.js +17 -84
- package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -1
- package/dist/views/Version/index.js +21 -63
- package/dist/views/Version/index.js.map +1 -1
- package/dist/views/Versions/buildColumns.js +9 -58
- package/dist/views/Versions/buildColumns.js.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.js +4 -31
- package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
- package/dist/views/Versions/cells/CreatedAt/index.js +7 -15
- package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
- package/dist/views/Versions/cells/ID/index.js +2 -9
- package/dist/views/Versions/cells/ID/index.js.map +1 -1
- package/dist/views/Versions/index.client.js +20 -98
- package/dist/views/Versions/index.client.js.map +1 -1
- package/dist/views/Versions/index.js +13 -59
- package/dist/views/Versions/index.js.map +1 -1
- package/package.json +10 -9
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
3
2
|
import { CheckboxInput, ChevronIcon, formatTimeToNow, Gutter, Pill, useConfig, useDocumentInfo, useLocale, useRouteTransition, useTranslation } from '@payloadcms/ui';
|
|
4
3
|
import { usePathname, useRouter, useSearchParams } from 'next/navigation.js';
|
|
5
4
|
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
@@ -135,263 +134,58 @@ export const DefaultVersionView = ({ canUpdate, modifiedOnly: modifiedOnlyProp,
|
|
|
135
134
|
i18n,
|
|
136
135
|
t
|
|
137
136
|
]);
|
|
138
|
-
return
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
className: `${baseClass}__toggle-locales-label`,
|
|
191
|
-
children: [
|
|
192
|
-
t('general:locales'),
|
|
193
|
-
":",
|
|
194
|
-
' '
|
|
195
|
-
]
|
|
196
|
-
}, void 0, true, {
|
|
197
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
198
|
-
lineNumber: 206,
|
|
199
|
-
columnNumber: 17
|
|
200
|
-
}, this),
|
|
201
|
-
/*#__PURE__*/ _jsxDEV("span", {
|
|
202
|
-
className: `${baseClass}__toggle-locales-list`,
|
|
203
|
-
children: locales.filter((locale)=>locale.selected).map((locale)=>locale.name).join(', ')
|
|
204
|
-
}, void 0, false, {
|
|
205
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
206
|
-
lineNumber: 209,
|
|
207
|
-
columnNumber: 17
|
|
208
|
-
}, this)
|
|
209
|
-
]
|
|
210
|
-
}, void 0, true, {
|
|
211
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
212
|
-
lineNumber: 197,
|
|
213
|
-
columnNumber: 15
|
|
214
|
-
}, this)
|
|
215
|
-
]
|
|
216
|
-
}, void 0, true, {
|
|
217
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
218
|
-
lineNumber: 187,
|
|
219
|
-
columnNumber: 11
|
|
220
|
-
}, this)
|
|
221
|
-
]
|
|
222
|
-
}, void 0, true, {
|
|
223
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
224
|
-
lineNumber: 185,
|
|
225
|
-
columnNumber: 9
|
|
226
|
-
}, this),
|
|
227
|
-
localization && /*#__PURE__*/ _jsxDEV(SelectLocales, {
|
|
228
|
-
locales: locales,
|
|
229
|
-
localeSelectorOpen: localeSelectorOpen,
|
|
230
|
-
onChange: onChangeSelectedLocales
|
|
231
|
-
}, void 0, false, {
|
|
232
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
233
|
-
lineNumber: 221,
|
|
234
|
-
columnNumber: 11
|
|
235
|
-
}, this)
|
|
236
|
-
]
|
|
237
|
-
}, void 0, true, {
|
|
238
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
239
|
-
lineNumber: 184,
|
|
240
|
-
columnNumber: 7
|
|
241
|
-
}, this),
|
|
242
|
-
/*#__PURE__*/ _jsxDEV(Gutter, {
|
|
243
|
-
className: `${baseClass}-controls-bottom`,
|
|
244
|
-
children: /*#__PURE__*/ _jsxDEV("div", {
|
|
245
|
-
className: `${baseClass}-controls-bottom__wrapper`,
|
|
246
|
-
children: [
|
|
247
|
-
/*#__PURE__*/ _jsxDEV("div", {
|
|
248
|
-
className: `${baseClass}__version-from`,
|
|
249
|
-
children: [
|
|
250
|
-
/*#__PURE__*/ _jsxDEV("div", {
|
|
251
|
-
className: `${baseClass}__version-from-labels`,
|
|
252
|
-
children: [
|
|
253
|
-
/*#__PURE__*/ _jsxDEV("span", {
|
|
254
|
-
children: t('version:comparingAgainst')
|
|
255
|
-
}, void 0, false, {
|
|
256
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
257
|
-
lineNumber: 232,
|
|
258
|
-
columnNumber: 15
|
|
259
|
-
}, this),
|
|
260
|
-
versionFromTimeAgo && /*#__PURE__*/ _jsxDEV("span", {
|
|
261
|
-
className: `${baseClass}__time-elapsed`,
|
|
262
|
-
children: versionFromTimeAgo
|
|
263
|
-
}, void 0, false, {
|
|
264
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
265
|
-
lineNumber: 234,
|
|
266
|
-
columnNumber: 17
|
|
267
|
-
}, this)
|
|
268
|
-
]
|
|
269
|
-
}, void 0, true, {
|
|
270
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
271
|
-
lineNumber: 231,
|
|
272
|
-
columnNumber: 13
|
|
273
|
-
}, this),
|
|
274
|
-
/*#__PURE__*/ _jsxDEV(SelectComparison, {
|
|
275
|
-
collectionSlug: collectionSlug,
|
|
276
|
-
docID: originalDocID,
|
|
277
|
-
globalSlug: globalSlug,
|
|
278
|
-
onChange: onChangeVersionFrom,
|
|
279
|
-
versionFromID: versionFromID,
|
|
280
|
-
versionFromOptions: versionFromOptions
|
|
281
|
-
}, void 0, false, {
|
|
282
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
283
|
-
lineNumber: 237,
|
|
284
|
-
columnNumber: 13
|
|
285
|
-
}, this)
|
|
286
|
-
]
|
|
287
|
-
}, void 0, true, {
|
|
288
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
289
|
-
lineNumber: 230,
|
|
290
|
-
columnNumber: 11
|
|
291
|
-
}, this),
|
|
292
|
-
/*#__PURE__*/ _jsxDEV("div", {
|
|
293
|
-
className: `${baseClass}__version-to`,
|
|
294
|
-
children: [
|
|
295
|
-
/*#__PURE__*/ _jsxDEV("div", {
|
|
296
|
-
className: `${baseClass}__version-to-labels`,
|
|
297
|
-
children: [
|
|
298
|
-
/*#__PURE__*/ _jsxDEV("span", {
|
|
299
|
-
children: t('version:currentlyViewing')
|
|
300
|
-
}, void 0, false, {
|
|
301
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
302
|
-
lineNumber: 249,
|
|
303
|
-
columnNumber: 15
|
|
304
|
-
}, this),
|
|
305
|
-
/*#__PURE__*/ _jsxDEV("span", {
|
|
306
|
-
className: `${baseClass}__time-elapsed`,
|
|
307
|
-
children: versionToTimeAgo
|
|
308
|
-
}, void 0, false, {
|
|
309
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
310
|
-
lineNumber: 250,
|
|
311
|
-
columnNumber: 15
|
|
312
|
-
}, this)
|
|
313
|
-
]
|
|
314
|
-
}, void 0, true, {
|
|
315
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
316
|
-
lineNumber: 248,
|
|
317
|
-
columnNumber: 13
|
|
318
|
-
}, this),
|
|
319
|
-
/*#__PURE__*/ _jsxDEV("div", {
|
|
320
|
-
className: `${baseClass}__version-to-version`,
|
|
321
|
-
children: [
|
|
322
|
-
VersionToCreatedAtLabel,
|
|
323
|
-
canUpdate && !isTrashed && /*#__PURE__*/ _jsxDEV(Restore, {
|
|
324
|
-
className: `${baseClass}__restore`,
|
|
325
|
-
collectionConfig: collectionConfig,
|
|
326
|
-
globalConfig: globalConfig,
|
|
327
|
-
label: collectionConfig?.labels.singular || globalConfig?.label,
|
|
328
|
-
originalDocID: originalDocID,
|
|
329
|
-
status: versionToStatus,
|
|
330
|
-
versionDateFormatted: versionToCreatedAtFormatted,
|
|
331
|
-
versionID: versionToID
|
|
332
|
-
}, void 0, false, {
|
|
333
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
334
|
-
lineNumber: 255,
|
|
335
|
-
columnNumber: 17
|
|
336
|
-
}, this)
|
|
337
|
-
]
|
|
338
|
-
}, void 0, true, {
|
|
339
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
340
|
-
lineNumber: 252,
|
|
341
|
-
columnNumber: 13
|
|
342
|
-
}, this)
|
|
343
|
-
]
|
|
344
|
-
}, void 0, true, {
|
|
345
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
346
|
-
lineNumber: 247,
|
|
347
|
-
columnNumber: 11
|
|
348
|
-
}, this)
|
|
349
|
-
]
|
|
350
|
-
}, void 0, true, {
|
|
351
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
352
|
-
lineNumber: 229,
|
|
353
|
-
columnNumber: 9
|
|
354
|
-
}, this)
|
|
355
|
-
}, void 0, false, {
|
|
356
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
357
|
-
lineNumber: 228,
|
|
358
|
-
columnNumber: 7
|
|
359
|
-
}, this),
|
|
360
|
-
/*#__PURE__*/ _jsxDEV(SetStepNav, {
|
|
361
|
-
collectionConfig: collectionConfig,
|
|
362
|
-
globalConfig: globalConfig,
|
|
363
|
-
id: originalDocID,
|
|
364
|
-
isTrashed: isTrashed,
|
|
365
|
-
versionToCreatedAtFormatted: versionToCreatedAtFormatted,
|
|
366
|
-
versionToID: versionToID
|
|
367
|
-
}, void 0, false, {
|
|
368
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
369
|
-
lineNumber: 270,
|
|
370
|
-
columnNumber: 7
|
|
371
|
-
}, this),
|
|
372
|
-
/*#__PURE__*/ _jsxDEV(Gutter, {
|
|
373
|
-
className: `${baseClass}__diff-wrap`,
|
|
374
|
-
children: /*#__PURE__*/ _jsxDEV(SelectedLocalesContext, {
|
|
375
|
-
value: {
|
|
376
|
-
selectedLocales: locales.map((locale)=>locale.name)
|
|
377
|
-
},
|
|
378
|
-
children: versionToCreatedAt && RenderedDiff
|
|
379
|
-
}, void 0, false, {
|
|
380
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
381
|
-
lineNumber: 279,
|
|
382
|
-
columnNumber: 9
|
|
383
|
-
}, this)
|
|
384
|
-
}, void 0, false, {
|
|
385
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
386
|
-
lineNumber: 278,
|
|
387
|
-
columnNumber: 7
|
|
388
|
-
}, this)
|
|
389
|
-
]
|
|
390
|
-
}, void 0, true, {
|
|
391
|
-
fileName: "src/views/Version/Default/index.tsx",
|
|
392
|
-
lineNumber: 183,
|
|
393
|
-
columnNumber: 5
|
|
394
|
-
}, this);
|
|
137
|
+
return <main className={baseClass}>
|
|
138
|
+
<Gutter className={`${baseClass}-controls-top`}>
|
|
139
|
+
<div className={`${baseClass}-controls-top__wrapper`}>
|
|
140
|
+
<h2>{i18n.t('version:compareVersions')}</h2>
|
|
141
|
+
<div className={`${baseClass}-controls-top__wrapper-actions`}>
|
|
142
|
+
<span className={`${baseClass}__modifiedCheckBox`}>
|
|
143
|
+
<CheckboxInput checked={modifiedOnly} id={'modifiedOnly'} label={i18n.t('version:modifiedOnly')} onToggle={onToggleModifiedOnly}/>
|
|
144
|
+
</span>
|
|
145
|
+
{localization && <Pill aria-controls={`${baseClass}-locales`} aria-expanded={localeSelectorOpen} className={`${baseClass}__toggle-locales`} icon={<ChevronIcon direction={localeSelectorOpen ? 'up' : 'down'}/>} onClick={()=>setLocaleSelectorOpen((localeSelectorOpen)=>!localeSelectorOpen)} pillStyle="light" size="small">
|
|
146
|
+
<span className={`${baseClass}__toggle-locales-label`}>
|
|
147
|
+
{t('general:locales')}:{' '}
|
|
148
|
+
</span>
|
|
149
|
+
<span className={`${baseClass}__toggle-locales-list`}>
|
|
150
|
+
{locales.filter((locale)=>locale.selected).map((locale)=>locale.name).join(', ')}
|
|
151
|
+
</span>
|
|
152
|
+
</Pill>}
|
|
153
|
+
</div>
|
|
154
|
+
</div>
|
|
155
|
+
|
|
156
|
+
{localization && <SelectLocales locales={locales} localeSelectorOpen={localeSelectorOpen} onChange={onChangeSelectedLocales}/>}
|
|
157
|
+
</Gutter>
|
|
158
|
+
<Gutter className={`${baseClass}-controls-bottom`}>
|
|
159
|
+
<div className={`${baseClass}-controls-bottom__wrapper`}>
|
|
160
|
+
<div className={`${baseClass}__version-from`}>
|
|
161
|
+
<div className={`${baseClass}__version-from-labels`}>
|
|
162
|
+
<span>{t('version:comparingAgainst')}</span>
|
|
163
|
+
{versionFromTimeAgo && <span className={`${baseClass}__time-elapsed`}>{versionFromTimeAgo}</span>}
|
|
164
|
+
</div>
|
|
165
|
+
<SelectComparison collectionSlug={collectionSlug} docID={originalDocID} globalSlug={globalSlug} onChange={onChangeVersionFrom} versionFromID={versionFromID} versionFromOptions={versionFromOptions}/>
|
|
166
|
+
</div>
|
|
167
|
+
|
|
168
|
+
<div className={`${baseClass}__version-to`}>
|
|
169
|
+
<div className={`${baseClass}__version-to-labels`}>
|
|
170
|
+
<span>{t('version:currentlyViewing')}</span>
|
|
171
|
+
<span className={`${baseClass}__time-elapsed`}>{versionToTimeAgo}</span>
|
|
172
|
+
</div>
|
|
173
|
+
<div className={`${baseClass}__version-to-version`}>
|
|
174
|
+
{VersionToCreatedAtLabel}
|
|
175
|
+
{canUpdate && !isTrashed && <Restore className={`${baseClass}__restore`} collectionConfig={collectionConfig} globalConfig={globalConfig} label={collectionConfig?.labels.singular || globalConfig?.label} originalDocID={originalDocID} status={versionToStatus} versionDateFormatted={versionToCreatedAtFormatted} versionID={versionToID}/>}
|
|
176
|
+
</div>
|
|
177
|
+
</div>
|
|
178
|
+
</div>
|
|
179
|
+
</Gutter>
|
|
180
|
+
<SetStepNav collectionConfig={collectionConfig} globalConfig={globalConfig} id={originalDocID} isTrashed={isTrashed} versionToCreatedAtFormatted={versionToCreatedAtFormatted} versionToID={versionToID}/>
|
|
181
|
+
<Gutter className={`${baseClass}__diff-wrap`}>
|
|
182
|
+
<SelectedLocalesContext value={{
|
|
183
|
+
selectedLocales: locales.map((locale)=>locale.name)
|
|
184
|
+
}}>
|
|
185
|
+
{versionToCreatedAt && RenderedDiff}
|
|
186
|
+
</SelectedLocalesContext>
|
|
187
|
+
</Gutter>
|
|
188
|
+
</main>;
|
|
395
189
|
};
|
|
396
190
|
|
|
397
191
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/views/Version/Default/index.tsx"],"sourcesContent":["'use client'\n\nimport {\n CheckboxInput,\n ChevronIcon,\n formatTimeToNow,\n Gutter,\n Pill,\n type SelectablePill,\n useConfig,\n useDocumentInfo,\n useLocale,\n useRouteTransition,\n useTranslation,\n} from '@payloadcms/ui'\nimport { usePathname, useRouter, useSearchParams } from 'next/navigation.js'\nimport React, { type FormEventHandler, useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { CompareOption, DefaultVersionsViewProps } from './types.js'\n\nimport { Restore } from '../Restore/index.js'\nimport './index.scss'\nimport { SelectComparison } from '../SelectComparison/index.js'\nimport { type SelectedLocaleOnChange, SelectLocales } from '../SelectLocales/index.js'\nimport { SelectedLocalesContext } from './SelectedLocalesContext.js'\nimport { SetStepNav } from './SetStepNav.js'\n\nconst baseClass = 'view-version'\n\nexport const DefaultVersionView: React.FC<DefaultVersionsViewProps> = ({\n canUpdate,\n modifiedOnly: modifiedOnlyProp,\n RenderedDiff,\n selectedLocales: selectedLocalesFromProps,\n versionFromCreatedAt,\n versionFromID,\n versionFromOptions,\n versionToCreatedAt,\n versionToCreatedAtFormatted,\n VersionToCreatedAtLabel,\n versionToID,\n versionToStatus,\n}) => {\n const { config, getEntityConfig } = useConfig()\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const [locales, setLocales] = useState<SelectablePill[]>([])\n const [localeSelectorOpen, setLocaleSelectorOpen] = React.useState(false)\n\n useEffect(() => {\n if (config.localization) {\n const updatedLocales = config.localization.locales.map((locale) => {\n let label = locale.label\n if (typeof locale.label !== 'string' && locale.label[code]) {\n label = locale.label[code]\n }\n\n return {\n name: locale.code,\n Label: label,\n selected: selectedLocalesFromProps.includes(locale.code),\n } as SelectablePill\n })\n setLocales(updatedLocales)\n }\n }, [code, config.localization, selectedLocalesFromProps])\n\n const { id: originalDocID, collectionSlug, globalSlug, isTrashed } = useDocumentInfo()\n const { startRouteTransition } = useRouteTransition()\n\n const { collectionConfig, globalConfig } = useMemo(() => {\n return {\n collectionConfig: getEntityConfig({ collectionSlug }),\n globalConfig: getEntityConfig({ globalSlug }),\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const router = useRouter()\n const pathname = usePathname()\n const searchParams = useSearchParams()\n const [modifiedOnly, setModifiedOnly] = useState(modifiedOnlyProp)\n\n const updateSearchParams = useCallback(\n (args: {\n modifiedOnly?: boolean\n selectedLocales?: SelectablePill[]\n versionFromID?: string\n }) => {\n // If the selected comparison doc or locales change, update URL params so that version page\n // This is so that RSC can update the version comparison state\n const current = new URLSearchParams(Array.from(searchParams.entries()))\n\n if (args?.versionFromID) {\n current.set('versionFrom', args?.versionFromID)\n }\n\n if (args?.selectedLocales) {\n if (!args.selectedLocales.length) {\n current.delete('localeCodes')\n } else {\n const selectedLocaleCodes: string[] = []\n for (const locale of args.selectedLocales) {\n if (locale.selected) {\n selectedLocaleCodes.push(locale.name)\n }\n }\n current.set('localeCodes', JSON.stringify(selectedLocaleCodes))\n }\n }\n\n if (args?.modifiedOnly === false) {\n current.set('modifiedOnly', 'false')\n } else if (args?.modifiedOnly === true) {\n current.delete('modifiedOnly')\n }\n\n const search = current.toString()\n const query = search ? `?${search}` : ''\n\n startRouteTransition(() => router.push(`${pathname}${query}`))\n },\n [pathname, router, searchParams, startRouteTransition],\n )\n\n const onToggleModifiedOnly: FormEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n const newModified = (event.target as HTMLInputElement).checked\n setModifiedOnly(newModified)\n updateSearchParams({\n modifiedOnly: newModified,\n })\n },\n [updateSearchParams],\n )\n\n const onChangeSelectedLocales: SelectedLocaleOnChange = useCallback(\n ({ locales }) => {\n setLocales(locales)\n updateSearchParams({\n selectedLocales: locales,\n })\n },\n [updateSearchParams],\n )\n\n const onChangeVersionFrom: (val: CompareOption) => void = useCallback(\n (val) => {\n updateSearchParams({\n versionFromID: val.value,\n })\n },\n [updateSearchParams],\n )\n\n const { localization } = config\n\n const versionToTimeAgo = useMemo(\n () =>\n t('version:versionAgo', {\n distance: formatTimeToNow({\n date: versionToCreatedAt,\n i18n,\n }),\n }),\n [versionToCreatedAt, i18n, t],\n )\n\n const versionFromTimeAgo = useMemo(\n () =>\n versionFromCreatedAt\n ? t('version:versionAgo', {\n distance: formatTimeToNow({\n date: versionFromCreatedAt,\n i18n,\n }),\n })\n : undefined,\n [versionFromCreatedAt, i18n, t],\n )\n\n return (\n <main className={baseClass}>\n <Gutter className={`${baseClass}-controls-top`}>\n <div className={`${baseClass}-controls-top__wrapper`}>\n <h2>{i18n.t('version:compareVersions')}</h2>\n <div className={`${baseClass}-controls-top__wrapper-actions`}>\n <span className={`${baseClass}__modifiedCheckBox`}>\n <CheckboxInput\n checked={modifiedOnly}\n id={'modifiedOnly'}\n label={i18n.t('version:modifiedOnly')}\n onToggle={onToggleModifiedOnly}\n />\n </span>\n {localization && (\n <Pill\n aria-controls={`${baseClass}-locales`}\n aria-expanded={localeSelectorOpen}\n className={`${baseClass}__toggle-locales`}\n icon={<ChevronIcon direction={localeSelectorOpen ? 'up' : 'down'} />}\n onClick={() => setLocaleSelectorOpen((localeSelectorOpen) => !localeSelectorOpen)}\n pillStyle=\"light\"\n size=\"small\"\n >\n <span className={`${baseClass}__toggle-locales-label`}>\n {t('general:locales')}:{' '}\n </span>\n <span className={`${baseClass}__toggle-locales-list`}>\n {locales\n .filter((locale) => locale.selected)\n .map((locale) => locale.name)\n .join(', ')}\n </span>\n </Pill>\n )}\n </div>\n </div>\n\n {localization && (\n <SelectLocales\n locales={locales}\n localeSelectorOpen={localeSelectorOpen}\n onChange={onChangeSelectedLocales}\n />\n )}\n </Gutter>\n <Gutter className={`${baseClass}-controls-bottom`}>\n <div className={`${baseClass}-controls-bottom__wrapper`}>\n <div className={`${baseClass}__version-from`}>\n <div className={`${baseClass}__version-from-labels`}>\n <span>{t('version:comparingAgainst')}</span>\n {versionFromTimeAgo && (\n <span className={`${baseClass}__time-elapsed`}>{versionFromTimeAgo}</span>\n )}\n </div>\n <SelectComparison\n collectionSlug={collectionSlug}\n docID={originalDocID}\n globalSlug={globalSlug}\n onChange={onChangeVersionFrom}\n versionFromID={versionFromID}\n versionFromOptions={versionFromOptions}\n />\n </div>\n\n <div className={`${baseClass}__version-to`}>\n <div className={`${baseClass}__version-to-labels`}>\n <span>{t('version:currentlyViewing')}</span>\n <span className={`${baseClass}__time-elapsed`}>{versionToTimeAgo}</span>\n </div>\n <div className={`${baseClass}__version-to-version`}>\n {VersionToCreatedAtLabel}\n {canUpdate && !isTrashed && (\n <Restore\n className={`${baseClass}__restore`}\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n label={collectionConfig?.labels.singular || globalConfig?.label}\n originalDocID={originalDocID}\n status={versionToStatus}\n versionDateFormatted={versionToCreatedAtFormatted}\n versionID={versionToID}\n />\n )}\n </div>\n </div>\n </div>\n </Gutter>\n <SetStepNav\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n id={originalDocID}\n isTrashed={isTrashed}\n versionToCreatedAtFormatted={versionToCreatedAtFormatted}\n versionToID={versionToID}\n />\n <Gutter className={`${baseClass}__diff-wrap`}>\n <SelectedLocalesContext value={{ selectedLocales: locales.map((locale) => locale.name) }}>\n {versionToCreatedAt && RenderedDiff}\n </SelectedLocalesContext>\n </Gutter>\n </main>\n )\n}\n"],"names":["CheckboxInput","ChevronIcon","formatTimeToNow","Gutter","Pill","useConfig","useDocumentInfo","useLocale","useRouteTransition","useTranslation","usePathname","useRouter","useSearchParams","React","useCallback","useEffect","useMemo","useState","Restore","SelectComparison","SelectLocales","SelectedLocalesContext","SetStepNav","baseClass","DefaultVersionView","canUpdate","modifiedOnly","modifiedOnlyProp","RenderedDiff","selectedLocales","selectedLocalesFromProps","versionFromCreatedAt","versionFromID","versionFromOptions","versionToCreatedAt","versionToCreatedAtFormatted","VersionToCreatedAtLabel","versionToID","versionToStatus","config","getEntityConfig","code","i18n","t","locales","setLocales","localeSelectorOpen","setLocaleSelectorOpen","localization","updatedLocales","map","locale","label","name","Label","selected","includes","id","originalDocID","collectionSlug","globalSlug","isTrashed","startRouteTransition","collectionConfig","globalConfig","router","pathname","searchParams","setModifiedOnly","updateSearchParams","args","current","URLSearchParams","Array","from","entries","set","length","delete","selectedLocaleCodes","push","JSON","stringify","search","toString","query","onToggleModifiedOnly","event","newModified","target","checked","onChangeSelectedLocales","onChangeVersionFrom","val","value","versionToTimeAgo","distance","date","versionFromTimeAgo","undefined","main","className","div","h2","span","onToggle","aria-controls","aria-expanded","icon","direction","onClick","pillStyle","size","filter","join","onChange","docID","labels","singular","status","versionDateFormatted","versionID"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/views/Version/Default/index.tsx"],"sourcesContent":["'use client'\n\nimport {\n CheckboxInput,\n ChevronIcon,\n formatTimeToNow,\n Gutter,\n Pill,\n type SelectablePill,\n useConfig,\n useDocumentInfo,\n useLocale,\n useRouteTransition,\n useTranslation,\n} from '@payloadcms/ui'\nimport { usePathname, useRouter, useSearchParams } from 'next/navigation.js'\nimport React, { type FormEventHandler, useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { CompareOption, DefaultVersionsViewProps } from './types.js'\n\nimport { Restore } from '../Restore/index.js'\nimport './index.scss'\nimport { SelectComparison } from '../SelectComparison/index.js'\nimport { type SelectedLocaleOnChange, SelectLocales } from '../SelectLocales/index.js'\nimport { SelectedLocalesContext } from './SelectedLocalesContext.js'\nimport { SetStepNav } from './SetStepNav.js'\n\nconst baseClass = 'view-version'\n\nexport const DefaultVersionView: React.FC<DefaultVersionsViewProps> = ({\n canUpdate,\n modifiedOnly: modifiedOnlyProp,\n RenderedDiff,\n selectedLocales: selectedLocalesFromProps,\n versionFromCreatedAt,\n versionFromID,\n versionFromOptions,\n versionToCreatedAt,\n versionToCreatedAtFormatted,\n VersionToCreatedAtLabel,\n versionToID,\n versionToStatus,\n}) => {\n const { config, getEntityConfig } = useConfig()\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const [locales, setLocales] = useState<SelectablePill[]>([])\n const [localeSelectorOpen, setLocaleSelectorOpen] = React.useState(false)\n\n useEffect(() => {\n if (config.localization) {\n const updatedLocales = config.localization.locales.map((locale) => {\n let label = locale.label\n if (typeof locale.label !== 'string' && locale.label[code]) {\n label = locale.label[code]\n }\n\n return {\n name: locale.code,\n Label: label,\n selected: selectedLocalesFromProps.includes(locale.code),\n } as SelectablePill\n })\n setLocales(updatedLocales)\n }\n }, [code, config.localization, selectedLocalesFromProps])\n\n const { id: originalDocID, collectionSlug, globalSlug, isTrashed } = useDocumentInfo()\n const { startRouteTransition } = useRouteTransition()\n\n const { collectionConfig, globalConfig } = useMemo(() => {\n return {\n collectionConfig: getEntityConfig({ collectionSlug }),\n globalConfig: getEntityConfig({ globalSlug }),\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const router = useRouter()\n const pathname = usePathname()\n const searchParams = useSearchParams()\n const [modifiedOnly, setModifiedOnly] = useState(modifiedOnlyProp)\n\n const updateSearchParams = useCallback(\n (args: {\n modifiedOnly?: boolean\n selectedLocales?: SelectablePill[]\n versionFromID?: string\n }) => {\n // If the selected comparison doc or locales change, update URL params so that version page\n // This is so that RSC can update the version comparison state\n const current = new URLSearchParams(Array.from(searchParams.entries()))\n\n if (args?.versionFromID) {\n current.set('versionFrom', args?.versionFromID)\n }\n\n if (args?.selectedLocales) {\n if (!args.selectedLocales.length) {\n current.delete('localeCodes')\n } else {\n const selectedLocaleCodes: string[] = []\n for (const locale of args.selectedLocales) {\n if (locale.selected) {\n selectedLocaleCodes.push(locale.name)\n }\n }\n current.set('localeCodes', JSON.stringify(selectedLocaleCodes))\n }\n }\n\n if (args?.modifiedOnly === false) {\n current.set('modifiedOnly', 'false')\n } else if (args?.modifiedOnly === true) {\n current.delete('modifiedOnly')\n }\n\n const search = current.toString()\n const query = search ? `?${search}` : ''\n\n startRouteTransition(() => router.push(`${pathname}${query}`))\n },\n [pathname, router, searchParams, startRouteTransition],\n )\n\n const onToggleModifiedOnly: FormEventHandler<HTMLInputElement> = useCallback(\n (event) => {\n const newModified = (event.target as HTMLInputElement).checked\n setModifiedOnly(newModified)\n updateSearchParams({\n modifiedOnly: newModified,\n })\n },\n [updateSearchParams],\n )\n\n const onChangeSelectedLocales: SelectedLocaleOnChange = useCallback(\n ({ locales }) => {\n setLocales(locales)\n updateSearchParams({\n selectedLocales: locales,\n })\n },\n [updateSearchParams],\n )\n\n const onChangeVersionFrom: (val: CompareOption) => void = useCallback(\n (val) => {\n updateSearchParams({\n versionFromID: val.value,\n })\n },\n [updateSearchParams],\n )\n\n const { localization } = config\n\n const versionToTimeAgo = useMemo(\n () =>\n t('version:versionAgo', {\n distance: formatTimeToNow({\n date: versionToCreatedAt,\n i18n,\n }),\n }),\n [versionToCreatedAt, i18n, t],\n )\n\n const versionFromTimeAgo = useMemo(\n () =>\n versionFromCreatedAt\n ? t('version:versionAgo', {\n distance: formatTimeToNow({\n date: versionFromCreatedAt,\n i18n,\n }),\n })\n : undefined,\n [versionFromCreatedAt, i18n, t],\n )\n\n return (\n <main className={baseClass}>\n <Gutter className={`${baseClass}-controls-top`}>\n <div className={`${baseClass}-controls-top__wrapper`}>\n <h2>{i18n.t('version:compareVersions')}</h2>\n <div className={`${baseClass}-controls-top__wrapper-actions`}>\n <span className={`${baseClass}__modifiedCheckBox`}>\n <CheckboxInput\n checked={modifiedOnly}\n id={'modifiedOnly'}\n label={i18n.t('version:modifiedOnly')}\n onToggle={onToggleModifiedOnly}\n />\n </span>\n {localization && (\n <Pill\n aria-controls={`${baseClass}-locales`}\n aria-expanded={localeSelectorOpen}\n className={`${baseClass}__toggle-locales`}\n icon={<ChevronIcon direction={localeSelectorOpen ? 'up' : 'down'} />}\n onClick={() => setLocaleSelectorOpen((localeSelectorOpen) => !localeSelectorOpen)}\n pillStyle=\"light\"\n size=\"small\"\n >\n <span className={`${baseClass}__toggle-locales-label`}>\n {t('general:locales')}:{' '}\n </span>\n <span className={`${baseClass}__toggle-locales-list`}>\n {locales\n .filter((locale) => locale.selected)\n .map((locale) => locale.name)\n .join(', ')}\n </span>\n </Pill>\n )}\n </div>\n </div>\n\n {localization && (\n <SelectLocales\n locales={locales}\n localeSelectorOpen={localeSelectorOpen}\n onChange={onChangeSelectedLocales}\n />\n )}\n </Gutter>\n <Gutter className={`${baseClass}-controls-bottom`}>\n <div className={`${baseClass}-controls-bottom__wrapper`}>\n <div className={`${baseClass}__version-from`}>\n <div className={`${baseClass}__version-from-labels`}>\n <span>{t('version:comparingAgainst')}</span>\n {versionFromTimeAgo && (\n <span className={`${baseClass}__time-elapsed`}>{versionFromTimeAgo}</span>\n )}\n </div>\n <SelectComparison\n collectionSlug={collectionSlug}\n docID={originalDocID}\n globalSlug={globalSlug}\n onChange={onChangeVersionFrom}\n versionFromID={versionFromID}\n versionFromOptions={versionFromOptions}\n />\n </div>\n\n <div className={`${baseClass}__version-to`}>\n <div className={`${baseClass}__version-to-labels`}>\n <span>{t('version:currentlyViewing')}</span>\n <span className={`${baseClass}__time-elapsed`}>{versionToTimeAgo}</span>\n </div>\n <div className={`${baseClass}__version-to-version`}>\n {VersionToCreatedAtLabel}\n {canUpdate && !isTrashed && (\n <Restore\n className={`${baseClass}__restore`}\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n label={collectionConfig?.labels.singular || globalConfig?.label}\n originalDocID={originalDocID}\n status={versionToStatus}\n versionDateFormatted={versionToCreatedAtFormatted}\n versionID={versionToID}\n />\n )}\n </div>\n </div>\n </div>\n </Gutter>\n <SetStepNav\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n id={originalDocID}\n isTrashed={isTrashed}\n versionToCreatedAtFormatted={versionToCreatedAtFormatted}\n versionToID={versionToID}\n />\n <Gutter className={`${baseClass}__diff-wrap`}>\n <SelectedLocalesContext value={{ selectedLocales: locales.map((locale) => locale.name) }}>\n {versionToCreatedAt && RenderedDiff}\n </SelectedLocalesContext>\n </Gutter>\n </main>\n )\n}\n"],"names":["CheckboxInput","ChevronIcon","formatTimeToNow","Gutter","Pill","useConfig","useDocumentInfo","useLocale","useRouteTransition","useTranslation","usePathname","useRouter","useSearchParams","React","useCallback","useEffect","useMemo","useState","Restore","SelectComparison","SelectLocales","SelectedLocalesContext","SetStepNav","baseClass","DefaultVersionView","canUpdate","modifiedOnly","modifiedOnlyProp","RenderedDiff","selectedLocales","selectedLocalesFromProps","versionFromCreatedAt","versionFromID","versionFromOptions","versionToCreatedAt","versionToCreatedAtFormatted","VersionToCreatedAtLabel","versionToID","versionToStatus","config","getEntityConfig","code","i18n","t","locales","setLocales","localeSelectorOpen","setLocaleSelectorOpen","localization","updatedLocales","map","locale","label","name","Label","selected","includes","id","originalDocID","collectionSlug","globalSlug","isTrashed","startRouteTransition","collectionConfig","globalConfig","router","pathname","searchParams","setModifiedOnly","updateSearchParams","args","current","URLSearchParams","Array","from","entries","set","length","delete","selectedLocaleCodes","push","JSON","stringify","search","toString","query","onToggleModifiedOnly","event","newModified","target","checked","onChangeSelectedLocales","onChangeVersionFrom","val","value","versionToTimeAgo","distance","date","versionFromTimeAgo","undefined","main","className","div","h2","span","onToggle","aria-controls","aria-expanded","icon","direction","onClick","pillStyle","size","filter","join","onChange","docID","labels","singular","status","versionDateFormatted","versionID"],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
3
2
|
import { ChevronIcon, FieldDiffLabel, useConfig, useTranslation } from '@payloadcms/ui';
|
|
4
3
|
import { fieldIsArrayType, fieldIsBlockType } from 'payload/shared';
|
|
5
|
-
import
|
|
4
|
+
import { useState } from 'react';
|
|
6
5
|
import './index.scss';
|
|
7
6
|
import { countChangedFields, countChangedFieldsInRows } from '../utilities/countChangedFields.js';
|
|
8
7
|
const baseClass = 'diff-collapser';
|
|
@@ -45,69 +44,21 @@ export const DiffCollapser = ({ children, field, fields, hideGutter = false, ini
|
|
|
45
44
|
isCollapsed && `${baseClass}__content--is-collapsed`,
|
|
46
45
|
hideGutter && `${baseClass}__content--hide-gutter`
|
|
47
46
|
].filter(Boolean).join(' ');
|
|
48
|
-
return
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
fileName: "src/views/Version/RenderFieldsToDiff/DiffCollapser/index.tsx",
|
|
64
|
-
lineNumber: 109,
|
|
65
|
-
columnNumber: 11
|
|
66
|
-
}, this),
|
|
67
|
-
/*#__PURE__*/ _jsxDEV(ChevronIcon, {
|
|
68
|
-
direction: isCollapsed ? 'right' : 'down',
|
|
69
|
-
size: 'small'
|
|
70
|
-
}, void 0, false, {
|
|
71
|
-
fileName: "src/views/Version/RenderFieldsToDiff/DiffCollapser/index.tsx",
|
|
72
|
-
lineNumber: 111,
|
|
73
|
-
columnNumber: 11
|
|
74
|
-
}, this)
|
|
75
|
-
]
|
|
76
|
-
}, void 0, true, {
|
|
77
|
-
fileName: "src/views/Version/RenderFieldsToDiff/DiffCollapser/index.tsx",
|
|
78
|
-
lineNumber: 103,
|
|
79
|
-
columnNumber: 9
|
|
80
|
-
}, this),
|
|
81
|
-
changeCount > 0 && isCollapsed && /*#__PURE__*/ _jsxDEV("span", {
|
|
82
|
-
className: `${baseClass}__field-change-count`,
|
|
83
|
-
children: t('version:changedFieldsCount', {
|
|
84
|
-
count: changeCount
|
|
85
|
-
})
|
|
86
|
-
}, void 0, false, {
|
|
87
|
-
fileName: "src/views/Version/RenderFieldsToDiff/DiffCollapser/index.tsx",
|
|
88
|
-
lineNumber: 114,
|
|
89
|
-
columnNumber: 11
|
|
90
|
-
}, this)
|
|
91
|
-
]
|
|
92
|
-
}, void 0, true, {
|
|
93
|
-
fileName: "src/views/Version/RenderFieldsToDiff/DiffCollapser/index.tsx",
|
|
94
|
-
lineNumber: 102,
|
|
95
|
-
columnNumber: 7
|
|
96
|
-
}, this),
|
|
97
|
-
/*#__PURE__*/ _jsxDEV("div", {
|
|
98
|
-
className: contentClassNames,
|
|
99
|
-
children: children
|
|
100
|
-
}, void 0, false, {
|
|
101
|
-
fileName: "src/views/Version/RenderFieldsToDiff/DiffCollapser/index.tsx",
|
|
102
|
-
lineNumber: 119,
|
|
103
|
-
columnNumber: 7
|
|
104
|
-
}, this)
|
|
105
|
-
]
|
|
106
|
-
}, void 0, true, {
|
|
107
|
-
fileName: "src/views/Version/RenderFieldsToDiff/DiffCollapser/index.tsx",
|
|
108
|
-
lineNumber: 101,
|
|
109
|
-
columnNumber: 5
|
|
110
|
-
}, this);
|
|
47
|
+
return <div className={baseClass}>
|
|
48
|
+
<FieldDiffLabel>
|
|
49
|
+
<button aria-label={isCollapsed ? 'Expand' : 'Collapse'} className={`${baseClass}__toggle-button`} onClick={()=>setIsCollapsed(!isCollapsed)} type="button">
|
|
50
|
+
<div className={`${baseClass}__label`}>{Label}</div>
|
|
51
|
+
|
|
52
|
+
<ChevronIcon direction={isCollapsed ? 'right' : 'down'} size={'small'}/>
|
|
53
|
+
</button>
|
|
54
|
+
{changeCount > 0 && isCollapsed && <span className={`${baseClass}__field-change-count`}>
|
|
55
|
+
{t('version:changedFieldsCount', {
|
|
56
|
+
count: changeCount
|
|
57
|
+
})}
|
|
58
|
+
</span>}
|
|
59
|
+
</FieldDiffLabel>
|
|
60
|
+
<div className={contentClassNames}>{children}</div>
|
|
61
|
+
</div>;
|
|
111
62
|
};
|
|
112
63
|
|
|
113
64
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/views/Version/RenderFieldsToDiff/DiffCollapser/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField } from 'payload'\n\nimport { ChevronIcon, FieldDiffLabel, useConfig, useTranslation } from '@payloadcms/ui'\nimport { fieldIsArrayType, fieldIsBlockType } from 'payload/shared'\nimport React, { useState } from 'react'\n\nimport './index.scss'\nimport { countChangedFields, countChangedFieldsInRows } from '../utilities/countChangedFields.js'\n\nconst baseClass = 'diff-collapser'\n\ntype Props = {\n hideGutter?: boolean\n initCollapsed?: boolean\n Label: React.ReactNode\n locales: string[] | undefined\n parentIsLocalized: boolean\n valueTo: unknown\n} & (\n | {\n // fields collapser\n children: React.ReactNode\n field?: never\n fields: ClientField[]\n isIterable?: false\n valueFrom: unknown\n }\n | {\n // iterable collapser\n children: React.ReactNode\n field: ClientField\n fields?: never\n isIterable: true\n valueFrom?: unknown\n }\n)\n\nexport const DiffCollapser: React.FC<Props> = ({\n children,\n field,\n fields,\n hideGutter = false,\n initCollapsed = false,\n isIterable = false,\n Label,\n locales,\n parentIsLocalized,\n valueFrom,\n valueTo,\n}) => {\n const { t } = useTranslation()\n const [isCollapsed, setIsCollapsed] = useState(initCollapsed)\n const { config } = useConfig()\n\n let changeCount = 0\n\n if (isIterable) {\n if (!fieldIsArrayType(field) && !fieldIsBlockType(field)) {\n throw new Error(\n 'DiffCollapser: field must be an array or blocks field when isIterable is true',\n )\n }\n const valueFromRows = valueFrom ?? []\n const valueToRows = valueTo ?? []\n\n if (!Array.isArray(valueFromRows) || !Array.isArray(valueToRows)) {\n throw new Error(\n 'DiffCollapser: valueFrom and valueTro must be arrays when isIterable is true',\n )\n }\n\n changeCount = countChangedFieldsInRows({\n config,\n field,\n locales,\n parentIsLocalized,\n valueFromRows,\n valueToRows,\n })\n } else {\n changeCount = countChangedFields({\n config,\n fields,\n locales,\n parentIsLocalized,\n valueFrom,\n valueTo,\n })\n }\n\n const contentClassNames = [\n `${baseClass}__content`,\n isCollapsed && `${baseClass}__content--is-collapsed`,\n hideGutter && `${baseClass}__content--hide-gutter`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div className={baseClass}>\n <FieldDiffLabel>\n <button\n aria-label={isCollapsed ? 'Expand' : 'Collapse'}\n className={`${baseClass}__toggle-button`}\n onClick={() => setIsCollapsed(!isCollapsed)}\n type=\"button\"\n >\n <div className={`${baseClass}__label`}>{Label}</div>\n\n <ChevronIcon direction={isCollapsed ? 'right' : 'down'} size={'small'} />\n </button>\n {changeCount > 0 && isCollapsed && (\n <span className={`${baseClass}__field-change-count`}>\n {t('version:changedFieldsCount', { count: changeCount })}\n </span>\n )}\n </FieldDiffLabel>\n <div className={contentClassNames}>{children}</div>\n </div>\n )\n}\n"],"names":["ChevronIcon","FieldDiffLabel","useConfig","useTranslation","fieldIsArrayType","fieldIsBlockType","
|
|
1
|
+
{"version":3,"sources":["../../../../../src/views/Version/RenderFieldsToDiff/DiffCollapser/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField } from 'payload'\n\nimport { ChevronIcon, FieldDiffLabel, useConfig, useTranslation } from '@payloadcms/ui'\nimport { fieldIsArrayType, fieldIsBlockType } from 'payload/shared'\nimport React, { useState } from 'react'\n\nimport './index.scss'\nimport { countChangedFields, countChangedFieldsInRows } from '../utilities/countChangedFields.js'\n\nconst baseClass = 'diff-collapser'\n\ntype Props = {\n hideGutter?: boolean\n initCollapsed?: boolean\n Label: React.ReactNode\n locales: string[] | undefined\n parentIsLocalized: boolean\n valueTo: unknown\n} & (\n | {\n // fields collapser\n children: React.ReactNode\n field?: never\n fields: ClientField[]\n isIterable?: false\n valueFrom: unknown\n }\n | {\n // iterable collapser\n children: React.ReactNode\n field: ClientField\n fields?: never\n isIterable: true\n valueFrom?: unknown\n }\n)\n\nexport const DiffCollapser: React.FC<Props> = ({\n children,\n field,\n fields,\n hideGutter = false,\n initCollapsed = false,\n isIterable = false,\n Label,\n locales,\n parentIsLocalized,\n valueFrom,\n valueTo,\n}) => {\n const { t } = useTranslation()\n const [isCollapsed, setIsCollapsed] = useState(initCollapsed)\n const { config } = useConfig()\n\n let changeCount = 0\n\n if (isIterable) {\n if (!fieldIsArrayType(field) && !fieldIsBlockType(field)) {\n throw new Error(\n 'DiffCollapser: field must be an array or blocks field when isIterable is true',\n )\n }\n const valueFromRows = valueFrom ?? []\n const valueToRows = valueTo ?? []\n\n if (!Array.isArray(valueFromRows) || !Array.isArray(valueToRows)) {\n throw new Error(\n 'DiffCollapser: valueFrom and valueTro must be arrays when isIterable is true',\n )\n }\n\n changeCount = countChangedFieldsInRows({\n config,\n field,\n locales,\n parentIsLocalized,\n valueFromRows,\n valueToRows,\n })\n } else {\n changeCount = countChangedFields({\n config,\n fields,\n locales,\n parentIsLocalized,\n valueFrom,\n valueTo,\n })\n }\n\n const contentClassNames = [\n `${baseClass}__content`,\n isCollapsed && `${baseClass}__content--is-collapsed`,\n hideGutter && `${baseClass}__content--hide-gutter`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div className={baseClass}>\n <FieldDiffLabel>\n <button\n aria-label={isCollapsed ? 'Expand' : 'Collapse'}\n className={`${baseClass}__toggle-button`}\n onClick={() => setIsCollapsed(!isCollapsed)}\n type=\"button\"\n >\n <div className={`${baseClass}__label`}>{Label}</div>\n\n <ChevronIcon direction={isCollapsed ? 'right' : 'down'} size={'small'} />\n </button>\n {changeCount > 0 && isCollapsed && (\n <span className={`${baseClass}__field-change-count`}>\n {t('version:changedFieldsCount', { count: changeCount })}\n </span>\n )}\n </FieldDiffLabel>\n <div className={contentClassNames}>{children}</div>\n </div>\n )\n}\n"],"names":["ChevronIcon","FieldDiffLabel","useConfig","useTranslation","fieldIsArrayType","fieldIsBlockType","useState","countChangedFields","countChangedFieldsInRows","baseClass","DiffCollapser","children","field","fields","hideGutter","initCollapsed","isIterable","Label","locales","parentIsLocalized","valueFrom","valueTo","t","isCollapsed","setIsCollapsed","config","changeCount","Error","valueFromRows","valueToRows","Array","isArray","contentClassNames","filter","Boolean","join","div","className","button","aria-label","onClick","type","direction","size","span","count"],"mappings":"AAAA;AAGA,SAASA,WAAW,EAAEC,cAAc,EAAEC,SAAS,EAAEC,cAAc,QAAQ,iBAAgB;AACvF,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,iBAAgB;AACnE,SAAgBC,QAAQ,QAAQ,QAAO;AAEvC,OAAO,eAAc;AACrB,SAASC,kBAAkB,EAAEC,wBAAwB,QAAQ,qCAAoC;AAEjG,MAAMC,YAAY;AAWZ,mBAAmB;AAQnB,qBAAqB;AAS3B,OAAO,MAAMC,gBAAiC,CAAC,EAC7CC,QAAQ,EACRC,KAAK,EACLC,MAAM,EACNC,aAAa,KAAK,EAClBC,gBAAgB,KAAK,EACrBC,aAAa,KAAK,EAClBC,KAAK,EACLC,OAAO,EACPC,iBAAiB,EACjBC,SAAS,EACTC,OAAO,EACR;IACC,MAAM,EAAEC,CAAC,EAAE,GAAGnB;IACd,MAAM,CAACoB,aAAaC,eAAe,GAAGlB,SAASS;IAC/C,MAAM,EAAEU,MAAM,EAAE,GAAGvB;IAEnB,IAAIwB,cAAc;IAElB,IAAIV,YAAY;QACd,IAAI,CAACZ,iBAAiBQ,UAAU,CAACP,iBAAiBO,QAAQ;YACxD,MAAM,IAAIe,MACR;QAEJ;QACA,MAAMC,gBAAgBR,aAAa,EAAE;QACrC,MAAMS,cAAcR,WAAW,EAAE;QAEjC,IAAI,CAACS,MAAMC,OAAO,CAACH,kBAAkB,CAACE,MAAMC,OAAO,CAACF,cAAc;YAChE,MAAM,IAAIF,MACR;QAEJ;QAEAD,cAAclB,yBAAyB;YACrCiB;YACAb;YACAM;YACAC;YACAS;YACAC;QACF;IACF,OAAO;QACLH,cAAcnB,mBAAmB;YAC/BkB;YACAZ;YACAK;YACAC;YACAC;YACAC;QACF;IACF;IAEA,MAAMW,oBAAoB;QACxB,GAAGvB,UAAU,SAAS,CAAC;QACvBc,eAAe,GAAGd,UAAU,uBAAuB,CAAC;QACpDK,cAAc,GAAGL,UAAU,sBAAsB,CAAC;KACnD,CACEwB,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,QACGC,IAAIC,WAAW5B,WAAW;MACzB,CAACR,eAAe;QACd,CAACqC,OACCC,YAAYhB,cAAc,WAAW,YACrCc,WAAW,GAAG5B,UAAU,eAAe,CAAC,EACxC+B,SAAS,IAAMhB,eAAe,CAACD,cAC/BkB,KAAK,SACN;UACC,CAACL,IAAIC,WAAW,GAAG5B,UAAU,OAAO,CAAC,GAAGQ,QAAQmB,IAAI;;UAEpD,CAACpC,YAAY0C,WAAWnB,cAAc,UAAU,QAAQoB,MAAM,UAAW;QAC3E,EAAEL,OAAO;QACT,CAACZ,cAAc,KAAKH,gBACjBqB,KAAKP,WAAW,GAAG5B,UAAU,oBAAoB,CAAC,EAAE;YACnD,CAACa,EAAE,8BAA8B;QAAEuB,OAAOnB;IAAY,GAAG;UAC3D,EAAEkB,MACF;MACJ,EAAE3C,eAAe;MACjB,CAACmC,IAAIC,WAAWL,oBAAoBrB,WAAWyB,IAAI;IACrD,EAAEA;AAEN,EAAC"}
|