build-dxf 0.0.36 → 0.0.37
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/package.json +1 -1
- package/src/build.d.ts +2 -1
- package/src/build.js +2301 -2240
- package/src/index.css +1 -1
- package/src/index.js +7 -6
- package/src/index3.js +839 -835
- package/src/selectLocalFile.js +903 -880
- package/src/utils/DxfSystem/DxfSystem.d.ts +18 -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 +2 -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 +106 -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/index.d.ts +5 -0
- package/src/utils/DxfSystem/utils/lineDataToOriginalData.d.ts +7 -0
- package/src/utils/DxfSystem/utils/lineSegmentClipping.d.ts +7 -0
- package/src/utils/DxfSystem/utils/recomputedWindow.d.ts +7 -0
package/src/index3.js
CHANGED
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import { i as ut, n as pt, r as
|
|
3
|
-
import { C as
|
|
1
|
+
import * as p from "three";
|
|
2
|
+
import { i as ut, n as pt, r as Je, t as Ue, c as Ie, d as gt, e as vt, f as Pe, g as Q, _ as qe, u as ft, h as ve, j as Se, w as yt, k as wt, l as bt, p as xt, m as Ct, o as Et, T as _e, q as Be, s as Lt, v as Mt, x as Ne, y as ke, z as Le, A as kt, B as It, L as fe, D as Pt, b as Re, E as re, S as Dt } from "./selectLocalFile.js";
|
|
3
|
+
import { C as De, P as L, L as B, B as Ze, E as Ye, b as Oe, Q as ze, u as At, A as St, r as Fe, W as _t, T as Bt } 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
|
|
8
|
-
function
|
|
7
|
+
import { watch as J, ref as _, defineComponent as me, computed as S, createElementBlock as R, openBlock as A, normalizeClass as V, unref as v, renderSlot as we, createVNode as z, Transition as be, withCtx as T, withDirectives as Xe, createElementVNode as P, normalizeStyle as Ae, createTextVNode as Y, toDisplayString as de, vShow as $e, shallowReactive as Nt, onMounted as et, createBlock as pe, createCommentVNode as q, resolveDynamicComponent as Rt, Fragment as ge, withModifiers as Ot, nextTick as ye, isVNode as tt, render as Ke, toRaw as zt, onUnmounted as Ft, renderList as Me, createStaticVNode as Kt, TransitionGroup as Tt, createApp as Vt } from "vue";
|
|
8
|
+
function nt(d) {
|
|
9
9
|
var e;
|
|
10
|
-
const t =
|
|
10
|
+
const t = Je(d);
|
|
11
11
|
return (e = t?.$el) != null ? e : t;
|
|
12
12
|
}
|
|
13
|
-
const ot =
|
|
14
|
-
function jt(...
|
|
15
|
-
let e, t, n,
|
|
16
|
-
if (ut(
|
|
13
|
+
const ot = Ie ? window : void 0;
|
|
14
|
+
function jt(...d) {
|
|
15
|
+
let e, t, n, o;
|
|
16
|
+
if (ut(d[0]) || Array.isArray(d[0]) ? ([t, n, o] = d, e = ot) : [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, w, f) => (c.addEventListener(m, w, f), () => c.removeEventListener(m, w, f)), r = J(() => [nt(e), Je(o)], ([c, m]) => {
|
|
22
|
+
a(), c && s.push(...t.flatMap((w) => n.map((f) => l(c, w, f, m))));
|
|
23
23
|
}, { immediate: !0, flush: "post" }), i = () => {
|
|
24
|
-
|
|
24
|
+
r(), a();
|
|
25
25
|
};
|
|
26
|
-
return
|
|
26
|
+
return Ue(i), i;
|
|
27
27
|
}
|
|
28
|
-
function
|
|
29
|
-
const t =
|
|
28
|
+
function Gt(d, e = !1) {
|
|
29
|
+
const t = _(), n = () => t.value = !!d();
|
|
30
30
|
return n(), gt(n, e), t;
|
|
31
31
|
}
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
var
|
|
32
|
+
const Te = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, Ve = "__vueuse_ssr_handlers__";
|
|
33
|
+
Te[Ve] = Te[Ve] || {};
|
|
34
|
+
var je = 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
|
|
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 && je)
|
|
39
|
+
for (var n of je(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 = ot } = 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(() => nt(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
|
|
54
|
-
isSupported:
|
|
55
|
-
stop:
|
|
53
|
+
return Ue(c), {
|
|
54
|
+
isSupported: l,
|
|
55
|
+
stop: c
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
|
-
var
|
|
59
|
-
(function(
|
|
60
|
-
|
|
61
|
-
})(
|
|
62
|
-
var
|
|
58
|
+
var Ge;
|
|
59
|
+
(function(d) {
|
|
60
|
+
d.UP = "UP", d.RIGHT = "RIGHT", d.DOWN = "DOWN", d.LEFT = "LEFT", d.NONE = "NONE";
|
|
61
|
+
})(Ge || (Ge = {}));
|
|
62
|
+
var Ut = Object.defineProperty, Qe = Object.getOwnPropertySymbols, qt = Object.prototype.hasOwnProperty, Zt = Object.prototype.propertyIsEnumerable, He = (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
|
-
|
|
65
|
-
if (
|
|
66
|
-
for (var t of
|
|
67
|
-
|
|
68
|
-
return
|
|
64
|
+
qt.call(e, t) && He(d, t, e[t]);
|
|
65
|
+
if (Qe)
|
|
66
|
+
for (var t of Qe(e))
|
|
67
|
+
Zt.call(e, t) && He(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 = Pe({
|
|
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 = S(() => t.isDot ? "" : ve(t.value) && ve(t.max) ? t.max < t.value ? `${t.max}+` : `${t.value}` : `${t.value}`), s = S(() => {
|
|
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) => (A(), R("div", {
|
|
152
152
|
class: V(v(n).b())
|
|
153
153
|
}, [
|
|
154
|
-
|
|
155
|
-
|
|
154
|
+
we(a.$slots, "default"),
|
|
155
|
+
z(be, {
|
|
156
156
|
name: `${v(n).namespace.value}-zoom-in-center`,
|
|
157
157
|
persisted: ""
|
|
158
158
|
}, {
|
|
159
|
-
default:
|
|
160
|
-
|
|
159
|
+
default: T(() => [
|
|
160
|
+
Xe(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:
|
|
169
|
+
style: Ae(v(s))
|
|
170
170
|
}, [
|
|
171
|
-
|
|
172
|
-
|
|
171
|
+
we(a.$slots, "content", { value: v(o) }, () => [
|
|
172
|
+
Y(de(v(o)), 1)
|
|
173
173
|
])
|
|
174
174
|
], 6), [
|
|
175
|
-
[
|
|
175
|
+
[$e, !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__ */
|
|
184
|
-
const
|
|
183
|
+
var sn = /* @__PURE__ */ qe(on, [["__file", "badge.vue"]]);
|
|
184
|
+
const an = yt(sn), rn = Pe({
|
|
185
185
|
a11y: {
|
|
186
186
|
type: Boolean,
|
|
187
187
|
default: !0
|
|
@@ -217,26 +217,26 @@ const on = wt(sn), an = Ae({
|
|
|
217
217
|
type: String,
|
|
218
218
|
default: "el"
|
|
219
219
|
},
|
|
220
|
-
...
|
|
221
|
-
}),
|
|
220
|
+
...wt
|
|
221
|
+
}), K = {};
|
|
222
222
|
me({
|
|
223
223
|
name: "ElConfigProvider",
|
|
224
|
-
props:
|
|
225
|
-
setup(
|
|
226
|
-
const t = xt(
|
|
227
|
-
return J(() =>
|
|
228
|
-
var
|
|
229
|
-
Object.assign(
|
|
230
|
-
}, { immediate: !0, deep: !0 }), () =>
|
|
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(K, (s = (o = t?.value) == null ? void 0 : o.message) != null ? s : {}, n ?? {});
|
|
230
|
+
}, { immediate: !0, deep: !0 }), () => we(e, "default", { config: t?.value });
|
|
231
231
|
}
|
|
232
232
|
});
|
|
233
|
-
const
|
|
233
|
+
const st = [
|
|
234
234
|
"primary",
|
|
235
235
|
"success",
|
|
236
236
|
"info",
|
|
237
237
|
"warning",
|
|
238
238
|
"error"
|
|
239
|
-
], N =
|
|
239
|
+
], N = $t({
|
|
240
240
|
customClass: "",
|
|
241
241
|
dangerouslyUseHTMLString: !1,
|
|
242
242
|
duration: 3e3,
|
|
@@ -251,8 +251,8 @@ const at = [
|
|
|
251
251
|
zIndex: 0,
|
|
252
252
|
grouping: !1,
|
|
253
253
|
repeatNum: 1,
|
|
254
|
-
appendTo:
|
|
255
|
-
}),
|
|
254
|
+
appendTo: Ie ? document.body : void 0
|
|
255
|
+
}), dn = Pe({
|
|
256
256
|
customClass: {
|
|
257
257
|
type: String,
|
|
258
258
|
default: N.customClass
|
|
@@ -291,7 +291,7 @@ const at = [
|
|
|
291
291
|
},
|
|
292
292
|
type: {
|
|
293
293
|
type: String,
|
|
294
|
-
values:
|
|
294
|
+
values: st,
|
|
295
295
|
default: N.type
|
|
296
296
|
},
|
|
297
297
|
plain: {
|
|
@@ -314,208 +314,208 @@ const at = [
|
|
|
314
314
|
type: Number,
|
|
315
315
|
default: N.repeatNum
|
|
316
316
|
}
|
|
317
|
-
}),
|
|
317
|
+
}), ln = {
|
|
318
318
|
destroy: () => !0
|
|
319
|
-
}, H =
|
|
320
|
-
const e = H.findIndex((
|
|
319
|
+
}, H = Nt([]), 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 } = Lt, s = _(!1), { ns: a, zIndex: l } = Et("message"), { currentZIndex: r, nextZIndex: i } = l, c = _(), m = _(!1), w = _(0);
|
|
334
334
|
let f;
|
|
335
|
-
const
|
|
336
|
-
const
|
|
337
|
-
return { [a.bm("icon",
|
|
338
|
-
}), E =
|
|
339
|
-
top: `${
|
|
340
|
-
zIndex:
|
|
335
|
+
const u = S(() => n.type ? n.type === "error" ? "danger" : n.type : "info"), h = S(() => {
|
|
336
|
+
const x = n.type;
|
|
337
|
+
return { [a.bm("icon", x)]: x && _e[x] };
|
|
338
|
+
}), E = S(() => n.icon || _e[n.type] || ""), b = S(() => mn(n.id)), D = S(() => hn(n.id, n.offset) + b.value), F = S(() => w.value + D.value), Z = S(() => ({
|
|
339
|
+
top: `${D.value}px`,
|
|
340
|
+
zIndex: r.value
|
|
341
341
|
}));
|
|
342
|
-
function
|
|
343
|
-
n.duration !== 0 && ({ stop: f } =
|
|
344
|
-
|
|
342
|
+
function G() {
|
|
343
|
+
n.duration !== 0 && ({ stop: f } = Mt(() => {
|
|
344
|
+
M();
|
|
345
345
|
}, n.duration));
|
|
346
346
|
}
|
|
347
|
-
function
|
|
347
|
+
function W() {
|
|
348
348
|
f?.();
|
|
349
349
|
}
|
|
350
|
-
function
|
|
351
|
-
|
|
352
|
-
var
|
|
353
|
-
|
|
350
|
+
function M() {
|
|
351
|
+
m.value = !1, ye(() => {
|
|
352
|
+
var x;
|
|
353
|
+
s.value || ((x = n.onClose) == null || x.call(n), t("destroy"));
|
|
354
354
|
});
|
|
355
355
|
}
|
|
356
|
-
function
|
|
357
|
-
|
|
356
|
+
function I({ code: x }) {
|
|
357
|
+
x === en.esc && M();
|
|
358
358
|
}
|
|
359
|
-
return
|
|
360
|
-
|
|
359
|
+
return et(() => {
|
|
360
|
+
G(), i(), m.value = !0;
|
|
361
361
|
}), J(() => n.repeatNum, () => {
|
|
362
|
-
|
|
363
|
-
}), jt(document, "keydown",
|
|
364
|
-
|
|
362
|
+
W(), G();
|
|
363
|
+
}), jt(document, "keydown", I), Jt(c, () => {
|
|
364
|
+
w.value = c.value.getBoundingClientRect().height;
|
|
365
365
|
}), e({
|
|
366
|
-
visible:
|
|
367
|
-
bottom:
|
|
368
|
-
close:
|
|
369
|
-
}), (
|
|
366
|
+
visible: m,
|
|
367
|
+
bottom: F,
|
|
368
|
+
close: M
|
|
369
|
+
}), (x, j) => (A(), pe(be, {
|
|
370
370
|
name: v(a).b("fade"),
|
|
371
|
-
onBeforeEnter: (
|
|
372
|
-
onBeforeLeave:
|
|
373
|
-
onAfterLeave: (
|
|
371
|
+
onBeforeEnter: (ie) => s.value = !0,
|
|
372
|
+
onBeforeLeave: x.onClose,
|
|
373
|
+
onAfterLeave: (ie) => x.$emit("destroy"),
|
|
374
374
|
persisted: ""
|
|
375
375
|
}, {
|
|
376
|
-
default:
|
|
377
|
-
|
|
378
|
-
id:
|
|
376
|
+
default: T(() => [
|
|
377
|
+
Xe(P("div", {
|
|
378
|
+
id: x.id,
|
|
379
379
|
ref_key: "messageRef",
|
|
380
|
-
ref:
|
|
380
|
+
ref: c,
|
|
381
381
|
class: V([
|
|
382
382
|
v(a).b(),
|
|
383
|
-
{ [v(a).m(
|
|
384
|
-
v(a).is("closable",
|
|
385
|
-
v(a).is("plain",
|
|
386
|
-
|
|
383
|
+
{ [v(a).m(x.type)]: x.type },
|
|
384
|
+
v(a).is("closable", x.showClose),
|
|
385
|
+
v(a).is("plain", x.plain),
|
|
386
|
+
x.customClass
|
|
387
387
|
]),
|
|
388
|
-
style:
|
|
388
|
+
style: Ae(v(Z)),
|
|
389
389
|
role: "alert",
|
|
390
|
-
onMouseenter:
|
|
391
|
-
onMouseleave:
|
|
390
|
+
onMouseenter: W,
|
|
391
|
+
onMouseleave: G
|
|
392
392
|
}, [
|
|
393
|
-
|
|
393
|
+
x.repeatNum > 1 ? (A(), pe(v(an), {
|
|
394
394
|
key: 0,
|
|
395
|
-
value:
|
|
396
|
-
type: v(
|
|
395
|
+
value: x.repeatNum,
|
|
396
|
+
type: v(u),
|
|
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) ? (A(), pe(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
|
-
default:
|
|
404
|
-
(
|
|
403
|
+
default: T(() => [
|
|
404
|
+
(A(), pe(Rt(v(E))))
|
|
405
405
|
]),
|
|
406
406
|
_: 1
|
|
407
407
|
}, 8, ["class"])) : q("v-if", !0),
|
|
408
|
-
|
|
409
|
-
|
|
408
|
+
we(x.$slots, "default", {}, () => [
|
|
409
|
+
x.dangerouslyUseHTMLString ? (A(), R(ge, { 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
|
-
innerHTML:
|
|
413
|
+
innerHTML: x.message
|
|
414
414
|
}, null, 10, ["innerHTML"])
|
|
415
|
-
], 2112)) : (
|
|
415
|
+
], 2112)) : (A(), R("p", {
|
|
416
416
|
key: 0,
|
|
417
417
|
class: V(v(a).e("content"))
|
|
418
|
-
}, de(
|
|
418
|
+
}, de(x.message), 3))
|
|
419
419
|
]),
|
|
420
|
-
|
|
420
|
+
x.showClose ? (A(), pe(v(Be), {
|
|
421
421
|
key: 2,
|
|
422
422
|
class: V(v(a).e("closeBtn")),
|
|
423
|
-
onClick:
|
|
423
|
+
onClick: Ot(M, ["stop"])
|
|
424
424
|
}, {
|
|
425
|
-
default:
|
|
426
|
-
|
|
425
|
+
default: T(() => [
|
|
426
|
+
z(v(o))
|
|
427
427
|
]),
|
|
428
428
|
_: 1
|
|
429
429
|
}, 8, ["class", "onClick"])) : q("v-if", !0)
|
|
430
430
|
], 46, ["id"]), [
|
|
431
|
-
[
|
|
431
|
+
[$e, 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
|
|
441
|
-
const e = !
|
|
438
|
+
var gn = /* @__PURE__ */ qe(pn, [["__file", "message.vue"]]);
|
|
439
|
+
let vn = 1;
|
|
440
|
+
const at = (d) => {
|
|
441
|
+
const e = !d || Ne(d) || tt(d) || ke(d) ? { message: d } : d, t = {
|
|
442
442
|
...N,
|
|
443
443
|
...e
|
|
444
444
|
};
|
|
445
445
|
if (!t.appendTo)
|
|
446
446
|
t.appendTo = document.body;
|
|
447
|
-
else if (
|
|
447
|
+
else if (Ne(t.appendTo)) {
|
|
448
448
|
let n = document.querySelector(t.appendTo);
|
|
449
449
|
kt(n) || (n = document.body), t.appendTo = n;
|
|
450
450
|
}
|
|
451
|
-
return Le(
|
|
452
|
-
},
|
|
453
|
-
const e = H.indexOf(
|
|
451
|
+
return Le(K.grouping) && !t.grouping && (t.grouping = K.grouping), ve(K.duration) && t.duration === 3e3 && (t.duration = K.duration), ve(K.offset) && t.offset === 16 && (t.offset = K.offset), Le(K.showClose) && !t.showClose && (t.showClose = K.showClose), Le(K.plain) && !t.plain && (t.plain = K.plain), t;
|
|
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
|
-
|
|
467
|
+
Ke(null, s);
|
|
468
468
|
}
|
|
469
|
-
},
|
|
470
|
-
default:
|
|
469
|
+
}, l = z(gn, a, ke(a.message) || tt(a.message) ? {
|
|
470
|
+
default: ke(a.message) ? a.message : () => a.message
|
|
471
471
|
} : null);
|
|
472
|
-
|
|
473
|
-
const
|
|
472
|
+
l.appContext = t || ce._context, Ke(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 (!Ie)
|
|
487
487
|
return { close: () => {
|
|
488
488
|
} };
|
|
489
|
-
const t =
|
|
489
|
+
const t = at(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
|
-
if (
|
|
498
|
+
if (ve(K.max) && H.length >= K.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
|
-
|
|
505
|
-
ce[
|
|
506
|
-
const n =
|
|
507
|
-
return ce({ ...n, type:
|
|
504
|
+
st.forEach((d) => {
|
|
505
|
+
ce[d] = (e = {}, t) => {
|
|
506
|
+
const n = at(e);
|
|
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 De {
|
|
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 L();
|
|
607
|
+
let o = null, s = null, a = null;
|
|
608
|
+
const l = t.addEventListener("pointerPositionChange", () => {
|
|
609
|
+
const r = L.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
|
|
625
|
+
setBaseLine(r, i) {
|
|
626
|
+
if (s = r, o = i, r && i) {
|
|
627
|
+
const c = r.normal();
|
|
628
628
|
a = new B(
|
|
629
|
-
i.clone().add(
|
|
630
|
-
i.clone().add(
|
|
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 p.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(L.zero(), { color: 65280 }), l = t.domContainer.domElement, r = new fe([], 16711935), i = new fe([
|
|
655
|
+
new p.Vector3(-1e4, 0, 0),
|
|
656
|
+
new p.Vector3(1e4, 0, 0),
|
|
657
|
+
new p.Vector3(0, -1e4, 0),
|
|
658
|
+
new p.Vector3(0, 1e4, 0)
|
|
659
659
|
], 16711935);
|
|
660
|
-
i.material = new
|
|
660
|
+
i.material = new p.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
|
-
},
|
|
669
|
-
let
|
|
670
|
-
const f = this.createPointerMove((
|
|
671
|
-
|
|
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 p.Vector3();
|
|
669
|
+
let w;
|
|
670
|
+
const f = this.createPointerMove((u, h, E) => {
|
|
671
|
+
m.set(u.x, u.y, 0), this.dispatchEvent({ type: "pointerMove", point: m }), w = E, h ? (a.position.set(u.x, u.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(w ?? null, L.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 u = new B(L.from(n), L.from(o));
|
|
684
|
+
f.setBaseLine(u, u.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: u } = t.renderManager.adsorption();
|
|
688
|
+
if (s.pop(), o?.copy(u), n?.copy(s.pop()), c(), s.length >= 2) {
|
|
689
|
+
const h = new B(L.from(s[s.length - 2]), L.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,8 +702,8 @@ class yn extends O {
|
|
|
702
702
|
*/
|
|
703
703
|
end(e, t) {
|
|
704
704
|
const n = [];
|
|
705
|
-
for (let
|
|
706
|
-
n.push(new B(
|
|
705
|
+
for (let o = 0; o < t.length; o += 2)
|
|
706
|
+
n.push(new B(L.from(t[o]), L.from(t[o + 1])));
|
|
707
707
|
e(n);
|
|
708
708
|
}
|
|
709
709
|
/** 执行完成
|
|
@@ -725,9 +725,9 @@ class yn extends O {
|
|
|
725
725
|
return this.completed(e), e;
|
|
726
726
|
}
|
|
727
727
|
}
|
|
728
|
-
class
|
|
728
|
+
class it extends O {
|
|
729
729
|
static name = "Default";
|
|
730
|
-
container = new
|
|
730
|
+
container = new p.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 p.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 p.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 p.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 p.Mesh();
|
|
786
|
+
this.container.add(c), c.position.z = 0.05, c.material = new p.MeshBasicMaterial({
|
|
787
787
|
color: 16777215,
|
|
788
788
|
transparent: !0,
|
|
789
789
|
opacity: 0.5
|
|
790
790
|
});
|
|
791
|
-
const
|
|
792
|
-
const
|
|
793
|
-
p,
|
|
794
|
-
x,
|
|
795
|
-
0,
|
|
791
|
+
const m = () => {
|
|
792
|
+
const u = Math.min(r.x, i.x), h = Math.max(r.x, i.x), E = Math.min(r.y, i.y), b = Math.max(r.y, i.y), D = [
|
|
796
793
|
u,
|
|
794
|
+
b,
|
|
795
|
+
0,
|
|
796
|
+
h,
|
|
797
797
|
E,
|
|
798
798
|
0,
|
|
799
|
-
|
|
800
|
-
|
|
799
|
+
h,
|
|
800
|
+
b,
|
|
801
801
|
0,
|
|
802
|
-
|
|
803
|
-
|
|
802
|
+
u,
|
|
803
|
+
b,
|
|
804
804
|
0,
|
|
805
|
-
|
|
805
|
+
u,
|
|
806
806
|
E,
|
|
807
807
|
0,
|
|
808
|
-
|
|
808
|
+
h,
|
|
809
809
|
E,
|
|
810
810
|
0
|
|
811
811
|
];
|
|
812
|
-
|
|
813
|
-
},
|
|
814
|
-
i.copy(e.pointerPosition),
|
|
812
|
+
c.geometry = e.renderManager.createGeometry({ position: D }, D.length / 3);
|
|
813
|
+
}, w = () => {
|
|
814
|
+
i.copy(e.pointerPosition), m();
|
|
815
815
|
}, f = () => {
|
|
816
|
-
document.removeEventListener("mousemove",
|
|
817
|
-
const
|
|
818
|
-
this.removeSelectLineAll(),
|
|
816
|
+
document.removeEventListener("mousemove", w), document.removeEventListener("mouseup", f), c.removeFromParent();
|
|
817
|
+
const u = Math.min(r.x, i.x), h = Math.max(r.x, i.x), E = Math.min(r.y, i.y), b = Math.max(r.y, i.y), D = new Ze(u, h, E, b), F = e.renderManager.quadtree.queryBox(D);
|
|
818
|
+
this.removeSelectLineAll(), F.forEach((Z) => this.addSelectLine(Z.line)), this.updateSelectLinesGeometry();
|
|
819
819
|
};
|
|
820
|
-
document.addEventListener("mousemove",
|
|
821
|
-
},
|
|
820
|
+
document.addEventListener("mousemove", w), document.addEventListener("mouseup", f);
|
|
821
|
+
}, l = this.renderer.createText("", new p.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 Ye {
|
|
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 Ye {
|
|
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
|
|
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", Ln = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
999
999
|
__proto__: null,
|
|
1000
|
-
default:
|
|
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",
|
|
1000
|
+
default: En
|
|
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", kn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1002
1002
|
__proto__: null,
|
|
1003
1003
|
default: Mn
|
|
1004
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
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({
|
|
1005
1005
|
__proto__: null,
|
|
1006
|
-
default:
|
|
1007
|
-
}, 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({
|
|
1008
1008
|
__proto__: null,
|
|
1009
|
-
default:
|
|
1010
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1009
|
+
default: Dn
|
|
1010
|
+
}, Symbol.toStringTag, { value: "Module" })), Sn = "data:image/svg+xml,%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20fill='%23555'%20width='16'%20height='16'%3e%3cpath%20d='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", _n = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1011
1011
|
__proto__: null,
|
|
1012
|
-
default:
|
|
1013
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1012
|
+
default: Sn
|
|
1013
|
+
}, Symbol.toStringTag, { value: "Module" })), Bn = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%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", Nn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1014
1014
|
__proto__: null,
|
|
1015
|
-
default:
|
|
1016
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1015
|
+
default: Bn
|
|
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
1017
|
__proto__: null,
|
|
1018
|
-
default:
|
|
1019
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
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" })),
|
|
1026
|
-
__proto__: null,
|
|
1027
|
-
default: Tn
|
|
1028
|
-
}, Symbol.toStringTag, { value: "Module" })), Vn = "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", Gn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1025
|
+
}, Symbol.toStringTag, { value: "Module" })), Vn = "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", jn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1029
1026
|
__proto__: null,
|
|
1030
1027
|
default: Vn
|
|
1031
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
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
|
+
__proto__: null,
|
|
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 p.TextureLoader(), oo = no.load(to);
|
|
1047
|
+
class so extends De {
|
|
1048
1048
|
static name = "RenderManager";
|
|
1049
|
-
container = new
|
|
1049
|
+
container = new p.Group();
|
|
1050
1050
|
lines = [];
|
|
1051
|
-
pointVirtualGrid = new
|
|
1052
|
-
quadtree = new ze(new
|
|
1053
|
-
verticalReferenceLineFlag = new
|
|
1051
|
+
pointVirtualGrid = new Oe();
|
|
1052
|
+
quadtree = new ze(new Ze());
|
|
1053
|
+
verticalReferenceLineFlag = new p.Mesh(new p.PlaneGeometry(0.3, 0.3), new p.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 p.LineBasicMaterial({
|
|
1057
1057
|
transparent: !0,
|
|
1058
1058
|
opacity: 0.5,
|
|
1059
1059
|
color: 16777215
|
|
@@ -1070,7 +1070,7 @@ class ss extends Se {
|
|
|
1070
1070
|
return;
|
|
1071
1071
|
} else
|
|
1072
1072
|
this.updatedMode = "dxf";
|
|
1073
|
-
this.pointVirtualGrid = new
|
|
1073
|
+
this.pointVirtualGrid = new Oe();
|
|
1074
1074
|
const e = this.dxf.box.clone().expansion(Math.max(this.dxf.box.width, this.dxf.box.height) * 2);
|
|
1075
1075
|
(e.width === 0 || e.height === 0) && e.set(-200, -200, 200, 200), this.quadtree = new ze(e), this.lines.length = 0, this.dxf.lineSegments.forEach((t) => {
|
|
1076
1076
|
t.userData.isDoor || this.addLine(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 = L.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 = L.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 p.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 p.Vector3(r.end.x, r.end.y, 0),
|
|
1180
|
+
find: !0,
|
|
1181
|
+
mode: "point",
|
|
1182
|
+
line: r
|
|
1183
|
+
} : {
|
|
1184
|
+
point: new p.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 p.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 p.BufferGeometry();
|
|
1201
|
+
return Object.keys(e).forEach((o) => {
|
|
1202
|
+
n.setAttribute("position", new p.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 p.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(L.zero(), { color: 65280 }), s = new fe([], 16711935), a = new fe([
|
|
1285
|
+
new p.Vector3(-1e4, 0, 0),
|
|
1286
|
+
new p.Vector3(1e4, 0, 0),
|
|
1287
|
+
new p.Vector3(0, -1e4, 0),
|
|
1288
|
+
new p.Vector3(0, 1e4, 0)
|
|
1282
1289
|
], 16711935);
|
|
1283
|
-
a.material = new
|
|
1290
|
+
a.material = new p.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 = L.from(t[o]), a = L.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:
|
|
1327
|
+
l === r && (i = {
|
|
1328
|
+
oldLine: l,
|
|
1322
1329
|
newLine1: new B(
|
|
1323
|
-
|
|
1324
|
-
|
|
1330
|
+
l.start,
|
|
1331
|
+
l.start.distance(s) < l.start.distance(a) ? s.clone() : a.clone()
|
|
1325
1332
|
),
|
|
1326
1333
|
newLine2: new B(
|
|
1327
|
-
|
|
1328
|
-
|
|
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 B(s, a);
|
|
1339
|
+
c.userData.isDoor = !0, c.userData.doorDirectConnection = !0, n.push({
|
|
1340
|
+
line: c,
|
|
1334
1341
|
option: i
|
|
1335
1342
|
});
|
|
1336
1343
|
}
|
|
@@ -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 p.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(L.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(L.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,13 +1406,13 @@ 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 B(L.from(t), L.from(n)), a = s.center, l = s.length(), r = {
|
|
1411
|
+
p: new p.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
|
*/
|
|
@@ -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 p.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((w) => w.userData !== e)), (o === "end" || o === "all") && (r = this.renderManager.pointVirtualGrid.queryPoint(e.end).filter((w) => w.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
|
-
|
|
1490
|
-
const { point: E, userData:
|
|
1491
|
-
if (
|
|
1492
|
-
if (
|
|
1493
|
-
const
|
|
1494
|
-
if (
|
|
1495
|
+
const m = (w, f, u) => {
|
|
1496
|
+
w.forEach((h) => {
|
|
1497
|
+
const { point: E, userData: b } = h, D = b.start === E ? "start" : "end";
|
|
1498
|
+
if (b.directionEqual(i))
|
|
1499
|
+
if (D === "start") {
|
|
1500
|
+
const F = e.projectPoint(b.end, !1);
|
|
1501
|
+
if (F) return this.setLinePoint(b, f, F, "end", s, a);
|
|
1495
1502
|
} else {
|
|
1496
|
-
const
|
|
1497
|
-
if (
|
|
1503
|
+
const F = e.projectPoint(b.start, !1);
|
|
1504
|
+
if (F) return this.setLinePoint(b, F, f, "start", s, a);
|
|
1498
1505
|
}
|
|
1499
|
-
(
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1506
|
+
(c === "all" || u === c) && this.setLinePoint(
|
|
1507
|
+
b,
|
|
1508
|
+
b.start === E ? f : b.start,
|
|
1509
|
+
b.end === E ? f : b.end,
|
|
1510
|
+
b.start === E ? "end" : "start",
|
|
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, w] = i;
|
|
1532
|
+
return c.sameEndpoint(e) ? m.push(c) : w.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, u = i.sameEndpointAsStart(e) ? i.end : i.start, h = new B(
|
|
1538
|
+
u.clone().add(s.clone().multiplyScalar(1)),
|
|
1539
|
+
u.clone().add(s.clone().multiplyScalar(-1))
|
|
1540
|
+
), E = h.projectPoint(f, !1);
|
|
1534
1541
|
if (E) {
|
|
1535
|
-
const
|
|
1542
|
+
const b = [];
|
|
1536
1543
|
this.setLinePoint(
|
|
1537
1544
|
i,
|
|
1538
|
-
i.start ===
|
|
1539
|
-
i.end ===
|
|
1540
|
-
i.start ===
|
|
1541
|
-
|
|
1542
|
-
), t.push(
|
|
1545
|
+
i.start === u ? E : i.start,
|
|
1546
|
+
i.end === u ? E : i.end,
|
|
1547
|
+
i.start === u ? "start" : "end",
|
|
1548
|
+
b
|
|
1549
|
+
), t.push(b);
|
|
1543
1550
|
}
|
|
1544
1551
|
return n.add(i), !1;
|
|
1545
|
-
}),
|
|
1546
|
-
const
|
|
1547
|
-
const
|
|
1548
|
-
if (
|
|
1552
|
+
}), s.copy(e.direction());
|
|
1553
|
+
const r = (i, c, m) => {
|
|
1554
|
+
const w = e.projectPoint(c);
|
|
1555
|
+
if (w) i.copy(w);
|
|
1549
1556
|
else {
|
|
1550
1557
|
const f = new B(
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
),
|
|
1554
|
-
if (
|
|
1555
|
-
const
|
|
1558
|
+
c.clone().add(s.clone().multiplyScalar(1)),
|
|
1559
|
+
c.clone().add(s.clone().multiplyScalar(-1))
|
|
1560
|
+
), u = f.projectPoint(i, !1);
|
|
1561
|
+
if (u) {
|
|
1562
|
+
const h = [];
|
|
1556
1563
|
this.setLinePoint(
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
), t.push(
|
|
1564
|
+
m,
|
|
1565
|
+
m.start === c ? u : m.start,
|
|
1566
|
+
m.end === c ? u : 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
|
-
),
|
|
1578
|
-
if (
|
|
1579
|
-
const
|
|
1580
|
-
this.setLinePoint(i,
|
|
1579
|
+
const c = e.getIntersection(i);
|
|
1580
|
+
if (c) {
|
|
1581
|
+
const m = new B(
|
|
1582
|
+
i.start.clone().add(s.clone().multiplyScalar(1)),
|
|
1583
|
+
i.start.clone().add(s.clone().multiplyScalar(-1))
|
|
1584
|
+
), w = m.projectPoint(c, !1);
|
|
1585
|
+
if (w) {
|
|
1586
|
+
const h = [];
|
|
1587
|
+
this.setLinePoint(i, w, i.end, "start", h), t.push(h);
|
|
1581
1588
|
}
|
|
1582
1589
|
const f = new B(
|
|
1583
|
-
i.end.clone().add(
|
|
1584
|
-
i.end.clone().add(
|
|
1585
|
-
),
|
|
1586
|
-
if (
|
|
1587
|
-
const
|
|
1588
|
-
this.setLinePoint(i, i.start,
|
|
1590
|
+
i.end.clone().add(s.clone().multiplyScalar(1)),
|
|
1591
|
+
i.end.clone().add(s.clone().multiplyScalar(-1))
|
|
1592
|
+
), u = f.projectPoint(c, !1);
|
|
1593
|
+
if (u) {
|
|
1594
|
+
const h = [];
|
|
1595
|
+
this.setLinePoint(i, i.start, u, "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: St.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
|
+
}), Fe(...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
|
+
Fe(...t);
|
|
1639
1646
|
} else
|
|
1640
1647
|
this.renderManager.removeLines(e.newLines), this.renderManager.addLines(e.oldLines);
|
|
1641
1648
|
return this.renderManager.draw(), e;
|
|
@@ -1648,31 +1655,31 @@ class le extends O {
|
|
|
1648
1655
|
return this.completed(e), e;
|
|
1649
1656
|
}
|
|
1650
1657
|
}
|
|
1651
|
-
class
|
|
1658
|
+
class X extends O {
|
|
1652
1659
|
static name = "MergeLine";
|
|
1653
1660
|
shortcutKeys = ["control", "g"];
|
|
1654
1661
|
static commandName = "merge-line";
|
|
1655
1662
|
onAddFromParent(e) {
|
|
1656
1663
|
super.onAddFromParent(e);
|
|
1657
|
-
const t = this.commandManager.addCommandFlow(
|
|
1658
|
-
t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(
|
|
1659
|
-
this.eventInput.isKeyCombination(
|
|
1664
|
+
const t = this.commandManager.addCommandFlow(X.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.mergeLines.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
|
|
1665
|
+
t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(X.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
|
|
1666
|
+
this.eventInput.isKeyCombination(X.commandName) && await this.commandManager.start(X.commandName, [...this.default.selectLines]);
|
|
1660
1667
|
}), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
|
|
1661
1668
|
}
|
|
1662
1669
|
/**
|
|
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 } = B.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
|
|
@@ -1695,26 +1702,26 @@ class $ extends O {
|
|
|
1695
1702
|
return this.completed(e), e;
|
|
1696
1703
|
}
|
|
1697
1704
|
}
|
|
1698
|
-
class
|
|
1705
|
+
class $ extends O {
|
|
1699
1706
|
static name = "DeleteSelectLine";
|
|
1700
1707
|
shortcutKeys = ["Delete"];
|
|
1701
1708
|
static commandName = "deleteSelectLine";
|
|
1702
1709
|
onAddFromParent(e) {
|
|
1703
|
-
super.onAddFromParent(e), this.commandManager.addCommandFlow(
|
|
1704
|
-
this.eventInput.isKeyCombination(
|
|
1710
|
+
super.onAddFromParent(e), this.commandManager.addCommandFlow($.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.delete.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this)).addEventListener("finally", this.createFinally()), this.eventInput.addKeyCombination($.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
|
|
1711
|
+
this.eventInput.isKeyCombination($.commandName) && await this.commandManager.start($.commandName, [...this.default.selectLines]);
|
|
1705
1712
|
}), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
|
|
1706
1713
|
}
|
|
1707
1714
|
/**
|
|
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
|
|
@@ -1730,36 +1737,36 @@ class ee extends O {
|
|
|
1730
1737
|
return e.forEach((t) => this.renderManager.removeLine(t)), e;
|
|
1731
1738
|
}
|
|
1732
1739
|
}
|
|
1733
|
-
class
|
|
1740
|
+
class ee extends O {
|
|
1734
1741
|
static name = "ConnectionLine";
|
|
1735
1742
|
shortcutKeys = ["Shift", "L"];
|
|
1736
1743
|
static commandName = "connectionLine";
|
|
1737
1744
|
onAddFromParent(e) {
|
|
1738
1745
|
super.onAddFromParent(e);
|
|
1739
|
-
const t = this.commandManager.addCommandFlow(
|
|
1740
|
-
t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(
|
|
1741
|
-
this.eventInput.isKeyCombination(
|
|
1746
|
+
const t = this.commandManager.addCommandFlow(ee.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.connection.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
|
|
1747
|
+
t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(ee.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
|
|
1748
|
+
this.eventInput.isKeyCombination(ee.commandName) && await this.commandManager.start(ee.commandName, [...this.default.selectLines]);
|
|
1742
1749
|
}), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
|
|
1743
1750
|
}
|
|
1744
1751
|
/**
|
|
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 B(n.clone(),
|
|
1762
|
-
e(a),
|
|
1767
|
+
if (n && o) {
|
|
1768
|
+
const a = new B(n.clone(), o.clone());
|
|
1769
|
+
e(a), k({ message: "连接成功", type: "success" });
|
|
1763
1770
|
} else this.cancel();
|
|
1764
1771
|
}
|
|
1765
1772
|
/** 成功
|
|
@@ -1783,47 +1790,47 @@ class te extends O {
|
|
|
1783
1790
|
return this.completed(e), e;
|
|
1784
1791
|
}
|
|
1785
1792
|
}
|
|
1786
|
-
class
|
|
1793
|
+
class te extends O {
|
|
1787
1794
|
static name = "IntersectionConnectionLine";
|
|
1788
1795
|
shortcutKeys = ["control", "Shift", "L"];
|
|
1789
1796
|
static commandName = "intersectionConnectionLine";
|
|
1790
1797
|
onAddFromParent(e) {
|
|
1791
1798
|
super.onAddFromParent(e);
|
|
1792
|
-
const t = this.commandManager.addCommandFlow(
|
|
1793
|
-
t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(
|
|
1794
|
-
this.eventInput.isKeyCombination(
|
|
1799
|
+
const t = this.commandManager.addCommandFlow(te.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.connection.bind(this)).addRollback(this.rollback.bind(this)).addRevokeRollback(this.revokeRollback.bind(this));
|
|
1800
|
+
t.addEventListener("finally", this.createFinally()), t.addEventListener("completed", (n) => this.completed(n.data)), this.eventInput.addKeyCombination(te.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
|
|
1801
|
+
this.eventInput.isKeyCombination(te.commandName) && await this.commandManager.start(te.commandName, [...this.default.selectLines]);
|
|
1795
1802
|
}), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
|
|
1796
1803
|
}
|
|
1797
1804
|
/**
|
|
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 ne 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(ne.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(ne.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
|
|
1851
|
+
this.eventInput.isKeyCombination(ne.commandName) && await this.commandManager.start(ne.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
|
* 完成
|
|
@@ -1892,7 +1899,7 @@ class se extends O {
|
|
|
1892
1899
|
}
|
|
1893
1900
|
class oe extends O {
|
|
1894
1901
|
static name = "SelectAll";
|
|
1895
|
-
container = new
|
|
1902
|
+
container = new p.Group();
|
|
1896
1903
|
shortcutKeys = ["control", "a"];
|
|
1897
1904
|
static commandName = "selectAll";
|
|
1898
1905
|
onAddFromParent(e) {
|
|
@@ -1927,22 +1934,22 @@ class oe extends O {
|
|
|
1927
1934
|
return this.completed(e), e;
|
|
1928
1935
|
}
|
|
1929
1936
|
}
|
|
1930
|
-
class
|
|
1937
|
+
class se extends O {
|
|
1931
1938
|
static name = "ViewAngle";
|
|
1932
1939
|
shortcutKeys = ["r"];
|
|
1933
1940
|
static commandName = "viewAngle";
|
|
1934
1941
|
onAddFromParent(e) {
|
|
1935
1942
|
super.onAddFromParent(e);
|
|
1936
|
-
const t = this.commandManager.addCommandFlow(
|
|
1937
|
-
t.writeOperationList = !1, t.addEventListener("finally", this.createFinally()), this.eventInput.addKeyCombination(
|
|
1938
|
-
this.eventInput.isKeyCombination(
|
|
1943
|
+
const t = this.commandManager.addCommandFlow(se.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.viewAngle.bind(this));
|
|
1944
|
+
t.writeOperationList = !1, t.addEventListener("finally", this.createFinally()), this.eventInput.addKeyCombination(se.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
|
|
1945
|
+
this.eventInput.isKeyCombination(se.commandName) && await this.commandManager.start(se.commandName, [...this.default.selectLines]);
|
|
1939
1946
|
}), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
|
|
1940
1947
|
}
|
|
1941
1948
|
/**
|
|
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,35 @@ 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
|
|
1958
|
-
let
|
|
1959
|
-
return
|
|
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(G, W) {
|
|
1964
|
+
const M = W.x - G.x, I = W.y - G.y;
|
|
1965
|
+
let x = Math.atan2(I, M) * (180 / Math.PI);
|
|
1966
|
+
return x < 0 && (x += 360), x;
|
|
1960
1967
|
}
|
|
1961
|
-
const
|
|
1962
|
-
function
|
|
1963
|
-
for (let
|
|
1964
|
-
const
|
|
1965
|
-
E.push(
|
|
1968
|
+
const w = m(a, l), f = m(a, r), u = Math.min(w, f), h = Math.max(w, f), E = [];
|
|
1969
|
+
function b(G, W) {
|
|
1970
|
+
for (let M = G; M <= W; M++) {
|
|
1971
|
+
const I = Math.cos(M * Math.PI / 180) * s + a.x, x = Math.sin(M * Math.PI / 180) * s + a.y, j = Math.cos((M + 1) * Math.PI / 180) * s + a.x, ie = Math.sin((M + 1) * Math.PI / 180) * s + a.y;
|
|
1972
|
+
E.push(I, x, 0, j, ie, 0);
|
|
1966
1973
|
}
|
|
1967
1974
|
}
|
|
1968
|
-
|
|
1969
|
-
const
|
|
1970
|
-
|
|
1975
|
+
h - u > 180 ? (b(0, u), b(h, 360), i = 360 - (h - u), c = (h + i / 2) % 360) : (b(u, h), i = h - u, c = u + i / 2);
|
|
1976
|
+
const D = new p.LineSegments();
|
|
1977
|
+
D.geometry = this.renderManager.createGeometry({
|
|
1971
1978
|
position: E
|
|
1972
|
-
}, E.length / 3),
|
|
1973
|
-
const
|
|
1979
|
+
}, E.length / 3), D.material = new p.LineBasicMaterial({ color: 16711935 }), this.renderManager.container.add(D);
|
|
1980
|
+
const F = Math.cos(c * Math.PI / 180) * s + a.x, Z = Math.sin(c * Math.PI / 180) * s + a.y;
|
|
1981
|
+
this.renderer.createText(Number(i.toFixed(2)), new p.Vector3(F, Z, 0), {
|
|
1974
1982
|
textShadow: "0px 0px 2px #000"
|
|
1975
|
-
}, this.renderManager.container);
|
|
1976
|
-
let G = 0;
|
|
1977
|
-
this.addEventRecord("clear").add(() => k.removeFromParent()).add(() => Z.removeFromParent()).add(this.eventInput.addEventListener("codeChange", () => {
|
|
1978
|
-
this.eventInput.isOnlyKeyDown("enter") ? e() : this.eventInput.isOnlyKeyDown("mouse_0") && (G++, G === 1 ? setTimeout(() => G = 0, 500) : G === 2 && (e(), G = 0));
|
|
1979
|
-
}));
|
|
1983
|
+
}, this.renderManager.container), this.addEventRecord("clear"), e();
|
|
1980
1984
|
}
|
|
1981
1985
|
}
|
|
1982
|
-
class
|
|
1986
|
+
class rt extends O {
|
|
1983
1987
|
static name = "ClippingLine";
|
|
1984
|
-
container = new
|
|
1988
|
+
container = new p.Group();
|
|
1985
1989
|
shortcutKeys = ["control", "x"];
|
|
1986
1990
|
commandName = "clippingLine";
|
|
1987
1991
|
static commandName = "clippingLine";
|
|
@@ -1994,24 +1998,24 @@ class dt extends O {
|
|
|
1994
1998
|
* @param next
|
|
1995
1999
|
*/
|
|
1996
2000
|
selectPointStart(e) {
|
|
1997
|
-
let t = null, n =
|
|
2001
|
+
let t = null, n = this.renderer.createCircle(L.zero(), { color: 16711935 }), o = null;
|
|
1998
2002
|
this.addEventRecord("selectPointStart").add(this.editor.addEventListener("pointerPositionChange", () => {
|
|
1999
|
-
const { point:
|
|
2000
|
-
this.dispatchEvent({ type: "pointerMove", point:
|
|
2003
|
+
const { point: s, line: a, find: l } = this.editor.renderManager.adsorption();
|
|
2004
|
+
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
2005
|
})).add(this.eventInput.addEventListener("codeChange", () => {
|
|
2002
|
-
this.eventInput.isKeyDown("mouse_0") && t && (this.canceEventRecord("selectPointStart"), e({ point: t, line:
|
|
2006
|
+
this.eventInput.isKeyDown("mouse_0") && t && (this.canceEventRecord("selectPointStart"), e({ point: t, line: o }));
|
|
2003
2007
|
})), this.addEventRecord("clear").add(() => n.removeFromParent());
|
|
2004
2008
|
}
|
|
2005
2009
|
/** 选择结束点
|
|
2006
2010
|
* @param next
|
|
2007
2011
|
*/
|
|
2008
2012
|
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 }),
|
|
2013
|
+
let o = null, s = this.renderer.createCircle(L.zero(), { color: 16711935 });
|
|
2014
|
+
this.addEventRecord("clear").add(() => s.removeFromParent()).add(this.editor.addEventListener("pointerPositionChange", () => {
|
|
2015
|
+
const { point: a, find: l, line: r } = this.editor.renderManager.adsorption();
|
|
2016
|
+
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
2017
|
})).add(this.eventInput.addEventListener("codeChange", () => {
|
|
2014
|
-
this.eventInput.isKeyDown("mouse_0") &&
|
|
2018
|
+
this.eventInput.isKeyDown("mouse_0") && o && e({ line: n, start: t, end: o });
|
|
2015
2019
|
}));
|
|
2016
2020
|
}
|
|
2017
2021
|
/**
|
|
@@ -2019,17 +2023,17 @@ class dt extends O {
|
|
|
2019
2023
|
* @param next
|
|
2020
2024
|
* @param points
|
|
2021
2025
|
*/
|
|
2022
|
-
end(e, { start: t, end: n, line:
|
|
2023
|
-
const
|
|
2026
|
+
end(e, { start: t, end: n, line: o }) {
|
|
2027
|
+
const s = L.from(t), a = L.from(n);
|
|
2024
2028
|
e({
|
|
2025
|
-
oldLine:
|
|
2029
|
+
oldLine: o,
|
|
2026
2030
|
newLine1: new B(
|
|
2027
|
-
|
|
2028
|
-
|
|
2031
|
+
o.start,
|
|
2032
|
+
o.start.distance(s) < o.start.distance(a) ? s.clone() : a.clone()
|
|
2029
2033
|
),
|
|
2030
2034
|
newLine2: new B(
|
|
2031
|
-
|
|
2032
|
-
|
|
2035
|
+
o.end,
|
|
2036
|
+
o.end.distance(s) < o.end.distance(a) ? s.clone() : a.clone()
|
|
2033
2037
|
)
|
|
2034
2038
|
});
|
|
2035
2039
|
}
|
|
@@ -2052,22 +2056,22 @@ class dt extends O {
|
|
|
2052
2056
|
return this.completed(e), e;
|
|
2053
2057
|
}
|
|
2054
2058
|
}
|
|
2055
|
-
class
|
|
2059
|
+
class ae extends O {
|
|
2056
2060
|
static name = "VerticalReferenceLine";
|
|
2057
2061
|
shortcutKeys = ["v"];
|
|
2058
2062
|
static commandName = "VerticalReferenceLine";
|
|
2059
2063
|
onAddFromParent(e) {
|
|
2060
2064
|
super.onAddFromParent(e);
|
|
2061
|
-
const t = this.commandManager.addCommandFlow(
|
|
2062
|
-
t.writeOperationList = !1, t.addEventListener("finally", this.createFinally()), this.eventInput.addKeyCombination(
|
|
2063
|
-
this.eventInput.isKeyCombination(
|
|
2065
|
+
const t = this.commandManager.addCommandFlow(ae.commandName).add(this.createInterrupt()).add(this.constraint.bind(this)).add(this.verticalReferenceLine.bind(this));
|
|
2066
|
+
t.writeOperationList = !1, t.addEventListener("finally", this.createFinally()), this.eventInput.addKeyCombination(ae.commandName, this.shortcutKeys), this.eventInput.addEventListener("codeChange", async () => {
|
|
2067
|
+
this.eventInput.isKeyCombination(ae.commandName) && await this.commandManager.start(ae.commandName, [...this.default.selectLines]);
|
|
2064
2068
|
}), this.eventInput.addCancelDefaultBehavior(() => this.eventInput.isOnlyKeyDowns(this.shortcutKeys));
|
|
2065
2069
|
}
|
|
2066
2070
|
/**
|
|
2067
2071
|
* 进入命令约束
|
|
2068
2072
|
*/
|
|
2069
2073
|
constraint(e, t) {
|
|
2070
|
-
Array.isArray(t) ? t.length !== 1 ? (
|
|
2074
|
+
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
2075
|
}
|
|
2072
2076
|
/**
|
|
2073
2077
|
*
|
|
@@ -2080,67 +2084,67 @@ class ie extends O {
|
|
|
2080
2084
|
}), t[0].userData.isVerticalReferenceLine = !0, e(), this.renderManager.draw();
|
|
2081
2085
|
}
|
|
2082
2086
|
}
|
|
2083
|
-
const
|
|
2087
|
+
const ro = {
|
|
2084
2088
|
key: 0,
|
|
2085
2089
|
class: "mt-[5px] text-[#ccc] text-[11px] absolute left-[10px] bottom-[10px] rounded-[8px] min-w-[150px] bg-black/15 p-[10px]"
|
|
2086
|
-
},
|
|
2090
|
+
}, lo = { class: "text-start max-w-[150px]" }, co = { class: "inline-block ml-[10px] text-[var(--color-primary)]" }, mo = {
|
|
2087
2091
|
key: 0,
|
|
2088
2092
|
class: "p-[5px] max-w-[200px]"
|
|
2089
|
-
},
|
|
2093
|
+
}, 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
2094
|
key: 1,
|
|
2091
2095
|
class: "text-[#999]"
|
|
2092
|
-
},
|
|
2096
|
+
}, wo = {
|
|
2093
2097
|
style: { "--el-color-primary": "var(--primary-color)" },
|
|
2094
2098
|
class: "flex flex-row items-center justify-between gap-[10px] mt-[10px] text-[10px]"
|
|
2095
|
-
},
|
|
2099
|
+
}, bo = {
|
|
2096
2100
|
key: 0,
|
|
2097
2101
|
class: "flex flex-row items-center flex-wrap justify-between gap-[10px] mt-[10px] text-[10px]"
|
|
2098
|
-
},
|
|
2102
|
+
}, xo = { class: "flex-wrap border-t-1 border-t-[#eee] mt-[5px] pt-[5px] flex items-center gap-[10px]" }, Co = ["onClick", "title"], Eo = ["src"], Lo = /* @__PURE__ */ me({
|
|
2099
2103
|
__name: "EditorTool",
|
|
2100
2104
|
props: {
|
|
2101
2105
|
dxfSystem: {},
|
|
2102
2106
|
permission: {}
|
|
2103
2107
|
},
|
|
2104
|
-
setup(
|
|
2105
|
-
function e(C, g,
|
|
2106
|
-
const
|
|
2107
|
-
C = Math.max(0, Math.min(C,
|
|
2108
|
+
setup(d) {
|
|
2109
|
+
function e(C, g, y = m.value.getBoundingClientRect(), U = w.value.getBoundingClientRect()) {
|
|
2110
|
+
const he = y.width - U.width, ue = 0, Ee = y.height - U.height;
|
|
2111
|
+
C = Math.max(0, Math.min(C, he)), g = Math.max(ue, Math.min(g, Ee)), M.value = { left: C, top: g };
|
|
2108
2112
|
}
|
|
2109
2113
|
function t(C) {
|
|
2110
|
-
|
|
2114
|
+
u.value === C.command || u.value !== "default" || b.commandManager.start(C.command);
|
|
2111
2115
|
}
|
|
2112
2116
|
function n(C) {
|
|
2113
2117
|
if (C) {
|
|
2114
2118
|
localStorage.setItem("lines", JSON.stringify(C));
|
|
2115
2119
|
try {
|
|
2116
|
-
|
|
2120
|
+
h.Dxf.set(C), h.Dxf.lineOffset();
|
|
2117
2121
|
} catch (g) {
|
|
2118
2122
|
console.log(g);
|
|
2119
2123
|
}
|
|
2120
2124
|
}
|
|
2121
2125
|
}
|
|
2122
|
-
async function
|
|
2126
|
+
async function o() {
|
|
2123
2127
|
const C = await Dt.json();
|
|
2124
2128
|
Array.isArray(C) && (localStorage.removeItem("orbitControls"), n(C));
|
|
2125
2129
|
}
|
|
2126
|
-
function
|
|
2130
|
+
function s({ offsetX: C, offsetY: g }) {
|
|
2127
2131
|
E.mouseMoveEventProxylock = !0;
|
|
2128
|
-
const
|
|
2132
|
+
const y = document.body.style.cursor;
|
|
2129
2133
|
document.body.style.cursor = "move";
|
|
2130
|
-
const U = (
|
|
2131
|
-
const
|
|
2134
|
+
const U = (he) => {
|
|
2135
|
+
const ue = m.value.getBoundingClientRect(), Ee = w.value.getBoundingClientRect();
|
|
2132
2136
|
e(
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
),
|
|
2138
|
-
},
|
|
2139
|
-
document.body.removeEventListener("mousemove", U), document.removeEventListener("mouseup",
|
|
2137
|
+
he.pageX - ue.left - C,
|
|
2138
|
+
he.pageY - ue.top - g,
|
|
2139
|
+
ue,
|
|
2140
|
+
Ee
|
|
2141
|
+
), he.stopPropagation(), document.body.style.cursor = "move";
|
|
2142
|
+
}, Ce = () => {
|
|
2143
|
+
document.body.removeEventListener("mousemove", U), document.removeEventListener("mouseup", Ce), document.body.style.cursor = y, E.mouseMoveEventProxylock = !1;
|
|
2140
2144
|
};
|
|
2141
|
-
document.body.addEventListener("mousemove", U), document.addEventListener("mouseup",
|
|
2145
|
+
document.body.addEventListener("mousemove", U), document.addEventListener("mouseup", Ce);
|
|
2142
2146
|
}
|
|
2143
|
-
const a =
|
|
2147
|
+
const a = d, l = _(!0), r = _(!0), i = _(!0), c = _(!1), m = _(), w = _(), f = _(!0), u = _(""), h = zt(a.dxfSystem), E = h.findComponentByType(Pt), b = h.findComponentByType(dt), D = h.findComponentByType(it), F = h.findComponentByType(_t), Z = h.findComponentByType(Bt), G = _(0), W = _(0), M = _({ left: 10, top: 100 }), I = /* @__PURE__ */ Object.assign({ "./assets/images/angle.svg": Ln, "./assets/images/connection.svg": kn, "./assets/images/cutLine.svg": Pn, "./assets/images/deleteSelectLine.svg": An, "./assets/images/deleteSelectWindow.svg": _n, "./assets/images/door.svg": Nn, "./assets/images/intersectionConnection.svg": On, "./assets/images/line.svg": Fn, "./assets/images/mergeLine.svg": Tn, "./assets/images/revokeRollback.svg": jn, "./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 }), x = _(!1), j = _(0), ie = _(!1), xe = new ResizeObserver(() => e(M.value.left, M.value.top)), lt = [
|
|
2144
2148
|
{ name: "开启绘制线段命令", shortcut: "Ctrl + L" },
|
|
2145
2149
|
{ name: "开启绘制门线命令", shortcut: "Ctrl + M" },
|
|
2146
2150
|
{ name: "开启绘制窗户线命令", shortcut: "Ctrl + Q" },
|
|
@@ -2170,7 +2174,7 @@ const is = {
|
|
|
2170
2174
|
{
|
|
2171
2175
|
command: "draw-line",
|
|
2172
2176
|
name: "绘制线段",
|
|
2173
|
-
src:
|
|
2177
|
+
src: I["./assets/images/line.svg"].default,
|
|
2174
2178
|
show: !0,
|
|
2175
2179
|
shortcut: "Ctrl + L"
|
|
2176
2180
|
},
|
|
@@ -2178,182 +2182,182 @@ const is = {
|
|
|
2178
2182
|
command: "draw-door-line",
|
|
2179
2183
|
name: "绘制门线",
|
|
2180
2184
|
show: !0,
|
|
2181
|
-
src:
|
|
2185
|
+
src: I["./assets/images/door.svg"].default,
|
|
2182
2186
|
shortcut: "Ctrl + M"
|
|
2183
2187
|
},
|
|
2184
2188
|
{
|
|
2185
2189
|
command: "draw-window-line",
|
|
2186
2190
|
name: "绘制窗户线",
|
|
2187
2191
|
show: !0,
|
|
2188
|
-
src:
|
|
2192
|
+
src: I["./assets/images/window.svg"].default,
|
|
2189
2193
|
shortcut: "Ctrl + Q"
|
|
2190
2194
|
},
|
|
2191
2195
|
{
|
|
2192
2196
|
command: "point",
|
|
2193
2197
|
name: "点修改",
|
|
2194
2198
|
show: !0,
|
|
2195
|
-
src:
|
|
2199
|
+
src: I["./assets/images/selectPoint.svg"].default,
|
|
2196
2200
|
shortcut: "Ctrl + P"
|
|
2197
2201
|
},
|
|
2198
2202
|
{
|
|
2199
|
-
command:
|
|
2203
|
+
command: rt.commandName,
|
|
2200
2204
|
name: "裁剪线段",
|
|
2201
2205
|
show: !0,
|
|
2202
|
-
src:
|
|
2206
|
+
src: I["./assets/images/cutLine.svg"].default,
|
|
2203
2207
|
shortcut: "Ctrl + X"
|
|
2204
2208
|
}
|
|
2205
2209
|
], mt = [
|
|
2206
2210
|
{
|
|
2207
2211
|
command: "",
|
|
2208
2212
|
name: "操作回滚",
|
|
2209
|
-
src:
|
|
2210
|
-
show:
|
|
2213
|
+
src: I["./assets/images/rollback.svg"].default,
|
|
2214
|
+
show: S(() => G.value !== 0),
|
|
2211
2215
|
shortcut: "Ctrl + Z",
|
|
2212
2216
|
action() {
|
|
2213
|
-
|
|
2217
|
+
b.commandManager.rollback();
|
|
2214
2218
|
}
|
|
2215
2219
|
},
|
|
2216
2220
|
{
|
|
2217
2221
|
command: "",
|
|
2218
2222
|
name: "撤销操作回滚",
|
|
2219
|
-
src:
|
|
2220
|
-
show:
|
|
2223
|
+
src: I["./assets/images/revokeRollback.svg"].default,
|
|
2224
|
+
show: S(() => W.value !== 0),
|
|
2221
2225
|
shortcut: "Ctrl + Y",
|
|
2222
2226
|
class: "rotateY-[180deg]",
|
|
2223
2227
|
action() {
|
|
2224
|
-
|
|
2228
|
+
b.commandManager.revokeRollback();
|
|
2225
2229
|
}
|
|
2226
2230
|
},
|
|
2227
2231
|
{
|
|
2228
|
-
command:
|
|
2232
|
+
command: X.commandName,
|
|
2229
2233
|
name: "合并",
|
|
2230
|
-
src:
|
|
2231
|
-
show:
|
|
2234
|
+
src: I["./assets/images/mergeLine.svg"].default,
|
|
2235
|
+
show: S(() => j.value === 2),
|
|
2232
2236
|
shortcut: "Ctrl + G"
|
|
2233
2237
|
},
|
|
2234
2238
|
{
|
|
2235
|
-
command:
|
|
2239
|
+
command: ee.commandName,
|
|
2236
2240
|
name: "两点连接",
|
|
2237
|
-
show:
|
|
2238
|
-
src:
|
|
2241
|
+
show: S(() => j.value === 2),
|
|
2242
|
+
src: I["./assets/images/connection.svg"].default,
|
|
2239
2243
|
shortcut: "Shift + L"
|
|
2240
2244
|
},
|
|
2241
2245
|
{
|
|
2242
|
-
command:
|
|
2246
|
+
command: te.commandName,
|
|
2243
2247
|
name: "延长线交点连接",
|
|
2244
|
-
show:
|
|
2245
|
-
src:
|
|
2248
|
+
show: S(() => j.value === 2),
|
|
2249
|
+
src: I["./assets/images/intersectionConnection.svg"].default,
|
|
2246
2250
|
shortcut: "Ctrl + Shift + L"
|
|
2247
2251
|
},
|
|
2248
2252
|
{
|
|
2249
2253
|
command: le.commandName,
|
|
2250
2254
|
name: "线段垂直纠正",
|
|
2251
|
-
show:
|
|
2252
|
-
src:
|
|
2255
|
+
show: S(() => j.value === 1),
|
|
2256
|
+
src: I["./assets/images/verticalCorrection.svg"].default,
|
|
2253
2257
|
shortcut: `
|
|
2254
2258
|
Ctrl + C 垂直纠正
|
|
2255
2259
|
Shift + C 轴对齐垂直纠正
|
|
2256
2260
|
`
|
|
2257
2261
|
},
|
|
2258
2262
|
{
|
|
2259
|
-
command:
|
|
2263
|
+
command: ae.commandName,
|
|
2260
2264
|
name: "y轴垂直基准线",
|
|
2261
|
-
show:
|
|
2262
|
-
() =>
|
|
2265
|
+
show: S(
|
|
2266
|
+
() => j.value === 1 && !D.selectLines[0].userData.isDoor
|
|
2263
2267
|
),
|
|
2264
|
-
src:
|
|
2268
|
+
src: I["./assets/images/verticalLine.svg"].default,
|
|
2265
2269
|
shortcut: "V"
|
|
2266
2270
|
},
|
|
2267
2271
|
{
|
|
2268
|
-
command:
|
|
2272
|
+
command: se.commandName,
|
|
2269
2273
|
name: "角度显示",
|
|
2270
|
-
show:
|
|
2271
|
-
src:
|
|
2274
|
+
show: S(() => j.value === 2 && D.selectLines[0].sameEndpoint(D.selectLines[1])),
|
|
2275
|
+
src: I["./assets/images/angle.svg"].default,
|
|
2272
2276
|
shortcut: "r"
|
|
2273
2277
|
},
|
|
2274
2278
|
{
|
|
2275
2279
|
command: oe.commandName,
|
|
2276
2280
|
name: "全选",
|
|
2277
|
-
show:
|
|
2278
|
-
src:
|
|
2281
|
+
show: S(() => j.value !== b.renderManager.lines.length),
|
|
2282
|
+
src: I["./assets/images/selectAll.svg"].default,
|
|
2279
2283
|
shortcut: "Ctrl + A"
|
|
2280
2284
|
},
|
|
2281
2285
|
{
|
|
2282
|
-
command:
|
|
2286
|
+
command: ne.commandName,
|
|
2283
2287
|
name: "清除窗户",
|
|
2284
|
-
show:
|
|
2285
|
-
src:
|
|
2288
|
+
show: S(() => ie.value),
|
|
2289
|
+
src: I["./assets/images/deleteSelectWindow.svg"].default,
|
|
2286
2290
|
shortcut: "Q + Delete"
|
|
2287
2291
|
},
|
|
2288
2292
|
{
|
|
2289
|
-
command:
|
|
2293
|
+
command: $.commandName,
|
|
2290
2294
|
name: "删除",
|
|
2291
|
-
show:
|
|
2292
|
-
src:
|
|
2295
|
+
show: S(() => j.value > 0),
|
|
2296
|
+
src: I["./assets/images/deleteSelectLine.svg"].default,
|
|
2293
2297
|
shortcut: "Delete"
|
|
2294
2298
|
}
|
|
2295
2299
|
];
|
|
2296
|
-
J(
|
|
2297
|
-
localStorage.setItem("toolBarExpand", f.value + ""), f.value && ye(() => e(
|
|
2298
|
-
}), J(
|
|
2299
|
-
const ht =
|
|
2300
|
-
|
|
2300
|
+
J(M, () => localStorage.setItem("editorToolPosition", JSON.stringify(M.value))), J(x, () => localStorage.setItem("showShortcutKey", x.value + "")), J(f, () => {
|
|
2301
|
+
localStorage.setItem("toolBarExpand", f.value + ""), f.value && ye(() => e(M.value.left, M.value.top));
|
|
2302
|
+
}), 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);
|
|
2303
|
+
const ht = b.commandManager.addEventListener("started", (C) => {
|
|
2304
|
+
u.value = C.name;
|
|
2301
2305
|
});
|
|
2302
|
-
return localStorage.getItem("showShortcutKey") && (
|
|
2303
|
-
|
|
2304
|
-
if (
|
|
2306
|
+
return localStorage.getItem("showShortcutKey") && (x.value = localStorage.getItem("showShortcutKey") === "true"), localStorage.getItem("toolBarExpand") && (f.value = localStorage.getItem("toolBarExpand") === "true"), et(() => {
|
|
2307
|
+
w.value.style.display = "none", setTimeout(() => {
|
|
2308
|
+
if (w.value.style.display = "block", localStorage.getItem("editorToolPosition")) {
|
|
2305
2309
|
const { left: C, top: g } = JSON.parse(localStorage.getItem("editorToolPosition") ?? "{}");
|
|
2306
|
-
e(C, g), ye(() =>
|
|
2310
|
+
e(C, g), ye(() => xe.observe(m.value));
|
|
2307
2311
|
} else
|
|
2308
|
-
ye(() =>
|
|
2309
|
-
}, 100),
|
|
2310
|
-
|
|
2312
|
+
ye(() => xe.observe(m.value));
|
|
2313
|
+
}, 100), D.addEventListener("selectLineChange", () => {
|
|
2314
|
+
j.value = D.selectLines.length, ie.value = D.selectLines.some((C) => C.userData.isWindow);
|
|
2311
2315
|
}), ["rollback", "completed", "revokeRollback"].forEach((C) => {
|
|
2312
|
-
|
|
2316
|
+
b.commandManager.addEventListener(C, () => {
|
|
2313
2317
|
setTimeout(() => {
|
|
2314
|
-
|
|
2318
|
+
G.value = b.commandManager.operationList.length, W.value = b.commandManager.rollbackList.length;
|
|
2315
2319
|
});
|
|
2316
2320
|
});
|
|
2317
2321
|
});
|
|
2318
2322
|
}), Ft(() => {
|
|
2319
|
-
E.mouseMoveEventProxylock = !1, ht(),
|
|
2320
|
-
}), (C, g) => (
|
|
2323
|
+
E.mouseMoveEventProxylock = !1, ht(), xe.disconnect();
|
|
2324
|
+
}), (C, g) => (A(), R("div", {
|
|
2321
2325
|
ref_key: "elRef",
|
|
2322
|
-
ref:
|
|
2326
|
+
ref: m,
|
|
2323
2327
|
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
2328
|
}, [
|
|
2325
|
-
|
|
2326
|
-
default:
|
|
2327
|
-
|
|
2328
|
-
(
|
|
2329
|
+
z(be, null, {
|
|
2330
|
+
default: T(() => [
|
|
2331
|
+
x.value ? (A(), R("div", ro, [
|
|
2332
|
+
(A(), R(ge, null, Me(lt, (y) => P("div", {
|
|
2329
2333
|
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
|
-
key:
|
|
2334
|
+
key: y.name
|
|
2331
2335
|
}, [
|
|
2332
|
-
|
|
2333
|
-
|
|
2336
|
+
P("p", lo, de(y.name), 1),
|
|
2337
|
+
P("span", co, de(y.shortcut), 1)
|
|
2334
2338
|
])), 64))
|
|
2335
2339
|
])) : q("", !0)
|
|
2336
2340
|
]),
|
|
2337
2341
|
_: 1
|
|
2338
2342
|
}),
|
|
2339
|
-
|
|
2343
|
+
P("div", {
|
|
2340
2344
|
ref_key: "toolBarRef",
|
|
2341
|
-
ref:
|
|
2342
|
-
style:
|
|
2345
|
+
ref: w,
|
|
2346
|
+
style: Ae({ left: M.value.left + "px", top: M.value.top + "px" }),
|
|
2343
2347
|
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: g[10] || (g[10] = (
|
|
2348
|
+
onMousedown: g[10] || (g[10] = (y) => y.stopPropagation())
|
|
2345
2349
|
}, [
|
|
2346
|
-
|
|
2347
|
-
onMousedown:
|
|
2350
|
+
P("div", {
|
|
2351
|
+
onMousedown: s,
|
|
2348
2352
|
class: V([{ "border-b-[#eee] border-b-1": f.value }, "flex flex-row justify-between header text-[14px] font-bold p-[10px 0px]"])
|
|
2349
2353
|
}, [
|
|
2350
|
-
g[12] || (g[12] = Kt('<div class="flex flex-row" data-v-
|
|
2351
|
-
|
|
2352
|
-
onMousedown: g[0] || (g[0] = (
|
|
2353
|
-
onClick: g[1] || (g[1] = (
|
|
2354
|
+
g[12] || (g[12] = Kt('<div class="flex flex-row" data-v-c0568cc8><div class="p-[2px_5px] flex items-center pointer-events-none" data-v-c0568cc8><svg fill="#aaa" width="20" height="20" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" data-v-c0568cc8><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-c0568cc8></path></svg></div><h5 class="flex text-nowrap text-[12px] items-center pointer-events-none" data-v-c0568cc8>绘制工具</h5></div>', 1)),
|
|
2355
|
+
P("div", {
|
|
2356
|
+
onMousedown: g[0] || (g[0] = (y) => y.stopPropagation()),
|
|
2357
|
+
onClick: g[1] || (g[1] = (y) => f.value = !f.value),
|
|
2354
2358
|
class: "cursor-pointer flex items-center p-[0px_5px]"
|
|
2355
2359
|
}, [
|
|
2356
|
-
(
|
|
2360
|
+
(A(), R("svg", {
|
|
2357
2361
|
fill: "#666",
|
|
2358
2362
|
class: V([{ "rotate-90": f.value }, "transition-all"]),
|
|
2359
2363
|
viewBox: "0 0 1024 1024",
|
|
@@ -2362,41 +2366,41 @@ const is = {
|
|
|
2362
2366
|
width: "12",
|
|
2363
2367
|
height: "12"
|
|
2364
2368
|
}, g[11] || (g[11] = [
|
|
2365
|
-
|
|
2369
|
+
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
2370
|
]), 2))
|
|
2367
2371
|
], 32)
|
|
2368
2372
|
], 34),
|
|
2369
|
-
f.value ? (
|
|
2370
|
-
|
|
2371
|
-
(
|
|
2372
|
-
key:
|
|
2373
|
+
f.value ? (A(), R("div", mo, [
|
|
2374
|
+
P("ul", ho, [
|
|
2375
|
+
(A(), R(ge, null, Me(ct, (y) => (A(), R(ge, {
|
|
2376
|
+
key: y.command
|
|
2373
2377
|
}, [
|
|
2374
|
-
|
|
2378
|
+
y.show ? (A(), R("li", {
|
|
2375
2379
|
key: 0,
|
|
2376
|
-
onClick: (U) => t(
|
|
2380
|
+
onClick: (U) => t(y),
|
|
2377
2381
|
class: V([{
|
|
2378
|
-
"!bg-[var(--primary-color)] text-[#fff]":
|
|
2379
|
-
"!cursor-no-drop":
|
|
2382
|
+
"!bg-[var(--primary-color)] text-[#fff]": u.value === y.command,
|
|
2383
|
+
"!cursor-no-drop": u.value !== y.command && u.value !== "default"
|
|
2380
2384
|
}, "gap-[10px] text-[12px] hover:bg-[#ddd] transition-all rounded-[6px] p-[5px] flex flex-row items-center justify-between cursor-pointer"])
|
|
2381
2385
|
}, [
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2386
|
+
P("div", po, [
|
|
2387
|
+
P("div", go, [
|
|
2388
|
+
P("img", {
|
|
2385
2389
|
class: "size-[14px]",
|
|
2386
|
-
src:
|
|
2390
|
+
src: y.src,
|
|
2387
2391
|
alt: "",
|
|
2388
2392
|
srcset: ""
|
|
2389
|
-
}, null, 8,
|
|
2393
|
+
}, null, 8, vo)
|
|
2390
2394
|
]),
|
|
2391
|
-
|
|
2395
|
+
P("span", fo, de(y.name), 1)
|
|
2392
2396
|
]),
|
|
2393
|
-
|
|
2397
|
+
u.value === y.command ? (A(), R("div", {
|
|
2394
2398
|
key: 0,
|
|
2395
2399
|
title: "取消命令(Esc)",
|
|
2396
2400
|
class: "active:scale-[0.7] transition-all",
|
|
2397
|
-
onClick: g[2] || (g[2] = (U) => (v(
|
|
2401
|
+
onClick: g[2] || (g[2] = (U) => (v(b).cancelCommand(), U.stopPropagation()))
|
|
2398
2402
|
}, g[13] || (g[13] = [
|
|
2399
|
-
|
|
2403
|
+
P("svg", {
|
|
2400
2404
|
fill: "#fff",
|
|
2401
2405
|
width: "16",
|
|
2402
2406
|
height: "16",
|
|
@@ -2404,120 +2408,120 @@ const is = {
|
|
|
2404
2408
|
version: "1.1",
|
|
2405
2409
|
xmlns: "http://www.w3.org/2000/svg"
|
|
2406
2410
|
}, [
|
|
2407
|
-
|
|
2408
|
-
|
|
2411
|
+
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" }),
|
|
2412
|
+
P("path", { d: "M236.437333 463.914667l549.333333 0 0 96.874667-549.333333 0 0-96.874667Z" })
|
|
2409
2413
|
], -1)
|
|
2410
|
-
]))) :
|
|
2411
|
-
], 10,
|
|
2414
|
+
]))) : y.shortcut ? (A(), R("div", yo, de(y.shortcut), 1)) : q("", !0)
|
|
2415
|
+
], 10, uo)) : q("", !0)
|
|
2412
2416
|
], 64))), 64))
|
|
2413
2417
|
]),
|
|
2414
|
-
|
|
2415
|
-
|
|
2418
|
+
P("div", wo, [
|
|
2419
|
+
z(v(Re), {
|
|
2416
2420
|
size: "small",
|
|
2417
|
-
modelValue:
|
|
2418
|
-
"onUpdate:modelValue": g[3] || (g[3] = (
|
|
2421
|
+
modelValue: x.value,
|
|
2422
|
+
"onUpdate:modelValue": g[3] || (g[3] = (y) => x.value = y),
|
|
2419
2423
|
label: "快捷键提示"
|
|
2420
2424
|
}, null, 8, ["modelValue"]),
|
|
2421
|
-
|
|
2425
|
+
z(v(Re), {
|
|
2422
2426
|
size: "small",
|
|
2423
|
-
modelValue:
|
|
2424
|
-
"onUpdate:modelValue": g[4] || (g[4] = (
|
|
2427
|
+
modelValue: r.value,
|
|
2428
|
+
"onUpdate:modelValue": g[4] || (g[4] = (y) => r.value = y),
|
|
2425
2429
|
label: "dxf"
|
|
2426
2430
|
}, null, 8, ["modelValue"])
|
|
2427
2431
|
]),
|
|
2428
|
-
C.permission === "admin" ? (
|
|
2429
|
-
|
|
2432
|
+
C.permission === "admin" ? (A(), R("div", bo, [
|
|
2433
|
+
z(v(re), {
|
|
2430
2434
|
style: { padding: "5px", "font-size": "10px" },
|
|
2431
2435
|
size: "small",
|
|
2432
2436
|
type: "success",
|
|
2433
|
-
onClick:
|
|
2437
|
+
onClick: o
|
|
2434
2438
|
}, {
|
|
2435
|
-
default:
|
|
2436
|
-
|
|
2439
|
+
default: T(() => g[14] || (g[14] = [
|
|
2440
|
+
Y(" 选择文件 ", -1)
|
|
2437
2441
|
])),
|
|
2438
2442
|
_: 1,
|
|
2439
2443
|
__: [14]
|
|
2440
2444
|
}),
|
|
2441
|
-
|
|
2445
|
+
z(v(re), {
|
|
2442
2446
|
style: { padding: "5px", "font-size": "10px" },
|
|
2443
2447
|
size: "small",
|
|
2444
2448
|
type: "primary",
|
|
2445
|
-
onClick: g[5] || (g[5] = (
|
|
2449
|
+
onClick: g[5] || (g[5] = (y) => v(h).Dxf.downloadOriginalData("json.json"))
|
|
2446
2450
|
}, {
|
|
2447
|
-
default:
|
|
2448
|
-
|
|
2451
|
+
default: T(() => g[15] || (g[15] = [
|
|
2452
|
+
Y(" 下载Json ", -1)
|
|
2449
2453
|
])),
|
|
2450
2454
|
_: 1,
|
|
2451
2455
|
__: [15]
|
|
2452
2456
|
}),
|
|
2453
|
-
|
|
2457
|
+
z(v(re), {
|
|
2454
2458
|
style: { padding: "5px", "font-size": "10px" },
|
|
2455
2459
|
size: "small",
|
|
2456
2460
|
type: "primary",
|
|
2457
|
-
onClick: g[6] || (g[6] = (
|
|
2461
|
+
onClick: g[6] || (g[6] = (y) => v(h).AngleCorrectionDxf.download("test.dxf"))
|
|
2458
2462
|
}, {
|
|
2459
|
-
default:
|
|
2460
|
-
|
|
2463
|
+
default: T(() => g[16] || (g[16] = [
|
|
2464
|
+
Y(" 下载DXF ", -1)
|
|
2461
2465
|
])),
|
|
2462
2466
|
_: 1,
|
|
2463
2467
|
__: [16]
|
|
2464
2468
|
}),
|
|
2465
|
-
|
|
2469
|
+
z(v(re), {
|
|
2466
2470
|
style: { padding: "5px", "font-size": "10px" },
|
|
2467
2471
|
size: "small",
|
|
2468
2472
|
type: "primary",
|
|
2469
|
-
onClick: g[7] || (g[7] = (
|
|
2473
|
+
onClick: g[7] || (g[7] = (y) => v(h).AngleCorrectionDxf.downloadImage("dxf.jpg"))
|
|
2470
2474
|
}, {
|
|
2471
|
-
default:
|
|
2472
|
-
|
|
2475
|
+
default: T(() => g[17] || (g[17] = [
|
|
2476
|
+
Y(" 下载JPG ", -1)
|
|
2473
2477
|
])),
|
|
2474
2478
|
_: 1,
|
|
2475
2479
|
__: [17]
|
|
2476
2480
|
}),
|
|
2477
|
-
|
|
2481
|
+
z(v(re), {
|
|
2478
2482
|
style: { padding: "5px", "font-size": "10px" },
|
|
2479
2483
|
size: "small",
|
|
2480
2484
|
type: "primary",
|
|
2481
|
-
onClick: g[8] || (g[8] = (
|
|
2485
|
+
onClick: g[8] || (g[8] = (y) => v(F).downloadGltf("test.glb", !0))
|
|
2482
2486
|
}, {
|
|
2483
|
-
default:
|
|
2484
|
-
|
|
2487
|
+
default: T(() => g[18] || (g[18] = [
|
|
2488
|
+
Y(" 下载白膜 ", -1)
|
|
2485
2489
|
])),
|
|
2486
2490
|
_: 1,
|
|
2487
2491
|
__: [18]
|
|
2488
2492
|
}),
|
|
2489
|
-
|
|
2493
|
+
z(v(re), {
|
|
2490
2494
|
style: { padding: "5px", "font-size": "10px" },
|
|
2491
2495
|
size: "small",
|
|
2492
2496
|
type: "primary",
|
|
2493
|
-
onClick: g[9] || (g[9] = (
|
|
2497
|
+
onClick: g[9] || (g[9] = (y) => v(Z).download())
|
|
2494
2498
|
}, {
|
|
2495
|
-
default:
|
|
2496
|
-
|
|
2499
|
+
default: T(() => g[19] || (g[19] = [
|
|
2500
|
+
Y(" 下载三维家JSON ", -1)
|
|
2497
2501
|
])),
|
|
2498
2502
|
_: 1,
|
|
2499
2503
|
__: [19]
|
|
2500
2504
|
})
|
|
2501
2505
|
])) : q("", !0),
|
|
2502
|
-
|
|
2503
|
-
default:
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
default:
|
|
2507
|
-
(
|
|
2508
|
-
onClick: (U) =>
|
|
2509
|
-
title: `${
|
|
2506
|
+
z(be, null, {
|
|
2507
|
+
default: T(() => [
|
|
2508
|
+
P("div", xo, [
|
|
2509
|
+
z(Tt, null, {
|
|
2510
|
+
default: T(() => [
|
|
2511
|
+
(A(), R(ge, null, Me(mt, (y) => P("div", {
|
|
2512
|
+
onClick: (U) => y.show.value && u.value === "default" && (y.action ? y.action() : v(b).commandManager.start(y.command, [...v(D).selectLines])),
|
|
2513
|
+
title: `${y.name}(${y.shortcut})`,
|
|
2510
2514
|
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]": !
|
|
2512
|
-
[
|
|
2515
|
+
"opacity-30 bg-[#ccc] !cursor-no-drop active:!scale-[1]": !y.show.value || u.value !== "default",
|
|
2516
|
+
[y.class ?? ""]: !0
|
|
2513
2517
|
}]),
|
|
2514
|
-
key:
|
|
2518
|
+
key: y.command
|
|
2515
2519
|
}, [
|
|
2516
|
-
|
|
2520
|
+
P("img", {
|
|
2517
2521
|
class: "size-[14px]",
|
|
2518
|
-
src:
|
|
2519
|
-
}, null, 8,
|
|
2520
|
-
], 10,
|
|
2522
|
+
src: y.src
|
|
2523
|
+
}, null, 8, Eo)
|
|
2524
|
+
], 10, Co)), 64))
|
|
2521
2525
|
]),
|
|
2522
2526
|
_: 1
|
|
2523
2527
|
})
|
|
@@ -2529,15 +2533,15 @@ const is = {
|
|
|
2529
2533
|
], 38)
|
|
2530
2534
|
], 512));
|
|
2531
2535
|
}
|
|
2532
|
-
}),
|
|
2533
|
-
const t =
|
|
2534
|
-
for (const [n,
|
|
2535
|
-
t[n] =
|
|
2536
|
+
}), Mo = (d, e) => {
|
|
2537
|
+
const t = d.__vccOpts || d;
|
|
2538
|
+
for (const [n, o] of e)
|
|
2539
|
+
t[n] = o;
|
|
2536
2540
|
return t;
|
|
2537
|
-
},
|
|
2538
|
-
let
|
|
2541
|
+
}, ko = /* @__PURE__ */ Mo(Lo, [["__scopeId", "data-v-c0568cc8"]]);
|
|
2542
|
+
let dt = class extends De {
|
|
2539
2543
|
static name = "Editor";
|
|
2540
|
-
container = new
|
|
2544
|
+
container = new p.Group();
|
|
2541
2545
|
get renderer() {
|
|
2542
2546
|
return this.parent?.findComponentByName("Renderer");
|
|
2543
2547
|
}
|
|
@@ -2559,8 +2563,8 @@ let lt = class extends Se {
|
|
|
2559
2563
|
get domContainer() {
|
|
2560
2564
|
return this.parent?.findComponentByName("DomContainer");
|
|
2561
2565
|
}
|
|
2562
|
-
commandManager = new
|
|
2563
|
-
plane = new
|
|
2566
|
+
commandManager = new Cn();
|
|
2567
|
+
plane = new p.Mesh(new p.PlaneGeometry(2e3, 2e3, 2, 2));
|
|
2564
2568
|
app;
|
|
2565
2569
|
domElement = document.createElement("div");
|
|
2566
2570
|
viewPermission;
|
|
@@ -2583,26 +2587,26 @@ let lt = class extends Se {
|
|
|
2583
2587
|
}
|
|
2584
2588
|
onAddFromParent(e) {
|
|
2585
2589
|
setTimeout(() => this.openEdit(), 10);
|
|
2586
|
-
const t = new
|
|
2590
|
+
const t = new p.GridHelper(200, 100, 6710886, 4473924);
|
|
2587
2591
|
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
2592
|
const n = this.addEventListener("update", () => {
|
|
2589
2593
|
this.domContainer.domElement.parentElement && (this.domContainer.domElement.parentElement.appendChild(this.domElement), this.domContainer.domElement.parentElement.appendChild(this.imgEl), n());
|
|
2590
2594
|
});
|
|
2591
2595
|
setTimeout(() => {
|
|
2592
|
-
this.app =
|
|
2596
|
+
this.app = Vt(ko, { dxfSystem: this.parent, permission: this.viewPermission }), this.app.mount(this.domElement);
|
|
2593
2597
|
}), e.AngleCorrectionDxf.addEventListener("lineOffset", async () => {
|
|
2594
2598
|
this.imgEl.src && URL.revokeObjectURL(this.imgEl.src), setTimeout(async () => {
|
|
2595
2599
|
this.imgEl.src = URL.createObjectURL(await e.AngleCorrectionDxf.toDxfImageBlob("Centimeters", "image/png", "transparent"));
|
|
2596
2600
|
});
|
|
2597
|
-
}), this.domEventRegister.addEventListener("mousedown", (
|
|
2598
|
-
|
|
2601
|
+
}), this.domEventRegister.addEventListener("mousedown", (o) => {
|
|
2602
|
+
o.x < this.imgWidth + 10 && o.x > 10 && o.y < this.imgWidth && o.y > 10 && Object.assign(this.imgEl.style, {
|
|
2599
2603
|
width: `${Math.min(this.imgWidth * 10, this.renderer.width * 0.9)}px`,
|
|
2600
2604
|
height: `${Math.min(this.imgWidth * 10, this.renderer.height * 0.9)}px`,
|
|
2601
2605
|
background: "rgba(0,0,0,1)",
|
|
2602
2606
|
zIndex: 100
|
|
2603
2607
|
});
|
|
2604
|
-
}), this.domEventRegister.addEventListener("mousemove", (
|
|
2605
|
-
|
|
2608
|
+
}), this.domEventRegister.addEventListener("mousemove", (o) => {
|
|
2609
|
+
o.x < this.imgWidth + 10 && o.x > 10 && o.y < this.imgWidth && o.y > 10 || Object.assign(this.imgEl.style, {
|
|
2606
2610
|
width: `${this.imgWidth}px`,
|
|
2607
2611
|
height: `${this.imgWidth}px`,
|
|
2608
2612
|
background: "rgba(255,255,255,0.2)",
|
|
@@ -2618,27 +2622,27 @@ let lt = class extends Se {
|
|
|
2618
2622
|
type: "cancelCommand"
|
|
2619
2623
|
});
|
|
2620
2624
|
}
|
|
2621
|
-
coords = new
|
|
2622
|
-
pointerPosition = new
|
|
2625
|
+
coords = new p.Vector2();
|
|
2626
|
+
pointerPosition = new p.Vector2();
|
|
2623
2627
|
_exitEditCallBack;
|
|
2624
2628
|
/**
|
|
2625
2629
|
* 打开编辑器
|
|
2626
2630
|
*/
|
|
2627
2631
|
openEdit() {
|
|
2628
|
-
const e = this.renderer, t = this.domEventRegister, n = this.dxf,
|
|
2629
|
-
this.container.position.z = n.originalZAverage, e.scene.add(this.container),
|
|
2632
|
+
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 p.Vector2(), c = new p.Raycaster(), m = this.coords, w = this.pointerPosition;
|
|
2633
|
+
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
2634
|
const f = () => {
|
|
2631
2635
|
e.renderer.getSize(i);
|
|
2632
|
-
const
|
|
2633
|
-
|
|
2634
|
-
const E =
|
|
2635
|
-
E.length && (
|
|
2636
|
+
const u = t.pointer.x / i.x * 2 - 1, h = -(t.pointer.y / i.y * 2 - 1);
|
|
2637
|
+
m.set(u, h), c.setFromCamera(m, e.camera.children.length ? e.camera.children[0] : e.camera);
|
|
2638
|
+
const E = c.intersectObject(this.plane);
|
|
2639
|
+
E.length && (w.copy(E[0].point), this.dispatchEvent({
|
|
2636
2640
|
type: "pointerPositionChange",
|
|
2637
|
-
position:
|
|
2641
|
+
position: w
|
|
2638
2642
|
}));
|
|
2639
2643
|
};
|
|
2640
2644
|
t.addEventListener("mousemove", f), this.commandManager.disabled = !1, this.commandManager.start("default"), this._exitEditCallBack = () => {
|
|
2641
|
-
t.removeEventListener("mousemove", f),
|
|
2645
|
+
t.removeEventListener("mousemove", f), o && (s.position.copy(l), o.enableRotate = !0, o.target.copy(r));
|
|
2642
2646
|
};
|
|
2643
2647
|
}
|
|
2644
2648
|
/**
|
|
@@ -2651,9 +2655,9 @@ let lt = class extends Se {
|
|
|
2651
2655
|
super.destroy(), this.exitEdit(), this.renderer.scene.remove(this.container), this.domElement.remove(), this.app?.unmount();
|
|
2652
2656
|
}
|
|
2653
2657
|
};
|
|
2654
|
-
class
|
|
2658
|
+
class Io extends O {
|
|
2655
2659
|
static name = "PointDrag";
|
|
2656
|
-
container = new
|
|
2660
|
+
container = new p.Group();
|
|
2657
2661
|
interruptKeys = ["escape"];
|
|
2658
2662
|
shortcutKeys = ["control", "p"];
|
|
2659
2663
|
commandName = "point";
|
|
@@ -2666,12 +2670,12 @@ class Ls extends O {
|
|
|
2666
2670
|
* @param next
|
|
2667
2671
|
*/
|
|
2668
2672
|
selectPoint(e) {
|
|
2669
|
-
let t = null, n =
|
|
2673
|
+
let t = null, n = this.renderer.createCircle(L.zero(), { color: 16711935 }), o = null;
|
|
2670
2674
|
this.addEventRecord("selectPointStart").add(this.editor.addEventListener("pointerPositionChange", () => {
|
|
2671
|
-
const { point:
|
|
2672
|
-
this.dispatchEvent({ type: "pointerMove", point:
|
|
2675
|
+
const { point: s, line: a, find: l, mode: r } = this.editor.renderManager.adsorption();
|
|
2676
|
+
this.dispatchEvent({ type: "pointerMove", point: s }), l && r === "point" ? (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());
|
|
2673
2677
|
})).add(this.eventInput.addEventListener("codeChange", () => {
|
|
2674
|
-
this.eventInput.isKeyDown("mouse_0") && t && (this.canceEventRecord("selectPointStart"), n.material.color.set(65280), e({ point: t, line:
|
|
2678
|
+
this.eventInput.isKeyDown("mouse_0") && t && (this.canceEventRecord("selectPointStart"), n.material.color.set(65280), e({ point: t, line: o }));
|
|
2675
2679
|
})), this.addEventRecord("clear").add(() => n.removeFromParent());
|
|
2676
2680
|
}
|
|
2677
2681
|
/** 拖拽点
|
|
@@ -2681,32 +2685,32 @@ class Ls extends O {
|
|
|
2681
2685
|
*/
|
|
2682
2686
|
drag(e, { point: t, line: n }) {
|
|
2683
2687
|
this.domElement.style.cursor = "crosshair";
|
|
2684
|
-
const
|
|
2685
|
-
this.container.add(
|
|
2686
|
-
let { point: i, find:
|
|
2688
|
+
const o = n.start.equal(L.from(t)) ? "start" : "end", s = o == "start" ? new p.Vector3(n.end.x, n.end.y, 0) : new p.Vector3(n.start.x, n.start.y, 0), a = t.clone(), l = new fe([s, a], 16711935), r = this.renderer.createCircle(L.zero(), { color: 16711935, size: 10 });
|
|
2689
|
+
this.container.add(l), this.addEventRecord("clear").add(this.editor.addEventListener("pointerPositionChange", () => {
|
|
2690
|
+
let { point: i, find: c } = this.editor.renderManager.adsorption(), m = "none";
|
|
2687
2691
|
if (i) {
|
|
2688
2692
|
if (this.dispatchEvent({ type: "pointerMove", point: i }), this.eventInput.isKeyDown("shift")) {
|
|
2689
|
-
const
|
|
2690
|
-
i.set(
|
|
2693
|
+
const w = n.projectPoint(L.from(i), !1);
|
|
2694
|
+
i.set(w?.x ?? i.x, w?.y ?? i.y, 0), c = !0, m = "crosshair";
|
|
2691
2695
|
}
|
|
2692
|
-
|
|
2696
|
+
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
2697
|
}
|
|
2694
2698
|
})).add(this.eventInput.addEventListener("codeChange", () => {
|
|
2695
|
-
this.eventInput.isKeyDown("mouse_0") && (this.canceEventRecord("selectPointStart"), e({ point: a, oldPoint:
|
|
2696
|
-
})).add(() =>
|
|
2699
|
+
this.eventInput.isKeyDown("mouse_0") && (this.canceEventRecord("selectPointStart"), e({ point: a, oldPoint: o === "end" ? n.end.clone() : n.start.clone(), line: n, mode: o }));
|
|
2700
|
+
})).add(() => r.removeFromParent()).add(() => l.removeFromParent());
|
|
2697
2701
|
}
|
|
2698
2702
|
/** 执行完成
|
|
2699
2703
|
*/
|
|
2700
2704
|
completed(e) {
|
|
2701
|
-
const { line: t, point: n, mode:
|
|
2702
|
-
this.renderManager.removeLine(t),
|
|
2705
|
+
const { line: t, point: n, mode: o } = e;
|
|
2706
|
+
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();
|
|
2703
2707
|
}
|
|
2704
2708
|
/** 回滚操作
|
|
2705
2709
|
* @param data
|
|
2706
2710
|
*/
|
|
2707
2711
|
rollback(e) {
|
|
2708
|
-
const { line: t, oldPoint: n, mode:
|
|
2709
|
-
return
|
|
2712
|
+
const { line: t, oldPoint: n, mode: o } = e;
|
|
2713
|
+
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
2714
|
}
|
|
2711
2715
|
/** 撤回回滚
|
|
2712
2716
|
* @param lines
|
|
@@ -2716,15 +2720,15 @@ class Ls extends O {
|
|
|
2716
2720
|
return this.completed(e), e;
|
|
2717
2721
|
}
|
|
2718
2722
|
}
|
|
2719
|
-
function
|
|
2720
|
-
|
|
2723
|
+
function We(d, e = {}) {
|
|
2724
|
+
d.addComponent(new dt(e.viewPermission)), d.addComponent(new so()), d.addComponent(new it()), d.addComponent(new bn()), d.addComponent(new ao()), d.addComponent(new io()), d.addComponent(new Io()), d.addComponent(new $()), d.addComponent(new X()), d.addComponent(new le()), d.addComponent(new ee()), d.addComponent(new te()), d.addComponent(new ne()), d.addComponent(new oe()), d.addComponent(new se()), d.addComponent(new ae()), d.addComponent(new rt());
|
|
2721
2725
|
}
|
|
2722
|
-
const
|
|
2723
|
-
create(
|
|
2724
|
-
return (e) =>
|
|
2726
|
+
const Ro = Object.assign(We, {
|
|
2727
|
+
create(d = {}) {
|
|
2728
|
+
return (e) => We(e, d);
|
|
2725
2729
|
}
|
|
2726
2730
|
});
|
|
2727
2731
|
export {
|
|
2728
|
-
|
|
2729
|
-
|
|
2732
|
+
Ro as Editor,
|
|
2733
|
+
We as Editor_
|
|
2730
2734
|
};
|