@payloadcms/ui 3.10.0 → 3.11.1-canary.053fca8

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 (71) hide show
  1. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/EditForm/index.js +6 -6
  3. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  4. package/dist/elements/BulkUpload/index.d.ts +3 -1
  5. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  6. package/dist/elements/BulkUpload/index.js +30 -19
  7. package/dist/elements/BulkUpload/index.js.map +1 -1
  8. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  9. package/dist/elements/DocumentDrawer/DrawerContent.js +6 -6
  10. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  11. package/dist/elements/EditMany/index.d.ts.map +1 -1
  12. package/dist/elements/EditMany/index.js +6 -6
  13. package/dist/elements/EditMany/index.js.map +1 -1
  14. package/dist/elements/RelationshipTable/cells/DrawerLink/index.d.ts +1 -0
  15. package/dist/elements/RelationshipTable/cells/DrawerLink/index.d.ts.map +1 -1
  16. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +28 -10
  17. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  18. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  19. package/dist/elements/RelationshipTable/index.js +5 -0
  20. package/dist/elements/RelationshipTable/index.js.map +1 -1
  21. package/dist/elements/Status/index.d.ts.map +1 -1
  22. package/dist/elements/Status/index.js +40 -32
  23. package/dist/elements/Status/index.js.map +1 -1
  24. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  25. package/dist/elements/TableColumns/index.js +9 -9
  26. package/dist/elements/TableColumns/index.js.map +1 -1
  27. package/dist/exports/client/index.d.ts +1 -0
  28. package/dist/exports/client/index.d.ts.map +1 -1
  29. package/dist/exports/client/index.js +22 -22
  30. package/dist/exports/client/index.js.map +3 -3
  31. package/dist/exports/shared/index.d.ts +1 -1
  32. package/dist/exports/shared/index.d.ts.map +1 -1
  33. package/dist/exports/shared/index.js +2 -2
  34. package/dist/exports/shared/index.js.map +3 -3
  35. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  36. package/dist/fields/Array/ArrayRow.js +4 -1
  37. package/dist/fields/Array/ArrayRow.js.map +1 -1
  38. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  39. package/dist/fields/Blocks/BlockRow.js +4 -1
  40. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  41. package/dist/fields/Upload/Input.d.ts.map +1 -1
  42. package/dist/fields/Upload/Input.js +115 -109
  43. package/dist/fields/Upload/Input.js.map +1 -1
  44. package/dist/forms/Form/index.d.ts.map +1 -1
  45. package/dist/forms/Form/index.js +6 -6
  46. package/dist/forms/Form/index.js.map +1 -1
  47. package/dist/providers/Auth/index.js +3 -3
  48. package/dist/providers/Auth/index.js.map +1 -1
  49. package/dist/providers/DocumentEvents/index.d.ts +2 -6
  50. package/dist/providers/DocumentEvents/index.d.ts.map +1 -1
  51. package/dist/providers/DocumentEvents/index.js.map +1 -1
  52. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  53. package/dist/providers/DocumentInfo/index.js.map +1 -1
  54. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  55. package/dist/providers/ListQuery/index.js +19 -10
  56. package/dist/providers/ListQuery/index.js.map +1 -1
  57. package/dist/utilities/abortAndIgnore.d.ts +2 -1
  58. package/dist/utilities/abortAndIgnore.d.ts.map +1 -1
  59. package/dist/utilities/abortAndIgnore.js +17 -3
  60. package/dist/utilities/abortAndIgnore.js.map +1 -1
  61. package/dist/utilities/parseSearchParams.d.ts +9 -1
  62. package/dist/utilities/parseSearchParams.d.ts.map +1 -1
  63. package/dist/utilities/parseSearchParams.js +10 -2
  64. package/dist/utilities/parseSearchParams.js.map +1 -1
  65. package/dist/views/Edit/index.d.ts.map +1 -1
  66. package/dist/views/Edit/index.js +13 -22
  67. package/dist/views/Edit/index.js.map +1 -1
  68. package/dist/views/List/index.d.ts.map +1 -1
  69. package/dist/views/List/index.js +15 -12
  70. package/dist/views/List/index.js.map +1 -1
  71. package/package.json +6 -6
@@ -24,7 +24,7 @@ import { UploadComponentHasOne } from './HasOne/index.js';
24
24
  import './index.scss';
25
25
  export const baseClass = 'upload';
26
26
  export function UploadInput(props) {
27
- const $ = _c(126);
27
+ const $ = _c(130);
28
28
  const {
29
29
  AfterInput,
30
30
  allowCreate,
@@ -59,6 +59,7 @@ export function UploadInput(props) {
59
59
  const {
60
60
  drawerSlug,
61
61
  setCollectionSlug,
62
+ setCurrentActivePath,
62
63
  setInitialFiles,
63
64
  setMaxFiles,
64
65
  setOnSuccess
@@ -292,7 +293,7 @@ export function UploadInput(props) {
292
293
  }
293
294
  const onUploadSuccess = t16;
294
295
  let t17;
295
- if ($[41] !== drawerSlug || $[42] !== hasMany || $[43] !== maxRows || $[44] !== openModal || $[45] !== relationTo || $[46] !== setCollectionSlug || $[47] !== setInitialFiles || $[48] !== setMaxFiles) {
296
+ if ($[41] !== drawerSlug || $[42] !== hasMany || $[43] !== maxRows || $[44] !== openModal || $[45] !== path || $[46] !== relationTo || $[47] !== setCollectionSlug || $[48] !== setCurrentActivePath || $[49] !== setInitialFiles || $[50] !== setMaxFiles) {
296
297
  t17 = fileList => {
297
298
  let fileListToUse = fileList;
298
299
  if (!hasMany && fileList && fileList.length > 1) {
@@ -307,23 +308,26 @@ export function UploadInput(props) {
307
308
  if (typeof maxRows === "number") {
308
309
  setMaxFiles(maxRows);
309
310
  }
311
+ setCurrentActivePath(path);
310
312
  openModal(drawerSlug);
311
313
  };
312
314
  $[41] = drawerSlug;
313
315
  $[42] = hasMany;
314
316
  $[43] = maxRows;
315
317
  $[44] = openModal;
316
- $[45] = relationTo;
317
- $[46] = setCollectionSlug;
318
- $[47] = setInitialFiles;
319
- $[48] = setMaxFiles;
320
- $[49] = t17;
318
+ $[45] = path;
319
+ $[46] = relationTo;
320
+ $[47] = setCollectionSlug;
321
+ $[48] = setCurrentActivePath;
322
+ $[49] = setInitialFiles;
323
+ $[50] = setMaxFiles;
324
+ $[51] = t17;
321
325
  } else {
322
- t17 = $[49];
326
+ t17 = $[51];
323
327
  }
324
328
  const onLocalFileSelection = t17;
325
329
  let t18;
326
- if ($[50] !== activeRelationTo || $[51] !== closeListDrawer || $[52] !== onChange || $[53] !== populateDocs || $[54] !== value) {
330
+ if ($[52] !== activeRelationTo || $[53] !== closeListDrawer || $[54] !== onChange || $[55] !== populateDocs || $[56] !== value) {
327
331
  t18 = async docs => {
328
332
  const selectedDocIDs = [];
329
333
  for (const [id_0, isSelected] of docs) {
@@ -341,18 +345,18 @@ export function UploadInput(props) {
341
345
  onChange([...(Array.isArray(value) ? value : []), ...selectedDocIDs]);
342
346
  closeListDrawer();
343
347
  };
344
- $[50] = activeRelationTo;
345
- $[51] = closeListDrawer;
346
- $[52] = onChange;
347
- $[53] = populateDocs;
348
- $[54] = value;
349
- $[55] = t18;
348
+ $[52] = activeRelationTo;
349
+ $[53] = closeListDrawer;
350
+ $[54] = onChange;
351
+ $[55] = populateDocs;
352
+ $[56] = value;
353
+ $[57] = t18;
350
354
  } else {
351
- t18 = $[55];
355
+ t18 = $[57];
352
356
  }
353
357
  const onListBulkSelect = t18;
354
358
  let t19;
355
- if ($[56] !== activeRelationTo || $[57] !== closeCreateDocDrawer || $[58] !== onChange) {
359
+ if ($[58] !== activeRelationTo || $[59] !== closeCreateDocDrawer || $[60] !== onChange) {
356
360
  t19 = data => {
357
361
  if (data.doc) {
358
362
  setPopulatedDocs(currentDocs_1 => [...(currentDocs_1 || []), {
@@ -363,16 +367,16 @@ export function UploadInput(props) {
363
367
  }
364
368
  closeCreateDocDrawer();
365
369
  };
366
- $[56] = activeRelationTo;
367
- $[57] = closeCreateDocDrawer;
368
- $[58] = onChange;
369
- $[59] = t19;
370
+ $[58] = activeRelationTo;
371
+ $[59] = closeCreateDocDrawer;
372
+ $[60] = onChange;
373
+ $[61] = t19;
370
374
  } else {
371
- t19 = $[59];
375
+ t19 = $[61];
372
376
  }
373
377
  const onDocCreate = t19;
374
378
  let t20;
375
- if ($[60] !== activeRelationTo || $[61] !== closeListDrawer || $[62] !== hasMany || $[63] !== onChange || $[64] !== populateDocs || $[65] !== value) {
379
+ if ($[62] !== activeRelationTo || $[63] !== closeListDrawer || $[64] !== hasMany || $[65] !== onChange || $[66] !== populateDocs || $[67] !== value) {
376
380
  t20 = async t21 => {
377
381
  const {
378
382
  collectionSlug,
@@ -402,19 +406,19 @@ export function UploadInput(props) {
402
406
  }
403
407
  closeListDrawer();
404
408
  };
405
- $[60] = activeRelationTo;
406
- $[61] = closeListDrawer;
407
- $[62] = hasMany;
408
- $[63] = onChange;
409
- $[64] = populateDocs;
410
- $[65] = value;
411
- $[66] = t20;
409
+ $[62] = activeRelationTo;
410
+ $[63] = closeListDrawer;
411
+ $[64] = hasMany;
412
+ $[65] = onChange;
413
+ $[66] = populateDocs;
414
+ $[67] = value;
415
+ $[68] = t20;
412
416
  } else {
413
- t20 = $[66];
417
+ t20 = $[68];
414
418
  }
415
419
  const onListSelect = t20;
416
420
  let t21;
417
- if ($[67] !== populateDocs) {
421
+ if ($[69] !== populateDocs) {
418
422
  t21 = async (docID_0, collectionSlug_0) => {
419
423
  const {
420
424
  docs: docs_0
@@ -433,42 +437,42 @@ export function UploadInput(props) {
433
437
  });
434
438
  }
435
439
  };
436
- $[67] = populateDocs;
437
- $[68] = t21;
440
+ $[69] = populateDocs;
441
+ $[70] = t21;
438
442
  } else {
439
- t21 = $[68];
443
+ t21 = $[70];
440
444
  }
441
445
  const reloadDoc = t21;
442
446
  let t22;
443
- if ($[69] !== onChange) {
447
+ if ($[71] !== onChange) {
444
448
  t22 = newValue_0 => {
445
449
  const newValueIDs = newValue_0.map(_temp2);
446
450
  onChange(newValueIDs);
447
451
  setPopulatedDocs(newValue_0);
448
452
  };
449
- $[69] = onChange;
450
- $[70] = t22;
453
+ $[71] = onChange;
454
+ $[72] = t22;
451
455
  } else {
452
- t22 = $[70];
456
+ t22 = $[72];
453
457
  }
454
458
  const onReorder = t22;
455
459
  let t23;
456
- if ($[71] !== hasMany || $[72] !== onChange) {
460
+ if ($[73] !== hasMany || $[74] !== onChange) {
457
461
  t23 = newValue_1 => {
458
462
  const newValueIDs_0 = newValue_1 ? newValue_1.map(_temp3) : null;
459
463
  onChange(hasMany ? newValueIDs_0 : newValueIDs_0 ? newValueIDs_0[0] : null);
460
464
  setPopulatedDocs(newValue_1 ? newValue_1 : []);
461
465
  };
462
- $[71] = hasMany;
463
- $[72] = onChange;
464
- $[73] = t23;
466
+ $[73] = hasMany;
467
+ $[74] = onChange;
468
+ $[75] = t23;
465
469
  } else {
466
- t23 = $[73];
470
+ t23 = $[75];
467
471
  }
468
472
  const onRemove = t23;
469
473
  let t24;
470
474
  let t25;
471
- if ($[74] !== activeRelationTo || $[75] !== populateDocs || $[76] !== value) {
475
+ if ($[76] !== activeRelationTo || $[77] !== populateDocs || $[78] !== value) {
472
476
  t24 = () => {
473
477
  const loadInitialDocs = async function loadInitialDocs() {
474
478
  if (value) {
@@ -487,55 +491,57 @@ export function UploadInput(props) {
487
491
  }
488
492
  };
489
493
  t25 = [populateDocs, activeRelationTo, value];
490
- $[74] = activeRelationTo;
491
- $[75] = populateDocs;
492
- $[76] = value;
493
- $[77] = t24;
494
- $[78] = t25;
494
+ $[76] = activeRelationTo;
495
+ $[77] = populateDocs;
496
+ $[78] = value;
497
+ $[79] = t24;
498
+ $[80] = t25;
495
499
  } else {
496
- t24 = $[77];
497
- t25 = $[78];
500
+ t24 = $[79];
501
+ t25 = $[80];
498
502
  }
499
503
  useEffect(t24, t25);
500
504
  let t26;
501
- if ($[79] !== onUploadSuccess || $[80] !== setOnSuccess) {
505
+ if ($[81] !== onUploadSuccess || $[82] !== path || $[83] !== setOnSuccess) {
502
506
  t26 = () => {
503
- setOnSuccess(onUploadSuccess);
507
+ setOnSuccess(path, onUploadSuccess);
504
508
  };
505
- $[79] = onUploadSuccess;
506
- $[80] = setOnSuccess;
507
- $[81] = t26;
509
+ $[81] = onUploadSuccess;
510
+ $[82] = path;
511
+ $[83] = setOnSuccess;
512
+ $[84] = t26;
508
513
  } else {
509
- t26 = $[81];
514
+ t26 = $[84];
510
515
  }
511
516
  let t27;
512
- if ($[82] !== onUploadSuccess || $[83] !== setOnSuccess || $[84] !== value) {
513
- t27 = [value, onUploadSuccess, setOnSuccess];
514
- $[82] = onUploadSuccess;
515
- $[83] = setOnSuccess;
516
- $[84] = value;
517
- $[85] = t27;
517
+ if ($[85] !== onUploadSuccess || $[86] !== path || $[87] !== setOnSuccess || $[88] !== value) {
518
+ t27 = [value, path, onUploadSuccess, setOnSuccess];
519
+ $[85] = onUploadSuccess;
520
+ $[86] = path;
521
+ $[87] = setOnSuccess;
522
+ $[88] = value;
523
+ $[89] = t27;
518
524
  } else {
519
- t27 = $[85];
525
+ t27 = $[89];
520
526
  }
521
527
  useEffect(t26, t27);
522
528
  const showDropzone = !value || hasMany && Array.isArray(value) && (typeof maxRows !== "number" || value.length < maxRows) || !hasMany && populatedDocs?.[0] && typeof populatedDocs[0].value === "undefined";
523
529
  const t28 = showError && "error";
524
530
  const t29 = readOnly && "read-only";
525
531
  let t30;
526
- if ($[86] !== className || $[87] !== t28 || $[88] !== t29) {
532
+ if ($[90] !== className || $[91] !== t28 || $[92] !== t29) {
527
533
  t30 = [fieldBaseClass, baseClass, className, t28, t29].filter(Boolean);
528
- $[86] = className;
529
- $[87] = t28;
530
- $[88] = t29;
531
- $[89] = t30;
534
+ $[90] = className;
535
+ $[91] = t28;
536
+ $[92] = t29;
537
+ $[93] = t30;
532
538
  } else {
533
- t30 = $[89];
539
+ t30 = $[93];
534
540
  }
535
541
  const t31 = t30.join(" ");
536
542
  const t32 = `field-${path?.replace(/\./g, "__")}`;
537
543
  let t33;
538
- if ($[90] !== AfterInput || $[91] !== BeforeInput || $[92] !== CreateDocDrawer || $[93] !== Description || $[94] !== Error || $[95] !== Label || $[96] !== ListDrawer || $[97] !== canCreate || $[98] !== description || $[99] !== hasMany || $[100] !== isSortable || $[101] !== label || $[102] !== localized || $[103] !== maxRows || $[104] !== onDocCreate || $[105] !== onListBulkSelect || $[106] !== onListSelect || $[107] !== onLocalFileSelection || $[108] !== onRemove || $[109] !== onReorder || $[110] !== openCreateDocDrawer || $[111] !== openListDrawer || $[112] !== path || $[113] !== populatedDocs || $[114] !== readOnly || $[115] !== reloadDoc || $[116] !== required || $[117] !== serverURL || $[118] !== showDropzone || $[119] !== showError || $[120] !== style || $[121] !== t || $[122] !== t31 || $[123] !== t32 || $[124] !== value) {
544
+ if ($[94] !== AfterInput || $[95] !== BeforeInput || $[96] !== CreateDocDrawer || $[97] !== Description || $[98] !== Error || $[99] !== Label || $[100] !== ListDrawer || $[101] !== canCreate || $[102] !== description || $[103] !== hasMany || $[104] !== isSortable || $[105] !== label || $[106] !== localized || $[107] !== maxRows || $[108] !== onDocCreate || $[109] !== onListBulkSelect || $[110] !== onListSelect || $[111] !== onLocalFileSelection || $[112] !== onRemove || $[113] !== onReorder || $[114] !== openCreateDocDrawer || $[115] !== openListDrawer || $[116] !== path || $[117] !== populatedDocs || $[118] !== readOnly || $[119] !== reloadDoc || $[120] !== required || $[121] !== serverURL || $[122] !== showDropzone || $[123] !== showError || $[124] !== style || $[125] !== t || $[126] !== t31 || $[127] !== t32 || $[128] !== value) {
539
545
  t33 = _jsxs("div", {
540
546
  className: t31,
541
547
  id: t32,
@@ -645,44 +651,44 @@ export function UploadInput(props) {
645
651
  })
646
652
  })]
647
653
  });
648
- $[90] = AfterInput;
649
- $[91] = BeforeInput;
650
- $[92] = CreateDocDrawer;
651
- $[93] = Description;
652
- $[94] = Error;
653
- $[95] = Label;
654
- $[96] = ListDrawer;
655
- $[97] = canCreate;
656
- $[98] = description;
657
- $[99] = hasMany;
658
- $[100] = isSortable;
659
- $[101] = label;
660
- $[102] = localized;
661
- $[103] = maxRows;
662
- $[104] = onDocCreate;
663
- $[105] = onListBulkSelect;
664
- $[106] = onListSelect;
665
- $[107] = onLocalFileSelection;
666
- $[108] = onRemove;
667
- $[109] = onReorder;
668
- $[110] = openCreateDocDrawer;
669
- $[111] = openListDrawer;
670
- $[112] = path;
671
- $[113] = populatedDocs;
672
- $[114] = readOnly;
673
- $[115] = reloadDoc;
674
- $[116] = required;
675
- $[117] = serverURL;
676
- $[118] = showDropzone;
677
- $[119] = showError;
678
- $[120] = style;
679
- $[121] = t;
680
- $[122] = t31;
681
- $[123] = t32;
682
- $[124] = value;
683
- $[125] = t33;
654
+ $[94] = AfterInput;
655
+ $[95] = BeforeInput;
656
+ $[96] = CreateDocDrawer;
657
+ $[97] = Description;
658
+ $[98] = Error;
659
+ $[99] = Label;
660
+ $[100] = ListDrawer;
661
+ $[101] = canCreate;
662
+ $[102] = description;
663
+ $[103] = hasMany;
664
+ $[104] = isSortable;
665
+ $[105] = label;
666
+ $[106] = localized;
667
+ $[107] = maxRows;
668
+ $[108] = onDocCreate;
669
+ $[109] = onListBulkSelect;
670
+ $[110] = onListSelect;
671
+ $[111] = onLocalFileSelection;
672
+ $[112] = onRemove;
673
+ $[113] = onReorder;
674
+ $[114] = openCreateDocDrawer;
675
+ $[115] = openListDrawer;
676
+ $[116] = path;
677
+ $[117] = populatedDocs;
678
+ $[118] = readOnly;
679
+ $[119] = reloadDoc;
680
+ $[120] = required;
681
+ $[121] = serverURL;
682
+ $[122] = showDropzone;
683
+ $[123] = showError;
684
+ $[124] = style;
685
+ $[125] = t;
686
+ $[126] = t31;
687
+ $[127] = t32;
688
+ $[128] = value;
689
+ $[129] = t33;
684
690
  } else {
685
- t33 = $[125];
691
+ t33 = $[129];
686
692
  }
687
693
  return t33;
688
694
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","names":["c","_c","useModal","qs","React","useCallback","useEffect","useMemo","useBulkUpload","Button","useDocumentDrawer","Dropzone","useListDrawer","RenderCustomComponent","ShimmerEffect","FieldDescription","FieldError","FieldLabel","useAuth","useLocale","useTranslation","fieldBaseClass","UploadComponentHasMany","UploadComponentHasOne","baseClass","UploadInput","props","$","AfterInput","allowCreate","api","BeforeInput","className","Description","description","Error","filterOptions","filterOptionsFromProps","hasMany","isSortable","Label","label","localized","maxRows","onChange","onChangeFromProps","path","readOnly","relationTo","required","serverURL","showError","style","value","populatedDocs","setPopulatedDocs","useState","activeRelationTo","Array","isArray","openModal","drawerSlug","setCollectionSlug","setInitialFiles","setMaxFiles","setOnSuccess","permissions","code","i18n","t","t0","t1","t2","id","t3","not_in","t4","concat","t5","t6","t7","t8","t9","collectionSlugs","ListDrawer","t10","closeDrawer","closeListDrawer","openDrawer","openListDrawer","t11","collectionSlug","CreateDocDrawer","t12","closeCreateDocDrawer","openCreateDocDrawer","loadedValueDocsRef","useRef","t13","bb0","collections","create","canCreate","t14","newValue","t15","language","ids","relatedCollectionSlug","query","depth","draft","limit","length","locale","where","and","in","response","fetch","body","stringify","credentials","headers","method","ok","json","sortedDocs","map","docs","find","doc","String","populateDocs","t16","newDocs","mergedValue","_temp","currentDocs","doc_1","firstDoc","onUploadSuccess","t17","fileList","fileListToUse","dataTransfer","DataTransfer","items","add","files","onLocalFileSelection","t18","selectedDocIDs","id_0","isSelected","push","loadedDocs","currentDocs_0","doc_2","onListBulkSelect","t19","data","currentDocs_1","onDocCreate","t20","t21","docID","loadedDocs_0","selectedDoc","currentDocs_2","onListSelect","docID_0","collectionSlug_0","docs_0","currentDocs_3","existingDocIndex","findIndex","doc_3","updatedDocs","reloadDoc","t22","newValue_0","newValueIDs","_temp2","onReorder","t23","newValue_1","newValueIDs_0","_temp3","onRemove","t24","t25","loadInitialDocs","current","loadedDocs_1","doc_4","t26","t27","showDropzone","t28","t29","t30","filter","Boolean","t31","join","t32","replace","t33","_jsxs","children","_jsx","CustomComponent","Fallback","_Fragment","fileDocs","readonly","_temp4","fileDoc","height","disabled","multipleFiles","buttonStyle","onClick","size","onSave","enableRowSelections","onBulkSelect","onSelect","id_1","value_1","value_0","doc_0"],"sources":["../../../src/fields/Upload/Input.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientCollectionConfig,\n FieldLabelClientProps,\n FilterOptionsResult,\n JsonObject,\n StaticDescription,\n StaticLabel,\n UploadFieldClient,\n UploadField as UploadFieldType,\n Where,\n} from 'payload'\nimport type { MarkOptional } from 'ts-essentials'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo } from 'react'\n\nimport type { ListDrawerProps } from '../../elements/ListDrawer/types.js'\nimport type { PopulateDocs, ReloadDoc } from './types.js'\n\nimport { useBulkUpload } from '../../elements/BulkUpload/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { Dropzone } from '../../elements/Dropzone/index.js'\nimport { useListDrawer } from '../../elements/ListDrawer/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { ShimmerEffect } from '../../elements/ShimmerEffect/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { UploadComponentHasMany } from './HasMany/index.js'\nimport { UploadComponentHasOne } from './HasOne/index.js'\nimport './index.scss'\n\nexport const baseClass = 'upload'\n\ntype PopulatedDocs = { relationTo: string; value: JsonObject }[]\n\nexport type UploadInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n /**\n * Controls the visibility of the \"Create new collection\" button\n */\n readonly api?: string\n readonly BeforeInput?: React.ReactNode\n readonly className?: string\n readonly collection?: ClientCollectionConfig\n readonly customUploadActions?: React.ReactNode[]\n readonly Description?: React.ReactNode\n readonly description?: StaticDescription\n readonly Error?: React.ReactNode\n readonly filterOptions?: FilterOptionsResult\n readonly hasMany?: boolean\n readonly isSortable?: boolean\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly labelProps?: FieldLabelClientProps<MarkOptional<UploadFieldClient, 'type'>>\n readonly localized?: boolean\n readonly maxRows?: number\n readonly onChange?: (e) => void\n readonly path: string\n readonly readOnly?: boolean\n readonly relationTo: UploadFieldType['relationTo']\n readonly required?: boolean\n readonly serverURL?: string\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: (number | string)[] | (number | string)\n}\n\nexport function UploadInput(props: UploadInputProps) {\n const {\n AfterInput,\n allowCreate,\n api,\n BeforeInput,\n className,\n Description,\n description,\n Error,\n filterOptions: filterOptionsFromProps,\n hasMany,\n isSortable,\n Label,\n label,\n localized,\n maxRows,\n onChange: onChangeFromProps,\n path,\n readOnly,\n relationTo,\n required,\n serverURL,\n showError,\n style,\n value,\n } = props\n\n const [populatedDocs, setPopulatedDocs] = React.useState<\n {\n relationTo: string\n value: JsonObject\n }[]\n >()\n\n const [activeRelationTo, setActiveRelationTo] = React.useState<string>(\n Array.isArray(relationTo) ? relationTo[0] : relationTo,\n )\n\n const { openModal } = useModal()\n const { drawerSlug, setCollectionSlug, setInitialFiles, setMaxFiles, setOnSuccess } =\n useBulkUpload()\n const { permissions } = useAuth()\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const filterOptions: FilterOptionsResult = useMemo(() => {\n return {\n ...filterOptionsFromProps,\n [activeRelationTo]: {\n ...((filterOptionsFromProps?.[activeRelationTo] as any) || {}),\n id: {\n ...((filterOptionsFromProps?.[activeRelationTo] as any)?.id || {}),\n not_in: ((filterOptionsFromProps?.[activeRelationTo] as any)?.id?.not_in || []).concat(\n ...(Array.isArray(value) || value ? [value] : []),\n ),\n },\n },\n }\n }, [value, activeRelationTo, filterOptionsFromProps])\n\n const [ListDrawer, , { closeDrawer: closeListDrawer, openDrawer: openListDrawer }] =\n useListDrawer({\n collectionSlugs: typeof relationTo === 'string' ? [relationTo] : relationTo,\n filterOptions,\n })\n\n const [\n CreateDocDrawer,\n ,\n { closeDrawer: closeCreateDocDrawer, openDrawer: openCreateDocDrawer },\n ] = useDocumentDrawer({\n collectionSlug: activeRelationTo,\n })\n\n /**\n * Prevent initial retrieval of documents from running more than once\n */\n const loadedValueDocsRef = React.useRef<boolean>(false)\n\n const canCreate = useMemo(() => {\n if (!allowCreate) {\n return false\n }\n\n if (typeof activeRelationTo === 'string') {\n if (permissions?.collections && permissions.collections?.[activeRelationTo]?.create) {\n return true\n }\n }\n\n return false\n }, [activeRelationTo, permissions, allowCreate])\n\n const onChange = React.useCallback(\n (newValue) => {\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newValue)\n }\n },\n [onChangeFromProps],\n )\n\n const populateDocs = React.useCallback<PopulateDocs>(\n async (ids, relatedCollectionSlug) => {\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n limit: ids.length,\n locale: code,\n where: {\n and: [\n {\n id: {\n in: ids,\n },\n },\n ],\n },\n }\n\n const response = await fetch(`${serverURL}${api}/${relatedCollectionSlug}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n if (response.ok) {\n const json = await response.json()\n const sortedDocs = ids.map((id) =>\n json.docs.find((doc) => {\n return String(doc.id) === String(id)\n }),\n )\n\n return { ...json, docs: sortedDocs }\n }\n\n return null\n },\n [code, serverURL, api, i18n.language],\n )\n\n const onUploadSuccess = useCallback(\n (newDocs: JsonObject[]) => {\n if (hasMany) {\n const mergedValue = [\n ...(Array.isArray(value) ? value : []),\n ...newDocs.map((doc) => doc.id),\n ]\n onChange(mergedValue)\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n ...newDocs.map((doc) => ({\n relationTo: activeRelationTo,\n value: doc,\n })),\n ])\n } else {\n const firstDoc = newDocs[0]\n onChange(firstDoc.id)\n setPopulatedDocs([\n {\n relationTo: activeRelationTo,\n value: firstDoc,\n },\n ])\n }\n },\n [value, onChange, activeRelationTo, hasMany],\n )\n\n const onLocalFileSelection = React.useCallback(\n (fileList?: FileList) => {\n let fileListToUse = fileList\n if (!hasMany && fileList && fileList.length > 1) {\n const dataTransfer = new DataTransfer()\n dataTransfer.items.add(fileList[0])\n fileListToUse = dataTransfer.files\n }\n if (fileListToUse) {\n setInitialFiles(fileListToUse)\n }\n setCollectionSlug(relationTo)\n if (typeof maxRows === 'number') {\n setMaxFiles(maxRows)\n }\n openModal(drawerSlug)\n },\n [\n drawerSlug,\n hasMany,\n openModal,\n relationTo,\n setCollectionSlug,\n setInitialFiles,\n maxRows,\n setMaxFiles,\n ],\n )\n\n // only hasMany can bulk select\n const onListBulkSelect = React.useCallback<NonNullable<ListDrawerProps['onBulkSelect']>>(\n async (docs) => {\n const selectedDocIDs = []\n\n for (const [id, isSelected] of docs) {\n if (isSelected) {\n selectedDocIDs.push(id)\n }\n }\n\n const loadedDocs = await populateDocs(selectedDocIDs, activeRelationTo)\n if (loadedDocs) {\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n ...loadedDocs.docs.map((doc) => ({\n relationTo: activeRelationTo,\n value: doc,\n })),\n ])\n }\n onChange([...(Array.isArray(value) ? value : []), ...selectedDocIDs])\n closeListDrawer()\n },\n [activeRelationTo, closeListDrawer, onChange, populateDocs, value],\n )\n\n const onDocCreate = React.useCallback(\n (data) => {\n if (data.doc) {\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n {\n relationTo: activeRelationTo,\n value: data.doc,\n },\n ])\n\n onChange(data.doc.id)\n }\n closeCreateDocDrawer()\n },\n [closeCreateDocDrawer, activeRelationTo, onChange],\n )\n\n const onListSelect = React.useCallback<NonNullable<ListDrawerProps['onSelect']>>(\n async ({ collectionSlug, docID }) => {\n const loadedDocs = await populateDocs([docID], collectionSlug)\n const selectedDoc = loadedDocs ? loadedDocs.docs?.[0] : null\n setPopulatedDocs((currentDocs) => {\n if (selectedDoc) {\n if (hasMany) {\n return [\n ...(currentDocs || []),\n {\n relationTo: activeRelationTo,\n value: selectedDoc,\n },\n ]\n }\n return [\n {\n relationTo: activeRelationTo,\n value: selectedDoc,\n },\n ]\n }\n return currentDocs\n })\n if (hasMany) {\n onChange([...(Array.isArray(value) ? value : []), docID])\n } else {\n onChange(docID)\n }\n closeListDrawer()\n },\n [closeListDrawer, hasMany, populateDocs, onChange, value, activeRelationTo],\n )\n\n const reloadDoc = React.useCallback<ReloadDoc>(\n async (docID, collectionSlug) => {\n const { docs } = await populateDocs([docID], collectionSlug)\n\n if (docs[0]) {\n setPopulatedDocs((currentDocs) => {\n const existingDocIndex = currentDocs?.findIndex((doc) => {\n return doc.value.id === docs[0].id && doc.relationTo === collectionSlug\n })\n if (existingDocIndex > -1) {\n const updatedDocs = [...currentDocs]\n updatedDocs[existingDocIndex] = {\n relationTo: collectionSlug,\n value: docs[0],\n }\n return updatedDocs\n }\n })\n }\n },\n [populateDocs],\n )\n\n // only hasMany can reorder\n const onReorder = React.useCallback(\n (newValue) => {\n const newValueIDs = newValue.map(({ value }) => value.id)\n onChange(newValueIDs)\n setPopulatedDocs(newValue)\n },\n [onChange],\n )\n\n const onRemove = React.useCallback(\n (newValue?: PopulatedDocs) => {\n const newValueIDs = newValue ? newValue.map(({ value }) => value.id) : null\n onChange(hasMany ? newValueIDs : newValueIDs ? newValueIDs[0] : null)\n setPopulatedDocs(newValue ? newValue : [])\n },\n [onChange, hasMany],\n )\n\n useEffect(() => {\n async function loadInitialDocs() {\n if (value) {\n loadedValueDocsRef.current = true\n const loadedDocs = await populateDocs(\n Array.isArray(value) ? value : [value],\n activeRelationTo,\n )\n if (loadedDocs) {\n setPopulatedDocs(\n loadedDocs.docs.map((doc) => ({ relationTo: activeRelationTo, value: doc })),\n )\n }\n }\n }\n\n if (!loadedValueDocsRef.current) {\n void loadInitialDocs()\n }\n }, [populateDocs, activeRelationTo, value])\n\n useEffect(() => {\n setOnSuccess(onUploadSuccess)\n }, [value, onUploadSuccess, setOnSuccess])\n\n const showDropzone =\n !value ||\n (hasMany && Array.isArray(value) && (typeof maxRows !== 'number' || value.length < maxRows)) ||\n (!hasMany && populatedDocs?.[0] && typeof populatedDocs[0].value === 'undefined')\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n style={style}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${baseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n </div>\n {BeforeInput}\n <div className={`${baseClass}__dropzoneAndUpload`}>\n {hasMany && Array.isArray(value) && value.length > 0 ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 ? (\n <UploadComponentHasMany\n fileDocs={populatedDocs}\n isSortable={isSortable && !readOnly}\n onRemove={onRemove}\n onReorder={onReorder}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n />\n ) : (\n <div className={`${baseClass}__loadingRows`}>\n {value.map((id) => (\n <ShimmerEffect height=\"40px\" key={id} />\n ))}\n </div>\n )}\n </>\n ) : null}\n {!hasMany && value ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 && populatedDocs[0].value ? (\n <UploadComponentHasOne\n fileDoc={populatedDocs[0]}\n onRemove={onRemove}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n />\n ) : populatedDocs && value && !populatedDocs?.[0]?.value ? (\n <>\n {t('general:untitled')} - ID: {value}\n </>\n ) : (\n <ShimmerEffect height=\"62px\" />\n )}\n </>\n ) : null}\n {showDropzone ? (\n <Dropzone\n disabled={readOnly || !canCreate}\n multipleFiles={hasMany}\n onChange={onLocalFileSelection}\n >\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneContent__buttons`}>\n {canCreate && (\n <>\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__createNewToggler`}\n disabled={readOnly || !canCreate}\n onClick={() => {\n if (!readOnly) {\n if (hasMany) {\n onLocalFileSelection()\n } else {\n openCreateDocDrawer()\n }\n }\n }}\n size=\"small\"\n >\n {t('general:createNew')}\n </Button>\n <span className={`${baseClass}__dropzoneContent__orText`}>\n {t('general:or')}\n </span>\n </>\n )}\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__listToggler`}\n disabled={readOnly}\n onClick={openListDrawer}\n size=\"small\"\n >\n {t('fields:chooseFromExisting')}\n </Button>\n <CreateDocDrawer onSave={onDocCreate} />\n <ListDrawer\n allowCreate={canCreate}\n enableRowSelections={hasMany}\n onBulkSelect={onListBulkSelect}\n onSelect={onListSelect}\n />\n </div>\n\n {canCreate && !readOnly && (\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n )}\n </div>\n </Dropzone>\n ) : (\n <>\n {!readOnly &&\n !populatedDocs &&\n (!value ||\n typeof maxRows !== 'number' ||\n (Array.isArray(value) && value.length < maxRows)) ? (\n <ShimmerEffect height=\"40px\" />\n ) : null}\n </>\n )}\n </div>\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAeA,SAASC,QAAQ,QAAQ;AACzB,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,OAAO,QAAQ;AAKvD,SAASC,aAAa,QAAQ;AAC9B,SAASC,MAAM,QAAQ;AACvB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,qBAAqB,QAAQ;AACtC,SAASC,aAAa,QAAQ;AAC9B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,UAAU,QAAQ;AAC3B,SAASC,UAAU,QAAQ;AAC3B,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,SAASC,sBAAsB,QAAQ;AACvC,SAASC,qBAAqB,QAAQ;AACtC,OAAO;AAEP,OAAO,MAAMC,SAAA,GAAY;AAqCzB,OAAO,SAAAC,YAAAC,KAAA;EAAA,MAAAC,CAAA,GAAA1B,EAAA;EACL;IAAA2B,UAAA;IAAAC,WAAA;IAAAC,GAAA;IAAAC,WAAA;IAAAC,SAAA;IAAAC,WAAA;IAAAC,WAAA;IAAAC,KAAA;IAAAC,aAAA,EAAAC,sBAAA;IAAAC,OAAA;IAAAC,UAAA;IAAAC,KAAA;IAAAC,KAAA;IAAAC,SAAA;IAAAC,OAAA;IAAAC,QAAA,EAAAC,iBAAA;IAAAC,IAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,QAAA;IAAAC,SAAA;IAAAC,SAAA;IAAAC,KAAA;IAAAC;EAAA,IAyBI3B,KAAA;EAEJ,OAAA4B,aAAA,EAAAC,gBAAA,IAA0CnD,KAAA,CAAAoD,QAAA,CAAc;EAOxD,OAAAC,gBAAA,IAAgDrD,KAAA,CAAAoD,QAAA,CAC9CE,KAAA,CAAAC,OAAA,CAAcX,UAAA,IAAcA,UAAU,MAAMA,UAAA;EAG9C;IAAAY;EAAA,IAAsB1D,QAAA;EACtB;IAAA2D,UAAA;IAAAC,iBAAA;IAAAC,eAAA;IAAAC,WAAA;IAAAC;EAAA,IACEzD,aAAA;EACF;IAAA0D;EAAA,IAAwBhD,OAAA;EACxB;IAAAiD;EAAA,IAAiBhD,SAAA;EACjB;IAAAiD,IAAA;IAAAC;EAAA,IAAoBjD,cAAA;EAAA,IAAAkD,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAA5C,CAAA,QAAA8B,gBAAA,IAAA9B,CAAA,QAAAU,sBAAA;IAMVkC,EAAA,GAAAlC,sBAAC,GAAyBoB,gBAAA,OAA+B;IAAA9B,CAAA,MAAA8B,gBAAA;IAAA9B,CAAA,MAAAU,sBAAA;IAAAV,CAAA,MAAA4C,EAAA;EAAA;IAAAA,EAAA,GAAA5C,CAAA;EAAA;EAAA,IAAA6C,EAAA;EAAA,IAAA7C,CAAA,QAAA8B,gBAAA,IAAA9B,CAAA,QAAAU,sBAAA;IAEvDmC,EAAA,GAAAnC,sBAAC,GAAyBoB,gBAAA,GAAAgB,EAAA,MAAmC;IAAA9C,CAAA,MAAA8B,gBAAA;IAAA9B,CAAA,MAAAU,sBAAA;IAAAV,CAAA,MAAA6C,EAAA;EAAA;IAAAA,EAAA,GAAA7C,CAAA;EAAA;EAAA,IAAA+C,EAAA;EAAA,IAAA/C,CAAA,QAAA8B,gBAAA,IAAA9B,CAAA,QAAAU,sBAAA;IACxDqC,EAAA,GAAArC,sBAAC,GAAyBoB,gBAAA,GAAAgB,EAAA,EAAAE,MAAA,MAA2C;IAAAhD,CAAA,MAAA8B,gBAAA;IAAA9B,CAAA,MAAAU,sBAAA;IAAAV,CAAA,MAAA+C,EAAA;EAAA;IAAAA,EAAA,GAAA/C,CAAA;EAAA;EAAA,IAAAiD,EAAA;EAAA,IAAAjD,CAAA,QAAA+C,EAAA,IAAA/C,CAAA,SAAA0B,KAAA;IAAtEuB,EAAA,GAACF,EAAqE,CAAAG,MAAA,KACxEnB,KAAA,CAAAC,OAAA,CAAcN,KAAA,KAAUA,KAAA,IAASA,KAAA,MAAW;IAAA1B,CAAA,MAAA+C,EAAA;IAAA/C,CAAA,OAAA0B,KAAA;IAAA1B,CAAA,OAAAiD,EAAA;EAAA;IAAAA,EAAA,GAAAjD,CAAA;EAAA;EAAA,IAAAmD,EAAA;EAAA,IAAAnD,CAAA,SAAA6C,EAAA,IAAA7C,CAAA,SAAAiD,EAAA;IAHhDE,EAAA;MAAA,GACEN,EAA6D;MAAAG,MAAA,EACzDC;IAC0C;IAEpDjD,CAAA,OAAA6C,EAAA;IAAA7C,CAAA,OAAAiD,EAAA;IAAAjD,CAAA,OAAAmD,EAAA;EAAA;IAAAA,EAAA,GAAAnD,CAAA;EAAA;EAAA,IAAAoD,EAAA;EAAA,IAAApD,CAAA,SAAA4C,EAAA,IAAA5C,CAAA,SAAAmD,EAAA;IAPkBC,EAAA;MAAA,GACdR,EAAyD;MAAAE,EAAA,EACzDK;IAKJ;IACFnD,CAAA,OAAA4C,EAAA;IAAA5C,CAAA,OAAAmD,EAAA;IAAAnD,CAAA,OAAAoD,EAAA;EAAA;IAAAA,EAAA,GAAApD,CAAA;EAAA;EAAA,IAAAqD,EAAA;EAAA,IAAArD,CAAA,SAAA8B,gBAAA,IAAA9B,CAAA,SAAAU,sBAAA,IAAAV,CAAA,SAAAoD,EAAA;IAVKC,EAAA;MAAA,GACF3C,sBAAsB;MAAA,CACxBoB,gBAAA,GAAmBsB;IAQpB;IACFpD,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAAU,sBAAA;IAAAV,CAAA,OAAAoD,EAAA;IAAApD,CAAA,OAAAqD,EAAA;EAAA;IAAAA,EAAA,GAAArD,CAAA;EAAA;EAXA2C,EAAA,GAAOU,EAWP;EAZF,MAAA5C,aAAA,GAA2CkC,EAaS;EAAA,IAAAW,EAAA;EAAA,IAAAtD,CAAA,SAAAqB,UAAA;IAI/BiC,EAAA,UAAOjC,UAAA,KAAe,YAAYA,UAAA,IAAcA,UAAA;IAAArB,CAAA,OAAAqB,UAAA;IAAArB,CAAA,OAAAsD,EAAA;EAAA;IAAAA,EAAA,GAAAtD,CAAA;EAAA;EAAA,IAAAuD,EAAA;EAAA,IAAAvD,CAAA,SAAAS,aAAA,IAAAT,CAAA,SAAAsD,EAAA;IADrDC,EAAA;MAAAC,eAAA,EACKF,EAAgD;MAAA7C;IAAA;IAEnET,CAAA,OAAAS,aAAA;IAAAT,CAAA,OAAAsD,EAAA;IAAAtD,CAAA,OAAAuD,EAAA;EAAA;IAAAA,EAAA,GAAAvD,CAAA;EAAA;EAJF,OAAAyD,UAAA,GAAAC,GAAA,IACEzE,aAAA,CAAcsE,EAGd;EAJmB;IAAAI,WAAA,EAAAC,eAAA;IAAAC,UAAA,EAAAC;EAAA,IAAAJ,GAA4D;EAAA,IAAAK,GAAA;EAAA,IAAA/D,CAAA,SAAA8B,gBAAA;IAU3DiC,GAAA;MAAAC,cAAA,EACJlC;IAAA;IAClB9B,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAA+D,GAAA;EAAA;IAAAA,GAAA,GAAA/D,CAAA;EAAA;EANA,OAAAiE,eAAA,GAAAC,GAAA,IAIInF,iBAAA,CAAkBgF,GAEtB;EAHE;IAAAJ,WAAA,EAAAQ,oBAAA;IAAAN,UAAA,EAAAO;EAAA,IAAAF,GAAsE;EAQxE,MAAAG,kBAAA,GAA2B5F,KAAA,CAAA6F,MAAA,MAAsB;EAAA,IAAAC,GAAA;EAAAC,GAAA;IAAA,KAG1CtE,WAAA;MACHqE,GAAA;MAAO,MAAAC,GAAA;IAAA;IAAA,IAGL,OAAO1C,gBAAA,KAAqB;MAAA,IAC1BS,WAAA,EAAAkC,WAAA,IAA4BlC,WAAA,CAAAkC,WAAA,GAA0B3C,gBAAA,GAAA4C,MAAmB;QAC3EH,GAAA;QAAO,MAAAC,GAAA;MAAA;IAAA;IAIXD,GAAA;EAAO;EAXT,MAAAI,SAAA,GAAkBJ,GAY6B;EAAA,IAAAK,GAAA;EAAA,IAAA5E,CAAA,SAAAkB,iBAAA;IAG7C0D,GAAA,GAAAC,QAAA;MAAA,IACM,OAAO3D,iBAAA,KAAsB;QAC/BA,iBAAA,CAAkB2D,QAAA;MAAA;IAAA;IAEtB7E,CAAA,OAAAkB,iBAAA;IAAAlB,CAAA,OAAA4E,GAAA;EAAA;IAAAA,GAAA,GAAA5E,CAAA;EAAA;EALF,MAAAiB,QAAA,GAAiB2D,GAMI;EAAA,IAAAE,GAAA;EAAA,IAAA9E,CAAA,SAAAG,GAAA,IAAAH,CAAA,SAAAwC,IAAA,IAAAxC,CAAA,SAAAyC,IAAA,CAAAsC,QAAA,IAAA/E,CAAA,SAAAuB,SAAA;IAInBuD,GAAA,SAAAA,CAAAE,GAAA,EAAAC,qBAAA;MACE,MAAAC,KAAA;QAAAC,KAAA;QAAAC,KAAA;QAAAC,KAAA,EAMSL,GAAA,CAAAM,MAAA;QAAAC,MAAA,EACC/C,IAAA;QAAAgD,KAAA;UAAAC,GAAA;YAAA3C,EAAA;cAAA4C,EAAA,EAKIV;YAAA;UAAA;QAAA;MAAA;MAOd,MAAAW,QAAA,SAAuBC,KAAA,CAAM,GAAGrE,SAAA,GAAYpB,GAAA,IAAO8E,qBAAA,EAAuB;QAAAY,IAAA,EAClErH,EAAA,CAAAsH,SAAA,CAAaZ,KAAA;QAAAa,WAAA,EACN;QAAAC,OAAA;UAAA,mBAEQvD,IAAA,CAAAsC,QAAA;UAAA,gBACH;UAAA,0BACU;QAAA;QAAAkB,MAAA,EAEpB;MAAA,CACV;MAAA,IACIN,QAAA,CAAAO,EAAA;QACF,MAAAC,IAAA,SAAmBR,QAAA,CAAAQ,IAAA,CAAa;QAChC,MAAAC,UAAA,GAAmBpB,GAAA,CAAAqB,GAAA,CAAAvD,EAAA,IACjBqD,IAAA,CAAAG,IAAA,CAAAC,IAAA,CAAAC,GAAA,IACSC,MAAA,CAAOD,GAAA,CAAA1D,EAAM,MAAM2D,MAAA,CAAO3D,EAAA,CACnC;QAAA;UAAA,GAGUqD,IAAI;UAAAG,IAAA,EAAQF;QAAA;MAAA;MAAA;IAAA;IAI5BpG,CAAA,OAAAG,GAAA;IAAAH,CAAA,OAAAwC,IAAA;IAAAxC,CAAA,OAAAyC,IAAA,CAAAsC,QAAA;IAAA/E,CAAA,OAAAuB,SAAA;IAAAvB,CAAA,OAAA8E,GAAA;EAAA;IAAAA,GAAA,GAAA9E,CAAA;EAAA;EA3CF,MAAA0G,YAAA,GAAqB5B,GA4CkB;EAAA,IAAA6B,GAAA;EAAA,IAAA3G,CAAA,SAAA8B,gBAAA,IAAA9B,CAAA,SAAAW,OAAA,IAAAX,CAAA,SAAAiB,QAAA,IAAAjB,CAAA,SAAA0B,KAAA;IAIrCiF,GAAA,GAAAC,OAAA;MAAA,IACMjG,OAAA;QACF,MAAAkG,WAAA,QACM9E,KAAA,CAAAC,OAAA,CAAcN,KAAA,IAASA,KAAA,KAAU,MAClCkF,OAAA,CAAAP,GAAA,CAAAS,KAA2B;QAEhC7F,QAAA,CAAS4F,WAAA;QACTjF,gBAAA,CAAAmF,WAAA,SACMA,WAAA,MAAiB,MAClBH,OAAA,CAAAP,GAAA,CAAAW,KAAA;UAAA3F,UAAA,EACWS,gBAAA;UAAAJ,KAAA,EACL8E;QAAA,EACT,EACD;MAAA;QAED,MAAAS,QAAA,GAAiBL,OAAO;QACxB3F,QAAA,CAASgG,QAAA,CAAAnE,EAAW;QACpBlB,gBAAA;UAAAP,UAAA,EAEgBS,gBAAA;UAAAJ,KAAA,EACLuF;QAAA,EAEV;MAAA;IAAA;IAELjH,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAAW,OAAA;IAAAX,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAA0B,KAAA;IAAA1B,CAAA,OAAA2G,GAAA;EAAA;IAAAA,GAAA,GAAA3G,CAAA;EAAA;EAzBF,MAAAkH,eAAA,GAAwBP,GA0BsB;EAAA,IAAAQ,GAAA;EAAA,IAAAnH,CAAA,SAAAkC,UAAA,IAAAlC,CAAA,SAAAW,OAAA,IAAAX,CAAA,SAAAgB,OAAA,IAAAhB,CAAA,SAAAiC,SAAA,IAAAjC,CAAA,SAAAqB,UAAA,IAAArB,CAAA,SAAAmC,iBAAA,IAAAnC,CAAA,SAAAoC,eAAA,IAAApC,CAAA,SAAAqC,WAAA;IAI5C8E,GAAA,GAAAC,QAAA;MACE,IAAAC,aAAA,GAAoBD,QAAA;MAAA,IAChB,CAACzG,OAAA,IAAWyG,QAAA,IAAYA,QAAA,CAAA9B,MAAA,IAAkB;QAC5C,MAAAgC,YAAA,OAAAC,YAAA;QACAD,YAAA,CAAAE,KAAA,CAAAC,GAAA,CAAuBL,QAAQ,GAAG;QAClCC,aAAA,CAAAA,CAAA,CAAgBC,YAAA,CAAAI,KAAA;MAAhB;MAAA,IAEEL,aAAA;QACFjF,eAAA,CAAgBiF,aAAA;MAAA;MAElBlF,iBAAA,CAAkBd,UAAA;MAAA,IACd,OAAOL,OAAA,KAAY;QACrBqB,WAAA,CAAYrB,OAAA;MAAA;MAEdiB,SAAA,CAAUC,UAAA;IAAA;IACZlC,CAAA,OAAAkC,UAAA;IAAAlC,CAAA,OAAAW,OAAA;IAAAX,CAAA,OAAAgB,OAAA;IAAAhB,CAAA,OAAAiC,SAAA;IAAAjC,CAAA,OAAAqB,UAAA;IAAArB,CAAA,OAAAmC,iBAAA;IAAAnC,CAAA,OAAAoC,eAAA;IAAApC,CAAA,OAAAqC,WAAA;IAAArC,CAAA,OAAAmH,GAAA;EAAA;IAAAA,GAAA,GAAAnH,CAAA;EAAA;EAhBF,MAAA2H,oBAAA,GAA6BR,GA0B1B;EAAA,IAAAS,GAAA;EAAA,IAAA5H,CAAA,SAAA8B,gBAAA,IAAA9B,CAAA,SAAA4D,eAAA,IAAA5D,CAAA,SAAAiB,QAAA,IAAAjB,CAAA,SAAA0G,YAAA,IAAA1G,CAAA,SAAA0B,KAAA;IAKDkG,GAAA,SAAAtB,IAAA;MACE,MAAAuB,cAAA;MAAyB,KAEpB,OAAAC,IAAA,EAAAC,UAAA,CAAsB,IAAIzB,IAAA;QAAA,IACzByB,UAAA;UACFF,cAAA,CAAAG,IAAA,CAAoBlF,IAAA;QAAA;MAAA;MAIxB,MAAAmF,UAAA,SAAyBvB,YAAA,CAAamB,cAAA,EAAgB/F,gBAAA;MAAA,IAClDmG,UAAA;QACFrG,gBAAA,CAAAsG,aAAA,SACMnB,aAAA,MAAiB,MAClBkB,UAAA,CAAA3B,IAAA,CAAAD,GAAA,CAAA8B,KAAA;UAAA9G,UAAA,EACWS,gBAAA;UAAAJ,KAAA,EACL8E;QAAA,EACT,EACD;MAAA;MAEHvF,QAAA,MAAcc,KAAA,CAAAC,OAAA,CAAcN,KAAA,IAASA,KAAA,KAAU,MAAMmG,cAAA,CAAe;MACpEjE,eAAA;IAAA;IACF5D,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAA4D,eAAA;IAAA5D,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAA0G,YAAA;IAAA1G,CAAA,OAAA0B,KAAA;IAAA1B,CAAA,OAAA4H,GAAA;EAAA;IAAAA,GAAA,GAAA5H,CAAA;EAAA;EAtBF,MAAAoI,gBAAA,GAAyBR,GAuB2C;EAAA,IAAAS,GAAA;EAAA,IAAArI,CAAA,SAAA8B,gBAAA,IAAA9B,CAAA,SAAAmE,oBAAA,IAAAnE,CAAA,SAAAiB,QAAA;IAIlEoH,GAAA,GAAAC,IAAA;MAAA,IACMA,IAAA,CAAA9B,GAAA;QACF5E,gBAAA,CAAA2G,aAAA,SACMxB,aAAA,MAAiB;UAAA1F,UAAA,EAEPS,gBAAA;UAAAJ,KAAA,EACL4G,IAAA,CAAA9B;QAAA,EAEV;QAEDvF,QAAA,CAASqH,IAAA,CAAA9B,GAAA,CAAA1D,EAAW;MAAA;MAEtBqB,oBAAA;IAAA;IACFnE,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAAmE,oBAAA;IAAAnE,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAAqI,GAAA;EAAA;IAAAA,GAAA,GAAArI,CAAA;EAAA;EAdF,MAAAwI,WAAA,GAAoBH,GAegC;EAAA,IAAAI,GAAA;EAAA,IAAAzI,CAAA,SAAA8B,gBAAA,IAAA9B,CAAA,SAAA4D,eAAA,IAAA5D,CAAA,SAAAW,OAAA,IAAAX,CAAA,SAAAiB,QAAA,IAAAjB,CAAA,SAAA0G,YAAA,IAAA1G,CAAA,SAAA0B,KAAA;IAIlD+G,GAAA,SAAAC,GAAA;MAAO;QAAA1E,cAAA;QAAA2E;MAAA,IAAAD,GAAyB;MAC9B,MAAAE,YAAA,SAAyBlC,YAAA,EAAciC,KAAA,GAAQ3E,cAAA;MAC/C,MAAA6E,WAAA,GAAoBZ,YAAA,GAAaA,YAAA,CAAA3B,IAAA,YAAuB;MACxD1E,gBAAA,CAAAkH,aAAA;QAAA,IACMD,WAAA;UAAA,IACElI,OAAA;YAAA,YAEIoG,aAAA,MAAiB;cAAA1F,UAAA,EAEPS,gBAAA;cAAAJ,KAAA,EACLmH;YAAA;UAAA;UAAA;YAAAxH,UAAA,EAMGS,gBAAA;YAAAJ,KAAA,EACLmH;UAAA;QAAA;QAAA,OAIN9B,aAAA;MAAA,CACT;MAAA,IACIpG,OAAA;QACFM,QAAA,MAAcc,KAAA,CAAAC,OAAA,CAAcN,KAAA,IAASA,KAAA,KAAU,GAAGiH,KAAA,CAAM;MAAA;QAExD1H,QAAA,CAAS0H,KAAA;MAAA;MAEX/E,eAAA;IAAA;IACF5D,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAA4D,eAAA;IAAA5D,CAAA,OAAAW,OAAA;IAAAX,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAA0G,YAAA;IAAA1G,CAAA,OAAA0B,KAAA;IAAA1B,CAAA,OAAAyI,GAAA;EAAA;IAAAA,GAAA,GAAAzI,CAAA;EAAA;EA9BF,MAAA+I,YAAA,GAAqBN,GA+BwD;EAAA,IAAAC,GAAA;EAAA,IAAA1I,CAAA,SAAA0G,YAAA;IAI3EgC,GAAA,SAAAA,CAAAM,OAAA,EAAAC,gBAAA;MACE;QAAA3C,IAAA,EAAA4C;MAAA,UAAuBxC,YAAA,EAAciC,OAAA,GAAQ3E,gBAAA;MAAA,IAEzCsC,MAAI;QACN1E,gBAAA,CAAAuH,aAAA;UACE,MAAAC,gBAAA,GAAyBrC,aAAA,EAAAsC,SAAA,CAAAC,KAAA,IAChB9C,KAAA,CAAA9E,KAAA,CAAAoB,EAAA,KAAiBwD,MAAI,IAAAxD,EAAM,IAAI0D,KAAA,CAAAnF,UAAA,KAAmB2C,gBAAA;UAC3D,IACIoF,gBAAA,KAAoB;YACtB,MAAAG,WAAA,OAAwBxC,aAAA;YACxBwC,WAAW,CAACH,gBAAA;cAAA/H,UAAA,EACE2C,gBAAA;cAAAtC,KAAA,EACL4E,MAAI;YAAA;YAAA,OAENiD,WAAA;UAAA;QAAA,CAEX;MAAA;IAAA;IAEJvJ,CAAA,OAAA0G,YAAA;IAAA1G,CAAA,OAAA0I,GAAA;EAAA;IAAAA,GAAA,GAAA1I,CAAA;EAAA;EAnBF,MAAAwJ,SAAA,GAAkBd,GAoBF;EAAA,IAAAe,GAAA;EAAA,IAAAzJ,CAAA,SAAAiB,QAAA;IAKdwI,GAAA,GAAAC,UAAA;MACE,MAAAC,WAAA,GAAoB9E,UAAA,CAAAwB,GAAA,CAAAuD,MAAoC;MACxD3I,QAAA,CAAS0I,WAAA;MACT/H,gBAAA,CAAiBiD,UAAA;IAAA;IACnB7E,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAAyJ,GAAA;EAAA;IAAAA,GAAA,GAAAzJ,CAAA;EAAA;EALF,MAAA6J,SAAA,GAAkBJ,GAMN;EAAA,IAAAK,GAAA;EAAA,IAAA9J,CAAA,SAAAW,OAAA,IAAAX,CAAA,SAAAiB,QAAA;IAIV6I,GAAA,GAAAC,UAAA;MACE,MAAAC,aAAA,GAAoBnF,UAAA,GAAWA,UAAA,CAAAwB,GAAA,CAAA4D,MAAoC,QAAI;MACvEhJ,QAAA,CAASN,OAAA,GAAUgJ,aAAA,GAAcA,aAAA,GAAcA,aAAW,UAAM;MAChE/H,gBAAA,CAAiBiD,UAAA,GAAWA,UAAA,KAAa;IAAA;IAC3C7E,CAAA,OAAAW,OAAA;IAAAX,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAA8J,GAAA;EAAA;IAAAA,GAAA,GAAA9J,CAAA;EAAA;EALF,MAAAkK,QAAA,GAAiBJ,GAMI;EAAA,IAAAK,GAAA;EAAA,IAAAC,GAAA;EAAA,IAAApK,CAAA,SAAA8B,gBAAA,IAAA9B,CAAA,SAAA0G,YAAA,IAAA1G,CAAA,SAAA0B,KAAA;IAGXyI,GAAA,GAAAA,CAAA;MACR,MAAAE,eAAA,kBAAAA,gBAAA;QAAA,IACM3I,KAAA;UACF2C,kBAAA,CAAAiG,OAAA;UACA,MAAAC,YAAA,SAAyB7D,YAAA,CACvB3E,KAAA,CAAAC,OAAA,CAAcN,KAAA,IAASA,KAAA,IAASA,KAAA,CAAM,EACtCI,gBAAA;UAAA,IAEEmG,YAAA;YACFrG,gBAAA,CACEqG,YAAA,CAAA3B,IAAA,CAAAD,GAAA,CAAAmE,KAAA;cAAAnJ,UAAA,EAA4CS,gBAAA;cAAAJ,KAAA,EAAyB8E;YAAA,EAAI;UAAA;QAAA;MAAA;MAIjF,KAEKnC,kBAAA,CAAAiG,OAAA;QACED,eAAA;MAAA;IAAA;IAEND,GAAA,IAAC1D,YAAA,EAAc5E,gBAAA,EAAkBJ,KAAA;IAAM1B,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAA0G,YAAA;IAAA1G,CAAA,OAAA0B,KAAA;IAAA1B,CAAA,OAAAmK,GAAA;IAAAnK,CAAA,OAAAoK,GAAA;EAAA;IAAAD,GAAA,GAAAnK,CAAA;IAAAoK,GAAA,GAAApK,CAAA;EAAA;EAnB1CrB,SAAA,CAAUwL,GAmBV,EAAGC,GAAuC;EAAA,IAAAK,GAAA;EAAA,IAAAzK,CAAA,SAAAkH,eAAA,IAAAlH,CAAA,SAAAsC,YAAA;IAEhCmI,GAAA,GAAAA,CAAA;MACRnI,YAAA,CAAa4E,eAAA;IAAA;IACflH,CAAA,OAAAkH,eAAA;IAAAlH,CAAA,OAAAsC,YAAA;IAAAtC,CAAA,OAAAyK,GAAA;EAAA;IAAAA,GAAA,GAAAzK,CAAA;EAAA;EAAA,IAAA0K,GAAA;EAAA,IAAA1K,CAAA,SAAAkH,eAAA,IAAAlH,CAAA,SAAAsC,YAAA,IAAAtC,CAAA,SAAA0B,KAAA;IAAGgJ,GAAA,IAAChJ,KAAA,EAAOwF,eAAA,EAAiB5E,YAAA;IAAatC,CAAA,OAAAkH,eAAA;IAAAlH,CAAA,OAAAsC,YAAA;IAAAtC,CAAA,OAAA0B,KAAA;IAAA1B,CAAA,OAAA0K,GAAA;EAAA;IAAAA,GAAA,GAAA1K,CAAA;EAAA;EAFzCrB,SAAA,CAAU8L,GAEV,EAAGC,GAAsC;EAEzC,MAAAC,YAAA,GACE,CAACjJ,KAAA,IACAf,OAAA,IAAWoB,KAAA,CAAAC,OAAA,CAAcN,KAAA,MAAW,OAAOV,OAAA,KAAY,YAAYU,KAAA,CAAA4D,MAAA,GAAetE,OAAM,KACxF,CAACL,OAAA,IAAWgB,aAAA,KAAkB,IAAI,OAAOA,aAAa,IAAAD,KAAA,KAAc;EAQjE,MAAAkJ,GAAA,GAAApJ,SAAA,IAAa;EACb,MAAAqJ,GAAA,GAAAzJ,QAAA,IAAY;EAAA,IAAA0J,GAAA;EAAA,IAAA9K,CAAA,SAAAK,SAAA,IAAAL,CAAA,SAAA4K,GAAA,IAAA5K,CAAA,SAAA6K,GAAA;IALHC,GAAA,IAAApL,cAAA,EAAAG,SAAA,EAGTQ,SAAA,EACAuK,GAAa,EACbC,GAAY,EAAAE,MAAA,CAAAC,OAEJ;IAAAhL,CAAA,OAAAK,SAAA;IAAAL,CAAA,OAAA4K,GAAA;IAAA5K,CAAA,OAAA6K,GAAA;IAAA7K,CAAA,OAAA8K,GAAA;EAAA;IAAAA,GAAA,GAAA9K,CAAA;EAAA;EAPC,MAAAiL,GAAA,GAAAH,GAOD,CAAAI,IAAA,CACF;EACJ,MAAAC,GAAA,YAAShK,IAAA,EAAAiK,OAAA,QAAqB,OAAO;EAAA,IAAAC,GAAA;EAAA,IAAArL,CAAA,SAAAC,UAAA,IAAAD,CAAA,SAAAI,WAAA,IAAAJ,CAAA,SAAAiE,eAAA,IAAAjE,CAAA,SAAAM,WAAA,IAAAN,CAAA,SAAAQ,KAAA,IAAAR,CAAA,SAAAa,KAAA,IAAAb,CAAA,SAAAyD,UAAA,IAAAzD,CAAA,SAAA2E,SAAA,IAAA3E,CAAA,SAAAO,WAAA,IAAAP,CAAA,SAAAW,OAAA,IAAAX,CAAA,UAAAY,UAAA,IAAAZ,CAAA,UAAAc,KAAA,IAAAd,CAAA,UAAAe,SAAA,IAAAf,CAAA,UAAAgB,OAAA,IAAAhB,CAAA,UAAAwI,WAAA,IAAAxI,CAAA,UAAAoI,gBAAA,IAAApI,CAAA,UAAA+I,YAAA,IAAA/I,CAAA,UAAA2H,oBAAA,IAAA3H,CAAA,UAAAkK,QAAA,IAAAlK,CAAA,UAAA6J,SAAA,IAAA7J,CAAA,UAAAoE,mBAAA,IAAApE,CAAA,UAAA8D,cAAA,IAAA9D,CAAA,UAAAmB,IAAA,IAAAnB,CAAA,UAAA2B,aAAA,IAAA3B,CAAA,UAAAoB,QAAA,IAAApB,CAAA,UAAAwJ,SAAA,IAAAxJ,CAAA,UAAAsB,QAAA,IAAAtB,CAAA,UAAAuB,SAAA,IAAAvB,CAAA,UAAA2K,YAAA,IAAA3K,CAAA,UAAAwB,SAAA,IAAAxB,CAAA,UAAAyB,KAAA,IAAAzB,CAAA,UAAA0C,CAAA,IAAA1C,CAAA,UAAAiL,GAAA,IAAAjL,CAAA,UAAAmL,GAAA,IAAAnL,CAAA,UAAA0B,KAAA;IAV3C2J,GAAA,GAAAC,KAAA,CAAC;MAAAjL,SAAA,EACY4K,GAQH;MAAAnI,EAAA,EACJqI,GAAqC;MAAA1J,KAAA;MAAA8J,QAAA,GAGzCC,IAAA,CAAAtM,qBAAA;QAAAuM,eAAA,EACmB5K,KAAA;QAAA6K,QAAA,EAEfF,IAAA,CAAAlM,UAAA;UAAAwB,KAAA;UAAAC,SAAA;UAAAI,IAAA;UAAAG;QAAA,C;UAGJkK,IAAA,CAAC;QAAAnL,SAAA,EAAe,GAAAR,SAAA,QAAoB;QAAA0L,QAAA,EAClCC,IAAA,CAAAtM,qBAAA;UAAAuM,eAAA,EACmBjL,KAAA;UAAAkL,QAAA,EACPF,IAAA,CAAAnM,UAAA;YAAA8B,IAAA;YAAAK;UAAA,C;;UAGbpB,WAAA,EACDkL,KAAA,CAAC;QAAAjL,SAAA,EAAe,GAAAR,SAAA,qBAAiC;QAAA0L,QAAA,GAC9C5K,OAAA,IAAWoB,KAAA,CAAAC,OAAA,CAAcN,KAAA,KAAUA,KAAA,CAAA4D,MAAA,IAAe,GACjDkG,IAAA,CAAAG,SAAA;UAAAJ,QAAA,EACG5J,aAAA,IAAiBA,aAAA,EAAA2D,MAAA,IAAwB,GACxCkG,IAAA,CAAA7L,sBAAA;YAAAiM,QAAA,EACYjK,aAAA;YAAAf,UAAA,EACEA,UAAA,KAAeQ,QAAA;YAAA8I,QAAA;YAAAL,SAAA;YAAAgC,QAAA,EAGjBzK,QAAA;YAAAoI,SAAA;YAAAjI;UAAA,C,IAKZiK,IAAA,CAAC;YAAAnL,SAAA,EAAe,GAAAR,SAAA,eAA2B;YAAA0L,QAAA,EACxC7J,KAAA,CAAA2E,GAAA,CAAAyF,MACmC;UAAA,C;iBAKxC,EACH,CAACnL,OAAA,IAAWe,KAAA,GACX8J,IAAA,CAAAG,SAAA;UAAAJ,QAAA,EACG5J,aAAA,IAAiBA,aAAA,EAAA2D,MAAA,IAAwB,IAAK3D,aAAa,IAAAD,KAAS,GACnE8J,IAAA,CAAA5L,qBAAA;YAAAmM,OAAA,EACWpK,aAAa;YAAAuI,QAAA;YAAA2B,QAAA,EAEZzK,QAAA;YAAAoI,SAAA;YAAAjI;UAAA,C,IAIVI,aAAA,IAAiBD,KAAA,KAAUC,aAAA,OAAAD,KAAoB,GACjD4J,KAAA,CAAAK,SAAA;YAAAJ,QAAA,GACG7I,CAAA,CAAE,qBAAoB,WAAQhB,KAAA;UAAA,C,IAGjC8J,IAAA,CAAArM,aAAA;YAAA6M,MAAA,EAAsB;UAAA,C;iBAGxB,EACHrB,YAAA,GACCa,IAAA,CAAAxM,QAAA;UAAAiN,QAAA,EACY7K,QAAA,KAAauD,SAAA;UAAAuH,aAAA,EACRvL,OAAA;UAAAM,QAAA,EACL0G,oBAAA;UAAA4D,QAAA,EAEVD,KAAA,CAAC;YAAAjL,SAAA,EAAe,GAAAR,SAAA,mBAA+B;YAAA0L,QAAA,GAC7CD,KAAA,CAAC;cAAAjL,SAAA,EAAe,GAAAR,SAAA,4BAAwC;cAAA0L,QAAA,GACrD5G,SAAA,IACC2G,KAAA,CAAAK,SAAA;gBAAAJ,QAAA,GACEC,IAAA,CAAA1M,MAAA;kBAAAqN,WAAA,EACc;kBAAA9L,SAAA,EACD,GAAAR,SAAA,oBAAgC;kBAAAoM,QAAA,EACjC7K,QAAA,KAAauD,SAAA;kBAAAyH,OAAA,EAAAA,CAAA;oBAAA,KAEhBhL,QAAA;sBAAA,IACCT,OAAA;wBACFgH,oBAAA;sBAAA;wBAEAvD,mBAAA;sBAAA;oBAAA;kBAAA;kBAAAiI,IAAA,EAID;kBAAAd,QAAA,EAEJ7I,CAAA,CAAE;gBAAA,C,GAEL8I,IAAA,CAAC;kBAAAnL,SAAA,EAAgB,GAAAR,SAAA,2BAAuC;kBAAA0L,QAAA,EACrD7I,CAAA,CAAE;gBAAA,C;kBAIT8I,IAAA,CAAA1M,MAAA;gBAAAqN,WAAA,EACc;gBAAA9L,SAAA,EACD,GAAAR,SAAA,eAA2B;gBAAAoM,QAAA,EAC5B7K,QAAA;gBAAAgL,OAAA,EACDtI,cAAA;gBAAAuI,IAAA,EACJ;gBAAAd,QAAA,EAEJ7I,CAAA,CAAE;cAAA,C,GAEL8I,IAAA,CAACvH,eAAA;gBAAAqI,MAAA,EAAwB9D;cAAA,C,GACzBgD,IAAA,CAAC/H,UAAA;gBAAAvD,WAAA,EACcyE,SAAA;gBAAA4H,mBAAA,EACQ5L,OAAA;gBAAA6L,YAAA,EACPpE,gBAAA;gBAAAqE,QAAA,EACJ1D;cAAA,C;gBAIbpE,SAAA,KAAcvD,QAAA,IACbkK,KAAA,CAAC;cAAAjL,SAAA,EAAa,GAAAR,SAAA,mBAA+B;cAAA0L,QAAA,GAC1C7I,CAAA,CAAE,eAAc,KAAEA,CAAA,CAAE;YAAA,C;;aAM7B8I,IAAA,CAAAG,SAAA;UAAAJ,QAAA,EACG,CAACnK,QAAA,KACDO,aAAA,KACA,CAACD,KAAA,IACA,OAAOV,OAAA,KAAY,YAClBe,KAAA,CAAAC,OAAA,CAAcN,KAAA,KAAUA,KAAA,CAAA4D,MAAA,GAAetE,OAAO,IAC/CwK,IAAA,CAAArM,aAAA;YAAA6M,MAAA,EAAsB;UAAA,C;QACpB,C;UAIT/L,UAAA,EACDuL,IAAA,CAAAtM,qBAAA;QAAAuM,eAAA,EACmBnL,WAAA;QAAAoL,QAAA,EACPF,IAAA,CAAApM,gBAAA;UAAAmB,WAAA;UAAAY;QAAA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA3IdkK,G;;AAxWG,SAAAS,OAAAY,IAAA;EAAA,OAkZWlB,IAAA,CAAArM,aAAA;IAAA6M,MAAA,EAAsB;EAAA,GAAYlJ,IAAA;AAAA;AAlZ7C,SAAAmH,OAAAtH,EAAA;EAkU4C;IAAAjB,KAAA,EAAAiL;EAAA,IAAAhK,EAAS;EAAA,OAAKjB,OAAA,CAAAoB,EAAA;AAAA;AAlU1D,SAAA8G,OAAAjH,EAAA;EAyTiC;IAAAjB,KAAA,EAAAkL;EAAA,IAAAjK,EAAS;EAAA,OAAKjB,OAAA,CAAAoB,EAAA;AAAA;AAzT/C,SAAAgE,MAAA+F,KAAA;EAAA,OA2J2BrG,KAAA,CAAA1D,EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"Input.js","names":["c","_c","useModal","qs","React","useCallback","useEffect","useMemo","useBulkUpload","Button","useDocumentDrawer","Dropzone","useListDrawer","RenderCustomComponent","ShimmerEffect","FieldDescription","FieldError","FieldLabel","useAuth","useLocale","useTranslation","fieldBaseClass","UploadComponentHasMany","UploadComponentHasOne","baseClass","UploadInput","props","$","AfterInput","allowCreate","api","BeforeInput","className","Description","description","Error","filterOptions","filterOptionsFromProps","hasMany","isSortable","Label","label","localized","maxRows","onChange","onChangeFromProps","path","readOnly","relationTo","required","serverURL","showError","style","value","populatedDocs","setPopulatedDocs","useState","activeRelationTo","Array","isArray","openModal","drawerSlug","setCollectionSlug","setCurrentActivePath","setInitialFiles","setMaxFiles","setOnSuccess","permissions","code","i18n","t","t0","t1","t2","id","t3","not_in","t4","concat","t5","t6","t7","t8","t9","collectionSlugs","ListDrawer","t10","closeDrawer","closeListDrawer","openDrawer","openListDrawer","t11","collectionSlug","CreateDocDrawer","t12","closeCreateDocDrawer","openCreateDocDrawer","loadedValueDocsRef","useRef","t13","bb0","collections","create","canCreate","t14","newValue","t15","language","ids","relatedCollectionSlug","query","depth","draft","limit","length","locale","where","and","in","response","fetch","body","stringify","credentials","headers","method","ok","json","sortedDocs","map","docs","find","doc","String","populateDocs","t16","newDocs","mergedValue","_temp","currentDocs","doc_1","firstDoc","onUploadSuccess","t17","fileList","fileListToUse","dataTransfer","DataTransfer","items","add","files","onLocalFileSelection","t18","selectedDocIDs","id_0","isSelected","push","loadedDocs","currentDocs_0","doc_2","onListBulkSelect","t19","data","currentDocs_1","onDocCreate","t20","t21","docID","loadedDocs_0","selectedDoc","currentDocs_2","onListSelect","docID_0","collectionSlug_0","docs_0","currentDocs_3","existingDocIndex","findIndex","doc_3","updatedDocs","reloadDoc","t22","newValue_0","newValueIDs","_temp2","onReorder","t23","newValue_1","newValueIDs_0","_temp3","onRemove","t24","t25","loadInitialDocs","current","loadedDocs_1","doc_4","t26","t27","showDropzone","t28","t29","t30","filter","Boolean","t31","join","t32","replace","t33","_jsxs","children","_jsx","CustomComponent","Fallback","_Fragment","fileDocs","readonly","_temp4","fileDoc","height","disabled","multipleFiles","buttonStyle","onClick","size","onSave","enableRowSelections","onBulkSelect","onSelect","id_1","value_1","value_0","doc_0"],"sources":["../../../src/fields/Upload/Input.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientCollectionConfig,\n FieldLabelClientProps,\n FilterOptionsResult,\n JsonObject,\n StaticDescription,\n StaticLabel,\n UploadFieldClient,\n UploadField as UploadFieldType,\n Where,\n} from 'payload'\nimport type { MarkOptional } from 'ts-essentials'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo } from 'react'\n\nimport type { ListDrawerProps } from '../../elements/ListDrawer/types.js'\nimport type { PopulateDocs, ReloadDoc } from './types.js'\n\nimport { useBulkUpload } from '../../elements/BulkUpload/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { Dropzone } from '../../elements/Dropzone/index.js'\nimport { useListDrawer } from '../../elements/ListDrawer/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { ShimmerEffect } from '../../elements/ShimmerEffect/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { UploadComponentHasMany } from './HasMany/index.js'\nimport { UploadComponentHasOne } from './HasOne/index.js'\nimport './index.scss'\n\nexport const baseClass = 'upload'\n\ntype PopulatedDocs = { relationTo: string; value: JsonObject }[]\n\nexport type UploadInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n /**\n * Controls the visibility of the \"Create new collection\" button\n */\n readonly api?: string\n readonly BeforeInput?: React.ReactNode\n readonly className?: string\n readonly collection?: ClientCollectionConfig\n readonly customUploadActions?: React.ReactNode[]\n readonly Description?: React.ReactNode\n readonly description?: StaticDescription\n readonly Error?: React.ReactNode\n readonly filterOptions?: FilterOptionsResult\n readonly hasMany?: boolean\n readonly isSortable?: boolean\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly labelProps?: FieldLabelClientProps<MarkOptional<UploadFieldClient, 'type'>>\n readonly localized?: boolean\n readonly maxRows?: number\n readonly onChange?: (e) => void\n readonly path: string\n readonly readOnly?: boolean\n readonly relationTo: UploadFieldType['relationTo']\n readonly required?: boolean\n readonly serverURL?: string\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: (number | string)[] | (number | string)\n}\n\nexport function UploadInput(props: UploadInputProps) {\n const {\n AfterInput,\n allowCreate,\n api,\n BeforeInput,\n className,\n Description,\n description,\n Error,\n filterOptions: filterOptionsFromProps,\n hasMany,\n isSortable,\n Label,\n label,\n localized,\n maxRows,\n onChange: onChangeFromProps,\n path,\n readOnly,\n relationTo,\n required,\n serverURL,\n showError,\n style,\n value,\n } = props\n\n const [populatedDocs, setPopulatedDocs] = React.useState<\n {\n relationTo: string\n value: JsonObject\n }[]\n >()\n\n const [activeRelationTo, setActiveRelationTo] = React.useState<string>(\n Array.isArray(relationTo) ? relationTo[0] : relationTo,\n )\n\n const { openModal } = useModal()\n const {\n drawerSlug,\n setCollectionSlug,\n setCurrentActivePath,\n setInitialFiles,\n setMaxFiles,\n setOnSuccess,\n } = useBulkUpload()\n const { permissions } = useAuth()\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const filterOptions: FilterOptionsResult = useMemo(() => {\n return {\n ...filterOptionsFromProps,\n [activeRelationTo]: {\n ...((filterOptionsFromProps?.[activeRelationTo] as any) || {}),\n id: {\n ...((filterOptionsFromProps?.[activeRelationTo] as any)?.id || {}),\n not_in: ((filterOptionsFromProps?.[activeRelationTo] as any)?.id?.not_in || []).concat(\n ...(Array.isArray(value) || value ? [value] : []),\n ),\n },\n },\n }\n }, [value, activeRelationTo, filterOptionsFromProps])\n\n const [ListDrawer, , { closeDrawer: closeListDrawer, openDrawer: openListDrawer }] =\n useListDrawer({\n collectionSlugs: typeof relationTo === 'string' ? [relationTo] : relationTo,\n filterOptions,\n })\n\n const [\n CreateDocDrawer,\n ,\n { closeDrawer: closeCreateDocDrawer, openDrawer: openCreateDocDrawer },\n ] = useDocumentDrawer({\n collectionSlug: activeRelationTo,\n })\n\n /**\n * Prevent initial retrieval of documents from running more than once\n */\n const loadedValueDocsRef = React.useRef<boolean>(false)\n\n const canCreate = useMemo(() => {\n if (!allowCreate) {\n return false\n }\n\n if (typeof activeRelationTo === 'string') {\n if (permissions?.collections && permissions.collections?.[activeRelationTo]?.create) {\n return true\n }\n }\n\n return false\n }, [activeRelationTo, permissions, allowCreate])\n\n const onChange = React.useCallback(\n (newValue) => {\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newValue)\n }\n },\n [onChangeFromProps],\n )\n\n const populateDocs = React.useCallback<PopulateDocs>(\n async (ids, relatedCollectionSlug) => {\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n limit: ids.length,\n locale: code,\n where: {\n and: [\n {\n id: {\n in: ids,\n },\n },\n ],\n },\n }\n\n const response = await fetch(`${serverURL}${api}/${relatedCollectionSlug}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n if (response.ok) {\n const json = await response.json()\n const sortedDocs = ids.map((id) =>\n json.docs.find((doc) => {\n return String(doc.id) === String(id)\n }),\n )\n\n return { ...json, docs: sortedDocs }\n }\n\n return null\n },\n [code, serverURL, api, i18n.language],\n )\n\n const onUploadSuccess = useCallback(\n (newDocs: JsonObject[]) => {\n if (hasMany) {\n const mergedValue = [\n ...(Array.isArray(value) ? value : []),\n ...newDocs.map((doc) => doc.id),\n ]\n onChange(mergedValue)\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n ...newDocs.map((doc) => ({\n relationTo: activeRelationTo,\n value: doc,\n })),\n ])\n } else {\n const firstDoc = newDocs[0]\n onChange(firstDoc.id)\n setPopulatedDocs([\n {\n relationTo: activeRelationTo,\n value: firstDoc,\n },\n ])\n }\n },\n [value, onChange, activeRelationTo, hasMany],\n )\n\n const onLocalFileSelection = React.useCallback(\n (fileList?: FileList) => {\n let fileListToUse = fileList\n if (!hasMany && fileList && fileList.length > 1) {\n const dataTransfer = new DataTransfer()\n dataTransfer.items.add(fileList[0])\n fileListToUse = dataTransfer.files\n }\n if (fileListToUse) {\n setInitialFiles(fileListToUse)\n }\n setCollectionSlug(relationTo)\n if (typeof maxRows === 'number') {\n setMaxFiles(maxRows)\n }\n setCurrentActivePath(path)\n openModal(drawerSlug)\n },\n [\n drawerSlug,\n hasMany,\n openModal,\n relationTo,\n setCollectionSlug,\n setInitialFiles,\n maxRows,\n setMaxFiles,\n path,\n setCurrentActivePath,\n ],\n )\n\n // only hasMany can bulk select\n const onListBulkSelect = React.useCallback<NonNullable<ListDrawerProps['onBulkSelect']>>(\n async (docs) => {\n const selectedDocIDs = []\n\n for (const [id, isSelected] of docs) {\n if (isSelected) {\n selectedDocIDs.push(id)\n }\n }\n\n const loadedDocs = await populateDocs(selectedDocIDs, activeRelationTo)\n if (loadedDocs) {\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n ...loadedDocs.docs.map((doc) => ({\n relationTo: activeRelationTo,\n value: doc,\n })),\n ])\n }\n onChange([...(Array.isArray(value) ? value : []), ...selectedDocIDs])\n closeListDrawer()\n },\n [activeRelationTo, closeListDrawer, onChange, populateDocs, value],\n )\n\n const onDocCreate = React.useCallback(\n (data) => {\n if (data.doc) {\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n {\n relationTo: activeRelationTo,\n value: data.doc,\n },\n ])\n\n onChange(data.doc.id)\n }\n closeCreateDocDrawer()\n },\n [closeCreateDocDrawer, activeRelationTo, onChange],\n )\n\n const onListSelect = React.useCallback<NonNullable<ListDrawerProps['onSelect']>>(\n async ({ collectionSlug, docID }) => {\n const loadedDocs = await populateDocs([docID], collectionSlug)\n const selectedDoc = loadedDocs ? loadedDocs.docs?.[0] : null\n setPopulatedDocs((currentDocs) => {\n if (selectedDoc) {\n if (hasMany) {\n return [\n ...(currentDocs || []),\n {\n relationTo: activeRelationTo,\n value: selectedDoc,\n },\n ]\n }\n return [\n {\n relationTo: activeRelationTo,\n value: selectedDoc,\n },\n ]\n }\n return currentDocs\n })\n if (hasMany) {\n onChange([...(Array.isArray(value) ? value : []), docID])\n } else {\n onChange(docID)\n }\n closeListDrawer()\n },\n [closeListDrawer, hasMany, populateDocs, onChange, value, activeRelationTo],\n )\n\n const reloadDoc = React.useCallback<ReloadDoc>(\n async (docID, collectionSlug) => {\n const { docs } = await populateDocs([docID], collectionSlug)\n\n if (docs[0]) {\n setPopulatedDocs((currentDocs) => {\n const existingDocIndex = currentDocs?.findIndex((doc) => {\n return doc.value.id === docs[0].id && doc.relationTo === collectionSlug\n })\n if (existingDocIndex > -1) {\n const updatedDocs = [...currentDocs]\n updatedDocs[existingDocIndex] = {\n relationTo: collectionSlug,\n value: docs[0],\n }\n return updatedDocs\n }\n })\n }\n },\n [populateDocs],\n )\n\n // only hasMany can reorder\n const onReorder = React.useCallback(\n (newValue) => {\n const newValueIDs = newValue.map(({ value }) => value.id)\n onChange(newValueIDs)\n setPopulatedDocs(newValue)\n },\n [onChange],\n )\n\n const onRemove = React.useCallback(\n (newValue?: PopulatedDocs) => {\n const newValueIDs = newValue ? newValue.map(({ value }) => value.id) : null\n onChange(hasMany ? newValueIDs : newValueIDs ? newValueIDs[0] : null)\n setPopulatedDocs(newValue ? newValue : [])\n },\n [onChange, hasMany],\n )\n\n useEffect(() => {\n async function loadInitialDocs() {\n if (value) {\n loadedValueDocsRef.current = true\n const loadedDocs = await populateDocs(\n Array.isArray(value) ? value : [value],\n activeRelationTo,\n )\n if (loadedDocs) {\n setPopulatedDocs(\n loadedDocs.docs.map((doc) => ({ relationTo: activeRelationTo, value: doc })),\n )\n }\n }\n }\n\n if (!loadedValueDocsRef.current) {\n void loadInitialDocs()\n }\n }, [populateDocs, activeRelationTo, value])\n\n useEffect(() => {\n setOnSuccess(path, onUploadSuccess)\n }, [value, path, onUploadSuccess, setOnSuccess])\n\n const showDropzone =\n !value ||\n (hasMany && Array.isArray(value) && (typeof maxRows !== 'number' || value.length < maxRows)) ||\n (!hasMany && populatedDocs?.[0] && typeof populatedDocs[0].value === 'undefined')\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n style={style}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${baseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n </div>\n {BeforeInput}\n <div className={`${baseClass}__dropzoneAndUpload`}>\n {hasMany && Array.isArray(value) && value.length > 0 ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 ? (\n <UploadComponentHasMany\n fileDocs={populatedDocs}\n isSortable={isSortable && !readOnly}\n onRemove={onRemove}\n onReorder={onReorder}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n />\n ) : (\n <div className={`${baseClass}__loadingRows`}>\n {value.map((id) => (\n <ShimmerEffect height=\"40px\" key={id} />\n ))}\n </div>\n )}\n </>\n ) : null}\n {!hasMany && value ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 && populatedDocs[0].value ? (\n <UploadComponentHasOne\n fileDoc={populatedDocs[0]}\n onRemove={onRemove}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n />\n ) : populatedDocs && value && !populatedDocs?.[0]?.value ? (\n <>\n {t('general:untitled')} - ID: {value}\n </>\n ) : (\n <ShimmerEffect height=\"62px\" />\n )}\n </>\n ) : null}\n {showDropzone ? (\n <Dropzone\n disabled={readOnly || !canCreate}\n multipleFiles={hasMany}\n onChange={onLocalFileSelection}\n >\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneContent__buttons`}>\n {canCreate && (\n <>\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__createNewToggler`}\n disabled={readOnly || !canCreate}\n onClick={() => {\n if (!readOnly) {\n if (hasMany) {\n onLocalFileSelection()\n } else {\n openCreateDocDrawer()\n }\n }\n }}\n size=\"small\"\n >\n {t('general:createNew')}\n </Button>\n <span className={`${baseClass}__dropzoneContent__orText`}>\n {t('general:or')}\n </span>\n </>\n )}\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__listToggler`}\n disabled={readOnly}\n onClick={openListDrawer}\n size=\"small\"\n >\n {t('fields:chooseFromExisting')}\n </Button>\n <CreateDocDrawer onSave={onDocCreate} />\n <ListDrawer\n allowCreate={canCreate}\n enableRowSelections={hasMany}\n onBulkSelect={onListBulkSelect}\n onSelect={onListSelect}\n />\n </div>\n\n {canCreate && !readOnly && (\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n )}\n </div>\n </Dropzone>\n ) : (\n <>\n {!readOnly &&\n !populatedDocs &&\n (!value ||\n typeof maxRows !== 'number' ||\n (Array.isArray(value) && value.length < maxRows)) ? (\n <ShimmerEffect height=\"40px\" />\n ) : null}\n </>\n )}\n </div>\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAGnF,OAAO,KAAK,EAGV,SAAS,EAGV,MAAM,YAAY,CAAA;AA6BnB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA0qBpC,CAAA;AAED,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAGnF,OAAO,KAAK,EAGV,SAAS,EAGV,MAAM,YAAY,CAAA;AA6BnB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA2qBpC,CAAA;AAED,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -16,7 +16,7 @@ import { useLocale } from '../../providers/Locale/index.js';
16
16
  import { useOperation } from '../../providers/Operation/index.js';
17
17
  import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
18
18
  import { useTranslation } from '../../providers/Translation/index.js';
19
- import { abortAndIgnore } from '../../utilities/abortAndIgnore.js';
19
+ import { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js';
20
20
  import { requests } from '../../utilities/api.js';
21
21
  import { FormContext, FormFieldsContext, FormWatchContext, InitializingContext, ModifiedContext, ProcessingContext, SubmittedContext } from './context.js';
22
22
  import { errorMessages } from './errorMessages.js';
@@ -80,7 +80,7 @@ export const Form = props => {
80
80
  const [submitted, setSubmitted] = useState(false);
81
81
  const formRef = useRef(null);
82
82
  const contextRef = useRef({});
83
- const resetFormStateAbortControllerRef = useRef(null);
83
+ const abortResetFormRef = useRef(null);
84
84
  const fieldsReducer = useReducer(fieldReducer, {}, () => initialState);
85
85
  /**
86
86
  * `fields` is the current, up-to-date state/data of all fields in the form. It can be modified by using dispatchFields,
@@ -372,9 +372,7 @@ export const Form = props => {
372
372
  return formData_0;
373
373
  }, []);
374
374
  const reset = useCallback(async data_6 => {
375
- abortAndIgnore(resetFormStateAbortControllerRef.current);
376
- const controller = new AbortController();
377
- resetFormStateAbortControllerRef.current = controller;
375
+ const controller = handleAbortRef(abortResetFormRef);
378
376
  const docPreferences = await getDocPreferences();
379
377
  const {
380
378
  state: newState
@@ -399,6 +397,7 @@ export const Form = props => {
399
397
  type: 'REPLACE_STATE',
400
398
  state: newState
401
399
  });
400
+ abortResetFormRef.current = null;
402
401
  }, [collectionSlug, dispatchFields, globalSlug, id, operation, getFormState, docPermissions, getDocPreferences, locale]);
403
402
  const replaceState = useCallback(state => {
404
403
  contextRef.current = {
@@ -457,8 +456,9 @@ export const Form = props => {
457
456
  setModified(true);
458
457
  }, [dispatchFields, getDataByPath]);
459
458
  useEffect(() => {
459
+ const abortOnChange = abortResetFormRef.current;
460
460
  return () => {
461
- abortAndIgnore(resetFormStateAbortControllerRef.current);
461
+ abortAndIgnore(abortOnChange);
462
462
  };
463
463
  }, []);
464
464
  useEffect(() => {