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