@firecms/media_manager 3.1.0 → 3.2.0-canary.44dc65b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es.js +682 -221
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +682 -221
- package/dist/index.umd.js.map +1 -1
- package/dist/locales/de.d.ts +45 -0
- package/dist/locales/en.d.ts +45 -0
- package/dist/locales/es.d.ts +45 -0
- package/dist/locales/fr.d.ts +45 -0
- package/dist/locales/hi.d.ts +45 -0
- package/dist/locales/it.d.ts +45 -0
- package/dist/locales/pt.d.ts +45 -0
- package/package.json +5 -5
- package/src/components/MediaAssetDetails.tsx +25 -25
- package/src/components/MediaLibraryCard.tsx +5 -2
- package/src/components/MediaLibraryView.tsx +13 -11
- package/src/components/MediaUploadDialog.tsx +13 -11
- package/src/locales/de.ts +45 -0
- package/src/locales/en.ts +45 -0
- package/src/locales/es.ts +45 -0
- package/src/locales/fr.ts +45 -0
- package/src/locales/hi.ts +45 -0
- package/src/locales/it.ts +45 -0
- package/src/locales/pt.ts +45 -0
- package/src/useMediaManagerPlugin.tsx +22 -5
package/dist/index.es.js
CHANGED
|
@@ -2,9 +2,9 @@ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
|
2
2
|
import { c } from "react-compiler-runtime";
|
|
3
3
|
import { createContext, useContext, useState, useCallback, useEffect, useRef, useMemo } from "react";
|
|
4
4
|
import Compressor from "compressorjs";
|
|
5
|
-
import { ImageIcon, VideoLibraryIcon, AudiotrackIcon, DescriptionIcon, cls, defaultBorderMixin, Typography, CheckIcon, Card, IconButton, DownloadIcon, DeleteIcon, CloseIcon, TextField, Chip, Button, CircularProgress, Dialog, DialogContent, DialogActions, CloudUploadIcon,
|
|
5
|
+
import { ImageIcon, VideoLibraryIcon, AudiotrackIcon, DescriptionIcon, cls, defaultBorderMixin, Typography, CheckIcon, Card, IconButton, DownloadIcon, DeleteIcon, CloseIcon, TextField, Chip, Button, CircularProgress, Dialog, DialogContent, DialogActions, CloudUploadIcon, Container, AddIcon, SearchBar, AppsIcon, Tooltip, Icon, RefreshIcon } from "@firecms/ui";
|
|
6
|
+
import { useSnackbarController, useStorageSource, useTranslation } from "@firecms/core";
|
|
6
7
|
import { useCreateFormex } from "@firecms/formex";
|
|
7
|
-
import { useSnackbarController, useStorageSource } from "@firecms/core";
|
|
8
8
|
import { Link } from "react-router-dom";
|
|
9
9
|
const MediaManagerContext = createContext(void 0);
|
|
10
10
|
function useMediaManager() {
|
|
@@ -555,6 +555,9 @@ function MediaAssetDetails({
|
|
|
555
555
|
const [deleting, setDeleting] = useState(false);
|
|
556
556
|
const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);
|
|
557
557
|
const [tagInput, setTagInput] = useState("");
|
|
558
|
+
const {
|
|
559
|
+
t
|
|
560
|
+
} = useTranslation();
|
|
558
561
|
const {
|
|
559
562
|
values,
|
|
560
563
|
setFieldValue,
|
|
@@ -573,12 +576,14 @@ function MediaAssetDetails({
|
|
|
573
576
|
await onUpdate(asset.id, values);
|
|
574
577
|
snackbarController.open({
|
|
575
578
|
type: "success",
|
|
576
|
-
message: "
|
|
579
|
+
message: t("media_asset_updated")
|
|
577
580
|
});
|
|
578
581
|
} catch (error) {
|
|
579
582
|
snackbarController.open({
|
|
580
583
|
type: "error",
|
|
581
|
-
message:
|
|
584
|
+
message: t("media_error_updating", {
|
|
585
|
+
message: error instanceof Error ? error.message : String(error)
|
|
586
|
+
})
|
|
582
587
|
});
|
|
583
588
|
} finally {
|
|
584
589
|
setSaving(false);
|
|
@@ -590,13 +595,15 @@ function MediaAssetDetails({
|
|
|
590
595
|
await onDelete(asset.id);
|
|
591
596
|
snackbarController.open({
|
|
592
597
|
type: "success",
|
|
593
|
-
message: "
|
|
598
|
+
message: t("media_asset_deleted")
|
|
594
599
|
});
|
|
595
600
|
onClose();
|
|
596
601
|
} catch (error_0) {
|
|
597
602
|
snackbarController.open({
|
|
598
603
|
type: "error",
|
|
599
|
-
message:
|
|
604
|
+
message: t("media_error_deleting", {
|
|
605
|
+
message: error_0 instanceof Error ? error_0.message : String(error_0)
|
|
606
|
+
})
|
|
600
607
|
});
|
|
601
608
|
} finally {
|
|
602
609
|
setDeleting(false);
|
|
@@ -612,7 +619,7 @@ function MediaAssetDetails({
|
|
|
612
619
|
} catch (error_1) {
|
|
613
620
|
snackbarController.open({
|
|
614
621
|
type: "error",
|
|
615
|
-
message: "
|
|
622
|
+
message: t("media_error_getting_url")
|
|
616
623
|
});
|
|
617
624
|
}
|
|
618
625
|
}, [asset, storageSource, snackbarController]);
|
|
@@ -624,7 +631,7 @@ function MediaAssetDetails({
|
|
|
624
631
|
}
|
|
625
632
|
}, [tagInput, values.tags, setFieldValue]);
|
|
626
633
|
const handleRemoveTag = useCallback((tagToRemove) => {
|
|
627
|
-
setFieldValue("tags", values.tags?.filter((
|
|
634
|
+
setFieldValue("tags", values.tags?.filter((t_0) => t_0 !== tagToRemove) ?? []);
|
|
628
635
|
}, [values.tags, setFieldValue]);
|
|
629
636
|
const formatSize = (bytes) => {
|
|
630
637
|
if (bytes < 1024) return `${bytes} B`;
|
|
@@ -650,11 +657,11 @@ function MediaAssetDetails({
|
|
|
650
657
|
/* @__PURE__ */ jsx(IconButton, { onClick: onClose, children: /* @__PURE__ */ jsx(CloseIcon, { size: "small" }) })
|
|
651
658
|
] })
|
|
652
659
|
] }),
|
|
653
|
-
/* @__PURE__ */ jsx("div", { className: "p-4 bg-surface-accent-100 dark:bg-surface-accent-800 flex items-center justify-center min-h-48 max-h-64", children: isImage && asset.downloadURL ? /* @__PURE__ */ jsx("img", { src: asset.downloadURL, alt: asset.altText || asset.fileName, className: "max-w-full max-h-full object-contain" }) : isVideo && asset.downloadURL ? /* @__PURE__ */ jsx("video", { src: asset.downloadURL, className: "max-w-full max-h-full", controls: true }) : /* @__PURE__ */ jsx("div", { className: "text-surface-accent-400", children: "
|
|
660
|
+
/* @__PURE__ */ jsx("div", { className: "p-4 bg-surface-accent-100 dark:bg-surface-accent-800 flex items-center justify-center min-h-48 max-h-64", children: isImage && asset.downloadURL ? /* @__PURE__ */ jsx("img", { src: asset.downloadURL, alt: asset.altText || asset.fileName, className: "max-w-full max-h-full object-contain" }) : isVideo && asset.downloadURL ? /* @__PURE__ */ jsx("video", { src: asset.downloadURL, className: "max-w-full max-h-full", controls: true }) : /* @__PURE__ */ jsx("div", { className: "text-surface-accent-400", children: t("media_preview_not_available") }) }),
|
|
654
661
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-auto p-4 space-y-4", children: [
|
|
655
662
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-3", children: [
|
|
656
663
|
asset.dimensions && /* @__PURE__ */ jsxs("div", { children: [
|
|
657
|
-
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-surface-accent-500", children: "
|
|
664
|
+
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-surface-accent-500", children: t("media_dimensions") }),
|
|
658
665
|
/* @__PURE__ */ jsxs(Typography, { variant: "body2", children: [
|
|
659
666
|
asset.dimensions.width,
|
|
660
667
|
" × ",
|
|
@@ -663,57 +670,55 @@ function MediaAssetDetails({
|
|
|
663
670
|
] })
|
|
664
671
|
] }),
|
|
665
672
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
666
|
-
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-surface-accent-500", children: "
|
|
673
|
+
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-surface-accent-500", children: t("media_size") }),
|
|
667
674
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", children: formatSize(asset.size) })
|
|
668
675
|
] }),
|
|
669
676
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
670
|
-
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-surface-accent-500", children: "
|
|
677
|
+
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-surface-accent-500", children: t("media_type") }),
|
|
671
678
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", children: asset.mimeType })
|
|
672
679
|
] }),
|
|
673
680
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
674
|
-
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-surface-accent-500", children: "
|
|
681
|
+
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-surface-accent-500", children: t("media_created") }),
|
|
675
682
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", children: formatDate(asset.createdAt) })
|
|
676
683
|
] })
|
|
677
684
|
] }),
|
|
678
685
|
/* @__PURE__ */ jsx("hr", { className: "border-surface-accent-200 dark:border-surface-accent-700" }),
|
|
679
|
-
/* @__PURE__ */ jsx(TextField, { label: "
|
|
680
|
-
/* @__PURE__ */ jsx(TextField, { label: "
|
|
686
|
+
/* @__PURE__ */ jsx(TextField, { label: t("media_file_name"), value: asset.fileName, disabled: true, size: "small" }),
|
|
687
|
+
/* @__PURE__ */ jsx(TextField, { label: t("media_title"), value: values.title ?? "", onChange: (e) => setFieldValue("title", e.target.value), size: "small" }),
|
|
681
688
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
682
|
-
/* @__PURE__ */ jsx(TextField, { label: "
|
|
683
|
-
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-surface-accent-500 mt-1", children: "
|
|
689
|
+
/* @__PURE__ */ jsx(TextField, { label: t("media_alt_text"), value: values.altText ?? "", onChange: (e_0) => setFieldValue("altText", e_0.target.value), size: "small" }),
|
|
690
|
+
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-surface-accent-500 mt-1", children: t("media_recommended_seo") })
|
|
684
691
|
] }),
|
|
685
|
-
/* @__PURE__ */ jsx(TextField, { label: "
|
|
692
|
+
/* @__PURE__ */ jsx(TextField, { label: t("media_caption"), value: values.caption ?? "", onChange: (e_1) => setFieldValue("caption", e_1.target.value), size: "small", multiline: true }),
|
|
686
693
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
687
|
-
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-surface-accent-500 mb-1 block", children: "
|
|
694
|
+
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-surface-accent-500 mb-1 block", children: t("media_tags") }),
|
|
688
695
|
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1 mb-2", children: values.tags?.map((tag_0) => /* @__PURE__ */ jsxs(Chip, { size: "small", colorScheme: "blueLighter", onClick: () => handleRemoveTag(tag_0), children: [
|
|
689
696
|
tag_0,
|
|
690
697
|
" ×"
|
|
691
698
|
] }, tag_0)) }),
|
|
692
699
|
/* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
693
|
-
/* @__PURE__ */ jsx(TextField, { placeholder: "
|
|
700
|
+
/* @__PURE__ */ jsx(TextField, { placeholder: t("media_add_tag"), value: tagInput, onChange: (e_2) => setTagInput(e_2.target.value), size: "small", className: "flex-1", onKeyDown: (e_3) => {
|
|
694
701
|
if (e_3.key === "Enter") {
|
|
695
702
|
e_3.preventDefault();
|
|
696
703
|
handleAddTag();
|
|
697
704
|
}
|
|
698
705
|
} }),
|
|
699
|
-
/* @__PURE__ */ jsx(Button, { variant: "text", size: "small", onClick: handleAddTag, disabled: !tagInput.trim(), children: "
|
|
706
|
+
/* @__PURE__ */ jsx(Button, { variant: "text", size: "small", onClick: handleAddTag, disabled: !tagInput.trim(), children: t("media_add") })
|
|
700
707
|
] })
|
|
701
708
|
] })
|
|
702
709
|
] }),
|
|
703
|
-
/* @__PURE__ */ jsx("div", { className: "flex-shrink-0 p-4 border-t border-surface-accent-200 dark:border-surface-accent-700", children: /* @__PURE__ */ jsx(Button, { variant: "filled", onClick: handleSave, disabled: !dirty || saving, className: "w-full", children: saving ? /* @__PURE__ */ jsx(CircularProgress, { size: "small" }) : "
|
|
710
|
+
/* @__PURE__ */ jsx("div", { className: "flex-shrink-0 p-4 border-t border-surface-accent-200 dark:border-surface-accent-700", children: /* @__PURE__ */ jsx(Button, { variant: "filled", onClick: handleSave, disabled: !dirty || saving, className: "w-full", children: saving ? /* @__PURE__ */ jsx(CircularProgress, { size: "small" }) : t("media_save_changes") }) })
|
|
704
711
|
] }),
|
|
705
712
|
/* @__PURE__ */ jsxs(Dialog, { open: deleteDialogOpen, onOpenChange: setDeleteDialogOpen, children: [
|
|
706
713
|
/* @__PURE__ */ jsxs(DialogContent, { children: [
|
|
707
|
-
/* @__PURE__ */ jsx(Typography, { variant: "subtitle1", className: "font-medium mb-2", children: "
|
|
708
|
-
/* @__PURE__ */
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
'"? This action cannot be undone.'
|
|
712
|
-
] })
|
|
714
|
+
/* @__PURE__ */ jsx(Typography, { variant: "subtitle1", className: "font-medium mb-2", children: t("media_delete_asset") }),
|
|
715
|
+
/* @__PURE__ */ jsx(Typography, { className: "text-surface-accent-600 dark:text-surface-accent-400", children: t("media_delete_confirmation", {
|
|
716
|
+
name: asset.title || asset.fileName
|
|
717
|
+
}) })
|
|
713
718
|
] }),
|
|
714
719
|
/* @__PURE__ */ jsxs(DialogActions, { children: [
|
|
715
|
-
/* @__PURE__ */ jsx(Button, { variant: "text", onClick: () => setDeleteDialogOpen(false), disabled: deleting, children: "
|
|
716
|
-
/* @__PURE__ */ jsx(Button, { variant: "filled", color: "error", onClick: handleDelete, disabled: deleting, children: deleting ? /* @__PURE__ */ jsx(CircularProgress, { size: "small" }) : "
|
|
720
|
+
/* @__PURE__ */ jsx(Button, { variant: "text", onClick: () => setDeleteDialogOpen(false), disabled: deleting, children: t("cancel") }),
|
|
721
|
+
/* @__PURE__ */ jsx(Button, { variant: "filled", color: "error", onClick: handleDelete, disabled: deleting, children: deleting ? /* @__PURE__ */ jsx(CircularProgress, { size: "small" }) : t("delete") })
|
|
717
722
|
] })
|
|
718
723
|
] })
|
|
719
724
|
] });
|
|
@@ -730,12 +735,18 @@ function MediaUploadDialog({
|
|
|
730
735
|
const [uploading, setUploading] = useState(false);
|
|
731
736
|
const [error, setError] = useState(null);
|
|
732
737
|
const [selectedFiles, setSelectedFiles] = useState([]);
|
|
738
|
+
const {
|
|
739
|
+
t
|
|
740
|
+
} = useTranslation();
|
|
733
741
|
const validateFiles = useCallback((files) => {
|
|
734
742
|
const valid = [];
|
|
735
743
|
const errors = [];
|
|
736
744
|
for (const file of files) {
|
|
737
745
|
if (maxFileSize && file.size > maxFileSize) {
|
|
738
|
-
errors.push(
|
|
746
|
+
errors.push(t("media_file_too_large", {
|
|
747
|
+
name: file.name,
|
|
748
|
+
size: formatSize(maxFileSize)
|
|
749
|
+
}));
|
|
739
750
|
continue;
|
|
740
751
|
}
|
|
741
752
|
if (acceptedMimeTypes && !acceptedMimeTypes.some((type) => {
|
|
@@ -744,7 +755,9 @@ function MediaUploadDialog({
|
|
|
744
755
|
}
|
|
745
756
|
return file.type === type;
|
|
746
757
|
})) {
|
|
747
|
-
errors.push(
|
|
758
|
+
errors.push(t("media_file_type_not_allowed", {
|
|
759
|
+
name: file.name
|
|
760
|
+
}));
|
|
748
761
|
continue;
|
|
749
762
|
}
|
|
750
763
|
valid.push(file);
|
|
@@ -802,7 +815,7 @@ function MediaUploadDialog({
|
|
|
802
815
|
setSelectedFiles([]);
|
|
803
816
|
onClose();
|
|
804
817
|
} catch (err) {
|
|
805
|
-
setError(err instanceof Error ? err.message : "
|
|
818
|
+
setError(err instanceof Error ? err.message : t("media_upload_failed"));
|
|
806
819
|
} finally {
|
|
807
820
|
setUploading(false);
|
|
808
821
|
}
|
|
@@ -821,26 +834,23 @@ function MediaUploadDialog({
|
|
|
821
834
|
};
|
|
822
835
|
return /* @__PURE__ */ jsxs(Dialog, { open, onOpenChange: (open_0) => !open_0 && handleClose(), maxWidth: "md", children: [
|
|
823
836
|
/* @__PURE__ */ jsxs(DialogContent, { className: "p-0", children: [
|
|
824
|
-
/* @__PURE__ */ jsx("div", { className: "p-4 border-b border-surface-accent-200 dark:border-surface-accent-700", children: /* @__PURE__ */ jsx(Typography, { variant: "h6", children: "
|
|
837
|
+
/* @__PURE__ */ jsx("div", { className: "p-4 border-b border-surface-accent-200 dark:border-surface-accent-700", children: /* @__PURE__ */ jsx(Typography, { variant: "h6", children: t("media_upload_files") }) }),
|
|
825
838
|
/* @__PURE__ */ jsxs("div", { className: "p-4", children: [
|
|
826
839
|
/* @__PURE__ */ jsxs("div", { className: cls("border-2 border-dashed rounded-lg p-8", "flex flex-col items-center justify-center gap-4", "transition-colors duration-150", isDragging ? "border-primary bg-primary/5" : "border-surface-accent-300 dark:border-surface-accent-600", "hover:border-primary hover:bg-primary/5", "cursor-pointer"), onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, onClick: () => document.getElementById("file-upload-input")?.click(), children: [
|
|
827
840
|
/* @__PURE__ */ jsx(CloudUploadIcon, { size: "large", className: cls(isDragging ? "text-primary" : "text-surface-accent-400") }),
|
|
828
841
|
/* @__PURE__ */ jsxs("div", { className: "text-center", children: [
|
|
829
|
-
/* @__PURE__ */ jsx(Typography, { variant: "body1", className: "font-medium", children: "
|
|
830
|
-
/* @__PURE__ */
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
] })
|
|
842
|
+
/* @__PURE__ */ jsx(Typography, { variant: "body1", className: "font-medium", children: t("media_drop_files") }),
|
|
843
|
+
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-surface-accent-500", children: t("media_max_file_size", {
|
|
844
|
+
size: formatSize(maxFileSize)
|
|
845
|
+
}) })
|
|
834
846
|
] }),
|
|
835
847
|
/* @__PURE__ */ jsx("input", { id: "file-upload-input", type: "file", multiple: true, accept: acceptedMimeTypes?.join(","), onChange: handleFileSelect, className: "hidden" })
|
|
836
848
|
] }),
|
|
837
849
|
error && /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-red-500 mt-2 block whitespace-pre-line", children: error }),
|
|
838
850
|
selectedFiles.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mt-4 space-y-2", children: [
|
|
839
|
-
/* @__PURE__ */
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
")"
|
|
843
|
-
] }),
|
|
851
|
+
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-surface-accent-500", children: t("media_selected_files_count", {
|
|
852
|
+
count: selectedFiles.length.toString()
|
|
853
|
+
}) }),
|
|
844
854
|
/* @__PURE__ */ jsx("div", { className: "max-h-40 overflow-auto space-y-1", children: selectedFiles.map((file_0, index_0) => /* @__PURE__ */ jsxs("div", { className: cls("flex items-center justify-between p-2 rounded", "bg-surface-accent-50 dark:bg-surface-accent-800"), children: [
|
|
845
855
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0 mr-2", children: [
|
|
846
856
|
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "truncate", children: file_0.name }),
|
|
@@ -849,22 +859,22 @@ function MediaUploadDialog({
|
|
|
849
859
|
/* @__PURE__ */ jsx(Button, { variant: "text", size: "small", onClick: (e_3) => {
|
|
850
860
|
e_3.stopPropagation();
|
|
851
861
|
handleRemoveFile(index_0);
|
|
852
|
-
}, disabled: uploading, children: "
|
|
862
|
+
}, disabled: uploading, children: t("media_remove") })
|
|
853
863
|
] }, `${file_0.name}-${index_0}`)) })
|
|
854
864
|
] })
|
|
855
865
|
] })
|
|
856
866
|
] }),
|
|
857
867
|
/* @__PURE__ */ jsxs(DialogActions, { children: [
|
|
858
|
-
/* @__PURE__ */ jsx(Button, { variant: "text", onClick: handleClose, disabled: uploading, children: "
|
|
868
|
+
/* @__PURE__ */ jsx(Button, { variant: "text", onClick: handleClose, disabled: uploading, children: t("cancel") }),
|
|
859
869
|
/* @__PURE__ */ jsx(Button, { variant: "filled", onClick: handleUpload, disabled: selectedFiles.length === 0 || uploading, children: uploading ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
860
870
|
/* @__PURE__ */ jsx(CircularProgress, { size: "smallest" }),
|
|
861
|
-
"
|
|
862
|
-
] }) :
|
|
871
|
+
t("media_uploading")
|
|
872
|
+
] }) : `${t("media_upload")} ${selectedFiles.length > 0 ? `(${selectedFiles.length})` : ""}` })
|
|
863
873
|
] })
|
|
864
874
|
] });
|
|
865
875
|
}
|
|
866
876
|
function MediaLibraryView(t0) {
|
|
867
|
-
const $ = c(
|
|
877
|
+
const $ = c(87);
|
|
868
878
|
const {
|
|
869
879
|
maxFileSize,
|
|
870
880
|
acceptedMimeTypes
|
|
@@ -873,6 +883,9 @@ function MediaLibraryView(t0) {
|
|
|
873
883
|
const [uploadDialogOpen, setUploadDialogOpen] = useState(false);
|
|
874
884
|
const [viewMode, setViewMode] = useState("grid");
|
|
875
885
|
useRef(null);
|
|
886
|
+
const {
|
|
887
|
+
t
|
|
888
|
+
} = useTranslation();
|
|
876
889
|
let t1;
|
|
877
890
|
if ($[0] !== controller) {
|
|
878
891
|
t1 = (query) => {
|
|
@@ -920,235 +933,637 @@ function MediaLibraryView(t0) {
|
|
|
920
933
|
}
|
|
921
934
|
const handleRefresh = t4;
|
|
922
935
|
let t5;
|
|
923
|
-
if ($[7]
|
|
924
|
-
t5 =
|
|
925
|
-
$[7] =
|
|
936
|
+
if ($[7] !== t) {
|
|
937
|
+
t5 = t("media_library");
|
|
938
|
+
$[7] = t;
|
|
939
|
+
$[8] = t5;
|
|
926
940
|
} else {
|
|
927
|
-
t5 = $[
|
|
941
|
+
t5 = $[8];
|
|
928
942
|
}
|
|
929
943
|
let t6;
|
|
930
|
-
if ($[
|
|
931
|
-
t6 =
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
] });
|
|
935
|
-
$[8] = controller.totalCount;
|
|
936
|
-
$[9] = t6;
|
|
944
|
+
if ($[9] !== t5) {
|
|
945
|
+
t6 = /* @__PURE__ */ jsx(Typography, { variant: "h5", className: "font-semibold", children: t5 });
|
|
946
|
+
$[9] = t5;
|
|
947
|
+
$[10] = t6;
|
|
937
948
|
} else {
|
|
938
|
-
t6 = $[
|
|
949
|
+
t6 = $[10];
|
|
939
950
|
}
|
|
940
951
|
let t7;
|
|
941
|
-
if ($[
|
|
942
|
-
t7 = /* @__PURE__ */
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
]
|
|
946
|
-
$[
|
|
947
|
-
$[
|
|
952
|
+
if ($[11] !== controller.totalCount || $[12] !== t) {
|
|
953
|
+
t7 = controller.totalCount !== void 0 && /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "bg-surface-accent-100 dark:bg-surface-accent-800 px-2 py-0.5 rounded-full", children: t("media_assets_count", {
|
|
954
|
+
count: controller.totalCount.toString()
|
|
955
|
+
}) });
|
|
956
|
+
$[11] = controller.totalCount;
|
|
957
|
+
$[12] = t;
|
|
958
|
+
$[13] = t7;
|
|
948
959
|
} else {
|
|
949
|
-
t7 = $[
|
|
960
|
+
t7 = $[13];
|
|
950
961
|
}
|
|
951
962
|
let t8;
|
|
952
|
-
if ($[
|
|
953
|
-
t8 = /* @__PURE__ */
|
|
954
|
-
|
|
955
|
-
|
|
963
|
+
if ($[14] !== t6 || $[15] !== t7) {
|
|
964
|
+
t8 = /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
965
|
+
t6,
|
|
966
|
+
t7
|
|
967
|
+
] });
|
|
968
|
+
$[14] = t6;
|
|
969
|
+
$[15] = t7;
|
|
970
|
+
$[16] = t8;
|
|
956
971
|
} else {
|
|
957
|
-
t8 = $[
|
|
972
|
+
t8 = $[16];
|
|
958
973
|
}
|
|
959
974
|
let t9;
|
|
960
|
-
if ($[
|
|
961
|
-
t9 = (
|
|
962
|
-
$[
|
|
975
|
+
if ($[17] !== t) {
|
|
976
|
+
t9 = t("media_search_assets");
|
|
977
|
+
$[17] = t;
|
|
978
|
+
$[18] = t9;
|
|
979
|
+
} else {
|
|
980
|
+
t9 = $[18];
|
|
981
|
+
}
|
|
982
|
+
let t10;
|
|
983
|
+
if ($[19] !== handleSearch || $[20] !== t9) {
|
|
984
|
+
t10 = /* @__PURE__ */ jsx(SearchBar, { onTextSearch: handleSearch, placeholder: t9, className: "flex-1 sm:w-64" });
|
|
985
|
+
$[19] = handleSearch;
|
|
986
|
+
$[20] = t9;
|
|
987
|
+
$[21] = t10;
|
|
963
988
|
} else {
|
|
964
|
-
|
|
989
|
+
t10 = $[21];
|
|
965
990
|
}
|
|
966
|
-
const t10 = viewMode === "grid" && "bg-surface-accent-100 dark:bg-surface-accent-800";
|
|
967
991
|
let t11;
|
|
968
|
-
if ($[
|
|
969
|
-
t11 =
|
|
970
|
-
$[
|
|
971
|
-
$[
|
|
992
|
+
if ($[22] !== t) {
|
|
993
|
+
t11 = t("media_grid_view");
|
|
994
|
+
$[22] = t;
|
|
995
|
+
$[23] = t11;
|
|
972
996
|
} else {
|
|
973
|
-
t11 = $[
|
|
997
|
+
t11 = $[23];
|
|
974
998
|
}
|
|
975
999
|
let t12;
|
|
976
|
-
if ($[
|
|
977
|
-
t12 =
|
|
978
|
-
$[
|
|
1000
|
+
if ($[24] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
|
|
1001
|
+
t12 = () => setViewMode("grid");
|
|
1002
|
+
$[24] = t12;
|
|
979
1003
|
} else {
|
|
980
|
-
t12 = $[
|
|
1004
|
+
t12 = $[24];
|
|
981
1005
|
}
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
$[
|
|
1006
|
+
const t13 = viewMode === "grid" && "bg-surface-accent-100 dark:bg-surface-accent-800";
|
|
1007
|
+
let t14;
|
|
1008
|
+
if ($[25] !== t13) {
|
|
1009
|
+
t14 = cls(t13);
|
|
1010
|
+
$[25] = t13;
|
|
1011
|
+
$[26] = t14;
|
|
987
1012
|
} else {
|
|
988
|
-
|
|
1013
|
+
t14 = $[26];
|
|
989
1014
|
}
|
|
990
|
-
let
|
|
991
|
-
if ($[
|
|
992
|
-
|
|
993
|
-
$[
|
|
1015
|
+
let t15;
|
|
1016
|
+
if ($[27] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
|
|
1017
|
+
t15 = /* @__PURE__ */ jsx(AppsIcon, { size: "small" });
|
|
1018
|
+
$[27] = t15;
|
|
994
1019
|
} else {
|
|
995
|
-
|
|
1020
|
+
t15 = $[27];
|
|
996
1021
|
}
|
|
997
|
-
const t15 = viewMode === "list" && "bg-surface-accent-100 dark:bg-surface-accent-800";
|
|
998
1022
|
let t16;
|
|
999
|
-
if ($[
|
|
1000
|
-
t16 =
|
|
1001
|
-
$[
|
|
1002
|
-
$[
|
|
1023
|
+
if ($[28] !== t14) {
|
|
1024
|
+
t16 = /* @__PURE__ */ jsx(IconButton, { onClick: t12, className: t14, children: t15 });
|
|
1025
|
+
$[28] = t14;
|
|
1026
|
+
$[29] = t16;
|
|
1003
1027
|
} else {
|
|
1004
|
-
t16 = $[
|
|
1028
|
+
t16 = $[29];
|
|
1005
1029
|
}
|
|
1006
1030
|
let t17;
|
|
1007
|
-
if ($[
|
|
1008
|
-
t17 = /* @__PURE__ */ jsx(
|
|
1009
|
-
$[
|
|
1031
|
+
if ($[30] !== t11 || $[31] !== t16) {
|
|
1032
|
+
t17 = /* @__PURE__ */ jsx(Tooltip, { title: t11, children: t16 });
|
|
1033
|
+
$[30] = t11;
|
|
1034
|
+
$[31] = t16;
|
|
1035
|
+
$[32] = t17;
|
|
1010
1036
|
} else {
|
|
1011
|
-
t17 = $[
|
|
1037
|
+
t17 = $[32];
|
|
1012
1038
|
}
|
|
1013
1039
|
let t18;
|
|
1014
|
-
if ($[
|
|
1015
|
-
t18 =
|
|
1016
|
-
$[
|
|
1017
|
-
$[
|
|
1040
|
+
if ($[33] !== t) {
|
|
1041
|
+
t18 = t("media_list_view");
|
|
1042
|
+
$[33] = t;
|
|
1043
|
+
$[34] = t18;
|
|
1018
1044
|
} else {
|
|
1019
|
-
t18 = $[
|
|
1045
|
+
t18 = $[34];
|
|
1020
1046
|
}
|
|
1021
1047
|
let t19;
|
|
1022
|
-
if ($[
|
|
1023
|
-
t19 =
|
|
1024
|
-
|
|
1025
|
-
t18
|
|
1026
|
-
] });
|
|
1027
|
-
$[26] = t13;
|
|
1028
|
-
$[27] = t18;
|
|
1029
|
-
$[28] = t19;
|
|
1030
|
-
} else {
|
|
1031
|
-
t19 = $[28];
|
|
1032
|
-
}
|
|
1033
|
-
let t20;
|
|
1034
|
-
if ($[29] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
|
|
1035
|
-
t20 = /* @__PURE__ */ jsx(RefreshIcon, { size: "small" });
|
|
1036
|
-
$[29] = t20;
|
|
1048
|
+
if ($[35] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
|
|
1049
|
+
t19 = () => setViewMode("list");
|
|
1050
|
+
$[35] = t19;
|
|
1037
1051
|
} else {
|
|
1038
|
-
|
|
1052
|
+
t19 = $[35];
|
|
1039
1053
|
}
|
|
1054
|
+
const t20 = viewMode === "list" && "bg-surface-accent-100 dark:bg-surface-accent-800";
|
|
1040
1055
|
let t21;
|
|
1041
|
-
if ($[
|
|
1042
|
-
t21 =
|
|
1043
|
-
$[
|
|
1044
|
-
$[
|
|
1045
|
-
$[32] = t21;
|
|
1056
|
+
if ($[36] !== t20) {
|
|
1057
|
+
t21 = cls(t20);
|
|
1058
|
+
$[36] = t20;
|
|
1059
|
+
$[37] = t21;
|
|
1046
1060
|
} else {
|
|
1047
|
-
t21 = $[
|
|
1061
|
+
t21 = $[37];
|
|
1048
1062
|
}
|
|
1049
1063
|
let t22;
|
|
1050
|
-
if ($[
|
|
1051
|
-
t22 = /* @__PURE__ */
|
|
1052
|
-
|
|
1053
|
-
"Upload"
|
|
1054
|
-
] });
|
|
1055
|
-
$[33] = t22;
|
|
1064
|
+
if ($[38] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
|
|
1065
|
+
t22 = /* @__PURE__ */ jsx(Icon, { iconKey: "list", size: "small" });
|
|
1066
|
+
$[38] = t22;
|
|
1056
1067
|
} else {
|
|
1057
|
-
t22 = $[
|
|
1068
|
+
t22 = $[38];
|
|
1058
1069
|
}
|
|
1059
1070
|
let t23;
|
|
1060
|
-
if ($[
|
|
1061
|
-
t23 = /* @__PURE__ */
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
t21,
|
|
1065
|
-
t22
|
|
1066
|
-
] });
|
|
1067
|
-
$[34] = t19;
|
|
1068
|
-
$[35] = t21;
|
|
1069
|
-
$[36] = t8;
|
|
1070
|
-
$[37] = t23;
|
|
1071
|
+
if ($[39] !== t21) {
|
|
1072
|
+
t23 = /* @__PURE__ */ jsx(IconButton, { onClick: t19, className: t21, children: t22 });
|
|
1073
|
+
$[39] = t21;
|
|
1074
|
+
$[40] = t23;
|
|
1071
1075
|
} else {
|
|
1072
|
-
t23 = $[
|
|
1076
|
+
t23 = $[40];
|
|
1073
1077
|
}
|
|
1074
1078
|
let t24;
|
|
1075
|
-
if ($[
|
|
1076
|
-
t24 = /* @__PURE__ */ jsx(
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
]
|
|
1080
|
-
$[38] = t23;
|
|
1081
|
-
$[39] = t7;
|
|
1082
|
-
$[40] = t24;
|
|
1079
|
+
if ($[41] !== t18 || $[42] !== t23) {
|
|
1080
|
+
t24 = /* @__PURE__ */ jsx(Tooltip, { title: t18, children: t23 });
|
|
1081
|
+
$[41] = t18;
|
|
1082
|
+
$[42] = t23;
|
|
1083
|
+
$[43] = t24;
|
|
1083
1084
|
} else {
|
|
1084
|
-
t24 = $[
|
|
1085
|
+
t24 = $[43];
|
|
1085
1086
|
}
|
|
1086
1087
|
let t25;
|
|
1087
|
-
if ($[
|
|
1088
|
-
t25 = /* @__PURE__ */
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
]
|
|
1095
|
-
/* @__PURE__ */ jsx(Typography, { className: "text-surface-accent-500", children: "No media assets yet" }),
|
|
1096
|
-
/* @__PURE__ */ jsxs(Button, { onClick: handleUploadClick, children: [
|
|
1097
|
-
/* @__PURE__ */ jsx(AddIcon, { size: "small" }),
|
|
1098
|
-
"Upload your first file"
|
|
1099
|
-
] })
|
|
1100
|
-
] }) : /* @__PURE__ */ jsx("div", { className: cls(viewMode === "grid" ? "grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-4" : "flex flex-col gap-2"), children: controller.assets.map((asset) => /* @__PURE__ */ jsx(MediaAssetCard, { asset, viewMode, onClick: () => controller.selectAsset(asset), selected: controller.selectedAsset?.id === asset.id }, asset.id)) }) }) });
|
|
1101
|
-
$[41] = controller;
|
|
1102
|
-
$[42] = handleRefresh;
|
|
1103
|
-
$[43] = viewMode;
|
|
1104
|
-
$[44] = t25;
|
|
1088
|
+
if ($[44] !== t17 || $[45] !== t24) {
|
|
1089
|
+
t25 = /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 border-l border-surface-accent-200 dark:border-surface-accent-700 pl-2 ml-2", children: [
|
|
1090
|
+
t17,
|
|
1091
|
+
t24
|
|
1092
|
+
] });
|
|
1093
|
+
$[44] = t17;
|
|
1094
|
+
$[45] = t24;
|
|
1095
|
+
$[46] = t25;
|
|
1105
1096
|
} else {
|
|
1106
|
-
t25 = $[
|
|
1097
|
+
t25 = $[46];
|
|
1107
1098
|
}
|
|
1108
1099
|
let t26;
|
|
1109
|
-
if ($[
|
|
1110
|
-
t26 =
|
|
1111
|
-
$[
|
|
1112
|
-
$[
|
|
1100
|
+
if ($[47] !== t) {
|
|
1101
|
+
t26 = t("media_refresh");
|
|
1102
|
+
$[47] = t;
|
|
1103
|
+
$[48] = t26;
|
|
1113
1104
|
} else {
|
|
1114
|
-
t26 = $[
|
|
1105
|
+
t26 = $[48];
|
|
1115
1106
|
}
|
|
1116
1107
|
let t27;
|
|
1117
|
-
if ($[
|
|
1118
|
-
t27 = (
|
|
1119
|
-
$[
|
|
1108
|
+
if ($[49] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
|
|
1109
|
+
t27 = /* @__PURE__ */ jsx(RefreshIcon, { size: "small" });
|
|
1110
|
+
$[49] = t27;
|
|
1120
1111
|
} else {
|
|
1121
|
-
t27 = $[
|
|
1112
|
+
t27 = $[49];
|
|
1122
1113
|
}
|
|
1123
1114
|
let t28;
|
|
1124
|
-
if ($[
|
|
1125
|
-
t28 = /* @__PURE__ */ jsx(
|
|
1126
|
-
$[
|
|
1127
|
-
$[
|
|
1128
|
-
$[50] = maxFileSize;
|
|
1129
|
-
$[51] = uploadDialogOpen;
|
|
1115
|
+
if ($[50] !== controller.loading || $[51] !== handleRefresh) {
|
|
1116
|
+
t28 = /* @__PURE__ */ jsx(IconButton, { onClick: handleRefresh, disabled: controller.loading, children: t27 });
|
|
1117
|
+
$[50] = controller.loading;
|
|
1118
|
+
$[51] = handleRefresh;
|
|
1130
1119
|
$[52] = t28;
|
|
1131
1120
|
} else {
|
|
1132
1121
|
t28 = $[52];
|
|
1133
1122
|
}
|
|
1134
1123
|
let t29;
|
|
1135
|
-
if ($[53] !==
|
|
1136
|
-
t29 = /* @__PURE__ */
|
|
1137
|
-
|
|
1124
|
+
if ($[53] !== t26 || $[54] !== t28) {
|
|
1125
|
+
t29 = /* @__PURE__ */ jsx(Tooltip, { title: t26, children: t28 });
|
|
1126
|
+
$[53] = t26;
|
|
1127
|
+
$[54] = t28;
|
|
1128
|
+
$[55] = t29;
|
|
1129
|
+
} else {
|
|
1130
|
+
t29 = $[55];
|
|
1131
|
+
}
|
|
1132
|
+
let t30;
|
|
1133
|
+
if ($[56] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
|
|
1134
|
+
t30 = /* @__PURE__ */ jsx(AddIcon, { size: "small" });
|
|
1135
|
+
$[56] = t30;
|
|
1136
|
+
} else {
|
|
1137
|
+
t30 = $[56];
|
|
1138
|
+
}
|
|
1139
|
+
let t31;
|
|
1140
|
+
if ($[57] !== t) {
|
|
1141
|
+
t31 = t("media_upload");
|
|
1142
|
+
$[57] = t;
|
|
1143
|
+
$[58] = t31;
|
|
1144
|
+
} else {
|
|
1145
|
+
t31 = $[58];
|
|
1146
|
+
}
|
|
1147
|
+
let t32;
|
|
1148
|
+
if ($[59] !== t31) {
|
|
1149
|
+
t32 = /* @__PURE__ */ jsxs(Button, { variant: "filled", onClick: handleUploadClick, children: [
|
|
1150
|
+
t30,
|
|
1151
|
+
t31
|
|
1152
|
+
] });
|
|
1153
|
+
$[59] = t31;
|
|
1154
|
+
$[60] = t32;
|
|
1155
|
+
} else {
|
|
1156
|
+
t32 = $[60];
|
|
1157
|
+
}
|
|
1158
|
+
let t33;
|
|
1159
|
+
if ($[61] !== t10 || $[62] !== t25 || $[63] !== t29 || $[64] !== t32) {
|
|
1160
|
+
t33 = /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 w-full sm:w-auto", children: [
|
|
1161
|
+
t10,
|
|
1138
1162
|
t25,
|
|
1139
|
-
|
|
1140
|
-
|
|
1163
|
+
t29,
|
|
1164
|
+
t32
|
|
1141
1165
|
] });
|
|
1142
|
-
$[
|
|
1143
|
-
$[
|
|
1144
|
-
$[
|
|
1145
|
-
$[
|
|
1146
|
-
$[
|
|
1166
|
+
$[61] = t10;
|
|
1167
|
+
$[62] = t25;
|
|
1168
|
+
$[63] = t29;
|
|
1169
|
+
$[64] = t32;
|
|
1170
|
+
$[65] = t33;
|
|
1147
1171
|
} else {
|
|
1148
|
-
|
|
1172
|
+
t33 = $[65];
|
|
1149
1173
|
}
|
|
1150
|
-
|
|
1174
|
+
let t34;
|
|
1175
|
+
if ($[66] !== t33 || $[67] !== t8) {
|
|
1176
|
+
t34 = /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 border-b border-surface-accent-200 dark:border-surface-accent-700 bg-surface-50 dark:bg-surface-900", children: /* @__PURE__ */ jsx(Container, { maxWidth: "6xl", className: "py-4", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col sm:flex-row gap-4 items-start sm:items-center justify-between", children: [
|
|
1177
|
+
t8,
|
|
1178
|
+
t33
|
|
1179
|
+
] }) }) });
|
|
1180
|
+
$[66] = t33;
|
|
1181
|
+
$[67] = t8;
|
|
1182
|
+
$[68] = t34;
|
|
1183
|
+
} else {
|
|
1184
|
+
t34 = $[68];
|
|
1185
|
+
}
|
|
1186
|
+
let t35;
|
|
1187
|
+
if ($[69] !== controller || $[70] !== handleRefresh || $[71] !== t || $[72] !== viewMode) {
|
|
1188
|
+
t35 = /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-auto", children: /* @__PURE__ */ jsx(Container, { maxWidth: "6xl", className: "py-6", children: controller.loading && controller.assets.length === 0 ? /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center h-64", children: /* @__PURE__ */ jsx(CircularProgress, {}) }) : controller.error ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center h-64 gap-4", children: [
|
|
1189
|
+
/* @__PURE__ */ jsx(Typography, { className: "text-red-500", children: t("media_error_loading", {
|
|
1190
|
+
message: controller.error.message
|
|
1191
|
+
}) }),
|
|
1192
|
+
/* @__PURE__ */ jsx(Button, { onClick: handleRefresh, children: t("media_try_again") })
|
|
1193
|
+
] }) : controller.assets.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center h-64 gap-4", children: [
|
|
1194
|
+
/* @__PURE__ */ jsx(Typography, { className: "text-surface-accent-500", children: t("media_no_assets") }),
|
|
1195
|
+
/* @__PURE__ */ jsxs(Button, { onClick: handleUploadClick, children: [
|
|
1196
|
+
/* @__PURE__ */ jsx(AddIcon, { size: "small" }),
|
|
1197
|
+
t("media_upload_first_file")
|
|
1198
|
+
] })
|
|
1199
|
+
] }) : /* @__PURE__ */ jsx("div", { className: cls(viewMode === "grid" ? "grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-4" : "flex flex-col gap-2"), children: controller.assets.map((asset) => /* @__PURE__ */ jsx(MediaAssetCard, { asset, viewMode, onClick: () => controller.selectAsset(asset), selected: controller.selectedAsset?.id === asset.id }, asset.id)) }) }) });
|
|
1200
|
+
$[69] = controller;
|
|
1201
|
+
$[70] = handleRefresh;
|
|
1202
|
+
$[71] = t;
|
|
1203
|
+
$[72] = viewMode;
|
|
1204
|
+
$[73] = t35;
|
|
1205
|
+
} else {
|
|
1206
|
+
t35 = $[73];
|
|
1207
|
+
}
|
|
1208
|
+
let t36;
|
|
1209
|
+
if ($[74] !== controller) {
|
|
1210
|
+
t36 = controller.selectedAsset && /* @__PURE__ */ jsx(MediaAssetDetails, { asset: controller.selectedAsset, onClose: () => controller.selectAsset(void 0), onUpdate: controller.updateAsset, onDelete: controller.deleteAsset });
|
|
1211
|
+
$[74] = controller;
|
|
1212
|
+
$[75] = t36;
|
|
1213
|
+
} else {
|
|
1214
|
+
t36 = $[75];
|
|
1215
|
+
}
|
|
1216
|
+
let t37;
|
|
1217
|
+
if ($[76] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
|
|
1218
|
+
t37 = () => setUploadDialogOpen(false);
|
|
1219
|
+
$[76] = t37;
|
|
1220
|
+
} else {
|
|
1221
|
+
t37 = $[76];
|
|
1222
|
+
}
|
|
1223
|
+
let t38;
|
|
1224
|
+
if ($[77] !== acceptedMimeTypes || $[78] !== handleFileSelect || $[79] !== maxFileSize || $[80] !== uploadDialogOpen) {
|
|
1225
|
+
t38 = /* @__PURE__ */ jsx(MediaUploadDialog, { open: uploadDialogOpen, onClose: t37, onUpload: handleFileSelect, maxFileSize, acceptedMimeTypes });
|
|
1226
|
+
$[77] = acceptedMimeTypes;
|
|
1227
|
+
$[78] = handleFileSelect;
|
|
1228
|
+
$[79] = maxFileSize;
|
|
1229
|
+
$[80] = uploadDialogOpen;
|
|
1230
|
+
$[81] = t38;
|
|
1231
|
+
} else {
|
|
1232
|
+
t38 = $[81];
|
|
1233
|
+
}
|
|
1234
|
+
let t39;
|
|
1235
|
+
if ($[82] !== t34 || $[83] !== t35 || $[84] !== t36 || $[85] !== t38) {
|
|
1236
|
+
t39 = /* @__PURE__ */ jsxs("div", { className: "h-full flex flex-col overflow-hidden", children: [
|
|
1237
|
+
t34,
|
|
1238
|
+
t35,
|
|
1239
|
+
t36,
|
|
1240
|
+
t38
|
|
1241
|
+
] });
|
|
1242
|
+
$[82] = t34;
|
|
1243
|
+
$[83] = t35;
|
|
1244
|
+
$[84] = t36;
|
|
1245
|
+
$[85] = t38;
|
|
1246
|
+
$[86] = t39;
|
|
1247
|
+
} else {
|
|
1248
|
+
t39 = $[86];
|
|
1249
|
+
}
|
|
1250
|
+
return t39;
|
|
1151
1251
|
}
|
|
1252
|
+
const mediaManagerTranslationsEn = {
|
|
1253
|
+
media_library: "Media Library",
|
|
1254
|
+
media_library_description: "Manage images and files",
|
|
1255
|
+
media_search_assets: "Search assets...",
|
|
1256
|
+
media_grid_view: "Grid view",
|
|
1257
|
+
media_list_view: "List view",
|
|
1258
|
+
media_refresh: "Refresh",
|
|
1259
|
+
media_upload: "Upload",
|
|
1260
|
+
media_error_loading: "Error loading assets: {{message}}",
|
|
1261
|
+
media_try_again: "Try Again",
|
|
1262
|
+
media_no_assets: "No media assets yet",
|
|
1263
|
+
media_upload_first_file: "Upload your first file",
|
|
1264
|
+
media_asset_updated: "Asset updated successfully",
|
|
1265
|
+
media_error_updating: "Error updating asset: {{message}}",
|
|
1266
|
+
media_asset_deleted: "Asset deleted successfully",
|
|
1267
|
+
media_error_deleting: "Error deleting asset: {{message}}",
|
|
1268
|
+
media_error_getting_url: "Error getting download URL",
|
|
1269
|
+
media_preview_not_available: "Preview not available",
|
|
1270
|
+
media_dimensions: "Dimensions",
|
|
1271
|
+
media_size: "Size",
|
|
1272
|
+
media_type: "Type",
|
|
1273
|
+
media_created: "Created",
|
|
1274
|
+
media_file_name: "File Name",
|
|
1275
|
+
media_title: "Title",
|
|
1276
|
+
media_alt_text: "Alt Text",
|
|
1277
|
+
media_recommended_seo: "Recommended for SEO",
|
|
1278
|
+
media_caption: "Caption",
|
|
1279
|
+
media_tags: "Tags",
|
|
1280
|
+
media_add_tag: "Add a tag...",
|
|
1281
|
+
media_add: "Add",
|
|
1282
|
+
media_save_changes: "Save Changes",
|
|
1283
|
+
media_delete_asset: "Delete Asset?",
|
|
1284
|
+
media_delete_confirmation: 'Are you sure you want to delete "{{name}}"? This action cannot be undone.',
|
|
1285
|
+
media_file_too_large: "{{name}}: File too large (max {{size}})",
|
|
1286
|
+
media_file_type_not_allowed: "{{name}}: File type not allowed",
|
|
1287
|
+
media_upload_failed: "Upload failed",
|
|
1288
|
+
media_upload_files: "Upload Files",
|
|
1289
|
+
media_drop_files: "Drop files here or click to browse",
|
|
1290
|
+
media_max_file_size: "Maximum file size: {{size}}",
|
|
1291
|
+
media_selected_files_count: "Selected files ({{count}})",
|
|
1292
|
+
media_remove: "Remove",
|
|
1293
|
+
media_uploading: "Uploading...",
|
|
1294
|
+
media_manage_description: "Manage your media files and assets",
|
|
1295
|
+
media_assets_count: "{{count}} assets"
|
|
1296
|
+
};
|
|
1297
|
+
const mediaManagerTranslationsEs = {
|
|
1298
|
+
media_library: "Biblioteca de Medios",
|
|
1299
|
+
media_library_description: "Gestionar imágenes y archivos",
|
|
1300
|
+
media_search_assets: "Buscar recursos...",
|
|
1301
|
+
media_grid_view: "Vista de cuadrícula",
|
|
1302
|
+
media_list_view: "Vista de lista",
|
|
1303
|
+
media_refresh: "Actualizar",
|
|
1304
|
+
media_upload: "Subir",
|
|
1305
|
+
media_error_loading: "Error al cargar recursos: {{message}}",
|
|
1306
|
+
media_try_again: "Volver a intentar",
|
|
1307
|
+
media_no_assets: "Aún no hay recursos multimedia",
|
|
1308
|
+
media_upload_first_file: "Sube tu primer archivo",
|
|
1309
|
+
media_asset_updated: "Recurso actualizado con éxito",
|
|
1310
|
+
media_error_updating: "Error al actualizar recurso: {{message}}",
|
|
1311
|
+
media_asset_deleted: "Recurso eliminado con éxito",
|
|
1312
|
+
media_error_deleting: "Error al eliminar recurso: {{message}}",
|
|
1313
|
+
media_error_getting_url: "Error al obtener URL de descarga",
|
|
1314
|
+
media_preview_not_available: "Vista previa no disponible",
|
|
1315
|
+
media_dimensions: "Dimensiones",
|
|
1316
|
+
media_size: "Tamaño",
|
|
1317
|
+
media_type: "Tipo",
|
|
1318
|
+
media_created: "Creado",
|
|
1319
|
+
media_file_name: "Nombre del archivo",
|
|
1320
|
+
media_title: "Título",
|
|
1321
|
+
media_alt_text: "Texto alternativo",
|
|
1322
|
+
media_recommended_seo: "Recomendado para SEO",
|
|
1323
|
+
media_caption: "Leyenda",
|
|
1324
|
+
media_tags: "Etiquetas",
|
|
1325
|
+
media_add_tag: "Añadir una etiqueta...",
|
|
1326
|
+
media_add: "Añadir",
|
|
1327
|
+
media_save_changes: "Guardar cambios",
|
|
1328
|
+
media_delete_asset: "¿Eliminar recurso?",
|
|
1329
|
+
media_delete_confirmation: '¿Estás seguro de que deseas eliminar "{{name}}"? Esta acción no se puede deshacer.',
|
|
1330
|
+
media_file_too_large: "{{name}}: Archivo demasiado grande (máx. {{size}})",
|
|
1331
|
+
media_file_type_not_allowed: "{{name}}: Tipo de archivo no permitido",
|
|
1332
|
+
media_upload_failed: "Error al subir",
|
|
1333
|
+
media_upload_files: "Subir archivos",
|
|
1334
|
+
media_drop_files: "Suelta archivos aquí o haz clic para buscar",
|
|
1335
|
+
media_max_file_size: "Tamaño máximo de archivo: {{size}}",
|
|
1336
|
+
media_selected_files_count: "Archivos seleccionados ({{count}})",
|
|
1337
|
+
media_remove: "Quitar",
|
|
1338
|
+
media_uploading: "Subiendo...",
|
|
1339
|
+
media_manage_description: "Gestiona tus archivos y recursos multimedia",
|
|
1340
|
+
media_assets_count: "{{count}} recursos"
|
|
1341
|
+
};
|
|
1342
|
+
const mediaManagerTranslationsDe = {
|
|
1343
|
+
media_library: "Mediathek",
|
|
1344
|
+
media_library_description: "Bilder und Dateien verwalten",
|
|
1345
|
+
media_search_assets: "Assets durchsuchen...",
|
|
1346
|
+
media_grid_view: "Rasteransicht",
|
|
1347
|
+
media_list_view: "Listenansicht",
|
|
1348
|
+
media_refresh: "Aktualisieren",
|
|
1349
|
+
media_upload: "Hochladen",
|
|
1350
|
+
media_error_loading: "Fehler beim Laden der Assets: {{message}}",
|
|
1351
|
+
media_try_again: "Erneut versuchen",
|
|
1352
|
+
media_no_assets: "Noch keine Medien-Assets",
|
|
1353
|
+
media_upload_first_file: "Laden Sie Ihre erste Datei hoch",
|
|
1354
|
+
media_asset_updated: "Asset erfolgreich aktualisiert",
|
|
1355
|
+
media_error_updating: "Fehler beim Aktualisieren des Assets: {{message}}",
|
|
1356
|
+
media_asset_deleted: "Asset erfolgreich gelöscht",
|
|
1357
|
+
media_error_deleting: "Fehler beim Löschen des Assets: {{message}}",
|
|
1358
|
+
media_error_getting_url: "Fehler beim Abrufen der Download-URL",
|
|
1359
|
+
media_preview_not_available: "Vorschau nicht verfügbar",
|
|
1360
|
+
media_dimensions: "Abmessungen",
|
|
1361
|
+
media_size: "Größe",
|
|
1362
|
+
media_type: "Typ",
|
|
1363
|
+
media_created: "Erstellt",
|
|
1364
|
+
media_file_name: "Dateiname",
|
|
1365
|
+
media_title: "Titel",
|
|
1366
|
+
media_alt_text: "Alternativtext",
|
|
1367
|
+
media_recommended_seo: "Empfohlen für SEO",
|
|
1368
|
+
media_caption: "Bildunterschrift",
|
|
1369
|
+
media_tags: "Schlagwörter",
|
|
1370
|
+
media_add_tag: "Schlagwort hinzufügen...",
|
|
1371
|
+
media_add: "Hinzufügen",
|
|
1372
|
+
media_save_changes: "Änderungen speichern",
|
|
1373
|
+
media_delete_asset: "Asset löschen?",
|
|
1374
|
+
media_delete_confirmation: 'Sind Sie sicher, dass Sie "{{name}}" löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.',
|
|
1375
|
+
media_file_too_large: "{{name}}: Datei ist zu groß (max. {{size}})",
|
|
1376
|
+
media_file_type_not_allowed: "{{name}}: Dateityp nicht zulässig",
|
|
1377
|
+
media_upload_failed: "Hochladen fehlgeschlagen",
|
|
1378
|
+
media_upload_files: "Dateien hochladen",
|
|
1379
|
+
media_drop_files: "Dateien hier ablegen oder zum Durchsuchen klicken",
|
|
1380
|
+
media_max_file_size: "Maximale Dateigröße: {{size}}",
|
|
1381
|
+
media_selected_files_count: "Ausgewählte Dateien ({{count}})",
|
|
1382
|
+
media_remove: "Entfernen",
|
|
1383
|
+
media_uploading: "Wird hochgeladen...",
|
|
1384
|
+
media_manage_description: "Verwalten Sie Ihre Mediendateien und Assets",
|
|
1385
|
+
media_assets_count: "{{count}} Assets"
|
|
1386
|
+
};
|
|
1387
|
+
const mediaManagerTranslationsFr = {
|
|
1388
|
+
media_library: "Médiathèque",
|
|
1389
|
+
media_library_description: "Gérer les images et les fichiers",
|
|
1390
|
+
media_search_assets: "Rechercher des éléments...",
|
|
1391
|
+
media_grid_view: "Vue en grille",
|
|
1392
|
+
media_list_view: "Vue en liste",
|
|
1393
|
+
media_refresh: "Rafraîchir",
|
|
1394
|
+
media_upload: "Télécharger",
|
|
1395
|
+
media_error_loading: "Erreur lors du chargement des éléments : {{message}}",
|
|
1396
|
+
media_try_again: "Réessayer",
|
|
1397
|
+
media_no_assets: "Pas encore d'éléments multimédias",
|
|
1398
|
+
media_upload_first_file: "Téléchargez votre premier fichier",
|
|
1399
|
+
media_asset_updated: "Élément mis à jour avec succès",
|
|
1400
|
+
media_error_updating: "Erreur lors de la mise à jour de l'élément : {{message}}",
|
|
1401
|
+
media_asset_deleted: "Élément supprimé avec succès",
|
|
1402
|
+
media_error_deleting: "Erreur lors de la suppression de l'élément : {{message}}",
|
|
1403
|
+
media_error_getting_url: "Erreur lors de l'obtention de l'URL de téléchargement",
|
|
1404
|
+
media_preview_not_available: "Aperçu non disponible",
|
|
1405
|
+
media_dimensions: "Dimensions",
|
|
1406
|
+
media_size: "Taille",
|
|
1407
|
+
media_type: "Type",
|
|
1408
|
+
media_created: "Créé",
|
|
1409
|
+
media_file_name: "Nom du fichier",
|
|
1410
|
+
media_title: "Titre",
|
|
1411
|
+
media_alt_text: "Texte alternatif",
|
|
1412
|
+
media_recommended_seo: "Recommandé pour le référencement (SEO)",
|
|
1413
|
+
media_caption: "Légende",
|
|
1414
|
+
media_tags: "Balises",
|
|
1415
|
+
media_add_tag: "Ajouter une balise...",
|
|
1416
|
+
media_add: "Ajouter",
|
|
1417
|
+
media_save_changes: "Enregistrer les modifications",
|
|
1418
|
+
media_delete_asset: "Supprimer l'élément ?",
|
|
1419
|
+
media_delete_confirmation: 'Êtes-vous sûr de vouloir supprimer "{{name}}" ? Cette action ne peut pas être annulée.',
|
|
1420
|
+
media_file_too_large: "{{name}} : Fichier trop volumineux (max {{size}})",
|
|
1421
|
+
media_file_type_not_allowed: "{{name}} : Type de fichier non autorisé",
|
|
1422
|
+
media_upload_failed: "Le téléchargement a échoué",
|
|
1423
|
+
media_upload_files: "Télécharger des fichiers",
|
|
1424
|
+
media_drop_files: "Déposez les fichiers ici ou cliquez pour parcourir",
|
|
1425
|
+
media_max_file_size: "Taille maximale du fichier : {{size}}",
|
|
1426
|
+
media_selected_files_count: "Fichiers sélectionnés ({{count}})",
|
|
1427
|
+
media_remove: "Retirer",
|
|
1428
|
+
media_uploading: "Téléchargement en cours...",
|
|
1429
|
+
media_manage_description: "Gérez vos fichiers et éléments multimédias",
|
|
1430
|
+
media_assets_count: "{{count}} éléments"
|
|
1431
|
+
};
|
|
1432
|
+
const mediaManagerTranslationsIt = {
|
|
1433
|
+
media_library: "Libreria multimediale",
|
|
1434
|
+
media_library_description: "Gestisci immagini e file",
|
|
1435
|
+
media_search_assets: "Cerca risorse...",
|
|
1436
|
+
media_grid_view: "Visualizzazione griglia",
|
|
1437
|
+
media_list_view: "Visualizzazione elenco",
|
|
1438
|
+
media_refresh: "Aggiorna",
|
|
1439
|
+
media_upload: "Carica",
|
|
1440
|
+
media_error_loading: "Errore durante il caricamento delle risorse: {{message}}",
|
|
1441
|
+
media_try_again: "Riprova",
|
|
1442
|
+
media_no_assets: "Nessuna risorsa multimediale ancora presente",
|
|
1443
|
+
media_upload_first_file: "Carica il tuo primo file",
|
|
1444
|
+
media_asset_updated: "Risorsa aggiornata con successo",
|
|
1445
|
+
media_error_updating: "Errore durante l'aggiornamento della risorsa: {{message}}",
|
|
1446
|
+
media_asset_deleted: "Risorsa eliminata con successo",
|
|
1447
|
+
media_error_deleting: "Errore durante l'eliminazione della risorsa: {{message}}",
|
|
1448
|
+
media_error_getting_url: "Errore durante il recupero dell'URL di download",
|
|
1449
|
+
media_preview_not_available: "Anteprima non disponibile",
|
|
1450
|
+
media_dimensions: "Dimensioni",
|
|
1451
|
+
media_size: "Dimensione",
|
|
1452
|
+
media_type: "Tipo",
|
|
1453
|
+
media_created: "Creato",
|
|
1454
|
+
media_file_name: "Nome file",
|
|
1455
|
+
media_title: "Titolo",
|
|
1456
|
+
media_alt_text: "Testo alternativo",
|
|
1457
|
+
media_recommended_seo: "Consigliato per la SEO",
|
|
1458
|
+
media_caption: "Didascalia",
|
|
1459
|
+
media_tags: "Tag",
|
|
1460
|
+
media_add_tag: "Aggiungi un tag...",
|
|
1461
|
+
media_add: "Aggiungi",
|
|
1462
|
+
media_save_changes: "Salva modifiche",
|
|
1463
|
+
media_delete_asset: "Elimina risorsa?",
|
|
1464
|
+
media_delete_confirmation: 'Sei sicuro di voler eliminare "{{name}}"? Questa azione non può essere annullata.',
|
|
1465
|
+
media_file_too_large: "{{name}}: File troppo grande (max {{size}})",
|
|
1466
|
+
media_file_type_not_allowed: "{{name}}: Tipo di file non consentito",
|
|
1467
|
+
media_upload_failed: "Caricamento fallito",
|
|
1468
|
+
media_upload_files: "Carica file",
|
|
1469
|
+
media_drop_files: "Rilascia i file qui o fai clic per sfogliare",
|
|
1470
|
+
media_max_file_size: "Dimensione massima del file: {{size}}",
|
|
1471
|
+
media_selected_files_count: "File selezionati ({{count}})",
|
|
1472
|
+
media_remove: "Rimuovi",
|
|
1473
|
+
media_uploading: "Caricamento in corso...",
|
|
1474
|
+
media_manage_description: "Gestisci i tuoi file e risorse multimediali",
|
|
1475
|
+
media_assets_count: "{{count}} risorse"
|
|
1476
|
+
};
|
|
1477
|
+
const mediaManagerTranslationsHi = {
|
|
1478
|
+
media_library: "मीडिया लाइब्रेरी",
|
|
1479
|
+
media_library_description: "चित्र और फ़ाइलें प्रबंधित करें",
|
|
1480
|
+
media_search_assets: "संपत्तियां खोजें...",
|
|
1481
|
+
media_grid_view: "ग्रिड दृश्य",
|
|
1482
|
+
media_list_view: "सूची दृश्य",
|
|
1483
|
+
media_refresh: "रीफ्रेश करें",
|
|
1484
|
+
media_upload: "अपलोड करें",
|
|
1485
|
+
media_error_loading: "संपत्तियों को लोड करने में त्रुटि: {{message}}",
|
|
1486
|
+
media_try_again: "पुनः प्रयास करें",
|
|
1487
|
+
media_no_assets: "अभी तक कोई मीडिया संपत्ति नहीं",
|
|
1488
|
+
media_upload_first_file: "अपनी पहली फ़ाइल अपलोड करें",
|
|
1489
|
+
media_asset_updated: "संपत्ति सफलतापूर्वक अपडेट की गई",
|
|
1490
|
+
media_error_updating: "संपत्ति को अपडेट करने में त्रुटि: {{message}}",
|
|
1491
|
+
media_asset_deleted: "संपत्ति सफलतापूर्वक हटा दी गई",
|
|
1492
|
+
media_error_deleting: "संपत्ति को हटाने में त्रुटि: {{message}}",
|
|
1493
|
+
media_error_getting_url: "डाउनलोड URL प्राप्त करने में त्रुटि",
|
|
1494
|
+
media_preview_not_available: "पूर्वावलोकन उपलब्ध नहीं है",
|
|
1495
|
+
media_dimensions: "आयाम",
|
|
1496
|
+
media_size: "आकार",
|
|
1497
|
+
media_type: "प्रकार",
|
|
1498
|
+
media_created: "बनाया गया",
|
|
1499
|
+
media_file_name: "फ़ाइल का नाम",
|
|
1500
|
+
media_title: "शीर्षक",
|
|
1501
|
+
media_alt_text: "वैकल्पिक पाठ",
|
|
1502
|
+
media_recommended_seo: "SEO के लिए अनुशंसित",
|
|
1503
|
+
media_caption: "कैप्शन",
|
|
1504
|
+
media_tags: "टैग",
|
|
1505
|
+
media_add_tag: "एक टैग जोड़ें...",
|
|
1506
|
+
media_add: "जोड़ें",
|
|
1507
|
+
media_save_changes: "परिवर्तन सहेजें",
|
|
1508
|
+
media_delete_asset: "संपत्ति हटाएं?",
|
|
1509
|
+
media_delete_confirmation: 'क्या आप निश्चित रूप से "{{name}}" को हटाना चाहते हैं? यह क्रिया पूर्ववत नहीं की जा सकती।',
|
|
1510
|
+
media_file_too_large: "{{name}}: फ़ाइल बहुत बड़ी है (अधिकतम {{size}})",
|
|
1511
|
+
media_file_type_not_allowed: "{{name}}: फ़ाइल प्रकार की अनुमति नहीं है",
|
|
1512
|
+
media_upload_failed: "अपलोड विफल रहा",
|
|
1513
|
+
media_upload_files: "फ़ाइलें अपलोड करें",
|
|
1514
|
+
media_drop_files: "फ़ाइलें यहाँ छोड़ें या ब्राउज़ करने के लिए क्लिक करें",
|
|
1515
|
+
media_max_file_size: "अधिकतम फ़ाइल आकार: {{size}}",
|
|
1516
|
+
media_selected_files_count: "चयनित फ़ाइलें ({{count}})",
|
|
1517
|
+
media_remove: "हटाएं",
|
|
1518
|
+
media_uploading: "अपलोड हो रहा है...",
|
|
1519
|
+
media_manage_description: "अपनी मीडिया फ़ाइलें और संपत्तियां प्रबंधित करें",
|
|
1520
|
+
media_assets_count: "{{count}} संपत्तियां"
|
|
1521
|
+
};
|
|
1522
|
+
const mediaManagerTranslationsPt = {
|
|
1523
|
+
media_library: "Biblioteca de Média",
|
|
1524
|
+
media_library_description: "Gerir imagens e ficheiros",
|
|
1525
|
+
media_search_assets: "Pesquisar recursos...",
|
|
1526
|
+
media_grid_view: "Vista em grelha",
|
|
1527
|
+
media_list_view: "Vista em lista",
|
|
1528
|
+
media_refresh: "Atualizar",
|
|
1529
|
+
media_upload: "Carregar",
|
|
1530
|
+
media_error_loading: "Erro ao carregar recursos: {{message}}",
|
|
1531
|
+
media_try_again: "Tentar Novamente",
|
|
1532
|
+
media_no_assets: "Ainda não há recursos de média",
|
|
1533
|
+
media_upload_first_file: "Carregue o seu primeiro ficheiro",
|
|
1534
|
+
media_asset_updated: "Recurso atualizado com sucesso",
|
|
1535
|
+
media_error_updating: "Erro ao atualizar recurso: {{message}}",
|
|
1536
|
+
media_asset_deleted: "Recurso eliminado com sucesso",
|
|
1537
|
+
media_error_deleting: "Erro ao eliminar recurso: {{message}}",
|
|
1538
|
+
media_error_getting_url: "Erro ao obter URL de download",
|
|
1539
|
+
media_preview_not_available: "Pré-visualização não disponível",
|
|
1540
|
+
media_dimensions: "Dimensões",
|
|
1541
|
+
media_size: "Tamanho",
|
|
1542
|
+
media_type: "Tipo",
|
|
1543
|
+
media_created: "Criado",
|
|
1544
|
+
media_file_name: "Nome do Ficheiro",
|
|
1545
|
+
media_title: "Título",
|
|
1546
|
+
media_alt_text: "Texto Alternativo",
|
|
1547
|
+
media_recommended_seo: "Recomendado para SEO",
|
|
1548
|
+
media_caption: "Legenda",
|
|
1549
|
+
media_tags: "Etiquetas",
|
|
1550
|
+
media_add_tag: "Adicionar uma etiqueta...",
|
|
1551
|
+
media_add: "Adicionar",
|
|
1552
|
+
media_save_changes: "Guardar Alterações",
|
|
1553
|
+
media_delete_asset: "Eliminar Recurso?",
|
|
1554
|
+
media_delete_confirmation: 'Tem a certeza de que quer eliminar "{{name}}"? Esta ação não pode ser desfeita.',
|
|
1555
|
+
media_file_too_large: "{{name}}: Ficheiro demasiado grande (máx {{size}})",
|
|
1556
|
+
media_file_type_not_allowed: "{{name}}: Tipo de ficheiro não permitido",
|
|
1557
|
+
media_upload_failed: "Falha no carregamento",
|
|
1558
|
+
media_upload_files: "Carregar Ficheiros",
|
|
1559
|
+
media_drop_files: "Solte ficheiros aqui ou clique para navegar",
|
|
1560
|
+
media_max_file_size: "Tamanho máximo de ficheiro: {{size}}",
|
|
1561
|
+
media_selected_files_count: "Ficheiros selecionados ({{count}})",
|
|
1562
|
+
media_remove: "Remover",
|
|
1563
|
+
media_uploading: "A carregar...",
|
|
1564
|
+
media_manage_description: "Gerir os seus ficheiros e recursos de média",
|
|
1565
|
+
media_assets_count: "{{count}} recursos"
|
|
1566
|
+
};
|
|
1152
1567
|
const DEFAULT_STORAGE_PATH = "media";
|
|
1153
1568
|
const DEFAULT_COLLECTION_PATH = "media_assets";
|
|
1154
1569
|
const MediaManagerConfigContext = createContext(null);
|
|
@@ -1211,29 +1626,41 @@ function buildMediaView() {
|
|
|
1211
1626
|
return {
|
|
1212
1627
|
path: "media",
|
|
1213
1628
|
name: "Media Library",
|
|
1214
|
-
description: "Manage your media files
|
|
1629
|
+
description: "Manage your media files",
|
|
1215
1630
|
group: "Media",
|
|
1216
1631
|
icon: "perm_media",
|
|
1217
1632
|
view: /* @__PURE__ */ jsx(MediaLibraryViewInternal, {})
|
|
1218
1633
|
};
|
|
1219
1634
|
}
|
|
1220
|
-
const MEDIA_VIEW = buildMediaView();
|
|
1221
1635
|
function useMediaManagerPlugin(props) {
|
|
1636
|
+
const mediaView = useMemo(() => buildMediaView(), []);
|
|
1222
1637
|
return useMemo(() => ({
|
|
1223
1638
|
key: "media_manager",
|
|
1224
|
-
views: [
|
|
1639
|
+
views: [mediaView],
|
|
1225
1640
|
provider: {
|
|
1226
1641
|
Component: ({
|
|
1227
1642
|
children
|
|
1228
1643
|
}) => /* @__PURE__ */ jsx(MediaManagerConfigContext.Provider, { value: props, children })
|
|
1644
|
+
},
|
|
1645
|
+
i18n: {
|
|
1646
|
+
en: mediaManagerTranslationsEn,
|
|
1647
|
+
es: mediaManagerTranslationsEs,
|
|
1648
|
+
de: mediaManagerTranslationsDe,
|
|
1649
|
+
fr: mediaManagerTranslationsFr,
|
|
1650
|
+
it: mediaManagerTranslationsIt,
|
|
1651
|
+
hi: mediaManagerTranslationsHi,
|
|
1652
|
+
pt: mediaManagerTranslationsPt
|
|
1229
1653
|
}
|
|
1230
1654
|
}), []);
|
|
1231
1655
|
}
|
|
1232
1656
|
function MediaLibraryCard(t0) {
|
|
1233
|
-
const $ = c(
|
|
1657
|
+
const $ = c(13);
|
|
1234
1658
|
const {
|
|
1235
1659
|
group
|
|
1236
1660
|
} = t0;
|
|
1661
|
+
const {
|
|
1662
|
+
t
|
|
1663
|
+
} = useTranslation();
|
|
1237
1664
|
if (group !== "Media") {
|
|
1238
1665
|
return null;
|
|
1239
1666
|
}
|
|
@@ -1252,19 +1679,53 @@ function MediaLibraryCard(t0) {
|
|
|
1252
1679
|
t2 = $[1];
|
|
1253
1680
|
}
|
|
1254
1681
|
let t3;
|
|
1255
|
-
if ($[2]
|
|
1256
|
-
t3 =
|
|
1682
|
+
if ($[2] !== t) {
|
|
1683
|
+
t3 = t("media_library");
|
|
1684
|
+
$[2] = t;
|
|
1685
|
+
$[3] = t3;
|
|
1686
|
+
} else {
|
|
1687
|
+
t3 = $[3];
|
|
1688
|
+
}
|
|
1689
|
+
let t4;
|
|
1690
|
+
if ($[4] !== t3) {
|
|
1691
|
+
t4 = /* @__PURE__ */ jsx(Typography, { variant: "subtitle2", className: "font-medium", children: t3 });
|
|
1692
|
+
$[4] = t3;
|
|
1693
|
+
$[5] = t4;
|
|
1694
|
+
} else {
|
|
1695
|
+
t4 = $[5];
|
|
1696
|
+
}
|
|
1697
|
+
let t5;
|
|
1698
|
+
if ($[6] !== t) {
|
|
1699
|
+
t5 = t("media_library_description");
|
|
1700
|
+
$[6] = t;
|
|
1701
|
+
$[7] = t5;
|
|
1702
|
+
} else {
|
|
1703
|
+
t5 = $[7];
|
|
1704
|
+
}
|
|
1705
|
+
let t6;
|
|
1706
|
+
if ($[8] !== t5) {
|
|
1707
|
+
t6 = /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-surface-accent-600 dark:text-surface-accent-400", children: t5 });
|
|
1708
|
+
$[8] = t5;
|
|
1709
|
+
$[9] = t6;
|
|
1710
|
+
} else {
|
|
1711
|
+
t6 = $[9];
|
|
1712
|
+
}
|
|
1713
|
+
let t7;
|
|
1714
|
+
if ($[10] !== t4 || $[11] !== t6) {
|
|
1715
|
+
t7 = /* @__PURE__ */ jsx(Link, { to: "/media", className: "no-underline", children: /* @__PURE__ */ jsx(Card, { className: t1, children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
1257
1716
|
t2,
|
|
1258
1717
|
/* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
1259
|
-
|
|
1260
|
-
|
|
1718
|
+
t4,
|
|
1719
|
+
t6
|
|
1261
1720
|
] })
|
|
1262
1721
|
] }) }) });
|
|
1263
|
-
$[
|
|
1722
|
+
$[10] = t4;
|
|
1723
|
+
$[11] = t6;
|
|
1724
|
+
$[12] = t7;
|
|
1264
1725
|
} else {
|
|
1265
|
-
|
|
1726
|
+
t7 = $[12];
|
|
1266
1727
|
}
|
|
1267
|
-
return
|
|
1728
|
+
return t7;
|
|
1268
1729
|
}
|
|
1269
1730
|
export {
|
|
1270
1731
|
MediaAssetCard,
|