hzzt-kfb-slide 0.1.8 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/components/{annotateDs5i2eNO.js → annotateBGxN4SH2.js} +1 -1
  2. package/dist/components/{annotateCwGjQKaP.js → annotateCAq6sZAH.js} +3 -3
  3. package/dist/components/{annotateCsjd-8z3.js → annotateWs8dAunq.js} +1 -1
  4. package/dist/components/{annotateCuw9UNn2.js → annotateo3vZHfGB.js} +1 -1
  5. package/dist/components/{arrowCircleDwqggHev.js → arrowCircleDqHqb97q.js} +1 -1
  6. package/dist/components/{arrowCirclelm3OXqGD.js → arrowCircleO5YzneBS.js} +1 -1
  7. package/dist/components/{arrowM7YlD6Fp.js → arrowDfFmbAvl.js} +1 -1
  8. package/dist/components/{arrowCBL9AzKr.js → arrowDo5jlJvX.js} +1 -1
  9. package/dist/components/{arrowDownCdaul-Hd.js → arrowDown5YaRWzG-.js} +1 -1
  10. package/dist/components/{arrowDownBAZ_RPEu.js → arrowDownDFK8VvKS.js} +1 -1
  11. package/dist/components/{arrowLeft8I3cz9ix.js → arrowLefthUAyhKf8.js} +1 -1
  12. package/dist/components/{arrowLeftCY6O_JXa.js → arrowLeftiM7Gm_rj.js} +1 -1
  13. package/dist/components/{arrowRightDNETqHjH.js → arrowRightBm5GCHqI.js} +1 -1
  14. package/dist/components/{arrowRightN9DgBweY.js → arrowRightDhUaOSZq.js} +1 -1
  15. package/dist/components/{arrowUp15GBTWCC.js → arrowUpIgBDuTvB.js} +1 -1
  16. package/dist/components/{arrowUpCms_i80O.js → arrowUpbzQHVqNd.js} +1 -1
  17. package/dist/components/{bilateralDRIzcahZ.js → bilateralCi9iFh5d.js} +1 -1
  18. package/dist/components/{bilateralCgiGCORq.js → bilateralD3fQa6t8.js} +1 -1
  19. package/dist/components/{channel0c8ZxreJ.js → channelB0HuZp-h.js} +1 -1
  20. package/dist/components/{channel8wdsKWt0.js → channelDHD-3vZX.js} +1 -1
  21. package/dist/components/{checkDksrM1Ib.js → checkBPnPy-Ub.js} +1 -1
  22. package/dist/components/{checkCvkYx5Zn.js → checkBo9QGrvm.js} +1 -1
  23. package/dist/components/{configD53ypjPd.js → config4I5abOF8.js} +1 -1
  24. package/dist/components/{configBQB-oghg.js → configCvkvpev9.js} +1 -1
  25. package/dist/components/{customAwznbb6Z.js → customDSBh6zAg.js} +1 -1
  26. package/dist/components/{customdA1G1T1y.js → customvm73Z9ln.js} +1 -1
  27. package/dist/components/{deleteCdJCCQ6y.js → deleteBNgk9ZOA.js} +1 -1
  28. package/dist/components/{deleteChVtJN4n.js → deleteD2YJkDdt.js} +1 -1
  29. package/dist/components/{dot16c1xNPD.js → dot0WHIzbhi.js} +1 -1
  30. package/dist/components/{dotD0Gx7CRc.js → dot3377DPYD.js} +1 -1
  31. package/dist/components/{dotBjXKweg0.js → dotBHF3nRpB.js} +1 -1
  32. package/dist/components/{dotDJxvUSso.js → dotBWZcPJ3c.js} +1 -1
  33. package/dist/components/{dotBQNxsw3c.js → dotCaGq1n2I.js} +1 -1
  34. package/dist/components/{dotC0CKM_hZ.js → dotDnPxb7fB.js} +4 -4
  35. package/dist/components/{downloadZ2QzL5rO.js → downloadBXzUqH2X.js} +1 -1
  36. package/dist/components/{downloadNznR12xP.js → downloadCFpPM1dg.js} +3 -3
  37. package/dist/components/{downloadBByB8lwE.js → downloadCTNSr5vw.js} +1 -1
  38. package/dist/components/{downloadViyLOOrK.js → downloaddJdK3M2V.js} +1 -1
  39. package/dist/components/{ellipseCBUG6Mh8.js → ellipseDW2x8zyV.js} +1 -1
  40. package/dist/components/{ellipseC2z02yg-.js → ellipsexXhrXwMO.js} +1 -1
  41. package/dist/components/{expandLeftDlJCG1r9.js → expandLeftC8zJC3sF.js} +1 -1
  42. package/dist/components/{expandLeftDB8r1unh.js → expandLeftDlPM5C4_.js} +1 -1
  43. package/dist/components/{expandRightrm3vKoq_.js → expandRightB4fr3osn.js} +1 -1
  44. package/dist/components/{expandRightBhVI7kIo.js → expandRightD4t5eAC8.js} +1 -1
  45. package/dist/components/{flagDc9VAAUM.js → flagCAYFx-Kg.js} +1 -1
  46. package/dist/components/{flagDLIm6S3D.js → flagaIA3XdbR.js} +1 -1
  47. package/dist/components/{flipC95Pz5UL.js → flipBnog7THW.js} +1 -1
  48. package/dist/components/{flipDFWc7R0p.js → flipctjVjVop.js} +1 -1
  49. package/dist/components/{fontD27n3hS-.js → fontBlQIMQka.js} +1 -1
  50. package/dist/components/{fontCZ3hGZBF.js → fontC8vEFiT8.js} +1 -1
  51. package/dist/components/{fullscreenDF7FK-y9.js → fullscreenBGYoQBVj.js} +2 -2
  52. package/dist/components/{fullscreenD26Fq3AJ.js → fullscreenCFzLlJwu.js} +1 -1
  53. package/dist/components/{fullscreenCCAwhExm.js → fullscreenD9VUP9_N.js} +1 -1
  54. package/dist/components/{fullscreenBrDmE4_A.js → fullscreenPoizImKu.js} +1 -1
  55. package/dist/components/indexDt4Wwt6a.js +4 -0
  56. package/dist/components/indexYStA35ll.js +3372 -0
  57. package/dist/components/{infoD_KSpt0x.js → infoBgFtKURA.js} +1 -1
  58. package/dist/components/{infoD4ZTbsGp.js → infoGk6YrcsI.js} +1 -1
  59. package/dist/components/{levelBpo8OsbV.js → levelDPHVNGDq.js} +1 -1
  60. package/dist/components/{levelDtDdq-Pg.js → levelM1Zwhfh0.js} +1 -1
  61. package/dist/components/{line2KgRRfGu.js → lineCACajIda.js} +1 -1
  62. package/dist/components/{lineNu21t5gy.js → lineY2y1VH5T.js} +1 -1
  63. package/dist/components/{microscopeCj4MZVX6.js → microscopeBXo7gg6w.js} +1 -1
  64. package/dist/components/{microscopemDpbiPHg.js → microscopeCYzWML7r.js} +1 -1
  65. package/dist/components/{microscopeBLaPm6pb.js → microscopeCni5LwyW.js} +1 -1
  66. package/dist/components/{microscopeD8c1neyn.js → microscopeNl42JU1P.js} +3 -3
  67. package/dist/components/{moveDMF_aznf.js → moveB9NAKOsw.js} +3 -3
  68. package/dist/components/{moveWhJ3O6uI.js → moveBVyDEKnl.js} +1 -1
  69. package/dist/components/{moveCtlzWScv.js → moveCz6A4Ez1.js} +1 -1
  70. package/dist/components/{moveBONH7e1-.js → movest96iRgd.js} +1 -1
  71. package/dist/components/{nextDQR6-RfD.js → nextCwoUsy6E.js} +1 -1
  72. package/dist/components/{nextBbF_v1SK.js → nextqhNB-SFW.js} +1 -1
  73. package/dist/components/{polygonDLNm7Aiy.js → polygonBT3dOW65.js} +1 -1
  74. package/dist/components/{polygonB1s-gscM.js → polygonDKyvELbA.js} +1 -1
  75. package/dist/components/{prevBi3Jjzby.js → prevBpUUYZ6O.js} +1 -1
  76. package/dist/components/{prevDtGjAkiY.js → prevCKEi4Puv.js} +1 -1
  77. package/dist/components/{processOErCYmsz.js → processC-WPdB6z.js} +3 -3
  78. package/dist/components/{processZz2jg8Ii.js → processCH8V7XuS.js} +1 -1
  79. package/dist/components/{processBaejbNIO.js → processCLMa81uw.js} +1 -1
  80. package/dist/components/{processB_71-rt3.js → processCb2-EpwX.js} +1 -1
  81. package/dist/components/{rectangleCx7rw04r.js → rectangleCEz3jlaN.js} +1 -1
  82. package/dist/components/{rectangleB_weH4OT.js → rectangleCbnLFNUp.js} +1 -1
  83. package/dist/components/{rotateC8INrLms.js → rotateCUmCozCI.js} +1 -1
  84. package/dist/components/{rotateCQ-njCPy.js → rotateCd3NfTn3.js} +4 -4
  85. package/dist/components/{rotateCn_yYR-9.js → rotateCp0eUC9w.js} +1 -1
  86. package/dist/components/{rotateChAaWWwk.js → rotateTx_jA6Tj.js} +1 -1
  87. package/dist/components/{settingbBZdqUd4.js → setting4lZ-C5Ee.js} +3 -3
  88. package/dist/components/{settingDc0THS-p.js → setting7qHA2k3V.js} +1 -1
  89. package/dist/components/{settingBuJ04L0g.js → settingCjLFtIFq.js} +1 -1
  90. package/dist/components/{settingDa4UFFpZ.js → settingL9wi7-is.js} +1 -1
  91. package/dist/components/{star4mf8YXXg.js → starCmSx2RRp.js} +1 -1
  92. package/dist/components/{starCPNRqnqz.js → starD45B3mMF.js} +1 -1
  93. package/dist/components/{tailorB7TqXg5T.js → tailorDHHY7I25.js} +1 -1
  94. package/dist/components/{tailorfTcGg1n3.js → tailorDPhAvXTy.js} +1 -1
  95. package/dist/components/{useCommonBcu2vBNt.js → useCommonCfZYfi5_.js} +1 -1
  96. package/dist/components/{useCommonDV6XODnB.js → useCommonD1xLsDFm.js} +1 -1
  97. package/dist/components/{voiceB8S4rKDI.js → voicedPtSHu3-.js} +1 -1
  98. package/dist/components/{voiceDU2Vni9x.js → voicejDSvtJQ0.js} +1 -1
  99. package/dist/components/{zoomBn1qhxqR.js → zoomByPWFzTS.js} +1 -1
  100. package/dist/components/{zoomInDyv5nd6T.js → zoomInByzL1beZ.js} +1 -1
  101. package/dist/components/{zoomInD_8Csh5g.js → zoomInEzPaqdhp.js} +1 -1
  102. package/dist/components/{zoomtmOdf1Vc.js → zoomNFFxBQlY.js} +1 -1
  103. package/dist/components/{zoomOutDDZGVubB.js → zoomOutCJK4IL-h.js} +1 -1
  104. package/dist/components/{zoomOutC0vB2rpg.js → zoomOuthCZGs44j.js} +1 -1
  105. package/dist/index.cjs.js +1 -1
  106. package/dist/index.es.js +1 -1
  107. package/package.json +5 -2
  108. package/types/components/KfbToolbox.vue.d.ts +0 -1
  109. package/web-types.json +156 -0
  110. package/dist/components/indexBD-4Tc4b.js +0 -4
  111. package/dist/components/indexDRXmzSTr.js +0 -3111
@@ -1,3111 +0,0 @@
1
- var Xt = Object.defineProperty, Qt = Object.defineProperties;
2
- var Jt = Object.getOwnPropertyDescriptors;
3
- var $t = Object.getOwnPropertySymbols;
4
- var el = Object.prototype.hasOwnProperty, tl = Object.prototype.propertyIsEnumerable;
5
- var Tt = (u, e, l) => e in u ? Xt(u, e, { enumerable: !0, configurable: !0, writable: !0, value: l }) : u[e] = l, W = (u, e) => {
6
- for (var l in e || (e = {}))
7
- el.call(e, l) && Tt(u, l, e[l]);
8
- if ($t)
9
- for (var l of $t(e))
10
- tl.call(e, l) && Tt(u, l, e[l]);
11
- return u;
12
- }, we = (u, e) => Qt(u, Jt(e));
13
- var $e = (u, e, l) => new Promise((t, w) => {
14
- var v = (m) => {
15
- try {
16
- i(l.next(m));
17
- } catch (g) {
18
- w(g);
19
- }
20
- }, r = (m) => {
21
- try {
22
- i(l.throw(m));
23
- } catch (g) {
24
- w(g);
25
- }
26
- }, i = (m) => m.done ? t(m.value) : Promise.resolve(m.value).then(v, r);
27
- i((l = l.apply(u, e)).next());
28
- });
29
- import { inject as Z, ref as T, markRaw as S, defineAsyncComponent as M, defineComponent as J, createBlock as H, openBlock as _, unref as o, normalizeProps as ll, guardReactiveProps as ol, withCtx as L, resolveDynamicComponent as Ve, useModel as Be, computed as B, createElementBlock as x, createElementVNode as k, createVNode as C, toDisplayString as E, Fragment as oe, renderList as ae, isRef as pe, createTextVNode as K, watch as ee, h as al, renderSlot as fe, mergeProps as Oe, createCommentVNode as R, reactive as rt, onMounted as he, onBeforeUnmount as Ie, normalizeStyle as q, mergeDefaults as nl, withDirectives as xe, vShow as Ae, getCurrentInstance as sl, mergeModels as be, normalizeClass as ke, useCssVars as il, provide as de, Teleport as je, withModifiers as Fe } from "vue";
30
- import { ElIcon as ze, ElRow as rl, ElCol as ul, ElSwitch as Ee, ElRadioGroup as ot, ElRadio as Te, ElDialog as Ge, ElForm as nt, ElFormItem as ie, ElInput as at, ElButton as _e, ElMessage as Lt, ElLoading as Et, ElSlider as cl, ElTag as Vt, ElCheckbox as We, ElTooltip as xt, ElPopover as dl, ElCheckboxGroup as vl, ElPagination as fl } from "element-plus";
31
- import { KfbView as ve, OpenSeadragon as Le } from "kfb-view";
32
- import ml from "v-lazy-image";
33
- const It = Symbol("I18N_INJECT_KEY");
34
- function ue() {
35
- const u = Z(It), e = (l) => l;
36
- return {
37
- locale: u == null ? void 0 : u.locale,
38
- t: (u == null ? void 0 : u.t) || e
39
- };
40
- }
41
- const pl = {
42
- install(u, e) {
43
- u.provide(It, e == null ? void 0 : e.global);
44
- }
45
- }, G = T({
46
- annotate: S(M(() => import("./annotateDs5i2eNO.js"))),
47
- arrowCircle: S(M(() => import("./arrowCirclelm3OXqGD.js"))),
48
- check: S(M(() => import("./checkDksrM1Ib.js"))),
49
- dot: S(M(() => import("./dotBjXKweg0.js"))),
50
- flip: S(M(() => import("./flipDFWc7R0p.js"))),
51
- info: S(M(() => import("./infoD4ZTbsGp.js"))),
52
- microscope: S(M(() => import("./microscopeCj4MZVX6.js"))),
53
- move: S(M(() => import("./moveCtlzWScv.js"))),
54
- next: S(M(() => import("./nextBbF_v1SK.js"))),
55
- prev: S(M(() => import("./prevBi3Jjzby.js"))),
56
- process: S(M(() => import("./processBaejbNIO.js"))),
57
- rotate: S(M(() => import("./rotateCn_yYR-9.js"))),
58
- fullscreen: S(M(() => import("./fullscreenCCAwhExm.js"))),
59
- setting: S(M(() => import("./settingBuJ04L0g.js"))),
60
- tailor: S(M(() => import("./tailorfTcGg1n3.js"))),
61
- download: S(M(() => import("./downloadZ2QzL5rO.js"))),
62
- config: S(M(() => import("./configBQB-oghg.js"))),
63
- arrowDown: S(M(() => import("./arrowDownBAZ_RPEu.js"))),
64
- arrowUp: S(M(() => import("./arrowUpCms_i80O.js"))),
65
- arrowLeft: S(M(() => import("./arrowLeft8I3cz9ix.js"))),
66
- arrowRight: S(M(() => import("./arrowRightDNETqHjH.js"))),
67
- zoomIn: S(M(() => import("./zoomInDyv5nd6T.js"))),
68
- zoomOut: S(M(() => import("./zoomOutDDZGVubB.js"))),
69
- level: S(M(() => import("./levelDtDdq-Pg.js"))),
70
- channel: S(M(() => import("./channel8wdsKWt0.js"))),
71
- delete: S(M(() => import("./deleteChVtJN4n.js"))),
72
- expandLeft: S(M(() => import("./expandLeftDB8r1unh.js"))),
73
- expandRight: S(M(() => import("./expandRightBhVI7kIo.js"))),
74
- markLine: S(M(() => import("./lineNu21t5gy.js"))),
75
- markArrow: S(M(() => import("./arrowCBL9AzKr.js"))),
76
- markBilateral: S(M(() => import("./bilateralDRIzcahZ.js"))),
77
- markRectangle: S(M(() => import("./rectangleB_weH4OT.js"))),
78
- markEllipse: S(M(() => import("./ellipseC2z02yg-.js"))),
79
- markPolygon: S(M(() => import("./polygonB1s-gscM.js"))),
80
- markFlag: S(M(() => import("./flagDc9VAAUM.js"))),
81
- markStar: S(M(() => import("./star4mf8YXXg.js"))),
82
- markDot: S(M(() => import("./dotBQNxsw3c.js"))),
83
- markFont: S(M(() => import("./fontD27n3hS-.js"))),
84
- markVoice: S(M(() => import("./voiceB8S4rKDI.js")))
85
- }), Q = /* @__PURE__ */ J({
86
- __name: "KfbIcon",
87
- props: {
88
- name: {
89
- type: [String, Number],
90
- required: !0
91
- }
92
- },
93
- setup(u) {
94
- return (e, l) => (_(), H(o(ze), ll(ol(e.$attrs)), {
95
- default: L(() => [
96
- (_(), H(Ve(o(G)[u.name])))
97
- ]),
98
- _: 1
99
- }, 16));
100
- }
101
- }), hl = { class: "hzzt-kfb-tool-config" }, gl = { class: "hzzt-kfb-tool-config__title margin-b-2" }, yl = { class: "hzzt-kfb-tool-config__block flex align-items-center" }, wl = { class: "hzzt-kfb-tool-config__icon flex align-items-center justify-content-center" }, _l = { class: "margin-l-4 flex-1" }, bl = { class: "hzzt-kfb-tool-config__title" }, kl = { class: "flex align-items-center" }, zl = {
102
- class: "margin-t-2 margin-b-2",
103
- style: { width: "160px" }
104
- }, Cl = { class: "flex align-items-center" }, $l = {
105
- class: "margin-t-2 margin-b-2",
106
- style: { width: "160px" }
107
- }, Tl = { class: "flex align-items-center" }, Ll = {
108
- class: "margin-t-2 margin-b-2",
109
- style: { width: "160px" }
110
- }, xl = /* @__PURE__ */ J({
111
- name: "KfbToolConfig",
112
- __name: "KfbToolConfig",
113
- props: {
114
- menus: {
115
- default: () => []
116
- },
117
- menusModifiers: {}
118
- },
119
- emits: ["update:menus"],
120
- setup(u) {
121
- const e = Be(u, "menus"), { t: l } = ue(), t = B(() => e.value.filter((h) => h.name !== "line" && h.name !== "config" && h.name !== "zoom")), w = {
122
- fullscreen: l("全屏"),
123
- next: l("上一张"),
124
- prev: l("上一张"),
125
- flip: l("镜像翻转"),
126
- setting: l("工具"),
127
- rotate: l("旋转"),
128
- dot: l("打点"),
129
- annotate: l("标注"),
130
- tailor: l("截图"),
131
- process: l("图像处理"),
132
- microscope: l("镜下"),
133
- move: l("快速移动"),
134
- info: l("信息"),
135
- download: l("下载")
136
- }, v = Z("show-keyboard", T(!1)), r = Z("show-watermark", T(!1)), i = Z("show-menu-text", T(!0));
137
- function m(h) {
138
- return h in w;
139
- }
140
- function g(h) {
141
- var n;
142
- return ((n = h.props) == null ? void 0 : n.text) || (m(h.name) ? w[h.name] : "");
143
- }
144
- return (h, n) => (_(), x("div", hl, [
145
- k("h3", gl, E(o(l)("显示管理")), 1),
146
- C(o(rl), { gutter: 10 }, {
147
- default: L(() => [
148
- (_(!0), x(oe, null, ae(t.value, (d) => (_(), H(o(ul), {
149
- key: d.name,
150
- span: 8
151
- }, {
152
- default: L(() => {
153
- var c, a;
154
- return [
155
- k("div", yl, [
156
- k("div", wl, [
157
- (c = d.props) != null && c.component ? (_(), H(Ve((a = d.props) == null ? void 0 : a.component), {
158
- key: 1,
159
- size: 24
160
- })) : (_(), H(Q, {
161
- key: 0,
162
- size: 24,
163
- name: d.name
164
- }, null, 8, ["name"]))
165
- ]),
166
- k("p", _l, E(g(d)), 1),
167
- C(o(Ee), {
168
- modelValue: d.show,
169
- "onUpdate:modelValue": (f) => d.show = f,
170
- "active-text": "",
171
- "inactive-text": ""
172
- }, null, 8, ["modelValue", "onUpdate:modelValue"])
173
- ])
174
- ];
175
- }),
176
- _: 2
177
- }, 1024))), 128))
178
- ]),
179
- _: 1
180
- }),
181
- k("div", null, [
182
- k("h3", bl, E(o(l)("其他设置")), 1),
183
- k("div", kl, [
184
- k("p", zl, E(o(l)("工具列表显示切换")), 1),
185
- C(o(ot), {
186
- modelValue: o(i),
187
- "onUpdate:modelValue": n[0] || (n[0] = (d) => pe(i) ? i.value = d : null)
188
- }, {
189
- default: L(() => [
190
- C(o(Te), { value: !0 }, {
191
- default: L(() => [
192
- K(E(o(l)("显示工具名称")), 1)
193
- ]),
194
- _: 1
195
- }),
196
- C(o(Te), { value: !1 }, {
197
- default: L(() => [
198
- K(E(o(l)("隐藏工具名称")), 1)
199
- ]),
200
- _: 1
201
- })
202
- ]),
203
- _: 1
204
- }, 8, ["modelValue"])
205
- ]),
206
- k("div", Cl, [
207
- k("p", $l, E(o(l)("小键盘显示切换")), 1),
208
- C(o(ot), {
209
- modelValue: o(v),
210
- "onUpdate:modelValue": n[1] || (n[1] = (d) => pe(v) ? v.value = d : null)
211
- }, {
212
- default: L(() => [
213
- C(o(Te), { value: !0 }, {
214
- default: L(() => [
215
- K(E(o(l)("显示小键盘")), 1)
216
- ]),
217
- _: 1
218
- }),
219
- C(o(Te), { value: !1 }, {
220
- default: L(() => [
221
- K(E(o(l)("隐藏小键盘")), 1)
222
- ]),
223
- _: 1
224
- })
225
- ]),
226
- _: 1
227
- }, 8, ["modelValue"])
228
- ]),
229
- k("div", Tl, [
230
- k("p", Ll, E(o(l)("水印文字")), 1),
231
- C(o(ot), {
232
- modelValue: o(r),
233
- "onUpdate:modelValue": n[2] || (n[2] = (d) => pe(r) ? r.value = d : null)
234
- }, {
235
- default: L(() => [
236
- C(o(Te), { value: !0 }, {
237
- default: L(() => [
238
- K(E(o(l)("启用")), 1)
239
- ]),
240
- _: 1
241
- }),
242
- C(o(Te), { value: !1 }, {
243
- default: L(() => [
244
- K(E(o(l)("禁用")), 1)
245
- ]),
246
- _: 1
247
- })
248
- ]),
249
- _: 1
250
- }, 8, ["modelValue"])
251
- ])
252
- ])
253
- ]));
254
- }
255
- }), El = { class: "hzzt-kfb-toolbox" }, Vl = { class: "hzzt-kfb-toolbox__component" }, qe = /* @__PURE__ */ J({
256
- name: "KfbToolbox",
257
- __name: "KfbToolbox",
258
- props: {
259
- menu: {},
260
- process: {},
261
- microscope: {},
262
- showMenuText: { type: Boolean }
263
- },
264
- emits: ["tool"],
265
- setup(u, { emit: e }) {
266
- const l = u, t = e, { t: w } = ue(), v = {
267
- prev: w("上一张"),
268
- next: w("下一张"),
269
- config: w("配置"),
270
- info: w("信息"),
271
- flip: w("镜像"),
272
- tailor: w("截图")
273
- }, r = Z("kfbViewRef"), i = T(!1), m = T(n(l.menu)), g = {
274
- fullscreen: M(() => import("./fullscreenDF7FK-y9.js")),
275
- line: M(() => import("./lineBNwqZbqu.js")),
276
- setting: M(() => import("./settingbBZdqUd4.js")),
277
- rotate: M(() => import("./rotateCQ-njCPy.js")),
278
- dot: M(() => import("./dotC0CKM_hZ.js")),
279
- annotate: M(() => import("./annotateCwGjQKaP.js")),
280
- process: M(() => import("./processOErCYmsz.js")),
281
- microscope: M(() => import("./microscopeD8c1neyn.js")),
282
- move: M(() => import("./moveDMF_aznf.js")),
283
- custom: M(() => import("./customAwznbb6Z.js")),
284
- zoom: M(() => import("./zoomBn1qhxqR.js")),
285
- download: M(() => import("./downloadNznR12xP.js"))
286
- }, h = B(() => m.value.filter((c) => c.show !== !1).map((c) => ({
287
- component: g[c.name],
288
- props: c.props,
289
- slots: c.slots
290
- })));
291
- ee(() => l.menu, (c) => {
292
- m.value = n(c);
293
- });
294
- function n(c) {
295
- return c.map((a) => {
296
- const f = typeof a == "string" ? a : a.name;
297
- return v[f] ? {
298
- name: "custom",
299
- show: typeof a == "string" ? !0 : a.show !== !1,
300
- props: we(W({
301
- text: v[f],
302
- component: al(Q, {
303
- name: f
304
- })
305
- }, typeof a == "string" ? {} : a.props), {
306
- name: f
307
- })
308
- } : f === "process" ? {
309
- name: f,
310
- props: typeof a == "string" ? {
311
- process: l.process
312
- } : W({
313
- process: l.process
314
- }, a.props),
315
- slots: typeof a == "string" ? void 0 : a.slots,
316
- show: typeof a == "string" ? !0 : a.show !== !1
317
- } : f === "microscope" ? {
318
- name: f,
319
- props: typeof a == "string" ? {
320
- process: l.process
321
- } : W({
322
- microscope: l.microscope
323
- }, a.props),
324
- slots: typeof a == "string" ? void 0 : a.slots,
325
- show: typeof a == "string" ? !0 : a.show !== !1
326
- } : {
327
- name: f,
328
- props: typeof a == "string" ? {} : a.props,
329
- slots: typeof a == "string" ? void 0 : a.slots,
330
- show: typeof a == "string" ? !0 : a.show !== !1
331
- };
332
- });
333
- }
334
- function d(c, a) {
335
- const f = {
336
- annotate: () => r.value.startDraw(a),
337
- tailor: () => r.value.shotScreen(a),
338
- process: () => r.value.forceRedraw(a),
339
- microscope: () => r.value.scopeChange(a),
340
- move: () => r.value.fastMove(a),
341
- endDraw: () => r.value.endDraw(),
342
- info: () => r.value.info(),
343
- zoom: () => r.value.zoomTo(a),
344
- flip: () => r.value.toggleFlip(a),
345
- config: () => i.value = !0,
346
- grid: () => r.value.updateGrid(a),
347
- ruler: () => r.value.updateGrid(a),
348
- graduation: () => r.value.updateGraduation(a),
349
- navigator: () => r.value.updateNavigator(a),
350
- tool: () => {
351
- r.value.updateGrid({
352
- show: a
353
- }), r.value.updateGraduation({
354
- show: a
355
- }), r.value.updateGrid({
356
- ruler: a
357
- }), r.value.updateNavigator(a);
358
- }
359
- };
360
- f[c] ? f[c]() : t("tool", c, a);
361
- }
362
- return (c, a) => (_(), x("div", El, [
363
- fe(c.$slots, "left"),
364
- k("div", Vl, [
365
- (_(!0), x(oe, null, ae(h.value, (f, b) => (_(), H(Ve(f.component), Oe({ ref_for: !0 }, f.props, {
366
- key: b,
367
- onTool: d
368
- }), {
369
- default: L(() => [
370
- f.slots ? (_(!0), x(oe, { key: 0 }, ae(f.slots, (y) => (_(), H(Ve(y)))), 256)) : R("", !0)
371
- ]),
372
- _: 2
373
- }, 1040))), 128))
374
- ]),
375
- fe(c.$slots, "right"),
376
- C(o(Ge), {
377
- modelValue: i.value,
378
- "onUpdate:modelValue": a[1] || (a[1] = (f) => i.value = f),
379
- width: "800px",
380
- title: o(w)("阅片工具设置中心")
381
- }, {
382
- default: L(() => [
383
- C(xl, {
384
- menus: m.value,
385
- "onUpdate:menus": a[0] || (a[0] = (f) => m.value = f)
386
- }, null, 8, ["menus"])
387
- ]),
388
- _: 1
389
- }, 8, ["modelValue", "title"])
390
- ]));
391
- }
392
- }), Ze = "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", st = {
393
- shape: "50%",
394
- width: 0.3,
395
- color: "#FA0404",
396
- borderWidth: 5
397
- }, Mt = {
398
- r: 0,
399
- g: 0,
400
- b: 0,
401
- c: 0,
402
- s: 0,
403
- l: 0,
404
- ga: 1
405
- };
406
- function Il(u) {
407
- const e = rt(W(W({}, Mt), u.process));
408
- ee(() => u.process, (v) => {
409
- w(v);
410
- });
411
- const l = B(() => {
412
- const v = [
413
- 1 + e.r + e.l + 0.5 * e.c,
414
- 0,
415
- 0,
416
- 0,
417
- -0.25 * e.c
418
- ], r = [
419
- 0,
420
- 1 + e.g + e.l + 0.5 * e.c,
421
- 0,
422
- 0,
423
- -0.25 * e.c
424
- ], i = [
425
- 0,
426
- 0,
427
- 1 + e.b + e.l + 0.5 * e.c,
428
- 0,
429
- -0.25 * e.c
430
- ], m = [0, 0, 0, 1, 0];
431
- return `${v.join(" ")}
432
- ${r.join(" ")}
433
- ${i.join(" ")}
434
- ${m.join(" ")}`;
435
- }), t = B(() => String(1 + e.s));
436
- function w(v) {
437
- v && Object.assign(e, v);
438
- }
439
- return {
440
- imageProcess: e,
441
- matrixValues: l,
442
- saturateValues: t,
443
- forceRedraw: w
444
- };
445
- }
446
- function Ml(u, e) {
447
- function l() {
448
- e.value.$on(ve.events.EVENT_TAILORING_SCREENSHOT, t);
449
- }
450
- function t({ base64: r, region: i, custom: m }) {
451
- if (window.ClipboardItem && (navigator != null && navigator.clipboard)) {
452
- const g = w(r, "image/png");
453
- navigator.clipboard.write([
454
- new window.ClipboardItem({
455
- [g.type]: g
456
- })
457
- ]);
458
- }
459
- u("tool", "screen-shot", { base64: r, region: i, custom: m });
460
- }
461
- function w(r, i) {
462
- var d, c;
463
- const m = r.split(",");
464
- (c = (d = m[0]) == null ? void 0 : d.match(/:(.*?);/)) == null || c[1];
465
- const g = atob(m == null ? void 0 : m[1]);
466
- let h = g.length;
467
- const n = new Uint8Array(h);
468
- for (; h--; )
469
- n[h] = g.charCodeAt(h);
470
- return new Blob([n], { type: i });
471
- }
472
- function v(r, i) {
473
- const { width: m, height: g } = e.value.$options;
474
- r ? m > g ? e.value.tailoring.init(
475
- {
476
- left: (m - g) / 2,
477
- top: 0,
478
- height: g,
479
- width: g,
480
- now: !0
481
- },
482
- i
483
- ) : e.value.tailoring.init(
484
- {
485
- left: 0,
486
- top: (g - m) / 2,
487
- height: m,
488
- width: m,
489
- now: !0
490
- },
491
- i
492
- ) : e.value.tailoring.init(
493
- {
494
- left: m / 2 - 100,
495
- top: g / 2 - 100,
496
- height: 200,
497
- width: 200,
498
- color: "#ff0000"
499
- },
500
- i
501
- );
502
- }
503
- return {
504
- tailorEvent: l,
505
- shotScreen: v
506
- };
507
- }
508
- const Sl = ["onClick"], Hl = ["src"], Pl = {
509
- key: 2,
510
- style: { width: "18px" },
511
- class: "margin-r-3"
512
- }, Rl = {
513
- key: 1,
514
- class: "hzzt-kfb-sub-menu"
515
- }, Al = ["onClick"], Nl = { class: "flex align-items-center" }, Bl = ["src"], Dl = {
516
- key: 2,
517
- style: { width: "18px" },
518
- class: "margin-r-2"
519
- }, Ul = /* @__PURE__ */ J({
520
- __name: "KfbMenu",
521
- props: {
522
- menus: {}
523
- },
524
- emits: ["tool"],
525
- setup(u, { emit: e }) {
526
- const l = T({
527
- top: "0",
528
- left: "0",
529
- display: "none"
530
- }), t = Z("kfbView", T({})), w = Z("currentLabel"), v = u, r = e, { t: i } = ue(), m = [
531
- {
532
- label: i("直线"),
533
- value: "line",
534
- icon: G.value.markLine
535
- },
536
- {
537
- label: i("箭头"),
538
- value: "arrow",
539
- icon: G.value.markArrow
540
- },
541
- {
542
- label: i("双箭头"),
543
- value: "bilateral",
544
- icon: G.value.markBilateral
545
- },
546
- {
547
- label: i("矩形"),
548
- value: "rectangle",
549
- icon: G.value.markRectangle
550
- },
551
- {
552
- label: i("圆形"),
553
- value: "ellipse",
554
- icon: G.value.markEllipse
555
- },
556
- {
557
- label: i("曲线"),
558
- value: "polygon",
559
- icon: G.value.markPolygon
560
- },
561
- {
562
- label: i("星星"),
563
- value: "star",
564
- icon: G.value.markStar
565
- },
566
- {
567
- label: i("旗帜"),
568
- value: "flag",
569
- icon: G.value.markFlag
570
- },
571
- {
572
- label: i("点"),
573
- value: "dot",
574
- icon: G.value.markDot
575
- },
576
- {
577
- label: i("文字"),
578
- value: "font",
579
- icon: G.value.markFont
580
- },
581
- {
582
- label: i("语音"),
583
- value: "voice",
584
- icon: G.value.markVoice
585
- }
586
- ], g = B(() => {
587
- var a;
588
- return w != null && w.value ? [{
589
- label: i("删除"),
590
- value: "delete",
591
- icon: G.value.delete
592
- }] : (a = v.menus) != null && a.length ? v.menus.map((f) => f.value === "annotate" ? we(W({}, f), {
593
- children: m
594
- }) : we(W({}, f), {
595
- icon: f.icon || G.value[f.value]
596
- })) : [
597
- {
598
- label: i("上一张"),
599
- value: "prev"
600
- },
601
- {
602
- label: i("下一张"),
603
- value: "next"
604
- },
605
- {
606
- label: i("标注"),
607
- value: "annotate",
608
- icon: G.value.annotate,
609
- children: m
610
- },
611
- {
612
- label: i("一键截图"),
613
- value: "tailor_now",
614
- icon: G.value.tailor
615
- },
616
- {
617
- label: i("区域截图"),
618
- value: "tailor"
619
- },
620
- {
621
- label: i("镜像翻转"),
622
- value: "flip",
623
- icon: G.value.flip
624
- },
625
- {
626
- label: i("切片信息"),
627
- value: "info",
628
- icon: G.value.info
629
- }
630
- ];
631
- });
632
- ee(() => t.value, (a, f) => {
633
- f != null && f.viewer && (f.viewer.removeHandler("canvas-contextmenu", h), f.viewer.removeHandler("canvas-click", n)), a != null && a.viewer && (a.viewer.addHandler("canvas-contextmenu", h), a.viewer.addHandler("canvas-click", n));
634
- }), he(() => {
635
- var a;
636
- (a = t.value) != null && a.viewer && (t.value.viewer.addHandler("canvas-contextmenu", h), t.value.viewer.addHandler("canvas-click", n)), document.body.addEventListener("click", n);
637
- }), Ie(() => {
638
- var a;
639
- (a = t.value) != null && a.viewer && (t.value.viewer.removeHandler("canvas-contextmenu", h), t.value.viewer.removeHandler("canvas-click", n)), document.body.removeEventListener("click", n);
640
- });
641
- function h(a) {
642
- a.preventDefault = !0, l.value.top = `${a.position.y}px`, l.value.left = `${a.position.x}px`, l.value.display === "block" ? l.value.display = "none" : l.value.display = "block";
643
- }
644
- function n() {
645
- l.value.display = "none";
646
- }
647
- function d(a, f) {
648
- a.children || ((f == null ? void 0 : f.value) === "annotate" ? r("tool", "annotate", {
649
- tool: a.value.substring(0, 1).toLocaleUpperCase() + a.value.substring(1),
650
- once: !0
651
- }) : a.value === "tailor_now" ? r("tool", "tailor", !0) : r("tool", a.value), n());
652
- }
653
- function c(a) {
654
- return a == null || typeof a != "object" && typeof a != "function" ? !1 : (
655
- // 函数式组件
656
- typeof a == "function" || // 对象式组件
657
- "render" in a || "setup" in a
658
- );
659
- }
660
- return (a, f) => (_(), x("div", {
661
- class: "hzzt-kfb-menu",
662
- style: q(l.value)
663
- }, [
664
- (_(!0), x(oe, null, ae(g.value, (b, y) => (_(), x("div", {
665
- key: y,
666
- class: "hzzt-kfb-menu-item"
667
- }, [
668
- k("div", {
669
- class: "flex align-items-center",
670
- onClick: (p) => d(b)
671
- }, [
672
- c(b.icon) ? (_(), H(o(ze), {
673
- key: 0,
674
- class: "margin-r-3",
675
- size: 18
676
- }, {
677
- default: L(() => [
678
- (_(), H(Ve(b.icon)))
679
- ]),
680
- _: 2
681
- }, 1024)) : b.icon ? (_(), x("img", {
682
- key: 1,
683
- style: { width: "18px" },
684
- class: "margin-r-2",
685
- src: b.icon
686
- }, null, 8, Hl)) : (_(), x("div", Pl)),
687
- k("span", null, E(b.label), 1)
688
- ], 8, Sl),
689
- b.children ? (_(), H(Q, {
690
- key: 0,
691
- name: "arrowRight",
692
- class: "margin-r-2",
693
- size: 14
694
- })) : R("", !0),
695
- b.children ? (_(), x("div", Rl, [
696
- (_(!0), x(oe, null, ae(b.children, (p, s) => (_(), x("div", {
697
- key: s,
698
- class: "hzzt-kfb-menu-item",
699
- onClick: (I) => d(p, b)
700
- }, [
701
- k("div", Nl, [
702
- c(p.icon) ? (_(), H(o(ze), {
703
- key: 0,
704
- class: "margin-r-2",
705
- size: 18
706
- }, {
707
- default: L(() => [
708
- (_(), H(Ve(p.icon)))
709
- ]),
710
- _: 2
711
- }, 1024)) : p.icon ? (_(), x("img", {
712
- key: 1,
713
- style: { width: "18px" },
714
- class: "margin-r-2",
715
- src: p.icon
716
- }, null, 8, Bl)) : (_(), x("div", Dl)),
717
- k("span", null, E(p.label), 1)
718
- ])
719
- ], 8, Al))), 128))
720
- ])) : R("", !0)
721
- ]))), 128))
722
- ], 4));
723
- }
724
- }), ge = (u, e) => {
725
- const l = u.__vccOpts || u;
726
- for (const [t, w] of e)
727
- l[t] = w;
728
- return l;
729
- }, Fl = /* @__PURE__ */ ge(Ul, [["__scopeId", "data-v-414722d0"]]), Kl = {
730
- key: 0,
731
- class: "hzzt-kfb-microscope"
732
- }, jl = /* @__PURE__ */ J({
733
- __name: "KfbMicroscope",
734
- props: /* @__PURE__ */ nl({
735
- shape: {},
736
- width: {},
737
- color: {},
738
- borderWidth: {}
739
- }, W({}, st)),
740
- setup(u, { expose: e }) {
741
- const l = u, t = rt(W(W({}, st), l));
742
- ee(() => l, (n) => {
743
- h({ name: "change", value: n });
744
- });
745
- const w = T("200px"), v = T(!1), r = B(() => ({
746
- borderRadius: t.shape,
747
- borderColor: t.color,
748
- borderWidth: t.borderWidth + "px",
749
- width: w.value,
750
- height: w.value
751
- })), i = Z("kfbView", T({}));
752
- ee(() => i.value, (n, d) => {
753
- d != null && d.viewer && d.viewer.removeHandler("zoom", m), n != null && n.viewer && n.viewer.addHandler("zoom", m);
754
- }), he(() => {
755
- var n;
756
- (n = i.value) != null && n.viewer && i.value.viewer.addHandler("zoom", m);
757
- }), Ie(() => {
758
- var n;
759
- (n = i.value) != null && n.viewer && i.value.viewer.removeHandler("zoom", m);
760
- });
761
- function m() {
762
- setTimeout(() => {
763
- h({ name: "change", value: t });
764
- }, 100);
765
- }
766
- function g(n) {
767
- let { x: d, y: c } = i.value.viewer.viewport.getCenter(!0);
768
- n === "top" ? c -= 6e-3 : n === "bottom" ? c += 6e-3 : n === "left" ? d -= 6e-3 : n === "right" && (d += 6e-3), i.value.area.moveToLabel({ x: d, y: c });
769
- }
770
- function h({ name: n, value: d }) {
771
- var a, f;
772
- const c = (f = (a = i.value.$options) == null ? void 0 : a.pxConversion) == null ? void 0 : f.imageCapRes;
773
- if (n === "visible") {
774
- if (v.value = d, d) {
775
- const b = i.value.area.imageToViewerElementRectangle(
776
- {
777
- x: 0,
778
- y: 0,
779
- width: t.width * 1e3 / c,
780
- height: t.width * 1e3 / c
781
- }
782
- );
783
- w.value = b.width + "px";
784
- }
785
- } else if (n === "change") {
786
- Object.assign(t, d);
787
- const b = i.value.area.imageToViewerElementRectangle(
788
- {
789
- x: 0,
790
- y: 0,
791
- width: t.width * 1e3 / c,
792
- height: t.width * 1e3 / c
793
- }
794
- );
795
- w.value = b.width + "px";
796
- }
797
- }
798
- return e({
799
- scopeChange: h
800
- }), (n, d) => v.value ? (_(), x("div", Kl, [
801
- k("div", {
802
- class: "hzzt-kfb-microscope__container",
803
- style: q(r.value)
804
- }, null, 4),
805
- k("div", {
806
- class: "hzzt-kfb-microscope__top",
807
- onClick: d[0] || (d[0] = (c) => g("top"))
808
- }, [
809
- C(Q, {
810
- size: "24",
811
- name: "arrowUp"
812
- })
813
- ]),
814
- k("div", {
815
- class: "hzzt-kfb-microscope__bottom",
816
- onClick: d[1] || (d[1] = (c) => g("bottom"))
817
- }, [
818
- C(Q, {
819
- size: "24",
820
- name: "arrowDown"
821
- })
822
- ]),
823
- k("div", {
824
- class: "hzzt-kfb-microscope__left",
825
- onClick: d[2] || (d[2] = (c) => g("left"))
826
- }, [
827
- C(Q, {
828
- size: "24",
829
- name: "arrowLeft"
830
- })
831
- ]),
832
- k("div", {
833
- class: "hzzt-kfb-microscope__right",
834
- onClick: d[3] || (d[3] = (c) => g("right"))
835
- }, [
836
- C(Q, {
837
- size: "24",
838
- name: "arrowRight"
839
- })
840
- ])
841
- ])) : R("", !0);
842
- }
843
- }), Ol = /* @__PURE__ */ ge(jl, [["__scopeId", "data-v-cf5949b8"]]), Gl = { class: "hzzt-kfb-label flex column" }, Wl = { class: "hzzt-kfb-label__img flex justify-content-center" }, ql = ["src"], Zl = { class: "ellipsis flex-1" }, Yl = {
844
- class: "flex margin-b-4",
845
- style: { width: "100%" }
846
- }, Xl = {
847
- class: "flex margin overflow-hidden",
848
- style: { height: "132px" }
849
- }, Ql = ["src"], Jl = ["src"], eo = /* @__PURE__ */ J({
850
- __name: "KfbLabel",
851
- props: {
852
- visible: { type: Boolean },
853
- info: {},
854
- slide: {},
855
- pathologyHandle: { type: Function }
856
- },
857
- emits: ["tool"],
858
- setup(u, { emit: e }) {
859
- var n;
860
- const { t: l } = ue(), t = u, w = e, v = T((n = t.visible) != null ? n : !0), r = T(!1), i = B(() => t.slide.pathology_id ? l("修改病理号") : l("绑定病理号"));
861
- function m() {
862
- t.slide.angle || (t.slide.angle = 0), t.slide.angle += 90, t.slide.angle > 360 && (t.slide.angle = t.slide.angle % 360), w("tool", "rotate", t.slide.angle);
863
- }
864
- function g() {
865
- r.value = !0;
866
- }
867
- function h() {
868
- t.pathologyHandle && t.pathologyHandle(t.slide).then(() => {
869
- r.value = !1;
870
- });
871
- }
872
- return (d, c) => (_(), x("div", Gl, [
873
- xe(k("div", { class: "hzzt-kfb-label__title" }, E(o(l)(`点击标签旋转${d.pathologyHandle ? ",点击病理号重绑" : ""}`)), 513), [
874
- [Ae, v.value]
875
- ]),
876
- xe(k("div", Wl, [
877
- k("img", {
878
- src: d.info.labelImg,
879
- style: q({ transform: `rotate(${d.slide.angle}deg)` }),
880
- onClick: m
881
- }, null, 12, ql)
882
- ], 512), [
883
- [Ae, v.value]
884
- ]),
885
- d.pathologyHandle ? xe((_(), x("div", {
886
- key: 0,
887
- class: "hzzt-kfb-label__pathology flex align-items-center justify-content-between",
888
- onClick: g
889
- }, [
890
- k("span", Zl, E(d.slide.pathology_number), 1),
891
- C(Q, {
892
- size: "14",
893
- name: "annotate"
894
- })
895
- ], 512)), [
896
- [Ae, v.value]
897
- ]) : R("", !0),
898
- k("span", {
899
- onClick: c[0] || (c[0] = (a) => v.value = !v.value),
900
- style: q({
901
- transform: `translateY(${v.value ? "-50%" : 0})`
902
- }),
903
- class: "hzzt-kfb-label__expend flex align-items-center justify-content-center"
904
- }, [
905
- v.value ? (_(), H(Q, {
906
- key: 0,
907
- size: "10",
908
- name: "arrowLeft"
909
- })) : (_(), H(Q, {
910
- key: 1,
911
- size: "10",
912
- name: "arrowRight"
913
- }))
914
- ], 4),
915
- C(o(Ge), {
916
- modelValue: r.value,
917
- "onUpdate:modelValue": c[5] || (c[5] = (a) => r.value = a),
918
- "append-to-body": !0,
919
- title: i.value,
920
- width: "450px"
921
- }, {
922
- footer: L(() => [
923
- C(o(_e), {
924
- onClick: c[4] || (c[4] = (a) => r.value = !1)
925
- }, {
926
- default: L(() => [
927
- K(E(o(l)("取消")), 1)
928
- ]),
929
- _: 1
930
- }),
931
- C(o(_e), {
932
- type: "primary",
933
- onClick: h
934
- }, {
935
- default: L(() => [
936
- K(E(o(l)("确认")), 1)
937
- ]),
938
- _: 1
939
- })
940
- ]),
941
- default: L(() => [
942
- k("div", Yl, [
943
- k("div", Xl, [
944
- k("img", {
945
- src: d.slide.labelImg
946
- }, null, 8, Ql),
947
- k("img", {
948
- src: d.slide.previewImg
949
- }, null, 8, Jl)
950
- ])
951
- ]),
952
- C(o(nt), { class: "margin-t-2" }, {
953
- default: L(() => [
954
- C(o(ie), {
955
- label: o(l)("病理号")
956
- }, {
957
- default: L(() => [
958
- C(o(at), {
959
- modelValue: d.slide.pathology_number,
960
- "onUpdate:modelValue": c[1] || (c[1] = (a) => d.slide.pathology_number = a),
961
- placeholder: o(l)("输入病理号"),
962
- clearable: ""
963
- }, null, 8, ["modelValue", "placeholder"])
964
- ]),
965
- _: 1
966
- }, 8, ["label"]),
967
- C(o(ie), {
968
- label: o(l)("蜡块号")
969
- }, {
970
- default: L(() => [
971
- C(o(at), {
972
- modelValue: d.slide.paraffin_block_number,
973
- "onUpdate:modelValue": c[2] || (c[2] = (a) => d.slide.paraffin_block_number = a),
974
- placeholder: o(l)("输入蜡块号"),
975
- clearable: ""
976
- }, null, 8, ["modelValue", "placeholder"])
977
- ]),
978
- _: 1
979
- }, 8, ["label"]),
980
- d.slide.slide_id ? R("", !0) : (_(), H(o(ie), {
981
- key: 0,
982
- label: o(l)("试剂")
983
- }, {
984
- default: L(() => [
985
- C(o(at), {
986
- modelValue: d.slide.reagent,
987
- "onUpdate:modelValue": c[3] || (c[3] = (a) => d.slide.reagent = a),
988
- placeholder: o(l)("输入试剂"),
989
- clearable: ""
990
- }, null, 8, ["modelValue", "placeholder"])
991
- ]),
992
- _: 1
993
- }, 8, ["label"]))
994
- ]),
995
- _: 1
996
- })
997
- ]),
998
- _: 1
999
- }, 8, ["modelValue", "title"])
1000
- ]));
1001
- }
1002
- }), to = /* @__PURE__ */ ge(eo, [["__scopeId", "data-v-e1475ef3"]]);
1003
- function lo(u, e) {
1004
- const l = T(1), t = T(null), w = T(null);
1005
- function v() {
1006
- u.value.viewer.addHandler("canvas-drag", (i) => {
1007
- t.value || (t.value = i.position);
1008
- }), u.value.viewer.addHandler("canvas-drag-end", (i) => {
1009
- if (l.value !== 1) {
1010
- w.value = i.position;
1011
- const m = u.value.viewer.viewport.containerSize.x, g = u.value.viewer.viewport.containerSize.y, h = (w.value.x - t.value.x) / (m * e.value) * (l.value - 1), n = (w.value.y - t.value.y) / (g * e.value) * (l.value - 1), d = u.value.viewer.viewport.getCenter(), c = new Le.Point(d.x - h, d.y - n);
1012
- u.value.viewer.viewport.panTo(c), t.value = null;
1013
- }
1014
- });
1015
- }
1016
- function r({ name: i, value: m }) {
1017
- i === "ratio" && (l.value = m / 1);
1018
- }
1019
- return {
1020
- moveEvent: v,
1021
- fastMove: r
1022
- };
1023
- }
1024
- function oo(u, e, l, t, w) {
1025
- const v = T(void 0), r = T([]);
1026
- ee(() => u.aiLabelList, h);
1027
- function i() {
1028
- l.value.$on(ve.events.EVENT_END_PAINTING, m("add")), l.value.$on(ve.events.EVENT_AREA_MOVE_END, m("move")), l.value.$on(ve.events.EVENT_ADD_POLYGON_POINT, m("add-point")), l.value.$on(ve.events.EVENT_DELETE_POLYGON_POINT, m("delete-point")), l.value.$on(ve.events.EVENT_DELETE_LABEL, m("delete")), l.value.$on(ve.events.EVENT_SELECT_LABEL, (a) => {
1029
- v.value = a, c(), e("tool", "select-label", v.value);
1030
- }), l.value.$on(ve.events.EVENT_CANCEL_SELECT_LABEL, () => {
1031
- v.value = void 0, e("tool", "cancel-select-label", v.value);
1032
- }), m("list")();
1033
- }
1034
- function m(a) {
1035
- return (f) => g(a, f);
1036
- }
1037
- function g(a, f) {
1038
- var b;
1039
- if (a === "add" && f && ((f == null ? void 0 : f.subType) || ((b = f == null ? void 0 : f.__data__) == null ? void 0 : b.subType)) === "voice")
1040
- t(f);
1041
- else
1042
- return u.labelHandle(a, u.slide, f, r.value).then((y) => {
1043
- r.value = y, h();
1044
- }).catch(() => {
1045
- h();
1046
- });
1047
- }
1048
- function h() {
1049
- var a;
1050
- if ((a = l.value) != null && a.initLabelList) {
1051
- const f = [...r.value, ...u.aiLabelList || []];
1052
- f.find(({ id: b }) => {
1053
- var y;
1054
- return b === ((y = v.value) == null ? void 0 : y.id);
1055
- }) || (v.value = void 0), l.value.initLabelList(f);
1056
- }
1057
- }
1058
- function n(a, f) {
1059
- var y, p;
1060
- v.value && (v.value.select = !1, v.value = void 0);
1061
- const b = (l.value.labelList || []).findIndex((s) => s.id === a.id);
1062
- if (b > -1) {
1063
- v.value = (y = l.value.labelList) == null ? void 0 : y[b], v.value.select = !0;
1064
- const s = l.value.area.getCenterPoint(a.region);
1065
- l.value.area.moveToLabel(s), (p = l.value.viewer) != null && p.canvas && l.value.viewer.canvas.focus(), c();
1066
- }
1067
- f && w(f);
1068
- }
1069
- function d(a) {
1070
- return u.labelHandle("add", u.slide, a, r.value).then((f) => {
1071
- r.value = f, h();
1072
- }).catch(() => {
1073
- h();
1074
- });
1075
- }
1076
- function c() {
1077
- var f, b, y, p;
1078
- (((f = v.value) == null ? void 0 : f.subType) || ((y = (b = v.value) == null ? void 0 : b.__data__) == null ? void 0 : y.subType)) === "voice" && ((p = v.value) != null && p.src) && new Audio(v.value.src).play();
1079
- }
1080
- return {
1081
- currentLabel: v,
1082
- localLabelList: r,
1083
- initLabel: i,
1084
- jumpToLabel: n,
1085
- reloadLabelList: h,
1086
- eventHandel: m,
1087
- addHandle: d
1088
- };
1089
- }
1090
- function ao() {
1091
- function u(e, l) {
1092
- e.save(), e.strokeStyle = "rgba(0,0,0,0)", e.miterLimit = 4, e.font = "15px", e.fillStyle = l, 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();
1093
- }
1094
- return {
1095
- drawDot: u
1096
- };
1097
- }
1098
- function no(u, e) {
1099
- const { t: l } = ue(), t = T(!1), w = T();
1100
- let v = null;
1101
- const r = T(!1), i = T(0);
1102
- let m = 0;
1103
- const g = T([]), h = T(void 0);
1104
- let n = !1;
1105
- function d(s, I) {
1106
- s.save(), s.strokeStyle = "rgba(0,0,0,0)", s.miterLimit = 4, s.font = "15px ''", s.fillStyle = I, s.font = " 15px ''", s.scale(0.03125, 0.03125), s.save(), s.font = " 15px ''", s.beginPath(), s.moveTo(515.041727, 670.617766), s.bezierCurveTo(606.625894, 670.617766, 681.137374, 596.113511, 681.137374, 504.52212), s.lineTo(681.137374, 229.350568), s.bezierCurveTo(681.137374, 137.76640100000003, 606.625894, 63.254920999999996, 515.041727, 63.254920999999996), s.bezierCurveTo(423.44311000000005, 63.254920999999996, 348.93885500000005, 137.766401, 348.93885600000004, 229.350568), s.lineTo(348.93885600000004, 504.52212), s.bezierCurveTo(348.93885600000004, 596.113512, 423.44311100000004, 670.617767, 515.041727, 670.617766), s.closePath(), s.fill(), s.stroke(), s.restore(), s.save(), s.font = " 15px ''", s.beginPath(), s.moveTo(801.643237, 874.001665), s.lineTo(558.391759, 874.001665), s.lineTo(558.391759, 828.578057), s.bezierCurveTo(719.899527, 807.264291, 844.993269, 668.7898399999999, 844.993269, 501.55986699999994), s.translate(801.643237, 501.55986699999994), s.rotate(0), s.arc(0, 0, 43.350032, 0, 3.141592653589793, !0), s.rotate(0), s.translate(-801.643237, -501.55986699999994), s.bezierCurveTo(758.2932050000001, 635.684865, 649.166725, 744.811345, 515.0345020000001, 744.811346), s.bezierCurveTo(380.9095040000001, 744.811346, 271.79024900000013, 635.6848659999999, 271.79024900000013, 501.55986699999994), s.translate(228.44021750000013, 501.5664510740879), s.rotate(0), s.arc(0, 0, 43.350032, -15188164315591997e-20, -3.1414407719461273, !0), s.rotate(0), s.translate(-228.44021750000013, -501.5664510740879), s.bezierCurveTo(185.09018600000013, 668.7898389999999, 310.1911530000001, 807.271516, 471.69169500000015, 828.578057), s.lineTo(471.69169500000015, 874.001665), s.lineTo(228.440217, 874.001665), s.translate(228.440217, 917.3516970000001), s.rotate(0), s.arc(0, 0, 43.350032, -1.5707963267948966, 1.5707963267948966, !0), s.rotate(0), s.translate(-228.440217, -917.3516970000001), s.lineTo(801.643237, 960.701729), s.translate(801.643237, 917.3516970000001), s.rotate(0), s.arc(0, 0, 43.350032, 1.5707963267948966, 4.71238898038469, !0), s.rotate(0), s.translate(-801.643237, -917.3516970000001), s.closePath(), s.fill(), s.stroke(), s.restore(), s.restore();
1107
- }
1108
- function c() {
1109
- return $e(this, null, function* () {
1110
- try {
1111
- w.value = yield navigator.mediaDevices.getUserMedia({ audio: !0 }), v = new MediaRecorder(w.value), g.value = [], v.addEventListener("dataavailable", (s) => {
1112
- g.value.push(s.data);
1113
- }), v.addEventListener("stop", () => $e(this, null, function* () {
1114
- if (h.value) {
1115
- const s = new Blob(g.value, { type: u.audioType || "audio/wav" });
1116
- h.value.src = URL.createObjectURL(s);
1117
- }
1118
- r.value = !1, n && (yield p());
1119
- })), v.start(), r.value = !0, m = window.setInterval(() => {
1120
- i.value++;
1121
- }, 1e3);
1122
- } catch (s) {
1123
- Lt.error(l("麦克风启用失败,请确认是否开启麦克风权限"));
1124
- }
1125
- });
1126
- }
1127
- function a() {
1128
- w.value && v ? (v.stop(), w.value.getTracks().forEach((s) => s.stop()), v = null, w.value = void 0) : (v = null, w.value = void 0), r.value = !1, m && (clearInterval(m), m = 0), i.value = 0;
1129
- }
1130
- function f(s) {
1131
- t.value = !0, h.value = s, g.value = [], n = !1;
1132
- }
1133
- function b() {
1134
- r.value && a(), t.value = !1, r.value = !1, n = !1;
1135
- }
1136
- function y() {
1137
- return $e(this, null, function* () {
1138
- if (!r.value && !g.value.length) {
1139
- Lt.error(l("请先录音"));
1140
- return;
1141
- }
1142
- r.value && a(), r.value = !1, n = !0, g.value.length && (yield p()), t.value = !1;
1143
- });
1144
- }
1145
- function p() {
1146
- return $e(this, null, function* () {
1147
- if (u.uploadHandle && h.value) {
1148
- const s = Et.service({
1149
- text: l("录音上传中")
1150
- }), I = new Blob(g.value, { type: u.audioType || "audio/wav" });
1151
- g.value = [];
1152
- try {
1153
- yield u.uploadHandle(u.slide, h.value, I).then((N) => {
1154
- h.value.src = N;
1155
- }), s.close(), e(h.value);
1156
- } catch (N) {
1157
- s.close();
1158
- }
1159
- }
1160
- });
1161
- }
1162
- return {
1163
- voiceVisible: t,
1164
- voiceForm: h,
1165
- recordTime: i,
1166
- isRecording: r,
1167
- drawVoice: d,
1168
- startRecording: c,
1169
- stopRecording: a,
1170
- initVoice: f,
1171
- cancelRecord: b,
1172
- confirmRecord: y
1173
- };
1174
- }
1175
- function so(u, e, l) {
1176
- const t = T([]), w = T(0), v = T(!1);
1177
- let r = null;
1178
- ee(() => {
1179
- var c;
1180
- return (c = u.analysis) == null ? void 0 : c.hotmap_path;
1181
- }, (c) => {
1182
- var a, f, b;
1183
- if ((f = (a = e.value) == null ? void 0 : a.viewer) != null && f.world) {
1184
- w.value = 0;
1185
- const y = e.value.viewer.world.getItemAt(0);
1186
- y && (y.tilesMatrix = {}, y.draw());
1187
- }
1188
- c && ((b = u.analysis) != null && b.zoom_roi) && l({
1189
- x: u.analysis.zoom_roi.x,
1190
- y: u.analysis.zoom_roi.y,
1191
- width: u.analysis.zoom_roi.w,
1192
- height: u.analysis.zoom_roi.h
1193
- }, 5);
1194
- }), he(() => {
1195
- window.addEventListener("mousemove", g), window.addEventListener("mouseup", n);
1196
- }), Ie(() => {
1197
- window.removeEventListener("mousemove", g), window.removeEventListener("mouseup", n);
1198
- });
1199
- function i(c, a, f) {
1200
- var y, p, s, I;
1201
- const b = we(W({}, a), {
1202
- file: (y = u.analysis) == null ? void 0 : y.hotmap_path
1203
- });
1204
- if ((p = u.analysis) != null && p.hotmap_info) {
1205
- if (f[a.x + "_" + a.y + "_" + Number(a.scale)])
1206
- if (((s = u.analysis) == null ? void 0 : s.hotmap_type) === "drag")
1207
- m(c, b);
1208
- else
1209
- return u.tileHandle(b);
1210
- } else if (((I = u.analysis) == null ? void 0 : I.hotmap_type) === "drag")
1211
- m(c, b);
1212
- else
1213
- return u.tileHandle(b);
1214
- return c;
1215
- }
1216
- function m(c, a) {
1217
- const f = t.value.find((b) => b.url === c) || {
1218
- url: c,
1219
- x: a.x,
1220
- y: a.y,
1221
- img: void 0,
1222
- load: ""
1223
- };
1224
- if (!(f != null && f.img) && (t.value.push(f), f.load !== "success")) {
1225
- const b = new Image();
1226
- b.src = u.tileHandle(a), b.onload = () => {
1227
- f.load = "success";
1228
- }, f.img = b;
1229
- }
1230
- }
1231
- function g(c) {
1232
- v.value && r && (w.value += c.x - r.x, w.value < 0 ? w.value = 0 : w.value > e.value.$options.width && (w.value = e.value.$options.width, v.value = !1), e.value.viewer.forceRedraw()), r = { x: c.x, y: c.y };
1233
- }
1234
- function h(c) {
1235
- const { x: a, y: f } = c;
1236
- v.value = !0, r = { x: a, y: f };
1237
- }
1238
- function n() {
1239
- v.value = !1, r = null;
1240
- }
1241
- function d(c) {
1242
- const {
1243
- context: a,
1244
- sourceWidth: f,
1245
- sourceHeight: b,
1246
- position: y,
1247
- size: p,
1248
- initRendered: s,
1249
- tile: I,
1250
- pixelDensityRatio: N
1251
- } = c, P = I.getUrl(), te = w.value * N, ne = y.original.x;
1252
- if (ne < te && ne + p.x > te) {
1253
- const j = te - ne, re = p.x - j, le = t.value.find((Se) => Se.url === P), Me = (le == null ? void 0 : le.load) === "success" ? le.img : s.canvas;
1254
- a.drawImage(
1255
- Me,
1256
- 0,
1257
- 0,
1258
- f * j / p.x,
1259
- b,
1260
- y.x,
1261
- y.y,
1262
- j,
1263
- p.y
1264
- ), a.drawImage(
1265
- s.canvas,
1266
- f * j / p.x,
1267
- 0,
1268
- f * re / p.x,
1269
- b,
1270
- y.x + j,
1271
- y.y,
1272
- re,
1273
- p.y
1274
- );
1275
- } else if (ne + p.x <= te) {
1276
- const j = t.value.find((le) => le.url === P), re = (j == null ? void 0 : j.load) === "success" ? j.img : s.canvas;
1277
- a.drawImage(
1278
- re,
1279
- 0,
1280
- 0,
1281
- f,
1282
- b,
1283
- y.x,
1284
- y.y,
1285
- p.x,
1286
- p.y
1287
- );
1288
- } else ne >= te && a.drawImage(
1289
- s.canvas,
1290
- 0,
1291
- 0,
1292
- f,
1293
- b,
1294
- y.x,
1295
- y.y,
1296
- p.x,
1297
- p.y
1298
- );
1299
- }
1300
- return {
1301
- getHotmapUrl: i,
1302
- hotmapImgs: t,
1303
- handlerImage: d,
1304
- hotmapLine: w,
1305
- lineMouseDown: h
1306
- };
1307
- }
1308
- function io(u, e, l) {
1309
- const t = sl(), w = T(!1), v = new BroadcastChannel("sync_kfb_view");
1310
- v.onmessage = (n) => {
1311
- const d = n.data;
1312
- g(d);
1313
- }, he(() => {
1314
- var n, d, c;
1315
- (n = l.value) == null || n.addEventListener("mouseenter", r), (d = l.value) == null || d.addEventListener("mousemove", r), (c = l.value) == null || c.addEventListener("mouseleave", i);
1316
- }), Ie(() => {
1317
- var n, d, c;
1318
- (n = l.value) == null || n.removeEventListener("mouseenter", r), (d = l.value) == null || d.removeEventListener("mousemove", r), (c = l.value) == null || c.removeEventListener("mouseleave", i), v.close();
1319
- });
1320
- function r() {
1321
- w.value = !0;
1322
- }
1323
- function i() {
1324
- w.value = !1;
1325
- }
1326
- function m() {
1327
- let n;
1328
- e.value.viewer.addHandler("pan", (d) => {
1329
- var f, b, y, p;
1330
- if (!n) {
1331
- n = (b = (f = d.center) == null ? void 0 : f.clone) == null ? void 0 : b.call(f);
1332
- return;
1333
- }
1334
- const c = d.center, a = (y = c == null ? void 0 : c.minus) == null ? void 0 : y.call(c, n);
1335
- n = (p = c == null ? void 0 : c.clone) == null ? void 0 : p.call(c), u.syncPosition && h({
1336
- position: a,
1337
- type: "sync_position"
1338
- });
1339
- }), e.value.viewer.addHandler("zoom", (d) => {
1340
- u.syncZoom && h({
1341
- zoom: d.zoom,
1342
- type: "sync_zoom"
1343
- });
1344
- }), e.value.viewer.addHandler("animation-finish", () => {
1345
- var a;
1346
- if (u.syncZoom && h({
1347
- zoom: e.value.viewer.viewport.getZoom(!0),
1348
- type: "sync_zoom"
1349
- }), !n)
1350
- return;
1351
- const d = e.value.viewer.viewport.getCenter(!0), c = (a = d == null ? void 0 : d.minus) == null ? void 0 : a.call(d, n);
1352
- n = void 0, u.syncPosition && h({
1353
- position: c,
1354
- type: "sync_position"
1355
- });
1356
- });
1357
- }
1358
- function g(n) {
1359
- 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);
1360
- }
1361
- function h(n) {
1362
- var d;
1363
- w.value && v.postMessage(we(W({}, n), {
1364
- uuid: t == null ? void 0 : t.uid,
1365
- fileName: (d = u.slide) == null ? void 0 : d.file
1366
- }));
1367
- }
1368
- return {
1369
- initSync: m
1370
- };
1371
- }
1372
- const ro = { class: "hzzt-kfb-keyword flex wrap" }, uo = ["onMouseenter"], co = /* @__PURE__ */ J({
1373
- __name: "KfbKeyword",
1374
- setup(u) {
1375
- const e = T([
1376
- { code: "Q", icon: "zoomIn" },
1377
- { code: "W", icon: "arrowUp" },
1378
- { code: "E", icon: "zoomOut" },
1379
- { code: "A", icon: "arrowLeft" },
1380
- { code: "S", icon: "arrowDown" },
1381
- { code: "D", icon: "arrowRight" }
1382
- ]), l = Z("kfbView", T({}));
1383
- let t = null;
1384
- function w(r, i) {
1385
- r.preventDefault(), t && clearTimeout(t), t = setInterval(() => {
1386
- i === "E" && (l.value.viewer.viewport.zoomBy(1.1), l.value.viewer.viewport.applyConstraints()), i === "Q" && (l.value.viewer.viewport.zoomBy(0.9), l.value.viewer.viewport.applyConstraints()), i === "W" && (l.value.viewer.viewport.panBy(l.value.viewer.viewport.deltaPointsFromPixels(new Le.Point(0, -40))), l.value.viewer.viewport.applyConstraints()), i === "S" && (l.value.viewer.viewport.panBy(l.value.viewer.viewport.deltaPointsFromPixels(new Le.Point(0, 40))), l.value.viewer.viewport.applyConstraints()), i === "A" && (l.value.viewer.viewport.panBy(l.value.viewer.viewport.deltaPointsFromPixels(new Le.Point(-40, 0))), l.value.viewer.viewport.applyConstraints()), i === "D" && (l.value.viewer.viewport.panBy(l.value.viewer.viewport.deltaPointsFromPixels(new Le.Point(40, 0))), l.value.viewer.viewport.applyConstraints());
1387
- }, 120);
1388
- }
1389
- function v() {
1390
- t && (clearInterval(t), t = null);
1391
- }
1392
- return Ie(() => {
1393
- clearTimeout(t);
1394
- }), (r, i) => (_(), x("div", ro, [
1395
- (_(!0), x(oe, null, ae(e.value, (m) => (_(), x("div", {
1396
- key: m.code,
1397
- class: "hzzt-kfb-keyword__code flex column align-items-center justify-content-center",
1398
- onMouseenter: (g) => w(g, m.code),
1399
- onMouseleave: v
1400
- }, [
1401
- k("p", null, E(m.code), 1),
1402
- C(Q, {
1403
- size: "14",
1404
- name: m.icon
1405
- }, null, 8, ["name"])
1406
- ], 40, uo))), 128))
1407
- ]));
1408
- }
1409
- }), vo = /* @__PURE__ */ ge(co, [["__scopeId", "data-v-c8d940f0"]]);
1410
- function fo(u, e, l = {}) {
1411
- const {
1412
- panSensitivity: t = 0.2,
1413
- // 值越大,鼠标移动时图像移动越快
1414
- zoomSensitivity: w = 1.1,
1415
- // 值越大,滚轮缩放幅度越大
1416
- damping: v = 0.6,
1417
- // 值越大,惯性滑动时间越长
1418
- minThreshold: r = 0.05
1419
- // 值越小,停止移动时的精度越高
1420
- } = l;
1421
- let i = !1, m = null, g = 0, h = 0, n = !1;
1422
- const d = () => {
1423
- i = document.pointerLockElement === e.value, i || c();
1424
- }, c = () => {
1425
- g = 0, h = 0, m && (cancelAnimationFrame(m), m = null), n = !1;
1426
- }, a = (s) => $e(this, null, function* () {
1427
- try {
1428
- s.key === "l" && e.value && (document.pointerLockElement ? (document.exitPointerLock(), console.log("鼠标已解锁!")) : (yield e.value.requestPointerLock(), console.log("鼠标已锁定!")));
1429
- } catch (I) {
1430
- console.error("无法锁定鼠标:", I);
1431
- }
1432
- }), f = (s) => {
1433
- if (i) {
1434
- s.preventDefault();
1435
- const I = Math.pow(w, Math.sign(s.deltaY) * -1);
1436
- u.value.viewer.viewport.zoomBy(I), u.value.viewer.viewport.applyConstraints();
1437
- }
1438
- }, b = (s) => {
1439
- i && (g += s.movementX * t, h += s.movementY * t, !n && (Math.abs(g) > 1 || Math.abs(h) > 1) && (n = !0, m = requestAnimationFrame(y)));
1440
- }, y = () => {
1441
- const s = u.value.viewer.viewport;
1442
- if (Math.abs(g) > r || Math.abs(h) > r) {
1443
- const I = s.deltaPointsFromPixels(
1444
- new Le.Point(g, h)
1445
- );
1446
- s.panBy(I), s.applyConstraints();
1447
- }
1448
- g *= v, h *= v, Math.abs(g) > r || Math.abs(h) > r ? m = requestAnimationFrame(y) : c();
1449
- }, p = () => {
1450
- i && document.exitPointerLock();
1451
- };
1452
- return he(() => {
1453
- var s;
1454
- (s = e.value) == null || s.addEventListener("keydown", a), document.addEventListener("wheel", f, { passive: !1 }), document.addEventListener("click", p), document.addEventListener("mousemove", b), document.addEventListener("pointerlockchange", d);
1455
- }), Ie(() => {
1456
- var s;
1457
- (s = e.value) == null || s.removeEventListener("keydown", a), document.removeEventListener("click", p), document.removeEventListener("wheel", f), document.removeEventListener("mousemove", b), document.removeEventListener("pointerlockchange", d), c();
1458
- }), {
1459
- setConfig: (s) => {
1460
- Object.assign(l, s);
1461
- }
1462
- };
1463
- }
1464
- const mo = /* @__PURE__ */ J({
1465
- __name: "KfbLevel",
1466
- props: /* @__PURE__ */ be({
1467
- slides: { default: () => [] }
1468
- }, {
1469
- "model-value": {
1470
- default: 0
1471
- },
1472
- "model-valueModifiers": {}
1473
- }),
1474
- emits: ["update:model-value"],
1475
- setup(u) {
1476
- const e = u, l = Be(u, "model-value"), t = Z("kfbView", T({})), w = B(() => Array.from(new Array(e.slides.length + 1)).map((r, i) => i));
1477
- function v() {
1478
- const r = t.value.viewer.world.getItemAt(0), i = Object.keys(r.tilesMatrix);
1479
- i.forEach((m, g) => {
1480
- g > i.length - 4 && (r.tilesMatrix[m] = {});
1481
- }), r.draw();
1482
- }
1483
- return (r, i) => (_(), x("div", {
1484
- class: ke(["hzzt-kfb-level flex column align-items-center", r.slides.length > 5 ? "hzzt-kfb-level--large" : ""])
1485
- }, [
1486
- C(Q, {
1487
- name: "level",
1488
- size: "24",
1489
- class: "margin-b-4 margin-t-2"
1490
- }),
1491
- C(o(cl), {
1492
- modelValue: l.value,
1493
- "onUpdate:modelValue": i[0] || (i[0] = (m) => l.value = m),
1494
- vertical: "",
1495
- min: w.value[0],
1496
- step: 1,
1497
- max: w.value[w.value.length - 1],
1498
- "show-stops": "",
1499
- "show-tooltip": !0,
1500
- placement: "left",
1501
- height: r.slides.length > 5 ? "180px" : "130px",
1502
- onInput: v
1503
- }, null, 8, ["modelValue", "min", "max", "height"])
1504
- ], 2));
1505
- }
1506
- }), po = {
1507
- key: 0,
1508
- class: "flex hzzt-kfb-channel"
1509
- }, ho = ["onClick"], go = /* @__PURE__ */ J({
1510
- __name: "KfbChannel",
1511
- props: /* @__PURE__ */ be({
1512
- info: {}
1513
- }, {
1514
- "model-value": {
1515
- default: () => []
1516
- },
1517
- "model-valueModifiers": {}
1518
- }),
1519
- emits: /* @__PURE__ */ be(["load"], ["update:model-value"]),
1520
- setup(u, { emit: e }) {
1521
- const l = u, t = e, w = Be(u, "model-value"), v = [
1522
- { key: "DAPI", color: "#4A6CF7" },
1523
- { key: "480", color: "#00BFFF" },
1524
- { key: "520", color: "#32CD32" },
1525
- { key: "570", color: "#FFAA33" },
1526
- { key: "620", color: "#FF6347" },
1527
- { key: "670", color: "#DC143C" },
1528
- { key: "780", color: "#4B0082" }
1529
- ], r = B(() => {
1530
- var m;
1531
- return (((m = l.info) == null ? void 0 : m.channel) || []).map((g) => {
1532
- const h = v.find((n) => n.key === g.eqt_num);
1533
- return {
1534
- label: g.eqt_num,
1535
- color: g.r ? `rgb(${g.r}, ${g.g}, ${g.b})` : h == null ? void 0 : h.color
1536
- };
1537
- });
1538
- });
1539
- function i(m) {
1540
- w.value.includes(m) ? w.value = w.value.filter((g) => g !== m) : w.value.push(m), t("load");
1541
- }
1542
- return (m, g) => r.value.length > 0 ? (_(), x("div", po, [
1543
- C(Q, {
1544
- name: "channel",
1545
- size: "32"
1546
- }),
1547
- (_(!0), x(oe, null, ae(r.value, (h) => (_(), x("div", {
1548
- key: h.label,
1549
- style: q({ background: h.color }),
1550
- class: ke(["hzzt-kfb-channel__box", w.value.includes(h.label) ? "" : "hzzt-kfb-channel__box--unactive"]),
1551
- onClick: (n) => i(h.label)
1552
- }, E(h.label), 15, ho))), 128))
1553
- ])) : R("", !0);
1554
- }
1555
- }), yo = { class: "flex align-items-center justify-content-between" }, wo = { class: "hzzt-kfb-title" }, _o = { class: "hzzt-kfb-annotation__container flex-1" }, bo = ["onClick"], ko = /* @__PURE__ */ J({
1556
- __name: "KfbAnnotation",
1557
- props: /* @__PURE__ */ be({
1558
- annotation: {},
1559
- annotations: {}
1560
- }, {
1561
- expand: { type: Boolean },
1562
- expandModifiers: {}
1563
- }),
1564
- emits: /* @__PURE__ */ be(["select"], ["update:expand"]),
1565
- setup(u, { emit: e }) {
1566
- const l = Be(u, "expand"), t = e, { t: w } = ue();
1567
- function v(i) {
1568
- const m = i.subType || i.tool || "";
1569
- return `mark${m.substring(0, 1).toLocaleUpperCase()}${m.substring(1)}`;
1570
- }
1571
- function r(i) {
1572
- t("select", i);
1573
- }
1574
- return (i, m) => (_(), x("div", {
1575
- class: ke(["hzzt-kfb-annotation flex column", l.value ? "hzzt-kfb-annotation--expand" : ""])
1576
- }, [
1577
- k("div", yo, [
1578
- xe(k("div", wo, [
1579
- k("span", null, E(o(w)("标注列表")), 1)
1580
- ], 512), [
1581
- [Ae, l.value]
1582
- ]),
1583
- C(Q, {
1584
- class: "hzzt-kfb-annotation__icon",
1585
- name: l.value ? "expandLeft" : "expandRight",
1586
- onClick: m[0] || (m[0] = (g) => l.value = !l.value)
1587
- }, null, 8, ["name"])
1588
- ]),
1589
- xe(k("div", _o, [
1590
- (_(!0), x(oe, null, ae(i.annotations, (g, h) => {
1591
- var n;
1592
- return _(), x("div", {
1593
- class: ke(["hzzt-kfb-annotation__item", ((n = i.annotation) == null ? void 0 : n.id) === g.id ? "hzzt-kfb-annotation__item--active" : ""]),
1594
- key: h,
1595
- onClick: (d) => r(g)
1596
- }, [
1597
- C(Q, {
1598
- size: "16",
1599
- name: v(g)
1600
- }, null, 8, ["name"]),
1601
- k("span", null, E(o(w)("标注")) + E(h + 1), 1)
1602
- ], 10, bo);
1603
- }), 128))
1604
- ], 512), [
1605
- [Ae, l.value]
1606
- ])
1607
- ], 2));
1608
- }
1609
- }), zo = /* @__PURE__ */ ge(ko, [["__scopeId", "data-v-bfc56a3e"]]);
1610
- function St(u) {
1611
- const { t: e } = ue();
1612
- return B(() => {
1613
- var w;
1614
- const t = ((w = u == null ? void 0 : u.analysis) == null ? void 0 : w.result) || "";
1615
- return t.indexOf("疑似阳性") > -1 ? {
1616
- type: "warning",
1617
- name: t
1618
- } : t.indexOf("阳性") > -1 ? {
1619
- type: "danger",
1620
- name: t
1621
- } : t.indexOf("阴性") > -1 ? {
1622
- type: "success",
1623
- name: t
1624
- } : t.indexOf("不合格") > -1 ? {
1625
- type: "danger",
1626
- name: t
1627
- } : t.indexOf("合格") > -1 ? {
1628
- type: "success",
1629
- name: t
1630
- } : {
1631
- type: "info",
1632
- name: t || e("未知")
1633
- };
1634
- });
1635
- }
1636
- const Co = ["element-loading-text"], $o = {
1637
- key: 1,
1638
- class: "hzzt-kfb-view__main flex align-items-center justify-content-center"
1639
- }, To = {
1640
- class: "hzzt-kfb-view__filter",
1641
- height: "0",
1642
- width: "0"
1643
- }, Lo = { id: "colorMatrixFilter" }, xo = ["values"], Eo = ["values"], Vo = ["exponent"], Io = ["exponent"], Mo = ["exponent"], So = { class: "flex nowrap justify-content-center overflow-hidden" }, Ho = ["src"], Po = ["src"], Ro = { class: "flex-1" }, Ao = { class: "flex-1" }, No = { class: "flex-1" }, Bo = { class: "flex-1" }, Do = { class: "flex-1" }, Uo = { class: "flex-1" }, Fo = ["src"], Ko = {
1644
- key: 2,
1645
- class: "margin-l-2"
1646
- }, jo = {
1647
- key: 9,
1648
- class: "hzzt-kfb-view__watermark"
1649
- }, Ne = /* @__PURE__ */ J({
1650
- name: "HzztKfbView",
1651
- __name: "index",
1652
- props: {
1653
- slide: {},
1654
- fileHandle: {},
1655
- labelHandle: {},
1656
- tileHandle: {},
1657
- navigatorHandle: {},
1658
- pathologyHandle: {},
1659
- uploadHandle: {},
1660
- options: {},
1661
- labelDrawing: {},
1662
- process: { default: () => W({}, Mt) },
1663
- microscope: { default: () => W({}, st) },
1664
- menus: {},
1665
- syncPosition: { type: Boolean },
1666
- syncZoom: { type: Boolean },
1667
- audioType: {},
1668
- watermark: {},
1669
- analysis: {},
1670
- aiLabelList: {},
1671
- showLabel: { type: Boolean }
1672
- },
1673
- emits: ["tool"],
1674
- setup(u, { expose: e, emit: l }) {
1675
- il((z) => ({
1676
- e3fd940a: ne.value
1677
- }));
1678
- const t = u, w = l, { t: v, locale: r } = ue(), i = T(), m = T(), g = T(), h = T(!1), n = T({}), d = T(!1), c = T(0), a = T(0), f = T(0), b = T([]), y = T({
1679
- width: 0,
1680
- height: 0,
1681
- fileNum: 0,
1682
- scanScale: 1,
1683
- fileName: "",
1684
- ratiomap: {}
1685
- }), p = Z("show-kfb-label", T(!0)), s = Z("show-keyboard", T(!1)), I = Z("show-watermark", T(!1)), N = T(!1), P = Et.directive;
1686
- ee(() => {
1687
- var z;
1688
- return (z = t.slide) == null ? void 0 : z.file;
1689
- }, () => {
1690
- Wt(), setTimeout(() => {
1691
- ft();
1692
- }, 100);
1693
- }), he(() => {
1694
- ft();
1695
- });
1696
- const te = St(t), ne = B(() => {
1697
- var z, V;
1698
- return `url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='150' height='100'><text x='30' y='80' font-family='Arial' font-size='16' fill='${((z = t.watermark) == null ? void 0 : z.color) || "rgba(0,0,0,0.2)"}' transform='rotate(-30)' text-anchor='middle'>${((V = t.watermark) == null ? void 0 : V.text) || "水印文字"}</text></svg>")`;
1699
- }), {
1700
- imageProcess: j,
1701
- matrixValues: re,
1702
- saturateValues: le,
1703
- forceRedraw: Me
1704
- } = Il(t), {
1705
- tailorEvent: Se,
1706
- shotScreen: ye
1707
- } = Ml(w, n), {
1708
- moveEvent: De,
1709
- fastMove: Ye
1710
- } = lo(n, a), { initSync: Xe } = io(t, n, i);
1711
- fo(n, i);
1712
- const { drawDot: Qe } = ao(), {
1713
- voiceVisible: He,
1714
- voiceForm: Pe,
1715
- drawVoice: Je,
1716
- recordTime: $,
1717
- isRecording: A,
1718
- startRecording: F,
1719
- stopRecording: ce,
1720
- initVoice: ut,
1721
- cancelRecord: Ht,
1722
- confirmRecord: Pt
1723
- } = no(t, Dt), {
1724
- currentLabel: et,
1725
- localLabelList: ct,
1726
- initLabel: Rt,
1727
- jumpToLabel: dt,
1728
- reloadLabelList: At,
1729
- eventHandel: Nt,
1730
- addHandle: Bt
1731
- } = oo(t, w, n, ut, tt);
1732
- function Dt(z) {
1733
- Bt(z);
1734
- }
1735
- const {
1736
- getHotmapUrl: Ut,
1737
- handlerImage: Ft,
1738
- hotmapLine: Kt,
1739
- lineMouseDown: vt,
1740
- hotmapImgs: jt
1741
- } = so(t, n, lt);
1742
- function ft() {
1743
- var z;
1744
- (z = t.slide) != null && z.file && t.fileHandle && (d.value || (d.value = !0, t.fileHandle(t.slide).then((V) => {
1745
- var Y, se, me, O;
1746
- y.value = V, b.value = (((Y = y.value) == null ? void 0 : Y.channel) || []).map((U) => U.eqt_num), n.value = new ve(W({
1747
- el: m.value,
1748
- fileName: (se = t.slide) == null ? void 0 : se.file,
1749
- scale: y.value.scanScale,
1750
- lang: (r == null ? void 0 : r.value) === "en-US" ? "en" : r == null ? void 0 : r.value,
1751
- navigator: {
1752
- style: "left: 0;bottom: 0",
1753
- thumbnail: y.value.thumbnailImg,
1754
- width: 200,
1755
- height: 180
1756
- },
1757
- grid: {
1758
- show: !1,
1759
- ruler: !1,
1760
- pxConversion: !0
1761
- },
1762
- thumb: {
1763
- bgColor: "rgba(0,0,0,0)"
1764
- },
1765
- graduation: {
1766
- show: !0,
1767
- right: 120,
1768
- bottom: (O = (me = y.value) == null ? void 0 : me.channel) != null && O.length ? 120 : 30,
1769
- tick: {
1770
- number: 3,
1771
- height: 8
1772
- }
1773
- },
1774
- pxConversion: {
1775
- units: ["um", "mm"],
1776
- binary: 1e3,
1777
- imageCapRes: y.value.imageCapRes || y.value.scanResolution || 1
1778
- },
1779
- openSeadragonOptions: {
1780
- maxZoomLevel: y.value.scanScale * 20,
1781
- pixelsPerArrowPress: 200,
1782
- animationTime: 0,
1783
- tileSources: mt()
1784
- },
1785
- tileDrawing: Ft,
1786
- label: {
1787
- drawing: (U, D, Ce) => {
1788
- var Ue;
1789
- if (D != null && D.custom) {
1790
- const X = U.getContext("2d");
1791
- X.save(), X.beginPath();
1792
- const Re = (D == null ? void 0 : D.subType) || ((Ue = D == null ? void 0 : D.__data__) == null ? void 0 : Ue.subType);
1793
- Re === "count" ? (X.translate(Ce.x - 14, Ce.y - 22), Qe(X, (D == null ? void 0 : D.strokeStyle) || "")) : Re === "voice" ? (X.translate(Ce.x - 16, Ce.y - 18), Je(X, (D == null ? void 0 : D.strokeStyle) || "")) : t.labelDrawing && t.labelDrawing(X, D), X.restore();
1794
- }
1795
- }
1796
- }
1797
- }, t.options || {})), n.value.viewer.drawer.canvas.style.filter = "url(#colorMatrixFilter)", Rt(), Gt(), Xe(), setTimeout(() => {
1798
- var U, D;
1799
- (U = t.analysis) != null && U.hotmap_path && ((D = t.analysis) != null && D.zoom_roi) && lt({
1800
- x: t.analysis.zoom_roi.x,
1801
- y: t.analysis.zoom_roi.y,
1802
- width: t.analysis.zoom_roi.w,
1803
- height: t.analysis.zoom_roi.h
1804
- }, 5);
1805
- }, 200);
1806
- }).finally(() => {
1807
- d.value = !1, p.value || (yt({
1808
- show: !1,
1809
- ruler: !1
1810
- }), wt({
1811
- show: !1
1812
- }), setTimeout(() => {
1813
- _t(!1);
1814
- }, 100));
1815
- })));
1816
- }
1817
- function Ot() {
1818
- const z = n.value.viewer;
1819
- if (z.world) {
1820
- const V = z.world.getItemAt(0), Y = z.viewport.getZoom(), se = z.viewport.getCenter();
1821
- z.world.removeItem(V), z.addTiledImage({
1822
- tileSource: mt(),
1823
- success: function() {
1824
- z.viewport.zoomTo(Y), z.viewport.panTo(se);
1825
- }
1826
- });
1827
- }
1828
- }
1829
- function mt() {
1830
- var me, O;
1831
- const z = y.value.tileWidth || y.value.imageBlockLen || 256, V = y.value.tileHeight || y.value.imageBlockLen || 256, Y = {};
1832
- (me = t.analysis) != null && me.hotmap_path && (((O = t.analysis) == null ? void 0 : O.hotmap_info) || []).forEach((U) => {
1833
- Y[U[0] / z + "_" + U[1] / V + "_" + U[2]] = !0;
1834
- });
1835
- let se = 10;
1836
- return Object.keys(y.value.ratiomap).forEach((U) => {
1837
- const D = y.value.fileNum - Math.sqrt(y.value.scanScale / Number(U));
1838
- D > 0 && (se = se ? Math.min(se, D) : D);
1839
- }), {
1840
- height: y.value.height,
1841
- width: y.value.width,
1842
- tileWidth: z,
1843
- tileHeight: V,
1844
- minLevel: Math.floor(se || 8),
1845
- getTileUrl: (U, D, Ce) => {
1846
- var bt, kt, zt, Ct;
1847
- const Ue = U, X = {
1848
- file: ((bt = t.slide) == null ? void 0 : bt.file) || "",
1849
- x: D,
1850
- y: Ce,
1851
- scale: "0",
1852
- level: U,
1853
- channel: JSON.stringify(b.value)
1854
- };
1855
- y.value.fileNum === U ? (U = y.value.scanScale, X.scale = U.toFixed(6)) : (U = y.value.scanScale / Math.pow(2, y.value.fileNum - U), X.scale = U.toFixed(6)), X.level = Ue, X.file = f.value === 0 ? X.file : ((zt = (kt = t.slide) == null ? void 0 : kt.children) == null ? void 0 : zt[f.value - 1]) || "";
1856
- const Re = t.tileHandle(X);
1857
- return (Ct = t.analysis) != null && Ct.hotmap_path ? Ut(Re, X, Y) : Re;
1858
- }
1859
- };
1860
- }
1861
- function Gt() {
1862
- n.value.viewer.addHandler("rotate", (z) => {
1863
- c.value = z.degrees || 0;
1864
- }), n.value.viewer.addHandler("zoom", (z) => {
1865
- const V = n.value.viewer.viewport.viewportToImageZoom(
1866
- z.zoom || 0
1867
- ) * Number(n.value.$options.scale);
1868
- a.value = Number(V.toFixed(2));
1869
- }), n.value.$on(ve.events.EVENT_NAVIGATOR_VESTIGE, (z) => {
1870
- t.navigatorHandle && t.navigatorHandle("add", t.slide, z);
1871
- }), t.navigatorHandle && t.navigatorHandle("list", t.slide).then((z) => {
1872
- var V, Y;
1873
- (Y = (V = n.value.navigator) == null ? void 0 : V.drawPointList) == null || Y.call(V, z);
1874
- }), Se(), De();
1875
- }
1876
- function Wt() {
1877
- var z;
1878
- (z = n.value) != null && z.destroy && (n.value.destroy(), n.value = {}, y.value = {
1879
- width: 0,
1880
- height: 0,
1881
- fileNum: 0,
1882
- scanScale: 1,
1883
- fileName: "",
1884
- ratiomap: {}
1885
- }, jt.value = [], b.value = [], a.value = 0, c.value = 0, f.value = 0);
1886
- }
1887
- function pt(z, V) {
1888
- z === "annotate" ? ht(V) : z === "tailor" ? ye(V) : z === "info" ? h.value = !0 : z === "flip" ? gt() : z === "delete" ? Nt("delete")(et.value) : w("tool", z, V);
1889
- }
1890
- function ht(z) {
1891
- z.tool === "Voice" && (z.subType = "voice", z.tool = "Dot", z.custom = !0), n.value.board.startDraw(z);
1892
- }
1893
- function qt() {
1894
- n.value.board.endDraw();
1895
- }
1896
- function gt() {
1897
- n.value.viewer.viewport.toggleFlip();
1898
- }
1899
- function Zt(z) {
1900
- var V, Y;
1901
- (Y = (V = g.value) == null ? void 0 : V.scopeChange) == null || Y.call(V, z);
1902
- }
1903
- function Yt() {
1904
- h.value = !0;
1905
- }
1906
- function yt(z) {
1907
- var V;
1908
- (V = n.value) != null && V.grid && n.value.grid.updated(z);
1909
- }
1910
- function wt(z) {
1911
- var V;
1912
- (V = n.value) != null && V.graduation && n.value.graduation.updated(z);
1913
- }
1914
- function _t(z) {
1915
- var V;
1916
- (V = n.value) != null && V.navigator && (n.value.navigator.element.style.display = z ? "flex" : "none");
1917
- }
1918
- function tt(z) {
1919
- const V = n.value.viewer.viewport.imageToViewportZoom(Number(z / n.value.$options.scale));
1920
- n.value.viewer.viewport.zoomTo(V);
1921
- }
1922
- function lt(z, V) {
1923
- n.value.area && (n.value.area.moveToLabel(n.value.viewer.viewport.imageToViewportCoordinates(
1924
- z.x + z.width / 2,
1925
- z.y + z.height / 2
1926
- )), tt(V));
1927
- }
1928
- return de("kfbView", n), de("currentLabel", et), e({
1929
- kfbView: n,
1930
- degrees: c,
1931
- zoom: a,
1932
- forceRedraw: Me,
1933
- toggleFlip: gt,
1934
- startDraw: ht,
1935
- endDraw: qt,
1936
- shotScreen: ye,
1937
- info: Yt,
1938
- scopeChange: Zt,
1939
- updateGrid: yt,
1940
- updateGraduation: wt,
1941
- updateNavigator: _t,
1942
- fastMove: Ye,
1943
- zoomTo: tt,
1944
- jumpToLabel: dt,
1945
- jumpToPosition: lt,
1946
- reloadLabelList: At
1947
- }), (z, V) => {
1948
- var Y, se, me;
1949
- return _(), x("div", {
1950
- ref_key: "mainKfbViewRef",
1951
- ref: i,
1952
- class: "hzzt-kfb-view"
1953
- }, [
1954
- z.slide.file ? xe((_(), x("div", {
1955
- key: 0,
1956
- ref_key: "kfbViewMainRef",
1957
- ref: m,
1958
- class: "hzzt-kfb-view__main",
1959
- "element-loading-text": o(v)("加载中"),
1960
- "element-loading-background": "rgba(0, 0, 0, 0.8)"
1961
- }, null, 8, Co)), [
1962
- [o(P), d.value]
1963
- ]) : (_(), x("div", $o, V[5] || (V[5] = [
1964
- k("img", {
1965
- style: { width: "50%" },
1966
- src: Ze
1967
- }, null, -1)
1968
- ]))),
1969
- z.analysis && z.analysis.result ? (_(), H(o(Vt), {
1970
- key: 2,
1971
- class: "hzzt-kfb-view__tag",
1972
- type: o(te).type
1973
- }, {
1974
- default: L(() => [
1975
- K(E(o(te).name), 1)
1976
- ]),
1977
- _: 1
1978
- }, 8, ["type"])) : R("", !0),
1979
- (_(), x("svg", To, [
1980
- k("filter", Lo, [
1981
- k("feColorMatrix", {
1982
- values: o(re),
1983
- type: "matrix"
1984
- }, null, 8, xo),
1985
- k("feColorMatrix", {
1986
- values: o(le),
1987
- type: "saturate"
1988
- }, null, 8, Eo),
1989
- k("feComponentTransfer", null, [
1990
- k("feFuncR", {
1991
- id: "feFuncR",
1992
- type: "gamma",
1993
- exponent: o(j).ga,
1994
- amplitude: "1",
1995
- offset: "0"
1996
- }, null, 8, Vo),
1997
- k("feFuncG", {
1998
- id: "feFuncG",
1999
- type: "gamma",
2000
- exponent: o(j).ga,
2001
- amplitude: "1",
2002
- offset: "0"
2003
- }, null, 8, Io),
2004
- k("feFuncB", {
2005
- id: "feFuncB",
2006
- type: "gamma",
2007
- exponent: o(j).ga,
2008
- amplitude: "1",
2009
- offset: "0"
2010
- }, null, 8, Mo)
2011
- ])
2012
- ])
2013
- ])),
2014
- C(Fl, {
2015
- menus: z.menus,
2016
- onTool: pt
2017
- }, null, 8, ["menus"]),
2018
- C(Ol, Oe(z.microscope, {
2019
- ref_key: "microscopeRef",
2020
- ref: g
2021
- }), null, 16),
2022
- o(p) && z.slide.file && y.value.labelImg ? (_(), H(to, {
2023
- key: 3,
2024
- visible: z.showLabel,
2025
- info: y.value,
2026
- slide: z.slide,
2027
- pathologyHandle: z.pathologyHandle,
2028
- onTool: pt
2029
- }, null, 8, ["visible", "info", "slide", "pathologyHandle"])) : R("", !0),
2030
- o(s) ? (_(), H(vo, { key: 4 })) : R("", !0),
2031
- (Y = z.slide.children) != null && Y.length ? (_(), H(mo, {
2032
- key: 5,
2033
- modelValue: f.value,
2034
- "onUpdate:modelValue": V[0] || (V[0] = (O) => f.value = O),
2035
- slides: z.slide.children
2036
- }, null, 8, ["modelValue", "slides"])) : R("", !0),
2037
- (me = (se = y.value) == null ? void 0 : se.channel) != null && me.length ? (_(), H(go, {
2038
- key: 6,
2039
- modelValue: b.value,
2040
- "onUpdate:modelValue": V[1] || (V[1] = (O) => b.value = O),
2041
- info: y.value,
2042
- onLoad: Ot
2043
- }, null, 8, ["modelValue", "info"])) : R("", !0),
2044
- o(ct).length ? (_(), H(zo, {
2045
- key: 7,
2046
- expand: N.value,
2047
- "onUpdate:expand": V[2] || (V[2] = (O) => N.value = O),
2048
- style: q({
2049
- top: z.analysis && z.analysis.result ? "24px" : "4px"
2050
- }),
2051
- annotation: o(et),
2052
- annotations: o(ct),
2053
- onSelect: o(dt)
2054
- }, null, 8, ["expand", "style", "annotation", "annotations", "onSelect"])) : R("", !0),
2055
- C(o(Ge), {
2056
- modelValue: h.value,
2057
- "onUpdate:modelValue": V[3] || (V[3] = (O) => h.value = O),
2058
- "append-to-body": !0,
2059
- title: o(v)("图像信息"),
2060
- width: "700px",
2061
- top: "5vh"
2062
- }, {
2063
- default: L(() => [
2064
- C(o(nt), { "label-position": "left" }, {
2065
- default: L(() => [
2066
- C(o(ie), {
2067
- class: "flex",
2068
- "label-width": "0px"
2069
- }, {
2070
- default: L(() => [
2071
- k("div", So, [
2072
- k("img", {
2073
- src: y.value.labelImg,
2074
- style: { height: "180px" }
2075
- }, null, 8, Ho),
2076
- k("img", {
2077
- src: y.value.previewImg,
2078
- style: { height: "180px" },
2079
- class: "flex-1"
2080
- }, null, 8, Po)
2081
- ])
2082
- ]),
2083
- _: 1
2084
- }),
2085
- C(o(ie), {
2086
- label: o(v)("文件名")
2087
- }, {
2088
- default: L(() => [
2089
- k("span", Ro, E(y.value.fileName), 1)
2090
- ]),
2091
- _: 1
2092
- }, 8, ["label"]),
2093
- C(o(ie), {
2094
- label: o(v)("图像像素")
2095
- }, {
2096
- default: L(() => [
2097
- k("span", Ao, E(y.value.width) + "Pixel - " + E(y.value.height) + "Pixel", 1)
2098
- ]),
2099
- _: 1
2100
- }, 8, ["label"]),
2101
- C(o(ie), {
2102
- label: o(v)("扫描倍率")
2103
- }, {
2104
- default: L(() => [
2105
- k("span", No, E(y.value.scanScale), 1)
2106
- ]),
2107
- _: 1
2108
- }, 8, ["label"]),
2109
- C(o(ie), {
2110
- label: o(v)("扫描时刻")
2111
- }, {
2112
- default: L(() => [
2113
- k("span", Bo, E(y.value.scanTime), 1)
2114
- ]),
2115
- _: 1
2116
- }, 8, ["label"]),
2117
- C(o(ie), {
2118
- label: o(v)("扫描时间")
2119
- }, {
2120
- default: L(() => [
2121
- k("span", Do, E(y.value.scanDuration || 0) + "s", 1)
2122
- ]),
2123
- _: 1
2124
- }, 8, ["label"]),
2125
- y.value.ext ? (_(), H(o(ie), {
2126
- key: 0,
2127
- label: o(v)("扫描设备")
2128
- }, {
2129
- default: L(() => [
2130
- k("span", Uo, E(y.value.ext.machineNum || ""), 1)
2131
- ]),
2132
- _: 1
2133
- }, 8, ["label"])) : R("", !0)
2134
- ]),
2135
- _: 1
2136
- })
2137
- ]),
2138
- _: 1
2139
- }, 8, ["modelValue", "title"]),
2140
- C(o(Ge), {
2141
- modelValue: o(He),
2142
- "onUpdate:modelValue": V[4] || (V[4] = (O) => pe(He) ? He.value = O : null),
2143
- "append-to-body": !0,
2144
- title: o(v)("语音输入"),
2145
- width: "500px",
2146
- top: "5vh"
2147
- }, {
2148
- footer: L(() => [
2149
- C(o(_e), { onClick: o(Ht) }, {
2150
- default: L(() => [
2151
- K(E(o(v)("取消")), 1)
2152
- ]),
2153
- _: 1
2154
- }, 8, ["onClick"]),
2155
- C(o(_e), {
2156
- type: "primary",
2157
- onClick: o(Pt)
2158
- }, {
2159
- default: L(() => [
2160
- K(E(o(v)("确定")), 1)
2161
- ]),
2162
- _: 1
2163
- }, 8, ["onClick"])
2164
- ]),
2165
- default: L(() => [
2166
- C(o(nt), { "label-position": "left" }, {
2167
- default: L(() => {
2168
- var O;
2169
- return [
2170
- C(o(ie), null, {
2171
- default: L(() => {
2172
- var U;
2173
- return [
2174
- (U = o(Pe)) != null && U.src ? (_(), x("audio", {
2175
- key: 0,
2176
- class: "width-100%",
2177
- src: o(Pe).src,
2178
- controls: "",
2179
- preload: "auto"
2180
- }, null, 8, Fo)) : R("", !0)
2181
- ];
2182
- }),
2183
- _: 1
2184
- }),
2185
- (O = o(Pe)) != null && O.src ? R("", !0) : (_(), H(o(ie), { key: 0 }, {
2186
- default: L(() => [
2187
- o(A) ? (_(), H(o(_e), {
2188
- key: 1,
2189
- type: "danger",
2190
- onClick: o(ce)
2191
- }, {
2192
- default: L(() => [
2193
- K(E(o(v)("结束录音")), 1)
2194
- ]),
2195
- _: 1
2196
- }, 8, ["onClick"])) : (_(), H(o(_e), {
2197
- key: 0,
2198
- type: "primary",
2199
- onClick: o(F)
2200
- }, {
2201
- default: L(() => [
2202
- K(E(o(v)("开始录音")), 1)
2203
- ]),
2204
- _: 1
2205
- }, 8, ["onClick"])),
2206
- o(A) ? (_(), x("span", Ko, E(o(v)("录音时长")) + ":" + E(o($)) + "s", 1)) : R("", !0)
2207
- ]),
2208
- _: 1
2209
- }))
2210
- ];
2211
- }),
2212
- _: 1
2213
- })
2214
- ]),
2215
- _: 1
2216
- }, 8, ["modelValue", "title"]),
2217
- z.analysis && z.analysis.hotmap_path && z.analysis.hotmap_type !== "switch" ? (_(), x("div", {
2218
- key: 8,
2219
- class: "hzzt-kfb-view__hotmap",
2220
- style: q({ left: o(Kt) + "px" })
2221
- }, [
2222
- C(o(ze), {
2223
- class: "icon-caret-left",
2224
- size: "30",
2225
- onMousedown: o(vt)
2226
- }, {
2227
- default: L(() => V[6] || (V[6] = [
2228
- k("svg", {
2229
- xmlns: "http://www.w3.org/2000/svg",
2230
- viewBox: "0 0 1024 1024"
2231
- }, [
2232
- k("path", {
2233
- fill: "currentColor",
2234
- d: "M672 192 288 511.936 672 832z"
2235
- })
2236
- ], -1)
2237
- ])),
2238
- _: 1,
2239
- __: [6]
2240
- }, 8, ["onMousedown"]),
2241
- C(o(ze), {
2242
- class: "icon-caret-right",
2243
- size: "30",
2244
- onMousedown: o(vt)
2245
- }, {
2246
- default: L(() => V[7] || (V[7] = [
2247
- k("svg", {
2248
- xmlns: "http://www.w3.org/2000/svg",
2249
- viewBox: "0 0 1024 1024"
2250
- }, [
2251
- k("path", {
2252
- fill: "currentColor",
2253
- d: "M384 192v640l384-320.064z"
2254
- })
2255
- ], -1)
2256
- ])),
2257
- _: 1,
2258
- __: [7]
2259
- }, 8, ["onMousedown"])
2260
- ], 4)) : R("", !0),
2261
- o(I) ? (_(), x("div", jo)) : R("", !0),
2262
- fe(z.$slots, "default")
2263
- ], 512);
2264
- };
2265
- }
2266
- });
2267
- function Oo(u, e) {
2268
- var b, y;
2269
- const l = T(!!((b = u.ai) != null && b.default)), t = T(!!((y = u.ai) != null && y.default)), w = T([]), v = B(
2270
- () => {
2271
- var p, s, I, N;
2272
- return (p = e.value) != null && p.analysis ? Object.prototype.toString.call((s = e.value) == null ? void 0 : s.analysis) === "[object Array]" ? (I = e.value) == null ? void 0 : I.analysis : [(N = e.value) == null ? void 0 : N.analysis] : [];
2273
- }
2274
- ), r = B(() => v.value.find((p) => (p == null ? void 0 : p.class) === "IQC")), i = B(() => !!r.value), m = B(() => v.value.find((p) => (p == null ? void 0 : p.class) !== "IQC")), g = B(() => !!m.value), h = B(() => l.value ? m.value : t.value ? r.value : void 0);
2275
- ee(() => {
2276
- var p;
2277
- return (p = u.ai) == null ? void 0 : p.default;
2278
- }, () => {
2279
- n();
2280
- }), ee(() => {
2281
- var p;
2282
- return (p = e == null ? void 0 : e.value) == null ? void 0 : p.id;
2283
- }, () => {
2284
- n(!1), d();
2285
- }), he(() => {
2286
- n(), d();
2287
- });
2288
- function n(p = !0) {
2289
- var s, I, N;
2290
- p && (l.value = !!((s = u.ai) != null && s.default), t.value = !!((I = u.ai) != null && I.default)), g.value && l.value && (t.value = !1), i.value && t.value && (l.value = !1), (N = e.value) != null && N.id && (g.value || (l.value = !1), i.value || (t.value = !1));
2291
- }
2292
- function d() {
2293
- var p;
2294
- (p = e.value) != null && p.id && v.value.length ? l.value || t.value ? c() : w.value = [] : w.value = [];
2295
- }
2296
- function c() {
2297
- u.ai.handle(e.value, h.value).then((p) => {
2298
- w.value = p;
2299
- }).catch(() => {
2300
- w.value = [];
2301
- });
2302
- }
2303
- function a() {
2304
- t.value = !1, d();
2305
- }
2306
- function f() {
2307
- l.value = !1, d();
2308
- }
2309
- return {
2310
- hasAi: g,
2311
- hasIqc: i,
2312
- currentAnalysis: h,
2313
- aiLabelList: w,
2314
- enableAi: l,
2315
- enableIqc: t,
2316
- toggleIqc: f,
2317
- toggleAi: a
2318
- };
2319
- }
2320
- const Go = ["src", "fit"], Wo = ["src", "fit"], Ke = /* @__PURE__ */ J({
2321
- name: "KfbImage",
2322
- __name: "KfbImage",
2323
- props: {
2324
- src: {
2325
- type: String,
2326
- required: !0,
2327
- default: ""
2328
- },
2329
- fit: {
2330
- type: String,
2331
- validator: (u) => ["", "contain", "cover", "fill", "none", "scale-down"].includes(u),
2332
- default: ""
2333
- },
2334
- retryTimes: {
2335
- type: Number,
2336
- default: 0
2337
- },
2338
- load: {
2339
- type: Function,
2340
- default: () => ({})
2341
- },
2342
- hover: {
2343
- type: Boolean,
2344
- default: !1
2345
- }
2346
- },
2347
- setup(u) {
2348
- const e = u;
2349
- let l = 0;
2350
- const t = T(!1), w = rt({
2351
- x: 0,
2352
- y: 0
2353
- }), v = B(() => ({
2354
- top: `${w.y + 10}px`,
2355
- left: `${w.x}px`,
2356
- transform: "translateY(-50%)",
2357
- width: `${4 * 300 / 3}px`,
2358
- height: "300px",
2359
- background: "rgba(0,0,0,0.8)",
2360
- zIndex: "10000"
2361
- }));
2362
- function r(h) {
2363
- const n = h.target;
2364
- l < e.retryTimes ? (n.src = e.src, l++) : n.src = Ze;
2365
- }
2366
- function i(h) {
2367
- if (!e.hover) return;
2368
- if (h.target) {
2369
- const f = h.target, b = f.tagName;
2370
- let y = "";
2371
- if (f.tagName === "IMG" ? y = f.src || "" : b === "DIV" && (y = f.children[0].src || ""), y.indexOf(Ze) > -1)
2372
- return;
2373
- }
2374
- const { x: n, y: d } = m(h), c = 4 * 300 / 3, a = 300;
2375
- w.x = Math.min(Math.max(n, c / 2), window.innerWidth - c / 2), w.y = Math.min(Math.max(d, a / 2), window.innerHeight - a / 2), t.value = !0;
2376
- }
2377
- function m(h) {
2378
- const n = h.target, d = h.offsetX, c = h.offsetY, a = n.clientWidth, f = n.clientHeight;
2379
- return {
2380
- x: h.clientX + a - d,
2381
- y: h.clientY - c + f / 2
2382
- };
2383
- }
2384
- function g() {
2385
- t.value = !1;
2386
- }
2387
- return (h, n) => (_(), x("div", {
2388
- class: "relative",
2389
- onMouseenter: i,
2390
- onMouseleave: g
2391
- }, [
2392
- k("img", {
2393
- src: u.src,
2394
- fit: u.fit,
2395
- onError: r,
2396
- style: {
2397
- height: "100%",
2398
- width: "100%"
2399
- }
2400
- }, null, 40, Go),
2401
- (_(), H(je, { to: "body" }, [
2402
- t.value ? (_(), x("div", {
2403
- key: 0,
2404
- class: "fixed hzzt-kfb-img-triangle-left",
2405
- style: q(v.value)
2406
- }, [
2407
- k("img", {
2408
- src: u.src,
2409
- fit: u.fit,
2410
- style: {
2411
- objectFit: "contain",
2412
- height: "100%",
2413
- width: "100%"
2414
- },
2415
- onMouseenter: n[0] || (n[0] = () => {
2416
- t.value = !0;
2417
- }),
2418
- onMouseleave: g
2419
- }, null, 40, Wo)
2420
- ], 4)) : R("", !0)
2421
- ]))
2422
- ], 32));
2423
- }
2424
- }), qo = {}, Zo = {
2425
- xmlns: "http://www.w3.org/2000/svg",
2426
- viewBox: "0 0 1024 1024"
2427
- };
2428
- function Yo(u, e) {
2429
- return _(), x("svg", Zo, e[0] || (e[0] = [
2430
- k("path", {
2431
- fill: "currentColor",
2432
- 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"
2433
- }, null, -1)
2434
- ]));
2435
- }
2436
- const Xo = /* @__PURE__ */ ge(qo, [["render", Yo]]), Qo = {}, Jo = {
2437
- width: "16",
2438
- height: "16",
2439
- viewBox: "0 0 16 16",
2440
- fill: "none",
2441
- xmlns: "http://www.w3.org/2000/svg"
2442
- };
2443
- function ea(u, e) {
2444
- return _(), x("svg", Jo, e[0] || (e[0] = [
2445
- k("g", { id: "Frame" }, [
2446
- k("path", {
2447
- id: "Vector",
2448
- 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",
2449
- fill: "currentColor",
2450
- "fill-opacity": "0.9"
2451
- })
2452
- ], -1)
2453
- ]));
2454
- }
2455
- const ta = /* @__PURE__ */ ge(Qo, [["render", ea]]), la = { class: "hzzt-kfb-slides" }, oa = { class: "hzzt-kfb-slides__row" }, aa = { class: "hzzt-kfb-slides__top" }, na = { class: "text-primary" }, sa = { class: "flex align-items-center" }, ia = { key: 0 }, ra = ["data-index", "onClick"], ua = { class: "hzzt-kfb-slides__gallery" }, ca = ["onClick"], da = {
2456
- key: 0,
2457
- class: "hzzt-kfb-slides__read"
2458
- }, va = ["onClick"], fa = {
2459
- key: 1,
2460
- class: "flex column"
2461
- }, ma = { class: "hzzt-kfb-slides__header" }, pa = { class: "w-30%" }, ha = { class: "w-40%" }, ga = { class: "w-20%" }, ya = ["data-index", "onClick"], wa = { class: "w-30% flex" }, _a = { class: "hzzt-kfb-slides__gallery" }, ba = {
2462
- key: 0,
2463
- class: "hzzt-kfb-slides__read"
2464
- }, ka = { class: "w-40% flex" }, za = ["onClick"], Ca = ["onClick"], $a = {
2465
- key: 0,
2466
- class: "flex column py-2"
2467
- }, Ta = { class: "flex align-items-center justify-content-center" }, La = { class: "margin-r-1" }, xa = {
2468
- key: 0,
2469
- class: "margin-r-1 margin-l-2"
2470
- }, Ea = /* @__PURE__ */ J({
2471
- __name: "KfbSlideList",
2472
- props: {
2473
- slides: {}
2474
- },
2475
- emits: ["select", "tool"],
2476
- setup(u, { expose: e, emit: l }) {
2477
- const t = u, w = l, v = Z("file-index", {
2478
- value: 0
2479
- }), r = Z("divide", {
2480
- value: !1
2481
- }), i = Z("sync", {
2482
- value: !1
2483
- }), m = T(!1), g = T(), h = B(() => t.slides.filter(({ read: b }) => b)), n = B(() => t.slides.filter(({ check: b }) => b)), { t: d } = ue();
2484
- function c(b) {
2485
- v.value = b, w("select", b);
2486
- }
2487
- function a(b) {
2488
- b.check = !b.check;
2489
- }
2490
- function f(b) {
2491
- var p, s, I;
2492
- const y = ((I = (s = (p = g.value.querySelector('[data-index="0"]')) == null ? void 0 : p.getBoundingClientRect) == null ? void 0 : s.call(p)) == null ? void 0 : I.y) || 0;
2493
- g.value.scrollTop = g.value.querySelector(`[data-index="${b}"]`).getBoundingClientRect().y - y;
2494
- }
2495
- return e({
2496
- jumpToSlide: f
2497
- }), (b, y) => (_(), x("div", la, [
2498
- k("div", oa, [
2499
- k("div", aa, [
2500
- k("span", null, [
2501
- y[4] || (y[4] = K("已读:")),
2502
- k("span", na, E(h.value.length), 1),
2503
- K("/" + E(b.slides.length), 1)
2504
- ]),
2505
- k("div", sa, [
2506
- C(o(ze), {
2507
- class: "margin-r-2 pointer",
2508
- size: "16",
2509
- color: m.value ? "#999" : "#000",
2510
- onClick: y[0] || (y[0] = (p) => m.value = !m.value)
2511
- }, {
2512
- default: L(() => [
2513
- C(Xo)
2514
- ]),
2515
- _: 1
2516
- }, 8, ["color"]),
2517
- C(o(ze), {
2518
- class: "pointer",
2519
- name: "cus-list",
2520
- size: "16",
2521
- color: m.value ? "#000" : "#999",
2522
- onClick: y[1] || (y[1] = (p) => m.value = !m.value)
2523
- }, {
2524
- default: L(() => [
2525
- C(ta)
2526
- ]),
2527
- _: 1
2528
- }, 8, ["color"])
2529
- ])
2530
- ]),
2531
- k("div", {
2532
- class: "flex-1 overflow-auto",
2533
- style: { width: "100%" },
2534
- ref_key: "slidesRef",
2535
- ref: g
2536
- }, [
2537
- m.value ? (_(), x("ul", fa, [
2538
- k("li", ma, [
2539
- y[5] || (y[5] = k("div", { class: "w-10%" }, null, -1)),
2540
- k("div", pa, E(o(d)("缩略图")), 1),
2541
- k("div", ha, E(o(d)("切片名")), 1),
2542
- k("div", ga, E(o(d)("评分")), 1)
2543
- ]),
2544
- (_(!0), x(oe, null, ae(b.slides, (p, s) => (_(), x("li", {
2545
- key: s,
2546
- "data-index": s,
2547
- class: "flex align-items-center overflow-hidden",
2548
- style: q({
2549
- backgroundColor: o(v) === s ? "rgba(6, 85, 195, 0.1)" : "#fff"
2550
- }),
2551
- onClick: (I) => c(s)
2552
- }, [
2553
- k("div", {
2554
- class: "w-10% text-center",
2555
- onClick: Fe(() => {
2556
- }, ["stop"])
2557
- }, [
2558
- C(o(We), {
2559
- modelValue: p.check,
2560
- "onUpdate:modelValue": (I) => p.check = I,
2561
- style: { width: "14px", height: "16px" }
2562
- }, null, 8, ["modelValue", "onUpdate:modelValue"])
2563
- ]),
2564
- k("div", wa, [
2565
- k("div", _a, [
2566
- C(Ke, {
2567
- style: q([{ transform: `rotate(${p.angle}deg)` }, { height: "45px" }]),
2568
- "retry-times": 1,
2569
- src: p.labelImg,
2570
- fit: "cover",
2571
- class: "flex-1"
2572
- }, null, 8, ["style", "src"]),
2573
- C(Ke, {
2574
- "retry-times": 1,
2575
- fit: "cover",
2576
- src: p.previewImg,
2577
- style: { height: "45px" },
2578
- class: "flex-1"
2579
- }, null, 8, ["src"]),
2580
- p.read ? R("", !0) : (_(), x("div", ba, E(o(d)("未读")), 1))
2581
- ])
2582
- ]),
2583
- k("div", ka, [
2584
- C(o(xt), {
2585
- effect: "dark",
2586
- placement: "bottom",
2587
- content: `${p.name}`
2588
- }, {
2589
- default: L(() => [
2590
- k("span", {
2591
- style: { "line-height": "16px" },
2592
- class: "margin-l-1 ellipsis hzzt-kfb-slides__text",
2593
- dir: "rtl",
2594
- onClick: Fe((I) => a(p), ["stop"])
2595
- }, E(p.name), 9, za)
2596
- ]),
2597
- _: 2
2598
- }, 1032, ["content"])
2599
- ]),
2600
- k("div", {
2601
- class: "w-20% flex text-center pointer",
2602
- style: q({
2603
- color: p.gradeColor
2604
- }),
2605
- onClick: (I) => w("tool", "grade", p)
2606
- }, E(p.grade), 13, Ca)
2607
- ], 12, ya))), 128))
2608
- ])) : (_(), x("div", ia, [
2609
- (_(!0), x(oe, null, ae(b.slides, (p, s) => (_(), x("div", {
2610
- key: s,
2611
- class: ke(["hzzt-kfb-slides__box", o(v) === s ? "hzzt-kfb-slides__box--active" : ""]),
2612
- "data-index": s,
2613
- onClick: (I) => c(s)
2614
- }, [
2615
- k("div", ua, [
2616
- C(Ke, {
2617
- style: q({ transform: `rotate(${p.angle}deg)` }),
2618
- "retry-times": 1,
2619
- src: p.labelImg,
2620
- class: "hzzt-kfb-slides__img",
2621
- fit: "cover",
2622
- hover: ""
2623
- }, null, 8, ["style", "src"]),
2624
- C(Ke, {
2625
- "retry-times": 1,
2626
- src: p.previewImg,
2627
- class: "flex-1 hzzt-kfb-slides__img1",
2628
- fit: "cover"
2629
- }, null, 8, ["src"])
2630
- ]),
2631
- k("div", {
2632
- class: "flex justify-content-between align-items-center",
2633
- onClick: Fe(() => {
2634
- }, ["stop"])
2635
- }, [
2636
- C(o(We), {
2637
- modelValue: p.check,
2638
- "onUpdate:modelValue": (I) => p.check = I,
2639
- style: { width: "14px", height: "16px" }
2640
- }, null, 8, ["modelValue", "onUpdate:modelValue"]),
2641
- C(o(xt), {
2642
- effect: "dark",
2643
- placement: "bottom",
2644
- content: `${p.name}`
2645
- }, {
2646
- default: L(() => [
2647
- k("span", {
2648
- style: { "line-height": "16px", "text-align": "center", width: "calc(100% - 14px)" },
2649
- class: "margin-l-1 ellipsis",
2650
- onClick: Fe((I) => a(p), ["stop"])
2651
- }, E(p.name), 9, ca)
2652
- ]),
2653
- _: 2
2654
- }, 1032, ["content"])
2655
- ]),
2656
- p.read ? R("", !0) : (_(), x("div", da, E(o(d)("未读")), 1)),
2657
- p.grade ? (_(), x("div", {
2658
- key: 1,
2659
- class: "hzzt-kfb-slides__grade",
2660
- style: q({
2661
- background: p.gradeColor
2662
- }),
2663
- onClick: (I) => w("tool", "grade", p)
2664
- }, E(p.grade), 13, va)) : R("", !0),
2665
- fe(b.$slots, "slide", { slide: p }, void 0, !0)
2666
- ], 10, ra))), 128))
2667
- ]))
2668
- ], 512),
2669
- n.value.length > 1 ? (_(), x("div", $a, [
2670
- k("div", Ta, [
2671
- k("span", La, E(o(d)("分屏")), 1),
2672
- C(o(Ee), {
2673
- modelValue: o(r),
2674
- "onUpdate:modelValue": y[2] || (y[2] = (p) => pe(r) ? r.value = p : null)
2675
- }, null, 8, ["modelValue"]),
2676
- o(r) ? (_(), x("span", xa, E(o(d)("同步")), 1)) : R("", !0),
2677
- o(r) ? (_(), H(o(Ee), {
2678
- key: 1,
2679
- modelValue: o(i),
2680
- "onUpdate:modelValue": y[3] || (y[3] = (p) => pe(i) ? i.value = p : null)
2681
- }, null, 8, ["modelValue"])) : R("", !0)
2682
- ])
2683
- ])) : R("", !0)
2684
- ])
2685
- ]));
2686
- }
2687
- }), Va = /* @__PURE__ */ ge(Ea, [["__scopeId", "data-v-35358d3a"]]), Ia = { class: "hzzt-kfb-ai overflow-hidden" }, Ma = { class: "flex align-items-center margin-t-1" }, Sa = { style: { color: "var(--el-color-success)" } }, Ha = { class: "flex-1 flex overflow-auto wrap margin-t-1" }, Pa = ["onClick"], Ra = {
2688
- key: 0,
2689
- style: { "margin-left": "2px" }
2690
- }, Aa = /* @__PURE__ */ J({
2691
- name: "KfbAiList",
2692
- __name: "list",
2693
- props: {
2694
- data: { default: () => [] },
2695
- analysis: {}
2696
- },
2697
- setup(u, { expose: e }) {
2698
- const l = u, { t } = ue(), w = Z("kfbViewRef"), v = T(-1), r = T(1), i = T(100), m = T(!0), g = T([]), h = B(() => l.data.filter((I) => g.value.includes(I.cls || ""))), n = B(() => h.value.slice((r.value - 1) * i.value, r.value * i.value)), d = B(() => {
2699
- const I = /* @__PURE__ */ new Set();
2700
- return l.data.forEach((N) => {
2701
- const P = N.cls || "";
2702
- P && !I.has(P) && I.add(P);
2703
- }), Array.from(I);
2704
- }), c = B(() => g.value.length !== 0 && g.value.length !== d.value.length), a = St(l);
2705
- ee(() => d.value, (I) => {
2706
- f(), g.value = [...I];
2707
- }), he(() => {
2708
- g.value = [...d.value];
2709
- });
2710
- function f() {
2711
- v.value = -1, r.value = 1, i.value = 100, m.value = !0;
2712
- }
2713
- function b(I) {
2714
- const N = h.value.findIndex((P) => P.id === I.id);
2715
- v.value = N, w.value.jumpToLabel(I, 5);
2716
- }
2717
- function y(I) {
2718
- const N = l.data.filter((P) => P.cls === I);
2719
- return N.length ? `(${N.length})` : "";
2720
- }
2721
- function p() {
2722
- v.value = -1, m.value = g.value.length == d.value.length;
2723
- }
2724
- function s(I) {
2725
- g.value = I ? [...d.value] : [], v.value = -1;
2726
- }
2727
- return e({
2728
- labelList: h
2729
- }), (I, N) => (_(), x("div", Ia, [
2730
- k("div", Ma, [
2731
- C(o(dl), {
2732
- placement: "bottom",
2733
- trigger: "click",
2734
- width: "160"
2735
- }, {
2736
- reference: L(() => [
2737
- C(o(_e), {
2738
- class: "margin-r-1",
2739
- type: "primary"
2740
- }, {
2741
- default: L(() => [
2742
- K(E(o(t)("分类")) + " ", 1),
2743
- C(Q, { name: "arrowDown" })
2744
- ]),
2745
- _: 1
2746
- })
2747
- ]),
2748
- default: L(() => [
2749
- k("div", null, [
2750
- C(o(We), {
2751
- modelValue: m.value,
2752
- "onUpdate:modelValue": N[0] || (N[0] = (P) => m.value = P),
2753
- indeterminate: c.value,
2754
- onChange: s
2755
- }, {
2756
- default: L(() => [
2757
- K(E(o(t)("全选")), 1)
2758
- ]),
2759
- _: 1
2760
- }, 8, ["modelValue", "indeterminate"]),
2761
- C(o(vl), {
2762
- modelValue: g.value,
2763
- "onUpdate:modelValue": N[1] || (N[1] = (P) => g.value = P),
2764
- class: "flex column",
2765
- onChange: p
2766
- }, {
2767
- default: L(() => [
2768
- (_(!0), x(oe, null, ae(d.value, (P) => (_(), H(o(We), {
2769
- key: P,
2770
- value: P
2771
- }, {
2772
- default: L(() => [
2773
- K(E(P) + " ", 1),
2774
- k("span", Sa, E(y(P)), 1)
2775
- ]),
2776
- _: 2
2777
- }, 1032, ["value"]))), 128))
2778
- ]),
2779
- _: 1
2780
- }, 8, ["modelValue"])
2781
- ])
2782
- ]),
2783
- _: 1
2784
- }),
2785
- C(o(Vt), {
2786
- type: o(a).type,
2787
- class: "margin-l-1"
2788
- }, {
2789
- default: L(() => [
2790
- K(E(o(a).name), 1)
2791
- ]),
2792
- _: 1
2793
- }, 8, ["type"])
2794
- ]),
2795
- k("div", Ha, [
2796
- (_(!0), x(oe, null, ae(n.value, (P, te) => (_(), x("div", {
2797
- key: te + (r.value - 1) * i.value,
2798
- class: ke(`hzzt-kfb-ai__img ${v.value === te + (r.value - 1) * i.value ? "hzzt-kfb-ai__img--active" : ""}`),
2799
- onClick: (ne) => b(P)
2800
- }, [
2801
- C(o(ml), {
2802
- "retry-times": 1,
2803
- src: P.imageUrl,
2804
- "error-src": o(Ze)
2805
- }, null, 8, ["src", "error-src"]),
2806
- k("div", {
2807
- style: q({ color: P.strokeStyle }),
2808
- class: "ellipsis"
2809
- }, [
2810
- K(E(P.cls) + " ", 1),
2811
- P.score ? (_(), x("span", Ra, E(P.score), 1)) : R("", !0)
2812
- ], 4)
2813
- ], 10, Pa))), 128))
2814
- ]),
2815
- C(o(fl), {
2816
- class: "wrap",
2817
- "current-page": r.value,
2818
- "onUpdate:currentPage": N[2] || (N[2] = (P) => r.value = P),
2819
- "page-size": i.value,
2820
- "onUpdate:pageSize": N[3] || (N[3] = (P) => i.value = P),
2821
- "page-sizes": [100, 200, 300, 400],
2822
- layout: "total, sizes, prev, pager, next",
2823
- total: h.value.length
2824
- }, null, 8, ["current-page", "page-size", "total"])
2825
- ]));
2826
- }
2827
- }), Na = { class: "hzzt-kfb-slide" }, Ba = { class: "flex flex-1 overflow-hidden" }, Da = { class: "flex flex-1" }, Ua = {
2828
- key: 0,
2829
- style: { height: "100%", width: "100%" },
2830
- class: "flex wrap"
2831
- }, Fa = ["onClick"], it = /* @__PURE__ */ J({
2832
- name: "HzztKfbSlide",
2833
- __name: "HzztKfbSlide",
2834
- props: /* @__PURE__ */ be({
2835
- menus: { default: () => [] },
2836
- kfb: {},
2837
- slides: { default: () => [] },
2838
- ai: {},
2839
- teleport: { type: Boolean, default: !1 },
2840
- watermark: {},
2841
- process: {},
2842
- microscope: {},
2843
- showList: { type: Boolean, default: !0 },
2844
- showKfbLabel: { type: Boolean, default: !0 },
2845
- showKeyboard: { type: Boolean, default: !1 },
2846
- showMenuText: { type: Boolean, default: !0 },
2847
- showWatermark: { type: Boolean, default: !1 }
2848
- }, {
2849
- index: {
2850
- default: 0
2851
- },
2852
- indexModifiers: {}
2853
- }),
2854
- emits: /* @__PURE__ */ be(["tool"], ["update:index"]),
2855
- setup(u, { expose: e, emit: l }) {
2856
- const t = u, w = l, v = Be(u, "index"), r = B(() => t.slides[v.value]), i = B(() => t.slides.filter(({ check: $ }) => $)), m = T(), g = T(), h = T(), n = T(), d = T(t.showKeyboard), c = T(t.showKfbLabel), a = T(t.showWatermark), f = T(t.showMenuText), b = T(!1), y = T(!1), { t: p } = ue(), s = B(() => {
2857
- var $;
2858
- if (b.value) {
2859
- const A = i.value.findIndex(({ id: F }) => {
2860
- var ce;
2861
- return F === ((ce = r.value) == null ? void 0 : ce.id);
2862
- });
2863
- return (($ = h.value) == null ? void 0 : $[A]) || g.value;
2864
- } else
2865
- return g.value;
2866
- }), I = B(() => i.value.length <= 1 ? {
2867
- height: "100%",
2868
- width: "100%"
2869
- } : i.value.length <= 2 ? {
2870
- height: "100%",
2871
- width: "calc((100% - 4px) / 2)"
2872
- } : i.value.length <= 4 ? {
2873
- height: "calc((100% - 4px) / 2)",
2874
- width: "calc((100% - 4px) / 2)"
2875
- } : i.value.length <= 6 ? {
2876
- height: "calc((100% - 4px) / 2)",
2877
- width: "calc((100% - 4px * 2) / 3)"
2878
- } : i.value.length <= 9 ? {
2879
- height: "calc((100% - 4px * 2) / 3)",
2880
- width: "calc((100% - 4px * 2) / 3)"
2881
- } : {
2882
- height: "100%",
2883
- width: "100%"
2884
- });
2885
- ee(() => i.value, ($) => {
2886
- b.value && $.length <= 1 && (b.value = !1);
2887
- }), ee(() => r.value, ($) => {
2888
- if ($) {
2889
- const A = $.read;
2890
- $.read = !0, w("tool", "choose", {
2891
- slide: $,
2892
- read: A
2893
- });
2894
- }
2895
- }), Object.entries({
2896
- keyboard: d,
2897
- kfbLabel: c,
2898
- watermark: a,
2899
- menuText: f
2900
- }).forEach(([$, A]) => {
2901
- ee(() => A.value, (F) => {
2902
- w("tool", $, F);
2903
- });
2904
- });
2905
- const {
2906
- hasAi: P,
2907
- hasIqc: te,
2908
- currentAnalysis: ne,
2909
- aiLabelList: j,
2910
- enableAi: re,
2911
- enableIqc: le,
2912
- toggleIqc: Me,
2913
- toggleAi: Se
2914
- } = Oo(t, r);
2915
- function ye($, A) {
2916
- $ === "next" && t.slides[v.value + 1] && v.value++, $ === "prev" && t.slides[v.value - 1] && v.value--, ($ === "label" || $ === "tool") && (c.value = A), w("tool", $, A);
2917
- }
2918
- function De($) {
2919
- var F, ce;
2920
- const A = we(W({}, t.kfb), {
2921
- watermark: t.watermark,
2922
- process: t.process,
2923
- microscope: t.microscope,
2924
- slide: $,
2925
- aiLabelList: r.value.id === $.id ? ((F = n.value) == null ? void 0 : F.labelList) || [] : [],
2926
- syncPosition: y.value,
2927
- syncZoom: y.value,
2928
- handle: void 0,
2929
- analysis: r.value.id === $.id ? ne.value : void 0
2930
- });
2931
- return (ce = t.kfb) != null && ce.handle ? t.kfb.handle($, A) : A;
2932
- }
2933
- function Ye($) {
2934
- v.value = t.slides.findIndex((A) => A.id === $.id);
2935
- }
2936
- function Xe($) {
2937
- b.value && (t.slides[$].check = !0);
2938
- }
2939
- function Qe() {
2940
- var $;
2941
- ($ = b.value ? h.value : [g.value]) == null || $.forEach((A) => {
2942
- c.value || (A.updateGrid({
2943
- show: c.value,
2944
- ruler: c.value
2945
- }), d.value = c.value), A.updateGraduation({
2946
- show: c.value
2947
- }), A.updateNavigator(c.value);
2948
- });
2949
- }
2950
- function He($) {
2951
- v.value = $, m.value && m.value.jumpToSlide($);
2952
- }
2953
- function Pe($, A) {
2954
- s.value && s.value.jumpToLabel($, A);
2955
- }
2956
- function Je($, A) {
2957
- s.value && s.value.jumpToPosition($, A);
2958
- }
2959
- return de("kfbViewRef", s), de("show-keyboard", d), de("show-kfb-label", c), de("show-menu-text", f), de("show-watermark", a), de("file-index", v), de("divide", b), de("sync", y), e({
2960
- divide: b,
2961
- slide: r,
2962
- kfbViewRef: s,
2963
- jumpToSlide: He,
2964
- jumpToLabel: Pe,
2965
- jumpToPosition: Je,
2966
- analysis: ne,
2967
- enableAi: re,
2968
- enableIqc: le,
2969
- showAiList: B(() => {
2970
- var $;
2971
- return !!(($ = t.ai) != null && $.enable) && j.value.length;
2972
- })
2973
- }), ($, A) => (_(), x("div", Na, [
2974
- $.menus.length ? (_(), H(qe, {
2975
- key: 0,
2976
- menu: $.menus,
2977
- process: $.process,
2978
- microscope: $.microscope,
2979
- onTool: ye
2980
- }, {
2981
- left: L(() => [
2982
- fe($.$slots, "left")
2983
- ]),
2984
- right: L(() => [
2985
- C(o(Ee), {
2986
- modelValue: c.value,
2987
- "onUpdate:modelValue": A[0] || (A[0] = (F) => c.value = F),
2988
- "active-text": o(p)("隐藏标签"),
2989
- "active-value": !1,
2990
- "inactive-value": !0,
2991
- class: "margin-r-2",
2992
- onChange: Qe
2993
- }, null, 8, ["modelValue", "active-text"]),
2994
- $.ai && $.ai.enable && o(te) ? (_(), H(o(Ee), {
2995
- key: 0,
2996
- modelValue: o(le),
2997
- "onUpdate:modelValue": A[1] || (A[1] = (F) => pe(le) ? le.value = F : null),
2998
- "active-text": o(p)("AI质控"),
2999
- class: "margin-r-2",
3000
- onChange: o(Me)
3001
- }, null, 8, ["modelValue", "active-text", "onChange"])) : R("", !0),
3002
- $.ai && $.ai.enable && o(P) ? (_(), H(o(Ee), {
3003
- key: 1,
3004
- modelValue: o(re),
3005
- "onUpdate:modelValue": A[2] || (A[2] = (F) => pe(re) ? re.value = F : null),
3006
- "active-text": o(p)("AI分析"),
3007
- class: "margin-r-2",
3008
- onChange: o(Se)
3009
- }, null, 8, ["modelValue", "active-text", "onChange"])) : R("", !0),
3010
- fe($.$slots, "right")
3011
- ]),
3012
- _: 3
3013
- }, 8, ["menu", "process", "microscope"])) : R("", !0),
3014
- k("div", Ba, [
3015
- $.showList ? (_(), H(je, {
3016
- key: 0,
3017
- defer: "",
3018
- to: "#kfb-slide-list",
3019
- disabled: !$.teleport
3020
- }, [
3021
- C(Va, {
3022
- ref_key: "slidesRef",
3023
- ref: m,
3024
- style: q($.teleport ? "" : "width: 250px"),
3025
- slides: $.slides,
3026
- onSelect: Xe,
3027
- onTool: ye
3028
- }, {
3029
- slide: L(({ slide: F }) => [
3030
- fe($.$slots, "list", { slide: F })
3031
- ]),
3032
- _: 3
3033
- }, 8, ["style", "slides"])
3034
- ], 8, ["disabled"])) : R("", !0),
3035
- (_(), H(je, {
3036
- defer: "",
3037
- to: "#kfb-slide-view",
3038
- disabled: !$.teleport
3039
- }, [
3040
- k("div", Da, [
3041
- i.value.length && b.value ? (_(), x("ul", Ua, [
3042
- (_(!0), x(oe, null, ae(i.value, (F, ce) => (_(), x("li", {
3043
- key: ce,
3044
- style: q(I.value),
3045
- class: ke(r.value.id === F.id ? "hzzt-kfb-view-screen-active" : ""),
3046
- onClick: (ut) => Ye(F)
3047
- }, [
3048
- (_(), H(Ne, Oe({
3049
- ref_for: !0,
3050
- ref_key: "kfbViewRefs",
3051
- ref: h,
3052
- key: `kfb-${ce}`
3053
- }, { ref_for: !0 }, De(F), { onTool: ye }), {
3054
- default: L(() => [
3055
- fe($.$slots, "kfb", { slide: F })
3056
- ]),
3057
- _: 2
3058
- }, 1040))
3059
- ], 14, Fa))), 128))
3060
- ])) : r.value ? (_(), H(Ne, Oe({
3061
- key: 1,
3062
- ref_key: "kfbViewRef",
3063
- ref: g
3064
- }, De(r.value), { onTool: ye }), {
3065
- default: L(() => [
3066
- fe($.$slots, "kfb", { slide: r.value })
3067
- ]),
3068
- _: 3
3069
- }, 16)) : R("", !0)
3070
- ])
3071
- ], 8, ["disabled"])),
3072
- $.ai && $.ai.enable && o(j).length ? (_(), H(je, {
3073
- key: 1,
3074
- defer: "",
3075
- to: "#kfb-slide-ai",
3076
- disabled: !$.teleport
3077
- }, [
3078
- C(Aa, {
3079
- style: q($.teleport ? "" : "width: 350px"),
3080
- ref_key: "kfbAiRef",
3081
- ref: n,
3082
- data: o(j),
3083
- slide: r.value,
3084
- analysis: o(ne)
3085
- }, null, 8, ["style", "data", "slide", "analysis"])
3086
- ], 8, ["disabled"])) : R("", !0),
3087
- fe($.$slots, "default")
3088
- ])
3089
- ]));
3090
- }
3091
- });
3092
- it.name = "HzztKfbSlide";
3093
- Ne.name = "HzztKfbView";
3094
- qe.name = "HzztKfbToolbox";
3095
- const Ka = (u, e) => {
3096
- u.use(pl, e == null ? void 0 : e.i18n), u.component(it.name, it), u.component(Ne.name, Ne), u.component(qe.name, qe);
3097
- }, Za = {
3098
- install: Ka
3099
- };
3100
- export {
3101
- Mt as D,
3102
- It as I,
3103
- ge as _,
3104
- Q as a,
3105
- st as b,
3106
- it as c,
3107
- Ne as d,
3108
- qe as e,
3109
- Za as i,
3110
- ue as u
3111
- };