@sdata/web-vue 3.5.0 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/sd.css +20 -16
- package/dist/sd.min.css +1 -1
- package/es/cascader/cascader-panel.vue.d.ts +0 -2
- package/es/cascader/cascader-panel.vue_vue_type_script_setup_true_lang.js +6 -13
- package/es/cascader/cascader.vue.d.ts +0 -2
- package/es/cascader/cascader.vue_vue_type_script_setup_true_lang.js +5 -9
- package/es/cascader/types.d.ts +0 -4
- package/es/color-picker/color-picker.d.ts +0 -34
- package/es/color-picker/color-picker.js +6 -48
- package/es/color-picker/index.d.ts +0 -59
- package/es/color-picker/style/index.css +0 -7
- package/es/color-picker/style/index.scss +0 -11
- package/es/color-picker/style/token.scss +0 -2
- package/es/file-previewer/file-previewer.vue.d.ts +19 -1
- package/es/file-previewer/file-previewer.vue_vue_type_script_setup_true_lang.js +135 -52
- package/es/file-previewer/index.d.ts +86 -1
- package/es/file-previewer/style/index.css +20 -9
- package/es/file-previewer/style/index.scss +25 -7
- package/es/file-previewer/types.d.ts +17 -0
- package/es/index.css +20 -16
- package/es/index.d.ts +1 -1
- package/es/index.js +4 -4
- package/es/progress/circle.vue.d.ts +1 -1
- package/es/progress/index.d.ts +3 -3
- package/es/progress/line.vue.d.ts +1 -1
- package/es/progress/progress.vue.d.ts +1 -1
- package/es/progress/steps.vue.d.ts +1 -1
- package/es/sd-vue.js +4 -4
- package/es/select/index.d.ts +0 -20
- package/es/select/select.d.ts +0 -11
- package/es/select/select.js +5 -18
- package/es/tree-select/tree-select.vue.d.ts +0 -8
- package/es/tree-select/tree-select.vue_vue_type_script_setup_true_lang.js +2 -17
- package/es/trigger/context.d.ts +1 -0
- package/es/trigger/trigger.js +37 -25
- package/json/vetur-attributes.json +10 -29
- package/json/vetur-tags.json +6 -11
- package/json/web-types.json +26 -66
- package/package.json +1 -1
- package/es/color-picker/input-alpha.d.ts +0 -19
- package/es/color-picker/input-hex.d.ts +0 -33
- package/es/color-picker/input-rgb.d.ts +0 -33
|
@@ -8,7 +8,8 @@ import { KEYBOARD_KEY } from "../_utils/keyboard.js";
|
|
|
8
8
|
import usePopupManager from "../_hooks/use-popup-manager.js";
|
|
9
9
|
import usePopupContainer from "../_hooks/use-popup-container.js";
|
|
10
10
|
import usePopupOverflowHidden from "../_hooks/use-popup-overflow-hidden.js";
|
|
11
|
-
import
|
|
11
|
+
import Image from "../image/index.js";
|
|
12
|
+
import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, guardReactiveProps, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, openBlock, reactive, renderSlot, resolveDynamicComponent, shallowRef, toDisplayString, toRefs, unref, useSlots, watch, withCtx } from "vue";
|
|
12
13
|
//#region components/file-previewer/file-previewer.vue?vue&type=script&setup=true&lang.ts
|
|
13
14
|
var _hoisted_1 = ["tabindex"];
|
|
14
15
|
var _hoisted_2 = [
|
|
@@ -16,10 +17,6 @@ var _hoisted_2 = [
|
|
|
16
17
|
"aria-modal",
|
|
17
18
|
"aria-label"
|
|
18
19
|
];
|
|
19
|
-
var _hoisted_3 = ["src", "alt"];
|
|
20
|
-
var _hoisted_4 = ["src"];
|
|
21
|
-
var _hoisted_5 = ["src"];
|
|
22
|
-
var _hoisted_6 = ["src"];
|
|
23
20
|
var file_previewer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent(_objectSpread2(_objectSpread2({}, { name: "FilePreviewer" }), {}, {
|
|
24
21
|
__name: "file-previewer",
|
|
25
22
|
props: {
|
|
@@ -102,7 +99,22 @@ var file_previewer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
102
99
|
renderToBody: {
|
|
103
100
|
type: Boolean,
|
|
104
101
|
default: true
|
|
105
|
-
}
|
|
102
|
+
},
|
|
103
|
+
/**
|
|
104
|
+
* @zh 图片预览器参数
|
|
105
|
+
* @en Image previewer props
|
|
106
|
+
*/
|
|
107
|
+
imageProps: { type: Object },
|
|
108
|
+
/**
|
|
109
|
+
* @zh 视频和音频预览器参数
|
|
110
|
+
* @en Video and audio previewer props
|
|
111
|
+
*/
|
|
112
|
+
mediaProps: { type: Object },
|
|
113
|
+
/**
|
|
114
|
+
* @zh PDF 预览器参数
|
|
115
|
+
* @en PDF previewer props
|
|
116
|
+
*/
|
|
117
|
+
pdfProps: { type: Object }
|
|
106
118
|
},
|
|
107
119
|
emits: [
|
|
108
120
|
"close",
|
|
@@ -113,12 +125,13 @@ var file_previewer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
113
125
|
const slots = useSlots();
|
|
114
126
|
const props = __props;
|
|
115
127
|
const emit = __emit;
|
|
116
|
-
const { src, type, visible, defaultVisible, fullscreen, popupContainer, renderToBody, maskClosable, closable, escToClose, title } = toRefs(props);
|
|
128
|
+
const { src, type, visible, defaultVisible, fullscreen, popupContainer, renderToBody, maskClosable, closable, escToClose, title, imageProps, mediaProps, pdfProps } = toRefs(props);
|
|
117
129
|
const prefixCls = getPrefixCls("file-previewer");
|
|
118
130
|
const wrapperRef = shallowRef();
|
|
119
131
|
const status = shallowRef("beforeLoad");
|
|
120
132
|
const requestId = shallowRef(0);
|
|
121
|
-
let
|
|
133
|
+
let videoJsVideoPromise;
|
|
134
|
+
let videoJsAudioPromise;
|
|
122
135
|
const localVisible = shallowRef(defaultVisible.value);
|
|
123
136
|
const mergedVisible = computed(() => {
|
|
124
137
|
var _visible$value;
|
|
@@ -170,6 +183,82 @@ var file_previewer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
170
183
|
onLoad: onPreviewLoad,
|
|
171
184
|
onError: onLoadError
|
|
172
185
|
}));
|
|
186
|
+
const mergedImageProps = computed(() => {
|
|
187
|
+
var _imageProps$value;
|
|
188
|
+
const userProps = (_imageProps$value = imageProps === null || imageProps === void 0 ? void 0 : imageProps.value) !== null && _imageProps$value !== void 0 ? _imageProps$value : {};
|
|
189
|
+
return _objectSpread2(_objectSpread2({
|
|
190
|
+
preview: false,
|
|
191
|
+
width: "100%",
|
|
192
|
+
height: "100%",
|
|
193
|
+
fit: "contain",
|
|
194
|
+
alt: (title === null || title === void 0 ? void 0 : title.value) || ""
|
|
195
|
+
}, userProps), {}, {
|
|
196
|
+
src: currentSrc.value,
|
|
197
|
+
onLoad: (event) => {
|
|
198
|
+
callEventHandler(userProps.onLoad, event);
|
|
199
|
+
onPreviewLoad();
|
|
200
|
+
},
|
|
201
|
+
onError: (event) => {
|
|
202
|
+
callEventHandler(userProps.onError, event);
|
|
203
|
+
onLoadError();
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
const mediaSkin = computed(() => {
|
|
208
|
+
var _mediaProps$value$ski, _mediaProps$value;
|
|
209
|
+
return (_mediaProps$value$ski = mediaProps === null || mediaProps === void 0 || (_mediaProps$value = mediaProps.value) === null || _mediaProps$value === void 0 ? void 0 : _mediaProps$value.skin) !== null && _mediaProps$value$ski !== void 0 ? _mediaProps$value$ski : "default";
|
|
210
|
+
});
|
|
211
|
+
const useVideoJsMediaSkin = computed(() => mediaSkin.value !== false && mediaSkin.value !== "native");
|
|
212
|
+
const mediaSkinTag = computed(() => {
|
|
213
|
+
if (mediaSkin.value === "minimal") return type.value === "audio" ? "minimal-audio-skin" : "minimal-video-skin";
|
|
214
|
+
if (mediaSkin.value && mediaSkin.value !== "default") return String(mediaSkin.value);
|
|
215
|
+
return type.value === "audio" ? "audio-skin" : "video-skin";
|
|
216
|
+
});
|
|
217
|
+
const mediaPlayerTag = computed(() => type.value === "audio" ? "audio-player" : "video-player");
|
|
218
|
+
const mediaSkinClassNames = computed(() => [`${prefixCls}-media-skin`, `${prefixCls}-media-skin-${type.value}`]);
|
|
219
|
+
const mediaPlayerProps = computed(() => {
|
|
220
|
+
var _mediaProps$value$pla, _mediaProps$value2;
|
|
221
|
+
return (_mediaProps$value$pla = mediaProps === null || mediaProps === void 0 || (_mediaProps$value2 = mediaProps.value) === null || _mediaProps$value2 === void 0 ? void 0 : _mediaProps$value2.playerProps) !== null && _mediaProps$value$pla !== void 0 ? _mediaProps$value$pla : {};
|
|
222
|
+
});
|
|
223
|
+
const mediaSkinProps = computed(() => {
|
|
224
|
+
var _mediaProps$value$ski2, _mediaProps$value3;
|
|
225
|
+
return (_mediaProps$value$ski2 = mediaProps === null || mediaProps === void 0 || (_mediaProps$value3 = mediaProps.value) === null || _mediaProps$value3 === void 0 ? void 0 : _mediaProps$value3.skinProps) !== null && _mediaProps$value$ski2 !== void 0 ? _mediaProps$value$ski2 : {};
|
|
226
|
+
});
|
|
227
|
+
const mergedMediaProps = computed(() => {
|
|
228
|
+
const userProps = _objectSpread2({}, mediaProps === null || mediaProps === void 0 ? void 0 : mediaProps.value);
|
|
229
|
+
const { onLoadedData, onError } = userProps;
|
|
230
|
+
delete userProps.skin;
|
|
231
|
+
delete userProps.playerProps;
|
|
232
|
+
delete userProps.skinProps;
|
|
233
|
+
delete userProps.onLoadedData;
|
|
234
|
+
delete userProps.onError;
|
|
235
|
+
return _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, useVideoJsMediaSkin.value ? void 0 : { controls: true }), type.value === "video" ? { playsinline: true } : void 0), userProps), {}, {
|
|
236
|
+
src: currentSrc.value,
|
|
237
|
+
onLoadedData: (event) => {
|
|
238
|
+
callEventHandler(onLoadedData, event);
|
|
239
|
+
onPreviewLoad();
|
|
240
|
+
},
|
|
241
|
+
onError: (event) => {
|
|
242
|
+
callEventHandler(onError, event);
|
|
243
|
+
onLoadError();
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
});
|
|
247
|
+
const mergedPdfProps = computed(() => {
|
|
248
|
+
var _pdfProps$value;
|
|
249
|
+
const userProps = (_pdfProps$value = pdfProps === null || pdfProps === void 0 ? void 0 : pdfProps.value) !== null && _pdfProps$value !== void 0 ? _pdfProps$value : {};
|
|
250
|
+
return _objectSpread2(_objectSpread2({ title: "PDF preview" }, userProps), {}, {
|
|
251
|
+
src: currentSrc.value,
|
|
252
|
+
onLoad: (event) => {
|
|
253
|
+
callEventHandler(userProps.onLoad, event);
|
|
254
|
+
onPreviewLoad();
|
|
255
|
+
},
|
|
256
|
+
onError: (event) => {
|
|
257
|
+
callEventHandler(userProps.onError, event);
|
|
258
|
+
onLoadError();
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
});
|
|
173
262
|
usePopupOverflowHidden(reactive({
|
|
174
263
|
container,
|
|
175
264
|
hidden: popupVisible
|
|
@@ -204,6 +293,13 @@ var file_previewer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
204
293
|
function onLoadError() {
|
|
205
294
|
status.value = "error";
|
|
206
295
|
}
|
|
296
|
+
function callEventHandler(handler, event) {
|
|
297
|
+
if (Array.isArray(handler)) {
|
|
298
|
+
handler.forEach((item) => callEventHandler(item, event));
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
if (typeof handler === "function") handler(event);
|
|
302
|
+
}
|
|
207
303
|
function ensureVideoJsHtml() {
|
|
208
304
|
return _ensureVideoJsHtml.apply(this, arguments);
|
|
209
305
|
}
|
|
@@ -213,16 +309,21 @@ var file_previewer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
213
309
|
configurable: true,
|
|
214
310
|
value: window.Element
|
|
215
311
|
});
|
|
216
|
-
if (
|
|
217
|
-
|
|
312
|
+
if (type.value === "audio") {
|
|
313
|
+
if (!videoJsAudioPromise) videoJsAudioPromise = import("@videojs/html/audio");
|
|
314
|
+
yield videoJsAudioPromise;
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
if (!videoJsVideoPromise) videoJsVideoPromise = import("@videojs/html/video");
|
|
318
|
+
yield videoJsVideoPromise;
|
|
218
319
|
});
|
|
219
320
|
return _ensureVideoJsHtml.apply(this, arguments);
|
|
220
321
|
}
|
|
221
|
-
function
|
|
222
|
-
return
|
|
322
|
+
function prepareMedia(_x) {
|
|
323
|
+
return _prepareMedia.apply(this, arguments);
|
|
223
324
|
}
|
|
224
|
-
function
|
|
225
|
-
|
|
325
|
+
function _prepareMedia() {
|
|
326
|
+
_prepareMedia = _asyncToGenerator(function* (currentRequestId) {
|
|
226
327
|
status.value = "loading";
|
|
227
328
|
try {
|
|
228
329
|
if (!isServerRendering) yield ensureVideoJsHtml();
|
|
@@ -233,7 +334,7 @@ var file_previewer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
233
334
|
status.value = "error";
|
|
234
335
|
}
|
|
235
336
|
});
|
|
236
|
-
return
|
|
337
|
+
return _prepareMedia.apply(this, arguments);
|
|
237
338
|
}
|
|
238
339
|
watch([
|
|
239
340
|
src,
|
|
@@ -252,11 +353,15 @@ var file_previewer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
252
353
|
return;
|
|
253
354
|
}
|
|
254
355
|
const currentRequestId = requestId.value;
|
|
255
|
-
if (type.value === "video") {
|
|
256
|
-
|
|
356
|
+
if (type.value === "video" || type.value === "audio") {
|
|
357
|
+
if (useVideoJsMediaSkin.value) {
|
|
358
|
+
prepareMedia(currentRequestId);
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
status.value = "loading";
|
|
257
362
|
return;
|
|
258
363
|
}
|
|
259
|
-
if (type.value === "
|
|
364
|
+
if (type.value === "pdf") {
|
|
260
365
|
status.value = "loaded";
|
|
261
366
|
return;
|
|
262
367
|
}
|
|
@@ -296,44 +401,22 @@ var file_previewer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
296
401
|
}, [unref(title) || _ctx.$slots.title ? (openBlock(), createElementBlock("header", {
|
|
297
402
|
key: 0,
|
|
298
403
|
class: normalizeClass(`${unref(prefixCls)}-header`)
|
|
299
|
-
}, [renderSlot(_ctx.$slots, "title", {}, () => [createElementVNode("span", { class: normalizeClass(`${unref(prefixCls)}-title`) }, toDisplayString(unref(title)), 3)])], 2)) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(`${unref(prefixCls)}-body`) }, [renderSlot(_ctx.$slots, "content", normalizeProps(guardReactiveProps(contentSlotProps.value)), () => [unref(type) === "image" ? (openBlock(),
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
src: currentSrc.value,
|
|
303
|
-
alt: unref(title) || "",
|
|
304
|
-
onLoad: onPreviewLoad,
|
|
305
|
-
onError: onLoadError
|
|
306
|
-
}, null, 42, _hoisted_3)) : unref(type) === "video" ? (openBlock(), createBlock(resolveDynamicComponent("video-player"), {
|
|
307
|
-
key: 1,
|
|
308
|
-
class: normalizeClass(`${unref(prefixCls)}-video-player`)
|
|
309
|
-
}, {
|
|
310
|
-
default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent("video-skin"), null, {
|
|
311
|
-
default: withCtx(() => [(openBlock(), createElementBlock("video", {
|
|
312
|
-
key: currentSrc.value,
|
|
313
|
-
class: normalizeClass(`${unref(prefixCls)}-video`),
|
|
314
|
-
src: currentSrc.value,
|
|
315
|
-
controls: "",
|
|
316
|
-
playsinline: ""
|
|
317
|
-
}, null, 10, _hoisted_4))]),
|
|
404
|
+
}, [renderSlot(_ctx.$slots, "title", {}, () => [createElementVNode("span", { class: normalizeClass(`${unref(prefixCls)}-title`) }, toDisplayString(unref(title)), 3)])], 2)) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(`${unref(prefixCls)}-body`) }, [renderSlot(_ctx.$slots, "content", normalizeProps(guardReactiveProps(contentSlotProps.value)), () => [unref(type) === "image" ? (openBlock(), createBlock(unref(Image), mergeProps({ key: currentSrc.value + "image" }, mergedImageProps.value, { class: `${unref(prefixCls)}-image` }), null, 16, ["class"])) : unref(type) === "video" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [useVideoJsMediaSkin.value ? (openBlock(), createBlock(resolveDynamicComponent(mediaPlayerTag.value), mergeProps({ key: 0 }, mediaPlayerProps.value, { class: `${unref(prefixCls)}-video-player` }), {
|
|
405
|
+
default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(mediaSkinTag.value), mergeProps(mediaSkinProps.value, { class: mediaSkinClassNames.value }), {
|
|
406
|
+
default: withCtx(() => [(openBlock(), createElementBlock("video", mergeProps({ key: currentSrc.value + "video" }, mergedMediaProps.value, { class: `${unref(prefixCls)}-video` }), null, 16))]),
|
|
318
407
|
_: 1
|
|
319
|
-
}))]),
|
|
408
|
+
}, 16, ["class"]))]),
|
|
320
409
|
_: 1
|
|
321
|
-
},
|
|
410
|
+
}, 16, ["class"])) : (openBlock(), createElementBlock("video", mergeProps({ key: currentSrc.value }, mergedMediaProps.value, { class: `${unref(prefixCls)}-video` }), null, 16))], 64)) : unref(type) === "audio" ? (openBlock(), createElementBlock("div", {
|
|
322
411
|
key: 2,
|
|
323
412
|
class: normalizeClass(`${unref(prefixCls)}-audio-panel`)
|
|
324
|
-
}, [(openBlock(),
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
class: normalizeClass(`${unref(prefixCls)}-pdf`),
|
|
332
|
-
src: currentSrc.value,
|
|
333
|
-
title: "PDF preview",
|
|
334
|
-
onLoad: onPreviewLoad,
|
|
335
|
-
onError: onLoadError
|
|
336
|
-
}, null, 42, _hoisted_6)) : createCommentVNode("", true)])], 2)], 10, _hoisted_2),
|
|
413
|
+
}, [useVideoJsMediaSkin.value ? (openBlock(), createBlock(resolveDynamicComponent(mediaPlayerTag.value), mergeProps({ key: 0 }, mediaPlayerProps.value, { class: `${unref(prefixCls)}-audio-player` }), {
|
|
414
|
+
default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(mediaSkinTag.value), mergeProps(mediaSkinProps.value, { class: mediaSkinClassNames.value }), {
|
|
415
|
+
default: withCtx(() => [(openBlock(), createElementBlock("audio", mergeProps({ key: currentSrc.value + "audio" }, mergedMediaProps.value, { class: `${unref(prefixCls)}-audio` }), null, 16))]),
|
|
416
|
+
_: 1
|
|
417
|
+
}, 16, ["class"]))]),
|
|
418
|
+
_: 1
|
|
419
|
+
}, 16, ["class"])) : (openBlock(), createElementBlock("audio", mergeProps({ key: currentSrc.value + "audio" }, mergedMediaProps.value, { class: `${unref(prefixCls)}-audio` }), null, 16))], 2)) : unref(type) === "pdf" ? (openBlock(), createElementBlock("iframe", mergeProps({ key: currentSrc.value + "pdf" }, mergedPdfProps.value, { class: `${unref(prefixCls)}-pdf` }), null, 16)) : createCommentVNode("", true)])], 2)], 10, _hoisted_2),
|
|
337
420
|
unref(fullscreen) && unref(closable) ? (openBlock(), createElementBlock("button", {
|
|
338
421
|
key: 1,
|
|
339
422
|
type: "button",
|
|
@@ -44,6 +44,44 @@ declare const FilePreviewer: {
|
|
|
44
44
|
type: BooleanConstructor;
|
|
45
45
|
default: boolean;
|
|
46
46
|
};
|
|
47
|
+
imageProps: {
|
|
48
|
+
type: import("vue").PropType<{
|
|
49
|
+
[x: string]: unknown;
|
|
50
|
+
[x: number]: unknown;
|
|
51
|
+
[x: symbol]: unknown;
|
|
52
|
+
src?: string | undefined;
|
|
53
|
+
width?: string | number | undefined;
|
|
54
|
+
height?: string | number | undefined;
|
|
55
|
+
title?: string | undefined;
|
|
56
|
+
description?: string | undefined;
|
|
57
|
+
alt?: string | undefined;
|
|
58
|
+
hideFooter?: boolean | undefined;
|
|
59
|
+
footerPosition?: "outer" | "inner" | undefined;
|
|
60
|
+
showLoader?: boolean | undefined;
|
|
61
|
+
preview?: boolean | undefined;
|
|
62
|
+
previewVisible?: boolean | undefined;
|
|
63
|
+
defaultPreviewVisible?: boolean | undefined;
|
|
64
|
+
previewProps?: Partial<import("../image/interface.ts").ImagePreviewProps> | undefined;
|
|
65
|
+
extra?: import("vue").Slot | undefined;
|
|
66
|
+
error?: import("vue").Slot | undefined;
|
|
67
|
+
loader?: import("vue").Slot | undefined;
|
|
68
|
+
onPreviewVisibleChange?: ((visible: boolean) => void) | undefined;
|
|
69
|
+
fit?: ("fill" | "none" | "contain" | "cover" | "scale-down") | undefined;
|
|
70
|
+
}>;
|
|
71
|
+
};
|
|
72
|
+
mediaProps: {
|
|
73
|
+
type: import("vue").PropType<{
|
|
74
|
+
[x: string]: unknown;
|
|
75
|
+
[x: number]: unknown;
|
|
76
|
+
[x: symbol]: unknown;
|
|
77
|
+
skin?: import("./types").FilePreviewerMediaSkin | undefined;
|
|
78
|
+
playerProps?: import("type-fest").UnknownRecord | undefined;
|
|
79
|
+
skinProps?: import("type-fest").UnknownRecord | undefined;
|
|
80
|
+
}>;
|
|
81
|
+
};
|
|
82
|
+
pdfProps: {
|
|
83
|
+
type: import("vue").PropType<import("./types").FilePreviewerPdfProps>;
|
|
84
|
+
};
|
|
47
85
|
}>> & Readonly<{
|
|
48
86
|
onClose?: (() => any) | undefined;
|
|
49
87
|
"onUpdate:visible"?: ((_visible: boolean) => any) | undefined;
|
|
@@ -117,6 +155,44 @@ declare const FilePreviewer: {
|
|
|
117
155
|
type: BooleanConstructor;
|
|
118
156
|
default: boolean;
|
|
119
157
|
};
|
|
158
|
+
imageProps: {
|
|
159
|
+
type: import("vue").PropType<{
|
|
160
|
+
[x: string]: unknown;
|
|
161
|
+
[x: number]: unknown;
|
|
162
|
+
[x: symbol]: unknown;
|
|
163
|
+
src?: string | undefined;
|
|
164
|
+
width?: string | number | undefined;
|
|
165
|
+
height?: string | number | undefined;
|
|
166
|
+
title?: string | undefined;
|
|
167
|
+
description?: string | undefined;
|
|
168
|
+
alt?: string | undefined;
|
|
169
|
+
hideFooter?: boolean | undefined;
|
|
170
|
+
footerPosition?: "outer" | "inner" | undefined;
|
|
171
|
+
showLoader?: boolean | undefined;
|
|
172
|
+
preview?: boolean | undefined;
|
|
173
|
+
previewVisible?: boolean | undefined;
|
|
174
|
+
defaultPreviewVisible?: boolean | undefined;
|
|
175
|
+
previewProps?: Partial<import("../image/interface.ts").ImagePreviewProps> | undefined;
|
|
176
|
+
extra?: import("vue").Slot | undefined;
|
|
177
|
+
error?: import("vue").Slot | undefined;
|
|
178
|
+
loader?: import("vue").Slot | undefined;
|
|
179
|
+
onPreviewVisibleChange?: ((visible: boolean) => void) | undefined;
|
|
180
|
+
fit?: ("fill" | "none" | "contain" | "cover" | "scale-down") | undefined;
|
|
181
|
+
}>;
|
|
182
|
+
};
|
|
183
|
+
mediaProps: {
|
|
184
|
+
type: import("vue").PropType<{
|
|
185
|
+
[x: string]: unknown;
|
|
186
|
+
[x: number]: unknown;
|
|
187
|
+
[x: symbol]: unknown;
|
|
188
|
+
skin?: import("./types").FilePreviewerMediaSkin | undefined;
|
|
189
|
+
playerProps?: import("type-fest").UnknownRecord | undefined;
|
|
190
|
+
skinProps?: import("type-fest").UnknownRecord | undefined;
|
|
191
|
+
}>;
|
|
192
|
+
};
|
|
193
|
+
pdfProps: {
|
|
194
|
+
type: import("vue").PropType<import("./types").FilePreviewerPdfProps>;
|
|
195
|
+
};
|
|
120
196
|
}>> & Readonly<{
|
|
121
197
|
onClose?: (() => any) | undefined;
|
|
122
198
|
"onUpdate:visible"?: ((_visible: boolean) => any) | undefined;
|
|
@@ -183,6 +259,15 @@ declare const FilePreviewer: {
|
|
|
183
259
|
type: BooleanConstructor;
|
|
184
260
|
default: boolean;
|
|
185
261
|
};
|
|
262
|
+
imageProps: {
|
|
263
|
+
type: import("vue").PropType<import("./types").FilePreviewerImageProps>;
|
|
264
|
+
};
|
|
265
|
+
mediaProps: {
|
|
266
|
+
type: import("vue").PropType<import("./types").FilePreviewerMediaProps>;
|
|
267
|
+
};
|
|
268
|
+
pdfProps: {
|
|
269
|
+
type: import("vue").PropType<import("./types").FilePreviewerPdfProps>;
|
|
270
|
+
};
|
|
186
271
|
}>> & Readonly<{
|
|
187
272
|
onClose?: (() => any) | undefined;
|
|
188
273
|
"onUpdate:visible"?: ((_visible: boolean) => any) | undefined;
|
|
@@ -216,5 +301,5 @@ declare const FilePreviewer: {
|
|
|
216
301
|
install: (app: App, options?: SDOptions) => void;
|
|
217
302
|
};
|
|
218
303
|
export type FilePreviewerInstance = InstanceType<typeof _FilePreviewer>;
|
|
219
|
-
export type { FilePreviewerContentSlotProps, FilePreviewerProps, FilePreviewerStatus, FilePreviewerType, } from './types';
|
|
304
|
+
export type { FilePreviewerContentSlotProps, FilePreviewerImageProps, FilePreviewerMediaProps, FilePreviewerMediaSkin, FilePreviewerPdfProps, FilePreviewerProps, FilePreviewerStatus, FilePreviewerType, } from './types';
|
|
220
305
|
export default FilePreviewer;
|
|
@@ -28,9 +28,6 @@
|
|
|
28
28
|
.sd-file-previewer-inline {
|
|
29
29
|
overflow: hidden;
|
|
30
30
|
color: var(--sd-color-text-1);
|
|
31
|
-
background: var(--sd-color-fill-1);
|
|
32
|
-
border: 1px solid var(--sd-color-border-2);
|
|
33
|
-
border-radius: var(--sd-border-radius-medium);
|
|
34
31
|
}
|
|
35
32
|
.sd-file-previewer-mask {
|
|
36
33
|
position: absolute;
|
|
@@ -82,31 +79,45 @@
|
|
|
82
79
|
min-width: 0;
|
|
83
80
|
min-height: 0;
|
|
84
81
|
}
|
|
85
|
-
.sd-file-previewer-image, .sd-file-previewer-video-player, .sd-file-previewer-video, .sd-file-previewer-pdf {
|
|
82
|
+
.sd-file-previewer-image, .sd-file-previewer-video-player, .sd-file-previewer-audio-player, .sd-file-previewer-video, .sd-file-previewer-pdf {
|
|
86
83
|
display: block;
|
|
87
84
|
width: 100%;
|
|
88
85
|
height: 100%;
|
|
89
86
|
}
|
|
90
|
-
.sd-file-previewer-image {
|
|
87
|
+
.sd-file-previewer-image .sd-image-img {
|
|
91
88
|
object-fit: contain;
|
|
92
89
|
}
|
|
90
|
+
.sd-file-previewer-video-player, .sd-file-previewer-audio-player {
|
|
91
|
+
min-width: 0 !important;
|
|
92
|
+
min-height: 0 !important;
|
|
93
|
+
}
|
|
93
94
|
.sd-file-previewer-video-player {
|
|
94
95
|
max-width: 1180px;
|
|
95
96
|
max-height: 78vh;
|
|
96
97
|
}
|
|
97
|
-
.sd-file-previewer-
|
|
98
|
+
.sd-file-previewer-media-skin {
|
|
99
|
+
display: block;
|
|
100
|
+
width: 100%;
|
|
101
|
+
min-width: 0 !important;
|
|
98
102
|
max-width: 100%;
|
|
99
|
-
|
|
103
|
+
height: 100%;
|
|
104
|
+
min-height: 0 !important;
|
|
105
|
+
max-height: 100%;
|
|
106
|
+
--media-object-fit: cover;
|
|
100
107
|
}
|
|
101
108
|
.sd-file-previewer-video {
|
|
102
|
-
|
|
109
|
+
object-fit: cover;
|
|
110
|
+
}
|
|
111
|
+
.sd-file-previewer-inline .sd-file-previewer-video-player {
|
|
112
|
+
max-width: 100%;
|
|
113
|
+
max-height: none;
|
|
103
114
|
}
|
|
104
115
|
.sd-file-previewer-audio-panel {
|
|
105
116
|
box-sizing: border-box;
|
|
106
117
|
width: 100%;
|
|
107
118
|
padding: 20px;
|
|
108
119
|
}
|
|
109
|
-
.sd-file-previewer-audio {
|
|
120
|
+
.sd-file-previewer-audio-player, .sd-file-previewer-audio {
|
|
110
121
|
display: block;
|
|
111
122
|
width: 100%;
|
|
112
123
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
@use './token.scss' as *;
|
|
4
4
|
|
|
5
5
|
$file-previewer-prefix-cls: string.unquote('#{theme.$prefix}-file-previewer');
|
|
6
|
+
$image-prefix-cls: string.unquote('#{theme.$prefix}-image');
|
|
6
7
|
|
|
7
8
|
@mixin center() {
|
|
8
9
|
position: absolute;
|
|
@@ -25,9 +26,6 @@ $file-previewer-prefix-cls: string.unquote('#{theme.$prefix}-file-previewer');
|
|
|
25
26
|
&-inline {
|
|
26
27
|
overflow: hidden;
|
|
27
28
|
color: $file-previewer-color-content-text;
|
|
28
|
-
background: $file-previewer-color-inline-bg;
|
|
29
|
-
border: 1px solid $file-previewer-color-inline-border;
|
|
30
|
-
border-radius: $file-previewer-radius-panel;
|
|
31
29
|
}
|
|
32
30
|
|
|
33
31
|
&-mask {
|
|
@@ -94,6 +92,7 @@ $file-previewer-prefix-cls: string.unquote('#{theme.$prefix}-file-previewer');
|
|
|
94
92
|
|
|
95
93
|
&-image,
|
|
96
94
|
&-video-player,
|
|
95
|
+
&-audio-player,
|
|
97
96
|
&-video,
|
|
98
97
|
&-pdf {
|
|
99
98
|
display: block;
|
|
@@ -101,22 +100,40 @@ $file-previewer-prefix-cls: string.unquote('#{theme.$prefix}-file-previewer');
|
|
|
101
100
|
height: 100%;
|
|
102
101
|
}
|
|
103
102
|
|
|
104
|
-
&-image {
|
|
103
|
+
&-image .#{$image-prefix-cls}-img {
|
|
105
104
|
object-fit: contain;
|
|
106
105
|
}
|
|
107
106
|
|
|
107
|
+
&-video-player,
|
|
108
|
+
&-audio-player {
|
|
109
|
+
min-width: 0 !important;
|
|
110
|
+
min-height: 0 !important;
|
|
111
|
+
}
|
|
112
|
+
|
|
108
113
|
&-video-player {
|
|
109
114
|
max-width: $file-previewer-size-media-width;
|
|
110
115
|
max-height: $file-previewer-size-media-height;
|
|
111
116
|
}
|
|
112
117
|
|
|
113
|
-
&-
|
|
118
|
+
&-media-skin {
|
|
119
|
+
display: block;
|
|
120
|
+
width: 100%;
|
|
121
|
+
min-width: 0 !important;
|
|
114
122
|
max-width: 100%;
|
|
115
|
-
|
|
123
|
+
height: 100%;
|
|
124
|
+
min-height: 0 !important;
|
|
125
|
+
max-height: 100%;
|
|
126
|
+
|
|
127
|
+
--media-object-fit: cover;
|
|
116
128
|
}
|
|
117
129
|
|
|
118
130
|
&-video {
|
|
119
|
-
|
|
131
|
+
object-fit: cover;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
&-inline &-video-player {
|
|
135
|
+
max-width: 100%;
|
|
136
|
+
max-height: none;
|
|
120
137
|
}
|
|
121
138
|
|
|
122
139
|
&-audio-panel {
|
|
@@ -125,6 +142,7 @@ $file-previewer-prefix-cls: string.unquote('#{theme.$prefix}-file-previewer');
|
|
|
125
142
|
padding: $file-previewer-spacing-panel-padding;
|
|
126
143
|
}
|
|
127
144
|
|
|
145
|
+
&-audio-player,
|
|
128
146
|
&-audio {
|
|
129
147
|
display: block;
|
|
130
148
|
width: 100%;
|
|
@@ -1,5 +1,18 @@
|
|
|
1
|
+
import type { Except, Simplify, UnknownRecord } from 'type-fest';
|
|
2
|
+
import type { ImageProps } from '../image/interface';
|
|
1
3
|
export type FilePreviewerType = 'image' | 'video' | 'audio' | 'pdf';
|
|
2
4
|
export type FilePreviewerStatus = 'beforeLoad' | 'loading' | 'loaded' | 'error';
|
|
5
|
+
type FilePreviewerImageFit = 'contain' | 'cover' | 'fill' | 'none' | 'scale-down';
|
|
6
|
+
export type FilePreviewerImageProps = Simplify<Except<Partial<ImageProps>, 'fit'> & {
|
|
7
|
+
fit?: FilePreviewerImageFit;
|
|
8
|
+
} & UnknownRecord>;
|
|
9
|
+
export type FilePreviewerMediaSkin = 'default' | 'minimal' | 'native' | false | (string & {});
|
|
10
|
+
export type FilePreviewerMediaProps = Simplify<UnknownRecord & {
|
|
11
|
+
skin?: FilePreviewerMediaSkin;
|
|
12
|
+
playerProps?: UnknownRecord;
|
|
13
|
+
skinProps?: UnknownRecord;
|
|
14
|
+
}>;
|
|
15
|
+
export type FilePreviewerPdfProps = UnknownRecord;
|
|
3
16
|
export interface FilePreviewerContentSlotProps {
|
|
4
17
|
src: string;
|
|
5
18
|
type: FilePreviewerType;
|
|
@@ -26,4 +39,8 @@ export interface FilePreviewerProps {
|
|
|
26
39
|
escToClose?: boolean;
|
|
27
40
|
popupContainer?: HTMLElement | string;
|
|
28
41
|
renderToBody?: boolean;
|
|
42
|
+
imageProps?: FilePreviewerImageProps;
|
|
43
|
+
mediaProps?: FilePreviewerMediaProps;
|
|
44
|
+
pdfProps?: FilePreviewerPdfProps;
|
|
29
45
|
}
|
|
46
|
+
export {};
|
package/es/index.css
CHANGED
|
@@ -14897,9 +14897,6 @@ body.sd-tour-active .sd-tour-popover * {
|
|
|
14897
14897
|
.sd-file-previewer-inline {
|
|
14898
14898
|
overflow: hidden;
|
|
14899
14899
|
color: var(--sd-color-text-1);
|
|
14900
|
-
background: var(--sd-color-fill-1);
|
|
14901
|
-
border: 1px solid var(--sd-color-border-2);
|
|
14902
|
-
border-radius: var(--sd-border-radius-medium);
|
|
14903
14900
|
}
|
|
14904
14901
|
.sd-file-previewer-mask {
|
|
14905
14902
|
position: absolute;
|
|
@@ -14951,31 +14948,45 @@ body.sd-tour-active .sd-tour-popover * {
|
|
|
14951
14948
|
min-width: 0;
|
|
14952
14949
|
min-height: 0;
|
|
14953
14950
|
}
|
|
14954
|
-
.sd-file-previewer-image, .sd-file-previewer-video-player, .sd-file-previewer-video, .sd-file-previewer-pdf {
|
|
14951
|
+
.sd-file-previewer-image, .sd-file-previewer-video-player, .sd-file-previewer-audio-player, .sd-file-previewer-video, .sd-file-previewer-pdf {
|
|
14955
14952
|
display: block;
|
|
14956
14953
|
width: 100%;
|
|
14957
14954
|
height: 100%;
|
|
14958
14955
|
}
|
|
14959
|
-
.sd-file-previewer-image {
|
|
14956
|
+
.sd-file-previewer-image .sd-image-img {
|
|
14960
14957
|
object-fit: contain;
|
|
14961
14958
|
}
|
|
14959
|
+
.sd-file-previewer-video-player, .sd-file-previewer-audio-player {
|
|
14960
|
+
min-width: 0 !important;
|
|
14961
|
+
min-height: 0 !important;
|
|
14962
|
+
}
|
|
14962
14963
|
.sd-file-previewer-video-player {
|
|
14963
14964
|
max-width: 1180px;
|
|
14964
14965
|
max-height: 78vh;
|
|
14965
14966
|
}
|
|
14966
|
-
.sd-file-previewer-
|
|
14967
|
+
.sd-file-previewer-media-skin {
|
|
14968
|
+
display: block;
|
|
14969
|
+
width: 100%;
|
|
14970
|
+
min-width: 0 !important;
|
|
14967
14971
|
max-width: 100%;
|
|
14968
|
-
|
|
14972
|
+
height: 100%;
|
|
14973
|
+
min-height: 0 !important;
|
|
14974
|
+
max-height: 100%;
|
|
14975
|
+
--media-object-fit: cover;
|
|
14969
14976
|
}
|
|
14970
14977
|
.sd-file-previewer-video {
|
|
14971
|
-
|
|
14978
|
+
object-fit: cover;
|
|
14979
|
+
}
|
|
14980
|
+
.sd-file-previewer-inline .sd-file-previewer-video-player {
|
|
14981
|
+
max-width: 100%;
|
|
14982
|
+
max-height: none;
|
|
14972
14983
|
}
|
|
14973
14984
|
.sd-file-previewer-audio-panel {
|
|
14974
14985
|
box-sizing: border-box;
|
|
14975
14986
|
width: 100%;
|
|
14976
14987
|
padding: 20px;
|
|
14977
14988
|
}
|
|
14978
|
-
.sd-file-previewer-audio {
|
|
14989
|
+
.sd-file-previewer-audio-player, .sd-file-previewer-audio {
|
|
14979
14990
|
display: block;
|
|
14980
14991
|
width: 100%;
|
|
14981
14992
|
}
|
|
@@ -16603,19 +16614,12 @@ body.sd-tour-active .sd-tour-popover * {
|
|
|
16603
16614
|
.sd-color-picker-panel .sd-color-picker-select {
|
|
16604
16615
|
width: 58px;
|
|
16605
16616
|
}
|
|
16606
|
-
.sd-color-picker-panel .sd-color-picker-input-alpha {
|
|
16607
|
-
flex: 0 0 auto;
|
|
16608
|
-
width: 52px;
|
|
16609
|
-
}
|
|
16610
16617
|
.sd-color-picker-panel .sd-color-picker-input-group {
|
|
16611
16618
|
width: 100%;
|
|
16612
16619
|
}
|
|
16613
16620
|
.sd-color-picker-panel .sd-color-picker-format-input {
|
|
16614
16621
|
min-width: 0;
|
|
16615
16622
|
}
|
|
16616
|
-
.sd-color-picker-panel .sd-color-picker-input-hex .sd-input {
|
|
16617
|
-
padding-left: 4px;
|
|
16618
|
-
}
|
|
16619
16623
|
.sd-color-picker-panel.sd-color-picker-panel-disabled .sd-color-picker-palette,
|
|
16620
16624
|
.sd-color-picker-panel.sd-color-picker-panel-disabled .sd-color-picker-control-bar,
|
|
16621
16625
|
.sd-color-picker-panel.sd-color-picker-panel-disabled .sd-color-picker-color-block,
|
package/es/index.d.ts
CHANGED
|
@@ -70,7 +70,7 @@ export type { ColProps, GridColInstance, GridInstance, GridItemInstance, GridIte
|
|
|
70
70
|
export { default as Icon } from './icon-component';
|
|
71
71
|
export type { IconInstance, IconProps } from './icon-component';
|
|
72
72
|
export { default as FilePreviewer } from './file-previewer';
|
|
73
|
-
export type { FilePreviewerContentSlotProps, FilePreviewerInstance, FilePreviewerProps, FilePreviewerStatus, FilePreviewerType, } from './file-previewer';
|
|
73
|
+
export type { FilePreviewerContentSlotProps, FilePreviewerImageProps, FilePreviewerInstance, FilePreviewerMediaProps, FilePreviewerMediaSkin, FilePreviewerPdfProps, FilePreviewerProps, FilePreviewerStatus, FilePreviewerType, } from './file-previewer';
|
|
74
74
|
export { default as Image, ImagePreviewAction, ImagePreview, ImagePreviewGroup } from './image';
|
|
75
75
|
export type { ImageInstance, ImagePreviewActionInstance, ImagePreviewInstance, ImagePreviewGroupInstance, } from './image';
|
|
76
76
|
export { default as Input, InputGroup, InputPassword, InputSearch } from './input';
|
package/es/index.js
CHANGED
|
@@ -66,6 +66,10 @@ import descriptions_item_default from "./descriptions/descriptions-item.js";
|
|
|
66
66
|
import Descriptions from "./descriptions/index.js";
|
|
67
67
|
import Divider from "./divider/index.js";
|
|
68
68
|
import Drawer from "./drawer/index.js";
|
|
69
|
+
import preview_action_default from "./image/preview-action.js";
|
|
70
|
+
import preview_default from "./image/preview.js";
|
|
71
|
+
import preview_group_default from "./image/preview-group.js";
|
|
72
|
+
import Image from "./image/index.js";
|
|
69
73
|
import FilePreviewer from "./file-previewer/index.js";
|
|
70
74
|
import grid_col_default from "./grid/grid-col.js";
|
|
71
75
|
import grid_item_default from "./grid/grid-item.js";
|
|
@@ -74,10 +78,6 @@ import Grid from "./grid/index.js";
|
|
|
74
78
|
import form_item_default from "./form/form-item.js";
|
|
75
79
|
import Form from "./form/index.js";
|
|
76
80
|
import Icon from "./icon-component/index.js";
|
|
77
|
-
import preview_action_default from "./image/preview-action.js";
|
|
78
|
-
import preview_default from "./image/preview.js";
|
|
79
|
-
import preview_group_default from "./image/preview-group.js";
|
|
80
|
-
import Image from "./image/index.js";
|
|
81
81
|
import { A2UI_0_8, defineJsonFormComponents, defineJsonFormSchemas } from "./json-form/types.js";
|
|
82
82
|
import Textarea from "./textarea/index.js";
|
|
83
83
|
import Mention from "./mention/index.js";
|