75 lines
1.4 KiB
JavaScript
75 lines
1.4 KiB
JavaScript
import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
|
|
import { mutable } from '../../../utils/typescript.mjs';
|
|
import { isNumber } from '../../../utils/types.mjs';
|
|
|
|
const imageProps = buildProps({
|
|
hideOnClickModal: Boolean,
|
|
src: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
fit: {
|
|
type: String,
|
|
values: ["", "contain", "cover", "fill", "none", "scale-down"],
|
|
default: ""
|
|
},
|
|
loading: {
|
|
type: String,
|
|
values: ["eager", "lazy"]
|
|
},
|
|
lazy: Boolean,
|
|
scrollContainer: {
|
|
type: definePropType([String, Object])
|
|
},
|
|
previewSrcList: {
|
|
type: definePropType(Array),
|
|
default: () => mutable([])
|
|
},
|
|
previewTeleported: Boolean,
|
|
zIndex: {
|
|
type: Number
|
|
},
|
|
initialIndex: {
|
|
type: Number,
|
|
default: 0
|
|
},
|
|
infinite: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
closeOnPressEscape: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
zoomRate: {
|
|
type: Number,
|
|
default: 1.2
|
|
},
|
|
scale: {
|
|
type: Number,
|
|
default: 1
|
|
},
|
|
minScale: {
|
|
type: Number,
|
|
default: 0.2
|
|
},
|
|
maxScale: {
|
|
type: Number,
|
|
default: 7
|
|
},
|
|
showProgress: Boolean,
|
|
crossorigin: {
|
|
type: definePropType(String)
|
|
}
|
|
});
|
|
const imageEmits = {
|
|
load: (evt) => evt instanceof Event,
|
|
error: (evt) => evt instanceof Event,
|
|
switch: (val) => isNumber(val),
|
|
close: () => true,
|
|
show: () => true
|
|
};
|
|
|
|
export { imageEmits, imageProps };
|
|
//# sourceMappingURL=image.mjs.map
|