@trieb.work/payload-plugin-backup-mongodb 0.1.7 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +130 -62
- package/dist/backup-dashboard.css +18 -1
- package/dist/collections/BackupTasks.js +8 -1
- package/dist/collections/BackupTasks.js.map +1 -1
- package/dist/components/BackupDashboard/BackupSettingsModal.client.js +203 -115
- package/dist/components/BackupDashboard/BackupSettingsModal.client.js.map +1 -1
- package/dist/components/BackupDashboard/RestoreBackupDialog.client.js +1 -1
- package/dist/components/BackupDashboard/RestoreBackupDialog.client.js.map +1 -1
- package/dist/components/BackupDashboard/TaskActionButton.client.d.ts +1 -1
- package/dist/components/BackupDashboard/TaskActionButton.client.js +59 -26
- package/dist/components/BackupDashboard/TaskActionButton.client.js.map +1 -1
- package/dist/components/BackupDashboard/backupDashboardInlineCss.js +1 -1
- package/dist/components/BackupDashboard/backupDashboardInlineCss.js.map +1 -1
- package/dist/components/BackupDashboard/index.js +27 -3
- package/dist/components/BackupDashboard/index.js.map +1 -1
- package/dist/core/backup.d.ts +4 -3
- package/dist/core/backup.js +50 -43
- package/dist/core/backup.js.map +1 -1
- package/dist/core/backupArchiveRead.d.ts +15 -0
- package/dist/core/backupArchiveRead.js +30 -0
- package/dist/core/backupArchiveRead.js.map +1 -0
- package/dist/core/backupSettings.js +5 -0
- package/dist/core/backupSettings.js.map +1 -1
- package/dist/core/restore.d.ts +5 -2
- package/dist/core/restore.js +133 -89
- package/dist/core/restore.js.map +1 -1
- package/dist/core/restorePreview.d.ts +12 -3
- package/dist/core/restorePreview.js +17 -13
- package/dist/core/restorePreview.js.map +1 -1
- package/dist/core/restoreResult.d.ts +34 -0
- package/dist/core/restoreResult.js +45 -0
- package/dist/core/restoreResult.js.map +1 -0
- package/dist/core/storage/config.d.ts +31 -0
- package/dist/core/storage/config.js +60 -0
- package/dist/core/storage/config.js.map +1 -0
- package/dist/core/storage/index.d.ts +23 -0
- package/dist/core/storage/index.js +25 -0
- package/dist/core/storage/index.js.map +1 -0
- package/dist/core/storage/s3.d.ts +35 -0
- package/dist/core/storage/s3.js +200 -0
- package/dist/core/storage/s3.js.map +1 -0
- package/dist/core/storage/types.d.ts +60 -0
- package/dist/core/storage/types.js +6 -0
- package/dist/core/storage/types.js.map +1 -0
- package/dist/core/storage/vercelBlob.d.ts +25 -0
- package/dist/core/storage/vercelBlob.js +53 -0
- package/dist/core/storage/vercelBlob.js.map +1 -0
- package/dist/core/taskProgress.d.ts +10 -4
- package/dist/core/taskProgress.js +11 -2
- package/dist/core/taskProgress.js.map +1 -1
- package/dist/endpoints/index.js +0 -5
- package/dist/endpoints/index.js.map +1 -1
- package/dist/endpoints/paths/admin-backup-download.js +8 -7
- package/dist/endpoints/paths/admin-backup-download.js.map +1 -1
- package/dist/endpoints/paths/admin-delete.js +11 -5
- package/dist/endpoints/paths/admin-delete.js.map +1 -1
- package/dist/endpoints/paths/admin-manual.js +2 -1
- package/dist/endpoints/paths/admin-manual.js.map +1 -1
- package/dist/endpoints/paths/admin-preview.js +9 -2
- package/dist/endpoints/paths/admin-preview.js.map +1 -1
- package/dist/endpoints/paths/admin-restore.js +7 -4
- package/dist/endpoints/paths/admin-restore.js.map +1 -1
- package/dist/endpoints/paths/admin-settings.js +35 -2
- package/dist/endpoints/paths/admin-settings.js.map +1 -1
- package/dist/endpoints/paths/cron-list.js +2 -1
- package/dist/endpoints/paths/cron-list.js.map +1 -1
- package/dist/endpoints/paths/cron-restore.js +14 -4
- package/dist/endpoints/paths/cron-restore.js.map +1 -1
- package/dist/endpoints/paths/cron-run.js +2 -1
- package/dist/endpoints/paths/cron-run.js.map +1 -1
- package/dist/endpoints/shared.d.ts +0 -1
- package/dist/endpoints/shared.js +0 -6
- package/dist/endpoints/shared.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/publicApiPaths.d.ts +0 -1
- package/dist/publicApiPaths.js +0 -1
- package/dist/publicApiPaths.js.map +1 -1
- package/dist/types.d.ts +0 -5
- package/dist/types.js.map +1 -1
- package/package.json +22 -4
- package/dist/endpoints/paths/admin-seed.d.ts +0 -3
- package/dist/endpoints/paths/admin-seed.js +0 -47
- package/dist/endpoints/paths/admin-seed.js.map +0 -1
|
@@ -86,6 +86,7 @@ export const BackupSettingsModal = ()=>{
|
|
|
86
86
|
});
|
|
87
87
|
const [pluginOverridesRetention, setPluginOverridesRetention] = useState(false);
|
|
88
88
|
const [cronInfo, setCronInfo] = useState(undefined);
|
|
89
|
+
const [storage, setStorage] = useState(undefined);
|
|
89
90
|
const [transferSummary, setTransferSummary] = useState(null);
|
|
90
91
|
const [activeTransfer, setActiveTransfer] = useState(null);
|
|
91
92
|
const [transferLive, setTransferLive] = useState(null);
|
|
@@ -173,6 +174,7 @@ export const BackupSettingsModal = ()=>{
|
|
|
173
174
|
});
|
|
174
175
|
setPluginOverridesRetention(settingsJson.pluginBackupsToKeepOverride === true);
|
|
175
176
|
setCronInfo(settingsJson.cron ?? null);
|
|
177
|
+
setStorage(settingsJson.storage);
|
|
176
178
|
setIncludeMediaBlobs(settingsJson.includeMediaForCron === true);
|
|
177
179
|
const skip = Array.isArray(settingsJson.skipMongoCollections) ? settingsJson.skipMongoCollections : [];
|
|
178
180
|
setSelected(selectedFromSkipMongoNames(previewJson, skip));
|
|
@@ -575,6 +577,88 @@ export const BackupSettingsModal = ()=>{
|
|
|
575
577
|
/*#__PURE__*/ _jsxs("div", {
|
|
576
578
|
className: "backup-confirm-dialog__body restore-preview",
|
|
577
579
|
children: [
|
|
580
|
+
storage ? /*#__PURE__*/ _jsxs(_Fragment, {
|
|
581
|
+
children: [
|
|
582
|
+
/*#__PURE__*/ _jsx("p", {
|
|
583
|
+
className: "restore-preview__sticky-heading",
|
|
584
|
+
children: "Storage target"
|
|
585
|
+
}),
|
|
586
|
+
storage.kind === 's3' ? /*#__PURE__*/ _jsxs(_Fragment, {
|
|
587
|
+
children: [
|
|
588
|
+
/*#__PURE__*/ _jsxs("p", {
|
|
589
|
+
className: "restore-preview__intro",
|
|
590
|
+
children: [
|
|
591
|
+
"Backups use ",
|
|
592
|
+
/*#__PURE__*/ _jsx("strong", {
|
|
593
|
+
children: "AWS S3"
|
|
594
|
+
}),
|
|
595
|
+
" (or S3-compatible). Selected via the",
|
|
596
|
+
' ',
|
|
597
|
+
/*#__PURE__*/ _jsx("code", {
|
|
598
|
+
children: "BACKUP_STORAGE"
|
|
599
|
+
}),
|
|
600
|
+
" environment variable."
|
|
601
|
+
]
|
|
602
|
+
}),
|
|
603
|
+
storage.s3 ? /*#__PURE__*/ _jsxs("p", {
|
|
604
|
+
className: "restore-preview__intro",
|
|
605
|
+
children: [
|
|
606
|
+
"Bucket ",
|
|
607
|
+
/*#__PURE__*/ _jsx("code", {
|
|
608
|
+
children: storage.s3.bucket
|
|
609
|
+
}),
|
|
610
|
+
" · region",
|
|
611
|
+
' ',
|
|
612
|
+
/*#__PURE__*/ _jsx("code", {
|
|
613
|
+
children: storage.s3.region
|
|
614
|
+
}),
|
|
615
|
+
storage.s3.endpoint ? /*#__PURE__*/ _jsxs(_Fragment, {
|
|
616
|
+
children: [
|
|
617
|
+
' ',
|
|
618
|
+
"· endpoint ",
|
|
619
|
+
/*#__PURE__*/ _jsx("code", {
|
|
620
|
+
children: storage.s3.endpoint
|
|
621
|
+
})
|
|
622
|
+
]
|
|
623
|
+
}) : null,
|
|
624
|
+
storage.s3.prefix ? /*#__PURE__*/ _jsxs(_Fragment, {
|
|
625
|
+
children: [
|
|
626
|
+
' ',
|
|
627
|
+
"· prefix ",
|
|
628
|
+
/*#__PURE__*/ _jsx("code", {
|
|
629
|
+
children: storage.s3.prefix
|
|
630
|
+
})
|
|
631
|
+
]
|
|
632
|
+
}) : null
|
|
633
|
+
]
|
|
634
|
+
}) : /*#__PURE__*/ _jsxs("p", {
|
|
635
|
+
className: "restore-preview__intro",
|
|
636
|
+
children: [
|
|
637
|
+
"Set ",
|
|
638
|
+
/*#__PURE__*/ _jsx("code", {
|
|
639
|
+
children: "BACKUP_S3_BUCKET"
|
|
640
|
+
}),
|
|
641
|
+
" (and credentials) to finish configuring S3."
|
|
642
|
+
]
|
|
643
|
+
})
|
|
644
|
+
]
|
|
645
|
+
}) : /*#__PURE__*/ _jsxs("p", {
|
|
646
|
+
className: "restore-preview__intro",
|
|
647
|
+
children: [
|
|
648
|
+
"Backups use ",
|
|
649
|
+
/*#__PURE__*/ _jsx("strong", {
|
|
650
|
+
children: "Vercel Blob"
|
|
651
|
+
}),
|
|
652
|
+
" (default). Set",
|
|
653
|
+
' ',
|
|
654
|
+
/*#__PURE__*/ _jsx("code", {
|
|
655
|
+
children: "BACKUP_STORAGE=s3"
|
|
656
|
+
}),
|
|
657
|
+
" in the environment to use AWS S3 instead."
|
|
658
|
+
]
|
|
659
|
+
})
|
|
660
|
+
]
|
|
661
|
+
}) : null,
|
|
578
662
|
phase !== 'idle' ? /*#__PURE__*/ _jsxs(_Fragment, {
|
|
579
663
|
children: [
|
|
580
664
|
/*#__PURE__*/ _jsx("p", {
|
|
@@ -738,144 +822,148 @@ export const BackupSettingsModal = ()=>{
|
|
|
738
822
|
})
|
|
739
823
|
]
|
|
740
824
|
}),
|
|
741
|
-
/*#__PURE__*/ _jsxs(
|
|
742
|
-
className: "restore-preview__sticky-heading",
|
|
825
|
+
storage?.kind === 's3' ? null : /*#__PURE__*/ _jsxs(_Fragment, {
|
|
743
826
|
children: [
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
/*#__PURE__*/ _jsx("span", {
|
|
747
|
-
className: "restore-preview__sticky-heading-hint",
|
|
748
|
-
children: "(optional)"
|
|
749
|
-
})
|
|
750
|
-
]
|
|
751
|
-
}),
|
|
752
|
-
/*#__PURE__*/ _jsxs("p", {
|
|
753
|
-
className: "restore-preview__intro",
|
|
754
|
-
children: [
|
|
755
|
-
"Separate Vercel Blob token for ",
|
|
756
|
-
/*#__PURE__*/ _jsx("code", {
|
|
757
|
-
children: "backups/"
|
|
758
|
-
}),
|
|
759
|
-
". Without one, archives share the default media store."
|
|
760
|
-
]
|
|
761
|
-
}),
|
|
762
|
-
/*#__PURE__*/ _jsxs("div", {
|
|
763
|
-
className: "restore-preview__settings-fields",
|
|
764
|
-
children: [
|
|
765
|
-
/*#__PURE__*/ _jsx("label", {
|
|
766
|
-
className: "restore-preview__settings-label",
|
|
767
|
-
htmlFor: "backup-blob-token",
|
|
768
|
-
children: "Backup Blob read/write token"
|
|
769
|
-
}),
|
|
770
|
-
/*#__PURE__*/ _jsxs("div", {
|
|
771
|
-
className: "restore-preview__blob-token-row",
|
|
827
|
+
/*#__PURE__*/ _jsxs("p", {
|
|
828
|
+
className: "restore-preview__sticky-heading",
|
|
772
829
|
children: [
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
autoComplete: "off",
|
|
776
|
-
className: "restore-preview__settings-input restore-preview__settings-input--wide",
|
|
777
|
-
id: "backup-blob-token",
|
|
778
|
-
onChange: (e)=>onChangeBackupBlobToken(e.target.value),
|
|
779
|
-
placeholder: "vercel_blob_rw_...",
|
|
780
|
-
spellCheck: false,
|
|
781
|
-
type: "text",
|
|
782
|
-
value: backupBlobReadWriteToken
|
|
783
|
-
}),
|
|
830
|
+
"Dedicated backup storage",
|
|
831
|
+
' ',
|
|
784
832
|
/*#__PURE__*/ _jsx("span", {
|
|
785
|
-
className: "restore-
|
|
786
|
-
children:
|
|
833
|
+
className: "restore-preview__sticky-heading-hint",
|
|
834
|
+
children: "(optional)"
|
|
787
835
|
})
|
|
788
836
|
]
|
|
789
837
|
}),
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
className: "restore-preview__blob-token-error",
|
|
793
|
-
children: tokenCheck.message
|
|
794
|
-
}) : null,
|
|
795
|
-
savePhase === 'transferring' && transferLive && transferLive.total > 0 ? /*#__PURE__*/ _jsxs("div", {
|
|
796
|
-
"aria-live": "polite",
|
|
797
|
-
className: "restore-preview__transfer-panel",
|
|
838
|
+
/*#__PURE__*/ _jsxs("p", {
|
|
839
|
+
className: "restore-preview__intro",
|
|
798
840
|
children: [
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
children:
|
|
802
|
-
className: "restore-preview__transfer-bar-fill",
|
|
803
|
-
style: {
|
|
804
|
-
width: `${Math.min(100, (transferLive.transferred + transferLive.failed) / transferLive.total * 100)}%`
|
|
805
|
-
}
|
|
806
|
-
})
|
|
841
|
+
"Separate Vercel Blob token for ",
|
|
842
|
+
/*#__PURE__*/ _jsx("code", {
|
|
843
|
+
children: "backups/"
|
|
807
844
|
}),
|
|
808
|
-
|
|
809
|
-
className: "restore-preview__transfer-meta",
|
|
810
|
-
children: [
|
|
811
|
-
"Copying backup files: ",
|
|
812
|
-
transferLive.transferred + transferLive.failed,
|
|
813
|
-
" /",
|
|
814
|
-
' ',
|
|
815
|
-
transferLive.total,
|
|
816
|
-
transferLive.failed > 0 ? ` (${transferLive.failed} failed)` : '',
|
|
817
|
-
transferLive.pathname ? /*#__PURE__*/ _jsxs(_Fragment, {
|
|
818
|
-
children: [
|
|
819
|
-
/*#__PURE__*/ _jsx("br", {}),
|
|
820
|
-
/*#__PURE__*/ _jsx("span", {
|
|
821
|
-
className: "restore-preview__transfer-path",
|
|
822
|
-
title: transferLive.pathname,
|
|
823
|
-
children: transferLive.pathname.length > 56 ? `${transferLive.pathname.slice(0, 28)}…${transferLive.pathname.slice(-24)}` : transferLive.pathname
|
|
824
|
-
})
|
|
825
|
-
]
|
|
826
|
-
}) : null
|
|
827
|
-
]
|
|
828
|
-
})
|
|
845
|
+
". Without one, archives share the default media store."
|
|
829
846
|
]
|
|
830
|
-
})
|
|
831
|
-
|
|
847
|
+
}),
|
|
848
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
849
|
+
className: "restore-preview__settings-fields",
|
|
832
850
|
children: [
|
|
851
|
+
/*#__PURE__*/ _jsx("label", {
|
|
852
|
+
className: "restore-preview__settings-label",
|
|
853
|
+
htmlFor: "backup-blob-token",
|
|
854
|
+
children: "Backup Blob read/write token"
|
|
855
|
+
}),
|
|
833
856
|
/*#__PURE__*/ _jsxs("div", {
|
|
834
|
-
className: "
|
|
857
|
+
className: "restore-preview__blob-token-row",
|
|
835
858
|
children: [
|
|
836
859
|
/*#__PURE__*/ _jsx("input", {
|
|
837
|
-
"aria-label": "
|
|
838
|
-
|
|
839
|
-
className: "
|
|
840
|
-
id:
|
|
841
|
-
onChange: (e)=>
|
|
842
|
-
|
|
860
|
+
"aria-label": "Backup Blob read/write token",
|
|
861
|
+
autoComplete: "off",
|
|
862
|
+
className: "restore-preview__settings-input restore-preview__settings-input--wide",
|
|
863
|
+
id: "backup-blob-token",
|
|
864
|
+
onChange: (e)=>onChangeBackupBlobToken(e.target.value),
|
|
865
|
+
placeholder: "vercel_blob_rw_...",
|
|
866
|
+
spellCheck: false,
|
|
867
|
+
type: "text",
|
|
868
|
+
value: backupBlobReadWriteToken
|
|
843
869
|
}),
|
|
844
|
-
/*#__PURE__*/ _jsx("
|
|
845
|
-
className: "
|
|
846
|
-
|
|
847
|
-
children: "Copy existing backup files into this storage when saving"
|
|
848
|
-
}),
|
|
849
|
-
/*#__PURE__*/ _jsx(SettingsHelpTip, {
|
|
850
|
-
multiline: true,
|
|
851
|
-
tip: TIP_TRANSFER_COPY
|
|
870
|
+
/*#__PURE__*/ _jsx("span", {
|
|
871
|
+
className: "restore-preview__blob-token-pill-slot",
|
|
872
|
+
children: tokenStatusPill
|
|
852
873
|
})
|
|
853
874
|
]
|
|
854
875
|
}),
|
|
855
|
-
|
|
856
|
-
|
|
876
|
+
tokenCheck.status === 'invalid' && tokenCheck.message ? /*#__PURE__*/ _jsx("p", {
|
|
877
|
+
"aria-live": "polite",
|
|
878
|
+
className: "restore-preview__blob-token-error",
|
|
879
|
+
children: tokenCheck.message
|
|
880
|
+
}) : null,
|
|
881
|
+
savePhase === 'transferring' && transferLive && transferLive.total > 0 ? /*#__PURE__*/ _jsxs("div", {
|
|
882
|
+
"aria-live": "polite",
|
|
883
|
+
className: "restore-preview__transfer-panel",
|
|
857
884
|
children: [
|
|
858
|
-
/*#__PURE__*/ _jsx("
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
/*#__PURE__*/ _jsx("label", {
|
|
867
|
-
className: "field-label",
|
|
868
|
-
htmlFor: deleteSourceOptId,
|
|
869
|
-
children: "Delete from previous storage after successful copy"
|
|
885
|
+
/*#__PURE__*/ _jsx("div", {
|
|
886
|
+
className: "restore-preview__transfer-bar-track",
|
|
887
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
888
|
+
className: "restore-preview__transfer-bar-fill",
|
|
889
|
+
style: {
|
|
890
|
+
width: `${Math.min(100, (transferLive.transferred + transferLive.failed) / transferLive.total * 100)}%`
|
|
891
|
+
}
|
|
892
|
+
})
|
|
870
893
|
}),
|
|
871
|
-
/*#__PURE__*/
|
|
872
|
-
|
|
873
|
-
|
|
894
|
+
/*#__PURE__*/ _jsxs("p", {
|
|
895
|
+
className: "restore-preview__transfer-meta",
|
|
896
|
+
children: [
|
|
897
|
+
"Copying backup files: ",
|
|
898
|
+
transferLive.transferred + transferLive.failed,
|
|
899
|
+
" /",
|
|
900
|
+
' ',
|
|
901
|
+
transferLive.total,
|
|
902
|
+
transferLive.failed > 0 ? ` (${transferLive.failed} failed)` : '',
|
|
903
|
+
transferLive.pathname ? /*#__PURE__*/ _jsxs(_Fragment, {
|
|
904
|
+
children: [
|
|
905
|
+
/*#__PURE__*/ _jsx("br", {}),
|
|
906
|
+
/*#__PURE__*/ _jsx("span", {
|
|
907
|
+
className: "restore-preview__transfer-path",
|
|
908
|
+
title: transferLive.pathname,
|
|
909
|
+
children: transferLive.pathname.length > 56 ? `${transferLive.pathname.slice(0, 28)}…${transferLive.pathname.slice(-24)}` : transferLive.pathname
|
|
910
|
+
})
|
|
911
|
+
]
|
|
912
|
+
}) : null
|
|
913
|
+
]
|
|
874
914
|
})
|
|
875
915
|
]
|
|
916
|
+
}) : null,
|
|
917
|
+
willSaveNewRawToken ? /*#__PURE__*/ _jsxs(_Fragment, {
|
|
918
|
+
children: [
|
|
919
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
920
|
+
className: "field-type checkbox backup-dashboard__collapsible-checkbox restore-preview__blob-transfer-row restore-preview__blob-transfer-row--with-help-tip",
|
|
921
|
+
children: [
|
|
922
|
+
/*#__PURE__*/ _jsx("input", {
|
|
923
|
+
"aria-label": "Copy existing backup files into this storage when saving",
|
|
924
|
+
checked: transferBackupBlobs,
|
|
925
|
+
className: "checkbox-input__input",
|
|
926
|
+
id: transferOptId,
|
|
927
|
+
onChange: (e)=>setTransferBackupBlobs(e.target.checked),
|
|
928
|
+
type: "checkbox"
|
|
929
|
+
}),
|
|
930
|
+
/*#__PURE__*/ _jsx("label", {
|
|
931
|
+
className: "field-label",
|
|
932
|
+
htmlFor: transferOptId,
|
|
933
|
+
children: "Copy existing backup files into this storage when saving"
|
|
934
|
+
}),
|
|
935
|
+
/*#__PURE__*/ _jsx(SettingsHelpTip, {
|
|
936
|
+
multiline: true,
|
|
937
|
+
tip: TIP_TRANSFER_COPY
|
|
938
|
+
})
|
|
939
|
+
]
|
|
940
|
+
}),
|
|
941
|
+
transferBackupBlobs ? /*#__PURE__*/ _jsxs("div", {
|
|
942
|
+
className: "field-type checkbox backup-dashboard__collapsible-checkbox restore-preview__blob-transfer-row restore-preview__blob-transfer-row--with-help-tip",
|
|
943
|
+
children: [
|
|
944
|
+
/*#__PURE__*/ _jsx("input", {
|
|
945
|
+
"aria-label": "Delete from previous storage after successful copy",
|
|
946
|
+
checked: deleteBackupBlobsFromSource,
|
|
947
|
+
className: "checkbox-input__input",
|
|
948
|
+
id: deleteSourceOptId,
|
|
949
|
+
onChange: (e)=>setDeleteBackupBlobsFromSource(e.target.checked),
|
|
950
|
+
type: "checkbox"
|
|
951
|
+
}),
|
|
952
|
+
/*#__PURE__*/ _jsx("label", {
|
|
953
|
+
className: "field-label",
|
|
954
|
+
htmlFor: deleteSourceOptId,
|
|
955
|
+
children: "Delete from previous storage after successful copy"
|
|
956
|
+
}),
|
|
957
|
+
/*#__PURE__*/ _jsx(SettingsHelpTip, {
|
|
958
|
+
multiline: true,
|
|
959
|
+
tip: TIP_TRANSFER_DELETE
|
|
960
|
+
})
|
|
961
|
+
]
|
|
962
|
+
}) : null
|
|
963
|
+
]
|
|
876
964
|
}) : null
|
|
877
965
|
]
|
|
878
|
-
})
|
|
966
|
+
})
|
|
879
967
|
]
|
|
880
968
|
}),
|
|
881
969
|
/*#__PURE__*/ _jsx(CollectionBackupPreviewBody, {
|