fangguo-component 1.2.2 → 1.2.4

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.
Files changed (51) hide show
  1. package/dist/{ErrorImage-CFVt1ht_.js → ErrorImage-Ao9kEEUg.js} +2 -2
  2. package/dist/FgCascader.css +3 -11
  3. package/dist/{FgCascader.vue_vue_type_style_index_0_lang-CstlYwHs.js → FgCascader.vue_vue_type_style_index_0_lang-DzvTfHp4.js} +4 -13
  4. package/dist/{HSelect-DgFjd08Y.js → HSelect-0w2mSrtm.js} +1 -1
  5. package/dist/{HSelectAll.vue_vue_type_script_setup_true_lang-C6qzdQT-.js → HSelectAll.vue_vue_type_script_setup_true_lang-xHFbYs59.js} +1 -1
  6. package/dist/{HSelectSJ-DOFUzTZV.js → HSelectSJ-Cm573j6B.js} +1 -1
  7. package/dist/{ImgViewerHost.vue_vue_type_script_setup_true_lang-DBs42WOq.js → ImgViewerHost.vue_vue_type_script_setup_true_lang-DO9s-b9s.js} +42 -3
  8. package/dist/{LazyPopover-7ebuh-QG.js → LazyPopover-CcvilJ6U.js} +25 -3
  9. package/dist/LazyPopover.css +1 -1
  10. package/dist/{SelectTree-DUH92Iwr.js → SelectTree-BHvvkiQi.js} +1 -1
  11. package/dist/{ViewImg-DXhF20SL.js → ViewImg-CD4QJK4R.js} +137 -34
  12. package/dist/ViewImg.css +31 -35
  13. package/dist/ViewImgPopover-D-1b2nEa.js +497 -0
  14. package/dist/ViewImgPopover.css +35 -12
  15. package/dist/components/cascader/index.js +1 -1
  16. package/dist/components/errorImage/index.js +2 -2
  17. package/dist/components/hSelect/index.js +1 -1
  18. package/dist/components/hSelectAll/index.js +1 -1
  19. package/dist/components/hSelectSJ/index.js +1 -1
  20. package/dist/components/imgViewerHost/ImgViewerHost.vue.d.ts +7 -1
  21. package/dist/components/imgViewerHost/imgViewerAutoHost.d.ts +2 -0
  22. package/dist/components/imgViewerHost/imgViewerHostRegistry.d.ts +5 -0
  23. package/dist/components/imgViewerHost/index.js +2 -2
  24. package/dist/components/index.js +22 -18
  25. package/dist/components/lazyPopover/LazyPopover.vue.d.ts +2 -0
  26. package/dist/components/lazyPopover/index.js +1 -1
  27. package/dist/components/selectTree/index.js +1 -1
  28. package/dist/components/viewImg/ViewImg.vue.d.ts +32 -14
  29. package/dist/components/viewImg/ViewImgErrorFallback.vue.d.ts +14 -0
  30. package/dist/components/viewImg/defaults.d.ts +28 -0
  31. package/dist/components/viewImg/index.d.ts +3 -0
  32. package/dist/components/viewImg/index.js +6 -2
  33. package/dist/components/viewImgPopover/ViewImgPopover.vue.d.ts +158 -66
  34. package/dist/components/viewImgPopover/index.js +1 -1
  35. package/dist/components/viewImgPreview/ViewImgPreview.vue.d.ts +6 -6
  36. package/dist/imgViewerAutoHost-BQVVGop1.js +32 -0
  37. package/dist/{imgViewerStore-DK3zvGf4.js → imgViewerStore-Ajm-L7R5.js} +7 -0
  38. package/dist/{index-Ce_edAQB.js → index-CALlgLrT.js} +17 -13
  39. package/dist/{index-Qkq7I01c.js → index-rEz2pixF.js} +5 -1
  40. package/dist/index.d.ts +7 -3
  41. package/dist/index.js +56 -48
  42. package/dist/montageImgUrl-DP5jMHCX.js +445 -0
  43. package/dist/tools/ImageParserUtils/index.d.ts +1 -1
  44. package/dist/tools/imgUrl/imageUrl.d.ts +209 -0
  45. package/dist/tools/imgUrl/index.d.ts +2 -0
  46. package/dist/tools/imgUrl/index.js +12 -8
  47. package/dist/tools/imgUrl/montageImgUrl.d.ts +11 -5
  48. package/dist/tools/index.js +17 -13
  49. package/package.json +1 -1
  50. package/dist/ViewImgPopover-QblZG0z5.js +0 -343
  51. package/dist/montageImgUrl-CwgYnB2h.js +0 -204
@@ -0,0 +1,497 @@
1
+ import './ViewImgPopover.css';var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ import { ElWatermark } from "element-plus/es";
33
+ import { defineComponent, useAttrs, ref, computed, watch, openBlock, createElementBlock, normalizeStyle, unref, normalizeClass, createVNode, withCtx, Fragment, renderSlot, createBlock, createElementVNode, createSlots, normalizeProps, guardReactiveProps, createCommentVNode, mergeProps, withModifiers } from "vue";
34
+ import { L as LazyPopover } from "./LazyPopover-CcvilJ6U.js";
35
+ import { V as ViewImgErrorFallback, F as FgViewImg, u as useViewImgDefaults } from "./ViewImg-CD4QJK4R.js";
36
+ import { m as montageImgUrl } from "./montageImgUrl-DP5jMHCX.js";
37
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
38
+ const _hoisted_1 = {
39
+ key: 1,
40
+ class: "fg-view-img-popover__loading-icon",
41
+ viewBox: "0 0 1280 1024"
42
+ };
43
+ const _hoisted_2 = ["fill"];
44
+ const _hoisted_3 = {
45
+ key: 1,
46
+ class: "fg-view-img-popover__loading-icon",
47
+ viewBox: "0 0 1280 1024"
48
+ };
49
+ const _hoisted_4 = ["fill"];
50
+ const _hoisted_5 = {
51
+ key: 1,
52
+ class: "fg-view-img-popover__loading-icon",
53
+ viewBox: "0 0 1280 1024"
54
+ };
55
+ const _hoisted_6 = ["fill"];
56
+ const HOVER_POPOVER_PADDING = 10;
57
+ const HOVER_POPOVER_MAX_HEIGHT = 400;
58
+ const DEFAULT_LOADING_ICON_COLOR = "#cfd2d7";
59
+ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({}, {
60
+ inheritAttrs: false
61
+ }), {
62
+ __name: "ViewImgPopover",
63
+ props: {
64
+ src: { default: "" },
65
+ fit: {},
66
+ lazy: { type: Boolean },
67
+ loading: { type: Boolean },
68
+ preview: { type: Boolean },
69
+ previewSrcList: {},
70
+ initialIndex: {},
71
+ defImgPreviewIndex: {},
72
+ infinite: { type: Boolean },
73
+ zIndex: {},
74
+ hideOnClickModal: { type: Boolean },
75
+ closeOnPressEscape: { type: Boolean, default: true },
76
+ previewTeleported: { type: Boolean },
77
+ teleported: { type: Boolean },
78
+ zoomRate: {},
79
+ scale: {},
80
+ minScale: {},
81
+ maxScale: {},
82
+ showProgress: { type: Boolean },
83
+ toolbarBgColor: {},
84
+ backgroundColor: {},
85
+ toolbarIconColor: {},
86
+ simpleExtraTools: {},
87
+ renderExtraTools: {},
88
+ originalToolbar: {},
89
+ errorColor: {},
90
+ errorOffset: {},
91
+ errorText: {},
92
+ ossProcess: { type: Boolean, default: true },
93
+ ossLinks: {},
94
+ imgSize: {},
95
+ previewStripQuery: { type: Boolean, default: true },
96
+ hoverSrc: { default: "" },
97
+ previewSrc: { default: "" },
98
+ hoverImgSize: { default: void 0 },
99
+ hoverPopoverProps: { default: () => ({}) },
100
+ isShowWatermark: { type: Boolean, default: false },
101
+ waterMarkTitle: {},
102
+ showPreviewIcon: { type: Boolean, default: false },
103
+ showHoverOnError: { type: Boolean, default: false },
104
+ loadingIconColor: {}
105
+ },
106
+ emits: ["load", "error", "retry", "show", "close", "switch"],
107
+ setup(__props, { emit: __emit }) {
108
+ const props = __props;
109
+ const emit = __emit;
110
+ const attrs = useAttrs();
111
+ const viewImgRef = ref(null);
112
+ const referenceLoadError = ref(false);
113
+ const viewImgDefaults = useViewImgDefaults();
114
+ const ViewImgDefaultRenderer = defineComponent({
115
+ props: {
116
+ render: {
117
+ type: Function,
118
+ required: true
119
+ },
120
+ payload: {
121
+ type: Object,
122
+ required: true
123
+ }
124
+ },
125
+ setup(props2) {
126
+ return () => props2.render(props2.payload);
127
+ }
128
+ });
129
+ const viewImgProps = computed(() => {
130
+ const _a = props, {
131
+ hoverSrc: _h,
132
+ previewSrc: _ps,
133
+ hoverImgSize: _hi,
134
+ hoverPopoverProps: _hp,
135
+ isShowWatermark: _w,
136
+ waterMarkTitle: _wt,
137
+ showPreviewIcon: _spi,
138
+ showHoverOnError: _shoe,
139
+ loadingIconColor: _lic
140
+ } = _a, rest = __objRest(_a, [
141
+ "hoverSrc",
142
+ "previewSrc",
143
+ "hoverImgSize",
144
+ "hoverPopoverProps",
145
+ "isShowWatermark",
146
+ "waterMarkTitle",
147
+ "showPreviewIcon",
148
+ "showHoverOnError",
149
+ "loadingIconColor"
150
+ ]);
151
+ return __spreadProps(__spreadValues({}, rest), {
152
+ previewSrcList: shouldEnableReferencePreview.value ? resolvePopoverPreviewSrcList() : []
153
+ });
154
+ });
155
+ const referenceViewImgBind = computed(() => {
156
+ const _a = attrs, { class: _class, style: _style } = _a, rest = __objRest(_a, ["class", "style"]);
157
+ return __spreadValues(__spreadValues({}, rest), viewImgProps.value);
158
+ });
159
+ const handlePreviewIconClick = () => {
160
+ var _a;
161
+ if (isReferenceInvalid.value) return;
162
+ (_a = viewImgRef.value) == null ? void 0 : _a.openPreview(resolvePopoverPreviewSrcList());
163
+ };
164
+ const mergePopperStyle = (base, extra) => {
165
+ if (!extra) return base;
166
+ if (typeof extra === "string") return extra;
167
+ return __spreadValues(__spreadValues({}, base), extra);
168
+ };
169
+ const HOVER_POPOVER_MAX_HEIGHT_CSS = `${HOVER_POPOVER_MAX_HEIGHT}px`;
170
+ const HOVER_IMAGE_MAX_HEIGHT_CSS = `${HOVER_POPOVER_MAX_HEIGHT - HOVER_POPOVER_PADDING * 2}px`;
171
+ const DEFAULT_HOVER_IMG_SIZE = { h: 420 };
172
+ const resolvedWaterMarkTitle = computed(() => {
173
+ var _a, _b;
174
+ return (_b = (_a = props.waterMarkTitle) != null ? _a : viewImgDefaults.waterMarkTitle) != null ? _b : "";
175
+ });
176
+ const resolvedLoadingIconColor = computed(
177
+ () => {
178
+ var _a, _b;
179
+ return (_b = (_a = props.loadingIconColor) != null ? _a : viewImgDefaults.loadingIconColor) != null ? _b : DEFAULT_LOADING_ICON_COLOR;
180
+ }
181
+ );
182
+ const defaultSlotPayload = computed(() => {
183
+ var _a, _b, _c, _d;
184
+ return {
185
+ src: props.src,
186
+ displaySrc: ((_a = viewImgRef.value) == null ? void 0 : _a.displaySrc) || props.src,
187
+ loading: !!props.loading,
188
+ loadError: referenceLoadError.value,
189
+ errorText: (_b = props.errorText) != null ? _b : "",
190
+ errorColor: (_c = props.errorColor) != null ? _c : "#f5f5f5",
191
+ errorOffset: (_d = props.errorOffset) != null ? _d : 0
192
+ };
193
+ });
194
+ const isReferenceInvalid = computed(() => !props.src.trim() || referenceLoadError.value);
195
+ const isHoverPopoverDisabled = computed(
196
+ () => isReferenceInvalid.value && !props.showHoverOnError
197
+ );
198
+ const canShowPreviewIcon = computed(
199
+ () => props.showPreviewIcon && !isReferenceInvalid.value
200
+ );
201
+ const shouldEnableReferencePreview = computed(() => {
202
+ var _a;
203
+ return props.preview || !!((_a = props.previewSrcList) == null ? void 0 : _a.length);
204
+ });
205
+ const hoverPopoverPropsMerged = computed(() => {
206
+ var _a;
207
+ const _b = (_a = props.hoverPopoverProps) != null ? _a : {}, { popperStyle: userPopperStyle, popperClass: userPopperClass } = _b, restHoverPopoverProps = __objRest(_b, ["popperStyle", "popperClass"]);
208
+ const popperClass = [userPopperClass, "fg-view-img-popover"].filter(Boolean).join(" ");
209
+ return __spreadValues({
210
+ placement: "right",
211
+ trigger: "hover",
212
+ width: 400,
213
+ teleported: true,
214
+ popperClass,
215
+ popperStyle: mergePopperStyle(
216
+ {
217
+ maxHeight: HOVER_POPOVER_MAX_HEIGHT_CSS,
218
+ overflow: "hidden",
219
+ padding: `${HOVER_POPOVER_PADDING}px`,
220
+ boxSizing: "border-box"
221
+ },
222
+ userPopperStyle
223
+ )
224
+ }, restHoverPopoverProps);
225
+ });
226
+ const resolveImgUrl = (url, imgSize) => {
227
+ if (!props.ossProcess) return url;
228
+ return montageImgUrl(url, imgSize, props.ossLinks ? { ossLinks: props.ossLinks } : void 0);
229
+ };
230
+ const stripQueryParams = (url) => {
231
+ const index = url.indexOf("?");
232
+ return index === -1 ? url : url.slice(0, index);
233
+ };
234
+ const applyPreviewUrlFallback = (url) => {
235
+ if (!props.previewStripQuery || !url) return url;
236
+ return stripQueryParams(url);
237
+ };
238
+ const resolvePopoverPreviewSrcList = () => {
239
+ var _a;
240
+ if (props.previewSrc) return [props.previewSrc];
241
+ if ((_a = props.previewSrcList) == null ? void 0 : _a.length) {
242
+ return props.previewSrcList.map((url) => applyPreviewUrlFallback(url));
243
+ }
244
+ if (!props.src.trim()) return [];
245
+ return [applyPreviewUrlFallback(props.src)];
246
+ };
247
+ const resolveResizeProcess = (imgSize) => {
248
+ const { w, h, s, l } = imgSize != null ? imgSize : {};
249
+ if (w) return `resize,w_${w}`;
250
+ if (h) return `resize,h_${h}`;
251
+ if (s) return `resize,s_${s}`;
252
+ if (l) return `resize,l_${l}`;
253
+ return "resize,h_420";
254
+ };
255
+ const replaceOssResizeProcess = (url, imgSize) => {
256
+ const resizeProcess = resolveResizeProcess(imgSize);
257
+ if (url.includes("x-oss-process=image/resize,")) {
258
+ return url.replace(/image\/resize,[^/?&#]+/, `image/${resizeProcess}`);
259
+ }
260
+ if (url.includes("x-oss-process=image/")) {
261
+ return url.replace("x-oss-process=image/", `x-oss-process=image/${resizeProcess}/`);
262
+ }
263
+ return "";
264
+ };
265
+ const resolveHoverImgUrl = (url, imgSize) => {
266
+ if (!url.trim()) return "";
267
+ if (!props.ossProcess) return url;
268
+ const replaced = replaceOssResizeProcess(url, imgSize);
269
+ if (replaced) return replaced;
270
+ return resolveImgUrl(url, imgSize);
271
+ };
272
+ const handleReferenceLoad = (event) => {
273
+ referenceLoadError.value = false;
274
+ emit("load", event);
275
+ };
276
+ const handleReferenceError = (event) => {
277
+ referenceLoadError.value = true;
278
+ emit("error", event);
279
+ };
280
+ const handleReferenceRetry = (payload) => {
281
+ referenceLoadError.value = false;
282
+ emit("retry", payload);
283
+ };
284
+ watch(
285
+ () => props.src,
286
+ () => {
287
+ referenceLoadError.value = false;
288
+ }
289
+ );
290
+ const hoverPreviewSrc = computed(() => {
291
+ var _a;
292
+ const hoverSource = props.hoverSrc || props.src;
293
+ if (props.hoverSrc && !props.hoverImgSize) return props.hoverSrc;
294
+ return resolveHoverImgUrl(hoverSource, (_a = props.hoverImgSize) != null ? _a : DEFAULT_HOVER_IMG_SIZE);
295
+ });
296
+ const hoverImgStyle = computed(() => ({
297
+ width: "100%",
298
+ height: HOVER_IMAGE_MAX_HEIGHT_CSS
299
+ }));
300
+ return (_ctx, _cache) => {
301
+ const _component_el_watermark = ElWatermark;
302
+ return openBlock(), createElementBlock("div", {
303
+ class: normalizeClass(["fg-view-img-popover__reference", unref(attrs).class]),
304
+ style: normalizeStyle(unref(attrs).style)
305
+ }, [
306
+ createVNode(LazyPopover, {
307
+ class: "fg-view-img-popover__trigger",
308
+ props: hoverPopoverPropsMerged.value,
309
+ disabled: isHoverPopoverDisabled.value
310
+ }, {
311
+ reference: withCtx(() => [
312
+ createVNode(FgViewImg, mergeProps({
313
+ ref_key: "viewImgRef",
314
+ ref: viewImgRef
315
+ }, referenceViewImgBind.value, {
316
+ onLoad: handleReferenceLoad,
317
+ onError: handleReferenceError,
318
+ onRetry: handleReferenceRetry,
319
+ onShow: _cache[0] || (_cache[0] = (p) => emit("show", p)),
320
+ onClose: _cache[1] || (_cache[1] = ($event) => emit("close")),
321
+ onSwitch: _cache[2] || (_cache[2] = (i) => emit("switch", i))
322
+ }), createSlots({
323
+ placeholder: withCtx((slotProps) => [
324
+ renderSlot(_ctx.$slots, "placeholder", normalizeProps(guardReactiveProps(slotProps)), () => [
325
+ unref(viewImgDefaults).placeholder ? (openBlock(), createBlock(unref(ViewImgDefaultRenderer), {
326
+ key: 0,
327
+ render: unref(viewImgDefaults).placeholder,
328
+ payload: slotProps
329
+ }, null, 8, ["render", "payload"])) : (openBlock(), createElementBlock("svg", _hoisted_1, [
330
+ createElementVNode("path", {
331
+ d: "M1174.826667 0H105.216A105.258667 105.258667 0 0 0-0.042667 105.258667V918.613333a105.258667 105.258667 0 0 0 105.258667 105.258667h1069.653333A105.258667 105.258667 0 0 0 1280.085333 918.613333V105.258667A105.344 105.344 0 0 0 1174.826667 0z m-402.773334 181.461333a105.386667 105.386667 0 1 1-0.042666 210.773334 105.386667 105.386667 0 0 1 0-210.773334zM104.746667 883.882667S191.018667 381.098667 391.509333 381.098667c196.48 0 246.528 351.616 384.810667 351.616 87.210667 0 78.08-158.72 216.490667-158.72 99.242667 0 162.304 309.888 162.304 309.888H104.789333z",
332
+ fill: resolvedLoadingIconColor.value
333
+ }, null, 8, _hoisted_2)
334
+ ]))
335
+ ], true)
336
+ ]),
337
+ _: 2
338
+ }, [
339
+ _ctx.$slots.error ? {
340
+ name: "error",
341
+ fn: withCtx((slotProps) => [
342
+ renderSlot(_ctx.$slots, "error", normalizeProps(guardReactiveProps(slotProps)), void 0, true)
343
+ ]),
344
+ key: "0"
345
+ } : void 0
346
+ ]), 1040)
347
+ ]),
348
+ default: withCtx(() => [
349
+ hoverPreviewSrc.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
350
+ referenceLoadError.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
351
+ !__props.isShowWatermark ? (openBlock(), createElementBlock("div", {
352
+ key: 0,
353
+ class: "fg-view-img-popover__hover-image fg-view-img-popover__hover-error",
354
+ style: normalizeStyle(hoverImgStyle.value)
355
+ }, [
356
+ _ctx.$slots.error ? renderSlot(_ctx.$slots, "error", { key: 0 }, void 0, true) : unref(viewImgDefaults).error ? (openBlock(), createBlock(unref(ViewImgDefaultRenderer), {
357
+ key: 1,
358
+ render: unref(viewImgDefaults).error,
359
+ payload: defaultSlotPayload.value
360
+ }, null, 8, ["render", "payload"])) : (openBlock(), createBlock(ViewImgErrorFallback, {
361
+ key: 2,
362
+ src: defaultSlotPayload.value.src,
363
+ "error-text": defaultSlotPayload.value.errorText,
364
+ "error-color": defaultSlotPayload.value.errorColor
365
+ }, null, 8, ["src", "error-text", "error-color"]))
366
+ ], 4)) : (openBlock(), createBlock(_component_el_watermark, {
367
+ key: 1,
368
+ class: "fg-view-img-popover__watermark",
369
+ content: [resolvedWaterMarkTitle.value],
370
+ gap: [10, 10],
371
+ font: { fontSize: 16, color: "rgba(0, 0, 0, 0.3)" }
372
+ }, {
373
+ default: withCtx(() => [
374
+ createElementVNode("div", {
375
+ class: "fg-view-img-popover__hover-image fg-view-img-popover__hover-error",
376
+ style: normalizeStyle(hoverImgStyle.value)
377
+ }, [
378
+ _ctx.$slots.error ? renderSlot(_ctx.$slots, "error", { key: 0 }, void 0, true) : unref(viewImgDefaults).error ? (openBlock(), createBlock(unref(ViewImgDefaultRenderer), {
379
+ key: 1,
380
+ render: unref(viewImgDefaults).error,
381
+ payload: defaultSlotPayload.value
382
+ }, null, 8, ["render", "payload"])) : (openBlock(), createBlock(ViewImgErrorFallback, {
383
+ key: 2,
384
+ src: defaultSlotPayload.value.src,
385
+ "error-text": defaultSlotPayload.value.errorText,
386
+ "error-color": defaultSlotPayload.value.errorColor
387
+ }, null, 8, ["src", "error-text", "error-color"]))
388
+ ], 4)
389
+ ]),
390
+ _: 3
391
+ }, 8, ["content"]))
392
+ ], 64)) : !__props.isShowWatermark ? (openBlock(), createBlock(FgViewImg, {
393
+ key: 1,
394
+ class: "fg-view-img-popover__hover-image",
395
+ src: hoverPreviewSrc.value,
396
+ style: normalizeStyle(hoverImgStyle.value),
397
+ preview: false,
398
+ "oss-process": false,
399
+ "error-color": __props.errorColor,
400
+ "error-offset": __props.errorOffset,
401
+ "error-text": __props.errorText,
402
+ loading: __props.loading,
403
+ fit: "contain"
404
+ }, createSlots({
405
+ placeholder: withCtx((slotProps) => [
406
+ renderSlot(_ctx.$slots, "placeholder", normalizeProps(guardReactiveProps(slotProps)), () => [
407
+ unref(viewImgDefaults).placeholder ? (openBlock(), createBlock(unref(ViewImgDefaultRenderer), {
408
+ key: 0,
409
+ render: unref(viewImgDefaults).placeholder,
410
+ payload: slotProps
411
+ }, null, 8, ["render", "payload"])) : (openBlock(), createElementBlock("svg", _hoisted_3, [
412
+ createElementVNode("path", {
413
+ d: "M1174.826667 0H105.216A105.258667 105.258667 0 0 0-0.042667 105.258667V918.613333a105.258667 105.258667 0 0 0 105.258667 105.258667h1069.653333A105.258667 105.258667 0 0 0 1280.085333 918.613333V105.258667A105.344 105.344 0 0 0 1174.826667 0z m-402.773334 181.461333a105.386667 105.386667 0 1 1-0.042666 210.773334 105.386667 105.386667 0 0 1 0-210.773334zM104.746667 883.882667S191.018667 381.098667 391.509333 381.098667c196.48 0 246.528 351.616 384.810667 351.616 87.210667 0 78.08-158.72 216.490667-158.72 99.242667 0 162.304 309.888 162.304 309.888H104.789333z",
414
+ fill: resolvedLoadingIconColor.value
415
+ }, null, 8, _hoisted_4)
416
+ ]))
417
+ ], true)
418
+ ]),
419
+ _: 2
420
+ }, [
421
+ _ctx.$slots.error ? {
422
+ name: "error",
423
+ fn: withCtx((slotProps) => [
424
+ renderSlot(_ctx.$slots, "error", normalizeProps(guardReactiveProps(slotProps)), void 0, true)
425
+ ]),
426
+ key: "0"
427
+ } : void 0
428
+ ]), 1032, ["src", "style", "error-color", "error-offset", "error-text", "loading"])) : (openBlock(), createBlock(_component_el_watermark, {
429
+ key: 2,
430
+ class: "fg-view-img-popover__watermark",
431
+ content: [resolvedWaterMarkTitle.value],
432
+ gap: [10, 10],
433
+ font: { fontSize: 16, color: "rgba(0, 0, 0, 0.3)" }
434
+ }, {
435
+ default: withCtx(() => [
436
+ createVNode(FgViewImg, {
437
+ class: "fg-view-img-popover__hover-image",
438
+ src: hoverPreviewSrc.value,
439
+ style: normalizeStyle(hoverImgStyle.value),
440
+ preview: false,
441
+ "oss-process": false,
442
+ "error-color": __props.errorColor,
443
+ "error-offset": __props.errorOffset,
444
+ "error-text": __props.errorText,
445
+ loading: __props.loading,
446
+ fit: "contain"
447
+ }, createSlots({
448
+ placeholder: withCtx((slotProps) => [
449
+ renderSlot(_ctx.$slots, "placeholder", normalizeProps(guardReactiveProps(slotProps)), () => [
450
+ unref(viewImgDefaults).placeholder ? (openBlock(), createBlock(unref(ViewImgDefaultRenderer), {
451
+ key: 0,
452
+ render: unref(viewImgDefaults).placeholder,
453
+ payload: slotProps
454
+ }, null, 8, ["render", "payload"])) : (openBlock(), createElementBlock("svg", _hoisted_5, [
455
+ createElementVNode("path", {
456
+ d: "M1174.826667 0H105.216A105.258667 105.258667 0 0 0-0.042667 105.258667V918.613333a105.258667 105.258667 0 0 0 105.258667 105.258667h1069.653333A105.258667 105.258667 0 0 0 1280.085333 918.613333V105.258667A105.344 105.344 0 0 0 1174.826667 0z m-402.773334 181.461333a105.386667 105.386667 0 1 1-0.042666 210.773334 105.386667 105.386667 0 0 1 0-210.773334zM104.746667 883.882667S191.018667 381.098667 391.509333 381.098667c196.48 0 246.528 351.616 384.810667 351.616 87.210667 0 78.08-158.72 216.490667-158.72 99.242667 0 162.304 309.888 162.304 309.888H104.789333z",
457
+ fill: resolvedLoadingIconColor.value
458
+ }, null, 8, _hoisted_6)
459
+ ]))
460
+ ], true)
461
+ ]),
462
+ _: 2
463
+ }, [
464
+ _ctx.$slots.error ? {
465
+ name: "error",
466
+ fn: withCtx((slotProps) => [
467
+ renderSlot(_ctx.$slots, "error", normalizeProps(guardReactiveProps(slotProps)), void 0, true)
468
+ ]),
469
+ key: "0"
470
+ } : void 0
471
+ ]), 1032, ["src", "style", "error-color", "error-offset", "error-text", "loading"])
472
+ ]),
473
+ _: 3
474
+ }, 8, ["content"]))
475
+ ], 64)) : createCommentVNode("", true)
476
+ ]),
477
+ _: 3
478
+ }, 8, ["props", "disabled"]),
479
+ canShowPreviewIcon.value ? (openBlock(), createElementBlock("svg", {
480
+ key: 0,
481
+ class: "fg-view-img-popover__preview-icon",
482
+ viewBox: "0 0 1024 1024",
483
+ onClick: withModifiers(handlePreviewIconClick, ["stop"])
484
+ }, [..._cache[3] || (_cache[3] = [
485
+ createElementVNode("path", {
486
+ d: "M493.487325 0.000427c66.597422 0 131.274995 13.012309 192.155534 38.610292a491.779939 491.779939 0 0 1 156.830316 105.805002 491.609286 491.609286 0 0 1 144.628611 348.98585 491.481296 491.481296 0 0 1-116.726808 318.694903l141.642179 141.770169a41.212754 41.212754 0 0 1 0 58.150087 41.212754 41.212754 0 0 1-58.150087 0L812.310217 870.331888a492.163909 492.163909 0 0 1-318.694902 116.726808 491.481296 491.481296 0 0 1-348.985851-144.628611A491.822602 491.822602 0 0 1 0.000853 493.486898 491.694612 491.694612 0 0 1 144.501474 144.629037 491.822602 491.822602 0 0 1 493.487325 0.000427z m0 82.254855c-227.096783 0-411.274279 184.134833-411.274279 411.274279 0 227.054119 184.177496 411.231616 411.274279 411.231616s411.274279-184.177496 411.274278-411.274279-184.177496-411.274279-411.274278-411.274279z m0 201.029503c22.611553 0 41.127428 18.515875 41.127427 41.127428v127.98992h127.989921c22.611553 0 41.084765 18.473212 41.084765 41.084765s-18.515875 41.127428-41.127428 41.127428h-127.947258v127.989921c0 22.611553-18.515875 41.084765-41.127427 41.084764a41.255418 41.255418 0 0 1-41.127428-41.127428v-127.947257H324.412639a41.255418 41.255418 0 0 1-41.127428-41.127428c0-22.611553 18.515875-41.127428 41.127428-41.127428h127.989921V324.412213c0-22.611553 18.473212-41.127428 41.084765-41.127428z",
487
+ fill: "currentColor"
488
+ }, null, -1)
489
+ ])])) : createCommentVNode("", true)
490
+ ], 6);
491
+ };
492
+ }
493
+ }));
494
+ const ViewImgPopover = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a3f15571"]]);
495
+ export {
496
+ ViewImgPopover as V
497
+ };
@@ -1,33 +1,43 @@
1
- .fg-view-img-popover__reference[data-v-868c46fb] {
1
+ @charset "UTF-8";
2
+ /* :where 降低默认宽高优先级,避免压过外部 Tailwind 等工具类(如 w-[200px]) */
3
+ :where(.fg-view-img-popover__reference[data-v-a3f15571]) {
2
4
  position: relative;
3
5
  display: block;
4
6
  width: 100%;
5
7
  height: 100%;
6
8
  }
7
- .fg-view-img-popover__preview-icon[data-v-868c46fb] {
9
+ .fg-view-img-popover__preview-icon[data-v-a3f15571] {
8
10
  position: absolute;
9
11
  top: 4px;
10
12
  right: 4px;
11
13
  z-index: 1;
14
+ display: block;
15
+ width: 14px;
16
+ height: 14px;
12
17
  line-height: 1;
13
18
  color: var(--el-text-color-primary);
14
19
  cursor: pointer;
15
20
  }
16
- .fg-view-img-popover__preview-icon[data-v-868c46fb]:hover {
21
+ .fg-view-img-popover__preview-icon[data-v-a3f15571]:hover {
17
22
  color: var(--el-color-primary);
18
23
  }
19
- .fg-view-img-popover__hover-image[data-v-868c46fb] {
24
+ .fg-view-img-popover__loading-icon[data-v-a3f15571] {
25
+ display: block;
26
+ width: 40%;
27
+ height: 40%;
28
+ }
29
+ .fg-view-img-popover__hover-image[data-v-a3f15571] {
20
30
  display: block;
21
31
  vertical-align: top;
22
32
  background: #7f7f7f;
23
33
  }
24
- .fg-view-img-popover__hover-image[data-v-868c46fb] .fg-view-img__inner {
34
+ .fg-view-img-popover__hover-image[data-v-a3f15571] .fg-view-img__inner {
25
35
  width: 100%;
26
36
  height: 100%;
27
37
  object-fit: contain;
28
38
  }
29
- .fg-view-img-popover__hover-image[data-v-868c46fb] .fg-view-img__placeholder,
30
- .fg-view-img-popover__hover-image[data-v-868c46fb] .fg-view-img__error {
39
+ .fg-view-img-popover__hover-image[data-v-a3f15571] .fg-view-img__placeholder,
40
+ .fg-view-img-popover__hover-image[data-v-a3f15571] .fg-view-img__error {
31
41
  position: absolute;
32
42
  inset: 0;
33
43
  display: flex;
@@ -36,7 +46,7 @@
36
46
  background: #f5f7fa;
37
47
  line-height: 1.4;
38
48
  }
39
- .fg-view-img-popover__hover-image[data-v-868c46fb] .fg-view-img__error-default {
49
+ .fg-view-img-popover__hover-image[data-v-a3f15571] .fg-view-img__error-default {
40
50
  width: 100%;
41
51
  height: 100%;
42
52
  display: flex;
@@ -46,13 +56,13 @@
46
56
  font-size: 13px;
47
57
  text-align: center;
48
58
  }
49
- .fg-view-img-popover__hover-image[data-v-868c46fb] .fg-view-img__error-text {
59
+ .fg-view-img-popover__hover-image[data-v-a3f15571] .fg-view-img__error-text {
50
60
  color: #909399;
51
61
  font-size: 13px;
52
62
  line-height: 1.4;
53
63
  text-align: center;
54
64
  }
55
- .fg-view-img-popover__hover-error[data-v-868c46fb] {
65
+ .fg-view-img-popover__hover-error[data-v-a3f15571] {
56
66
  display: flex;
57
67
  align-items: center;
58
68
  justify-content: center;
@@ -62,17 +72,30 @@
62
72
  font-size: 13px;
63
73
  line-height: 1.4;
64
74
  text-align: center;
65
- }.fg-view-img-popover__reference {
75
+ }
76
+ :where(.fg-view-img-popover__reference) {
77
+ display: block;
78
+ width: 100%;
79
+ height: 100%;
80
+ max-width: 100%;
81
+ box-sizing: border-box;
82
+ }
83
+ :where(.fg-view-img-popover__trigger),
84
+ :where(.fg-view-img-popover__reference .fg-lazy-popover__trigger) {
66
85
  display: block;
67
86
  width: 100%;
68
87
  height: 100%;
69
88
  max-width: 100%;
89
+ box-sizing: border-box;
70
90
  }
71
- .fg-view-img-popover__trigger {
91
+
92
+ /* 空 src / 加载失败时错误层绝对定位,内层需撑满已定尺寸的根容器 */
93
+ :where(.fg-view-img-popover__reference .fg-view-img) {
72
94
  display: block;
73
95
  width: 100%;
74
96
  height: 100%;
75
97
  max-width: 100%;
98
+ box-sizing: border-box;
76
99
  }
77
100
  .fg-view-img-popover.el-popper {
78
101
  box-sizing: border-box;
@@ -1,4 +1,4 @@
1
- import { _ } from "../../FgCascader.vue_vue_type_style_index_0_lang-CstlYwHs.js";
1
+ import { _ } from "../../FgCascader.vue_vue_type_style_index_0_lang-DzvTfHp4.js";
2
2
  export {
3
3
  _ as FgCascader
4
4
  };
@@ -1,4 +1,4 @@
1
- import { F } from "../../ErrorImage-CFVt1ht_.js";
1
+ import { E } from "../../ErrorImage-Ao9kEEUg.js";
2
2
  export {
3
- F as FgErrorImage
3
+ E as FgErrorImage
4
4
  };
@@ -1,4 +1,4 @@
1
- import { H } from "../../HSelect-DgFjd08Y.js";
1
+ import { H } from "../../HSelect-0w2mSrtm.js";
2
2
  export {
3
3
  H as FgHSelect
4
4
  };
@@ -1,4 +1,4 @@
1
- import { _ } from "../../HSelectAll.vue_vue_type_script_setup_true_lang-C6qzdQT-.js";
1
+ import { _ } from "../../HSelectAll.vue_vue_type_script_setup_true_lang-xHFbYs59.js";
2
2
  export {
3
3
  _ as FgHSelectAll
4
4
  };
@@ -1,4 +1,4 @@
1
- import { H } from "../../HSelectSJ-DOFUzTZV.js";
1
+ import { H } from "../../HSelectSJ-Cm573j6B.js";
2
2
  export {
3
3
  H as FgHSelectSJ
4
4
  };
@@ -1,2 +1,8 @@
1
- declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
1
+ type __VLS_Props = {
2
+ /** 内部自动挂载标记,业务侧无需传入 */
3
+ autoHost?: boolean;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
6
+ autoHost: boolean;
7
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
8
  export default _default;
@@ -0,0 +1,2 @@
1
+ export declare function destroyImgViewerAutoHost(): void;
2
+ export declare function ensureImgViewerAutoHost(): void;
@@ -0,0 +1,5 @@
1
+ export type ImgViewerHostKind = "manual" | "auto";
2
+ export declare function setImgViewerAutoHostCleanup(cleanup: (() => void) | null): void;
3
+ export declare function registerImgViewerHost(kind?: ImgViewerHostKind): void;
4
+ export declare function unregisterImgViewerHost(kind?: ImgViewerHostKind): void;
5
+ export declare function hasImgViewerHost(): boolean;
@@ -1,5 +1,5 @@
1
- import { _ } from "../../ImgViewerHost.vue_vue_type_script_setup_true_lang-DBs42WOq.js";
2
- import { I, P, g, u, a } from "../../imgViewerStore-DK3zvGf4.js";
1
+ import { _ } from "../../ImgViewerHost.vue_vue_type_script_setup_true_lang-DO9s-b9s.js";
2
+ import { I, P, g, u, a } from "../../imgViewerStore-Ajm-L7R5.js";
3
3
  export {
4
4
  _ as FgImgViewerHost,
5
5
  I as ImgViewerStore,