@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.
Files changed (162) hide show
  1. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +6 -21
  2. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  3. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +20 -44
  4. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  5. package/dist/elements/DocumentHeader/Tabs/index.js +41 -73
  6. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  7. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +1 -10
  8. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  9. package/dist/elements/DocumentHeader/index.js +7 -45
  10. package/dist/elements/DocumentHeader/index.js.map +1 -1
  11. package/dist/elements/FormHeader/index.js +4 -25
  12. package/dist/elements/FormHeader/index.js.map +1 -1
  13. package/dist/elements/Nav/NavHamburger/index.js +5 -21
  14. package/dist/elements/Nav/NavHamburger/index.js.map +1 -1
  15. package/dist/elements/Nav/NavWrapper/index.js +10 -24
  16. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  17. package/dist/elements/Nav/SettingsMenuButton/index.js +4 -27
  18. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  19. package/dist/elements/Nav/index.client.js +43 -91
  20. package/dist/elements/Nav/index.client.js.map +1 -1
  21. package/dist/elements/Nav/index.js +48 -100
  22. package/dist/elements/Nav/index.js.map +1 -1
  23. package/dist/layouts/Root/NestProviders.js +3 -12
  24. package/dist/layouts/Root/NestProviders.js.map +1 -1
  25. package/dist/layouts/Root/index.js +19 -84
  26. package/dist/layouts/Root/index.js.map +1 -1
  27. package/dist/prod/styles.css +5 -0
  28. package/dist/routes/rest/og/image.js +61 -97
  29. package/dist/routes/rest/og/image.js.map +1 -1
  30. package/dist/routes/rest/og/index.js +1 -15
  31. package/dist/routes/rest/og/index.js.map +1 -1
  32. package/dist/templates/Default/NavHamburger/index.js +1 -10
  33. package/dist/templates/Default/NavHamburger/index.js.map +1 -1
  34. package/dist/templates/Default/Wrapper/index.js +9 -16
  35. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  36. package/dist/templates/Default/index.js +38 -106
  37. package/dist/templates/Default/index.js.map +1 -1
  38. package/dist/templates/Minimal/index.js +3 -18
  39. package/dist/templates/Minimal/index.js.map +1 -1
  40. package/dist/views/API/LocaleSelector/index.js +5 -15
  41. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  42. package/dist/views/API/RenderJSON/index.js +59 -156
  43. package/dist/views/API/RenderJSON/index.js.map +1 -1
  44. package/dist/views/API/index.client.js +71 -215
  45. package/dist/views/API/index.client.js.map +1 -1
  46. package/dist/views/API/index.js +1 -7
  47. package/dist/views/API/index.js.map +1 -1
  48. package/dist/views/Account/ResetPreferences/index.js +8 -35
  49. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  50. package/dist/views/Account/Settings/LanguageSelector.js +3 -15
  51. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
  52. package/dist/views/Account/Settings/index.js +12 -58
  53. package/dist/views/Account/Settings/index.js.map +1 -1
  54. package/dist/views/Account/ToggleTheme/index.js +19 -30
  55. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  56. package/dist/views/Account/index.js +25 -83
  57. package/dist/views/Account/index.js.map +1 -1
  58. package/dist/views/BrowseByFolder/buildView.js +28 -38
  59. package/dist/views/BrowseByFolder/buildView.js.map +1 -1
  60. package/dist/views/CollectionFolders/buildView.js +35 -45
  61. package/dist/views/CollectionFolders/buildView.js.map +1 -1
  62. package/dist/views/CreateFirstUser/index.client.js +20 -75
  63. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  64. package/dist/views/CreateFirstUser/index.js +5 -36
  65. package/dist/views/CreateFirstUser/index.js.map +1 -1
  66. package/dist/views/Dashboard/Default/index.js +94 -169
  67. package/dist/views/Dashboard/Default/index.js.map +1 -1
  68. package/dist/views/Dashboard/index.js +24 -43
  69. package/dist/views/Dashboard/index.js.map +1 -1
  70. package/dist/views/Document/index.js +14 -76
  71. package/dist/views/Document/index.js.map +1 -1
  72. package/dist/views/Edit/index.js +1 -9
  73. package/dist/views/Edit/index.js.map +1 -1
  74. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +57 -104
  75. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  76. package/dist/views/ForgotPassword/index.js +23 -75
  77. package/dist/views/ForgotPassword/index.js.map +1 -1
  78. package/dist/views/List/index.js +31 -53
  79. package/dist/views/List/index.js.map +1 -1
  80. package/dist/views/List/renderListViewSlots.js +9 -21
  81. package/dist/views/List/renderListViewSlots.js.map +1 -1
  82. package/dist/views/Login/LoginField/index.js +23 -49
  83. package/dist/views/Login/LoginField/index.js.map +1 -1
  84. package/dist/views/Login/LoginForm/index.js +20 -68
  85. package/dist/views/Login/LoginForm/index.js.map +1 -1
  86. package/dist/views/Login/index.js +33 -66
  87. package/dist/views/Login/index.js.map +1 -1
  88. package/dist/views/Logout/LogoutClient.js +7 -36
  89. package/dist/views/Logout/LogoutClient.js.map +1 -1
  90. package/dist/views/Logout/index.js +4 -26
  91. package/dist/views/Logout/index.js.map +1 -1
  92. package/dist/views/NotFound/index.client.js +15 -55
  93. package/dist/views/NotFound/index.client.js.map +1 -1
  94. package/dist/views/NotFound/index.js +5 -33
  95. package/dist/views/NotFound/index.js.map +1 -1
  96. package/dist/views/ResetPassword/ResetPasswordForm/index.js +12 -57
  97. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
  98. package/dist/views/ResetPassword/index.js +23 -86
  99. package/dist/views/ResetPassword/index.js.map +1 -1
  100. package/dist/views/Root/index.js +12 -52
  101. package/dist/views/Root/index.js.map +1 -1
  102. package/dist/views/Unauthorized/index.js +15 -50
  103. package/dist/views/Unauthorized/index.js.map +1 -1
  104. package/dist/views/Verify/index.js +10 -47
  105. package/dist/views/Verify/index.js.map +1 -1
  106. package/dist/views/Version/Default/SelectedLocalesContext.js +1 -1
  107. package/dist/views/Version/Default/SelectedLocalesContext.js.map +1 -1
  108. package/dist/views/Version/Default/index.js +52 -258
  109. package/dist/views/Version/Default/index.js.map +1 -1
  110. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +16 -65
  111. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  112. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +24 -66
  113. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
  114. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +5 -34
  115. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  116. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +4 -17
  117. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  118. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +10 -55
  119. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  120. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +43 -128
  121. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  122. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +23 -151
  123. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  124. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +3 -16
  125. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -1
  126. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +4 -17
  127. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  128. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +51 -122
  129. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  130. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +4 -17
  131. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  132. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +27 -176
  133. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  134. package/dist/views/Version/RenderFieldsToDiff/index.js +1 -9
  135. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
  136. package/dist/views/Version/Restore/index.js +21 -61
  137. package/dist/views/Version/Restore/index.js.map +1 -1
  138. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js +16 -24
  139. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
  140. package/dist/views/Version/SelectComparison/VersionDrawer/index.js +6 -37
  141. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  142. package/dist/views/Version/SelectComparison/index.js +10 -40
  143. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  144. package/dist/views/Version/SelectLocales/index.js +17 -33
  145. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  146. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js +17 -84
  147. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -1
  148. package/dist/views/Version/index.js +21 -63
  149. package/dist/views/Version/index.js.map +1 -1
  150. package/dist/views/Versions/buildColumns.js +9 -58
  151. package/dist/views/Versions/buildColumns.js.map +1 -1
  152. package/dist/views/Versions/cells/AutosaveCell/index.js +4 -31
  153. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  154. package/dist/views/Versions/cells/CreatedAt/index.js +7 -15
  155. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  156. package/dist/views/Versions/cells/ID/index.js +2 -9
  157. package/dist/views/Versions/cells/ID/index.js.map +1 -1
  158. package/dist/views/Versions/index.client.js +20 -98
  159. package/dist/views/Versions/index.client.js.map +1 -1
  160. package/dist/views/Versions/index.js +13 -59
  161. package/dist/views/Versions/index.js.map +1 -1
  162. 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 /*#__PURE__*/ _jsxDEV("main", {
139
- className: baseClass,
140
- children: [
141
- /*#__PURE__*/ _jsxDEV(Gutter, {
142
- className: `${baseClass}-controls-top`,
143
- children: [
144
- /*#__PURE__*/ _jsxDEV("div", {
145
- className: `${baseClass}-controls-top__wrapper`,
146
- children: [
147
- /*#__PURE__*/ _jsxDEV("h2", {
148
- children: i18n.t('version:compareVersions')
149
- }, void 0, false, {
150
- fileName: "src/views/Version/Default/index.tsx",
151
- lineNumber: 186,
152
- columnNumber: 11
153
- }, this),
154
- /*#__PURE__*/ _jsxDEV("div", {
155
- className: `${baseClass}-controls-top__wrapper-actions`,
156
- children: [
157
- /*#__PURE__*/ _jsxDEV("span", {
158
- className: `${baseClass}__modifiedCheckBox`,
159
- children: /*#__PURE__*/ _jsxDEV(CheckboxInput, {
160
- checked: modifiedOnly,
161
- id: 'modifiedOnly',
162
- label: i18n.t('version:modifiedOnly'),
163
- onToggle: onToggleModifiedOnly
164
- }, void 0, false, {
165
- fileName: "src/views/Version/Default/index.tsx",
166
- lineNumber: 189,
167
- columnNumber: 15
168
- }, this)
169
- }, void 0, false, {
170
- fileName: "src/views/Version/Default/index.tsx",
171
- lineNumber: 188,
172
- columnNumber: 13
173
- }, this),
174
- localization && /*#__PURE__*/ _jsxDEV(Pill, {
175
- "aria-controls": `${baseClass}-locales`,
176
- "aria-expanded": localeSelectorOpen,
177
- className: `${baseClass}__toggle-locales`,
178
- icon: /*#__PURE__*/ _jsxDEV(ChevronIcon, {
179
- direction: localeSelectorOpen ? 'up' : 'down'
180
- }, void 0, false, {
181
- fileName: "src/views/Version/Default/index.tsx",
182
- lineNumber: 201,
183
- columnNumber: 23
184
- }, void 0),
185
- onClick: ()=>setLocaleSelectorOpen((localeSelectorOpen)=>!localeSelectorOpen),
186
- pillStyle: "light",
187
- size: "small",
188
- children: [
189
- /*#__PURE__*/ _jsxDEV("span", {
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 React, { useState } from 'react';
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 /*#__PURE__*/ _jsxDEV("div", {
49
- className: baseClass,
50
- children: [
51
- /*#__PURE__*/ _jsxDEV(FieldDiffLabel, {
52
- children: [
53
- /*#__PURE__*/ _jsxDEV("button", {
54
- "aria-label": isCollapsed ? 'Expand' : 'Collapse',
55
- className: `${baseClass}__toggle-button`,
56
- onClick: ()=>setIsCollapsed(!isCollapsed),
57
- type: "button",
58
- children: [
59
- /*#__PURE__*/ _jsxDEV("div", {
60
- className: `${baseClass}__label`,
61
- children: Label
62
- }, void 0, false, {
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","React","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,OAAOC,SAASC,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,GAAGpB;IACd,MAAM,CAACqB,aAAaC,eAAe,GAAGlB,SAASS;IAC/C,MAAM,EAAEU,MAAM,EAAE,GAAGxB;IAEnB,IAAIyB,cAAc;IAElB,IAAIV,YAAY;QACd,IAAI,CAACb,iBAAiBS,UAAU,CAACR,iBAAiBQ,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,qBACE,QAACC;QAAIC,WAAW5B;;0BACd,QAACT;;kCACC,QAACsC;wBACCC,cAAYhB,cAAc,WAAW;wBACrCc,WAAW,GAAG5B,UAAU,eAAe,CAAC;wBACxC+B,SAAS,IAAMhB,eAAe,CAACD;wBAC/BkB,MAAK;;0CAEL,QAACL;gCAAIC,WAAW,GAAG5B,UAAU,OAAO,CAAC;0CAAGQ;;;;;;0CAExC,QAAClB;gCAAY2C,WAAWnB,cAAc,UAAU;gCAAQoB,MAAM;;;;;;;;;;;;oBAE/DjB,cAAc,KAAKH,6BAClB,QAACqB;wBAAKP,WAAW,GAAG5B,UAAU,oBAAoB,CAAC;kCAChDa,EAAE,8BAA8B;4BAAEuB,OAAOnB;wBAAY;;;;;;;;;;;;0BAI5D,QAACU;gBAAIC,WAAWL;0BAAoBrB;;;;;;;;;;;;AAG1C,EAAC"}
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"}