@mlightcad/cad-simple-viewer 1.7.8 → 1.8.0-preview.0

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.
Files changed (64) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +190 -190
  3. package/dist/cad-simple-viewer.js +5535 -5280
  4. package/dist/cad-simple-viewer.umd.cjs +72 -72
  5. package/find.ts +7 -7
  6. package/icons.ts +7 -7
  7. package/lib/editor/input/handler/AcEdInputHandler.d.ts +7 -2
  8. package/lib/editor/input/handler/AcEdInputHandler.d.ts.map +1 -1
  9. package/lib/editor/input/handler/AcEdPointHandler.d.ts +8 -7
  10. package/lib/editor/input/handler/AcEdPointHandler.d.ts.map +1 -1
  11. package/lib/editor/input/handler/AcEdPointHandler.js +126 -30
  12. package/lib/editor/input/handler/AcEdPointHandler.js.map +1 -1
  13. package/lib/editor/input/ui/AcEdCommandLine.d.ts +28 -3
  14. package/lib/editor/input/ui/AcEdCommandLine.d.ts.map +1 -1
  15. package/lib/editor/input/ui/AcEdCommandLine.js +92 -26
  16. package/lib/editor/input/ui/AcEdCommandLine.js.map +1 -1
  17. package/lib/editor/input/ui/AcEdFloatingInput.d.ts +6 -0
  18. package/lib/editor/input/ui/AcEdFloatingInput.d.ts.map +1 -1
  19. package/lib/editor/input/ui/AcEdFloatingInput.js +32 -6
  20. package/lib/editor/input/ui/AcEdFloatingInput.js.map +1 -1
  21. package/lib/editor/input/ui/AcEdFloatingInputBoxes.d.ts +19 -2
  22. package/lib/editor/input/ui/AcEdFloatingInputBoxes.d.ts.map +1 -1
  23. package/lib/editor/input/ui/AcEdFloatingInputBoxes.js +23 -5
  24. package/lib/editor/input/ui/AcEdFloatingInputBoxes.js.map +1 -1
  25. package/lib/editor/input/ui/AcEdFloatingInputTypes.d.ts +18 -0
  26. package/lib/editor/input/ui/AcEdFloatingInputTypes.d.ts.map +1 -1
  27. package/lib/editor/input/ui/AcEdInputManager.d.ts +22 -0
  28. package/lib/editor/input/ui/AcEdInputManager.d.ts.map +1 -1
  29. package/lib/editor/input/ui/AcEdInputManager.js +56 -5
  30. package/lib/editor/input/ui/AcEdInputManager.js.map +1 -1
  31. package/lib/editor/input/ui/AcEdKeyboardUtil.d.ts +28 -0
  32. package/lib/editor/input/ui/AcEdKeyboardUtil.d.ts.map +1 -0
  33. package/lib/editor/input/ui/AcEdKeyboardUtil.js +59 -0
  34. package/lib/editor/input/ui/AcEdKeyboardUtil.js.map +1 -0
  35. package/lib/i18n/ar/jig.d.ts +11 -0
  36. package/lib/i18n/ar/jig.d.ts.map +1 -1
  37. package/lib/i18n/ar/jig.js +9 -1
  38. package/lib/i18n/ar/jig.js.map +1 -1
  39. package/lib/i18n/cs/jig.d.ts +11 -0
  40. package/lib/i18n/cs/jig.d.ts.map +1 -1
  41. package/lib/i18n/cs/jig.js +11 -0
  42. package/lib/i18n/cs/jig.js.map +1 -1
  43. package/lib/i18n/en/jig.d.ts +11 -0
  44. package/lib/i18n/en/jig.d.ts.map +1 -1
  45. package/lib/i18n/en/jig.js +11 -0
  46. package/lib/i18n/en/jig.js.map +1 -1
  47. package/lib/i18n/tr/jig.d.ts +11 -0
  48. package/lib/i18n/tr/jig.d.ts.map +1 -1
  49. package/lib/i18n/tr/jig.js +11 -0
  50. package/lib/i18n/tr/jig.js.map +1 -1
  51. package/lib/i18n/zh/jig.d.ts +11 -0
  52. package/lib/i18n/zh/jig.d.ts.map +1 -1
  53. package/lib/i18n/zh/jig.js +11 -0
  54. package/lib/i18n/zh/jig.js.map +1 -1
  55. package/lib/view/AcEdViewKeyHandler.d.ts +17 -0
  56. package/lib/view/AcEdViewKeyHandler.d.ts.map +1 -1
  57. package/lib/view/AcEdViewKeyHandler.js +44 -1
  58. package/lib/view/AcEdViewKeyHandler.js.map +1 -1
  59. package/package.json +5 -5
  60. package/src/find/AcApFindNavigator.ts +190 -190
  61. package/src/find/findDrawing.ts +211 -211
  62. package/src/find/findText.ts +624 -624
  63. package/src/find/index.ts +2 -2
  64. package/src/ui/icons.ts +411 -411
package/find.ts CHANGED
@@ -1,7 +1,7 @@
1
- /**
2
- * Subpath entry for `@mlightcad/cad-simple-viewer/find`.
3
- *
4
- * Pure (DOM-free, renderer-free) text search shared by every UI, importable
5
- * without loading the rest of the viewer.
6
- */
7
- export * from './src/find'
1
+ /**
2
+ * Subpath entry for `@mlightcad/cad-simple-viewer/find`.
3
+ *
4
+ * Pure (DOM-free, renderer-free) text search shared by every UI, importable
5
+ * without loading the rest of the viewer.
6
+ */
7
+ export * from './src/find'
package/icons.ts CHANGED
@@ -1,7 +1,7 @@
1
- /**
2
- * Subpath entry for `@mlightcad/cad-simple-viewer/icons`.
3
- *
4
- * Lets Node10 module resolution and the HTML viewer IIFE import icon
5
- * strings without loading the rest of the viewer.
6
- */
7
- export * from './src/ui/icons'
1
+ /**
2
+ * Subpath entry for `@mlightcad/cad-simple-viewer/icons`.
3
+ *
4
+ * Lets Node10 module resolution and the HTML viewer IIFE import icon
5
+ * strings without loading the rest of the viewer.
6
+ */
7
+ export * from './src/ui/icons'
@@ -3,8 +3,13 @@ import { AcGePoint2dLike } from '@mlightcad/data-model';
3
3
  * Optional context for AutoCAD-style command-line point entry.
4
4
  */
5
5
  export interface AcEdPointInputContext {
6
- /** Last picked point or prompt base point for relative (`@`) entry. */
7
- referencePoint?: AcGePoint2dLike | null;
6
+ /**
7
+ * Last picked point or prompt base point for relative (`@`) entry.
8
+ * Optional `z` participates in relative Cartesian / cylindrical Z offsets.
9
+ */
10
+ referencePoint?: (AcGePoint2dLike & {
11
+ z?: number;
12
+ }) | null;
8
13
  /**
9
14
  * Current cursor position in WCS. Required to interpret a lone distance value
10
15
  * as a point along the active rubber-band direction.
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdInputHandler.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdInputHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,uEAAuE;IACvE,cAAc,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC;;;;;OAKG;IACH,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAAA;IAEtC;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,CAAC,GAAG,IAAI,CAAA;CAC3E"}
1
+ {"version":3,"file":"AcEdInputHandler.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdInputHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,eAAe,GAAG;QAAE,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;IAC1D;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC;;;;;OAKG;IACH,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAAA;IAEtC;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,CAAC,GAAG,IAAI,CAAA;CAC3E"}
@@ -16,17 +16,18 @@ export declare class AcEdPointHandler implements AcEdInputHandler<AcGePoint3dLik
16
16
  * Parses an AutoCAD-style point token from the command line.
17
17
  *
18
18
  * Supported forms:
19
- * - Absolute Cartesian: `X,Y` or `X Y`
20
- * - Relative Cartesian: `@X,Y` or `@X Y`
19
+ * - Absolute Cartesian: `X,Y` / `X,Y,Z` or `X Y` / `X Y Z`
20
+ * - Relative Cartesian: `@X,Y` / `@X,Y,Z`
21
21
  * - Absolute polar: `distance<angle`
22
22
  * - Relative polar: `@distance<angle`
23
+ * - Cylindrical: `distance<angle,Z` (and `@` / `#` variants)
24
+ * - Spherical: `distance<angle<angle` (XY projection kept; Z stored)
25
+ * - Absolute override: `#…` (dynamic-input absolute prefix)
26
+ * - WCS force: `*…` / `@*…` / `#*…` (parsed; same as UCS while no UCS transform)
23
27
  * - Rubber-band distance: plain number when a reference point and cursor
24
28
  * position are available
25
29
  */
26
- parseCommandLine(token: string, context?: AcEdPointInputContext): {
27
- x: number;
28
- y: number;
29
- z: number;
30
- } | null;
30
+ parseCommandLine(token: string, context?: AcEdPointInputContext): import("@mlightcad/data-model").AcGeVector3dLike | null;
31
+ private resolvePoint;
31
32
  }
32
33
  //# sourceMappingURL=AcEdPointHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdPointHandler.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdPointHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AA4B5E;;GAEG;AACH,qBAAa,gBAAiB,YAAW,gBAAgB,CAAC,eAAe,CAAC;IACxE,SAAS,CAAC,OAAO,EAAE,sBAAsB,CAAA;gBAE7B,OAAO,EAAE,sBAAsB;IAI3C,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM;;;;;IAW3B;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB;;;;;CAmEhE"}
1
+ {"version":3,"file":"AcEdPointHandler.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdPointHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAoG5E;;GAEG;AACH,qBAAa,gBAAiB,YAAW,gBAAgB,CAAC,eAAe,CAAC;IACxE,SAAS,CAAC,OAAO,EAAE,sBAAsB,CAAA;gBAE7B,OAAO,EAAE,sBAAsB;IAI3C,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM;;;;;IAW3B;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB;IA4G/D,OAAO,CAAC,YAAY;CAkBrB"}
@@ -1,9 +1,9 @@
1
1
  var NUMERIC_TOKEN = /^-?(?:\d+\.?\d*|\.\d+)$/;
2
2
  /**
3
- * Splits a Cartesian point token into x/y components.
3
+ * Splits a Cartesian point token into x/y/(optional z) components.
4
4
  *
5
- * Accepts comma-separated (`50,30`) or whitespace-separated (`50 30`) forms.
6
- * An optional third `z` component is tolerated but ignored by 2D prompts.
5
+ * Accepts comma-separated (`50,30` / `50,30,10`) or whitespace-separated
6
+ * (`50 30` / `50 30 10`) forms.
7
7
  */
8
8
  function splitCartesianPointToken(token) {
9
9
  var trimmed = token.trim();
@@ -13,14 +13,72 @@ function splitCartesianPointToken(token) {
13
13
  var parts_1 = trimmed.split(',').map(function (v) { return v.trim(); });
14
14
  if (parts_1.length !== 2 && parts_1.length !== 3)
15
15
  return undefined;
16
- if (parts_1.length === 3 && Number.isNaN(Number(parts_1[2])))
16
+ if (parts_1.some(function (part) { return part === '' || Number.isNaN(Number(part)); })) {
17
17
  return undefined;
18
- return { x: parts_1[0], y: parts_1[1] };
18
+ }
19
+ return parts_1.length === 3
20
+ ? { x: parts_1[0], y: parts_1[1], z: parts_1[2] }
21
+ : { x: parts_1[0], y: parts_1[1] };
19
22
  }
20
23
  var parts = trimmed.split(/\s+/);
21
- if (parts.length < 2)
24
+ if (parts.length < 2 || parts.length > 3)
25
+ return undefined;
26
+ if (parts.some(function (part) { return part === '' || Number.isNaN(Number(part)); })) {
22
27
  return undefined;
23
- return { x: parts[0], y: parts[1] };
28
+ }
29
+ return parts.length === 3
30
+ ? { x: parts[0], y: parts[1], z: parts[2] }
31
+ : { x: parts[0], y: parts[1] };
32
+ }
33
+ /**
34
+ * Strips AutoCAD coordinate prefixes from a command-line token.
35
+ *
36
+ * Supported prefixes (any order, typically `@`/`#` then `*`):
37
+ * - `#` — force absolute (dynamic-input absolute override)
38
+ * - `@` — relative to the last / reference point
39
+ * - `*` — interpret in WCS (UCS and WCS are currently the same frame)
40
+ */
41
+ function stripCoordinatePrefixes(token) {
42
+ var body = token.trim();
43
+ var forceAbsolute = false;
44
+ var isRelative = false;
45
+ var useWcs = false;
46
+ while (body.length > 0) {
47
+ var first = body[0];
48
+ if (first === '#') {
49
+ forceAbsolute = true;
50
+ isRelative = false;
51
+ body = body.slice(1).trim();
52
+ continue;
53
+ }
54
+ if (first === '@') {
55
+ if (!forceAbsolute)
56
+ isRelative = true;
57
+ body = body.slice(1).trim();
58
+ continue;
59
+ }
60
+ if (first === '*') {
61
+ useWcs = true;
62
+ body = body.slice(1).trim();
63
+ continue;
64
+ }
65
+ break;
66
+ }
67
+ return { body: body, isRelative: isRelative, useWcs: useWcs };
68
+ }
69
+ function degToRad(degrees) {
70
+ return (degrees * Math.PI) / 180;
71
+ }
72
+ /**
73
+ * Parses a required numeric token. Empty strings must fail — `Number('')`
74
+ * is `0`, which would silently accept incomplete forms like `10<` or `<90`.
75
+ */
76
+ function parseNumberToken(token) {
77
+ var trimmed = token.trim();
78
+ if (!trimmed)
79
+ return null;
80
+ var value = Number(trimmed);
81
+ return Number.isNaN(value) ? null : value;
24
82
  }
25
83
  /**
26
84
  * Handles validation and parsing of point user input.
@@ -41,10 +99,14 @@ var AcEdPointHandler = /** @class */ (function () {
41
99
  * Parses an AutoCAD-style point token from the command line.
42
100
  *
43
101
  * Supported forms:
44
- * - Absolute Cartesian: `X,Y` or `X Y`
45
- * - Relative Cartesian: `@X,Y` or `@X Y`
102
+ * - Absolute Cartesian: `X,Y` / `X,Y,Z` or `X Y` / `X Y Z`
103
+ * - Relative Cartesian: `@X,Y` / `@X,Y,Z`
46
104
  * - Absolute polar: `distance<angle`
47
105
  * - Relative polar: `@distance<angle`
106
+ * - Cylindrical: `distance<angle,Z` (and `@` / `#` variants)
107
+ * - Spherical: `distance<angle<angle` (XY projection kept; Z stored)
108
+ * - Absolute override: `#…` (dynamic-input absolute prefix)
109
+ * - WCS force: `*…` / `@*…` / `#*…` (parsed; same as UCS while no UCS transform)
48
110
  * - Rubber-band distance: plain number when a reference point and cursor
49
111
  * position are available
50
112
  */
@@ -53,43 +115,63 @@ var AcEdPointHandler = /** @class */ (function () {
53
115
  var trimmed = token.trim();
54
116
  if (!trimmed)
55
117
  return null;
56
- var isRelative = trimmed.startsWith('@');
57
- var body = isRelative ? trimmed.slice(1).trim() : trimmed;
118
+ // useWcs is reserved for a future UCS→WCS transform; prefixes are still
119
+ // stripped so `*3,4` / `@*2,0` parse while UCS equals WCS.
120
+ var _b = stripCoordinatePrefixes(trimmed), body = _b.body, isRelative = _b.isRelative, _useWcs = _b.useWcs;
58
121
  if (!body)
59
122
  return null;
60
123
  var reference = (_a = context === null || context === void 0 ? void 0 : context.referencePoint) !== null && _a !== void 0 ? _a : undefined;
61
124
  var ltIndex = body.indexOf('<');
62
125
  if (ltIndex >= 0) {
63
- var distStr = body.slice(0, ltIndex).trim();
64
- var angleStr = body.slice(ltIndex + 1).trim();
65
- var dist = Number(distStr);
66
- var angleDeg = Number(angleStr);
67
- if (Number.isNaN(dist) || Number.isNaN(angleDeg))
126
+ var dist = parseNumberToken(body.slice(0, ltIndex));
127
+ var rest = body.slice(ltIndex + 1).trim();
128
+ if (dist == null)
68
129
  return null;
69
- var angleRad = (angleDeg * Math.PI) / 180;
70
- var offsetX = dist * Math.cos(angleRad);
71
- var offsetY = dist * Math.sin(angleRad);
72
- if (isRelative) {
73
- if (!reference)
130
+ var secondLt = rest.indexOf('<');
131
+ if (secondLt >= 0) {
132
+ // Spherical: distance < azimuth < elevation
133
+ var azimDeg = parseNumberToken(rest.slice(0, secondLt));
134
+ var elevDeg = parseNumberToken(rest.slice(secondLt + 1));
135
+ if (azimDeg == null || elevDeg == null)
74
136
  return null;
75
- return this.parse(String(reference.x + offsetX), String(reference.y + offsetY));
137
+ var azimRad = degToRad(azimDeg);
138
+ var elevRad = degToRad(elevDeg);
139
+ var xyDist = dist * Math.cos(elevRad);
140
+ return this.resolvePoint(isRelative, reference, xyDist * Math.cos(azimRad), xyDist * Math.sin(azimRad), dist * Math.sin(elevRad));
76
141
  }
77
- return this.parse(String(offsetX), String(offsetY));
142
+ // Polar or cylindrical: distance < angle[, Z]
143
+ var angleStr = rest;
144
+ var z = 0;
145
+ var comma = rest.indexOf(',');
146
+ if (comma >= 0) {
147
+ angleStr = rest.slice(0, comma);
148
+ var parsedZ = parseNumberToken(rest.slice(comma + 1));
149
+ if (parsedZ == null)
150
+ return null;
151
+ z = parsedZ;
152
+ }
153
+ var angleDeg = parseNumberToken(angleStr);
154
+ if (angleDeg == null)
155
+ return null;
156
+ var angleRad = degToRad(angleDeg);
157
+ return this.resolvePoint(isRelative, reference, dist * Math.cos(angleRad), dist * Math.sin(angleRad), z);
78
158
  }
79
159
  var cartesian = splitCartesianPointToken(body);
80
160
  if (cartesian) {
81
161
  var offsetX = Number(cartesian.x);
82
162
  var offsetY = Number(cartesian.y);
83
- if (Number.isNaN(offsetX) || Number.isNaN(offsetY))
163
+ var offsetZ = cartesian.z != null ? Number(cartesian.z) : 0;
164
+ if (Number.isNaN(offsetX) ||
165
+ Number.isNaN(offsetY) ||
166
+ Number.isNaN(offsetZ)) {
84
167
  return null;
85
- if (isRelative) {
86
- if (!reference)
87
- return null;
88
- return this.parse(String(reference.x + offsetX), String(reference.y + offsetY));
89
168
  }
90
- return this.parse(cartesian.x, cartesian.y);
169
+ return this.resolvePoint(isRelative, reference, offsetX, offsetY, offsetZ);
91
170
  }
92
171
  if (NUMERIC_TOKEN.test(body)) {
172
+ // Direct-distance entry is a bare number only (`10`), never `#10` / `@10`.
173
+ if (trimmed !== body)
174
+ return null;
93
175
  var distance = Number(body);
94
176
  var cursor = context === null || context === void 0 ? void 0 : context.cursorPoint;
95
177
  if (!reference || !cursor || Number.isNaN(distance))
@@ -98,10 +180,24 @@ var AcEdPointHandler = /** @class */ (function () {
98
180
  var dy = cursor.y - reference.y;
99
181
  var len = Math.hypot(dx, dy);
100
182
  var angleRad = len > 1e-10 ? Math.atan2(dy, dx) : 0;
101
- return this.parse(String(reference.x + distance * Math.cos(angleRad)), String(reference.y + distance * Math.sin(angleRad)));
183
+ return this.resolvePoint(true, reference, distance * Math.cos(angleRad), distance * Math.sin(angleRad), 0);
102
184
  }
103
185
  return null;
104
186
  };
187
+ AcEdPointHandler.prototype.resolvePoint = function (isRelative, reference, offsetX, offsetY, offsetZ) {
188
+ var _a;
189
+ if (isRelative) {
190
+ if (!reference)
191
+ return null;
192
+ return {
193
+ x: reference.x + offsetX,
194
+ y: reference.y + offsetY,
195
+ // AutoCAD relative `@x,y,z` / `@dist<ang,z` offsets Z from the last point.
196
+ z: ((_a = reference.z) !== null && _a !== void 0 ? _a : 0) + offsetZ
197
+ };
198
+ }
199
+ return { x: offsetX, y: offsetY, z: offsetZ };
200
+ };
105
201
  return AcEdPointHandler;
106
202
  }());
107
203
  export { AcEdPointHandler };
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdPointHandler.js","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdPointHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcEdPointHandler.js","sourceRoot":"","sources":["../../../../src/editor/input/handler/AcEdPointHandler.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,9 @@ import { AcEdMessageType } from './AcEdMessageType';
8
8
  * - Floating command bar with left terminal glyph + down toggle and right up toggle
9
9
  * - Command history popup
10
10
  * - Message panel above the bar
11
- * - Enter repeats last command if input empty
12
- * - Esc cancels current command
11
+ * - Enter or Space repeats last command if input empty
12
+ * - Space confirms like Enter unless the active prompt accepts spaces
13
+ * - Esc cancels current command and returns focus to the view
13
14
  * - Inline clickable options
14
15
  * - Keyboard navigation
15
16
  * - Promise-based execution for async command handling
@@ -41,6 +42,8 @@ export declare class AcEdCommandLine {
41
42
  private activeSession?;
42
43
  private resizeObserver?;
43
44
  private isPromptActive;
45
+ /** Whether the active prompt takes Space as literal text instead of Enter. */
46
+ private spaceInsertsText;
44
47
  private readonly recentMessages;
45
48
  private recentHideTimer?;
46
49
  private isCommandLifecycleBound;
@@ -66,6 +69,18 @@ export declare class AcEdCommandLine {
66
69
  clearInput(): void;
67
70
  focusInput(): void;
68
71
  setInputReadOnly(readOnly: boolean): void;
72
+ /** Whether a prompt session currently owns the command line input. */
73
+ get hasActiveSession(): boolean;
74
+ /**
75
+ * Types a character that was pressed outside the command line input (for
76
+ * example on the canvas) so a command can be started without clicking the
77
+ * command line first.
78
+ *
79
+ * @param char - Single printable character to insert at the caret
80
+ * @returns `true` when the character was inserted; `false` when the command
81
+ * line is hidden or read-only
82
+ */
83
+ typeText(char: string): boolean;
69
84
  /**
70
85
  * Displays a message in the command line history panel.
71
86
  *
@@ -84,6 +99,8 @@ export declare class AcEdCommandLine {
84
99
  mode: AcEdPromptInputMode;
85
100
  allowNone: boolean;
86
101
  allowTyping?: boolean;
102
+ /** Treat Space as literal text instead of Enter (string prompts). */
103
+ spaceInsertsText?: boolean;
87
104
  }): Promise<AcEdPromptInputResult<T>>;
88
105
  /**
89
106
  * Localize a text key using AcApI18n.t().
@@ -111,8 +128,16 @@ export declare class AcEdCommandLine {
111
128
  private createUI;
112
129
  /** Bind event listeners */
113
130
  private bindEvents;
114
- /** Handle Enter/Escape keys */
131
+ /** Handle Enter/Space/Escape keys */
115
132
  private handleKeyDown;
133
+ /** Submits the input to the active prompt, or runs it as a command. */
134
+ private confirmInput;
135
+ /**
136
+ * Moves keyboard focus from the input back to the host view so view
137
+ * shortcuts (Delete, Ctrl+Z, type-to-command), which are scoped to focus
138
+ * inside the view container, keep working after Esc.
139
+ */
140
+ private returnFocusToView;
116
141
  /** Handle input change to show auto-complete */
117
142
  private handleInputChange;
118
143
  /** Navigate auto-complete list with arrow keys */
@@ -1 +1 @@
1
- {"version":3,"file":"AcEdCommandLine.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/ui/AcEdCommandLine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcEdCommandLine.d.ts","sourceRoot":"","sources":["../../../../src/editor/input/ui/AcEdCommandLine.ts"],"names":[],"mappings":"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"}
@@ -44,8 +44,9 @@ import { AcEdKeywordSession, AcEdPromptInputSession } from '../session';
44
44
  * - Floating command bar with left terminal glyph + down toggle and right up toggle
45
45
  * - Command history popup
46
46
  * - Message panel above the bar
47
- * - Enter repeats last command if input empty
48
- * - Esc cancels current command
47
+ * - Enter or Space repeats last command if input empty
48
+ * - Space confirms like Enter unless the active prompt accepts spaces
49
+ * - Esc cancels current command and returns focus to the view
49
50
  * - Inline clickable options
50
51
  * - Keyboard navigation
51
52
  * - Promise-based execution for async command handling
@@ -56,6 +57,8 @@ var AcEdCommandLine = /** @class */ (function () {
56
57
  if (container === void 0) { container = document.body; }
57
58
  var _this = this;
58
59
  this.isPromptActive = false;
60
+ /** Whether the active prompt takes Space as literal text instead of Enter. */
61
+ this.spaceInsertsText = false;
59
62
  this.recentMessages = [];
60
63
  this.isCommandLifecycleBound = false;
61
64
  /** Aborts document/window listeners registered in the constructor. */
@@ -153,6 +156,37 @@ var AcEdCommandLine = /** @class */ (function () {
153
156
  AcEdCommandLine.prototype.setInputReadOnly = function (readOnly) {
154
157
  this.textInput.readOnly = readOnly;
155
158
  };
159
+ Object.defineProperty(AcEdCommandLine.prototype, "hasActiveSession", {
160
+ /** Whether a prompt session currently owns the command line input. */
161
+ get: function () {
162
+ return this.activeSession != null;
163
+ },
164
+ enumerable: false,
165
+ configurable: true
166
+ });
167
+ /**
168
+ * Types a character that was pressed outside the command line input (for
169
+ * example on the canvas) so a command can be started without clicking the
170
+ * command line first.
171
+ *
172
+ * @param char - Single printable character to insert at the caret
173
+ * @returns `true` when the character was inserted; `false` when the command
174
+ * line is hidden or read-only
175
+ */
176
+ AcEdCommandLine.prototype.typeText = function (char) {
177
+ var _a, _b;
178
+ if (!char || !this.visible || this.textInput.readOnly)
179
+ return false;
180
+ var input = this.textInput;
181
+ input.focus();
182
+ var start = (_a = input.selectionStart) !== null && _a !== void 0 ? _a : input.value.length;
183
+ var end = (_b = input.selectionEnd) !== null && _b !== void 0 ? _b : start;
184
+ input.value = input.value.slice(0, start) + char + input.value.slice(end);
185
+ var caret = start + char.length;
186
+ input.setSelectionRange(caret, caret);
187
+ this.handleInputChange();
188
+ return true;
189
+ };
156
190
  /**
157
191
  * Displays a message in the command line history panel.
158
192
  *
@@ -179,6 +213,7 @@ var AcEdCommandLine = /** @class */ (function () {
179
213
  case 0:
180
214
  session = new AcEdKeywordSession(this, options, allowTyping);
181
215
  this.activeSession = session;
216
+ this.spaceInsertsText = false;
182
217
  _a.label = 1;
183
218
  case 1:
184
219
  _a.trys.push([1, , 3, 4]);
@@ -199,17 +234,18 @@ var AcEdCommandLine = /** @class */ (function () {
199
234
  AcEdCommandLine.prototype.getPromptInput = function (options, parseValue, config) {
200
235
  return __awaiter(this, void 0, void 0, function () {
201
236
  var session;
202
- var _a;
203
- return __generator(this, function (_b) {
204
- switch (_b.label) {
237
+ var _a, _b;
238
+ return __generator(this, function (_c) {
239
+ switch (_c.label) {
205
240
  case 0:
206
241
  session = new AcEdPromptInputSession(this, options, parseValue, config.mode, config.allowNone, (_a = config.allowTyping) !== null && _a !== void 0 ? _a : true);
207
242
  this.activeSession = session;
208
- _b.label = 1;
243
+ this.spaceInsertsText = (_b = config.spaceInsertsText) !== null && _b !== void 0 ? _b : false;
244
+ _c.label = 1;
209
245
  case 1:
210
- _b.trys.push([1, , 3, 4]);
246
+ _c.trys.push([1, , 3, 4]);
211
247
  return [4 /*yield*/, session.start()];
212
- case 2: return [2 /*return*/, _b.sent()];
248
+ case 2: return [2 /*return*/, _c.sent()];
213
249
  case 3:
214
250
  this.activeSession = undefined;
215
251
  return [7 /*endfinally*/];
@@ -392,8 +428,12 @@ var AcEdCommandLine = /** @class */ (function () {
392
428
  _this.updatePopups({ showCmd: false, showMsg: false });
393
429
  }
394
430
  }, { signal: domSignal });
395
- this.textInput.addEventListener('keydown', function (e) { return _this.handleKeyDown(e); }, { signal: domSignal });
396
- this.textInput.addEventListener('input', function () { return _this.handleInputChange(); }, { signal: domSignal });
431
+ this.textInput.addEventListener('keydown', function (e) { return _this.handleKeyDown(e); }, {
432
+ signal: domSignal
433
+ });
434
+ this.textInput.addEventListener('input', function () { return _this.handleInputChange(); }, {
435
+ signal: domSignal
436
+ });
397
437
  this.centerEl.addEventListener('focus', function () { return _this.updatePopups({ showCmd: false, showMsg: false }); }, { signal: domSignal });
398
438
  this.cmdPopup.addEventListener('click', function (e) {
399
439
  var item = e.target.closest('.item');
@@ -404,25 +444,22 @@ var AcEdCommandLine = /** @class */ (function () {
404
444
  }
405
445
  }, { signal: domSignal });
406
446
  };
407
- /** Handle Enter/Escape keys */
447
+ /** Handle Enter/Space/Escape keys */
408
448
  AcEdCommandLine.prototype.handleKeyDown = function (e) {
409
449
  // IME / composition safety (important!)
410
450
  if (e.isComposing)
411
451
  return;
412
452
  switch (e.key) {
413
- case 'Enter': {
414
- e.preventDefault();
415
- e.stopImmediatePropagation();
416
- if (this.activeSession) {
417
- var handled = this.activeSession.handleEnter(this.getInputText());
418
- if (!handled) {
419
- this.showMessage(this.localize('main.commandLine.invalidInput', 'Invalid input.'), 'warning');
420
- }
453
+ case 'Enter':
454
+ case ' ': {
455
+ // Space confirms like Enter (AutoCAD) unless the prompt value may
456
+ // itself contain spaces.
457
+ if (e.key === ' ' && this.activeSession && this.spaceInsertsText) {
421
458
  return;
422
459
  }
423
- this.executeCommand(this.getInputText());
424
- this.historyIndex = this.history.length;
425
- this.updatePopups({ showCmd: false, showMsg: false });
460
+ e.preventDefault();
461
+ e.stopImmediatePropagation();
462
+ this.confirmInput();
426
463
  return;
427
464
  }
428
465
  case 'Escape': {
@@ -431,11 +468,13 @@ var AcEdCommandLine = /** @class */ (function () {
431
468
  if (this.activeSession) {
432
469
  this.activeSession.handleEscape();
433
470
  this.activeSession = undefined;
434
- return;
435
471
  }
436
- this.clear();
437
- this.showMessage(this.localize('main.commandLine.canceled'));
438
- this.updatePopups({ showCmd: false, showMsg: false });
472
+ else {
473
+ this.clear();
474
+ this.showMessage(this.localize('main.commandLine.canceled'));
475
+ this.updatePopups({ showCmd: false, showMsg: false });
476
+ }
477
+ this.returnFocusToView();
439
478
  return;
440
479
  }
441
480
  case 'ArrowUp': {
@@ -464,6 +503,33 @@ var AcEdCommandLine = /** @class */ (function () {
464
503
  }
465
504
  }
466
505
  };
506
+ /** Submits the input to the active prompt, or runs it as a command. */
507
+ AcEdCommandLine.prototype.confirmInput = function () {
508
+ if (this.activeSession) {
509
+ var handled = this.activeSession.handleEnter(this.getInputText());
510
+ if (!handled) {
511
+ this.showMessage(this.localize('main.commandLine.invalidInput', 'Invalid input.'), 'warning');
512
+ }
513
+ return;
514
+ }
515
+ this.executeCommand(this.getInputText());
516
+ this.historyIndex = this.history.length;
517
+ this.updatePopups({ showCmd: false, showMsg: false });
518
+ };
519
+ /**
520
+ * Moves keyboard focus from the input back to the host view so view
521
+ * shortcuts (Delete, Ctrl+Z, type-to-command), which are scoped to focus
522
+ * inside the view container, keep working after Esc.
523
+ */
524
+ AcEdCommandLine.prototype.returnFocusToView = function () {
525
+ if (document.activeElement !== this.textInput)
526
+ return;
527
+ if (this.container !== document.body) {
528
+ this.container.focus({ preventScroll: true });
529
+ }
530
+ if (document.activeElement === this.textInput)
531
+ this.textInput.blur();
532
+ };
467
533
  /** Handle input change to show auto-complete */
468
534
  AcEdCommandLine.prototype.handleInputChange = function () {
469
535
  var _this = this;