build-dxf 0.0.47 → 0.0.49

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/src/index3.js CHANGED
@@ -1,73 +1,73 @@
1
- import * as g from "three";
2
- import { i as pt, n as gt, r as qe, t as Ze, c as Pe, d as vt, e as ft, f as De, g as Q, _ as Ye, u as yt, h as fe, j as _e, w as wt, k as bt, l as xt, p as Ct, m as Et, o as Lt, T as Ne, q as Be, s as Mt, v as kt, x as Re, y as Ie, z as Me, A as It, B as Pt, L as ye, D as Dt, b as Oe, E as re, S as At } from "./selectLocalFile.js";
3
- import { C as Ae, P as L, L as N, B as Xe, E as $e, b as ze, Q as Fe, c as Ke, d as St, u as _t, A as Nt, r as Te, W as Bt, T as Rt } from "./build.js";
1
+ import * as p from "three";
2
+ import { i as Ct, n as bt, r as Xe, t as $e, c as Pe, d as Et, e as xt, f as Be, g as G, _ as et, u as At, h as we, j as Ne, w as Lt, k as Mt, l as It, p as kt, m as Dt, o as Pt, T as Re, q as ze, s as Bt, v as St, x as Oe, y as De, z as Ie, A as Ft, B as Kt, L as Ce, D as Nt, b as Qe, E as ce, S as Rt } from "./selectLocalFile.js";
3
+ import { C as Se, P as A, L as N, B as tt, E as nt, b as Te, Q as Ve, c as je, d as zt, u as Ot, A as Qt, r as _e, W as Tt, T as Vt, V as jt } from "./build.js";
4
4
  import "clipper-lib";
5
5
  import "dxf-writer";
6
- import { watch as U, ref as _, defineComponent as me, computed as A, createElementBlock as R, openBlock as D, normalizeClass as V, unref as v, renderSlot as be, createVNode as F, Transition as xe, withCtx as j, withDirectives as et, createElementVNode as P, normalizeStyle as Se, createTextVNode as X, toDisplayString as de, vShow as tt, shallowReactive as Ot, onMounted as nt, createBlock as ge, createCommentVNode as q, resolveDynamicComponent as zt, Fragment as ve, withModifiers as Ft, nextTick as we, isVNode as st, render as je, toRaw as Kt, onUnmounted as Tt, renderList as ke, createStaticVNode as jt, TransitionGroup as Vt, createApp as Gt } from "vue";
6
+ import { watch as J, ref as P, defineComponent as pe, computed as D, createElementBlock as K, openBlock as k, normalizeClass as j, unref as f, renderSlot as Ee, createVNode as O, Transition as xe, withCtx as V, withDirectives as ot, createElementVNode as M, normalizeStyle as Fe, createTextVNode as te, toDisplayString as me, vShow as st, shallowReactive as _t, onMounted as at, createBlock as fe, createCommentVNode as H, resolveDynamicComponent as Gt, Fragment as ye, withModifiers as Ut, nextTick as be, isVNode as it, render as Ge, toRaw as Jt, onUnmounted as Ht, renderList as ke, createStaticVNode as Wt, TransitionGroup as qt, createApp as Zt } from "vue";
7
7
  import "three/addons/controls/OrbitControls.js";
8
- function ot(c) {
8
+ function rt(c) {
9
9
  var e;
10
- const t = qe(c);
10
+ const t = Xe(c);
11
11
  return (e = t?.$el) != null ? e : t;
12
12
  }
13
- const at = Pe ? window : void 0;
14
- function Qt(...c) {
15
- let e, t, n, s;
16
- if (pt(c[0]) || Array.isArray(c[0]) ? ([t, n, s] = c, e = at) : [e, t, n, s] = c, !e)
17
- return gt;
13
+ const dt = Pe ? window : void 0;
14
+ function Yt(...c) {
15
+ let e, t, n, o;
16
+ if (Ct(c[0]) || Array.isArray(c[0]) ? ([t, n, o] = c, e = dt) : [e, t, n, o] = c, !e)
17
+ return bt;
18
18
  Array.isArray(t) || (t = [t]), Array.isArray(n) || (n = [n]);
19
- const o = [], a = () => {
20
- o.forEach((d) => d()), o.length = 0;
21
- }, l = (d, m, y, f) => (d.addEventListener(m, y, f), () => d.removeEventListener(m, y, f)), r = U(() => [ot(e), qe(s)], ([d, m]) => {
22
- a(), d && o.push(...t.flatMap((y) => n.map((f) => l(d, y, f, m))));
19
+ const s = [], a = () => {
20
+ s.forEach((l) => l()), s.length = 0;
21
+ }, d = (l, m, g, w) => (l.addEventListener(m, g, w), () => l.removeEventListener(m, g, w)), r = J(() => [rt(e), Xe(o)], ([l, m]) => {
22
+ a(), l && s.push(...t.flatMap((g) => n.map((w) => d(l, g, w, m))));
23
23
  }, { immediate: !0, flush: "post" }), i = () => {
24
24
  r(), a();
25
25
  };
26
- return Ze(i), i;
26
+ return $e(i), i;
27
27
  }
28
- function Ht(c, e = !1) {
29
- const t = _(), n = () => t.value = !!c();
30
- return n(), vt(n, e), t;
28
+ function Xt(c, e = !1) {
29
+ const t = P(), n = () => t.value = !!c();
30
+ return n(), Et(n, e), t;
31
31
  }
32
- const Ve = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, Ge = "__vueuse_ssr_handlers__";
33
- Ve[Ge] = Ve[Ge] || {};
34
- var Qe = Object.getOwnPropertySymbols, Wt = Object.prototype.hasOwnProperty, Ut = Object.prototype.propertyIsEnumerable, Jt = (c, e) => {
32
+ const Ue = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, Je = "__vueuse_ssr_handlers__";
33
+ Ue[Je] = Ue[Je] || {};
34
+ var He = Object.getOwnPropertySymbols, $t = Object.prototype.hasOwnProperty, en = Object.prototype.propertyIsEnumerable, tn = (c, e) => {
35
35
  var t = {};
36
36
  for (var n in c)
37
- Wt.call(c, n) && e.indexOf(n) < 0 && (t[n] = c[n]);
38
- if (c != null && Qe)
39
- for (var n of Qe(c))
40
- e.indexOf(n) < 0 && Ut.call(c, n) && (t[n] = c[n]);
37
+ $t.call(c, n) && e.indexOf(n) < 0 && (t[n] = c[n]);
38
+ if (c != null && He)
39
+ for (var n of He(c))
40
+ e.indexOf(n) < 0 && en.call(c, n) && (t[n] = c[n]);
41
41
  return t;
42
42
  };
43
- function qt(c, e, t = {}) {
44
- const n = t, { window: s = at } = n, o = Jt(n, ["window"]);
43
+ function nn(c, e, t = {}) {
44
+ const n = t, { window: o = dt } = n, s = tn(n, ["window"]);
45
45
  let a;
46
- const l = Ht(() => s && "ResizeObserver" in s), r = () => {
46
+ const d = Xt(() => o && "ResizeObserver" in o), r = () => {
47
47
  a && (a.disconnect(), a = void 0);
48
- }, i = U(() => ot(c), (m) => {
49
- r(), l.value && s && m && (a = new ResizeObserver(e), a.observe(m, o));
50
- }, { immediate: !0, flush: "post" }), d = () => {
48
+ }, i = J(() => rt(c), (m) => {
49
+ r(), d.value && o && m && (a = new ResizeObserver(e), a.observe(m, s));
50
+ }, { immediate: !0, flush: "post" }), l = () => {
51
51
  r(), i();
52
52
  };
53
- return Ze(d), {
54
- isSupported: l,
55
- stop: d
53
+ return $e(l), {
54
+ isSupported: d,
55
+ stop: l
56
56
  };
57
57
  }
58
- var He;
58
+ var We;
59
59
  (function(c) {
60
60
  c.UP = "UP", c.RIGHT = "RIGHT", c.DOWN = "DOWN", c.LEFT = "LEFT", c.NONE = "NONE";
61
- })(He || (He = {}));
62
- var Zt = Object.defineProperty, We = Object.getOwnPropertySymbols, Yt = Object.prototype.hasOwnProperty, Xt = Object.prototype.propertyIsEnumerable, Ue = (c, e, t) => e in c ? Zt(c, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : c[e] = t, $t = (c, e) => {
61
+ })(We || (We = {}));
62
+ var on = Object.defineProperty, qe = Object.getOwnPropertySymbols, sn = Object.prototype.hasOwnProperty, an = Object.prototype.propertyIsEnumerable, Ze = (c, e, t) => e in c ? on(c, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : c[e] = t, rn = (c, e) => {
63
63
  for (var t in e || (e = {}))
64
- Yt.call(e, t) && Ue(c, t, e[t]);
65
- if (We)
66
- for (var t of We(e))
67
- Xt.call(e, t) && Ue(c, t, e[t]);
64
+ sn.call(e, t) && Ze(c, t, e[t]);
65
+ if (qe)
66
+ for (var t of qe(e))
67
+ an.call(e, t) && Ze(c, t, e[t]);
68
68
  return c;
69
69
  };
70
- const en = {
70
+ const dn = {
71
71
  easeInSine: [0.12, 0, 0.39, 0],
72
72
  easeOutSine: [0.61, 1, 0.88, 1],
73
73
  easeInOutSine: [0.37, 0, 0.63, 1],
@@ -93,12 +93,12 @@ const en = {
93
93
  easeOutBack: [0.34, 1.56, 0.64, 1],
94
94
  easeInOutBack: [0.68, -0.6, 0.32, 1.6]
95
95
  };
96
- $t({
97
- linear: ft
98
- }, en);
99
- const tn = (c) => c, nn = {
96
+ rn({
97
+ linear: xt
98
+ }, dn);
99
+ const ln = (c) => c, cn = {
100
100
  esc: "Escape"
101
- }, sn = De({
101
+ }, mn = Be({
102
102
  value: {
103
103
  type: [String, Number],
104
104
  default: ""
@@ -120,59 +120,59 @@ const tn = (c) => c, nn = {
120
120
  },
121
121
  color: String,
122
122
  badgeStyle: {
123
- type: Q([String, Object, Array])
123
+ type: G([String, Object, Array])
124
124
  },
125
125
  offset: {
126
- type: Q(Array),
126
+ type: G(Array),
127
127
  default: [0, 0]
128
128
  },
129
129
  badgeClass: {
130
130
  type: String
131
131
  }
132
- }), on = me({
132
+ }), hn = pe({
133
133
  name: "ElBadge"
134
- }), an = /* @__PURE__ */ me({
135
- ...on,
136
- props: sn,
134
+ }), un = /* @__PURE__ */ pe({
135
+ ...hn,
136
+ props: mn,
137
137
  setup(c, { expose: e }) {
138
- const t = c, n = yt("badge"), s = A(() => t.isDot ? "" : fe(t.value) && fe(t.max) ? t.max < t.value ? `${t.max}+` : `${t.value}` : `${t.value}`), o = A(() => {
139
- var a, l, r, i, d;
138
+ const t = c, n = At("badge"), o = D(() => t.isDot ? "" : we(t.value) && we(t.max) ? t.max < t.value ? `${t.max}+` : `${t.value}` : `${t.value}`), s = D(() => {
139
+ var a, d, r, i, l;
140
140
  return [
141
141
  {
142
142
  backgroundColor: t.color,
143
- marginRight: _e(-((l = (a = t.offset) == null ? void 0 : a[0]) != null ? l : 0)),
144
- marginTop: _e((i = (r = t.offset) == null ? void 0 : r[1]) != null ? i : 0)
143
+ marginRight: Ne(-((d = (a = t.offset) == null ? void 0 : a[0]) != null ? d : 0)),
144
+ marginTop: Ne((i = (r = t.offset) == null ? void 0 : r[1]) != null ? i : 0)
145
145
  },
146
- (d = t.badgeStyle) != null ? d : {}
146
+ (l = t.badgeStyle) != null ? l : {}
147
147
  ];
148
148
  });
149
149
  return e({
150
- content: s
151
- }), (a, l) => (D(), R("div", {
152
- class: V(v(n).b())
150
+ content: o
151
+ }), (a, d) => (k(), K("div", {
152
+ class: j(f(n).b())
153
153
  }, [
154
- be(a.$slots, "default"),
155
- F(xe, {
156
- name: `${v(n).namespace.value}-zoom-in-center`,
154
+ Ee(a.$slots, "default"),
155
+ O(xe, {
156
+ name: `${f(n).namespace.value}-zoom-in-center`,
157
157
  persisted: ""
158
158
  }, {
159
- default: j(() => [
160
- et(P("sup", {
161
- class: V([
162
- v(n).e("content"),
163
- v(n).em("content", a.type),
164
- v(n).is("fixed", !!a.$slots.default),
165
- v(n).is("dot", a.isDot),
166
- v(n).is("hide-zero", !a.showZero && t.value === 0),
159
+ default: V(() => [
160
+ ot(M("sup", {
161
+ class: j([
162
+ f(n).e("content"),
163
+ f(n).em("content", a.type),
164
+ f(n).is("fixed", !!a.$slots.default),
165
+ f(n).is("dot", a.isDot),
166
+ f(n).is("hide-zero", !a.showZero && t.value === 0),
167
167
  a.badgeClass
168
168
  ]),
169
- style: Se(v(o))
169
+ style: Fe(f(s))
170
170
  }, [
171
- be(a.$slots, "content", { value: v(s) }, () => [
172
- X(de(v(s)), 1)
171
+ Ee(a.$slots, "content", { value: f(o) }, () => [
172
+ te(me(f(o)), 1)
173
173
  ])
174
174
  ], 6), [
175
- [tt, !a.hidden && (v(s) || a.isDot || a.$slots.content)]
175
+ [st, !a.hidden && (f(o) || a.isDot || a.$slots.content)]
176
176
  ])
177
177
  ]),
178
178
  _: 3
@@ -180,63 +180,63 @@ const tn = (c) => c, nn = {
180
180
  ], 2));
181
181
  }
182
182
  });
183
- var rn = /* @__PURE__ */ Ye(an, [["__file", "badge.vue"]]);
184
- const dn = wt(rn), ln = De({
183
+ var pn = /* @__PURE__ */ et(un, [["__file", "badge.vue"]]);
184
+ const gn = Lt(pn), vn = Be({
185
185
  a11y: {
186
186
  type: Boolean,
187
187
  default: !0
188
188
  },
189
189
  locale: {
190
- type: Q(Object)
190
+ type: G(Object)
191
191
  },
192
- size: xt,
192
+ size: It,
193
193
  button: {
194
- type: Q(Object)
194
+ type: G(Object)
195
195
  },
196
196
  card: {
197
- type: Q(Object)
197
+ type: G(Object)
198
198
  },
199
199
  dialog: {
200
- type: Q(Object)
200
+ type: G(Object)
201
201
  },
202
202
  link: {
203
- type: Q(Object)
203
+ type: G(Object)
204
204
  },
205
205
  experimentalFeatures: {
206
- type: Q(Object)
206
+ type: G(Object)
207
207
  },
208
208
  keyboardNavigation: {
209
209
  type: Boolean,
210
210
  default: !0
211
211
  },
212
212
  message: {
213
- type: Q(Object)
213
+ type: G(Object)
214
214
  },
215
215
  zIndex: Number,
216
216
  namespace: {
217
217
  type: String,
218
218
  default: "el"
219
219
  },
220
- ...bt
220
+ ...Mt
221
221
  }), T = {};
222
- me({
222
+ pe({
223
223
  name: "ElConfigProvider",
224
- props: ln,
224
+ props: vn,
225
225
  setup(c, { slots: e }) {
226
- const t = Ct(c);
227
- return U(() => c.message, (n) => {
228
- var s, o;
229
- Object.assign(T, (o = (s = t?.value) == null ? void 0 : s.message) != null ? o : {}, n ?? {});
230
- }, { immediate: !0, deep: !0 }), () => be(e, "default", { config: t?.value });
226
+ const t = kt(c);
227
+ return J(() => c.message, (n) => {
228
+ var o, s;
229
+ Object.assign(T, (s = (o = t?.value) == null ? void 0 : o.message) != null ? s : {}, n ?? {});
230
+ }, { immediate: !0, deep: !0 }), () => Ee(e, "default", { config: t?.value });
231
231
  }
232
232
  });
233
- const it = [
233
+ const lt = [
234
234
  "primary",
235
235
  "success",
236
236
  "info",
237
237
  "warning",
238
238
  "error"
239
- ], B = tn({
239
+ ], R = ln({
240
240
  customClass: "",
241
241
  dangerouslyUseHTMLString: !1,
242
242
  duration: 3e3,
@@ -252,270 +252,270 @@ const it = [
252
252
  grouping: !1,
253
253
  repeatNum: 1,
254
254
  appendTo: Pe ? document.body : void 0
255
- }), cn = De({
255
+ }), fn = Be({
256
256
  customClass: {
257
257
  type: String,
258
- default: B.customClass
258
+ default: R.customClass
259
259
  },
260
260
  dangerouslyUseHTMLString: {
261
261
  type: Boolean,
262
- default: B.dangerouslyUseHTMLString
262
+ default: R.dangerouslyUseHTMLString
263
263
  },
264
264
  duration: {
265
265
  type: Number,
266
- default: B.duration
266
+ default: R.duration
267
267
  },
268
268
  icon: {
269
- type: Et,
270
- default: B.icon
269
+ type: Dt,
270
+ default: R.icon
271
271
  },
272
272
  id: {
273
273
  type: String,
274
- default: B.id
274
+ default: R.id
275
275
  },
276
276
  message: {
277
- type: Q([
277
+ type: G([
278
278
  String,
279
279
  Object,
280
280
  Function
281
281
  ]),
282
- default: B.message
282
+ default: R.message
283
283
  },
284
284
  onClose: {
285
- type: Q(Function),
286
- default: B.onClose
285
+ type: G(Function),
286
+ default: R.onClose
287
287
  },
288
288
  showClose: {
289
289
  type: Boolean,
290
- default: B.showClose
290
+ default: R.showClose
291
291
  },
292
292
  type: {
293
293
  type: String,
294
- values: it,
295
- default: B.type
294
+ values: lt,
295
+ default: R.type
296
296
  },
297
297
  plain: {
298
298
  type: Boolean,
299
- default: B.plain
299
+ default: R.plain
300
300
  },
301
301
  offset: {
302
302
  type: Number,
303
- default: B.offset
303
+ default: R.offset
304
304
  },
305
305
  zIndex: {
306
306
  type: Number,
307
- default: B.zIndex
307
+ default: R.zIndex
308
308
  },
309
309
  grouping: {
310
310
  type: Boolean,
311
- default: B.grouping
311
+ default: R.grouping
312
312
  },
313
313
  repeatNum: {
314
314
  type: Number,
315
- default: B.repeatNum
315
+ default: R.repeatNum
316
316
  }
317
- }), mn = {
317
+ }), yn = {
318
318
  destroy: () => !0
319
- }, H = Ot([]), hn = (c) => {
320
- const e = H.findIndex((s) => s.id === c), t = H[e];
319
+ }, U = _t([]), wn = (c) => {
320
+ const e = U.findIndex((o) => o.id === c), t = U[e];
321
321
  let n;
322
- return e > 0 && (n = H[e - 1]), { current: t, prev: n };
323
- }, un = (c) => {
324
- const { prev: e } = hn(c);
322
+ return e > 0 && (n = U[e - 1]), { current: t, prev: n };
323
+ }, Cn = (c) => {
324
+ const { prev: e } = wn(c);
325
325
  return e ? e.vm.exposed.bottom.value : 0;
326
- }, pn = (c, e) => H.findIndex((n) => n.id === c) > 0 ? 16 : e, gn = me({
326
+ }, bn = (c, e) => U.findIndex((n) => n.id === c) > 0 ? 16 : e, En = pe({
327
327
  name: "ElMessage"
328
- }), vn = /* @__PURE__ */ me({
329
- ...gn,
330
- props: cn,
331
- emits: mn,
328
+ }), xn = /* @__PURE__ */ pe({
329
+ ...En,
330
+ props: fn,
331
+ emits: yn,
332
332
  setup(c, { expose: e, emit: t }) {
333
- const n = c, { Close: s } = Mt, o = _(!1), { ns: a, zIndex: l } = Lt("message"), { currentZIndex: r, nextZIndex: i } = l, d = _(), m = _(!1), y = _(0);
334
- let f;
335
- const p = A(() => n.type ? n.type === "error" ? "danger" : n.type : "info"), h = A(() => {
336
- const b = n.type;
337
- return { [a.bm("icon", b)]: b && Ne[b] };
338
- }), E = A(() => n.icon || Ne[n.type] || ""), x = A(() => un(n.id)), I = A(() => pn(n.id, n.offset) + x.value), K = A(() => y.value + I.value), Y = A(() => ({
339
- top: `${I.value}px`,
333
+ const n = c, { Close: o } = Bt, s = P(!1), { ns: a, zIndex: d } = Pt("message"), { currentZIndex: r, nextZIndex: i } = d, l = P(), m = P(!1), g = P(0);
334
+ let w;
335
+ const h = D(() => n.type ? n.type === "error" ? "danger" : n.type : "info"), C = D(() => {
336
+ const E = n.type;
337
+ return { [a.bm("icon", E)]: E && Re[E] };
338
+ }), v = D(() => n.icon || Re[n.type] || ""), x = D(() => Cn(n.id)), L = D(() => bn(n.id, n.offset) + x.value), B = D(() => g.value + L.value), $ = D(() => ({
339
+ top: `${L.value}px`,
340
340
  zIndex: r.value
341
341
  }));
342
- function Z() {
343
- n.duration !== 0 && ({ stop: f } = kt(() => {
344
- S();
342
+ function ee() {
343
+ n.duration !== 0 && ({ stop: w } = St(() => {
344
+ Q();
345
345
  }, n.duration));
346
346
  }
347
- function G() {
348
- f?.();
347
+ function _() {
348
+ w?.();
349
349
  }
350
- function S() {
351
- m.value = !1, we(() => {
352
- var b;
353
- o.value || ((b = n.onClose) == null || b.call(n), t("destroy"));
350
+ function Q() {
351
+ m.value = !1, be(() => {
352
+ var E;
353
+ s.value || ((E = n.onClose) == null || E.call(n), t("destroy"));
354
354
  });
355
355
  }
356
- function M({ code: b }) {
357
- b === nn.esc && S();
356
+ function W({ code: E }) {
357
+ E === cn.esc && Q();
358
358
  }
359
- return nt(() => {
360
- Z(), i(), m.value = !0;
361
- }), U(() => n.repeatNum, () => {
362
- G(), Z();
363
- }), Qt(document, "keydown", M), qt(d, () => {
364
- y.value = d.value.getBoundingClientRect().height;
359
+ return at(() => {
360
+ ee(), i(), m.value = !0;
361
+ }), J(() => n.repeatNum, () => {
362
+ _(), ee();
363
+ }), Yt(document, "keydown", W), nn(l, () => {
364
+ g.value = l.value.getBoundingClientRect().height;
365
365
  }), e({
366
366
  visible: m,
367
- bottom: K,
368
- close: S
369
- }), (b, z) => (D(), ge(xe, {
370
- name: v(a).b("fade"),
371
- onBeforeEnter: (W) => o.value = !0,
372
- onBeforeLeave: b.onClose,
373
- onAfterLeave: (W) => b.$emit("destroy"),
367
+ bottom: B,
368
+ close: Q
369
+ }), (E, q) => (k(), fe(xe, {
370
+ name: f(a).b("fade"),
371
+ onBeforeEnter: (F) => s.value = !0,
372
+ onBeforeLeave: E.onClose,
373
+ onAfterLeave: (F) => E.$emit("destroy"),
374
374
  persisted: ""
375
375
  }, {
376
- default: j(() => [
377
- et(P("div", {
378
- id: b.id,
376
+ default: V(() => [
377
+ ot(M("div", {
378
+ id: E.id,
379
379
  ref_key: "messageRef",
380
- ref: d,
381
- class: V([
382
- v(a).b(),
383
- { [v(a).m(b.type)]: b.type },
384
- v(a).is("closable", b.showClose),
385
- v(a).is("plain", b.plain),
386
- b.customClass
380
+ ref: l,
381
+ class: j([
382
+ f(a).b(),
383
+ { [f(a).m(E.type)]: E.type },
384
+ f(a).is("closable", E.showClose),
385
+ f(a).is("plain", E.plain),
386
+ E.customClass
387
387
  ]),
388
- style: Se(v(Y)),
388
+ style: Fe(f($)),
389
389
  role: "alert",
390
- onMouseenter: G,
391
- onMouseleave: Z
390
+ onMouseenter: _,
391
+ onMouseleave: ee
392
392
  }, [
393
- b.repeatNum > 1 ? (D(), ge(v(dn), {
393
+ E.repeatNum > 1 ? (k(), fe(f(gn), {
394
394
  key: 0,
395
- value: b.repeatNum,
396
- type: v(p),
397
- class: V(v(a).e("badge"))
398
- }, null, 8, ["value", "type", "class"])) : q("v-if", !0),
399
- v(E) ? (D(), ge(v(Be), {
395
+ value: E.repeatNum,
396
+ type: f(h),
397
+ class: j(f(a).e("badge"))
398
+ }, null, 8, ["value", "type", "class"])) : H("v-if", !0),
399
+ f(v) ? (k(), fe(f(ze), {
400
400
  key: 1,
401
- class: V([v(a).e("icon"), v(h)])
401
+ class: j([f(a).e("icon"), f(C)])
402
402
  }, {
403
- default: j(() => [
404
- (D(), ge(zt(v(E))))
403
+ default: V(() => [
404
+ (k(), fe(Gt(f(v))))
405
405
  ]),
406
406
  _: 1
407
- }, 8, ["class"])) : q("v-if", !0),
408
- be(b.$slots, "default", {}, () => [
409
- b.dangerouslyUseHTMLString ? (D(), R(ve, { key: 1 }, [
410
- q(" Caution here, message could've been compromised, never use user's input as message "),
411
- P("p", {
412
- class: V(v(a).e("content")),
413
- innerHTML: b.message
407
+ }, 8, ["class"])) : H("v-if", !0),
408
+ Ee(E.$slots, "default", {}, () => [
409
+ E.dangerouslyUseHTMLString ? (k(), K(ye, { key: 1 }, [
410
+ H(" Caution here, message could've been compromised, never use user's input as message "),
411
+ M("p", {
412
+ class: j(f(a).e("content")),
413
+ innerHTML: E.message
414
414
  }, null, 10, ["innerHTML"])
415
- ], 2112)) : (D(), R("p", {
415
+ ], 2112)) : (k(), K("p", {
416
416
  key: 0,
417
- class: V(v(a).e("content"))
418
- }, de(b.message), 3))
417
+ class: j(f(a).e("content"))
418
+ }, me(E.message), 3))
419
419
  ]),
420
- b.showClose ? (D(), ge(v(Be), {
420
+ E.showClose ? (k(), fe(f(ze), {
421
421
  key: 2,
422
- class: V(v(a).e("closeBtn")),
423
- onClick: Ft(S, ["stop"])
422
+ class: j(f(a).e("closeBtn")),
423
+ onClick: Ut(Q, ["stop"])
424
424
  }, {
425
- default: j(() => [
426
- F(v(s))
425
+ default: V(() => [
426
+ O(f(o))
427
427
  ]),
428
428
  _: 1
429
- }, 8, ["class", "onClick"])) : q("v-if", !0)
429
+ }, 8, ["class", "onClick"])) : H("v-if", !0)
430
430
  ], 46, ["id"]), [
431
- [tt, m.value]
431
+ [st, m.value]
432
432
  ])
433
433
  ]),
434
434
  _: 3
435
435
  }, 8, ["name", "onBeforeEnter", "onBeforeLeave", "onAfterLeave"]));
436
436
  }
437
437
  });
438
- var fn = /* @__PURE__ */ Ye(vn, [["__file", "message.vue"]]);
439
- let yn = 1;
440
- const rt = (c) => {
441
- const e = !c || Re(c) || st(c) || Ie(c) ? { message: c } : c, t = {
442
- ...B,
438
+ var An = /* @__PURE__ */ et(xn, [["__file", "message.vue"]]);
439
+ let Ln = 1;
440
+ const ct = (c) => {
441
+ const e = !c || Oe(c) || it(c) || De(c) ? { message: c } : c, t = {
442
+ ...R,
443
443
  ...e
444
444
  };
445
445
  if (!t.appendTo)
446
446
  t.appendTo = document.body;
447
- else if (Re(t.appendTo)) {
447
+ else if (Oe(t.appendTo)) {
448
448
  let n = document.querySelector(t.appendTo);
449
- It(n) || (n = document.body), t.appendTo = n;
449
+ Ft(n) || (n = document.body), t.appendTo = n;
450
450
  }
451
- return Me(T.grouping) && !t.grouping && (t.grouping = T.grouping), fe(T.duration) && t.duration === 3e3 && (t.duration = T.duration), fe(T.offset) && t.offset === 16 && (t.offset = T.offset), Me(T.showClose) && !t.showClose && (t.showClose = T.showClose), Me(T.plain) && !t.plain && (t.plain = T.plain), t;
452
- }, wn = (c) => {
453
- const e = H.indexOf(c);
451
+ return Ie(T.grouping) && !t.grouping && (t.grouping = T.grouping), we(T.duration) && t.duration === 3e3 && (t.duration = T.duration), we(T.offset) && t.offset === 16 && (t.offset = T.offset), Ie(T.showClose) && !t.showClose && (t.showClose = T.showClose), Ie(T.plain) && !t.plain && (t.plain = T.plain), t;
452
+ }, Mn = (c) => {
453
+ const e = U.indexOf(c);
454
454
  if (e === -1)
455
455
  return;
456
- H.splice(e, 1);
456
+ U.splice(e, 1);
457
457
  const { handler: t } = c;
458
458
  t.close();
459
- }, bn = ({ appendTo: c, ...e }, t) => {
460
- const n = `message_${yn++}`, s = e.onClose, o = document.createElement("div"), a = {
459
+ }, In = ({ appendTo: c, ...e }, t) => {
460
+ const n = `message_${Ln++}`, o = e.onClose, s = document.createElement("div"), a = {
461
461
  ...e,
462
462
  id: n,
463
463
  onClose: () => {
464
- s?.(), wn(d);
464
+ o?.(), Mn(l);
465
465
  },
466
466
  onDestroy: () => {
467
- je(null, o);
467
+ Ge(null, s);
468
468
  }
469
- }, l = F(fn, a, Ie(a.message) || st(a.message) ? {
470
- default: Ie(a.message) ? a.message : () => a.message
469
+ }, d = O(An, a, De(a.message) || it(a.message) ? {
470
+ default: De(a.message) ? a.message : () => a.message
471
471
  } : null);
472
- l.appContext = t || ce._context, je(l, o), c.appendChild(o.firstElementChild);
473
- const r = l.component, d = {
472
+ d.appContext = t || ue._context, Ge(d, s), c.appendChild(s.firstElementChild);
473
+ const r = d.component, l = {
474
474
  id: n,
475
- vnode: l,
475
+ vnode: d,
476
476
  vm: r,
477
477
  handler: {
478
478
  close: () => {
479
479
  r.exposed.close();
480
480
  }
481
481
  },
482
- props: l.component.props
482
+ props: d.component.props
483
483
  };
484
- return d;
485
- }, ce = (c = {}, e) => {
484
+ return l;
485
+ }, ue = (c = {}, e) => {
486
486
  if (!Pe)
487
487
  return { close: () => {
488
488
  } };
489
- const t = rt(c);
490
- if (t.grouping && H.length) {
491
- const s = H.find(({ vnode: o }) => {
489
+ const t = ct(c);
490
+ if (t.grouping && U.length) {
491
+ const o = U.find(({ vnode: s }) => {
492
492
  var a;
493
- return ((a = o.props) == null ? void 0 : a.message) === t.message;
493
+ return ((a = s.props) == null ? void 0 : a.message) === t.message;
494
494
  });
495
- if (s)
496
- return s.props.repeatNum += 1, s.props.type = t.type, s.handler;
495
+ if (o)
496
+ return o.props.repeatNum += 1, o.props.type = t.type, o.handler;
497
497
  }
498
- if (fe(T.max) && H.length >= T.max)
498
+ if (we(T.max) && U.length >= T.max)
499
499
  return { close: () => {
500
500
  } };
501
- const n = bn(t, e);
502
- return H.push(n), n.handler;
501
+ const n = In(t, e);
502
+ return U.push(n), n.handler;
503
503
  };
504
- it.forEach((c) => {
505
- ce[c] = (e = {}, t) => {
506
- const n = rt(e);
507
- return ce({ ...n, type: c }, t);
504
+ lt.forEach((c) => {
505
+ ue[c] = (e = {}, t) => {
506
+ const n = ct(e);
507
+ return ue({ ...n, type: c }, t);
508
508
  };
509
509
  });
510
- function xn(c) {
511
- const e = [...H];
510
+ function kn(c) {
511
+ const e = [...U];
512
512
  for (const t of e)
513
513
  (!c || c === t.props.type) && t.handler.close();
514
514
  }
515
- ce.closeAll = xn;
516
- ce._context = null;
517
- const k = Pt(ce, "$message");
518
- class O extends Ae {
515
+ ue.closeAll = kn;
516
+ ue._context = null;
517
+ const I = Kt(ue, "$message");
518
+ class z extends Se {
519
519
  _renderer;
520
520
  get renderer() {
521
521
  return this._renderer || (this._renderer = this.parent?.findComponentByName("Renderer")), this._renderer;
@@ -582,9 +582,9 @@ class O extends Ae {
582
582
  */
583
583
  createCursor(e) {
584
584
  return (t, n) => {
585
- const s = this.domElement.style.cursor;
585
+ const o = this.domElement.style.cursor;
586
586
  this.domElement.style.cursor = e, this.addEventRecord("clear", () => {
587
- this.domElement.style.cursor = s ?? "default";
587
+ this.domElement.style.cursor = o ?? "default";
588
588
  }), t(n);
589
589
  };
590
590
  }
@@ -603,40 +603,40 @@ class O extends Ae {
603
603
  * @returns
604
604
  */
605
605
  createPointerMove(e) {
606
- const t = this.editor, n = new L();
607
- let s = null, o = null, a = null;
608
- const l = t.addEventListener("pointerPositionChange", () => {
609
- const r = L.from(t.pointerPosition);
610
- if (s && t.eventInput.isKeyDown("shift")) {
611
- const i = Math.abs(r.x - s.x), d = Math.abs(r.y - s.y);
612
- i > d ? n.set(r.x, s.y) : n.set(s.x, r.y), e(n, !1);
613
- } else if (o && a && t.eventInput.isKeyDown("alt")) {
614
- const i = o.projectPoint(r, !1), d = a.projectPoint(r, !1);
615
- i && d ? r.distance(i) < r.distance(d) ? n.copy(i) : n.copy(d) : i ? n.copy(i) : d && n.copy(d), e(n, !1);
606
+ const t = this.editor, n = new A();
607
+ let o = null, s = null, a = null;
608
+ const d = t.addEventListener("pointerPositionChange", () => {
609
+ const r = A.from(t.pointerPosition);
610
+ if (o && t.eventInput.isKeyDown("shift")) {
611
+ const i = Math.abs(r.x - o.x), l = Math.abs(r.y - o.y);
612
+ i > l ? n.set(r.x, o.y) : n.set(o.x, r.y), e(n, !1);
613
+ } else if (s && a && t.eventInput.isKeyDown("alt")) {
614
+ const i = s.projectPoint(r, !1), l = a.projectPoint(r, !1);
615
+ i && l ? r.distance(i) < r.distance(l) ? n.copy(i) : n.copy(l) : i ? n.copy(i) : l && n.copy(l), e(n, !1);
616
616
  } else {
617
- const { point: i, find: d, line: m } = t.renderManager.adsorption();
618
- n.copy(i), e(n, d, m);
617
+ const { point: i, find: l, line: m } = t.renderManager.adsorption();
618
+ n.copy(i), e(n, l, m);
619
619
  }
620
620
  });
621
621
  return {
622
622
  destroy() {
623
- l();
623
+ d();
624
624
  },
625
625
  setBaseLine(r, i) {
626
- if (o = r, s = i, r && i) {
627
- const d = r.normal();
626
+ if (s = r, o = i, r && i) {
627
+ const l = r.normal();
628
628
  a = new N(
629
- i.clone().add(d.clone().multiplyScalar(10)),
630
- i.clone().add(d.multiplyScalar(-10))
629
+ i.clone().add(l.clone().multiplyScalar(10)),
630
+ i.clone().add(l.multiplyScalar(-10))
631
631
  );
632
632
  } else a = null;
633
633
  }
634
634
  };
635
635
  }
636
636
  }
637
- class Cn extends O {
637
+ class mt extends z {
638
638
  static name = "DrawLine";
639
- container = new g.Group();
639
+ container = new p.Group();
640
640
  interruptKeys = ["escape"];
641
641
  withdrawalKeys = ["control", "z"];
642
642
  shortcutKeys = ["control", "l"];
@@ -644,53 +644,55 @@ class Cn extends O {
644
644
  commandName = "draw-line";
645
645
  onAddFromParent(e) {
646
646
  super.onAddFromParent(e), this.editor.container.add(this.container);
647
- const t = this.commandManager.addCommandFlow(this.commandName).add(this.createInterrupt()).add(this.createCursor("crosshair")).add(this.selectPoint.bind(this)).add(this.end.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
647
+ const t = this.commandManager.addCommandFlow(this.commandName).add(this.createInterrupt()).add(this.createCursor("crosshair")).add(this.selectPoint.bind(this)).add(this.end.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this)).setLoop(!0);
648
648
  t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(this.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => this.eventInput.isKeyCombination(this.commandName) && await this.commandManager.start(this.commandName)), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
649
649
  }
650
650
  /** 选择点
651
651
  * @param next
652
652
  */
653
653
  selectPoint(e) {
654
- let t = this.parent?.findComponentByName("Editor"), n = null, s = null, o = [], a = this.renderer.createCircle(L.zero(), { color: 65280 }), l = t.domContainer.domElement, r = new ye([], 16711935), i = new ye([
655
- new g.Vector3(-1e4, 0, 0),
656
- new g.Vector3(1e4, 0, 0),
657
- new g.Vector3(0, -1e4, 0),
658
- new g.Vector3(0, 1e4, 0)
654
+ this.dispatchEvent({ type: "start" });
655
+ let t = this.parent?.findComponentByName("Editor"), n = null, o = null, s = [], a = this.renderer.createCircle(A.zero(), { color: 65280 }), d = t.domContainer.domElement, r = new Ce([], 16711935), i = new Ce([
656
+ new p.Vector3(-1e4, 0, 0),
657
+ new p.Vector3(1e4, 0, 0),
658
+ new p.Vector3(0, -1e4, 0),
659
+ new p.Vector3(0, 1e4, 0)
659
660
  ], 16711935);
660
- i.material = new g.LineDashedMaterial({
661
+ i.material = new p.LineDashedMaterial({
661
662
  color: 4235007,
662
663
  dashSize: 0.1,
663
664
  gapSize: 0.1,
664
665
  linewidth: 0.1
665
666
  }), this.container.add(r);
666
- const d = () => {
667
- r.setPoint(...o, n, s), i.position.copy(s), this.container.add(i), i.computeLineDistances();
668
- }, m = new g.Vector3();
669
- let y;
670
- const f = this.createPointerMove((p, h, E) => {
671
- m.set(p.x, p.y, 0), this.dispatchEvent({ type: "pointerMove", point: m }), y = E, h ? (a.position.set(p.x, p.y, 0), this.container.add(a), l.style.cursor = "none") : (a.removeFromParent(), l.style.cursor = "crosshair"), n && s && (d(), s.copy(m));
667
+ const l = () => {
668
+ r.setPoint(...s, n, o), i.position.copy(o), this.container.add(i), i.computeLineDistances();
669
+ }, m = new p.Vector3();
670
+ let g;
671
+ const w = this.createPointerMove((h, C, v) => {
672
+ m.set(h.x, h.y, 0), this.dispatchEvent({ type: "pointerMove", point: m }), g = v, C ? (a.position.set(h.x, h.y, 0), this.container.add(a), d.style.cursor = "none") : (a.removeFromParent(), d.style.cursor = "crosshair"), n && o && (l(), o.copy(m));
672
673
  });
673
674
  this.addEventRecord(
674
675
  "clear",
675
- () => f.destroy(),
676
+ () => w.destroy(),
676
677
  t.eventInput.addEventListener("codeChange", async () => {
677
678
  if (t.eventInput.isKeyDown("mouse_0")) {
678
679
  if (!n) {
679
- n = m.clone(), s = m.clone(), d(), f.setBaseLine(y ?? null, L.from(n));
680
+ n = m.clone(), o = m.clone(), l(), w.setBaseLine(g ?? null, A.from(n));
680
681
  return;
681
682
  }
682
- s = m.clone(), o.push(n.clone(), s.clone());
683
- const p = new N(L.from(n), L.from(s));
684
- f.setBaseLine(p, p.end), n.copy(s), d();
683
+ o = m.clone(), s.push(n.clone(), o.clone());
684
+ const h = new N(A.from(n), A.from(o));
685
+ w.setBaseLine(h, h.end), n.copy(o), l(), this.dispatchEvent({ type: "appendLine", points: s });
685
686
  } else if (t.eventInput.isOnlyKeyDowns(this.withdrawalKeys)) {
686
- if (o.length) {
687
- const { point: p } = t.renderManager.adsorption();
688
- if (o.pop(), s?.copy(p), n?.copy(o.pop()), d(), o.length >= 2) {
689
- const h = new N(L.from(o[o.length - 2]), L.from(o[o.length - 1]));
690
- f.setBaseLine(h, h.end);
687
+ if (s.length) {
688
+ const { point: h } = t.renderManager.adsorption();
689
+ if (s.pop(), o?.copy(h), n?.copy(s.pop()), l(), s.length >= 2) {
690
+ const C = new N(A.from(s[s.length - 2]), A.from(s[s.length - 1]));
691
+ w.setBaseLine(C, C.end);
691
692
  }
693
+ this.dispatchEvent({ type: "revoke", points: s });
692
694
  }
693
- } else t.eventInput.isKeyDowns(this.confirmKeys) && e(o);
695
+ } else t.eventInput.isKeyDowns(this.confirmKeys) && e(s);
694
696
  }),
695
697
  function() {
696
698
  r.removeFromParent(), a.removeFromParent(), i.removeFromParent();
@@ -702,14 +704,14 @@ class Cn extends O {
702
704
  */
703
705
  end(e, t) {
704
706
  const n = [];
705
- for (let s = 0; s < t.length; s += 2)
706
- n.push(new N(L.from(t[s]), L.from(t[s + 1])));
707
+ for (let o = 0; o < t.length; o += 2)
708
+ n.push(new N(A.from(t[o]), A.from(t[o + 1])));
707
709
  e(n);
708
710
  }
709
711
  /** 执行完成
710
712
  */
711
713
  completed(e) {
712
- this.renderManager.addLines(e), this.renderManager.draw(), this.commandManager.currentName === this.commandName && setTimeout(() => this.commandManager.start(this.commandName));
714
+ this.renderManager.addLines(e), this.renderManager.draw();
713
715
  }
714
716
  /** 回滚操作
715
717
  * @param data
@@ -725,9 +727,9 @@ class Cn extends O {
725
727
  return this.completed(e), e;
726
728
  }
727
729
  }
728
- class dt extends O {
730
+ class ht extends z {
729
731
  static name = "Default";
730
- container = new g.Group();
732
+ container = new p.Group();
731
733
  onAddFromParent() {
732
734
  const e = this.editor, t = e.commandManager;
733
735
  e.container.add(this.container), t.addCommandFlow("default").add(this.start.bind(this)).addEventListener("finally", this.finally.bind(this)), t.addEventListener("startedBefore", (n) => {
@@ -735,7 +737,7 @@ class dt extends O {
735
737
  }), t.addEventListener("finally", (n) => n.name !== "default" && t.start("default")), e.eventInput.addCancelDefaultBehavior(() => e.eventInput.isOnlyKeyDowns(["control", "g"]));
736
738
  }
737
739
  selectLines = [];
738
- selectLineObject3D = new g.Mesh();
740
+ selectLineObject3D = new p.Mesh();
739
741
  /** 添加选择的线段
740
742
  * @param lineSegment
741
743
  */
@@ -778,80 +780,81 @@ class dt extends O {
778
780
  * @param next
779
781
  */
780
782
  start() {
781
- const e = this.editor, t = e.eventInput, n = new g.Mesh(), s = e.domContainer.domElement;
782
- let o = null;
783
- n.position.z = 1e-3, this.selectLineObject3D.position.z = n.position.z + 1e-3, n.material = new g.MeshBasicMaterial({ color: 55561 });
783
+ const e = this.editor, t = e.eventInput, n = new p.Mesh(), o = e.domContainer.domElement;
784
+ let s = null;
785
+ n.position.z = 1e-3, this.selectLineObject3D.position.z = n.position.z + 1e-3, n.material = new p.MeshBasicMaterial({ color: 55561 });
784
786
  const a = () => {
785
- const r = e.pointerPosition.clone(), i = e.pointerPosition.clone(), d = new g.Mesh();
786
- this.container.add(d), d.position.z = 0.05, d.material = new g.MeshBasicMaterial({
787
+ const r = e.pointerPosition.clone(), i = e.pointerPosition.clone(), l = new p.Mesh();
788
+ this.container.add(l), l.position.z = 0.05, l.material = new p.MeshBasicMaterial({
787
789
  color: 16777215,
788
790
  transparent: !0,
789
791
  opacity: 0.5
790
792
  });
791
793
  const m = () => {
792
- const p = Math.min(r.x, i.x), h = Math.max(r.x, i.x), E = Math.min(r.y, i.y), x = Math.max(r.y, i.y), I = [
793
- p,
794
+ const h = Math.min(r.x, i.x), C = Math.max(r.x, i.x), v = Math.min(r.y, i.y), x = Math.max(r.y, i.y), L = [
795
+ h,
794
796
  x,
795
797
  0,
796
- h,
797
- E,
798
+ C,
799
+ v,
798
800
  0,
799
- h,
801
+ C,
800
802
  x,
801
803
  0,
802
- p,
804
+ h,
803
805
  x,
804
806
  0,
805
- p,
806
- E,
807
- 0,
808
807
  h,
809
- E,
808
+ v,
809
+ 0,
810
+ C,
811
+ v,
810
812
  0
811
813
  ];
812
- d.geometry = e.renderManager.createGeometry({ position: I }, I.length / 3);
813
- }, y = () => {
814
+ l.geometry = e.renderManager.createGeometry({ position: L }, L.length / 3);
815
+ }, g = () => {
814
816
  i.copy(e.pointerPosition), m();
815
- }, f = () => {
816
- document.removeEventListener("mousemove", y), document.removeEventListener("mouseup", f), d.removeFromParent();
817
- const p = Math.min(r.x, i.x), h = Math.max(r.x, i.x), E = Math.min(r.y, i.y), x = Math.max(r.y, i.y), I = new Xe(p, h, E, x), K = e.renderManager.quadtree.queryBox(I);
818
- this.removeSelectLineAll(), K.forEach((Y) => this.addSelectLine(Y.line)), this.updateSelectLinesGeometry();
817
+ }, w = () => {
818
+ document.removeEventListener("mousemove", g), document.removeEventListener("mouseup", w), l.removeFromParent();
819
+ const h = Math.min(r.x, i.x), C = Math.max(r.x, i.x), v = Math.min(r.y, i.y), x = Math.max(r.y, i.y), L = new tt(h, C, v, x), B = e.renderManager.quadtree.queryBox(L);
820
+ this.removeSelectLineAll(), B.forEach(($) => this.addSelectLine($.line)), this.updateSelectLinesGeometry();
819
821
  };
820
- document.addEventListener("mousemove", y), document.addEventListener("mouseup", f);
821
- }, l = this.renderer.createText("", new g.Vector3(0, 0, 0), {
822
+ document.addEventListener("mousemove", g), document.addEventListener("mouseup", w);
823
+ }, d = this.renderer.createText("", new p.Vector3(0, 0, 0), {
822
824
  background: "rgba(0,0,0,0.5)",
823
825
  padding: "2px",
824
826
  borderRadius: "2px"
825
827
  }, this.container);
826
- l.visible = !1, this.addEventRecord(
828
+ d.visible = !1, this.addEventRecord(
827
829
  "clear",
828
830
  // 注册鼠标指针位置变化事件
829
831
  e.addEventListener("pointerPositionChange", () => {
830
832
  const { line: r } = e.renderManager.adsorption();
831
833
  if (r) {
832
834
  const i = r.expandToRectangle(0.025, "bothSides");
833
- n.geometry = e.renderManager.createGeometry({ position: i.createGeometry() }, 6), this.container.add(n), s.style.cursor = "pointer", o = r;
834
- const d = r.center;
835
- l.element.innerText = parseInt(r.length() * 1e3 + "") + " mm", l.position.set(d.x, d.y, 0), l.visible = !0;
835
+ n.geometry = e.renderManager.createGeometry({ position: i.createGeometry() }, 6), this.container.add(n), o.style.cursor = "pointer", s = r;
836
+ const l = r.center;
837
+ let m = "";
838
+ d.element.innerText = m + parseInt(r.length() * 1e3 + "") + " mm", d.position.set(l.x, l.y, 0), d.visible = !0;
836
839
  } else
837
- n.removeFromParent(), s.style.cursor = "default", o = null, l.visible = !1;
840
+ n.removeFromParent(), o.style.cursor = "default", s = null, d.visible = !1;
838
841
  }),
839
842
  t.addEventListener("codeChange", () => {
840
843
  if (t.isKeyDown("mouse_0")) {
841
- if (!o) return a();
844
+ if (!s) return a();
842
845
  if (t.isKeyDown("alt"))
843
- return this.removeSelectLine(o);
844
- t.isKeyDown("control") || this.removeSelectLineAll(), this.addSelectLine(o);
846
+ return this.removeSelectLine(s);
847
+ t.isKeyDown("control") || this.removeSelectLineAll(), this.addSelectLine(s);
845
848
  } else if (t.isKeyDown("mouse_1")) {
846
- if (!o) return;
847
- this.removeSelectLine(o);
849
+ if (!s) return;
850
+ this.removeSelectLine(s);
848
851
  } else if (t.isKeyDown("mouse_2")) {
849
- if (!o) return;
850
- this.addSelectLine(o);
852
+ if (!s) return;
853
+ this.addSelectLine(s);
851
854
  } else t.isKeyDowns(["control", "z"]) ? e.commandManager.rollback() : t.isKeyDowns(["control", "y"]) && e.commandManager.revokeRollback();
852
855
  }),
853
856
  function() {
854
- n.removeFromParent(), l.removeFromParent();
857
+ n.removeFromParent(), d.removeFromParent();
855
858
  }
856
859
  );
857
860
  }
@@ -862,12 +865,16 @@ class dt extends O {
862
865
  this.canceEventRecord("clear"), this.removeSelectLineAll(), this.updateSelectLinesGeometry();
863
866
  }
864
867
  }
865
- class En extends $e {
868
+ class Dn extends nt {
866
869
  list = [];
867
870
  rollbacklist = [];
868
871
  revokeRollbacklist = [];
869
872
  // 是否写入操作记录
870
873
  writeOperationList = !0;
874
+ loop = !1;
875
+ setLoop(e) {
876
+ return this.loop = e, this;
877
+ }
871
878
  /**
872
879
  *
873
880
  * @param operation
@@ -890,7 +897,7 @@ class En extends $e {
890
897
  return this.revokeRollbacklist.push(e), this;
891
898
  }
892
899
  }
893
- class Ln extends $e {
900
+ class Pn extends nt {
894
901
  commandFlowMap = /* @__PURE__ */ new Map();
895
902
  lock = !1;
896
903
  abortController = null;
@@ -917,7 +924,7 @@ class Ln extends $e {
917
924
  */
918
925
  addCommandFlow(e) {
919
926
  if (this.commandFlowMap.has(e)) throw new Error(`${e} 命令已经存在`);
920
- const t = new En();
927
+ const t = new Dn();
921
928
  return this.commandFlowMap.set(e, t), t;
922
929
  }
923
930
  executionPromise = null;
@@ -934,25 +941,25 @@ class Ln extends $e {
934
941
  currentName: this.currentName
935
942
  }), this.executionPromise && await this.executionPromise, this.executionPromise = null, this.lock)
936
943
  throw new Error("命令管理器已被 " + this.currentName + " 命令锁定,无法启动新的命令流,请退出或等待命令执行结束");
937
- const s = this.commandFlowMap.get(e);
938
- if (!s)
944
+ const o = this.commandFlowMap.get(e);
945
+ if (!o)
939
946
  throw new Error(`命令流 ${e} 不存在`);
940
- this.lock = !0, this.abortController = new AbortController(), this.currentName = e, s.dispatchEvent({ type: "started" }), this.dispatchEvent({ type: "started", name: e });
947
+ this.lock = !0, this.abortController = new AbortController(), this.currentName = e, o.dispatchEvent({ type: "started" }), this.dispatchEvent({ type: "started", name: e });
941
948
  try {
942
- for (let o = n; o < s.list.length; o++) {
943
- const a = s.list[o];
944
- if (s.dispatchEvent({ type: "executing", index: o }), this.dispatchEvent({ type: "executing", name: e, index: o }), t = await new Promise((l) => {
945
- this.resolve = l, a(l, t);
949
+ for (let s = n; s < o.list.length; s++) {
950
+ const a = o.list[s];
951
+ if (o.dispatchEvent({ type: "executing", index: s }), this.dispatchEvent({ type: "executing", name: e, index: s }), t = await new Promise((d) => {
952
+ this.resolve = d, a(d, t);
946
953
  }), this.abortController.signal.aborted) {
947
- s.dispatchEvent({ type: "executionInterrupt", index: o }), this.dispatchEvent({ type: "executionInterrupt", name: e, index: o }), this.dispatchEvent({ type: "cancel", name: e });
954
+ o.dispatchEvent({ type: "executionInterrupt", index: s }), this.dispatchEvent({ type: "executionInterrupt", name: e, index: s }), this.dispatchEvent({ type: "cancel", name: e });
948
955
  break;
949
956
  } else
950
- s.dispatchEvent({ type: "executionCompleted", index: o, data: t }), this.dispatchEvent({ type: "executionCompleted", name: e, index: o, data: t });
957
+ o.dispatchEvent({ type: "executionCompleted", index: s, data: t }), this.dispatchEvent({ type: "executionCompleted", name: e, index: s, data: t });
951
958
  }
952
- } catch (o) {
953
- console.error(o);
959
+ } catch (s) {
960
+ console.error(s);
954
961
  } finally {
955
- this.abortController && !this.abortController.signal.aborted && (s.dispatchEvent({ type: "completed", data: t }), this.dispatchEvent({ type: "completed", name: e, data: t }), s.writeOperationList && (this.operationList.push({ name: e, data: t }), this.rollbackList.length = 0)), this.lock = !1, this.abortController = null, this.currentName = null, s.dispatchEvent({ type: "finally" }), this.dispatchEvent({ type: "finally", name: e }), this.executionResolve && (this.executionResolve(null), this.executionResolve = null);
962
+ this.lock = !1, this.currentName = null, this.abortController && !this.abortController.signal.aborted && (o.dispatchEvent({ type: "completed", data: t }), this.dispatchEvent({ type: "completed", name: e, data: t }), o.writeOperationList && (this.operationList.push({ name: e, data: t }), this.rollbackList.length = 0), o.loop && queueMicrotask(() => this.start(e))), this.abortController = null, o.dispatchEvent({ type: "finally" }), this.dispatchEvent({ type: "finally", name: e }), this.executionResolve && (this.executionResolve(null), this.executionResolve = null);
956
963
  }
957
964
  return t;
958
965
  }
@@ -970,7 +977,7 @@ class Ln extends $e {
970
977
  if (!e) return !1;
971
978
  const t = this.commandFlowMap.get(e.name);
972
979
  if (!t) return !1;
973
- const n = t.rollbacklist.reduce((s, o) => o(s), e.data);
980
+ const n = t.rollbacklist.reduce((o, s) => s(o), e.data);
974
981
  return this.dispatchEvent({ type: "rollback", name: e.name }), this.rollbackList.push({
975
982
  data: n,
976
983
  name: e.name
@@ -988,7 +995,7 @@ class Ln extends $e {
988
995
  if (!e) return !1;
989
996
  const t = this.commandFlowMap.get(e.name);
990
997
  if (!t) return !1;
991
- const n = t.revokeRollbacklist.reduce((s, o) => o(s), e.data);
998
+ const n = t.revokeRollbacklist.reduce((o, s) => s(o), e.data);
992
999
  return this.dispatchEvent({ type: "revokeRollback", name: e.name }), this.operationList.push({ name: e.name, data: n }), !0;
993
1000
  } catch (e) {
994
1001
  throw new Error(`撤回回滚失败:${e}`);
@@ -1000,65 +1007,65 @@ class Ln extends $e {
1000
1007
  }, { once: !0 });
1001
1008
  }
1002
1009
  }
1003
- const Mn = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='5569'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M522.1888%20811.3152a412.1088%20412.1088%200%200%200-114.5344-269.7728l-244.48%20269.7728h359.0144zM450.816%20493.824c83.5072%2085.3504%20132.7104%20197.4784%20136.5504%20317.4912h417.5872v63.232H18.9952L676.1472%20149.4016l48.9472%2041.7792-274.2784%20302.6432z'%20%3e%3c/path%3e%3c/svg%3e", kn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1004
- __proto__: null,
1005
- default: Mn
1006
- }, Symbol.toStringTag, { value: "Module" })), In = "data:image/svg+xml,%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M639.999191%20893.597594c-0.999994-54.699654-36.39977-101.099361-85.39946-118.399252-6.39996-2.199986-10.599933-8.299948-10.599933-14.999905V263.801573c0-6.699958%204.199973-12.799919%2010.599933-14.999905%2049.09969-17.299891%2084.399467-63.599598%2085.39946-118.399252C641.299183%2059.902862%20583.399549%200.503237%20512.899994%200.00324%20441.800444-0.496757%20384.000809%2057.00288%20384.000809%20128.002431c0%2055.699648%2035.599775%20103.099349%2085.299461%20120.699238%206.39996%202.299985%2010.699932%208.299948%2010.699932%2015.099904v496.396864c0%206.799957-4.299973%2012.799919-10.699932%2015.099904-49.699686%2017.599889-85.299461%2064.999589-85.299461%20120.699238%200%2070.999551%2057.799635%20128.499188%20128.899185%20127.999191%2070.499555-0.499997%20128.399189-59.899622%20127.099197-130.399176zM448.000404%20128.002431c0-35.299777%2028.699819-63.999596%2063.999596-63.999595s63.999596%2028.699819%2063.999596%2063.999595-28.699819%2063.999596-63.999596%2063.999596-63.999596-28.699819-63.999596-63.999596z%20m0%20767.995148c0-35.299777%2028.699819-63.999596%2063.999596-63.999596s63.999596%2028.699819%2063.999596%2063.999596-28.699819%2063.999596-63.999596%2063.999595-63.999596-28.699819-63.999596-63.999595z'%3e%3c/path%3e%3c/svg%3e", Pn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1010
+ const Bn = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='5569'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M522.1888%20811.3152a412.1088%20412.1088%200%200%200-114.5344-269.7728l-244.48%20269.7728h359.0144zM450.816%20493.824c83.5072%2085.3504%20132.7104%20197.4784%20136.5504%20317.4912h417.5872v63.232H18.9952L676.1472%20149.4016l48.9472%2041.7792-274.2784%20302.6432z'%20%3e%3c/path%3e%3c/svg%3e", Sn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1007
1011
  __proto__: null,
1008
- default: In
1009
- }, Symbol.toStringTag, { value: "Module" })), Dn = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='8193'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M426.666667%20255.872c0%2031.232-8.405333%2060.544-23.04%2085.76L512%20451.498667l287.061333-287.061334a85.333333%2085.333333%200%200%201%20120.661334%200l-516.693334%20516.693334a170.666667%20170.666667%200%201%201-60.330666-60.330667l108.970666-108.970667-108.970666-108.970666A170.666667%20170.666667%200%201%201%20426.666667%20255.872z%20m-85.333334%200a85.333333%2085.333333%200%201%200-170.666666%200%2085.333333%2085.333333%200%200%200%20170.666666%200z%20m578.389334%20603.392a85.333333%2085.333333%200%200%201-120.661334%200l-226.858666-226.858667%2060.373333-60.330666%20287.146667%20287.146666zM682.666667%20469.205333h85.333333v85.333334h-85.333333v-85.333334z%20m170.666666%200h85.333334v85.333334h-85.333334v-85.333334z%20m-597.333333%200h85.333333v85.333334H256v-85.333334z%20m-170.666667%200h85.333334v85.333334H85.333333v-85.333334z%20m170.666667%20384a85.333333%2085.333333%200%201%200%200-170.666666%2085.333333%2085.333333%200%200%200%200%20170.666666z'%3e%3c/path%3e%3c/svg%3e", An = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1012
+ default: Bn
1013
+ }, Symbol.toStringTag, { value: "Module" })), Fn = "data:image/svg+xml,%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M639.999191%20893.597594c-0.999994-54.699654-36.39977-101.099361-85.39946-118.399252-6.39996-2.199986-10.599933-8.299948-10.599933-14.999905V263.801573c0-6.699958%204.199973-12.799919%2010.599933-14.999905%2049.09969-17.299891%2084.399467-63.599598%2085.39946-118.399252C641.299183%2059.902862%20583.399549%200.503237%20512.899994%200.00324%20441.800444-0.496757%20384.000809%2057.00288%20384.000809%20128.002431c0%2055.699648%2035.599775%20103.099349%2085.299461%20120.699238%206.39996%202.299985%2010.699932%208.299948%2010.699932%2015.099904v496.396864c0%206.799957-4.299973%2012.799919-10.699932%2015.099904-49.699686%2017.599889-85.299461%2064.999589-85.299461%20120.699238%200%2070.999551%2057.799635%20128.499188%20128.899185%20127.999191%2070.499555-0.499997%20128.399189-59.899622%20127.099197-130.399176zM448.000404%20128.002431c0-35.299777%2028.699819-63.999596%2063.999596-63.999595s63.999596%2028.699819%2063.999596%2063.999595-28.699819%2063.999596-63.999596%2063.999596-63.999596-28.699819-63.999596-63.999596z%20m0%20767.995148c0-35.299777%2028.699819-63.999596%2063.999596-63.999596s63.999596%2028.699819%2063.999596%2063.999596-28.699819%2063.999596-63.999596%2063.999595-63.999596-28.699819-63.999596-63.999595z'%3e%3c/path%3e%3c/svg%3e", Kn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1010
1014
  __proto__: null,
1011
- default: Dn
1012
- }, Symbol.toStringTag, { value: "Module" })), Sn = "data:image/svg+xml,%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M909.050991%20169.476903l-217.554898%200%200-31.346939c0-39.5866-32.205493-71.792093-71.793116-71.792093L408.15591%2066.337871c-39.5866%200-71.792093%2032.205493-71.792093%2071.792093l0%2031.346939L113.349581%20169.476903c-11.013845%200-19.942191%208.940626-19.942191%2019.954471s8.928347%2019.954471%2019.942191%2019.954471l84.264149%200%200%20640.687918c0%2060.479443%2049.203632%20109.683075%20109.683075%20109.683075l416.474366%200c60.479443%200%20109.683075-49.203632%20109.683075-109.683075L833.454246%20209.385844l75.595722%200c11.012821%200%2019.942191-8.940626%2019.942191-19.954471S920.063813%20169.476903%20909.050991%20169.476903zM376.2482%20138.130987c0-17.593703%2014.314007-31.907711%2031.907711-31.907711l211.547067%200c17.593703%200%2031.907711%2014.314007%2031.907711%2031.907711l0%2031.346939L376.2482%20169.477926%20376.2482%20138.130987zM793.569864%20850.074785c0%2038.486546-31.312146%2069.798692-69.798692%2069.798692L307.297828%20919.873478c-38.486546%200-69.798692-31.312146-69.798692-69.798692L237.499136%20211.042577l556.070728%200L793.569864%20850.074785zM510.662539%20861.276918c11.012821%200%2019.954471-8.92937%2019.954471-19.942191L530.61701%20294.912753c0-11.013845-8.94165-19.942191-19.954471-19.942191s-19.954471%208.928347-19.954471%2019.942191L490.708068%20841.334727C490.708068%20852.347548%20499.649717%20861.276918%20510.662539%20861.276918zM374.562814%20801.449321c11.012821%200%2019.954471-8.92937%2019.954471-19.942191L394.517285%20354.74035c0-11.013845-8.94165-19.942191-19.954471-19.942191s-19.954471%208.928347-19.954471%2019.942191l0%20426.76678C354.608344%20792.519951%20363.549993%20801.449321%20374.562814%20801.449321zM649.832182%20801.449321c11.012821%200%2019.954471-8.92937%2019.954471-19.942191L669.786653%20354.74035c0-11.013845-8.94165-19.942191-19.954471-19.942191s-19.954471%208.928347-19.954471%2019.942191l0%20426.76678C629.877711%20792.519951%20638.81936%20801.449321%20649.832182%20801.449321z'%20%3e%3c/path%3e%3c/svg%3e", _n = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1013
- __proto__: null,
1014
- default: Sn
1015
- }, Symbol.toStringTag, { value: "Module" })), Nn = "data:image/svg+xml,%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M220.451548%20913.518482V318.145854c0-27.62038%2022.505495-50.125874%2050.125875-50.125874H865.95005c27.62038%200%2050.125874%2022.505495%2050.125874%2050.125874v218.917083h59.332667V318.145854c0-60.355644-49.102897-109.458541-109.458541-109.458541h-39.896104v-99.228772C826.053946%2049.102897%20776.951049%200%20716.595405%200H121.222777C60.867133%200%2011.764236%2049.102897%2011.764236%20109.458541V705.854146c0%2060.355644%2049.102897%20109.458541%20109.458541%20109.458541h39.896104v99.228772c0%2060.355644%2049.102897%20109.458541%20109.458542%20109.458541h257.790209v-59.332667H269.554446c-26.597403-1.022977-49.102897-23.528472-49.102898-51.148851z%20m-59.332667-595.372628v436.811189h-39.896104c-27.62038%200-50.125874-22.505495-50.125874-50.125874V109.458541c0-27.62038%2022.505495-50.125874%2050.125874-50.125874H716.595405c27.62038%200%2050.125874%2022.505495%2050.125874%2050.125874v99.228772H269.554446c-59.332667%200-108.435564%2049.102897-108.435565%20109.458541z'%20%3e%3c/path%3e%3cpath%20d='M902.777223%20854.185814l98.205794-98.205794c15.344655-15.344655%2015.344655-40.919081%200-56.263736s-40.919081-15.344655-56.263736%200L846.513487%20797.922078%20747.284715%20699.716284c-15.344655-15.344655-40.919081-15.344655-56.263736%200s-15.344655%2040.919081%200%2056.263736l98.205794%2098.205794-98.205794%2098.205794c-15.344655%2015.344655-15.344655%2040.919081%200%2056.263737s40.919081%2015.344655%2056.263736%200l98.205794-98.205795%2098.205795%2098.205795c15.344655%2015.344655%2040.919081%2015.344655%2056.263736%200s15.344655-40.919081%200-56.263737l-97.182817-98.205794z'%20%3e%3c/path%3e%3c/svg%3e", Bn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1015
+ default: Fn
1016
+ }, Symbol.toStringTag, { value: "Module" })), Nn = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='8193'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M426.666667%20255.872c0%2031.232-8.405333%2060.544-23.04%2085.76L512%20451.498667l287.061333-287.061334a85.333333%2085.333333%200%200%201%20120.661334%200l-516.693334%20516.693334a170.666667%20170.666667%200%201%201-60.330666-60.330667l108.970666-108.970667-108.970666-108.970666A170.666667%20170.666667%200%201%201%20426.666667%20255.872z%20m-85.333334%200a85.333333%2085.333333%200%201%200-170.666666%200%2085.333333%2085.333333%200%200%200%20170.666666%200z%20m578.389334%20603.392a85.333333%2085.333333%200%200%201-120.661334%200l-226.858666-226.858667%2060.373333-60.330666%20287.146667%20287.146666zM682.666667%20469.205333h85.333333v85.333334h-85.333333v-85.333334z%20m170.666666%200h85.333334v85.333334h-85.333334v-85.333334z%20m-597.333333%200h85.333333v85.333334H256v-85.333334z%20m-170.666667%200h85.333334v85.333334H85.333333v-85.333334z%20m170.666667%20384a85.333333%2085.333333%200%201%200%200-170.666666%2085.333333%2085.333333%200%200%200%200%20170.666666z'%3e%3c/path%3e%3c/svg%3e", Rn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1016
1017
  __proto__: null,
1017
1018
  default: Nn
1018
- }, Symbol.toStringTag, { value: "Module" })), Rn = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1757902601497'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='9801'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M761.344%20119.296H226.816c-18.944%200-39.424%2011.776-39.424%2030.72V921.6h614.4V148.48c0.512-18.944-22.016-29.184-40.448-29.184z%20m-537.6%20768c-2.048%200-2.048%200%200%200L221.696%20163.84c0-5.12%205.12-10.24%2010.24-10.24h522.24c8.704%200%2013.824%205.12%2013.824%2013.824v720.384s0%201.536-1.536%201.536h-15.36V194.56c0-16.896-8.704-24.064-29.184-24.064H266.24c-18.944%200-27.136%208.704-27.136%2024.064v692.736h-15.36z%20m49.152%200V204.8H716.8v682.496H272.896z'%20p-id='9802'%3e%3c/path%3e%3cpath%20d='M648.704%20508.416c-16.896%200-32.256%2013.824-32.256%2032.256%200%2016.896%2013.824%2032.256%2032.256%2032.256s32.256-13.824%2032.256-32.256c0-16.896-13.824-32.256-32.256-32.256z'%20p-id='9803'%3e%3c/path%3e%3c/svg%3e", On = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1019
- __proto__: null,
1020
- default: Rn
1021
- }, Symbol.toStringTag, { value: "Module" })), zn = "data:image/svg+xml,%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M491.80027198%20557.44938977c-10.0998647-15.14979706-20.19972802-25.24966037-35.34952507-35.34952507-15.14979706-10.0998647-30.29959271-15.14979706-50.49932211-15.14979704-55.54925309%200-100.99864286%2045.44938977-100.99864287%20100.99864285%200%2015.14979706%205.04993234%2035.34952507%2015.14979568%2050.49932212%2010.0998647%2015.14979706%2020.19972802%2030.29959271%2035.34952506%2035.34952508%2015.14979706%2010.0998647%2035.34952507%2015.14979706%2050.49932213%2015.14979567%2055.54925309%200%20100.99864286-45.44938977%20100.99864286-100.99864287%200-15.14979706-5.04993234-35.34952507-15.14979568-50.49932074z%20m-85.84884718%20100.99864286h-15.14979706c-20.19972802-5.04993234-30.29959271-20.19972802-35.34952507-35.34952507V612.99864286c0-30.29959271%2025.24966037-50.49932212%2050.49932213-50.49932074h10.09986469c15.14979706%205.04993234%2030.29959271%2015.14979706%2035.34952507%2035.34952507v15.14979567c5.04993234%2025.24966037-20.19972802%2045.44938977-45.44938976%2045.44938977z'%3e%3c/path%3e%3cpath%20d='M390.80162774%20658.44803263l-40.39945604%2040.39945743-227.24694747%20222.19701373-35.34952506-35.34952508%20227.24694745-227.24694608%2040.39945605-40.39945743c5.04993234%2020.19972802%2020.19972802%2035.34952507%2035.34952507%2040.39945743zM648.34816793%20405.9514248l-40.39945742%2040.3994574-116.14843853%20116.14843992-40.39945742%2035.34952507c-5.04993234-20.19972802-20.19972802-30.29959271-35.34952507-35.34952507l40.39945742-40.39945742%20116.14843853-111.09850756%2035.34952507-35.34952507c10.0998647%2015.14979706%2020.19972802%2025.24966037%2040.39945742%2030.29959273zM926.09443614%20133.25508894L749.34681078%20310.00271428l-40.3994574%2040.39945742c-5.04993234-20.19972802-15.14979706-35.34952507-30.29959272-40.39945742l35.34952506-40.39945742%20176.74762534-176.74762535%2035.34952508%2040.39945743z'%20%3e%3c/path%3e%3cpath%20d='M749.34681078%20310.00271428c-10.0998647-15.14979706-20.19972802-30.29959271-35.34952506-35.34952506-15.14979706-10.0998647-35.34952507-15.14979706-55.54925309-15.14979706-55.54925309%200-100.99864286%2045.44938977-100.99864286%20100.99864286%200%2020.19972802%205.04993234%2040.39945743%2015.14979567%2055.54925447%2010.0998647%2015.14979706%2020.19972802%2025.24966037%2035.34952507%2035.34952507%2015.14979706%2010.0998647%2030.29959271%2015.14979706%2050.49932212%2015.14979567%2055.54925309%200%20100.99864286-45.44938977%20100.99864286-100.99864286%200-25.24966037-5.04993234-40.39945743-10.09986471-55.54925309z%20m-90.89877815%2095.94871052h-10.0998647c-20.19972802-5.04993234-35.34952507-15.14979706-40.39945742-35.34952509%200-5.04993234-5.04993234-10.0998647-5.04993234-15.14979704%200-30.29959271%2025.24966037-50.49932212%2050.49932212-50.49932074%205.04993234%200%2010.0998647%200%2015.14979704%205.04993235%2015.14979706%205.04993234%2030.29959271%2020.19972802%2030.29959273%2040.39945742v10.09986332c10.0998647%2025.24966037-15.14979706%2045.44938977-40.39945743%2045.44938978z'%20%3e%3c/path%3e%3c/svg%3e", Fn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1019
+ }, Symbol.toStringTag, { value: "Module" })), zn = "data:image/svg+xml,%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M909.050991%20169.476903l-217.554898%200%200-31.346939c0-39.5866-32.205493-71.792093-71.793116-71.792093L408.15591%2066.337871c-39.5866%200-71.792093%2032.205493-71.792093%2071.792093l0%2031.346939L113.349581%20169.476903c-11.013845%200-19.942191%208.940626-19.942191%2019.954471s8.928347%2019.954471%2019.942191%2019.954471l84.264149%200%200%20640.687918c0%2060.479443%2049.203632%20109.683075%20109.683075%20109.683075l416.474366%200c60.479443%200%20109.683075-49.203632%20109.683075-109.683075L833.454246%20209.385844l75.595722%200c11.012821%200%2019.942191-8.940626%2019.942191-19.954471S920.063813%20169.476903%20909.050991%20169.476903zM376.2482%20138.130987c0-17.593703%2014.314007-31.907711%2031.907711-31.907711l211.547067%200c17.593703%200%2031.907711%2014.314007%2031.907711%2031.907711l0%2031.346939L376.2482%20169.477926%20376.2482%20138.130987zM793.569864%20850.074785c0%2038.486546-31.312146%2069.798692-69.798692%2069.798692L307.297828%20919.873478c-38.486546%200-69.798692-31.312146-69.798692-69.798692L237.499136%20211.042577l556.070728%200L793.569864%20850.074785zM510.662539%20861.276918c11.012821%200%2019.954471-8.92937%2019.954471-19.942191L530.61701%20294.912753c0-11.013845-8.94165-19.942191-19.954471-19.942191s-19.954471%208.928347-19.954471%2019.942191L490.708068%20841.334727C490.708068%20852.347548%20499.649717%20861.276918%20510.662539%20861.276918zM374.562814%20801.449321c11.012821%200%2019.954471-8.92937%2019.954471-19.942191L394.517285%20354.74035c0-11.013845-8.94165-19.942191-19.954471-19.942191s-19.954471%208.928347-19.954471%2019.942191l0%20426.76678C354.608344%20792.519951%20363.549993%20801.449321%20374.562814%20801.449321zM649.832182%20801.449321c11.012821%200%2019.954471-8.92937%2019.954471-19.942191L669.786653%20354.74035c0-11.013845-8.94165-19.942191-19.954471-19.942191s-19.954471%208.928347-19.954471%2019.942191l0%20426.76678C629.877711%20792.519951%20638.81936%20801.449321%20649.832182%20801.449321z'%20%3e%3c/path%3e%3c/svg%3e", On = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1022
1020
  __proto__: null,
1023
1021
  default: zn
1024
- }, Symbol.toStringTag, { value: "Module" })), Kn = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1757902422799'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='1735'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M843.2%20726.4c-20.2%200-39.2%205.2-55.8%2014.3L283.8%20237.2c9-16.5%2014.1-35.4%2014.1-55.5%200-64.2-52.3-116.5-116.5-116.5S65%20117.4%2065%20181.6s52.3%20116.5%20116.5%20116.5c20.2%200%2039.2-5.2%2055.8-14.2l503.5%20503.5c-9%2016.5-14.1%2035.4-14.1%2055.5%200%2064.2%2052.3%20116.5%20116.5%20116.5s116.5-52.3%20116.5-116.5-52.3-116.5-116.5-116.5zM181.4%20232.1c-27.8%200-50.5-22.6-50.5-50.5s22.6-50.5%2050.5-50.5%2050.5%2022.6%2050.5%2050.5-22.6%2050.5-50.5%2050.5z%20m661.8%20661.3c-27.8%200-50.5-22.6-50.5-50.5%200-27.8%2022.6-50.5%2050.5-50.5s50.5%2022.6%2050.5%2050.5c0%2027.8-22.7%2050.5-50.5%2050.5z'%20fill='%23231815'%20p-id='1736'%3e%3c/path%3e%3c/svg%3e", Tn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1022
+ }, Symbol.toStringTag, { value: "Module" })), Qn = "data:image/svg+xml,%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M220.451548%20913.518482V318.145854c0-27.62038%2022.505495-50.125874%2050.125875-50.125874H865.95005c27.62038%200%2050.125874%2022.505495%2050.125874%2050.125874v218.917083h59.332667V318.145854c0-60.355644-49.102897-109.458541-109.458541-109.458541h-39.896104v-99.228772C826.053946%2049.102897%20776.951049%200%20716.595405%200H121.222777C60.867133%200%2011.764236%2049.102897%2011.764236%20109.458541V705.854146c0%2060.355644%2049.102897%20109.458541%20109.458541%20109.458541h39.896104v99.228772c0%2060.355644%2049.102897%20109.458541%20109.458542%20109.458541h257.790209v-59.332667H269.554446c-26.597403-1.022977-49.102897-23.528472-49.102898-51.148851z%20m-59.332667-595.372628v436.811189h-39.896104c-27.62038%200-50.125874-22.505495-50.125874-50.125874V109.458541c0-27.62038%2022.505495-50.125874%2050.125874-50.125874H716.595405c27.62038%200%2050.125874%2022.505495%2050.125874%2050.125874v99.228772H269.554446c-59.332667%200-108.435564%2049.102897-108.435565%20109.458541z'%20%3e%3c/path%3e%3cpath%20d='M902.777223%20854.185814l98.205794-98.205794c15.344655-15.344655%2015.344655-40.919081%200-56.263736s-40.919081-15.344655-56.263736%200L846.513487%20797.922078%20747.284715%20699.716284c-15.344655-15.344655-40.919081-15.344655-56.263736%200s-15.344655%2040.919081%200%2056.263736l98.205794%2098.205794-98.205794%2098.205794c-15.344655%2015.344655-15.344655%2040.919081%200%2056.263737s40.919081%2015.344655%2056.263736%200l98.205794-98.205795%2098.205795%2098.205795c15.344655%2015.344655%2040.919081%2015.344655%2056.263736%200s15.344655-40.919081%200-56.263737l-97.182817-98.205794z'%20%3e%3c/path%3e%3c/svg%3e", Tn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1025
1023
  __proto__: null,
1026
- default: Kn
1027
- }, Symbol.toStringTag, { value: "Module" })), jn = "data:image/svg+xml,%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M114.176%2046.528h618.496c37.312%200.064%2067.584%2030.336%2067.648%2067.648v618.56c0%2037.248-30.336%2067.584-67.648%2067.584H114.176A67.776%2067.776%200%200%201%2046.528%20732.8V114.176c0-37.312%2030.336-67.648%2067.648-67.648z%20m2.176%20686.208l616.32-2.24-2.176-616.32-614.144%202.176v616.32zM907.648%20291.2l2.176%20616.32H291.264a34.88%2034.88%200%201%200%200%2069.888h618.56c37.312%200%2067.648-30.336%2067.648-67.648V291.264a34.88%2034.88%200%201%200-69.824%200z'%20%3e%3c/path%3e%3c/svg%3e", Vn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1024
+ default: Qn
1025
+ }, Symbol.toStringTag, { value: "Module" })), Vn = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1757902601497'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='9801'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M761.344%20119.296H226.816c-18.944%200-39.424%2011.776-39.424%2030.72V921.6h614.4V148.48c0.512-18.944-22.016-29.184-40.448-29.184z%20m-537.6%20768c-2.048%200-2.048%200%200%200L221.696%20163.84c0-5.12%205.12-10.24%2010.24-10.24h522.24c8.704%200%2013.824%205.12%2013.824%2013.824v720.384s0%201.536-1.536%201.536h-15.36V194.56c0-16.896-8.704-24.064-29.184-24.064H266.24c-18.944%200-27.136%208.704-27.136%2024.064v692.736h-15.36z%20m49.152%200V204.8H716.8v682.496H272.896z'%20p-id='9802'%3e%3c/path%3e%3cpath%20d='M648.704%20508.416c-16.896%200-32.256%2013.824-32.256%2032.256%200%2016.896%2013.824%2032.256%2032.256%2032.256s32.256-13.824%2032.256-32.256c0-16.896-13.824-32.256-32.256-32.256z'%20p-id='9803'%3e%3c/path%3e%3c/svg%3e", jn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1028
1026
  __proto__: null,
1029
- default: jn
1030
- }, Symbol.toStringTag, { value: "Module" })), Gn = "data:image/svg+xml,%3csvg%20viewBox='0%200%201029%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M788.17984%2016l-55.424%2060.672%20116.48%20106.56H418.13184a410.816%20410.816%200%201%200%200%20821.632h547.712v-82.176H418.13184a328.64%20328.64%200%200%201%200-657.28l441.792-0.128-124.8%2098.368%2050.752%2064.512%20243.328-191.488L788.17984%2016z'%3e%3c/path%3e%3c/svg%3e", Qn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1027
+ default: Vn
1028
+ }, Symbol.toStringTag, { value: "Module" })), _n = "data:image/svg+xml,%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M491.80027198%20557.44938977c-10.0998647-15.14979706-20.19972802-25.24966037-35.34952507-35.34952507-15.14979706-10.0998647-30.29959271-15.14979706-50.49932211-15.14979704-55.54925309%200-100.99864286%2045.44938977-100.99864287%20100.99864285%200%2015.14979706%205.04993234%2035.34952507%2015.14979568%2050.49932212%2010.0998647%2015.14979706%2020.19972802%2030.29959271%2035.34952506%2035.34952508%2015.14979706%2010.0998647%2035.34952507%2015.14979706%2050.49932213%2015.14979567%2055.54925309%200%20100.99864286-45.44938977%20100.99864286-100.99864287%200-15.14979706-5.04993234-35.34952507-15.14979568-50.49932074z%20m-85.84884718%20100.99864286h-15.14979706c-20.19972802-5.04993234-30.29959271-20.19972802-35.34952507-35.34952507V612.99864286c0-30.29959271%2025.24966037-50.49932212%2050.49932213-50.49932074h10.09986469c15.14979706%205.04993234%2030.29959271%2015.14979706%2035.34952507%2035.34952507v15.14979567c5.04993234%2025.24966037-20.19972802%2045.44938977-45.44938976%2045.44938977z'%3e%3c/path%3e%3cpath%20d='M390.80162774%20658.44803263l-40.39945604%2040.39945743-227.24694747%20222.19701373-35.34952506-35.34952508%20227.24694745-227.24694608%2040.39945605-40.39945743c5.04993234%2020.19972802%2020.19972802%2035.34952507%2035.34952507%2040.39945743zM648.34816793%20405.9514248l-40.39945742%2040.3994574-116.14843853%20116.14843992-40.39945742%2035.34952507c-5.04993234-20.19972802-20.19972802-30.29959271-35.34952507-35.34952507l40.39945742-40.39945742%20116.14843853-111.09850756%2035.34952507-35.34952507c10.0998647%2015.14979706%2020.19972802%2025.24966037%2040.39945742%2030.29959273zM926.09443614%20133.25508894L749.34681078%20310.00271428l-40.3994574%2040.39945742c-5.04993234-20.19972802-15.14979706-35.34952507-30.29959272-40.39945742l35.34952506-40.39945742%20176.74762534-176.74762535%2035.34952508%2040.39945743z'%20%3e%3c/path%3e%3cpath%20d='M749.34681078%20310.00271428c-10.0998647-15.14979706-20.19972802-30.29959271-35.34952506-35.34952506-15.14979706-10.0998647-35.34952507-15.14979706-55.54925309-15.14979706-55.54925309%200-100.99864286%2045.44938977-100.99864286%20100.99864286%200%2020.19972802%205.04993234%2040.39945743%2015.14979567%2055.54925447%2010.0998647%2015.14979706%2020.19972802%2025.24966037%2035.34952507%2035.34952507%2015.14979706%2010.0998647%2030.29959271%2015.14979706%2050.49932212%2015.14979567%2055.54925309%200%20100.99864286-45.44938977%20100.99864286-100.99864286%200-25.24966037-5.04993234-40.39945743-10.09986471-55.54925309z%20m-90.89877815%2095.94871052h-10.0998647c-20.19972802-5.04993234-35.34952507-15.14979706-40.39945742-35.34952509%200-5.04993234-5.04993234-10.0998647-5.04993234-15.14979704%200-30.29959271%2025.24966037-50.49932212%2050.49932212-50.49932074%205.04993234%200%2010.0998647%200%2015.14979704%205.04993235%2015.14979706%205.04993234%2030.29959271%2020.19972802%2030.29959273%2040.39945742v10.09986332c10.0998647%2025.24966037-15.14979706%2045.44938977-40.39945743%2045.44938978z'%20%3e%3c/path%3e%3c/svg%3e", Gn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1031
1029
  __proto__: null,
1032
- default: Gn
1033
- }, Symbol.toStringTag, { value: "Module" })), Hn = "data:image/svg+xml,%3csvg%20viewBox='0%200%201048%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M310.04722%20451.334244A49.95122%2049.95122%200%200%201%20239.416195%20521.990244L27.473171%20310.04722a49.95122%2049.95122%200%200%201%200-70.631025L239.416195%2027.473171a49.95122%2049.95122%200%200%201%2070.631025%2070.631024l-126.651318%20126.626342L649.365854%20224.780488c220.709463%200%20399.609756%20178.900293%20399.609756%20399.609756s-178.900293%20399.609756-399.609756%20399.609756H124.878049a49.95122%2049.95122%200%201%201%200-99.902439h524.487805c165.513366%200%20299.707317-134.193951%20299.707317-299.707317s-134.193951-299.707317-299.707317-299.707317H183.395902l126.651318%20126.651317z'%3e%3c/path%3e%3c/svg%3e", Wn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1034
- __proto__: null,
1035
- default: Hn
1036
- }, Symbol.toStringTag, { value: "Module" })), Un = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='11576'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M102.4%20302.08c5.12%205.12%2015.36%2010.24%2025.6%2010.24s15.36-5.12%2025.6-10.24l174.08-174.08c5.12-5.12%2010.24-15.36%2010.24-25.6s-5.12-15.36-10.24-25.6c-20.48-5.12-40.96-5.12-51.2%2010.24l-148.48%20153.6-71.68-76.8C51.2%20158.72%2040.96%20158.72%2035.84%20158.72c-10.24%200-15.36%205.12-25.6%2010.24-5.12%205.12-10.24%2010.24-10.24%2020.48s5.12%2015.36%2010.24%2025.6L102.4%20302.08zM276.48%20409.6l-148.48%20153.6-71.68-71.68C51.2%20486.4%2040.96%20481.28%2035.84%20481.28c-10.24%200-15.36%205.12-25.6%2010.24-5.12%2010.24-10.24%2015.36-10.24%2025.6s5.12%2015.36%2010.24%2025.6L102.4%20629.76c5.12%205.12%2015.36%2010.24%2025.6%2010.24s15.36-5.12%2025.6-10.24L322.56%20460.8c5.12-5.12%2010.24-15.36%2010.24-25.6s-5.12-15.36-10.24-25.6c-10.24-10.24-30.72-10.24-46.08%200z%20m0%20327.68l-148.48%20153.6L56.32%20819.2c-5.12-5.12-15.36-10.24-25.6-10.24s-15.36%205.12-25.6%2010.24c0%205.12-5.12%2015.36-5.12%2025.6s5.12%2015.36%2010.24%2025.6L102.4%20957.44c5.12%205.12%2015.36%2010.24%2025.6%2010.24h5.12c10.24%200%2015.36-5.12%2025.6-10.24l174.08-174.08c5.12-5.12%2010.24-15.36%2010.24-25.6s-5.12-15.36-10.24-25.6c-25.6-5.12-40.96-5.12-56.32%205.12zM1024%20153.6c0%2030.72-25.6%2056.32-56.32%2056.32h-460.8c-30.72%200-61.44-25.6-61.44-56.32%200-30.72%2025.6-56.32%2056.32-56.32h455.68c35.84-5.12%2066.56%2020.48%2066.56%2056.32z%20m0%20358.4c0%2030.72-25.6%2056.32-56.32%2056.32h-460.8c-30.72%200-56.32-25.6-56.32-56.32s25.6-56.32%2056.32-56.32h455.68c35.84%200%2061.44%2025.6%2061.44%2056.32z%20m-5.12%20358.4c0%2030.72-25.6%2056.32-56.32%2056.32h-460.8c-30.72%200-56.32-25.6-56.32-56.32%200-30.72%2025.6-56.32%2056.32-56.32h455.68c35.84%200%2061.44%2025.6%2061.44%2056.32z%20m0%200'%20%3e%3c/path%3e%3c/svg%3e", Jn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1030
+ default: _n
1031
+ }, Symbol.toStringTag, { value: "Module" })), Un = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1757902422799'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='1735'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M843.2%20726.4c-20.2%200-39.2%205.2-55.8%2014.3L283.8%20237.2c9-16.5%2014.1-35.4%2014.1-55.5%200-64.2-52.3-116.5-116.5-116.5S65%20117.4%2065%20181.6s52.3%20116.5%20116.5%20116.5c20.2%200%2039.2-5.2%2055.8-14.2l503.5%20503.5c-9%2016.5-14.1%2035.4-14.1%2055.5%200%2064.2%2052.3%20116.5%20116.5%20116.5s116.5-52.3%20116.5-116.5-52.3-116.5-116.5-116.5zM181.4%20232.1c-27.8%200-50.5-22.6-50.5-50.5s22.6-50.5%2050.5-50.5%2050.5%2022.6%2050.5%2050.5-22.6%2050.5-50.5%2050.5z%20m661.8%20661.3c-27.8%200-50.5-22.6-50.5-50.5%200-27.8%2022.6-50.5%2050.5-50.5s50.5%2022.6%2050.5%2050.5c0%2027.8-22.7%2050.5-50.5%2050.5z'%20fill='%23231815'%20p-id='1736'%3e%3c/path%3e%3c/svg%3e", Jn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1037
1032
  __proto__: null,
1038
1033
  default: Un
1039
- }, Symbol.toStringTag, { value: "Module" })), qn = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1757902488735'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='3957'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M520.416%20179.392c-12.384%200-22.4%204.672-22.4%2010.432l-0.032%20139.136c0%205.76%2010.016%2010.432%2022.368%2010.432%2012.352%200%2022.368-4.672%2022.368-10.432l0.064-139.136c0-5.76-10.016-10.432-22.4-10.432M520.32%20623.04c-12.352%200-22.368%204.64-22.368%2010.4l-0.032%20139.168c0%205.76%2010.016%2010.432%2022.368%2010.432%2012.352%200%2022.368-4.672%2022.368-10.432l0.064-139.168c0-5.76-10.016-10.4-22.4-10.4M800.256%20458.72l-139.168-0.064c-5.76%200-10.432%2010.016-10.432%2022.4%200%2012.352%204.672%2022.368%2010.432%2022.368l139.168%200.032c5.76%200%2010.4-10.016%2010.4-22.368%200-12.352-4.64-22.368-10.4-22.4zM352.256%20458.72l-139.168-0.064c-5.76%200-10.432%2010.016-10.432%2022.4%200%2012.352%204.672%2022.368%2010.432%2022.368l139.168%200.032c5.76%200%2010.4-10.016%2010.4-22.368%200-12.352-4.64-22.368-10.4-22.4M801.568%20748.672l-72.544-72.544%2073.792-23.2a4.416%204.416%200%200%200%200.096-8.384l-183.136-62.4a4.416%204.416%200%200%200-5.6%205.568l62.464%20183.168a4.416%204.416%200%200%200%208.352-0.064l23.36-73.6%2072.32%2072.32a14.752%2014.752%200%200%200%2020.896-20.864M510.688%20382.112c49.952%200%2092.8%2040.832%2092.8%2092.8%200%2051.968-42.848%2092.8-92.8%2092.8-49.984%200-92.8-40.832-92.8-92.8%200-51.968%2042.816-92.8%2092.8-92.8z'%20p-id='3958'%3e%3c/path%3e%3c/svg%3e", Zn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1034
+ }, Symbol.toStringTag, { value: "Module" })), Hn = "data:image/svg+xml,%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M114.176%2046.528h618.496c37.312%200.064%2067.584%2030.336%2067.648%2067.648v618.56c0%2037.248-30.336%2067.584-67.648%2067.584H114.176A67.776%2067.776%200%200%201%2046.528%20732.8V114.176c0-37.312%2030.336-67.648%2067.648-67.648z%20m2.176%20686.208l616.32-2.24-2.176-616.32-614.144%202.176v616.32zM907.648%20291.2l2.176%20616.32H291.264a34.88%2034.88%200%201%200%200%2069.888h618.56c37.312%200%2067.648-30.336%2067.648-67.648V291.264a34.88%2034.88%200%201%200-69.824%200z'%20%3e%3c/path%3e%3c/svg%3e", Wn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1035
+ __proto__: null,
1036
+ default: Hn
1037
+ }, Symbol.toStringTag, { value: "Module" })), qn = "data:image/svg+xml,%3csvg%20viewBox='0%200%201029%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M788.17984%2016l-55.424%2060.672%20116.48%20106.56H418.13184a410.816%20410.816%200%201%200%200%20821.632h547.712v-82.176H418.13184a328.64%20328.64%200%200%201%200-657.28l441.792-0.128-124.8%2098.368%2050.752%2064.512%20243.328-191.488L788.17984%2016z'%3e%3c/path%3e%3c/svg%3e", Zn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1040
1038
  __proto__: null,
1041
1039
  default: qn
1042
- }, Symbol.toStringTag, { value: "Module" })), Yn = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='10587'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M64.21%20703.88h888.34M64.21%20667.88h888.34v72H64.21z'%3e%3c/path%3e%3cpath%20d='M509.58%20102.72v566.13M473.58%20102.72h72v566.14h-72z'%3e%3c/path%3e%3c/svg%3e", Xn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1040
+ }, Symbol.toStringTag, { value: "Module" })), Yn = "data:image/svg+xml,%3csvg%20viewBox='0%200%201048%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M310.04722%20451.334244A49.95122%2049.95122%200%200%201%20239.416195%20521.990244L27.473171%20310.04722a49.95122%2049.95122%200%200%201%200-70.631025L239.416195%2027.473171a49.95122%2049.95122%200%200%201%2070.631025%2070.631024l-126.651318%20126.626342L649.365854%20224.780488c220.709463%200%20399.609756%20178.900293%20399.609756%20399.609756s-178.900293%20399.609756-399.609756%20399.609756H124.878049a49.95122%2049.95122%200%201%201%200-99.902439h524.487805c165.513366%200%20299.707317-134.193951%20299.707317-299.707317s-134.193951-299.707317-299.707317-299.707317H183.395902l126.651318%20126.651317z'%3e%3c/path%3e%3c/svg%3e", Xn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1043
1041
  __proto__: null,
1044
1042
  default: Yn
1045
- }, Symbol.toStringTag, { value: "Module" })), $n = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1759051895215'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='1800'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M272.5888%20886.784v70.8608H203.2128V886.784h69.376z%20m416.256-256.6144l270.6944%20152.5248-270.6944%20148.1216v-114.8928H64.4608v-70.8608h624.384v-114.8928z%20m-416.256-26.88v70.912H203.2128v-70.912h69.376z%20m0-141.7216V532.48H203.2128V461.568h69.376z%20m-34.7136-398.336L385.024%20319.7952H272.5888V390.656H203.2128V319.8464H90.7776l147.0976-256.6656z'%20fill='%23444444'%20p-id='1801'%3e%3c/path%3e%3cpath%20d='M566.272%2073.3184l173.2608%20264.192V512h71.8848V337.5104l173.2608-264.192H898.048l-122.2656%20197.2224-122.88-197.2224H566.272z'%20fill='%230077FF'%20p-id='1802'%3e%3c/path%3e%3c/svg%3e", es = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1043
+ }, Symbol.toStringTag, { value: "Module" })), $n = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='11576'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M102.4%20302.08c5.12%205.12%2015.36%2010.24%2025.6%2010.24s15.36-5.12%2025.6-10.24l174.08-174.08c5.12-5.12%2010.24-15.36%2010.24-25.6s-5.12-15.36-10.24-25.6c-20.48-5.12-40.96-5.12-51.2%2010.24l-148.48%20153.6-71.68-76.8C51.2%20158.72%2040.96%20158.72%2035.84%20158.72c-10.24%200-15.36%205.12-25.6%2010.24-5.12%205.12-10.24%2010.24-10.24%2020.48s5.12%2015.36%2010.24%2025.6L102.4%20302.08zM276.48%20409.6l-148.48%20153.6-71.68-71.68C51.2%20486.4%2040.96%20481.28%2035.84%20481.28c-10.24%200-15.36%205.12-25.6%2010.24-5.12%2010.24-10.24%2015.36-10.24%2025.6s5.12%2015.36%2010.24%2025.6L102.4%20629.76c5.12%205.12%2015.36%2010.24%2025.6%2010.24s15.36-5.12%2025.6-10.24L322.56%20460.8c5.12-5.12%2010.24-15.36%2010.24-25.6s-5.12-15.36-10.24-25.6c-10.24-10.24-30.72-10.24-46.08%200z%20m0%20327.68l-148.48%20153.6L56.32%20819.2c-5.12-5.12-15.36-10.24-25.6-10.24s-15.36%205.12-25.6%2010.24c0%205.12-5.12%2015.36-5.12%2025.6s5.12%2015.36%2010.24%2025.6L102.4%20957.44c5.12%205.12%2015.36%2010.24%2025.6%2010.24h5.12c10.24%200%2015.36-5.12%2025.6-10.24l174.08-174.08c5.12-5.12%2010.24-15.36%2010.24-25.6s-5.12-15.36-10.24-25.6c-25.6-5.12-40.96-5.12-56.32%205.12zM1024%20153.6c0%2030.72-25.6%2056.32-56.32%2056.32h-460.8c-30.72%200-61.44-25.6-61.44-56.32%200-30.72%2025.6-56.32%2056.32-56.32h455.68c35.84-5.12%2066.56%2020.48%2066.56%2056.32z%20m0%20358.4c0%2030.72-25.6%2056.32-56.32%2056.32h-460.8c-30.72%200-56.32-25.6-56.32-56.32s25.6-56.32%2056.32-56.32h455.68c35.84%200%2061.44%2025.6%2061.44%2056.32z%20m-5.12%20358.4c0%2030.72-25.6%2056.32-56.32%2056.32h-460.8c-30.72%200-56.32-25.6-56.32-56.32%200-30.72%2025.6-56.32%2056.32-56.32h455.68c35.84%200%2061.44%2025.6%2061.44%2056.32z%20m0%200'%20%3e%3c/path%3e%3c/svg%3e", eo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1046
1044
  __proto__: null,
1047
1045
  default: $n
1048
- }, Symbol.toStringTag, { value: "Module" })), ts = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1757902547951'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='5129'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M59.355%2091.776v867.881h867.881V91.776H59.356zM897.31%20929.73H89.282V121.703h808.027V929.73z'%20fill=''%20p-id='5130'%3e%3c/path%3e%3cpath%20d='M833.964%20185.048H152.627v681.337h681.337V185.048z%20m-355.632%20651.41H182.554V532.2h295.778v304.257z%20m0-334.184H182.554V214.975h295.778v287.299z%20m325.705%20334.184H508.259V532.2h295.778v304.257z%20m0-334.184H508.259V214.975h295.778v287.299z'%20fill=''%20p-id='5131'%3e%3c/path%3e%3c/svg%3e", ns = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1046
+ }, Symbol.toStringTag, { value: "Module" })), to = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1757902488735'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='3957'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M520.416%20179.392c-12.384%200-22.4%204.672-22.4%2010.432l-0.032%20139.136c0%205.76%2010.016%2010.432%2022.368%2010.432%2012.352%200%2022.368-4.672%2022.368-10.432l0.064-139.136c0-5.76-10.016-10.432-22.4-10.432M520.32%20623.04c-12.352%200-22.368%204.64-22.368%2010.4l-0.032%20139.168c0%205.76%2010.016%2010.432%2022.368%2010.432%2012.352%200%2022.368-4.672%2022.368-10.432l0.064-139.168c0-5.76-10.016-10.4-22.4-10.4M800.256%20458.72l-139.168-0.064c-5.76%200-10.432%2010.016-10.432%2022.4%200%2012.352%204.672%2022.368%2010.432%2022.368l139.168%200.032c5.76%200%2010.4-10.016%2010.4-22.368%200-12.352-4.64-22.368-10.4-22.4zM352.256%20458.72l-139.168-0.064c-5.76%200-10.432%2010.016-10.432%2022.4%200%2012.352%204.672%2022.368%2010.432%2022.368l139.168%200.032c5.76%200%2010.4-10.016%2010.4-22.368%200-12.352-4.64-22.368-10.4-22.4M801.568%20748.672l-72.544-72.544%2073.792-23.2a4.416%204.416%200%200%200%200.096-8.384l-183.136-62.4a4.416%204.416%200%200%200-5.6%205.568l62.464%20183.168a4.416%204.416%200%200%200%208.352-0.064l23.36-73.6%2072.32%2072.32a14.752%2014.752%200%200%200%2020.896-20.864M510.688%20382.112c49.952%200%2092.8%2040.832%2092.8%2092.8%200%2051.968-42.848%2092.8-92.8%2092.8-49.984%200-92.8-40.832-92.8-92.8%200-51.968%2042.816-92.8%2092.8-92.8z'%20p-id='3958'%3e%3c/path%3e%3c/svg%3e", no = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1047
+ __proto__: null,
1048
+ default: to
1049
+ }, Symbol.toStringTag, { value: "Module" })), oo = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='10587'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='M64.21%20703.88h888.34M64.21%20667.88h888.34v72H64.21z'%3e%3c/path%3e%3cpath%20d='M509.58%20102.72v566.13M473.58%20102.72h72v566.14h-72z'%3e%3c/path%3e%3c/svg%3e", so = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1049
1050
  __proto__: null,
1050
- default: ts
1051
- }, Symbol.toStringTag, { value: "Module" })), ss = "data:image/png;base64,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", os = new g.TextureLoader(), as = os.load(ss);
1052
- class is extends Ae {
1051
+ default: oo
1052
+ }, Symbol.toStringTag, { value: "Module" })), ao = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1759051895215'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='1800'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M272.5888%20886.784v70.8608H203.2128V886.784h69.376z%20m416.256-256.6144l270.6944%20152.5248-270.6944%20148.1216v-114.8928H64.4608v-70.8608h624.384v-114.8928z%20m-416.256-26.88v70.912H203.2128v-70.912h69.376z%20m0-141.7216V532.48H203.2128V461.568h69.376z%20m-34.7136-398.336L385.024%20319.7952H272.5888V390.656H203.2128V319.8464H90.7776l147.0976-256.6656z'%20fill='%23444444'%20p-id='1801'%3e%3c/path%3e%3cpath%20d='M566.272%2073.3184l173.2608%20264.192V512h71.8848V337.5104l173.2608-264.192H898.048l-122.2656%20197.2224-122.88-197.2224H566.272z'%20fill='%230077FF'%20p-id='1802'%3e%3c/path%3e%3c/svg%3e", io = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1053
+ __proto__: null,
1054
+ default: ao
1055
+ }, Symbol.toStringTag, { value: "Module" })), ro = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1757902547951'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='5129'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M59.355%2091.776v867.881h867.881V91.776H59.356zM897.31%20929.73H89.282V121.703h808.027V929.73z'%20fill=''%20p-id='5130'%3e%3c/path%3e%3cpath%20d='M833.964%20185.048H152.627v681.337h681.337V185.048z%20m-355.632%20651.41H182.554V532.2h295.778v304.257z%20m0-334.184H182.554V214.975h295.778v287.299z%20m325.705%20334.184H508.259V532.2h295.778v304.257z%20m0-334.184H508.259V214.975h295.778v287.299z'%20fill=''%20p-id='5131'%3e%3c/path%3e%3c/svg%3e", lo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1056
+ __proto__: null,
1057
+ default: ro
1058
+ }, Symbol.toStringTag, { value: "Module" })), co = "data:image/png;base64,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", mo = "data:image/png;base64,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", ut = new p.TextureLoader(), ho = ut.load(co), uo = ut.load(mo);
1059
+ class po extends Se {
1053
1060
  static name = "RenderManager";
1054
- container = new g.Group();
1061
+ container = new p.Group();
1055
1062
  lines = [];
1056
- pointVirtualGrid = new ze();
1057
- quadtree = new Fe(new Xe());
1058
- verticalReferenceLineFlag = new g.Mesh(new g.PlaneGeometry(0.3, 0.3), new g.MeshBasicMaterial({ map: as, color: 58111, transparent: !0 }));
1063
+ pointVirtualGrid = new Te();
1064
+ quadtree = new Ve(new tt());
1065
+ verticalReferenceLineFlag = new p.Mesh(new p.PlaneGeometry(0.3, 0.3), new p.MeshBasicMaterial({ map: ho, color: 58111, transparent: !0 }));
1059
1066
  onAddFromParent() {
1060
1067
  const e = this.dxfLineModel;
1061
- this.editor.container.add(this.container), this.editor.container.add(e.dxfModelGroup), e.dxfLineModel.material = new g.LineBasicMaterial({
1068
+ this.editor.container.add(this.container), this.editor.container.add(e.dxfModelGroup), e.dxfLineModel.material = new p.LineBasicMaterial({
1062
1069
  transparent: !0,
1063
1070
  opacity: 0.5,
1064
1071
  color: 16777215
@@ -1071,22 +1078,22 @@ class is extends Ae {
1071
1078
  */
1072
1079
  reset() {
1073
1080
  if (this.updatedMode === "self") {
1074
- const n = this.lines.filter((o) => o.userData.isDoor);
1081
+ const n = this.lines.filter((s) => s.userData.isDoor);
1075
1082
  this.updatedMode = null;
1076
- const s = this.dxf.doorLineSegment.filter((o) => {
1083
+ const o = this.dxf.doorLineSegment.filter((s) => {
1077
1084
  for (let a = 0; a < n.length; a++) {
1078
- const l = n[a];
1079
- if (l.start.equal(o.start) && l.end.equal(o.end) || l.end.equal(o.start) && l.start.equal(o.end)) return !1;
1085
+ const d = n[a];
1086
+ if (d.start.equal(s.start) && d.end.equal(s.end) || d.end.equal(s.start) && d.start.equal(s.end)) return !1;
1080
1087
  }
1081
1088
  return !0;
1082
1089
  });
1083
- this.addLines(s.map((o) => (o.userData.isDoor = !0, o.userData.doorDirectConnection, o))), this.draw(!1);
1090
+ this.addLines(o.map((s) => (s.userData.isDoor = !0, s.userData.doorDirectConnection, s))), this.draw(!1);
1084
1091
  return;
1085
1092
  } else
1086
1093
  this.updatedMode = "dxf";
1087
- this.pointVirtualGrid = new ze();
1094
+ this.pointVirtualGrid = new Te();
1088
1095
  const e = this.dxf.box.clone().expansion(Math.max(this.dxf.box.width, this.dxf.box.height) * 2);
1089
- (e.width === 0 || e.height === 0) && e.set(-200, -200, 200, 200), this.quadtree = new Fe(e), this.lines.length = 0;
1096
+ (e.width === 0 || e.height === 0) && e.set(-200, -200, 200, 200), this.quadtree = new Ve(e), this.lines.length = 0;
1090
1097
  const t = this.dxf.getLineSegments();
1091
1098
  this.addLines(t), this.draw();
1092
1099
  }
@@ -1109,11 +1116,11 @@ class is extends Ae {
1109
1116
  for (let t = 0; t < e.length; t++) {
1110
1117
  const n = e[t];
1111
1118
  this.lines.push(n), this.pointVirtualGrid.insert(n.start, n), this.pointVirtualGrid.insert(n.end, n);
1112
- const s = {
1119
+ const o = {
1113
1120
  line: n,
1114
1121
  userData: void 0
1115
1122
  };
1116
- n.userData.quadtreeNode = s, this.quadtree.insert(s);
1123
+ n.userData.quadtreeNode = o, this.quadtree.insert(o);
1117
1124
  }
1118
1125
  }
1119
1126
  /** 移除线段
@@ -1132,8 +1139,8 @@ class is extends Ae {
1132
1139
  for (let t = 0; t < e.length; t++) {
1133
1140
  const n = e[t];
1134
1141
  n.userData.quadtreeNode && this.quadtree.remove(n.userData.quadtreeNode), this.pointVirtualGrid.remove(n.start), this.pointVirtualGrid.remove(n.end);
1135
- const s = this.lines.indexOf(n);
1136
- this.lines.splice(s, 1);
1142
+ const o = this.lines.indexOf(n);
1143
+ this.lines.splice(o, 1);
1137
1144
  }
1138
1145
  this.draw();
1139
1146
  }
@@ -1142,16 +1149,20 @@ class is extends Ae {
1142
1149
  */
1143
1150
  draw(e = !0) {
1144
1151
  this.container.clear();
1145
- const t = [], n = [], s = [];
1146
- this.lines.forEach((o) => {
1147
- if (o.points.forEach((a) => {
1148
- o.userData.isDoor ? n.push(a.x, a.y, 0) : t.push(a.x, a.y, 0);
1149
- }), o.userData.isWindow && o.userData.drawWindow && o.userData.drawWindow.forEach(({ width: a, p: l }) => {
1150
- const r = L.from(l), i = o.direction(), d = r.clone().add(i.clone().multiplyScalar(a * 0.5)), m = r.clone().add(i.clone().multiplyScalar(-a * 0.5));
1151
- s.push(d.x, d.y, 1e-3), s.push(m.x, m.y, 1e-3);
1152
- }), o.userData.isVerticalReferenceLine) {
1153
- const a = o.center;
1154
- this.verticalReferenceLineFlag.position.set(a.x, a.y, 0), this.container.add(this.verticalReferenceLineFlag);
1152
+ const t = [], n = [], o = [], s = [], a = [];
1153
+ if (this.lines.forEach((d) => {
1154
+ if (d.userData.isBayWindow) {
1155
+ d.points.forEach((r) => a.push(r.x, r.y, 0));
1156
+ return;
1157
+ }
1158
+ if (d.points.forEach((r) => {
1159
+ d.userData.isDoor ? n.push(r.x, r.y, 0) : t.push(r.x, r.y, 0);
1160
+ }), d.userData.isDoor && d.userData.doorAutomaticFind && s.push(d.center), d.userData.isWindow && d.userData.drawWindow && d.userData.drawWindow.forEach(({ width: r, p: i }) => {
1161
+ const l = A.from(i), m = d.direction(), g = l.clone().add(m.clone().multiplyScalar(r * 0.5)), w = l.clone().add(m.clone().multiplyScalar(-r * 0.5));
1162
+ o.push(g.x, g.y, 1e-3), o.push(w.x, w.y, 1e-3);
1163
+ }), d.userData.isVerticalReferenceLine) {
1164
+ const r = d.center;
1165
+ this.verticalReferenceLineFlag.position.set(r.x, r.y, 0), this.container.add(this.verticalReferenceLineFlag);
1155
1166
  }
1156
1167
  }), t.length && this.renderer.createLineSegments({
1157
1168
  position: t
@@ -1161,36 +1172,48 @@ class is extends Ae {
1161
1172
  position: n
1162
1173
  }, n.length / 3, {
1163
1174
  color: 16776960
1164
- }, this.container), s.length && this.renderer.createLineSegments({
1165
- position: s
1166
- }, s.length / 3, {
1175
+ }, this.container), o.length && this.renderer.createLineSegments({
1176
+ position: o
1177
+ }, o.length / 3, {
1167
1178
  color: 16711935
1168
- }, this.container), e && this.synchronizeDxf();
1179
+ }, this.container), a.length) {
1180
+ const d = this.renderer.createLineSegments({
1181
+ position: a
1182
+ }, a.length / 3, {}, this.container);
1183
+ d.material = new p.LineDashedMaterial({
1184
+ color: 4235007,
1185
+ dashSize: 0.05,
1186
+ gapSize: 0.05,
1187
+ opacity: 0.5,
1188
+ transparent: !0
1189
+ }), d.computeLineDistances();
1190
+ }
1191
+ this.renderer.createCircle(s, { map: uo, size: 0.4, sizeAttenuation: !0, color: 16777215 }, this.container), e && this.synchronizeDxf();
1169
1192
  }
1170
1193
  /** 获取鼠标当前点, 吸附后的点
1171
1194
  * @param point
1172
1195
  * @returns
1173
1196
  */
1174
1197
  adsorption(e = 0.04, t = this.pointVirtualGrid, n = this.quadtree) {
1175
- const s = this.parent?.findComponentByName("Editor"), o = L.from(s.pointerPosition);
1176
- let a = n.queryCircle(o, e);
1198
+ const o = this.parent?.findComponentByName("Editor"), s = A.from(o.pointerPosition);
1199
+ let a = n.queryCircle(s, e);
1177
1200
  if (a.length) {
1178
- let l = a.map((r) => ({
1179
- point: r.line.projectPoint(o),
1201
+ let d = a.map((r) => ({
1202
+ point: r.line.projectPoint(s),
1180
1203
  line: r.line
1181
1204
  })).filter((r) => !!r.point);
1182
- if (l.sort((r, i) => r.point.distance(o) - i.point.distance(o)), l.length) {
1183
- const r = l[0].line, i = l[0].point, d = {
1184
- point: new g.Vector3(i.x, i.y, 0),
1205
+ if (d.sort((r, i) => r.point.distance(s) - i.point.distance(s)), d.length) {
1206
+ const r = d[0].line, i = d[0].point, l = {
1207
+ point: new p.Vector3(i.x, i.y, 0),
1185
1208
  find: !0,
1186
1209
  mode: "line",
1187
1210
  line: r
1188
1211
  };
1189
- return r.start.distance(o) < e * 1.5 ? (d.point.set(r.start.x, r.start.y, 0), d.mode = "point") : r.end.distance(o) < e * 1.5 && (d.point.set(r.end.x, r.end.y, 0), d.mode = "point"), d;
1212
+ return r.start.distance(s) < e * 1.5 ? (l.point.set(r.start.x, r.start.y, 0), l.mode = "point") : r.end.distance(s) < e * 1.5 && (l.point.set(r.end.x, r.end.y, 0), l.mode = "point"), l;
1190
1213
  }
1191
1214
  }
1192
1215
  return {
1193
- point: new g.Vector3(s.pointerPosition.x, s.pointerPosition.y, 0),
1216
+ point: new p.Vector3(o.pointerPosition.x, o.pointerPosition.y, 0),
1194
1217
  find: !1,
1195
1218
  line: void 0,
1196
1219
  mode: void 0
@@ -1200,9 +1223,9 @@ class is extends Ae {
1200
1223
  * @param rectangle
1201
1224
  */
1202
1225
  createGeometry(e, t) {
1203
- const n = new g.BufferGeometry();
1204
- return Object.keys(e).forEach((s) => {
1205
- n.setAttribute("position", new g.BufferAttribute(new Float32Array(e[s]), e[s].length / t));
1226
+ const n = new p.BufferGeometry();
1227
+ return Object.keys(e).forEach((o) => {
1228
+ n.setAttribute("position", new p.BufferAttribute(new Float32Array(e[o]), e[o].length / t));
1206
1229
  }), n;
1207
1230
  }
1208
1231
  /**
@@ -1210,24 +1233,24 @@ class is extends Ae {
1210
1233
  */
1211
1234
  toJson() {
1212
1235
  return this.lines.map((e) => {
1213
- const t = e.userData, n = t.drawWindow, s = this.quadtree.queryLineSegment(e).filter((o) => o.line !== e && !o.userData?.isDoor).map((o) => ({ index: this.lines.indexOf(o.line) }));
1236
+ const t = e.userData, n = t.drawWindow, o = this.quadtree.queryLineSegment(e).filter((s) => s.line !== e && !s.userData?.isDoor).map((s) => ({ index: this.lines.indexOf(s.line) }));
1214
1237
  return {
1215
- ...Ke(t),
1238
+ ...je(t),
1216
1239
  start: e.start.toJson(this.dxf.originalZAverage),
1217
1240
  end: e.end.toJson(this.dxf.originalZAverage),
1218
- insetionArr: s,
1241
+ insetionArr: o,
1219
1242
  isDoor: t.isDoor,
1220
1243
  doorDirectConnection: t.isDoor,
1221
1244
  length: e.length(),
1222
1245
  isWindow: t.isWindow,
1223
1246
  isVerticalReferenceLine: t.isVerticalReferenceLine,
1224
1247
  wallWidth: e.userData.wallWidth,
1225
- drawWindow: n && n.map((o) => ({
1226
- ...Ke(o),
1227
- p: { x: o.p.x, y: o.p.y, z: o.p.z },
1228
- width: o.width,
1229
- full: o.full,
1230
- rooftopPz: o.rooftopPz
1248
+ drawWindow: n && n.map((s) => ({
1249
+ ...je(s),
1250
+ p: { x: s.p.x, y: s.p.y, z: s.p.z },
1251
+ width: s.width,
1252
+ full: s.full,
1253
+ rooftopPz: s.rooftopPz
1231
1254
  }))
1232
1255
  };
1233
1256
  });
@@ -1243,7 +1266,7 @@ class is extends Ae {
1243
1266
  }
1244
1267
  this._timer && clearTimeout(this._timer), this._timer = setTimeout(() => {
1245
1268
  this.updatedMode = "self";
1246
- const e = this.dxf, t = this.toJson(), n = this.parent?.findComponentByType(St);
1269
+ const e = this.dxf, t = this.toJson(), n = this.parent?.findComponentByType(zt);
1247
1270
  n.skipFindDoor = !0, e.set(t).then(() => e.lineOffset());
1248
1271
  }, 10);
1249
1272
  }
@@ -1266,55 +1289,55 @@ class is extends Ae {
1266
1289
  return this.parent?.findComponentByName("DxfLineModel");
1267
1290
  }
1268
1291
  }
1269
- class rs extends O {
1292
+ class go extends z {
1270
1293
  static name = "DrawDoorLine";
1271
- container = new g.Group();
1294
+ container = new p.Group();
1272
1295
  interruptKeys = ["escape"];
1273
1296
  shortcutKeys = ["control", "m"];
1274
1297
  commandName = "draw-door-line";
1275
1298
  onAddFromParent(e) {
1276
1299
  super.onAddFromParent(e);
1277
- const t = e.findComponentByName("Editor"), n = t.eventInput, s = t.commandManager;
1300
+ const t = e.findComponentByName("Editor"), n = t.eventInput, o = t.commandManager;
1278
1301
  this.editor.container.add(this.container);
1279
- const o = this.commandManager.addCommandFlow("draw-door-line").add(this.createInterrupt()).add(this.createCursor("no-drop")).add(this.selectPoint.bind(this)).add(this.end.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
1280
- n.addKeyCombination(this.commandName, this.shortcutKeys), o.addEventListener("finally", this.createFinally()), o.addEventListener("completed", (a) => this.completed(a.data)), n.addCancelDefaultBehavior(() => n.isOnlyKeyDowns(this.shortcutKeys)), n.addEventListener("codeChange", async () => {
1281
- n.isKeyCombination(this.commandName) && await s.start(this.commandName);
1302
+ const s = this.commandManager.addCommandFlow("draw-door-line").add(this.createInterrupt()).add(this.createCursor("no-drop")).add(this.selectPoint.bind(this)).add(this.end.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this)).setLoop(!0);
1303
+ n.addKeyCombination(this.commandName, this.shortcutKeys), s.addEventListener("finally", this.createFinally()), s.addEventListener("completed", (a) => this.completed(a.data)), n.addCancelDefaultBehavior(() => n.isOnlyKeyDowns(this.shortcutKeys)), n.addEventListener("codeChange", async () => {
1304
+ n.isKeyCombination(this.commandName) && await o.start(this.commandName);
1282
1305
  });
1283
1306
  }
1284
1307
  /** 选择点
1285
1308
  * @param next
1286
1309
  */
1287
1310
  selectPoint(e) {
1288
- let t = this.parent?.findComponentByName("Editor"), n = null, s = this.renderer.createCircle(L.zero(), { color: 65280 }), o = new ye([], 16711935), a = new ye([
1289
- new g.Vector3(-1e4, 0, 0),
1290
- new g.Vector3(1e4, 0, 0),
1291
- new g.Vector3(0, -1e4, 0),
1292
- new g.Vector3(0, 1e4, 0)
1311
+ let t = this.parent?.findComponentByName("Editor"), n = null, o = this.renderer.createCircle(A.zero(), { color: 65280 }), s = new Ce([], 16711935), a = new Ce([
1312
+ new p.Vector3(-1e4, 0, 0),
1313
+ new p.Vector3(1e4, 0, 0),
1314
+ new p.Vector3(0, -1e4, 0),
1315
+ new p.Vector3(0, 1e4, 0)
1293
1316
  ], 16711935);
1294
- a.material = new g.LineDashedMaterial({
1317
+ a.material = new p.LineDashedMaterial({
1295
1318
  color: 4235007,
1296
1319
  dashSize: 0.1,
1297
1320
  gapSize: 0.1,
1298
1321
  linewidth: 0.1
1299
- }), this.container.add(o);
1300
- let l = null;
1322
+ }), this.container.add(s);
1323
+ let d = null;
1301
1324
  this.addEventRecord(
1302
1325
  "clear",
1303
1326
  t.addEventListener("pointerPositionChange", () => {
1304
1327
  const { point: r, find: i } = t.renderManager.adsorption();
1305
- n && o.setPoint(n, r), this.dispatchEvent({ type: "pointerMove", point: r }), i ? (s.position.set(r.x, r.y, 0), this.container.add(s), this.domElement.style.cursor = "none", l = r.clone()) : (l = null, s.removeFromParent(), this.domElement.style.cursor = "no-drop");
1328
+ n && s.setPoint(n, r), this.dispatchEvent({ type: "pointerMove", point: r }), i ? (o.position.set(r.x, r.y, 0), this.container.add(o), this.domElement.style.cursor = "none", d = r.clone()) : (d = null, o.removeFromParent(), this.domElement.style.cursor = "no-drop");
1306
1329
  }),
1307
1330
  t.eventInput.addEventListener("codeChange", async () => {
1308
- if (t.eventInput.isKeyDown("mouse_0") && l) {
1331
+ if (t.eventInput.isKeyDown("mouse_0") && d) {
1309
1332
  if (!n) {
1310
- n = l.clone();
1333
+ n = d.clone();
1311
1334
  return;
1312
1335
  }
1313
- e([n.clone(), l.clone()]);
1336
+ e([n.clone(), d.clone()]);
1314
1337
  }
1315
1338
  }),
1316
1339
  function() {
1317
- o.removeFromParent(), s.removeFromParent(), a.removeFromParent();
1340
+ s.removeFromParent(), o.removeFromParent(), a.removeFromParent();
1318
1341
  }
1319
1342
  );
1320
1343
  }
@@ -1325,23 +1348,23 @@ class rs extends O {
1325
1348
  */
1326
1349
  end(e, t) {
1327
1350
  const n = [];
1328
- for (let s = 0; s < t.length; s += 2) {
1329
- const o = L.from(t[s]), a = L.from(t[s + 1]), l = this.renderManager.quadtree.queryCircle(o, 1e-3)[0].line, r = this.renderManager.quadtree.queryCircle(a, 1e-3)[0].line;
1351
+ for (let o = 0; o < t.length; o += 2) {
1352
+ const s = A.from(t[o]), a = A.from(t[o + 1]), d = this.renderManager.quadtree.queryCircle(s, 1e-3)[0].line, r = this.renderManager.quadtree.queryCircle(a, 1e-3)[0].line;
1330
1353
  let i = null;
1331
- l === r && (i = {
1332
- oldLine: l,
1354
+ d === r && (i = {
1355
+ oldLine: d,
1333
1356
  newLine1: new N(
1334
- l.start,
1335
- l.start.distance(o) < l.start.distance(a) ? o.clone() : a.clone()
1357
+ d.start,
1358
+ d.start.distance(s) < d.start.distance(a) ? s.clone() : a.clone()
1336
1359
  ),
1337
1360
  newLine2: new N(
1338
- l.end,
1339
- l.end.distance(o) < l.end.distance(a) ? o.clone() : a.clone()
1361
+ d.end,
1362
+ d.end.distance(s) < d.end.distance(a) ? s.clone() : a.clone()
1340
1363
  )
1341
1364
  });
1342
- const d = new N(o, a);
1343
- d.userData.isDoor = !0, d.userData.doorDirectConnection = !0, n.push({
1344
- line: d,
1365
+ const l = new N(s, a);
1366
+ l.userData.isDoor = !0, l.userData.doorDirectConnection = !0, n.push({
1367
+ line: l,
1345
1368
  option: i
1346
1369
  });
1347
1370
  }
@@ -1352,7 +1375,7 @@ class rs extends O {
1352
1375
  completed(e) {
1353
1376
  e.forEach(({ line: t, option: n }) => {
1354
1377
  this.renderManager.addLine(t), n && (this.renderManager.removeLine(n.oldLine), this.renderManager.addLines([n.newLine1, n.newLine2]));
1355
- }), this.renderManager.draw(), this.commandManager.currentName === this.commandName && setTimeout(() => this.commandManager.start(this.commandName));
1378
+ }), this.renderManager.draw();
1356
1379
  }
1357
1380
  /** 回滚操作
1358
1381
  * @param data
@@ -1370,39 +1393,39 @@ class rs extends O {
1370
1393
  return this.completed(e), e;
1371
1394
  }
1372
1395
  }
1373
- class ds extends O {
1396
+ class vo extends z {
1374
1397
  static name = "DrawWindow";
1375
- container = new g.Group();
1398
+ container = new p.Group();
1376
1399
  interruptKeys = ["escape"];
1377
1400
  shortcutKeys = ["control", "q"];
1378
1401
  commandName = "draw-window-line";
1379
1402
  onAddFromParent(e) {
1380
1403
  super.onAddFromParent(e), this.editor.container.add(this.container);
1381
- const t = this.commandManager.addCommandFlow(this.commandName).add(this.createInterrupt()).add(this.createCursor("no-drop")).add(this.selectPointStart.bind(this)).add(this.selectPointEnd.bind(this)).add(this.end.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
1404
+ const t = this.commandManager.addCommandFlow(this.commandName).add(this.createInterrupt()).add(this.createCursor("no-drop")).add(this.selectPointStart.bind(this)).add(this.selectPointEnd.bind(this)).add(this.end.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this)).setLoop(!0);
1382
1405
  t.addEventListener("finally", this.createFinally(["selectPointStart"])), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(this.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => this.eventInput.isKeyCombination(this.commandName) && await this.commandManager.start(this.commandName)), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
1383
1406
  }
1384
1407
  /** 选择开始点
1385
1408
  * @param next
1386
1409
  */
1387
1410
  selectPointStart(e) {
1388
- let t = null, n = this.renderer.createCircle(L.zero(), { color: 16711935 }), s = null;
1411
+ let t = null, n = this.renderer.createCircle(A.zero(), { color: 16711935 }), o = null;
1389
1412
  this.addEventRecord("selectPointStart").add(this.editor.addEventListener("pointerPositionChange", () => {
1390
- const { point: o, line: a, find: l } = this.editor.renderManager.adsorption();
1391
- this.dispatchEvent({ type: "pointerMove", point: o }), l ? (this.domElement.style.cursor = "none", n.position.copy(o), s = a, t = o.clone(), this.container.add(n)) : (this.domElement.style.cursor = "no-drop", t = null, n.removeFromParent());
1413
+ const { point: s, line: a, find: d } = this.editor.renderManager.adsorption();
1414
+ this.dispatchEvent({ type: "pointerMove", point: s }), d ? (this.domElement.style.cursor = "none", n.position.copy(s), o = a, t = s.clone(), this.container.add(n)) : (this.domElement.style.cursor = "no-drop", t = null, n.removeFromParent());
1392
1415
  })).add(this.eventInput.addEventListener("codeChange", () => {
1393
- this.eventInput.isKeyDown("mouse_0") && t && (this.canceEventRecord("selectPointStart"), e({ point: t, line: s }));
1416
+ this.eventInput.isKeyDown("mouse_0") && t && (this.canceEventRecord("selectPointStart"), e({ point: t, line: o }));
1394
1417
  })), this.addEventRecord("clear").add(() => n.removeFromParent());
1395
1418
  }
1396
1419
  /** 选择结束点
1397
1420
  * @param next
1398
1421
  */
1399
1422
  selectPointEnd(e, { point: t, line: n }) {
1400
- let s = null, o = this.renderer.createCircle(L.zero(), { color: 16711935 });
1401
- this.addEventRecord("clear").add(() => o.removeFromParent()).add(this.editor.addEventListener("pointerPositionChange", () => {
1402
- const { point: a, find: l, line: r } = this.editor.renderManager.adsorption();
1403
- this.dispatchEvent({ type: "pointerMove", point: a }), l && r === n ? (this.domElement.style.cursor = "none", o.position.copy(a), s = a.clone(), this.container.add(o)) : (this.domElement.style.cursor = "no-drop", s = null, o.removeFromParent());
1423
+ let o = null, s = this.renderer.createCircle(A.zero(), { color: 16711935 });
1424
+ this.addEventRecord("clear").add(() => s.removeFromParent()).add(this.editor.addEventListener("pointerPositionChange", () => {
1425
+ const { point: a, find: d, line: r } = this.editor.renderManager.adsorption();
1426
+ this.dispatchEvent({ type: "pointerMove", point: a }), d && r === n ? (this.domElement.style.cursor = "none", s.position.copy(a), o = a.clone(), this.container.add(s)) : (this.domElement.style.cursor = "no-drop", o = null, s.removeFromParent());
1404
1427
  })).add(this.eventInput.addEventListener("codeChange", () => {
1405
- this.eventInput.isKeyDown("mouse_0") && s && e({ line: n, start: t, end: s });
1428
+ this.eventInput.isKeyDown("mouse_0") && o && e({ line: n, start: t, end: o });
1406
1429
  }));
1407
1430
  }
1408
1431
  /**
@@ -1410,18 +1433,18 @@ class ds extends O {
1410
1433
  * @param next
1411
1434
  * @param points
1412
1435
  */
1413
- end(e, { start: t, end: n, line: s }) {
1414
- const o = new N(L.from(t), L.from(n)), a = o.center, l = o.length(), r = {
1436
+ end(e, { start: t, end: n, line: o }) {
1437
+ const s = new N(A.from(t), A.from(n)), a = s.center, d = s.length(), r = {
1415
1438
  p: { x: a.x, y: a.y, z: 0 },
1416
- width: l,
1417
- full: Math.abs(l - s.length()) < 0.01
1439
+ width: d,
1440
+ full: Math.abs(d - o.length()) < 0.01
1418
1441
  };
1419
- e({ line: s, doorDataItem: r });
1442
+ e({ line: o, doorDataItem: r });
1420
1443
  }
1421
1444
  /** 执行完成
1422
1445
  */
1423
1446
  completed({ doorDataItem: e, line: t }) {
1424
- t.userData.isWindow = !0, t.userData.drawWindow || (t.userData.drawWindow = []), t.userData.drawWindow.push(e), this.renderManager.draw(), this.commandManager.currentName === this.commandName && setTimeout(() => this.commandManager.start(this.commandName));
1447
+ t.userData.isWindow = !0, t.userData.drawWindow || (t.userData.drawWindow = []), t.userData.drawWindow.push(e), this.renderManager.draw();
1425
1448
  }
1426
1449
  /** 回滚操作
1427
1450
  * @param data
@@ -1429,8 +1452,8 @@ class ds extends O {
1429
1452
  rollback(e) {
1430
1453
  const { doorDataItem: t, line: n } = e;
1431
1454
  if (n.userData.drawWindow) {
1432
- const s = n.userData.drawWindow.indexOf(t);
1433
- s !== -1 && (n.userData.drawWindow.splice(s, 1), n.userData.drawWindow.length === 0 && (delete n.userData.drawWindow, delete n.userData.isWindow), this.renderManager.draw());
1455
+ const o = n.userData.drawWindow.indexOf(t);
1456
+ o !== -1 && (n.userData.drawWindow.splice(o, 1), n.userData.drawWindow.length === 0 && (delete n.userData.drawWindow, delete n.userData.isWindow), this.renderManager.draw());
1434
1457
  }
1435
1458
  return e;
1436
1459
  }
@@ -1442,25 +1465,25 @@ class ds extends O {
1442
1465
  return this.completed(e), e;
1443
1466
  }
1444
1467
  }
1445
- class le extends O {
1468
+ class he extends z {
1446
1469
  static name = "VerticalCorrection";
1447
- container = new g.Group();
1470
+ container = new p.Group();
1448
1471
  shortcutKeys = ["control", "c"];
1449
1472
  shortcutKeys3 = ["shift", "c"];
1450
1473
  static commandName = "verticalCorrection";
1451
1474
  axisAlignment = !1;
1452
1475
  onAddFromParent(e) {
1453
1476
  super.onAddFromParent(e), this.editor.container.add(this.container), this.container.position.z = 1e-3;
1454
- const t = this.commandManager.addCommandFlow(le.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.verticalCorrection.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
1477
+ const t = this.commandManager.addCommandFlow(he.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.verticalCorrection.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
1455
1478
  t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addEventListener("codeChange", async () => {
1456
- this.eventInput.isOnlyKeyDowns(this.shortcutKeys) ? (this.axisAlignment = !1, this.commandManager.start(le.commandName, [...this.default.selectLines])) : this.eventInput.isOnlyKeyDowns(this.shortcutKeys3) && (this.axisAlignment = !0, this.commandManager.start(le.commandName, [...this.default.selectLines]));
1479
+ this.eventInput.isOnlyKeyDowns(this.shortcutKeys) ? (this.axisAlignment = !1, this.commandManager.start(he.commandName, [...this.default.selectLines])) : this.eventInput.isOnlyKeyDowns(this.shortcutKeys3) && (this.axisAlignment = !0, this.commandManager.start(he.commandName, [...this.default.selectLines]));
1457
1480
  }), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
1458
1481
  }
1459
1482
  /**
1460
1483
  * 进入命令约束
1461
1484
  */
1462
1485
  constraint(e, t) {
1463
- Array.isArray(t) ? t.length !== 1 ? (k({ message: "请选择一条线段", type: "warning" }), this.cancel()) : e(t) : (k({ message: "进入命令失败", type: "warning" }), this.cancel());
1486
+ Array.isArray(t) ? t.length !== 1 ? (I({ message: "请选择一条线段", type: "warning" }), this.cancel()) : e(t) : (I({ message: "进入命令失败", type: "warning" }), this.cancel());
1464
1487
  }
1465
1488
  /**
1466
1489
  * @param line0
@@ -1478,46 +1501,46 @@ class le extends O {
1478
1501
  * @param id
1479
1502
  * @returns
1480
1503
  */
1481
- setLinePoint(e, t, n, s = "all", o = [], a = _t()) {
1504
+ setLinePoint(e, t, n, o = "all", s = [], a = Ot()) {
1482
1505
  if (e.userData.setLinePointUUid === a) return [];
1483
1506
  e.userData.setLinePointUUid = a;
1484
- let l = [], r = [];
1485
- (s === "start" || s === "all") && (l = this.renderManager.pointVirtualGrid.queryPoint(e.start).filter((y) => y.userData !== e)), (s === "end" || s === "all") && (r = this.renderManager.pointVirtualGrid.queryPoint(e.end).filter((y) => y.userData !== e));
1507
+ let d = [], r = [];
1508
+ (o === "start" || o === "all") && (d = this.renderManager.pointVirtualGrid.queryPoint(e.start).filter((g) => g.userData !== e)), (o === "end" || o === "all") && (r = this.renderManager.pointVirtualGrid.queryPoint(e.end).filter((g) => g.userData !== e));
1486
1509
  const i = e.clone();
1487
- let d = "";
1488
- t && (e.start.equal(t) || (d = "start"), o.push({
1510
+ let l = "";
1511
+ t && (e.start.equal(t) || (l = "start"), s.push({
1489
1512
  point: e.start,
1490
1513
  oldPoint: e.start.clone(),
1491
1514
  newPoint: t,
1492
1515
  line: e
1493
- }), e.start.copy(t)), n && (e.end.equal(n) || (d = d === "start" ? "all" : "end"), o.push({
1516
+ }), e.start.copy(t)), n && (e.end.equal(n) || (l = l === "start" ? "all" : "end"), s.push({
1494
1517
  point: e.end,
1495
1518
  oldPoint: e.end.clone(),
1496
1519
  newPoint: n,
1497
1520
  line: e
1498
1521
  }), e.end.copy(n));
1499
- const m = (y, f, p) => {
1500
- y.forEach((h) => {
1501
- const { point: E, userData: x } = h, I = x.start === E ? "start" : "end";
1522
+ const m = (g, w, h) => {
1523
+ g.forEach((C) => {
1524
+ const { point: v, userData: x } = C, L = x.start === v ? "start" : "end";
1502
1525
  if (x.directionEqual(i))
1503
- if (I === "start") {
1504
- const K = e.projectPoint(x.end, !1);
1505
- if (K) return this.setLinePoint(x, f, K, "end", o, a);
1526
+ if (L === "start") {
1527
+ const B = e.projectPoint(x.end, !1);
1528
+ if (B) return this.setLinePoint(x, w, B, "end", s, a);
1506
1529
  } else {
1507
- const K = e.projectPoint(x.start, !1);
1508
- if (K) return this.setLinePoint(x, K, f, "start", o, a);
1530
+ const B = e.projectPoint(x.start, !1);
1531
+ if (B) return this.setLinePoint(x, B, w, "start", s, a);
1509
1532
  }
1510
- (d === "all" || p === d) && this.setLinePoint(
1533
+ (l === "all" || h === l) && this.setLinePoint(
1511
1534
  x,
1512
- x.start === E ? f : x.start,
1513
- x.end === E ? f : x.end,
1514
- x.start === E ? "end" : "start",
1515
- o,
1535
+ x.start === v ? w : x.start,
1536
+ x.end === v ? w : x.end,
1537
+ x.start === v ? "end" : "start",
1538
+ s,
1516
1539
  a
1517
1540
  );
1518
1541
  });
1519
1542
  };
1520
- return m(l, e.start, "start"), m(r, e.end, "end"), [...l, ...r];
1543
+ return m(d, e.start, "start"), m(r, e.end, "end"), [...d, ...r];
1521
1544
  }
1522
1545
  /** 修正2
1523
1546
  * 第一步:确定需要修复的线段
@@ -1531,72 +1554,72 @@ class le extends O {
1531
1554
  */
1532
1555
  correction(e, t = [], n = /* @__PURE__ */ new Set()) {
1533
1556
  n.add(e);
1534
- const s = this.renderManager.quadtree.queryLineSegment(e).filter(({ line: i }) => !(i === e || i.userData.isDoor || n.has(i))).map((i) => i.line), o = e.direction(), [a, l] = s.reduce((i, d) => {
1535
- const [m, y] = i;
1536
- return d.sameEndpoint(e) ? m.push(d) : y.push(d), i;
1557
+ const o = this.renderManager.quadtree.queryLineSegment(e).filter(({ line: i }) => !(i === e || i.userData.isDoor || n.has(i))).map((i) => i.line), s = e.direction(), [a, d] = o.reduce((i, l) => {
1558
+ const [m, g] = i;
1559
+ return l.sameEndpoint(e) ? m.push(l) : g.push(l), i;
1537
1560
  }, [[], []]);
1538
1561
  a.forEach((i) => {
1539
- const d = i.direction(), m = o.angleBetween(d, "angle");
1562
+ const l = i.direction(), m = s.angleBetween(l, "angle");
1540
1563
  if (Math.abs(90 - m) > 45) return !1;
1541
- const f = e.sameEndpointAsStart(i) ? e.start : e.end, p = i.sameEndpointAsStart(e) ? i.end : i.start, h = new N(
1542
- p.clone().add(o.clone().multiplyScalar(1)),
1543
- p.clone().add(o.clone().multiplyScalar(-1))
1544
- ), E = h.projectPoint(f, !1);
1545
- if (E) {
1564
+ const w = e.sameEndpointAsStart(i) ? e.start : e.end, h = i.sameEndpointAsStart(e) ? i.end : i.start, C = new N(
1565
+ h.clone().add(s.clone().multiplyScalar(1)),
1566
+ h.clone().add(s.clone().multiplyScalar(-1))
1567
+ ), v = C.projectPoint(w, !1);
1568
+ if (v) {
1546
1569
  const x = [];
1547
1570
  this.setLinePoint(
1548
1571
  i,
1549
- i.start === p ? E : i.start,
1550
- i.end === p ? E : i.end,
1551
- i.start === p ? "start" : "end",
1572
+ i.start === h ? v : i.start,
1573
+ i.end === h ? v : i.end,
1574
+ i.start === h ? "start" : "end",
1552
1575
  x
1553
1576
  ), t.push(x);
1554
1577
  }
1555
1578
  return n.add(i), !1;
1556
- }), o.copy(e.direction());
1557
- const r = (i, d, m) => {
1558
- const y = e.projectPoint(d);
1559
- if (y) i.copy(y);
1579
+ }), s.copy(e.direction());
1580
+ const r = (i, l, m) => {
1581
+ const g = e.projectPoint(l);
1582
+ if (g) i.copy(g);
1560
1583
  else {
1561
- const f = new N(
1562
- d.clone().add(o.clone().multiplyScalar(1)),
1563
- d.clone().add(o.clone().multiplyScalar(-1))
1564
- ), p = f.projectPoint(i, !1);
1565
- if (p) {
1566
- const h = [];
1584
+ const w = new N(
1585
+ l.clone().add(s.clone().multiplyScalar(1)),
1586
+ l.clone().add(s.clone().multiplyScalar(-1))
1587
+ ), h = w.projectPoint(i, !1);
1588
+ if (h) {
1589
+ const C = [];
1567
1590
  this.setLinePoint(
1568
1591
  m,
1569
- m.start === d ? p : m.start,
1570
- m.end === d ? p : m.end,
1571
- m.start === d ? "start" : "end",
1572
- h
1573
- ), t.push(h);
1592
+ m.start === l ? h : m.start,
1593
+ m.end === l ? h : m.end,
1594
+ m.start === l ? "start" : "end",
1595
+ C
1596
+ ), t.push(C);
1574
1597
  }
1575
1598
  }
1576
1599
  };
1577
- return l.forEach((i) => {
1600
+ return d.forEach((i) => {
1578
1601
  if (e.containsPoint(i.start))
1579
1602
  r(i.start, i.end, i);
1580
1603
  else if (e.containsPoint(i.end))
1581
1604
  r(i.end, i.start, i);
1582
1605
  else {
1583
- const d = e.getIntersection(i);
1584
- if (d) {
1606
+ const l = e.getIntersection(i);
1607
+ if (l) {
1585
1608
  const m = new N(
1586
- i.start.clone().add(o.clone().multiplyScalar(1)),
1587
- i.start.clone().add(o.clone().multiplyScalar(-1))
1588
- ), y = m.projectPoint(d, !1);
1589
- if (y) {
1590
- const h = [];
1591
- this.setLinePoint(i, y, i.end, "start", h), t.push(h);
1609
+ i.start.clone().add(s.clone().multiplyScalar(1)),
1610
+ i.start.clone().add(s.clone().multiplyScalar(-1))
1611
+ ), g = m.projectPoint(l, !1);
1612
+ if (g) {
1613
+ const C = [];
1614
+ this.setLinePoint(i, g, i.end, "start", C), t.push(C);
1592
1615
  }
1593
- const f = new N(
1594
- i.end.clone().add(o.clone().multiplyScalar(1)),
1595
- i.end.clone().add(o.clone().multiplyScalar(-1))
1596
- ), p = f.projectPoint(d, !1);
1597
- if (p) {
1598
- const h = [];
1599
- this.setLinePoint(i, i.start, p, "end", h), t.push(h);
1616
+ const w = new N(
1617
+ i.end.clone().add(s.clone().multiplyScalar(1)),
1618
+ i.end.clone().add(s.clone().multiplyScalar(-1))
1619
+ ), h = w.projectPoint(l, !1);
1620
+ if (h) {
1621
+ const C = [];
1622
+ this.setLinePoint(i, i.start, h, "end", C), t.push(C);
1600
1623
  }
1601
1624
  }
1602
1625
  }
@@ -1608,7 +1631,7 @@ class le extends O {
1608
1631
  */
1609
1632
  axisAlignmentCorrection(e) {
1610
1633
  const t = [...this.renderManager.lines];
1611
- return { newLines: Nt.correction(t, e, { groupMethod: "cross", fittingMethod: "max", crossAxistThreshold: 0.08 }), oldLines: t };
1634
+ return { newLines: Qt.correction(t, e, { groupMethod: "cross", fittingMethod: "max", crossAxistThreshold: 0.08 }), oldLines: t };
1612
1635
  }
1613
1636
  /** 开始
1614
1637
  * @param next
@@ -1624,11 +1647,11 @@ class le extends O {
1624
1647
  if (Array.isArray(e)) {
1625
1648
  const t = [];
1626
1649
  e.forEach((n) => {
1627
- n.forEach((s) => {
1628
- const { line: o, newPoint: a, point: l } = s;
1629
- l.copy(a), this.renderManager.removeLine(o), this.renderManager.addLine(o), o.userData.isWindow && t.push(o);
1650
+ n.forEach((o) => {
1651
+ const { line: s, newPoint: a, point: d } = o;
1652
+ d.copy(a), this.renderManager.removeLine(s), this.renderManager.addLine(s), s.userData.isWindow && t.push(s);
1630
1653
  });
1631
- }), Te(...t);
1654
+ }), _e(...t);
1632
1655
  } else
1633
1656
  this.renderManager.removeLines(e.oldLines), this.renderManager.addLines(e.newLines);
1634
1657
  this.renderManager.draw();
@@ -1640,13 +1663,13 @@ class le extends O {
1640
1663
  if (Array.isArray(e)) {
1641
1664
  const t = [];
1642
1665
  for (let n = e.length - 1; n >= 0; n--) {
1643
- const s = e[n];
1644
- for (let o = s.length - 1; o >= 0; o--) {
1645
- const a = s[o], { line: l, oldPoint: r, point: i } = a;
1646
- i.copy(r), this.renderManager.removeLine(l), this.renderManager.addLine(l), l.userData.isWindow && t.push(l);
1666
+ const o = e[n];
1667
+ for (let s = o.length - 1; s >= 0; s--) {
1668
+ const a = o[s], { line: d, oldPoint: r, point: i } = a;
1669
+ i.copy(r), this.renderManager.removeLine(d), this.renderManager.addLine(d), d.userData.isWindow && t.push(d);
1647
1670
  }
1648
1671
  }
1649
- Te(...t);
1672
+ _e(...t);
1650
1673
  } else
1651
1674
  this.renderManager.removeLines(e.newLines), this.renderManager.addLines(e.oldLines);
1652
1675
  return this.renderManager.draw(), e;
@@ -1659,31 +1682,31 @@ class le extends O {
1659
1682
  return this.completed(e), e;
1660
1683
  }
1661
1684
  }
1662
- class $ extends O {
1685
+ class ne extends z {
1663
1686
  static name = "MergeLine";
1664
1687
  shortcutKeys = ["control", "g"];
1665
1688
  static commandName = "merge-line";
1666
1689
  onAddFromParent(e) {
1667
1690
  super.onAddFromParent(e);
1668
- const t = this.commandManager.addCommandFlow($.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.mergeLines.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
1669
- t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination($.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
1670
- this.eventInput.isKeyCombination($.commandName) && await this.commandManager.start($.commandName, [...this.default.selectLines]);
1691
+ const t = this.commandManager.addCommandFlow(ne.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.mergeLines.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
1692
+ t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(ne.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
1693
+ this.eventInput.isKeyCombination(ne.commandName) && await this.commandManager.start(ne.commandName, [...this.default.selectLines]);
1671
1694
  }), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
1672
1695
  }
1673
1696
  /**
1674
1697
  * 进入命令约束
1675
1698
  */
1676
1699
  constraint(e, t) {
1677
- Array.isArray(t) ? t.length < 2 ? (k({ message: "未执行线段合并,请选择至少两条线段", type: "warning" }), this.cancel()) : e(t) : (k({ message: "进入命令失败", type: "warning" }), this.cancel());
1700
+ Array.isArray(t) ? t.length < 2 ? (I({ message: "未执行线段合并,请选择至少两条线段", type: "warning" }), this.cancel()) : e(t) : (I({ message: "进入命令失败", type: "warning" }), this.cancel());
1678
1701
  }
1679
1702
  /** 开始
1680
1703
  * @param next
1681
1704
  * @todo 合并所有
1682
1705
  */
1683
1706
  mergeLines(e, t) {
1684
- t = t.filter((o) => !o.userData.isDoor);
1685
- const { newLines: n, deleteLines: s } = N.autoMergeLines(t);
1686
- n.length ? (e({ newLines: n, deleteLines: s }), k({ message: "已合并", type: "success" })) : (k({ message: "合并失败,未找到共用点", type: "warning" }), this.commandManager.cancel());
1707
+ t = t.filter((s) => !s.userData.isDoor);
1708
+ const { newLines: n, deleteLines: o } = N.autoMergeLines(t);
1709
+ n.length ? (e({ newLines: n, deleteLines: o }), I({ message: "已合并", type: "success" })) : (I({ message: "合并失败,未找到共用点", type: "warning" }), this.commandManager.cancel());
1687
1710
  }
1688
1711
  /** 执行完成
1689
1712
  * @param data
@@ -1706,26 +1729,26 @@ class $ extends O {
1706
1729
  return this.completed(e), e;
1707
1730
  }
1708
1731
  }
1709
- class ee extends O {
1732
+ class oe extends z {
1710
1733
  static name = "DeleteSelectLine";
1711
1734
  shortcutKeys = ["Delete"];
1712
1735
  static commandName = "deleteSelectLine";
1713
1736
  onAddFromParent(e) {
1714
- super.onAddFromParent(e), this.commandManager.addCommandFlow(ee.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.delete.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this)).addEventListener("finally", this.createFinally()), this.eventInput.addKeyCombination(ee.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
1715
- this.eventInput.isKeyCombination(ee.commandName) && await this.commandManager.start(ee.commandName, [...this.default.selectLines]);
1737
+ super.onAddFromParent(e), this.commandManager.addCommandFlow(oe.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.delete.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this)).addEventListener("finally", this.createFinally()), this.eventInput.addKeyCombination(oe.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
1738
+ this.eventInput.isKeyCombination(oe.commandName) && await this.commandManager.start(oe.commandName, [...this.default.selectLines]);
1716
1739
  }), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
1717
1740
  }
1718
1741
  /**
1719
1742
  * 进入命令约束
1720
1743
  */
1721
1744
  constraint(e, t) {
1722
- Array.isArray(t) ? t.length === 0 ? (k({ message: "请选择线段", type: "warning" }), this.cancel()) : e(t) : (k({ message: "进入命令失败", type: "warning" }), this.cancel());
1745
+ Array.isArray(t) ? t.length === 0 ? (I({ message: "请选择线段", type: "warning" }), this.cancel()) : e(t) : (I({ message: "进入命令失败", type: "warning" }), this.cancel());
1723
1746
  }
1724
1747
  /** 开始
1725
1748
  * @param next
1726
1749
  */
1727
1750
  delete(e, t) {
1728
- t.forEach((n) => this.renderManager.removeLine(n)), k({ message: "删除成功", type: "success" }), e(t);
1751
+ t.forEach((n) => this.renderManager.removeLine(n)), I({ message: "删除成功", type: "success" }), e(t);
1729
1752
  }
1730
1753
  /** 回滚操作
1731
1754
  * @param data
@@ -1741,36 +1764,36 @@ class ee extends O {
1741
1764
  return e.forEach((t) => this.renderManager.removeLine(t)), e;
1742
1765
  }
1743
1766
  }
1744
- class te extends O {
1767
+ class se extends z {
1745
1768
  static name = "ConnectionLine";
1746
1769
  shortcutKeys = ["Shift", "L"];
1747
1770
  static commandName = "connectionLine";
1748
1771
  onAddFromParent(e) {
1749
1772
  super.onAddFromParent(e);
1750
- const t = this.commandManager.addCommandFlow(te.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.connection.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
1751
- t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(te.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
1752
- this.eventInput.isKeyCombination(te.commandName) && await this.commandManager.start(te.commandName, [...this.default.selectLines]);
1773
+ const t = this.commandManager.addCommandFlow(se.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.connection.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
1774
+ t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(se.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
1775
+ this.eventInput.isKeyCombination(se.commandName) && await this.commandManager.start(se.commandName, [...this.default.selectLines]);
1753
1776
  }), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
1754
1777
  }
1755
1778
  /**
1756
1779
  * 进入命令约束
1757
1780
  */
1758
1781
  constraint(e, t) {
1759
- Array.isArray(t) ? t.length !== 2 ? (k({ message: "请选择2条线段", type: "warning" }), this.cancel()) : e(t) : (k({ message: "进入命令失败", type: "warning" }), this.cancel());
1782
+ Array.isArray(t) ? t.length !== 2 ? (I({ message: "请选择2条线段", type: "warning" }), this.cancel()) : e(t) : (I({ message: "进入命令失败", type: "warning" }), this.cancel());
1760
1783
  }
1761
1784
  /** 连接
1762
1785
  * @param next
1763
1786
  */
1764
1787
  connection(e, t) {
1765
- let n, s, o = 1 / 0;
1788
+ let n, o, s = 1 / 0;
1766
1789
  for (let a = 0; a < 2; a++)
1767
- for (let l = 0; l < 2; l++) {
1768
- const r = t[0].points[a], i = t[1].points[l], d = r.distance(i);
1769
- d < o && (n = r, s = i, o = d);
1790
+ for (let d = 0; d < 2; d++) {
1791
+ const r = t[0].points[a], i = t[1].points[d], l = r.distance(i);
1792
+ l < s && (n = r, o = i, s = l);
1770
1793
  }
1771
- if (n && s) {
1772
- const a = new N(n.clone(), s.clone());
1773
- e(a), k({ message: "连接成功", type: "success" });
1794
+ if (n && o) {
1795
+ const a = new N(n.clone(), o.clone());
1796
+ e(a), I({ message: "连接成功", type: "success" });
1774
1797
  } else this.cancel();
1775
1798
  }
1776
1799
  /** 成功
@@ -1794,47 +1817,47 @@ class te extends O {
1794
1817
  return this.completed(e), e;
1795
1818
  }
1796
1819
  }
1797
- class ne extends O {
1820
+ class ae extends z {
1798
1821
  static name = "IntersectionConnectionLine";
1799
1822
  shortcutKeys = ["control", "Shift", "L"];
1800
1823
  static commandName = "intersectionConnectionLine";
1801
1824
  onAddFromParent(e) {
1802
1825
  super.onAddFromParent(e);
1803
- const t = this.commandManager.addCommandFlow(ne.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.connection.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
1804
- t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(ne.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
1805
- this.eventInput.isKeyCombination(ne.commandName) && await this.commandManager.start(ne.commandName, [...this.default.selectLines]);
1826
+ const t = this.commandManager.addCommandFlow(ae.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.connection.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
1827
+ t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(ae.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
1828
+ this.eventInput.isKeyCombination(ae.commandName) && await this.commandManager.start(ae.commandName, [...this.default.selectLines]);
1806
1829
  }), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
1807
1830
  }
1808
1831
  /**
1809
1832
  * 进入命令约束
1810
1833
  */
1811
1834
  constraint(e, t) {
1812
- Array.isArray(t) ? t.length !== 2 ? (k({ message: "请选择2条线段", type: "warning" }), this.cancel()) : e(t) : (k({ message: "进入命令失败", type: "warning" }), this.cancel());
1835
+ Array.isArray(t) ? t.length !== 2 ? (I({ message: "请选择2条线段", type: "warning" }), this.cancel()) : e(t) : (I({ message: "进入命令失败", type: "warning" }), this.cancel());
1813
1836
  }
1814
1837
  /** 开始
1815
1838
  * @param next
1816
1839
  */
1817
1840
  connection(e, t) {
1818
- const n = t[0], s = t[1], o = t[0].getIntersection(t[1]);
1819
- if (!o) return;
1820
- const a = n.points.map((d) => d.clone()), l = s.points.map((d) => d.clone());
1821
- n.start.distance(o) < n.end.distance(o) ? n.start.copy(o) : n.end.copy(o), s.start.distance(o) < s.end.distance(o) ? s.start.copy(o) : s.end.copy(o);
1822
- const r = n.points.map((d) => d.clone()), i = s.points.map((d) => d.clone());
1823
- e({ line1: n, line2: s, oldLine1: a, oldLine2: l, newLine1: r, newLine2: i }), k({ message: "连接成功", type: "success" });
1841
+ const n = t[0], o = t[1], s = t[0].getIntersection(t[1]);
1842
+ if (!s) return;
1843
+ const a = n.points.map((l) => l.clone()), d = o.points.map((l) => l.clone());
1844
+ n.start.distance(s) < n.end.distance(s) ? n.start.copy(s) : n.end.copy(s), o.start.distance(s) < o.end.distance(s) ? o.start.copy(s) : o.end.copy(s);
1845
+ const r = n.points.map((l) => l.clone()), i = o.points.map((l) => l.clone());
1846
+ e({ line1: n, line2: o, oldLine1: a, oldLine2: d, newLine1: r, newLine2: i }), I({ message: "连接成功", type: "success" });
1824
1847
  }
1825
1848
  /** 执行完成
1826
1849
  * @param next
1827
1850
  * @param selectLines
1828
1851
  */
1829
- completed({ line1: e, line2: t, newLine1: n, newLine2: s }) {
1830
- this.renderManager.removeLine(e), this.renderManager.removeLine(t), e.set(...n), t.set(...s), this.renderManager.addLines([e, t]), this.renderManager.draw();
1852
+ completed({ line1: e, line2: t, newLine1: n, newLine2: o }) {
1853
+ this.renderManager.removeLine(e), this.renderManager.removeLine(t), e.set(...n), t.set(...o), this.renderManager.addLines([e, t]), this.renderManager.draw();
1831
1854
  }
1832
1855
  /** 回滚操作
1833
1856
  * @param data
1834
1857
  */
1835
1858
  rollback(e) {
1836
- const { line1: t, line2: n, oldLine1: s, oldLine2: o } = e;
1837
- return this.renderManager.removeLine(t), this.renderManager.removeLine(n), t.set(...s), n.set(...o), this.renderManager.addLines([t, n]), this.renderManager.draw(), e;
1859
+ const { line1: t, line2: n, oldLine1: o, oldLine2: s } = e;
1860
+ return this.renderManager.removeLine(t), this.renderManager.removeLine(n), t.set(...o), n.set(...s), this.renderManager.addLines([t, n]), this.renderManager.draw(), e;
1838
1861
  }
1839
1862
  /** 撤回回滚
1840
1863
  * @param lines
@@ -1844,34 +1867,34 @@ class ne extends O {
1844
1867
  return this.completed(e), e;
1845
1868
  }
1846
1869
  }
1847
- class se extends O {
1870
+ class ie extends z {
1848
1871
  static name = "DeleteSelectWindow";
1849
1872
  shortcutKeys = ["Q", "Delete"];
1850
1873
  static commandName = "deleteSelectWindow";
1851
1874
  onAddFromParent(e) {
1852
1875
  super.onAddFromParent(e);
1853
- const t = this.commandManager.addCommandFlow(se.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.end.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
1854
- t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(se.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
1855
- this.eventInput.isKeyCombination(se.commandName) && await this.commandManager.start(se.commandName, [...this.default.selectLines]);
1876
+ const t = this.commandManager.addCommandFlow(ie.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.end.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
1877
+ t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(ie.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
1878
+ this.eventInput.isKeyCombination(ie.commandName) && await this.commandManager.start(ie.commandName, [...this.default.selectLines]);
1856
1879
  }), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
1857
1880
  }
1858
1881
  /**
1859
1882
  * 进入命令约束
1860
1883
  */
1861
1884
  constraint(e, t) {
1862
- Array.isArray(t) ? t.some((n) => n.userData.isWindow) ? e(t) : (k({ message: "请选择有窗户线段", type: "warning" }), this.cancel()) : (k({ message: "进入命令失败", type: "warning" }), this.cancel());
1885
+ Array.isArray(t) ? t.some((n) => n.userData.isWindow) ? e(t) : (I({ message: "请选择有窗户线段", type: "warning" }), this.cancel()) : (I({ message: "进入命令失败", type: "warning" }), this.cancel());
1863
1886
  }
1864
1887
  /** 开始
1865
1888
  * @param next
1866
1889
  */
1867
1890
  end(e, t) {
1868
- let n = !1, s = [];
1869
- t.forEach((o) => {
1870
- o.userData.isWindow && (s.push({
1871
- line: o,
1872
- drawDoorData: o.userData.drawDoorData
1891
+ let n = !1, o = [];
1892
+ t.forEach((s) => {
1893
+ s.userData.isWindow && (o.push({
1894
+ line: s,
1895
+ drawDoorData: s.userData.drawDoorData
1873
1896
  }), n = !0);
1874
- }), n && k({ message: "删除窗户成功", type: "success" }), e(s);
1897
+ }), n && I({ message: "删除窗户成功", type: "success" }), e(o);
1875
1898
  }
1876
1899
  /**
1877
1900
  * 完成
@@ -1901,16 +1924,16 @@ class se extends O {
1901
1924
  return this.completed(e), e;
1902
1925
  }
1903
1926
  }
1904
- class oe extends O {
1927
+ class re extends z {
1905
1928
  static name = "SelectAll";
1906
- container = new g.Group();
1929
+ container = new p.Group();
1907
1930
  shortcutKeys = ["control", "a"];
1908
1931
  static commandName = "selectAll";
1909
1932
  onAddFromParent(e) {
1910
1933
  super.onAddFromParent(e), this.editor.container.add(this.container), this.container.position.z = 1e-3;
1911
- const t = this.commandManager.addCommandFlow(oe.commandName).add(this.createInterrupt()).add(this.selectAll.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
1912
- t.writeOperationList = !1, t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(oe.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
1913
- this.eventInput.isKeyCombination(oe.commandName) && await this.commandManager.start(oe.commandName);
1934
+ const t = this.commandManager.addCommandFlow(re.commandName).add(this.createInterrupt()).add(this.selectAll.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
1935
+ t.writeOperationList = !1, t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(re.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
1936
+ this.eventInput.isKeyCombination(re.commandName) && await this.commandManager.start(re.commandName);
1914
1937
  }), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
1915
1938
  }
1916
1939
  /** 开始
@@ -1938,22 +1961,22 @@ class oe extends O {
1938
1961
  return this.completed(e), e;
1939
1962
  }
1940
1963
  }
1941
- class ae extends O {
1964
+ class de extends z {
1942
1965
  static name = "ViewAngle";
1943
1966
  shortcutKeys = ["r"];
1944
1967
  static commandName = "viewAngle";
1945
1968
  onAddFromParent(e) {
1946
1969
  super.onAddFromParent(e);
1947
- const t = this.commandManager.addCommandFlow(ae.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.viewAngle.bind(this));
1948
- t.writeOperationList = !1, t.addEventListener("finally", this.createFinally()), this.eventInput.addKeyCombination(ae.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
1949
- this.eventInput.isKeyCombination(ae.commandName) && await this.commandManager.start(ae.commandName, [...this.default.selectLines]);
1970
+ const t = this.commandManager.addCommandFlow(de.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.viewAngle.bind(this));
1971
+ t.writeOperationList = !1, t.addEventListener("finally", this.createFinally()), this.eventInput.addKeyCombination(de.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
1972
+ this.eventInput.isKeyCombination(de.commandName) && await this.commandManager.start(de.commandName, [...this.default.selectLines]);
1950
1973
  }), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
1951
1974
  }
1952
1975
  /**
1953
1976
  * 进入命令约束
1954
1977
  */
1955
1978
  constraint(e, t) {
1956
- Array.isArray(t) ? t.length !== 2 || !t[0].sameEndpoint(t[1]) ? (k({ message: "请选择两条具有端点相交的线段", type: "warning" }), this.cancel()) : e(t) : (k({ message: "进入命令失败", type: "warning" }), this.cancel());
1979
+ Array.isArray(t) ? t.length !== 2 || !t[0].sameEndpoint(t[1]) ? (I({ message: "请选择两条具有端点相交的线段", type: "warning" }), this.cancel()) : e(t) : (I({ message: "进入命令失败", type: "warning" }), this.cancel());
1957
1980
  }
1958
1981
  /**
1959
1982
  *
@@ -1961,68 +1984,68 @@ class ae extends O {
1961
1984
  * @param selectLines
1962
1985
  */
1963
1986
  viewAngle(e, t) {
1964
- const [n, s] = t, o = Math.min(n.length() * 0.8, s.length() * 0.8);
1965
- let a, l, r, i = 0, d = 0;
1966
- n.sameEndpointAsStart(s) ? (a = n.start, l = n.end) : (a = n.end, l = n.start), s.sameEndpointAsStart(n) ? r = s.end : r = s.start;
1967
- function m(S, M) {
1968
- const b = M.x - S.x, z = M.y - S.y;
1969
- let W = Math.atan2(z, b) * (180 / Math.PI);
1970
- return W < 0 && (W += 360), W;
1987
+ const [n, o] = t, s = Math.min(n.length() * 0.8, o.length() * 0.8);
1988
+ let a, d, r, i = 0, l = 0;
1989
+ n.sameEndpointAsStart(o) ? (a = n.start, d = n.end) : (a = n.end, d = n.start), o.sameEndpointAsStart(n) ? r = o.end : r = o.start;
1990
+ function m(Q, W) {
1991
+ const E = W.x - Q.x, q = W.y - Q.y;
1992
+ let F = Math.atan2(q, E) * (180 / Math.PI);
1993
+ return F < 0 && (F += 360), F;
1971
1994
  }
1972
- const y = m(a, l), f = m(a, r), p = Math.min(y, f), h = Math.max(y, f), E = [];
1973
- function x(S, M) {
1974
- for (let b = S; b <= M; b++) {
1975
- const z = Math.cos(b * Math.PI / 180) * o + a.x, W = Math.sin(b * Math.PI / 180) * o + a.y, he = Math.cos((b + 1) * Math.PI / 180) * o + a.x, Ce = Math.sin((b + 1) * Math.PI / 180) * o + a.y;
1976
- E.push(z, W, 0, he, Ce, 0);
1995
+ const g = m(a, d), w = m(a, r), h = Math.min(g, w), C = Math.max(g, w), v = [];
1996
+ function x(Q, W) {
1997
+ for (let E = Q; E <= W; E++) {
1998
+ const q = Math.cos(E * Math.PI / 180) * s + a.x, F = Math.sin(E * Math.PI / 180) * s + a.y, S = Math.cos((E + 1) * Math.PI / 180) * s + a.x, X = Math.sin((E + 1) * Math.PI / 180) * s + a.y;
1999
+ v.push(q, F, 0, S, X, 0);
1977
2000
  }
1978
2001
  }
1979
- h - p > 180 ? (x(0, p), x(h, 360), i = 360 - (h - p), d = (h + i / 2) % 360) : (x(p, h), i = h - p, d = p + i / 2);
1980
- const I = new g.LineSegments();
1981
- I.geometry = this.renderManager.createGeometry({
1982
- position: E
1983
- }, E.length / 3), I.material = new g.LineBasicMaterial({ color: 16711935 }), this.renderManager.container.add(I);
1984
- const K = Math.cos(d * Math.PI / 180) * o + a.x, Y = Math.sin(d * Math.PI / 180) * o + a.y, Z = this.renderer.createText(Number(i.toFixed(2)), new g.Vector3(K, Y, 0), {
2002
+ C - h > 180 ? (x(0, h), x(C, 360), i = 360 - (C - h), l = (C + i / 2) % 360) : (x(h, C), i = C - h, l = h + i / 2);
2003
+ const L = new p.LineSegments();
2004
+ L.geometry = this.renderManager.createGeometry({
2005
+ position: v
2006
+ }, v.length / 3), L.material = new p.LineBasicMaterial({ color: 16711935 }), this.renderManager.container.add(L);
2007
+ const B = Math.cos(l * Math.PI / 180) * s + a.x, $ = Math.sin(l * Math.PI / 180) * s + a.y, ee = this.renderer.createText(Number(i.toFixed(2)), new p.Vector3(B, $, 0), {
1985
2008
  textShadow: "0px 0px 2px #000"
1986
2009
  }, this.renderManager.container);
1987
- let G = 0;
1988
- this.addEventRecord("clear").add(() => I.removeFromParent()).add(() => Z.removeFromParent()).add(this.eventInput.addEventListener("codeChange", () => {
1989
- this.eventInput.isOnlyKeyDown("enter") ? e() : this.eventInput.isOnlyKeyDown("mouse_0") && (G++, G === 1 ? setTimeout(() => G = 0, 500) : G === 2 && (e(), G = 0));
2010
+ let _ = 0;
2011
+ this.addEventRecord("clear").add(() => L.removeFromParent()).add(() => ee.removeFromParent()).add(this.eventInput.addEventListener("codeChange", () => {
2012
+ this.eventInput.isOnlyKeyDown("enter") ? e() : this.eventInput.isOnlyKeyDown("mouse_0") && (_++, _ === 1 ? setTimeout(() => _ = 0, 500) : _ === 2 && (e(), _ = 0));
1990
2013
  }));
1991
2014
  }
1992
2015
  }
1993
- class lt extends O {
2016
+ class pt extends z {
1994
2017
  static name = "ClippingLine";
1995
- container = new g.Group();
2018
+ container = new p.Group();
1996
2019
  shortcutKeys = ["control", "x"];
1997
2020
  commandName = "clippingLine";
1998
2021
  static commandName = "clippingLine";
1999
2022
  onAddFromParent(e) {
2000
2023
  super.onAddFromParent(e), this.editor.container.add(this.container);
2001
- const t = this.commandManager.addCommandFlow(this.commandName).add(this.createInterrupt()).add(this.createCursor("no-drop")).add(this.selectPointStart.bind(this)).add(this.selectPointEnd.bind(this)).add(this.end.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
2024
+ const t = this.commandManager.addCommandFlow(this.commandName).add(this.createInterrupt()).add(this.createCursor("no-drop")).add(this.selectPointStart.bind(this)).add(this.selectPointEnd.bind(this)).add(this.end.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this)).setLoop(!0);
2002
2025
  t.addEventListener("finally", this.createFinally(["selectPointStart"])), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(this.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => this.eventInput.isKeyCombination(this.commandName) && await this.commandManager.start(this.commandName)), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
2003
2026
  }
2004
2027
  /** 选择开始点
2005
2028
  * @param next
2006
2029
  */
2007
2030
  selectPointStart(e) {
2008
- let t = null, n = this.renderer.createCircle(L.zero(), { color: 16711935 }), s = null;
2031
+ let t = null, n = this.renderer.createCircle(A.zero(), { color: 16711935 }), o = null;
2009
2032
  this.addEventRecord("selectPointStart").add(this.editor.addEventListener("pointerPositionChange", () => {
2010
- const { point: o, line: a, find: l } = this.editor.renderManager.adsorption();
2011
- this.dispatchEvent({ type: "pointerMove", point: o }), l ? (this.domElement.style.cursor = "none", n.position.copy(o), s = a, t = o.clone(), this.container.add(n)) : (this.domElement.style.cursor = "no-drop", t = null, n.removeFromParent());
2033
+ const { point: s, line: a, find: d } = this.editor.renderManager.adsorption();
2034
+ this.dispatchEvent({ type: "pointerMove", point: s }), d ? (this.domElement.style.cursor = "none", n.position.copy(s), o = a, t = s.clone(), this.container.add(n)) : (this.domElement.style.cursor = "no-drop", t = null, n.removeFromParent());
2012
2035
  })).add(this.eventInput.addEventListener("codeChange", () => {
2013
- this.eventInput.isKeyDown("mouse_0") && t && (this.canceEventRecord("selectPointStart"), e({ point: t, line: s }));
2036
+ this.eventInput.isKeyDown("mouse_0") && t && (this.canceEventRecord("selectPointStart"), e({ point: t, line: o }));
2014
2037
  })), this.addEventRecord("clear").add(() => n.removeFromParent());
2015
2038
  }
2016
2039
  /** 选择结束点
2017
2040
  * @param next
2018
2041
  */
2019
2042
  selectPointEnd(e, { point: t, line: n }) {
2020
- let s = null, o = this.renderer.createCircle(L.zero(), { color: 16711935 });
2021
- this.addEventRecord("clear").add(() => o.removeFromParent()).add(this.editor.addEventListener("pointerPositionChange", () => {
2022
- const { point: a, find: l, line: r } = this.editor.renderManager.adsorption();
2023
- this.dispatchEvent({ type: "pointerMove", point: a }), l && r === n ? (this.domElement.style.cursor = "none", o.position.copy(a), s = a.clone(), this.container.add(o)) : (this.domElement.style.cursor = "no-drop", s = null, o.removeFromParent());
2043
+ let o = null, s = this.renderer.createCircle(A.zero(), { color: 16711935 });
2044
+ this.addEventRecord("clear").add(() => s.removeFromParent()).add(this.editor.addEventListener("pointerPositionChange", () => {
2045
+ const { point: a, find: d, line: r } = this.editor.renderManager.adsorption();
2046
+ this.dispatchEvent({ type: "pointerMove", point: a }), d && r === n ? (this.domElement.style.cursor = "none", s.position.copy(a), o = a.clone(), this.container.add(s)) : (this.domElement.style.cursor = "no-drop", o = null, s.removeFromParent());
2024
2047
  })).add(this.eventInput.addEventListener("codeChange", () => {
2025
- this.eventInput.isKeyDown("mouse_0") && s && e({ line: n, start: t, end: s });
2048
+ this.eventInput.isKeyDown("mouse_0") && o && e({ line: n, start: t, end: o });
2026
2049
  }));
2027
2050
  }
2028
2051
  /**
@@ -2030,24 +2053,24 @@ class lt extends O {
2030
2053
  * @param next
2031
2054
  * @param points
2032
2055
  */
2033
- end(e, { start: t, end: n, line: s }) {
2034
- const o = L.from(t), a = L.from(n);
2056
+ end(e, { start: t, end: n, line: o }) {
2057
+ const s = A.from(t), a = A.from(n);
2035
2058
  e({
2036
- oldLine: s,
2059
+ oldLine: o,
2037
2060
  newLine1: new N(
2038
- s.start,
2039
- s.start.distance(o) < s.start.distance(a) ? o.clone() : a.clone()
2061
+ o.start,
2062
+ o.start.distance(s) < o.start.distance(a) ? s.clone() : a.clone()
2040
2063
  ),
2041
2064
  newLine2: new N(
2042
- s.end,
2043
- s.end.distance(o) < s.end.distance(a) ? o.clone() : a.clone()
2065
+ o.end,
2066
+ o.end.distance(s) < o.end.distance(a) ? s.clone() : a.clone()
2044
2067
  )
2045
2068
  });
2046
2069
  }
2047
2070
  /** 执行完成
2048
2071
  */
2049
2072
  completed(e) {
2050
- this.renderManager.removeLine(e.oldLine), this.renderManager.addLines([e.newLine1, e.newLine2]), this.renderManager.draw(), this.commandManager.currentName === this.commandName && setTimeout(() => this.commandManager.start(this.commandName));
2073
+ this.renderManager.removeLine(e.oldLine), this.renderManager.addLines([e.newLine1, e.newLine2]), this.renderManager.draw();
2051
2074
  }
2052
2075
  /** 回滚操作
2053
2076
  * @param data
@@ -2063,22 +2086,22 @@ class lt extends O {
2063
2086
  return this.completed(e), e;
2064
2087
  }
2065
2088
  }
2066
- class ie extends O {
2089
+ class le extends z {
2067
2090
  static name = "VerticalReferenceLine";
2068
2091
  shortcutKeys = ["v"];
2069
2092
  static commandName = "VerticalReferenceLine";
2070
2093
  onAddFromParent(e) {
2071
2094
  super.onAddFromParent(e);
2072
- const t = this.commandManager.addCommandFlow(ie.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.verticalReferenceLine.bind(this));
2073
- t.writeOperationList = !1, t.addEventListener("finally", this.createFinally()), this.eventInput.addKeyCombination(ie.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
2074
- this.eventInput.isKeyCombination(ie.commandName) && await this.commandManager.start(ie.commandName, [...this.default.selectLines]);
2095
+ const t = this.commandManager.addCommandFlow(le.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.verticalReferenceLine.bind(this));
2096
+ t.writeOperationList = !1, t.addEventListener("finally", this.createFinally()), this.eventInput.addKeyCombination(le.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
2097
+ this.eventInput.isKeyCombination(le.commandName) && await this.commandManager.start(le.commandName, [...this.default.selectLines]);
2075
2098
  }), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
2076
2099
  }
2077
2100
  /**
2078
2101
  * 进入命令约束
2079
2102
  */
2080
2103
  constraint(e, t) {
2081
- Array.isArray(t) ? t.length !== 1 ? (k({ message: "请选择一条墙壁线段", type: "warning" }), this.cancel()) : t[0].userData.isDoor ? (k({ message: "请选择一条墙壁线段", type: "warning" }), this.cancel()) : e(t) : (k({ message: "进入命令失败", type: "warning" }), this.cancel());
2104
+ Array.isArray(t) ? t.length !== 1 ? (I({ message: "请选择一条墙壁线段", type: "warning" }), this.cancel()) : t[0].userData.isDoor ? (I({ message: "请选择一条墙壁线段", type: "warning" }), this.cancel()) : e(t) : (I({ message: "进入命令失败", type: "warning" }), this.cancel());
2082
2105
  }
2083
2106
  /**
2084
2107
  *
@@ -2091,67 +2114,73 @@ class ie extends O {
2091
2114
  }), t[0].userData.isVerticalReferenceLine = !0, e(), this.renderManager.draw();
2092
2115
  }
2093
2116
  }
2094
- const ls = {
2117
+ const fo = {
2095
2118
  key: 0,
2096
2119
  class: "mt-[5px] text-[#ccc] text-[11px] absolute left-[10px] bottom-[10px] rounded-[8px] min-w-[150px] bg-black/15 p-[10px]"
2097
- }, cs = { class: "text-start max-w-[150px]" }, ms = { class: "inline-block ml-[10px] text-[var(--color-primary)]" }, hs = {
2120
+ }, yo = { class: "text-start max-w-[150px]" }, wo = { class: "inline-block ml-[10px] text-[var(--color-primary)]" }, Co = {
2098
2121
  key: 0,
2099
2122
  class: "p-[5px] max-w-[200px]"
2100
- }, us = { class: "text-[14px] flex flex-col" }, ps = ["onClick"], gs = { class: "flex flex-row items-center" }, vs = { class: "flex justify-center items-center size-[20px] bg-[#f0f0f0] rounded-[2px] mr-[10px]" }, fs = ["src"], ys = { class: "text-wrap" }, ws = {
2123
+ }, bo = { class: "text-[14px] flex flex-col" }, Eo = ["onClick"], xo = { class: "flex flex-row items-center" }, Ao = { class: "flex justify-center items-center size-[20px] bg-[#f0f0f0] rounded-[2px] mr-[10px]" }, Lo = ["src"], Mo = { class: "text-wrap" }, Io = {
2124
+ key: 0,
2125
+ class: "flex items-center gap-[5px]"
2126
+ }, ko = {
2101
2127
  key: 1,
2102
2128
  class: "text-[#999]"
2103
- }, bs = {
2129
+ }, Do = {
2104
2130
  style: { "--el-color-primary": "var(--primary-color)" },
2105
2131
  class: "flex flex-row items-center justify-between gap-[5px] mt-[10px] text-[10px]"
2106
- }, xs = {
2132
+ }, Po = {
2107
2133
  key: 0,
2108
2134
  class: "flex flex-row items-center flex-wrap justify-between gap-[10px] mt-[10px] text-[10px]"
2109
- }, Cs = { class: "flex-wrap border-t-1 border-t-[#eee] mt-[5px] pt-[5px] flex items-center gap-[10px]" }, Es = ["onClick", "title"], Ls = ["src"], Ms = /* @__PURE__ */ me({
2135
+ }, Bo = { class: "flex-wrap border-t-1 border-t-[#eee] mt-[5px] pt-[5px] flex items-center gap-[10px]" }, So = ["onClick", "title"], Fo = ["src"], Ko = /* @__PURE__ */ pe({
2110
2136
  __name: "EditorTool",
2111
2137
  props: {
2112
2138
  dxfSystem: {},
2113
2139
  permission: {}
2114
2140
  },
2115
2141
  setup(c) {
2116
- function e(C, u, w = m.value.getBoundingClientRect(), J = y.value.getBoundingClientRect()) {
2117
- const ue = w.width - J.width, pe = 0, Le = w.height - J.height;
2118
- C = Math.max(0, Math.min(C, ue)), u = Math.max(pe, Math.min(u, Le)), S.value = { left: C, top: u };
2142
+ function e(b, u, y = g.value.getBoundingClientRect(), Y = w.value.getBoundingClientRect()) {
2143
+ const ge = y.width - Y.width, ve = 0, Me = y.height - Y.height;
2144
+ b = Math.max(0, Math.min(b, ge)), u = Math.max(ve, Math.min(u, Me)), F.value = { left: b, top: u };
2119
2145
  }
2120
- function t(C) {
2121
- p.value !== C.command && (p.value !== "default" && x.commandManager.cancel(), setTimeout(() => x.commandManager.start(C.command)));
2146
+ function t(b) {
2147
+ C.value !== b.command && (C.value !== "default" && L.commandManager.cancel(), setTimeout(() => L.commandManager.start(b.command)));
2122
2148
  }
2123
- function n(C) {
2124
- if (C) {
2125
- localStorage.setItem("lines", JSON.stringify(C));
2149
+ function n(b) {
2150
+ if (b) {
2151
+ localStorage.setItem("lines", JSON.stringify(b));
2126
2152
  try {
2127
- h.Dxf.set(C), h.Dxf.lineOffset();
2153
+ v.Dxf.set(b), v.Dxf.lineOffset();
2128
2154
  } catch (u) {
2129
2155
  console.log(u);
2130
2156
  }
2131
2157
  }
2132
2158
  }
2133
- async function s() {
2134
- const C = await At.json();
2135
- Array.isArray(C) && (localStorage.removeItem("orbitControls"), n(C));
2159
+ async function o() {
2160
+ const b = await Rt.json();
2161
+ Array.isArray(b) && (localStorage.removeItem("orbitControls"), n(b));
2136
2162
  }
2137
- function o({ offsetX: C, offsetY: u }) {
2138
- E.mouseMoveEventProxylock = !0;
2139
- const w = document.body.style.cursor;
2163
+ function s() {
2164
+ _.set("currentKeyDown", "enter"), queueMicrotask(() => _.set("currentKeyUp", "enter"));
2165
+ }
2166
+ function a({ offsetX: b, offsetY: u }) {
2167
+ x.mouseMoveEventProxylock = !0;
2168
+ const y = document.body.style.cursor;
2140
2169
  document.body.style.cursor = "move";
2141
- const J = (ue) => {
2142
- const pe = m.value.getBoundingClientRect(), Le = y.value.getBoundingClientRect();
2170
+ const Y = (ge) => {
2171
+ const ve = g.value.getBoundingClientRect(), Me = w.value.getBoundingClientRect();
2143
2172
  e(
2144
- ue.pageX - pe.left - C,
2145
- ue.pageY - pe.top - u,
2146
- pe,
2147
- Le
2148
- ), ue.stopPropagation(), document.body.style.cursor = "move";
2149
- }, Ee = () => {
2150
- document.body.removeEventListener("mousemove", J), document.removeEventListener("mouseup", Ee), document.body.style.cursor = w, E.mouseMoveEventProxylock = !1;
2173
+ ge.pageX - ve.left - b,
2174
+ ge.pageY - ve.top - u,
2175
+ ve,
2176
+ Me
2177
+ ), ge.stopPropagation(), document.body.style.cursor = "move";
2178
+ }, Le = () => {
2179
+ document.body.removeEventListener("mousemove", Y), document.removeEventListener("mouseup", Le), document.body.style.cursor = y, x.mouseMoveEventProxylock = !1;
2151
2180
  };
2152
- document.body.addEventListener("mousemove", J), document.addEventListener("mouseup", Ee);
2181
+ document.body.addEventListener("mousemove", Y), document.addEventListener("mouseup", Le);
2153
2182
  }
2154
- const a = c, l = _(!0), r = _(!0), i = _(!0), d = _(!1), m = _(), y = _(), f = _(!0), p = _(""), h = Kt(a.dxfSystem), E = h.findComponentByType(Dt), x = h.findComponentByType(ct), I = h.findComponentByType(dt), K = h.findComponentByType(Bt), Y = h.findComponentByType(Rt), Z = _(0), G = _(0), S = _({ left: 10, top: 100 }), M = /* @__PURE__ */ Object.assign({ "./assets/images/angle.svg": kn, "./assets/images/connection.svg": Pn, "./assets/images/cutLine.svg": An, "./assets/images/deleteSelectLine.svg": _n, "./assets/images/deleteSelectWindow.svg": Bn, "./assets/images/door.svg": On, "./assets/images/intersectionConnection.svg": Fn, "./assets/images/line.svg": Tn, "./assets/images/mergeLine.svg": Vn, "./assets/images/revokeRollback.svg": Qn, "./assets/images/rollback.svg": Wn, "./assets/images/selectAll.svg": Jn, "./assets/images/selectPoint.svg": Zn, "./assets/images/verticalCorrection.svg": Xn, "./assets/images/verticalLine.svg": es, "./assets/images/window.svg": ns }), b = _(!1), z = _(0), W = _(!1), he = new ResizeObserver(() => e(S.value.left, S.value.top)), Ce = [
2183
+ const d = c, r = P(!0), i = P(!0), l = P(!0), m = P(!1), g = P(), w = P(), h = P(!0), C = P(""), v = Jt(d.dxfSystem), x = v.findComponentByType(Nt), L = v.findComponentByType(gt), B = v.findComponentByType(ht), $ = v.findComponentByType(Tt), ee = v.findComponentByType(Vt), _ = v.findComponentByType(jt), Q = v.findComponentByType(mt), W = P(0), E = P(0), q = P(0), F = P({ left: 10, top: 100 }), S = /* @__PURE__ */ Object.assign({ "./assets/images/angle.svg": Sn, "./assets/images/connection.svg": Kn, "./assets/images/cutLine.svg": Rn, "./assets/images/deleteSelectLine.svg": On, "./assets/images/deleteSelectWindow.svg": Tn, "./assets/images/door.svg": jn, "./assets/images/intersectionConnection.svg": Gn, "./assets/images/line.svg": Jn, "./assets/images/mergeLine.svg": Wn, "./assets/images/revokeRollback.svg": Zn, "./assets/images/rollback.svg": Xn, "./assets/images/selectAll.svg": eo, "./assets/images/selectPoint.svg": no, "./assets/images/verticalCorrection.svg": so, "./assets/images/verticalLine.svg": io, "./assets/images/window.svg": lo }), X = P(!1), Z = P(0), Ke = P(!1), Ae = new ResizeObserver(() => e(F.value.left, F.value.top)), vt = [
2155
2184
  { name: "开启绘制线段命令", shortcut: "Ctrl + L" },
2156
2185
  { name: "开启绘制门线命令", shortcut: "Ctrl + M" },
2157
2186
  { name: "开启绘制窗户线命令", shortcut: "Ctrl + Q" },
@@ -2171,7 +2200,7 @@ const ls = {
2171
2200
  { name: "取消命令", shortcut: "Esc" },
2172
2201
  { name: "回滚操作", shortcut: "Ctrl + Z" },
2173
2202
  { name: "取消回滚操作", shortcut: "Ctrl + Y" }
2174
- ], mt = [
2203
+ ], ft = [
2175
2204
  {
2176
2205
  command: "default",
2177
2206
  name: "默认",
@@ -2181,356 +2210,375 @@ const ls = {
2181
2210
  {
2182
2211
  command: "draw-line",
2183
2212
  name: "绘制线段",
2184
- src: M["./assets/images/line.svg"].default,
2213
+ src: S["./assets/images/line.svg"].default,
2185
2214
  show: !0,
2186
- shortcut: "Ctrl + L"
2215
+ shortcut: "Ctrl + L",
2216
+ confirm: D(() => q.value > 0)
2187
2217
  },
2188
2218
  {
2189
2219
  command: "draw-door-line",
2190
2220
  name: "绘制门线",
2191
2221
  show: !0,
2192
- src: M["./assets/images/door.svg"].default,
2222
+ src: S["./assets/images/door.svg"].default,
2193
2223
  shortcut: "Ctrl + M"
2194
2224
  },
2195
2225
  {
2196
2226
  command: "draw-window-line",
2197
2227
  name: "绘制窗户线",
2198
2228
  show: !0,
2199
- src: M["./assets/images/window.svg"].default,
2229
+ src: S["./assets/images/window.svg"].default,
2200
2230
  shortcut: "Ctrl + Q"
2201
2231
  },
2202
2232
  {
2203
2233
  command: "point",
2204
2234
  name: "点修改",
2205
2235
  show: !0,
2206
- src: M["./assets/images/selectPoint.svg"].default,
2236
+ src: S["./assets/images/selectPoint.svg"].default,
2207
2237
  shortcut: "Ctrl + P"
2208
2238
  },
2209
2239
  {
2210
- command: lt.commandName,
2240
+ command: pt.commandName,
2211
2241
  name: "裁剪线段",
2212
2242
  show: !0,
2213
- src: M["./assets/images/cutLine.svg"].default,
2243
+ src: S["./assets/images/cutLine.svg"].default,
2214
2244
  shortcut: "Ctrl + X"
2215
2245
  }
2216
- ], ht = [
2246
+ ], yt = [
2217
2247
  {
2218
2248
  command: "",
2219
2249
  name: "操作回滚",
2220
- src: M["./assets/images/rollback.svg"].default,
2221
- show: A(() => Z.value !== 0),
2250
+ src: S["./assets/images/rollback.svg"].default,
2251
+ show: D(() => W.value !== 0),
2222
2252
  shortcut: "Ctrl + Z",
2223
2253
  action() {
2224
- x.commandManager.rollback();
2254
+ L.commandManager.rollback();
2225
2255
  }
2226
2256
  },
2227
2257
  {
2228
2258
  command: "",
2229
2259
  name: "撤销操作回滚",
2230
- src: M["./assets/images/revokeRollback.svg"].default,
2231
- show: A(() => G.value !== 0),
2260
+ src: S["./assets/images/revokeRollback.svg"].default,
2261
+ show: D(() => E.value !== 0),
2232
2262
  shortcut: "Ctrl + Y",
2233
2263
  class: "rotateY-[180deg]",
2234
2264
  action() {
2235
- x.commandManager.revokeRollback();
2265
+ L.commandManager.revokeRollback();
2236
2266
  }
2237
2267
  },
2238
2268
  {
2239
- command: $.commandName,
2269
+ command: ne.commandName,
2240
2270
  name: "合并",
2241
- src: M["./assets/images/mergeLine.svg"].default,
2242
- show: A(() => z.value === 2),
2271
+ src: S["./assets/images/mergeLine.svg"].default,
2272
+ show: D(() => Z.value === 2),
2243
2273
  shortcut: "Ctrl + G"
2244
2274
  },
2245
2275
  {
2246
- command: te.commandName,
2276
+ command: se.commandName,
2247
2277
  name: "两点连接",
2248
- show: A(() => z.value === 2),
2249
- src: M["./assets/images/connection.svg"].default,
2278
+ show: D(() => Z.value === 2),
2279
+ src: S["./assets/images/connection.svg"].default,
2250
2280
  shortcut: "Shift + L"
2251
2281
  },
2252
2282
  {
2253
- command: ne.commandName,
2283
+ command: ae.commandName,
2254
2284
  name: "延长线交点连接",
2255
- show: A(() => z.value === 2),
2256
- src: M["./assets/images/intersectionConnection.svg"].default,
2285
+ show: D(() => Z.value === 2),
2286
+ src: S["./assets/images/intersectionConnection.svg"].default,
2257
2287
  shortcut: "Ctrl + Shift + L"
2258
2288
  },
2259
2289
  {
2260
- command: le.commandName,
2290
+ command: he.commandName,
2261
2291
  name: "线段垂直纠正",
2262
- show: A(() => z.value === 1),
2263
- src: M["./assets/images/verticalCorrection.svg"].default,
2292
+ show: D(() => Z.value === 1),
2293
+ src: S["./assets/images/verticalCorrection.svg"].default,
2264
2294
  shortcut: `
2265
2295
  Ctrl + C 垂直纠正
2266
2296
  Shift + C 轴对齐垂直纠正
2267
2297
  `
2268
2298
  },
2269
2299
  {
2270
- command: ie.commandName,
2300
+ command: le.commandName,
2271
2301
  name: "y轴垂直基准线",
2272
- show: A(
2273
- () => z.value === 1 && !I.selectLines[0].userData.isDoor
2302
+ show: D(
2303
+ () => Z.value === 1 && !B.selectLines[0].userData.isDoor
2274
2304
  ),
2275
- src: M["./assets/images/verticalLine.svg"].default,
2305
+ src: S["./assets/images/verticalLine.svg"].default,
2276
2306
  shortcut: "V"
2277
2307
  },
2278
2308
  {
2279
- command: ae.commandName,
2309
+ command: de.commandName,
2280
2310
  name: "角度显示",
2281
- show: A(() => z.value === 2 && I.selectLines[0].sameEndpoint(I.selectLines[1])),
2282
- src: M["./assets/images/angle.svg"].default,
2311
+ show: D(() => Z.value === 2 && B.selectLines[0].sameEndpoint(B.selectLines[1])),
2312
+ src: S["./assets/images/angle.svg"].default,
2283
2313
  shortcut: "r"
2284
2314
  },
2285
2315
  {
2286
- command: oe.commandName,
2316
+ command: re.commandName,
2287
2317
  name: "全选",
2288
- show: A(() => z.value !== x.renderManager.lines.length),
2289
- src: M["./assets/images/selectAll.svg"].default,
2318
+ show: D(() => Z.value !== L.renderManager.lines.length),
2319
+ src: S["./assets/images/selectAll.svg"].default,
2290
2320
  shortcut: "Ctrl + A"
2291
2321
  },
2292
2322
  {
2293
- command: se.commandName,
2323
+ command: ie.commandName,
2294
2324
  name: "清除窗户",
2295
- show: A(() => W.value),
2296
- src: M["./assets/images/deleteSelectWindow.svg"].default,
2325
+ show: D(() => Ke.value),
2326
+ src: S["./assets/images/deleteSelectWindow.svg"].default,
2297
2327
  shortcut: "Q + Delete"
2298
2328
  },
2299
2329
  {
2300
- command: ee.commandName,
2330
+ command: oe.commandName,
2301
2331
  name: "删除",
2302
- show: A(() => z.value > 0),
2303
- src: M["./assets/images/deleteSelectLine.svg"].default,
2332
+ show: D(() => Z.value > 0),
2333
+ src: S["./assets/images/deleteSelectLine.svg"].default,
2304
2334
  shortcut: "Delete"
2305
2335
  }
2306
2336
  ];
2307
- U(S, () => localStorage.setItem("editorToolPosition", JSON.stringify(S.value))), U(b, () => localStorage.setItem("showShortcutKey", b.value + "")), U(f, () => {
2308
- localStorage.setItem("toolBarExpand", f.value + ""), f.value && we(() => e(S.value.left, S.value.top));
2309
- }), U(l, () => h.Variable.set("originalLineVisible", l.value)), U(r, () => {
2310
- localStorage.setItem("dxfVisible", r.value + ""), h.Variable.set("dxfVisible", r.value);
2311
- }), U(i, () => h.Variable.set("whiteModelVisible", i.value)), h.Variable.addEventListener("isLook", (C) => d.value = C.value), h.Variable.addEventListener("originalLineVisible", (C) => l.value = C.value), h.Variable.addEventListener("dxfVisible", (C) => r.value = C.value), h.Variable.addEventListener("whiteModelVisible", (C) => i.value = C.value);
2312
- const ut = x.commandManager.addEventListener("started", (C) => {
2313
- p.value = C.name;
2337
+ J(F, () => localStorage.setItem("editorToolPosition", JSON.stringify(F.value))), J(X, () => localStorage.setItem("showShortcutKey", X.value + "")), J(h, () => {
2338
+ localStorage.setItem("toolBarExpand", h.value + ""), h.value && be(() => e(F.value.left, F.value.top));
2339
+ }), J(r, () => v.Variable.set("originalLineVisible", r.value)), J(i, () => {
2340
+ localStorage.setItem("dxfVisible", i.value + ""), v.Variable.set("dxfVisible", i.value);
2341
+ }), J(l, () => v.Variable.set("whiteModelVisible", l.value)), v.Variable.addEventListener("isLook", (b) => m.value = b.value), v.Variable.addEventListener("originalLineVisible", (b) => r.value = b.value), v.Variable.addEventListener("dxfVisible", (b) => i.value = b.value), v.Variable.addEventListener("whiteModelVisible", (b) => l.value = b.value), Q.addEventListener("start", () => q.value = 0), Q.addEventListener("appendLine", (b) => q.value = b.points.length), Q.addEventListener("revoke", (b) => q.value = b.points.length);
2342
+ const wt = L.commandManager.addEventListener("started", (b) => {
2343
+ C.value = b.name;
2314
2344
  });
2315
- return localStorage.getItem("showShortcutKey") && (b.value = localStorage.getItem("showShortcutKey") === "true"), localStorage.getItem("toolBarExpand") && (f.value = localStorage.getItem("toolBarExpand") === "true"), nt(() => {
2316
- y.value.style.display = "none", setTimeout(() => {
2317
- if (y.value.style.display = "block", localStorage.getItem("editorToolPosition")) {
2318
- const { left: C, top: u } = JSON.parse(localStorage.getItem("editorToolPosition") ?? "{}");
2319
- e(C, u), we(() => he.observe(m.value));
2345
+ return localStorage.getItem("showShortcutKey") && (X.value = localStorage.getItem("showShortcutKey") === "true"), localStorage.getItem("toolBarExpand") && (h.value = localStorage.getItem("toolBarExpand") === "true"), at(() => {
2346
+ w.value.style.display = "none", setTimeout(() => {
2347
+ if (w.value.style.display = "block", localStorage.getItem("editorToolPosition")) {
2348
+ const { left: b, top: u } = JSON.parse(localStorage.getItem("editorToolPosition") ?? "{}");
2349
+ e(b, u), be(() => Ae.observe(g.value));
2320
2350
  } else
2321
- we(() => he.observe(m.value));
2322
- }, 100), I.addEventListener("selectLineChange", () => {
2323
- z.value = I.selectLines.length, W.value = I.selectLines.some((C) => C.userData.isWindow);
2324
- }), ["rollback", "completed", "revokeRollback"].forEach((C) => {
2325
- x.commandManager.addEventListener(C, () => {
2351
+ be(() => Ae.observe(g.value));
2352
+ }, 100), B.addEventListener("selectLineChange", () => {
2353
+ Z.value = B.selectLines.length, Ke.value = B.selectLines.some((b) => b.userData.isWindow);
2354
+ }), ["rollback", "completed", "revokeRollback"].forEach((b) => {
2355
+ L.commandManager.addEventListener(b, () => {
2326
2356
  setTimeout(() => {
2327
- Z.value = x.commandManager.operationList.length, G.value = x.commandManager.rollbackList.length;
2357
+ W.value = L.commandManager.operationList.length, E.value = L.commandManager.rollbackList.length;
2328
2358
  });
2329
2359
  });
2330
- }), localStorage.getItem("dxfVisible") && (r.value = localStorage.getItem("dxfVisible") == "true");
2331
- }), Tt(() => {
2332
- E.mouseMoveEventProxylock = !1, ut(), he.disconnect();
2333
- }), (C, u) => (D(), R("div", {
2360
+ }), localStorage.getItem("dxfVisible") && (i.value = localStorage.getItem("dxfVisible") == "true");
2361
+ }), Ht(() => {
2362
+ x.mouseMoveEventProxylock = !1, wt(), Ae.disconnect();
2363
+ }), (b, u) => (k(), K("div", {
2334
2364
  ref_key: "elRef",
2335
- ref: m,
2365
+ ref: g,
2336
2366
  class: "editorTool pointer-events-none overflow-hidden absolute left-0 top-0 w-full h-full z-[20] flex flex-row justify-between p-[5px] box-border select-none pointer-events-[all]"
2337
2367
  }, [
2338
- F(xe, null, {
2339
- default: j(() => [
2340
- b.value ? (D(), R("div", ls, [
2341
- (D(), R(ve, null, ke(Ce, (w) => P("div", {
2368
+ O(xe, null, {
2369
+ default: V(() => [
2370
+ X.value ? (k(), K("div", fo, [
2371
+ (k(), K(ye, null, ke(vt, (y) => M("div", {
2342
2372
  class: "p-[4px_0px] flex justify-between text-right border-b-1 border-b-[rgba(255,255,255,0.1)] last-of-type:border-b-0",
2343
- key: w.name
2373
+ key: y.name
2344
2374
  }, [
2345
- P("p", cs, de(w.name), 1),
2346
- P("span", ms, de(w.shortcut), 1)
2375
+ M("p", yo, me(y.name), 1),
2376
+ M("span", wo, me(y.shortcut), 1)
2347
2377
  ])), 64))
2348
- ])) : q("", !0)
2378
+ ])) : H("", !0)
2349
2379
  ]),
2350
2380
  _: 1
2351
2381
  }),
2352
- P("div", {
2382
+ M("div", {
2353
2383
  ref_key: "toolBarRef",
2354
- ref: y,
2355
- style: Se({ left: S.value.left + "px", top: S.value.top + "px" }),
2356
- class: V(["overflow-hidden pointer-events-auto w-fit max-w-[260px] transition-[border-radius] text-[#333] absolute z-[11] bg-white select-none", { "rounded-[8px] ": f.value }]),
2357
- onMousedown: u[10] || (u[10] = (w) => w.stopPropagation())
2384
+ ref: w,
2385
+ style: Fe({ left: F.value.left + "px", top: F.value.top + "px" }),
2386
+ class: j(["overflow-hidden pointer-events-auto w-fit max-w-[260px] transition-[border-radius] text-[#333] absolute z-[11] bg-white select-none", { "rounded-[8px] ": h.value }]),
2387
+ onMousedown: u[10] || (u[10] = (y) => y.stopPropagation())
2358
2388
  }, [
2359
- P("div", {
2360
- onMousedown: o,
2361
- class: V([{ "border-b-[#eee] border-b-1": f.value }, "flex flex-row justify-between header text-[14px] font-bold p-[10px 0px]"])
2389
+ M("div", {
2390
+ onMousedown: a,
2391
+ class: j([{ "border-b-[#eee] border-b-1": h.value }, "flex flex-row justify-between header text-[14px] font-bold p-[10px 0px]"])
2362
2392
  }, [
2363
- u[12] || (u[12] = jt('<div class="flex flex-row" data-v-7af257ba><div class="p-[2px_5px] flex items-center pointer-events-none" data-v-7af257ba><svg fill="#aaa" width="20" height="20" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" data-v-7af257ba><path d="M341.333333 298.666667a85.333333 85.333333 0 1 0 0-170.666667 85.333333 85.333333 0 0 0 0 170.666667z m0 298.666666a85.333333 85.333333 0 1 0 0-170.666666 85.333333 85.333333 0 0 0 0 170.666666z m85.333334 213.333334a85.333333 85.333333 0 1 1-170.666667 0 85.333333 85.333333 0 0 1 170.666667 0z m256-512a85.333333 85.333333 0 1 0 0-170.666667 85.333333 85.333333 0 0 0 0 170.666667z m85.333333 213.333333a85.333333 85.333333 0 1 1-170.666667 0 85.333333 85.333333 0 0 1 170.666667 0z m-85.333333 384a85.333333 85.333333 0 1 0 0-170.666667 85.333333 85.333333 0 0 0 0 170.666667z" data-v-7af257ba></path></svg></div><h5 class="flex text-nowrap text-[12px] items-center pointer-events-none" data-v-7af257ba>绘制工具</h5></div>', 1)),
2364
- P("div", {
2365
- onMousedown: u[0] || (u[0] = (w) => w.stopPropagation()),
2366
- onClick: u[1] || (u[1] = (w) => f.value = !f.value),
2393
+ u[12] || (u[12] = Wt('<div class="flex flex-row" data-v-f28c0a81><div class="p-[2px_5px] flex items-center pointer-events-none" data-v-f28c0a81><svg fill="#aaa" width="20" height="20" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" data-v-f28c0a81><path d="M341.333333 298.666667a85.333333 85.333333 0 1 0 0-170.666667 85.333333 85.333333 0 0 0 0 170.666667z m0 298.666666a85.333333 85.333333 0 1 0 0-170.666666 85.333333 85.333333 0 0 0 0 170.666666z m85.333334 213.333334a85.333333 85.333333 0 1 1-170.666667 0 85.333333 85.333333 0 0 1 170.666667 0z m256-512a85.333333 85.333333 0 1 0 0-170.666667 85.333333 85.333333 0 0 0 0 170.666667z m85.333333 213.333333a85.333333 85.333333 0 1 1-170.666667 0 85.333333 85.333333 0 0 1 170.666667 0z m-85.333333 384a85.333333 85.333333 0 1 0 0-170.666667 85.333333 85.333333 0 0 0 0 170.666667z" data-v-f28c0a81></path></svg></div><h5 class="flex text-nowrap text-[12px] items-center pointer-events-none" data-v-f28c0a81>绘制工具</h5></div>', 1)),
2394
+ M("div", {
2395
+ onMousedown: u[0] || (u[0] = (y) => y.stopPropagation()),
2396
+ onClick: u[1] || (u[1] = (y) => h.value = !h.value),
2367
2397
  class: "cursor-pointer flex items-center p-[0px_5px]"
2368
2398
  }, [
2369
- (D(), R("svg", {
2399
+ (k(), K("svg", {
2370
2400
  fill: "#666",
2371
- class: V([{ "rotate-90": f.value }, "transition-all"]),
2401
+ class: j([{ "rotate-90": h.value }, "transition-all"]),
2372
2402
  viewBox: "0 0 1024 1024",
2373
2403
  version: "1.1",
2374
2404
  xmlns: "http://www.w3.org/2000/svg",
2375
2405
  width: "12",
2376
2406
  height: "12"
2377
2407
  }, u[11] || (u[11] = [
2378
- P("path", { d: "M315.050667 938.666667a60.757333 60.757333 0 0 0 41.813333-16.298667L750.933333 551.338667a53.418667 53.418667 0 0 0 0-78.677334L356.864 101.632a61.696 61.696 0 0 0-83.541333 0 53.418667 53.418667 0 0 0-0.256 78.677333L625.408 512 273.066667 843.690667a53.418667 53.418667 0 0 0 0 78.677333 60.757333 60.757333 0 0 0 41.984 16.298667z" }, null, -1)
2408
+ M("path", { d: "M315.050667 938.666667a60.757333 60.757333 0 0 0 41.813333-16.298667L750.933333 551.338667a53.418667 53.418667 0 0 0 0-78.677334L356.864 101.632a61.696 61.696 0 0 0-83.541333 0 53.418667 53.418667 0 0 0-0.256 78.677333L625.408 512 273.066667 843.690667a53.418667 53.418667 0 0 0 0 78.677333 60.757333 60.757333 0 0 0 41.984 16.298667z" }, null, -1)
2379
2409
  ]), 2))
2380
2410
  ], 32)
2381
2411
  ], 34),
2382
- f.value ? (D(), R("div", hs, [
2383
- P("ul", us, [
2384
- (D(), R(ve, null, ke(mt, (w) => (D(), R(ve, {
2385
- key: w.command
2412
+ h.value ? (k(), K("div", Co, [
2413
+ M("ul", bo, [
2414
+ (k(), K(ye, null, ke(ft, (y) => (k(), K(ye, {
2415
+ key: y.command
2386
2416
  }, [
2387
- w.show ? (D(), R("li", {
2417
+ y.show ? (k(), K("li", {
2388
2418
  key: 0,
2389
- onClick: (J) => t(w),
2390
- class: V([{
2391
- "!bg-[var(--primary-color)] text-[#fff]": p.value === w.command
2419
+ onClick: (Y) => t(y),
2420
+ class: j([{
2421
+ "!bg-[var(--primary-color)] text-[#fff]": C.value === y.command
2392
2422
  // '!cursor-no-drop': currentCommand !== item.command && currentCommand !== 'default',
2393
2423
  }, "gap-[10px] text-[12px] hover:bg-[#ddd] transition-all rounded-[6px] p-[5px] flex flex-row items-center justify-between cursor-pointer"])
2394
2424
  }, [
2395
- P("div", gs, [
2396
- P("div", vs, [
2397
- P("img", {
2425
+ M("div", xo, [
2426
+ M("div", Ao, [
2427
+ M("img", {
2398
2428
  class: "size-[14px]",
2399
- src: w.src,
2429
+ src: y.src,
2400
2430
  alt: "",
2401
2431
  srcset: ""
2402
- }, null, 8, fs)
2432
+ }, null, 8, Lo)
2403
2433
  ]),
2404
- P("span", ys, de(w.name), 1)
2434
+ M("span", Mo, me(y.name), 1)
2405
2435
  ]),
2406
- p.value === w.command ? (D(), R("div", {
2407
- key: 0,
2408
- title: "取消命令(Esc)",
2409
- class: "active:scale-[0.7] transition-all flex items-center justify-center",
2410
- onClick: u[2] || (u[2] = (J) => (v(x).cancelCommand(), J.stopPropagation()))
2411
- }, u[13] || (u[13] = [
2412
- P("svg", {
2413
- fill: "#fff",
2414
- width: "16",
2415
- height: "16",
2416
- viewBox: "0 0 1024 1024",
2417
- version: "1.1",
2418
- xmlns: "http://www.w3.org/2000/svg"
2419
- }, [
2420
- P("path", { d: "M511.104 0C228.821333 0 0 228.821333 0 511.104c0 282.282667 228.821333 511.104 511.104 511.104 282.282667 0 511.104-228.842667 511.104-511.104C1022.208 228.821333 793.386667 0 511.104 0zM511.104 898.496c-213.973333 0-387.434667-173.44-387.434667-387.413333 0-213.952 173.44-387.413333 387.434667-387.413333 213.952 0 387.392 173.44 387.392 387.413333C898.496 725.056 725.056 898.496 511.104 898.496z" }),
2421
- P("path", { d: "M236.437333 463.914667l549.333333 0 0 96.874667-549.333333 0 0-96.874667Z" })
2422
- ], -1)
2423
- ]))) : w.shortcut ? (D(), R("div", ws, de(w.shortcut), 1)) : q("", !0)
2424
- ], 10, ps)) : q("", !0)
2436
+ C.value === y.command ? (k(), K("div", Io, [
2437
+ M("div", {
2438
+ title: "取消命令(Esc)",
2439
+ class: "active:scale-[0.7] transition-all flex items-center justify-center",
2440
+ onClick: u[2] || (u[2] = (Y) => (f(L).cancelCommand(), Y.stopPropagation()))
2441
+ }, u[13] || (u[13] = [
2442
+ M("svg", {
2443
+ fill: "#fff",
2444
+ width: "16",
2445
+ height: "16",
2446
+ viewBox: "0 0 1024 1024",
2447
+ version: "1.1",
2448
+ xmlns: "http://www.w3.org/2000/svg"
2449
+ }, [
2450
+ M("path", { d: "M511.104 0C228.821333 0 0 228.821333 0 511.104c0 282.282667 228.821333 511.104 511.104 511.104 282.282667 0 511.104-228.842667 511.104-511.104C1022.208 228.821333 793.386667 0 511.104 0zM511.104 898.496c-213.973333 0-387.434667-173.44-387.434667-387.413333 0-213.952 173.44-387.413333 387.434667-387.413333 213.952 0 387.392 173.44 387.392 387.413333C898.496 725.056 725.056 898.496 511.104 898.496z" }),
2451
+ M("path", { d: "M236.437333 463.914667l549.333333 0 0 96.874667-549.333333 0 0-96.874667Z" })
2452
+ ], -1)
2453
+ ])),
2454
+ y.confirm?.value ? (k(), K("div", {
2455
+ key: 0,
2456
+ onClick: s,
2457
+ title: "确认命令(Enter)",
2458
+ class: "active:scale-[0.7] transition-all flex items-center justify-center"
2459
+ }, u[14] || (u[14] = [
2460
+ M("svg", {
2461
+ fill: "#fff",
2462
+ width: "16",
2463
+ height: "16",
2464
+ viewBox: "0 0 1024 1024",
2465
+ version: "1.1",
2466
+ xmlns: "http://www.w3.org/2000/svg"
2467
+ }, [
2468
+ M("path", { d: "M512 1024c-281.6 0-512-230.4-512-512s230.4-512 512-512 512 230.4 512 512-230.4 512-512 512zM512 128C300.8 128 128 300.8 128 512s172.8 384 384 384 384-172.8 384-384-172.8-384-384-384z m-12.8 556.8c-12.8 12.8-32 19.2-51.2 19.2-19.2 0-38.4-6.4-51.2-19.2L275.2 569.6c-25.6-25.6-25.6-70.4 0-96 25.6-25.6 70.4-25.6 96 0L448 544l198.4-204.8c25.6-25.6 70.4-25.6 96 0 25.6 25.6 25.6 70.4 0 96l-243.2 249.6z" })
2469
+ ], -1)
2470
+ ]))) : H("", !0)
2471
+ ])) : y.shortcut ? (k(), K("div", ko, me(y.shortcut), 1)) : H("", !0)
2472
+ ], 10, Eo)) : H("", !0)
2425
2473
  ], 64))), 64))
2426
2474
  ]),
2427
- P("div", bs, [
2428
- F(v(Oe), {
2475
+ M("div", Do, [
2476
+ O(f(Qe), {
2429
2477
  size: "small",
2430
- modelValue: b.value,
2431
- "onUpdate:modelValue": u[3] || (u[3] = (w) => b.value = w),
2478
+ modelValue: X.value,
2479
+ "onUpdate:modelValue": u[3] || (u[3] = (y) => X.value = y),
2432
2480
  label: "快捷键提示"
2433
2481
  }, null, 8, ["modelValue"]),
2434
- F(v(Oe), {
2482
+ O(f(Qe), {
2435
2483
  size: "small",
2436
- modelValue: r.value,
2437
- "onUpdate:modelValue": u[4] || (u[4] = (w) => r.value = w),
2484
+ modelValue: i.value,
2485
+ "onUpdate:modelValue": u[4] || (u[4] = (y) => i.value = y),
2438
2486
  label: "dxf"
2439
2487
  }, null, 8, ["modelValue"])
2440
2488
  ]),
2441
- C.permission === "admin" ? (D(), R("div", xs, [
2442
- F(v(re), {
2489
+ b.permission === "admin" ? (k(), K("div", Po, [
2490
+ O(f(ce), {
2443
2491
  style: { padding: "5px", "font-size": "10px" },
2444
2492
  size: "small",
2445
2493
  type: "success",
2446
- onClick: s
2494
+ onClick: o
2447
2495
  }, {
2448
- default: j(() => u[14] || (u[14] = [
2449
- X(" 选择文件 ", -1)
2496
+ default: V(() => u[15] || (u[15] = [
2497
+ te(" 选择文件 ", -1)
2450
2498
  ])),
2451
2499
  _: 1,
2452
- __: [14]
2500
+ __: [15]
2453
2501
  }),
2454
- F(v(re), {
2502
+ O(f(ce), {
2455
2503
  style: { padding: "5px", "font-size": "10px" },
2456
2504
  size: "small",
2457
2505
  type: "primary",
2458
- onClick: u[5] || (u[5] = (w) => v(h).Dxf.downloadOriginalData("json.json"))
2506
+ onClick: u[5] || (u[5] = (y) => f(v).Dxf.downloadOriginalData("json.json"))
2459
2507
  }, {
2460
- default: j(() => u[15] || (u[15] = [
2461
- X(" 下载Json ", -1)
2508
+ default: V(() => u[16] || (u[16] = [
2509
+ te(" 下载Json ", -1)
2462
2510
  ])),
2463
2511
  _: 1,
2464
- __: [15]
2512
+ __: [16]
2465
2513
  }),
2466
- F(v(re), {
2514
+ O(f(ce), {
2467
2515
  style: { padding: "5px", "font-size": "10px" },
2468
2516
  size: "small",
2469
2517
  type: "primary",
2470
- onClick: u[6] || (u[6] = (w) => v(h).AngleCorrectionDxf.download("test.dxf"))
2518
+ onClick: u[6] || (u[6] = (y) => f(v).AngleCorrectionDxf.download("test.dxf"))
2471
2519
  }, {
2472
- default: j(() => u[16] || (u[16] = [
2473
- X(" 下载DXF ", -1)
2520
+ default: V(() => u[17] || (u[17] = [
2521
+ te(" 下载DXF ", -1)
2474
2522
  ])),
2475
2523
  _: 1,
2476
- __: [16]
2524
+ __: [17]
2477
2525
  }),
2478
- F(v(re), {
2526
+ O(f(ce), {
2479
2527
  style: { padding: "5px", "font-size": "10px" },
2480
2528
  size: "small",
2481
2529
  type: "primary",
2482
- onClick: u[7] || (u[7] = (w) => v(h).AngleCorrectionDxf.downloadImage("dxf.jpg"))
2530
+ onClick: u[7] || (u[7] = (y) => f(v).AngleCorrectionDxf.downloadImage("dxf.jpg"))
2483
2531
  }, {
2484
- default: j(() => u[17] || (u[17] = [
2485
- X(" 下载JPG ", -1)
2532
+ default: V(() => u[18] || (u[18] = [
2533
+ te(" 下载JPG ", -1)
2486
2534
  ])),
2487
2535
  _: 1,
2488
- __: [17]
2536
+ __: [18]
2489
2537
  }),
2490
- F(v(re), {
2538
+ O(f(ce), {
2491
2539
  style: { padding: "5px", "font-size": "10px" },
2492
2540
  size: "small",
2493
2541
  type: "primary",
2494
- onClick: u[8] || (u[8] = (w) => v(K).downloadGltf("test.glb", !0))
2542
+ onClick: u[8] || (u[8] = (y) => f($).downloadGltf("test.glb", !0))
2495
2543
  }, {
2496
- default: j(() => u[18] || (u[18] = [
2497
- X(" 下载白膜 ", -1)
2544
+ default: V(() => u[19] || (u[19] = [
2545
+ te(" 下载白膜 ", -1)
2498
2546
  ])),
2499
2547
  _: 1,
2500
- __: [18]
2548
+ __: [19]
2501
2549
  }),
2502
- F(v(re), {
2550
+ O(f(ce), {
2503
2551
  style: { padding: "5px", "font-size": "10px" },
2504
2552
  size: "small",
2505
2553
  type: "primary",
2506
- onClick: u[9] || (u[9] = (w) => v(Y).download())
2554
+ onClick: u[9] || (u[9] = (y) => f(ee).download())
2507
2555
  }, {
2508
- default: j(() => u[19] || (u[19] = [
2509
- X(" 下载三维家JSON ", -1)
2556
+ default: V(() => u[20] || (u[20] = [
2557
+ te(" 下载三维家JSON ", -1)
2510
2558
  ])),
2511
2559
  _: 1,
2512
- __: [19]
2560
+ __: [20]
2513
2561
  })
2514
- ])) : q("", !0),
2515
- F(xe, null, {
2516
- default: j(() => [
2517
- P("div", Cs, [
2518
- F(Vt, null, {
2519
- default: j(() => [
2520
- (D(), R(ve, null, ke(ht, (w) => P("div", {
2521
- onClick: (J) => w.show.value && p.value === "default" && (w.action ? w.action() : v(x).commandManager.start(w.command, [...v(I).selectLines])),
2522
- title: `${w.name}(${w.shortcut})`,
2523
- class: V(["size-[20px] flex justify-center items-center relative overflow-hidden active:scale-[0.8] border-1 border-[#ccc] rounded-[4px] transition-all cursor-pointer", {
2524
- "opacity-30 bg-[#ccc] !cursor-no-drop active:!scale-[1]": !w.show.value || p.value !== "default",
2525
- [w.class ?? ""]: !0
2562
+ ])) : H("", !0),
2563
+ O(xe, null, {
2564
+ default: V(() => [
2565
+ M("div", Bo, [
2566
+ O(qt, null, {
2567
+ default: V(() => [
2568
+ (k(), K(ye, null, ke(yt, (y) => M("div", {
2569
+ onClick: (Y) => y.show.value && C.value === "default" && (y.action ? y.action() : f(L).commandManager.start(y.command, [...f(B).selectLines])),
2570
+ title: `${y.name}(${y.shortcut})`,
2571
+ class: j(["size-[20px] flex justify-center items-center relative overflow-hidden active:scale-[0.8] border-1 border-[#ccc] rounded-[4px] transition-all cursor-pointer", {
2572
+ "opacity-30 bg-[#ccc] !cursor-no-drop active:!scale-[1]": !y.show.value || C.value !== "default",
2573
+ [y.class ?? ""]: !0
2526
2574
  }]),
2527
- key: w.command
2575
+ key: y.command
2528
2576
  }, [
2529
- P("img", {
2577
+ M("img", {
2530
2578
  class: "size-[14px]",
2531
- src: w.src
2532
- }, null, 8, Ls)
2533
- ], 10, Es)), 64))
2579
+ src: y.src
2580
+ }, null, 8, Fo)
2581
+ ], 10, So)), 64))
2534
2582
  ]),
2535
2583
  _: 1
2536
2584
  })
@@ -2538,19 +2586,19 @@ const ls = {
2538
2586
  ]),
2539
2587
  _: 1
2540
2588
  })
2541
- ])) : q("", !0)
2589
+ ])) : H("", !0)
2542
2590
  ], 38)
2543
2591
  ], 512));
2544
2592
  }
2545
- }), ks = (c, e) => {
2593
+ }), No = (c, e) => {
2546
2594
  const t = c.__vccOpts || c;
2547
- for (const [n, s] of e)
2548
- t[n] = s;
2595
+ for (const [n, o] of e)
2596
+ t[n] = o;
2549
2597
  return t;
2550
- }, Is = /* @__PURE__ */ ks(Ms, [["__scopeId", "data-v-7af257ba"]]);
2551
- let ct = class extends Ae {
2598
+ }, Ro = /* @__PURE__ */ No(Ko, [["__scopeId", "data-v-f28c0a81"]]);
2599
+ let gt = class extends Se {
2552
2600
  static name = "Editor";
2553
- container = new g.Group();
2601
+ container = new p.Group();
2554
2602
  get renderer() {
2555
2603
  return this.parent?.findComponentByName("Renderer");
2556
2604
  }
@@ -2572,8 +2620,8 @@ let ct = class extends Ae {
2572
2620
  get domContainer() {
2573
2621
  return this.parent?.findComponentByName("DomContainer");
2574
2622
  }
2575
- commandManager = new Ln();
2576
- plane = new g.Mesh(new g.PlaneGeometry(2e3, 2e3, 2, 2));
2623
+ commandManager = new Pn();
2624
+ plane = new p.Mesh(new p.PlaneGeometry(2e3, 2e3, 2, 2));
2577
2625
  app;
2578
2626
  domElement = document.createElement("div");
2579
2627
  viewPermission;
@@ -2596,26 +2644,26 @@ let ct = class extends Ae {
2596
2644
  }
2597
2645
  onAddFromParent(e) {
2598
2646
  setTimeout(() => this.openEdit(), 10);
2599
- const t = new g.GridHelper(200, 100, 6710886, 4473924);
2647
+ const t = new p.GridHelper(200, 100, 6710886, 4473924);
2600
2648
  t.rotation.x = Math.PI * 0.5, t.position.z = -0.01, this.container.add(t), this.container.add(this.plane), this.plane.visible = !1;
2601
2649
  const n = this.addEventListener("update", () => {
2602
2650
  this.domContainer.domElement.parentElement && (this.domContainer.domElement.parentElement.appendChild(this.domElement), this.domContainer.domElement.parentElement.appendChild(this.imgEl), n());
2603
2651
  });
2604
2652
  setTimeout(() => {
2605
- this.app = Gt(Is, { dxfSystem: this.parent, permission: this.viewPermission }), this.app.mount(this.domElement);
2653
+ this.app = Zt(Ro, { dxfSystem: this.parent, permission: this.viewPermission }), this.app.mount(this.domElement);
2606
2654
  }), e.AngleCorrectionDxf.addEventListener("lineOffset", async () => {
2607
2655
  this.imgEl.src && URL.revokeObjectURL(this.imgEl.src), setTimeout(async () => {
2608
2656
  this.imgEl.src = URL.createObjectURL(await e.AngleCorrectionDxf.toDxfImageBlob("Centimeters", "image/png", "transparent"));
2609
2657
  });
2610
- }), this.domEventRegister.addEventListener("mousedown", (s) => {
2611
- s.x < this.imgWidth + 10 && s.x > 10 && s.y < this.imgWidth && s.y > 10 && Object.assign(this.imgEl.style, {
2658
+ }), this.domEventRegister.addEventListener("mousedown", (o) => {
2659
+ o.x < this.imgWidth + 10 && o.x > 10 && o.y < this.imgWidth && o.y > 10 && Object.assign(this.imgEl.style, {
2612
2660
  width: `${Math.min(this.imgWidth * 10, this.renderer.width * 0.9)}px`,
2613
2661
  height: `${Math.min(this.imgWidth * 10, this.renderer.height * 0.9)}px`,
2614
2662
  background: "rgba(0,0,0,1)",
2615
2663
  zIndex: 100
2616
2664
  });
2617
- }), this.domEventRegister.addEventListener("mousemove", (s) => {
2618
- s.x < this.imgWidth + 10 && s.x > 10 && s.y < this.imgWidth && s.y > 10 || Object.assign(this.imgEl.style, {
2665
+ }), this.domEventRegister.addEventListener("mousemove", (o) => {
2666
+ o.x < this.imgWidth + 10 && o.x > 10 && o.y < this.imgWidth && o.y > 10 || Object.assign(this.imgEl.style, {
2619
2667
  width: `${this.imgWidth}px`,
2620
2668
  height: `${this.imgWidth}px`,
2621
2669
  background: "rgba(255,255,255,0.2)",
@@ -2631,27 +2679,27 @@ let ct = class extends Ae {
2631
2679
  type: "cancelCommand"
2632
2680
  });
2633
2681
  }
2634
- coords = new g.Vector2();
2635
- pointerPosition = new g.Vector2();
2682
+ coords = new p.Vector2();
2683
+ pointerPosition = new p.Vector2();
2636
2684
  _exitEditCallBack;
2637
2685
  /**
2638
2686
  * 打开编辑器
2639
2687
  */
2640
2688
  openEdit() {
2641
- const e = this.renderer, t = this.domEventRegister, n = this.dxf, s = e.orbitControls, o = e.camera, a = n.box.center, l = e.camera.position.clone(), r = s?.target?.clone(), i = new g.Vector2(), d = new g.Raycaster(), m = this.coords, y = this.pointerPosition;
2642
- this.container.position.z = n.originalZAverage, e.scene.add(this.container), s && (o.position.set(a.x, a.y, 15), s.target.set(a.x, a.y, 0), s.enableRotate = !1);
2643
- const f = () => {
2689
+ const e = this.renderer, t = this.domEventRegister, n = this.dxf, o = e.orbitControls, s = e.camera, a = n.box.center, d = e.camera.position.clone(), r = o?.target?.clone(), i = new p.Vector2(), l = new p.Raycaster(), m = this.coords, g = this.pointerPosition;
2690
+ this.container.position.z = n.originalZAverage, e.scene.add(this.container), o && (s.position.set(a.x, a.y, 15), o.target.set(a.x, a.y, 0), o.enableRotate = !1);
2691
+ const w = () => {
2644
2692
  e.renderer.getSize(i);
2645
- const p = t.pointer.x / i.x * 2 - 1, h = -(t.pointer.y / i.y * 2 - 1);
2646
- m.set(p, h), d.setFromCamera(m, e.camera.children.length ? e.camera.children[0] : e.camera);
2647
- const E = d.intersectObject(this.plane);
2648
- E.length && (y.copy(E[0].point), this.dispatchEvent({
2693
+ const h = t.pointer.x / i.x * 2 - 1, C = -(t.pointer.y / i.y * 2 - 1);
2694
+ m.set(h, C), l.setFromCamera(m, e.camera.children.length ? e.camera.children[0] : e.camera);
2695
+ const v = l.intersectObject(this.plane);
2696
+ v.length && (g.copy(v[0].point), this.dispatchEvent({
2649
2697
  type: "pointerPositionChange",
2650
- position: y
2698
+ position: g
2651
2699
  }));
2652
2700
  };
2653
- t.addEventListener("mousemove", f), this.commandManager.disabled = !1, this.commandManager.start("default"), this._exitEditCallBack = () => {
2654
- t.removeEventListener("mousemove", f), s && (o.position.copy(l), s.enableRotate = !0, s.target.copy(r));
2701
+ t.addEventListener("mousemove", w), this.commandManager.disabled = !1, this.commandManager.start("default"), this._exitEditCallBack = () => {
2702
+ t.removeEventListener("mousemove", w), o && (s.position.copy(d), o.enableRotate = !0, o.target.copy(r));
2655
2703
  };
2656
2704
  }
2657
2705
  /**
@@ -2664,30 +2712,30 @@ let ct = class extends Ae {
2664
2712
  this.commandManager.destroy(), super.destroy(), this.exitEdit(), this.renderer.scene.remove(this.container), this.domElement.remove(), this.app?.unmount();
2665
2713
  }
2666
2714
  };
2667
- class Ps extends O {
2715
+ class zo extends z {
2668
2716
  static name = "PointDrag";
2669
- container = new g.Group();
2717
+ container = new p.Group();
2670
2718
  interruptKeys = ["escape"];
2671
2719
  shortcutKeys = ["control", "p"];
2672
2720
  commandName = "point";
2673
2721
  onAddFromParent(e) {
2674
2722
  super.onAddFromParent(e), this.editor.container.add(this.container), this.container.position.z = 1e-3;
2675
- const t = this.commandManager.addCommandFlow(this.commandName).add(this.createInterrupt()).add(this.createCursor("crosshair")).add(this.selectPoint.bind(this)).add(this.drag.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
2723
+ const t = this.commandManager.addCommandFlow(this.commandName).add(this.createInterrupt()).add(this.createCursor("crosshair")).add(this.selectPoint.bind(this)).add(this.drag.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this)).setLoop(!0);
2676
2724
  t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(this.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => this.eventInput.isKeyCombination(this.commandName) && await this.commandManager.start(this.commandName)), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
2677
2725
  }
2678
2726
  /** 选择开始点
2679
2727
  * @param next
2680
2728
  */
2681
2729
  selectPoint(e) {
2682
- let t = null, n = this.renderer.createCircle(L.zero(), { color: 16711935 }), s = null;
2683
- const o = this.editor.addEventListener("pointerPositionChange", () => {
2684
- const { point: a, line: l, find: r, mode: i } = this.editor.renderManager.adsorption();
2685
- this.dispatchEvent({ type: "pointerMove", point: a }), r && i === "point" ? (this.domElement.style.cursor = "none", n.position.copy(a), s = l, t = a.clone(), this.container.add(n)) : (this.domElement.style.cursor = "no-drop", t = null, n.removeFromParent());
2730
+ let t = null, n = this.renderer.createCircle(A.zero(), { color: 16711935 }), o = null;
2731
+ const s = this.editor.addEventListener("pointerPositionChange", () => {
2732
+ const { point: a, line: d, find: r, mode: i } = this.editor.renderManager.adsorption();
2733
+ this.dispatchEvent({ type: "pointerMove", point: a }), r && i === "point" ? (this.domElement.style.cursor = "none", n.position.copy(a), o = d, t = a.clone(), this.container.add(n)) : (this.domElement.style.cursor = "no-drop", t = null, n.removeFromParent());
2686
2734
  });
2687
- this.addEventRecord("selectPointStart").add(o).add(this.eventInput.addEventListener("codeChange", () => {
2688
- this.eventInput.isKeyDown("mouse_0") && t && (this.canceEventRecord("selectPointStart"), n.material.color.set(65280), e({ point: t, line: s }));
2735
+ this.addEventRecord("selectPointStart").add(s).add(this.eventInput.addEventListener("codeChange", () => {
2736
+ this.eventInput.isKeyDown("mouse_0") && t && (this.canceEventRecord("selectPointStart"), n.material.color.set(65280), e({ point: t, line: o }));
2689
2737
  })), this.addEventRecord("clear").add(() => {
2690
- n.removeFromParent(), o();
2738
+ n.removeFromParent(), s();
2691
2739
  });
2692
2740
  }
2693
2741
  /** 拖拽点
@@ -2697,32 +2745,32 @@ class Ps extends O {
2697
2745
  */
2698
2746
  drag(e, { point: t, line: n }) {
2699
2747
  this.domElement.style.cursor = "crosshair";
2700
- const s = n.start.equal(L.from(t)) ? "start" : "end", o = s == "start" ? new g.Vector3(n.end.x, n.end.y, 0) : new g.Vector3(n.start.x, n.start.y, 0), a = t.clone(), l = new ye([o, a], 16711935), r = this.renderer.createCircle(L.zero(), { color: 16711935, size: 10 });
2701
- this.container.add(l), this.addEventRecord("clear").add(this.editor.addEventListener("pointerPositionChange", () => {
2702
- let { point: i, find: d } = this.editor.renderManager.adsorption(), m = "none";
2748
+ const o = n.start.equal(A.from(t)) ? "start" : "end", s = o == "start" ? new p.Vector3(n.end.x, n.end.y, 0) : new p.Vector3(n.start.x, n.start.y, 0), a = t.clone(), d = new Ce([s, a], 16711935), r = this.renderer.createCircle(A.zero(), { color: 16711935, size: 10 });
2749
+ this.container.add(d), this.addEventRecord("clear").add(this.editor.addEventListener("pointerPositionChange", () => {
2750
+ let { point: i, find: l } = this.editor.renderManager.adsorption(), m = "none";
2703
2751
  if (i) {
2704
2752
  if (this.dispatchEvent({ type: "pointerMove", point: i }), this.eventInput.isKeyDown("shift")) {
2705
- const y = n.projectPoint(L.from(i), !1);
2706
- i.set(y?.x ?? i.x, y?.y ?? i.y, 0), d = !0, m = "crosshair";
2753
+ const g = n.projectPoint(A.from(i), !1);
2754
+ i.set(g?.x ?? i.x, g?.y ?? i.y, 0), l = !0, m = "crosshair";
2707
2755
  }
2708
- d ? (r.position.copy(i), this.container.add(r)) : (r.removeFromParent(), m = "crosshair"), a.copy(i), l.setPoint(o, a), this.domElement.style.cursor = m;
2756
+ l ? (r.position.copy(i), this.container.add(r)) : (r.removeFromParent(), m = "crosshair"), a.copy(i), d.setPoint(s, a), this.domElement.style.cursor = m;
2709
2757
  }
2710
2758
  })).add(this.eventInput.addEventListener("codeChange", () => {
2711
- this.eventInput.isKeyDown("mouse_0") && (this.canceEventRecord("selectPointStart"), e({ point: a, oldPoint: s === "end" ? n.end.clone() : n.start.clone(), line: n, mode: s }));
2712
- })).add(() => r.removeFromParent()).add(() => l.removeFromParent());
2759
+ this.eventInput.isKeyDown("mouse_0") && (this.canceEventRecord("selectPointStart"), e({ point: a, oldPoint: o === "end" ? n.end.clone() : n.start.clone(), line: n, mode: o }));
2760
+ })).add(() => r.removeFromParent()).add(() => d.removeFromParent());
2713
2761
  }
2714
2762
  /** 执行完成
2715
2763
  */
2716
2764
  completed(e) {
2717
- const { line: t, point: n, mode: s } = e;
2718
- this.renderManager.removeLine(t), s === "end" ? t.end.set(n.x, n.y) : s === "start" && t.start.set(n.x, n.y), this.renderManager.addLine(t), this.renderManager.draw(), this.commandManager.currentName === this.commandName && setTimeout(() => this.commandManager.start(this.commandName));
2765
+ const { line: t, point: n, mode: o } = e;
2766
+ this.renderManager.removeLine(t), o === "end" ? t.end.set(n.x, n.y) : o === "start" && t.start.set(n.x, n.y), this.renderManager.addLine(t), this.renderManager.draw();
2719
2767
  }
2720
2768
  /** 回滚操作
2721
2769
  * @param data
2722
2770
  */
2723
2771
  rollback(e) {
2724
- const { line: t, oldPoint: n, mode: s } = e;
2725
- return s === "end" ? t.end.set(n.x, n.y) : s === "start" && t.start.set(n.x, n.y), this.renderManager.addLine(t), this.renderManager.draw(), e;
2772
+ const { line: t, oldPoint: n, mode: o } = e;
2773
+ return o === "end" ? t.end.set(n.x, n.y) : o === "start" && t.start.set(n.x, n.y), this.renderManager.addLine(t), this.renderManager.draw(), e;
2726
2774
  }
2727
2775
  /** 撤回回滚
2728
2776
  * @param lines
@@ -2732,15 +2780,15 @@ class Ps extends O {
2732
2780
  return this.completed(e), e;
2733
2781
  }
2734
2782
  }
2735
- function Je(c, e = {}) {
2736
- c.addComponent(new ct(e.viewPermission)), c.addComponent(new is()), c.addComponent(new dt()), c.addComponent(new Cn()), c.addComponent(new rs()), c.addComponent(new ds()), c.addComponent(new Ps()), c.addComponent(new ee()), c.addComponent(new $()), c.addComponent(new le()), c.addComponent(new te()), c.addComponent(new ne()), c.addComponent(new se()), c.addComponent(new oe()), c.addComponent(new ae()), c.addComponent(new ie()), c.addComponent(new lt());
2783
+ function Ye(c, e = {}) {
2784
+ c.addComponent(new gt(e.viewPermission)), c.addComponent(new po()), c.addComponent(new ht()), c.addComponent(new mt()), c.addComponent(new go()), c.addComponent(new vo()), c.addComponent(new zo()), c.addComponent(new oe()), c.addComponent(new ne()), c.addComponent(new he()), c.addComponent(new se()), c.addComponent(new ae()), c.addComponent(new ie()), c.addComponent(new re()), c.addComponent(new de()), c.addComponent(new le()), c.addComponent(new pt());
2737
2785
  }
2738
- const Os = Object.assign(Je, {
2786
+ const Uo = Object.assign(Ye, {
2739
2787
  create(c = {}) {
2740
- return (e) => Je(e, c);
2788
+ return (e) => Ye(e, c);
2741
2789
  }
2742
2790
  });
2743
2791
  export {
2744
- Os as Editor,
2745
- Je as Editor_
2792
+ Uo as Editor,
2793
+ Ye as Editor_
2746
2794
  };