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.
@@ -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.setEnabled(false);
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.setEnabled(true);
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 selectionConfirmRest = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAiCAYAAADVhWD8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODIyQUM5QkUyMDFBMkEwRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MTg1RjgxMzczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MTg1RjgxMjczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDY4MDExNzQwNzIwNjgxMTgyMkFGQkMyQkQyOEFDNzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDc4MDExNzQwNzIwNjgxMTgyMkFDOUJFMjAxQTJBMEYiLz4gPC9yZGY6RGVzY3Jp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";
15288
- const selectionConfirmGroup = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAiCAYAAADVhWD8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODIyQUM5QkUyMDFBMkEwRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDRjQ1MzBFNDczRjMxMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpERkFFQjU3RTczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDg4MDExNzQwNzIwNjgxMTgyMkFGQkMyQkQyOEFDNzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDc4MDExNzQwNzIwNjgxMTgyMkFDOUJFMjAxQTJBMEYiLz4gPC9yZGY6RGVzY3Jp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";
15289
- const selectionConfirmHover = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAiCAYAAADVhWD8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODIyQUM5QkUyMDFBMkEwRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MTg1RjgxNzczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MTg1RjgxNjczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDY4MDExNzQwNzIwNjgxMTgyMkFGQkMyQkQyOEFDNzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDc4MDExNzQwNzIwNjgxMTgyMkFDOUJFMjAxQTJBMEYiLz4gPC9yZGY6RGVzY3Jp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";
15290
- const selectionConfirmDown = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAiCAYAAADVhWD8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODIyQUM5QkUyMDFBMkEwRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMUM1QzMyMDczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMUM1QzMxRjczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDY4MDExNzQwNzIwNjgxMTgyMkFGQkMyQkQyOEFDNzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDc4MDExNzQwNzIwNjgxMTgyMkFDOUJFMjAxQTJBMEYiLz4gPC9yZGY6RGVzY3Jp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";
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+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODIyQUM5QkUyMDFBMkEwRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMUM1QzMyODczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMUM1QzMyNzczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDY4MDExNzQwNzIwNjgxMTgyMkFGQkMyQkQyOEFDNzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDc4MDExNzQwNzIwNjgxMTgyMkFDOUJFMjAxQTJBMEYiLz4gPC9yZGY6RGVzY3Jp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";
15294
- const selectionCancelDown = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAiCAYAAADVhWD8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODIyQUM5QkUyMDFBMkEwRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpERkFFQjU3NzczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpERkFFQjU3NjczRjExMUU1OEFDRDgxN0E3MzVCRjJGOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDY4MDExNzQwNzIwNjgxMTgyMkFGQkMyQkQyOEFDNzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDc4MDExNzQwNzIwNjgxMTgyMkFDOUJFMjAxQTJBMEYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5hnk7XAAAJVElEQVR42qRYe2xUWRk/j3vunfe0nXZaaKdleJaHPApEcEU2LqxGEiOJMWgCIZoY/4E1EDcxEdGsfxhJNCJL+GPFx0rYrEvCogZQHhLWFdYFul1YYPraQqedttPOszNz5z6O3xnuLbfDQLLhZr6cOed895zf+V7n+y7mnKPneTA81WP8KYuKYSeZpjnTejwehD8LGGtje3PsILtvL8YdVOmXy2VeDcBuBdXX1yPpM4IQRICo1dr/sQOMIBPIcLayLFfmMpkMtwE4qbLPsyRTA4RkERO0ZcsW77Zt25rg1ETXdXzhwoX05cuX8xYAHUizSLfItAHH4/FZoKLR6NPBOIA4QSg7d+4M7d+///ORSKTTUAtt8f579dw6WVNkftogbPTu3bu9hw4dunnp0qUUDKsOmgUqFovNAFq2bFltMA4g1AIh7969O7Rv374XGzzy1o/f+9fqiYHe5ux40muUDY5NDO+YiCoS9jY2TDdGFySia1746P5Q/L0jR4787+LFixOwRgGoBFS2AAnp8Zs3b1YArVu37jEY28IppdVAlHPnzq1fv7Zrx42/v7VhuLt7XjY+ScvpaQNrOmcARcKIY1gGE/gxSljQS1ytDWZw6dIH8za+/P6p0+/+8+DBg7dgrWkLlOoEdOXKFb558+bHBqxpmm1ITtUocKpNC9pbv3Xxjd98ZezjWKA4ljFcuqm1MGYEFJfppgRRcAohS3EYTdeJOlnCpalhmhtPzeudHG/csullhbz2mufAgQPXHd5ne505PT3NZxlwLpdDgUDAlooA4jp+/PiyL39p0/ffP3HsG6M37nt4umiEqKSHmWz6KDNlQjgjeGZ1bgIqw+CaoWNV1UjB1LBWLytk7SLVu+Grp//w5om/nThx4g6wZi0pqZaBV4x6RjKqqiKHeoS3KMuXL//CjTNvbh3rjvlIpqjNVWS9JaCYAT+waATzMgUAlkwqZzIRkzmRJYKVvGTKWc6LkwVV747JZbe8taurawjADDsM2en+nNhgSqWS/VeMsZMnT27IDn6ybazn3hw0NW3MZcycWy8j71Ki/AlpgeJi7pYaKUMuRrksS9gtS6xJYsVO5P6jxAN8CXEzP5EUQpCcyBreWF9jRCps3rVr12pY3y8kbx2aODeuPOCqzoAmt7e3rx/7pHu1OpoyQgSbISZxfyMl70wSV3xaIW/0YVdpvi6zOk6wjLFo1YWG/PuBR/OnsrJLDoFBEUwIBFvanzTC6fjKJUuWLIb1vUBusY8jgGJS7dXCXvbs2dOWjw+sKYwkgu6SZoYkhrwKIxKjdOcL2JwT9oCCfegvA25FW6gp3ojORCv6JvUhMb9zIzepQimRKcEUjCunmsHRhK+FlJaA+uc6wEi2UZMqIBUvggC0ODc2FOVTeV4Hwz6ZYuaViFHg2Duumz/8Wt4MhxRkEC96+2EdG2s1ZdGKvhgX896kaXKdYeaHE4ClGxwkOJLjc3Aegm00YqnJBlNTMhU1wT3SnBl+4C/E+riUSSEFwCghN6EeDy4mvdyVkIwfbElyv9tAeZWit283ENGKvhgX84JP8CthNyGKRPTCNC4PxbknN+FVFKVOOIgFxFbTExdlRTpwz/ioCorPTCItm8GZyZgpSdGKKAE+1yYkFFrrM1eF+8m3X701EzdO/moNlz/1mMkbea5ldc7BT8CeyHTfkKFNlcDw6rCHl1yGYbiqgOCngcH5fJ6HqIn9Xo49ENGY3wAIE4+kyHFFuvcTZfTK4f5Zucwrv7yD39q7ADWiPMTkMhCHnSiSgzr4P0R3P6hK0hEEOVTjxkek1iWZSqWK1Kuo/iZGPM1w5YQ5pYpGJLdOXCFMkmGZ7vhtHx2fKoONyOivh7sqreiLcTEv+AQ/llQiN5rUBet4WhgxfFTLZrNarX2rwVQiYSKRmNAYS/vnuJA3jIinycBUKYoTorGQjHccfUDGUxoKN8jo3O9W8a3zJS7aZgEIxsW84BP8hBWRu1HH3mZE/BEFJzUzDYfNO4OdnYTVAmPevn17IFGgg65IHZb94El1iEhejbhbJPKT01OPgRxdhVr1NMreG0KtWhqdfX0VsgEJPsEvuctwcSLiDlLsW1CH/30/NQiHTVrXgOHIcZ4AIyb0a9euJWKjpR5tbjTtDvoAENhhkGPJo+PjP+5AX+yqQ+ePrkARI4mKI3Gs55O4OBrHon/29RWVecEn+MV74v1Agw/nmlvT714bGQQ1JR2phJ3fzALjTBfV/v7+ng9G2QeuhRGI+DJiPgziUVEjSaF//GIOaidJpGXGwKBUxAK80op+B4yLecEn+MV7HllGwc429OfrqQ+TyeSII7dRndKRaqipki5evXq1m9IXL2/4zqLlK3mqTTMT4EQGMkpJxEE13DQQdekAwpGDYxUZxTFkQswxdR3ECRdnSUL+xjDq90SGD5+6fmtqamoAmPMWIDslna2m7du3OyUjRFgaGhq6deid5PmJtpUpn6cJMUOCOGMgTEsAREOST7g93HYBVGlFX4yLeYi5Ff6grwnlostT3zx46zyo5wGsm7HA2FnfjGRmwFi+b9uNYCoODg72xfqGLu09NnYm3tI17g92IKUI9Y1GRWqKCCSFGGRrU6UP42JeBr5gsB0lWj43/tKPbp55ODLZC2nKp7Bu2gJTtCRj2htLVWC4hRRb+iwMDAx8CHP6tleTD3+9d9HXty4ML3VNDLNyKoV0XITr2HgkXxFtDYoY9yAZoj2PtGlne+m97/78P9cyucI9iOox4Jq0JONMrGz3fpzpQeKDIEyjnp4eZ/4rwrZH5B+QG4eg0NoYbfOv+tn3FqzpiuBImOWDqFSs2A+m8IrLg4YL7snuB9rIT4/d+ejOQGbQAWLKkkrOYcB6TTCdnZ2VHLi3t9dZojDrQhPXvU+AIoSE3G73CmhbRf+ldQ2hcD1TElMl9fx/JybhQHlYJwX00AKQs9LMnEM9ahWQ2WA6OjpmCqqRkZHqCoFZgNyWpGxygY3UixbWMazNdEedVHBQsVap4iiBH4Npbm6eVW6m0+nqcpZZ+YfiINkap47y1rBsoVxVwJVrRN1ZRdsMmGAw+ERRDnlxrfLWBsYclWZ1ra1XlbdGdXlbDWQWGJfLNQuIk6q+OJAaxT+pulLMquL/mSCeAAPeMvM14FkfJJ7xSeSJ27/GJ5JnP47TP++Dn3eB/wswAJT1A7Jy8nfmAAAAAElFTkSuQmCC";
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: selectionConfirmRest,
15376
+ REST: selectionConfirmGroup,
15330
15377
  GROUP: selectionConfirmGroup,
15331
- HOVER: selectionConfirmHover,
15378
+ HOVER: selectionConfirmDown,
15332
15379
  DOWN: selectionConfirmDown
15333
15380
  },
15334
15381
  selectionCancel: {
15335
- REST: selectionCancelRest,
15382
+ REST: selectionCancelGroup,
15336
15383
  GROUP: selectionCancelGroup,
15337
- HOVER: selectionCancelHover,
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.isEnabled();
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,