@payloadcms/next 3.0.0-beta.95 → 3.0.0-beta.96

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 (121) hide show
  1. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  2. package/dist/elements/DocumentHeader/Tabs/index.js +7 -1
  3. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  4. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
  5. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  6. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
  7. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  8. package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +1 -1
  9. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +3 -1
  10. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  11. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  12. package/dist/elements/Nav/index.client.js +1 -1
  13. package/dist/elements/Nav/index.client.js.map +1 -1
  14. package/dist/fetchAPI-multipart/fileFactory.d.ts +2 -1
  15. package/dist/fetchAPI-multipart/fileFactory.d.ts.map +1 -1
  16. package/dist/fetchAPI-multipart/fileFactory.js.map +1 -1
  17. package/dist/fetchAPI-multipart/handlers.d.ts +1 -1
  18. package/dist/fetchAPI-multipart/handlers.d.ts.map +1 -1
  19. package/dist/fetchAPI-multipart/handlers.js +3 -1
  20. package/dist/fetchAPI-multipart/handlers.js.map +1 -1
  21. package/dist/fetchAPI-multipart/index.d.ts +1 -101
  22. package/dist/fetchAPI-multipart/index.d.ts.map +1 -1
  23. package/dist/fetchAPI-multipart/index.js.map +1 -1
  24. package/dist/fetchAPI-multipart/processMultipart.d.ts +2 -1
  25. package/dist/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
  26. package/dist/fetchAPI-multipart/processMultipart.js +2 -0
  27. package/dist/fetchAPI-multipart/processMultipart.js.map +1 -1
  28. package/dist/fetchAPI-multipart/processNested.d.ts.map +1 -1
  29. package/dist/fetchAPI-multipart/processNested.js +6 -2
  30. package/dist/fetchAPI-multipart/processNested.js.map +1 -1
  31. package/dist/fetchAPI-multipart/uploadTimer.d.ts.map +1 -1
  32. package/dist/fetchAPI-multipart/uploadTimer.js +3 -1
  33. package/dist/fetchAPI-multipart/uploadTimer.js.map +1 -1
  34. package/dist/fetchAPI-multipart/utilities.d.ts +1 -1
  35. package/dist/fetchAPI-multipart/utilities.d.ts.map +1 -1
  36. package/dist/fetchAPI-multipart/utilities.js +32 -12
  37. package/dist/fetchAPI-multipart/utilities.js.map +1 -1
  38. package/dist/layouts/Root/index.js.map +1 -1
  39. package/dist/prod/styles.css +1 -1
  40. package/dist/routes/rest/collections/updateByID.d.ts.map +1 -1
  41. package/dist/routes/rest/collections/updateByID.js +6 -2
  42. package/dist/routes/rest/collections/updateByID.js.map +1 -1
  43. package/dist/routes/rest/files/checkFileAccess.d.ts.map +1 -1
  44. package/dist/routes/rest/files/checkFileAccess.js +3 -1
  45. package/dist/routes/rest/files/checkFileAccess.js.map +1 -1
  46. package/dist/routes/rest/files/getFile.d.ts.map +1 -1
  47. package/dist/routes/rest/files/getFile.js +6 -2
  48. package/dist/routes/rest/files/getFile.js.map +1 -1
  49. package/dist/routes/rest/globals/update.d.ts.map +1 -1
  50. package/dist/routes/rest/globals/update.js +6 -2
  51. package/dist/routes/rest/globals/update.js.map +1 -1
  52. package/dist/routes/rest/index.d.ts.map +1 -1
  53. package/dist/routes/rest/index.js +42 -14
  54. package/dist/routes/rest/index.js.map +1 -1
  55. package/dist/routes/rest/utilities/sanitizeCollectionID.d.ts.map +1 -1
  56. package/dist/routes/rest/utilities/sanitizeCollectionID.js +6 -2
  57. package/dist/routes/rest/utilities/sanitizeCollectionID.js.map +1 -1
  58. package/dist/templates/Default/Wrapper/index.scss +0 -1
  59. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
  60. package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
  61. package/dist/utilities/addLocalesToRequest.d.ts.map +1 -1
  62. package/dist/utilities/addLocalesToRequest.js +6 -2
  63. package/dist/utilities/addLocalesToRequest.js.map +1 -1
  64. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  65. package/dist/utilities/createPayloadRequest.js +9 -3
  66. package/dist/utilities/createPayloadRequest.js.map +1 -1
  67. package/dist/utilities/initPage/handleAuthRedirect.d.ts.map +1 -1
  68. package/dist/utilities/initPage/handleAuthRedirect.js +3 -1
  69. package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
  70. package/dist/utilities/initPage/index.d.ts.map +1 -1
  71. package/dist/utilities/initPage/index.js +3 -1
  72. package/dist/utilities/initPage/index.js.map +1 -1
  73. package/dist/utilities/timestamp.d.ts.map +1 -1
  74. package/dist/utilities/timestamp.js +3 -1
  75. package/dist/utilities/timestamp.js.map +1 -1
  76. package/dist/views/Account/index.d.ts.map +1 -1
  77. package/dist/views/Account/index.js.map +1 -1
  78. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts.map +1 -1
  79. package/dist/views/Edit/Default/SetDocumentStepNav/index.js.map +1 -1
  80. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  81. package/dist/views/Edit/Default/index.js +6 -2
  82. package/dist/views/Edit/Default/index.js.map +1 -1
  83. package/dist/views/List/Default/index.d.ts.map +1 -1
  84. package/dist/views/List/Default/index.js +94 -84
  85. package/dist/views/List/Default/index.js.map +1 -1
  86. package/dist/views/LivePreview/Context/index.d.ts.map +1 -1
  87. package/dist/views/LivePreview/Context/index.js +3 -1
  88. package/dist/views/LivePreview/Context/index.js.map +1 -1
  89. package/dist/views/LivePreview/Device/index.d.ts.map +1 -1
  90. package/dist/views/LivePreview/Device/index.js +5 -1
  91. package/dist/views/LivePreview/Device/index.js.map +1 -1
  92. package/dist/views/LivePreview/Toolbar/SizeInput/index.d.ts.map +1 -1
  93. package/dist/views/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  94. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  95. package/dist/views/Login/LoginForm/index.js.map +1 -1
  96. package/dist/views/Root/isPathMatchingRoute.d.ts.map +1 -1
  97. package/dist/views/Root/isPathMatchingRoute.js +6 -2
  98. package/dist/views/Root/isPathMatchingRoute.js.map +1 -1
  99. package/dist/views/Verify/index.d.ts.map +1 -1
  100. package/dist/views/Verify/index.js +6 -4
  101. package/dist/views/Verify/index.js.map +1 -1
  102. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  103. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +3 -1
  104. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  105. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  106. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +3 -1
  107. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  108. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
  109. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +9 -3
  110. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  111. package/dist/views/Version/RenderFieldsToDiff/index.d.ts.map +1 -1
  112. package/dist/views/Version/RenderFieldsToDiff/index.js +6 -2
  113. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
  114. package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
  115. package/dist/views/Version/SelectComparison/index.js +3 -1
  116. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  117. package/dist/views/Version/SelectLocales/index.d.ts.map +1 -1
  118. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  119. package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
  120. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  121. package/package.json +9 -9
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
5
5
  import { getTranslation } from '@payloadcms/translations';
6
6
  import { Button, DeleteMany, EditMany, Gutter, ListControls, ListHeader, ListSelection, Pagination, PerPage, PublishMany, RelationshipProvider, RenderComponent, SelectionProvider, SetViewActions, StaggeredShimmers, Table, UnpublishMany, ViewDescription, useBulkUpload, useConfig, useEditDepth, useListInfo, useListQuery, useModal, useRouteCache, useSearchParams, useStepNav, useTranslation, useWindowInfo } from '@payloadcms/ui';
7
7
  import LinkImport from 'next/link.js';
@@ -10,7 +10,7 @@ import React, { Fragment, useEffect } from 'react';
10
10
  const baseClass = 'collection-list';
11
11
  const Link = LinkImport.default || LinkImport;
12
12
  export const DefaultListView = () => {
13
- const $ = _c(85);
13
+ const $ = _c(87);
14
14
  const {
15
15
  Header,
16
16
  beforeActions,
@@ -81,7 +81,8 @@ export const DefaultListView = () => {
81
81
  actions
82
82
  } = t4;
83
83
  const {
84
- i18n
84
+ i18n,
85
+ t
85
86
  } = useTranslation();
86
87
  const drawerDepth = useEditDepth();
87
88
  const {
@@ -156,22 +157,29 @@ export const DefaultListView = () => {
156
157
  const isBulkUploadEnabled = isUploadCollection && collectionConfig.upload.bulkUpload;
157
158
  const t10 = `${baseClass} ${baseClass}--${collectionSlug}`;
158
159
  let t11;
159
- if ($[19] !== actions || $[20] !== beforeList || $[21] !== Header || $[22] !== labels || $[23] !== i18n || $[24] !== hasCreatePermission || $[25] !== isBulkUploadEnabled || $[26] !== openBulkUpload || $[27] !== newDocumentURL || $[28] !== smallBreak || $[29] !== collectionConfig || $[30] !== description || $[31] !== Description || $[32] !== fields || $[33] !== beforeListTable || $[34] !== data || $[35] !== collectionSlug || $[36] !== docs || $[37] !== afterListTable || $[38] !== handlePageChange || $[39] !== handlePerPageChange || $[40] !== searchParams || $[41] !== defaultLimit || $[42] !== beforeActions || $[43] !== disableBulkEdit || $[44] !== disableBulkDelete || $[45] !== afterList || $[46] !== t10) {
160
+ if ($[19] !== actions || $[20] !== beforeList || $[21] !== Header || $[22] !== labels || $[23] !== i18n || $[24] !== hasCreatePermission || $[25] !== newDocumentURL || $[26] !== isBulkUploadEnabled || $[27] !== t || $[28] !== openBulkUpload || $[29] !== smallBreak || $[30] !== collectionConfig || $[31] !== description || $[32] !== Description || $[33] !== fields || $[34] !== beforeListTable || $[35] !== data || $[36] !== collectionSlug || $[37] !== docs || $[38] !== afterListTable || $[39] !== handlePageChange || $[40] !== handlePerPageChange || $[41] !== searchParams || $[42] !== defaultLimit || $[43] !== beforeActions || $[44] !== disableBulkEdit || $[45] !== disableBulkDelete || $[46] !== afterList || $[47] !== t10) {
160
161
  let t12;
161
- if ($[48] !== Header || $[49] !== labels || $[50] !== i18n || $[51] !== hasCreatePermission || $[52] !== isBulkUploadEnabled || $[53] !== openBulkUpload || $[54] !== newDocumentURL || $[55] !== smallBreak || $[56] !== collectionConfig || $[57] !== description || $[58] !== Description) {
162
+ if ($[49] !== Header || $[50] !== labels || $[51] !== i18n || $[52] !== hasCreatePermission || $[53] !== newDocumentURL || $[54] !== isBulkUploadEnabled || $[55] !== t || $[56] !== openBulkUpload || $[57] !== smallBreak || $[58] !== collectionConfig || $[59] !== description || $[60] !== Description) {
162
163
  t12 = Header || _jsxs(ListHeader, {
163
164
  heading: getTranslation(labels?.plural, i18n),
164
- children: [hasCreatePermission && _jsx(Button, {
165
- Link: !isBulkUploadEnabled ? Link : undefined,
166
- "aria-label": i18n.t("general:createNewLabel", {
167
- label: getTranslation(labels?.singular, i18n)
168
- }),
169
- buttonStyle: "pill",
170
- el: !isBulkUploadEnabled ? "link" : "button",
171
- onClick: isBulkUploadEnabled ? openBulkUpload : undefined,
172
- size: "small",
173
- to: !isBulkUploadEnabled ? newDocumentURL : undefined,
174
- children: i18n.t("general:createNew")
165
+ children: [hasCreatePermission && _jsxs(_Fragment, {
166
+ children: [_jsx(Button, {
167
+ Link,
168
+ "aria-label": i18n.t("general:createNewLabel", {
169
+ label: getTranslation(labels?.singular, i18n)
170
+ }),
171
+ buttonStyle: "pill",
172
+ el: "link",
173
+ size: "small",
174
+ to: newDocumentURL,
175
+ children: i18n.t("general:createNew")
176
+ }), isBulkUploadEnabled && _jsx(Button, {
177
+ "aria-label": t("upload:bulkUpload"),
178
+ buttonStyle: "pill",
179
+ onClick: openBulkUpload,
180
+ size: "small",
181
+ children: t("upload:bulkUpload")
182
+ })]
175
183
  }), !smallBreak && _jsx(ListSelection, {
176
184
  label: getTranslation(collectionConfig.labels.plural, i18n)
177
185
  }), (description || Description) && _jsx("div", {
@@ -182,23 +190,24 @@ export const DefaultListView = () => {
182
190
  })
183
191
  })]
184
192
  });
185
- $[48] = Header;
186
- $[49] = labels;
187
- $[50] = i18n;
188
- $[51] = hasCreatePermission;
189
- $[52] = isBulkUploadEnabled;
190
- $[53] = openBulkUpload;
191
- $[54] = newDocumentURL;
192
- $[55] = smallBreak;
193
- $[56] = collectionConfig;
194
- $[57] = description;
195
- $[58] = Description;
196
- $[59] = t12;
193
+ $[49] = Header;
194
+ $[50] = labels;
195
+ $[51] = i18n;
196
+ $[52] = hasCreatePermission;
197
+ $[53] = newDocumentURL;
198
+ $[54] = isBulkUploadEnabled;
199
+ $[55] = t;
200
+ $[56] = openBulkUpload;
201
+ $[57] = smallBreak;
202
+ $[58] = collectionConfig;
203
+ $[59] = description;
204
+ $[60] = Description;
205
+ $[61] = t12;
197
206
  } else {
198
- t12 = $[59];
207
+ t12 = $[61];
199
208
  }
200
209
  let t13;
201
- if ($[60] !== data.docs || $[61] !== collectionSlug || $[62] !== collectionConfig || $[63] !== docs || $[64] !== fields) {
210
+ if ($[62] !== data.docs || $[63] !== collectionSlug || $[64] !== collectionConfig || $[65] !== docs || $[66] !== fields) {
202
211
  t13 = data.docs && data.docs.length > 0 && _jsx(RelationshipProvider, {
203
212
  children: _jsx(Table, {
204
213
  customCellContext: {
@@ -209,17 +218,17 @@ export const DefaultListView = () => {
209
218
  fields
210
219
  })
211
220
  });
212
- $[60] = data.docs;
213
- $[61] = collectionSlug;
214
- $[62] = collectionConfig;
215
- $[63] = docs;
216
- $[64] = fields;
217
- $[65] = t13;
221
+ $[62] = data.docs;
222
+ $[63] = collectionSlug;
223
+ $[64] = collectionConfig;
224
+ $[65] = docs;
225
+ $[66] = fields;
226
+ $[67] = t13;
218
227
  } else {
219
- t13 = $[65];
228
+ t13 = $[67];
220
229
  }
221
230
  let t14;
222
- if ($[66] !== data.docs || $[67] !== labels || $[68] !== i18n || $[69] !== hasCreatePermission || $[70] !== newDocumentURL) {
231
+ if ($[68] !== data.docs || $[69] !== labels || $[70] !== i18n || $[71] !== hasCreatePermission || $[72] !== newDocumentURL) {
223
232
  t14 = data.docs && data.docs.length === 0 && _jsxs("div", {
224
233
  className: `${baseClass}__no-results`,
225
234
  children: [_jsx("p", {
@@ -235,17 +244,17 @@ export const DefaultListView = () => {
235
244
  })
236
245
  })]
237
246
  });
238
- $[66] = data.docs;
239
- $[67] = labels;
240
- $[68] = i18n;
241
- $[69] = hasCreatePermission;
242
- $[70] = newDocumentURL;
243
- $[71] = t14;
247
+ $[68] = data.docs;
248
+ $[69] = labels;
249
+ $[70] = i18n;
250
+ $[71] = hasCreatePermission;
251
+ $[72] = newDocumentURL;
252
+ $[73] = t14;
244
253
  } else {
245
- t14 = $[71];
254
+ t14 = $[73];
246
255
  }
247
256
  let t15;
248
- if ($[72] !== data || $[73] !== handlePageChange || $[74] !== i18n || $[75] !== handlePerPageChange || $[76] !== searchParams || $[77] !== defaultLimit || $[78] !== collectionConfig || $[79] !== smallBreak || $[80] !== beforeActions || $[81] !== disableBulkEdit || $[82] !== fields || $[83] !== disableBulkDelete) {
257
+ if ($[74] !== data || $[75] !== handlePageChange || $[76] !== i18n || $[77] !== handlePerPageChange || $[78] !== searchParams || $[79] !== defaultLimit || $[80] !== collectionConfig || $[81] !== smallBreak || $[82] !== beforeActions || $[83] !== disableBulkEdit || $[84] !== fields || $[85] !== disableBulkDelete) {
249
258
  t15 = data.docs && data.docs.length > 0 && _jsxs("div", {
250
259
  className: `${baseClass}__page-controls`,
251
260
  children: [_jsx(Pagination, {
@@ -289,21 +298,21 @@ export const DefaultListView = () => {
289
298
  })]
290
299
  })]
291
300
  });
292
- $[72] = data;
293
- $[73] = handlePageChange;
294
- $[74] = i18n;
295
- $[75] = handlePerPageChange;
296
- $[76] = searchParams;
297
- $[77] = defaultLimit;
298
- $[78] = collectionConfig;
299
- $[79] = smallBreak;
300
- $[80] = beforeActions;
301
- $[81] = disableBulkEdit;
302
- $[82] = fields;
303
- $[83] = disableBulkDelete;
304
- $[84] = t15;
301
+ $[74] = data;
302
+ $[75] = handlePageChange;
303
+ $[76] = i18n;
304
+ $[77] = handlePerPageChange;
305
+ $[78] = searchParams;
306
+ $[79] = defaultLimit;
307
+ $[80] = collectionConfig;
308
+ $[81] = smallBreak;
309
+ $[82] = beforeActions;
310
+ $[83] = disableBulkEdit;
311
+ $[84] = fields;
312
+ $[85] = disableBulkDelete;
313
+ $[86] = t15;
305
314
  } else {
306
- t15 = $[84];
315
+ t15 = $[86];
307
316
  }
308
317
  t11 = _jsxs("div", {
309
318
  className: t10,
@@ -338,31 +347,32 @@ export const DefaultListView = () => {
338
347
  $[22] = labels;
339
348
  $[23] = i18n;
340
349
  $[24] = hasCreatePermission;
341
- $[25] = isBulkUploadEnabled;
342
- $[26] = openBulkUpload;
343
- $[27] = newDocumentURL;
344
- $[28] = smallBreak;
345
- $[29] = collectionConfig;
346
- $[30] = description;
347
- $[31] = Description;
348
- $[32] = fields;
349
- $[33] = beforeListTable;
350
- $[34] = data;
351
- $[35] = collectionSlug;
352
- $[36] = docs;
353
- $[37] = afterListTable;
354
- $[38] = handlePageChange;
355
- $[39] = handlePerPageChange;
356
- $[40] = searchParams;
357
- $[41] = defaultLimit;
358
- $[42] = beforeActions;
359
- $[43] = disableBulkEdit;
360
- $[44] = disableBulkDelete;
361
- $[45] = afterList;
362
- $[46] = t10;
363
- $[47] = t11;
350
+ $[25] = newDocumentURL;
351
+ $[26] = isBulkUploadEnabled;
352
+ $[27] = t;
353
+ $[28] = openBulkUpload;
354
+ $[29] = smallBreak;
355
+ $[30] = collectionConfig;
356
+ $[31] = description;
357
+ $[32] = Description;
358
+ $[33] = fields;
359
+ $[34] = beforeListTable;
360
+ $[35] = data;
361
+ $[36] = collectionSlug;
362
+ $[37] = docs;
363
+ $[38] = afterListTable;
364
+ $[39] = handlePageChange;
365
+ $[40] = handlePerPageChange;
366
+ $[41] = searchParams;
367
+ $[42] = defaultLimit;
368
+ $[43] = beforeActions;
369
+ $[44] = disableBulkEdit;
370
+ $[45] = disableBulkDelete;
371
+ $[46] = afterList;
372
+ $[47] = t10;
373
+ $[48] = t11;
364
374
  } else {
365
- t11 = $[47];
375
+ t11 = $[48];
366
376
  }
367
377
  return t11;
368
378
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","Button","DeleteMany","EditMany","Gutter","ListControls","ListHeader","ListSelection","Pagination","PerPage","PublishMany","RelationshipProvider","RenderComponent","SelectionProvider","SetViewActions","StaggeredShimmers","Table","UnpublishMany","ViewDescription","useBulkUpload","useConfig","useEditDepth","useListInfo","useListQuery","useModal","useRouteCache","useSearchParams","useStepNav","useTranslation","useWindowInfo","LinkImport","formatFilesize","isNumber","React","Fragment","useEffect","baseClass","Link","default","DefaultListView","$","Header","beforeActions","collectionSlug","disableBulkDelete","disableBulkEdit","hasCreatePermission","newDocumentURL","data","defaultLimit","handlePageChange","handlePerPageChange","searchParams","openModal","clearRouteCache","setCollectionSlug","setOnSuccess","drawerSlug","getEntityConfig","t0","collectionConfig","admin","t1","fields","labels","components","t2","description","Description","afterList","afterListTable","beforeList","beforeListTable","views","t3","list","t4","actions","i18n","drawerDepth","setStepNav","breakpoints","t5","s","smallBreak","t6","docs","isUploadCollection","Boolean","upload","t7","map","_temp","openBulkUpload","t8","t9","label","plural","isBulkUploadEnabled","bulkUpload","t10","t11","t12","_jsxs","heading","children","_jsx","undefined","t","singular","buttonStyle","el","onClick","size","to","className","t13","length","customCellContext","uploadConfig","t14","t15","hasNextPage","hasPrevPage","limit","nextPage","numberOfNeighbors","onChange","page","prevPage","totalPages","totalDocs","handleChange","Number","limits","pagination","resetPage","pagingCounter","collection","mappedComponent","join","count","doc","filesize"],"sources":["../../../../src/views/List/Default/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n DeleteMany,\n EditMany,\n Gutter,\n ListControls,\n ListHeader,\n ListSelection,\n Pagination,\n PerPage,\n PublishMany,\n RelationshipProvider,\n RenderComponent,\n SelectionProvider,\n SetViewActions,\n StaggeredShimmers,\n Table,\n UnpublishMany,\n ViewDescription,\n useBulkUpload,\n useConfig,\n useEditDepth,\n useListInfo,\n useListQuery,\n useModal,\n useRouteCache,\n useSearchParams,\n useStepNav,\n useTranslation,\n useWindowInfo,\n} from '@payloadcms/ui'\nimport LinkImport from 'next/link.js'\nimport { formatFilesize, isNumber } from 'payload/shared'\nimport React, { Fragment, useEffect } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'collection-list'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const DefaultListView: React.FC = () => {\n const {\n Header,\n beforeActions,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n hasCreatePermission,\n newDocumentURL,\n } = useListInfo()\n\n const { data, defaultLimit, handlePageChange, handlePerPageChange } = useListQuery()\n const { searchParams } = useSearchParams()\n const { openModal } = useModal()\n const { clearRouteCache } = useRouteCache()\n const { setCollectionSlug, setOnSuccess } = useBulkUpload()\n const { drawerSlug } = useBulkUpload()\n\n const { getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n\n const {\n admin: {\n components: {\n Description,\n afterList,\n afterListTable,\n beforeList,\n beforeListTable,\n views: {\n list: { actions },\n },\n },\n description,\n },\n fields,\n labels,\n } = collectionConfig\n\n const { i18n, t } = useTranslation()\n\n const drawerDepth = useEditDepth()\n\n const { setStepNav } = useStepNav()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n let docs = data.docs || []\n\n const isUploadCollection = Boolean(collectionConfig.upload)\n\n if (isUploadCollection) {\n docs = docs?.map((doc) => {\n return {\n ...doc,\n filesize: formatFilesize(doc.filesize),\n }\n })\n }\n\n const openBulkUpload = React.useCallback(() => {\n setCollectionSlug(collectionSlug)\n openModal(drawerSlug)\n setOnSuccess(clearRouteCache)\n }, [clearRouteCache, collectionSlug, drawerSlug, openModal, setCollectionSlug, setOnSuccess])\n\n useEffect(() => {\n if (drawerDepth <= 1) {\n setStepNav([\n {\n label: labels?.plural,\n },\n ])\n }\n }, [setStepNav, labels, drawerDepth])\n\n const isBulkUploadEnabled = isUploadCollection && collectionConfig.upload.bulkUpload\n\n return (\n <div className={`${baseClass} ${baseClass}--${collectionSlug}`}>\n <SetViewActions actions={actions} />\n <RenderComponent mappedComponent={beforeList} />\n <SelectionProvider docs={data.docs} totalDocs={data.totalDocs}>\n <Gutter className={`${baseClass}__wrap`}>\n {Header || (\n <ListHeader heading={getTranslation(labels?.plural, i18n)}>\n {hasCreatePermission && (\n <Button\n Link={!isBulkUploadEnabled ? Link : undefined}\n aria-label={i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n buttonStyle=\"pill\"\n el={!isBulkUploadEnabled ? 'link' : 'button'}\n onClick={isBulkUploadEnabled ? openBulkUpload : undefined}\n size=\"small\"\n to={!isBulkUploadEnabled ? newDocumentURL : undefined}\n >\n {i18n.t('general:createNew')}\n </Button>\n )}\n {!smallBreak && (\n <ListSelection label={getTranslation(collectionConfig.labels.plural, i18n)} />\n )}\n {(description || Description) && (\n <div className={`${baseClass}__sub-header`}>\n <ViewDescription Description={Description} description={description} />\n </div>\n )}\n </ListHeader>\n )}\n <ListControls collectionConfig={collectionConfig} fields={fields} />\n <RenderComponent mappedComponent={beforeListTable} />\n {!data.docs && (\n <StaggeredShimmers\n className={[`${baseClass}__shimmer`, `${baseClass}__shimmer--rows`].join(' ')}\n count={6}\n />\n )}\n {data.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <Table\n customCellContext={{\n collectionSlug,\n uploadConfig: collectionConfig.upload,\n }}\n data={docs}\n fields={fields}\n />\n </RelationshipProvider>\n )}\n {data.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>{i18n.t('general:noResults', { label: getTranslation(labels?.plural, i18n) })}</p>\n {hasCreatePermission && newDocumentURL && (\n <Button Link={Link} el=\"link\" to={newDocumentURL}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n <RenderComponent mappedComponent={afterListTable} />\n {data.docs && data.docs.length > 0 && (\n <div className={`${baseClass}__page-controls`}>\n <Pagination\n hasNextPage={data.hasNextPage}\n hasPrevPage={data.hasPrevPage}\n limit={data.limit}\n nextPage={data.nextPage}\n numberOfNeighbors={1}\n onChange={(page) => void handlePageChange(page)}\n page={data.page}\n prevPage={data.prevPage}\n totalPages={data.totalPages}\n />\n {data?.totalDocs > 0 && (\n <Fragment>\n <div className={`${baseClass}__page-info`}>\n {data.page * data.limit - (data.limit - 1)}-\n {data.totalPages > 1 && data.totalPages !== data.page\n ? data.limit * data.page\n : data.totalDocs}{' '}\n {i18n.t('general:of')} {data.totalDocs}\n </div>\n <PerPage\n handleChange={(limit) => void handlePerPageChange(limit)}\n limit={\n isNumber(searchParams?.limit) ? Number(searchParams.limit) : defaultLimit\n }\n limits={collectionConfig?.admin?.pagination?.limits}\n resetPage={data.totalDocs <= data.pagingCounter}\n />\n {smallBreak && (\n <div className={`${baseClass}__list-selection`}>\n <ListSelection label={getTranslation(collectionConfig.labels.plural, i18n)} />\n <div className={`${baseClass}__list-selection-actions`}>\n {beforeActions && beforeActions}\n {!disableBulkEdit && (\n <Fragment>\n <EditMany collection={collectionConfig} fields={fields} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n </Fragment>\n )}\n {!disableBulkDelete && <DeleteMany collection={collectionConfig} />}\n </div>\n </div>\n )}\n </Fragment>\n )}\n </div>\n )}\n </Gutter>\n </SelectionProvider>\n <RenderComponent mappedComponent={afterList} />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","Button","DeleteMany","EditMany","Gutter","ListControls","ListHeader","ListSelection","Pagination","PerPage","PublishMany","RelationshipProvider","RenderComponent","SelectionProvider","SetViewActions","StaggeredShimmers","Table","UnpublishMany","ViewDescription","useBulkUpload","useConfig","useEditDepth","useListInfo","useListQuery","useModal","useRouteCache","useSearchParams","useStepNav","useTranslation","useWindowInfo","LinkImport","formatFilesize","isNumber","React","Fragment","useEffect","baseClass","Link","default","DefaultListView","$","Header","beforeActions","collectionSlug","disableBulkDelete","disableBulkEdit","hasCreatePermission","newDocumentURL","data","defaultLimit","handlePageChange","handlePerPageChange","searchParams","openModal","clearRouteCache","setCollectionSlug","setOnSuccess","drawerSlug","getEntityConfig","t0","collectionConfig","admin","t1","fields","labels","components","t2","description","Description","afterList","afterListTable","beforeList","beforeListTable","views","t3","list","t4","actions","i18n","t","drawerDepth","setStepNav","breakpoints","t5","s","smallBreak","t6","docs","isUploadCollection","Boolean","upload","t7","map","_temp","openBulkUpload","t8","t9","label","plural","isBulkUploadEnabled","bulkUpload","t10","t11","t12","_jsxs","heading","children","_Fragment","_jsx","singular","buttonStyle","el","size","to","onClick","className","t13","length","customCellContext","uploadConfig","t14","t15","hasNextPage","hasPrevPage","limit","nextPage","numberOfNeighbors","onChange","page","prevPage","totalPages","totalDocs","handleChange","Number","limits","pagination","resetPage","pagingCounter","collection","mappedComponent","join","count","doc","filesize"],"sources":["../../../../src/views/List/Default/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n DeleteMany,\n EditMany,\n Gutter,\n ListControls,\n ListHeader,\n ListSelection,\n Pagination,\n PerPage,\n PublishMany,\n RelationshipProvider,\n RenderComponent,\n SelectionProvider,\n SetViewActions,\n StaggeredShimmers,\n Table,\n UnpublishMany,\n ViewDescription,\n useBulkUpload,\n useConfig,\n useEditDepth,\n useListInfo,\n useListQuery,\n useModal,\n useRouteCache,\n useSearchParams,\n useStepNav,\n useTranslation,\n useWindowInfo,\n} from '@payloadcms/ui'\nimport LinkImport from 'next/link.js'\nimport { formatFilesize, isNumber } from 'payload/shared'\nimport React, { Fragment, useEffect } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'collection-list'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const DefaultListView: React.FC = () => {\n const {\n Header,\n beforeActions,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n hasCreatePermission,\n newDocumentURL,\n } = useListInfo()\n\n const { data, defaultLimit, handlePageChange, handlePerPageChange } = useListQuery()\n const { searchParams } = useSearchParams()\n const { openModal } = useModal()\n const { clearRouteCache } = useRouteCache()\n const { setCollectionSlug, setOnSuccess } = useBulkUpload()\n const { drawerSlug } = useBulkUpload()\n\n const { getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n\n const {\n admin: {\n components: {\n Description,\n afterList,\n afterListTable,\n beforeList,\n beforeListTable,\n views: {\n list: { actions },\n },\n },\n description,\n },\n fields,\n labels,\n } = collectionConfig\n\n const { i18n, t } = useTranslation()\n\n const drawerDepth = useEditDepth()\n\n const { setStepNav } = useStepNav()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n let docs = data.docs || []\n\n const isUploadCollection = Boolean(collectionConfig.upload)\n\n if (isUploadCollection) {\n docs = docs?.map((doc) => {\n return {\n ...doc,\n filesize: formatFilesize(doc.filesize),\n }\n })\n }\n\n const openBulkUpload = React.useCallback(() => {\n setCollectionSlug(collectionSlug)\n openModal(drawerSlug)\n setOnSuccess(clearRouteCache)\n }, [clearRouteCache, collectionSlug, drawerSlug, openModal, setCollectionSlug, setOnSuccess])\n\n useEffect(() => {\n if (drawerDepth <= 1) {\n setStepNav([\n {\n label: labels?.plural,\n },\n ])\n }\n }, [setStepNav, labels, drawerDepth])\n\n const isBulkUploadEnabled = isUploadCollection && collectionConfig.upload.bulkUpload\n\n return (\n <div className={`${baseClass} ${baseClass}--${collectionSlug}`}>\n <SetViewActions actions={actions} />\n <RenderComponent mappedComponent={beforeList} />\n <SelectionProvider docs={data.docs} totalDocs={data.totalDocs}>\n <Gutter className={`${baseClass}__wrap`}>\n {Header || (\n <ListHeader heading={getTranslation(labels?.plural, i18n)}>\n {hasCreatePermission && (\n <>\n <Button\n Link={Link}\n aria-label={i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n buttonStyle=\"pill\"\n el={'link'}\n size=\"small\"\n to={newDocumentURL}\n >\n {i18n.t('general:createNew')}\n </Button>\n\n {isBulkUploadEnabled && (\n <Button\n aria-label={t('upload:bulkUpload')}\n buttonStyle=\"pill\"\n onClick={openBulkUpload}\n size=\"small\"\n >\n {t('upload:bulkUpload')}\n </Button>\n )}\n </>\n )}\n {!smallBreak && (\n <ListSelection label={getTranslation(collectionConfig.labels.plural, i18n)} />\n )}\n {(description || Description) && (\n <div className={`${baseClass}__sub-header`}>\n <ViewDescription Description={Description} description={description} />\n </div>\n )}\n </ListHeader>\n )}\n <ListControls collectionConfig={collectionConfig} fields={fields} />\n <RenderComponent mappedComponent={beforeListTable} />\n {!data.docs && (\n <StaggeredShimmers\n className={[`${baseClass}__shimmer`, `${baseClass}__shimmer--rows`].join(' ')}\n count={6}\n />\n )}\n {data.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <Table\n customCellContext={{\n collectionSlug,\n uploadConfig: collectionConfig.upload,\n }}\n data={docs}\n fields={fields}\n />\n </RelationshipProvider>\n )}\n {data.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>{i18n.t('general:noResults', { label: getTranslation(labels?.plural, i18n) })}</p>\n {hasCreatePermission && newDocumentURL && (\n <Button Link={Link} el=\"link\" to={newDocumentURL}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n <RenderComponent mappedComponent={afterListTable} />\n {data.docs && data.docs.length > 0 && (\n <div className={`${baseClass}__page-controls`}>\n <Pagination\n hasNextPage={data.hasNextPage}\n hasPrevPage={data.hasPrevPage}\n limit={data.limit}\n nextPage={data.nextPage}\n numberOfNeighbors={1}\n onChange={(page) => void handlePageChange(page)}\n page={data.page}\n prevPage={data.prevPage}\n totalPages={data.totalPages}\n />\n {data?.totalDocs > 0 && (\n <Fragment>\n <div className={`${baseClass}__page-info`}>\n {data.page * data.limit - (data.limit - 1)}-\n {data.totalPages > 1 && data.totalPages !== data.page\n ? data.limit * data.page\n : data.totalDocs}{' '}\n {i18n.t('general:of')} {data.totalDocs}\n </div>\n <PerPage\n handleChange={(limit) => void handlePerPageChange(limit)}\n limit={\n isNumber(searchParams?.limit) ? Number(searchParams.limit) : defaultLimit\n }\n limits={collectionConfig?.admin?.pagination?.limits}\n resetPage={data.totalDocs <= data.pagingCounter}\n />\n {smallBreak && (\n <div className={`${baseClass}__list-selection`}>\n <ListSelection label={getTranslation(collectionConfig.labels.plural, i18n)} />\n <div className={`${baseClass}__list-selection-actions`}>\n {beforeActions && beforeActions}\n {!disableBulkEdit && (\n <Fragment>\n <EditMany collection={collectionConfig} fields={fields} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n </Fragment>\n )}\n {!disableBulkDelete && <DeleteMany collection={collectionConfig} />}\n </div>\n </div>\n )}\n </Fragment>\n )}\n </div>\n )}\n </Gutter>\n </SelectionProvider>\n <RenderComponent mappedComponent={afterList} />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/LivePreview/Context/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAI7D,OAAO,KAA2C,MAAM,OAAO,CAAA;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAM1D,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;IAC9C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,UAAU,CAAC,EAAE;QACX,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,WAAW,EAAE,WAAW,EAAE,CAAA;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,eAAe,CAAC,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,iBAAiB,CAAC,CAAA;IACtE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAClC,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA0KlE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/LivePreview/Context/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAI7D,OAAO,KAA2C,MAAM,OAAO,CAAA;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAM1D,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;IAC9C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,UAAU,CAAC,EAAE;QACX,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,WAAW,EAAE,WAAW,EAAE,CAAA;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,eAAe,CAAC,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,iBAAiB,CAAC,CAAA;IACtE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAClC,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA4KlE,CAAA"}
@@ -100,7 +100,9 @@ export const LivePreviewProvider = ({
100
100
  const handleWindowChange = useCallback(type => {
101
101
  setAppIsReady(false);
102
102
  setPreviewWindowType(type);
103
- if (type === 'popup') openPopupWindow();
103
+ if (type === 'popup') {
104
+ openPopupWindow();
105
+ }
104
106
  }, [openPopupWindow]);
105
107
  // when the user closes the popup window, switch back to the iframe
106
108
  // the `usePopupWindow` reports the `isPopupOpen` state for us to use here
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["DndContext","fieldSchemaToJSON","React","useCallback","useEffect","useState","customCollisionDetection","LivePreviewContext","sizeReducer","LivePreviewProvider","breakpoints","children","fieldSchema","isPopupOpen","openPopupWindow","popupRef","url","previewWindowType","setPreviewWindowType","appIsReady","setAppIsReady","listeningForMessages","setListeningForMessages","iframeRef","useRef","iframeHasLoaded","setIframeHasLoaded","zoom","setZoom","position","setPosition","x","y","size","setSize","useReducer","height","width","measuredDeviceSize","setMeasuredDeviceSize","breakpoint","setBreakpoint","fieldSchemaJSON","handleDragEnd","ev","over","id","newPos","delta","setWidth","type","value","setHeight","foundBreakpoint","find","bp","name","handleMessage","event","startsWith","origin","data","ready","window","addEventListener","removeEventListener","handleWindowChange","newPreviewWindowType","_jsx","Provider","setToolbarPosition","toolbarPosition","collisionDetection","onDragEnd"],"sources":["../../../../src/views/LivePreview/Context/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, LivePreviewConfig } from 'payload'\n\nimport { DndContext } from '@dnd-kit/core'\nimport { fieldSchemaToJSON } from 'payload/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { usePopupWindow } from '../usePopupWindow.js'\n\nimport { customCollisionDetection } from './collisionDetection.js'\nimport { LivePreviewContext } from './context.js'\nimport { sizeReducer } from './sizeReducer.js'\n\nexport type LivePreviewProviderProps = {\n appIsReady?: boolean\n breakpoints?: LivePreviewConfig['breakpoints']\n children: React.ReactNode\n deviceSize?: {\n height: number\n width: number\n }\n fieldSchema: ClientField[]\n isPopupOpen?: boolean\n openPopupWindow?: ReturnType<typeof usePopupWindow>['openPopupWindow']\n popupRef?: React.RefObject<Window>\n url?: string\n}\n\nexport const LivePreviewProvider: React.FC<LivePreviewProviderProps> = ({\n breakpoints,\n children,\n fieldSchema,\n isPopupOpen,\n openPopupWindow,\n popupRef,\n url,\n}) => {\n const [previewWindowType, setPreviewWindowType] = useState<'iframe' | 'popup'>('iframe')\n\n const [appIsReady, setAppIsReady] = useState(false)\n const [listeningForMessages, setListeningForMessages] = useState(false)\n\n const iframeRef = React.useRef<HTMLIFrameElement>(null)\n\n const [iframeHasLoaded, setIframeHasLoaded] = useState(false)\n\n const [zoom, setZoom] = useState(1)\n\n const [position, setPosition] = useState({ x: 0, y: 0 })\n\n const [size, setSize] = React.useReducer(sizeReducer, { height: 0, width: 0 })\n\n const [measuredDeviceSize, setMeasuredDeviceSize] = useState({\n height: 0,\n width: 0,\n })\n\n const [breakpoint, setBreakpoint] =\n React.useState<LivePreviewConfig['breakpoints'][0]['name']>('responsive')\n\n const [fieldSchemaJSON] = useState(() => {\n return fieldSchemaToJSON(fieldSchema)\n })\n\n // The toolbar needs to freely drag and drop around the page\n const handleDragEnd = (ev) => {\n // only update position if the toolbar is completely within the preview area\n // otherwise reset it back to the previous position\n // TODO: reset to the nearest edge of the preview area\n if (ev.over && ev.over.id === 'live-preview-area') {\n const newPos = {\n x: position.x + ev.delta.x,\n y: position.y + ev.delta.y,\n }\n\n setPosition(newPos)\n } else {\n // reset\n }\n }\n\n const setWidth = useCallback(\n (width) => {\n setSize({ type: 'width', value: width })\n },\n [setSize],\n )\n\n const setHeight = useCallback(\n (height) => {\n setSize({ type: 'height', value: height })\n },\n [setSize],\n )\n\n // explicitly set new width and height when as new breakpoints are selected\n // exclude `custom` breakpoint as it is handled by the `setWidth` and `setHeight` directly\n useEffect(() => {\n const foundBreakpoint = breakpoints?.find((bp) => bp.name === breakpoint)\n\n if (\n foundBreakpoint &&\n breakpoint !== 'responsive' &&\n breakpoint !== 'custom' &&\n typeof foundBreakpoint?.width === 'number' &&\n typeof foundBreakpoint?.height === 'number'\n ) {\n setSize({\n type: 'reset',\n value: {\n height: foundBreakpoint.height,\n width: foundBreakpoint.width,\n },\n })\n }\n }, [breakpoint, breakpoints])\n\n // Receive the `ready` message from the popup window\n // This indicates that the app is ready to receive `window.postMessage` events\n // This is also the only cross-origin way of detecting when a popup window has loaded\n // Unlike iframe elements which have an `onLoad` handler, there is no way to access `window.open` on popups\n useEffect(() => {\n const handleMessage = (event: MessageEvent) => {\n if (\n url?.startsWith(event.origin) &&\n event.data &&\n typeof event.data === 'object' &&\n event.data.type === 'payload-live-preview'\n ) {\n if (event.data.ready) {\n setAppIsReady(true)\n }\n }\n }\n\n window.addEventListener('message', handleMessage)\n\n setListeningForMessages(true)\n\n return () => {\n window.removeEventListener('message', handleMessage)\n }\n }, [url, listeningForMessages])\n\n const handleWindowChange = useCallback(\n (type: 'iframe' | 'popup') => {\n setAppIsReady(false)\n setPreviewWindowType(type)\n if (type === 'popup') openPopupWindow()\n },\n [openPopupWindow],\n )\n\n // when the user closes the popup window, switch back to the iframe\n // the `usePopupWindow` reports the `isPopupOpen` state for us to use here\n useEffect(() => {\n const newPreviewWindowType = isPopupOpen ? 'popup' : 'iframe'\n\n if (newPreviewWindowType !== previewWindowType) {\n handleWindowChange('iframe')\n }\n }, [previewWindowType, isPopupOpen, handleWindowChange])\n\n return (\n <LivePreviewContext.Provider\n value={{\n appIsReady,\n breakpoint,\n breakpoints,\n fieldSchemaJSON,\n iframeHasLoaded,\n iframeRef,\n isPopupOpen,\n measuredDeviceSize,\n openPopupWindow,\n popupRef,\n previewWindowType,\n setAppIsReady,\n setBreakpoint,\n setHeight,\n setIframeHasLoaded,\n setMeasuredDeviceSize,\n setPreviewWindowType: handleWindowChange,\n setSize,\n setToolbarPosition: setPosition,\n setWidth,\n setZoom,\n size,\n toolbarPosition: position,\n url,\n zoom,\n }}\n >\n <DndContext collisionDetection={customCollisionDetection} onDragEnd={handleDragEnd}>\n {listeningForMessages && children}\n </DndContext>\n </LivePreviewContext.Provider>\n )\n}\n"],"mappings":"AAAA;;;AAGA,SAASA,UAAU,QAAQ;AAC3B,SAASC,iBAAiB,QAAQ;AAClC,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ;AAIxD,SAASC,wBAAwB,QAAQ;AACzC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,WAAW,QAAQ;AAiB5B,OAAO,MAAMC,mBAAA,GAA0DA,CAAC;EACtEC,WAAW;EACXC,QAAQ;EACRC,WAAW;EACXC,WAAW;EACXC,eAAe;EACfC,QAAQ;EACRC;AAAG,CACJ;EACC,MAAM,CAACC,iBAAA,EAAmBC,oBAAA,CAAqB,GAAGb,QAAA,CAA6B;EAE/E,MAAM,CAACc,UAAA,EAAYC,aAAA,CAAc,GAAGf,QAAA,CAAS;EAC7C,MAAM,CAACgB,oBAAA,EAAsBC,uBAAA,CAAwB,GAAGjB,QAAA,CAAS;EAEjE,MAAMkB,SAAA,GAAYrB,KAAA,CAAMsB,MAAM,CAAoB;EAElD,MAAM,CAACC,eAAA,EAAiBC,kBAAA,CAAmB,GAAGrB,QAAA,CAAS;EAEvD,MAAM,CAACsB,IAAA,EAAMC,OAAA,CAAQ,GAAGvB,QAAA,CAAS;EAEjC,MAAM,CAACwB,QAAA,EAAUC,WAAA,CAAY,GAAGzB,QAAA,CAAS;IAAE0B,CAAA,EAAG;IAAGC,CAAA,EAAG;EAAE;EAEtD,MAAM,CAACC,IAAA,EAAMC,OAAA,CAAQ,GAAGhC,KAAA,CAAMiC,UAAU,CAAC3B,WAAA,EAAa;IAAE4B,MAAA,EAAQ;IAAGC,KAAA,EAAO;EAAE;EAE5E,MAAM,CAACC,kBAAA,EAAoBC,qBAAA,CAAsB,GAAGlC,QAAA,CAAS;IAC3D+B,MAAA,EAAQ;IACRC,KAAA,EAAO;EACT;EAEA,MAAM,CAACG,UAAA,EAAYC,aAAA,CAAc,GAC/BvC,KAAA,CAAMG,QAAQ,CAA8C;EAE9D,MAAM,CAACqC,eAAA,CAAgB,GAAGrC,QAAA,CAAS;IACjC,OAAOJ,iBAAA,CAAkBW,WAAA;EAC3B;EAEA;EACA,MAAM+B,aAAA,GAAiBC,EAAA;IACrB;IACA;IACA;IACA,IAAIA,EAAA,CAAGC,IAAI,IAAID,EAAA,CAAGC,IAAI,CAACC,EAAE,KAAK,qBAAqB;MACjD,MAAMC,MAAA,GAAS;QACbhB,CAAA,EAAGF,QAAA,CAASE,CAAC,GAAGa,EAAA,CAAGI,KAAK,CAACjB,CAAC;QAC1BC,CAAA,EAAGH,QAAA,CAASG,CAAC,GAAGY,EAAA,CAAGI,KAAK,CAAChB;MAC3B;MAEAF,WAAA,CAAYiB,MAAA;IACd,OAAO;MACL;IAAA;EAEJ;EAEA,MAAME,QAAA,GAAW9C,WAAA,CACdkC,KAAA;IACCH,OAAA,CAAQ;MAAEgB,IAAA,EAAM;MAASC,KAAA,EAAOd;IAAM;EACxC,GACA,CAACH,OAAA,CAAQ;EAGX,MAAMkB,SAAA,GAAYjD,WAAA,CACfiC,MAAA;IACCF,OAAA,CAAQ;MAAEgB,IAAA,EAAM;MAAUC,KAAA,EAAOf;IAAO;EAC1C,GACA,CAACF,OAAA,CAAQ;EAGX;EACA;EACA9B,SAAA,CAAU;IACR,MAAMiD,eAAA,GAAkB3C,WAAA,EAAa4C,IAAA,CAAMC,EAAA,IAAOA,EAAA,CAAGC,IAAI,KAAKhB,UAAA;IAE9D,IACEa,eAAA,IACAb,UAAA,KAAe,gBACfA,UAAA,KAAe,YACf,OAAOa,eAAA,EAAiBhB,KAAA,KAAU,YAClC,OAAOgB,eAAA,EAAiBjB,MAAA,KAAW,UACnC;MACAF,OAAA,CAAQ;QACNgB,IAAA,EAAM;QACNC,KAAA,EAAO;UACLf,MAAA,EAAQiB,eAAA,CAAgBjB,MAAM;UAC9BC,KAAA,EAAOgB,eAAA,CAAgBhB;QACzB;MACF;IACF;EACF,GAAG,CAACG,UAAA,EAAY9B,WAAA,CAAY;EAE5B;EACA;EACA;EACA;EACAN,SAAA,CAAU;IACR,MAAMqD,aAAA,GAAiBC,KAAA;MACrB,IACE1C,GAAA,EAAK2C,UAAA,CAAWD,KAAA,CAAME,MAAM,KAC5BF,KAAA,CAAMG,IAAI,IACV,OAAOH,KAAA,CAAMG,IAAI,KAAK,YACtBH,KAAA,CAAMG,IAAI,CAACX,IAAI,KAAK,wBACpB;QACA,IAAIQ,KAAA,CAAMG,IAAI,CAACC,KAAK,EAAE;UACpB1C,aAAA,CAAc;QAChB;MACF;IACF;IAEA2C,MAAA,CAAOC,gBAAgB,CAAC,WAAWP,aAAA;IAEnCnC,uBAAA,CAAwB;IAExB,OAAO;MACLyC,MAAA,CAAOE,mBAAmB,CAAC,WAAWR,aAAA;IACxC;EACF,GAAG,CAACzC,GAAA,EAAKK,oBAAA,CAAqB;EAE9B,MAAM6C,kBAAA,GAAqB/D,WAAA,CACxB+C,IAAA;IACC9B,aAAA,CAAc;IACdF,oBAAA,CAAqBgC,IAAA;IACrB,IAAIA,IAAA,KAAS,SAASpC,eAAA;EACxB,GACA,CAACA,eAAA,CAAgB;EAGnB;EACA;EACAV,SAAA,CAAU;IACR,MAAM+D,oBAAA,GAAuBtD,WAAA,GAAc,UAAU;IAErD,IAAIsD,oBAAA,KAAyBlD,iBAAA,EAAmB;MAC9CiD,kBAAA,CAAmB;IACrB;EACF,GAAG,CAACjD,iBAAA,EAAmBJ,WAAA,EAAaqD,kBAAA,CAAmB;EAEvD,oBACEE,IAAA,CAAC7D,kBAAA,CAAmB8D,QAAQ;IAC1BlB,KAAA,EAAO;MACLhC,UAAA;MACAqB,UAAA;MACA9B,WAAA;MACAgC,eAAA;MACAjB,eAAA;MACAF,SAAA;MACAV,WAAA;MACAyB,kBAAA;MACAxB,eAAA;MACAC,QAAA;MACAE,iBAAA;MACAG,aAAA;MACAqB,aAAA;MACAW,SAAA;MACA1B,kBAAA;MACAa,qBAAA;MACArB,oBAAA,EAAsBgD,kBAAA;MACtBhC,OAAA;MACAoC,kBAAA,EAAoBxC,WAAA;MACpBmB,QAAA;MACArB,OAAA;MACAK,IAAA;MACAsC,eAAA,EAAiB1C,QAAA;MACjBb,GAAA;MACAW;IACF;cAEA,aAAAyC,IAAA,CAACpE,UAAA;MAAWwE,kBAAA,EAAoBlE,wBAAA;MAA0BmE,SAAA,EAAW9B,aAAA;gBAClEtB,oBAAA,IAAwBV;;;AAIjC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["DndContext","fieldSchemaToJSON","React","useCallback","useEffect","useState","customCollisionDetection","LivePreviewContext","sizeReducer","LivePreviewProvider","breakpoints","children","fieldSchema","isPopupOpen","openPopupWindow","popupRef","url","previewWindowType","setPreviewWindowType","appIsReady","setAppIsReady","listeningForMessages","setListeningForMessages","iframeRef","useRef","iframeHasLoaded","setIframeHasLoaded","zoom","setZoom","position","setPosition","x","y","size","setSize","useReducer","height","width","measuredDeviceSize","setMeasuredDeviceSize","breakpoint","setBreakpoint","fieldSchemaJSON","handleDragEnd","ev","over","id","newPos","delta","setWidth","type","value","setHeight","foundBreakpoint","find","bp","name","handleMessage","event","startsWith","origin","data","ready","window","addEventListener","removeEventListener","handleWindowChange","newPreviewWindowType","_jsx","Provider","setToolbarPosition","toolbarPosition","collisionDetection","onDragEnd"],"sources":["../../../../src/views/LivePreview/Context/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, LivePreviewConfig } from 'payload'\n\nimport { DndContext } from '@dnd-kit/core'\nimport { fieldSchemaToJSON } from 'payload/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { usePopupWindow } from '../usePopupWindow.js'\n\nimport { customCollisionDetection } from './collisionDetection.js'\nimport { LivePreviewContext } from './context.js'\nimport { sizeReducer } from './sizeReducer.js'\n\nexport type LivePreviewProviderProps = {\n appIsReady?: boolean\n breakpoints?: LivePreviewConfig['breakpoints']\n children: React.ReactNode\n deviceSize?: {\n height: number\n width: number\n }\n fieldSchema: ClientField[]\n isPopupOpen?: boolean\n openPopupWindow?: ReturnType<typeof usePopupWindow>['openPopupWindow']\n popupRef?: React.RefObject<Window>\n url?: string\n}\n\nexport const LivePreviewProvider: React.FC<LivePreviewProviderProps> = ({\n breakpoints,\n children,\n fieldSchema,\n isPopupOpen,\n openPopupWindow,\n popupRef,\n url,\n}) => {\n const [previewWindowType, setPreviewWindowType] = useState<'iframe' | 'popup'>('iframe')\n\n const [appIsReady, setAppIsReady] = useState(false)\n const [listeningForMessages, setListeningForMessages] = useState(false)\n\n const iframeRef = React.useRef<HTMLIFrameElement>(null)\n\n const [iframeHasLoaded, setIframeHasLoaded] = useState(false)\n\n const [zoom, setZoom] = useState(1)\n\n const [position, setPosition] = useState({ x: 0, y: 0 })\n\n const [size, setSize] = React.useReducer(sizeReducer, { height: 0, width: 0 })\n\n const [measuredDeviceSize, setMeasuredDeviceSize] = useState({\n height: 0,\n width: 0,\n })\n\n const [breakpoint, setBreakpoint] =\n React.useState<LivePreviewConfig['breakpoints'][0]['name']>('responsive')\n\n const [fieldSchemaJSON] = useState(() => {\n return fieldSchemaToJSON(fieldSchema)\n })\n\n // The toolbar needs to freely drag and drop around the page\n const handleDragEnd = (ev) => {\n // only update position if the toolbar is completely within the preview area\n // otherwise reset it back to the previous position\n // TODO: reset to the nearest edge of the preview area\n if (ev.over && ev.over.id === 'live-preview-area') {\n const newPos = {\n x: position.x + ev.delta.x,\n y: position.y + ev.delta.y,\n }\n\n setPosition(newPos)\n } else {\n // reset\n }\n }\n\n const setWidth = useCallback(\n (width) => {\n setSize({ type: 'width', value: width })\n },\n [setSize],\n )\n\n const setHeight = useCallback(\n (height) => {\n setSize({ type: 'height', value: height })\n },\n [setSize],\n )\n\n // explicitly set new width and height when as new breakpoints are selected\n // exclude `custom` breakpoint as it is handled by the `setWidth` and `setHeight` directly\n useEffect(() => {\n const foundBreakpoint = breakpoints?.find((bp) => bp.name === breakpoint)\n\n if (\n foundBreakpoint &&\n breakpoint !== 'responsive' &&\n breakpoint !== 'custom' &&\n typeof foundBreakpoint?.width === 'number' &&\n typeof foundBreakpoint?.height === 'number'\n ) {\n setSize({\n type: 'reset',\n value: {\n height: foundBreakpoint.height,\n width: foundBreakpoint.width,\n },\n })\n }\n }, [breakpoint, breakpoints])\n\n // Receive the `ready` message from the popup window\n // This indicates that the app is ready to receive `window.postMessage` events\n // This is also the only cross-origin way of detecting when a popup window has loaded\n // Unlike iframe elements which have an `onLoad` handler, there is no way to access `window.open` on popups\n useEffect(() => {\n const handleMessage = (event: MessageEvent) => {\n if (\n url?.startsWith(event.origin) &&\n event.data &&\n typeof event.data === 'object' &&\n event.data.type === 'payload-live-preview'\n ) {\n if (event.data.ready) {\n setAppIsReady(true)\n }\n }\n }\n\n window.addEventListener('message', handleMessage)\n\n setListeningForMessages(true)\n\n return () => {\n window.removeEventListener('message', handleMessage)\n }\n }, [url, listeningForMessages])\n\n const handleWindowChange = useCallback(\n (type: 'iframe' | 'popup') => {\n setAppIsReady(false)\n setPreviewWindowType(type)\n if (type === 'popup') {\n openPopupWindow()\n }\n },\n [openPopupWindow],\n )\n\n // when the user closes the popup window, switch back to the iframe\n // the `usePopupWindow` reports the `isPopupOpen` state for us to use here\n useEffect(() => {\n const newPreviewWindowType = isPopupOpen ? 'popup' : 'iframe'\n\n if (newPreviewWindowType !== previewWindowType) {\n handleWindowChange('iframe')\n }\n }, [previewWindowType, isPopupOpen, handleWindowChange])\n\n return (\n <LivePreviewContext.Provider\n value={{\n appIsReady,\n breakpoint,\n breakpoints,\n fieldSchemaJSON,\n iframeHasLoaded,\n iframeRef,\n isPopupOpen,\n measuredDeviceSize,\n openPopupWindow,\n popupRef,\n previewWindowType,\n setAppIsReady,\n setBreakpoint,\n setHeight,\n setIframeHasLoaded,\n setMeasuredDeviceSize,\n setPreviewWindowType: handleWindowChange,\n setSize,\n setToolbarPosition: setPosition,\n setWidth,\n setZoom,\n size,\n toolbarPosition: position,\n url,\n zoom,\n }}\n >\n <DndContext collisionDetection={customCollisionDetection} onDragEnd={handleDragEnd}>\n {listeningForMessages && children}\n </DndContext>\n </LivePreviewContext.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/LivePreview/Device/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAIxC,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CA8FA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/LivePreview/Device/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAIxC,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAiGA,CAAA"}
@@ -46,7 +46,11 @@ export const DeviceContainer = props => {
46
46
  if (deviceIsLargerThanFrame) {
47
47
  if (zoom > 1) {
48
48
  const differenceFromDeviceToFrame = measuredDeviceSize.width - outerFrameSize.width;
49
- if (differenceFromDeviceToFrame < 0) x = `${differenceFromDeviceToFrame / 2}px`;else x = '0';
49
+ if (differenceFromDeviceToFrame < 0) {
50
+ x = `${differenceFromDeviceToFrame / 2}px`;
51
+ } else {
52
+ x = '0';
53
+ }
50
54
  } else {
51
55
  x = '0';
52
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useResize","React","useEffect","useLivePreviewContext","DeviceContainer","props","children","deviceFrameRef","useRef","outerFrameRef","breakpoint","setMeasuredDeviceSize","size","desiredSize","zoom","measuredDeviceSize","current","outerFrameSize","deviceIsLargerThanFrame","x","margin","width","height","scaledDesiredWidth","scaledDeviceWidth","scaledDeviceDifferencePixels","differenceFromDeviceToFrame","_jsx","ref","style","transform"],"sources":["../../../../src/views/LivePreview/Device/index.tsx"],"sourcesContent":["'use client'\nimport { useResize } from '@payloadcms/ui'\nimport React, { useEffect } from 'react'\n\nimport { useLivePreviewContext } from '../Context/context.js'\n\nexport const DeviceContainer: React.FC<{\n children: React.ReactNode\n}> = (props) => {\n const { children } = props\n\n const deviceFrameRef = React.useRef<HTMLDivElement>(null)\n const outerFrameRef = React.useRef<HTMLDivElement>(null)\n\n const { breakpoint, setMeasuredDeviceSize, size: desiredSize, zoom } = useLivePreviewContext()\n\n // Keep an accurate measurement of the actual device size as it is truly rendered\n // This is helpful when `sizes` are non-number units like percentages, etc.\n const { size: measuredDeviceSize } = useResize(deviceFrameRef.current)\n const { size: outerFrameSize } = useResize(outerFrameRef.current)\n\n let deviceIsLargerThanFrame: boolean = false\n\n // Sync the measured device size with the context so that other components can use it\n // This happens from the bottom up so that as this component mounts and unmounts,\n // its size is freshly populated again upon re-mounting, i.e. going from iframe->popup->iframe\n useEffect(() => {\n if (measuredDeviceSize) {\n setMeasuredDeviceSize(measuredDeviceSize)\n }\n }, [measuredDeviceSize, setMeasuredDeviceSize])\n\n let x = '0'\n let margin = '0'\n\n if (breakpoint && breakpoint !== 'responsive') {\n x = '-50%'\n\n if (\n desiredSize &&\n measuredDeviceSize &&\n typeof zoom === 'number' &&\n typeof desiredSize.width === 'number' &&\n typeof desiredSize.height === 'number' &&\n typeof measuredDeviceSize.width === 'number' &&\n typeof measuredDeviceSize.height === 'number'\n ) {\n margin = '0 auto'\n const scaledDesiredWidth = desiredSize.width / zoom\n const scaledDeviceWidth = measuredDeviceSize.width * zoom\n const scaledDeviceDifferencePixels = scaledDesiredWidth - desiredSize.width\n deviceIsLargerThanFrame = scaledDeviceWidth > outerFrameSize.width\n\n if (deviceIsLargerThanFrame) {\n if (zoom > 1) {\n const differenceFromDeviceToFrame = measuredDeviceSize.width - outerFrameSize.width\n if (differenceFromDeviceToFrame < 0) x = `${differenceFromDeviceToFrame / 2}px`\n else x = '0'\n } else {\n x = '0'\n }\n } else {\n if (zoom >= 1) {\n x = `${scaledDeviceDifferencePixels / 2}px`\n } else {\n const differenceFromDeviceToFrame = outerFrameSize.width - scaledDeviceWidth\n x = `${differenceFromDeviceToFrame / 2}px`\n margin = '0'\n }\n }\n }\n }\n\n let width = zoom ? `${100 / zoom}%` : '100%'\n let height = zoom ? `${100 / zoom}%` : '100%'\n\n if (breakpoint !== 'responsive') {\n width = `${desiredSize?.width / (typeof zoom === 'number' ? zoom : 1)}px`\n height = `${desiredSize?.height / (typeof zoom === 'number' ? zoom : 1)}px`\n }\n\n return (\n <div\n ref={outerFrameRef}\n style={{\n height: '100%',\n width: '100%',\n }}\n >\n <div\n ref={deviceFrameRef}\n style={{\n height,\n margin,\n transform: `translate3d(${x}, 0, 0)`,\n width,\n }}\n >\n {children}\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useResize","React","useEffect","useLivePreviewContext","DeviceContainer","props","children","deviceFrameRef","useRef","outerFrameRef","breakpoint","setMeasuredDeviceSize","size","desiredSize","zoom","measuredDeviceSize","current","outerFrameSize","deviceIsLargerThanFrame","x","margin","width","height","scaledDesiredWidth","scaledDeviceWidth","scaledDeviceDifferencePixels","differenceFromDeviceToFrame","_jsx","ref","style","transform"],"sources":["../../../../src/views/LivePreview/Device/index.tsx"],"sourcesContent":["'use client'\nimport { useResize } from '@payloadcms/ui'\nimport React, { useEffect } from 'react'\n\nimport { useLivePreviewContext } from '../Context/context.js'\n\nexport const DeviceContainer: React.FC<{\n children: React.ReactNode\n}> = (props) => {\n const { children } = props\n\n const deviceFrameRef = React.useRef<HTMLDivElement>(null)\n const outerFrameRef = React.useRef<HTMLDivElement>(null)\n\n const { breakpoint, setMeasuredDeviceSize, size: desiredSize, zoom } = useLivePreviewContext()\n\n // Keep an accurate measurement of the actual device size as it is truly rendered\n // This is helpful when `sizes` are non-number units like percentages, etc.\n const { size: measuredDeviceSize } = useResize(deviceFrameRef.current)\n const { size: outerFrameSize } = useResize(outerFrameRef.current)\n\n let deviceIsLargerThanFrame: boolean = false\n\n // Sync the measured device size with the context so that other components can use it\n // This happens from the bottom up so that as this component mounts and unmounts,\n // its size is freshly populated again upon re-mounting, i.e. going from iframe->popup->iframe\n useEffect(() => {\n if (measuredDeviceSize) {\n setMeasuredDeviceSize(measuredDeviceSize)\n }\n }, [measuredDeviceSize, setMeasuredDeviceSize])\n\n let x = '0'\n let margin = '0'\n\n if (breakpoint && breakpoint !== 'responsive') {\n x = '-50%'\n\n if (\n desiredSize &&\n measuredDeviceSize &&\n typeof zoom === 'number' &&\n typeof desiredSize.width === 'number' &&\n typeof desiredSize.height === 'number' &&\n typeof measuredDeviceSize.width === 'number' &&\n typeof measuredDeviceSize.height === 'number'\n ) {\n margin = '0 auto'\n const scaledDesiredWidth = desiredSize.width / zoom\n const scaledDeviceWidth = measuredDeviceSize.width * zoom\n const scaledDeviceDifferencePixels = scaledDesiredWidth - desiredSize.width\n deviceIsLargerThanFrame = scaledDeviceWidth > outerFrameSize.width\n\n if (deviceIsLargerThanFrame) {\n if (zoom > 1) {\n const differenceFromDeviceToFrame = measuredDeviceSize.width - outerFrameSize.width\n if (differenceFromDeviceToFrame < 0) {\n x = `${differenceFromDeviceToFrame / 2}px`\n } else {\n x = '0'\n }\n } else {\n x = '0'\n }\n } else {\n if (zoom >= 1) {\n x = `${scaledDeviceDifferencePixels / 2}px`\n } else {\n const differenceFromDeviceToFrame = outerFrameSize.width - scaledDeviceWidth\n x = `${differenceFromDeviceToFrame / 2}px`\n margin = '0'\n }\n }\n }\n }\n\n let width = zoom ? `${100 / zoom}%` : '100%'\n let height = zoom ? `${100 / zoom}%` : '100%'\n\n if (breakpoint !== 'responsive') {\n width = `${desiredSize?.width / (typeof zoom === 'number' ? zoom : 1)}px`\n height = `${desiredSize?.height / (typeof zoom === 'number' ? zoom : 1)}px`\n }\n\n return (\n <div\n ref={outerFrameRef}\n style={{\n height: '100%',\n width: '100%',\n }}\n >\n <div\n ref={deviceFrameRef}\n style={{\n height,\n margin,\n transform: `translate3d(${x}, 0, 0)`,\n width,\n }}\n >\n {children}\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/LivePreview/Toolbar/SizeInput/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAiC,MAAM,OAAO,CAAA;AAGrD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAA;CACjB,CA0DA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/LivePreview/Toolbar/SizeInput/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAiC,MAAM,OAAO,CAAA;AAGrD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAA;CACjB,CA+DA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useEffect","useLivePreviewContext","baseClass","PreviewFrameSizeInput","props","$","axis","breakpoint","measuredDeviceSize","setBreakpoint","setSize","size","zoom","internalState","setInternalState","useState","width","height","t0","e","newValue","Number","target","value","type","toFixed","handleChange","t1","t2","t3","t4","t5","_jsx","className","min","name","onChange","step"],"sources":["../../../../../src/views/LivePreview/Toolbar/SizeInput/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback, useEffect } from 'react'\n\nimport { useLivePreviewContext } from '../../Context/context.js'\nimport './index.scss'\n\nconst baseClass = 'toolbar-input'\n\nexport const PreviewFrameSizeInput: React.FC<{\n axis?: 'x' | 'y'\n}> = (props) => {\n const { axis } = props\n\n const { breakpoint, measuredDeviceSize, setBreakpoint, setSize, size, zoom } =\n useLivePreviewContext()\n\n const [internalState, setInternalState] = React.useState<number>(\n (axis === 'x' ? measuredDeviceSize?.width : measuredDeviceSize?.height) || 0,\n )\n\n // when the input is changed manually, we need to set the breakpoint as `custom`\n // this will then allow us to set an explicit width and height\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n let newValue = Number(e.target.value)\n\n if (newValue < 0) newValue = 0\n\n setInternalState(newValue)\n setBreakpoint('custom')\n\n // be sure to set _both_ axis values to so that the other axis doesn't fallback to 0 on initial change\n // this is because the `responsive` size is '100%' in CSS, and `0` in initial state\n setSize({\n type: 'reset',\n value: {\n height: axis === 'y' ? newValue : Number(measuredDeviceSize?.height.toFixed(0)) * zoom,\n width: axis === 'x' ? newValue : Number(measuredDeviceSize?.width.toFixed(0)) * zoom,\n },\n })\n },\n [axis, setBreakpoint, measuredDeviceSize, setSize, zoom],\n )\n\n // if the breakpoint is `responsive` then the device's div will have `100%` width and height\n // so we need to take the measurements provided by `actualDeviceSize` and sync internal state\n useEffect(() => {\n if (breakpoint === 'responsive' && measuredDeviceSize) {\n if (axis === 'x') setInternalState(Number(measuredDeviceSize.width.toFixed(0)) * zoom)\n else setInternalState(Number(measuredDeviceSize.height.toFixed(0)) * zoom)\n }\n\n if (breakpoint !== 'responsive' && size) {\n setInternalState(axis === 'x' ? size.width : size.height)\n }\n }, [breakpoint, axis, measuredDeviceSize, size, zoom])\n\n return (\n <input\n className={baseClass}\n min={0}\n name={axis === 'x' ? 'live-preview-width' : 'live-preview-height'}\n onChange={handleChange}\n step={1}\n type=\"number\"\n value={internalState || 0}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useEffect","useLivePreviewContext","baseClass","PreviewFrameSizeInput","props","$","axis","breakpoint","measuredDeviceSize","setBreakpoint","setSize","size","zoom","internalState","setInternalState","useState","width","height","t0","e","newValue","Number","target","value","type","toFixed","handleChange","t1","t2","t3","t4","t5","_jsx","className","min","name","onChange","step"],"sources":["../../../../../src/views/LivePreview/Toolbar/SizeInput/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback, useEffect } from 'react'\n\nimport { useLivePreviewContext } from '../../Context/context.js'\nimport './index.scss'\n\nconst baseClass = 'toolbar-input'\n\nexport const PreviewFrameSizeInput: React.FC<{\n axis?: 'x' | 'y'\n}> = (props) => {\n const { axis } = props\n\n const { breakpoint, measuredDeviceSize, setBreakpoint, setSize, size, zoom } =\n useLivePreviewContext()\n\n const [internalState, setInternalState] = React.useState<number>(\n (axis === 'x' ? measuredDeviceSize?.width : measuredDeviceSize?.height) || 0,\n )\n\n // when the input is changed manually, we need to set the breakpoint as `custom`\n // this will then allow us to set an explicit width and height\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n let newValue = Number(e.target.value)\n\n if (newValue < 0) {\n newValue = 0\n }\n\n setInternalState(newValue)\n setBreakpoint('custom')\n\n // be sure to set _both_ axis values to so that the other axis doesn't fallback to 0 on initial change\n // this is because the `responsive` size is '100%' in CSS, and `0` in initial state\n setSize({\n type: 'reset',\n value: {\n height: axis === 'y' ? newValue : Number(measuredDeviceSize?.height.toFixed(0)) * zoom,\n width: axis === 'x' ? newValue : Number(measuredDeviceSize?.width.toFixed(0)) * zoom,\n },\n })\n },\n [axis, setBreakpoint, measuredDeviceSize, setSize, zoom],\n )\n\n // if the breakpoint is `responsive` then the device's div will have `100%` width and height\n // so we need to take the measurements provided by `actualDeviceSize` and sync internal state\n useEffect(() => {\n if (breakpoint === 'responsive' && measuredDeviceSize) {\n if (axis === 'x') {\n setInternalState(Number(measuredDeviceSize.width.toFixed(0)) * zoom)\n } else {\n setInternalState(Number(measuredDeviceSize.height.toFixed(0)) * zoom)\n }\n }\n\n if (breakpoint !== 'responsive' && size) {\n setInternalState(axis === 'x' ? size.width : size.height)\n }\n }, [breakpoint, axis, measuredDeviceSize, size, zoom])\n\n return (\n <input\n className={baseClass}\n min={0}\n name={axis === 'x' ? 'live-preview-width' : 'live-preview-height'}\n onChange={handleChange}\n step={1}\n type=\"number\"\n value={internalState || 0}\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,QAAQ;AAE9C,SAASC,qBAAqB,QAAQ;AAGtC,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,qBAAA,GAERC,KAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EACH;IAAAS;EAAA,IAAiBF,KAAA;EAEjB;IAAAG,UAAA;IAAAC,kBAAA;IAAAC,aAAA;IAAAC,OAAA;IAAAC,IAAA;IAAAC;EAAA,IACEX,qBAAA;EAEF,OAAAY,aAAA,EAAAC,gBAAA,IAA0ChB,KAAA,CAAAiB,QAAA,CACxC,CAACT,IAAA,KAAS,MAAME,kBAAA,EAAAQ,KAAA,GAA4BR,kBAAA,EAAAS,MAAyB,MAAM;EAAA,IAAAC,EAAA;EAAA,IAAAb,CAAA,QAAAI,aAAA,IAAAJ,CAAA,QAAAK,OAAA,IAAAL,CAAA,QAAAC,IAAA,IAAAD,CAAA,QAAAG,kBAAA,IAAAH,CAAA,QAAAO,IAAA;IAM3EM,EAAA,GAAAC,CAAA;MACE,IAAAC,QAAA,GAAeC,MAAA,CAAOF,CAAA,CAAAG,MAAA,CAAAC,KAAc;MAAA,IAEhCH,QAAA,IAAW;QACbA,QAAA,CAAAA,CAAA,CAAAA,CAAA;MAAA;MAGFN,gBAAA,CAAiBM,QAAA;MACjBX,aAAA,CAAc;MAIdC,OAAA;QAAAc,IAAA,EACQ;QAAAD,KAAA;UAAAN,MAAA,EAEIX,IAAA,KAAS,MAAMc,QAAA,GAAWC,MAAA,CAAOb,kBAAA,EAAAS,MAAA,CAAAQ,OAAA,GAAmC,IAAMb,IAAA;UAAAI,KAAA,EAC3EV,IAAA,KAAS,MAAMc,QAAA,GAAWC,MAAA,CAAOb,kBAAA,EAAAQ,KAAA,CAAAS,OAAA,GAAkC,IAAMb;QAAA;MAAA,CAEpF;IAAA;IACFP,CAAA,MAAAI,aAAA;IAAAJ,CAAA,MAAAK,OAAA;IAAAL,CAAA,MAAAC,IAAA;IAAAD,CAAA,MAAAG,kBAAA;IAAAH,CAAA,MAAAO,IAAA;IAAAP,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EApBF,MAAAqB,YAAA,GAAqBR,EAqBqC;EAAA,IAAAS,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAvB,CAAA,QAAAE,UAAA,IAAAF,CAAA,QAAAG,kBAAA,IAAAH,CAAA,QAAAC,IAAA,IAAAD,CAAA,QAAAO,IAAA,IAAAP,CAAA,SAAAM,IAAA;IAKhDgB,EAAA,GAAAA,CAAA;MAAA,IACJpB,UAAA,KAAe,gBAAgBC,kBAAA;QAAA,IAC7BF,IAAA,KAAS;UACXQ,gBAAA,CAAiBO,MAAA,CAAOb,kBAAA,CAAAQ,KAAA,CAAAS,OAAA,EAAiC,KAAMb,IAAA;QAAA;UAE/DE,gBAAA,CAAiBO,MAAA,CAAOb,kBAAA,CAAAS,MAAA,CAAAQ,OAAA,EAAkC,KAAMb,IAAA;QAAA;MAAA;MAAA,IAIhEL,UAAA,KAAe,gBAAgBI,IAAA;QACjCG,gBAAA,CAAiBR,IAAA,KAAS,MAAMK,IAAA,CAAAK,KAAA,GAAaL,IAAA,CAAAM,MAAW;MAAA;IAAA;IAEzDW,EAAA,IAACrB,UAAA,EAAYD,IAAA,EAAME,kBAAA,EAAoBG,IAAA,EAAMC,IAAA;IAAKP,CAAA,MAAAE,UAAA;IAAAF,CAAA,MAAAG,kBAAA;IAAAH,CAAA,MAAAC,IAAA;IAAAD,CAAA,MAAAO,IAAA;IAAAP,CAAA,OAAAM,IAAA;IAAAN,CAAA,OAAAsB,EAAA;IAAAtB,CAAA,OAAAuB,EAAA;EAAA;IAAAD,EAAA,GAAAtB,CAAA;IAAAuB,EAAA,GAAAvB,CAAA;EAAA;EAZrDL,SAAA,CAAU2B,EAYV,EAAGC,EAAkD;EAM3C,MAAAC,EAAA,GAAAvB,IAAA,KAAS,MAAM,uBAAuB;EAIrC,MAAAwB,EAAA,GAAAjB,aAAA,KAAiB;EAAA,IAAAkB,EAAA;EAAA,IAAA1B,CAAA,SAAAwB,EAAA,IAAAxB,CAAA,SAAAqB,YAAA,IAAArB,CAAA,SAAAyB,EAAA;IAP1BC,EAAA,GAAAC,IAAA,CAAC;MAAAC,SAAA,EAAA/B,SAAA;MAAAgC,GAAA;MAAAC,IAAA,EAGON,EAAsC;MAAAO,QAAA,EAClCV,YAAA;MAAAW,IAAA;MAAAb,IAAA,EAEL;MAAAD,KAAA,EACEO;IAAiB,C;;;;;;;;SAP1BC,E;CAUJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Login/LoginForm/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAazB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;CAC/D,CA+EA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Login/LoginForm/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAazB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;CAC/D,CAmFA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","LinkImport","React","baseClass","Link","default","Form","FormSubmit","PasswordField","useConfig","useTranslation","formatAdminURL","LoginField","LoginForm","t0","$","prefillEmail","prefillPassword","prefillUsername","searchParams","config","admin","t1","routes","t2","t3","user","userSlug","forgot","forgotRoute","adminRoute","api","apiRoute","t4","collections","find","collection","slug","collectionConfig","auth","authOptions","loginWithUsername","canLoginWithEmail","allowEmailLogin","canLoginWithUsername","t5","loginType","useState","t","t6","undefined","t7","t8","initialState","password","initialValue","valid","value","username","email","_jsxs","action","className","disableSuccessStatus","method","redirect","waitForAutocomplete","children","_jsx","type","field","name","label","required","href","path","size"],"sources":["../../../../src/views/Login/LoginForm/index.tsx"],"sourcesContent":["'use client'\n\nimport LinkImport from 'next/link.js'\nimport React from 'react'\n\nconst baseClass = 'login__form'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nimport type { FormState } from 'payload'\n\nimport { Form, FormSubmit, PasswordField, useConfig, useTranslation } from '@payloadcms/ui'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\n\nimport type { LoginFieldProps } from '../LoginField/index.js'\n\nimport { LoginField } from '../LoginField/index.js'\nimport './index.scss'\n\nexport const LoginForm: React.FC<{\n prefillEmail?: string\n prefillPassword?: string\n prefillUsername?: string\n searchParams: { [key: string]: string | string[] | undefined }\n}> = ({ prefillEmail, prefillPassword, prefillUsername, searchParams }) => {\n const { config } = useConfig()\n\n const {\n admin: {\n routes: { forgot: forgotRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute, api: apiRoute },\n } = config\n\n const collectionConfig = config.collections?.find((collection) => collection?.slug === userSlug)\n const { auth: authOptions } = collectionConfig\n const loginWithUsername = authOptions.loginWithUsername\n const canLoginWithEmail =\n !authOptions.loginWithUsername || authOptions.loginWithUsername.allowEmailLogin\n const canLoginWithUsername = authOptions.loginWithUsername\n\n const [loginType] = React.useState<LoginFieldProps['type']>(() => {\n if (canLoginWithEmail && canLoginWithUsername) return 'emailOrUsername'\n if (canLoginWithUsername) return 'username'\n return 'email'\n })\n\n const { t } = useTranslation()\n\n const initialState: FormState = {\n password: {\n initialValue: prefillPassword ?? undefined,\n valid: true,\n value: prefillPassword ?? undefined,\n },\n }\n\n if (loginWithUsername) {\n initialState.username = {\n initialValue: prefillUsername ?? undefined,\n valid: true,\n value: prefillUsername ?? undefined,\n }\n } else {\n initialState.email = {\n initialValue: prefillEmail ?? undefined,\n valid: true,\n value: prefillEmail ?? undefined,\n }\n }\n\n return (\n <Form\n action={`${apiRoute}/${userSlug}/login`}\n className={baseClass}\n disableSuccessStatus\n initialState={initialState}\n method=\"POST\"\n redirect={typeof searchParams?.redirect === 'string' ? searchParams.redirect : adminRoute}\n waitForAutocomplete\n >\n <div className={`${baseClass}__inputWrap`}>\n <LoginField type={loginType} />\n <PasswordField\n field={{\n name: 'password',\n label: t('general:password'),\n required: true,\n }}\n />\n </div>\n <Link\n href={formatAdminURL({\n adminRoute,\n path: forgotRoute,\n })}\n >\n {t('authentication:forgotPasswordQuestion')}\n </Link>\n <FormSubmit size=\"large\">{t('authentication:login')}</FormSubmit>\n </Form>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","LinkImport","React","baseClass","Link","default","Form","FormSubmit","PasswordField","useConfig","useTranslation","formatAdminURL","LoginField","LoginForm","t0","$","prefillEmail","prefillPassword","prefillUsername","searchParams","config","admin","t1","routes","t2","t3","user","userSlug","forgot","forgotRoute","adminRoute","api","apiRoute","t4","collections","find","collection","slug","collectionConfig","auth","authOptions","loginWithUsername","canLoginWithEmail","allowEmailLogin","canLoginWithUsername","t5","loginType","useState","t","t6","undefined","t7","t8","initialState","password","initialValue","valid","value","username","email","_jsxs","action","className","disableSuccessStatus","method","redirect","waitForAutocomplete","children","_jsx","type","field","name","label","required","href","path","size"],"sources":["../../../../src/views/Login/LoginForm/index.tsx"],"sourcesContent":["'use client'\n\nimport LinkImport from 'next/link.js'\nimport React from 'react'\n\nconst baseClass = 'login__form'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nimport type { FormState } from 'payload'\n\nimport { Form, FormSubmit, PasswordField, useConfig, useTranslation } from '@payloadcms/ui'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\n\nimport type { LoginFieldProps } from '../LoginField/index.js'\n\nimport { LoginField } from '../LoginField/index.js'\nimport './index.scss'\n\nexport const LoginForm: React.FC<{\n prefillEmail?: string\n prefillPassword?: string\n prefillUsername?: string\n searchParams: { [key: string]: string | string[] | undefined }\n}> = ({ prefillEmail, prefillPassword, prefillUsername, searchParams }) => {\n const { config } = useConfig()\n\n const {\n admin: {\n routes: { forgot: forgotRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute, api: apiRoute },\n } = config\n\n const collectionConfig = config.collections?.find((collection) => collection?.slug === userSlug)\n const { auth: authOptions } = collectionConfig\n const loginWithUsername = authOptions.loginWithUsername\n const canLoginWithEmail =\n !authOptions.loginWithUsername || authOptions.loginWithUsername.allowEmailLogin\n const canLoginWithUsername = authOptions.loginWithUsername\n\n const [loginType] = React.useState<LoginFieldProps['type']>(() => {\n if (canLoginWithEmail && canLoginWithUsername) {\n return 'emailOrUsername'\n }\n if (canLoginWithUsername) {\n return 'username'\n }\n return 'email'\n })\n\n const { t } = useTranslation()\n\n const initialState: FormState = {\n password: {\n initialValue: prefillPassword ?? undefined,\n valid: true,\n value: prefillPassword ?? undefined,\n },\n }\n\n if (loginWithUsername) {\n initialState.username = {\n initialValue: prefillUsername ?? undefined,\n valid: true,\n value: prefillUsername ?? undefined,\n }\n } else {\n initialState.email = {\n initialValue: prefillEmail ?? undefined,\n valid: true,\n value: prefillEmail ?? undefined,\n }\n }\n\n return (\n <Form\n action={`${apiRoute}/${userSlug}/login`}\n className={baseClass}\n disableSuccessStatus\n initialState={initialState}\n method=\"POST\"\n redirect={typeof searchParams?.redirect === 'string' ? searchParams.redirect : adminRoute}\n waitForAutocomplete\n >\n <div className={`${baseClass}__inputWrap`}>\n <LoginField type={loginType} />\n <PasswordField\n field={{\n name: 'password',\n label: t('general:password'),\n required: true,\n }}\n />\n </div>\n <Link\n href={formatAdminURL({\n adminRoute,\n path: forgotRoute,\n })}\n >\n {t('authentication:forgotPasswordQuestion')}\n </Link>\n <FormSubmit size=\"large\">{t('authentication:login')}</FormSubmit>\n </Form>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"isPathMatchingRoute.d.ts","sourceRoot":"","sources":["../../../src/views/Root/isPathMatchingRoute.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,gEAM7B;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,YAeA,CAAA"}
1
+ {"version":3,"file":"isPathMatchingRoute.d.ts","sourceRoot":"","sources":["../../../src/views/Root/isPathMatchingRoute.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,gEAM7B;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,YAmBA,CAAA"}
@@ -15,7 +15,11 @@ export const isPathMatchingRoute = ({
15
15
  });
16
16
  const match = regex.exec(currentRoute);
17
17
  const viewRoute = match?.[0] || viewPath;
18
- if (exact) return currentRoute === viewRoute;
19
- if (!exact) return viewRoute.startsWith(currentRoute);
18
+ if (exact) {
19
+ return currentRoute === viewRoute;
20
+ }
21
+ if (!exact) {
22
+ return viewRoute.startsWith(currentRoute);
23
+ }
20
24
  };
21
25
  //# sourceMappingURL=isPathMatchingRoute.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isPathMatchingRoute.js","names":["pathToRegexp","isPathMatchingRoute","currentRoute","exact","path","viewPath","sensitive","strict","keys","regex","match","exec","viewRoute","startsWith"],"sources":["../../../src/views/Root/isPathMatchingRoute.ts"],"sourcesContent":["import { pathToRegexp } from 'path-to-regexp'\n\nexport const isPathMatchingRoute = ({\n currentRoute,\n exact,\n path: viewPath,\n sensitive,\n strict,\n}: {\n currentRoute: string\n exact?: boolean\n path?: string\n sensitive?: boolean\n strict?: boolean\n}) => {\n const keys = []\n\n // run the view path through `pathToRegexp` to resolve any dynamic segments\n // i.e. `/admin/custom-view/:id` -> `/admin/custom-view/123`\n const regex = pathToRegexp(viewPath, keys, {\n sensitive,\n strict,\n })\n\n const match = regex.exec(currentRoute)\n const viewRoute = match?.[0] || viewPath\n\n if (exact) return currentRoute === viewRoute\n if (!exact) return viewRoute.startsWith(currentRoute)\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ;AAE7B,OAAO,MAAMC,mBAAA,GAAsBA,CAAC;EAClCC,YAAY;EACZC,KAAK;EACLC,IAAA,EAAMC,QAAQ;EACdC,SAAS;EACTC;AAAM,CAOP;EACC,MAAMC,IAAA,GAAO,EAAE;EAEf;EACA;EACA,MAAMC,KAAA,GAAQT,YAAA,CAAaK,QAAA,EAAUG,IAAA,EAAM;IACzCF,SAAA;IACAC;EACF;EAEA,MAAMG,KAAA,GAAQD,KAAA,CAAME,IAAI,CAACT,YAAA;EACzB,MAAMU,SAAA,GAAYF,KAAA,GAAQ,EAAE,IAAIL,QAAA;EAEhC,IAAIF,KAAA,EAAO,OAAOD,YAAA,KAAiBU,SAAA;EACnC,IAAI,CAACT,KAAA,EAAO,OAAOS,SAAA,CAAUC,UAAU,CAACX,YAAA;AAC1C","ignoreList":[]}
1
+ {"version":3,"file":"isPathMatchingRoute.js","names":["pathToRegexp","isPathMatchingRoute","currentRoute","exact","path","viewPath","sensitive","strict","keys","regex","match","exec","viewRoute","startsWith"],"sources":["../../../src/views/Root/isPathMatchingRoute.ts"],"sourcesContent":["import { pathToRegexp } from 'path-to-regexp'\n\nexport const isPathMatchingRoute = ({\n currentRoute,\n exact,\n path: viewPath,\n sensitive,\n strict,\n}: {\n currentRoute: string\n exact?: boolean\n path?: string\n sensitive?: boolean\n strict?: boolean\n}) => {\n const keys = []\n\n // run the view path through `pathToRegexp` to resolve any dynamic segments\n // i.e. `/admin/custom-view/:id` -> `/admin/custom-view/123`\n const regex = pathToRegexp(viewPath, keys, {\n sensitive,\n strict,\n })\n\n const match = regex.exec(currentRoute)\n const viewRoute = match?.[0] || viewPath\n\n if (exact) {\n return currentRoute === viewRoute\n }\n if (!exact) {\n return viewRoute.startsWith(currentRoute)\n }\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ;AAE7B,OAAO,MAAMC,mBAAA,GAAsBA,CAAC;EAClCC,YAAY;EACZC,KAAK;EACLC,IAAA,EAAMC,QAAQ;EACdC,SAAS;EACTC;AAAM,CAOP;EACC,MAAMC,IAAA,GAAO,EAAE;EAEf;EACA;EACA,MAAMC,KAAA,GAAQT,YAAA,CAAaK,QAAA,EAAUG,IAAA,EAAM;IACzCF,SAAA;IACAC;EACF;EAEA,MAAMG,KAAA,GAAQD,KAAA,CAAME,IAAI,CAACT,YAAA;EACzB,MAAMU,SAAA,GAAYF,KAAA,GAAQ,EAAE,IAAIL,QAAA;EAEhC,IAAIF,KAAA,EAAO;IACT,OAAOD,YAAA,KAAiBU,SAAA;EAC1B;EACA,IAAI,CAACT,KAAA,EAAO;IACV,OAAOS,SAAA,CAAUC,UAAU,CAACX,YAAA;EAC9B;AACF","ignoreList":[]}