hzzt-kfb-slide 0.0.7 → 0.0.8

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 (94) hide show
  1. package/dist/components/{annotate2o-1dfLI.js → annotateFlT59Ud8.js} +1 -1
  2. package/dist/components/{annotateAI-JWSH6.js → annotateJzE3toJV.js} +1 -1
  3. package/dist/components/{annotateC9P_HUni.js → annotateR7c0LCw2.js} +1 -1
  4. package/dist/components/{annotateCvQBDtIU.js → annotatemJxZMVPO.js} +3 -3
  5. package/dist/components/{arrowqYc4Vwqs.js → arrowDHcko1dw.js} +1 -1
  6. package/dist/components/{arrowBciNhKeC.js → arrowDRio3eqx.js} +1 -1
  7. package/dist/components/{arrowDownClJawdrb.js → arrowDownByED8CSr.js} +1 -1
  8. package/dist/components/{arrowDownCQ4SyfeE.js → arrowDownDRpTqVDK.js} +1 -1
  9. package/dist/components/{arrowLeftDXKznfa7.js → arrowLeftCl2XVnFB.js} +1 -1
  10. package/dist/components/{arrowLeftBfE-rUOd.js → arrowLeftDjcuA_pb.js} +1 -1
  11. package/dist/components/{arrowRightDD_81Jxi.js → arrowRightClSGs6Mb.js} +1 -1
  12. package/dist/components/{arrowRightBFIf561u.js → arrowRightDSkHKM4y.js} +1 -1
  13. package/dist/components/{arrowUpBWJ4tPxX.js → arrowUpCgzq2L8A.js} +1 -1
  14. package/dist/components/{arrowUpCW9dIkdT.js → arrowUpQVIPK_NQ.js} +1 -1
  15. package/dist/components/{channelB-5CsDgJ.js → channelCTQgwZV_.js} +1 -1
  16. package/dist/components/{channelDQ0dcclf.js → channelD-dojSaC.js} +1 -1
  17. package/dist/components/{checkDv3SyUAt.js → checkCBxyasVc.js} +1 -1
  18. package/dist/components/{checkDCUaoqtc.js → checkCqCYDYr4.js} +1 -1
  19. package/dist/components/{configBG9sz92K.js → configGeQGhW9C.js} +1 -1
  20. package/dist/components/{configD1oGPTSe.js → configP_8ZVyfi.js} +1 -1
  21. package/dist/components/{customDNmw3TmQ.js → customB1-3lgH0.js} +1 -1
  22. package/dist/components/{customBiZeClOe.js → customBr26z068.js} +1 -1
  23. package/dist/components/{deletet8ykhJaO.js → deleteBNIxfTCo.js} +1 -1
  24. package/dist/components/{deleteAeZFc9Ps.js → deleteuibq0KAI.js} +1 -1
  25. package/dist/components/{dotB2osXT1L.js → dotBJ-lSESE.js} +1 -1
  26. package/dist/components/{dotBi8Aw3pw.js → dotBucEP5Z8.js} +4 -4
  27. package/dist/components/{dotCj7nxagF.js → dotDc-QmqaE.js} +1 -1
  28. package/dist/components/{dotBXbuJdtx.js → dotDhjymv7s.js} +1 -1
  29. package/dist/components/{downloadpQ-y7WlA.js → downloadB5STpOaR.js} +1 -1
  30. package/dist/components/{downloadBPXmLTeR.js → downloadBrpaJY3x.js} +1 -1
  31. package/dist/components/{downloadDqEDdAXm.js → downloadDh6wiado.js} +1 -1
  32. package/dist/components/{downloadBsgfGz04.js → downloadDnWeuVMn.js} +3 -3
  33. package/dist/components/{flipi9yEEtLG.js → flipD7XBmACU.js} +1 -1
  34. package/dist/components/{flipRSac65ir.js → flipDlTFW9pO.js} +1 -1
  35. package/dist/components/{fullscreenhc8QDZIL.js → fullscreenBGej63GA.js} +2 -2
  36. package/dist/components/{fullscreenDS7i-f5F.js → fullscreenCxtySrDu.js} +1 -1
  37. package/dist/components/{fullscreenBZwo5K13.js → fullscreenOKvUhCk1.js} +1 -1
  38. package/dist/components/{fullscreenBnIlw4_E.js → fullscreenoNyXD8h3.js} +1 -1
  39. package/dist/components/indexB0v3MpmE.js +2937 -0
  40. package/dist/components/indexBkFttmTs.js +4 -0
  41. package/dist/components/{infoBNq0rH3E.js → infoBjk0dOPE.js} +1 -1
  42. package/dist/components/{infoCU8_TgkY.js → infoCA6EWNF3.js} +1 -1
  43. package/dist/components/{levelC0LnNmSP.js → levelCG93ncZs.js} +1 -1
  44. package/dist/components/{levelDYvedJFa.js → levelbRjS_tcK.js} +1 -1
  45. package/dist/components/{microscopeBr8-XStr.js → microscopeD-EjOdf2.js} +1 -1
  46. package/dist/components/{microscopeCiYvQsyw.js → microscopeD-FrVKRB.js} +1 -1
  47. package/dist/components/{microscopeE9Kqv-Pu.js → microscopeDd_Bl9hM.js} +1 -1
  48. package/dist/components/{microscopeDMLPoAJp.js → microscopey8VfYeuX.js} +3 -3
  49. package/dist/components/{moveB-HST0mB.js → moveCCkgUb-0.js} +3 -3
  50. package/dist/components/{moveBASWwKjj.js → moveDYmvf7k8.js} +1 -1
  51. package/dist/components/{moveBu-wHLhg.js → moveQ5bEeY1C.js} +1 -1
  52. package/dist/components/{moveNyavIpT3.js → movebJvf1oPR.js} +1 -1
  53. package/dist/components/{nextcOKttjz3.js → nextC6ATDCIW.js} +1 -1
  54. package/dist/components/{nextDsMto_p-.js → nextDdiDIgB2.js} +1 -1
  55. package/dist/components/{prevB1Bq4rF3.js → prevC43MjkJW.js} +1 -1
  56. package/dist/components/{prevnbS-kjx3.js → prevD3zqAMQc.js} +1 -1
  57. package/dist/components/{processBAx9XRyY.js → processCDMD34sa.js} +1 -1
  58. package/dist/components/{processBM18h6Qd.js → processD1w3RPEQ.js} +1 -1
  59. package/dist/components/{processQaCeq-7y.js → processDR1VlciH.js} +3 -3
  60. package/dist/components/{processD9bf999H.js → processDq-wdwXj.js} +1 -1
  61. package/dist/components/{rotateBseHg5iL.js → rotateB2TKrdOd.js} +1 -1
  62. package/dist/components/{rotateANr_UwKh.js → rotateCVpCm-tK.js} +1 -1
  63. package/dist/components/{rotateC63rgVZz.js → rotateDEPrY9R8.js} +1 -1
  64. package/dist/components/{rotateDG77ULy7.js → rotateD_vW_yY0.js} +4 -4
  65. package/dist/components/{settingCDSCrpW7.js → settingB6ugQHJp.js} +1 -1
  66. package/dist/components/{settingDxud32Gv.js → settingCqgEfv1i.js} +3 -3
  67. package/dist/components/{settingCrFlPK23.js → settingDCqhAo43.js} +1 -1
  68. package/dist/components/{settingN7OnPn3C.js → settingDgfjjrts.js} +1 -1
  69. package/dist/components/{tailorCIVAqMFR.js → tailorCBjKU02K.js} +1 -1
  70. package/dist/components/{tailorDwORSrp6.js → tailorDzvy19FE.js} +1 -1
  71. package/dist/components/{useCommonBCMuQZUh.js → useCommonBD-xKHu3.js} +1 -1
  72. package/dist/components/{useCommonDf_LQLq6.js → useCommonBD90FQd0.js} +1 -1
  73. package/dist/components/{zoomBUaHoVgA.js → zoomB5HF8Hai.js} +1 -1
  74. package/dist/components/{zoom5nzfwbaS.js → zoomBcO2XFbA.js} +1 -1
  75. package/dist/components/{zoomInCQuBW71J.js → zoomInBrNwgimx.js} +1 -1
  76. package/dist/components/{zoomInCML6d0KQ.js → zoomInC3EAqFg-.js} +1 -1
  77. package/dist/components/{zoomOutBWAYvxae.js → zoomOutDafuMDlQ.js} +1 -1
  78. package/dist/components/{zoomOutDFjiTeeB.js → zoomOutGi1JWbc1.js} +1 -1
  79. package/dist/index.cjs.js +1 -1
  80. package/dist/index.css +1 -1
  81. package/dist/index.es.js +1 -1
  82. package/package.json +3 -4
  83. package/types/components/KfbSlideList.vue.d.ts +6 -3
  84. package/types/components/KfbView/index.d.ts +4 -1
  85. package/types/components/KfbView/index.vue.d.ts +5 -1
  86. package/types/components/KfbView/useLabel.d.ts +2 -84
  87. package/types/components/KfbView/useVoice.d.ts +88 -3
  88. package/types/components/toolbox/useCommon.d.ts +1 -1
  89. package/types/index.d.ts +41 -23
  90. package/types/index.vue.d.ts +15 -8
  91. package/types/instances.d.ts +3 -0
  92. package/types/plugins/i18n.d.ts +2 -2
  93. package/dist/components/indexCbr7K6Yq.js +0 -2843
  94. package/dist/components/indexMzBpWXyM.js +0 -4
@@ -1,2843 +0,0 @@
1
- var Rt = Object.defineProperty, Bt = Object.defineProperties;
2
- var Nt = Object.getOwnPropertyDescriptors;
3
- var dt = Object.getOwnPropertySymbols;
4
- var Dt = Object.prototype.hasOwnProperty, Ut = Object.prototype.propertyIsEnumerable;
5
- var vt = (d, e, a) => e in d ? Rt(d, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : d[e] = a, Z = (d, e) => {
6
- for (var a in e || (e = {}))
7
- Dt.call(e, a) && vt(d, a, e[a]);
8
- if (dt)
9
- for (var a of dt(e))
10
- Ut.call(e, a) && vt(d, a, e[a]);
11
- return d;
12
- }, ve = (d, e) => Bt(d, Nt(e));
13
- var Oe = (d, e, a) => new Promise((t, f) => {
14
- var m = (l) => {
15
- try {
16
- c(a.next(l));
17
- } catch (h) {
18
- f(h);
19
- }
20
- }, v = (l) => {
21
- try {
22
- c(a.throw(l));
23
- } catch (h) {
24
- f(h);
25
- }
26
- }, c = (l) => l.done ? t(l.value) : Promise.resolve(l.value).then(m, v);
27
- c((a = a.apply(d, e)).next());
28
- });
29
- import { inject as q, ref as x, markRaw as B, defineAsyncComponent as M, defineComponent as Q, createBlock as I, openBlock as g, unref as s, normalizeProps as Ft, guardReactiveProps as Kt, withCtx as C, resolveDynamicComponent as ze, useModel as Ee, computed as N, createElementBlock as $, createElementVNode as y, createVNode as b, toDisplayString as T, Fragment as oe, renderList as ne, createTextVNode as O, isRef as xe, watch as J, h as Zt, provide as re, renderSlot as ce, mergeProps as De, createCommentVNode as A, reactive as Ye, onMounted as fe, onBeforeUnmount as $e, normalizeStyle as X, mergeDefaults as Ot, withDirectives as Be, vShow as je, getCurrentInstance as jt, mergeModels as Me, normalizeClass as Ie, Teleport as Ne, withModifiers as Pe } from "vue";
30
- import { ElIcon as ge, ElRow as Gt, ElCol as Wt, ElSwitch as ke, ElRadioGroup as ft, ElRadio as Ae, ElDialog as Ue, ElForm as We, ElFormItem as le, ElInput as Ge, ElButton as he, ElSlider as qt, ElLoading as Yt, ElTag as pt, ElCheckbox as Fe, ElTooltip as mt, ElPopover as Xt, ElCheckboxGroup as Qt, ElPagination as Jt } from "element-plus";
31
- import { KfbView as ue, OpenSeadragon as be } from "kfb-view";
32
- import el from "v-lazy-image";
33
- function me() {
34
- const d = q("i18n"), e = (a) => a;
35
- return {
36
- locale: d == null ? void 0 : d.locale,
37
- t: (d == null ? void 0 : d.t) || e
38
- };
39
- }
40
- const tl = {
41
- install(d, e) {
42
- d.provide("i18n", e == null ? void 0 : e.global);
43
- }
44
- }, pe = x({
45
- annotate: B(M(() => import("./annotate2o-1dfLI.js"))),
46
- arrow: B(M(() => import("./arrowBciNhKeC.js"))),
47
- check: B(M(() => import("./checkDCUaoqtc.js"))),
48
- dot: B(M(() => import("./dotB2osXT1L.js"))),
49
- flip: B(M(() => import("./flipi9yEEtLG.js"))),
50
- info: B(M(() => import("./infoBNq0rH3E.js"))),
51
- microscope: B(M(() => import("./microscopeCiYvQsyw.js"))),
52
- move: B(M(() => import("./moveNyavIpT3.js"))),
53
- next: B(M(() => import("./nextDsMto_p-.js"))),
54
- prev: B(M(() => import("./prevB1Bq4rF3.js"))),
55
- process: B(M(() => import("./processBAx9XRyY.js"))),
56
- rotate: B(M(() => import("./rotateBseHg5iL.js"))),
57
- fullscreen: B(M(() => import("./fullscreenDS7i-f5F.js"))),
58
- setting: B(M(() => import("./settingCDSCrpW7.js"))),
59
- tailor: B(M(() => import("./tailorDwORSrp6.js"))),
60
- download: B(M(() => import("./downloadpQ-y7WlA.js"))),
61
- config: B(M(() => import("./configBG9sz92K.js"))),
62
- arrowDown: B(M(() => import("./arrowDownCQ4SyfeE.js"))),
63
- arrowUp: B(M(() => import("./arrowUpBWJ4tPxX.js"))),
64
- arrowLeft: B(M(() => import("./arrowLeftBfE-rUOd.js"))),
65
- arrowRight: B(M(() => import("./arrowRightBFIf561u.js"))),
66
- zoomIn: B(M(() => import("./zoomInCML6d0KQ.js"))),
67
- zoomOut: B(M(() => import("./zoomOutDFjiTeeB.js"))),
68
- level: B(M(() => import("./levelC0LnNmSP.js"))),
69
- channel: B(M(() => import("./channelB-5CsDgJ.js"))),
70
- delete: B(M(() => import("./deletet8ykhJaO.js")))
71
- }), Y = /* @__PURE__ */ Q({
72
- __name: "KfbIcon",
73
- props: {
74
- name: {
75
- type: [String, Number],
76
- required: !0
77
- }
78
- },
79
- setup(d) {
80
- return (e, a) => (g(), I(s(ge), Ft(Kt(e.$attrs)), {
81
- default: C(() => [
82
- (g(), I(ze(s(pe)[d.name])))
83
- ]),
84
- _: 1
85
- }, 16));
86
- }
87
- }), ll = { class: "hzzt-kfb-tool-config" }, ol = { class: "hzzt-kfb-tool-config__title margin-b-2" }, nl = { class: "hzzt-kfb-tool-config__block flex align-items-center" }, al = { class: "hzzt-kfb-tool-config__icon flex align-items-center justify-content-center" }, sl = { class: "margin-l-4 flex-1" }, il = { class: "hzzt-kfb-tool-config__title" }, rl = { class: "flex align-items-center" }, ul = {
88
- class: "margin-t-2 margin-b-2",
89
- style: { width: "160px" }
90
- }, cl = { class: "flex align-items-center" }, dl = {
91
- class: "margin-t-2 margin-b-2",
92
- style: { width: "160px" }
93
- }, vl = /* @__PURE__ */ Q({
94
- name: "KfbToolConfig",
95
- __name: "KfbToolConfig",
96
- props: {
97
- menus: {
98
- default: () => []
99
- },
100
- menusModifiers: {},
101
- showText: { type: Boolean },
102
- showTextModifiers: {}
103
- },
104
- emits: ["update:menus", "update:showText"],
105
- setup(d) {
106
- const e = Ee(d, "menus"), a = Ee(d, "showText"), { t } = me(), f = N(() => e.value.filter((h) => h.name !== "line" && h.name !== "config" && h.name !== "zoom")), m = {
107
- fullscreen: t("全屏"),
108
- next: t("上一张"),
109
- prev: t("上一张"),
110
- flip: t("镜像翻转"),
111
- setting: t("工具"),
112
- rotate: t("旋转"),
113
- dot: t("打点"),
114
- annotate: t("标注"),
115
- tailor: t("截图"),
116
- process: t("图像处理"),
117
- microscope: t("镜下"),
118
- move: t("快速移动"),
119
- info: t("信息"),
120
- download: t("下载")
121
- }, v = q("show-keyboard", x(!1));
122
- function c(h) {
123
- return h in m;
124
- }
125
- function l(h) {
126
- var p;
127
- return ((p = h.props) == null ? void 0 : p.text) || (c(h.name) ? m[h.name] : "");
128
- }
129
- return (h, p) => (g(), $("div", ll, [
130
- y("h3", ol, T(s(t)("显示管理")), 1),
131
- b(s(Gt), { gutter: 10 }, {
132
- default: C(() => [
133
- (g(!0), $(oe, null, ne(f.value, (n) => (g(), I(s(Wt), {
134
- key: n.name,
135
- span: 8
136
- }, {
137
- default: C(() => {
138
- var i, r;
139
- return [
140
- y("div", nl, [
141
- y("div", al, [
142
- (i = n.props) != null && i.component ? (g(), I(ze((r = n.props) == null ? void 0 : r.component), {
143
- key: 1,
144
- size: 24
145
- })) : (g(), I(Y, {
146
- key: 0,
147
- size: 24,
148
- name: n.name
149
- }, null, 8, ["name"]))
150
- ]),
151
- y("p", sl, T(l(n)), 1),
152
- b(s(ke), {
153
- modelValue: n.show,
154
- "onUpdate:modelValue": (u) => n.show = u,
155
- "active-text": "",
156
- "inactive-text": ""
157
- }, null, 8, ["modelValue", "onUpdate:modelValue"])
158
- ])
159
- ];
160
- }),
161
- _: 2
162
- }, 1024))), 128))
163
- ]),
164
- _: 1
165
- }),
166
- y("div", null, [
167
- y("h3", il, T(s(t)("其他设置")), 1),
168
- y("div", rl, [
169
- y("p", ul, T(s(t)("工具列表显示切换")), 1),
170
- b(s(ft), {
171
- modelValue: a.value,
172
- "onUpdate:modelValue": p[0] || (p[0] = (n) => a.value = n)
173
- }, {
174
- default: C(() => [
175
- b(s(Ae), { value: !0 }, {
176
- default: C(() => [
177
- O(T(s(t)("显示工具名称")), 1)
178
- ]),
179
- _: 1
180
- }),
181
- b(s(Ae), { value: !1 }, {
182
- default: C(() => [
183
- O(T(s(t)("隐藏工具名称")), 1)
184
- ]),
185
- _: 1
186
- })
187
- ]),
188
- _: 1
189
- }, 8, ["modelValue"])
190
- ]),
191
- y("div", cl, [
192
- y("p", dl, T(s(t)("小键盘显示切换")), 1),
193
- b(s(ft), {
194
- modelValue: s(v),
195
- "onUpdate:modelValue": p[1] || (p[1] = (n) => xe(v) ? v.value = n : null)
196
- }, {
197
- default: C(() => [
198
- b(s(Ae), { value: !0 }, {
199
- default: C(() => [
200
- O(T(s(t)("显示小键盘")), 1)
201
- ]),
202
- _: 1
203
- }),
204
- b(s(Ae), { value: !1 }, {
205
- default: C(() => [
206
- O(T(s(t)("隐藏小键盘")), 1)
207
- ]),
208
- _: 1
209
- })
210
- ]),
211
- _: 1
212
- }, 8, ["modelValue"])
213
- ])
214
- ])
215
- ]));
216
- }
217
- }), fl = { class: "hzzt-kfb-toolbox" }, ml = { class: "hzzt-kfb-toolbox__component" }, He = /* @__PURE__ */ Q({
218
- name: "KfbToolbox",
219
- __name: "KfbToolbox",
220
- props: {
221
- menu: {},
222
- process: {},
223
- microscope: {},
224
- showMenuText: { type: Boolean }
225
- },
226
- emits: ["tool"],
227
- setup(d, { emit: e }) {
228
- const a = d, t = e, { t: f } = me(), m = {
229
- prev: f("上一张"),
230
- next: f("下一张"),
231
- config: f("配置"),
232
- info: f("信息"),
233
- flip: f("镜像"),
234
- tailor: f("截图")
235
- }, v = q("kfbViewRef"), c = x(!1), l = x(a.showMenuText), h = x(i(a.menu)), p = {
236
- fullscreen: M(() => import("./fullscreenhc8QDZIL.js")),
237
- line: M(() => import("./lineBIoJpzbf.js")),
238
- setting: M(() => import("./settingDxud32Gv.js")),
239
- rotate: M(() => import("./rotateDG77ULy7.js")),
240
- dot: M(() => import("./dotBi8Aw3pw.js")),
241
- annotate: M(() => import("./annotateCvQBDtIU.js")),
242
- process: M(() => import("./processQaCeq-7y.js")),
243
- microscope: M(() => import("./microscopeDMLPoAJp.js")),
244
- move: M(() => import("./moveB-HST0mB.js")),
245
- custom: M(() => import("./customBiZeClOe.js")),
246
- zoom: M(() => import("./zoomBUaHoVgA.js")),
247
- download: M(() => import("./downloadBsgfGz04.js"))
248
- }, n = N(() => h.value.filter((u) => u.show !== !1).map((u) => ({
249
- component: p[u.name],
250
- props: u.props,
251
- slots: u.slots
252
- })));
253
- J(() => a.menu, (u) => {
254
- h.value = i(u);
255
- });
256
- function i(u) {
257
- return u.map((o) => {
258
- const w = typeof o == "string" ? o : o.name;
259
- return m[w] ? {
260
- name: "custom",
261
- show: typeof o == "string" ? !0 : o.show !== !1,
262
- props: ve(Z({
263
- text: m[w]
264
- }, typeof o == "string" ? {} : o.props), {
265
- name: w,
266
- component: Zt(Y, {
267
- name: w
268
- })
269
- })
270
- } : w === "process" ? {
271
- name: w,
272
- props: typeof o == "string" ? {
273
- process: a.process
274
- } : Z({
275
- process: a.process
276
- }, o.props),
277
- slots: typeof o == "string" ? void 0 : o.slots,
278
- show: typeof o == "string" ? !0 : o.show !== !1
279
- } : w === "microscope" ? {
280
- name: w,
281
- props: typeof o == "string" ? {
282
- process: a.process
283
- } : Z({
284
- microscope: a.microscope
285
- }, o.props),
286
- slots: typeof o == "string" ? void 0 : o.slots,
287
- show: typeof o == "string" ? !0 : o.show !== !1
288
- } : {
289
- name: w,
290
- props: typeof o == "string" ? {} : o.props,
291
- slots: typeof o == "string" ? void 0 : o.slots,
292
- show: typeof o == "string" ? !0 : o.show !== !1
293
- };
294
- });
295
- }
296
- function r(u, o) {
297
- const w = {
298
- annotate: () => v.value.startDraw(o),
299
- tailor: () => v.value.shotScreen(o),
300
- process: () => v.value.forceRedraw(o),
301
- microscope: () => v.value.scopeChange(o),
302
- move: () => v.value.fastMove(o),
303
- endDraw: () => v.value.endDraw(),
304
- info: () => v.value.info(),
305
- zoom: () => v.value.zoomTo(o),
306
- flip: () => v.value.toggleFlip(o),
307
- config: () => c.value = !0,
308
- grid: () => v.value.updateGrid(o),
309
- ruler: () => v.value.updateGrid(o),
310
- graduation: () => v.value.updateGraduation(o),
311
- navigator: () => v.value.updateNavigator(o),
312
- tool: () => {
313
- v.value.updateGrid({
314
- show: o
315
- }), v.value.updateGraduation({
316
- show: o
317
- }), v.value.updateGrid({
318
- ruler: o
319
- }), v.value.updateNavigator(o);
320
- }
321
- };
322
- w[u] ? w[u]() : t("tool", u, o);
323
- }
324
- return re("show-text", l), (u, o) => (g(), $("div", fl, [
325
- ce(u.$slots, "left"),
326
- y("div", ml, [
327
- (g(!0), $(oe, null, ne(n.value, (w, _) => (g(), I(ze(w.component), De({ ref_for: !0 }, w.props, {
328
- key: _,
329
- onTool: r
330
- }), {
331
- default: C(() => [
332
- w.slots ? (g(!0), $(oe, { key: 0 }, ne(w.slots, (S) => (g(), I(ze(S)))), 256)) : A("", !0)
333
- ]),
334
- _: 2
335
- }, 1040))), 128))
336
- ]),
337
- ce(u.$slots, "right"),
338
- b(s(Ue), {
339
- modelValue: c.value,
340
- "onUpdate:modelValue": o[2] || (o[2] = (w) => c.value = w),
341
- width: "800px",
342
- title: s(f)("阅片工具设置中心")
343
- }, {
344
- default: C(() => [
345
- b(vl, {
346
- menus: h.value,
347
- "onUpdate:menus": o[0] || (o[0] = (w) => h.value = w),
348
- showText: l.value,
349
- "onUpdate:showText": o[1] || (o[1] = (w) => l.value = w)
350
- }, null, 8, ["menus", "showText"])
351
- ]),
352
- _: 1
353
- }, 8, ["modelValue", "title"])
354
- ]));
355
- }
356
- }), Xe = "data:image/svg+xml,%3csvg%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%3e%3cpath%20d='M556.45%20126.8H904.7c31.31%200%2056.26%2025.47%2057.3%2056.78v656.85c-0.68%2031.26-26.03%2056.35-57.3%2056.72H617.28l74.32-291.24-77.38-56.14%2032.3-27.32c8.28-6.66%2015.51-11.46%2025.7-11.46%209.96%200.24%2019.33%204.77%2025.7%2012.45h-0.06l198.87%20214.09-0.58-522.46c-0.75-13.7-12.21-24.35-25.93-24.08H542.45l14-64.19z%20m-118.47%200l-14.01%2064.24H152.41c-13.6%200-24.31%209.84-26.22%2023.44v522.63l242.33-292.28-13.08%2060.14%20204.6%20148.46-62.22%20243.77H118.15a56.398%2056.398%200%200%201-39.86-16.73A56.35%2056.35%200%200%201%2062%20840.43V183.57c0-31.25%2024.89-56.72%2056.14-56.72h319.83v-0.05z%20m203.67%20224.68c-0.86-34.98%2017.31-67.68%2047.47-85.42%2030.16-17.74%2067.56-17.74%2097.73%200%2030.16%2017.74%2048.33%2050.44%2047.47%2085.42%200%2053.22-43.15%2096.37-96.37%2096.37-53.22%200-96.37-43.14-96.37-96.37h0.07z%20m0%200'%20fill='%23ffffff'%3e%3c/path%3e%3c/svg%3e", qe = {
357
- shape: "50%",
358
- width: 0.3,
359
- color: "#FA0404",
360
- borderWidth: 5
361
- }, ht = {
362
- r: 0,
363
- g: 0,
364
- b: 0,
365
- c: 0,
366
- s: 0,
367
- l: 0,
368
- ga: 1
369
- };
370
- function pl(d) {
371
- const e = Ye(Z(Z({}, ht), d.process));
372
- J(() => d.process, (m) => {
373
- f(m);
374
- });
375
- const a = N(() => {
376
- const m = [
377
- 1 + e.r + e.l + 0.5 * e.c,
378
- 0,
379
- 0,
380
- 0,
381
- -0.25 * e.c
382
- ], v = [
383
- 0,
384
- 1 + e.g + e.l + 0.5 * e.c,
385
- 0,
386
- 0,
387
- -0.25 * e.c
388
- ], c = [
389
- 0,
390
- 0,
391
- 1 + e.b + e.l + 0.5 * e.c,
392
- 0,
393
- -0.25 * e.c
394
- ], l = [0, 0, 0, 1, 0];
395
- return `${m.join(" ")}
396
- ${v.join(" ")}
397
- ${c.join(" ")}
398
- ${l.join(" ")}`;
399
- }), t = N(() => String(1 + e.s));
400
- function f(m) {
401
- m && Object.assign(e, m);
402
- }
403
- return {
404
- imageProcess: e,
405
- matrixValues: a,
406
- saturateValues: t,
407
- forceRedraw: f
408
- };
409
- }
410
- function hl(d, e) {
411
- function a() {
412
- e.value.$on(ue.events.EVENT_TAILORING_SCREENSHOT, t);
413
- }
414
- function t({ base64: v, region: c }) {
415
- if (window.ClipboardItem && (navigator != null && navigator.clipboard)) {
416
- const l = f(v, "image/png");
417
- navigator.clipboard.write([
418
- new window.ClipboardItem({
419
- [l.type]: l
420
- })
421
- ]);
422
- }
423
- d("tool", "screen-shot", { base64: v, region: c });
424
- }
425
- function f(v, c) {
426
- var i, r;
427
- const l = v.split(",");
428
- (r = (i = l[0]) == null ? void 0 : i.match(/:(.*?);/)) == null || r[1];
429
- const h = atob(l == null ? void 0 : l[1]);
430
- let p = h.length;
431
- const n = new Uint8Array(p);
432
- for (; p--; )
433
- n[p] = h.charCodeAt(p);
434
- return new Blob([n], { type: c });
435
- }
436
- function m(v) {
437
- const { width: c, height: l } = e.value.$options;
438
- v ? c > l ? e.value.tailoring.init(
439
- {
440
- left: (c - l) / 2,
441
- top: 0,
442
- height: l,
443
- width: l,
444
- now: !0
445
- }
446
- ) : e.value.tailoring.init(
447
- {
448
- left: 0,
449
- top: (l - c) / 2,
450
- height: c,
451
- width: c,
452
- now: !0
453
- }
454
- ) : e.value.tailoring.init(
455
- {
456
- left: c / 2 - 100,
457
- top: l / 2 - 100,
458
- height: 200,
459
- width: 200,
460
- color: "#ff0000"
461
- }
462
- );
463
- }
464
- return {
465
- tailorEvent: a,
466
- shotScreen: m
467
- };
468
- }
469
- const gl = "data:image/svg+xml,%3csvg%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cdefs%3e%3cstyle%20type='text/css'%3e@font-face%20{%20font-family:%20feedback-iconfont;%20src:%20url('//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944')%20format('woff2'),%20url('//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944')%20format('woff'),%20url('//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944')%20format('truetype');%20}%20%3c/style%3e%3c/defs%3e%3cpath%20fill='currentColor'%20d='M848%20432a80.064%2080.064%200%200%200-73.216%2048H217.216A80.096%2080.096%200%200%200%20144%20432%2080.096%2080.096%200%200%200%2064%20512c0%2044.128%2035.904%2080%2080%2080A80%2080%200%200%200%20217.216%20544h557.536a80%2080%200%200%200%2073.216%2048c44.128%200%2080-35.872%2080-80a80.032%2080.032%200%200%200-79.968-80z'%20%3e%3c/path%3e%3c/svg%3e", wl = "data:image/svg+xml,%3csvg%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cdefs%3e%3cstyle%20type='text/css'%3e@font-face%20{%20font-family:%20feedback-iconfont;%20src:%20url('//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944')%20format('woff2'),%20url('//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944')%20format('woff'),%20url('//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944')%20format('truetype');%20}%20%3c/style%3e%3c/defs%3e%3cpath%20fill='currentColor'%20d='M462%20881V81c0-27.6%2022.4-50%2050-50s50%2022.4%2050%2050v800c0%2027.6-22.4%2050-50%2050s-50-22.4-50-50z'%3e%3c/path%3e%3cpath%20fill='currentColor'%20d='M483.3%20907.6l212.1-212.1c19.5-19.5%2051.2-19.5%2070.7%200s19.5%2051.2%200%2070.7L554%20978.4c-19.5%2019.5-51.2%2019.5-70.7%200-19.6-19.6-19.6-51.2%200-70.8z'%20%3e%3c/path%3e%3cpath%20fill='currentColor'%20d='M328.6%20695.5l212.1%20212.1c19.5%2019.5%2019.5%2051.2%200%2070.7s-51.2%2019.5-70.7%200L257.9%20766.2c-19.5-19.5-19.5-51.2%200-70.7s51.2-19.5%2070.7%200z'%20%3e%3c/path%3e%3c/svg%3e", yl = "data:image/svg+xml,%3csvg%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cdefs%3e%3cstyle%20type='text/css'%3e@font-face%20{%20font-family:%20feedback-iconfont;%20src:%20url('//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944')%20format('woff2'),%20url('//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944')%20format('woff'),%20url('//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944')%20format('truetype');%20}%20%3c/style%3e%3c/defs%3e%3cpath%20fill='currentColor'%20d='M474.3%20480.7L113.9%20836.6c-20.2%2019-21.2%2050.7-2.3%2071%200.7%200.8%201.5%201.5%202.3%202.3%209.5%2010.4%2023%2016.1%2037.1%2015.7%2014.1%200.4%2027.6-5.3%2037.1-15.7l323.3-319.1%20323.3%20319.1c9.5%2010.4%2023.1%2016.1%2037.1%2015.7%2014.1%200.4%2027.6-5.3%2037.1-15.7%2020.2-19%2021.2-50.7%202.3-71-0.7-0.8-1.5-1.5-2.3-2.3L548.5%20480.7c-19.9-20.5-52.6-21-73.1-1.1-0.4%200.3-0.8%200.7-1.1%201.1z%20m0-366.3L113.9%20470.2c-20.2%2019-21.2%2050.7-2.3%2071%200.7%200.8%201.5%201.5%202.3%202.3%209.5%2010.4%2023%2016.1%2037.1%2015.7%2014.1%200.4%2027.6-5.3%2037.1-15.6l323.3-319.2%20323.3%20319.2c9.5%2010.4%2023.1%2016.1%2037.1%2015.6%2014%200.4%2027.6-5.3%2037.1-15.6%2020.2-19%2021.2-50.7%202.3-71-0.7-0.8-1.5-1.5-2.3-2.3L548.5%20114.4c-19.9-20.5-52.6-21-73.1-1.1l-1.1%201.1z'%3e%3c/path%3e%3c/svg%3e", _l = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='333.426'%20height='331.939'%20viewBox='0%200%20333.426%20331.939'%3e%3cg%20id='_10矩形'%20transform='translate(-63.7%20-66.2)'%3e%3cpath%20fill='currentColor'%20id='路径_2'%20d='M205.976,168.3H378.8v13.786H205.976Zm0,242.015H378.8V424.1H205.976ZM165.812,381.07V208.245H179.6V381.07Zm243.5,0V208.244H423.1V381.07Z'%20transform='translate(-64.168%20-64.161)'/%3e%3cpath%20fill='currentColor'%20id='路径_3'%20d='M108.662,66.2a44.962,44.962,0,1,0,44.962,44.962A44.975,44.975,0,0,0,108.662,66.2Zm-.037,75.618a30.73,30.73,0,1,1,30.73-30.73A30.718,30.718,0,0,1,108.625,141.818Zm.037,166.4a44.962,44.962,0,1,0,44.962,44.962,44.975,44.975,0,0,0-44.962-44.962Zm-.037,75.655a30.73,30.73,0,1,1,30.73-30.73A30.718,30.718,0,0,1,108.625,383.87Zm243.539-75.655a44.962,44.962,0,1,0,44.962,44.962A44.975,44.975,0,0,0,352.164,308.215Zm-.037,75.655a30.73,30.73,0,1,1,30.73-30.73A30.718,30.718,0,0,1,352.126,383.87Zm.037-317.67a44.962,44.962,0,1,0,44.962,44.962A44.975,44.975,0,0,0,352.164,66.2Zm-.037,75.618a30.73,30.73,0,1,1,30.73-30.73A30.718,30.718,0,0,1,352.126,141.818Z'/%3e%3c/g%3e%3c/svg%3e", bl = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='333'%20height='332'%20viewBox='0%200%20333%20332'%3e%3cg%20id='椭圆_1'%20fill='none'%20stroke='currentColor'%20stroke-width='30'%3e%3cellipse%20cx='166.5'%20cy='166'%20rx='156.5'%20ry='156'%20stroke='none'/%3e%3cellipse%20cx='166.5'%20cy='166'%20rx='149'%20ry='148.5'%20fill='none'/%3e%3c/g%3e%3c/svg%3e", kl = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='322.663'%20height='322.663'%20viewBox='0%200%20322.663%20144.368'%3e%3cg%20id='组_1'%20transform='translate(-17.337%20-208.632)'%3e%3cpath%20id='路径_1'%20d='M21,254.606s69.664-74.994,139.621-8.395'%20fill='none'%20stroke='currentColor'%20stroke-width='20'/%3e%3cg%20id='椭圆_2'%20transform='translate(153%20233)'%20fill='%23fff'%20stroke='currentColor'%20stroke-width='20'%3e%3ccircle%20cx='22.5'%20cy='22.5'%20r='25.5'%20stroke='none'/%3e%3ccircle%20cx='22.5'%20cy='22.5'%20r='22.5'%20fill='none'/%3e%3c/g%3e%3cpath%20id='路径_2'%20d='M187.5,274.23s15.48,96.483,113.05,65.285'%20transform='translate(-4.814%20-5.239)'%20fill='none'%20stroke='currentColor'%20stroke-width='20'/%3e%3cg%20id='椭圆_3'%20transform='translate(295%20308)'%20fill='%23fff'%20stroke='currentColor'%20stroke-width='20'%3e%3ccircle%20cx='12.5'%20cy='12.5'%20r='22.5'%20stroke='none'/%3e%3ccircle%20cx='12.5'%20cy='12.5'%20r='22.5'%20fill='none'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e", zl = "data:image/svg+xml,%3csvg%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cdefs%3e%3cstyle%20type='text/css'%3e@font-face%20{%20font-family:%20feedback-iconfont;%20src:%20url('//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944')%20format('woff2'),%20url('//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944')%20format('woff'),%20url('//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944')%20format('truetype');%20}%20%3c/style%3e%3c/defs%3e%3cpath%20fill='currentColor'%20d='M575.852903%20115.426402L661.092435%20288.054362c10.130509%2020.465674%2029.675227%2034.689317%2052.289797%2037.963825l190.433097%2027.62866c56.996902%208.288598%2079.7138%2078.281203%2038.475467%20118.496253l-137.836314%20134.35715c-16.372539%2015.963226-23.84251%2038.987109-19.954032%2061.49935l32.540421%20189.716799c9.721195%2056.792245-49.833916%20100.077146-100.793444%2073.267113L545.870691%20841.446188a69.491196%2069.491196%200%200%200-64.67153%200l-170.376737%2089.537324c-50.959528%2026.810033-110.51464-16.474868-100.793444-73.267113L242.569401%20667.9996c3.888478-22.512241-3.581493-45.536125-19.954032-61.49935L84.779055%20472.245428c-41.238333-40.215049-18.521435-110.207655%2038.475467-118.496252l190.433097-27.62866c22.61457-3.274508%2042.159288-17.498151%2052.289797-37.963826L451.319277%20115.426402c25.479764-51.675827%2099.053862-51.675827%20124.533626%200z'%20%3e%3c/path%3e%3c/svg%3e", xl = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='320.756'%20height='350.074'%20viewBox='0%200%20320.756%20350.074'%3e%3cpath%20fill='currentColor'%20id='排除_1'%20d='M21.624,350.074a22.1,22.1,0,0,1-7.779-1.492A24.658,24.658,0,0,1,6.9,344.519,20.489,20.489,0,0,1,1.912,338.5,15.465,15.465,0,0,1,0,331.144V18.933a15.279,15.279,0,0,1,1.952-7.376A20.6,20.6,0,0,1,7.032,5.54,25.191,25.191,0,0,1,14.07,1.486,22.529,22.529,0,0,1,21.9,0a22.226,22.226,0,0,1,7.777,1.488,24.613,24.613,0,0,1,6.944,4.054,20.429,20.429,0,0,1,4.989,6.017,15.515,15.515,0,0,1,1.912,7.376v312.2a15.216,15.216,0,0,1-1.956,7.358,20.7,20.7,0,0,1-5.085,6.019,25.282,25.282,0,0,1-7.039,4.064A22.421,22.421,0,0,1,21.624,350.074ZM320.756,205.783H60.764L61.02,17.351l259.736,1.585v.728l-63.48,96.82,63.48,88.425v.873h0Z'%20transform='translate(0)'/%3e%3c/svg%3e", Cl = "data:image/svg+xml,%3csvg%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cdefs%3e%3cstyle%20type='text/css'%3e@font-face%20{%20font-family:%20feedback-iconfont;%20src:%20url('//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944')%20format('woff2'),%20url('//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944')%20format('woff'),%20url('//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944')%20format('truetype');%20}%20%3c/style%3e%3c/defs%3e%3cpath%20fill='currentColor'%20d='M512%20690a112%20112%200%201%200%200-350%20112%20112%200%200%200%200%20350z'%3e%3c/path%3e%3c/svg%3e", $l = "data:image/svg+xml,%3csvg%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cdefs%3e%3cstyle%20type='text/css'%3e@font-face%20{%20font-family:%20feedback-iconfont;%20src:%20url('//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944')%20format('woff2'),%20url('//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944')%20format('woff'),%20url('//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944')%20format('truetype');%20}%20%3c/style%3e%3c/defs%3e%3cpath%20d='M563.2%20281.6V870.4a51.2%2051.2%200%200%201-102.4%200V281.6H179.2a51.2%2051.2%200%201%201%200-102.4h665.6a51.2%2051.2%200%200%201%200%20102.4H563.2z'%20fill='currentColor'%3e%3c/path%3e%3c/svg%3e", Tl = "data:image/svg+xml,%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='200'%3e%3cpath%20d='M515.041727%20670.617766c91.584167%200%20166.095647-74.504255%20166.095647-166.095646V229.350568c0-91.584167-74.51148-166.095647-166.095647-166.095647-91.598617%200-166.102872%2074.51148-166.102871%20166.095647V504.52212c0%2091.591392%2074.504255%20166.095647%20166.102871%20166.095646z'%20fill='currentColor'%3e%3c/path%3e%3cpath%20d='M801.643237%20874.001665H558.391759v-45.423608c161.507768-21.313766%20286.60151-159.788217%20286.60151-327.01819a43.350032%2043.350032%200%200%200-86.700064%200c0%20134.124998-109.12648%20243.251478-243.258703%20243.251479-134.124998%200-243.244253-109.12648-243.244253-243.251479a43.350032%2043.350032%200%200%200-86.700063%200c0%20167.229972%20125.100967%20305.711649%20286.601509%20327.01819v45.423608H228.440217a43.350032%2043.350032%200%200%200%200%2086.700064h573.20302a43.350032%2043.350032%200%200%200%200-86.700064z'%20fill='currentColor'%3e%3c/path%3e%3c/svg%3e", Ll = ["onClick"], Vl = ["src"], El = {
470
- key: 2,
471
- style: { width: "18px" },
472
- class: "margin-r-3"
473
- }, Ml = {
474
- key: 1,
475
- class: "hzzt-kfb-sub-menu"
476
- }, Hl = ["onClick"], Il = { class: "flex align-items-center" }, Sl = ["src"], Pl = {
477
- key: 2,
478
- style: { width: "18px" },
479
- class: "margin-r-2"
480
- }, Al = /* @__PURE__ */ Q({
481
- __name: "KfbMenu",
482
- props: {
483
- menus: {}
484
- },
485
- emits: ["tool"],
486
- setup(d, { emit: e }) {
487
- const a = x({
488
- top: "0",
489
- left: "0",
490
- display: "none"
491
- }), t = q("kfbView", x({})), f = q("currentLabel"), m = d, v = e, { t: c } = me(), l = [
492
- {
493
- label: c("直线"),
494
- value: "line",
495
- icon: gl
496
- },
497
- {
498
- label: c("箭头"),
499
- value: "arrow",
500
- icon: wl
501
- },
502
- {
503
- label: c("双箭头"),
504
- value: "bilateral",
505
- icon: yl
506
- },
507
- {
508
- label: c("矩形"),
509
- value: "rectangle",
510
- icon: _l
511
- },
512
- {
513
- label: c("圆形"),
514
- value: "ellipse",
515
- icon: bl
516
- },
517
- {
518
- label: c("曲线"),
519
- value: "polygon",
520
- icon: kl
521
- },
522
- {
523
- label: c("星星"),
524
- value: "star",
525
- icon: zl
526
- },
527
- {
528
- label: c("旗帜"),
529
- value: "flag",
530
- icon: xl
531
- },
532
- {
533
- label: c("点"),
534
- value: "dot",
535
- icon: Cl
536
- },
537
- {
538
- label: c("文字"),
539
- value: "font",
540
- icon: $l
541
- },
542
- {
543
- label: c("语音"),
544
- value: "voice",
545
- icon: Tl
546
- }
547
- ], h = N(() => {
548
- var u;
549
- return f != null && f.value ? [{
550
- label: c("删除"),
551
- value: "delete",
552
- icon: pe.value.delete
553
- }] : (u = m.menus) != null && u.length ? m.menus.map((o) => o.value === "annotate" ? ve(Z({}, o), {
554
- children: l
555
- }) : ve(Z({}, o), {
556
- icon: o.icon || pe.value[o.value]
557
- })) : [
558
- {
559
- label: c("上一张"),
560
- value: "prev"
561
- },
562
- {
563
- label: c("下一张"),
564
- value: "next"
565
- },
566
- {
567
- label: c("标注"),
568
- value: "annotate",
569
- icon: pe.value.annotate,
570
- children: l
571
- },
572
- {
573
- label: c("一键截图"),
574
- value: "tailor_now",
575
- icon: pe.value.tailor
576
- },
577
- {
578
- label: c("区域截图"),
579
- value: "tailor"
580
- },
581
- {
582
- label: c("镜像翻转"),
583
- value: "flip",
584
- icon: pe.value.flip
585
- },
586
- {
587
- label: c("切片信息"),
588
- value: "info",
589
- icon: pe.value.info
590
- }
591
- ];
592
- });
593
- J(() => t.value, (u, o) => {
594
- o != null && o.viewer && (o.viewer.removeHandler("canvas-contextmenu", p), o.viewer.removeHandler("canvas-click", n)), u != null && u.viewer && (u.viewer.addHandler("canvas-contextmenu", p), u.viewer.addHandler("canvas-click", n));
595
- }), fe(() => {
596
- var u;
597
- (u = t.value) != null && u.viewer && (t.value.viewer.addHandler("canvas-contextmenu", p), t.value.viewer.addHandler("canvas-click", n)), document.body.addEventListener("click", n);
598
- }), $e(() => {
599
- var u;
600
- (u = t.value) != null && u.viewer && (t.value.viewer.removeHandler("canvas-contextmenu", p), t.value.viewer.removeHandler("canvas-click", n)), document.body.removeEventListener("click", n);
601
- });
602
- function p(u) {
603
- u.preventDefault = !0, a.value.top = `${u.position.y}px`, a.value.left = `${u.position.x}px`, a.value.display === "block" ? a.value.display = "none" : a.value.display = "block";
604
- }
605
- function n() {
606
- a.value.display = "none";
607
- }
608
- function i(u, o) {
609
- u.children || ((o == null ? void 0 : o.value) === "annotate" ? v("tool", "annotate", {
610
- tool: u.value.substring(0, 1).toLocaleUpperCase() + u.value.substring(1),
611
- once: !0
612
- }) : u.value === "tailor_now" ? v("tool", "tailor", !0) : v("tool", u.value), n());
613
- }
614
- function r(u) {
615
- return u == null || typeof u != "object" && typeof u != "function" ? !1 : (
616
- // 函数式组件
617
- typeof u == "function" || // 对象式组件
618
- "render" in u || "setup" in u
619
- );
620
- }
621
- return (u, o) => (g(), $("div", {
622
- class: "hzzt-kfb-menu",
623
- style: X(a.value)
624
- }, [
625
- (g(!0), $(oe, null, ne(h.value, (w, _) => (g(), $("div", {
626
- key: _,
627
- class: "hzzt-kfb-menu-item"
628
- }, [
629
- y("div", {
630
- class: "flex align-items-center",
631
- onClick: (S) => i(w)
632
- }, [
633
- r(w.icon) ? (g(), I(s(ge), {
634
- key: 0,
635
- class: "margin-r-3",
636
- size: 18
637
- }, {
638
- default: C(() => [
639
- (g(), I(ze(w.icon)))
640
- ]),
641
- _: 2
642
- }, 1024)) : w.icon ? (g(), $("img", {
643
- key: 1,
644
- style: { width: "18px" },
645
- class: "margin-r-2",
646
- src: w.icon
647
- }, null, 8, Vl)) : (g(), $("div", El)),
648
- y("span", null, T(w.label), 1)
649
- ], 8, Ll),
650
- w.children ? (g(), I(Y, {
651
- key: 0,
652
- name: "arrowRight",
653
- class: "margin-r-2",
654
- size: 14
655
- })) : A("", !0),
656
- w.children ? (g(), $("div", Ml, [
657
- (g(!0), $(oe, null, ne(w.children, (S, H) => (g(), $("div", {
658
- key: H,
659
- class: "hzzt-kfb-menu-item",
660
- onClick: (E) => i(S, w)
661
- }, [
662
- y("div", Il, [
663
- r(S.icon) ? (g(), I(s(ge), {
664
- key: 0,
665
- class: "margin-r-2",
666
- size: 18
667
- }, {
668
- default: C(() => [
669
- (g(), I(ze(S.icon)))
670
- ]),
671
- _: 2
672
- }, 1024)) : S.icon ? (g(), $("img", {
673
- key: 1,
674
- style: { width: "18px" },
675
- class: "margin-r-2",
676
- src: S.icon
677
- }, null, 8, Sl)) : (g(), $("div", Pl)),
678
- y("span", null, T(S.label), 1)
679
- ])
680
- ], 8, Hl))), 128))
681
- ])) : A("", !0)
682
- ]))), 128))
683
- ], 4));
684
- }
685
- }), we = (d, e) => {
686
- const a = d.__vccOpts || d;
687
- for (const [t, f] of e)
688
- a[t] = f;
689
- return a;
690
- }, Rl = /* @__PURE__ */ we(Al, [["__scopeId", "data-v-739aad62"]]), Bl = {
691
- key: 0,
692
- class: "hzzt-kfb-microscope"
693
- }, Nl = /* @__PURE__ */ Q({
694
- __name: "KfbMicroscope",
695
- props: /* @__PURE__ */ Ot({
696
- shape: {},
697
- width: {},
698
- color: {},
699
- borderWidth: {}
700
- }, Z({}, qe)),
701
- setup(d, { expose: e }) {
702
- const a = d, t = Ye(Z(Z({}, qe), a));
703
- J(() => a, (n) => {
704
- p({ name: "change", value: n });
705
- });
706
- const f = x("200px"), m = x(!1), v = N(() => ({
707
- borderRadius: t.shape,
708
- borderColor: t.color,
709
- borderWidth: t.borderWidth + "px",
710
- width: f.value,
711
- height: f.value
712
- })), c = q("kfbView", x({}));
713
- J(() => c.value, (n, i) => {
714
- i != null && i.viewer && i.viewer.removeHandler("zoom", l), n != null && n.viewer && n.viewer.addHandler("zoom", l);
715
- }), fe(() => {
716
- var n;
717
- (n = c.value) != null && n.viewer && c.value.viewer.addHandler("zoom", l);
718
- }), $e(() => {
719
- var n;
720
- (n = c.value) != null && n.viewer && c.value.viewer.removeHandler("zoom", l);
721
- });
722
- function l() {
723
- setTimeout(() => {
724
- p({ name: "change", value: t });
725
- }, 100);
726
- }
727
- function h(n) {
728
- let { x: i, y: r } = c.value.viewer.viewport.getCenter(!0);
729
- n === "top" ? r -= 6e-3 : n === "bottom" ? r += 6e-3 : n === "left" ? i -= 6e-3 : n === "right" && (i += 6e-3), c.value.area.moveToLabel({ x: i, y: r });
730
- }
731
- function p({ name: n, value: i }) {
732
- var u, o;
733
- const r = (o = (u = c.value.$options) == null ? void 0 : u.pxConversion) == null ? void 0 : o.imageCapRes;
734
- if (n === "visible") {
735
- if (m.value = i, i) {
736
- const w = c.value.area.imageToViewerElementRectangle(
737
- {
738
- x: 0,
739
- y: 0,
740
- width: t.width * 1e3 / r,
741
- height: t.width * 1e3 / r
742
- }
743
- );
744
- f.value = w.width + "px";
745
- }
746
- } else if (n === "change") {
747
- Object.assign(t, i);
748
- const w = c.value.area.imageToViewerElementRectangle(
749
- {
750
- x: 0,
751
- y: 0,
752
- width: t.width * 1e3 / r,
753
- height: t.width * 1e3 / r
754
- }
755
- );
756
- f.value = w.width + "px";
757
- }
758
- }
759
- return e({
760
- scopeChange: p
761
- }), (n, i) => m.value ? (g(), $("div", Bl, [
762
- y("div", {
763
- class: "hzzt-kfb-microscope__container",
764
- style: X(v.value)
765
- }, null, 4),
766
- y("div", {
767
- class: "hzzt-kfb-microscope__top",
768
- onClick: i[0] || (i[0] = (r) => h("top"))
769
- }, [
770
- b(Y, {
771
- size: "24",
772
- name: "arrowUp"
773
- })
774
- ]),
775
- y("div", {
776
- class: "hzzt-kfb-microscope__bottom",
777
- onClick: i[1] || (i[1] = (r) => h("bottom"))
778
- }, [
779
- b(Y, {
780
- size: "24",
781
- name: "arrowDown"
782
- })
783
- ]),
784
- y("div", {
785
- class: "hzzt-kfb-microscope__left",
786
- onClick: i[2] || (i[2] = (r) => h("left"))
787
- }, [
788
- b(Y, {
789
- size: "24",
790
- name: "arrowLeft"
791
- })
792
- ]),
793
- y("div", {
794
- class: "hzzt-kfb-microscope__right",
795
- onClick: i[3] || (i[3] = (r) => h("right"))
796
- }, [
797
- b(Y, {
798
- size: "24",
799
- name: "arrowRight"
800
- })
801
- ])
802
- ])) : A("", !0);
803
- }
804
- }), Dl = /* @__PURE__ */ we(Nl, [["__scopeId", "data-v-e8b36101"]]), Ul = { class: "hzzt-kfb-label flex column" }, Fl = { class: "hzzt-kfb-label__img flex justify-content-center" }, Kl = ["src"], Zl = { class: "ellipsis flex-1" }, Ol = {
805
- class: "flex margin-b-4",
806
- style: { width: "100%" }
807
- }, jl = {
808
- class: "flex margin overflow-hidden",
809
- style: { height: "132px" }
810
- }, Gl = ["src"], Wl = ["src"], ql = /* @__PURE__ */ Q({
811
- __name: "KfbLabel",
812
- props: {
813
- info: {},
814
- slide: {},
815
- pathologyHandle: { type: Function }
816
- },
817
- emits: ["tool"],
818
- setup(d, { emit: e }) {
819
- const { t: a } = me(), t = d, f = e, m = x(!0), v = x(!1), c = N(() => t.slide.pathology_id ? a("修改病理号") : a("绑定病理号"));
820
- function l() {
821
- t.slide.angle || (t.slide.angle = 0), t.slide.angle += 90, t.slide.angle > 360 && (t.slide.angle = t.slide.angle % 360), f("tool", "rotate", t.slide.angle);
822
- }
823
- function h() {
824
- v.value = !0;
825
- }
826
- function p() {
827
- t.pathologyHandle && t.pathologyHandle(t.slide).then(() => {
828
- v.value = !1;
829
- });
830
- }
831
- return (n, i) => (g(), $("div", Ul, [
832
- Be(y("div", { class: "hzzt-kfb-label__title" }, T(s(a)(`点击标签旋转${n.pathologyHandle ? ",点击病理号重绑" : ""}`)), 513), [
833
- [je, m.value]
834
- ]),
835
- Be(y("div", Fl, [
836
- y("img", {
837
- src: n.info.labelImg,
838
- style: X({ transform: `rotate(${n.slide.angle}deg)` }),
839
- onClick: l
840
- }, null, 12, Kl)
841
- ], 512), [
842
- [je, m.value]
843
- ]),
844
- n.pathologyHandle ? Be((g(), $("div", {
845
- key: 0,
846
- class: "hzzt-kfb-label__pathology flex align-items-center justify-content-between",
847
- onClick: h
848
- }, [
849
- y("span", Zl, T(n.slide.pathology_number), 1),
850
- b(Y, {
851
- size: "14",
852
- name: "annotate"
853
- })
854
- ], 512)), [
855
- [je, m.value]
856
- ]) : A("", !0),
857
- y("span", {
858
- onClick: i[0] || (i[0] = (r) => m.value = !m.value),
859
- style: X({
860
- transform: `translateY(${m.value ? "-50%" : 0})`
861
- }),
862
- class: "hzzt-kfb-label__expend flex align-items-center justify-content-center"
863
- }, [
864
- m.value ? (g(), I(Y, {
865
- key: 0,
866
- size: "10",
867
- name: "arrowLeft"
868
- })) : (g(), I(Y, {
869
- key: 1,
870
- size: "10",
871
- name: "arrowRight"
872
- }))
873
- ], 4),
874
- b(s(Ue), {
875
- modelValue: v.value,
876
- "onUpdate:modelValue": i[5] || (i[5] = (r) => v.value = r),
877
- "append-to-body": !0,
878
- title: c.value,
879
- width: "450px"
880
- }, {
881
- footer: C(() => [
882
- b(s(he), {
883
- onClick: i[4] || (i[4] = (r) => v.value = !1)
884
- }, {
885
- default: C(() => [
886
- O(T(s(a)("取消")), 1)
887
- ]),
888
- _: 1
889
- }),
890
- b(s(he), {
891
- type: "primary",
892
- onClick: p
893
- }, {
894
- default: C(() => [
895
- O(T(s(a)("确认")), 1)
896
- ]),
897
- _: 1
898
- })
899
- ]),
900
- default: C(() => [
901
- y("div", Ol, [
902
- y("div", jl, [
903
- y("img", {
904
- src: n.slide.labelImg
905
- }, null, 8, Gl),
906
- y("img", {
907
- src: n.slide.previewImg
908
- }, null, 8, Wl)
909
- ])
910
- ]),
911
- b(s(We), { class: "margin-t-2" }, {
912
- default: C(() => [
913
- b(s(le), {
914
- label: s(a)("病理号")
915
- }, {
916
- default: C(() => [
917
- b(s(Ge), {
918
- modelValue: n.slide.pathology_number,
919
- "onUpdate:modelValue": i[1] || (i[1] = (r) => n.slide.pathology_number = r),
920
- placeholder: s(a)("输入病理号"),
921
- clearable: ""
922
- }, null, 8, ["modelValue", "placeholder"])
923
- ]),
924
- _: 1
925
- }, 8, ["label"]),
926
- b(s(le), {
927
- label: s(a)("蜡块号")
928
- }, {
929
- default: C(() => [
930
- b(s(Ge), {
931
- modelValue: n.slide.paraffin_block_number,
932
- "onUpdate:modelValue": i[2] || (i[2] = (r) => n.slide.paraffin_block_number = r),
933
- placeholder: s(a)("输入蜡块号"),
934
- clearable: ""
935
- }, null, 8, ["modelValue", "placeholder"])
936
- ]),
937
- _: 1
938
- }, 8, ["label"]),
939
- n.slide.slide_id ? A("", !0) : (g(), I(s(le), {
940
- key: 0,
941
- label: s(a)("试剂")
942
- }, {
943
- default: C(() => [
944
- b(s(Ge), {
945
- modelValue: n.slide.reagent,
946
- "onUpdate:modelValue": i[3] || (i[3] = (r) => n.slide.reagent = r),
947
- placeholder: s(a)("输入试剂"),
948
- clearable: ""
949
- }, null, 8, ["modelValue", "placeholder"])
950
- ]),
951
- _: 1
952
- }, 8, ["label"]))
953
- ]),
954
- _: 1
955
- })
956
- ]),
957
- _: 1
958
- }, 8, ["modelValue", "title"])
959
- ]));
960
- }
961
- }), Yl = /* @__PURE__ */ we(ql, [["__scopeId", "data-v-7397de48"]]);
962
- function Xl(d, e) {
963
- const a = x(1), t = x(null), f = x(null);
964
- function m() {
965
- d.value.viewer.addHandler("canvas-drag", (c) => {
966
- t.value || (t.value = c.position);
967
- }), d.value.viewer.addHandler("canvas-drag-end", (c) => {
968
- if (a.value !== 1) {
969
- f.value = c.position;
970
- const l = d.value.viewer.viewport.containerSize.x, h = d.value.viewer.viewport.containerSize.y, p = (f.value.x - t.value.x) / (l * e.value) * (a.value - 1), n = (f.value.y - t.value.y) / (h * e.value) * (a.value - 1), i = d.value.viewer.viewport.getCenter(), r = new be.Point(i.x - p, i.y - n);
971
- d.value.viewer.viewport.panTo(r), t.value = null;
972
- }
973
- });
974
- }
975
- function v({ name: c, value: l }) {
976
- c === "ratio" && (a.value = l / 1);
977
- }
978
- return {
979
- moveEvent: m,
980
- fastMove: v
981
- };
982
- }
983
- function Ql(d, e, a) {
984
- const t = x(!1), f = x(void 0), m = x(void 0), v = x([]);
985
- J(() => d.aiLabelList, p);
986
- function c() {
987
- a.value.$on(ue.events.EVENT_END_PAINTING, l("add")), a.value.$on(ue.events.EVENT_AREA_MOVE_END, l("move")), a.value.$on(ue.events.EVENT_ADD_POLYGON_POINT, l("add-point")), a.value.$on(ue.events.EVENT_DELETE_POLYGON_POINT, l("delete-point")), a.value.$on(ue.events.EVENT_DELETE_LABEL, l("delete")), a.value.$on(ue.events.EVENT_SELECT_LABEL, (r) => {
988
- var o, w, _, S;
989
- f.value = r, (((o = f.value) == null ? void 0 : o.subType) || ((_ = (w = f.value) == null ? void 0 : w.__data__) == null ? void 0 : _.subType)) === "voice" && ((S = f.value) != null && S.src) && new Audio(f.value.src).play(), e("tool", "select-label", f.value);
990
- }), a.value.$on(ue.events.EVENT_CANCEL_SELECT_LABEL, () => {
991
- f.value = void 0, e("tool", "cancel-select-label", f.value);
992
- }), l("list")();
993
- }
994
- function l(r) {
995
- return (u) => h(r, u);
996
- }
997
- function h(r, u) {
998
- var o;
999
- if (r === "add" && ((u == null ? void 0 : u.subType) || ((o = u == null ? void 0 : u.__data__) == null ? void 0 : o.subType)) === "voice")
1000
- m.value = u, t.value = !0;
1001
- else
1002
- return d.labelHandle(r, d.slide, u).then((w) => {
1003
- v.value = w, p();
1004
- }).catch(() => {
1005
- p();
1006
- });
1007
- }
1008
- function p() {
1009
- var r;
1010
- if ((r = a.value) != null && r.initLabelList) {
1011
- const u = [...v.value, ...d.aiLabelList || []];
1012
- u.find(({ id: o }) => {
1013
- var w;
1014
- return o === ((w = f.value) == null ? void 0 : w.id);
1015
- }) || (f.value = void 0), a.value.initLabelList(u);
1016
- }
1017
- }
1018
- function n(r) {
1019
- var o;
1020
- f.value && (f.value.select = !1);
1021
- const u = (a.value.labelList || []).findIndex((w) => w.id === r.id);
1022
- if (u > -1) {
1023
- f.value = (o = a.value.labelList) == null ? void 0 : o[u], f.value.select = !0;
1024
- const w = a.value.area.getCenterPoint(r.region);
1025
- a.value.area.moveToLabel(w);
1026
- }
1027
- }
1028
- function i(r) {
1029
- return t.value = !1, d.labelHandle("add", d.slide, r).then((u) => {
1030
- v.value = u, p();
1031
- }).catch(() => {
1032
- p();
1033
- });
1034
- }
1035
- return {
1036
- currentLabel: f,
1037
- voiceVisible: t,
1038
- labelForm: m,
1039
- initLabel: c,
1040
- selectLabel: n,
1041
- reloadLabelList: p,
1042
- eventHandel: l,
1043
- addHandle: i
1044
- };
1045
- }
1046
- function Jl() {
1047
- function d(e, a) {
1048
- e.save(), e.strokeStyle = "rgba(0,0,0,0)", e.miterLimit = 4, e.font = "15px", e.fillStyle = a, e.font = "15px", e.scale(0.02734375, 0.02734375), e.save(), e.font = "15px", e.beginPath(), e.moveTo(512, 427.023), e.moveTo(422, 427.023), e.translate(512, 427.023), e.rotate(0), e.arc(0, 0, 90, 3.141592653589793, 6.283185307179586, !0), e.rotate(0), e.translate(-512, -427.023), e.translate(512, 427.023), e.rotate(0), e.arc(0, 0, 90, 0, 3.141592653589793, !0), e.rotate(0), e.translate(-512, -427.023), e.fill(), e.stroke(), e.restore(), e.save(), e.font = "15px", e.beginPath(), e.moveTo(512, 910.402), e.bezierCurveTo(492.86, 910.402, 474.51800000000003, 904.548, 458.95799999999997, 893.4730000000001), e.bezierCurveTo(444.895, 883.4630000000001, 434.032, 869.8770000000001, 427.36899999999997, 854.013), e.lineTo(255.043, 585.177), e.lineTo(254.889, 584.927), e.bezierCurveTo(225.522, 537.209, 210, 482.605, 210, 427.021), e.bezierCurveTo(210, 346.35400000000004, 241.414, 270.515, 298.454, 213.47500000000002), e.bezierCurveTo(355.494, 156.43500000000006, 431.333, 125.021, 512, 125.021), e.bezierCurveTo(592.6669999999999, 125.021, 668.506, 156.435, 725.546, 213.475), e.bezierCurveTo(782.587, 270.515, 814, 346.354, 814, 427.021), e.bezierCurveTo(814, 482.87, 798.345, 537.692, 768.726, 585.56), e.lineTo(768.462, 585.9789999999999), e.lineTo(596.381, 854.6949999999999), e.bezierCurveTo(589.626, 870.4209999999999, 578.721, 883.871, 564.677, 893.7499999999999), e.bezierCurveTo(549.192, 904.6449999999999, 530.977, 910.4019999999999, 512, 910.4019999999999), e.closePath(), e.moveTo(309.246, 551.141), e.lineTo(484.74, 824.9209999999999), e.lineTo(485.934, 828.1179999999999), e.bezierCurveTo(490.083, 839.2249999999999, 500.31500000000005, 846.4019999999999, 512, 846.4019999999999), e.bezierCurveTo(523.584, 846.4019999999999, 533.791, 839.3309999999999, 538.004, 828.387), e.lineTo(539.169, 825.3589999999999), e.lineTo(714.43, 551.678), e.bezierCurveTo(737.701, 513.983, 750, 470.884, 750, 427.021), e.bezierCurveTo(750, 363.449, 725.244, 303.682, 680.2909999999999, 258.72900000000004), e.bezierCurveTo(635.3389999999999, 213.77800000000005, 575.5719999999999, 189.02100000000004, 511.99999999999994, 189.02100000000004), e.bezierCurveTo(448.428, 189.02100000000004, 388.66099999999994, 213.77700000000004, 343.70799999999997, 258.72900000000004), e.bezierCurveTo(298.755, 303.68100000000004, 274, 363.449, 274, 427.021), e.bezierCurveTo(274, 470.661, 286.186, 513.573, 309.246, 551.1410000000001), e.closePath(), e.fill(), e.stroke(), e.restore(), e.restore();
1049
- }
1050
- return {
1051
- drawDot: d
1052
- };
1053
- }
1054
- function eo(d, e) {
1055
- const a = x();
1056
- let t = null;
1057
- const f = x(!1);
1058
- function m(l, h) {
1059
- l.save(), l.strokeStyle = "rgba(0,0,0,0)", l.miterLimit = 4, l.font = "15px ''", l.fillStyle = h, l.font = " 15px ''", l.scale(0.03125, 0.03125), l.save(), l.font = " 15px ''", l.beginPath(), l.moveTo(515.041727, 670.617766), l.bezierCurveTo(606.625894, 670.617766, 681.137374, 596.113511, 681.137374, 504.52212), l.lineTo(681.137374, 229.350568), l.bezierCurveTo(681.137374, 137.76640100000003, 606.625894, 63.254920999999996, 515.041727, 63.254920999999996), l.bezierCurveTo(423.44311000000005, 63.254920999999996, 348.93885500000005, 137.766401, 348.93885600000004, 229.350568), l.lineTo(348.93885600000004, 504.52212), l.bezierCurveTo(348.93885600000004, 596.113512, 423.44311100000004, 670.617767, 515.041727, 670.617766), l.closePath(), l.fill(), l.stroke(), l.restore(), l.save(), l.font = " 15px ''", l.beginPath(), l.moveTo(801.643237, 874.001665), l.lineTo(558.391759, 874.001665), l.lineTo(558.391759, 828.578057), l.bezierCurveTo(719.899527, 807.264291, 844.993269, 668.7898399999999, 844.993269, 501.55986699999994), l.translate(801.643237, 501.55986699999994), l.rotate(0), l.arc(0, 0, 43.350032, 0, 3.141592653589793, !0), l.rotate(0), l.translate(-801.643237, -501.55986699999994), l.bezierCurveTo(758.2932050000001, 635.684865, 649.166725, 744.811345, 515.0345020000001, 744.811346), l.bezierCurveTo(380.9095040000001, 744.811346, 271.79024900000013, 635.6848659999999, 271.79024900000013, 501.55986699999994), l.translate(228.44021750000013, 501.5664510740879), l.rotate(0), l.arc(0, 0, 43.350032, -15188164315591997e-20, -3.1414407719461273, !0), l.rotate(0), l.translate(-228.44021750000013, -501.5664510740879), l.bezierCurveTo(185.09018600000013, 668.7898389999999, 310.1911530000001, 807.271516, 471.69169500000015, 828.578057), l.lineTo(471.69169500000015, 874.001665), l.lineTo(228.440217, 874.001665), l.translate(228.440217, 917.3516970000001), l.rotate(0), l.arc(0, 0, 43.350032, -1.5707963267948966, 1.5707963267948966, !0), l.rotate(0), l.translate(-228.440217, -917.3516970000001), l.lineTo(801.643237, 960.701729), l.translate(801.643237, 917.3516970000001), l.rotate(0), l.arc(0, 0, 43.350032, 1.5707963267948966, 4.71238898038469, !0), l.rotate(0), l.translate(-801.643237, -917.3516970000001), l.closePath(), l.fill(), l.stroke(), l.restore(), l.restore();
1060
- }
1061
- function v() {
1062
- return Oe(this, null, function* () {
1063
- try {
1064
- a.value = yield navigator.mediaDevices.getUserMedia({ audio: !0 }), t = new MediaRecorder(a.value);
1065
- const l = [];
1066
- t.addEventListener("dataavailable", (h) => {
1067
- l.push(h.data);
1068
- }), t.addEventListener("stop", () => {
1069
- const h = new Blob(l, { type: "audio/wav" });
1070
- e.value && (e.value.src = URL.createObjectURL(h)), d.uploadHandle && e.value && d.uploadHandle(d.slide, e.value, h).then((p) => {
1071
- e.value.src = p;
1072
- }), f.value = !1;
1073
- }), t.start(), f.value = !0;
1074
- } catch (l) {
1075
- console.error("录音错误:", l);
1076
- }
1077
- });
1078
- }
1079
- function c() {
1080
- a.value && t ? (t.stop(), a.value.getTracks().forEach((l) => l.stop()), t = null, a.value = void 0) : (t = null, a.value = void 0), f.value = !1;
1081
- }
1082
- return {
1083
- drawVoice: m,
1084
- isRecording: f,
1085
- startRecording: v,
1086
- stopRecording: c
1087
- };
1088
- }
1089
- function to(d, e) {
1090
- const a = x([]), t = x(0), f = x(!1);
1091
- let m = null;
1092
- J(() => {
1093
- var i;
1094
- return (i = d.hotmap) == null ? void 0 : i.enable;
1095
- }, () => {
1096
- var i, r;
1097
- if ((r = (i = e.value) == null ? void 0 : i.viewer) != null && r.world) {
1098
- t.value = 0;
1099
- const u = e.value.viewer.world.getItemAt(0);
1100
- u && (u.tilesMatrix = {}, u.draw());
1101
- }
1102
- }), fe(() => {
1103
- window.addEventListener("mousemove", l), window.addEventListener("mouseup", p);
1104
- }), $e(() => {
1105
- window.removeEventListener("mousemove", l), window.removeEventListener("mouseup", p);
1106
- });
1107
- function v(i, r, u) {
1108
- var w, _, S, H, E, P;
1109
- const o = ve(Z({}, r), {
1110
- file: (w = d.hotmap) == null ? void 0 : w.file
1111
- });
1112
- if ((_ = d.hotmap) != null && _.info) {
1113
- if (u[r.x + "_" + r.y + "_" + Number(r.scale)]) {
1114
- if (((S = d.hotmap) == null ? void 0 : S.type) === "switch")
1115
- return d.tileHandle(o);
1116
- if (((H = d.hotmap) == null ? void 0 : H.type) === "drag")
1117
- return c(i, o), i;
1118
- }
1119
- } else return ((E = d.hotmap) == null ? void 0 : E.type) === "switch" ? d.tileHandle(o) : (((P = d.hotmap) == null ? void 0 : P.type) === "drag" && c(i, o), i);
1120
- }
1121
- function c(i, r) {
1122
- const u = a.value.find((o) => o.url === i) || {
1123
- url: i,
1124
- x: r.x,
1125
- y: r.y,
1126
- img: void 0,
1127
- load: ""
1128
- };
1129
- if (!(u != null && u.img) && (a.value.push(u), u.load !== "success")) {
1130
- const o = new Image();
1131
- o.src = d.tileHandle(r), o.onload = () => {
1132
- u.load = "success";
1133
- }, u.img = o;
1134
- }
1135
- }
1136
- function l(i) {
1137
- f.value && m && (t.value += i.x - m.x, t.value < 0 ? t.value = 0 : t.value > e.value.$options.width && (t.value = e.value.$options.width, f.value = !1), e.value.viewer.forceRedraw()), m = { x: i.x, y: i.y };
1138
- }
1139
- function h(i) {
1140
- const { x: r, y: u } = i;
1141
- f.value = !0, m = { x: r, y: u };
1142
- }
1143
- function p() {
1144
- f.value = !1, m = null;
1145
- }
1146
- function n(i) {
1147
- const {
1148
- context: r,
1149
- sourceWidth: u,
1150
- sourceHeight: o,
1151
- position: w,
1152
- size: _,
1153
- initRendered: S,
1154
- tile: H,
1155
- pixelDensityRatio: E
1156
- } = i, P = H.getUrl(), L = t.value * E, ee = w.original.x;
1157
- if (ee < L && ee + _.x > L) {
1158
- const W = L - ee, ae = _.x - W, se = a.value.find((Te) => Te.url === P), ye = (se == null ? void 0 : se.load) === "success" ? se.img : S.canvas;
1159
- r.drawImage(
1160
- ye,
1161
- 0,
1162
- 0,
1163
- u * W / _.x,
1164
- o,
1165
- w.x,
1166
- w.y,
1167
- W,
1168
- _.y
1169
- ), r.drawImage(
1170
- S.canvas,
1171
- u * W / _.x,
1172
- 0,
1173
- u * ae / _.x,
1174
- o,
1175
- w.x + W,
1176
- w.y,
1177
- ae,
1178
- _.y
1179
- );
1180
- } else if (ee + _.x <= L) {
1181
- const W = a.value.find((se) => se.url === P), ae = (W == null ? void 0 : W.load) === "success" ? W.img : S.canvas;
1182
- r.drawImage(
1183
- ae,
1184
- 0,
1185
- 0,
1186
- u,
1187
- o,
1188
- w.x,
1189
- w.y,
1190
- _.x,
1191
- _.y
1192
- );
1193
- } else ee >= L && r.drawImage(
1194
- S.canvas,
1195
- 0,
1196
- 0,
1197
- u,
1198
- o,
1199
- w.x,
1200
- w.y,
1201
- _.x,
1202
- _.y
1203
- );
1204
- }
1205
- return {
1206
- getHotmapUrl: v,
1207
- hotmapImgs: a,
1208
- handlerImage: n,
1209
- hotmapLine: t,
1210
- lineMouseDown: h
1211
- };
1212
- }
1213
- function lo(d, e, a) {
1214
- const t = jt(), f = x(!1), m = new BroadcastChannel("sync_kfb_view");
1215
- m.onmessage = (n) => {
1216
- const i = n.data;
1217
- h(i);
1218
- }, fe(() => {
1219
- var n, i, r;
1220
- (n = a.value) == null || n.addEventListener("mouseenter", v), (i = a.value) == null || i.addEventListener("mousemove", v), (r = a.value) == null || r.addEventListener("mouseleave", c);
1221
- }), $e(() => {
1222
- var n, i, r;
1223
- (n = a.value) == null || n.removeEventListener("mouseenter", v), (i = a.value) == null || i.removeEventListener("mousemove", v), (r = a.value) == null || r.removeEventListener("mouseleave", c), m.close();
1224
- });
1225
- function v() {
1226
- f.value = !0;
1227
- }
1228
- function c() {
1229
- f.value = !1;
1230
- }
1231
- function l() {
1232
- let n;
1233
- e.value.viewer.addHandler("pan", (i) => {
1234
- var o, w, _, S;
1235
- if (!n) {
1236
- n = (w = (o = i.center) == null ? void 0 : o.clone) == null ? void 0 : w.call(o);
1237
- return;
1238
- }
1239
- const r = i.center, u = (_ = r == null ? void 0 : r.minus) == null ? void 0 : _.call(r, n);
1240
- n = (S = r == null ? void 0 : r.clone) == null ? void 0 : S.call(r), d.syncPosition && p({
1241
- position: u,
1242
- type: "sync_position"
1243
- });
1244
- }), e.value.viewer.addHandler("zoom", (i) => {
1245
- d.syncZoom && p({
1246
- zoom: i.zoom,
1247
- type: "sync_zoom"
1248
- });
1249
- }), e.value.viewer.addHandler("animation-finish", () => {
1250
- var u;
1251
- if (d.syncZoom && p({
1252
- zoom: e.value.viewer.viewport.getZoom(!0),
1253
- type: "sync_zoom"
1254
- }), !n)
1255
- return;
1256
- const i = e.value.viewer.viewport.getCenter(!0), r = (u = i == null ? void 0 : i.minus) == null ? void 0 : u.call(i, n);
1257
- n = void 0, d.syncPosition && p({
1258
- position: r,
1259
- type: "sync_position"
1260
- });
1261
- });
1262
- }
1263
- function h(n) {
1264
- n.uuid && n.type === "sync_position" && n.uuid !== (t == null ? void 0 : t.uid) ? e.value && e.value.viewer.viewport.panBy(n.position, !0) : n.uuid && n.type === "sync_zoom" && n.uuid !== (t == null ? void 0 : t.uid) && e.value && e.value.viewer.viewport.zoomTo(n.zoom);
1265
- }
1266
- function p(n) {
1267
- var i;
1268
- f.value && m.postMessage(ve(Z({}, n), {
1269
- uuid: t == null ? void 0 : t.uid,
1270
- fileName: (i = d.slide) == null ? void 0 : i.file
1271
- }));
1272
- }
1273
- return {
1274
- initSync: l
1275
- };
1276
- }
1277
- const oo = { class: "hzzt-kfb-keyword flex wrap" }, no = ["onMouseenter"], ao = /* @__PURE__ */ Q({
1278
- __name: "KfbKeyword",
1279
- setup(d) {
1280
- const e = x([
1281
- { code: "Q", icon: "zoomIn" },
1282
- { code: "W", icon: "arrowUp" },
1283
- { code: "E", icon: "zoomOut" },
1284
- { code: "A", icon: "arrowLeft" },
1285
- { code: "S", icon: "arrowDown" },
1286
- { code: "D", icon: "arrowRight" }
1287
- ]), a = q("kfbView", x({}));
1288
- let t = null;
1289
- function f(v, c) {
1290
- v.preventDefault(), t && clearTimeout(t), t = setInterval(() => {
1291
- c === "E" && (a.value.viewer.viewport.zoomBy(1.1), a.value.viewer.viewport.applyConstraints()), c === "Q" && (a.value.viewer.viewport.zoomBy(0.9), a.value.viewer.viewport.applyConstraints()), c === "W" && (a.value.viewer.viewport.panBy(a.value.viewer.viewport.deltaPointsFromPixels(new be.Point(0, -40))), a.value.viewer.viewport.applyConstraints()), c === "S" && (a.value.viewer.viewport.panBy(a.value.viewer.viewport.deltaPointsFromPixels(new be.Point(0, 40))), a.value.viewer.viewport.applyConstraints()), c === "A" && (a.value.viewer.viewport.panBy(a.value.viewer.viewport.deltaPointsFromPixels(new be.Point(-40, 0))), a.value.viewer.viewport.applyConstraints()), c === "D" && (a.value.viewer.viewport.panBy(a.value.viewer.viewport.deltaPointsFromPixels(new be.Point(40, 0))), a.value.viewer.viewport.applyConstraints());
1292
- }, 120);
1293
- }
1294
- function m() {
1295
- t && (clearInterval(t), t = null);
1296
- }
1297
- return $e(() => {
1298
- clearTimeout(t);
1299
- }), (v, c) => (g(), $("div", oo, [
1300
- (g(!0), $(oe, null, ne(e.value, (l) => (g(), $("div", {
1301
- key: l.code,
1302
- class: "hzzt-kfb-keyword__code flex column align-items-center justify-content-center",
1303
- onMouseenter: (h) => f(h, l.code),
1304
- onMouseleave: m
1305
- }, [
1306
- y("p", null, T(l.code), 1),
1307
- b(Y, {
1308
- size: "14",
1309
- name: l.icon
1310
- }, null, 8, ["name"])
1311
- ], 40, no))), 128))
1312
- ]));
1313
- }
1314
- }), so = /* @__PURE__ */ we(ao, [["__scopeId", "data-v-c8d940f0"]]);
1315
- function io(d, e, a = {}) {
1316
- const {
1317
- panSensitivity: t = 0.2,
1318
- // 值越大,鼠标移动时图像移动越快
1319
- zoomSensitivity: f = 1.1,
1320
- // 值越大,滚轮缩放幅度越大
1321
- damping: m = 0.6,
1322
- // 值越大,惯性滑动时间越长
1323
- minThreshold: v = 0.05
1324
- // 值越小,停止移动时的精度越高
1325
- } = a;
1326
- let c = !1, l = null, h = 0, p = 0, n = !1;
1327
- const i = () => {
1328
- c = document.pointerLockElement === e.value, c || r();
1329
- }, r = () => {
1330
- h = 0, p = 0, l && (cancelAnimationFrame(l), l = null), n = !1;
1331
- }, u = (H) => Oe(this, null, function* () {
1332
- try {
1333
- H.key === "l" && e.value && (document.pointerLockElement ? (document.exitPointerLock(), console.log("鼠标已解锁!")) : (yield e.value.requestPointerLock(), console.log("鼠标已锁定!")));
1334
- } catch (E) {
1335
- console.error("无法锁定鼠标:", E);
1336
- }
1337
- }), o = (H) => {
1338
- if (c) {
1339
- H.preventDefault();
1340
- const E = Math.pow(f, Math.sign(H.deltaY) * -1);
1341
- d.value.viewer.viewport.zoomBy(E), d.value.viewer.viewport.applyConstraints();
1342
- }
1343
- }, w = (H) => {
1344
- c && (h += H.movementX * t, p += H.movementY * t, !n && (Math.abs(h) > 1 || Math.abs(p) > 1) && (n = !0, l = requestAnimationFrame(_)));
1345
- }, _ = () => {
1346
- const H = d.value.viewer.viewport;
1347
- if (Math.abs(h) > v || Math.abs(p) > v) {
1348
- const E = H.deltaPointsFromPixels(
1349
- new be.Point(h, p)
1350
- );
1351
- H.panBy(E), H.applyConstraints();
1352
- }
1353
- h *= m, p *= m, Math.abs(h) > v || Math.abs(p) > v ? l = requestAnimationFrame(_) : r();
1354
- }, S = () => {
1355
- c && document.exitPointerLock();
1356
- };
1357
- return fe(() => {
1358
- var H;
1359
- (H = e.value) == null || H.addEventListener("keydown", u), document.addEventListener("wheel", o, { passive: !1 }), document.addEventListener("click", S), document.addEventListener("mousemove", w), document.addEventListener("pointerlockchange", i);
1360
- }), $e(() => {
1361
- var H;
1362
- (H = e.value) == null || H.removeEventListener("keydown", u), document.removeEventListener("click", S), document.removeEventListener("wheel", o), document.removeEventListener("mousemove", w), document.removeEventListener("pointerlockchange", i), r();
1363
- }), {
1364
- setConfig: (H) => {
1365
- Object.assign(a, H);
1366
- }
1367
- };
1368
- }
1369
- const ro = /* @__PURE__ */ Q({
1370
- __name: "KfbLevel",
1371
- props: /* @__PURE__ */ Me({
1372
- slides: { default: () => [] }
1373
- }, {
1374
- "model-value": {
1375
- default: 0
1376
- },
1377
- "model-valueModifiers": {}
1378
- }),
1379
- emits: ["update:model-value"],
1380
- setup(d) {
1381
- const e = d, a = Ee(d, "model-value"), t = q("kfbView", x({})), f = N(() => Array.from(new Array(e.slides.length + 1)).map((v, c) => c));
1382
- function m() {
1383
- const v = t.value.viewer.world.getItemAt(0), c = Object.keys(v.tilesMatrix);
1384
- c.forEach((l, h) => {
1385
- h > c.length - 4 && (v.tilesMatrix[l] = {});
1386
- }), v.draw();
1387
- }
1388
- return (v, c) => (g(), $("div", {
1389
- class: Ie(["hzzt-kfb-level flex column align-items-center", v.slides.length > 5 ? "hzzt-kfb-level--large" : ""])
1390
- }, [
1391
- b(Y, {
1392
- name: "level",
1393
- size: "24",
1394
- class: "margin-b-4 margin-t-2"
1395
- }),
1396
- b(s(qt), {
1397
- modelValue: a.value,
1398
- "onUpdate:modelValue": c[0] || (c[0] = (l) => a.value = l),
1399
- vertical: "",
1400
- min: f.value[0],
1401
- step: 1,
1402
- max: f.value[f.value.length - 1],
1403
- "show-stops": "",
1404
- "show-tooltip": !0,
1405
- placement: "left",
1406
- height: v.slides.length > 5 ? "180px" : "130px",
1407
- onInput: m
1408
- }, null, 8, ["modelValue", "min", "max", "height"])
1409
- ], 2));
1410
- }
1411
- }), uo = {
1412
- key: 0,
1413
- class: "flex hzzt-kfb-channel"
1414
- }, co = ["onClick"], vo = /* @__PURE__ */ Q({
1415
- __name: "KfbChannel",
1416
- props: /* @__PURE__ */ Me({
1417
- info: {}
1418
- }, {
1419
- "model-value": {
1420
- default: () => []
1421
- },
1422
- "model-valueModifiers": {}
1423
- }),
1424
- emits: /* @__PURE__ */ Me(["load"], ["update:model-value"]),
1425
- setup(d, { emit: e }) {
1426
- const a = d, t = e, f = Ee(d, "model-value"), m = [
1427
- { key: "DAPI", color: "#4A6CF7" },
1428
- { key: "480", color: "#00BFFF" },
1429
- { key: "520", color: "#32CD32" },
1430
- { key: "570", color: "#FFAA33" },
1431
- { key: "620", color: "#FF6347" },
1432
- { key: "670", color: "#DC143C" },
1433
- { key: "780", color: "#4B0082" }
1434
- ], v = N(() => {
1435
- var l;
1436
- return (((l = a.info) == null ? void 0 : l.channel) || []).map((h) => {
1437
- const p = m.find((n) => n.key === h.eqt_num);
1438
- return {
1439
- label: h.eqt_num,
1440
- color: h.r ? `rgb(${h.r}, ${h.g}, ${h.b})` : p == null ? void 0 : p.color
1441
- };
1442
- });
1443
- });
1444
- function c(l) {
1445
- f.value.includes(l) ? f.value = f.value.filter((h) => h !== l) : f.value.push(l), t("load");
1446
- }
1447
- return (l, h) => v.value.length > 0 ? (g(), $("div", uo, [
1448
- b(Y, {
1449
- name: "channel",
1450
- size: "32"
1451
- }),
1452
- (g(!0), $(oe, null, ne(v.value, (p) => (g(), $("div", {
1453
- key: p.label,
1454
- style: X({ background: p.color }),
1455
- class: Ie(["hzzt-kfb-channel__box", f.value.includes(p.label) ? "" : "hzzt-kfb-channel__box--unactive"]),
1456
- onClick: (n) => c(p.label)
1457
- }, T(p.label), 15, co))), 128))
1458
- ])) : A("", !0);
1459
- }
1460
- }), fo = ["element-loading-text"], mo = {
1461
- key: 1,
1462
- class: "hzzt-kfb-view__main flex align-items-center justify-content-center"
1463
- }, po = {
1464
- class: "hzzt-kfb-view__filter",
1465
- height: "0",
1466
- width: "0"
1467
- }, ho = { id: "colorMatrixFilter" }, go = ["values"], wo = ["values"], yo = ["exponent"], _o = ["exponent"], bo = ["exponent"], ko = { class: "flex nowrap justify-content-center overflow-hidden" }, zo = ["src"], xo = ["src"], Co = { class: "flex-1" }, $o = { class: "flex-1" }, To = { class: "flex-1" }, Lo = { class: "flex-1" }, Vo = { class: "flex-1" }, Eo = { class: "flex-1" }, Mo = ["src"], Ce = /* @__PURE__ */ Q({
1468
- name: "HzztKfbView",
1469
- __name: "index",
1470
- props: {
1471
- slide: {},
1472
- fileHandle: {},
1473
- labelHandle: {},
1474
- tileHandle: {},
1475
- navigatorHandle: {},
1476
- pathologyHandle: {},
1477
- uploadHandle: {},
1478
- options: {},
1479
- labelDrawing: {},
1480
- process: { default: () => Z({}, ht) },
1481
- microscope: { default: () => Z({}, qe) },
1482
- menus: {},
1483
- aiLabelList: {},
1484
- hotmap: {},
1485
- syncPosition: { type: Boolean },
1486
- syncZoom: { type: Boolean }
1487
- },
1488
- emits: ["tool"],
1489
- setup(d, { expose: e, emit: a }) {
1490
- const t = d, f = a, { t: m, locale: v } = me(), c = x(), l = x(), h = x(), p = x(!1), n = x({}), i = x(!1), r = x(0), u = x(0), o = x(0), w = x([]), _ = x({
1491
- width: 0,
1492
- height: 0,
1493
- fileNum: 0,
1494
- scanScale: 1,
1495
- fileName: "",
1496
- ratiomap: {}
1497
- }), S = q("show-kfb-label", x(!0)), H = q("show-keyboard", x(!1)), E = q("hidden-all-label", x(!1)), P = Yt.directive;
1498
- J(() => {
1499
- var k;
1500
- return (k = t.slide) == null ? void 0 : k.file;
1501
- }, () => {
1502
- Ht(), setTimeout(() => {
1503
- Je();
1504
- }, 100);
1505
- }), fe(() => {
1506
- Je();
1507
- });
1508
- const {
1509
- imageProcess: L,
1510
- matrixValues: ee,
1511
- saturateValues: W,
1512
- forceRedraw: ae
1513
- } = pl(t), {
1514
- tailorEvent: se,
1515
- shotScreen: ye
1516
- } = hl(f, n), {
1517
- moveEvent: Te,
1518
- fastMove: Ze
1519
- } = Xl(n, u), {
1520
- currentLabel: z,
1521
- voiceVisible: R,
1522
- labelForm: D,
1523
- initLabel: ie,
1524
- selectLabel: Le,
1525
- reloadLabelList: gt,
1526
- eventHandel: wt,
1527
- addHandle: yt
1528
- } = Ql(t, f, n), { initSync: _t } = lo(t, n, c);
1529
- io(n, c);
1530
- const { drawDot: bt } = Jl(), {
1531
- drawVoice: kt,
1532
- isRecording: zt,
1533
- startRecording: xt,
1534
- stopRecording: Ct
1535
- } = eo(t, D), {
1536
- getHotmapUrl: $t,
1537
- handlerImage: Tt,
1538
- hotmapLine: Lt,
1539
- lineMouseDown: Qe,
1540
- hotmapImgs: Vt
1541
- } = to(t, n);
1542
- function Je() {
1543
- var k;
1544
- (k = t.slide) != null && k.file && t.fileHandle && (i.value || (i.value = !0, t.fileHandle(t.slide).then((V) => {
1545
- var j, te, de, F;
1546
- _.value = V, w.value = (((j = _.value) == null ? void 0 : j.channel) || []).map((K) => K.eqt_num), n.value = new ue(Z({
1547
- el: l.value,
1548
- fileName: (te = t.slide) == null ? void 0 : te.file,
1549
- scale: _.value.scanScale,
1550
- lang: (v == null ? void 0 : v.value) === "en-US" ? "en" : v == null ? void 0 : v.value,
1551
- navigator: {
1552
- style: "left: 0;bottom: 0",
1553
- thumbnail: _.value.thumbnailImg,
1554
- width: 200,
1555
- height: 180
1556
- },
1557
- grid: {
1558
- show: !1,
1559
- ruler: !1,
1560
- pxConversion: !0
1561
- },
1562
- thumb: {
1563
- bgColor: "rgba(0,0,0,0)"
1564
- },
1565
- graduation: {
1566
- show: !0,
1567
- right: 120,
1568
- bottom: (F = (de = _.value) == null ? void 0 : de.channel) != null && F.length ? 120 : 30,
1569
- tick: {
1570
- number: 3,
1571
- height: 8
1572
- }
1573
- },
1574
- pxConversion: {
1575
- units: ["um", "mm"],
1576
- binary: 1e3,
1577
- imageCapRes: _.value.imageCapRes || _.value.scanResolution || 1
1578
- },
1579
- openSeadragonOptions: {
1580
- maxZoomLevel: _.value.scanScale * 20,
1581
- pixelsPerArrowPress: 200,
1582
- animationTime: 0,
1583
- tileSources: et()
1584
- },
1585
- tileDrawing: Tt,
1586
- label: {
1587
- drawing: (K, U, _e) => {
1588
- var Se;
1589
- if (U != null && U.custom) {
1590
- const G = K.getContext("2d");
1591
- G.save(), G.beginPath();
1592
- const Ve = (U == null ? void 0 : U.subType) || ((Se = U == null ? void 0 : U.__data__) == null ? void 0 : Se.subType);
1593
- Ve === "count" ? (G.translate(_e.x - 14, _e.y - 22), bt(G, (U == null ? void 0 : U.strokeStyle) || "")) : Ve === "voice" ? (G.translate(_e.x - 16, _e.y - 18), kt(G, (U == null ? void 0 : U.strokeStyle) || "")) : t.labelDrawing && t.labelDrawing(G, U), G.restore();
1594
- }
1595
- }
1596
- }
1597
- }, t.options || {})), n.value.viewer.drawer.canvas.style.filter = "url(#colorMatrixFilter)", ie(), Mt(), _t();
1598
- }).finally(() => {
1599
- i.value = !1, E.value && (nt({
1600
- show: !1,
1601
- ruler: !1
1602
- }), at({
1603
- show: !1
1604
- }), setTimeout(() => {
1605
- st(!1);
1606
- }, 100));
1607
- })));
1608
- }
1609
- function Et() {
1610
- const k = n.value.viewer;
1611
- if (k.world) {
1612
- const V = k.world.getItemAt(0), j = k.viewport.getZoom(), te = k.viewport.getCenter();
1613
- k.world.removeItem(V), k.addTiledImage({
1614
- tileSource: et(),
1615
- success: function() {
1616
- k.viewport.zoomTo(j), k.viewport.panTo(te);
1617
- }
1618
- });
1619
- }
1620
- }
1621
- function et() {
1622
- var de, F;
1623
- const k = _.value.tileWidth || _.value.imageBlockLen || 256, V = _.value.tileHeight || _.value.imageBlockLen || 256, j = {};
1624
- (de = t.hotmap) != null && de.enable && (((F = t.hotmap) == null ? void 0 : F.info) || []).forEach((K) => {
1625
- j[K[0] / k + "_" + K[1] / V + "_" + K[2]] = !0;
1626
- });
1627
- let te = 10;
1628
- return Object.keys(_.value.ratiomap).forEach((K) => {
1629
- const U = _.value.fileNum - Math.sqrt(_.value.scanScale / Number(K));
1630
- U > 0 && (te = te ? Math.min(te, U) : U);
1631
- }), {
1632
- height: _.value.height,
1633
- width: _.value.width,
1634
- tileWidth: k,
1635
- tileHeight: V,
1636
- minLevel: Math.floor(te || 8),
1637
- getTileUrl: (K, U, _e) => {
1638
- var it, rt, ut, ct;
1639
- const Se = K, G = {
1640
- file: ((it = t.slide) == null ? void 0 : it.file) || "",
1641
- x: U,
1642
- y: _e,
1643
- scale: "0",
1644
- level: K,
1645
- channel: JSON.stringify(w.value)
1646
- };
1647
- _.value.fileNum === K ? (K = _.value.scanScale, G.scale = K.toFixed(6)) : (K = _.value.scanScale / Math.pow(2, _.value.fileNum - K), G.scale = K.toFixed(6)), G.level = Se, G.file = o.value === 0 ? G.file : ((ut = (rt = t.slide) == null ? void 0 : rt.children) == null ? void 0 : ut[o.value - 1]) || "";
1648
- const Ve = t.tileHandle(G);
1649
- return (ct = t.hotmap) != null && ct.enable ? $t(Ve, G, j) : Ve;
1650
- }
1651
- };
1652
- }
1653
- function Mt() {
1654
- n.value.viewer.addHandler("rotate", (k) => {
1655
- r.value = k.degrees || 0;
1656
- }), n.value.viewer.addHandler("zoom", (k) => {
1657
- const V = n.value.viewer.viewport.viewportToImageZoom(
1658
- k.zoom || 0
1659
- ) * Number(n.value.$options.scale);
1660
- u.value = Number(V.toFixed(2));
1661
- }), n.value.$on(ue.events.EVENT_NAVIGATOR_VESTIGE, (k) => {
1662
- t.navigatorHandle && t.navigatorHandle("add", t.slide, k);
1663
- }), t.navigatorHandle && t.navigatorHandle("list", t.slide).then((k) => {
1664
- var V, j;
1665
- (j = (V = n.value.navigator) == null ? void 0 : V.drawPointList) == null || j.call(V, k);
1666
- }), se(), Te();
1667
- }
1668
- function Ht() {
1669
- var k;
1670
- (k = n.value) != null && k.destroy && (n.value.destroy(), n.value = {}, _.value = {
1671
- width: 0,
1672
- height: 0,
1673
- fileNum: 0,
1674
- scanScale: 1,
1675
- fileName: "",
1676
- ratiomap: {}
1677
- }, Vt.value = [], w.value = [], u.value = 0, r.value = 0, o.value = 0);
1678
- }
1679
- function tt(k, V) {
1680
- k === "annotate" ? lt(V) : k === "tailor" ? ye(V) : k === "info" ? p.value = !0 : k === "flip" ? ot() : k === "delete" ? wt("delete")(z.value) : f("tool", k, V);
1681
- }
1682
- function lt(k) {
1683
- k.tool === "Voice" && (k.subType = "voice", k.tool = "Dot", k.custom = !0), n.value.board.startDraw(k);
1684
- }
1685
- function It() {
1686
- n.value.board.endDraw();
1687
- }
1688
- function ot() {
1689
- n.value.viewer.viewport.toggleFlip();
1690
- }
1691
- function St(k) {
1692
- var V, j;
1693
- (j = (V = h.value) == null ? void 0 : V.scopeChange) == null || j.call(V, k);
1694
- }
1695
- function Pt() {
1696
- p.value = !0;
1697
- }
1698
- function nt(k) {
1699
- n.value.grid.updated(k);
1700
- }
1701
- function at(k) {
1702
- n.value.graduation.updated(k);
1703
- }
1704
- function st(k) {
1705
- n.value.navigator.element.style.display = k ? "flex" : "none";
1706
- }
1707
- function At(k) {
1708
- const V = n.value.viewer.viewport.imageToViewportZoom(Number(k / n.value.$options.scale));
1709
- n.value.viewer.viewport.zoomTo(V);
1710
- }
1711
- return re("kfbView", n), re("currentLabel", z), e({
1712
- kfbView: n,
1713
- degrees: r,
1714
- zoom: u,
1715
- forceRedraw: ae,
1716
- toggleFlip: ot,
1717
- startDraw: lt,
1718
- endDraw: It,
1719
- shotScreen: ye,
1720
- info: Pt,
1721
- scopeChange: St,
1722
- updateGrid: nt,
1723
- updateGraduation: at,
1724
- updateNavigator: st,
1725
- fastMove: Ze,
1726
- zoomTo: At,
1727
- selectLabel: Le,
1728
- reloadLabelList: gt
1729
- }), (k, V) => {
1730
- var j, te, de;
1731
- return g(), $("div", {
1732
- ref_key: "mainKfbViewRef",
1733
- ref: c,
1734
- class: "hzzt-kfb-view"
1735
- }, [
1736
- k.slide.file ? Be((g(), $("div", {
1737
- key: 0,
1738
- ref_key: "kfbViewMainRef",
1739
- ref: l,
1740
- class: "hzzt-kfb-view__main",
1741
- "element-loading-text": s(m)("加载中"),
1742
- "element-loading-background": "rgba(0, 0, 0, 0.8)"
1743
- }, null, 8, fo)), [
1744
- [s(P), i.value]
1745
- ]) : (g(), $("div", mo, V[6] || (V[6] = [
1746
- y("img", {
1747
- style: { width: "50%" },
1748
- src: Xe
1749
- }, null, -1)
1750
- ]))),
1751
- k.slide.analysis && k.slide.analysis.result ? (g(), I(s(pt), {
1752
- key: 2,
1753
- class: "hzzt-kfb-view__tag"
1754
- }, {
1755
- default: C(() => [
1756
- O(T(k.slide.analysis.result), 1)
1757
- ]),
1758
- _: 1
1759
- })) : A("", !0),
1760
- (g(), $("svg", po, [
1761
- y("filter", ho, [
1762
- y("feColorMatrix", {
1763
- values: s(ee),
1764
- type: "matrix"
1765
- }, null, 8, go),
1766
- y("feColorMatrix", {
1767
- values: s(W),
1768
- type: "saturate"
1769
- }, null, 8, wo),
1770
- y("feComponentTransfer", null, [
1771
- y("feFuncR", {
1772
- id: "feFuncR",
1773
- type: "gamma",
1774
- exponent: s(L).ga,
1775
- amplitude: "1",
1776
- offset: "0"
1777
- }, null, 8, yo),
1778
- y("feFuncG", {
1779
- id: "feFuncG",
1780
- type: "gamma",
1781
- exponent: s(L).ga,
1782
- amplitude: "1",
1783
- offset: "0"
1784
- }, null, 8, _o),
1785
- y("feFuncB", {
1786
- id: "feFuncB",
1787
- type: "gamma",
1788
- exponent: s(L).ga,
1789
- amplitude: "1",
1790
- offset: "0"
1791
- }, null, 8, bo)
1792
- ])
1793
- ])
1794
- ])),
1795
- b(Rl, {
1796
- menus: k.menus,
1797
- onTool: tt
1798
- }, null, 8, ["menus"]),
1799
- b(Dl, De(k.microscope, {
1800
- ref_key: "microscopeRef",
1801
- ref: h
1802
- }), null, 16),
1803
- s(S) && k.slide.file ? (g(), I(Yl, {
1804
- key: 3,
1805
- info: _.value,
1806
- slide: k.slide,
1807
- pathologyHandle: k.pathologyHandle,
1808
- onTool: tt
1809
- }, null, 8, ["info", "slide", "pathologyHandle"])) : A("", !0),
1810
- s(H) ? (g(), I(so, { key: 4 })) : A("", !0),
1811
- (j = k.slide.children) != null && j.length ? (g(), I(ro, {
1812
- key: 5,
1813
- modelValue: o.value,
1814
- "onUpdate:modelValue": V[0] || (V[0] = (F) => o.value = F),
1815
- slides: k.slide.children
1816
- }, null, 8, ["modelValue", "slides"])) : A("", !0),
1817
- (de = (te = _.value) == null ? void 0 : te.channel) != null && de.length ? (g(), I(vo, {
1818
- key: 6,
1819
- modelValue: w.value,
1820
- "onUpdate:modelValue": V[1] || (V[1] = (F) => w.value = F),
1821
- info: _.value,
1822
- onLoad: Et
1823
- }, null, 8, ["modelValue", "info"])) : A("", !0),
1824
- b(s(Ue), {
1825
- modelValue: p.value,
1826
- "onUpdate:modelValue": V[2] || (V[2] = (F) => p.value = F),
1827
- "append-to-body": !0,
1828
- title: s(m)("图像信息"),
1829
- width: "700px",
1830
- top: "5vh"
1831
- }, {
1832
- default: C(() => [
1833
- b(s(We), { "label-position": "left" }, {
1834
- default: C(() => [
1835
- b(s(le), {
1836
- class: "flex",
1837
- "label-width": "0px"
1838
- }, {
1839
- default: C(() => [
1840
- y("div", ko, [
1841
- y("img", {
1842
- src: _.value.labelImg,
1843
- style: { height: "180px" }
1844
- }, null, 8, zo),
1845
- y("img", {
1846
- src: _.value.previewImg,
1847
- style: { height: "180px" },
1848
- class: "flex-1"
1849
- }, null, 8, xo)
1850
- ])
1851
- ]),
1852
- _: 1
1853
- }),
1854
- b(s(le), {
1855
- label: s(m)("文件名")
1856
- }, {
1857
- default: C(() => [
1858
- y("span", Co, T(_.value.fileName), 1)
1859
- ]),
1860
- _: 1
1861
- }, 8, ["label"]),
1862
- b(s(le), {
1863
- label: s(m)("图像像素")
1864
- }, {
1865
- default: C(() => [
1866
- y("span", $o, T(_.value.width) + "Pixel - " + T(_.value.height) + "Pixel", 1)
1867
- ]),
1868
- _: 1
1869
- }, 8, ["label"]),
1870
- b(s(le), {
1871
- label: s(m)("扫描倍率")
1872
- }, {
1873
- default: C(() => [
1874
- y("span", To, T(_.value.scanScale), 1)
1875
- ]),
1876
- _: 1
1877
- }, 8, ["label"]),
1878
- b(s(le), {
1879
- label: s(m)("扫描时刻")
1880
- }, {
1881
- default: C(() => [
1882
- y("span", Lo, T(_.value.scanTime), 1)
1883
- ]),
1884
- _: 1
1885
- }, 8, ["label"]),
1886
- b(s(le), {
1887
- label: s(m)("扫描时间")
1888
- }, {
1889
- default: C(() => [
1890
- y("span", Vo, T(_.value.scanDuration || 0) + "s", 1)
1891
- ]),
1892
- _: 1
1893
- }, 8, ["label"]),
1894
- _.value.ext ? (g(), I(s(le), {
1895
- key: 0,
1896
- label: s(m)("扫描设备")
1897
- }, {
1898
- default: C(() => [
1899
- y("span", Eo, T(_.value.ext.machineNum || ""), 1)
1900
- ]),
1901
- _: 1
1902
- }, 8, ["label"])) : A("", !0)
1903
- ]),
1904
- _: 1
1905
- })
1906
- ]),
1907
- _: 1
1908
- }, 8, ["modelValue", "title"]),
1909
- b(s(Ue), {
1910
- modelValue: s(R),
1911
- "onUpdate:modelValue": V[5] || (V[5] = (F) => xe(R) ? R.value = F : null),
1912
- "append-to-body": !0,
1913
- title: s(m)("语音输入"),
1914
- width: "500px",
1915
- top: "5vh"
1916
- }, {
1917
- footer: C(() => [
1918
- b(s(he), {
1919
- onClick: V[3] || (V[3] = (F) => R.value = !1)
1920
- }, {
1921
- default: C(() => [
1922
- O(T(s(m)("取消")), 1)
1923
- ]),
1924
- _: 1
1925
- }),
1926
- b(s(he), {
1927
- type: "primary",
1928
- onClick: V[4] || (V[4] = (F) => s(yt)(s(D)))
1929
- }, {
1930
- default: C(() => [
1931
- O(T(s(m)("确定")), 1)
1932
- ]),
1933
- _: 1
1934
- })
1935
- ]),
1936
- default: C(() => [
1937
- b(s(We), { "label-position": "left" }, {
1938
- default: C(() => [
1939
- b(s(le), null, {
1940
- default: C(() => {
1941
- var F;
1942
- return [
1943
- (F = s(D)) != null && F.src ? (g(), $("audio", {
1944
- key: 0,
1945
- class: "width-100%",
1946
- src: s(D).src,
1947
- controls: "",
1948
- preload: "auto"
1949
- }, null, 8, Mo)) : A("", !0)
1950
- ];
1951
- }),
1952
- _: 1
1953
- }),
1954
- b(s(le), null, {
1955
- default: C(() => [
1956
- s(zt) ? (g(), I(s(he), {
1957
- key: 1,
1958
- type: "danger",
1959
- onClick: s(Ct)
1960
- }, {
1961
- default: C(() => [
1962
- O(T(s(m)("结束录音")), 1)
1963
- ]),
1964
- _: 1
1965
- }, 8, ["onClick"])) : (g(), I(s(he), {
1966
- key: 0,
1967
- type: "primary",
1968
- onClick: s(xt)
1969
- }, {
1970
- default: C(() => [
1971
- O(T(s(m)("开始录音")), 1)
1972
- ]),
1973
- _: 1
1974
- }, 8, ["onClick"]))
1975
- ]),
1976
- _: 1
1977
- })
1978
- ]),
1979
- _: 1
1980
- })
1981
- ]),
1982
- _: 1
1983
- }, 8, ["modelValue", "title"]),
1984
- k.hotmap && k.hotmap.enable && k.hotmap.type !== "switch" ? (g(), $("div", {
1985
- key: 7,
1986
- class: "hzzt-kfb-view__hotmap",
1987
- style: X({ left: s(Lt) + "px" })
1988
- }, [
1989
- b(s(ge), {
1990
- class: "icon-caret-left",
1991
- size: "30",
1992
- onMousedown: s(Qe)
1993
- }, {
1994
- default: C(() => V[7] || (V[7] = [
1995
- y("svg", {
1996
- xmlns: "http://www.w3.org/2000/svg",
1997
- viewBox: "0 0 1024 1024"
1998
- }, [
1999
- y("path", {
2000
- fill: "currentColor",
2001
- d: "M672 192 288 511.936 672 832z"
2002
- })
2003
- ], -1)
2004
- ])),
2005
- _: 1,
2006
- __: [7]
2007
- }, 8, ["onMousedown"]),
2008
- b(s(ge), {
2009
- class: "icon-caret-right",
2010
- size: "30",
2011
- onMousedown: s(Qe)
2012
- }, {
2013
- default: C(() => V[8] || (V[8] = [
2014
- y("svg", {
2015
- xmlns: "http://www.w3.org/2000/svg",
2016
- viewBox: "0 0 1024 1024"
2017
- }, [
2018
- y("path", {
2019
- fill: "currentColor",
2020
- d: "M384 192v640l384-320.064z"
2021
- })
2022
- ], -1)
2023
- ])),
2024
- _: 1,
2025
- __: [8]
2026
- }, 8, ["onMousedown"])
2027
- ], 4)) : A("", !0),
2028
- ce(k.$slots, "default")
2029
- ], 512);
2030
- };
2031
- }
2032
- });
2033
- function Ho(d, e) {
2034
- var p, n;
2035
- const a = x(!!((p = d.ai) != null && p.default)), t = x(!!((n = d.ai) != null && n.default)), f = x([]), m = N(
2036
- () => {
2037
- var i, r, u, o;
2038
- return (r = (i = e.value) == null ? void 0 : i.analysis) != null && r.id ? ((o = (u = e.value) == null ? void 0 : u.analysis) == null ? void 0 : o.class) || "auto" : "";
2039
- }
2040
- );
2041
- J(() => {
2042
- var i;
2043
- return (i = d.ai) == null ? void 0 : i.default;
2044
- }, (i) => {
2045
- a.value = !!i, t.value = !!i;
2046
- }), J(() => {
2047
- var i;
2048
- return (i = e == null ? void 0 : e.value) == null ? void 0 : i.id;
2049
- }, v), fe(() => {
2050
- var i, r;
2051
- a.value = !!((i = d.ai) != null && i.default), t.value = !!((r = d.ai) != null && r.default), v();
2052
- });
2053
- function v() {
2054
- var i;
2055
- (i = e.value) != null && i.id && m.value ? a.value || t.value ? c() : f.value = [] : f.value = [];
2056
- }
2057
- function c() {
2058
- d.ai.handle(m.value, e.value).then((i) => {
2059
- f.value = i;
2060
- }).catch(() => {
2061
- f.value = [], m.value === "IQC" ? t.value = !1 : a.value = !1;
2062
- });
2063
- }
2064
- function l() {
2065
- t.value = !1, v();
2066
- }
2067
- function h() {
2068
- a.value = !1, v();
2069
- }
2070
- return {
2071
- analysisClass: m,
2072
- aiLabelList: f,
2073
- enableAi: a,
2074
- enableIqc: t,
2075
- toggleIqc: h,
2076
- toggleAi: l
2077
- };
2078
- }
2079
- const Io = ["src", "fit"], So = ["src", "fit"], Re = /* @__PURE__ */ Q({
2080
- name: "KfbImage",
2081
- __name: "KfbImage",
2082
- props: {
2083
- src: {
2084
- type: String,
2085
- required: !0,
2086
- default: ""
2087
- },
2088
- fit: {
2089
- type: String,
2090
- validator: (d) => ["", "contain", "cover", "fill", "none", "scale-down"].includes(d),
2091
- default: ""
2092
- },
2093
- retryTimes: {
2094
- type: Number,
2095
- default: 0
2096
- },
2097
- load: {
2098
- type: Function,
2099
- default: () => ({})
2100
- }
2101
- },
2102
- setup(d) {
2103
- const e = d;
2104
- let a = 0;
2105
- const t = x(!1), f = Ye({
2106
- x: 0,
2107
- y: 0
2108
- }), m = N(() => ({
2109
- top: `${f.y + 10}px`,
2110
- left: `${f.x}px`,
2111
- transform: "translateY(-50%)",
2112
- width: `${4 * 300 / 3}px`,
2113
- height: "300px",
2114
- background: "rgba(0,0,0,0.8)",
2115
- zIndex: "10000"
2116
- }));
2117
- function v(p) {
2118
- const n = p.target;
2119
- a < e.retryTimes ? (n.src = e.src, a++) : n.src = Xe;
2120
- }
2121
- function c(p) {
2122
- const { x: n, y: i } = l(p), r = 4 * 300 / 3, u = 300;
2123
- f.x = Math.min(Math.max(n, r / 2), window.innerWidth - r / 2), f.y = Math.min(Math.max(i, u / 2), window.innerHeight - u / 2), t.value = !0;
2124
- }
2125
- function l(p) {
2126
- const n = p.target, i = p.offsetX, r = p.offsetY, u = n.clientWidth, o = n.clientHeight;
2127
- return {
2128
- x: p.clientX + u - i,
2129
- y: p.clientY - r + o / 2
2130
- };
2131
- }
2132
- function h() {
2133
- t.value = !1;
2134
- }
2135
- return (p, n) => (g(), $("div", {
2136
- class: "relative",
2137
- onMouseenter: c,
2138
- onMouseleave: h
2139
- }, [
2140
- y("img", {
2141
- src: d.src,
2142
- fit: d.fit,
2143
- onError: v,
2144
- style: {
2145
- height: "100%",
2146
- width: "100%"
2147
- }
2148
- }, null, 40, Io),
2149
- (g(), I(Ne, { to: "body" }, [
2150
- t.value ? (g(), $("div", {
2151
- key: 0,
2152
- class: "fixed hzzt-kfb-img-triangle-left",
2153
- style: X(m.value)
2154
- }, [
2155
- y("img", {
2156
- src: d.src,
2157
- fit: d.fit,
2158
- style: {
2159
- objectFit: "contain",
2160
- height: "100%",
2161
- width: "100%"
2162
- },
2163
- onMouseenter: n[0] || (n[0] = () => {
2164
- t.value = !0;
2165
- }),
2166
- onMouseleave: h
2167
- }, null, 40, So)
2168
- ], 4)) : A("", !0)
2169
- ]))
2170
- ], 32));
2171
- }
2172
- }), Po = {}, Ao = {
2173
- xmlns: "http://www.w3.org/2000/svg",
2174
- viewBox: "0 0 1024 1024"
2175
- };
2176
- function Ro(d, e) {
2177
- return g(), $("svg", Ao, e[0] || (e[0] = [
2178
- y("path", {
2179
- fill: "currentColor",
2180
- d: "M160 448a32 32 0 0 1-32-32V160.064a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V416a32 32 0 0 1-32 32zm448 0a32 32 0 0 1-32-32V160.064a32 32 0 0 1 32-32h255.936a32 32 0 0 1 32 32V416a32 32 0 0 1-32 32zM160 896a32 32 0 0 1-32-32V608a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32zm448 0a32 32 0 0 1-32-32V608a32 32 0 0 1 32-32h255.936a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32z"
2181
- }, null, -1)
2182
- ]));
2183
- }
2184
- const Bo = /* @__PURE__ */ we(Po, [["render", Ro]]), No = {}, Do = {
2185
- width: "16",
2186
- height: "16",
2187
- viewBox: "0 0 16 16",
2188
- fill: "none",
2189
- xmlns: "http://www.w3.org/2000/svg"
2190
- };
2191
- function Uo(d, e) {
2192
- return g(), $("svg", Do, e[0] || (e[0] = [
2193
- y("g", { id: "Frame" }, [
2194
- y("path", {
2195
- id: "Vector",
2196
- d: "M5.33333 2.66659H14V3.99992H5.33333V2.66659ZM2 2.33325H4V4.33325H2V2.33325ZM2 6.99992H4V8.99992H2V6.99992ZM2 11.6666H4V13.6666H2V11.6666ZM5.33333 7.33325H14V8.66659H5.33333V7.33325ZM5.33333 11.9999H14V13.3333H5.33333V11.9999Z",
2197
- fill: "currentColor",
2198
- "fill-opacity": "0.9"
2199
- })
2200
- ], -1)
2201
- ]));
2202
- }
2203
- const Fo = /* @__PURE__ */ we(No, [["render", Uo]]), Ko = { class: "hzzt-kfb-slides" }, Zo = { class: "hzzt-kfb-slides__row" }, Oo = { class: "hzzt-kfb-slides__top" }, jo = { class: "text-primary" }, Go = { class: "flex align-items-center" }, Wo = {
2204
- class: "flex-1 overflow-auto",
2205
- style: { width: "100%" }
2206
- }, qo = { key: 0 }, Yo = ["onClick"], Xo = { class: "hzzt-kfb-slides__gallery" }, Qo = ["onClick"], Jo = {
2207
- key: 0,
2208
- class: "hzzt-kfb-slides__read"
2209
- }, en = ["onClick"], tn = {
2210
- key: 1,
2211
- class: "flex column"
2212
- }, ln = { class: "hzzt-kfb-slides__header" }, on = { class: "w-30%" }, nn = { class: "w-40%" }, an = { class: "w-20%" }, sn = ["onClick"], rn = { class: "w-30% flex" }, un = { class: "hzzt-kfb-slides__gallery" }, cn = {
2213
- key: 0,
2214
- class: "hzzt-kfb-slides__read"
2215
- }, dn = { class: "w-40% flex" }, vn = ["onClick"], fn = ["onClick"], mn = {
2216
- key: 0,
2217
- class: "flex column py-2"
2218
- }, pn = { class: "flex align-items-center justify-content-center" }, hn = { class: "margin-r-1" }, gn = {
2219
- key: 0,
2220
- class: "margin-r-1 margin-l-2"
2221
- }, wn = /* @__PURE__ */ Q({
2222
- __name: "KfbSlideList",
2223
- props: {
2224
- slides: {}
2225
- },
2226
- emits: ["select", "tool"],
2227
- setup(d, { emit: e }) {
2228
- const a = d, t = e, f = q("file-index", {
2229
- value: 0
2230
- }), m = q("divide", {
2231
- value: !1
2232
- }), v = q("sync", {
2233
- value: !1
2234
- }), c = x(!1), l = N(() => a.slides.filter(({ read: r }) => r)), h = N(() => a.slides.filter(({ check: r }) => r)), { t: p } = me();
2235
- function n(r) {
2236
- f.value = r, t("select", r);
2237
- }
2238
- function i(r) {
2239
- r.check = !r.check;
2240
- }
2241
- return (r, u) => (g(), $("div", Ko, [
2242
- y("div", Zo, [
2243
- y("div", Oo, [
2244
- y("span", null, [
2245
- u[4] || (u[4] = O("已读:")),
2246
- y("span", jo, T(l.value.length), 1),
2247
- O("/" + T(r.slides.length), 1)
2248
- ]),
2249
- y("div", Go, [
2250
- b(s(ge), {
2251
- class: "margin-r-2 pointer",
2252
- size: "16",
2253
- color: c.value ? "#999" : "#000",
2254
- onClick: u[0] || (u[0] = (o) => c.value = !c.value)
2255
- }, {
2256
- default: C(() => [
2257
- b(Bo)
2258
- ]),
2259
- _: 1
2260
- }, 8, ["color"]),
2261
- b(s(ge), {
2262
- class: "pointer",
2263
- name: "cus-list",
2264
- size: "16",
2265
- color: c.value ? "#000" : "#999",
2266
- onClick: u[1] || (u[1] = (o) => c.value = !c.value)
2267
- }, {
2268
- default: C(() => [
2269
- b(Fo)
2270
- ]),
2271
- _: 1
2272
- }, 8, ["color"])
2273
- ])
2274
- ]),
2275
- y("div", Wo, [
2276
- c.value ? (g(), $("ul", tn, [
2277
- y("li", ln, [
2278
- u[5] || (u[5] = y("div", { class: "w-10%" }, null, -1)),
2279
- y("div", on, T(s(p)("缩略图")), 1),
2280
- y("div", nn, T(s(p)("切片名")), 1),
2281
- y("div", an, T(s(p)("评分")), 1)
2282
- ]),
2283
- (g(!0), $(oe, null, ne(r.slides, (o, w) => (g(), $("li", {
2284
- key: w,
2285
- class: "flex align-items-center overflow-hidden",
2286
- style: X({
2287
- backgroundColor: s(f) === w ? "rgba(6, 85, 195, 0.1)" : "#fff"
2288
- }),
2289
- onClick: (_) => n(w)
2290
- }, [
2291
- y("div", {
2292
- class: "w-10% text-center",
2293
- onClick: Pe(() => {
2294
- }, ["stop"])
2295
- }, [
2296
- b(s(Fe), {
2297
- modelValue: o.check,
2298
- "onUpdate:modelValue": (_) => o.check = _,
2299
- style: { width: "14px", height: "16px" }
2300
- }, null, 8, ["modelValue", "onUpdate:modelValue"])
2301
- ]),
2302
- y("div", rn, [
2303
- y("div", un, [
2304
- b(Re, {
2305
- "retry-times": 1,
2306
- src: o.labelImg,
2307
- fit: "cover",
2308
- style: { height: "45px" },
2309
- class: "flex-1"
2310
- }, null, 8, ["src"]),
2311
- b(Re, {
2312
- "retry-times": 1,
2313
- fit: "cover",
2314
- src: o.previewImg,
2315
- style: { height: "45px" },
2316
- class: "flex-1"
2317
- }, null, 8, ["src"]),
2318
- o.read ? A("", !0) : (g(), $("div", cn, T(s(p)("未读")), 1))
2319
- ])
2320
- ]),
2321
- y("div", dn, [
2322
- b(s(mt), {
2323
- effect: "dark",
2324
- placement: "bottom",
2325
- content: `${o.name}`
2326
- }, {
2327
- default: C(() => [
2328
- y("span", {
2329
- style: { "line-height": "16px" },
2330
- class: "margin-l-1 ellipsis hzzt-kfb-slides__text",
2331
- dir: "rtl",
2332
- onClick: Pe((_) => i(o), ["stop"])
2333
- }, T(o.name), 9, vn)
2334
- ]),
2335
- _: 2
2336
- }, 1032, ["content"])
2337
- ]),
2338
- y("div", {
2339
- class: "w-20% flex text-center pointer",
2340
- style: X({
2341
- color: o.gradeColor
2342
- }),
2343
- onClick: (_) => t("tool", "grade", o)
2344
- }, T(o.grade), 13, fn)
2345
- ], 12, sn))), 128))
2346
- ])) : (g(), $("div", qo, [
2347
- (g(!0), $(oe, null, ne(r.slides, (o, w) => (g(), $("div", {
2348
- key: w,
2349
- class: Ie(["hzzt-kfb-slides__box", s(f) === w ? "hzzt-kfb-slides__box--active" : ""]),
2350
- onClick: (_) => n(w)
2351
- }, [
2352
- y("div", Xo, [
2353
- b(Re, {
2354
- "retry-times": 1,
2355
- src: o.labelImg,
2356
- class: "hzzt-kfb-slides__img",
2357
- fit: "cover"
2358
- }, null, 8, ["src"]),
2359
- b(Re, {
2360
- "retry-times": 1,
2361
- src: o.previewImg,
2362
- class: "flex-1 hzzt-kfb-slides__img1",
2363
- fit: "cover"
2364
- }, null, 8, ["src"])
2365
- ]),
2366
- y("div", {
2367
- class: "flex justify-content-between align-items-center",
2368
- onClick: Pe(() => {
2369
- }, ["stop"])
2370
- }, [
2371
- b(s(Fe), {
2372
- modelValue: o.check,
2373
- "onUpdate:modelValue": (_) => o.check = _,
2374
- style: { width: "14px", height: "16px" }
2375
- }, null, 8, ["modelValue", "onUpdate:modelValue"]),
2376
- b(s(mt), {
2377
- effect: "dark",
2378
- placement: "bottom",
2379
- content: `${o.name}`
2380
- }, {
2381
- default: C(() => [
2382
- y("span", {
2383
- style: { "line-height": "16px", "text-align": "center", width: "calc(100% - 14px)" },
2384
- class: "margin-l-1 ellipsis",
2385
- dir: "rtl",
2386
- onClick: Pe((_) => i(o), ["stop"])
2387
- }, T(o.name), 9, Qo)
2388
- ]),
2389
- _: 2
2390
- }, 1032, ["content"])
2391
- ]),
2392
- o.read ? A("", !0) : (g(), $("div", Jo, T(s(p)("未读")), 1)),
2393
- o.grade ? (g(), $("div", {
2394
- key: 1,
2395
- class: "hzzt-kfb-slides__grade",
2396
- style: X({
2397
- background: o.gradeColor
2398
- }),
2399
- onClick: (_) => t("tool", "grade", o)
2400
- }, T(o.grade), 13, en)) : A("", !0),
2401
- ce(r.$slots, "slide", { slide: o }, void 0, !0)
2402
- ], 10, Yo))), 128))
2403
- ]))
2404
- ]),
2405
- h.value.length > 1 ? (g(), $("div", mn, [
2406
- y("div", pn, [
2407
- y("span", hn, T(s(p)("分屏")), 1),
2408
- b(s(ke), {
2409
- modelValue: s(m),
2410
- "onUpdate:modelValue": u[2] || (u[2] = (o) => xe(m) ? m.value = o : null)
2411
- }, null, 8, ["modelValue"]),
2412
- s(m) ? (g(), $("span", gn, T(s(p)("同步")), 1)) : A("", !0),
2413
- s(m) ? (g(), I(s(ke), {
2414
- key: 1,
2415
- modelValue: s(v),
2416
- "onUpdate:modelValue": u[3] || (u[3] = (o) => xe(v) ? v.value = o : null)
2417
- }, null, 8, ["modelValue"])) : A("", !0)
2418
- ])
2419
- ])) : A("", !0)
2420
- ])
2421
- ]));
2422
- }
2423
- }), yn = /* @__PURE__ */ we(wn, [["__scopeId", "data-v-c2a1a22e"]]), _n = { class: "hzzt-kfb-ai overflow-hidden" }, bn = { class: "flex align-items-center margin-t-1" }, kn = { style: { color: "var(--el-color-success)" } }, zn = { class: "flex-1 flex overflow-auto wrap margin-t-1" }, xn = ["onClick"], Cn = {
2424
- key: 0,
2425
- style: { "margin-left": "2px" }
2426
- }, $n = /* @__PURE__ */ Q({
2427
- name: "KfbAiList",
2428
- __name: "list",
2429
- props: {
2430
- data: { default: () => [] },
2431
- slide: { default: () => ({}) }
2432
- },
2433
- setup(d, { expose: e }) {
2434
- const a = d, { t } = me(), f = q("kfbViewRef"), m = x(-1), v = x(1), c = x(100), l = x(!0), h = x([]), p = N(() => a.data.filter((E) => h.value.includes(E.cls || ""))), n = N(() => p.value.slice((v.value - 1) * c.value, v.value * c.value)), i = N(() => {
2435
- var P, L;
2436
- const E = ((L = (P = a.slide) == null ? void 0 : P.analysis) == null ? void 0 : L.result) || "";
2437
- return E.indexOf("疑似阳性") > -1 ? {
2438
- type: "warning",
2439
- name: E
2440
- } : E.indexOf("阳性") > -1 ? {
2441
- type: "danger",
2442
- name: E
2443
- } : E.indexOf("阴性") > -1 ? {
2444
- type: "success",
2445
- name: E
2446
- } : {
2447
- type: "info",
2448
- name: E || t("未知")
2449
- };
2450
- }), r = N(() => {
2451
- const E = /* @__PURE__ */ new Set();
2452
- return a.data.forEach((P) => {
2453
- const L = P.cls || "";
2454
- L && !E.has(L) && E.add(L);
2455
- }), Array.from(E);
2456
- }), u = N(() => h.value.length !== 0 && h.value.length !== r.value.length);
2457
- J(() => r.value, (E) => {
2458
- o(), h.value = [...E];
2459
- }), fe(() => {
2460
- h.value = [...r.value];
2461
- });
2462
- function o() {
2463
- m.value = -1, v.value = 1, c.value = 100, l.value = !0;
2464
- }
2465
- function w(E) {
2466
- const P = p.value.findIndex((L) => L.id === E.id);
2467
- m.value = P, f.value.selectLabel(E);
2468
- }
2469
- function _(E) {
2470
- const P = a.data.filter((L) => L.cls === E);
2471
- return P.length ? `(${P.length})` : "";
2472
- }
2473
- function S() {
2474
- m.value = -1, l.value = h.value.length == r.value.length;
2475
- }
2476
- function H(E) {
2477
- h.value = E ? [...r.value] : [], m.value = -1;
2478
- }
2479
- return e({
2480
- labelList: p
2481
- }), (E, P) => (g(), $("div", _n, [
2482
- y("div", bn, [
2483
- b(s(Xt), {
2484
- placement: "bottom",
2485
- trigger: "click",
2486
- width: "160"
2487
- }, {
2488
- reference: C(() => [
2489
- b(s(he), {
2490
- class: "margin-r-1",
2491
- type: "primary"
2492
- }, {
2493
- default: C(() => [
2494
- O(T(s(t)("分类")) + " ", 1),
2495
- b(Y, { name: "arrowDown" })
2496
- ]),
2497
- _: 1
2498
- })
2499
- ]),
2500
- default: C(() => [
2501
- y("div", null, [
2502
- b(s(Fe), {
2503
- modelValue: l.value,
2504
- "onUpdate:modelValue": P[0] || (P[0] = (L) => l.value = L),
2505
- indeterminate: u.value,
2506
- onChange: H
2507
- }, {
2508
- default: C(() => [
2509
- O(T(s(t)("全选")), 1)
2510
- ]),
2511
- _: 1
2512
- }, 8, ["modelValue", "indeterminate"]),
2513
- b(s(Qt), {
2514
- modelValue: h.value,
2515
- "onUpdate:modelValue": P[1] || (P[1] = (L) => h.value = L),
2516
- class: "flex column",
2517
- onChange: S
2518
- }, {
2519
- default: C(() => [
2520
- (g(!0), $(oe, null, ne(r.value, (L) => (g(), I(s(Fe), {
2521
- key: L,
2522
- value: L
2523
- }, {
2524
- default: C(() => [
2525
- O(T(L) + " ", 1),
2526
- y("span", kn, T(_(L)), 1)
2527
- ]),
2528
- _: 2
2529
- }, 1032, ["value"]))), 128))
2530
- ]),
2531
- _: 1
2532
- }, 8, ["modelValue"])
2533
- ])
2534
- ]),
2535
- _: 1
2536
- }),
2537
- b(s(pt), {
2538
- type: i.value.type,
2539
- class: "margin-l-1"
2540
- }, {
2541
- default: C(() => [
2542
- O(T(i.value.name), 1)
2543
- ]),
2544
- _: 1
2545
- }, 8, ["type"])
2546
- ]),
2547
- y("div", zn, [
2548
- (g(!0), $(oe, null, ne(n.value, (L, ee) => (g(), $("div", {
2549
- key: ee + (v.value - 1) * c.value,
2550
- class: Ie(`hzzt-kfb-ai__img ${m.value === ee + (v.value - 1) * c.value ? "hzzt-kfb-ai__img--active" : ""}`),
2551
- onClick: (W) => w(L)
2552
- }, [
2553
- b(s(el), {
2554
- "retry-times": 1,
2555
- src: L.imageUrl,
2556
- "error-src": s(Xe)
2557
- }, null, 8, ["src", "error-src"]),
2558
- y("div", {
2559
- style: X({ color: L.strokeStyle }),
2560
- class: "ellipsis"
2561
- }, [
2562
- O(T(L.cls) + " ", 1),
2563
- L.score ? (g(), $("span", Cn, T(L.score), 1)) : A("", !0)
2564
- ], 4)
2565
- ], 10, xn))), 128))
2566
- ]),
2567
- b(s(Jt), {
2568
- class: "wrap",
2569
- "current-page": v.value,
2570
- "onUpdate:currentPage": P[2] || (P[2] = (L) => v.value = L),
2571
- "page-size": c.value,
2572
- "onUpdate:pageSize": P[3] || (P[3] = (L) => c.value = L),
2573
- "page-sizes": [100, 200, 300, 400],
2574
- layout: "total, sizes, prev, pager, next",
2575
- total: p.value.length
2576
- }, null, 8, ["current-page", "page-size", "total"])
2577
- ]));
2578
- }
2579
- }), Tn = { class: "hzzt-kfb-slide" }, Ln = { class: "flex flex-1 overflow-hidden" }, Vn = { class: "flex flex-1" }, En = {
2580
- key: 0,
2581
- style: { height: "100%", width: "100%" },
2582
- class: "flex wrap"
2583
- }, Mn = ["onClick"], Ke = /* @__PURE__ */ Q({
2584
- name: "HzztKfbSlide",
2585
- __name: "index",
2586
- props: /* @__PURE__ */ Me({
2587
- menus: { default: () => [] },
2588
- kfb: {},
2589
- slides: { default: () => [] },
2590
- ai: {},
2591
- teleport: { type: Boolean, default: !1 },
2592
- process: {},
2593
- microscope: {},
2594
- showList: { type: Boolean, default: !0 },
2595
- showKfbLabel: { type: Boolean, default: !0 },
2596
- showKeyboard: { type: Boolean, default: !1 },
2597
- showMenuText: { type: Boolean, default: !0 }
2598
- }, {
2599
- index: {
2600
- default: 0
2601
- },
2602
- indexModifiers: {}
2603
- }),
2604
- emits: /* @__PURE__ */ Me(["tool"], ["update:index"]),
2605
- setup(d, { expose: e, emit: a }) {
2606
- const t = d, f = a, m = Ee(d, "index"), v = N(() => t.slides[m.value]), c = N(() => t.slides.filter(({ check: z }) => z)), l = x(), h = x(), p = x(), n = x(t.showKeyboard), i = x(t.showKfbLabel), r = x(!1), u = x(!1), o = x(!1), { t: w } = me(), _ = N(() => {
2607
- var z;
2608
- if (r.value) {
2609
- const R = c.value.findIndex(({ id: D }) => {
2610
- var ie;
2611
- return D === ((ie = v.value) == null ? void 0 : ie.id);
2612
- });
2613
- return ((z = h.value) == null ? void 0 : z[R]) || l.value;
2614
- } else
2615
- return l.value;
2616
- }), S = N(() => c.value.length <= 1 ? {
2617
- height: "100%",
2618
- width: "100%"
2619
- } : c.value.length <= 2 ? {
2620
- height: "100%",
2621
- width: "calc((100% - 4px) / 2)"
2622
- } : c.value.length <= 4 ? {
2623
- height: "calc((100% - 4px) / 2)",
2624
- width: "calc((100% - 4px) / 2)"
2625
- } : c.value.length <= 6 ? {
2626
- height: "calc((100% - 4px) / 2)",
2627
- width: "calc((100% - 4px * 2) / 3)"
2628
- } : c.value.length <= 9 ? {
2629
- height: "calc((100% - 4px * 2) / 3)",
2630
- width: "calc((100% - 4px * 2) / 3)"
2631
- } : {
2632
- height: "100%",
2633
- width: "100%"
2634
- });
2635
- J(() => c.value, (z) => {
2636
- r.value && z.length <= 1 && (r.value = !1);
2637
- }), J(() => v.value, (z) => {
2638
- if (z) {
2639
- const R = z.read;
2640
- z.read = !0, f("tool", "choose", {
2641
- slide: z,
2642
- read: R
2643
- });
2644
- }
2645
- });
2646
- const {
2647
- analysisClass: H,
2648
- aiLabelList: E,
2649
- enableAi: P,
2650
- enableIqc: L,
2651
- toggleIqc: ee,
2652
- toggleAi: W
2653
- } = Ho(t, v);
2654
- function ae(z, R) {
2655
- z === "next" && t.slides[m.value + 1] && m.value++, z === "prev" && t.slides[m.value - 1] && m.value--, (z === "label" || z === "tool") && (i.value = R), f("tool", z, R);
2656
- }
2657
- function se(z) {
2658
- var D, ie, Le;
2659
- const R = ve(Z({}, t.kfb), {
2660
- process: t.process,
2661
- microscope: t.microscope,
2662
- slide: z,
2663
- aiLabelList: v.value.id === z.id ? ((D = p.value) == null ? void 0 : D.labelList) || [] : [],
2664
- hotmap: (ie = z == null ? void 0 : z.hotmap) != null && ie.file ? ve(Z({}, (z == null ? void 0 : z.hotmap) || {}), {
2665
- enable: P.value
2666
- }) : void 0,
2667
- syncPosition: u.value,
2668
- syncZoom: u.value,
2669
- handle: void 0
2670
- });
2671
- return (Le = t.kfb) != null && Le.handle ? t.kfb.handle(z, R) : R;
2672
- }
2673
- function ye(z) {
2674
- m.value = t.slides.findIndex((R) => R.id === z.id);
2675
- }
2676
- function Te(z) {
2677
- r.value && (t.slides[z].check = !0);
2678
- }
2679
- function Ze() {
2680
- var z;
2681
- i.value = !o.value, (z = r.value ? h.value : [l.value]) == null || z.forEach((R) => {
2682
- o.value && (R.updateGrid({
2683
- show: !o.value,
2684
- ruler: !o.value
2685
- }), n.value = !o.value), R.updateGraduation({
2686
- show: !o.value
2687
- }), R.updateNavigator(!o.value);
2688
- });
2689
- }
2690
- return re("kfbViewRef", _), re("show-keyboard", n), re("show-kfb-label", i), re("hidden-all-label", o), re("file-index", m), re("divide", r), re("sync", u), e({
2691
- divide: r,
2692
- slide: v,
2693
- kfbViewRef: _,
2694
- enableAI: N(() => {
2695
- var z;
2696
- return ((z = t.ai) == null ? void 0 : z.enable) && E.value.length;
2697
- })
2698
- }), (z, R) => (g(), $("div", Tn, [
2699
- z.menus.length ? (g(), I(He, {
2700
- key: 0,
2701
- menu: z.menus,
2702
- "show-menu-text": z.showMenuText,
2703
- process: z.process,
2704
- microscope: z.microscope,
2705
- onTool: ae
2706
- }, {
2707
- left: C(() => [
2708
- ce(z.$slots, "left")
2709
- ]),
2710
- right: C(() => [
2711
- b(s(ke), {
2712
- modelValue: o.value,
2713
- "onUpdate:modelValue": R[0] || (R[0] = (D) => o.value = D),
2714
- "active-text": s(w)("隐藏标签"),
2715
- class: "margin-r-2",
2716
- onChange: Ze
2717
- }, null, 8, ["modelValue", "active-text"]),
2718
- z.ai && z.ai.enable && s(H) === "IQC" ? (g(), I(s(ke), {
2719
- key: 0,
2720
- modelValue: s(L),
2721
- "onUpdate:modelValue": R[1] || (R[1] = (D) => xe(L) ? L.value = D : null),
2722
- "active-text": s(w)("AI质控"),
2723
- class: "margin-r-2",
2724
- onChange: s(ee)
2725
- }, null, 8, ["modelValue", "active-text", "onChange"])) : z.ai && z.ai.enable && s(H) ? (g(), I(s(ke), {
2726
- key: 1,
2727
- modelValue: s(P),
2728
- "onUpdate:modelValue": R[2] || (R[2] = (D) => xe(P) ? P.value = D : null),
2729
- "active-text": s(w)("AI分析"),
2730
- class: "margin-r-2",
2731
- onChange: s(W)
2732
- }, null, 8, ["modelValue", "active-text", "onChange"])) : A("", !0),
2733
- ce(z.$slots, "right")
2734
- ]),
2735
- _: 3
2736
- }, 8, ["menu", "show-menu-text", "process", "microscope"])) : A("", !0),
2737
- y("div", Ln, [
2738
- z.showList ? (g(), I(Ne, {
2739
- key: 0,
2740
- defer: "",
2741
- to: "#kfb-slide-list",
2742
- disabled: !z.teleport
2743
- }, [
2744
- b(yn, {
2745
- style: X(z.teleport ? "" : "width: 250px"),
2746
- slides: z.slides,
2747
- onSelect: Te,
2748
- onTool: ae
2749
- }, {
2750
- slide: C(({ slide: D }) => [
2751
- ce(z.$slots, "list", { slide: D })
2752
- ]),
2753
- _: 3
2754
- }, 8, ["style", "slides"])
2755
- ], 8, ["disabled"])) : A("", !0),
2756
- (g(), I(Ne, {
2757
- defer: "",
2758
- to: "#kfb-slide-view",
2759
- disabled: !z.teleport
2760
- }, [
2761
- y("div", Vn, [
2762
- c.value.length && r.value ? (g(), $("ul", En, [
2763
- (g(!0), $(oe, null, ne(c.value, (D, ie) => (g(), $("li", {
2764
- key: ie,
2765
- style: X(S.value),
2766
- class: Ie(v.value.id === D.id ? "hzzt-kfb-view-screen-active" : ""),
2767
- onClick: (Le) => ye(D)
2768
- }, [
2769
- (g(), I(Ce, De({
2770
- ref_for: !0,
2771
- ref_key: "kfbViewRefs",
2772
- ref: h,
2773
- key: `kfb-${ie}`
2774
- }, { ref_for: !0 }, se(D), { onTool: ae }), {
2775
- default: C(() => [
2776
- ce(z.$slots, "kfb", { slide: D })
2777
- ]),
2778
- _: 2
2779
- }, 1040))
2780
- ], 14, Mn))), 128))
2781
- ])) : v.value ? (g(), I(Ce, De({
2782
- key: 1,
2783
- ref_key: "kfbViewRef",
2784
- ref: l
2785
- }, se(v.value), { onTool: ae }), {
2786
- default: C(() => [
2787
- ce(z.$slots, "kfb", { slide: v.value })
2788
- ]),
2789
- _: 3
2790
- }, 16)) : A("", !0)
2791
- ])
2792
- ], 8, ["disabled"])),
2793
- z.ai && z.ai.enable && s(E).length ? (g(), I(Ne, {
2794
- key: 1,
2795
- defer: "",
2796
- to: "#kfb-slide-ai",
2797
- disabled: !z.teleport
2798
- }, [
2799
- b($n, {
2800
- style: X(z.teleport ? "" : "width: 350px"),
2801
- ref_key: "kfbAiRef",
2802
- ref: p,
2803
- data: s(E),
2804
- slide: v.value
2805
- }, null, 8, ["style", "data", "slide"])
2806
- ], 8, ["disabled"])) : A("", !0),
2807
- ce(z.$slots, "default")
2808
- ])
2809
- ]));
2810
- }
2811
- });
2812
- Ke.name = "HzztKfbSlide";
2813
- Ce.name = "HzztKfbView";
2814
- He.name = "HzztKfbToolbox";
2815
- const Hn = (d, e) => {
2816
- d.use(tl, e == null ? void 0 : e.i18n), d.component(Ke.name, Ke), d.component(Ce.name, Ce), d.component(He.name, He);
2817
- }, Bn = {
2818
- install: Hn,
2819
- HzztKfbSlide: Ke,
2820
- HzztKfbView: Ce,
2821
- HzztKfbToolbox: He
2822
- };
2823
- export {
2824
- ht as D,
2825
- we as _,
2826
- xl as a,
2827
- yl as b,
2828
- wl as c,
2829
- Cl as d,
2830
- bl as e,
2831
- $l as f,
2832
- qe as g,
2833
- Ke as h,
2834
- Ce as i,
2835
- He as j,
2836
- Bn as k,
2837
- gl as l,
2838
- kl as p,
2839
- _l as r,
2840
- zl as s,
2841
- me as u,
2842
- Tl as v
2843
- };