build-dxf 0.0.36 → 0.0.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -1
- package/package.json +1 -1
- package/src/build.d.ts +2 -1
- package/src/build.js +2240 -2047
- package/src/index.css +1 -1
- package/src/index.js +7 -6
- package/src/index3.js +750 -740
- package/src/selectLocalFile.js +903 -880
- package/src/utils/DxfSystem/DxfSystem.d.ts +19 -0
- package/src/utils/DxfSystem/components/Dxf.d.ts +4 -138
- package/src/utils/DxfSystem/index.d.ts +2 -18
- package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/Default.d.ts +1 -1
- package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/DrawWindow.d.ts +1 -1
- package/src/utils/DxfSystem/plugin/Editor/components/CommandFlow/VerticalCorrection.d.ts +2 -2
- package/src/utils/DxfSystem/plugin/Editor/components/RenderManager.d.ts +3 -7
- package/src/utils/DxfSystem/plugin/Editor/index.d.ts +1 -1
- package/src/utils/DxfSystem/plugin/Editor/pages/EditorTool.vue.d.ts +1 -1
- package/src/utils/DxfSystem/plugin/ModelDataPlugin/index.d.ts +1 -1
- package/src/utils/DxfSystem/plugin/RenderPlugin/components/Renderer.d.ts +7 -0
- package/src/utils/DxfSystem/plugin/RenderPlugin/index.d.ts +1 -1
- package/src/utils/DxfSystem/type.d.ts +123 -0
- package/src/utils/DxfSystem/utils/AxisAlignCorr.d.ts +14 -0
- package/src/utils/DxfSystem/utils/BoundExt.d.ts +16 -0
- package/src/utils/DxfSystem/utils/findVerticalReference.d.ts +2 -0
- package/src/utils/DxfSystem/utils/index.d.ts +5 -0
- package/src/utils/DxfSystem/utils/lineDataToOriginalData.d.ts +7 -0
- package/src/utils/DxfSystem/utils/lineSegmentClipping.d.ts +8 -0
- package/src/utils/DxfSystem/utils/recomputedWindow.d.ts +7 -0
- package/src/utils/Quadtree/LineSegment.d.ts +13 -2
package/src/index3.js
CHANGED
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import { i as ut, n as pt, r as Ue, t as qe, c as
|
|
3
|
-
import { C as
|
|
1
|
+
import * as u from "three";
|
|
2
|
+
import { i as ut, n as pt, r as Ue, t as qe, c as Pe, d as gt, e as vt, f as De, g as Q, _ as Ze, u as ft, h as fe, j as Se, w as yt, k as wt, l as bt, p as xt, m as Ct, o as Et, T as Ne, q as Be, s as Mt, v as Lt, x as Re, y as Ie, z as Le, A as kt, B as It, L as ye, D as Pt, b as Oe, E as re, S as Dt } from "./selectLocalFile.js";
|
|
3
|
+
import { C as Ae, P as M, L as N, B as Ye, E as Xe, b as ze, Q as Fe, u as At, A as _t, r as Ke, W as St, T as Nt } from "./build.js";
|
|
4
4
|
import "clipper-lib";
|
|
5
5
|
import "dxf-writer";
|
|
6
6
|
import "three/addons/controls/OrbitControls.js";
|
|
7
|
-
import { watch as J, ref as S, defineComponent as me, computed as
|
|
8
|
-
function
|
|
7
|
+
import { watch as J, ref as S, 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 $e, createElementVNode as P, normalizeStyle as _e, createTextVNode as X, toDisplayString as de, vShow as et, shallowReactive as Bt, onMounted as tt, createBlock as ge, createCommentVNode as q, resolveDynamicComponent as Rt, Fragment as ve, withModifiers as Ot, nextTick as we, isVNode as nt, render as Te, toRaw as zt, onUnmounted as Ft, renderList as ke, createStaticVNode as Kt, TransitionGroup as Tt, createApp as jt } from "vue";
|
|
8
|
+
function ot(d) {
|
|
9
9
|
var e;
|
|
10
|
-
const t = Ue(
|
|
10
|
+
const t = Ue(d);
|
|
11
11
|
return (e = t?.$el) != null ? e : t;
|
|
12
12
|
}
|
|
13
|
-
const
|
|
14
|
-
function
|
|
15
|
-
let e, t, n,
|
|
16
|
-
if (ut(
|
|
13
|
+
const st = Pe ? window : void 0;
|
|
14
|
+
function Vt(...d) {
|
|
15
|
+
let e, t, n, o;
|
|
16
|
+
if (ut(d[0]) || Array.isArray(d[0]) ? ([t, n, o] = d, e = st) : [e, t, n, o] = d, !e)
|
|
17
17
|
return pt;
|
|
18
18
|
Array.isArray(t) || (t = [t]), Array.isArray(n) || (n = [n]);
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
},
|
|
22
|
-
a(),
|
|
19
|
+
const s = [], a = () => {
|
|
20
|
+
s.forEach((c) => c()), s.length = 0;
|
|
21
|
+
}, l = (c, m, y, f) => (c.addEventListener(m, y, f), () => c.removeEventListener(m, y, f)), r = J(() => [ot(e), Ue(o)], ([c, m]) => {
|
|
22
|
+
a(), c && s.push(...t.flatMap((y) => n.map((f) => l(c, y, f, m))));
|
|
23
23
|
}, { immediate: !0, flush: "post" }), i = () => {
|
|
24
|
-
|
|
24
|
+
r(), a();
|
|
25
25
|
};
|
|
26
26
|
return qe(i), i;
|
|
27
27
|
}
|
|
28
|
-
function
|
|
29
|
-
const t = S(), n = () => t.value = !!
|
|
28
|
+
function Gt(d, e = !1) {
|
|
29
|
+
const t = S(), n = () => t.value = !!d();
|
|
30
30
|
return n(), gt(n, e), t;
|
|
31
31
|
}
|
|
32
32
|
const je = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, Ve = "__vueuse_ssr_handlers__";
|
|
33
33
|
je[Ve] = je[Ve] || {};
|
|
34
|
-
var Ge = Object.getOwnPropertySymbols,
|
|
34
|
+
var Ge = Object.getOwnPropertySymbols, Qt = Object.prototype.hasOwnProperty, Ht = Object.prototype.propertyIsEnumerable, Wt = (d, e) => {
|
|
35
35
|
var t = {};
|
|
36
|
-
for (var n in
|
|
37
|
-
|
|
38
|
-
if (
|
|
39
|
-
for (var n of Ge(
|
|
40
|
-
e.indexOf(n) < 0 &&
|
|
36
|
+
for (var n in d)
|
|
37
|
+
Qt.call(d, n) && e.indexOf(n) < 0 && (t[n] = d[n]);
|
|
38
|
+
if (d != null && Ge)
|
|
39
|
+
for (var n of Ge(d))
|
|
40
|
+
e.indexOf(n) < 0 && Ht.call(d, n) && (t[n] = d[n]);
|
|
41
41
|
return t;
|
|
42
42
|
};
|
|
43
|
-
function
|
|
44
|
-
const n = t, { window:
|
|
43
|
+
function Jt(d, e, t = {}) {
|
|
44
|
+
const n = t, { window: o = st } = n, s = Wt(n, ["window"]);
|
|
45
45
|
let a;
|
|
46
|
-
const
|
|
46
|
+
const l = Gt(() => o && "ResizeObserver" in o), r = () => {
|
|
47
47
|
a && (a.disconnect(), a = void 0);
|
|
48
|
-
}, i = J(() =>
|
|
49
|
-
|
|
50
|
-
}, { immediate: !0, flush: "post" }),
|
|
51
|
-
|
|
48
|
+
}, i = J(() => ot(d), (m) => {
|
|
49
|
+
r(), l.value && o && m && (a = new ResizeObserver(e), a.observe(m, s));
|
|
50
|
+
}, { immediate: !0, flush: "post" }), c = () => {
|
|
51
|
+
r(), i();
|
|
52
52
|
};
|
|
53
|
-
return qe(
|
|
54
|
-
isSupported:
|
|
55
|
-
stop:
|
|
53
|
+
return qe(c), {
|
|
54
|
+
isSupported: l,
|
|
55
|
+
stop: c
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
58
|
var Qe;
|
|
59
|
-
(function(
|
|
60
|
-
|
|
59
|
+
(function(d) {
|
|
60
|
+
d.UP = "UP", d.RIGHT = "RIGHT", d.DOWN = "DOWN", d.LEFT = "LEFT", d.NONE = "NONE";
|
|
61
61
|
})(Qe || (Qe = {}));
|
|
62
|
-
var
|
|
62
|
+
var Ut = Object.defineProperty, He = Object.getOwnPropertySymbols, qt = Object.prototype.hasOwnProperty, Zt = Object.prototype.propertyIsEnumerable, We = (d, e, t) => e in d ? Ut(d, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : d[e] = t, Yt = (d, e) => {
|
|
63
63
|
for (var t in e || (e = {}))
|
|
64
|
-
|
|
64
|
+
qt.call(e, t) && We(d, t, e[t]);
|
|
65
65
|
if (He)
|
|
66
66
|
for (var t of He(e))
|
|
67
|
-
|
|
68
|
-
return
|
|
67
|
+
Zt.call(e, t) && We(d, t, e[t]);
|
|
68
|
+
return d;
|
|
69
69
|
};
|
|
70
|
-
const
|
|
70
|
+
const Xt = {
|
|
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 Yt = {
|
|
|
93
93
|
easeOutBack: [0.34, 1.56, 0.64, 1],
|
|
94
94
|
easeInOutBack: [0.68, -0.6, 0.32, 1.6]
|
|
95
95
|
};
|
|
96
|
-
|
|
96
|
+
Yt({
|
|
97
97
|
linear: vt
|
|
98
|
-
},
|
|
99
|
-
const
|
|
98
|
+
}, Xt);
|
|
99
|
+
const $t = (d) => d, en = {
|
|
100
100
|
esc: "Escape"
|
|
101
|
-
},
|
|
101
|
+
}, tn = De({
|
|
102
102
|
value: {
|
|
103
103
|
type: [String, Number],
|
|
104
104
|
default: ""
|
|
@@ -129,35 +129,35 @@ const Xt = (l) => l, $t = {
|
|
|
129
129
|
badgeClass: {
|
|
130
130
|
type: String
|
|
131
131
|
}
|
|
132
|
-
}),
|
|
132
|
+
}), nn = me({
|
|
133
133
|
name: "ElBadge"
|
|
134
|
-
}),
|
|
135
|
-
...
|
|
136
|
-
props:
|
|
137
|
-
setup(
|
|
138
|
-
const t =
|
|
139
|
-
var a,
|
|
134
|
+
}), on = /* @__PURE__ */ me({
|
|
135
|
+
...nn,
|
|
136
|
+
props: tn,
|
|
137
|
+
setup(d, { expose: e }) {
|
|
138
|
+
const t = d, n = ft("badge"), o = A(() => t.isDot ? "" : fe(t.value) && fe(t.max) ? t.max < t.value ? `${t.max}+` : `${t.value}` : `${t.value}`), s = A(() => {
|
|
139
|
+
var a, l, r, i, c;
|
|
140
140
|
return [
|
|
141
141
|
{
|
|
142
142
|
backgroundColor: t.color,
|
|
143
|
-
marginRight:
|
|
144
|
-
marginTop:
|
|
143
|
+
marginRight: Se(-((l = (a = t.offset) == null ? void 0 : a[0]) != null ? l : 0)),
|
|
144
|
+
marginTop: Se((i = (r = t.offset) == null ? void 0 : r[1]) != null ? i : 0)
|
|
145
145
|
},
|
|
146
|
-
(
|
|
146
|
+
(c = t.badgeStyle) != null ? c : {}
|
|
147
147
|
];
|
|
148
148
|
});
|
|
149
149
|
return e({
|
|
150
|
-
content:
|
|
151
|
-
}), (a,
|
|
150
|
+
content: o
|
|
151
|
+
}), (a, l) => (D(), R("div", {
|
|
152
152
|
class: V(v(n).b())
|
|
153
153
|
}, [
|
|
154
154
|
be(a.$slots, "default"),
|
|
155
|
-
|
|
155
|
+
F(xe, {
|
|
156
156
|
name: `${v(n).namespace.value}-zoom-in-center`,
|
|
157
157
|
persisted: ""
|
|
158
158
|
}, {
|
|
159
159
|
default: j(() => [
|
|
160
|
-
$e(
|
|
160
|
+
$e(P("sup", {
|
|
161
161
|
class: V([
|
|
162
162
|
v(n).e("content"),
|
|
163
163
|
v(n).em("content", a.type),
|
|
@@ -166,13 +166,13 @@ const Xt = (l) => l, $t = {
|
|
|
166
166
|
v(n).is("hide-zero", !a.showZero && t.value === 0),
|
|
167
167
|
a.badgeClass
|
|
168
168
|
]),
|
|
169
|
-
style: _e(v(
|
|
169
|
+
style: _e(v(s))
|
|
170
170
|
}, [
|
|
171
|
-
be(a.$slots, "content", { value: v(
|
|
172
|
-
X(de(v(
|
|
171
|
+
be(a.$slots, "content", { value: v(o) }, () => [
|
|
172
|
+
X(de(v(o)), 1)
|
|
173
173
|
])
|
|
174
174
|
], 6), [
|
|
175
|
-
[et, !a.hidden && (v(
|
|
175
|
+
[et, !a.hidden && (v(o) || a.isDot || a.$slots.content)]
|
|
176
176
|
])
|
|
177
177
|
]),
|
|
178
178
|
_: 3
|
|
@@ -180,8 +180,8 @@ const Xt = (l) => l, $t = {
|
|
|
180
180
|
], 2));
|
|
181
181
|
}
|
|
182
182
|
});
|
|
183
|
-
var sn = /* @__PURE__ */ Ze(
|
|
184
|
-
const
|
|
183
|
+
var sn = /* @__PURE__ */ Ze(on, [["__file", "badge.vue"]]);
|
|
184
|
+
const an = yt(sn), rn = De({
|
|
185
185
|
a11y: {
|
|
186
186
|
type: Boolean,
|
|
187
187
|
default: !0
|
|
@@ -217,16 +217,16 @@ const on = wt(sn), an = Ae({
|
|
|
217
217
|
type: String,
|
|
218
218
|
default: "el"
|
|
219
219
|
},
|
|
220
|
-
...
|
|
220
|
+
...wt
|
|
221
221
|
}), T = {};
|
|
222
222
|
me({
|
|
223
223
|
name: "ElConfigProvider",
|
|
224
|
-
props:
|
|
225
|
-
setup(
|
|
226
|
-
const t = xt(
|
|
227
|
-
return J(() =>
|
|
228
|
-
var
|
|
229
|
-
Object.assign(T, (
|
|
224
|
+
props: rn,
|
|
225
|
+
setup(d, { slots: e }) {
|
|
226
|
+
const t = xt(d);
|
|
227
|
+
return J(() => d.message, (n) => {
|
|
228
|
+
var o, s;
|
|
229
|
+
Object.assign(T, (s = (o = t?.value) == null ? void 0 : o.message) != null ? s : {}, n ?? {});
|
|
230
230
|
}, { immediate: !0, deep: !0 }), () => be(e, "default", { config: t?.value });
|
|
231
231
|
}
|
|
232
232
|
});
|
|
@@ -236,7 +236,7 @@ const at = [
|
|
|
236
236
|
"info",
|
|
237
237
|
"warning",
|
|
238
238
|
"error"
|
|
239
|
-
],
|
|
239
|
+
], B = $t({
|
|
240
240
|
customClass: "",
|
|
241
241
|
dangerouslyUseHTMLString: !1,
|
|
242
242
|
duration: 3e3,
|
|
@@ -251,27 +251,27 @@ const at = [
|
|
|
251
251
|
zIndex: 0,
|
|
252
252
|
grouping: !1,
|
|
253
253
|
repeatNum: 1,
|
|
254
|
-
appendTo:
|
|
255
|
-
}),
|
|
254
|
+
appendTo: Pe ? document.body : void 0
|
|
255
|
+
}), dn = De({
|
|
256
256
|
customClass: {
|
|
257
257
|
type: String,
|
|
258
|
-
default:
|
|
258
|
+
default: B.customClass
|
|
259
259
|
},
|
|
260
260
|
dangerouslyUseHTMLString: {
|
|
261
261
|
type: Boolean,
|
|
262
|
-
default:
|
|
262
|
+
default: B.dangerouslyUseHTMLString
|
|
263
263
|
},
|
|
264
264
|
duration: {
|
|
265
265
|
type: Number,
|
|
266
|
-
default:
|
|
266
|
+
default: B.duration
|
|
267
267
|
},
|
|
268
268
|
icon: {
|
|
269
269
|
type: Ct,
|
|
270
|
-
default:
|
|
270
|
+
default: B.icon
|
|
271
271
|
},
|
|
272
272
|
id: {
|
|
273
273
|
type: String,
|
|
274
|
-
default:
|
|
274
|
+
default: B.id
|
|
275
275
|
},
|
|
276
276
|
message: {
|
|
277
277
|
type: Q([
|
|
@@ -279,105 +279,105 @@ const at = [
|
|
|
279
279
|
Object,
|
|
280
280
|
Function
|
|
281
281
|
]),
|
|
282
|
-
default:
|
|
282
|
+
default: B.message
|
|
283
283
|
},
|
|
284
284
|
onClose: {
|
|
285
285
|
type: Q(Function),
|
|
286
|
-
default:
|
|
286
|
+
default: B.onClose
|
|
287
287
|
},
|
|
288
288
|
showClose: {
|
|
289
289
|
type: Boolean,
|
|
290
|
-
default:
|
|
290
|
+
default: B.showClose
|
|
291
291
|
},
|
|
292
292
|
type: {
|
|
293
293
|
type: String,
|
|
294
294
|
values: at,
|
|
295
|
-
default:
|
|
295
|
+
default: B.type
|
|
296
296
|
},
|
|
297
297
|
plain: {
|
|
298
298
|
type: Boolean,
|
|
299
|
-
default:
|
|
299
|
+
default: B.plain
|
|
300
300
|
},
|
|
301
301
|
offset: {
|
|
302
302
|
type: Number,
|
|
303
|
-
default:
|
|
303
|
+
default: B.offset
|
|
304
304
|
},
|
|
305
305
|
zIndex: {
|
|
306
306
|
type: Number,
|
|
307
|
-
default:
|
|
307
|
+
default: B.zIndex
|
|
308
308
|
},
|
|
309
309
|
grouping: {
|
|
310
310
|
type: Boolean,
|
|
311
|
-
default:
|
|
311
|
+
default: B.grouping
|
|
312
312
|
},
|
|
313
313
|
repeatNum: {
|
|
314
314
|
type: Number,
|
|
315
|
-
default:
|
|
315
|
+
default: B.repeatNum
|
|
316
316
|
}
|
|
317
|
-
}),
|
|
317
|
+
}), ln = {
|
|
318
318
|
destroy: () => !0
|
|
319
|
-
}, H = Bt([]),
|
|
320
|
-
const e = H.findIndex((
|
|
319
|
+
}, H = Bt([]), cn = (d) => {
|
|
320
|
+
const e = H.findIndex((o) => o.id === d), t = H[e];
|
|
321
321
|
let n;
|
|
322
322
|
return e > 0 && (n = H[e - 1]), { current: t, prev: n };
|
|
323
|
-
},
|
|
324
|
-
const { prev: e } =
|
|
323
|
+
}, mn = (d) => {
|
|
324
|
+
const { prev: e } = cn(d);
|
|
325
325
|
return e ? e.vm.exposed.bottom.value : 0;
|
|
326
|
-
},
|
|
326
|
+
}, hn = (d, e) => H.findIndex((n) => n.id === d) > 0 ? 16 : e, un = me({
|
|
327
327
|
name: "ElMessage"
|
|
328
|
-
}),
|
|
329
|
-
...
|
|
330
|
-
props:
|
|
331
|
-
emits:
|
|
332
|
-
setup(
|
|
333
|
-
const n =
|
|
328
|
+
}), pn = /* @__PURE__ */ me({
|
|
329
|
+
...un,
|
|
330
|
+
props: dn,
|
|
331
|
+
emits: ln,
|
|
332
|
+
setup(d, { expose: e, emit: t }) {
|
|
333
|
+
const n = d, { Close: o } = Mt, s = S(!1), { ns: a, zIndex: l } = Et("message"), { currentZIndex: r, nextZIndex: i } = l, c = S(), m = S(!1), y = S(0);
|
|
334
334
|
let f;
|
|
335
|
-
const
|
|
335
|
+
const g = A(() => n.type ? n.type === "error" ? "danger" : n.type : "info"), h = A(() => {
|
|
336
336
|
const b = n.type;
|
|
337
337
|
return { [a.bm("icon", b)]: b && Ne[b] };
|
|
338
|
-
}), E =
|
|
339
|
-
top: `${
|
|
340
|
-
zIndex:
|
|
338
|
+
}), E = A(() => n.icon || Ne[n.type] || ""), x = A(() => mn(n.id)), I = A(() => hn(n.id, n.offset) + x.value), K = A(() => y.value + I.value), Y = A(() => ({
|
|
339
|
+
top: `${I.value}px`,
|
|
340
|
+
zIndex: r.value
|
|
341
341
|
}));
|
|
342
342
|
function Z() {
|
|
343
343
|
n.duration !== 0 && ({ stop: f } = Lt(() => {
|
|
344
|
-
|
|
344
|
+
_();
|
|
345
345
|
}, n.duration));
|
|
346
346
|
}
|
|
347
347
|
function G() {
|
|
348
348
|
f?.();
|
|
349
349
|
}
|
|
350
|
-
function
|
|
351
|
-
|
|
350
|
+
function _() {
|
|
351
|
+
m.value = !1, we(() => {
|
|
352
352
|
var b;
|
|
353
|
-
|
|
353
|
+
s.value || ((b = n.onClose) == null || b.call(n), t("destroy"));
|
|
354
354
|
});
|
|
355
355
|
}
|
|
356
|
-
function
|
|
357
|
-
b ===
|
|
356
|
+
function L({ code: b }) {
|
|
357
|
+
b === en.esc && _();
|
|
358
358
|
}
|
|
359
359
|
return tt(() => {
|
|
360
|
-
Z(), i(),
|
|
360
|
+
Z(), i(), m.value = !0;
|
|
361
361
|
}), J(() => n.repeatNum, () => {
|
|
362
362
|
G(), Z();
|
|
363
|
-
}),
|
|
364
|
-
y.value =
|
|
363
|
+
}), Vt(document, "keydown", L), Jt(c, () => {
|
|
364
|
+
y.value = c.value.getBoundingClientRect().height;
|
|
365
365
|
}), e({
|
|
366
|
-
visible:
|
|
367
|
-
bottom:
|
|
368
|
-
close:
|
|
369
|
-
}), (b,
|
|
366
|
+
visible: m,
|
|
367
|
+
bottom: K,
|
|
368
|
+
close: _
|
|
369
|
+
}), (b, z) => (D(), ge(xe, {
|
|
370
370
|
name: v(a).b("fade"),
|
|
371
|
-
onBeforeEnter: (W) =>
|
|
371
|
+
onBeforeEnter: (W) => s.value = !0,
|
|
372
372
|
onBeforeLeave: b.onClose,
|
|
373
373
|
onAfterLeave: (W) => b.$emit("destroy"),
|
|
374
374
|
persisted: ""
|
|
375
375
|
}, {
|
|
376
376
|
default: j(() => [
|
|
377
|
-
$e(
|
|
377
|
+
$e(P("div", {
|
|
378
378
|
id: b.id,
|
|
379
379
|
ref_key: "messageRef",
|
|
380
|
-
ref:
|
|
380
|
+
ref: c,
|
|
381
381
|
class: V([
|
|
382
382
|
v(a).b(),
|
|
383
383
|
{ [v(a).m(b.type)]: b.type },
|
|
@@ -390,132 +390,132 @@ const at = [
|
|
|
390
390
|
onMouseenter: G,
|
|
391
391
|
onMouseleave: Z
|
|
392
392
|
}, [
|
|
393
|
-
b.repeatNum > 1 ? (
|
|
393
|
+
b.repeatNum > 1 ? (D(), ge(v(an), {
|
|
394
394
|
key: 0,
|
|
395
395
|
value: b.repeatNum,
|
|
396
|
-
type: v(
|
|
396
|
+
type: v(g),
|
|
397
397
|
class: V(v(a).e("badge"))
|
|
398
398
|
}, null, 8, ["value", "type", "class"])) : q("v-if", !0),
|
|
399
|
-
v(E) ? (
|
|
399
|
+
v(E) ? (D(), ge(v(Be), {
|
|
400
400
|
key: 1,
|
|
401
|
-
class: V([v(a).e("icon"), v(
|
|
401
|
+
class: V([v(a).e("icon"), v(h)])
|
|
402
402
|
}, {
|
|
403
403
|
default: j(() => [
|
|
404
|
-
(
|
|
404
|
+
(D(), ge(Rt(v(E))))
|
|
405
405
|
]),
|
|
406
406
|
_: 1
|
|
407
407
|
}, 8, ["class"])) : q("v-if", !0),
|
|
408
408
|
be(b.$slots, "default", {}, () => [
|
|
409
|
-
b.dangerouslyUseHTMLString ? (
|
|
409
|
+
b.dangerouslyUseHTMLString ? (D(), R(ve, { key: 1 }, [
|
|
410
410
|
q(" Caution here, message could've been compromised, never use user's input as message "),
|
|
411
|
-
|
|
411
|
+
P("p", {
|
|
412
412
|
class: V(v(a).e("content")),
|
|
413
413
|
innerHTML: b.message
|
|
414
414
|
}, null, 10, ["innerHTML"])
|
|
415
|
-
], 2112)) : (
|
|
415
|
+
], 2112)) : (D(), R("p", {
|
|
416
416
|
key: 0,
|
|
417
417
|
class: V(v(a).e("content"))
|
|
418
418
|
}, de(b.message), 3))
|
|
419
419
|
]),
|
|
420
|
-
b.showClose ? (
|
|
420
|
+
b.showClose ? (D(), ge(v(Be), {
|
|
421
421
|
key: 2,
|
|
422
422
|
class: V(v(a).e("closeBtn")),
|
|
423
|
-
onClick:
|
|
423
|
+
onClick: Ot(_, ["stop"])
|
|
424
424
|
}, {
|
|
425
425
|
default: j(() => [
|
|
426
|
-
|
|
426
|
+
F(v(o))
|
|
427
427
|
]),
|
|
428
428
|
_: 1
|
|
429
429
|
}, 8, ["class", "onClick"])) : q("v-if", !0)
|
|
430
430
|
], 46, ["id"]), [
|
|
431
|
-
[et,
|
|
431
|
+
[et, m.value]
|
|
432
432
|
])
|
|
433
433
|
]),
|
|
434
434
|
_: 3
|
|
435
435
|
}, 8, ["name", "onBeforeEnter", "onBeforeLeave", "onAfterLeave"]));
|
|
436
436
|
}
|
|
437
437
|
});
|
|
438
|
-
var
|
|
439
|
-
let
|
|
440
|
-
const it = (
|
|
441
|
-
const e = !
|
|
442
|
-
...
|
|
438
|
+
var gn = /* @__PURE__ */ Ze(pn, [["__file", "message.vue"]]);
|
|
439
|
+
let vn = 1;
|
|
440
|
+
const it = (d) => {
|
|
441
|
+
const e = !d || Re(d) || nt(d) || Ie(d) ? { message: d } : d, t = {
|
|
442
|
+
...B,
|
|
443
443
|
...e
|
|
444
444
|
};
|
|
445
445
|
if (!t.appendTo)
|
|
446
446
|
t.appendTo = document.body;
|
|
447
|
-
else if (
|
|
447
|
+
else if (Re(t.appendTo)) {
|
|
448
448
|
let n = document.querySelector(t.appendTo);
|
|
449
449
|
kt(n) || (n = document.body), t.appendTo = n;
|
|
450
450
|
}
|
|
451
451
|
return Le(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), Le(T.showClose) && !t.showClose && (t.showClose = T.showClose), Le(T.plain) && !t.plain && (t.plain = T.plain), t;
|
|
452
|
-
},
|
|
453
|
-
const e = H.indexOf(
|
|
452
|
+
}, fn = (d) => {
|
|
453
|
+
const e = H.indexOf(d);
|
|
454
454
|
if (e === -1)
|
|
455
455
|
return;
|
|
456
456
|
H.splice(e, 1);
|
|
457
|
-
const { handler: t } =
|
|
457
|
+
const { handler: t } = d;
|
|
458
458
|
t.close();
|
|
459
|
-
},
|
|
460
|
-
const n = `message_${
|
|
459
|
+
}, yn = ({ appendTo: d, ...e }, t) => {
|
|
460
|
+
const n = `message_${vn++}`, o = e.onClose, s = document.createElement("div"), a = {
|
|
461
461
|
...e,
|
|
462
462
|
id: n,
|
|
463
463
|
onClose: () => {
|
|
464
|
-
|
|
464
|
+
o?.(), fn(c);
|
|
465
465
|
},
|
|
466
466
|
onDestroy: () => {
|
|
467
|
-
Te(null,
|
|
467
|
+
Te(null, s);
|
|
468
468
|
}
|
|
469
|
-
},
|
|
470
|
-
default:
|
|
469
|
+
}, l = F(gn, a, Ie(a.message) || nt(a.message) ? {
|
|
470
|
+
default: Ie(a.message) ? a.message : () => a.message
|
|
471
471
|
} : null);
|
|
472
|
-
|
|
473
|
-
const
|
|
472
|
+
l.appContext = t || ce._context, Te(l, s), d.appendChild(s.firstElementChild);
|
|
473
|
+
const r = l.component, c = {
|
|
474
474
|
id: n,
|
|
475
|
-
vnode:
|
|
476
|
-
vm:
|
|
475
|
+
vnode: l,
|
|
476
|
+
vm: r,
|
|
477
477
|
handler: {
|
|
478
478
|
close: () => {
|
|
479
|
-
|
|
479
|
+
r.exposed.close();
|
|
480
480
|
}
|
|
481
481
|
},
|
|
482
|
-
props:
|
|
482
|
+
props: l.component.props
|
|
483
483
|
};
|
|
484
|
-
return
|
|
485
|
-
}, ce = (
|
|
486
|
-
if (!
|
|
484
|
+
return c;
|
|
485
|
+
}, ce = (d = {}, e) => {
|
|
486
|
+
if (!Pe)
|
|
487
487
|
return { close: () => {
|
|
488
488
|
} };
|
|
489
|
-
const t = it(
|
|
489
|
+
const t = it(d);
|
|
490
490
|
if (t.grouping && H.length) {
|
|
491
|
-
const
|
|
491
|
+
const o = H.find(({ vnode: s }) => {
|
|
492
492
|
var a;
|
|
493
|
-
return ((a =
|
|
493
|
+
return ((a = s.props) == null ? void 0 : a.message) === t.message;
|
|
494
494
|
});
|
|
495
|
-
if (
|
|
496
|
-
return
|
|
495
|
+
if (o)
|
|
496
|
+
return o.props.repeatNum += 1, o.props.type = t.type, o.handler;
|
|
497
497
|
}
|
|
498
498
|
if (fe(T.max) && H.length >= T.max)
|
|
499
499
|
return { close: () => {
|
|
500
500
|
} };
|
|
501
|
-
const n =
|
|
501
|
+
const n = yn(t, e);
|
|
502
502
|
return H.push(n), n.handler;
|
|
503
503
|
};
|
|
504
|
-
at.forEach((
|
|
505
|
-
ce[
|
|
504
|
+
at.forEach((d) => {
|
|
505
|
+
ce[d] = (e = {}, t) => {
|
|
506
506
|
const n = it(e);
|
|
507
|
-
return ce({ ...n, type:
|
|
507
|
+
return ce({ ...n, type: d }, t);
|
|
508
508
|
};
|
|
509
509
|
});
|
|
510
|
-
function wn(
|
|
510
|
+
function wn(d) {
|
|
511
511
|
const e = [...H];
|
|
512
512
|
for (const t of e)
|
|
513
|
-
(!
|
|
513
|
+
(!d || d === t.props.type) && t.handler.close();
|
|
514
514
|
}
|
|
515
515
|
ce.closeAll = wn;
|
|
516
516
|
ce._context = null;
|
|
517
|
-
const
|
|
518
|
-
class O extends
|
|
517
|
+
const k = It(ce, "$message");
|
|
518
|
+
class O extends Ae {
|
|
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 Se {
|
|
|
582
582
|
*/
|
|
583
583
|
createCursor(e) {
|
|
584
584
|
return (t, n) => {
|
|
585
|
-
const
|
|
585
|
+
const o = this.domElement.style.cursor;
|
|
586
586
|
this.domElement.style.cursor = e, this.addEventRecord("clear", () => {
|
|
587
|
-
this.domElement.style.cursor =
|
|
587
|
+
this.domElement.style.cursor = o ?? "default";
|
|
588
588
|
}), t(n);
|
|
589
589
|
};
|
|
590
590
|
}
|
|
@@ -603,40 +603,40 @@ class O extends Se {
|
|
|
603
603
|
* @returns
|
|
604
604
|
*/
|
|
605
605
|
createPointerMove(e) {
|
|
606
|
-
const t = this.editor, n = new
|
|
607
|
-
let
|
|
608
|
-
const
|
|
609
|
-
const
|
|
610
|
-
if (
|
|
611
|
-
const i = Math.abs(
|
|
612
|
-
i >
|
|
613
|
-
} else if (
|
|
614
|
-
const i =
|
|
615
|
-
i &&
|
|
606
|
+
const t = this.editor, n = new M();
|
|
607
|
+
let o = null, s = null, a = null;
|
|
608
|
+
const l = t.addEventListener("pointerPositionChange", () => {
|
|
609
|
+
const r = M.from(t.pointerPosition);
|
|
610
|
+
if (o && t.eventInput.isKeyDown("shift")) {
|
|
611
|
+
const i = Math.abs(r.x - o.x), c = Math.abs(r.y - o.y);
|
|
612
|
+
i > c ? 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), c = a.projectPoint(r, !1);
|
|
615
|
+
i && c ? r.distance(i) < r.distance(c) ? n.copy(i) : n.copy(c) : i ? n.copy(i) : c && n.copy(c), e(n, !1);
|
|
616
616
|
} else {
|
|
617
|
-
const { point: i, find:
|
|
618
|
-
n.copy(i), e(n,
|
|
617
|
+
const { point: i, find: c, line: m } = t.renderManager.adsorption();
|
|
618
|
+
n.copy(i), e(n, c, m);
|
|
619
619
|
}
|
|
620
620
|
});
|
|
621
621
|
return {
|
|
622
622
|
destroy() {
|
|
623
|
-
|
|
623
|
+
l();
|
|
624
624
|
},
|
|
625
|
-
setBaseLine(
|
|
626
|
-
if (
|
|
627
|
-
const
|
|
628
|
-
a = new
|
|
629
|
-
i.clone().add(
|
|
630
|
-
i.clone().add(
|
|
625
|
+
setBaseLine(r, i) {
|
|
626
|
+
if (s = r, o = i, r && i) {
|
|
627
|
+
const c = r.normal();
|
|
628
|
+
a = new N(
|
|
629
|
+
i.clone().add(c.clone().multiplyScalar(10)),
|
|
630
|
+
i.clone().add(c.multiplyScalar(-10))
|
|
631
631
|
);
|
|
632
632
|
} else a = null;
|
|
633
633
|
}
|
|
634
634
|
};
|
|
635
635
|
}
|
|
636
636
|
}
|
|
637
|
-
class
|
|
637
|
+
class bn extends O {
|
|
638
638
|
static name = "DrawLine";
|
|
639
|
-
container = new
|
|
639
|
+
container = new u.Group();
|
|
640
640
|
interruptKeys = ["escape"];
|
|
641
641
|
withdrawalKeys = ["control", "z"];
|
|
642
642
|
shortcutKeys = ["control", "l"];
|
|
@@ -651,24 +651,24 @@ class yn extends O {
|
|
|
651
651
|
* @param next
|
|
652
652
|
*/
|
|
653
653
|
selectPoint(e) {
|
|
654
|
-
let t = this.parent?.findComponentByName("Editor"), n = null,
|
|
655
|
-
new
|
|
656
|
-
new
|
|
657
|
-
new
|
|
658
|
-
new
|
|
654
|
+
let t = this.parent?.findComponentByName("Editor"), n = null, o = null, s = [], a = this.renderer.createCircle(M.zero(), { color: 65280 }), l = t.domContainer.domElement, r = new ye([], 16711935), i = new ye([
|
|
655
|
+
new u.Vector3(-1e4, 0, 0),
|
|
656
|
+
new u.Vector3(1e4, 0, 0),
|
|
657
|
+
new u.Vector3(0, -1e4, 0),
|
|
658
|
+
new u.Vector3(0, 1e4, 0)
|
|
659
659
|
], 16711935);
|
|
660
|
-
i.material = new
|
|
660
|
+
i.material = new u.LineDashedMaterial({
|
|
661
661
|
color: 4235007,
|
|
662
662
|
dashSize: 0.1,
|
|
663
663
|
gapSize: 0.1,
|
|
664
664
|
linewidth: 0.1
|
|
665
|
-
}), this.container.add(
|
|
666
|
-
const
|
|
667
|
-
|
|
668
|
-
},
|
|
665
|
+
}), this.container.add(r);
|
|
666
|
+
const c = () => {
|
|
667
|
+
r.setPoint(...s, n, o), i.position.copy(o), this.container.add(i), i.computeLineDistances();
|
|
668
|
+
}, m = new u.Vector3();
|
|
669
669
|
let y;
|
|
670
|
-
const f = this.createPointerMove((
|
|
671
|
-
|
|
670
|
+
const f = this.createPointerMove((g, h, E) => {
|
|
671
|
+
m.set(g.x, g.y, 0), this.dispatchEvent({ type: "pointerMove", point: m }), y = E, h ? (a.position.set(g.x, g.y, 0), this.container.add(a), l.style.cursor = "none") : (a.removeFromParent(), l.style.cursor = "crosshair"), n && o && (c(), o.copy(m));
|
|
672
672
|
});
|
|
673
673
|
this.addEventRecord(
|
|
674
674
|
"clear",
|
|
@@ -676,24 +676,24 @@ class yn extends O {
|
|
|
676
676
|
t.eventInput.addEventListener("codeChange", async () => {
|
|
677
677
|
if (t.eventInput.isKeyDown("mouse_0")) {
|
|
678
678
|
if (!n) {
|
|
679
|
-
n =
|
|
679
|
+
n = m.clone(), o = m.clone(), c(), f.setBaseLine(y ?? null, M.from(n));
|
|
680
680
|
return;
|
|
681
681
|
}
|
|
682
|
-
|
|
683
|
-
const
|
|
684
|
-
f.setBaseLine(
|
|
682
|
+
o = m.clone(), s.push(n.clone(), o.clone());
|
|
683
|
+
const g = new N(M.from(n), M.from(o));
|
|
684
|
+
f.setBaseLine(g, g.end), n.copy(o), c();
|
|
685
685
|
} else if (t.eventInput.isOnlyKeyDowns(this.withdrawalKeys)) {
|
|
686
|
-
if (
|
|
687
|
-
const { point:
|
|
688
|
-
if (
|
|
689
|
-
const
|
|
690
|
-
f.setBaseLine(
|
|
686
|
+
if (s.length) {
|
|
687
|
+
const { point: g } = t.renderManager.adsorption();
|
|
688
|
+
if (s.pop(), o?.copy(g), n?.copy(s.pop()), c(), s.length >= 2) {
|
|
689
|
+
const h = new N(M.from(s[s.length - 2]), M.from(s[s.length - 1]));
|
|
690
|
+
f.setBaseLine(h, h.end);
|
|
691
691
|
}
|
|
692
692
|
}
|
|
693
|
-
} else t.eventInput.isKeyDowns(this.confirmKeys) && e(
|
|
693
|
+
} else t.eventInput.isKeyDowns(this.confirmKeys) && e(s);
|
|
694
694
|
}),
|
|
695
695
|
function() {
|
|
696
|
-
|
|
696
|
+
r.removeFromParent(), a.removeFromParent(), i.removeFromParent();
|
|
697
697
|
}
|
|
698
698
|
);
|
|
699
699
|
}
|
|
@@ -702,14 +702,14 @@ class yn extends O {
|
|
|
702
702
|
*/
|
|
703
703
|
end(e, t) {
|
|
704
704
|
const n = [];
|
|
705
|
-
for (let
|
|
706
|
-
n.push(new
|
|
705
|
+
for (let o = 0; o < t.length; o += 2)
|
|
706
|
+
n.push(new N(M.from(t[o]), M.from(t[o + 1])));
|
|
707
707
|
e(n);
|
|
708
708
|
}
|
|
709
709
|
/** 执行完成
|
|
710
710
|
*/
|
|
711
711
|
completed(e) {
|
|
712
|
-
this.renderManager.addLines(e), this.renderManager.draw();
|
|
712
|
+
this.renderManager.addLines(e), this.renderManager.draw(), this.commandManager.currentName === this.commandName && setTimeout(() => this.commandManager.start(this.commandName));
|
|
713
713
|
}
|
|
714
714
|
/** 回滚操作
|
|
715
715
|
* @param data
|
|
@@ -727,7 +727,7 @@ class yn extends O {
|
|
|
727
727
|
}
|
|
728
728
|
class rt extends O {
|
|
729
729
|
static name = "Default";
|
|
730
|
-
container = new
|
|
730
|
+
container = new u.Group();
|
|
731
731
|
onAddFromParent() {
|
|
732
732
|
const e = this.editor, t = e.commandManager;
|
|
733
733
|
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 +735,7 @@ class rt extends O {
|
|
|
735
735
|
}), t.addEventListener("finally", (n) => n.name !== "default" && t.start("default")), e.eventInput.addCancelDefaultBehavior(() => e.eventInput.isOnlyKeyDowns(["control", "g"]));
|
|
736
736
|
}
|
|
737
737
|
selectLines = [];
|
|
738
|
-
selectLineObject3D = new
|
|
738
|
+
selectLineObject3D = new u.Mesh();
|
|
739
739
|
/** 添加选择的线段
|
|
740
740
|
* @param lineSegment
|
|
741
741
|
*/
|
|
@@ -778,80 +778,80 @@ class rt extends O {
|
|
|
778
778
|
* @param next
|
|
779
779
|
*/
|
|
780
780
|
start() {
|
|
781
|
-
const e = this.editor, t = e.eventInput, n = new
|
|
782
|
-
let
|
|
783
|
-
n.position.z = 1e-3, this.selectLineObject3D.position.z = n.position.z + 1e-3, n.material = new
|
|
781
|
+
const e = this.editor, t = e.eventInput, n = new u.Mesh(), o = e.domContainer.domElement;
|
|
782
|
+
let s = null;
|
|
783
|
+
n.position.z = 1e-3, this.selectLineObject3D.position.z = n.position.z + 1e-3, n.material = new u.MeshBasicMaterial({ color: 55561 });
|
|
784
784
|
const a = () => {
|
|
785
|
-
const
|
|
786
|
-
this.container.add(
|
|
785
|
+
const r = e.pointerPosition.clone(), i = e.pointerPosition.clone(), c = new u.Mesh();
|
|
786
|
+
this.container.add(c), c.position.z = 0.05, c.material = new u.MeshBasicMaterial({
|
|
787
787
|
color: 16777215,
|
|
788
788
|
transparent: !0,
|
|
789
789
|
opacity: 0.5
|
|
790
790
|
});
|
|
791
|
-
const
|
|
792
|
-
const
|
|
793
|
-
|
|
791
|
+
const m = () => {
|
|
792
|
+
const g = 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
|
+
g,
|
|
794
794
|
x,
|
|
795
795
|
0,
|
|
796
|
-
|
|
796
|
+
h,
|
|
797
797
|
E,
|
|
798
798
|
0,
|
|
799
|
-
|
|
799
|
+
h,
|
|
800
800
|
x,
|
|
801
801
|
0,
|
|
802
|
-
|
|
802
|
+
g,
|
|
803
803
|
x,
|
|
804
804
|
0,
|
|
805
|
-
|
|
805
|
+
g,
|
|
806
806
|
E,
|
|
807
807
|
0,
|
|
808
|
-
|
|
808
|
+
h,
|
|
809
809
|
E,
|
|
810
810
|
0
|
|
811
811
|
];
|
|
812
|
-
|
|
812
|
+
c.geometry = e.renderManager.createGeometry({ position: I }, I.length / 3);
|
|
813
813
|
}, y = () => {
|
|
814
|
-
i.copy(e.pointerPosition),
|
|
814
|
+
i.copy(e.pointerPosition), m();
|
|
815
815
|
}, f = () => {
|
|
816
|
-
document.removeEventListener("mousemove", y), document.removeEventListener("mouseup", f),
|
|
817
|
-
const
|
|
818
|
-
this.removeSelectLineAll(),
|
|
816
|
+
document.removeEventListener("mousemove", y), document.removeEventListener("mouseup", f), c.removeFromParent();
|
|
817
|
+
const g = 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 Ye(g, h, E, x), K = e.renderManager.quadtree.queryBox(I);
|
|
818
|
+
this.removeSelectLineAll(), K.forEach((Y) => this.addSelectLine(Y.line)), this.updateSelectLinesGeometry();
|
|
819
819
|
};
|
|
820
820
|
document.addEventListener("mousemove", y), document.addEventListener("mouseup", f);
|
|
821
|
-
},
|
|
821
|
+
}, l = this.renderer.createText("", new u.Vector3(0, 0, 0), {
|
|
822
822
|
background: "rgba(0,0,0,0.5)",
|
|
823
823
|
padding: "2px",
|
|
824
824
|
borderRadius: "2px"
|
|
825
825
|
}, this.container);
|
|
826
|
-
|
|
826
|
+
l.visible = !1, this.addEventRecord(
|
|
827
827
|
"clear",
|
|
828
828
|
// 注册鼠标指针位置变化事件
|
|
829
829
|
e.addEventListener("pointerPositionChange", () => {
|
|
830
|
-
const { line:
|
|
831
|
-
if (
|
|
832
|
-
const i =
|
|
833
|
-
n.geometry = e.renderManager.createGeometry({ position: i.createGeometry() }, 6), this.container.add(n),
|
|
834
|
-
const
|
|
835
|
-
|
|
830
|
+
const { line: r } = e.renderManager.adsorption();
|
|
831
|
+
if (r) {
|
|
832
|
+
const i = r.expandToRectangle(0.025, "bothSides");
|
|
833
|
+
n.geometry = e.renderManager.createGeometry({ position: i.createGeometry() }, 6), this.container.add(n), o.style.cursor = "pointer", s = r;
|
|
834
|
+
const c = r.center;
|
|
835
|
+
l.element.innerText = parseInt(r.length() * 1e3 + "") + " mm", l.position.set(c.x, c.y, 0), l.visible = !0;
|
|
836
836
|
} else
|
|
837
|
-
n.removeFromParent(),
|
|
837
|
+
n.removeFromParent(), o.style.cursor = "default", s = null, l.visible = !1;
|
|
838
838
|
}),
|
|
839
839
|
t.addEventListener("codeChange", () => {
|
|
840
840
|
if (t.isKeyDown("mouse_0")) {
|
|
841
|
-
if (!
|
|
841
|
+
if (!s) return a();
|
|
842
842
|
if (t.isKeyDown("alt"))
|
|
843
|
-
return this.removeSelectLine(
|
|
844
|
-
t.isKeyDown("control") || this.removeSelectLineAll(), this.addSelectLine(
|
|
843
|
+
return this.removeSelectLine(s);
|
|
844
|
+
t.isKeyDown("control") || this.removeSelectLineAll(), this.addSelectLine(s);
|
|
845
845
|
} else if (t.isKeyDown("mouse_1")) {
|
|
846
|
-
if (!
|
|
847
|
-
this.removeSelectLine(
|
|
846
|
+
if (!s) return;
|
|
847
|
+
this.removeSelectLine(s);
|
|
848
848
|
} else if (t.isKeyDown("mouse_2")) {
|
|
849
|
-
if (!
|
|
850
|
-
this.addSelectLine(
|
|
849
|
+
if (!s) return;
|
|
850
|
+
this.addSelectLine(s);
|
|
851
851
|
} else t.isKeyDowns(["control", "z"]) ? e.commandManager.rollback() : t.isKeyDowns(["control", "y"]) && e.commandManager.revokeRollback();
|
|
852
852
|
}),
|
|
853
853
|
function() {
|
|
854
|
-
n.removeFromParent(),
|
|
854
|
+
n.removeFromParent(), l.removeFromParent();
|
|
855
855
|
}
|
|
856
856
|
);
|
|
857
857
|
}
|
|
@@ -862,7 +862,7 @@ class rt extends O {
|
|
|
862
862
|
this.canceEventRecord("clear"), this.removeSelectLineAll(), this.updateSelectLinesGeometry();
|
|
863
863
|
}
|
|
864
864
|
}
|
|
865
|
-
class
|
|
865
|
+
class xn extends Xe {
|
|
866
866
|
list = [];
|
|
867
867
|
rollbacklist = [];
|
|
868
868
|
revokeRollbacklist = [];
|
|
@@ -890,7 +890,7 @@ class bn extends Xe {
|
|
|
890
890
|
return this.revokeRollbacklist.push(e), this;
|
|
891
891
|
}
|
|
892
892
|
}
|
|
893
|
-
class
|
|
893
|
+
class Cn extends Xe {
|
|
894
894
|
commandFlowMap = /* @__PURE__ */ new Map();
|
|
895
895
|
lock = !1;
|
|
896
896
|
abortController = null;
|
|
@@ -917,7 +917,7 @@ class xn extends Xe {
|
|
|
917
917
|
*/
|
|
918
918
|
addCommandFlow(e) {
|
|
919
919
|
if (this.commandFlowMap.has(e)) throw new Error(`${e} 命令已经存在`);
|
|
920
|
-
const t = new
|
|
920
|
+
const t = new xn();
|
|
921
921
|
return this.commandFlowMap.set(e, t), t;
|
|
922
922
|
}
|
|
923
923
|
executionPromise = null;
|
|
@@ -934,25 +934,25 @@ class xn extends Xe {
|
|
|
934
934
|
currentName: this.currentName
|
|
935
935
|
}), this.executionPromise && await this.executionPromise, this.executionPromise = null, this.lock)
|
|
936
936
|
throw new Error("命令管理器已被 " + this.currentName + " 命令锁定,无法启动新的命令流,请退出或等待命令执行结束");
|
|
937
|
-
const
|
|
938
|
-
if (!
|
|
937
|
+
const o = this.commandFlowMap.get(e);
|
|
938
|
+
if (!o)
|
|
939
939
|
throw new Error(`命令流 ${e} 不存在`);
|
|
940
|
-
this.lock = !0, this.abortController = new AbortController(), this.currentName = e,
|
|
940
|
+
this.lock = !0, this.abortController = new AbortController(), this.currentName = e, o.dispatchEvent({ type: "started" }), this.dispatchEvent({ type: "started", name: e });
|
|
941
941
|
try {
|
|
942
|
-
for (let
|
|
943
|
-
const a =
|
|
944
|
-
if (
|
|
945
|
-
this.resolve =
|
|
942
|
+
for (let s = n; s < o.list.length; s++) {
|
|
943
|
+
const a = o.list[s];
|
|
944
|
+
if (o.dispatchEvent({ type: "executing", index: s }), this.dispatchEvent({ type: "executing", name: e, index: s }), t = await new Promise((l) => {
|
|
945
|
+
this.resolve = l, a(l, t);
|
|
946
946
|
}), this.abortController.signal.aborted) {
|
|
947
|
-
|
|
947
|
+
o.dispatchEvent({ type: "executionInterrupt", index: s }), this.dispatchEvent({ type: "executionInterrupt", name: e, index: s }), this.dispatchEvent({ type: "cancel", name: e });
|
|
948
948
|
break;
|
|
949
949
|
} else
|
|
950
|
-
|
|
950
|
+
o.dispatchEvent({ type: "executionCompleted", index: s, data: t }), this.dispatchEvent({ type: "executionCompleted", name: e, index: s, data: t });
|
|
951
951
|
}
|
|
952
|
-
} catch (
|
|
953
|
-
console.error(
|
|
952
|
+
} catch (s) {
|
|
953
|
+
console.error(s);
|
|
954
954
|
} finally {
|
|
955
|
-
this.abortController && !this.abortController.signal.aborted && (
|
|
955
|
+
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)), this.lock = !1, this.abortController = null, this.currentName = null, o.dispatchEvent({ type: "finally" }), this.dispatchEvent({ type: "finally", name: e }), this.executionResolve && (this.executionResolve(null), this.executionResolve = null);
|
|
956
956
|
}
|
|
957
957
|
return t;
|
|
958
958
|
}
|
|
@@ -970,7 +970,7 @@ class xn extends Xe {
|
|
|
970
970
|
if (!e) return !1;
|
|
971
971
|
const t = this.commandFlowMap.get(e.name);
|
|
972
972
|
if (!t) return !1;
|
|
973
|
-
const n = t.rollbacklist.reduce((
|
|
973
|
+
const n = t.rollbacklist.reduce((o, s) => s(o), e.data);
|
|
974
974
|
return this.dispatchEvent({ type: "rollback", name: e.name }), this.rollbackList.push({
|
|
975
975
|
data: n,
|
|
976
976
|
name: e.name
|
|
@@ -988,72 +988,72 @@ class xn extends Xe {
|
|
|
988
988
|
if (!e) return !1;
|
|
989
989
|
const t = this.commandFlowMap.get(e.name);
|
|
990
990
|
if (!t) return !1;
|
|
991
|
-
const n = t.revokeRollbacklist.reduce((
|
|
991
|
+
const n = t.revokeRollbacklist.reduce((o, s) => s(o), e.data);
|
|
992
992
|
return this.dispatchEvent({ type: "revokeRollback", name: e.name }), this.operationList.push({ name: e.name, data: n }), !0;
|
|
993
993
|
} catch (e) {
|
|
994
994
|
throw new Error(`撤回回滚失败:${e}`);
|
|
995
995
|
}
|
|
996
996
|
}
|
|
997
997
|
}
|
|
998
|
-
const
|
|
999
|
-
__proto__: null,
|
|
1000
|
-
default: Cn
|
|
1001
|
-
}, Symbol.toStringTag, { value: "Module" })), Mn = "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", Ln = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
998
|
+
const En = "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", Mn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1002
999
|
__proto__: null,
|
|
1003
|
-
default:
|
|
1004
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1000
|
+
default: En
|
|
1001
|
+
}, Symbol.toStringTag, { value: "Module" })), Ln = "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({
|
|
1005
1002
|
__proto__: null,
|
|
1006
|
-
default:
|
|
1007
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1003
|
+
default: Ln
|
|
1004
|
+
}, Symbol.toStringTag, { value: "Module" })), In = "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", Pn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1008
1005
|
__proto__: null,
|
|
1009
|
-
default:
|
|
1010
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1006
|
+
default: In
|
|
1007
|
+
}, Symbol.toStringTag, { value: "Module" })), Dn = "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", An = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1011
1008
|
__proto__: null,
|
|
1012
|
-
default:
|
|
1013
|
-
}, Symbol.toStringTag, { value: "Module" })), _n = "data:image/svg+xml,%
|
|
1009
|
+
default: Dn
|
|
1010
|
+
}, 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='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", Sn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1014
1011
|
__proto__: null,
|
|
1015
1012
|
default: _n
|
|
1016
|
-
}, 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'%
|
|
1013
|
+
}, 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%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", Bn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1017
1014
|
__proto__: null,
|
|
1018
1015
|
default: Nn
|
|
1019
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1016
|
+
}, Symbol.toStringTag, { value: "Module" })), Rn = "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", On = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1017
|
+
__proto__: null,
|
|
1018
|
+
default: Rn
|
|
1019
|
+
}, Symbol.toStringTag, { value: "Module" })), zn = "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", Fn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1020
1020
|
__proto__: null,
|
|
1021
|
-
default:
|
|
1022
|
-
}, Symbol.toStringTag, { value: "Module" })), Kn = "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",
|
|
1021
|
+
default: zn
|
|
1022
|
+
}, Symbol.toStringTag, { value: "Module" })), Kn = "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", Tn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1023
1023
|
__proto__: null,
|
|
1024
1024
|
default: Kn
|
|
1025
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1025
|
+
}, Symbol.toStringTag, { value: "Module" })), jn = "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", Vn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1026
1026
|
__proto__: null,
|
|
1027
|
-
default:
|
|
1028
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1027
|
+
default: jn
|
|
1028
|
+
}, Symbol.toStringTag, { value: "Module" })), Gn = "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", Qn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1029
1029
|
__proto__: null,
|
|
1030
|
-
default:
|
|
1031
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1030
|
+
default: Gn
|
|
1031
|
+
}, Symbol.toStringTag, { value: "Module" })), Hn = "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", Wn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1032
1032
|
__proto__: null,
|
|
1033
|
-
default:
|
|
1034
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1033
|
+
default: Hn
|
|
1034
|
+
}, Symbol.toStringTag, { value: "Module" })), Jn = "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", Un = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1035
1035
|
__proto__: null,
|
|
1036
|
-
default:
|
|
1037
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1036
|
+
default: Jn
|
|
1037
|
+
}, 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%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", Zn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1038
1038
|
__proto__: null,
|
|
1039
|
-
default:
|
|
1040
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1039
|
+
default: qn
|
|
1040
|
+
}, 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%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", Xn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1041
1041
|
__proto__: null,
|
|
1042
|
-
default:
|
|
1043
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1042
|
+
default: Yn
|
|
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%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", eo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1044
1044
|
__proto__: null,
|
|
1045
|
-
default:
|
|
1046
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1047
|
-
class
|
|
1045
|
+
default: $n
|
|
1046
|
+
}, Symbol.toStringTag, { value: "Module" })), to = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAKdUlEQVR4AeydbZrUKBRGq2YjOjvpWYntStSVjK5EdzLOSsr7arBLOkkBAcLHmacwlQQInMsZUvdP/3Xhv+oEbrfbk5XYz1P1gfLAC4KwCCCwQwBBduBwCwIIwhqAwA4BBNmBwy0IFBQEuBDonwCC9B9DZlCQAIIUhEvX/RNAkP5jyAwKEkCQgnDpun8CfQrSP3dm0AkBBOkkUAzzHAIIcg53ntoJAQTpJFAM8xwCCHIOd57aCQEE8QLFKQTuCSDIPQ2+Q8AjgCAeEE4hcE8AQe5p8B0CHgEE8YBwCoF7AghyT6Psd3rvkACCdBg0hlyPAILUY82TOiSAIB0GjSHXI4Ag9VjzpA4JIEiHQXs9ZK6UIoAgpcjS7xAEEGSIMDKJUgQQpBRZ+h2CAIIMEUYmUYoAgpQiO0q/k88DQSZfAEx/nwCC7PPh7uQEEGTyBcD09wkgyD4f7k5OAEEmXwBnTr+HZyNID1FijKcRQBAP/e12e2vl2cqHUsUe+c5K7OddqfG4fmMHNEN9BPGifL1ev9ulN1Y+FizP1nfsR21Kjun/2AHNUB9BVqJsknyyy1qMdpji89nm/HmKmUZOEkE2gNmCkSTaTTZqDHP5m831/TCz+TWRbP8iyA5KWzh/2+2RJfluc/zH5shngwCCbIC5u6wFNKIkmhM7x12g174iyBqVu2v2f1gtpBFft97b3L7dTZWvKwQQZAWKf8kWkn7Aqvi3ej1HjsDIIUggKJNEu8gImS0yVoExV7XXgugqZZXAIoleuVbvd3CRjFVkkBAkEphJ0mtmi4xVZKxVHUFEIb70ltnSrkfGKj7OFwRJgGa7iBacfpPomNBD9Sb8KE9EjiCJ4EwSZbVUEnuo1gw5DqCuKsiBcTbZ1CTRLtJyZouM1cGVgyAHAS6StPiqRcbqYGzVHEFE4WAxSVrLbJGxOhhT1xxBHInjx1YyW9rNyFgdj+fPHhDkJ4bj/9guooWp3yQ6Hu8wvQd+lKeze9VyFEFeTeyMCyaJsloqZzxez0QOUchYECQjTHVlkmgXOSOzRcZKAchcECQzUHW3SFLzVYuMlcAXKAhSAKq6NElqZbbIWAl4oYIghcAu3ZbObGmXImO1wC5xQJCHVNMr2C6iBazfJDqmd7Tdkh/l22yy3EGQLBi3OzFJlNVS2a6Udgc50rhFtUKQKFxplU0S7SI5M1tkrNJCEd0KQaKRpTVYJMnxqkXGKi0ESa0QJAlbWiOT5Ghmi4xVGvrkVgiSjC654UtmK64L7T5krOKYHa6NIIcRxnVgu4gWun6T6BjTmB/lMbQy1UWQTCBjujFJlNVSCW2GHKGkMtdDkMxAQ7szSbSLhGS2yFiFQi1QD0EKQA3tcpFk71WLjFUozEL1EKQQ2NBuTZKtzNahjFXo86m3TwBB9vnUuutntrSrkLGqRX/nOQiyA6fWLdtFJIR+k+iox/KjXBQaKAjSQBA0BJNEWS0V5BCQRgqCNBIIDcMk+WRFkuiU0gABBGkgCJ0NYarhIshU4WaysQQQJJYY9acigCBThZvJxhJAkFhi1J+KAIJMFe7WJ9ve+BCkvZgwooYIIEhDwWAo7RFAkPZiwogaIoAgDQWDobRHAEHaiwkjKkEgsU8ESQRHszkIIMgccWaWiQQQJBEczeYggCBzxJlZJhJAkERwNJuDQIggc5BglhBYIZBNkNvt9kSBQStrYGWtJ13KJsjy9K92pFwuMDiXgS3DPJ/cguQZFb1AoBECCNJIIBhGmwROFqRNKIwKAo4AgjgSHCGwQgBBVqBwCQKOAII4EhwhsEIAQVagcAkCjsC4grgZcoTAAQIIcgAeTccngCDjx5gZHiCAIAfg0XR8ArkF0V9KolwuMDiXQTZzswlyvV71ByenKMy1/VjnMiSbILkGRD8QaIkAgrQUDcbSHAEEaS4kDKglAgjSUjQYS3MEEKStkDCaxgggSGMBYThtEUCQtuLBaBojgCCNBYThtEUAQdqKB6NpjACCNBaQcsOh5xQCCJJCjTbTEECQaULNRFMIIEgKNdpMQwBBpgk1E00hgCAp1GjzJ4GBzxBk4OAyteMEEOQ4Q3oYmACCNBTc2+32bOVDQ0OafigI0sgSMDGebCj/Wvlo39/akU8DBBCkgSAsQuiP7rjR/Ldcc+fTHs+eOIKcHIFFBO0c/ki+Lvf865xXJIAgFWFvPEpy6PXKv63XrA9I4mOpe44gdXn/8TRb/FtyuHrP9uWdFT4nEUCQk8CbHFr8Ko9GoB/tZLYeUSp0H0EKgd3r1uTQK5V2j71q9/ckiV657q/x/RiBoNYIEoQpXyWTQwv9PmMV2jmZrVBSGeshSEaYj7pa5IjZOfwuyWz5RAqfI0hhwF73kkOvV97l4FPtPmS2gnEdr4ggxxkG9WC7x1E53HP0w57MlqNR+IgghQGre5NDi1pFpzmKfrST2cpB8kEfaYI86JTbLwRMDr1Safd4uZjnmyTRK1ee3uhllQCCrGLJc9Hk0AJOyViFDoDMViipxHoIkgjuUbNFjhI7h/9oMls+kYznCJIRpteV5NDrlXc5+6l2KTJb2bH+6hBBfnHI+q/tHrXkcONWAoDMlqOR8dicIBnndkpXJocWq0rt5+tHO5mtzNQRJCNQk0OvVNo9MvYa1ZUk0StXVCMqbxNAkG02UXdMDi3Mkhmr0PGQ2QolFVAPQQIgPaqyyHHmzuEPkcyWTyTxHEESwXnNJIder7zLp51qNyOzlQH/TIJkwPW6C9s9WpPDDVKJAjJbjkbiEUESwamZyaFFqKLTFot+tJPZOhAZBEmEZ3LolUq7R2IP1ZpJEr1yVXvgSA9CkIRomhxacC1krEJHT2YrlJRXD0E8II9OFzl62Dn8qZDZ8okEnCNIACSviuTQ69Xd5S6+atcjsxUZKgSJAGa7R69yuFkqoUBmy9EIOCJIACRVMTm0uFR02nPRj3YyW4ERRJAAUCaHXqm0ewTU7qKKJNErVxeDPXOQCPKAvsmhhdRTxurBjH7fJrP1G8X2FwTZZnNZ5Dh359gZX4ZbZLYeQESQfUCSQ69X+7X6vavdkczWTvwQZAOO7R6jy+FmrsQDmS1HwzsiiAdEpyaHFo2KTmco+tFOZmsl0giyAsUuvbHysWD5bH3HftSm5JhixzNFfQRZCfP1ev10LVjskV+sxH6+5B6T31/sgGaojyAzRJk5JhNAkGR0NJyBAILMEGXmmEwAQZLR0XAGAggyQ5Trz3GYJyLIMKFkIiUIIEgJqvQ5DAEEGSaUTKQEAQQpQZU+hyGAIMOEcpaJ1J0ngtTlzdM6I4AgnQWM4dYlgCB1efO0zgggSGcBY7h1CSBIXd48rWUCK2NDkBUoXIKAI4AgjgRHCKwQQJAVKFyCgCOAII4ERwisEECQFShcgoAjkEsQ1x9HCAxFAEGGCieTyU0AQXITpb+hCCDIUOFkMrkJIEhuovQ3FIEOBBmKN5PpjACCdBYwhluXAILU5c3TOiOAIJ0FjOHWJYAgdXnztM4IzC1IZ8FiuPUJIEh95jyxIwII0lGwGGp9AghSnzlP7IgAgnQULIZanwCCFGJOt2MQ+AEAAP//U3PGlQAAAAZJREFUAwA3ILMm/jaVEAAAAABJRU5ErkJggg==", no = new u.TextureLoader(), oo = no.load(to);
|
|
1047
|
+
class so extends Ae {
|
|
1048
1048
|
static name = "RenderManager";
|
|
1049
|
-
container = new
|
|
1049
|
+
container = new u.Group();
|
|
1050
1050
|
lines = [];
|
|
1051
|
-
pointVirtualGrid = new
|
|
1052
|
-
quadtree = new
|
|
1053
|
-
verticalReferenceLineFlag = new
|
|
1051
|
+
pointVirtualGrid = new ze();
|
|
1052
|
+
quadtree = new Fe(new Ye());
|
|
1053
|
+
verticalReferenceLineFlag = new u.Mesh(new u.PlaneGeometry(0.3, 0.3), new u.MeshBasicMaterial({ map: oo, color: 58111, transparent: !0 }));
|
|
1054
1054
|
onAddFromParent() {
|
|
1055
1055
|
const e = this.dxfLineModel;
|
|
1056
|
-
this.editor.container.add(this.container), this.editor.container.add(e.dxfModelGroup), e.dxfLineModel.material = new
|
|
1056
|
+
this.editor.container.add(this.container), this.editor.container.add(e.dxfModelGroup), e.dxfLineModel.material = new u.LineBasicMaterial({
|
|
1057
1057
|
transparent: !0,
|
|
1058
1058
|
opacity: 0.5,
|
|
1059
1059
|
color: 16777215
|
|
@@ -1070,9 +1070,9 @@ class ss extends Se {
|
|
|
1070
1070
|
return;
|
|
1071
1071
|
} else
|
|
1072
1072
|
this.updatedMode = "dxf";
|
|
1073
|
-
this.pointVirtualGrid = new
|
|
1073
|
+
this.pointVirtualGrid = new ze();
|
|
1074
1074
|
const e = this.dxf.box.clone().expansion(Math.max(this.dxf.box.width, this.dxf.box.height) * 2);
|
|
1075
|
-
(e.width === 0 || e.height === 0) && e.set(-200, -200, 200, 200), this.quadtree = new
|
|
1075
|
+
(e.width === 0 || e.height === 0) && e.set(-200, -200, 200, 200), this.quadtree = new Fe(e), this.lines.length = 0, this.dxf.lineSegments.forEach((t) => {
|
|
1076
1076
|
t.userData.isDoor || this.addLine(t.clone());
|
|
1077
1077
|
}), this.dxf.doorLineSegment.forEach((t) => {
|
|
1078
1078
|
const n = t.clone();
|
|
@@ -1101,11 +1101,11 @@ class ss extends Se {
|
|
|
1101
1101
|
for (let t = 0; t < e.length; t++) {
|
|
1102
1102
|
const n = e[t];
|
|
1103
1103
|
this.lines.push(n), this.pointVirtualGrid.insert(n.start, n), this.pointVirtualGrid.insert(n.end, n);
|
|
1104
|
-
const
|
|
1104
|
+
const o = {
|
|
1105
1105
|
line: n,
|
|
1106
1106
|
userData: void 0
|
|
1107
1107
|
};
|
|
1108
|
-
n.userData.quadtreeNode =
|
|
1108
|
+
n.userData.quadtreeNode = o, this.quadtree.insert(o);
|
|
1109
1109
|
}
|
|
1110
1110
|
}
|
|
1111
1111
|
/** 移除线段
|
|
@@ -1124,8 +1124,8 @@ class ss extends Se {
|
|
|
1124
1124
|
for (let t = 0; t < e.length; t++) {
|
|
1125
1125
|
const n = e[t];
|
|
1126
1126
|
n.userData.quadtreeNode && this.quadtree.remove(n.userData.quadtreeNode), this.pointVirtualGrid.remove(n.start), this.pointVirtualGrid.remove(n.end);
|
|
1127
|
-
const
|
|
1128
|
-
this.lines.splice(
|
|
1127
|
+
const o = this.lines.indexOf(n);
|
|
1128
|
+
this.lines.splice(o, 1);
|
|
1129
1129
|
}
|
|
1130
1130
|
this.draw();
|
|
1131
1131
|
}
|
|
@@ -1134,15 +1134,15 @@ class ss extends Se {
|
|
|
1134
1134
|
*/
|
|
1135
1135
|
draw(e = !0) {
|
|
1136
1136
|
this.container.clear();
|
|
1137
|
-
const t = [], n = [],
|
|
1138
|
-
this.lines.forEach((
|
|
1139
|
-
if (
|
|
1140
|
-
|
|
1141
|
-
}),
|
|
1142
|
-
const
|
|
1143
|
-
|
|
1144
|
-
}),
|
|
1145
|
-
const a =
|
|
1137
|
+
const t = [], n = [], o = [];
|
|
1138
|
+
this.lines.forEach((s) => {
|
|
1139
|
+
if (s.points.forEach((a) => {
|
|
1140
|
+
s.userData.isDoor ? n.push(a.x, a.y, 0) : t.push(a.x, a.y, 0);
|
|
1141
|
+
}), s.userData.isWindow && s.userData.drawWindow && s.userData.drawWindow.forEach(({ width: a, p: l }) => {
|
|
1142
|
+
const r = M.from(l), i = s.direction(), c = r.clone().add(i.clone().multiplyScalar(a * 0.5)), m = r.clone().add(i.clone().multiplyScalar(-a * 0.5));
|
|
1143
|
+
o.push(c.x, c.y, 1e-3), o.push(m.x, m.y, 1e-3);
|
|
1144
|
+
}), s.userData.isVerticalReferenceLine) {
|
|
1145
|
+
const a = s.center;
|
|
1146
1146
|
this.verticalReferenceLineFlag.position.set(a.x, a.y, 0), this.container.add(this.verticalReferenceLineFlag);
|
|
1147
1147
|
}
|
|
1148
1148
|
}), t.length && this.renderer.createLineSegments({
|
|
@@ -1153,9 +1153,9 @@ class ss extends Se {
|
|
|
1153
1153
|
position: n
|
|
1154
1154
|
}, n.length / 3, {
|
|
1155
1155
|
color: 16776960
|
|
1156
|
-
}, this.container),
|
|
1157
|
-
position:
|
|
1158
|
-
},
|
|
1156
|
+
}, this.container), o.length && this.renderer.createLineSegments({
|
|
1157
|
+
position: o
|
|
1158
|
+
}, o.length / 3, {
|
|
1159
1159
|
color: 16711935
|
|
1160
1160
|
}, this.container), e && this.synchronizeDxf();
|
|
1161
1161
|
}
|
|
@@ -1164,25 +1164,32 @@ class ss extends Se {
|
|
|
1164
1164
|
* @returns
|
|
1165
1165
|
*/
|
|
1166
1166
|
adsorption(e = 0.04, t = this.pointVirtualGrid, n = this.quadtree) {
|
|
1167
|
-
const
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1167
|
+
const o = this.parent?.findComponentByName("Editor"), s = M.from(o.pointerPosition);
|
|
1168
|
+
let a = n.queryCircle(s, e);
|
|
1169
|
+
if (a.length) {
|
|
1170
|
+
let l = a.map((r) => r.line.projectPoint(s));
|
|
1171
|
+
if (a = a.filter((r, i) => !!l[i]), l = l.filter((r, i) => !!l[i]), l.sort((r, i) => r && i ? r.distance(s) - i.distance(s) : 0), l.length) {
|
|
1172
|
+
const r = a[0].line, i = l[0];
|
|
1173
|
+
return r.start.distance(s) < e * 1.5 ? {
|
|
1174
|
+
point: new u.Vector3(r.start.x, r.start.y, 0),
|
|
1175
|
+
find: !0,
|
|
1176
|
+
mode: "point",
|
|
1177
|
+
line: r
|
|
1178
|
+
} : r.end.distance(s) < e * 1.5 ? {
|
|
1179
|
+
point: new u.Vector3(r.end.x, r.end.y, 0),
|
|
1180
|
+
find: !0,
|
|
1181
|
+
mode: "point",
|
|
1182
|
+
line: r
|
|
1183
|
+
} : {
|
|
1184
|
+
point: new u.Vector3(i.x, i.y, 0),
|
|
1185
|
+
find: !0,
|
|
1186
|
+
mode: "line",
|
|
1187
|
+
line: r
|
|
1188
|
+
};
|
|
1189
|
+
}
|
|
1183
1190
|
}
|
|
1184
1191
|
return {
|
|
1185
|
-
point: new
|
|
1192
|
+
point: new u.Vector3(o.pointerPosition.x, o.pointerPosition.y, 0),
|
|
1186
1193
|
find: !1
|
|
1187
1194
|
};
|
|
1188
1195
|
}
|
|
@@ -1190,9 +1197,9 @@ class ss extends Se {
|
|
|
1190
1197
|
* @param rectangle
|
|
1191
1198
|
*/
|
|
1192
1199
|
createGeometry(e, t) {
|
|
1193
|
-
const n = new
|
|
1194
|
-
return Object.keys(e).forEach((
|
|
1195
|
-
n.setAttribute("position", new
|
|
1200
|
+
const n = new u.BufferGeometry();
|
|
1201
|
+
return Object.keys(e).forEach((o) => {
|
|
1202
|
+
n.setAttribute("position", new u.BufferAttribute(new Float32Array(e[o]), e[o].length / t));
|
|
1196
1203
|
}), n;
|
|
1197
1204
|
}
|
|
1198
1205
|
/**
|
|
@@ -1200,21 +1207,21 @@ class ss extends Se {
|
|
|
1200
1207
|
*/
|
|
1201
1208
|
toJson() {
|
|
1202
1209
|
return this.lines.map((e) => {
|
|
1203
|
-
const t = e.userData, n = t.drawWindow,
|
|
1210
|
+
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) }));
|
|
1204
1211
|
return {
|
|
1205
1212
|
start: e.start.toJson(this.dxf.originalZAverage),
|
|
1206
1213
|
end: e.end.toJson(this.dxf.originalZAverage),
|
|
1207
|
-
insetionArr:
|
|
1214
|
+
insetionArr: o,
|
|
1208
1215
|
isDoor: t.isDoor,
|
|
1209
1216
|
doorDirectConnection: t.isDoor,
|
|
1210
1217
|
length: e.length(),
|
|
1211
1218
|
isWindow: t.isWindow,
|
|
1212
1219
|
isVerticalReferenceLine: t.isVerticalReferenceLine,
|
|
1213
1220
|
wallWidth: e.userData.wallWidth,
|
|
1214
|
-
drawWindow: n && n.map((
|
|
1215
|
-
p: { x:
|
|
1216
|
-
width:
|
|
1217
|
-
full:
|
|
1221
|
+
drawWindow: n && n.map((s) => ({
|
|
1222
|
+
p: { x: s.p.x, y: s.p.y, z: s.p.z },
|
|
1223
|
+
width: s.width,
|
|
1224
|
+
full: s.full
|
|
1218
1225
|
}))
|
|
1219
1226
|
};
|
|
1220
1227
|
});
|
|
@@ -1255,55 +1262,55 @@ class ss extends Se {
|
|
|
1255
1262
|
return this.parent?.findComponentByName("DxfLineModel");
|
|
1256
1263
|
}
|
|
1257
1264
|
}
|
|
1258
|
-
class
|
|
1265
|
+
class ao extends O {
|
|
1259
1266
|
static name = "DrawDoorLine";
|
|
1260
|
-
container = new
|
|
1267
|
+
container = new u.Group();
|
|
1261
1268
|
interruptKeys = ["escape"];
|
|
1262
1269
|
shortcutKeys = ["control", "m"];
|
|
1263
1270
|
commandName = "draw-door-line";
|
|
1264
1271
|
onAddFromParent(e) {
|
|
1265
1272
|
super.onAddFromParent(e);
|
|
1266
|
-
const t = e.findComponentByName("Editor"), n = t.eventInput,
|
|
1273
|
+
const t = e.findComponentByName("Editor"), n = t.eventInput, o = t.commandManager;
|
|
1267
1274
|
this.editor.container.add(this.container);
|
|
1268
|
-
const
|
|
1269
|
-
n.addKeyCombination(this.commandName, this.shortcutKeys),
|
|
1270
|
-
n.isKeyCombination(this.commandName) && await
|
|
1275
|
+
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));
|
|
1276
|
+
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 () => {
|
|
1277
|
+
n.isKeyCombination(this.commandName) && await o.start(this.commandName);
|
|
1271
1278
|
});
|
|
1272
1279
|
}
|
|
1273
1280
|
/** 选择点
|
|
1274
1281
|
* @param next
|
|
1275
1282
|
*/
|
|
1276
1283
|
selectPoint(e) {
|
|
1277
|
-
let t = this.parent?.findComponentByName("Editor"), n = null,
|
|
1278
|
-
new
|
|
1279
|
-
new
|
|
1280
|
-
new
|
|
1281
|
-
new
|
|
1284
|
+
let t = this.parent?.findComponentByName("Editor"), n = null, o = this.renderer.createCircle(M.zero(), { color: 65280 }), s = new ye([], 16711935), a = new ye([
|
|
1285
|
+
new u.Vector3(-1e4, 0, 0),
|
|
1286
|
+
new u.Vector3(1e4, 0, 0),
|
|
1287
|
+
new u.Vector3(0, -1e4, 0),
|
|
1288
|
+
new u.Vector3(0, 1e4, 0)
|
|
1282
1289
|
], 16711935);
|
|
1283
|
-
a.material = new
|
|
1290
|
+
a.material = new u.LineDashedMaterial({
|
|
1284
1291
|
color: 4235007,
|
|
1285
1292
|
dashSize: 0.1,
|
|
1286
1293
|
gapSize: 0.1,
|
|
1287
1294
|
linewidth: 0.1
|
|
1288
|
-
}), this.container.add(
|
|
1289
|
-
let
|
|
1295
|
+
}), this.container.add(s);
|
|
1296
|
+
let l = null;
|
|
1290
1297
|
this.addEventRecord(
|
|
1291
1298
|
"clear",
|
|
1292
1299
|
t.addEventListener("pointerPositionChange", () => {
|
|
1293
|
-
const { point:
|
|
1294
|
-
n &&
|
|
1300
|
+
const { point: r, find: i } = t.renderManager.adsorption();
|
|
1301
|
+
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", l = r.clone()) : (l = null, o.removeFromParent(), this.domElement.style.cursor = "no-drop");
|
|
1295
1302
|
}),
|
|
1296
1303
|
t.eventInput.addEventListener("codeChange", async () => {
|
|
1297
|
-
if (t.eventInput.isKeyDown("mouse_0") &&
|
|
1304
|
+
if (t.eventInput.isKeyDown("mouse_0") && l) {
|
|
1298
1305
|
if (!n) {
|
|
1299
|
-
n =
|
|
1306
|
+
n = l.clone();
|
|
1300
1307
|
return;
|
|
1301
1308
|
}
|
|
1302
|
-
e([n.clone(),
|
|
1309
|
+
e([n.clone(), l.clone()]);
|
|
1303
1310
|
}
|
|
1304
1311
|
}),
|
|
1305
1312
|
function() {
|
|
1306
|
-
|
|
1313
|
+
s.removeFromParent(), o.removeFromParent(), a.removeFromParent();
|
|
1307
1314
|
}
|
|
1308
1315
|
);
|
|
1309
1316
|
}
|
|
@@ -1314,23 +1321,23 @@ class os extends O {
|
|
|
1314
1321
|
*/
|
|
1315
1322
|
end(e, t) {
|
|
1316
1323
|
const n = [];
|
|
1317
|
-
for (let
|
|
1318
|
-
const
|
|
1324
|
+
for (let o = 0; o < t.length; o += 2) {
|
|
1325
|
+
const s = M.from(t[o]), a = M.from(t[o + 1]), l = this.renderManager.quadtree.queryCircle(s, 1e-3)[0].line, r = this.renderManager.quadtree.queryCircle(a, 1e-3)[0].line;
|
|
1319
1326
|
let i = null;
|
|
1320
|
-
|
|
1321
|
-
oldLine:
|
|
1322
|
-
newLine1: new
|
|
1323
|
-
|
|
1324
|
-
|
|
1327
|
+
l === r && (i = {
|
|
1328
|
+
oldLine: l,
|
|
1329
|
+
newLine1: new N(
|
|
1330
|
+
l.start,
|
|
1331
|
+
l.start.distance(s) < l.start.distance(a) ? s.clone() : a.clone()
|
|
1325
1332
|
),
|
|
1326
|
-
newLine2: new
|
|
1327
|
-
|
|
1328
|
-
|
|
1333
|
+
newLine2: new N(
|
|
1334
|
+
l.end,
|
|
1335
|
+
l.end.distance(s) < l.end.distance(a) ? s.clone() : a.clone()
|
|
1329
1336
|
)
|
|
1330
1337
|
});
|
|
1331
|
-
const
|
|
1332
|
-
|
|
1333
|
-
line:
|
|
1338
|
+
const c = new N(s, a);
|
|
1339
|
+
c.userData.isDoor = !0, c.userData.doorDirectConnection = !0, n.push({
|
|
1340
|
+
line: c,
|
|
1334
1341
|
option: i
|
|
1335
1342
|
});
|
|
1336
1343
|
}
|
|
@@ -1341,7 +1348,7 @@ class os extends O {
|
|
|
1341
1348
|
completed(e) {
|
|
1342
1349
|
e.forEach(({ line: t, option: n }) => {
|
|
1343
1350
|
this.renderManager.addLine(t), n && (this.renderManager.removeLine(n.oldLine), this.renderManager.addLines([n.newLine1, n.newLine2]));
|
|
1344
|
-
}), this.renderManager.draw();
|
|
1351
|
+
}), this.renderManager.draw(), this.commandManager.currentName === this.commandName && setTimeout(() => this.commandManager.start(this.commandName));
|
|
1345
1352
|
}
|
|
1346
1353
|
/** 回滚操作
|
|
1347
1354
|
* @param data
|
|
@@ -1359,9 +1366,9 @@ class os extends O {
|
|
|
1359
1366
|
return this.completed(e), e;
|
|
1360
1367
|
}
|
|
1361
1368
|
}
|
|
1362
|
-
class
|
|
1369
|
+
class io extends O {
|
|
1363
1370
|
static name = "DrawWindow";
|
|
1364
|
-
container = new
|
|
1371
|
+
container = new u.Group();
|
|
1365
1372
|
interruptKeys = ["escape"];
|
|
1366
1373
|
shortcutKeys = ["control", "q"];
|
|
1367
1374
|
commandName = "draw-window-line";
|
|
@@ -1374,24 +1381,24 @@ class as extends O {
|
|
|
1374
1381
|
* @param next
|
|
1375
1382
|
*/
|
|
1376
1383
|
selectPointStart(e) {
|
|
1377
|
-
let t = null, n =
|
|
1384
|
+
let t = null, n = this.renderer.createCircle(M.zero(), { color: 16711935 }), o = null;
|
|
1378
1385
|
this.addEventRecord("selectPointStart").add(this.editor.addEventListener("pointerPositionChange", () => {
|
|
1379
|
-
const { point:
|
|
1380
|
-
this.dispatchEvent({ type: "pointerMove", point:
|
|
1386
|
+
const { point: s, line: a, find: l } = this.editor.renderManager.adsorption();
|
|
1387
|
+
this.dispatchEvent({ type: "pointerMove", point: s }), l ? (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());
|
|
1381
1388
|
})).add(this.eventInput.addEventListener("codeChange", () => {
|
|
1382
|
-
this.eventInput.isKeyDown("mouse_0") && t && (this.canceEventRecord("selectPointStart"), e({ point: t, line:
|
|
1389
|
+
this.eventInput.isKeyDown("mouse_0") && t && (this.canceEventRecord("selectPointStart"), e({ point: t, line: o }));
|
|
1383
1390
|
})), this.addEventRecord("clear").add(() => n.removeFromParent());
|
|
1384
1391
|
}
|
|
1385
1392
|
/** 选择结束点
|
|
1386
1393
|
* @param next
|
|
1387
1394
|
*/
|
|
1388
1395
|
selectPointEnd(e, { point: t, line: n }) {
|
|
1389
|
-
let
|
|
1390
|
-
this.addEventRecord("clear").add(() =>
|
|
1391
|
-
const { point: a, find:
|
|
1392
|
-
this.dispatchEvent({ type: "pointerMove", point: a }),
|
|
1396
|
+
let o = null, s = this.renderer.createCircle(M.zero(), { color: 16711935 });
|
|
1397
|
+
this.addEventRecord("clear").add(() => s.removeFromParent()).add(this.editor.addEventListener("pointerPositionChange", () => {
|
|
1398
|
+
const { point: a, find: l, line: r } = this.editor.renderManager.adsorption();
|
|
1399
|
+
this.dispatchEvent({ type: "pointerMove", point: a }), l && 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());
|
|
1393
1400
|
})).add(this.eventInput.addEventListener("codeChange", () => {
|
|
1394
|
-
this.eventInput.isKeyDown("mouse_0") &&
|
|
1401
|
+
this.eventInput.isKeyDown("mouse_0") && o && e({ line: n, start: t, end: o });
|
|
1395
1402
|
}));
|
|
1396
1403
|
}
|
|
1397
1404
|
/**
|
|
@@ -1399,18 +1406,18 @@ class as extends O {
|
|
|
1399
1406
|
* @param next
|
|
1400
1407
|
* @param points
|
|
1401
1408
|
*/
|
|
1402
|
-
end(e, { start: t, end: n, line:
|
|
1403
|
-
const
|
|
1404
|
-
p: new
|
|
1405
|
-
width:
|
|
1406
|
-
full: Math.abs(
|
|
1409
|
+
end(e, { start: t, end: n, line: o }) {
|
|
1410
|
+
const s = new N(M.from(t), M.from(n)), a = s.center, l = s.length(), r = {
|
|
1411
|
+
p: new u.Vector3(a.x, a.y, 0),
|
|
1412
|
+
width: l,
|
|
1413
|
+
full: Math.abs(l - o.length()) < 0.01
|
|
1407
1414
|
};
|
|
1408
|
-
e({ line:
|
|
1415
|
+
e({ line: o, doorDataItem: r });
|
|
1409
1416
|
}
|
|
1410
1417
|
/** 执行完成
|
|
1411
1418
|
*/
|
|
1412
1419
|
completed({ doorDataItem: e, line: t }) {
|
|
1413
|
-
t.userData.isWindow = !0, t.userData.drawWindow || (t.userData.drawWindow = []), t.userData.drawWindow.push(e), this.renderManager.draw();
|
|
1420
|
+
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));
|
|
1414
1421
|
}
|
|
1415
1422
|
/** 回滚操作
|
|
1416
1423
|
* @param data
|
|
@@ -1418,8 +1425,8 @@ class as extends O {
|
|
|
1418
1425
|
rollback(e) {
|
|
1419
1426
|
const { doorDataItem: t, line: n } = e;
|
|
1420
1427
|
if (n.userData.drawWindow) {
|
|
1421
|
-
const
|
|
1422
|
-
|
|
1428
|
+
const o = n.userData.drawWindow.indexOf(t);
|
|
1429
|
+
o !== -1 && (n.userData.drawWindow.splice(o, 1), n.userData.drawWindow.length === 0 && (delete n.userData.drawWindow, delete n.userData.isWindow), this.renderManager.draw());
|
|
1423
1430
|
}
|
|
1424
1431
|
return e;
|
|
1425
1432
|
}
|
|
@@ -1433,7 +1440,7 @@ class as extends O {
|
|
|
1433
1440
|
}
|
|
1434
1441
|
class le extends O {
|
|
1435
1442
|
static name = "VerticalCorrection";
|
|
1436
|
-
container = new
|
|
1443
|
+
container = new u.Group();
|
|
1437
1444
|
shortcutKeys = ["control", "c"];
|
|
1438
1445
|
shortcutKeys3 = ["shift", "c"];
|
|
1439
1446
|
static commandName = "verticalCorrection";
|
|
@@ -1449,7 +1456,7 @@ class le extends O {
|
|
|
1449
1456
|
* 进入命令约束
|
|
1450
1457
|
*/
|
|
1451
1458
|
constraint(e, t) {
|
|
1452
|
-
Array.isArray(t) ? t.length !== 1 ? (
|
|
1459
|
+
Array.isArray(t) ? t.length !== 1 ? (k({ message: "请选择一条线段", type: "warning" }), this.cancel()) : e(t) : (k({ message: "进入命令失败", type: "warning" }), this.cancel());
|
|
1453
1460
|
}
|
|
1454
1461
|
/**
|
|
1455
1462
|
* @param line0
|
|
@@ -1467,46 +1474,46 @@ class le extends O {
|
|
|
1467
1474
|
* @param id
|
|
1468
1475
|
* @returns
|
|
1469
1476
|
*/
|
|
1470
|
-
setLinePoint(e, t, n,
|
|
1477
|
+
setLinePoint(e, t, n, o = "all", s = [], a = At()) {
|
|
1471
1478
|
if (e.userData.setLinePointUUid === a) return [];
|
|
1472
1479
|
e.userData.setLinePointUUid = a;
|
|
1473
|
-
let
|
|
1474
|
-
(
|
|
1480
|
+
let l = [], r = [];
|
|
1481
|
+
(o === "start" || o === "all") && (l = this.renderManager.pointVirtualGrid.queryPoint(e.start).filter((y) => y.userData !== e)), (o === "end" || o === "all") && (r = this.renderManager.pointVirtualGrid.queryPoint(e.end).filter((y) => y.userData !== e));
|
|
1475
1482
|
const i = e.clone();
|
|
1476
|
-
let
|
|
1477
|
-
t && (e.start.equal(t) || (
|
|
1483
|
+
let c = "";
|
|
1484
|
+
t && (e.start.equal(t) || (c = "start"), s.push({
|
|
1478
1485
|
point: e.start,
|
|
1479
1486
|
oldPoint: e.start.clone(),
|
|
1480
1487
|
newPoint: t,
|
|
1481
1488
|
line: e
|
|
1482
|
-
}), e.start.copy(t)), n && (e.end.equal(n) || (
|
|
1489
|
+
}), e.start.copy(t)), n && (e.end.equal(n) || (c = c === "start" ? "all" : "end"), s.push({
|
|
1483
1490
|
point: e.end,
|
|
1484
1491
|
oldPoint: e.end.clone(),
|
|
1485
1492
|
newPoint: n,
|
|
1486
1493
|
line: e
|
|
1487
1494
|
}), e.end.copy(n));
|
|
1488
|
-
const
|
|
1489
|
-
y.forEach((
|
|
1490
|
-
const { point: E, userData: x } =
|
|
1495
|
+
const m = (y, f, g) => {
|
|
1496
|
+
y.forEach((h) => {
|
|
1497
|
+
const { point: E, userData: x } = h, I = x.start === E ? "start" : "end";
|
|
1491
1498
|
if (x.directionEqual(i))
|
|
1492
|
-
if (
|
|
1493
|
-
const
|
|
1494
|
-
if (
|
|
1499
|
+
if (I === "start") {
|
|
1500
|
+
const K = e.projectPoint(x.end, !1);
|
|
1501
|
+
if (K) return this.setLinePoint(x, f, K, "end", s, a);
|
|
1495
1502
|
} else {
|
|
1496
|
-
const
|
|
1497
|
-
if (
|
|
1503
|
+
const K = e.projectPoint(x.start, !1);
|
|
1504
|
+
if (K) return this.setLinePoint(x, K, f, "start", s, a);
|
|
1498
1505
|
}
|
|
1499
|
-
(
|
|
1506
|
+
(c === "all" || g === c) && this.setLinePoint(
|
|
1500
1507
|
x,
|
|
1501
1508
|
x.start === E ? f : x.start,
|
|
1502
1509
|
x.end === E ? f : x.end,
|
|
1503
1510
|
x.start === E ? "end" : "start",
|
|
1504
|
-
|
|
1511
|
+
s,
|
|
1505
1512
|
a
|
|
1506
1513
|
);
|
|
1507
1514
|
});
|
|
1508
1515
|
};
|
|
1509
|
-
return
|
|
1516
|
+
return m(l, e.start, "start"), m(r, e.end, "end"), [...l, ...r];
|
|
1510
1517
|
}
|
|
1511
1518
|
/** 修正2
|
|
1512
1519
|
* 第一步:确定需要修复的线段
|
|
@@ -1520,72 +1527,72 @@ class le extends O {
|
|
|
1520
1527
|
*/
|
|
1521
1528
|
correction(e, t = [], n = /* @__PURE__ */ new Set()) {
|
|
1522
1529
|
n.add(e);
|
|
1523
|
-
const
|
|
1524
|
-
const [
|
|
1525
|
-
return
|
|
1530
|
+
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, l] = o.reduce((i, c) => {
|
|
1531
|
+
const [m, y] = i;
|
|
1532
|
+
return c.sameEndpoint(e) ? m.push(c) : y.push(c), i;
|
|
1526
1533
|
}, [[], []]);
|
|
1527
1534
|
a.forEach((i) => {
|
|
1528
|
-
const
|
|
1529
|
-
if (Math.abs(90 -
|
|
1530
|
-
const f = e.sameEndpointAsStart(i) ? e.start : e.end,
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
), E =
|
|
1535
|
+
const c = i.direction(), m = s.angleBetween(c, "angle");
|
|
1536
|
+
if (Math.abs(90 - m) > 45) return !1;
|
|
1537
|
+
const f = e.sameEndpointAsStart(i) ? e.start : e.end, g = i.sameEndpointAsStart(e) ? i.end : i.start, h = new N(
|
|
1538
|
+
g.clone().add(s.clone().multiplyScalar(1)),
|
|
1539
|
+
g.clone().add(s.clone().multiplyScalar(-1))
|
|
1540
|
+
), E = h.projectPoint(f, !1);
|
|
1534
1541
|
if (E) {
|
|
1535
1542
|
const x = [];
|
|
1536
1543
|
this.setLinePoint(
|
|
1537
1544
|
i,
|
|
1538
|
-
i.start ===
|
|
1539
|
-
i.end ===
|
|
1540
|
-
i.start ===
|
|
1545
|
+
i.start === g ? E : i.start,
|
|
1546
|
+
i.end === g ? E : i.end,
|
|
1547
|
+
i.start === g ? "start" : "end",
|
|
1541
1548
|
x
|
|
1542
1549
|
), t.push(x);
|
|
1543
1550
|
}
|
|
1544
1551
|
return n.add(i), !1;
|
|
1545
|
-
}),
|
|
1546
|
-
const
|
|
1547
|
-
const y = e.projectPoint(
|
|
1552
|
+
}), s.copy(e.direction());
|
|
1553
|
+
const r = (i, c, m) => {
|
|
1554
|
+
const y = e.projectPoint(c);
|
|
1548
1555
|
if (y) i.copy(y);
|
|
1549
1556
|
else {
|
|
1550
|
-
const f = new
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
),
|
|
1554
|
-
if (
|
|
1555
|
-
const
|
|
1557
|
+
const f = new N(
|
|
1558
|
+
c.clone().add(s.clone().multiplyScalar(1)),
|
|
1559
|
+
c.clone().add(s.clone().multiplyScalar(-1))
|
|
1560
|
+
), g = f.projectPoint(i, !1);
|
|
1561
|
+
if (g) {
|
|
1562
|
+
const h = [];
|
|
1556
1563
|
this.setLinePoint(
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
), t.push(
|
|
1564
|
+
m,
|
|
1565
|
+
m.start === c ? g : m.start,
|
|
1566
|
+
m.end === c ? g : m.end,
|
|
1567
|
+
m.start === c ? "start" : "end",
|
|
1568
|
+
h
|
|
1569
|
+
), t.push(h);
|
|
1563
1570
|
}
|
|
1564
1571
|
}
|
|
1565
1572
|
};
|
|
1566
|
-
return
|
|
1573
|
+
return l.forEach((i) => {
|
|
1567
1574
|
if (e.containsPoint(i.start))
|
|
1568
|
-
|
|
1575
|
+
r(i.start, i.end, i);
|
|
1569
1576
|
else if (e.containsPoint(i.end))
|
|
1570
|
-
|
|
1577
|
+
r(i.end, i.start, i);
|
|
1571
1578
|
else {
|
|
1572
|
-
const
|
|
1573
|
-
if (
|
|
1574
|
-
const
|
|
1575
|
-
i.start.clone().add(
|
|
1576
|
-
i.start.clone().add(
|
|
1577
|
-
), y =
|
|
1579
|
+
const c = e.getIntersection(i);
|
|
1580
|
+
if (c) {
|
|
1581
|
+
const m = new N(
|
|
1582
|
+
i.start.clone().add(s.clone().multiplyScalar(1)),
|
|
1583
|
+
i.start.clone().add(s.clone().multiplyScalar(-1))
|
|
1584
|
+
), y = m.projectPoint(c, !1);
|
|
1578
1585
|
if (y) {
|
|
1579
|
-
const
|
|
1580
|
-
this.setLinePoint(i, y, i.end, "start",
|
|
1586
|
+
const h = [];
|
|
1587
|
+
this.setLinePoint(i, y, i.end, "start", h), t.push(h);
|
|
1581
1588
|
}
|
|
1582
|
-
const f = new
|
|
1583
|
-
i.end.clone().add(
|
|
1584
|
-
i.end.clone().add(
|
|
1585
|
-
),
|
|
1586
|
-
if (
|
|
1587
|
-
const
|
|
1588
|
-
this.setLinePoint(i, i.start,
|
|
1589
|
+
const f = new N(
|
|
1590
|
+
i.end.clone().add(s.clone().multiplyScalar(1)),
|
|
1591
|
+
i.end.clone().add(s.clone().multiplyScalar(-1))
|
|
1592
|
+
), g = f.projectPoint(c, !1);
|
|
1593
|
+
if (g) {
|
|
1594
|
+
const h = [];
|
|
1595
|
+
this.setLinePoint(i, i.start, g, "end", h), t.push(h);
|
|
1589
1596
|
}
|
|
1590
1597
|
}
|
|
1591
1598
|
}
|
|
@@ -1597,7 +1604,7 @@ class le extends O {
|
|
|
1597
1604
|
*/
|
|
1598
1605
|
axisAlignmentCorrection(e) {
|
|
1599
1606
|
const t = [...this.renderManager.lines];
|
|
1600
|
-
return { newLines:
|
|
1607
|
+
return { newLines: _t.correction.call(this, t, e), oldLines: t };
|
|
1601
1608
|
}
|
|
1602
1609
|
/** 开始
|
|
1603
1610
|
* @param next
|
|
@@ -1613,11 +1620,11 @@ class le extends O {
|
|
|
1613
1620
|
if (Array.isArray(e)) {
|
|
1614
1621
|
const t = [];
|
|
1615
1622
|
e.forEach((n) => {
|
|
1616
|
-
n.forEach((
|
|
1617
|
-
const { line:
|
|
1618
|
-
|
|
1623
|
+
n.forEach((o) => {
|
|
1624
|
+
const { line: s, newPoint: a, point: l } = o;
|
|
1625
|
+
l.copy(a), this.renderManager.removeLine(s), this.renderManager.addLine(s), s.userData.isWindow && t.push(s);
|
|
1619
1626
|
});
|
|
1620
|
-
}),
|
|
1627
|
+
}), Ke(...t);
|
|
1621
1628
|
} else
|
|
1622
1629
|
this.renderManager.removeLines(e.oldLines), this.renderManager.addLines(e.newLines);
|
|
1623
1630
|
this.renderManager.draw();
|
|
@@ -1629,13 +1636,13 @@ class le extends O {
|
|
|
1629
1636
|
if (Array.isArray(e)) {
|
|
1630
1637
|
const t = [];
|
|
1631
1638
|
for (let n = e.length - 1; n >= 0; n--) {
|
|
1632
|
-
const
|
|
1633
|
-
for (let
|
|
1634
|
-
const a = s
|
|
1635
|
-
i.copy(
|
|
1639
|
+
const o = e[n];
|
|
1640
|
+
for (let s = o.length - 1; s >= 0; s--) {
|
|
1641
|
+
const a = o[s], { line: l, oldPoint: r, point: i } = a;
|
|
1642
|
+
i.copy(r), this.renderManager.removeLine(l), this.renderManager.addLine(l), l.userData.isWindow && t.push(l);
|
|
1636
1643
|
}
|
|
1637
1644
|
}
|
|
1638
|
-
|
|
1645
|
+
Ke(...t);
|
|
1639
1646
|
} else
|
|
1640
1647
|
this.renderManager.removeLines(e.newLines), this.renderManager.addLines(e.oldLines);
|
|
1641
1648
|
return this.renderManager.draw(), e;
|
|
@@ -1663,16 +1670,16 @@ class $ extends O {
|
|
|
1663
1670
|
* 进入命令约束
|
|
1664
1671
|
*/
|
|
1665
1672
|
constraint(e, t) {
|
|
1666
|
-
Array.isArray(t) ? t.length < 2 ? (
|
|
1673
|
+
Array.isArray(t) ? t.length < 2 ? (k({ message: "未执行线段合并,请选择至少两条线段", type: "warning" }), this.cancel()) : e(t) : (k({ message: "进入命令失败", type: "warning" }), this.cancel());
|
|
1667
1674
|
}
|
|
1668
1675
|
/** 开始
|
|
1669
1676
|
* @param next
|
|
1670
1677
|
* @todo 合并所有
|
|
1671
1678
|
*/
|
|
1672
1679
|
mergeLines(e, t) {
|
|
1673
|
-
t = t.filter((
|
|
1674
|
-
const { newLines: n, deleteLines:
|
|
1675
|
-
n.length ? (e({ newLines: n, deleteLines:
|
|
1680
|
+
t = t.filter((s) => !s.userData.isDoor);
|
|
1681
|
+
const { newLines: n, deleteLines: o } = N.autoMergeLines(t);
|
|
1682
|
+
n.length ? (e({ newLines: n, deleteLines: o }), k({ message: "已合并", type: "success" })) : (k({ message: "合并失败,未找到共用点", type: "warning" }), this.commandManager.cancel());
|
|
1676
1683
|
}
|
|
1677
1684
|
/** 执行完成
|
|
1678
1685
|
* @param data
|
|
@@ -1708,13 +1715,13 @@ class ee extends O {
|
|
|
1708
1715
|
* 进入命令约束
|
|
1709
1716
|
*/
|
|
1710
1717
|
constraint(e, t) {
|
|
1711
|
-
Array.isArray(t) ? t.length === 0 ? (
|
|
1718
|
+
Array.isArray(t) ? t.length === 0 ? (k({ message: "请选择线段", type: "warning" }), this.cancel()) : e(t) : (k({ message: "进入命令失败", type: "warning" }), this.cancel());
|
|
1712
1719
|
}
|
|
1713
1720
|
/** 开始
|
|
1714
1721
|
* @param next
|
|
1715
1722
|
*/
|
|
1716
1723
|
delete(e, t) {
|
|
1717
|
-
t.forEach((n) => this.renderManager.removeLine(n)),
|
|
1724
|
+
t.forEach((n) => this.renderManager.removeLine(n)), k({ message: "删除成功", type: "success" }), e(t);
|
|
1718
1725
|
}
|
|
1719
1726
|
/** 回滚操作
|
|
1720
1727
|
* @param data
|
|
@@ -1745,21 +1752,21 @@ class te extends O {
|
|
|
1745
1752
|
* 进入命令约束
|
|
1746
1753
|
*/
|
|
1747
1754
|
constraint(e, t) {
|
|
1748
|
-
Array.isArray(t) ? t.length !== 2 ? (
|
|
1755
|
+
Array.isArray(t) ? t.length !== 2 ? (k({ message: "请选择2条线段", type: "warning" }), this.cancel()) : e(t) : (k({ message: "进入命令失败", type: "warning" }), this.cancel());
|
|
1749
1756
|
}
|
|
1750
1757
|
/** 连接
|
|
1751
1758
|
* @param next
|
|
1752
1759
|
*/
|
|
1753
1760
|
connection(e, t) {
|
|
1754
|
-
let n,
|
|
1761
|
+
let n, o, s = 1 / 0;
|
|
1755
1762
|
for (let a = 0; a < 2; a++)
|
|
1756
|
-
for (let
|
|
1757
|
-
const
|
|
1758
|
-
|
|
1763
|
+
for (let l = 0; l < 2; l++) {
|
|
1764
|
+
const r = t[0].points[a], i = t[1].points[l], c = r.distance(i);
|
|
1765
|
+
c < s && (n = r, o = i, s = c);
|
|
1759
1766
|
}
|
|
1760
|
-
if (n &&
|
|
1761
|
-
const a = new
|
|
1762
|
-
e(a),
|
|
1767
|
+
if (n && o) {
|
|
1768
|
+
const a = new N(n.clone(), o.clone());
|
|
1769
|
+
e(a), k({ message: "连接成功", type: "success" });
|
|
1763
1770
|
} else this.cancel();
|
|
1764
1771
|
}
|
|
1765
1772
|
/** 成功
|
|
@@ -1798,32 +1805,32 @@ class ne extends O {
|
|
|
1798
1805
|
* 进入命令约束
|
|
1799
1806
|
*/
|
|
1800
1807
|
constraint(e, t) {
|
|
1801
|
-
Array.isArray(t) ? t.length !== 2 ? (
|
|
1808
|
+
Array.isArray(t) ? t.length !== 2 ? (k({ message: "请选择2条线段", type: "warning" }), this.cancel()) : e(t) : (k({ message: "进入命令失败", type: "warning" }), this.cancel());
|
|
1802
1809
|
}
|
|
1803
1810
|
/** 开始
|
|
1804
1811
|
* @param next
|
|
1805
1812
|
*/
|
|
1806
1813
|
connection(e, t) {
|
|
1807
|
-
const n = t[0],
|
|
1808
|
-
if (!
|
|
1809
|
-
const a = n.points.map((
|
|
1810
|
-
n.start.distance(
|
|
1811
|
-
const
|
|
1812
|
-
e({ line1: n, line2:
|
|
1814
|
+
const n = t[0], o = t[1], s = t[0].getIntersection(t[1]);
|
|
1815
|
+
if (!s) return;
|
|
1816
|
+
const a = n.points.map((c) => c.clone()), l = o.points.map((c) => c.clone());
|
|
1817
|
+
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);
|
|
1818
|
+
const r = n.points.map((c) => c.clone()), i = o.points.map((c) => c.clone());
|
|
1819
|
+
e({ line1: n, line2: o, oldLine1: a, oldLine2: l, newLine1: r, newLine2: i }), k({ message: "连接成功", type: "success" });
|
|
1813
1820
|
}
|
|
1814
1821
|
/** 执行完成
|
|
1815
1822
|
* @param next
|
|
1816
1823
|
* @param selectLines
|
|
1817
1824
|
*/
|
|
1818
|
-
completed({ line1: e, line2: t, newLine1: n, newLine2:
|
|
1819
|
-
this.renderManager.removeLine(e), this.renderManager.removeLine(t), e.set(...n), t.set(...
|
|
1825
|
+
completed({ line1: e, line2: t, newLine1: n, newLine2: o }) {
|
|
1826
|
+
this.renderManager.removeLine(e), this.renderManager.removeLine(t), e.set(...n), t.set(...o), this.renderManager.addLines([e, t]), this.renderManager.draw();
|
|
1820
1827
|
}
|
|
1821
1828
|
/** 回滚操作
|
|
1822
1829
|
* @param data
|
|
1823
1830
|
*/
|
|
1824
1831
|
rollback(e) {
|
|
1825
|
-
const { line1: t, line2: n, oldLine1:
|
|
1826
|
-
return this.renderManager.removeLine(t), this.renderManager.removeLine(n), t.set(...
|
|
1832
|
+
const { line1: t, line2: n, oldLine1: o, oldLine2: s } = e;
|
|
1833
|
+
return this.renderManager.removeLine(t), this.renderManager.removeLine(n), t.set(...o), n.set(...s), this.renderManager.addLines([t, n]), this.renderManager.draw(), e;
|
|
1827
1834
|
}
|
|
1828
1835
|
/** 撤回回滚
|
|
1829
1836
|
* @param lines
|
|
@@ -1833,34 +1840,34 @@ class ne extends O {
|
|
|
1833
1840
|
return this.completed(e), e;
|
|
1834
1841
|
}
|
|
1835
1842
|
}
|
|
1836
|
-
class
|
|
1843
|
+
class oe extends O {
|
|
1837
1844
|
static name = "DeleteSelectWindow";
|
|
1838
1845
|
shortcutKeys = ["Q", "Delete"];
|
|
1839
1846
|
static commandName = "deleteSelectWindow";
|
|
1840
1847
|
onAddFromParent(e) {
|
|
1841
1848
|
super.onAddFromParent(e);
|
|
1842
|
-
const t = this.commandManager.addCommandFlow(
|
|
1843
|
-
t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(
|
|
1844
|
-
this.eventInput.isKeyCombination(
|
|
1849
|
+
const t = this.commandManager.addCommandFlow(oe.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.end.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
|
|
1850
|
+
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 () => {
|
|
1851
|
+
this.eventInput.isKeyCombination(oe.commandName) && await this.commandManager.start(oe.commandName, [...this.default.selectLines]);
|
|
1845
1852
|
}), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
|
|
1846
1853
|
}
|
|
1847
1854
|
/**
|
|
1848
1855
|
* 进入命令约束
|
|
1849
1856
|
*/
|
|
1850
1857
|
constraint(e, t) {
|
|
1851
|
-
Array.isArray(t) ? t.some((n) => n.userData.isWindow) ? e(t) : (
|
|
1858
|
+
Array.isArray(t) ? t.some((n) => n.userData.isWindow) ? e(t) : (k({ message: "请选择有窗户线段", type: "warning" }), this.cancel()) : (k({ message: "进入命令失败", type: "warning" }), this.cancel());
|
|
1852
1859
|
}
|
|
1853
1860
|
/** 开始
|
|
1854
1861
|
* @param next
|
|
1855
1862
|
*/
|
|
1856
1863
|
end(e, t) {
|
|
1857
|
-
let n = !1,
|
|
1858
|
-
t.forEach((
|
|
1859
|
-
|
|
1860
|
-
line:
|
|
1861
|
-
drawDoorData:
|
|
1864
|
+
let n = !1, o = [];
|
|
1865
|
+
t.forEach((s) => {
|
|
1866
|
+
s.userData.isWindow && (o.push({
|
|
1867
|
+
line: s,
|
|
1868
|
+
drawDoorData: s.userData.drawDoorData
|
|
1862
1869
|
}), n = !0);
|
|
1863
|
-
}), n &&
|
|
1870
|
+
}), n && k({ message: "删除窗户成功", type: "success" }), e(o);
|
|
1864
1871
|
}
|
|
1865
1872
|
/**
|
|
1866
1873
|
* 完成
|
|
@@ -1890,16 +1897,16 @@ class se extends O {
|
|
|
1890
1897
|
return this.completed(e), e;
|
|
1891
1898
|
}
|
|
1892
1899
|
}
|
|
1893
|
-
class
|
|
1900
|
+
class se extends O {
|
|
1894
1901
|
static name = "SelectAll";
|
|
1895
|
-
container = new
|
|
1902
|
+
container = new u.Group();
|
|
1896
1903
|
shortcutKeys = ["control", "a"];
|
|
1897
1904
|
static commandName = "selectAll";
|
|
1898
1905
|
onAddFromParent(e) {
|
|
1899
1906
|
super.onAddFromParent(e), this.editor.container.add(this.container), this.container.position.z = 1e-3;
|
|
1900
|
-
const t = this.commandManager.addCommandFlow(
|
|
1901
|
-
t.writeOperationList = !1, t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(
|
|
1902
|
-
this.eventInput.isKeyCombination(
|
|
1907
|
+
const t = this.commandManager.addCommandFlow(se.commandName).add(this.createInterrupt()).add(this.selectAll.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
|
|
1908
|
+
t.writeOperationList = !1, 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 () => {
|
|
1909
|
+
this.eventInput.isKeyCombination(se.commandName) && await this.commandManager.start(se.commandName);
|
|
1903
1910
|
}), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
|
|
1904
1911
|
}
|
|
1905
1912
|
/** 开始
|
|
@@ -1942,7 +1949,7 @@ class ae extends O {
|
|
|
1942
1949
|
* 进入命令约束
|
|
1943
1950
|
*/
|
|
1944
1951
|
constraint(e, t) {
|
|
1945
|
-
Array.isArray(t) ? t.length !== 2 || !t[0].sameEndpoint(t[1]) ? (
|
|
1952
|
+
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());
|
|
1946
1953
|
}
|
|
1947
1954
|
/**
|
|
1948
1955
|
*
|
|
@@ -1950,38 +1957,38 @@ class ae extends O {
|
|
|
1950
1957
|
* @param selectLines
|
|
1951
1958
|
*/
|
|
1952
1959
|
viewAngle(e, t) {
|
|
1953
|
-
const [n,
|
|
1954
|
-
let a,
|
|
1955
|
-
n.sameEndpointAsStart(
|
|
1956
|
-
function
|
|
1957
|
-
const b =
|
|
1958
|
-
let W = Math.atan2(
|
|
1960
|
+
const [n, o] = t, s = Math.min(n.length() * 0.8, o.length() * 0.8);
|
|
1961
|
+
let a, l, r, i = 0, c = 0;
|
|
1962
|
+
n.sameEndpointAsStart(o) ? (a = n.start, l = n.end) : (a = n.end, l = n.start), o.sameEndpointAsStart(n) ? r = o.end : r = o.start;
|
|
1963
|
+
function m(_, L) {
|
|
1964
|
+
const b = L.x - _.x, z = L.y - _.y;
|
|
1965
|
+
let W = Math.atan2(z, b) * (180 / Math.PI);
|
|
1959
1966
|
return W < 0 && (W += 360), W;
|
|
1960
1967
|
}
|
|
1961
|
-
const y =
|
|
1962
|
-
function x(
|
|
1963
|
-
for (let b =
|
|
1964
|
-
const
|
|
1965
|
-
E.push(
|
|
1968
|
+
const y = m(a, l), f = m(a, r), g = Math.min(y, f), h = Math.max(y, f), E = [];
|
|
1969
|
+
function x(_, L) {
|
|
1970
|
+
for (let b = _; b <= L; b++) {
|
|
1971
|
+
const z = Math.cos(b * Math.PI / 180) * s + a.x, W = Math.sin(b * Math.PI / 180) * s + a.y, he = Math.cos((b + 1) * Math.PI / 180) * s + a.x, Ce = Math.sin((b + 1) * Math.PI / 180) * s + a.y;
|
|
1972
|
+
E.push(z, W, 0, he, Ce, 0);
|
|
1966
1973
|
}
|
|
1967
1974
|
}
|
|
1968
|
-
|
|
1969
|
-
const
|
|
1970
|
-
|
|
1975
|
+
h - g > 180 ? (x(0, g), x(h, 360), i = 360 - (h - g), c = (h + i / 2) % 360) : (x(g, h), i = h - g, c = g + i / 2);
|
|
1976
|
+
const I = new u.LineSegments();
|
|
1977
|
+
I.geometry = this.renderManager.createGeometry({
|
|
1971
1978
|
position: E
|
|
1972
|
-
}, E.length / 3),
|
|
1973
|
-
const
|
|
1979
|
+
}, E.length / 3), I.material = new u.LineBasicMaterial({ color: 16711935 }), this.renderManager.container.add(I);
|
|
1980
|
+
const K = Math.cos(c * Math.PI / 180) * s + a.x, Y = Math.sin(c * Math.PI / 180) * s + a.y, Z = this.renderer.createText(Number(i.toFixed(2)), new u.Vector3(K, Y, 0), {
|
|
1974
1981
|
textShadow: "0px 0px 2px #000"
|
|
1975
1982
|
}, this.renderManager.container);
|
|
1976
1983
|
let G = 0;
|
|
1977
|
-
this.addEventRecord("clear").add(() =>
|
|
1984
|
+
this.addEventRecord("clear").add(() => I.removeFromParent()).add(() => Z.removeFromParent()).add(this.eventInput.addEventListener("codeChange", () => {
|
|
1978
1985
|
this.eventInput.isOnlyKeyDown("enter") ? e() : this.eventInput.isOnlyKeyDown("mouse_0") && (G++, G === 1 ? setTimeout(() => G = 0, 500) : G === 2 && (e(), G = 0));
|
|
1979
1986
|
}));
|
|
1980
1987
|
}
|
|
1981
1988
|
}
|
|
1982
1989
|
class dt extends O {
|
|
1983
1990
|
static name = "ClippingLine";
|
|
1984
|
-
container = new
|
|
1991
|
+
container = new u.Group();
|
|
1985
1992
|
shortcutKeys = ["control", "x"];
|
|
1986
1993
|
commandName = "clippingLine";
|
|
1987
1994
|
static commandName = "clippingLine";
|
|
@@ -1994,24 +2001,24 @@ class dt extends O {
|
|
|
1994
2001
|
* @param next
|
|
1995
2002
|
*/
|
|
1996
2003
|
selectPointStart(e) {
|
|
1997
|
-
let t = null, n =
|
|
2004
|
+
let t = null, n = this.renderer.createCircle(M.zero(), { color: 16711935 }), o = null;
|
|
1998
2005
|
this.addEventRecord("selectPointStart").add(this.editor.addEventListener("pointerPositionChange", () => {
|
|
1999
|
-
const { point:
|
|
2000
|
-
this.dispatchEvent({ type: "pointerMove", point:
|
|
2006
|
+
const { point: s, line: a, find: l } = this.editor.renderManager.adsorption();
|
|
2007
|
+
this.dispatchEvent({ type: "pointerMove", point: s }), l ? (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());
|
|
2001
2008
|
})).add(this.eventInput.addEventListener("codeChange", () => {
|
|
2002
|
-
this.eventInput.isKeyDown("mouse_0") && t && (this.canceEventRecord("selectPointStart"), e({ point: t, line:
|
|
2009
|
+
this.eventInput.isKeyDown("mouse_0") && t && (this.canceEventRecord("selectPointStart"), e({ point: t, line: o }));
|
|
2003
2010
|
})), this.addEventRecord("clear").add(() => n.removeFromParent());
|
|
2004
2011
|
}
|
|
2005
2012
|
/** 选择结束点
|
|
2006
2013
|
* @param next
|
|
2007
2014
|
*/
|
|
2008
2015
|
selectPointEnd(e, { point: t, line: n }) {
|
|
2009
|
-
let
|
|
2010
|
-
this.addEventRecord("clear").add(() =>
|
|
2011
|
-
const { point: a, find:
|
|
2012
|
-
this.dispatchEvent({ type: "pointerMove", point: a }),
|
|
2016
|
+
let o = null, s = this.renderer.createCircle(M.zero(), { color: 16711935 });
|
|
2017
|
+
this.addEventRecord("clear").add(() => s.removeFromParent()).add(this.editor.addEventListener("pointerPositionChange", () => {
|
|
2018
|
+
const { point: a, find: l, line: r } = this.editor.renderManager.adsorption();
|
|
2019
|
+
this.dispatchEvent({ type: "pointerMove", point: a }), l && 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());
|
|
2013
2020
|
})).add(this.eventInput.addEventListener("codeChange", () => {
|
|
2014
|
-
this.eventInput.isKeyDown("mouse_0") &&
|
|
2021
|
+
this.eventInput.isKeyDown("mouse_0") && o && e({ line: n, start: t, end: o });
|
|
2015
2022
|
}));
|
|
2016
2023
|
}
|
|
2017
2024
|
/**
|
|
@@ -2019,24 +2026,24 @@ class dt extends O {
|
|
|
2019
2026
|
* @param next
|
|
2020
2027
|
* @param points
|
|
2021
2028
|
*/
|
|
2022
|
-
end(e, { start: t, end: n, line:
|
|
2023
|
-
const
|
|
2029
|
+
end(e, { start: t, end: n, line: o }) {
|
|
2030
|
+
const s = M.from(t), a = M.from(n);
|
|
2024
2031
|
e({
|
|
2025
|
-
oldLine:
|
|
2026
|
-
newLine1: new
|
|
2027
|
-
|
|
2028
|
-
|
|
2032
|
+
oldLine: o,
|
|
2033
|
+
newLine1: new N(
|
|
2034
|
+
o.start,
|
|
2035
|
+
o.start.distance(s) < o.start.distance(a) ? s.clone() : a.clone()
|
|
2029
2036
|
),
|
|
2030
|
-
newLine2: new
|
|
2031
|
-
|
|
2032
|
-
|
|
2037
|
+
newLine2: new N(
|
|
2038
|
+
o.end,
|
|
2039
|
+
o.end.distance(s) < o.end.distance(a) ? s.clone() : a.clone()
|
|
2033
2040
|
)
|
|
2034
2041
|
});
|
|
2035
2042
|
}
|
|
2036
2043
|
/** 执行完成
|
|
2037
2044
|
*/
|
|
2038
2045
|
completed(e) {
|
|
2039
|
-
this.renderManager.removeLine(e.oldLine), this.renderManager.addLines([e.newLine1, e.newLine2]), this.renderManager.draw();
|
|
2046
|
+
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));
|
|
2040
2047
|
}
|
|
2041
2048
|
/** 回滚操作
|
|
2042
2049
|
* @param data
|
|
@@ -2067,7 +2074,7 @@ class ie extends O {
|
|
|
2067
2074
|
* 进入命令约束
|
|
2068
2075
|
*/
|
|
2069
2076
|
constraint(e, t) {
|
|
2070
|
-
Array.isArray(t) ? t.length !== 1 ? (
|
|
2077
|
+
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());
|
|
2071
2078
|
}
|
|
2072
2079
|
/**
|
|
2073
2080
|
*
|
|
@@ -2080,58 +2087,58 @@ class ie extends O {
|
|
|
2080
2087
|
}), t[0].userData.isVerticalReferenceLine = !0, e(), this.renderManager.draw();
|
|
2081
2088
|
}
|
|
2082
2089
|
}
|
|
2083
|
-
const
|
|
2090
|
+
const ro = {
|
|
2084
2091
|
key: 0,
|
|
2085
2092
|
class: "mt-[5px] text-[#ccc] text-[11px] absolute left-[10px] bottom-[10px] rounded-[8px] min-w-[150px] bg-black/15 p-[10px]"
|
|
2086
|
-
},
|
|
2093
|
+
}, lo = { class: "text-start max-w-[150px]" }, co = { class: "inline-block ml-[10px] text-[var(--color-primary)]" }, mo = {
|
|
2087
2094
|
key: 0,
|
|
2088
2095
|
class: "p-[5px] max-w-[200px]"
|
|
2089
|
-
},
|
|
2096
|
+
}, ho = { class: "text-[14px] flex flex-col" }, uo = ["onClick"], po = { class: "flex flex-row items-center" }, go = { class: "flex justify-center items-center size-[20px] bg-[#f0f0f0] rounded-[2px] mr-[10px]" }, vo = ["src"], fo = { class: "text-wrap" }, yo = {
|
|
2090
2097
|
key: 1,
|
|
2091
2098
|
class: "text-[#999]"
|
|
2092
|
-
},
|
|
2099
|
+
}, wo = {
|
|
2093
2100
|
style: { "--el-color-primary": "var(--primary-color)" },
|
|
2094
2101
|
class: "flex flex-row items-center justify-between gap-[10px] mt-[10px] text-[10px]"
|
|
2095
|
-
},
|
|
2102
|
+
}, bo = {
|
|
2096
2103
|
key: 0,
|
|
2097
2104
|
class: "flex flex-row items-center flex-wrap justify-between gap-[10px] mt-[10px] text-[10px]"
|
|
2098
|
-
},
|
|
2105
|
+
}, xo = { class: "flex-wrap border-t-1 border-t-[#eee] mt-[5px] pt-[5px] flex items-center gap-[10px]" }, Co = ["onClick", "title"], Eo = ["src"], Mo = /* @__PURE__ */ me({
|
|
2099
2106
|
__name: "EditorTool",
|
|
2100
2107
|
props: {
|
|
2101
2108
|
dxfSystem: {},
|
|
2102
2109
|
permission: {}
|
|
2103
2110
|
},
|
|
2104
|
-
setup(
|
|
2105
|
-
function e(C,
|
|
2111
|
+
setup(d) {
|
|
2112
|
+
function e(C, p, w = m.value.getBoundingClientRect(), U = y.value.getBoundingClientRect()) {
|
|
2106
2113
|
const ue = w.width - U.width, pe = 0, Me = w.height - U.height;
|
|
2107
|
-
C = Math.max(0, Math.min(C, ue)),
|
|
2114
|
+
C = Math.max(0, Math.min(C, ue)), p = Math.max(pe, Math.min(p, Me)), _.value = { left: C, top: p };
|
|
2108
2115
|
}
|
|
2109
2116
|
function t(C) {
|
|
2110
|
-
|
|
2117
|
+
g.value !== C.command && (g.value !== "default" && x.commandManager.cancel(), setTimeout(() => x.commandManager.start(C.command)));
|
|
2111
2118
|
}
|
|
2112
2119
|
function n(C) {
|
|
2113
2120
|
if (C) {
|
|
2114
2121
|
localStorage.setItem("lines", JSON.stringify(C));
|
|
2115
2122
|
try {
|
|
2116
|
-
|
|
2117
|
-
} catch (
|
|
2118
|
-
console.log(
|
|
2123
|
+
h.Dxf.set(C), h.Dxf.lineOffset();
|
|
2124
|
+
} catch (p) {
|
|
2125
|
+
console.log(p);
|
|
2119
2126
|
}
|
|
2120
2127
|
}
|
|
2121
2128
|
}
|
|
2122
|
-
async function
|
|
2129
|
+
async function o() {
|
|
2123
2130
|
const C = await Dt.json();
|
|
2124
2131
|
Array.isArray(C) && (localStorage.removeItem("orbitControls"), n(C));
|
|
2125
2132
|
}
|
|
2126
|
-
function
|
|
2133
|
+
function s({ offsetX: C, offsetY: p }) {
|
|
2127
2134
|
E.mouseMoveEventProxylock = !0;
|
|
2128
2135
|
const w = document.body.style.cursor;
|
|
2129
2136
|
document.body.style.cursor = "move";
|
|
2130
2137
|
const U = (ue) => {
|
|
2131
|
-
const pe =
|
|
2138
|
+
const pe = m.value.getBoundingClientRect(), Me = y.value.getBoundingClientRect();
|
|
2132
2139
|
e(
|
|
2133
2140
|
ue.pageX - pe.left - C,
|
|
2134
|
-
ue.pageY - pe.top -
|
|
2141
|
+
ue.pageY - pe.top - p,
|
|
2135
2142
|
pe,
|
|
2136
2143
|
Me
|
|
2137
2144
|
), ue.stopPropagation(), document.body.style.cursor = "move";
|
|
@@ -2140,7 +2147,7 @@ const is = {
|
|
|
2140
2147
|
};
|
|
2141
2148
|
document.body.addEventListener("mousemove", U), document.addEventListener("mouseup", Ee);
|
|
2142
2149
|
}
|
|
2143
|
-
const a =
|
|
2150
|
+
const a = d, l = S(!0), r = S(!0), i = S(!0), c = S(!1), m = S(), y = S(), f = S(!0), g = S(""), h = zt(a.dxfSystem), E = h.findComponentByType(Pt), x = h.findComponentByType(lt), I = h.findComponentByType(rt), K = h.findComponentByType(St), Y = h.findComponentByType(Nt), Z = S(0), G = S(0), _ = S({ left: 10, top: 100 }), L = /* @__PURE__ */ Object.assign({ "./assets/images/angle.svg": Mn, "./assets/images/connection.svg": kn, "./assets/images/cutLine.svg": Pn, "./assets/images/deleteSelectLine.svg": An, "./assets/images/deleteSelectWindow.svg": Sn, "./assets/images/door.svg": Bn, "./assets/images/intersectionConnection.svg": On, "./assets/images/line.svg": Fn, "./assets/images/mergeLine.svg": Tn, "./assets/images/revokeRollback.svg": Vn, "./assets/images/rollback.svg": Qn, "./assets/images/selectAll.svg": Wn, "./assets/images/selectPoint.svg": Un, "./assets/images/verticalCorrection.svg": Zn, "./assets/images/verticalLine.svg": Xn, "./assets/images/window.svg": eo }), b = S(!1), z = S(0), W = S(!1), he = new ResizeObserver(() => e(_.value.left, _.value.top)), Ce = [
|
|
2144
2151
|
{ name: "开启绘制线段命令", shortcut: "Ctrl + L" },
|
|
2145
2152
|
{ name: "开启绘制门线命令", shortcut: "Ctrl + M" },
|
|
2146
2153
|
{ name: "开启绘制窗户线命令", shortcut: "Ctrl + Q" },
|
|
@@ -2170,7 +2177,7 @@ const is = {
|
|
|
2170
2177
|
{
|
|
2171
2178
|
command: "draw-line",
|
|
2172
2179
|
name: "绘制线段",
|
|
2173
|
-
src:
|
|
2180
|
+
src: L["./assets/images/line.svg"].default,
|
|
2174
2181
|
show: !0,
|
|
2175
2182
|
shortcut: "Ctrl + L"
|
|
2176
2183
|
},
|
|
@@ -2178,36 +2185,36 @@ const is = {
|
|
|
2178
2185
|
command: "draw-door-line",
|
|
2179
2186
|
name: "绘制门线",
|
|
2180
2187
|
show: !0,
|
|
2181
|
-
src:
|
|
2188
|
+
src: L["./assets/images/door.svg"].default,
|
|
2182
2189
|
shortcut: "Ctrl + M"
|
|
2183
2190
|
},
|
|
2184
2191
|
{
|
|
2185
2192
|
command: "draw-window-line",
|
|
2186
2193
|
name: "绘制窗户线",
|
|
2187
2194
|
show: !0,
|
|
2188
|
-
src:
|
|
2195
|
+
src: L["./assets/images/window.svg"].default,
|
|
2189
2196
|
shortcut: "Ctrl + Q"
|
|
2190
2197
|
},
|
|
2191
2198
|
{
|
|
2192
2199
|
command: "point",
|
|
2193
2200
|
name: "点修改",
|
|
2194
2201
|
show: !0,
|
|
2195
|
-
src:
|
|
2202
|
+
src: L["./assets/images/selectPoint.svg"].default,
|
|
2196
2203
|
shortcut: "Ctrl + P"
|
|
2197
2204
|
},
|
|
2198
2205
|
{
|
|
2199
2206
|
command: dt.commandName,
|
|
2200
2207
|
name: "裁剪线段",
|
|
2201
2208
|
show: !0,
|
|
2202
|
-
src:
|
|
2209
|
+
src: L["./assets/images/cutLine.svg"].default,
|
|
2203
2210
|
shortcut: "Ctrl + X"
|
|
2204
2211
|
}
|
|
2205
2212
|
], mt = [
|
|
2206
2213
|
{
|
|
2207
2214
|
command: "",
|
|
2208
2215
|
name: "操作回滚",
|
|
2209
|
-
src:
|
|
2210
|
-
show:
|
|
2216
|
+
src: L["./assets/images/rollback.svg"].default,
|
|
2217
|
+
show: A(() => Z.value !== 0),
|
|
2211
2218
|
shortcut: "Ctrl + Z",
|
|
2212
2219
|
action() {
|
|
2213
2220
|
x.commandManager.rollback();
|
|
@@ -2216,8 +2223,8 @@ const is = {
|
|
|
2216
2223
|
{
|
|
2217
2224
|
command: "",
|
|
2218
2225
|
name: "撤销操作回滚",
|
|
2219
|
-
src:
|
|
2220
|
-
show:
|
|
2226
|
+
src: L["./assets/images/revokeRollback.svg"].default,
|
|
2227
|
+
show: A(() => G.value !== 0),
|
|
2221
2228
|
shortcut: "Ctrl + Y",
|
|
2222
2229
|
class: "rotateY-[180deg]",
|
|
2223
2230
|
action() {
|
|
@@ -2227,29 +2234,29 @@ const is = {
|
|
|
2227
2234
|
{
|
|
2228
2235
|
command: $.commandName,
|
|
2229
2236
|
name: "合并",
|
|
2230
|
-
src:
|
|
2231
|
-
show:
|
|
2237
|
+
src: L["./assets/images/mergeLine.svg"].default,
|
|
2238
|
+
show: A(() => z.value === 2),
|
|
2232
2239
|
shortcut: "Ctrl + G"
|
|
2233
2240
|
},
|
|
2234
2241
|
{
|
|
2235
2242
|
command: te.commandName,
|
|
2236
2243
|
name: "两点连接",
|
|
2237
|
-
show:
|
|
2238
|
-
src:
|
|
2244
|
+
show: A(() => z.value === 2),
|
|
2245
|
+
src: L["./assets/images/connection.svg"].default,
|
|
2239
2246
|
shortcut: "Shift + L"
|
|
2240
2247
|
},
|
|
2241
2248
|
{
|
|
2242
2249
|
command: ne.commandName,
|
|
2243
2250
|
name: "延长线交点连接",
|
|
2244
|
-
show:
|
|
2245
|
-
src:
|
|
2251
|
+
show: A(() => z.value === 2),
|
|
2252
|
+
src: L["./assets/images/intersectionConnection.svg"].default,
|
|
2246
2253
|
shortcut: "Ctrl + Shift + L"
|
|
2247
2254
|
},
|
|
2248
2255
|
{
|
|
2249
2256
|
command: le.commandName,
|
|
2250
2257
|
name: "线段垂直纠正",
|
|
2251
|
-
show:
|
|
2252
|
-
src:
|
|
2258
|
+
show: A(() => z.value === 1),
|
|
2259
|
+
src: L["./assets/images/verticalCorrection.svg"].default,
|
|
2253
2260
|
shortcut: `
|
|
2254
2261
|
Ctrl + C 垂直纠正
|
|
2255
2262
|
Shift + C 轴对齐垂直纠正
|
|
@@ -2258,56 +2265,56 @@ const is = {
|
|
|
2258
2265
|
{
|
|
2259
2266
|
command: ie.commandName,
|
|
2260
2267
|
name: "y轴垂直基准线",
|
|
2261
|
-
show:
|
|
2262
|
-
() =>
|
|
2268
|
+
show: A(
|
|
2269
|
+
() => z.value === 1 && !I.selectLines[0].userData.isDoor
|
|
2263
2270
|
),
|
|
2264
|
-
src:
|
|
2271
|
+
src: L["./assets/images/verticalLine.svg"].default,
|
|
2265
2272
|
shortcut: "V"
|
|
2266
2273
|
},
|
|
2267
2274
|
{
|
|
2268
2275
|
command: ae.commandName,
|
|
2269
2276
|
name: "角度显示",
|
|
2270
|
-
show:
|
|
2271
|
-
src:
|
|
2277
|
+
show: A(() => z.value === 2 && I.selectLines[0].sameEndpoint(I.selectLines[1])),
|
|
2278
|
+
src: L["./assets/images/angle.svg"].default,
|
|
2272
2279
|
shortcut: "r"
|
|
2273
2280
|
},
|
|
2274
2281
|
{
|
|
2275
|
-
command:
|
|
2282
|
+
command: se.commandName,
|
|
2276
2283
|
name: "全选",
|
|
2277
|
-
show:
|
|
2278
|
-
src:
|
|
2284
|
+
show: A(() => z.value !== x.renderManager.lines.length),
|
|
2285
|
+
src: L["./assets/images/selectAll.svg"].default,
|
|
2279
2286
|
shortcut: "Ctrl + A"
|
|
2280
2287
|
},
|
|
2281
2288
|
{
|
|
2282
|
-
command:
|
|
2289
|
+
command: oe.commandName,
|
|
2283
2290
|
name: "清除窗户",
|
|
2284
|
-
show:
|
|
2285
|
-
src:
|
|
2291
|
+
show: A(() => W.value),
|
|
2292
|
+
src: L["./assets/images/deleteSelectWindow.svg"].default,
|
|
2286
2293
|
shortcut: "Q + Delete"
|
|
2287
2294
|
},
|
|
2288
2295
|
{
|
|
2289
2296
|
command: ee.commandName,
|
|
2290
2297
|
name: "删除",
|
|
2291
|
-
show:
|
|
2292
|
-
src:
|
|
2298
|
+
show: A(() => z.value > 0),
|
|
2299
|
+
src: L["./assets/images/deleteSelectLine.svg"].default,
|
|
2293
2300
|
shortcut: "Delete"
|
|
2294
2301
|
}
|
|
2295
2302
|
];
|
|
2296
|
-
J(
|
|
2297
|
-
localStorage.setItem("toolBarExpand", f.value + ""), f.value &&
|
|
2298
|
-
}), J(
|
|
2303
|
+
J(_, () => localStorage.setItem("editorToolPosition", JSON.stringify(_.value))), J(b, () => localStorage.setItem("showShortcutKey", b.value + "")), J(f, () => {
|
|
2304
|
+
localStorage.setItem("toolBarExpand", f.value + ""), f.value && we(() => e(_.value.left, _.value.top));
|
|
2305
|
+
}), J(l, () => h.Variable.set("originalLineVisible", l.value)), J(r, () => h.Variable.set("dxfVisible", r.value)), J(i, () => h.Variable.set("whiteModelVisible", i.value)), h.Variable.addEventListener("isLook", (C) => c.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);
|
|
2299
2306
|
const ht = x.commandManager.addEventListener("started", (C) => {
|
|
2300
|
-
|
|
2307
|
+
g.value = C.name;
|
|
2301
2308
|
});
|
|
2302
2309
|
return localStorage.getItem("showShortcutKey") && (b.value = localStorage.getItem("showShortcutKey") === "true"), localStorage.getItem("toolBarExpand") && (f.value = localStorage.getItem("toolBarExpand") === "true"), tt(() => {
|
|
2303
2310
|
y.value.style.display = "none", setTimeout(() => {
|
|
2304
2311
|
if (y.value.style.display = "block", localStorage.getItem("editorToolPosition")) {
|
|
2305
|
-
const { left: C, top:
|
|
2306
|
-
e(C,
|
|
2312
|
+
const { left: C, top: p } = JSON.parse(localStorage.getItem("editorToolPosition") ?? "{}");
|
|
2313
|
+
e(C, p), we(() => he.observe(m.value));
|
|
2307
2314
|
} else
|
|
2308
|
-
|
|
2309
|
-
}, 100),
|
|
2310
|
-
|
|
2315
|
+
we(() => he.observe(m.value));
|
|
2316
|
+
}, 100), I.addEventListener("selectLineChange", () => {
|
|
2317
|
+
z.value = I.selectLines.length, W.value = I.selectLines.some((C) => C.userData.isWindow);
|
|
2311
2318
|
}), ["rollback", "completed", "revokeRollback"].forEach((C) => {
|
|
2312
2319
|
x.commandManager.addEventListener(C, () => {
|
|
2313
2320
|
setTimeout(() => {
|
|
@@ -2317,43 +2324,43 @@ const is = {
|
|
|
2317
2324
|
});
|
|
2318
2325
|
}), Ft(() => {
|
|
2319
2326
|
E.mouseMoveEventProxylock = !1, ht(), he.disconnect();
|
|
2320
|
-
}), (C,
|
|
2327
|
+
}), (C, p) => (D(), R("div", {
|
|
2321
2328
|
ref_key: "elRef",
|
|
2322
|
-
ref:
|
|
2329
|
+
ref: m,
|
|
2323
2330
|
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]"
|
|
2324
2331
|
}, [
|
|
2325
|
-
|
|
2332
|
+
F(xe, null, {
|
|
2326
2333
|
default: j(() => [
|
|
2327
|
-
b.value ? (
|
|
2328
|
-
(
|
|
2334
|
+
b.value ? (D(), R("div", ro, [
|
|
2335
|
+
(D(), R(ve, null, ke(Ce, (w) => P("div", {
|
|
2329
2336
|
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",
|
|
2330
2337
|
key: w.name
|
|
2331
2338
|
}, [
|
|
2332
|
-
|
|
2333
|
-
|
|
2339
|
+
P("p", lo, de(w.name), 1),
|
|
2340
|
+
P("span", co, de(w.shortcut), 1)
|
|
2334
2341
|
])), 64))
|
|
2335
2342
|
])) : q("", !0)
|
|
2336
2343
|
]),
|
|
2337
2344
|
_: 1
|
|
2338
2345
|
}),
|
|
2339
|
-
|
|
2346
|
+
P("div", {
|
|
2340
2347
|
ref_key: "toolBarRef",
|
|
2341
2348
|
ref: y,
|
|
2342
|
-
style: _e({ left:
|
|
2349
|
+
style: _e({ left: _.value.left + "px", top: _.value.top + "px" }),
|
|
2343
2350
|
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 }]),
|
|
2344
|
-
onMousedown:
|
|
2351
|
+
onMousedown: p[10] || (p[10] = (w) => w.stopPropagation())
|
|
2345
2352
|
}, [
|
|
2346
|
-
|
|
2347
|
-
onMousedown:
|
|
2353
|
+
P("div", {
|
|
2354
|
+
onMousedown: s,
|
|
2348
2355
|
class: V([{ "border-b-[#eee] border-b-1": f.value }, "flex flex-row justify-between header text-[14px] font-bold p-[10px 0px]"])
|
|
2349
2356
|
}, [
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
onMousedown:
|
|
2353
|
-
onClick:
|
|
2357
|
+
p[12] || (p[12] = Kt('<div class="flex flex-row" data-v-097b01ef><div class="p-[2px_5px] flex items-center pointer-events-none" data-v-097b01ef><svg fill="#aaa" width="20" height="20" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" data-v-097b01ef><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-097b01ef></path></svg></div><h5 class="flex text-nowrap text-[12px] items-center pointer-events-none" data-v-097b01ef>绘制工具</h5></div>', 1)),
|
|
2358
|
+
P("div", {
|
|
2359
|
+
onMousedown: p[0] || (p[0] = (w) => w.stopPropagation()),
|
|
2360
|
+
onClick: p[1] || (p[1] = (w) => f.value = !f.value),
|
|
2354
2361
|
class: "cursor-pointer flex items-center p-[0px_5px]"
|
|
2355
2362
|
}, [
|
|
2356
|
-
(
|
|
2363
|
+
(D(), R("svg", {
|
|
2357
2364
|
fill: "#666",
|
|
2358
2365
|
class: V([{ "rotate-90": f.value }, "transition-all"]),
|
|
2359
2366
|
viewBox: "0 0 1024 1024",
|
|
@@ -2361,42 +2368,42 @@ const is = {
|
|
|
2361
2368
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2362
2369
|
width: "12",
|
|
2363
2370
|
height: "12"
|
|
2364
|
-
},
|
|
2365
|
-
|
|
2371
|
+
}, p[11] || (p[11] = [
|
|
2372
|
+
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)
|
|
2366
2373
|
]), 2))
|
|
2367
2374
|
], 32)
|
|
2368
2375
|
], 34),
|
|
2369
|
-
f.value ? (
|
|
2370
|
-
|
|
2371
|
-
(
|
|
2376
|
+
f.value ? (D(), R("div", mo, [
|
|
2377
|
+
P("ul", ho, [
|
|
2378
|
+
(D(), R(ve, null, ke(ct, (w) => (D(), R(ve, {
|
|
2372
2379
|
key: w.command
|
|
2373
2380
|
}, [
|
|
2374
|
-
w.show ? (
|
|
2381
|
+
w.show ? (D(), R("li", {
|
|
2375
2382
|
key: 0,
|
|
2376
2383
|
onClick: (U) => t(w),
|
|
2377
2384
|
class: V([{
|
|
2378
|
-
"!bg-[var(--primary-color)] text-[#fff]":
|
|
2379
|
-
|
|
2385
|
+
"!bg-[var(--primary-color)] text-[#fff]": g.value === w.command
|
|
2386
|
+
// '!cursor-no-drop': currentCommand !== item.command && currentCommand !== 'default',
|
|
2380
2387
|
}, "gap-[10px] text-[12px] hover:bg-[#ddd] transition-all rounded-[6px] p-[5px] flex flex-row items-center justify-between cursor-pointer"])
|
|
2381
2388
|
}, [
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2389
|
+
P("div", po, [
|
|
2390
|
+
P("div", go, [
|
|
2391
|
+
P("img", {
|
|
2385
2392
|
class: "size-[14px]",
|
|
2386
2393
|
src: w.src,
|
|
2387
2394
|
alt: "",
|
|
2388
2395
|
srcset: ""
|
|
2389
|
-
}, null, 8,
|
|
2396
|
+
}, null, 8, vo)
|
|
2390
2397
|
]),
|
|
2391
|
-
|
|
2398
|
+
P("span", fo, de(w.name), 1)
|
|
2392
2399
|
]),
|
|
2393
|
-
|
|
2400
|
+
g.value === w.command ? (D(), R("div", {
|
|
2394
2401
|
key: 0,
|
|
2395
2402
|
title: "取消命令(Esc)",
|
|
2396
2403
|
class: "active:scale-[0.7] transition-all",
|
|
2397
|
-
onClick:
|
|
2398
|
-
},
|
|
2399
|
-
|
|
2404
|
+
onClick: p[2] || (p[2] = (U) => (v(x).cancelCommand(), U.stopPropagation()))
|
|
2405
|
+
}, p[13] || (p[13] = [
|
|
2406
|
+
P("svg", {
|
|
2400
2407
|
fill: "#fff",
|
|
2401
2408
|
width: "16",
|
|
2402
2409
|
height: "16",
|
|
@@ -2404,120 +2411,120 @@ const is = {
|
|
|
2404
2411
|
version: "1.1",
|
|
2405
2412
|
xmlns: "http://www.w3.org/2000/svg"
|
|
2406
2413
|
}, [
|
|
2407
|
-
|
|
2408
|
-
|
|
2414
|
+
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" }),
|
|
2415
|
+
P("path", { d: "M236.437333 463.914667l549.333333 0 0 96.874667-549.333333 0 0-96.874667Z" })
|
|
2409
2416
|
], -1)
|
|
2410
|
-
]))) : w.shortcut ? (
|
|
2411
|
-
], 10,
|
|
2417
|
+
]))) : w.shortcut ? (D(), R("div", yo, de(w.shortcut), 1)) : q("", !0)
|
|
2418
|
+
], 10, uo)) : q("", !0)
|
|
2412
2419
|
], 64))), 64))
|
|
2413
2420
|
]),
|
|
2414
|
-
|
|
2415
|
-
|
|
2421
|
+
P("div", wo, [
|
|
2422
|
+
F(v(Oe), {
|
|
2416
2423
|
size: "small",
|
|
2417
2424
|
modelValue: b.value,
|
|
2418
|
-
"onUpdate:modelValue":
|
|
2425
|
+
"onUpdate:modelValue": p[3] || (p[3] = (w) => b.value = w),
|
|
2419
2426
|
label: "快捷键提示"
|
|
2420
2427
|
}, null, 8, ["modelValue"]),
|
|
2421
|
-
|
|
2428
|
+
F(v(Oe), {
|
|
2422
2429
|
size: "small",
|
|
2423
|
-
modelValue:
|
|
2424
|
-
"onUpdate:modelValue":
|
|
2430
|
+
modelValue: r.value,
|
|
2431
|
+
"onUpdate:modelValue": p[4] || (p[4] = (w) => r.value = w),
|
|
2425
2432
|
label: "dxf"
|
|
2426
2433
|
}, null, 8, ["modelValue"])
|
|
2427
2434
|
]),
|
|
2428
|
-
C.permission === "admin" ? (
|
|
2429
|
-
|
|
2435
|
+
C.permission === "admin" ? (D(), R("div", bo, [
|
|
2436
|
+
F(v(re), {
|
|
2430
2437
|
style: { padding: "5px", "font-size": "10px" },
|
|
2431
2438
|
size: "small",
|
|
2432
2439
|
type: "success",
|
|
2433
|
-
onClick:
|
|
2440
|
+
onClick: o
|
|
2434
2441
|
}, {
|
|
2435
|
-
default: j(() =>
|
|
2442
|
+
default: j(() => p[14] || (p[14] = [
|
|
2436
2443
|
X(" 选择文件 ", -1)
|
|
2437
2444
|
])),
|
|
2438
2445
|
_: 1,
|
|
2439
2446
|
__: [14]
|
|
2440
2447
|
}),
|
|
2441
|
-
|
|
2448
|
+
F(v(re), {
|
|
2442
2449
|
style: { padding: "5px", "font-size": "10px" },
|
|
2443
2450
|
size: "small",
|
|
2444
2451
|
type: "primary",
|
|
2445
|
-
onClick:
|
|
2452
|
+
onClick: p[5] || (p[5] = (w) => v(h).Dxf.downloadOriginalData("json.json"))
|
|
2446
2453
|
}, {
|
|
2447
|
-
default: j(() =>
|
|
2454
|
+
default: j(() => p[15] || (p[15] = [
|
|
2448
2455
|
X(" 下载Json ", -1)
|
|
2449
2456
|
])),
|
|
2450
2457
|
_: 1,
|
|
2451
2458
|
__: [15]
|
|
2452
2459
|
}),
|
|
2453
|
-
|
|
2460
|
+
F(v(re), {
|
|
2454
2461
|
style: { padding: "5px", "font-size": "10px" },
|
|
2455
2462
|
size: "small",
|
|
2456
2463
|
type: "primary",
|
|
2457
|
-
onClick:
|
|
2464
|
+
onClick: p[6] || (p[6] = (w) => v(h).AngleCorrectionDxf.download("test.dxf"))
|
|
2458
2465
|
}, {
|
|
2459
|
-
default: j(() =>
|
|
2466
|
+
default: j(() => p[16] || (p[16] = [
|
|
2460
2467
|
X(" 下载DXF ", -1)
|
|
2461
2468
|
])),
|
|
2462
2469
|
_: 1,
|
|
2463
2470
|
__: [16]
|
|
2464
2471
|
}),
|
|
2465
|
-
|
|
2472
|
+
F(v(re), {
|
|
2466
2473
|
style: { padding: "5px", "font-size": "10px" },
|
|
2467
2474
|
size: "small",
|
|
2468
2475
|
type: "primary",
|
|
2469
|
-
onClick:
|
|
2476
|
+
onClick: p[7] || (p[7] = (w) => v(h).AngleCorrectionDxf.downloadImage("dxf.jpg"))
|
|
2470
2477
|
}, {
|
|
2471
|
-
default: j(() =>
|
|
2478
|
+
default: j(() => p[17] || (p[17] = [
|
|
2472
2479
|
X(" 下载JPG ", -1)
|
|
2473
2480
|
])),
|
|
2474
2481
|
_: 1,
|
|
2475
2482
|
__: [17]
|
|
2476
2483
|
}),
|
|
2477
|
-
|
|
2484
|
+
F(v(re), {
|
|
2478
2485
|
style: { padding: "5px", "font-size": "10px" },
|
|
2479
2486
|
size: "small",
|
|
2480
2487
|
type: "primary",
|
|
2481
|
-
onClick:
|
|
2488
|
+
onClick: p[8] || (p[8] = (w) => v(K).downloadGltf("test.glb", !0))
|
|
2482
2489
|
}, {
|
|
2483
|
-
default: j(() =>
|
|
2490
|
+
default: j(() => p[18] || (p[18] = [
|
|
2484
2491
|
X(" 下载白膜 ", -1)
|
|
2485
2492
|
])),
|
|
2486
2493
|
_: 1,
|
|
2487
2494
|
__: [18]
|
|
2488
2495
|
}),
|
|
2489
|
-
|
|
2496
|
+
F(v(re), {
|
|
2490
2497
|
style: { padding: "5px", "font-size": "10px" },
|
|
2491
2498
|
size: "small",
|
|
2492
2499
|
type: "primary",
|
|
2493
|
-
onClick:
|
|
2500
|
+
onClick: p[9] || (p[9] = (w) => v(Y).download())
|
|
2494
2501
|
}, {
|
|
2495
|
-
default: j(() =>
|
|
2502
|
+
default: j(() => p[19] || (p[19] = [
|
|
2496
2503
|
X(" 下载三维家JSON ", -1)
|
|
2497
2504
|
])),
|
|
2498
2505
|
_: 1,
|
|
2499
2506
|
__: [19]
|
|
2500
2507
|
})
|
|
2501
2508
|
])) : q("", !0),
|
|
2502
|
-
|
|
2509
|
+
F(xe, null, {
|
|
2503
2510
|
default: j(() => [
|
|
2504
|
-
|
|
2505
|
-
|
|
2511
|
+
P("div", xo, [
|
|
2512
|
+
F(Tt, null, {
|
|
2506
2513
|
default: j(() => [
|
|
2507
|
-
(
|
|
2508
|
-
onClick: (U) => w.show.value &&
|
|
2514
|
+
(D(), R(ve, null, ke(mt, (w) => P("div", {
|
|
2515
|
+
onClick: (U) => w.show.value && g.value === "default" && (w.action ? w.action() : v(x).commandManager.start(w.command, [...v(I).selectLines])),
|
|
2509
2516
|
title: `${w.name}(${w.shortcut})`,
|
|
2510
2517
|
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", {
|
|
2511
|
-
"opacity-30 bg-[#ccc] !cursor-no-drop active:!scale-[1]": !w.show.value ||
|
|
2518
|
+
"opacity-30 bg-[#ccc] !cursor-no-drop active:!scale-[1]": !w.show.value || g.value !== "default",
|
|
2512
2519
|
[w.class ?? ""]: !0
|
|
2513
2520
|
}]),
|
|
2514
2521
|
key: w.command
|
|
2515
2522
|
}, [
|
|
2516
|
-
|
|
2523
|
+
P("img", {
|
|
2517
2524
|
class: "size-[14px]",
|
|
2518
2525
|
src: w.src
|
|
2519
|
-
}, null, 8,
|
|
2520
|
-
], 10,
|
|
2526
|
+
}, null, 8, Eo)
|
|
2527
|
+
], 10, Co)), 64))
|
|
2521
2528
|
]),
|
|
2522
2529
|
_: 1
|
|
2523
2530
|
})
|
|
@@ -2529,15 +2536,15 @@ const is = {
|
|
|
2529
2536
|
], 38)
|
|
2530
2537
|
], 512));
|
|
2531
2538
|
}
|
|
2532
|
-
}),
|
|
2533
|
-
const t =
|
|
2534
|
-
for (const [n,
|
|
2535
|
-
t[n] =
|
|
2539
|
+
}), Lo = (d, e) => {
|
|
2540
|
+
const t = d.__vccOpts || d;
|
|
2541
|
+
for (const [n, o] of e)
|
|
2542
|
+
t[n] = o;
|
|
2536
2543
|
return t;
|
|
2537
|
-
},
|
|
2538
|
-
let lt = class extends
|
|
2544
|
+
}, ko = /* @__PURE__ */ Lo(Mo, [["__scopeId", "data-v-097b01ef"]]);
|
|
2545
|
+
let lt = class extends Ae {
|
|
2539
2546
|
static name = "Editor";
|
|
2540
|
-
container = new
|
|
2547
|
+
container = new u.Group();
|
|
2541
2548
|
get renderer() {
|
|
2542
2549
|
return this.parent?.findComponentByName("Renderer");
|
|
2543
2550
|
}
|
|
@@ -2559,8 +2566,8 @@ let lt = class extends Se {
|
|
|
2559
2566
|
get domContainer() {
|
|
2560
2567
|
return this.parent?.findComponentByName("DomContainer");
|
|
2561
2568
|
}
|
|
2562
|
-
commandManager = new
|
|
2563
|
-
plane = new
|
|
2569
|
+
commandManager = new Cn();
|
|
2570
|
+
plane = new u.Mesh(new u.PlaneGeometry(2e3, 2e3, 2, 2));
|
|
2564
2571
|
app;
|
|
2565
2572
|
domElement = document.createElement("div");
|
|
2566
2573
|
viewPermission;
|
|
@@ -2583,26 +2590,26 @@ let lt = class extends Se {
|
|
|
2583
2590
|
}
|
|
2584
2591
|
onAddFromParent(e) {
|
|
2585
2592
|
setTimeout(() => this.openEdit(), 10);
|
|
2586
|
-
const t = new
|
|
2593
|
+
const t = new u.GridHelper(200, 100, 6710886, 4473924);
|
|
2587
2594
|
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;
|
|
2588
2595
|
const n = this.addEventListener("update", () => {
|
|
2589
2596
|
this.domContainer.domElement.parentElement && (this.domContainer.domElement.parentElement.appendChild(this.domElement), this.domContainer.domElement.parentElement.appendChild(this.imgEl), n());
|
|
2590
2597
|
});
|
|
2591
2598
|
setTimeout(() => {
|
|
2592
|
-
this.app =
|
|
2599
|
+
this.app = jt(ko, { dxfSystem: this.parent, permission: this.viewPermission }), this.app.mount(this.domElement);
|
|
2593
2600
|
}), e.AngleCorrectionDxf.addEventListener("lineOffset", async () => {
|
|
2594
2601
|
this.imgEl.src && URL.revokeObjectURL(this.imgEl.src), setTimeout(async () => {
|
|
2595
2602
|
this.imgEl.src = URL.createObjectURL(await e.AngleCorrectionDxf.toDxfImageBlob("Centimeters", "image/png", "transparent"));
|
|
2596
2603
|
});
|
|
2597
|
-
}), this.domEventRegister.addEventListener("mousedown", (
|
|
2598
|
-
|
|
2604
|
+
}), this.domEventRegister.addEventListener("mousedown", (o) => {
|
|
2605
|
+
o.x < this.imgWidth + 10 && o.x > 10 && o.y < this.imgWidth && o.y > 10 && Object.assign(this.imgEl.style, {
|
|
2599
2606
|
width: `${Math.min(this.imgWidth * 10, this.renderer.width * 0.9)}px`,
|
|
2600
2607
|
height: `${Math.min(this.imgWidth * 10, this.renderer.height * 0.9)}px`,
|
|
2601
2608
|
background: "rgba(0,0,0,1)",
|
|
2602
2609
|
zIndex: 100
|
|
2603
2610
|
});
|
|
2604
|
-
}), this.domEventRegister.addEventListener("mousemove", (
|
|
2605
|
-
|
|
2611
|
+
}), this.domEventRegister.addEventListener("mousemove", (o) => {
|
|
2612
|
+
o.x < this.imgWidth + 10 && o.x > 10 && o.y < this.imgWidth && o.y > 10 || Object.assign(this.imgEl.style, {
|
|
2606
2613
|
width: `${this.imgWidth}px`,
|
|
2607
2614
|
height: `${this.imgWidth}px`,
|
|
2608
2615
|
background: "rgba(255,255,255,0.2)",
|
|
@@ -2618,27 +2625,27 @@ let lt = class extends Se {
|
|
|
2618
2625
|
type: "cancelCommand"
|
|
2619
2626
|
});
|
|
2620
2627
|
}
|
|
2621
|
-
coords = new
|
|
2622
|
-
pointerPosition = new
|
|
2628
|
+
coords = new u.Vector2();
|
|
2629
|
+
pointerPosition = new u.Vector2();
|
|
2623
2630
|
_exitEditCallBack;
|
|
2624
2631
|
/**
|
|
2625
2632
|
* 打开编辑器
|
|
2626
2633
|
*/
|
|
2627
2634
|
openEdit() {
|
|
2628
|
-
const e = this.renderer, t = this.domEventRegister, n = this.dxf,
|
|
2629
|
-
this.container.position.z = n.originalZAverage, e.scene.add(this.container),
|
|
2635
|
+
const e = this.renderer, t = this.domEventRegister, n = this.dxf, o = e.orbitControls, s = e.camera, a = n.box.center, l = e.camera.position.clone(), r = o?.target?.clone(), i = new u.Vector2(), c = new u.Raycaster(), m = this.coords, y = this.pointerPosition;
|
|
2636
|
+
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);
|
|
2630
2637
|
const f = () => {
|
|
2631
2638
|
e.renderer.getSize(i);
|
|
2632
|
-
const
|
|
2633
|
-
|
|
2634
|
-
const E =
|
|
2639
|
+
const g = t.pointer.x / i.x * 2 - 1, h = -(t.pointer.y / i.y * 2 - 1);
|
|
2640
|
+
m.set(g, h), c.setFromCamera(m, e.camera.children.length ? e.camera.children[0] : e.camera);
|
|
2641
|
+
const E = c.intersectObject(this.plane);
|
|
2635
2642
|
E.length && (y.copy(E[0].point), this.dispatchEvent({
|
|
2636
2643
|
type: "pointerPositionChange",
|
|
2637
2644
|
position: y
|
|
2638
2645
|
}));
|
|
2639
2646
|
};
|
|
2640
2647
|
t.addEventListener("mousemove", f), this.commandManager.disabled = !1, this.commandManager.start("default"), this._exitEditCallBack = () => {
|
|
2641
|
-
t.removeEventListener("mousemove", f),
|
|
2648
|
+
t.removeEventListener("mousemove", f), o && (s.position.copy(l), o.enableRotate = !0, o.target.copy(r));
|
|
2642
2649
|
};
|
|
2643
2650
|
}
|
|
2644
2651
|
/**
|
|
@@ -2651,9 +2658,9 @@ let lt = class extends Se {
|
|
|
2651
2658
|
super.destroy(), this.exitEdit(), this.renderer.scene.remove(this.container), this.domElement.remove(), this.app?.unmount();
|
|
2652
2659
|
}
|
|
2653
2660
|
};
|
|
2654
|
-
class
|
|
2661
|
+
class Io extends O {
|
|
2655
2662
|
static name = "PointDrag";
|
|
2656
|
-
container = new
|
|
2663
|
+
container = new u.Group();
|
|
2657
2664
|
interruptKeys = ["escape"];
|
|
2658
2665
|
shortcutKeys = ["control", "p"];
|
|
2659
2666
|
commandName = "point";
|
|
@@ -2666,13 +2673,16 @@ class Ls extends O {
|
|
|
2666
2673
|
* @param next
|
|
2667
2674
|
*/
|
|
2668
2675
|
selectPoint(e) {
|
|
2669
|
-
let t = null, n =
|
|
2670
|
-
this.
|
|
2671
|
-
const { point:
|
|
2672
|
-
this.dispatchEvent({ type: "pointerMove", point:
|
|
2673
|
-
})
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
+
let t = null, n = this.renderer.createCircle(M.zero(), { color: 16711935 }), o = null;
|
|
2677
|
+
const s = this.editor.addEventListener("pointerPositionChange", () => {
|
|
2678
|
+
const { point: a, line: l, find: r, mode: i } = this.editor.renderManager.adsorption();
|
|
2679
|
+
this.dispatchEvent({ type: "pointerMove", point: a }), r && i === "point" ? (this.domElement.style.cursor = "none", n.position.copy(a), o = l, t = a.clone(), this.container.add(n)) : (this.domElement.style.cursor = "no-drop", t = null, n.removeFromParent());
|
|
2680
|
+
});
|
|
2681
|
+
this.addEventRecord("selectPointStart").add(s).add(this.eventInput.addEventListener("codeChange", () => {
|
|
2682
|
+
this.eventInput.isKeyDown("mouse_0") && t && (this.canceEventRecord("selectPointStart"), n.material.color.set(65280), e({ point: t, line: o }));
|
|
2683
|
+
})), this.addEventRecord("clear").add(() => {
|
|
2684
|
+
n.removeFromParent(), s();
|
|
2685
|
+
});
|
|
2676
2686
|
}
|
|
2677
2687
|
/** 拖拽点
|
|
2678
2688
|
* @description 拖拽点到指定位置
|
|
@@ -2681,32 +2691,32 @@ class Ls extends O {
|
|
|
2681
2691
|
*/
|
|
2682
2692
|
drag(e, { point: t, line: n }) {
|
|
2683
2693
|
this.domElement.style.cursor = "crosshair";
|
|
2684
|
-
const
|
|
2685
|
-
this.container.add(
|
|
2686
|
-
let { point: i, find:
|
|
2694
|
+
const o = n.start.equal(M.from(t)) ? "start" : "end", s = o == "start" ? new u.Vector3(n.end.x, n.end.y, 0) : new u.Vector3(n.start.x, n.start.y, 0), a = t.clone(), l = new ye([s, a], 16711935), r = this.renderer.createCircle(M.zero(), { color: 16711935, size: 10 });
|
|
2695
|
+
this.container.add(l), this.addEventRecord("clear").add(this.editor.addEventListener("pointerPositionChange", () => {
|
|
2696
|
+
let { point: i, find: c } = this.editor.renderManager.adsorption(), m = "none";
|
|
2687
2697
|
if (i) {
|
|
2688
2698
|
if (this.dispatchEvent({ type: "pointerMove", point: i }), this.eventInput.isKeyDown("shift")) {
|
|
2689
|
-
const y = n.projectPoint(
|
|
2690
|
-
i.set(y?.x ?? i.x, y?.y ?? i.y, 0),
|
|
2699
|
+
const y = n.projectPoint(M.from(i), !1);
|
|
2700
|
+
i.set(y?.x ?? i.x, y?.y ?? i.y, 0), c = !0, m = "crosshair";
|
|
2691
2701
|
}
|
|
2692
|
-
|
|
2702
|
+
c ? (r.position.copy(i), this.container.add(r)) : (r.removeFromParent(), m = "crosshair"), a.copy(i), l.setPoint(s, a), this.domElement.style.cursor = m;
|
|
2693
2703
|
}
|
|
2694
2704
|
})).add(this.eventInput.addEventListener("codeChange", () => {
|
|
2695
|
-
this.eventInput.isKeyDown("mouse_0") && (this.canceEventRecord("selectPointStart"), e({ point: a, oldPoint:
|
|
2696
|
-
})).add(() =>
|
|
2705
|
+
this.eventInput.isKeyDown("mouse_0") && (this.canceEventRecord("selectPointStart"), e({ point: a, oldPoint: o === "end" ? n.end.clone() : n.start.clone(), line: n, mode: o }));
|
|
2706
|
+
})).add(() => r.removeFromParent()).add(() => l.removeFromParent());
|
|
2697
2707
|
}
|
|
2698
2708
|
/** 执行完成
|
|
2699
2709
|
*/
|
|
2700
2710
|
completed(e) {
|
|
2701
|
-
const { line: t, point: n, mode:
|
|
2702
|
-
this.renderManager.removeLine(t),
|
|
2711
|
+
const { line: t, point: n, mode: o } = e;
|
|
2712
|
+
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(), this.commandManager.currentName === this.commandName && setTimeout(() => this.commandManager.start(this.commandName));
|
|
2703
2713
|
}
|
|
2704
2714
|
/** 回滚操作
|
|
2705
2715
|
* @param data
|
|
2706
2716
|
*/
|
|
2707
2717
|
rollback(e) {
|
|
2708
|
-
const { line: t, oldPoint: n, mode:
|
|
2709
|
-
return
|
|
2718
|
+
const { line: t, oldPoint: n, mode: o } = e;
|
|
2719
|
+
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;
|
|
2710
2720
|
}
|
|
2711
2721
|
/** 撤回回滚
|
|
2712
2722
|
* @param lines
|
|
@@ -2716,15 +2726,15 @@ class Ls extends O {
|
|
|
2716
2726
|
return this.completed(e), e;
|
|
2717
2727
|
}
|
|
2718
2728
|
}
|
|
2719
|
-
function Je(
|
|
2720
|
-
|
|
2729
|
+
function Je(d, e = {}) {
|
|
2730
|
+
d.addComponent(new lt(e.viewPermission)), d.addComponent(new so()), d.addComponent(new rt()), d.addComponent(new bn()), d.addComponent(new ao()), d.addComponent(new io()), d.addComponent(new Io()), d.addComponent(new ee()), d.addComponent(new $()), d.addComponent(new le()), d.addComponent(new te()), d.addComponent(new ne()), d.addComponent(new oe()), d.addComponent(new se()), d.addComponent(new ae()), d.addComponent(new ie()), d.addComponent(new dt());
|
|
2721
2731
|
}
|
|
2722
|
-
const
|
|
2723
|
-
create(
|
|
2724
|
-
return (e) => Je(e,
|
|
2732
|
+
const Ro = Object.assign(Je, {
|
|
2733
|
+
create(d = {}) {
|
|
2734
|
+
return (e) => Je(e, d);
|
|
2725
2735
|
}
|
|
2726
2736
|
});
|
|
2727
2737
|
export {
|
|
2728
|
-
|
|
2738
|
+
Ro as Editor,
|
|
2729
2739
|
Je as Editor_
|
|
2730
2740
|
};
|