@anzusystems/common-admin 2.0.0-rc.7 → 2.0.0-rc.9
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/AnzuSystemsCommonAdmin.d.ts +9 -0
- package/dist/AnzuSystemsCommonAdmin.js.map +1 -1
- package/dist/common-admin.css +1 -1
- package/dist/common-admin.js +170 -169
- package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.vue.d.ts +5 -1
- package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.vue_vue_type_script_setup_true_lang.js +94 -67
- package/dist/domains/dam/assetDetail/components/AssetFileInfoPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetImage.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetImage.vue.d.ts +7 -0
- package/dist/domains/dam/assetDetail/components/AssetImage.vue_vue_type_script_setup_true_lang.js +27 -13
- package/dist/domains/dam/assetDetail/components/AssetImage.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.vue.d.ts +7 -0
- package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.vue_vue_type_script_setup_true_lang.js +56 -28
- package/dist/domains/dam/assetDetail/components/AssetImageMetaIcons.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetMetadata.js.map +1 -1
- package/dist/domains/dam/assetDetail/components/AssetMetadata.vue_vue_type_script_setup_true_lang.js +107 -89
- package/dist/domains/dam/assetDetail/components/AssetMetadata.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetDetail/composables/autoDeleteTimeLeft.d.ts +9 -0
- package/dist/domains/dam/assetDetail/composables/autoDeleteTimeLeft.js +18 -0
- package/dist/domains/dam/assetDetail/composables/autoDeleteTimeLeft.js.map +1 -0
- package/dist/domains/dam/assetDetail/store/assetDetailStore.d.ts +4 -2
- package/dist/domains/dam/assetSelect/components/AAssetListInner.vue.d.ts +4 -2
- package/dist/domains/dam/assetSelect/components/AAssetSelect.vue.d.ts +2 -1
- package/dist/domains/dam/assetSelect/components/AssetImagePreview.js.map +1 -1
- package/dist/domains/dam/assetSelect/components/AssetImagePreview.vue.d.ts +3 -0
- package/dist/domains/dam/assetSelect/components/AssetImagePreview.vue_vue_type_script_setup_true_lang.js +16 -5
- package/dist/domains/dam/assetSelect/components/AssetImagePreview.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetSelect/components/AssetSelectTableRowItem.js.map +1 -1
- package/dist/domains/dam/assetSelect/components/AssetSelectTableRowItem.vue_vue_type_script_setup_true_lang.js +8 -3
- package/dist/domains/dam/assetSelect/components/AssetSelectTableRowItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetSelect/components/AssetSelectTilesItem.js.map +1 -1
- package/dist/domains/dam/assetSelect/components/AssetSelectTilesItem.vue_vue_type_script_setup_true_lang.js +5 -3
- package/dist/domains/dam/assetSelect/components/AssetSelectTilesItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/domains/dam/assetSelect/composables/assetSelectItemActions.d.ts +2 -0
- package/dist/domains/dam/assetSelect/composables/assetSelectItemActions.js +37 -31
- package/dist/domains/dam/assetSelect/composables/assetSelectItemActions.js.map +1 -1
- package/dist/domains/dam/assetSelect/composables/assetSelectListActions.d.ts +4 -2
- package/dist/domains/dam/assetSelect/store/assetSelectStore.d.ts +8 -4
- package/dist/domains/dam/composables/commonAdminCoreDamOptions.d.ts +3 -0
- package/dist/domains/dam/composables/commonAdminCoreDamOptions.js +3 -0
- package/dist/domains/dam/composables/commonAdminCoreDamOptions.js.map +1 -1
- package/dist/domains/dam/cropper/store/imageRoiStore.d.ts +2 -2
- package/dist/domains/dam/imageWidget/components/ImageWidgetInner.vue.d.ts +2 -1
- package/dist/domains/dam/imageWidget/components/ImageWidgetMultipleInner.vue.d.ts +2 -1
- package/dist/domains/dam/imageWidget/composables/imageDialogDamAuthors.d.ts +2 -1
- package/dist/domains/dam/types/Asset.d.ts +3 -1
- package/dist/domains/dam/types/Asset.js.map +1 -1
- package/dist/domains/dam/types/AssetFile.d.ts +1 -1
- package/dist/domains/dam/types/AssetFile.js.map +1 -1
- package/dist/domains/dam/types/AssetLicence.d.ts +7 -0
- package/dist/domains/dam/user/api/assetLicenceApi.d.ts +2 -1
- package/dist/domains/dam/user/api/assetLicenceApi.js +4 -4
- package/dist/domains/dam/user/api/assetLicenceApi.js.map +1 -1
- package/dist/domains/dam/user/composables/cachedAssetLicences.d.ts +17 -0
- package/dist/domains/dam/user/composables/cachedAssetLicences.js +35 -0
- package/dist/domains/dam/user/composables/cachedAssetLicences.js.map +1 -0
- package/dist/lib.d.ts +3 -2
- package/dist/locales/cs/common/damImage.js +29 -0
- package/dist/locales/cs/common/damImage.js.map +1 -1
- package/dist/locales/cs.d.ts +3 -0
- package/dist/locales/en/common/damImage.js +29 -0
- package/dist/locales/en/common/damImage.js.map +1 -1
- package/dist/locales/en.d.ts +3 -0
- package/dist/locales/sk/common/damImage.js +29 -0
- package/dist/locales/sk/common/damImage.js.map +1 -1
- package/dist/locales/sk.d.ts +3 -0
- package/dist/plugins/i18n.d.ts +3 -0
- package/package.json +2 -2
- package/src/e2e/routeWalk.d.mts +2 -1
- package/src/e2e/routeWalk.mjs +37 -26
|
@@ -1,114 +1,141 @@
|
|
|
1
1
|
import { dateTimePretty as e } from "../../../../shared/utils/datetime.js";
|
|
2
|
-
import t from "../../../cached/components/
|
|
3
|
-
import n from "../../../
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import l from "
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
2
|
+
import t from "../../../cached/components/ACachedChip.js";
|
|
3
|
+
import n from "../../../cached/components/ACachedUserChip.js";
|
|
4
|
+
import r from "../../../ui/components/ACopyText.js";
|
|
5
|
+
import { DamAssetType as i, DamAssetTypeDefault as a } from "../../types/Asset.js";
|
|
6
|
+
import { useDamConfigName as o } from "../../composables/damConfigName.js";
|
|
7
|
+
import { useDamCachedUsers as s } from "../../author/composables/cachedUsers.js";
|
|
8
|
+
import { useDamCachedAssetLicences as c } from "../../user/composables/cachedAssetLicences.js";
|
|
9
|
+
import { prettyBytes as l } from "../../../../shared/utils/file.js";
|
|
10
|
+
import { assetFileIsImageFile as u } from "../../types/AssetFile.js";
|
|
11
|
+
import d from "./AssetMetadataImageAttributes.js";
|
|
12
|
+
import { Fragment as f, computed as p, createBlock as m, createCommentVNode as h, createElementBlock as g, createElementVNode as _, createTextVNode as v, createVNode as y, defineComponent as b, openBlock as x, toDisplayString as S, unref as C, watch as w, withCtx as T } from "vue";
|
|
13
|
+
import { useI18n as E } from "vue-i18n";
|
|
14
|
+
import { VCol as D, VRow as O } from "vuetify/components/VGrid";
|
|
15
|
+
import { VExpansionPanel as k, VExpansionPanelText as A } from "vuetify/components/VExpansionPanel";
|
|
14
16
|
// src/domains/dam/assetDetail/components/AssetFileInfoPanel.vue?vue&type=script&setup=true&lang.ts
|
|
15
|
-
var
|
|
17
|
+
var j = /*@__PURE__*/ b({
|
|
16
18
|
__name: "AssetFileInfoPanel",
|
|
17
19
|
props: {
|
|
18
20
|
asset: {},
|
|
19
|
-
showUsers: { type: Boolean }
|
|
21
|
+
showUsers: { type: Boolean },
|
|
22
|
+
showLicence: {
|
|
23
|
+
type: Boolean,
|
|
24
|
+
default: !1
|
|
25
|
+
}
|
|
20
26
|
},
|
|
21
|
-
setup(
|
|
22
|
-
let
|
|
23
|
-
return (
|
|
27
|
+
setup(b) {
|
|
28
|
+
let j = b, { t: M } = E(), N = p(() => (j.asset.attributes.assetType || a) === i.Image), P = o(), { getCachedUser: F } = s(P), { addToCachedAssetLicences: I, fetchCachedAssetLicences: L, getCachedAssetLicence: R } = c(P);
|
|
29
|
+
return w([() => j.showLicence, () => j.asset.licence], ([e, t]) => {
|
|
30
|
+
e && (I(t), L());
|
|
31
|
+
}, { immediate: !0 }), (i, a) => (x(), m(k, {
|
|
24
32
|
elevation: "0",
|
|
25
|
-
title:
|
|
33
|
+
title: C(M)("common.damImage.asset.detail.info.file"),
|
|
26
34
|
value: "file"
|
|
27
35
|
}, {
|
|
28
|
-
default:
|
|
29
|
-
default:
|
|
30
|
-
|
|
31
|
-
default:
|
|
32
|
-
default:
|
|
36
|
+
default: T(() => [y(A, { class: "text-body-small" }, {
|
|
37
|
+
default: T(() => [
|
|
38
|
+
y(O, null, {
|
|
39
|
+
default: T(() => [y(D, { cols: "3" }, {
|
|
40
|
+
default: T(() => [v(S(C(M)("common.damImage.asset.detail.info.field.id")), 1)]),
|
|
33
41
|
_: 1
|
|
34
|
-
}),
|
|
35
|
-
default:
|
|
42
|
+
}), y(D, { cols: "9" }, {
|
|
43
|
+
default: T(() => [y(r, { value: b.asset.id }, null, 8, ["value"])]),
|
|
36
44
|
_: 1
|
|
37
45
|
})]),
|
|
38
46
|
_: 1
|
|
39
47
|
}),
|
|
40
|
-
|
|
41
|
-
default:
|
|
42
|
-
default:
|
|
48
|
+
y(O, null, {
|
|
49
|
+
default: T(() => [y(D, { cols: "3" }, {
|
|
50
|
+
default: T(() => [v(S(C(M)("common.damImage.asset.detail.info.field.type")), 1)]),
|
|
43
51
|
_: 1
|
|
44
|
-
}),
|
|
45
|
-
default:
|
|
52
|
+
}), y(D, { cols: "9" }, {
|
|
53
|
+
default: T(() => [v(S(b.asset.attributes.assetType), 1)]),
|
|
46
54
|
_: 1
|
|
47
55
|
})]),
|
|
48
56
|
_: 1
|
|
49
57
|
}),
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
58
|
+
b.showLicence ? (x(), m(O, {
|
|
59
|
+
key: 0,
|
|
60
|
+
"data-cy": "asset-licence"
|
|
61
|
+
}, {
|
|
62
|
+
default: T(() => [y(D, { cols: "3" }, {
|
|
63
|
+
default: T(() => [v(S(C(M)("common.damImage.asset.detail.info.field.licence")), 1)]),
|
|
53
64
|
_: 1
|
|
54
|
-
}),
|
|
55
|
-
default:
|
|
56
|
-
id:
|
|
57
|
-
"get-cached-fn":
|
|
58
|
-
|
|
65
|
+
}), y(D, { cols: "9" }, {
|
|
66
|
+
default: T(() => [y(t, {
|
|
67
|
+
id: b.asset.licence,
|
|
68
|
+
"get-cached-fn": C(R),
|
|
69
|
+
"display-text-path": "name",
|
|
70
|
+
route: "",
|
|
71
|
+
"disable-click": ""
|
|
72
|
+
}, null, 8, ["id", "get-cached-fn"])]),
|
|
73
|
+
_: 1
|
|
74
|
+
})]),
|
|
75
|
+
_: 1
|
|
76
|
+
})) : h("", !0),
|
|
77
|
+
y(O, null, {
|
|
78
|
+
default: T(() => [y(D, { cols: "3" }, {
|
|
79
|
+
default: T(() => [v(S(C(M)("common.model.tracking.created")), 1)]),
|
|
80
|
+
_: 1
|
|
81
|
+
}), y(D, { cols: "9" }, {
|
|
82
|
+
default: T(() => [v(S(C(e)(b.asset.createdAt)) + " ", 1), b.showUsers ? (x(), g(f, { key: 0 }, [a[0] ||= _("br", null, null, -1), y(n, {
|
|
83
|
+
id: b.asset.createdBy,
|
|
84
|
+
"get-cached-fn": C(F)
|
|
85
|
+
}, null, 8, ["id", "get-cached-fn"])], 64)) : h("", !0)]),
|
|
59
86
|
_: 1
|
|
60
87
|
})]),
|
|
61
88
|
_: 1
|
|
62
89
|
}),
|
|
63
|
-
|
|
64
|
-
default:
|
|
65
|
-
default:
|
|
90
|
+
y(O, null, {
|
|
91
|
+
default: T(() => [y(D, { cols: "3" }, {
|
|
92
|
+
default: T(() => [v(S(C(M)("common.model.tracking.modified")), 1)]),
|
|
66
93
|
_: 1
|
|
67
|
-
}),
|
|
68
|
-
default:
|
|
69
|
-
id:
|
|
70
|
-
"get-cached-fn":
|
|
71
|
-
}, null, 8, ["id", "get-cached-fn"])], 64)) :
|
|
94
|
+
}), y(D, { cols: "9" }, {
|
|
95
|
+
default: T(() => [v(S(C(e)(b.asset.modifiedAt)) + " ", 1), b.showUsers ? (x(), g(f, { key: 0 }, [a[1] ||= _("br", null, null, -1), y(n, {
|
|
96
|
+
id: b.asset.modifiedBy,
|
|
97
|
+
"get-cached-fn": C(F)
|
|
98
|
+
}, null, 8, ["id", "get-cached-fn"])], 64)) : h("", !0)]),
|
|
72
99
|
_: 1
|
|
73
100
|
})]),
|
|
74
101
|
_: 1
|
|
75
102
|
}),
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
default:
|
|
79
|
-
default:
|
|
103
|
+
b.asset.mainFile ? (x(), g(f, { key: 1 }, [
|
|
104
|
+
y(O, null, {
|
|
105
|
+
default: T(() => [y(D, { cols: "3" }, {
|
|
106
|
+
default: T(() => [v(S(C(M)("common.damImage.asset.detail.info.field.mainFileId")), 1)]),
|
|
80
107
|
_: 1
|
|
81
|
-
}),
|
|
82
|
-
default:
|
|
108
|
+
}), y(D, { cols: "9" }, {
|
|
109
|
+
default: T(() => [y(r, { value: b.asset.mainFile.id }, null, 8, ["value"])]),
|
|
83
110
|
_: 1
|
|
84
111
|
})]),
|
|
85
112
|
_: 1
|
|
86
113
|
}),
|
|
87
|
-
|
|
88
|
-
default:
|
|
89
|
-
default:
|
|
114
|
+
y(O, null, {
|
|
115
|
+
default: T(() => [y(D, { cols: "3" }, {
|
|
116
|
+
default: T(() => [v(S(C(M)("common.damImage.asset.detail.info.field.mimeType")), 1)]),
|
|
90
117
|
_: 1
|
|
91
|
-
}),
|
|
92
|
-
default:
|
|
118
|
+
}), y(D, { cols: "9" }, {
|
|
119
|
+
default: T(() => [v(S(b.asset.mainFile.fileAttributes.mimeType), 1)]),
|
|
93
120
|
_: 1
|
|
94
121
|
})]),
|
|
95
122
|
_: 1
|
|
96
123
|
}),
|
|
97
|
-
|
|
98
|
-
default:
|
|
99
|
-
default:
|
|
124
|
+
y(O, null, {
|
|
125
|
+
default: T(() => [y(D, { cols: "3" }, {
|
|
126
|
+
default: T(() => [v(S(C(M)("common.damImage.asset.detail.info.field.size")), 1)]),
|
|
100
127
|
_: 1
|
|
101
|
-
}),
|
|
102
|
-
default:
|
|
128
|
+
}), y(D, { cols: "9" }, {
|
|
129
|
+
default: T(() => [v(S(C(l)(b.asset.mainFile.fileAttributes.size)), 1)]),
|
|
103
130
|
_: 1
|
|
104
131
|
})]),
|
|
105
132
|
_: 1
|
|
106
133
|
}),
|
|
107
|
-
|
|
134
|
+
N.value && C(u)(b.asset.mainFile) ? (x(), m(d, {
|
|
108
135
|
key: 0,
|
|
109
|
-
file:
|
|
110
|
-
}, null, 8, ["file"])) :
|
|
111
|
-
], 64)) :
|
|
136
|
+
file: b.asset.mainFile
|
|
137
|
+
}, null, 8, ["file"])) : h("", !0)
|
|
138
|
+
], 64)) : h("", !0)
|
|
112
139
|
]),
|
|
113
140
|
_: 1
|
|
114
141
|
})]),
|
|
@@ -116,6 +143,6 @@ var O = /*@__PURE__*/ v({
|
|
|
116
143
|
}, 8, ["title"]));
|
|
117
144
|
}
|
|
118
145
|
});
|
|
119
|
-
export {
|
|
146
|
+
export { j as default };
|
|
120
147
|
|
|
121
148
|
//# sourceMappingURL=AssetFileInfoPanel.vue_vue_type_script_setup_true_lang.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetFileInfoPanel.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_component_VExpansionPanel","_unref","_withCtx","_createVNode","_component_VExpansionPanelText","_component_VRow","_component_VCol","_createTextVNode","_toDisplayString","ACopyText","_createElementBlock","_Fragment","_createElementVNode","ACachedUserChip","
|
|
1
|
+
{"version":3,"file":"AssetFileInfoPanel.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_component_VExpansionPanel","_unref","_withCtx","_createVNode","_component_VExpansionPanelText","_component_VRow","_component_VCol","_createTextVNode","_toDisplayString","ACopyText","ACachedChip","_createCommentVNode","_createElementBlock","_Fragment","_createElementVNode","ACachedUserChip","AssetMetadataImageAttributes","ACachedChip_default","ACachedUserChip_default","ACopyText_default","AssetMetadataImageAttributes_default","AssetFileInfoPanel_vue_vue_type_script_setup_true_lang_default","props","__props","useI18n","isTypeImage","computed","DamAssetTypeDefault","DamAssetType","damConfigName","useDamConfigName","useDamCachedUsers","useDamCachedAssetLicences","watch","showLicence","licence","addToCachedAssetLicences","fetchCachedAssetLicences","openBlock","createBlock","VExpansionPanel","unref","t","withCtx","createVNode","VExpansionPanelText","VRow","VCol","createTextVNode","toDisplayString","getCachedAssetLicence","createCommentVNode","dateTimePretty","createElementBlock","Fragment","_cache","createElementVNode","getCachedUser","prettyBytes","assetFileIsImageFile"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetFileInfoPanel.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { type AssetDetailItemDto, DamAssetType, DamAssetTypeDefault } from '@/domains/dam/types/Asset'\nimport { assetFileIsImageFile } from '@/domains/dam/types/AssetFile'\nimport ACopyText from '@/domains/ui/components/ACopyText.vue'\nimport { prettyBytes } from '@/shared/utils/file'\nimport AssetMetadataImageAttributes from '@/domains/dam/assetDetail/components/AssetMetadataImageAttributes.vue'\nimport { dateTimePretty } from '@/shared/utils/datetime'\nimport ACachedUserChip from '@/domains/cached/components/ACachedUserChip.vue'\nimport { useDamCachedUsers } from '@/domains/dam/author/composables/cachedUsers'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\nimport ACachedChip from '@/domains/cached/components/ACachedChip.vue'\nimport { useDamCachedAssetLicences } from '@/domains/dam/user/composables/cachedAssetLicences'\n\n// \"File\" metadata panel of the asset detail and the single-upload dialog.\n// It sets no overflow-wrap itself. The detail passes `style=\"overflow-wrap: normal\"`, which falls through to the root.\n\nconst props = withDefaults(\n defineProps<{\n asset: AssetDetailItemDto\n /** Shows creator and last modifier chips. */\n showUsers: boolean\n /** Shows the asset's licence. */\n showLicence?: boolean\n }>(),\n {\n showLicence: false,\n }\n)\n\nconst { t } = useI18n()\n\nconst isTypeImage = computed(() => (props.asset.attributes.assetType || DamAssetTypeDefault) === DamAssetType.Image)\n\nconst damConfigName = useDamConfigName()\nconst { getCachedUser } = useDamCachedUsers(damConfigName)\n\nconst { addToCachedAssetLicences, fetchCachedAssetLicences, getCachedAssetLicence } =\n useDamCachedAssetLicences(damConfigName)\nwatch(\n [() => props.showLicence, () => props.asset.licence],\n ([showLicence, licence]) => {\n if (!showLicence) return\n addToCachedAssetLicences(licence)\n fetchCachedAssetLicences()\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <VExpansionPanel\n elevation=\"0\"\n :title=\"t('common.damImage.asset.detail.info.file')\"\n value=\"file\"\n >\n <VExpansionPanelText class=\"text-body-small\">\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.id') }}\n </VCol>\n <VCol cols=\"9\">\n <ACopyText :value=\"asset.id\" />\n </VCol>\n </VRow>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.type') }}\n </VCol>\n <VCol cols=\"9\">\n {{ asset.attributes.assetType }}\n </VCol>\n </VRow>\n <VRow\n v-if=\"showLicence\"\n data-cy=\"asset-licence\"\n >\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.licence') }}\n </VCol>\n <VCol cols=\"9\">\n <ACachedChip\n :id=\"asset.licence\"\n :get-cached-fn=\"getCachedAssetLicence\"\n display-text-path=\"name\"\n route=\"\"\n disable-click\n />\n </VCol>\n </VRow>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.model.tracking.created') }}\n </VCol>\n <VCol cols=\"9\">\n {{ dateTimePretty(asset.createdAt) }}\n <template v-if=\"showUsers\">\n <br />\n <ACachedUserChip\n :id=\"asset.createdBy\"\n :get-cached-fn=\"getCachedUser\"\n />\n </template>\n </VCol>\n </VRow>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.model.tracking.modified') }}\n </VCol>\n <VCol cols=\"9\">\n {{ dateTimePretty(asset.modifiedAt) }}\n <template v-if=\"showUsers\">\n <br />\n <ACachedUserChip\n :id=\"asset.modifiedBy\"\n :get-cached-fn=\"getCachedUser\"\n />\n </template>\n </VCol>\n </VRow>\n <template v-if=\"asset.mainFile\">\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.mainFileId') }}\n </VCol>\n <VCol cols=\"9\">\n <ACopyText :value=\"asset.mainFile.id\" />\n </VCol>\n </VRow>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.mimeType') }}\n </VCol>\n <VCol cols=\"9\">\n {{ asset.mainFile.fileAttributes.mimeType }}\n </VCol>\n </VRow>\n <VRow>\n <VCol cols=\"3\">\n {{ t('common.damImage.asset.detail.info.field.size') }}\n </VCol>\n <VCol cols=\"9\">\n {{ prettyBytes(asset.mainFile.fileAttributes.size) }}\n </VCol>\n </VRow>\n <AssetMetadataImageAttributes\n v-if=\"isTypeImage && assetFileIsImageFile(asset.mainFile)\"\n :file=\"asset.mainFile\"\n />\n </template>\n </VExpansionPanelText>\n </VExpansionPanel>\n</template>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetImage.js","names":["_sfc_main","AssetImage_vue_vue_type_script_setup_true_lang_default","AssetImage_default"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetImage.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport placeholder16x9 from '@/assets/image/placeholder16x9.svg'\nimport {\n type AssetFileProperties,\n DamAssetStatus,\n type DamAssetStatusType,\n DamAssetType,\n type DamAssetTypeType,\n} from '@/domains/dam/types/Asset'\nimport { isUndefined } from '@/shared/utils/common'\nimport { useRemainingTime } from '@/domains/ui/datetime/composables/remainingTime'\nimport AssetImageMetaIcons from '@/domains/dam/assetDetail/components/AssetImageMetaIcons.vue'\n\nconst props = withDefaults(\n defineProps<{\n src?: string\n assetType?: DamAssetTypeType\n assetStatus?: DamAssetStatusType\n backgroundColor?: string\n width?: number\n height?: number\n fallbackHeight?: number\n iconSize?: number\n useComponent?: boolean\n cover?: boolean\n aspectRatio?: number\n showUploading?: boolean\n showProcessing?: boolean\n showWaiting?: boolean\n showDone?: boolean\n uploadingColor?: string\n processingColor?: string\n disableProcessingText?: boolean\n uploadingProgress?: number | null\n remainingTime?: number | null\n hideIcon?: boolean\n showMetaIcons?: boolean\n assetFileProperties?: AssetFileProperties | undefined\n /** Passed to the meta icons: shows the synthesized audio (TTS) icon. */\n showTts?: boolean\n }>(),\n {\n assetType: DamAssetType.Image,\n assetStatus: DamAssetStatus.WithFile,\n src: undefined,\n backgroundColor: '#ccc',\n width: undefined,\n height: undefined,\n fallbackHeight: 200,\n iconSize: 80,\n useComponent: false,\n cover: false,\n aspectRatio: undefined,\n showUploading: false,\n showProcessing: false,\n showWaiting: false,\n showDone: false,\n uploadingColor: 'primary',\n processingColor: 'primary',\n disableProcessingText: false,\n uploadingProgress: null,\n remainingTime: null,\n hideIcon: false,\n showMetaIcons: false,\n assetFileProperties: undefined,\n showTts: false,\n }\n)\nconst emit = defineEmits<{\n (e: 'load'): void\n (e: 'error'): void\n}>()\n\nconst { t } = useI18n()\n\nconst onLoad = () => {\n emit('load')\n}\nconst onError = () => {\n emit('error')\n}\n\nconst icon = computed(() => {\n if (props.assetStatus === DamAssetStatus.Deleting) return 'mdi-trash-can'\n switch (props.assetType) {\n case DamAssetType.Audio:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-music' : 'mdi-music-off'\n case DamAssetType.Document:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-note' : 'mdi-note-off'\n case DamAssetType.Video:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-video' : 'mdi-video-off'\n case DamAssetType.Image:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-image' : 'mdi-image-off'\n default:\n return ''\n }\n})\n\nconst uploadingPercentage = computed(() => {\n if (!props.uploadingProgress) return '0%'\n const value = Math.ceil(props.uploadingProgress)\n return value > 100 ? '100%' : value + '%'\n})\n\nconst backgroundColorComputed = computed(() => {\n const grayBackgroundStatuses: readonly DamAssetStatusType[] = [DamAssetStatus.Deleting, DamAssetStatus.Draft]\n return grayBackgroundStatuses.includes(props.assetStatus) ? '#ccc' : props.backgroundColor\n})\n\nconst iconColor = computed(() => {\n return props.assetStatus === DamAssetStatus.WithFile ? '#505050' : '#8f8f8f'\n})\n\nconst srcComputed = computed(() => {\n return isUndefined(props.src) ? placeholder16x9 : props.src\n})\n\nconst showIconComputed = computed(() => {\n if (props.hideIcon) return false\n else if (props.assetType === DamAssetType.Image && props.src) return false\n return true\n})\n\nconst { remainingTimeShort } = useRemainingTime()\n</script>\n\n<template>\n <VImg\n v-if=\"showUploading || showProcessing || showWaiting\"\n :aspect-ratio=\"aspectRatio\"\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n :cover=\"cover\"\n class=\"asset-image asset-image--loading-bg\"\n @error=\"onError\"\n @load=\"onLoad\"\n >\n <template #placeholder />\n <template #default>\n <div\n v-if=\"showWaiting\"\n class=\"asset-image__progress\"\n >\n <VProgressCircular\n indeterminate\n :size=\"iconSize\"\n :width=\"iconSize / 10\"\n />\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.waiting') }}\n </div>\n </div>\n <div\n v-if=\"showProcessing\"\n class=\"asset-image__progress\"\n >\n <VProgressCircular\n :color=\"processingColor\"\n indeterminate\n :size=\"iconSize\"\n :width=\"iconSize / 10\"\n class=\"ml-auto mr-auto\"\n />\n <div\n v-if=\"!disableProcessingText\"\n class=\"text-body-small text-center\"\n >\n {{ t('common.damImage.upload.processing') }}\n </div>\n </div>\n <div\n v-else-if=\"showUploading\"\n class=\"asset-image__progress\"\n >\n <VProgressCircular\n :color=\"uploadingColor\"\n :size=\"iconSize\"\n :width=\"iconSize / 10\"\n class=\"ml-auto mr-auto\"\n :model-value=\"uploadingProgress === null ? undefined : uploadingProgress\"\n >\n {{ uploadingPercentage }}\n </VProgressCircular>\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.uploading') }}\n <span\n v-if=\"remainingTime\"\n class=\"font-weight-bold\"\n >\n {{ remainingTimeShort(remainingTime) }}\n </span>\n </div>\n </div>\n </template>\n </VImg>\n <VImg\n v-else-if=\"assetStatus === DamAssetStatus.WithFile && src && useComponent\"\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n class=\"asset-image asset-image--component position-relative\"\n :cover=\"cover\"\n :aspect-ratio=\"aspectRatio\"\n @load=\"onLoad\"\n @error=\"onError\"\n >\n <template #placeholder />\n <template #default>\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n />\n </div>\n </div>\n <div\n v-if=\"showDone\"\n class=\"asset-image__progress asset-image__progress--animate-done\"\n >\n <VIcon\n icon=\"mdi-check-circle\"\n color=\"success\"\n :size=\"iconSize\"\n />\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.done') }}\n </div>\n </div>\n <AssetImageMetaIcons\n v-if=\"showMetaIcons && assetFileProperties\"\n :asset-file-properties=\"assetFileProperties\"\n :asset-type=\"assetType\"\n :show-tts=\"showTts\"\n />\n </template>\n </VImg>\n <div\n v-else-if=\"assetStatus === DamAssetStatus.WithFile && src\"\n class=\"asset-image asset-image--img position-relative\"\n >\n <img\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n alt=\"\"\n :style=\"'background-color:' + backgroundColorComputed\"\n @onerror=\"onError\"\n />\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n class=\"asset-image__icon\"\n />\n </div>\n </div>\n <AssetImageMetaIcons\n v-if=\"showMetaIcons && assetFileProperties\"\n :asset-file-properties=\"assetFileProperties\"\n :asset-type=\"assetType\"\n :show-tts=\"showTts\"\n />\n </div>\n <div\n v-else\n :style=\"{\n height: fallbackHeight + 'px',\n backgroundColor: backgroundColorComputed,\n width: width + 'px',\n }\"\n class=\"asset-image asset-image--placeholder d-flex align-center justify-center\"\n >\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n class=\"asset-image__icon\"\n />\n </div>\n </div>\n <div\n v-if=\"showDone\"\n class=\"asset-image__progress asset-image__progress--animate-done\"\n >\n <VIcon\n icon=\"mdi-check-circle\"\n color=\"success\"\n :size=\"iconSize\"\n />\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.done') }}\n </div>\n </div>\n <AssetImageMetaIcons\n v-if=\"showMetaIcons && assetFileProperties\"\n :asset-file-properties=\"assetFileProperties\"\n :asset-type=\"assetType\"\n :show-tts=\"showTts\"\n />\n </div>\n</template>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"AssetImage.js","names":["_sfc_main","AssetImage_vue_vue_type_script_setup_true_lang_default","AssetImage_default"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetImage.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport placeholder16x9 from '@/assets/image/placeholder16x9.svg'\nimport {\n type AssetFileProperties,\n DamAssetStatus,\n type DamAssetStatusType,\n DamAssetType,\n type DamAssetTypeType,\n} from '@/domains/dam/types/Asset'\nimport type { DatetimeUTCNullable } from '@/shared/types/common'\nimport { isUndefined } from '@/shared/utils/common'\nimport { useRemainingTime } from '@/domains/ui/datetime/composables/remainingTime'\nimport AssetImageMetaIcons from '@/domains/dam/assetDetail/components/AssetImageMetaIcons.vue'\n\nconst props = withDefaults(\n defineProps<{\n src?: string\n assetType?: DamAssetTypeType\n assetStatus?: DamAssetStatusType\n backgroundColor?: string\n width?: number\n height?: number\n fallbackHeight?: number\n iconSize?: number\n useComponent?: boolean\n cover?: boolean\n aspectRatio?: number\n showUploading?: boolean\n showProcessing?: boolean\n showWaiting?: boolean\n showDone?: boolean\n uploadingColor?: string\n processingColor?: string\n disableProcessingText?: boolean\n uploadingProgress?: number | null\n remainingTime?: number | null\n hideIcon?: boolean\n showMetaIcons?: boolean\n assetFileProperties?: AssetFileProperties | undefined\n /** Passed to the meta icons: shows the synthesized audio (TTS) icon. */\n showTts?: boolean\n /** Passed to the meta icons: shows the badge of the automatic deletion. */\n autoDeleteAt?: DatetimeUTCNullable\n /** Passed to the meta icons: the badge of the asset's licence. */\n licenceBadge?: string\n }>(),\n {\n assetType: DamAssetType.Image,\n assetStatus: DamAssetStatus.WithFile,\n src: undefined,\n backgroundColor: '#ccc',\n width: undefined,\n height: undefined,\n fallbackHeight: 200,\n iconSize: 80,\n useComponent: false,\n cover: false,\n aspectRatio: undefined,\n showUploading: false,\n showProcessing: false,\n showWaiting: false,\n showDone: false,\n uploadingColor: 'primary',\n processingColor: 'primary',\n disableProcessingText: false,\n uploadingProgress: null,\n remainingTime: null,\n hideIcon: false,\n showMetaIcons: false,\n assetFileProperties: undefined,\n showTts: false,\n autoDeleteAt: null,\n licenceBadge: '',\n }\n)\nconst emit = defineEmits<{\n (e: 'load'): void\n (e: 'error'): void\n}>()\n\nconst { t } = useI18n()\n\nconst onLoad = () => {\n emit('load')\n}\nconst onError = () => {\n emit('error')\n}\n\nconst icon = computed(() => {\n if (props.assetStatus === DamAssetStatus.Deleting) return 'mdi-trash-can'\n switch (props.assetType) {\n case DamAssetType.Audio:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-music' : 'mdi-music-off'\n case DamAssetType.Document:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-note' : 'mdi-note-off'\n case DamAssetType.Video:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-video' : 'mdi-video-off'\n case DamAssetType.Image:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-image' : 'mdi-image-off'\n default:\n return ''\n }\n})\n\nconst uploadingPercentage = computed(() => {\n if (!props.uploadingProgress) return '0%'\n const value = Math.ceil(props.uploadingProgress)\n return value > 100 ? '100%' : value + '%'\n})\n\nconst backgroundColorComputed = computed(() => {\n const grayBackgroundStatuses: readonly DamAssetStatusType[] = [DamAssetStatus.Deleting, DamAssetStatus.Draft]\n return grayBackgroundStatuses.includes(props.assetStatus) ? '#ccc' : props.backgroundColor\n})\n\nconst iconColor = computed(() => {\n return props.assetStatus === DamAssetStatus.WithFile ? '#505050' : '#8f8f8f'\n})\n\nconst srcComputed = computed(() => {\n return isUndefined(props.src) ? placeholder16x9 : props.src\n})\n\nconst showIconComputed = computed(() => {\n if (props.hideIcon) return false\n else if (props.assetType === DamAssetType.Image && props.src) return false\n return true\n})\n\nconst { remainingTimeShort } = useRemainingTime()\n</script>\n\n<template>\n <VImg\n v-if=\"showUploading || showProcessing || showWaiting\"\n :aspect-ratio=\"aspectRatio\"\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n :cover=\"cover\"\n class=\"asset-image asset-image--loading-bg\"\n @error=\"onError\"\n @load=\"onLoad\"\n >\n <template #placeholder />\n <template #default>\n <div\n v-if=\"showWaiting\"\n class=\"asset-image__progress\"\n >\n <VProgressCircular\n indeterminate\n :size=\"iconSize\"\n :width=\"iconSize / 10\"\n />\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.waiting') }}\n </div>\n </div>\n <div\n v-if=\"showProcessing\"\n class=\"asset-image__progress\"\n >\n <VProgressCircular\n :color=\"processingColor\"\n indeterminate\n :size=\"iconSize\"\n :width=\"iconSize / 10\"\n class=\"ml-auto mr-auto\"\n />\n <div\n v-if=\"!disableProcessingText\"\n class=\"text-body-small text-center\"\n >\n {{ t('common.damImage.upload.processing') }}\n </div>\n </div>\n <div\n v-else-if=\"showUploading\"\n class=\"asset-image__progress\"\n >\n <VProgressCircular\n :color=\"uploadingColor\"\n :size=\"iconSize\"\n :width=\"iconSize / 10\"\n class=\"ml-auto mr-auto\"\n :model-value=\"uploadingProgress === null ? undefined : uploadingProgress\"\n >\n {{ uploadingPercentage }}\n </VProgressCircular>\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.uploading') }}\n <span\n v-if=\"remainingTime\"\n class=\"font-weight-bold\"\n >\n {{ remainingTimeShort(remainingTime) }}\n </span>\n </div>\n </div>\n </template>\n </VImg>\n <VImg\n v-else-if=\"assetStatus === DamAssetStatus.WithFile && src && useComponent\"\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n class=\"asset-image asset-image--component position-relative\"\n :cover=\"cover\"\n :aspect-ratio=\"aspectRatio\"\n @load=\"onLoad\"\n @error=\"onError\"\n >\n <template #placeholder />\n <template #default>\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n />\n </div>\n </div>\n <div\n v-if=\"showDone\"\n class=\"asset-image__progress asset-image__progress--animate-done\"\n >\n <VIcon\n icon=\"mdi-check-circle\"\n color=\"success\"\n :size=\"iconSize\"\n />\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.done') }}\n </div>\n </div>\n <AssetImageMetaIcons\n v-if=\"showMetaIcons && assetFileProperties\"\n :asset-file-properties=\"assetFileProperties\"\n :asset-type=\"assetType\"\n :show-tts=\"showTts\"\n :auto-delete-at=\"autoDeleteAt\"\n :licence-badge=\"licenceBadge\"\n />\n </template>\n </VImg>\n <div\n v-else-if=\"assetStatus === DamAssetStatus.WithFile && src\"\n class=\"asset-image asset-image--img position-relative\"\n >\n <img\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n alt=\"\"\n :style=\"'background-color:' + backgroundColorComputed\"\n @onerror=\"onError\"\n />\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n class=\"asset-image__icon\"\n />\n </div>\n </div>\n <AssetImageMetaIcons\n v-if=\"showMetaIcons && assetFileProperties\"\n :asset-file-properties=\"assetFileProperties\"\n :asset-type=\"assetType\"\n :show-tts=\"showTts\"\n :auto-delete-at=\"autoDeleteAt\"\n :licence-badge=\"licenceBadge\"\n />\n </div>\n <div\n v-else\n :style=\"{\n height: fallbackHeight + 'px',\n backgroundColor: backgroundColorComputed,\n width: width + 'px',\n }\"\n class=\"asset-image asset-image--placeholder d-flex align-center justify-center\"\n >\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n class=\"asset-image__icon\"\n />\n </div>\n </div>\n <div\n v-if=\"showDone\"\n class=\"asset-image__progress asset-image__progress--animate-done\"\n >\n <VIcon\n icon=\"mdi-check-circle\"\n color=\"success\"\n :size=\"iconSize\"\n />\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.done') }}\n </div>\n </div>\n <AssetImageMetaIcons\n v-if=\"showMetaIcons && assetFileProperties\"\n :asset-file-properties=\"assetFileProperties\"\n :asset-type=\"assetType\"\n :show-tts=\"showTts\"\n :auto-delete-at=\"autoDeleteAt\"\n :licence-badge=\"licenceBadge\"\n />\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AssetFileProperties, DamAssetStatusType, DamAssetTypeType } from '../../types/Asset';
|
|
2
|
+
import { DatetimeUTCNullable } from '../../../../shared/types/common';
|
|
2
3
|
type __VLS_Props = {
|
|
3
4
|
src?: string;
|
|
4
5
|
assetType?: DamAssetTypeType;
|
|
@@ -25,6 +26,10 @@ type __VLS_Props = {
|
|
|
25
26
|
assetFileProperties?: AssetFileProperties | undefined;
|
|
26
27
|
/** Passed to the meta icons: shows the synthesized audio (TTS) icon. */
|
|
27
28
|
showTts?: boolean;
|
|
29
|
+
/** Passed to the meta icons: shows the badge of the automatic deletion. */
|
|
30
|
+
autoDeleteAt?: DatetimeUTCNullable;
|
|
31
|
+
/** Passed to the meta icons: the badge of the asset's licence. */
|
|
32
|
+
licenceBadge?: string;
|
|
28
33
|
};
|
|
29
34
|
declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
30
35
|
error: () => any;
|
|
@@ -36,11 +41,13 @@ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {
|
|
|
36
41
|
assetType: DamAssetTypeType;
|
|
37
42
|
width: number;
|
|
38
43
|
height: number;
|
|
44
|
+
autoDeleteAt: DatetimeUTCNullable;
|
|
39
45
|
iconSize: number;
|
|
40
46
|
src: string;
|
|
41
47
|
assetFileProperties: AssetFileProperties;
|
|
42
48
|
assetStatus: DamAssetStatusType;
|
|
43
49
|
showTts: boolean;
|
|
50
|
+
licenceBadge: string;
|
|
44
51
|
backgroundColor: string;
|
|
45
52
|
fallbackHeight: number;
|
|
46
53
|
showMetaIcons: boolean;
|
package/dist/domains/dam/assetDetail/components/AssetImage.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { isUndefined as e } from "../../../../shared/utils/common.js";
|
|
2
2
|
import { DamAssetStatus as t, DamAssetType as n } from "../../types/Asset.js";
|
|
3
3
|
import r from "../../../../assets/image/placeholder16x9.js";
|
|
4
|
-
import i from "
|
|
5
|
-
import
|
|
4
|
+
import { useRemainingTime as i } from "../../../ui/datetime/composables/remainingTime.js";
|
|
5
|
+
import a from "./AssetImageMetaIcons.js";
|
|
6
6
|
import { computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, normalizeStyle as m, openBlock as h, toDisplayString as g, unref as _, withCtx as v } from "vue";
|
|
7
7
|
import { useI18n as y } from "vue-i18n";
|
|
8
8
|
import { VIcon as b } from "vuetify/components/VIcon";
|
|
@@ -102,7 +102,9 @@ var C = {
|
|
|
102
102
|
showTts: {
|
|
103
103
|
type: Boolean,
|
|
104
104
|
default: !1
|
|
105
|
-
}
|
|
105
|
+
},
|
|
106
|
+
autoDeleteAt: { default: null },
|
|
107
|
+
licenceBadge: { default: "" }
|
|
106
108
|
},
|
|
107
109
|
emits: ["load", "error"],
|
|
108
110
|
setup(p, { emit: z }) {
|
|
@@ -123,7 +125,7 @@ var C = {
|
|
|
123
125
|
if (!B.uploadingProgress) return "0%";
|
|
124
126
|
let e = Math.ceil(B.uploadingProgress);
|
|
125
127
|
return e > 100 ? "100%" : e + "%";
|
|
126
|
-
}), q = o(() => [t.Deleting, t.Draft].includes(B.assetStatus) ? "#ccc" : B.backgroundColor), J = o(() => B.assetStatus === t.WithFile ? "#505050" : "#8f8f8f"), Y = o(() => e(B.src) ? r : B.src), X = o(() => !(B.hideIcon || B.assetType === n.Image && B.src)), { remainingTimeShort: Z } =
|
|
128
|
+
}), q = o(() => [t.Deleting, t.Draft].includes(B.assetStatus) ? "#ccc" : B.backgroundColor), J = o(() => B.assetStatus === t.WithFile ? "#505050" : "#8f8f8f"), Y = o(() => e(B.src) ? r : B.src), X = o(() => !(B.hideIcon || B.assetType === n.Image && B.src)), { remainingTimeShort: Z } = i();
|
|
127
129
|
return (e, n) => p.showUploading || p.showProcessing || p.showWaiting ? (h(), s(S, {
|
|
128
130
|
key: 0,
|
|
129
131
|
"aspect-ratio": p.aspectRatio,
|
|
@@ -203,15 +205,19 @@ var C = {
|
|
|
203
205
|
color: "success",
|
|
204
206
|
size: p.iconSize
|
|
205
207
|
}, null, 8, ["size"]), u("div", M, g(_(H)("common.damImage.upload.done")), 1)])) : c("", !0),
|
|
206
|
-
p.showMetaIcons && p.assetFileProperties ? (h(), s(
|
|
208
|
+
p.showMetaIcons && p.assetFileProperties ? (h(), s(a, {
|
|
207
209
|
key: 2,
|
|
208
210
|
"asset-file-properties": p.assetFileProperties,
|
|
209
211
|
"asset-type": p.assetType,
|
|
210
|
-
"show-tts": p.showTts
|
|
212
|
+
"show-tts": p.showTts,
|
|
213
|
+
"auto-delete-at": p.autoDeleteAt,
|
|
214
|
+
"licence-badge": p.licenceBadge
|
|
211
215
|
}, null, 8, [
|
|
212
216
|
"asset-file-properties",
|
|
213
217
|
"asset-type",
|
|
214
|
-
"show-tts"
|
|
218
|
+
"show-tts",
|
|
219
|
+
"auto-delete-at",
|
|
220
|
+
"licence-badge"
|
|
215
221
|
])) : c("", !0)
|
|
216
222
|
]),
|
|
217
223
|
_: 1
|
|
@@ -244,15 +250,19 @@ var C = {
|
|
|
244
250
|
"icon",
|
|
245
251
|
"color"
|
|
246
252
|
])) : c("", !0)], 4)])) : c("", !0),
|
|
247
|
-
p.showMetaIcons && p.assetFileProperties ? (h(), s(
|
|
253
|
+
p.showMetaIcons && p.assetFileProperties ? (h(), s(a, {
|
|
248
254
|
key: 1,
|
|
249
255
|
"asset-file-properties": p.assetFileProperties,
|
|
250
256
|
"asset-type": p.assetType,
|
|
251
|
-
"show-tts": p.showTts
|
|
257
|
+
"show-tts": p.showTts,
|
|
258
|
+
"auto-delete-at": p.autoDeleteAt,
|
|
259
|
+
"licence-badge": p.licenceBadge
|
|
252
260
|
}, null, 8, [
|
|
253
261
|
"asset-file-properties",
|
|
254
262
|
"asset-type",
|
|
255
|
-
"show-tts"
|
|
263
|
+
"show-tts",
|
|
264
|
+
"auto-delete-at",
|
|
265
|
+
"licence-badge"
|
|
256
266
|
])) : c("", !0)
|
|
257
267
|
])) : (h(), l("div", {
|
|
258
268
|
key: 3,
|
|
@@ -282,15 +292,19 @@ var C = {
|
|
|
282
292
|
color: "success",
|
|
283
293
|
size: p.iconSize
|
|
284
294
|
}, null, 8, ["size"]), u("div", R, g(_(H)("common.damImage.upload.done")), 1)])) : c("", !0),
|
|
285
|
-
p.showMetaIcons && p.assetFileProperties ? (h(), s(
|
|
295
|
+
p.showMetaIcons && p.assetFileProperties ? (h(), s(a, {
|
|
286
296
|
key: 2,
|
|
287
297
|
"asset-file-properties": p.assetFileProperties,
|
|
288
298
|
"asset-type": p.assetType,
|
|
289
|
-
"show-tts": p.showTts
|
|
299
|
+
"show-tts": p.showTts,
|
|
300
|
+
"auto-delete-at": p.autoDeleteAt,
|
|
301
|
+
"licence-badge": p.licenceBadge
|
|
290
302
|
}, null, 8, [
|
|
291
303
|
"asset-file-properties",
|
|
292
304
|
"asset-type",
|
|
293
|
-
"show-tts"
|
|
305
|
+
"show-tts",
|
|
306
|
+
"auto-delete-at",
|
|
307
|
+
"licence-badge"
|
|
294
308
|
])) : c("", !0)
|
|
295
309
|
], 4));
|
|
296
310
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetImage.vue_vue_type_script_setup_true_lang.js","names":["placeholder16x9","_openBlock","_createBlock","_component_VImg","_withCtx","_createElementBlock","_createVNode","_component_VProgressCircular","_createElementVNode","_toDisplayString","_unref","_createCommentVNode","_createTextVNode","_normalizeStyle","_component_VIcon","AssetImageMetaIcons","placeholder16x9_default","AssetImageMetaIcons_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","AssetImage_vue_vue_type_script_setup_true_lang_default","DamAssetType","DamAssetStatus","__emit","props","__props","emit","useI18n","onLoad","onError","icon","computed","uploadingPercentage","value","backgroundColorComputed","iconColor","srcComputed","isUndefined","showIconComputed","useRemainingTime","openBlock","createBlock","VImg","withCtx","_cache","createElementBlock","createVNode","VProgressCircular","createElementVNode","toDisplayString","unref","t","createCommentVNode","createTextVNode","remainingTimeShort","normalizeStyle","VIcon"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetImage.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport placeholder16x9 from '@/assets/image/placeholder16x9.svg'\nimport {\n type AssetFileProperties,\n DamAssetStatus,\n type DamAssetStatusType,\n DamAssetType,\n type DamAssetTypeType,\n} from '@/domains/dam/types/Asset'\nimport { isUndefined } from '@/shared/utils/common'\nimport { useRemainingTime } from '@/domains/ui/datetime/composables/remainingTime'\nimport AssetImageMetaIcons from '@/domains/dam/assetDetail/components/AssetImageMetaIcons.vue'\n\nconst props = withDefaults(\n defineProps<{\n src?: string\n assetType?: DamAssetTypeType\n assetStatus?: DamAssetStatusType\n backgroundColor?: string\n width?: number\n height?: number\n fallbackHeight?: number\n iconSize?: number\n useComponent?: boolean\n cover?: boolean\n aspectRatio?: number\n showUploading?: boolean\n showProcessing?: boolean\n showWaiting?: boolean\n showDone?: boolean\n uploadingColor?: string\n processingColor?: string\n disableProcessingText?: boolean\n uploadingProgress?: number | null\n remainingTime?: number | null\n hideIcon?: boolean\n showMetaIcons?: boolean\n assetFileProperties?: AssetFileProperties | undefined\n /** Passed to the meta icons: shows the synthesized audio (TTS) icon. */\n showTts?: boolean\n }>(),\n {\n assetType: DamAssetType.Image,\n assetStatus: DamAssetStatus.WithFile,\n src: undefined,\n backgroundColor: '#ccc',\n width: undefined,\n height: undefined,\n fallbackHeight: 200,\n iconSize: 80,\n useComponent: false,\n cover: false,\n aspectRatio: undefined,\n showUploading: false,\n showProcessing: false,\n showWaiting: false,\n showDone: false,\n uploadingColor: 'primary',\n processingColor: 'primary',\n disableProcessingText: false,\n uploadingProgress: null,\n remainingTime: null,\n hideIcon: false,\n showMetaIcons: false,\n assetFileProperties: undefined,\n showTts: false,\n }\n)\nconst emit = defineEmits<{\n (e: 'load'): void\n (e: 'error'): void\n}>()\n\nconst { t } = useI18n()\n\nconst onLoad = () => {\n emit('load')\n}\nconst onError = () => {\n emit('error')\n}\n\nconst icon = computed(() => {\n if (props.assetStatus === DamAssetStatus.Deleting) return 'mdi-trash-can'\n switch (props.assetType) {\n case DamAssetType.Audio:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-music' : 'mdi-music-off'\n case DamAssetType.Document:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-note' : 'mdi-note-off'\n case DamAssetType.Video:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-video' : 'mdi-video-off'\n case DamAssetType.Image:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-image' : 'mdi-image-off'\n default:\n return ''\n }\n})\n\nconst uploadingPercentage = computed(() => {\n if (!props.uploadingProgress) return '0%'\n const value = Math.ceil(props.uploadingProgress)\n return value > 100 ? '100%' : value + '%'\n})\n\nconst backgroundColorComputed = computed(() => {\n const grayBackgroundStatuses: readonly DamAssetStatusType[] = [DamAssetStatus.Deleting, DamAssetStatus.Draft]\n return grayBackgroundStatuses.includes(props.assetStatus) ? '#ccc' : props.backgroundColor\n})\n\nconst iconColor = computed(() => {\n return props.assetStatus === DamAssetStatus.WithFile ? '#505050' : '#8f8f8f'\n})\n\nconst srcComputed = computed(() => {\n return isUndefined(props.src) ? placeholder16x9 : props.src\n})\n\nconst showIconComputed = computed(() => {\n if (props.hideIcon) return false\n else if (props.assetType === DamAssetType.Image && props.src) return false\n return true\n})\n\nconst { remainingTimeShort } = useRemainingTime()\n</script>\n\n<template>\n <VImg\n v-if=\"showUploading || showProcessing || showWaiting\"\n :aspect-ratio=\"aspectRatio\"\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n :cover=\"cover\"\n class=\"asset-image asset-image--loading-bg\"\n @error=\"onError\"\n @load=\"onLoad\"\n >\n <template #placeholder />\n <template #default>\n <div\n v-if=\"showWaiting\"\n class=\"asset-image__progress\"\n >\n <VProgressCircular\n indeterminate\n :size=\"iconSize\"\n :width=\"iconSize / 10\"\n />\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.waiting') }}\n </div>\n </div>\n <div\n v-if=\"showProcessing\"\n class=\"asset-image__progress\"\n >\n <VProgressCircular\n :color=\"processingColor\"\n indeterminate\n :size=\"iconSize\"\n :width=\"iconSize / 10\"\n class=\"ml-auto mr-auto\"\n />\n <div\n v-if=\"!disableProcessingText\"\n class=\"text-body-small text-center\"\n >\n {{ t('common.damImage.upload.processing') }}\n </div>\n </div>\n <div\n v-else-if=\"showUploading\"\n class=\"asset-image__progress\"\n >\n <VProgressCircular\n :color=\"uploadingColor\"\n :size=\"iconSize\"\n :width=\"iconSize / 10\"\n class=\"ml-auto mr-auto\"\n :model-value=\"uploadingProgress === null ? undefined : uploadingProgress\"\n >\n {{ uploadingPercentage }}\n </VProgressCircular>\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.uploading') }}\n <span\n v-if=\"remainingTime\"\n class=\"font-weight-bold\"\n >\n {{ remainingTimeShort(remainingTime) }}\n </span>\n </div>\n </div>\n </template>\n </VImg>\n <VImg\n v-else-if=\"assetStatus === DamAssetStatus.WithFile && src && useComponent\"\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n class=\"asset-image asset-image--component position-relative\"\n :cover=\"cover\"\n :aspect-ratio=\"aspectRatio\"\n @load=\"onLoad\"\n @error=\"onError\"\n >\n <template #placeholder />\n <template #default>\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n />\n </div>\n </div>\n <div\n v-if=\"showDone\"\n class=\"asset-image__progress asset-image__progress--animate-done\"\n >\n <VIcon\n icon=\"mdi-check-circle\"\n color=\"success\"\n :size=\"iconSize\"\n />\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.done') }}\n </div>\n </div>\n <AssetImageMetaIcons\n v-if=\"showMetaIcons && assetFileProperties\"\n :asset-file-properties=\"assetFileProperties\"\n :asset-type=\"assetType\"\n :show-tts=\"showTts\"\n />\n </template>\n </VImg>\n <div\n v-else-if=\"assetStatus === DamAssetStatus.WithFile && src\"\n class=\"asset-image asset-image--img position-relative\"\n >\n <img\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n alt=\"\"\n :style=\"'background-color:' + backgroundColorComputed\"\n @onerror=\"onError\"\n />\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n class=\"asset-image__icon\"\n />\n </div>\n </div>\n <AssetImageMetaIcons\n v-if=\"showMetaIcons && assetFileProperties\"\n :asset-file-properties=\"assetFileProperties\"\n :asset-type=\"assetType\"\n :show-tts=\"showTts\"\n />\n </div>\n <div\n v-else\n :style=\"{\n height: fallbackHeight + 'px',\n backgroundColor: backgroundColorComputed,\n width: width + 'px',\n }\"\n class=\"asset-image asset-image--placeholder d-flex align-center justify-center\"\n >\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n class=\"asset-image__icon\"\n />\n </div>\n </div>\n <div\n v-if=\"showDone\"\n class=\"asset-image__progress asset-image__progress--animate-done\"\n >\n <VIcon\n icon=\"mdi-check-circle\"\n color=\"success\"\n :size=\"iconSize\"\n />\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.done') }}\n </div>\n </div>\n <AssetImageMetaIcons\n v-if=\"showMetaIcons && assetFileProperties\"\n :asset-file-properties=\"assetFileProperties\"\n :asset-type=\"assetType\"\n :show-tts=\"showTts\"\n />\n </div>\n</template>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AssetImage.vue_vue_type_script_setup_true_lang.js","names":["placeholder16x9","_openBlock","_createBlock","_component_VImg","_withCtx","_createElementBlock","_createVNode","_component_VProgressCircular","_createElementVNode","_toDisplayString","_unref","_createCommentVNode","_createTextVNode","_normalizeStyle","_component_VIcon","AssetImageMetaIcons","placeholder16x9_default","AssetImageMetaIcons_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","AssetImage_vue_vue_type_script_setup_true_lang_default","DamAssetType","DamAssetStatus","__emit","props","__props","emit","useI18n","onLoad","onError","icon","computed","uploadingPercentage","value","backgroundColorComputed","iconColor","srcComputed","isUndefined","showIconComputed","useRemainingTime","openBlock","createBlock","VImg","withCtx","_cache","createElementBlock","createVNode","VProgressCircular","createElementVNode","toDisplayString","unref","t","createCommentVNode","createTextVNode","remainingTimeShort","normalizeStyle","VIcon"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetImage.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport placeholder16x9 from '@/assets/image/placeholder16x9.svg'\nimport {\n type AssetFileProperties,\n DamAssetStatus,\n type DamAssetStatusType,\n DamAssetType,\n type DamAssetTypeType,\n} from '@/domains/dam/types/Asset'\nimport type { DatetimeUTCNullable } from '@/shared/types/common'\nimport { isUndefined } from '@/shared/utils/common'\nimport { useRemainingTime } from '@/domains/ui/datetime/composables/remainingTime'\nimport AssetImageMetaIcons from '@/domains/dam/assetDetail/components/AssetImageMetaIcons.vue'\n\nconst props = withDefaults(\n defineProps<{\n src?: string\n assetType?: DamAssetTypeType\n assetStatus?: DamAssetStatusType\n backgroundColor?: string\n width?: number\n height?: number\n fallbackHeight?: number\n iconSize?: number\n useComponent?: boolean\n cover?: boolean\n aspectRatio?: number\n showUploading?: boolean\n showProcessing?: boolean\n showWaiting?: boolean\n showDone?: boolean\n uploadingColor?: string\n processingColor?: string\n disableProcessingText?: boolean\n uploadingProgress?: number | null\n remainingTime?: number | null\n hideIcon?: boolean\n showMetaIcons?: boolean\n assetFileProperties?: AssetFileProperties | undefined\n /** Passed to the meta icons: shows the synthesized audio (TTS) icon. */\n showTts?: boolean\n /** Passed to the meta icons: shows the badge of the automatic deletion. */\n autoDeleteAt?: DatetimeUTCNullable\n /** Passed to the meta icons: the badge of the asset's licence. */\n licenceBadge?: string\n }>(),\n {\n assetType: DamAssetType.Image,\n assetStatus: DamAssetStatus.WithFile,\n src: undefined,\n backgroundColor: '#ccc',\n width: undefined,\n height: undefined,\n fallbackHeight: 200,\n iconSize: 80,\n useComponent: false,\n cover: false,\n aspectRatio: undefined,\n showUploading: false,\n showProcessing: false,\n showWaiting: false,\n showDone: false,\n uploadingColor: 'primary',\n processingColor: 'primary',\n disableProcessingText: false,\n uploadingProgress: null,\n remainingTime: null,\n hideIcon: false,\n showMetaIcons: false,\n assetFileProperties: undefined,\n showTts: false,\n autoDeleteAt: null,\n licenceBadge: '',\n }\n)\nconst emit = defineEmits<{\n (e: 'load'): void\n (e: 'error'): void\n}>()\n\nconst { t } = useI18n()\n\nconst onLoad = () => {\n emit('load')\n}\nconst onError = () => {\n emit('error')\n}\n\nconst icon = computed(() => {\n if (props.assetStatus === DamAssetStatus.Deleting) return 'mdi-trash-can'\n switch (props.assetType) {\n case DamAssetType.Audio:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-music' : 'mdi-music-off'\n case DamAssetType.Document:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-note' : 'mdi-note-off'\n case DamAssetType.Video:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-video' : 'mdi-video-off'\n case DamAssetType.Image:\n return props.assetStatus === DamAssetStatus.WithFile ? 'mdi-image' : 'mdi-image-off'\n default:\n return ''\n }\n})\n\nconst uploadingPercentage = computed(() => {\n if (!props.uploadingProgress) return '0%'\n const value = Math.ceil(props.uploadingProgress)\n return value > 100 ? '100%' : value + '%'\n})\n\nconst backgroundColorComputed = computed(() => {\n const grayBackgroundStatuses: readonly DamAssetStatusType[] = [DamAssetStatus.Deleting, DamAssetStatus.Draft]\n return grayBackgroundStatuses.includes(props.assetStatus) ? '#ccc' : props.backgroundColor\n})\n\nconst iconColor = computed(() => {\n return props.assetStatus === DamAssetStatus.WithFile ? '#505050' : '#8f8f8f'\n})\n\nconst srcComputed = computed(() => {\n return isUndefined(props.src) ? placeholder16x9 : props.src\n})\n\nconst showIconComputed = computed(() => {\n if (props.hideIcon) return false\n else if (props.assetType === DamAssetType.Image && props.src) return false\n return true\n})\n\nconst { remainingTimeShort } = useRemainingTime()\n</script>\n\n<template>\n <VImg\n v-if=\"showUploading || showProcessing || showWaiting\"\n :aspect-ratio=\"aspectRatio\"\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n :cover=\"cover\"\n class=\"asset-image asset-image--loading-bg\"\n @error=\"onError\"\n @load=\"onLoad\"\n >\n <template #placeholder />\n <template #default>\n <div\n v-if=\"showWaiting\"\n class=\"asset-image__progress\"\n >\n <VProgressCircular\n indeterminate\n :size=\"iconSize\"\n :width=\"iconSize / 10\"\n />\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.waiting') }}\n </div>\n </div>\n <div\n v-if=\"showProcessing\"\n class=\"asset-image__progress\"\n >\n <VProgressCircular\n :color=\"processingColor\"\n indeterminate\n :size=\"iconSize\"\n :width=\"iconSize / 10\"\n class=\"ml-auto mr-auto\"\n />\n <div\n v-if=\"!disableProcessingText\"\n class=\"text-body-small text-center\"\n >\n {{ t('common.damImage.upload.processing') }}\n </div>\n </div>\n <div\n v-else-if=\"showUploading\"\n class=\"asset-image__progress\"\n >\n <VProgressCircular\n :color=\"uploadingColor\"\n :size=\"iconSize\"\n :width=\"iconSize / 10\"\n class=\"ml-auto mr-auto\"\n :model-value=\"uploadingProgress === null ? undefined : uploadingProgress\"\n >\n {{ uploadingPercentage }}\n </VProgressCircular>\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.uploading') }}\n <span\n v-if=\"remainingTime\"\n class=\"font-weight-bold\"\n >\n {{ remainingTimeShort(remainingTime) }}\n </span>\n </div>\n </div>\n </template>\n </VImg>\n <VImg\n v-else-if=\"assetStatus === DamAssetStatus.WithFile && src && useComponent\"\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n class=\"asset-image asset-image--component position-relative\"\n :cover=\"cover\"\n :aspect-ratio=\"aspectRatio\"\n @load=\"onLoad\"\n @error=\"onError\"\n >\n <template #placeholder />\n <template #default>\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n />\n </div>\n </div>\n <div\n v-if=\"showDone\"\n class=\"asset-image__progress asset-image__progress--animate-done\"\n >\n <VIcon\n icon=\"mdi-check-circle\"\n color=\"success\"\n :size=\"iconSize\"\n />\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.done') }}\n </div>\n </div>\n <AssetImageMetaIcons\n v-if=\"showMetaIcons && assetFileProperties\"\n :asset-file-properties=\"assetFileProperties\"\n :asset-type=\"assetType\"\n :show-tts=\"showTts\"\n :auto-delete-at=\"autoDeleteAt\"\n :licence-badge=\"licenceBadge\"\n />\n </template>\n </VImg>\n <div\n v-else-if=\"assetStatus === DamAssetStatus.WithFile && src\"\n class=\"asset-image asset-image--img position-relative\"\n >\n <img\n :src=\"srcComputed\"\n :width=\"width\"\n :height=\"height\"\n alt=\"\"\n :style=\"'background-color:' + backgroundColorComputed\"\n @onerror=\"onError\"\n />\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n class=\"asset-image__icon\"\n />\n </div>\n </div>\n <AssetImageMetaIcons\n v-if=\"showMetaIcons && assetFileProperties\"\n :asset-file-properties=\"assetFileProperties\"\n :asset-type=\"assetType\"\n :show-tts=\"showTts\"\n :auto-delete-at=\"autoDeleteAt\"\n :licence-badge=\"licenceBadge\"\n />\n </div>\n <div\n v-else\n :style=\"{\n height: fallbackHeight + 'px',\n backgroundColor: backgroundColorComputed,\n width: width + 'px',\n }\"\n class=\"asset-image asset-image--placeholder d-flex align-center justify-center\"\n >\n <div\n v-if=\"showIconComputed\"\n class=\"asset-image__icon-wrapper\"\n >\n <div\n class=\"asset-image__icon-circle\"\n :style=\"{ padding: iconSize / 4 + 'px' }\"\n >\n <VIcon\n v-if=\"icon.length\"\n :size=\"iconSize\"\n :icon=\"icon\"\n :color=\"iconColor\"\n class=\"asset-image__icon\"\n />\n </div>\n </div>\n <div\n v-if=\"showDone\"\n class=\"asset-image__progress asset-image__progress--animate-done\"\n >\n <VIcon\n icon=\"mdi-check-circle\"\n color=\"success\"\n :size=\"iconSize\"\n />\n <div class=\"text-body-small text-center\">\n {{ t('common.damImage.upload.done') }}\n </div>\n </div>\n <AssetImageMetaIcons\n v-if=\"showMetaIcons && assetFileProperties\"\n :asset-file-properties=\"assetFileProperties\"\n :asset-type=\"assetType\"\n :show-tts=\"showTts\"\n :auto-delete-at=\"autoDeleteAt\"\n :licence-badge=\"licenceBadge\"\n />\n </div>\n</template>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetImageMetaIcons.js","names":["_sfc_main","AssetImageMetaIcons_vue_vue_type_script_setup_true_lang_default","AssetImageMetaIcons_default"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetImageMetaIcons.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { type AssetFileProperties, DamAssetType, type DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport {\n DIMENSIONS_CONFIG,\n ICON_LOW,\n ICON_RSS,\n ICON_SLOTS,\n ICON_TTS,\n LOW_DIMENSION,\n} from '@/domains/dam/assetDetail/utils/assetImageIconsConfig'\nimport { useDamConfigStoreOf } from '@/domains/dam/config/store/damConfigStore'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\n\nconst props = withDefaults(\n defineProps<{\n assetType: DamAssetTypeType\n assetFileProperties: AssetFileProperties\n disableAbsolute?: boolean\n /** Shows the synthesized audio (TTS) icon. Off by default because the backend reports it to every admin. */\n showTts?: boolean\n /** DAM configuration whose distribution services name the icons. Inherited when not given. */\n configName?: string\n }>(),\n {\n disableAbsolute: false,\n showTts: false,\n configName: undefined,\n }\n)\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigStore = useDamConfigStoreOf(useDamConfigName(props.configName))\n\nconst { t } = useI18n()\n\nconst checkDimensions = (icons: string[], titles: string[]) => {\n if (props.assetFileProperties.width === 0 || props.assetFileProperties.height === 0) {\n return\n }\n if (props.assetFileProperties.width < LOW_DIMENSION || props.assetFileProperties.height < LOW_DIMENSION) {\n icons.push(ICON_LOW)\n titles.push(t('common.damImage.asset.metaIcons.low'))\n return\n }\n if (props.assetType !== DamAssetType.Video) return\n for (const dimension of DIMENSIONS_CONFIG) {\n if (props.assetFileProperties.width === dimension.width && props.assetFileProperties.height === dimension.height) {\n icons.push(dimension.svgSrc)\n titles.push(t(dimension.titleT))\n break\n }\n }\n}\n\nconst checkDistributions = (icons: string[], titles: string[]) => {\n for (const serviceName of props.assetFileProperties.distributesInServices) {\n const service = damConfigStore.damPrvConfig.distributionServices[serviceName]\n const iconPath = service?.iconPath\n if (service && iconPath && iconPath.length > 0 && !icons.includes(iconPath)) {\n icons.push(iconPath)\n titles.push(service.title)\n }\n }\n}\n\nconst data = computed(() => {\n const icons: string[] = []\n const titles: string[] = []\n\n if (props.assetFileProperties.slotNames.length > 1) {\n icons.push(ICON_SLOTS)\n titles.push(t('common.damImage.asset.metaIcons.slots'))\n }\n if (props.assetFileProperties.fromRss) {\n icons.push(ICON_RSS)\n titles.push(t('common.damImage.asset.metaIcons.rss'))\n }\n if (props.showTts && props.assetFileProperties.ttsAudio) {\n icons.push(ICON_TTS)\n titles.push(t('common.damImage.asset.metaIcons.tts'))\n }\n checkDimensions(icons, titles)\n checkDistributions(icons, titles)\n\n return { icons, titles }\n})\n</script>\n\n<template>\n <div\n v-show=\"data.icons.length > 0\"\n class=\"asset-image__meta-icons\"\n :class=\"{ 'asset-image__meta-icons-absolute': !disableAbsolute }\"\n >\n <img\n v-for=\"(item, index) in data.icons\"\n :key=\"item\"\n class=\"img-svg\"\n :src=\"item\"\n alt=\"\"\n :title=\"data.titles[index] || ''\"\n />\n </div>\n</template>\n\n<style lang=\"scss\">\n.asset-image__meta-icons-absolute {\n position: absolute;\n left: 6px;\n top: 163px;\n}\n\n.asset-image__meta-icons {\n display: flex;\n\n img.img-svg {\n height: 30px;\n padding: 2px;\n }\n}\n</style>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"AssetImageMetaIcons.js","names":["_sfc_main","AssetImageMetaIcons_vue_vue_type_script_setup_true_lang_default","AssetImageMetaIcons_default"],"sources":["../../../../../src/domains/dam/assetDetail/components/AssetImageMetaIcons.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { type AssetFileProperties, DamAssetType, type DamAssetTypeType } from '@/domains/dam/types/Asset'\nimport {\n DIMENSIONS_CONFIG,\n ICON_LOW,\n ICON_RSS,\n ICON_SLOTS,\n ICON_TTS,\n LOW_DIMENSION,\n} from '@/domains/dam/assetDetail/utils/assetImageIconsConfig'\nimport { useDamConfigStoreOf } from '@/domains/dam/config/store/damConfigStore'\nimport { useDamConfigName } from '@/domains/dam/composables/damConfigName'\nimport { useRemainingTime } from '@/domains/ui/datetime/composables/remainingTime'\nimport { useAutoDeleteTimeLeft } from '@/domains/dam/assetDetail/composables/autoDeleteTimeLeft'\nimport type { DatetimeUTCNullable } from '@/shared/types/common'\nimport { dateTimeFriendly } from '@/shared/utils/datetime'\n\nconst props = withDefaults(\n defineProps<{\n assetType: DamAssetTypeType\n assetFileProperties: AssetFileProperties\n disableAbsolute?: boolean\n /** Shows the synthesized audio (TTS) icon. Off by default because the backend reports it to every admin. */\n showTts?: boolean\n /** DAM configuration whose distribution services name the icons. Inherited when not given. */\n configName?: string\n /** When DAM deletes the asset: a badge shows the time left. Only admin-dam passes it, the other admins show none. */\n autoDeleteAt?: DatetimeUTCNullable\n /** Badge of the asset's licence, shown as given. Empty shows none. */\n licenceBadge?: string\n }>(),\n {\n disableAbsolute: false,\n showTts: false,\n configName: undefined,\n autoDeleteAt: null,\n licenceBadge: '',\n }\n)\n// eslint-disable-next-line vue/no-setup-props-reactivity-loss\nconst damConfigStore = useDamConfigStoreOf(useDamConfigName(props.configName))\n\nconst { t } = useI18n()\nconst { remainingTimeShort } = useRemainingTime()\n\nconst { secondsLeft } = useAutoDeleteTimeLeft(() => props.autoDeleteAt)\n\nconst autoDeleteBadge = computed(() => {\n if (!props.autoDeleteAt || secondsLeft.value === null) return null\n return {\n text: remainingTimeShort(secondsLeft.value),\n title: t('common.damImage.asset.metaIcons.autoDeleteAt', { date: dateTimeFriendly(props.autoDeleteAt) }),\n }\n})\n\nconst checkDimensions = (icons: string[], titles: string[]) => {\n if (props.assetFileProperties.width === 0 || props.assetFileProperties.height === 0) {\n return\n }\n if (props.assetFileProperties.width < LOW_DIMENSION || props.assetFileProperties.height < LOW_DIMENSION) {\n icons.push(ICON_LOW)\n titles.push(t('common.damImage.asset.metaIcons.low'))\n return\n }\n if (props.assetType !== DamAssetType.Video) return\n for (const dimension of DIMENSIONS_CONFIG) {\n if (props.assetFileProperties.width === dimension.width && props.assetFileProperties.height === dimension.height) {\n icons.push(dimension.svgSrc)\n titles.push(t(dimension.titleT))\n break\n }\n }\n}\n\nconst checkDistributions = (icons: string[], titles: string[]) => {\n for (const serviceName of props.assetFileProperties.distributesInServices) {\n const service = damConfigStore.damPrvConfig.distributionServices[serviceName]\n const iconPath = service?.iconPath\n if (service && iconPath && iconPath.length > 0 && !icons.includes(iconPath)) {\n icons.push(iconPath)\n titles.push(service.title)\n }\n }\n}\n\nconst data = computed(() => {\n const icons: string[] = []\n const titles: string[] = []\n\n if (props.assetFileProperties.slotNames.length > 1) {\n icons.push(ICON_SLOTS)\n titles.push(t('common.damImage.asset.metaIcons.slots'))\n }\n if (props.assetFileProperties.fromRss) {\n icons.push(ICON_RSS)\n titles.push(t('common.damImage.asset.metaIcons.rss'))\n }\n if (props.showTts && props.assetFileProperties.ttsAudio) {\n icons.push(ICON_TTS)\n titles.push(t('common.damImage.asset.metaIcons.tts'))\n }\n checkDimensions(icons, titles)\n checkDistributions(icons, titles)\n\n return { icons, titles }\n})\n</script>\n\n<template>\n <div\n v-show=\"data.icons.length > 0 || autoDeleteBadge || licenceBadge\"\n class=\"asset-image__meta-icons\"\n :class=\"{ 'asset-image__meta-icons-absolute': !disableAbsolute }\"\n >\n <span\n v-if=\"licenceBadge\"\n class=\"asset-image__licence-badge\"\n data-cy=\"asset-licence-badge\"\n >\n {{ licenceBadge }}\n </span>\n <VChip\n v-if=\"autoDeleteBadge\"\n size=\"x-small\"\n variant=\"flat\"\n color=\"warning\"\n class=\"ma-1 align-self-center\"\n :title=\"autoDeleteBadge.title\"\n data-cy=\"asset-auto-delete-badge\"\n >\n {{ autoDeleteBadge.text }}\n </VChip>\n <img\n v-for=\"(item, index) in data.icons\"\n :key=\"item\"\n class=\"img-svg\"\n :src=\"item\"\n alt=\"\"\n :title=\"data.titles[index] || ''\"\n />\n </div>\n</template>\n\n<style lang=\"scss\">\n.asset-image__meta-icons-absolute {\n position: absolute;\n left: 6px;\n top: 163px;\n}\n\n.asset-image__meta-icons {\n display: flex;\n\n img.img-svg {\n height: 30px;\n padding: 2px;\n }\n\n // As the SVG meta icons: a half-transparent black circle with white bold letters.\n .asset-image__licence-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n margin: 2px;\n border-radius: 50%;\n background-color: rgb(0 0 0 / 50%);\n color: #fff;\n font-size: 10px;\n font-weight: 700;\n line-height: 1;\n }\n}\n</style>\n"],"mappings":""}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AssetFileProperties, DamAssetTypeType } from '../../types/Asset';
|
|
2
|
+
import { DatetimeUTCNullable } from '../../../../shared/types/common';
|
|
2
3
|
type __VLS_Props = {
|
|
3
4
|
assetType: DamAssetTypeType;
|
|
4
5
|
assetFileProperties: AssetFileProperties;
|
|
@@ -7,11 +8,17 @@ type __VLS_Props = {
|
|
|
7
8
|
showTts?: boolean;
|
|
8
9
|
/** DAM configuration whose distribution services name the icons. Inherited when not given. */
|
|
9
10
|
configName?: string;
|
|
11
|
+
/** When DAM deletes the asset: a badge shows the time left. Only admin-dam passes it, the other admins show none. */
|
|
12
|
+
autoDeleteAt?: DatetimeUTCNullable;
|
|
13
|
+
/** Badge of the asset's licence, shown as given. Empty shows none. */
|
|
14
|
+
licenceBadge?: string;
|
|
10
15
|
};
|
|
11
16
|
declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
17
|
+
autoDeleteAt: DatetimeUTCNullable;
|
|
12
18
|
disableAbsolute: boolean;
|
|
13
19
|
showTts: boolean;
|
|
14
20
|
configName: string;
|
|
21
|
+
licenceBadge: string;
|
|
15
22
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
16
23
|
declare const _default: typeof __VLS_export;
|
|
17
24
|
export default _default;
|