@ccpc/platform 0.1.11 → 0.1.13

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/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { DefaultController as V, CCanvas as b } from "@ccpc/canvas";
2
- import { ClassManager as O, DebugUtil as E, TmpElementPainter as M, GPoint2d as R, GCurve2d as S, GPolycurve as B, GPolygon as F, GText2d as K, ElementId as X, GNODE_TYPE as D, GRep as U } from "@ccpc/core";
3
- import { Ln2 as m, Vec2 as P, CONST as w, alg as j, Arc2 as z, Plane as W, Vec3 as q } from "@ccpc/math";
4
- import { SnapSetting as y, EN_SNAP_TYPE as a, EN_SNAP_HELP_OBJ as v, SnapEngine as Y, SnapCandidates as J, PtSnap as x, SnapContext as $ } from "@ccpc/snap";
2
+ import { ClassManager as O, Signal as B, DebugUtil as E, TmpElementPainter as M, GPoint2d as R, GCurve2d as S, GPolycurve as F, GPolygon as K, GText2d as X, ElementId as U, GNODE_TYPE as D, GRep as j } from "@ccpc/core";
3
+ import { Ln2 as m, Vec2 as P, CONST as w, alg as z, Arc2 as W, Plane as q, Vec3 as Y } from "@ccpc/math";
4
+ import { SnapSetting as y, EN_SNAP_TYPE as a, EN_SNAP_HELP_OBJ as v, SnapEngine as J, SnapCandidates as $, PtSnap as x, SnapContext as Q } from "@ccpc/snap";
5
5
  class k {
6
6
  constructor() {
7
- this._busy = !1, this._clsMgr = new O();
7
+ this._busy = !1, this._clsMgr = new O(), this.signalCmdFinish = new B(this);
8
8
  }
9
9
  static instance() {
10
10
  return this._instance || (this._instance = new k()), this._instance;
@@ -27,7 +27,7 @@ class k {
27
27
  const i = s.initStatus(), r = s.execute(...t);
28
28
  return s.executeImmediately && i.resolve(), await Promise.all([i.promise, r]).catch((c) => {
29
29
  console.error(c);
30
- }), s.onDestroy(), delete this._currentCmd, delete this._busy, !0;
30
+ }), s.onDestroy(), delete this._currentCmd, delete this._busy, this.signalCmdFinish.dispatch(), !0;
31
31
  }
32
32
  getCurrentAction() {
33
33
  let e = this.getCurrentCmd();
@@ -56,7 +56,7 @@ class k {
56
56
  return !!this.getCurrentAction()?.processKeyboardEvent(e);
57
57
  }
58
58
  }
59
- const Q = k.instance();
59
+ const Z = k.instance();
60
60
  class N extends V {
61
61
  constructor() {
62
62
  super(...arguments), this._status = {
@@ -78,13 +78,19 @@ class N extends V {
78
78
  * 获取画布
79
79
  */
80
80
  getCanvas() {
81
- return p.getCanvas();
81
+ return d.getCanvas();
82
82
  }
83
83
  /**
84
84
  * 获取文档
85
85
  */
86
86
  getDoc() {
87
- return p.doc;
87
+ return d.doc;
88
+ }
89
+ /**
90
+ * 命令是否已结束
91
+ */
92
+ isFinished() {
93
+ return this._status.finish === !0;
88
94
  }
89
95
  /**
90
96
  * 执行动作
@@ -161,6 +167,7 @@ class N extends V {
161
167
  * 清除所有绘制的临时元素
162
168
  */
163
169
  clearTmp() {
170
+ d.highLight.clear();
164
171
  for (const e of this._tmpElementPainters)
165
172
  e && e.clearTmp();
166
173
  }
@@ -174,7 +181,7 @@ class N extends V {
174
181
  * 结束cmd
175
182
  */
176
183
  _resolve(e) {
177
- this._status.finish || (this._status.finish = !0, this._status.resolve(e), this.onDestroy());
184
+ this.clearTmp(), !this._status.finish && (this._status.finish = !0, this._status.resolve(e), this.onDestroy());
178
185
  }
179
186
  onKeyDown(e) {
180
187
  return e.domEvent.key === "Escape" ? (this.cancel(), !0) : !1;
@@ -203,28 +210,28 @@ class T {
203
210
  }), c.sort((o, g) => (l.get(o) || 100) - (l.get(g) || 100)), c;
204
211
  }
205
212
  static _getPickPriority(e) {
206
- return e instanceof R ? 0 : e instanceof S || e instanceof B ? 1 : e instanceof F ? 2 : e instanceof K ? 3 : 100;
213
+ return e instanceof R ? 0 : e instanceof S || e instanceof F ? 1 : e instanceof K ? 2 : e instanceof X ? 3 : 100;
207
214
  }
208
215
  }
209
- class Z extends N {
216
+ class ee extends N {
210
217
  onMouseMove(e) {
211
218
  const t = T.pickGNode(this.getCanvas(), e.pos);
212
- return t ? (p.highLight.reset([t]), this._updateView(), !1) : (p.highLight.clear(), this._updateView(), !1);
219
+ return t ? (d.highLight.reset([t]), this._updateView(), !1) : (d.highLight.clear(), this._updateView(), !1);
213
220
  }
214
221
  onClick(e) {
215
222
  const t = T.pickGNode(this.getCanvas(), e.pos);
216
- return p.highLight.clear(), !t && !e.fnKey.ctrlKey ? (p.selection.clear(), this._updateView(), !1) : (t && (e.fnKey.ctrlKey ? p.selection.add([t]) : p.selection.reset([t]), this._updateView()), !1);
223
+ return d.highLight.clear(), !t && !e.fnKey.ctrlKey ? (d.selection.clear(), this._updateView(), !1) : (t && (e.fnKey.ctrlKey ? d.selection.add([t]) : d.selection.reset([t]), this._updateView()), !1);
217
224
  }
218
225
  onRButtonDown(e) {
219
- return p.highLight.clear(), p.selection.clear(), this._updateView(), !1;
226
+ return d.highLight.clear(), d.selection.clear(), this._updateView(), !1;
220
227
  }
221
228
  onKeyDown(e) {
222
- return e.domEvent.key !== "Escape" ? !1 : (p.highLight.clear(), p.selection.clear(), this._updateView(), !0);
229
+ return e.domEvent.key !== "Escape" ? !1 : (d.highLight.clear(), d.selection.clear(), this._updateView(), !0);
223
230
  }
224
231
  }
225
232
  class A {
226
233
  constructor() {
227
- this.defaultController = new Z();
234
+ this.defaultController = new ee();
228
235
  }
229
236
  static instance() {
230
237
  return this._instance || (this._instance = new A()), this._instance;
@@ -236,7 +243,7 @@ class A {
236
243
  return !!this.defaultController?.processKeyboardEvent(e);
237
244
  }
238
245
  }
239
- const ee = A.instance();
246
+ const te = A.instance();
240
247
  class f {
241
248
  constructor() {
242
249
  this._selectedIds = [], this._selectedGNodes = [];
@@ -276,7 +283,7 @@ class f {
276
283
  * 获取不包括GNode的ElementId
277
284
  */
278
285
  getSelectedEIds() {
279
- return this._selectedIds.length ? this._selectedIds.map((e) => new X(e)) : [];
286
+ return this._selectedIds.length ? this._selectedIds.map((e) => new U(e)) : [];
280
287
  }
281
288
  /**
282
289
  * 获取不包括GNode的Element
@@ -377,7 +384,7 @@ class u {
377
384
  }
378
385
  class G {
379
386
  constructor() {
380
- this._cmdMgr = Q, this.selection = f.instance(), this.highLight = u.instance();
387
+ this._cmdMgr = Z, this.selection = f.instance(), this.highLight = u.instance();
381
388
  }
382
389
  get cmdMgr() {
383
390
  return this._cmdMgr;
@@ -388,27 +395,27 @@ class G {
388
395
  get doc() {
389
396
  return E.assert(this._curDoc, "请先调用start方法给doc赋值", "wg", "2026-03-11"), this._curDoc;
390
397
  }
391
- start(e) {
392
- this._curDoc = e, e.isMainDoc = !0, this.selection.setDoc(e), this.highLight.setDoc(e);
393
- }
394
- stop() {
395
- this.highLight.clear(), this.selection.clear(), this._curCanvas?.destroy(), this._curDoc?.destroy(), delete this._curCanvas, delete this._curDoc;
396
- }
397
398
  /**
398
399
  * 获取画布
399
400
  */
400
401
  getCanvas() {
401
402
  return this._curCanvas;
402
403
  }
404
+ start(e) {
405
+ this._curDoc = e, e.isMainDoc = !0, this.selection.setDoc(e), this.highLight.setDoc(e);
406
+ }
407
+ stop() {
408
+ this.highLight.clear(), this.selection.clear(), this._curCanvas?.destroy(), this._curDoc?.destroy(), delete this._curCanvas, delete this._curDoc;
409
+ }
403
410
  /**
404
411
  * 创建画布
405
412
  */
406
413
  createCanvas(e) {
407
- const t = [this._cmdMgr, ee], s = new b(e, t);
414
+ const t = [this._cmdMgr, te], s = new b(e, t);
408
415
  return this._curCanvas = s, this._curDoc && this._curCanvas.resetModelView(this._curDoc.modelView), this._curCanvas.startListening(), s;
409
416
  }
410
417
  }
411
- const p = G.instance();
418
+ const d = G.instance();
412
419
  var C = /* @__PURE__ */ ((n) => (n[n.OK = 0] = "OK", n[n.CANCEL = 1] = "CANCEL", n))(C || {});
413
420
  class L {
414
421
  constructor(e, t) {
@@ -424,7 +431,7 @@ class L {
424
431
  return this._status === C.CANCEL;
425
432
  }
426
433
  }
427
- class te extends N {
434
+ class se extends N {
428
435
  _markSuccess(e) {
429
436
  super._resolve(new L(C.OK, e));
430
437
  }
@@ -435,7 +442,7 @@ class te extends N {
435
442
  this._markCanceled();
436
443
  }
437
444
  }
438
- class pe extends N {
445
+ class ue extends N {
439
446
  constructor() {
440
447
  super(...arguments), this.executeImmediately = !0;
441
448
  }
@@ -514,9 +521,9 @@ class h {
514
521
  return t;
515
522
  }
516
523
  }
517
- var d = /* @__PURE__ */ ((n) => (n[n.POINT_ON_FACE = 1842204] = "POINT_ON_FACE", n[n.END_POINT = 4063173] = "END_POINT", n[n.POINT_ON_CURVE = 1842204] = "POINT_ON_CURVE", n[n.MIDDLE_POINT = 4063173] = "MIDDLE_POINT", n[n.PARALLEL_TO_AXIS = 4063173] = "PARALLEL_TO_AXIS", n[n.INTERSECT_POINT = 4063173] = "INTERSECT_POINT", n[n.VERTICAL_PARALLEL = 4063173] = "VERTICAL_PARALLEL", n))(d || {});
524
+ var p = /* @__PURE__ */ ((n) => (n[n.POINT_ON_FACE = 1842204] = "POINT_ON_FACE", n[n.END_POINT = 4063173] = "END_POINT", n[n.POINT_ON_CURVE = 1842204] = "POINT_ON_CURVE", n[n.MIDDLE_POINT = 4063173] = "MIDDLE_POINT", n[n.PARALLEL_TO_AXIS = 4063173] = "PARALLEL_TO_AXIS", n[n.INTERSECT_POINT = 4063173] = "INTERSECT_POINT", n[n.VERTICAL_PARALLEL = 4063173] = "VERTICAL_PARALLEL", n))(p || {});
518
525
  const H = 200;
519
- function se(n, e) {
526
+ function ne(n, e) {
520
527
  if (!y.instance().canSnapHelperObject || !n?.pickedGNodes?.length)
521
528
  return;
522
529
  const t = (/* @__PURE__ */ new Date()).getTime();
@@ -527,7 +534,7 @@ function se(n, e) {
527
534
  r.userData = { snapType: a.ReferCurve, lastPickedPt: s.clone() }, h.instance().addSnapHelperCurves(_.BRIEF, [i, r]);
528
535
  }
529
536
  }
530
- function ne(n, e, t) {
537
+ function ie(n, e, t) {
531
538
  if (!y.instance().canSnapHelperDir)
532
539
  return;
533
540
  const s = (/* @__PURE__ */ new Date()).getTime();
@@ -547,12 +554,12 @@ function ne(n, e, t) {
547
554
  if (c.userData = { refCurve: r }, h.instance().addSnapHelperDirs(_.BRIEF, c), !t)
548
555
  return;
549
556
  const l = new P();
550
- if (j.D.ptToCurve2d(t, r, l), l.equals(t))
557
+ if (z.D.ptToCurve2d(t, r, l), l.equals(t))
551
558
  return;
552
559
  const o = l.subtracted(t).normalize();
553
560
  o.isPerpendicular(r.getDirection()) && (o.userData = { refCurve: r, snapType: a.VerticalToCurve }, h.instance().addSnapHelperDirs(_.BRIEF, o));
554
561
  }
555
- function ie(n, e) {
562
+ function re(n, e) {
556
563
  const t = (/* @__PURE__ */ new Date()).getTime();
557
564
  if (!(n && t - e > H && n.pickedGNodes?.length === 1))
558
565
  return e;
@@ -561,15 +568,15 @@ function ie(n, e) {
561
568
  const i = s.geo.getCentroidPoint();
562
569
  return i.userData = { snapType: a.Center }, h.instance().addSnapHelperPoints(_.BRIEF, i), t;
563
570
  }
564
- if (s.getType() === D.GCurve2d && s.geo instanceof z) {
571
+ if (s.getType() === D.GCurve2d && s.geo instanceof W) {
565
572
  const i = s.geo;
566
- return re(i).forEach((c) => {
573
+ return ce(i).forEach((c) => {
567
574
  c.userData = { snapType: a.Pole }, h.instance().addSnapHelperPoints(_.BRIEF, c);
568
575
  }), t;
569
576
  }
570
577
  return e;
571
578
  }
572
- function re(n) {
579
+ function ce(n) {
573
580
  const e = n.getCenter(), t = n.getCoord(), s = [
574
581
  e.added(t.getDx().multiplied(n.getA())),
575
582
  e.added(t.getDx().multiplied(-n.getA())),
@@ -584,11 +591,11 @@ function re(n) {
584
591
  function I(n, e) {
585
592
  if (!n.getSnappedObjects().length)
586
593
  return;
587
- const t = W.XOY();
594
+ const t = q.XOY();
588
595
  for (const s of n.getSnappedObjects())
589
596
  if (s instanceof m && s.userData?.snapType === a.ReferCurve && s.userData?.lastPickedPt) {
590
597
  const i = s.userData.lastPickedPt, r = new m(i, n.snappedPt);
591
- let c = d.PARALLEL_TO_AXIS;
598
+ let c = p.PARALLEL_TO_AXIS;
592
599
  const l = r.getDirection();
593
600
  l.isParallel(P.X()) ? c = 16711680 : l.isParallel(P.Y()) && (c = 65280);
594
601
  const o = new S(t, r);
@@ -601,7 +608,7 @@ function I(n, e) {
601
608
  const g = new R(t, i.clone());
602
609
  g.setStyle({
603
610
  point: {
604
- color: d.PARALLEL_TO_AXIS,
611
+ color: p.PARALLEL_TO_AXIS,
605
612
  size: 6
606
613
  }
607
614
  }), e.addNode(g);
@@ -609,12 +616,12 @@ function I(n, e) {
609
616
  const i = s.userData.refCurve, r = new S(t, i);
610
617
  r.setStyle({
611
618
  line: {
612
- color: d.VERTICAL_PARALLEL
619
+ color: p.VERTICAL_PARALLEL
613
620
  }
614
621
  }), e.addNode(r);
615
622
  }
616
623
  }
617
- class ce {
624
+ class ae {
618
625
  /**
619
626
  * 计算当前鼠标位置的吸附结果
620
627
  * @param ccanvas 画布
@@ -623,8 +630,8 @@ class ce {
623
630
  */
624
631
  static snapPoint(e, t, s, i) {
625
632
  t.snappableGNodes = T.pickGNodes(s, e, i.getPickFilter(), !0), t.cursorWorld = s.screenToWorkPlaneLocal(e), t.setSnapHelpers(v.POINT, h.instance().getAllSnapHelperPoints()), t.setSnapHelpers(v.CURVE, h.instance().getAllSnapHelperCurves()), t.setSnapHelpers(v.DIR, h.instance().getAllSnapHelperDirs()), y.instance().setPixelsPerUnit(s.pixelsPerUnit());
626
- let r = Y.snap(t);
627
- r.snapResults.length || (r = new J(), r.addSnapResult(new x(a.PointOnSnapPlane, t.cursorWorld.clone(), 0)));
633
+ let r = J.snap(t);
634
+ r.snapResults.length || (r = new $(), r.addSnapResult(new x(a.PointOnSnapPlane, t.cursorWorld.clone(), 0)));
628
635
  const c = r.snapResults[0];
629
636
  this._drawSnapPrompt(r), i.highlightPickedGNodes && u.instance().reset([...c.getSnappedGNodes()]);
630
637
  const l = s.getWorkPlane().plane;
@@ -641,39 +648,39 @@ class ce {
641
648
  const t = e.snapResults[0];
642
649
  if (!(t instanceof x))
643
650
  return;
644
- const s = new U();
645
- let i = d.POINT_ON_FACE;
651
+ const s = new j();
652
+ let i = p.POINT_ON_FACE;
646
653
  switch (t.getSnapType()) {
647
654
  case a.Pole:
648
655
  case a.EndPoint:
649
- i = d.END_POINT;
656
+ i = p.END_POINT;
650
657
  break;
651
658
  case a.MiddlePoint:
652
659
  case a.Center:
653
- i = d.MIDDLE_POINT;
660
+ i = p.MIDDLE_POINT;
654
661
  break;
655
662
  case a.ExtensionPoint:
656
663
  case a.ParallelToX:
657
664
  case a.ParallelToY:
658
- i = d.PARALLEL_TO_AXIS;
665
+ i = p.PARALLEL_TO_AXIS;
659
666
  break;
660
667
  case a.PointOnCurve:
661
- i = d.POINT_ON_CURVE;
668
+ i = p.POINT_ON_CURVE;
662
669
  break;
663
670
  case a.ClosedLineParallelToX:
664
671
  case a.ClosedLineParallelToY:
665
- i = d.PARALLEL_TO_AXIS;
672
+ i = p.PARALLEL_TO_AXIS;
666
673
  break;
667
674
  case a.XPt:
668
- i = d.INTERSECT_POINT;
675
+ i = p.INTERSECT_POINT;
669
676
  break;
670
677
  case a.ReferCurve:
671
- I(t, s), i = d.POINT_ON_CURVE;
678
+ I(t, s), i = p.POINT_ON_CURVE;
672
679
  break;
673
680
  case a.PerpendicularPoint:
674
681
  case a.ParallelToCurve:
675
682
  case a.VerticalToCurve:
676
- I(t, s), i = d.VERTICAL_PARALLEL;
683
+ I(t, s), i = p.VERTICAL_PARALLEL;
677
684
  break;
678
685
  }
679
686
  if (t.anotherSnapType)
@@ -689,8 +696,8 @@ class ce {
689
696
  r?.drawTmpGRep(s), r?.getDoc().updateView();
690
697
  }
691
698
  }
692
- class ue extends te {
693
- constructor(e = new ae()) {
699
+ class ge extends se {
700
+ constructor(e = new oe()) {
694
701
  super(), this._currentMousePos = P.O(), this._hoverSnappedPtTime = Date.now(), this._hoverPickedGNodeTime = Date.now(), this._context = e, e.snapContext && e.snapContext.addSnapHelpers(
695
702
  v.POINT,
696
703
  h.instance().getAllSnapHelperPoints()
@@ -729,23 +736,23 @@ class ue extends te {
729
736
  return this._context.movePoint(t, e.fnKey), this._currentPickResult = t, !0;
730
737
  }
731
738
  _getPickPointResult(e) {
732
- se(this._lastPickedResult, this._hoverSnappedPtTime), ne(
739
+ ne(this._lastPickedResult, this._hoverSnappedPtTime), ie(
733
740
  this._lastPickedResult,
734
741
  this._hoverSnappedPtTime,
735
742
  this._context.snapContext?.previousPoint
736
- ), ie(this._lastPickedResult, this._hoverPickedGNodeTime);
743
+ ), re(this._lastPickedResult, this._hoverPickedGNodeTime);
737
744
  const t = this.getCanvas();
738
- this._context.snapContext || (this._context.snapContext = new $());
739
- const s = ce.snapPoint(e, this._context.snapContext, t, this._context);
745
+ this._context.snapContext || (this._context.snapContext = new Q());
746
+ const s = ae.snapPoint(e, this._context.snapContext, t, this._context);
740
747
  return this._hoverSnappedPtTime = Date.now(), !this._lastPickedResult?.pickedGNodes?.length || !s.pickedGNodes?.length || this._lastPickedResult.pickedGNodes.length !== s.pickedGNodes.length ? this._hoverPickedGNodeTime = Date.now() : s.pickedGNodes.some((i, r) => i !== this._lastPickedResult.pickedGNodes[r]) && (this._hoverPickedGNodeTime = Date.now()), this._lastPickedResult = {
741
748
  ...s,
742
749
  point: s.point.clone()
743
750
  }, s;
744
751
  }
745
752
  }
746
- class ae {
753
+ class oe {
747
754
  constructor(e) {
748
- this._movingCallBack = e?.movingCallBack, this._clickCallBack = e?.clickCallBack, this._pickFilter = e?.pickFilter, this.snapContext = e?.snapContext, this._currentPos = q.O();
755
+ this._movingCallBack = e?.movingCallBack, this._clickCallBack = e?.clickCallBack, this._pickFilter = e?.pickFilter, this.snapContext = e?.snapContext, this._currentPos = Y.O();
749
756
  }
750
757
  movePoint(e, t) {
751
758
  this._movingCallBack && this._movingCallBack(e, t), this._currentPos = e.point;
@@ -769,28 +776,28 @@ class ae {
769
776
  this._highlightPickedGNodes = e;
770
777
  }
771
778
  }
772
- function ge(n) {
779
+ function _e(n) {
773
780
  return (e) => {
774
781
  k.instance().registerCmd(n, e);
775
782
  };
776
783
  }
777
784
  export {
778
- te as Action,
785
+ se as Action,
779
786
  G as App,
780
- pe as Cmd,
787
+ ue as Cmd,
781
788
  N as CmdActionController,
782
789
  k as CmdMgr,
783
790
  _ as EN_SNAP_HELPER_TYPE,
784
791
  u as HighLight,
785
- ue as PickPointAction,
786
- ae as PickPointContext,
787
- ce as RunSnapUtil,
792
+ ge as PickPointAction,
793
+ oe as PickPointContext,
794
+ ae as RunSnapUtil,
788
795
  f as Selection,
789
796
  h as SnapHelpMgr,
790
- p as app,
791
- Q as cmdMgr,
792
- se as createReferenceCurves,
793
- ne as createReferenceDirs,
794
- ie as createReferencePoint,
795
- ge as registerCmd
797
+ d as app,
798
+ Z as cmdMgr,
799
+ ne as createReferenceCurves,
800
+ ie as createReferenceDirs,
801
+ re as createReferencePoint,
802
+ _e as registerCmd
796
803
  };
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@ccpc/platform",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "description": "Platform command interaction layer for editor",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "main": "./index.js",
8
8
  "types": "./types/index.d.ts",
9
9
  "peerDependencies": {
10
- "@ccpc/canvas": "^0.1.11",
11
- "@ccpc/core": "^0.1.14",
12
- "@ccpc/math": "^0.1.17",
13
- "@ccpc/snap": "^0.1.11"
10
+ "@ccpc/canvas": "^0.1.13",
11
+ "@ccpc/core": "^0.1.18",
12
+ "@ccpc/math": "^0.1.19",
13
+ "@ccpc/snap": "^0.1.19"
14
14
  }
15
15
  }
@@ -13,12 +13,12 @@ export declare class App {
13
13
  get cmdMgr(): import("..").CmdMgr;
14
14
  static instance(): App;
15
15
  get doc(): IDocument;
16
- start(doc: IDocument): void;
17
- stop(): void;
18
16
  /**
19
17
  * 获取画布
20
18
  */
21
19
  getCanvas(): CCanvas;
20
+ start(doc: IDocument): void;
21
+ stop(): void;
22
22
  /**
23
23
  * 创建画布
24
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAiB,MAAM,cAAc,CAAC;AACtD,OAAO,EAAa,SAAS,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD,qBAAa,GAAG;IACZ,OAAO,CAAC,MAAM,CAAC,SAAS,CAAK;IAE7B,OAAO,CAAC,OAAO,CAAC,CAAW;IAE3B,OAAO,CAAC,UAAU,CAAC,CAAS;IAE5B,OAAO,CAAC,OAAO,CAAS;IAEjB,SAAS,EAAE,SAAS,CAAA;IAEpB,SAAS,EAAE,SAAS,CAAA;;IAO3B,IAAW,MAAM,wBAEhB;WAEa,QAAQ;IAOtB,IAAW,GAAG,cAGb;IAEM,KAAK,CAAC,GAAG,EAAE,SAAS;IAOpB,IAAI;IASX;;OAEG;IACI,SAAS;IAIhB;;OAEG;IACI,YAAY,CAAC,SAAS,EAAE,WAAW;CAQ7C;AAED,eAAO,MAAM,GAAG,KAAiB,CAAA"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAiB,MAAM,cAAc,CAAC;AACtD,OAAO,EAAa,SAAS,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD,qBAAa,GAAG;IACZ,OAAO,CAAC,MAAM,CAAC,SAAS,CAAK;IAE7B,OAAO,CAAC,OAAO,CAAC,CAAW;IAE3B,OAAO,CAAC,UAAU,CAAC,CAAS;IAE5B,OAAO,CAAC,OAAO,CAAS;IAEjB,SAAS,EAAE,SAAS,CAAA;IAEpB,SAAS,EAAE,SAAS,CAAA;;IAO3B,IAAW,MAAM,wBAEhB;WAEa,QAAQ;IAOtB,IAAW,GAAG,cAGb;IAED;;OAEG;IACI,SAAS;IAIT,KAAK,CAAC,GAAG,EAAE,SAAS;IAOpB,IAAI;IASX;;OAEG;IACI,YAAY,CAAC,SAAS,EAAE,WAAW;CAQ7C;AAED,eAAO,MAAM,GAAG,KAAiB,CAAA"}
@@ -31,6 +31,10 @@ export declare class CmdActionController<T = unknown> extends DefaultController
31
31
  * 获取文档
32
32
  */
33
33
  getDoc(): IDocument;
34
+ /**
35
+ * 命令是否已结束
36
+ */
37
+ isFinished(): boolean;
34
38
  /**
35
39
  * 执行动作
36
40
  */
@@ -1 +1 @@
1
- {"version":3,"file":"cmd_action_controller.d.ts","sourceRoot":"","sources":["../../../src/cmd/cmd_action_controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC7E,OAAO,EAAa,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,IAAI;IAClC,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAChC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,qBAAa,mBAAmB,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,iBAAiB;IAEnE;;OAEG;IACH,OAAO,CAAC,OAAO,CAGd;IAED;;OAEG;IACI,MAAM,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAE5C;;OAEG;IACH,OAAO,CAAC,mBAAmB,CAA+B;IAE1D;;OAEG;IACI,UAAU;IAQjB;;OAEG;IACI,SAAS;IAIhB;;OAEG;IACI,MAAM,IAAI,SAAS;IAI1B;;OAEG;IACU,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAQtE;;OAEG;IACU,OAAO,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE;IAE1C;;OAEG;IACI,MAAM;IAIb;;OAEG;IACI,SAAS;IAEhB;;OAEG;IACI,qBAAqB;IAI5B;;OAEG;IACI,2BAA2B;IAIlC;;OAEG;IACI,2BAA2B,CAAC,KAAK,EAAE,MAAM;IAQhD;;OAEG;IACI,yBAAyB;IAMhC;;OAEG;IACI,4BAA4B;IAOnC;;OAEG;IACI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,GAAE,MAAU;IAQhD;;OAEG;IACI,QAAQ;IAQf;;OAEG;IACH,SAAS,CAAC,WAAW;IAIrB;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAOpB,SAAS,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO;IAQvC,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO;CAKlD"}
1
+ {"version":3,"file":"cmd_action_controller.d.ts","sourceRoot":"","sources":["../../../src/cmd/cmd_action_controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC7E,OAAO,EAAa,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,IAAI;IAClC,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAChC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,qBAAa,mBAAmB,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,iBAAiB;IAEnE;;OAEG;IACH,OAAO,CAAC,OAAO,CAGd;IAED;;OAEG;IACI,MAAM,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAE5C;;OAEG;IACH,OAAO,CAAC,mBAAmB,CAA+B;IAE1D;;OAEG;IACI,UAAU;IAQjB;;OAEG;IACI,SAAS;IAIhB;;OAEG;IACI,MAAM,IAAI,SAAS;IAI1B;;OAEG;IACI,UAAU;IAIjB;;OAEG;IACU,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAQtE;;OAEG;IACU,OAAO,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE;IAE1C;;OAEG;IACI,MAAM;IAIb;;OAEG;IACI,SAAS;IAEhB;;OAEG;IACI,qBAAqB;IAI5B;;OAEG;IACI,2BAA2B;IAIlC;;OAEG;IACI,2BAA2B,CAAC,KAAK,EAAE,MAAM;IAQhD;;OAEG;IACI,yBAAyB;IAMhC;;OAEG;IACI,4BAA4B;IAOnC;;OAEG;IACI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,GAAE,MAAU;IAQhD;;OAEG;IACI,QAAQ;IASf;;OAEG;IACH,SAAS,CAAC,WAAW;IAIrB;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IASpB,SAAS,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO;IAQvC,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO;CAKlD"}
@@ -1,5 +1,5 @@
1
1
  import { IKeyboardEvent, IMouseEvent, IProcessEvent } from '@ccpc/canvas';
2
- import { IConstructor } from '@ccpc/core';
2
+ import { IConstructor, Signal } from '@ccpc/core';
3
3
  import { Cmd } from './cmd';
4
4
  import { CmdActionController } from './cmd_action_controller';
5
5
  export declare class CmdMgr implements IProcessEvent {
@@ -7,6 +7,7 @@ export declare class CmdMgr implements IProcessEvent {
7
7
  private _busy?;
8
8
  private _currentCmd?;
9
9
  private _clsMgr;
10
+ readonly signalCmdFinish: Signal<this, unknown>;
10
11
  static instance(): CmdMgr;
11
12
  /**
12
13
  * 注册cmd
@@ -1 +1 @@
1
- {"version":3,"file":"cmd_mgr.d.ts","sourceRoot":"","sources":["../../../src/cmd/cmd_mgr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAA;AAClE,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBAAa,MAAO,YAAW,aAAa;IACxC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAQ;IAEjC,OAAO,CAAC,KAAK,CAAC,CAAkB;IAEhC,OAAO,CAAC,WAAW,CAAC,CAAK;IAEzB,OAAO,CAAC,OAAO,CAAgD;WAEjD,QAAQ;IAOtB;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,OAAO;IAOlE;;OAEG;IACU,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IA+B7G,gBAAgB;IAQhB,aAAa;IAIb,eAAe;IAYf,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO;IAK5C,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO;CAI5D;AAED,eAAO,MAAM,MAAM,QAAoB,CAAA"}
1
+ {"version":3,"file":"cmd_mgr.d.ts","sourceRoot":"","sources":["../../../src/cmd/cmd_mgr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAA2B,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBAAa,MAAO,YAAW,aAAa;IACxC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAQ;IAEjC,OAAO,CAAC,KAAK,CAAC,CAAkB;IAEhC,OAAO,CAAC,WAAW,CAAC,CAAK;IAEzB,OAAO,CAAC,OAAO,CAAgD;IAE/D,SAAgB,eAAe,wBAAmB;WAEpC,QAAQ;IAOtB;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,OAAO;IAOlE;;OAEG;IACU,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAgC7G,gBAAgB;IAQhB,aAAa;IAIb,eAAe;IAYf,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO;IAK5C,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO;CAI5D;AAED,eAAO,MAAM,MAAM,QAAoB,CAAA"}