med-viewer-sdk 0.1.21 → 0.1.23
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.
- package/README.md +624 -346
- package/dist/med-viewer-sdk.d.ts +5 -2
- package/dist/med-viewer-sdk.mjs +358 -19
- package/dist/med-viewer-sdk.umd.js +2 -2
- package/package.json +2 -2
- package/dist/adapters/vue/MedViewer.d.ts +0 -17
- package/dist/adapters/vue/index.d.ts +0 -2
- package/dist/core/AnnoAnnotator.d.ts +0 -16
- package/dist/core/BaseAnnotator.d.ts +0 -33
- package/dist/core/ColorAdjustPlugin.d.ts +0 -46
- package/dist/core/Coords.d.ts +0 -6
- package/dist/core/Engine.d.ts +0 -104
- package/dist/core/Magnification.d.ts +0 -54
- package/dist/core/Scalebar.d.ts +0 -42
- package/dist/core/SelectionPlugin.d.ts +0 -106
- package/dist/core/Toolbar.d.ts +0 -57
- package/dist/i18n/i18n.d.ts +0 -6
package/dist/med-viewer-sdk.mjs
CHANGED
|
@@ -6,6 +6,8 @@ var __publicField = (obj, key, value) => {
|
|
|
6
6
|
};
|
|
7
7
|
var _a, _b, _c, _d, _e;
|
|
8
8
|
import OpenSeadragon from "openseadragon";
|
|
9
|
+
import { default as default2 } from "openseadragon";
|
|
10
|
+
import { defineComponent, shallowRef, onMounted, onBeforeUnmount, h as h$1 } from "vue";
|
|
9
11
|
function getDefaultExportFromCjs(x2) {
|
|
10
12
|
return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2["default"] : x2;
|
|
11
13
|
}
|
|
@@ -12547,6 +12549,7 @@ class AnnoAnnotator extends BaseAnnotator {
|
|
|
12547
12549
|
constructor(engine, config = {}) {
|
|
12548
12550
|
super(engine);
|
|
12549
12551
|
__publicField(this, "anno");
|
|
12552
|
+
__publicField(this, "listeners", /* @__PURE__ */ new Map());
|
|
12550
12553
|
this.anno = Annotorious(this.engine.viewer, {
|
|
12551
12554
|
...config
|
|
12552
12555
|
// 可以在此配置样式、偏好等
|
|
@@ -12554,15 +12557,35 @@ class AnnoAnnotator extends BaseAnnotator {
|
|
|
12554
12557
|
this.injectStyles();
|
|
12555
12558
|
this.initEvents(config);
|
|
12556
12559
|
}
|
|
12560
|
+
/**
|
|
12561
|
+
* 架构核心:提供通用的外部监听接口 (on)
|
|
12562
|
+
*/
|
|
12563
|
+
on(event2, callback) {
|
|
12564
|
+
if (!this.listeners.has(event2)) {
|
|
12565
|
+
this.listeners.set(event2, []);
|
|
12566
|
+
}
|
|
12567
|
+
this.listeners.get(event2).push(callback);
|
|
12568
|
+
}
|
|
12569
|
+
/**
|
|
12570
|
+
* 内部私有:触发事件 (emit)
|
|
12571
|
+
*/
|
|
12572
|
+
emit(event2, ...args) {
|
|
12573
|
+
if (this.listeners.has(event2)) {
|
|
12574
|
+
this.listeners.get(event2).forEach((cb) => cb(...args));
|
|
12575
|
+
}
|
|
12576
|
+
}
|
|
12557
12577
|
setEnabled(enabled) {
|
|
12558
12578
|
this.anno.setDrawingEnabled(enabled);
|
|
12579
|
+
this.emit("modeChange", { enabled, tool: null });
|
|
12559
12580
|
}
|
|
12560
12581
|
setTool(tool, color) {
|
|
12561
12582
|
if (!tool) {
|
|
12562
|
-
this.
|
|
12583
|
+
this.anno.setDrawingEnabled(false);
|
|
12584
|
+
this.emit("modeChange", { enabled: false, tool: null });
|
|
12563
12585
|
} else {
|
|
12564
12586
|
this.anno.setDrawingTool(tool, color);
|
|
12565
|
-
this.
|
|
12587
|
+
this.anno.setDrawingEnabled(true);
|
|
12588
|
+
this.emit("modeChange", { enabled: true, tool });
|
|
12566
12589
|
}
|
|
12567
12590
|
}
|
|
12568
12591
|
setLocale(locale) {
|
|
@@ -12586,8 +12609,25 @@ class AnnoAnnotator extends BaseAnnotator {
|
|
|
12586
12609
|
initEvents(config) {
|
|
12587
12610
|
if (config.onCreateAnnotation) {
|
|
12588
12611
|
this.anno.on("createAnnotation", (annotation) => {
|
|
12612
|
+
this.emit("modeChange", { enabled: false, tool: null });
|
|
12589
12613
|
config.onCreateAnnotation(annotation);
|
|
12590
12614
|
});
|
|
12615
|
+
} else {
|
|
12616
|
+
this.anno.on("createAnnotation", (annotation) => {
|
|
12617
|
+
this.emit("modeChange", { enabled: false, tool: null });
|
|
12618
|
+
});
|
|
12619
|
+
}
|
|
12620
|
+
if (config.onCancelAnnotation) {
|
|
12621
|
+
this.anno.on("cancelSelected", (annotation) => {
|
|
12622
|
+
config.onCancelAnnotation(annotation);
|
|
12623
|
+
console.log("cancelSelected", annotation);
|
|
12624
|
+
this.emit("modeChange", { enabled: false, tool: null });
|
|
12625
|
+
});
|
|
12626
|
+
} else {
|
|
12627
|
+
this.anno.on("cancelSelected", (annotation) => {
|
|
12628
|
+
console.log("cancelSelected", annotation);
|
|
12629
|
+
this.emit("modeChange", { enabled: false, tool: null });
|
|
12630
|
+
});
|
|
12591
12631
|
}
|
|
12592
12632
|
if (config.onUpdateAnnotation) {
|
|
12593
12633
|
this.anno.on("updateAnnotation", (annotation, previous) => {
|
|
@@ -13592,7 +13632,12 @@ const dicts = {
|
|
|
13592
13632
|
hue: "色相",
|
|
13593
13633
|
invert: "反色",
|
|
13594
13634
|
sepia: "怀旧",
|
|
13595
|
-
greyscale: "灰度"
|
|
13635
|
+
greyscale: "灰度",
|
|
13636
|
+
rotateAdjust: "角度调整",
|
|
13637
|
+
rotation: "旋转角度",
|
|
13638
|
+
flipH: "水平镜像",
|
|
13639
|
+
rotateLeft: "左旋90°",
|
|
13640
|
+
rotateRight: "右旋90°"
|
|
13596
13641
|
},
|
|
13597
13642
|
selection: {
|
|
13598
13643
|
toggle: "切换选择",
|
|
@@ -13632,7 +13677,12 @@ const dicts = {
|
|
|
13632
13677
|
hue: "Hue",
|
|
13633
13678
|
invert: "Invert",
|
|
13634
13679
|
sepia: "Sepia",
|
|
13635
|
-
greyscale: "Greyscale"
|
|
13680
|
+
greyscale: "Greyscale",
|
|
13681
|
+
rotateAdjust: "Rotate & Flip",
|
|
13682
|
+
rotation: "Rotation",
|
|
13683
|
+
flipH: "Flip Horizontal",
|
|
13684
|
+
rotateLeft: "Rotate Left 90°",
|
|
13685
|
+
rotateRight: "Rotate Right 90°"
|
|
13636
13686
|
},
|
|
13637
13687
|
selection: {
|
|
13638
13688
|
toggle: "Toggle Selection",
|
|
@@ -15284,14 +15334,10 @@ const selectionRest = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAiCAY
|
|
|
15284
15334
|
const selectionGroup = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAiCAYAAADVhWD8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODIyQUM5QkUyMDFBMkEwRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpERkFFQjU3QjczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpERkFFQjU3QTczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDg4MDExNzQwNzIwNjgxMTgyMkFGQkMyQkQyOEFDNzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDc4MDExNzQwNzIwNjgxMTgyMkFDOUJFMjAxQTJBMEYiLz4gPC9yZGY6RGVzY3Jp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";
|
|
15285
15335
|
const selectionHover = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAiCAYAAADVhWD8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODIyQUM5QkUyMDFBMkEwRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2RUVDRTY4ODczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2RUVDRTY4NzczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDY4MDExNzQwNzIwNjgxMTgyMkFGQkMyQkQyOEFDNzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDc4MDExNzQwNzIwNjgxMTgyMkFDOUJFMjAxQTJBMEYiLz4gPC9yZGY6RGVzY3Jp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";
|
|
15286
15336
|
const selectionDown = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAiCAYAAADVhWD8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODIyQUM5QkUyMDFBMkEwRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MTg1RjgwRjczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MTg1RjgwRTczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDY4MDExNzQwNzIwNjgxMTgyMkFGQkMyQkQyOEFDNzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDc4MDExNzQwNzIwNjgxMTgyMkFDOUJFMjAxQTJBMEYiLz4gPC9yZGY6RGVzY3Jp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";
|
|
15287
|
-
const
|
|
15288
|
-
const
|
|
15289
|
-
const
|
|
15290
|
-
const
|
|
15291
|
-
const selectionCancelRest = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAiCAYAAADVhWD8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODIyQUM5QkUyMDFBMkEwRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMUM1QzMyNDczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMUM1QzMyMzczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDY4MDExNzQwNzIwNjgxMTgyMkFGQkMyQkQyOEFDNzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDc4MDExNzQwNzIwNjgxMTgyMkFDOUJFMjAxQTJBMEYiLz4gPC9yZGY6RGVzY3Jp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";
|
|
15292
|
-
const selectionCancelGroup = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAiCAYAAADVhWD8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODIyQUM5QkUyMDFBMkEwRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDRjQ1MzBFODczRjMxMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDRjQ1MzBFNzczRjMxMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDg4MDExNzQwNzIwNjgxMTgyMkFGQkMyQkQyOEFDNzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDc4MDExNzQwNzIwNjgxMTgyMkFDOUJFMjAxQTJBMEYiLz4gPC9yZGY6RGVzY3Jp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";
|
|
15293
|
-
const selectionCancelHover = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAiCAYAAADVhWD8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODIyQUM5QkUyMDFBMkEwRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMUM1QzMyODczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMUM1QzMyNzczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDY4MDExNzQwNzIwNjgxMTgyMkFGQkMyQkQyOEFDNzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDc4MDExNzQwNzIwNjgxMTgyMkFDOUJFMjAxQTJBMEYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6dcS+tAAAJKElEQVR42qyYW2xUxxmA53LmnD27vq6x167BpmAwEAgJIWr6EFAQlVJUXFHaB/rUKi0VCBXy1ko89C1V2wAPTVOo0r5QeuOimFYFbARGDREhmECCQTbBeI3v613v7dxnpjPL2eV4vVC16ZF+zc7MP//5zj+3/1/IOQdf5IHiKW/jTzEqm4PCGCuV4XAYKP/Di4svhwEp1rmvx/3fRSjuOA4vByiWUuSj/JcQUpAQ7JfF3zAAI0Vap8FSVdVCXzqd5kWAoPxHmAoQii9Eys6dO2u2b9++WHw1opTCCxcuTJ85c2bOB/CEuL54vrDa2toC1NjYGC+HgU9bMwGQIIR24MCB5r1793Y1NTW9ElJYGzCmYMnlWgNPG3RieHj4o8OHD//z9OnT02KMHZASlAQaHBwsAa1Zs6YyTAAE+xDq/v37Y/v27dvVuijyLTh2GcH4XQQSGc5clXOKOEQUItWFrD4C3dYV3Ih+1ft0MH7u6NGjfz916tSYsGEIsYQ4PpD0Hu/v7y8Abdy48QlMcYVjjMtBtKtXr76+7rnVP0HD/1Dg7Y+wlax2LRh13FAVZURlAGEGqAeR62DFzmOdJVUtmlFyy1ezVHSTe+5C7zHh0V5hK+9D2UGgvr4+vnnz5idrxnXd4twFp0a7du3azo725n386qGQfddgGd5murVRB+g6BYrCIEa8sGTFKI8yant10DDrPTIzq9ZMD2oNHQ+0Ta907T5y5Ei1ADob2H2guNjz+XzBI6jYatu2sK8XFWU7OXny5Mttrc0/Vq4cihjX8yDBF1tWbdQVW0P6EwlXYu5RhVOmyLJQ5wxThXCrpt6dAYst75YLlgydqHph3erv7tmz5yvCbpUQ3d8E0vtg27ZtcN5ukjCB6ZGK2rJly76p3DwWNj51QUpvcUFIAwq2VKwYmDGNcVsIh7z0kQIRERtDYovdBT0vFOIps8mrGxhR2uDZ8Nq1a7cKxYHAQg5uf17yjGVZIOiV7u7u7fXGg9fAzWE15dZ6FCkcYVN11IeLft13eVWa323GIKlz21CZZRJum6qCUuE0G4i9c6VvlauOLIIwTzwxjSmnxqu6N6l1RjIvCu98TdivFhLyPxoFX1x4lixZEjzQ1MbGxm/ot85WZ6aqgItUBByXEJgJH78Wb36UhOQ3PY+asujzRgLmwsg2QoTPhTPofuO7F8djsv/49dEWFeYiwHKJgwjKTEbosqmPq5YuXfqqsB/xp0oNHKAQle9qOXUHDx5cqeVGV6KRWdWkGECxS6BrE+jZ6ve2aE5LUwRwHIG//zAXNapGG8J1iWqjOt7whw/zUYYiUPZLPUgtFTgWgY6DDYpRZCKnNqHMYrGNOwIwSnFRozKQwi5avnz5y9rELd2cxJg6DEFhkGfSxBo1eHUCW292mW6sIQQoDMPjN2jNsPeo7vgNViPrsl32Sz173AbQMlUoptBzKDInAWw2H+rCO2v9aSrCVPRMYZrE82U0OqBaowlO02mMXFuTwrMeyQ0RGhpVzR9tnaXVYnfnbAT/0h8JyVLWZbvsl3pSX47D1FZ5Lo/tiQyKpOIqIeRLcoP4IMVpWnA3Fbwjzpw6kkoQlkxhmHYYS4yUFFwEWGYI2fWbQmh9w/3wrp/2lz7oT29tYJF79WbqimW7KcY4840qCKOUAyHN40hWIZ7XXFUGAp8GA7PZLEe2hXQ7r2DoQQXjeb5TdIIePDKU/e/dmefZ/b/4DHW/8ZyyxKKqZ7gM+DBAgcAzPRDiNs7bKs3lcqDCjQ9QpUtybm4ua4mYRKMG0ewcUfNZpSBmTgmFbDLa6oa6fncnNJ1yQFNUBX878lKhlHXZLvulntQvjMtlC3akvSwTs5fNmpXeWw5TuN5nZmZGpnGNo4dMTLgp/GoURA07JN4OQ11/va9Npx+D9L79IuuqU6ksYw0akO2yX+pJ/cJYJ1+wI+0NW9hJJpPTwcOuGIRVgmEDAwM3b4OWnN5sYaLYCkYmUVWThJq58ua1aWU67T4G+dV63jmS4fRiHHQ+zPCeXz7PYw3CQ6Jf6uktXFE1k8jx0o6015fSc5OTk5/7cU7xBK4IIzu8S5cuPfgkTQYetdZaRHcw11zMiSMOHBv/8Y02/uoLdaD35+vAysFZ4P4rjui9KeR+EEey3vPWOiD7pR4HNuaKGK+6WBV2BuuJdXXcGRWeiQdCiWJ8Mw8mGC7aIyMjPSfg+vHwCgphGEBWK4RasGk6BXu/3wJWjswA7/4k5NCCoIYVSlmX7bJf6kl9OU6O1zsofHu8YSKRSNwMxDZ20DtKhWkqhIsXxQO3bt2waXWs4SU2E817ENCQGDeTACA7B6BDAVeFakMp5hY3nQ288SnAE2KTWB6guogAxUYJ13HQU60nuz9wbwmY60I55wMVQ9L507Rjx46gZ6QLrXg8fu5nA52j8Q49rwuDTJyZnkYBwzZgERdwCdIISiLrsl32ewJc6ofrGXjQjozdvdWjmUxGgqR9mGLUt9AzIsAJrhupZIoY9RNRvvdDc8UPDr02tHSdZdQYNgJUXHNQHOTQPyVKOYoYKQ86bkOAxXeHmxj4GOLMrhNVD2dSmR7TND+TJ4cPY/qeYQu2tg/DA5G9nE9DAJ0ffDj1znf+HDv/20z9mNLOaFhkHZhDwEWozIiYPvVxyREstEdCor+N0kMTZPzrx7ThsZnc+wKkT9ib9T2T9+27ge39JAbesGEDEOkGuH37djD+lZdZWMYfiqI0RqPRby+qRVt2b8kuer3Dru2s9cLMgQVvSC+JkAfcmMG5nkGUefc8np1I0hue510W75DnStL3SjawgL2KMKtWrSrEwENDQ8EUhfgXmu6Hi9XiEm0S4ekWhNDzYmyss9XT6sIcJ7Oc3okDW3zQhGgfFmW/0J/2X57xy+L02GUg82Ha29tLCdX4+Hh5hkB8IN33VFFCAqpZBkvCjsxfZwNTbPseKIpZKVUJpMBPYGKx2Lx0U9xP5eks8eMPLSBqILCGgTXn+i8NJnBOhVN3XtJWghFp54KkXMTFldLbIhgJZJrlubZXlt7SYCZZCWQejLhm54EEpewfB1Qh+UdlVworS/6fCbEARizMUgL+rP8CnvGXyILbP/iXyLMgFvyB83944Bc18G8BBgA793uw1NiJ3wAAAABJRU5ErkJggg==";
|
|
15294
|
-
const selectionCancelDown = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAiCAYAAADVhWD8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODIyQUM5QkUyMDFBMkEwRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpERkFFQjU3NzczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpERkFFQjU3NjczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDY4MDExNzQwNzIwNjgxMTgyMkFGQkMyQkQyOEFDNzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDc4MDExNzQwNzIwNjgxMTgyMkFDOUJFMjAxQTJBMEYiLz4gPC9yZGY6RGVzY3Jp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";
|
|
15337
|
+
const selectionConfirmGroup = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAFHklEQVR4AeyZPYgVVxTH30uVVEnKJGg0VknIBqJgIAZSJsQVIlkhBFIFJRYhZRYstPCjsxAVFVsFFQVXGxsF10LQwvWjFF2/SrXSbv39754Zz8zcN19vZkVQ7v+ec889H/8z47tv3ux7g7f837sG3vQN7OwOLCwsLANbwQFwDsyBZwbpsmlPPsu6anysBiC3GkyDixCaB/vBP+BX8A340CBdNu3JZ14xQLGr8Wk9WjVAYRE/RNVrYBf4CTQdilHsNfIdAq0aadwAhRLim3OM77HeCdaBr8Gn4AODdNm0Jx/5spUO5QqNpJaaSqMGIH+ZvCqGSMcM2tRwOFw5HA63gSvgDngCXhqky6Y9+axUDFAsIh2brUZqqFJqN0Di+yTTFUSEoeKTENwATgVLg0kxYAMhk0C5EGGss1phUTXVaoCECyRaDpIxreLgXGJoK5UDqJFpl2O51XSmuFrZAIlu5EI3UnBPzjb20nJu9Ikitf120EsbIMEJvCZAGBTROBMWPUwkPwOGLvWEcXCmrDqyAQJ12kw59zVO71v1taaMS7RmtAECdCb702YLV+Z6NEMPRqu1xaXW6SROzrSoRhtgy5OfIeFhbEs6rKY/nTynlEuhgcjV7508Nf1/1ZQciq8dvQuFBgjSuYwIQ1d/7KMyZBoxGfkTSD1aZLy4C6rt74LnFnxjDfwcdhan44uinxnSuvI66VTgKOvvpOTgOXhuwS3TAAm+wLoWaDziCvhg2ToDtTx55X3B9BJkhnF4ZMa1xImjLQeDTANY9ciLCONkmHuYIJEnf5symyB7BxkbnovnWGjgSxfd+PnGxY5UW5BXLs/Fcyw04J93niryNcbXWpJXYc/Fc1y6BsYg308DEEpODxUoBb5N/8/n89W+A/nA6BpCR9jQM0plE/iOS55So0f+FNIP88T740TxEkLbWf8NNEqbwLcr8p6L51j4DPhNHySyARx1amBHWCxO0SY6JK8qnovn2LwBZatqomPyKlm7gVvyNvxiMipGNdEDedX3XDzHwh3wD05/KrIMsSbw9x/sqm9Y3GsNz8VzzDYAoQekuwQ0VnA1f5dSBmLyn4nEvRPyxmGFJb1EPXG0ZfFZSBsXNBn+MlkqSJpvohPyVtRz8NzCdv4YldE7TXIF1stYBddEZ+Sttv8N4LkFSoUGIKLfvplfQsGzxkSs7kTZU2WNLBkX/zPyMPnFLeNQaMB2fQO6C/+bvVJQZNQjcWWsd+Dqq6a/+p5T6hptABLq1AfsJuFvaVTPitXa7cpEr772ow1ogyb0WmNWuuG0yaUQvtascYnWHdmAvAn8EZl+dXNlNKLvZ/Abe5Bcf3fQe9gk17xxSNYFWdqAvEnwuaSD3uP7D5fbaq9CXjn1B5M0SaR2upcolQ3IkURD5BxIhv6icpaitY7YJCgmlQOcZU+vMhFhzFnNsCibajWgBCT8Ful/XOuEmFFx8Ad7jYZigIjr0UC5kviTVitZl8raDSgLiTch/enEcqDixyDzEOwFP4CvwCfgfYN02bQnn4cEHgOKRaRDp41qpIYqpVEDSkYTOp309jjfyGfs/wdmB4OBvo0fo+tdjyBdNp1q8pEv2+lQrjWWOzXWURo3oKQUug6SRvTj5qrsDaEYxQbi5NN3T8MUg+zTaNNoFQXbwffErgL/goPgPLgJnhuky6Y9+axSDFBsK+LkDaPVHQiRuQkyd8E+sBWsBxPgI4N02bQnn7u58NbLzhpozWDMwLe+gVcAAAD//3ye7w4AAAAGSURBVAMAOUccf2hZdvAAAAAASUVORK5CYII=";
|
|
15338
|
+
const selectionConfirmDown = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAD9ElEQVR4AexYT2sTQRR/k9pUENSbJsUKCpK02h4q1EMFj4J6tF9AVJqDd0/Wi19A2qL4CexRvXhRsJdKPVhLUzwIVpriTW82IRnfL9nUzGY2M7O7k1BwmbczmXnv94els7PN0CG//hsY9ANM7Qnk5cUz+WqxxLGU3y++5n4jVy3+QmAczC3xuITctIwnMpCrFqZztcLDXLX4jmr1HRa1yDFPgm5wf0kQnUBgHMzN83gRuahp1RameS52i2Ugx8JHq+PPBIl1IcUTQXSNHC/UtGrFOrCA6QjRTHc2ADLBwiXJe02EFG7AAiawXeGcDOSrxQ8gcyWxzQc2OGzzkWdtgIG/c8Esh+82G3BZ8VgZYEDJaGMc/WpjAaeRz2iAgT4bUTwl2HD3NJCvFV+ytkmOQbXJQEMkf6SBUd4mSdLtyMp+LbCGppYIPq0B7MnYESJq+j4NLdCkI9YayFAmtT1eRxpnLkpTlwE4heM4JLFrBK2YaqEJ2sJ5XQaEpFvhJK+/WXxluDzHZ6W3Jh6dti4DJMR1E1Bq623xDCiODN/hl81HHkY3jTbFwKk/F85x9QyH/9YhHmR1qh8XRMcw7hEzgcaDFMXAUCaDY/DBordBSPxpOTGeqTXwzpkwcYY1KgaIRJF8XwnEt6SpGlUDknqcd1rlie6JxTN7SKNqQHg0kIZ41k8hjYoB3gWsn4CQYg54VpGWeCYLa1QM8Lptu7s7srViZSJF8TpxigHexvBhrsv7Nyfl40q2/AITRhMexIc1Kgb49Gk2IMSj/H5hAQYQkSY8iAdfWKNqQJDZAFBMJnyJb3KrGlUDRJvIsYooEz7Ft4QpGlUDw0OvWjmWd42J5sEsKHd5wwYl5i6kUTFQEZs/eJt6b0bpyAiZaK/4EA9t0NjmQK8YwAQJaTzWNvM6byETPsQ36TTaug1IcjcA9MCEN/Hg0GjrMrCX3f4kSDxHvnOwCdtTpSs2NEFbuK7LABIa1IhnAMVExiNxK83tHqVJawBO4diNwl82tECTjkFrAIm72a373K9yDLqtBlq0OiINIJvPPFe5t3s7c6KHthNoiITuaQBVDHAW/SDChttoAMIZSHC/wdGvthFwGvmsDACFAaf4a8j4DyjkJgqcpbLlKVsMawMAxDlHxH1HAMAQwAaHIU1ZdjKASuwIkuRlkOG3NhwngQVMYDuWkrMBEGBPBhlIib/QeG6Nw7WtoRYYwAKmKwDyYxlAIQKklZHtBf77uFJv1M8TyQc8v8xfTW+4/8Knx98IjIO5ZeQgFzWoBQavx26JDHSy/jz69Vslu/2UhZUqI+Wb3E/uZcsnERgHcyXkILezNsk4NQNJRCSpPfQG/gIAAP//D/nBuQAAAAZJREFUAwCjtbZwyLOZfAAAAABJRU5ErkJggg==";
|
|
15339
|
+
const selectionCancelGroup = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAFaUlEQVR4AeyZu49VVRTG77XSSi3VgCCVGMcCEkzExFIjQyJhSIyJJUQKY+kkJkCh2FkYNfAHYAJEEgYbG0kcCxMoHB4lgeFVAhV0w+/bs/ZmnXP2ed47PBIm+zt7nbXX+ta3zrl333PvvDB6xv+eN/Ckb+DU7sDKyso6sB/8Cs6AJXDXIFs+rSlm3bQan6gBxG0B8+BvBC2DX8BX4FPwLnjZIFs+rSlmWTlAuVuIGTwGNUBhCT9C1XPgB/AR6DuUo9xz8B0Bgxrp3QCFovC9JcVXOf8ebAfvgNfBSwbZ8mlNMYplKQ1xhUaSp6PRqwHE/wOvijGlsYA1Nx6PN47H4+/Av+AyuA0eGGTLpzXFbFQOUC5TGnutRnK0GZ0bgPgaZLqCTGGo+CwCd4KTwdPjoBywk5RZIC6mMLZbrXDSdujUAIQrEK0HccyrODgTHUNncQA1Mu841ltN58qbrQ1A9H8pdRcFfyz5Jj41zl2eKFPbLwe7sQEIjhM1A8KgiMapcLIGB8hPgbGjnjENzlU0axsgUbvNnAvf6uy1Nn2tOdOSrZltgATtyX632ceVOZ9lWAOn1drnqLU7SZNzrZrZBljy4hcgPIovO2h2c3ahg7Mp12r63clrSuyVBiBVpz64Tfxxcg4mxo6G5Si36QL42tm7UGmA+tqXmcLQ1c9ulQhQYb3J9Ql7gPPOTVjsASoot7YJ7oJq+7vgtZE+GuUa+DisrB5+X52qR8gv4/UfYJ2acOJJD+OkcYWTzMFr8NpCaKEByN/Cuw1o3ITYJ8tXAOu66oecs7EJ+BWvKx9TDhlHPK/MrEvDTVvYBoc02mn1DuiRNy6eiEbTTAGJam2CworrJd7V9Vq8xspL6G2X5F8ezl0125qYULwKei1eY6UB/7xzR5mP0GzVNTEF8SrstXiN02tAVXJN4B/6siE1jcfTgMplmpBbaH3DKqgGnRuoyX963YVtFJn6Ys4Uxqvh2POQec1HhsYtNgbVzF6L11h5D/hFn1TDW3RnxGvrbN1iiyzZM6/Fa5xeAznxvB/i637SJjo3cNH1/4mzG8068TGJRia9E16L11i5A/7B6YsooGluEx9zJ2zCa/Eaiw1Q5DoFzwKNDYjbLaMOrOvKlvd5/3IppMKveL/e+samhjRsMKKzcEijnVafhbTwlw6GL22uTBDrcVrkcS2+3uN5dkZAuYndxpWNx+k1eG0stTcwC/mOEFk6IESP03twXwKdxBMXBrmxCeXu4VxcYc0frLb/DtDeAGT67lv4JuRJvU2sCkuABPmlVptc5ShXHHXxhW+G5EhbIbb8QRYXfQO6C9/GhfIMaZOAcnjhvCmXq6+a/up7TYkn2wDE6tQnHIbws5S1xobVOuzKHDVNzrVqZhvQEgn6WWNRtuEPmx/H5GstmpZs3doGFE3ih8zpo5sro6FfLXBPf0Cu/zvod9hIvmwa4nllbmxA0RC8qdlBv+P7N5dbGm4iXpz6h0kiydROa9FobUCBEI2Zl0Ac+o/KaYpmt9gY1GUWBzhNrH7KZApjyWqGk6ZDpwZEAOF7zP7LtXaIBRUHn7PWaygHSLgeDcQV809YrXjeOHduQCwQ64PL705yq/gxxNwAP4EPwGbwGnjRIFs+rSnmBonHgHKZ0tBuoxrJ0Wb0akBkNKHdSb8elxt5g/VvwOJoNNIn7C3s+wbZ8mlXU4xiWUpDXFuNOzm7GL0bECmFzoPYiB7O/pO/J5Sj3CAcPn329KQYFZ9G+2arKDgI3id3E/ga/Ab+BBfAPYNs+bSmmE3KAcodJBzeMAbdgZBZOiDmCvgZ7Ac7wAx4xSBbPq0p5kopffDp1BoYrGDCxGe+gYcAAAD//9BXG3kAAAAGSURBVAMAdHBAfzYNF10AAAAASUVORK5CYII=";
|
|
15340
|
+
const selectionCancelDown = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAEXklEQVR4AexYPW8TQRR86yiGDjqwESCBhGwCoQAJiiBRIgEl+QmgpKCnSmj4AyiJ4CeEEmhoQCJNpFAQ8iUKJIJwoIOO2IqXmc1ekj3f+XbvnFiRsPbd29t9M2/Gd7qcU5JD/vlvoN8XsGdXoKovna426+OI6epm/TXyYqVZ/83g3K5NYz7O2l4ZL2Sg0qxdrbRqjyvN+jtpba1D1BRiTJTcQb6sRI4xOLdrY5hPsZaYbWztKtZyj1wGKhB+qnnxuRK1oLR6qkRuSeCHmG2sWiAXOQMpTHmwATZTEK5FPzAMPTiQi5zkDqULMlBt1j+wWWgT33pys4dvPeu8DYD4GwAjiP0eI7aXVx8vAyDUYDuDOKhxxvbM7JdpAESfMln2qcCnd1cD1VZ9FtqGEf0aw1ZDav9UA6fwmBQt91ORB7UBDUZLSr9EA3wm84mQgjnwZWqhpqTGiQZKUgp5xi8nEXuueWPTNHUYoFM69hXQHiyNitZPPOt3y4AxWBEvE9REbbsE27MOA0rLve2tzOMyBfxUyyuNI2uTQSYgnhhiyYFOXiaStHUYEKVug9BnDJWaW6NRIQV5mbDiI5zlGIrOu+YEbY6BE38vnAPBdYTfUGqiulmbjIozTcTEGyw4IrxHvm417pQ6BgZKJb4G72x6TSDACLHFqSbi4lu1CVztCQvzTnGNjgERVZc8nywTcfG8alrtXLmwlq5G14CWLu87GW3STCSJR20GW/p2TKNrQBUwwJYQFr+dzC3FPYTZQw2m+UdMo2NAS0EDlAWBRijne8KsYW/PUq5pXKNjIBdjn0GOASXCH+bFJMXu+YjM3ErYi87z5rhGxwDePosZgEAj1KrjbcOwp2L2UBOd58ra/ZJdA8rdDGoAYUagBRnhvOcRZm7XTQ1q7Wl4iml0DYgshTMCAUFGGKYcRjCEc24Cc7NmTqTolXA0ugYGB17ZHv4pS3zE1CsTMY2OgYZa+o7H1PuoZ2b2FR8RFTRBbdQY0TE7BrggSr81Ofuw3C4P8DezqTS3CASak24H1JhaW2M5vF6nk7R1GtDia2Co1GrPntRDF40gCLOashNqiSGWHAD4vU4naOswsFFe+6hEvQCpzzAm8rxVEhMinpqoLS6qwwAL2tL2NcByv2+PlZ3hjU3TlGiATum4s19/VqiFmpK6Jxpg4Y/yykPkOUS/x5zVkqgj1QCrG+XVm8jFXi9AUGCsWw2pFF0NEAWCs8z9CJ/emQYoHEQKeRFxUGPR9szs52WALCC8Ikpecr6vgR6ml2cTbwPkawyujir/vxGEBAW52SMEFGSAxHwiaNHX2IzniRG4SC5ykjsQKsEG2IDPZDZjU/vfuHmuB8Y8seQgFzkD8aY8lwGDxIFN+TsA9+yNrfbWeRH9CMsz+GX3Bvkz3h7/MDi3azOsYS0xxJID+7lHIQN7u/46+uVro7z2DMLGG0dW7yIPb5RXjzM4t2vjrGHtXmyRec8MFBFRBHvoDfwDAAD//x+MPKwAAAAGSURBVAMATgb/cAoFtJwAAAAASUVORK5CYII=";
|
|
15295
15341
|
function updateOsdTooltips() {
|
|
15296
15342
|
OpenSeadragon.setString("Tooltips.SelectionToggle", t("selection.toggle"));
|
|
15297
15343
|
OpenSeadragon.setString("Tooltips.SelectionConfirm", t("selection.confirm"));
|
|
@@ -15303,6 +15349,7 @@ class SelectionPlugin {
|
|
|
15303
15349
|
__publicField(this, "selection");
|
|
15304
15350
|
// OpenSeadragonSelection instance
|
|
15305
15351
|
__publicField(this, "options");
|
|
15352
|
+
__publicField(this, "listeners", /* @__PURE__ */ new Map());
|
|
15306
15353
|
this.viewer = viewer;
|
|
15307
15354
|
const userOnSelection = options.onSelection;
|
|
15308
15355
|
if (options.onSelection) {
|
|
@@ -15326,15 +15373,15 @@ class SelectionPlugin {
|
|
|
15326
15373
|
DOWN: selectionDown
|
|
15327
15374
|
},
|
|
15328
15375
|
selectionConfirm: {
|
|
15329
|
-
REST:
|
|
15376
|
+
REST: selectionConfirmGroup,
|
|
15330
15377
|
GROUP: selectionConfirmGroup,
|
|
15331
|
-
HOVER:
|
|
15378
|
+
HOVER: selectionConfirmDown,
|
|
15332
15379
|
DOWN: selectionConfirmDown
|
|
15333
15380
|
},
|
|
15334
15381
|
selectionCancel: {
|
|
15335
|
-
REST:
|
|
15382
|
+
REST: selectionCancelGroup,
|
|
15336
15383
|
GROUP: selectionCancelGroup,
|
|
15337
|
-
HOVER:
|
|
15384
|
+
HOVER: selectionCancelDown,
|
|
15338
15385
|
DOWN: selectionCancelDown
|
|
15339
15386
|
}
|
|
15340
15387
|
},
|
|
@@ -15396,16 +15443,35 @@ class SelectionPlugin {
|
|
|
15396
15443
|
);
|
|
15397
15444
|
selectionCanvas.toBlob((blob) => {
|
|
15398
15445
|
userOnSelection(rect, blob);
|
|
15446
|
+
this.disable();
|
|
15399
15447
|
});
|
|
15400
15448
|
} catch (e2) {
|
|
15401
15449
|
console.error("[SelectionPlugin] Error creating blob from selection:", e2);
|
|
15402
15450
|
userOnSelection(rect, null);
|
|
15451
|
+
this.disable();
|
|
15403
15452
|
}
|
|
15404
15453
|
}
|
|
15405
15454
|
};
|
|
15406
15455
|
this.init();
|
|
15407
15456
|
updateOsdTooltips();
|
|
15408
15457
|
}
|
|
15458
|
+
/**
|
|
15459
|
+
* 架构核心:提供通用的外部监听接口 (on)
|
|
15460
|
+
*/
|
|
15461
|
+
on(event2, callback) {
|
|
15462
|
+
if (!this.listeners.has(event2)) {
|
|
15463
|
+
this.listeners.set(event2, []);
|
|
15464
|
+
}
|
|
15465
|
+
this.listeners.get(event2).push(callback);
|
|
15466
|
+
}
|
|
15467
|
+
/**
|
|
15468
|
+
* 内部私有:触发事件 (emit)
|
|
15469
|
+
*/
|
|
15470
|
+
emit(event2, ...args) {
|
|
15471
|
+
if (this.listeners.has(event2)) {
|
|
15472
|
+
this.listeners.get(event2).forEach((cb) => cb(...args));
|
|
15473
|
+
}
|
|
15474
|
+
}
|
|
15409
15475
|
/**
|
|
15410
15476
|
* 更新语言环境,刷新工具提示
|
|
15411
15477
|
*/
|
|
@@ -15436,6 +15502,7 @@ class SelectionPlugin {
|
|
|
15436
15502
|
enable() {
|
|
15437
15503
|
if (this.selection) {
|
|
15438
15504
|
this.selection.enable();
|
|
15505
|
+
this.emit("selectionEnabled", true);
|
|
15439
15506
|
}
|
|
15440
15507
|
}
|
|
15441
15508
|
/**
|
|
@@ -15444,6 +15511,7 @@ class SelectionPlugin {
|
|
|
15444
15511
|
disable() {
|
|
15445
15512
|
if (this.selection) {
|
|
15446
15513
|
this.selection.disable();
|
|
15514
|
+
this.emit("selectionEnabled", false);
|
|
15447
15515
|
}
|
|
15448
15516
|
}
|
|
15449
15517
|
/**
|
|
@@ -15452,6 +15520,9 @@ class SelectionPlugin {
|
|
|
15452
15520
|
toggleState() {
|
|
15453
15521
|
if (this.selection) {
|
|
15454
15522
|
this.selection.toggleState();
|
|
15523
|
+
const enabled = this.selection.isSelecting;
|
|
15524
|
+
this.emit("selectionEnabled", enabled);
|
|
15525
|
+
this.emit("selectionStateToggled", enabled);
|
|
15455
15526
|
}
|
|
15456
15527
|
}
|
|
15457
15528
|
/**
|
|
@@ -15484,7 +15555,7 @@ class SelectionPlugin {
|
|
|
15484
15555
|
*/
|
|
15485
15556
|
isEnabled() {
|
|
15486
15557
|
if (this.selection) {
|
|
15487
|
-
return this.selection.
|
|
15558
|
+
return this.selection.isSelecting;
|
|
15488
15559
|
}
|
|
15489
15560
|
return false;
|
|
15490
15561
|
}
|
|
@@ -15501,6 +15572,7 @@ const buttonAnno = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAA
|
|
|
15501
15572
|
const buttonSelection = "data:image/png;base64,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";
|
|
15502
15573
|
const buttonColorAdjust = "data:image/png;base64,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";
|
|
15503
15574
|
const buttonReset = "data:image/png;base64,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";
|
|
15575
|
+
const buttonRotate = "data:image/png;base64,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";
|
|
15504
15576
|
var ToolbarPosition = /* @__PURE__ */ ((ToolbarPosition2) => {
|
|
15505
15577
|
ToolbarPosition2["TOP_LEFT"] = "TOP_LEFT";
|
|
15506
15578
|
ToolbarPosition2["TOP_CENTER"] = "TOP_CENTER";
|
|
@@ -15524,6 +15596,9 @@ const createAnnoDropdownContent = (engine, hide) => {
|
|
|
15524
15596
|
colors.forEach((c2) => {
|
|
15525
15597
|
const dot = document.createElement("div");
|
|
15526
15598
|
dot.className = "med-color-item";
|
|
15599
|
+
if (c2 === selectedColor) {
|
|
15600
|
+
dot.classList.add("active");
|
|
15601
|
+
}
|
|
15527
15602
|
dot.style.backgroundColor = c2;
|
|
15528
15603
|
dot.onclick = () => {
|
|
15529
15604
|
selectedColor = c2;
|
|
@@ -15786,6 +15861,94 @@ const createColorAdjustDropdownContent = (engine, hide) => {
|
|
|
15786
15861
|
container.appendChild(resetButton);
|
|
15787
15862
|
return container;
|
|
15788
15863
|
};
|
|
15864
|
+
const createRotateAdjustDropdownContent = (engine, hide) => {
|
|
15865
|
+
const container = document.createElement("div");
|
|
15866
|
+
container.className = "med-toolbar-dropdown-inner med-rotate-adjust-dropdown";
|
|
15867
|
+
if (engine.anno)
|
|
15868
|
+
engine.anno.setEnabled(false);
|
|
15869
|
+
if (engine.selection)
|
|
15870
|
+
engine.selection.disable();
|
|
15871
|
+
const rotationSection = document.createElement("div");
|
|
15872
|
+
rotationSection.className = "med-toolbar-section";
|
|
15873
|
+
rotationSection.innerHTML = `<div class="med-toolbar-section-title">${t("toolbar.rotation")}</div>`;
|
|
15874
|
+
const rotationSlider = document.createElement("input");
|
|
15875
|
+
rotationSlider.type = "range";
|
|
15876
|
+
rotationSlider.id = "rotation-slider";
|
|
15877
|
+
rotationSlider.min = "0";
|
|
15878
|
+
rotationSlider.max = "360";
|
|
15879
|
+
rotationSlider.step = "1";
|
|
15880
|
+
const currentRotation = engine.viewer.viewport.getRotation() || 0;
|
|
15881
|
+
rotationSlider.value = String(currentRotation);
|
|
15882
|
+
const rotationValue = document.createElement("span");
|
|
15883
|
+
rotationValue.className = "med-slider-value";
|
|
15884
|
+
rotationValue.textContent = `${currentRotation}°`;
|
|
15885
|
+
const debouncedRotation = debounce((val) => {
|
|
15886
|
+
engine.viewer.viewport.setRotation(val);
|
|
15887
|
+
}, 100);
|
|
15888
|
+
rotationSlider.oninput = (e2) => {
|
|
15889
|
+
const val = parseFloat(e2.target.value);
|
|
15890
|
+
rotationValue.textContent = `${val}°`;
|
|
15891
|
+
debouncedRotation(val);
|
|
15892
|
+
};
|
|
15893
|
+
rotationSection.appendChild(rotationSlider);
|
|
15894
|
+
rotationSection.appendChild(rotationValue);
|
|
15895
|
+
container.appendChild(rotationSection);
|
|
15896
|
+
const quickRotateSection = document.createElement("div");
|
|
15897
|
+
quickRotateSection.className = "med-rotate-quick-btns";
|
|
15898
|
+
const createQuickBtn = (label, onClick) => {
|
|
15899
|
+
const btn = document.createElement("button");
|
|
15900
|
+
btn.className = "med-tool-item";
|
|
15901
|
+
btn.textContent = label;
|
|
15902
|
+
btn.onclick = onClick;
|
|
15903
|
+
return btn;
|
|
15904
|
+
};
|
|
15905
|
+
quickRotateSection.appendChild(
|
|
15906
|
+
createQuickBtn(t("toolbar.rotateLeft"), () => {
|
|
15907
|
+
const cur = engine.viewer.viewport.getRotation() || 0;
|
|
15908
|
+
const next = (cur - 90 + 360) % 360;
|
|
15909
|
+
engine.viewer.viewport.setRotation(next);
|
|
15910
|
+
rotationSlider.value = String(next);
|
|
15911
|
+
rotationValue.textContent = `${next}°`;
|
|
15912
|
+
})
|
|
15913
|
+
);
|
|
15914
|
+
quickRotateSection.appendChild(
|
|
15915
|
+
createQuickBtn(t("toolbar.rotateRight"), () => {
|
|
15916
|
+
const cur = engine.viewer.viewport.getRotation() || 0;
|
|
15917
|
+
const next = (cur + 90) % 360;
|
|
15918
|
+
engine.viewer.viewport.setRotation(next);
|
|
15919
|
+
rotationSlider.value = String(next);
|
|
15920
|
+
rotationValue.textContent = `${next}°`;
|
|
15921
|
+
})
|
|
15922
|
+
);
|
|
15923
|
+
container.appendChild(quickRotateSection);
|
|
15924
|
+
const flipSection = document.createElement("div");
|
|
15925
|
+
flipSection.className = "med-toolbar-section med-checkbox-section";
|
|
15926
|
+
const flipLabel = document.createElement("label");
|
|
15927
|
+
flipLabel.htmlFor = "flip-checkbox";
|
|
15928
|
+
flipLabel.textContent = t("toolbar.flipH");
|
|
15929
|
+
const flipCheckbox = document.createElement("input");
|
|
15930
|
+
flipCheckbox.type = "checkbox";
|
|
15931
|
+
flipCheckbox.id = "flip-checkbox";
|
|
15932
|
+
flipCheckbox.checked = engine.viewer.viewport.flipped || false;
|
|
15933
|
+
flipCheckbox.onchange = (e2) => {
|
|
15934
|
+
engine.viewer.viewport.setFlip(e2.target.checked);
|
|
15935
|
+
};
|
|
15936
|
+
flipSection.appendChild(flipLabel);
|
|
15937
|
+
flipSection.appendChild(flipCheckbox);
|
|
15938
|
+
container.appendChild(flipSection);
|
|
15939
|
+
const resetButton = document.createElement("button");
|
|
15940
|
+
resetButton.className = "med-main-btn med-reset-btn";
|
|
15941
|
+
resetButton.textContent = t("toolbar.reset");
|
|
15942
|
+
resetButton.onclick = () => {
|
|
15943
|
+
engine.viewer.viewport.setRotation(0);
|
|
15944
|
+
engine.viewer.viewport.setFlip(false);
|
|
15945
|
+
rotationSlider.value = "0";
|
|
15946
|
+
rotationValue.textContent = "0°";
|
|
15947
|
+
flipCheckbox.checked = false;
|
|
15948
|
+
};
|
|
15949
|
+
container.appendChild(resetButton);
|
|
15950
|
+
return container;
|
|
15951
|
+
};
|
|
15789
15952
|
const DEFAULT_BUTTONS = [
|
|
15790
15953
|
{
|
|
15791
15954
|
id: "reset",
|
|
@@ -15812,7 +15975,15 @@ const DEFAULT_BUTTONS = [
|
|
|
15812
15975
|
id: "colorAdjust",
|
|
15813
15976
|
icon: buttonColorAdjust,
|
|
15814
15977
|
dropdownContent: createColorAdjustDropdownContent,
|
|
15815
|
-
label: t("toolbar.colorAdjust")
|
|
15978
|
+
label: t("toolbar.colorAdjust"),
|
|
15979
|
+
activeOnDropdown: true
|
|
15980
|
+
},
|
|
15981
|
+
{
|
|
15982
|
+
id: "rotateAdjust",
|
|
15983
|
+
icon: buttonRotate,
|
|
15984
|
+
dropdownContent: createRotateAdjustDropdownContent,
|
|
15985
|
+
label: t("toolbar.rotateAdjust"),
|
|
15986
|
+
activeOnDropdown: true
|
|
15816
15987
|
},
|
|
15817
15988
|
{
|
|
15818
15989
|
id: "selection",
|
|
@@ -15820,6 +15991,7 @@ const DEFAULT_BUTTONS = [
|
|
|
15820
15991
|
label: t("toolbar.screenshot"),
|
|
15821
15992
|
onClick: (engine, hide) => {
|
|
15822
15993
|
var _a2;
|
|
15994
|
+
console.log("selection toggleState");
|
|
15823
15995
|
(_a2 = engine.selection) == null ? void 0 : _a2.toggleState();
|
|
15824
15996
|
if (engine.anno) {
|
|
15825
15997
|
engine.anno.setEnabled(false);
|
|
@@ -15836,6 +16008,13 @@ class MedToolbar {
|
|
|
15836
16008
|
__publicField(this, "element");
|
|
15837
16009
|
__publicField(this, "dropdownElement", null);
|
|
15838
16010
|
__publicField(this, "outsideClickHandler", null);
|
|
16011
|
+
__publicField(this, "buttonElements", /* @__PURE__ */ new Map());
|
|
16012
|
+
__publicField(this, "buttonConfigs", /* @__PURE__ */ new Map());
|
|
16013
|
+
__publicField(this, "activeButtons", /* @__PURE__ */ new Set());
|
|
16014
|
+
__publicField(this, "activeDropdownButtonId", null);
|
|
16015
|
+
__publicField(this, "_annoListenerBound", false);
|
|
16016
|
+
__publicField(this, "_selectionListenerBound", false);
|
|
16017
|
+
__publicField(this, "_bindRetryCount", 0);
|
|
15839
16018
|
this.engine = engine;
|
|
15840
16019
|
this.options = options;
|
|
15841
16020
|
this.element = document.createElement("div");
|
|
@@ -15843,6 +16022,8 @@ class MedToolbar {
|
|
|
15843
16022
|
this.injectStyles();
|
|
15844
16023
|
this.render();
|
|
15845
16024
|
this.mount();
|
|
16025
|
+
this.bindActiveEvents();
|
|
16026
|
+
this.deferBindPluginListeners();
|
|
15846
16027
|
}
|
|
15847
16028
|
/**
|
|
15848
16029
|
* 显示工具栏
|
|
@@ -15868,13 +16049,76 @@ class MedToolbar {
|
|
|
15868
16049
|
isVisible() {
|
|
15869
16050
|
return this.element.style.display !== "none";
|
|
15870
16051
|
}
|
|
16052
|
+
/**
|
|
16053
|
+
* 设置按钮激活状态(公开接口,供外部自定义按钮控制)
|
|
16054
|
+
*/
|
|
16055
|
+
setButtonActive(id, active) {
|
|
16056
|
+
const btn = this.buttonElements.get(id);
|
|
16057
|
+
if (!btn)
|
|
16058
|
+
return;
|
|
16059
|
+
if (active) {
|
|
16060
|
+
this.activeButtons.add(id);
|
|
16061
|
+
btn.classList.add("active");
|
|
16062
|
+
} else {
|
|
16063
|
+
this.activeButtons.delete(id);
|
|
16064
|
+
btn.classList.remove("active");
|
|
16065
|
+
}
|
|
16066
|
+
}
|
|
16067
|
+
/**
|
|
16068
|
+
* 绑定自定义按钮的 activeEvent 声明式事件
|
|
16069
|
+
*/
|
|
16070
|
+
bindActiveEvents() {
|
|
16071
|
+
this.buttonConfigs.forEach((config, id) => {
|
|
16072
|
+
if (config.activeEvent) {
|
|
16073
|
+
try {
|
|
16074
|
+
config.activeEvent.emitter.on(config.activeEvent.event, (data) => {
|
|
16075
|
+
this.setButtonActive(id, config.activeEvent.mapToActive(data));
|
|
16076
|
+
});
|
|
16077
|
+
} catch (e2) {
|
|
16078
|
+
console.warn(`[MedToolbar] Failed to bind activeEvent for button "${id}":`, e2);
|
|
16079
|
+
}
|
|
16080
|
+
}
|
|
16081
|
+
});
|
|
16082
|
+
}
|
|
16083
|
+
/**
|
|
16084
|
+
* 延迟绑定插件事件监听
|
|
16085
|
+
*/
|
|
16086
|
+
deferBindPluginListeners() {
|
|
16087
|
+
setTimeout(() => this.bindPluginListeners(), 0);
|
|
16088
|
+
}
|
|
16089
|
+
/**
|
|
16090
|
+
* 绑定插件事件监听(anno modeChange / selection selectionEnabled)
|
|
16091
|
+
*/
|
|
16092
|
+
bindPluginListeners() {
|
|
16093
|
+
if (this.engine.anno && !this._annoListenerBound) {
|
|
16094
|
+
this.engine.anno.on("modeChange", (state) => {
|
|
16095
|
+
this.setButtonActive("anno", state.enabled);
|
|
16096
|
+
});
|
|
16097
|
+
this._annoListenerBound = true;
|
|
16098
|
+
}
|
|
16099
|
+
if (this.engine.selection && !this._selectionListenerBound) {
|
|
16100
|
+
this.engine.selection.on("selectionEnabled", (enabled) => {
|
|
16101
|
+
console.log("selectionEnabled", enabled);
|
|
16102
|
+
this.setButtonActive("selection", enabled);
|
|
16103
|
+
});
|
|
16104
|
+
this._selectionListenerBound = true;
|
|
16105
|
+
}
|
|
16106
|
+
if (!this._annoListenerBound && ++this._bindRetryCount < 20) {
|
|
16107
|
+
setTimeout(() => this.bindPluginListeners(), 500);
|
|
16108
|
+
}
|
|
16109
|
+
}
|
|
15871
16110
|
destroy() {
|
|
15872
16111
|
this.closeDropdown(true);
|
|
15873
16112
|
this.element.remove();
|
|
16113
|
+
this.buttonElements.clear();
|
|
16114
|
+
this.buttonConfigs.clear();
|
|
16115
|
+
this.activeButtons.clear();
|
|
15874
16116
|
this.engine = null;
|
|
15875
16117
|
}
|
|
15876
16118
|
render() {
|
|
15877
16119
|
this.element.innerHTML = "";
|
|
16120
|
+
this.buttonElements.clear();
|
|
16121
|
+
this.buttonConfigs.clear();
|
|
15878
16122
|
let buttonsToRender;
|
|
15879
16123
|
if (this.options.buttons && this.options.buttons.length > 0) {
|
|
15880
16124
|
const defaultButtonMap = new Map(DEFAULT_BUTTONS.map((btn) => [btn.id, btn]));
|
|
@@ -15890,6 +16134,8 @@ class MedToolbar {
|
|
|
15890
16134
|
wrapper.className = "med-toolbar-item-wrapper";
|
|
15891
16135
|
const btn = document.createElement("button");
|
|
15892
16136
|
btn.className = "med-main-btn";
|
|
16137
|
+
this.buttonElements.set(btnConfig.id, btn);
|
|
16138
|
+
this.buttonConfigs.set(btnConfig.id, btnConfig);
|
|
15893
16139
|
if (btnConfig.icon) {
|
|
15894
16140
|
const img = document.createElement("img");
|
|
15895
16141
|
img.src = btnConfig.icon;
|
|
@@ -15922,6 +16168,10 @@ class MedToolbar {
|
|
|
15922
16168
|
});
|
|
15923
16169
|
}
|
|
15924
16170
|
showDropdown(parent, config) {
|
|
16171
|
+
this.activeDropdownButtonId = config.id;
|
|
16172
|
+
if (config.activeOnDropdown) {
|
|
16173
|
+
this.setButtonActive(config.id, true);
|
|
16174
|
+
}
|
|
15925
16175
|
this.dropdownElement = document.createElement("div");
|
|
15926
16176
|
this.dropdownElement.className = "med-toolbar-dropdown";
|
|
15927
16177
|
const content = config.dropdownContent(this.engine, () => this.closeDropdown());
|
|
@@ -15964,6 +16214,13 @@ class MedToolbar {
|
|
|
15964
16214
|
}
|
|
15965
16215
|
}
|
|
15966
16216
|
closeDropdown(immediate = false) {
|
|
16217
|
+
if (this.activeDropdownButtonId) {
|
|
16218
|
+
const btnConfig = this.buttonConfigs.get(this.activeDropdownButtonId);
|
|
16219
|
+
if (btnConfig == null ? void 0 : btnConfig.activeOnDropdown) {
|
|
16220
|
+
this.setButtonActive(this.activeDropdownButtonId, false);
|
|
16221
|
+
}
|
|
16222
|
+
}
|
|
16223
|
+
this.activeDropdownButtonId = null;
|
|
15967
16224
|
if (this.dropdownElement) {
|
|
15968
16225
|
const el = this.dropdownElement;
|
|
15969
16226
|
this.dropdownElement = null;
|
|
@@ -16033,7 +16290,7 @@ class MedToolbar {
|
|
|
16033
16290
|
align-items: center;
|
|
16034
16291
|
justify-content: center;
|
|
16035
16292
|
}
|
|
16036
|
-
.med-main-btn:hover { background: rgba(49, 208, 170, 0.2); }
|
|
16293
|
+
.med-main-btn:hover, .med-main-btn.active { background: rgba(49, 208, 170, 0.2); }
|
|
16037
16294
|
.med-main-btn:active { transform: scale(0.9); }
|
|
16038
16295
|
.med-main-btn img { width: 24px; height: 24px; }
|
|
16039
16296
|
|
|
@@ -16166,6 +16423,20 @@ class MedToolbar {
|
|
|
16166
16423
|
min-width: 280px;
|
|
16167
16424
|
}
|
|
16168
16425
|
|
|
16426
|
+
/* 角度调整下拉框样式 */
|
|
16427
|
+
.med-rotate-adjust-dropdown {
|
|
16428
|
+
min-width: 250px;
|
|
16429
|
+
}
|
|
16430
|
+
|
|
16431
|
+
.med-rotate-quick-btns {
|
|
16432
|
+
display: flex;
|
|
16433
|
+
gap: 8px;
|
|
16434
|
+
margin-bottom: 15px;
|
|
16435
|
+
}
|
|
16436
|
+
.med-rotate-quick-btns .med-tool-item {
|
|
16437
|
+
flex: 1;
|
|
16438
|
+
}
|
|
16439
|
+
|
|
16169
16440
|
.med-toolbar-section {
|
|
16170
16441
|
margin-bottom: 15px;
|
|
16171
16442
|
display: flex;
|
|
@@ -16467,6 +16738,38 @@ class MedViewerEngine {
|
|
|
16467
16738
|
updateAIMarks(aiBoxes = [], showLabel = false) {
|
|
16468
16739
|
this.loadAIMarks(aiBoxes, showLabel);
|
|
16469
16740
|
}
|
|
16741
|
+
async goToPosition(target, animate = true, mag = null) {
|
|
16742
|
+
var _a2, _b2, _c2, _d2;
|
|
16743
|
+
const point = this.viewer.viewport.imageToViewportCoordinates(target.x, target.y);
|
|
16744
|
+
if (!point)
|
|
16745
|
+
return;
|
|
16746
|
+
if (!mag) {
|
|
16747
|
+
this.viewer.viewport.panTo(point, animate);
|
|
16748
|
+
return;
|
|
16749
|
+
}
|
|
16750
|
+
const { plugins } = this.options;
|
|
16751
|
+
const config = typeof (plugins == null ? void 0 : plugins.magnification) === "object" ? plugins.magnification : {};
|
|
16752
|
+
if (config.type === "LD") {
|
|
16753
|
+
const tiledImage = this.viewer.world.getItemAt(0);
|
|
16754
|
+
if (!tiledImage)
|
|
16755
|
+
return;
|
|
16756
|
+
const source = this.viewer.source;
|
|
16757
|
+
const width = source.width;
|
|
16758
|
+
source.height;
|
|
16759
|
+
const pixelsPerMeter = typeof (plugins == null ? void 0 : plugins.scalebar) === "object" && ((_a2 = plugins == null ? void 0 : plugins.scalebar) == null ? void 0 : _a2.pixelsPerMeter) ? (_b2 = plugins == null ? void 0 : plugins.scalebar) == null ? void 0 : _b2.pixelsPerMeter : ((_c2 = this.viewer.scalebarInstance) == null ? void 0 : _c2.pixelsPerMeter) || 96;
|
|
16760
|
+
const conversionFactor = 20 * 11e-4 * pixelsPerMeter / width;
|
|
16761
|
+
const targetZoom = mag / conversionFactor;
|
|
16762
|
+
await this.viewer.viewport.zoomTo(targetZoom, void 0, animate).panTo(point, animate);
|
|
16763
|
+
} else {
|
|
16764
|
+
const tiledImage = this.viewer.world.getItemAt(0);
|
|
16765
|
+
if (!tiledImage)
|
|
16766
|
+
return;
|
|
16767
|
+
const baseMag = ((_d2 = this.viewer.source) == null ? void 0 : _d2.max_magnification) || 40;
|
|
16768
|
+
const targetImageZoom = mag / baseMag;
|
|
16769
|
+
const targetViewportZoom = this.viewer.viewport.imageToViewportZoom(targetImageZoom);
|
|
16770
|
+
await this.viewer.viewport.zoomTo(targetViewportZoom, void 0, animate).panTo(point, animate);
|
|
16771
|
+
}
|
|
16772
|
+
}
|
|
16470
16773
|
clearAIMarks() {
|
|
16471
16774
|
const aiBoxesList = Array.from(
|
|
16472
16775
|
document.getElementsByClassName("ld-ai-box")
|
|
@@ -16551,6 +16854,40 @@ class MedViewerEngine {
|
|
|
16551
16854
|
console.log(`[MedEngine] Locale changed to ${locale}`);
|
|
16552
16855
|
}
|
|
16553
16856
|
}
|
|
16857
|
+
const MedViewer = defineComponent({
|
|
16858
|
+
name: "MedViewer",
|
|
16859
|
+
props: {
|
|
16860
|
+
options: {
|
|
16861
|
+
type: Object,
|
|
16862
|
+
required: true
|
|
16863
|
+
}
|
|
16864
|
+
},
|
|
16865
|
+
emits: ["ready"],
|
|
16866
|
+
setup(props, { slots, expose, emit }) {
|
|
16867
|
+
const containerRef = shallowRef(null);
|
|
16868
|
+
const engineRef = shallowRef(null);
|
|
16869
|
+
onMounted(() => {
|
|
16870
|
+
if (!containerRef.value)
|
|
16871
|
+
return;
|
|
16872
|
+
engineRef.value = new MedViewerEngine({
|
|
16873
|
+
osdOptions: props.options.osdOptions,
|
|
16874
|
+
locale: props.options.locale,
|
|
16875
|
+
plugins: props.options.plugins
|
|
16876
|
+
});
|
|
16877
|
+
emit("ready", engineRef.value);
|
|
16878
|
+
});
|
|
16879
|
+
onBeforeUnmount(() => {
|
|
16880
|
+
var _a2;
|
|
16881
|
+
(_a2 = engineRef.value) == null ? void 0 : _a2.destroy();
|
|
16882
|
+
engineRef.value = null;
|
|
16883
|
+
});
|
|
16884
|
+
expose({ engine: engineRef });
|
|
16885
|
+
return () => {
|
|
16886
|
+
var _a2;
|
|
16887
|
+
return h$1("div", { class: "med-viewer", ref: containerRef }, (_a2 = slots.default) == null ? void 0 : _a2.call(slots));
|
|
16888
|
+
};
|
|
16889
|
+
}
|
|
16890
|
+
});
|
|
16554
16891
|
if (typeof window !== "undefined") {
|
|
16555
16892
|
window.MedViewerSDK = {
|
|
16556
16893
|
MedViewerEngine,
|
|
@@ -16568,7 +16905,9 @@ export {
|
|
|
16568
16905
|
MagnificationPosition,
|
|
16569
16906
|
MagnificationType,
|
|
16570
16907
|
MedToolbar,
|
|
16908
|
+
MedViewer,
|
|
16571
16909
|
MedViewerEngine,
|
|
16910
|
+
default2 as OpenSeadragon,
|
|
16572
16911
|
ScalebarLocation,
|
|
16573
16912
|
ScalebarType,
|
|
16574
16913
|
SelectionPlugin,
|