hzzt-kfb-slide 0.1.9 → 1.0.1

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