@reekon-tools/boldr-cad 1.6.0 → 1.7.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 (74) hide show
  1. package/README.md +12 -1
  2. package/dist/data/provider.d.ts +2 -1
  3. package/dist/data/sync.js +4 -1
  4. package/dist/data/sync.js.map +1 -1
  5. package/dist/editor/actions.js +10 -1
  6. package/dist/editor/actions.js.map +1 -1
  7. package/dist/editor/advance.d.ts +2 -0
  8. package/dist/editor/advance.js +23 -0
  9. package/dist/editor/advance.js.map +1 -0
  10. package/dist/editor/dimSize.d.ts +13 -0
  11. package/dist/editor/dimSize.js +50 -0
  12. package/dist/editor/dimSize.js.map +1 -0
  13. package/dist/editor/gestures.js +30 -7
  14. package/dist/editor/gestures.js.map +1 -1
  15. package/dist/editor/keypad.d.ts +8 -0
  16. package/dist/editor/keypad.js +15 -1
  17. package/dist/editor/keypad.js.map +1 -1
  18. package/dist/editor/laser.d.ts +9 -0
  19. package/dist/editor/laser.js +38 -12
  20. package/dist/editor/laser.js.map +1 -1
  21. package/dist/editor/ports.d.ts +9 -0
  22. package/dist/editor/ports.js +2 -0
  23. package/dist/editor/ports.js.map +1 -1
  24. package/dist/index.d.ts +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/model/clockwise.d.ts +11 -0
  28. package/dist/model/clockwise.js +123 -0
  29. package/dist/model/clockwise.js.map +1 -0
  30. package/dist/model/settings.d.ts +2 -0
  31. package/dist/model/settings.js +1 -1
  32. package/dist/model/settings.js.map +1 -1
  33. package/dist/react/BottomBar.js +43 -3
  34. package/dist/react/BottomBar.js.map +1 -1
  35. package/dist/react/PlanCanvas.native.js +15 -9
  36. package/dist/react/PlanCanvas.native.js.map +1 -1
  37. package/dist/react/host.d.ts +6 -0
  38. package/dist/react/host.js +11 -1
  39. package/dist/react/host.js.map +1 -1
  40. package/dist/react/ports.js +2 -1
  41. package/dist/react/ports.js.map +1 -1
  42. package/dist/react/store.d.ts +1 -1
  43. package/dist/react/store.js.map +1 -1
  44. package/dist/render/draw.d.ts +7 -0
  45. package/dist/render/draw.js +17 -8
  46. package/dist/render/draw.js.map +1 -1
  47. package/dist/render/navigate.d.ts +11 -6
  48. package/dist/render/navigate.js +34 -20
  49. package/dist/render/navigate.js.map +1 -1
  50. package/dist/tools/dim.d.ts +6 -0
  51. package/dist/tools/dim.js +28 -4
  52. package/dist/tools/dim.js.map +1 -1
  53. package/package.json +1 -1
  54. package/src/data/provider.ts +2 -2
  55. package/src/data/sync.ts +4 -1
  56. package/src/editor/actions.ts +6 -1
  57. package/src/editor/advance.ts +23 -0
  58. package/src/editor/dimSize.ts +53 -0
  59. package/src/editor/gestures.ts +31 -9
  60. package/src/editor/keypad.ts +17 -1
  61. package/src/editor/laser.ts +38 -10
  62. package/src/editor/ports.ts +10 -0
  63. package/src/index.ts +1 -2
  64. package/src/model/clockwise.ts +121 -0
  65. package/src/model/settings.ts +3 -1
  66. package/src/react/BottomBar.tsx +46 -2
  67. package/src/react/PlanCanvas.native.tsx +25 -12
  68. package/src/react/host.ts +11 -1
  69. package/src/react/ports.ts +3 -2
  70. package/src/react/store.ts +1 -1
  71. package/src/render/draw.ts +20 -9
  72. package/src/render/navigate.ts +31 -20
  73. package/src/tools/dim.ts +28 -4
  74. package/src/ui/domPorts.ts +2 -0
@@ -39,7 +39,9 @@ export const pressTiming = {
39
39
  holdMs: 120,
40
40
  };
41
41
  const ptrs = new Map();
42
- let penSeen = false, gesture = null, primary = null;
42
+ let gesture = null, primary = null;
43
+ /** Fingers the Pencil landed on (setAsideFingers): they do nothing, and count for nothing, until they lift. */
44
+ const parked = new Set();
43
45
  /** close: a press under a sheet (see sheetUp) — a tap closes it; open: a view-only press — a tap opens a link's tile */
44
46
  let panDrag = null;
45
47
  /** where the primary pointer went down, and whether a gesture on the drawing is in motion */
@@ -58,7 +60,7 @@ let wheelT;
58
60
  export const keys = { spaceDown: false };
59
61
  onSessionReset(() => {
60
62
  ptrs.clear();
61
- penSeen = false;
63
+ parked.clear();
62
64
  gesture = null;
63
65
  primary = null;
64
66
  panDrag = null;
@@ -101,7 +103,8 @@ function evOf(p) {
101
103
  return { sx: p.x, sy: p.y, wx, wy, touch: p.kind !== 'mouse', shift: !!p.shift };
102
104
  }
103
105
  const curTool = () => tools[ed.tool];
104
- const touchList = () => [...ptrs.values()].filter(q => q.kind === 'touch');
106
+ const touchList = () => [...ptrs.values()].filter(q => q.kind === 'touch' && !parked.has(q.id));
107
+ const penDown = () => [...ptrs.values()].some(q => q.kind === 'pen');
105
108
  function gState(ts) {
106
109
  if (ts.length >= 2) {
107
110
  const a = ts[0], b = ts[1];
@@ -150,7 +153,8 @@ function endGesture(t) {
150
153
  // (view only: a finger's tap on a link's tile opens it, once the person says so)
151
154
  else if (g.moved < MOTION_PX && ed.readOnly && g.max === 1 && g.last && t - g.t0 < 500)
152
155
  readOnlyTap(g.last.x, g.last.y, true);
153
- else if (g.moved < MOTION_PX && t - g.t0 < 380 && !ed.readOnly) {
156
+ // (not with the Pencil mid-stroke: it would undo under it)
157
+ else if (g.moved < MOTION_PX && t - g.t0 < 380 && !ed.readOnly && !primary) {
154
158
  if (g.max === 2)
155
159
  undo();
156
160
  else if (g.max >= 3)
@@ -221,9 +225,25 @@ function releaseHeld() {
221
225
  for (const m of h.moves)
222
226
  movePrimary(m);
223
227
  }
228
+ /**
229
+ * The Pencil landed: a finger already down that isn't moving the view — a hand resting on the screen, or a finger
230
+ * beaten to it — never pressed anything (a press it made is undone, as for a second finger) and is set aside until it
231
+ * lifts. Fingers already panning or pinching carry on.
232
+ */
233
+ function setAsideFingers() {
234
+ if (gesture)
235
+ return;
236
+ dropHeld();
237
+ if (primary && primary.kind === 'touch')
238
+ cancelPrimary();
239
+ for (const q of touchList())
240
+ parked.add(q.id);
241
+ }
224
242
  function endPtr(e, cancel) {
225
243
  const p = ptrs.get(e.id);
226
244
  ptrs.delete(e.id);
245
+ if (parked.delete(e.id))
246
+ return;
227
247
  if (panDrag && panDrag.id === e.id) {
228
248
  const still = panDrag.moved < MOTION_PX && !cancel, close = !!panDrag.close && still, open = !!panDrag.open && still;
229
249
  panDrag = null;
@@ -260,8 +280,6 @@ function endPtr(e, cancel) {
260
280
  }
261
281
  export function pointerDown(e) {
262
282
  dismissPopovers();
263
- if (e.kind === 'pen')
264
- penSeen = true;
265
283
  ed.lastPointerTouch = e.kind !== 'mouse';
266
284
  const p = { ...e };
267
285
  ptrs.set(e.id, p);
@@ -272,9 +290,12 @@ export function pointerDown(e) {
272
290
  setCursor('grabbing');
273
291
  return;
274
292
  }
293
+ if (e.kind === 'pen')
294
+ setAsideFingers();
275
295
  if (e.kind === 'touch') {
276
296
  const touches = touchList();
277
- if (penSeen || touches.length >= 2 || navOnly) {
297
+ // (with the Pencil down, a finger moves the view around it)
298
+ if (touches.length >= 2 || navOnly || penDown()) {
278
299
  // (a second finger while the first one's press waited: that never pressed anything)
279
300
  dropHeld();
280
301
  if (primary && primary.kind === 'touch')
@@ -314,6 +335,8 @@ export function pointerMove(e) {
314
335
  p.x = e.x;
315
336
  p.y = e.y;
316
337
  }
338
+ if (parked.has(e.id))
339
+ return;
317
340
  if (gesture && p && p.kind === 'touch') {
318
341
  updateGesture();
319
342
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"gestures.js","sourceRoot":"","sources":["../../src/editor/gestures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gestures.js","sourceRoot":"","sources":["../../src/editor/gestures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,EAAE,EAA2B,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,KAAK,EAAY,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACvH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AA6B5C;;;;GAIG;AACH,IAAI,aAAa,GAAG,KAAK,CAAC;AAC1B,MAAM,UAAU,iBAAiB,CAAC,EAAW,IAAU,aAAa,GAAG,EAAE,CAAC,CAAC,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,iDAAiD;IACjD,MAAM,EAAE,GAAG;CACZ,CAAC;AAEF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;AAC1C,IAAI,OAAO,GAAmB,IAAI,EAAE,OAAO,GAAqB,IAAI,CAAC;AACrE,+GAA+G;AAC/G,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;AACjC,wHAAwH;AACxH,IAAI,OAAO,GAAgG,IAAI,CAAC;AAChH,6FAA6F;AAC7F,IAAI,SAAS,GAAoC,IAAI,EAAE,QAAQ,GAAG,KAAK,CAAC;AACxE,oFAAoF;AACpF,IAAI,YAAY,GAAG,KAAK,CAAC;AACzB;;;;GAIG;AACH,IAAI,WAAW,GAAqG,IAAI,CAAC;AACzH,uHAAuH;AACvH,IAAI,IAAI,GAAqG,IAAI,CAAC;AAClH,IAAI,MAAiD,CAAC;AACtD,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACzC,cAAc,CAAC,GAAG,EAAE;IAClB,IAAI,CAAC,KAAK,EAAE,CAAC;IAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAAC,OAAO,GAAG,IAAI,CAAC;IAAC,OAAO,GAAG,IAAI,CAAC;IAAC,OAAO,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAAC,SAAS,GAAG,IAAI,CAAC;IAAC,WAAW,GAAG,IAAI,CAAC;IAAC,YAAY,GAAG,KAAK,CAAC;IACjK,QAAQ,EAAE,CAAC;IACX,SAAS,CAAC,KAAK,CAAC,CAAC;IACjB,YAAY,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,0EAA0E;AAC1E,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAY,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,YAAY,EAAE,IAAI,WAAW,EAAE,CAAC;AAEtI,mGAAmG;AACnG,MAAM,CAAC,MAAM,cAAc,GAAG,GAAY,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,OAAO,EAAE,CAAC;AAEtE,SAAS,UAAU;IACjB,IAAI,UAAU,EAAE;QAAE,WAAW,EAAE,CAAC;SAAM,IAAI,WAAW,EAAE;QAAE,aAAa,EAAE,CAAC;;QAAM,eAAe,EAAE,CAAC;AACnG,CAAC;AAED,SAAS,SAAS,CAAC,EAAW;IAC5B,IAAI,EAAE,KAAK,QAAQ;QAAE,OAAO;IAC5B,QAAQ,GAAG,EAAE,CAAC;IACd,WAAW,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,IAAI,CAAC,CAAY;IACxB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AACnF,CAAC;AAED,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChG,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AAErE,SAAS,MAAM,CAAC,EAAe;IAC7B,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC;IAAC,CAAC;IAClJ,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACnE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,CAAS;IAC7B,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IACvB,OAAO,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;AAClE,CAAC;AAED,SAAS,aAAa;IACpB,MAAM,CAAC,GAAG,OAAQ,EAAE,EAAE,GAAG,SAAS,EAAE,CAAC;IACrC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACjC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IACrC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IACxC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7E,oGAAoG;IACpG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,IAAI,CAAC,CAAC,KAAK,IAAI,SAAS;QAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACd,IAAI,KAAK;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,MAAM,CAAC,GAAG,OAAO,CAAC;IAClB,OAAO,GAAG,IAAI,CAAC;IACf,IAAI,CAAC,CAAC;QAAE,OAAO;IACf,oFAAoF;IACpF,IAAI,CAAC,CAAC,KAAK,GAAG,SAAS,IAAI,OAAO,EAAE;QAAE,UAAU,EAAE,CAAC;IACnD,iFAAiF;SAC5E,IAAI,CAAC,CAAC,KAAK,GAAG,SAAS,IAAI,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG;QAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9H,2DAA2D;SACtD,IAAI,CAAC,CAAC,KAAK,GAAG,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;YAAE,IAAI,EAAE,CAAC;aAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YAAE,IAAI,EAAE,CAAC;IAAC,CAAC;IACrI,YAAY,EAAE,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa;IACpB,MAAM,CAAC,GAAG,OAAO,EAAE,EAAE,GAAG,GAAG,WAAW,CAAC;IACvC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI;QAAE,UAAU,EAAE,CAAC;IAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QACrC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;QACd,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QAAC,EAAE,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAAC,EAAE,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;IACtE,CAAC;SAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK;QAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IACnC,WAAW,GAAG,IAAI,CAAC;IACnB,OAAO,GAAG,IAAI,CAAC;IACf,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;IACjB,SAAS,EAAE,CAAC;IAAC,UAAU,EAAE,CAAC;IAAC,WAAW,EAAE,CAAC;AAC3C,CAAC;AAED,qHAAqH;AACrH,SAAS,KAAK,CAAC,CAAY,EAAE,EAAa;IACxC,OAAO,GAAG,CAAC,CAAC;IAAC,YAAY,GAAG,KAAK,CAAC;IAClC,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;IACjC,+FAA+F;IAC/F,YAAY,EAAE,CAAC;IACf,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,WAAW,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC;IAC5J,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI;QAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,kHAAkH;AAClH,SAAS,WAAW,CAAC,CAAY;IAC/B,IAAI,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC;QAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAAC,YAAY,GAAG,IAAI,CAAC;IAAC,CAAC;IAClH,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI;QAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,QAAQ;IACf,IAAI,IAAI;QAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,GAAG,IAAI,CAAC;AACd,CAAC;AAED,gHAAgH;AAChH,SAAS,WAAW;IAClB,MAAM,CAAC,GAAG,IAAI,CAAC;IACf,QAAQ,EAAE,CAAC;IACX,2FAA2F;IAC3F,IAAI,CAAC,CAAC,IAAI,OAAO,IAAI,cAAc,EAAE;QAAE,OAAO;IAC9C,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACjB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK;QAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe;IACtB,IAAI,OAAO;QAAE,OAAO;IACpB,QAAQ,EAAE,CAAC;IACX,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;QAAE,aAAa,EAAE,CAAC;IACzD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE;QAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,MAAM,CAAC,CAAY,EAAE,MAAe;IAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClB,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAAE,OAAO;IAChC,IAAI,OAAO,IAAI,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;QACrH,OAAO,GAAG,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAAC,YAAY,EAAE,CAAC;QAC9C,IAAI,KAAK,IAAI,OAAO,EAAE;YAAE,UAAU,EAAE,CAAC;aAChC,IAAI,IAAI;YAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM;YAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAC7F,gGAAgG;IAChG,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAAC,IAAI,MAAM;YAAE,QAAQ,EAAE,CAAC;;YAAM,WAAW,EAAE,CAAC;IAAC,CAAC;IAChF,IAAI,OAAO,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;QACnC,OAAO,GAAG,IAAI,CAAC;QACf,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aACnC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAAC,WAAW,EAAE,CAAC;QAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAY;IACtC,eAAe,EAAE,CAAC;IAClB,EAAE,CAAC,gBAAgB,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IACnB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAClB,gHAAgH;IAChH,MAAM,KAAK,GAAG,OAAO,EAAE,EAAE,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC;IACxD,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC5I,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACzI,SAAS,CAAC,UAAU,CAAC,CAAC;QACtB,OAAO;IACT,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;QAAE,eAAe,EAAE,CAAC;IACxC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;QAC5B,4DAA4D;QAC5D,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,IAAI,OAAO,EAAE,EAAE,CAAC;YAChD,oFAAoF;YACpF,QAAQ,EAAE,CAAC;YACX,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;gBAAE,aAAa,EAAE,CAAC;YACzD,+GAA+G;YAC/G,IAAI,CAAC,OAAO;gBAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAAM,CAAC;gBAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAAC,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YAC9H,OAAO;QACT,CAAC;IACH,CAAC;IACD,IAAI,OAAO,IAAI,OAAO;QAAE,OAAO;IAC/B,8EAA8E;IAC9E,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,QAAQ,EAAE,CAAC;QACX,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1F,OAAO;IACT,CAAC;IACD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAY;IACtC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzB,IAAI,OAAO,IAAI,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvD,IAAI,OAAO,CAAC,KAAK,IAAI,SAAS;YAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QAChD,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IACD,IAAI,CAAC,EAAE,CAAC;QAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAChC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAAE,OAAO;IAC7B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAAC,aAAa,EAAE,CAAC;QAAC,OAAO;IAAC,CAAC;IACpE,4GAA4G;IAC5G,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS;YAAE,WAAW,EAAE,CAAC;QACtE,OAAO;IACT,CAAC;IACD,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,IAAI,CAAC,CAAC;QAAE,OAAO;IACf,IAAI,OAAO,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,CAAC,CAAC,CAAC;SAC9C,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QAAC,EAAE,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAAC,IAAI,CAAC,CAAC,KAAK;YAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AAC/H,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,YAAY,IAAI,cAAc,EAAE;QAAE,OAAO,IAAI,CAAC;IAC3F,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,CAAY,IAAU,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC7E,MAAM,UAAU,aAAa,CAAC,CAAY,IAAU,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAEhF,0EAA0E;AAC1E,SAAS,MAAM;IACb,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO;IACtB,SAAS,GAAG,IAAI,CAAC;IACjB,SAAS,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,GAAa;IACzC,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,aAAa,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACjG,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;QAChB,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM;YAAE,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC;QAC5C,WAAW,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,KAAc,EAAE,KAAc;IACxF,IAAI,KAAK;QAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;;QACzC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3D,YAAY,CAAC,MAAM,CAAC,CAAC;IACrB,MAAM,GAAG,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC"}
@@ -37,6 +37,14 @@ export declare function keypadBackspace(): void;
37
37
  export declare function keypadDeleteLast(): void;
38
38
  /** A measured length into the display, replaced again by the next key. */
39
39
  export declare function keypadSetReading(v: number): void;
40
+ /** Whether an open keypad would take a laser reading now (a length one, with laser on): keypadTakeLaser's test alone. */
41
+ export declare function keypadTakesLaser(): boolean;
42
+ /**
43
+ * Whether a reading of `v` taken into the open keypad now would replace a measured value: only the host's own keypad
44
+ * applies a reading at once (this one puts it in the display, still to be applied), and only one opened on such a
45
+ * value says so (KeypadSpec.overwrites: a dimension's).
46
+ */
47
+ export declare function keypadReadingOverwrites(v: number): boolean;
40
48
  /**
41
49
  * A laser reading into an open length keypad. False if this keypad can't take one (degrees, or laser turned off).
42
50
  * The host's own keypad can't be typed into from here, so a reading there is the value: it's applied at once.
@@ -109,6 +109,20 @@ export function keypadSetReading(v) {
109
109
  kps.cur.fresh = true;
110
110
  kps.cur.error = undefined;
111
111
  }
112
+ /** Whether an open keypad would take a laser reading now (a length one, with laser on): keypadTakeLaser's test alone. */
113
+ export function keypadTakesLaser() {
114
+ const k = kps.cur;
115
+ return !!k && k.spec.laser !== false && !k.spec.numeric;
116
+ }
117
+ /**
118
+ * Whether a reading of `v` taken into the open keypad now would replace a measured value: only the host's own keypad
119
+ * applies a reading at once (this one puts it in the display, still to be applied), and only one opened on such a
120
+ * value says so (KeypadSpec.overwrites: a dimension's).
121
+ */
122
+ export function keypadReadingOverwrites(v) {
123
+ const k = kps.cur;
124
+ return !!k && !!k.host && keypadTakesLaser() && !!k.spec.overwrites?.(v);
125
+ }
112
126
  /**
113
127
  * A laser reading into an open length keypad. False if this keypad can't take one (degrees, or laser turned off).
114
128
  * The host's own keypad can't be typed into from here, so a reading there is the value: it's applied at once.
@@ -116,7 +130,7 @@ export function keypadSetReading(v) {
116
130
  */
117
131
  export function keypadTakeLaser(v, capture) {
118
132
  const k = kps.cur;
119
- if (!k || k.spec.laser === false || k.spec.numeric)
133
+ if (!k || !keypadTakesLaser())
120
134
  return false;
121
135
  if (k.host) {
122
136
  keypadSubmit(v, capture);
@@ -1 +1 @@
1
- {"version":3,"file":"keypad.js","sourceRoot":"","sources":["../../src/editor/keypad.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keypad.js","sourceRoot":"","sources":["../../src/editor/keypad.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,15 @@ export declare function setCurveDiameter(id: string, v: number, side?: 1 | -1, o
30
30
  * to the group — or handed to the job with it, for one linked to a measurement there.
31
31
  */
32
32
  export declare function applyReading(v: number, capture?: unknown): void;
33
+ /**
34
+ * Whether a reading of `v` arriving now would replace a measured value, for a host that warns before one does (BOLDR's
35
+ * mobile app, with the warning a filled annotation tile or form cell gets; the user's call, 2026-11-05): a value
36
+ * already entered (a driving dimension, not a default nobody measured), changed by it (replacesMeasured). That's a
37
+ * reading going onto the selected line, wall edge or curve; or into the host's own keypad opened on such a dimension (a
38
+ * phone's: it applies a reading at once). Not one into the editor's own keypad: it waits in the display to be applied.
39
+ * Not one linked to a measurement of the job: the editor asks about that itself (askLinkedChange).
40
+ */
41
+ export declare function readingOverwrites(v: number): boolean;
33
42
  /**
34
43
  * Use a reading from the tray: `dropOn` is the line it was dragged onto (null: dropped off any line); without it
35
44
  * (a tap), it goes to the one selected line.
@@ -9,9 +9,10 @@ import { lengthDimOf, lineLen } from '../model/sketch';
9
9
  import { SK } from '../model/store';
10
10
  import { faceLength } from '../model/wallfaces';
11
11
  import { V } from '../render/view';
12
- import { LENGTH_SET_ALREADY, setDimValue } from '../tools/dim';
12
+ import { LENGTH_SET_ALREADY, replacesMeasured, setDimValue } from '../tools/dim';
13
13
  import { fmtLen } from '../units';
14
- import { keypadTakeLaser } from './keypad';
14
+ import { advanceAfterReading } from './advance';
15
+ import { keypadReadingOverwrites, keypadTakeLaser, keypadTakesLaser } from './keypad';
15
16
  import { refreshKeypad, refreshTray, toast } from './ports';
16
17
  import { selInfo } from './selection';
17
18
  /** `external`: a real measure the host app is connected to (otherwise the harness's simulated one). */
@@ -73,12 +74,9 @@ function readingTarget(id) {
73
74
  const sk = SK();
74
75
  return sk.lines[id] || sk.circles[id] || sk.arcs[id] ? [id] : edgeOf(id);
75
76
  }
76
- /** A reading put on a line's (or straight wall's) length, or a circle's or arc's diameter. */
77
+ /** A reading put on a line's (or straight wall's) length, or a circle's or arc's diameter. Whether it took. */
77
78
  function setReading(id, v, side, capture) {
78
- if (SK().lines[id])
79
- setLineLength(id, v, side, { capture });
80
- else
81
- setCurveDiameter(id, v, side, { capture });
79
+ return SK().lines[id] ? setLineLength(id, v, side, { capture }) : setCurveDiameter(id, v, side, { capture });
82
80
  }
83
81
  /**
84
82
  * What a reading was put on, as the toast says it: 'the selected line', 'the inside edge of the wall', 'the Kitchen
@@ -105,12 +103,14 @@ export function applyReading(v, capture) {
105
103
  refreshKeypad();
106
104
  return;
107
105
  }
108
- const s = selInfo();
109
- const one = s.n === 1 ? s.lines[0] ?? s.wfaces[0] ?? s.curves[0] : undefined;
110
- if (ed.mode === 'draft' && one) {
111
- const [id, side] = readingTarget(one);
112
- setReading(id, v, side, capture);
106
+ const target = selectedReadingTarget();
107
+ if (target) {
108
+ const [id, side] = target;
109
+ const took = setReading(id, v, side, capture);
113
110
  toast('Laser ' + fmtLen(v) + ' applied to ' + appliedTo(id));
111
+ // on round to the next line clockwise, for the next reading (not past one the drawing refused, or asked about)
112
+ if (took)
113
+ advanceAfterReading(id, side);
114
114
  return;
115
115
  }
116
116
  laser.readings.unshift({ id: uid('m'), v, ...(capture !== undefined ? { capture } : {}) });
@@ -118,6 +118,32 @@ export function applyReading(v, capture) {
118
118
  refreshTray();
119
119
  toast('Select a line, then take the reading.', { warn: true });
120
120
  }
121
+ /** Where a reading arriving now goes when no keypad takes it: the one selected line, wall edge or curve, in Draft. */
122
+ function selectedReadingTarget() {
123
+ const s = selInfo();
124
+ const one = s.n === 1 ? s.lines[0] ?? s.wfaces[0] ?? s.curves[0] : undefined;
125
+ return ed.mode === 'draft' && one ? readingTarget(one) : null;
126
+ }
127
+ /**
128
+ * Whether a reading of `v` arriving now would replace a measured value, for a host that warns before one does (BOLDR's
129
+ * mobile app, with the warning a filled annotation tile or form cell gets; the user's call, 2026-11-05): a value
130
+ * already entered (a driving dimension, not a default nobody measured), changed by it (replacesMeasured). That's a
131
+ * reading going onto the selected line, wall edge or curve; or into the host's own keypad opened on such a dimension (a
132
+ * phone's: it applies a reading at once). Not one into the editor's own keypad: it waits in the display to be applied.
133
+ * Not one linked to a measurement of the job: the editor asks about that itself (askLinkedChange).
134
+ */
135
+ export function readingOverwrites(v) {
136
+ if (keypadTakesLaser())
137
+ return keypadReadingOverwrites(v);
138
+ const target = selectedReadingTarget();
139
+ if (!target)
140
+ return false;
141
+ const sk = SK(), [id] = target;
142
+ const ex = sk.lines[id] ? lengthDimOf(sk, id) : diamDimOf(id);
143
+ const c = ex ? sk.cons[ex] : undefined;
144
+ // (as setCurveDiameter gives it: a fillet's radius dimension holds the diameter)
145
+ return replacesMeasured(c, c?.type === 'diam' && c.rad ? v * 2 : v);
146
+ }
121
147
  /**
122
148
  * Use a reading from the tray: `dropOn` is the line it was dragged onto (null: dropped off any line); without it
123
149
  * (a tap), it goes to the one selected line.
@@ -1 +1 @@
1
- {"version":3,"file":"laser.js","sourceRoot":"","sources":["../../src/editor/laser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"laser.js","sourceRoot":"","sources":["../../src/editor/laser.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,12 @@ export interface KeypadSpec {
32
32
  extras?: () => KeypadExtra[];
33
33
  /** the value; `capture`, a laser reading's record (laserReading's), when it's that reading applied as it came in */
34
34
  onDone?: (v: number, capture?: unknown) => void;
35
+ /**
36
+ * Whether `v` (as onDone takes it) would replace a value measured there: set by a keypad opened on a dimension, so a
37
+ * host that warns before a reading overwrites can ask, where the host's keypad applies a reading at once
38
+ * (laserReadingOverwrites).
39
+ */
40
+ overwrites?: (v: number) => boolean;
35
41
  /**
36
42
  * A line's length, or a dimension's angle: the job's measurements are offered with the keys (a page swiped to on a
37
43
  * touch screen, Select From List on a desktop), those of `kind` pickable — the one picked handed to `pick` (the
@@ -84,6 +90,8 @@ export interface EditorPorts {
84
90
  toggleImageRotation(anchor?: unknown): void;
85
91
  /** the link tiles' size slider, above the bar (its button again closes it) */
86
92
  toggleTileSize(anchor?: unknown): void;
93
+ /** the measurement tiles' size slider, above the bar, as the tiles' (editor/dimSize.ts) */
94
+ toggleDimSize(anchor?: unknown): void;
87
95
  /** let the user type a new name for a space */
88
96
  editRoomName(roomId: string): void;
89
97
  /** the mouse cursor over the plan (or the wall elevation), as a CSS cursor name ('' = the default); ignored without a mouse */
@@ -118,6 +126,7 @@ export declare const openPalette: (anchor?: unknown) => void;
118
126
  export declare const toggleImageOpacity: (anchor?: unknown) => void;
119
127
  export declare const toggleImageRotation: (anchor?: unknown) => void;
120
128
  export declare const toggleTileSize: (anchor?: unknown) => void;
129
+ export declare const toggleDimSize: (anchor?: unknown) => void;
121
130
  export declare const editRoomName: (roomId: string) => void;
122
131
  export declare const setCursor: (cursor: string, where?: 'plan' | 'elevation') => void;
123
132
  export declare const dismissPopovers: () => boolean;
@@ -13,6 +13,7 @@ export const basePorts = () => ({
13
13
  toggleImageOpacity() { },
14
14
  toggleImageRotation() { },
15
15
  toggleTileSize() { },
16
+ toggleDimSize() { },
16
17
  editRoomName() { },
17
18
  setCursor() { },
18
19
  dismissPopovers: () => false,
@@ -39,6 +40,7 @@ export const openPalette = (anchor) => ports.openPalette(anchor);
39
40
  export const toggleImageOpacity = (anchor) => ports.toggleImageOpacity(anchor);
40
41
  export const toggleImageRotation = (anchor) => ports.toggleImageRotation(anchor);
41
42
  export const toggleTileSize = (anchor) => ports.toggleTileSize(anchor);
43
+ export const toggleDimSize = (anchor) => ports.toggleDimSize(anchor);
42
44
  export const editRoomName = (roomId) => ports.editRoomName(roomId);
43
45
  export const setCursor = (cursor, where = 'plan') => ports.setCursor(cursor, where);
44
46
  export const dismissPopovers = () => ports.dismissPopovers();
@@ -1 +1 @@
1
- {"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/editor/ports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/editor/ports.ts"],"names":[],"mappings":"AAwHA,gFAAgF;AAChF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAgB,EAAE,CAAC,CAAC;IAC3C,OAAO,KAAI,CAAC;IACZ,KAAK,KAAI,CAAC;IACV,UAAU,KAAI,CAAC;IACf,WAAW,KAAI,CAAC;IAChB,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI;IACvB,YAAY,KAAI,CAAC;IACjB,UAAU,KAAI,CAAC;IACf,aAAa,KAAI,CAAC;IAClB,aAAa,KAAI,CAAC;IAClB,WAAW,KAAI,CAAC;IAChB,kBAAkB,KAAI,CAAC;IACvB,mBAAmB,KAAI,CAAC;IACxB,cAAc,KAAI,CAAC;IACnB,aAAa,KAAI,CAAC;IAClB,YAAY,KAAI,CAAC;IACjB,SAAS,KAAI,CAAC;IACd,eAAe,EAAE,GAAG,EAAE,CAAC,KAAK;IAC5B,WAAW,KAAI,CAAC;IAChB,eAAe,EAAE,GAAG,EAAE,CAAC,KAAK;IAC5B,IAAI,KAAI,CAAC;IACT,QAAQ,KAAI,CAAC;CACd,CAAC,CAAC;AAEH,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;AAC5B,IAAI,KAAK,GAAgB,OAAO,CAAC;AAEjC,gGAAgG;AAChG,MAAM,UAAU,QAAQ,CAAC,CAAqB;IAC5C,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,IAAgB,EAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACrF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAgB,EAAQ,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,WAAW,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AAC3D,MAAM,CAAC,MAAM,OAAO,GAAG,GAAkB,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAkB,EAAQ,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACnF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAe,EAAQ,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAU,EAAE,EAAU,EAAE,EAA0B,EAAE,OAAgB,EAAQ,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AACtJ,MAAM,CAAC,MAAM,aAAa,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;AAC/D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAgB,EAAQ,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACjF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAgB,EAAQ,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC/F,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAgB,EAAQ,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACjG,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAgB,EAAQ,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACvF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAgB,EAAQ,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACrF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAQ,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AACjF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,KAAK,GAAyB,MAAM,EAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACxH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAY,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;AACtE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAW,EAAQ,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,eAAe,GAAG,GAAY,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;AACtE,MAAM,CAAC,MAAM,WAAW,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACpD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,IAAY,EAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE7G,MAAM,CAAC,MAAM,SAAS,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,UAAU,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,YAAY,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,UAAU,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,YAAY,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,eAAe,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,YAAY,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,aAAa,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,WAAW,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,cAAc,GAAG,GAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -5,7 +5,7 @@ export type { Unit } from './units';
5
5
  export { memoryProvider } from './data/memory';
6
6
  export { setFileSaver } from './react/ports';
7
7
  export { BESIDE as CAD_BESIDE } from './react/pageLock';
8
- export { laserReading, setLaserConnected, surveyClose, surveyCursor, surveyPoint } from './react/host';
8
+ export { laserReading, laserReadingOverwrites, setLaserConnected, surveyClose, surveyCursor, surveyPoint } from './react/host';
9
9
  export type { HostKeypad, HostKeypadExtra, HostKeypadRequest, MeasurementList, MeasurementListPage } from './react/hostKeypad';
10
10
  export type { CadLinkPick, CadLinks, CadSaveMeasurement, MeasurementKind } from './editor/links';
11
11
  export type { LinkInfo, LinkTarget } from './model/types';
package/dist/index.js CHANGED
@@ -8,7 +8,7 @@ export { openCadDrawing, measurementOf, NotACadDrawing } from './data/sync';
8
8
  export { memoryProvider } from './data/memory';
9
9
  export { setFileSaver } from './react/ports';
10
10
  export { BESIDE as CAD_BESIDE } from './react/pageLock';
11
- export { laserReading, setLaserConnected, surveyClose, surveyCursor, surveyPoint } from './react/host';
11
+ export { laserReading, laserReadingOverwrites, setLaserConnected, surveyClose, surveyCursor, surveyPoint } from './react/host';
12
12
  export { linkKey } from './model/links';
13
13
  export { hasUnsavedChanges as cadHasUnsavedChanges, saveDrawing as saveCadDrawing } from './react/saving';
14
14
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AAEF,OAAO,EAAE,SAAS,EAAuB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAqC,MAAM,aAAa,CAAC;AAG/G,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIvG,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,iBAAiB,IAAI,oBAAoB,EAAE,WAAW,IAAI,cAAc,EAAqB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AAEF,OAAO,EAAE,SAAS,EAAuB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAqC,MAAM,aAAa,CAAC;AAG/G,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG/H,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,iBAAiB,IAAI,oBAAoB,EAAE,WAAW,IAAI,cAAc,EAAqB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { Sketch } from './types';
2
+ /**
3
+ * The next line clockwise from line or arc `id`, round the shape it's part of; null when there's none (a lone line, a
4
+ * run's end, a circle). `side`: a wall's edge it was measured on (+1 the left of its A → B): the edge of the next wall on
5
+ * the same side of the shape (the inside stays the inside) comes back with it. A line between two rooms goes round the
6
+ * one that edge faces, or the smaller one.
7
+ */
8
+ export declare function nextClockwise(sk: Sketch, id: string, side?: 1 | -1): {
9
+ id: string;
10
+ side?: 1 | -1;
11
+ } | null;
@@ -0,0 +1,123 @@
1
+ /** Every line and arc, by the points they end at (guides left out). */
2
+ function ends(sk) {
3
+ const m = new Map();
4
+ const add = (id, a, b) => {
5
+ if (a === b || !sk.points[a] || !sk.points[b])
6
+ return;
7
+ (m.get(a) ?? m.set(a, []).get(a)).push({ id, other: b });
8
+ (m.get(b) ?? m.set(b, []).get(b)).push({ id, other: a });
9
+ };
10
+ for (const [id, l] of Object.entries(sk.lines))
11
+ if (!l.constr)
12
+ add(id, l.a, l.b);
13
+ for (const [id, c] of Object.entries(sk.arcs))
14
+ if (!c.constr)
15
+ add(id, c.a, c.b);
16
+ return m;
17
+ }
18
+ const TURN = 2 * Math.PI;
19
+ /** The step after `s`, keeping the face on the right: the edge at its end turning most to the right. Null at a dead end. */
20
+ function after(sk, at, s) {
21
+ const v = sk.points[s.to], u = sk.points[s.from];
22
+ const back = Math.atan2(u.y - v.y, u.x - v.x);
23
+ let best = null, least = Infinity;
24
+ for (const e of at.get(s.to) ?? []) {
25
+ if (e.id === s.id)
26
+ continue;
27
+ const w = sk.points[e.other];
28
+ // (counter-clockwise from the way back: the least is the sharpest turn right)
29
+ let d = Math.atan2(w.y - v.y, w.x - v.x) - back;
30
+ while (d <= 1e-9)
31
+ d += TURN;
32
+ while (d > TURN)
33
+ d -= TURN;
34
+ if (d < least) {
35
+ least = d;
36
+ best = { id: e.id, from: s.to, to: e.other };
37
+ }
38
+ }
39
+ return best;
40
+ }
41
+ /** The walk from `s` on round: every step after it, and whether it came back to `s` (a closed shape). */
42
+ function walk(sk, at, s) {
43
+ const steps = [];
44
+ let cur = s;
45
+ const most = 2 * (Object.keys(sk.lines).length + Object.keys(sk.arcs).length) + 2;
46
+ while (steps.length < most) {
47
+ cur = after(sk, at, cur);
48
+ if (!cur)
49
+ return { steps, closed: false };
50
+ if (cur.id === s.id && cur.from === s.from)
51
+ return { steps, closed: true };
52
+ steps.push(cur);
53
+ }
54
+ return { steps, closed: false };
55
+ }
56
+ /** Twice the signed area round `s` and the steps after it (negative: clockwise, y up). */
57
+ function area(sk, s, steps) {
58
+ let a = 0;
59
+ for (const t of [s, ...steps]) {
60
+ const p = sk.points[t.from], q = sk.points[t.to];
61
+ a += p.x * q.y - q.x * p.y;
62
+ }
63
+ return a;
64
+ }
65
+ /** The middle of everything joined to `pid` (the points it can reach along lines and arcs). */
66
+ function middle(sk, at, pid) {
67
+ const seen = new Set([pid]), todo = [pid];
68
+ while (todo.length)
69
+ for (const e of at.get(todo.pop()) ?? [])
70
+ if (!seen.has(e.other)) {
71
+ seen.add(e.other);
72
+ todo.push(e.other);
73
+ }
74
+ let x = 0, y = 0;
75
+ for (const id of seen) {
76
+ x += sk.points[id].x;
77
+ y += sk.points[id].y;
78
+ }
79
+ return { x: x / seen.size, y: y / seen.size };
80
+ }
81
+ /** The side of a straight line on the right of walking it as `s` does (+1 the left of its A → B, −1 the right). */
82
+ const rightOf = (sk, s) => (s.from === sk.lines[s.id]?.a ? -1 : 1);
83
+ /**
84
+ * The next line clockwise from line or arc `id`, round the shape it's part of; null when there's none (a lone line, a
85
+ * run's end, a circle). `side`: a wall's edge it was measured on (+1 the left of its A → B): the edge of the next wall on
86
+ * the same side of the shape (the inside stays the inside) comes back with it. A line between two rooms goes round the
87
+ * one that edge faces, or the smaller one.
88
+ */
89
+ export function nextClockwise(sk, id, side) {
90
+ const e = sk.lines[id] ?? sk.arcs[id];
91
+ if (!e || e.constr || e.a === e.b)
92
+ return null;
93
+ const at = ends(sk);
94
+ const fwd = { id, from: e.a, to: e.b }, rev = { id, from: e.b, to: e.a };
95
+ const wf = walk(sk, at, fwd), wr = walk(sk, at, rev);
96
+ const room = (s, w) => w.closed && area(sk, s, w.steps) < 0;
97
+ const inF = room(fwd, wf), inR = room(rev, wr);
98
+ let start, w;
99
+ if (inF && inR) {
100
+ // between two rooms: the one the edge faces (on the walk's right), or the smaller
101
+ const pickF = side && sk.lines[id] ? rightOf(sk, fwd) === side : Math.abs(area(sk, fwd, wf.steps)) <= Math.abs(area(sk, rev, wr.steps));
102
+ [start, w] = pickF ? [fwd, wf] : [rev, wr];
103
+ }
104
+ else if (inF || inR) {
105
+ [start, w] = inF ? [fwd, wf] : [rev, wr];
106
+ }
107
+ else {
108
+ // a run that doesn't close: clockwise round its middle (the middle on the right of the way it's walked)
109
+ const m = middle(sk, at, e.a), a = sk.points[e.a], b = sk.points[e.b];
110
+ const leftOfAB = (b.x - a.x) * (m.y - a.y) - (b.y - a.y) * (m.x - a.x) >= 0;
111
+ [start, w] = leftOfAB ? [rev, wr] : [fwd, wf];
112
+ }
113
+ const next = w.steps.find(s => s.id !== id && sk.lines[s.id]);
114
+ if (!next)
115
+ return null;
116
+ if (!side || !sk.lines[id])
117
+ return { id: next.id };
118
+ // the measured edge's side of the shape (on the walk's right, or its left), kept on the next line
119
+ const sameRight = rightOf(sk, start) === side;
120
+ const r = rightOf(sk, next);
121
+ return { id: next.id, side: sameRight ? r : -r };
122
+ }
123
+ //# sourceMappingURL=clockwise.js.map