@realsee/dnalogel 3.10.1 → 3.10.2

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.
@@ -16,8 +16,6 @@ export declare class Controller extends BasePlugin.Controller<PluginType.State,
16
16
  data?: PluginType.PluginData;
17
17
  /** tag 容器 */
18
18
  tagDomContainer: HTMLDivElement;
19
- /** 用于监听容器尺寸变化的 iframe */
20
- resizeIframe: HTMLIFrameElement;
21
19
  /** 插件配置项 */
22
20
  get config(): {
23
21
  modelDepthTest: boolean;
@@ -1,41 +1,41 @@
1
- var C = Object.defineProperty, M = Object.defineProperties;
2
- var I = Object.getOwnPropertyDescriptors;
3
- var p = Object.getOwnPropertySymbols;
4
- var S = Object.prototype.hasOwnProperty, A = Object.prototype.propertyIsEnumerable;
5
- var u = (h, r, t) => r in h ? C(h, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : h[r] = t, d = (h, r) => {
6
- for (var t in r || (r = {}))
7
- S.call(r, t) && u(h, t, r[t]);
8
- if (p)
9
- for (var t of p(r))
10
- A.call(r, t) && u(h, t, r[t]);
1
+ var M = Object.defineProperty, C = Object.defineProperties;
2
+ var S = Object.getOwnPropertyDescriptors;
3
+ var f = Object.getOwnPropertySymbols;
4
+ var A = Object.prototype.hasOwnProperty, _ = Object.prototype.propertyIsEnumerable;
5
+ var m = (h, o, t) => o in h ? M(h, o, { enumerable: !0, configurable: !0, writable: !0, value: t }) : h[o] = t, d = (h, o) => {
6
+ for (var t in o || (o = {}))
7
+ A.call(o, t) && m(h, t, o[t]);
8
+ if (f)
9
+ for (var t of f(o))
10
+ _.call(o, t) && m(h, t, o[t]);
11
11
  return h;
12
- }, f = (h, r) => M(h, I(r));
13
- var o = (h, r, t) => (u(h, typeof r != "symbol" ? r + "" : r, t), t);
14
- var m = (h, r, t) => new Promise((i, e) => {
12
+ }, p = (h, o) => C(h, S(o));
13
+ var r = (h, o, t) => (m(h, typeof o != "symbol" ? o + "" : o, t), t);
14
+ var u = (h, o, t) => new Promise((i, e) => {
15
15
  var s = (n) => {
16
16
  try {
17
- l(t.next(n));
18
- } catch (c) {
19
- e(c);
17
+ c(t.next(n));
18
+ } catch (l) {
19
+ e(l);
20
20
  }
21
21
  }, a = (n) => {
22
22
  try {
23
- l(t.throw(n));
24
- } catch (c) {
25
- e(c);
23
+ c(t.throw(n));
24
+ } catch (l) {
25
+ e(l);
26
26
  }
27
- }, l = (n) => n.done ? i(n.value) : Promise.resolve(n.value).then(s, a);
28
- l((t = t.apply(h, r)).next());
27
+ }, c = (n) => n.done ? i(n.value) : Promise.resolve(n.value).then(s, a);
28
+ c((t = t.apply(h, o)).next());
29
29
  });
30
30
  import * as g from "three";
31
- import { Controller as _ } from "../base/BasePluginWithData.js";
31
+ import { Controller as k } from "../base/BasePluginWithData.js";
32
32
  import "hammerjs";
33
33
  import "@realsee/five";
34
34
  import "../vendor/@tweenjs/tween/dist/tween.esm.js.js";
35
35
  import "../CSS3DRenderPlugin/utils/three/CSS3DRender.js";
36
36
  import "../CSS3DRenderPlugin/utils/generateBehindFiveElement.js";
37
- import { equal as k } from "../shared-utils/equal.js";
38
- import { AreaMakerItem as y } from "./utils/Item.js";
37
+ import { equal as I } from "../shared-utils/equal.js";
38
+ import { AreaMakerItem as D } from "./utils/Item.js";
39
39
  import "../base/BasePlugin.js";
40
40
  import "../shared-utils/Subscribe.js";
41
41
  import "../shared-utils/url/absoluteUrl.js";
@@ -61,7 +61,8 @@ import "../components/AreaLabel/LabelItem.js";
61
61
  import "../vendor/svelte/internal/index.js";
62
62
  import "../components/AreaLabel/Assets/roomLabelBg.js";
63
63
  import "../shared-utils/math/planimetry.js";
64
- class at extends _ {
64
+ import "../shared-utils/dom/resizeObserver.js";
65
+ class ht extends k {
65
66
  /** AreaMakerPlugin
66
67
  * @param `five` `<Five>` Five 实例
67
68
  * @param `params` `<PluginType.Params> | <undefined>` 插件初始化参数
@@ -71,43 +72,41 @@ class at extends _ {
71
72
  super(t);
72
73
  // ==================== public properties ====================
73
74
  /** 插件当前状态 */
74
- o(this, "state");
75
+ r(this, "state");
75
76
  /** 标注模型 { id: item } 的映射表 */
76
- o(this, "itemMap");
77
+ r(this, "itemMap");
77
78
  /** 自定义 DOM */
78
- o(this, "itemRenderer");
79
+ r(this, "itemRenderer");
79
80
  /** 标注模型容器 */
80
- o(this, "modelGroup");
81
+ r(this, "modelGroup");
81
82
  /** 当前使用的数据 */
82
- o(this, "data");
83
+ r(this, "data");
83
84
  /** tag 容器 */
84
- o(this, "tagDomContainer");
85
- /** 用于监听容器尺寸变化的 iframe */
86
- o(this, "resizeIframe");
85
+ r(this, "tagDomContainer");
87
86
  /** 查询问题使用的调试对象 */
88
- o(this, "checkMsg", {
87
+ r(this, "checkMsg", {
89
88
  childrenMountedState: ""
90
89
  });
91
90
  // ==================== private properties ====================
92
91
  /** 是否在 Five Change Mode 动画中 */
93
- o(this, "isInFiveChangeModeAnime", !1);
92
+ r(this, "isInFiveChangeModeAnime", !1);
94
93
  /** 子组件是否挂载 */
95
- o(this, "childrenMountedState", !1);
94
+ r(this, "childrenMountedState", !1);
96
95
  /** config 的原始值 */
97
- o(this, "_config");
96
+ r(this, "_config");
98
97
  /** disposed 的原始值 */
99
- o(this, "_disposed", !1);
98
+ r(this, "_disposed", !1);
100
99
  /** 销毁插件,移除所有副作用,销毁后将不响应任何 API */
101
- o(this, "dispose", () => {
100
+ r(this, "dispose", () => {
102
101
  this.five.scene.remove(this.modelGroup);
103
102
  });
104
- o(this, "onFiveInitAnimationWillStart", () => {
103
+ r(this, "onFiveInitAnimationWillStart", () => {
105
104
  this.isInFiveChangeModeAnime = !0, this.updateChildrenMountedState();
106
105
  });
107
- o(this, "onFiveInitAnimationEnded", () => {
106
+ r(this, "onFiveInitAnimationEnded", () => {
108
107
  this.isInFiveChangeModeAnime = !1, this.updateChildrenMountedState();
109
108
  });
110
- o(this, "onFiveCameraUpdate", () => {
109
+ r(this, "onFiveCameraUpdate", () => {
111
110
  const t = this.five.camera;
112
111
  [...this.itemMap.values()].sort((e, s) => {
113
112
  const a = e.tagPosition.distanceTo(t.position);
@@ -117,22 +116,22 @@ class at extends _ {
117
116
  (a = this.getMaskItemByID(e.id)) == null || a.setTagZIndex(s * 10);
118
117
  });
119
118
  });
120
- o(this, "onFiveModeChange", () => {
119
+ r(this, "onFiveModeChange", () => {
121
120
  this.updateChildrenMountedState();
122
121
  });
123
- o(this, "onMakerTagClick", (t) => {
122
+ r(this, "onMakerTagClick", (t) => {
124
123
  this.hooks.emit("wantsTap", { target: t.target, intersectObjects: [] });
125
124
  });
126
- o(this, "onWantsFiveTapGesture", (t) => {
125
+ r(this, "onWantsFiveTapGesture", (t) => {
127
126
  const i = Array.from(this.itemMap.values()).filter((n) => n.mounted && n.visible).map((n) => ({
128
127
  makerItem: n,
129
128
  intersects: n.modelGroup.getRaycastIntersects(t)
130
129
  })).filter(({ intersects: n }) => n.length > 0);
131
130
  if (i.length === 0)
132
131
  return;
133
- const e = i.reduce((n, c) => {
134
- const v = n.intersects[0].distance, b = c.intersects[0].distance;
135
- return v < b ? n : c;
132
+ const e = i.reduce((n, l) => {
133
+ const v = n.intersects[0].distance, b = l.intersects[0].distance;
134
+ return v < b ? n : l;
136
135
  }), s = this.five.model.intersectRaycaster(t)[0];
137
136
  if (this.config.modelDepthTest && s && s.distance < e.intersects[0].distance)
138
137
  return;
@@ -142,7 +141,7 @@ class at extends _ {
142
141
  }))
143
142
  return !1;
144
143
  });
145
- this.five = t, this.tagDomContainer = document.createElement("div"), this.tagDomContainer.style.position = "absolute", this.tagDomContainer.style.top = "0", this.tagDomContainer.style.left = "0", this.tagDomContainer.style.width = "100%", this.tagDomContainer.style.height = "100%", this.tagDomContainer.style.pointerEvents = "none", this.resizeIframe = document.createElement("iframe"), this.resizeIframe.style.position = "absolute", this.resizeIframe.style.top = "0", this.resizeIframe.style.left = "0", this.resizeIframe.style.width = "100%", this.resizeIframe.style.height = "100%", this.resizeIframe.style.border = "none", this.resizeIframe.style.pointerEvents = "none", this.resizeIframe.style.zIndex = "-1", this.tagDomContainer.appendChild(this.resizeIframe);
144
+ this.five = t, this.tagDomContainer = document.createElement("div"), this.tagDomContainer.style.position = "absolute", this.tagDomContainer.style.top = "0", this.tagDomContainer.style.left = "0", this.tagDomContainer.style.width = "100%", this.tagDomContainer.style.height = "100%", this.tagDomContainer.style.pointerEvents = "none";
146
145
  const e = {
147
146
  enabled: !0,
148
147
  visible: !0
@@ -163,10 +162,10 @@ class at extends _ {
163
162
  }
164
163
  /** 加载数据,重复调用会使用新数据覆盖旧数据 */
165
164
  load(t) {
166
- return m(this, null, function* () {
165
+ return u(this, null, function* () {
167
166
  const i = this.data;
168
167
  this.data = this.formatData(t), this.hooks.emit("dataChange", this.data, i), this.modelGroup.remove(...this.modelGroup.children), this.itemMap.forEach((e) => e.unmount()), this.itemMap.clear(), this.childrenMountedState = !1, this.checkMsg.childrenMountedState = "", this.data.list.forEach((e) => {
169
- const s = new y(this, e);
168
+ const s = new D(this, e);
170
169
  s.itemRenderer = this.itemRenderer, this.modelGroup.add(s.modelGroup), this.itemMap.set(e.id, s), s.hooks.on("tagClick", this.onMakerTagClick);
171
170
  }), this.updateChildrenMountedState();
172
171
  });
@@ -202,7 +201,7 @@ class at extends _ {
202
201
  * @param `options.userAction` `<boolean> | <undefined>` 是否是用户操作。默认是 true。
203
202
  */
204
203
  show(t) {
205
- return m(this, null, function* () {
204
+ return u(this, null, function* () {
206
205
  if (this.state.visible)
207
206
  return Promise.resolve();
208
207
  if (this.disposed)
@@ -216,7 +215,7 @@ class at extends _ {
216
215
  * @param `options.userAction` `<boolean> | <undefined>` 是否是用户操作。默认是 true。
217
216
  */
218
217
  hide(t) {
219
- return m(this, null, function* () {
218
+ return u(this, null, function* () {
220
219
  if (this.state.visible === !1)
221
220
  return;
222
221
  const i = d({ userAction: !0 }, t);
@@ -264,7 +263,7 @@ class at extends _ {
264
263
  */
265
264
  setState(t, i = {}) {
266
265
  const e = this.state;
267
- if (k(t, e, { deep: !0 }))
266
+ if (I(t, e, { deep: !0 }))
268
267
  return;
269
268
  const s = i.userAction !== void 0 ? i.userAction : !0;
270
269
  if (this.updateState(t, s), t.enabled !== void 0 && e.enabled !== t.enabled && (t.enabled ? this._enable({ userAction: s }) : this._disable({ userAction: s })), t.visible !== void 0 && e.visible !== t.visible) {
@@ -292,9 +291,9 @@ class at extends _ {
292
291
  return i(t) ? {
293
292
  list: t.list.filter((e) => e.object_data.points.length >= 3).map((e) => {
294
293
  const s = new g.Shape(), a = e.object_data.points[0];
295
- return s.moveTo(a[0], a[2]), e.object_data.points.slice(1).forEach((n) => s.lineTo(n[0], n[2])), s.lineTo(a[0], a[2]), f(d({}, e), {
294
+ return s.moveTo(a[0], a[2]), e.object_data.points.slice(1).forEach((n) => s.lineTo(n[0], n[2])), s.lineTo(a[0], a[2]), p(d({}, e), {
296
295
  floor_index: e.object_data.floorIndex,
297
- object_data: f(d({}, e.object_data), {
296
+ object_data: p(d({}, e.object_data), {
298
297
  bottom_y: a[1] + e.object_data.fixedY,
299
298
  shape: s.toJSON(),
300
299
  height: e.object_data.height + e.object_data.fixedHeight
@@ -327,16 +326,16 @@ class at extends _ {
327
326
  this.hooks.emit("disable", { userAction: t.userAction }), this.five.scene.remove(this.modelGroup), this.updateChildrenMountedState(), this.five.needsRender = !0, this.five.off("wantsTapGesture", this.onWantsFiveTapGesture), this.five.off("initAnimationWillStart", this.onFiveInitAnimationWillStart), this.five.off("initAnimationEnded", this.onFiveInitAnimationEnded), this.five.off("modeChange", this.onFiveModeChange), this.five.off("cameraUpdate", this.onFiveCameraUpdate);
328
327
  }
329
328
  _show(t) {
330
- return m(this, null, function* () {
329
+ return u(this, null, function* () {
331
330
  this.hooks.emit("show", t), this.five.needsRender = !0;
332
331
  });
333
332
  }
334
333
  _hide(t) {
335
- return m(this, null, function* () {
334
+ return u(this, null, function* () {
336
335
  this.hooks.emit("hide", t), this.five.needsRender = !0;
337
336
  });
338
337
  }
339
338
  }
340
339
  export {
341
- at as Controller
340
+ ht as Controller
342
341
  };
@@ -33,7 +33,8 @@ import "../components/AreaLabel/LabelItem.js";
33
33
  import "../vendor/svelte/internal/index.js";
34
34
  import "../components/AreaLabel/Assets/roomLabelBg.js";
35
35
  import "../shared-utils/math/planimetry.js";
36
- const K = (r, o) => new t(r, o);
36
+ import "../shared-utils/dom/resizeObserver.js";
37
+ const L = (r, o) => new t(r, o);
37
38
  export {
38
- K as AreaMakerPlugin
39
+ L as AreaMakerPlugin
39
40
  };
@@ -70,6 +70,7 @@ export declare class AreaMakerItem {
70
70
  private isInContainerResizeAnimation;
71
71
  /** 监听容器 resize 的计时器 id,用于判断 resize 过程是否结束 */
72
72
  private containerResizeTimeoutID;
73
+ private resizeObserver?;
73
74
  constructor(plugin: Controller, data: PluginType.ServerAreaMakerItem);
74
75
  /** 挂载标注 */
75
76
  mount(): void;
@@ -1,7 +1,7 @@
1
1
  var f = Object.defineProperty;
2
- var b = (a, e, t) => e in a ? f(a, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : a[e] = t;
3
- var i = (a, e, t) => (b(a, typeof e != "symbol" ? e + "" : e, t), t);
4
- import * as n from "three";
2
+ var b = (n, e, t) => e in n ? f(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
3
+ var i = (n, e, t) => (b(n, typeof e != "symbol" ? e + "" : e, t), t);
4
+ import * as a from "three";
5
5
  import "hammerjs";
6
6
  import "@realsee/five";
7
7
  import "../../vendor/@tweenjs/tween/dist/tween.esm.js.js";
@@ -13,6 +13,7 @@ import { BetterTween as T } from "../../shared-utils/animationFrame/BetterTween.
13
13
  import { LabelItem as C } from "../../components/AreaLabel/LabelItem.js";
14
14
  import { getCenterPointOfPoints as O } from "../../shared-utils/math/planimetry.js";
15
15
  import { Subscribe as v } from "../../shared-utils/Subscribe.js";
16
+ import { resizeObserver as M } from "../../shared-utils/dom/resizeObserver.js";
16
17
  import "../../shared-utils/positionToVector3.js";
17
18
  import "../../CSS3DRenderPlugin/utils/three/CSS3DRenderer.js";
18
19
  import "three/examples/jsm/renderers/CSS3DRenderer";
@@ -29,7 +30,7 @@ import "../../CSS3DRenderPlugin/utils/three/CSS3DGroup.js";
29
30
  import "../../shared-utils/animationFrame/index.js";
30
31
  import "../../vendor/svelte/internal/index.js";
31
32
  import "../../components/AreaLabel/Assets/roomLabelBg.js";
32
- class M extends k {
33
+ class P extends k {
33
34
  constructor(t) {
34
35
  super();
35
36
  i(this, "areaMakerItem");
@@ -39,7 +40,7 @@ class M extends k {
39
40
  this.areaMakerItem.makerObject.raycast(t, s);
40
41
  }
41
42
  }
42
- class tt {
43
+ class it {
43
44
  constructor(e, t) {
44
45
  i(this, "id");
45
46
  /** 标注名称 */
@@ -77,9 +78,9 @@ class tt {
77
78
  /** 标注标签是否可见 */
78
79
  i(this, "tagVisible", !0);
79
80
  /** 标注标签的世界坐标 */
80
- i(this, "tagPosition", new n.Vector3());
81
+ i(this, "tagPosition", new a.Vector3());
81
82
  /** 标注标签的 NDC 坐标 */
82
- i(this, "tagNDCPosition", new n.Vector3());
83
+ i(this, "tagNDCPosition", new a.Vector3());
83
84
  /** 标注标签的 transform */
84
85
  i(this, "tagTransform", { left: 0, top: 0 });
85
86
  /** 标注标签的显示层级 */
@@ -98,6 +99,7 @@ class tt {
98
99
  i(this, "isInContainerResizeAnimation", !1);
99
100
  /** 监听容器 resize 的计时器 id,用于判断 resize 过程是否结束 */
100
101
  i(this, "containerResizeTimeoutID", null);
102
+ i(this, "resizeObserver");
101
103
  /** 显示标注 */
102
104
  // public show() {
103
105
  // return this.doOpacityAnime({
@@ -188,7 +190,7 @@ class tt {
188
190
  return { result: !1, msg: "标注整体不可见" };
189
191
  if (this.isInContainerResizeAnimation)
190
192
  return { result: !1, msg: "处于容器 resize 动画中" };
191
- const t = this.plugin.five, s = new n.Raycaster(), o = t.camera.position.clone();
193
+ const t = this.plugin.five, s = new a.Raycaster(), o = t.camera.position.clone();
192
194
  s.set(o.clone(), this.tagPosition.clone().sub(o).normalize());
193
195
  const [r] = t.model.intersectRaycaster(s), l = this.tagPosition.distanceTo(t.camera.position);
194
196
  if (r && r.distance + 0.1 < l)
@@ -209,32 +211,33 @@ class tt {
209
211
  this.containerResizeTimeoutID && clearTimeout(this.containerResizeTimeoutID), this.containerResizeTimeoutID = setTimeout(t, 100);
210
212
  });
211
213
  var p, m, c, g;
212
- const s = t.object_data, o = s.bottom_y, r = s.height, l = new n.Color((p = s.color) != null ? p : "#FFFFFF"), h = (m = s.opacity) != null ? m : 0.4;
213
- this.data = t, this.id = t.id, this.name = (c = t.name) != null ? c : "", this.plugin = e, this.height = r, this.bottomY = o, this.opacity = h, this.shape = new n.Shape().fromJSON(s.shape), this.floorIndex = t.floor_index, this.makerObject = new n.Mesh(d(this.shape, r), P(l, h)), u(this.makerObject, o), this.makerObject.material.depthTest = this.plugin.config.modelDepthTest, this.outline = new y(
214
- new n.EdgesGeometry(this.makerObject.geometry),
215
- new n.LineBasicMaterial({ color: l, transparent: !0 })
216
- ), u(this.outline, o), this.outline.material.depthTest = this.plugin.config.modelDepthTest, this.setHeight(r), this.modelGroup = new M(this), this.modelGroup.visible = (g = s.visible) != null ? g : !0;
214
+ const s = t.object_data, o = s.bottom_y, r = s.height, l = new a.Color((p = s.color) != null ? p : "#FFFFFF"), h = (m = s.opacity) != null ? m : 0.4;
215
+ this.data = t, this.id = t.id, this.name = (c = t.name) != null ? c : "", this.plugin = e, this.height = r, this.bottomY = o, this.opacity = h, this.shape = new a.Shape().fromJSON(s.shape), this.floorIndex = t.floor_index, this.makerObject = new a.Mesh(d(this.shape, r), V(l, h)), u(this.makerObject, o), this.makerObject.material.depthTest = this.plugin.config.modelDepthTest, this.outline = new y(
216
+ new a.EdgesGeometry(this.makerObject.geometry),
217
+ new a.LineBasicMaterial({ color: l, transparent: !0 })
218
+ ), u(this.outline, o), this.outline.material.depthTest = this.plugin.config.modelDepthTest, this.setHeight(r), this.modelGroup = new P(this), this.modelGroup.visible = (g = s.visible) != null ? g : !0;
217
219
  }
218
220
  /** 挂载标注 */
219
221
  mount() {
220
- var t;
221
- if (this.mounted = !0, this.updateVisible(), this.makerObject.material.depthTest = this.plugin.config.modelDepthTest, this.outline.material.depthTest = this.plugin.config.modelDepthTest, this.modelGroup.add(this.makerObject, this.outline), !!this.name) {
222
- const s = this.plugin.tagDomContainer, o = {
222
+ this.mounted = !0, this.updateVisible(), this.makerObject.material.depthTest = this.plugin.config.modelDepthTest, this.outline.material.depthTest = this.plugin.config.modelDepthTest, this.modelGroup.add(this.makerObject, this.outline);
223
+ const e = !!this.name, t = this.plugin.tagDomContainer;
224
+ if (e) {
225
+ const s = {
223
226
  data: this.data,
224
227
  content: this.name,
225
228
  visible: this.tagVisible,
226
229
  renderer: this.itemRenderer,
227
230
  transform: `translate(${this.tagTransform.left}px, ${this.tagTransform.top}px)`,
228
- onClick: (r) => this.hooks.emit("tagClick", { target: this, nativeEvent: r })
231
+ onClick: (o) => this.hooks.emit("tagClick", { target: this, nativeEvent: o })
229
232
  };
230
- this.tagApp = new C({ target: s, props: o }), this.updateTag();
233
+ this.tagApp = new C({ target: t, props: s }), this.updateTag();
231
234
  }
232
- this.plugin.five.needsRender = !0, this.plugin.hooks.on("stateChange", this.onPluginStateChange), this.plugin.hooks.on("configChange", this.onPluginConfigChange), this.plugin.five.on("modeChange", this.updateVisible), this.plugin.five.on("modelShownFloorChange", this.updateVisible), this.plugin.five.on("cameraUpdate", this.onFiveCameraUpdate), (t = this.plugin.resizeIframe.contentWindow) == null || t.addEventListener("resize", this.onContainerResize);
235
+ this.plugin.five.needsRender = !0, this.plugin.hooks.on("stateChange", this.onPluginStateChange), this.plugin.hooks.on("configChange", this.onPluginConfigChange), this.plugin.five.on("modeChange", this.updateVisible), this.plugin.five.on("modelShownFloorChange", this.updateVisible), this.plugin.five.on("cameraUpdate", this.onFiveCameraUpdate), this.resizeObserver = M(this.onContainerResize, t), this.resizeObserver.observe();
233
236
  }
234
237
  /** 卸载标注 */
235
238
  unmount() {
236
239
  var e, t;
237
- this.mounted = !1, this.modelGroup.remove(...this.modelGroup.children), (e = this.tagApp) == null || e.$destroy(), this.tagApp = null, this.plugin.hooks.off("stateChange", this.onPluginStateChange), this.plugin.hooks.off("configChange", this.onPluginConfigChange), this.plugin.five.off("modeChange", this.updateVisible), this.plugin.five.off("modelShownFloorChange", this.updateVisible), this.plugin.five.off("cameraUpdate", this.onFiveCameraUpdate), (t = this.plugin.resizeIframe.contentWindow) == null || t.removeEventListener("resize", this.onContainerResize);
240
+ this.mounted = !1, this.modelGroup.remove(...this.modelGroup.children), (e = this.tagApp) == null || e.$destroy(), this.tagApp = null, this.plugin.hooks.off("stateChange", this.onPluginStateChange), this.plugin.hooks.off("configChange", this.onPluginConfigChange), this.plugin.five.off("modeChange", this.updateVisible), this.plugin.five.off("modelShownFloorChange", this.updateVisible), this.plugin.five.off("cameraUpdate", this.onFiveCameraUpdate), (t = this.resizeObserver) == null || t.unobserve();
238
241
  }
239
242
  /** 更改标注透明度
240
243
  * @param opacity 标注透明度,范围:0-1
@@ -248,7 +251,7 @@ class tt {
248
251
  * @example setColor('#FF0000')
249
252
  */
250
253
  setColor(e) {
251
- const t = new n.Color(e);
254
+ const t = new a.Color(e);
252
255
  this.makerObject.material.color = t, this.outline.material.color = t, this.plugin.five.needsRender = !0;
253
256
  }
254
257
  /** 更改标注高度
@@ -257,8 +260,8 @@ class tt {
257
260
  setHeight(e) {
258
261
  if (e <= 0)
259
262
  throw new Error("高度必须大于 0");
260
- this.height = e, this.makerObject.geometry = d(this.shape, e), this.outline.geometry = new n.EdgesGeometry(this.makerObject.geometry);
261
- const t = this.shape.extractPoints(10).shape.slice(0, -1), s = O(t), o = new n.Vector3(s.x, s.y, e);
263
+ this.height = e, this.makerObject.geometry = d(this.shape, e), this.outline.geometry = new a.EdgesGeometry(this.makerObject.geometry);
264
+ const t = this.shape.extractPoints(10).shape.slice(0, -1), s = O(t), o = new a.Vector3(s.x, s.y, e);
262
265
  u(o, this.bottomY), this.tagPosition.copy(o), this.updateTag(), this.plugin.five.needsRender = !0;
263
266
  }
264
267
  /** 更改标注标签的显示层级
@@ -274,23 +277,23 @@ class tt {
274
277
  this.tagZIndex !== e && ((t = this.tagApp) == null || t.$set({ zIndex: e }));
275
278
  }
276
279
  }
277
- function d(a, e) {
278
- return new n.ExtrudeBufferGeometry(a, {
280
+ function d(n, e) {
281
+ return new a.ExtrudeBufferGeometry(n, {
279
282
  depth: e,
280
283
  bevelEnabled: !1
281
284
  });
282
285
  }
283
- function P(a, e) {
284
- return new n.MeshBasicMaterial({
285
- color: a,
286
+ function V(n, e) {
287
+ return new a.MeshBasicMaterial({
288
+ color: n,
286
289
  opacity: e,
287
290
  transparent: !0
288
291
  });
289
292
  }
290
- function u(a, e) {
291
- const t = new n.Matrix4(), s = new n.Matrix4().makeRotationX(Math.PI / 2), o = new n.Matrix4().makeTranslation(0, 0, -e), r = new n.Matrix4().makeScale(1, 1, -1);
292
- t.multiply(s), t.multiply(o), t.multiply(r), a.applyMatrix4(t);
293
+ function u(n, e) {
294
+ const t = new a.Matrix4(), s = new a.Matrix4().makeRotationX(Math.PI / 2), o = new a.Matrix4().makeTranslation(0, 0, -e), r = new a.Matrix4().makeScale(1, 1, -1);
295
+ t.multiply(s), t.multiply(o), t.multiply(r), n.applyMatrix4(t);
293
296
  }
294
297
  export {
295
- tt as AreaMakerItem
298
+ it as AreaMakerItem
296
299
  };
@@ -82,9 +82,9 @@ import "../PanoTagPlugin/utils/addDebugPoints.js";
82
82
  import "../PanoTagPlugin/utils/tag/tagCheck.js";
83
83
  import "../PanoTagPlugin/utils/debounce.js";
84
84
  import "../PanoTagPlugin/utils/throttle.js";
85
- import "../PanoTagPlugin/utils/resizeObserver.js";
86
85
  import "../PanoTagPlugin/utils/tag/format.js";
87
86
  import "../shared-utils/audio.js";
87
+ import "../shared-utils/dom/resizeObserver.js";
88
88
  import "../PanoTagPlugin/controller/TagRender.js";
89
89
  import "../PanoTagPlugin/controller/TagComputer.js";
90
90
  import "../PanoTagPlugin/utils/tagPosition.js";
@@ -49,9 +49,9 @@ import "../PanoTagPlugin/utils/addDebugPoints.js";
49
49
  import "../PanoTagPlugin/utils/tag/tagCheck.js";
50
50
  import "../PanoTagPlugin/utils/debounce.js";
51
51
  import "../PanoTagPlugin/utils/throttle.js";
52
- import "../PanoTagPlugin/utils/resizeObserver.js";
53
52
  import "../PanoTagPlugin/utils/tag/format.js";
54
53
  import "../shared-utils/audio.js";
54
+ import "../shared-utils/dom/resizeObserver.js";
55
55
  import "../PanoTagPlugin/controller/TagRender.js";
56
56
  import "../PanoTagPlugin/controller/TagComputer.js";
57
57
  import "../PanoTagPlugin/utils/tagPosition.js";
@@ -74,9 +74,9 @@ import "../PanoTagPlugin/utils/addDebugPoints.js";
74
74
  import "../PanoTagPlugin/utils/tag/tagCheck.js";
75
75
  import "../PanoTagPlugin/utils/debounce.js";
76
76
  import "../PanoTagPlugin/utils/throttle.js";
77
- import "../PanoTagPlugin/utils/resizeObserver.js";
78
77
  import "../PanoTagPlugin/utils/tag/format.js";
79
78
  import "../shared-utils/audio.js";
79
+ import "../shared-utils/dom/resizeObserver.js";
80
80
  import "../PanoTagPlugin/controller/TagRender.js";
81
81
  import "../PanoTagPlugin/controller/TagComputer.js";
82
82
  import "../PanoTagPlugin/utils/tagPosition.js";
@@ -43,9 +43,9 @@ import "../PanoTagPlugin/utils/addDebugPoints.js";
43
43
  import "../PanoTagPlugin/utils/tag/tagCheck.js";
44
44
  import "../PanoTagPlugin/utils/debounce.js";
45
45
  import "../PanoTagPlugin/utils/throttle.js";
46
- import "../PanoTagPlugin/utils/resizeObserver.js";
47
46
  import "../PanoTagPlugin/utils/tag/format.js";
48
47
  import "../shared-utils/audio.js";
48
+ import "../shared-utils/dom/resizeObserver.js";
49
49
  import "../PanoTagPlugin/controller/TagRender.js";
50
50
  import "../PanoTagPlugin/controller/TagComputer.js";
51
51
  import "../PanoTagPlugin/utils/tagPosition.js";
@@ -40,9 +40,9 @@ import "../PanoTagPlugin/utils/addDebugPoints.js";
40
40
  import "../PanoTagPlugin/utils/tag/tagCheck.js";
41
41
  import "../PanoTagPlugin/utils/debounce.js";
42
42
  import "../PanoTagPlugin/utils/throttle.js";
43
- import "../PanoTagPlugin/utils/resizeObserver.js";
44
43
  import "../PanoTagPlugin/utils/tag/format.js";
45
44
  import "../shared-utils/audio.js";
45
+ import "../shared-utils/dom/resizeObserver.js";
46
46
  import "../PanoTagPlugin/controller/TagRender.js";
47
47
  import "../PanoTagPlugin/controller/TagComputer.js";
48
48
  import "../PanoTagPlugin/utils/tagPosition.js";
@@ -52,9 +52,9 @@ import "../PanoTagPlugin/utils/addDebugPoints.js";
52
52
  import "../PanoTagPlugin/utils/tag/tagCheck.js";
53
53
  import "../PanoTagPlugin/utils/debounce.js";
54
54
  import "../PanoTagPlugin/utils/throttle.js";
55
- import "../PanoTagPlugin/utils/resizeObserver.js";
56
55
  import "../PanoTagPlugin/utils/tag/format.js";
57
56
  import "../shared-utils/audio.js";
57
+ import "../shared-utils/dom/resizeObserver.js";
58
58
  import "../PanoTagPlugin/controller/TagRender.js";
59
59
  import "../PanoTagPlugin/controller/TagComputer.js";
60
60
  import "../PanoTagPlugin/utils/tagPosition.js";
@@ -35,9 +35,9 @@ import { arrayPositionToVector3 as P } from "../../shared-utils/positionToVector
35
35
  import { isMediaModelTag as _, isModelTag as k } from "../utils/tag/tagCheck.js";
36
36
  import { debounce as V } from "../utils/debounce.js";
37
37
  import { throttle as D } from "../utils/throttle.js";
38
- import { resizeObserver as S } from "../utils/resizeObserver.js";
39
38
  import L from "../utils/tag/format.js";
40
39
  import { generateBlankAudio as N, AudioNamespace as G } from "../../shared-utils/audio.js";
40
+ import { resizeObserver as S } from "../../shared-utils/dom/resizeObserver.js";
41
41
  import { TagRender as z } from "./TagRender.js";
42
42
  import { uuid as x } from "../../shared-utils/uuid.js";
43
43
  import { isModelLike as $ } from "../../shared-utils/five/mode.js";
@@ -10,9 +10,9 @@ import "../shared-utils/positionToVector3.js";
10
10
  import "./utils/tag/tagCheck.js";
11
11
  import "./utils/debounce.js";
12
12
  import "./utils/throttle.js";
13
- import "./utils/resizeObserver.js";
14
13
  import "./utils/tag/format.js";
15
14
  import "../shared-utils/audio.js";
15
+ import "../shared-utils/dom/resizeObserver.js";
16
16
  import "./controller/TagRender.js";
17
17
  import "./controller/TagComputer.js";
18
18
  import "./utils/tagPosition.js";
@@ -7,4 +7,3 @@ export * from './normalPositionToPositions';
7
7
  export * from './debounce';
8
8
  export * from './throttle';
9
9
  export * from './search';
10
- export * from './resizeObserver';
@@ -1,28 +1,26 @@
1
- import { addDebugPoints as p } from "./addDebugPoints.js";
1
+ import { addDebugPoints as a } from "./addDebugPoints.js";
2
2
  import { noTypecheck as n } from "./noTypecheck.js";
3
3
  import { planeNormal as f } from "./planeNormal.js";
4
4
  import { getTagCenterPosition as l, getTagPosition as c } from "./tagPosition.js";
5
5
  import { checkRange as h } from "./checkRange.js";
6
6
  import { normalPositionToPositions as T } from "./normalPositionToPositions.js";
7
- import { debounce as u } from "./debounce.js";
7
+ import { debounce as b } from "./debounce.js";
8
8
  import { throttle as k } from "./throttle.js";
9
9
  import { binarySearchFirstBig as F, searchFirstValueSmallThanLastValue as S } from "./search.js";
10
- import { resizeObserver as v } from "./resizeObserver.js";
11
10
  import "three";
12
11
  import "../../shared-utils/positionToVector3.js";
13
12
  import "../../shared-utils/three/centerPoint.js";
14
13
  import "./tag/tagCheck.js";
15
14
  export {
16
- p as addDebugPoints,
15
+ a as addDebugPoints,
17
16
  F as binarySearchFirstBig,
18
17
  h as checkRange,
19
- u as debounce,
18
+ b as debounce,
20
19
  l as getTagCenterPosition,
21
20
  c as getTagPosition,
22
21
  n as noTypecheck,
23
22
  T as normalPositionToPositions,
24
23
  f as planeNormal,
25
- v as resizeObserver,
26
24
  S as searchFirstValueSmallThanLastValue,
27
25
  k as throttle
28
26
  };
@@ -14,7 +14,7 @@ let b = class {
14
14
  /**
15
15
  * @realsee/dnalogel 版本号
16
16
  */
17
- i(this, "VERSION", "3.10.1");
17
+ i(this, "VERSION", "3.10.2");
18
18
  i(this, "five");
19
19
  /**
20
20
  * 插件事件钩子
package/libs/index.js CHANGED
@@ -263,9 +263,9 @@ import "./PanoTagPlugin/utils/addDebugPoints.js";
263
263
  import "./PanoTagPlugin/utils/tag/tagCheck.js";
264
264
  import "./PanoTagPlugin/utils/debounce.js";
265
265
  import "./PanoTagPlugin/utils/throttle.js";
266
- import "./PanoTagPlugin/utils/resizeObserver.js";
267
266
  import "./PanoTagPlugin/utils/tag/format.js";
268
267
  import "./shared-utils/audio.js";
268
+ import "./shared-utils/dom/resizeObserver.js";
269
269
  import "./PanoTagPlugin/controller/TagRender.js";
270
270
  import "./PanoTagPlugin/controller/TagComputer.js";
271
271
  import "./PanoTagPlugin/utils/tagPosition.js";
@@ -1,6 +1,6 @@
1
1
  function A() {
2
2
  console.debug(
3
- "%c %c@realsee/dnalogel %cv3.10.1",
3
+ "%c %c@realsee/dnalogel %cv3.10.2",
4
4
  [
5
5
  "background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMCAMAAACHgmeRAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABLFBMVEUAAAAapPoap/oaqvkbrfkbr/gZnfwZoPsaqfnD4v/E4/8Ylv0clPm93/+/4P/B4f8Yj/683/8Wif+33P8Uhv+x2f8ShP+s1v8Pgf+n0/8Nf/+h0f8Lff8Lff8Nf/9dl/+czv8KfP8KfP+Lxf+Uyv+Xy/+Hwv+Jw/+Mxf+Oxv+RyP8aovsapfoap/oZmfwZm/wZnvsYnPsYkf4YlP0NePsDYfgYcfi43f+63v8Xiv8Xjf4EWfwCV/sWZ/qz2v+02/8Vh/8WiP8EUf8CTf4WXv2u1/+v2P8Thf8Thv8ETf8CR/8VV/+o1f+q1f8Qgv8Rg/8DSv8BRf8UVP+j0v+k0v8OgP8Pgf8DR/8DQv9Nhf+dzv+fz/+Kv/+Vyv+Xy/+azf+Oxv+Qx/+SyP////8MUhLdAAAAK3RSTlMACEWQ2bd98uQECPXxqO7c+Pb49vj2+Pb49vj23Oul8fMHA+TwerXXjEIG2P+bHgAAAAFiS0dEY1y+LaoAAAB+SURBVAjXY2BgZGJmYWVgYGBgY9fW0eVg4ORi4NbTNzDk4eXjZxAwMjYxNTO3EGQQsrSytrG1sxdmEHFwdHJ2cXUTZRBz9/D08vbxFWeQ8PMPCAwKDpFkkAoNC4+IjIqWZpCRlZOPiY2LV2BQVGJQTkhMUlEFWaOmrqGpxQAAyg0S9Dq+VPYAAAAASUVORK5CYII=')",
6
6
  "background-repeat: no-repeat",
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "repository": "https://github.com/realsee-developer/dnalogel.git",
8
8
  "description": "如视 VR 看房插件合集",
9
9
  "private": false,
10
- "version": "3.10.1",
10
+ "version": "3.10.2",
11
11
  "license": "SEE LICENSE IN TERMS.txt",
12
12
  "scripts": {
13
13
  "clean": "rm -rf components dist docs libs types ./vite.config.js.timestamp*",