@reekon-tools/boldr-cad 1.5.0 → 1.6.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 (139) hide show
  1. package/dist/app/state.d.ts +3 -3
  2. package/dist/editor/actions.js +112 -18
  3. package/dist/editor/actions.js.map +1 -1
  4. package/dist/editor/keys.js +2 -1
  5. package/dist/editor/keys.js.map +1 -1
  6. package/dist/editor/laser.d.ts +4 -2
  7. package/dist/editor/laser.js +4 -2
  8. package/dist/editor/laser.js.map +1 -1
  9. package/dist/editor/linkActions.d.ts +29 -11
  10. package/dist/editor/linkActions.js +76 -29
  11. package/dist/editor/linkActions.js.map +1 -1
  12. package/dist/editor/links.d.ts +13 -0
  13. package/dist/editor/links.js +7 -1
  14. package/dist/editor/links.js.map +1 -1
  15. package/dist/editor/mode.d.ts +2 -1
  16. package/dist/editor/mode.js +7 -5
  17. package/dist/editor/mode.js.map +1 -1
  18. package/dist/editor/selection.js +1 -1
  19. package/dist/editor/selection.js.map +1 -1
  20. package/dist/editor/tooltips.js +1 -0
  21. package/dist/editor/tooltips.js.map +1 -1
  22. package/dist/index.d.ts +1 -0
  23. package/dist/index.js +1 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/model/constraints.js +2 -0
  26. package/dist/model/constraints.js.map +1 -1
  27. package/dist/model/geom.d.ts +2 -0
  28. package/dist/model/geom.js +11 -0
  29. package/dist/model/geom.js.map +1 -1
  30. package/dist/model/links.d.ts +6 -1
  31. package/dist/model/links.js +6 -1
  32. package/dist/model/links.js.map +1 -1
  33. package/dist/model/scale.js +3 -0
  34. package/dist/model/scale.js.map +1 -1
  35. package/dist/model/sketch.d.ts +5 -1
  36. package/dist/model/sketch.js +19 -18
  37. package/dist/model/sketch.js.map +1 -1
  38. package/dist/model/trim.d.ts +54 -0
  39. package/dist/model/trim.js +219 -0
  40. package/dist/model/trim.js.map +1 -0
  41. package/dist/model/types.d.ts +24 -2
  42. package/dist/react/BottomBar.js +53 -24
  43. package/dist/react/BottomBar.js.map +1 -1
  44. package/dist/react/CadEditor.js +18 -9
  45. package/dist/react/CadEditor.js.map +1 -1
  46. package/dist/react/Drawer.js +3 -2
  47. package/dist/react/Drawer.js.map +1 -1
  48. package/dist/react/PlanCanvas.web.js +17 -5
  49. package/dist/react/PlanCanvas.web.js.map +1 -1
  50. package/dist/react/ShapeMenu.js +3 -2
  51. package/dist/react/ShapeMenu.js.map +1 -1
  52. package/dist/react/ToolTip.js +3 -2
  53. package/dist/react/ToolTip.js.map +1 -1
  54. package/dist/react/TopBar.js +4 -3
  55. package/dist/react/TopBar.js.map +1 -1
  56. package/dist/react/editorBox.d.ts +8 -0
  57. package/dist/react/editorBox.js +10 -0
  58. package/dist/react/editorBox.js.map +1 -0
  59. package/dist/react/host.d.ts +1 -1
  60. package/dist/react/host.js +1 -1
  61. package/dist/react/host.js.map +1 -1
  62. package/dist/react/pageLock.native.d.ts +2 -0
  63. package/dist/react/pageLock.native.js +2 -0
  64. package/dist/react/pageLock.native.js.map +1 -1
  65. package/dist/react/pageLock.web.d.ts +6 -0
  66. package/dist/react/pageLock.web.js +12 -3
  67. package/dist/react/pageLock.web.js.map +1 -1
  68. package/dist/react/ports.js +8 -3
  69. package/dist/react/ports.js.map +1 -1
  70. package/dist/react/saving.d.ts +7 -1
  71. package/dist/react/saving.js +10 -2
  72. package/dist/react/saving.js.map +1 -1
  73. package/dist/react/store.d.ts +5 -2
  74. package/dist/react/store.js +4 -1
  75. package/dist/react/store.js.map +1 -1
  76. package/dist/render/draw.js +24 -7
  77. package/dist/render/draw.js.map +1 -1
  78. package/dist/render/linkTile.js +2 -2
  79. package/dist/render/linkTile.js.map +1 -1
  80. package/dist/render/snap.d.ts +5 -0
  81. package/dist/render/snap.js +84 -14
  82. package/dist/render/snap.js.map +1 -1
  83. package/dist/render/view.js +7 -2
  84. package/dist/render/view.js.map +1 -1
  85. package/dist/solver/equations.js +30 -16
  86. package/dist/solver/equations.js.map +1 -1
  87. package/dist/tools/modify.d.ts +32 -4
  88. package/dist/tools/modify.js +247 -97
  89. package/dist/tools/modify.js.map +1 -1
  90. package/dist/tools/registry.d.ts +2 -0
  91. package/dist/tools/registry.js +8 -0
  92. package/dist/tools/registry.js.map +1 -1
  93. package/dist/tools/select.d.ts +11 -8
  94. package/dist/tools/select.js +51 -19
  95. package/dist/tools/select.js.map +1 -1
  96. package/package.json +1 -1
  97. package/src/app/state.ts +3 -3
  98. package/src/editor/actions.ts +92 -15
  99. package/src/editor/keys.ts +2 -1
  100. package/src/editor/laser.ts +7 -4
  101. package/src/editor/linkActions.ts +87 -26
  102. package/src/editor/links.ts +17 -1
  103. package/src/editor/mode.ts +7 -5
  104. package/src/editor/selection.ts +1 -1
  105. package/src/editor/tooltips.ts +1 -0
  106. package/src/index.ts +1 -0
  107. package/src/model/constraints.ts +1 -0
  108. package/src/model/geom.ts +10 -0
  109. package/src/model/links.ts +6 -1
  110. package/src/model/scale.ts +2 -0
  111. package/src/model/sketch.ts +14 -7
  112. package/src/model/trim.ts +188 -0
  113. package/src/model/types.ts +19 -2
  114. package/src/react/BottomBar.tsx +64 -24
  115. package/src/react/CadEditor.tsx +19 -9
  116. package/src/react/Drawer.tsx +3 -2
  117. package/src/react/PlanCanvas.web.tsx +17 -5
  118. package/src/react/ShapeMenu.tsx +3 -2
  119. package/src/react/ToolTip.tsx +3 -2
  120. package/src/react/TopBar.tsx +4 -3
  121. package/src/react/editorBox.ts +20 -0
  122. package/src/react/host.ts +1 -1
  123. package/src/react/pageLock.native.ts +2 -0
  124. package/src/react/pageLock.web.ts +12 -3
  125. package/src/react/ports.ts +7 -2
  126. package/src/react/saving.ts +10 -2
  127. package/src/react/store.ts +5 -2
  128. package/src/render/draw.ts +18 -7
  129. package/src/render/linkTile.ts +2 -2
  130. package/src/render/snap.ts +80 -15
  131. package/src/render/view.ts +6 -2
  132. package/src/solver/equations.ts +30 -16
  133. package/src/tools/modify.ts +205 -69
  134. package/src/tools/registry.ts +8 -0
  135. package/src/tools/select.ts +47 -20
  136. package/dist/react/LaserTray.d.ts +0 -4
  137. package/dist/react/LaserTray.js +0 -26
  138. package/dist/react/LaserTray.js.map +0 -1
  139. package/src/react/LaserTray.tsx +0 -42
@@ -13,6 +13,12 @@ html.cad-locked, html.cad-locked body { overflow: hidden; overscroll-behavior: n
13
13
  `;
14
14
  const LOCKED_VIEWPORT = 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover';
15
15
  export const PAGE_LOCK_ROOT = ROOT;
16
+ /**
17
+ * Put on a host's pane beside the editor (a split view). What starts in it is its own: the lock leaves its pinches and
18
+ * two-finger moves alone, and a key pressed with nothing focused after a press in it isn't the editor's (see
19
+ * PlanCanvas.web.tsx).
20
+ */
21
+ export const BESIDE = 'data-cad-beside';
16
22
  export function usePageLock() {
17
23
  useEffect(() => {
18
24
  if (typeof document === 'undefined')
@@ -32,9 +38,12 @@ export function usePageLock() {
32
38
  }
33
39
  const before = meta.content;
34
40
  meta.content = LOCKED_VIEWPORT;
35
- // Safari's pinch zoom (it ignores user-scalable=no): its gesture events, and two-finger touch moves
36
- const stop = (e) => e.preventDefault();
37
- const pinch = (e) => { if (e.touches.length > 1)
41
+ // Safari's pinch zoom (it ignores user-scalable=no): its gesture events, and two-finger touch moves — except in a
42
+ // host's pane beside the editor, which handles its own (BESIDE)
43
+ const own = (e) => e.target instanceof Element && !!e.target.closest(`[${BESIDE}]`);
44
+ const stop = (e) => { if (!own(e))
45
+ e.preventDefault(); };
46
+ const pinch = (e) => { if (e.touches.length > 1 && !own(e))
38
47
  e.preventDefault(); };
39
48
  const opts = { passive: false };
40
49
  const gestures = ['gesturestart', 'gesturechange', 'gestureend'];
@@ -1 +1 @@
1
- {"version":3,"file":"pageLock.web.js","sourceRoot":"","sources":["../../src/react/pageLock.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC;;;;;EAKE;AAEF,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,GAAG,GAAG;;GAET,IAAI;GACJ,IAAI,MAAM,IAAI;CAChB,CAAC;AACF,MAAM,eAAe,GAAG,4FAA4F,CAAC;AAErH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AAEnC,MAAM,UAAU,WAAW;IACzB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO;QAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC;QACtC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACjC,4GAA4G;QAC5G,IAAI,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAkB,uBAAuB,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAAC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAC9G,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC;QAC/B,oGAAoG;QACpG,MAAM,IAAI,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,CAAC,CAAa,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,IAAI,GAA4B,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,CAAC,cAAc,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;QACjE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAChE,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACnE,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACvD,IAAI,KAAK;gBAAE,IAAK,CAAC,MAAM,EAAE,CAAC;;gBAAM,IAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YACvD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACpC,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"pageLock.web.js","sourceRoot":"","sources":["../../src/react/pageLock.web.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import { manualSave, noteEdits, saveDrawing } from './saving';
9
9
  import { requestDraw, requestOverlayDraw } from '../render/view';
10
10
  import { notify, ui } from './store';
11
11
  import { setInteracting } from './Duck';
12
+ import { PAGE_LOCK_ROOT } from './pageLock';
12
13
  /* The editor's ports for the React Native interface: each request updates the interface's state and re-renders. */
13
14
  let toastTimer, toastId = 0;
14
15
  onSessionReset(() => clearTimeout(toastTimer));
@@ -116,9 +117,13 @@ export const reactPorts = {
116
117
  requestDraw();
117
118
  return;
118
119
  }
119
- // the keypad has no text field: let typed keys reach the editor, not the button that opened it (Enter would press it again)
120
- if (typeof document !== 'undefined')
121
- document.activeElement?.blur?.();
120
+ // the keypad has no text field: let typed keys reach the editor, not the button that opened it (Enter would press it
121
+ // again). Only a button of the editor's: focus elsewhere on the page (a pane beside it) stays where it is.
122
+ if (typeof document !== 'undefined') {
123
+ const a = document.activeElement;
124
+ if (a?.closest?.('#' + PAGE_LOCK_ROOT))
125
+ a.blur?.();
126
+ }
122
127
  keypadStart(spec);
123
128
  ui.keypad = true;
124
129
  sheetOpened();
@@ -1 +1 @@
1
- {"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/react/ports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/react/ports.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,14 @@ import type { CadSync } from '../data/sync';
2
2
  export type CadSaveState = 'saved' | 'dirty' | 'saving' | 'error';
3
3
  export declare const manualSave: () => boolean;
4
4
  export declare const saveState: () => CadSaveState;
5
- /** Start manual saving for the drawing open in `sync`; `listener` hears each change of state. */
5
+ /**
6
+ * Start manual saving for the drawing open in `sync`; `listener` hears each change of state, and the first, 'saved',
7
+ * once the editor has mounted (announceSaveState). This runs as the editor first renders, and a host keeps the state in
8
+ * its own: React won't have one component set another's state while it renders.
9
+ */
6
10
  export declare function startManualSave(sync: CadSync, listener: ((s: CadSaveState) => void) | null): void;
11
+ /** Tell the host the state as it is now (the editor, once it has mounted). */
12
+ export declare function announceSaveState(): void;
7
13
  export declare function stopManualSave(): void;
8
14
  /** An edit was made: unsaved from now on (cheap, so it runs with every refresh of the editor). */
9
15
  export declare function noteEdits(): void;
@@ -20,10 +20,18 @@ function setState(s) {
20
20
  sv.listener?.(s);
21
21
  notify();
22
22
  }
23
- /** Start manual saving for the drawing open in `sync`; `listener` hears each change of state. */
23
+ /**
24
+ * Start manual saving for the drawing open in `sync`; `listener` hears each change of state, and the first, 'saved',
25
+ * once the editor has mounted (announceSaveState). This runs as the editor first renders, and a host keeps the state in
26
+ * its own: React won't have one component set another's state while it renders.
27
+ */
24
28
  export function startManualSave(sync, listener) {
25
29
  Object.assign(sv, { manual: true, state: 'saved', cleanSeq: ed.editSeq, sync, listener });
26
- listener?.('saved');
30
+ }
31
+ /** Tell the host the state as it is now (the editor, once it has mounted). */
32
+ export function announceSaveState() {
33
+ if (sv.manual)
34
+ sv.listener?.(sv.state);
27
35
  }
28
36
  export function stopManualSave() {
29
37
  Object.assign(sv, { manual: false, sync: null, listener: null });
@@ -1 +1 @@
1
- {"version":3,"file":"saving.js","sourceRoot":"","sources":["../../src/react/saving.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAU9C,MAAM,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,OAAuB;IAC9B,gEAAgE;IAChE,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,IAAsB;IAC5B,QAAQ,EAAE,IAA0C;CACrD,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,UAAU,GAAG,GAAY,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC;AACnD,MAAM,CAAC,MAAM,SAAS,GAAG,GAAiB,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;AAEtD,SAAS,QAAQ,CAAC,CAAe;IAC/B,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC;QAAE,OAAO;IAC3B,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;IACb,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IACjB,MAAM,EAAE,CAAC;AACX,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,eAAe,CAAC,IAAa,EAAE,QAA4C;IACzF,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1F,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,SAAS;IACvB,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,QAAQ,IAAI,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,QAAQ;QAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC1F,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO;IAC5D,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;SACvC,CAAC;QAAC,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC;QAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;AACvD,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,iBAAiB;IAC/B,YAAY,EAAE,CAAC;IACf,OAAO,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,OAAO,CAAC;AAC3C,CAAC;AAED,mHAAmH;AACnH,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACvD,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,KAAK;QAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAClB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,oDAAoD;IACvE,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;IACpE,uCAAuC;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"saving.js","sourceRoot":"","sources":["../../src/react/saving.ts"],"names":[],"mappings":"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"}
@@ -47,8 +47,11 @@ export declare const ui: {
47
47
  text: string;
48
48
  seq: number;
49
49
  } | null;
50
- /** the slider open above the bar: the selected image's opacity, or how far it's turned; or the link tiles' size */
51
- imgPop: null | 'opacity' | 'rotate' | 'tilesize';
50
+ /**
51
+ * what's open above the bar: the selected image's opacity or turn, or the link tiles' size (sliders), or Open's
52
+ * question (here, or side by side)
53
+ */
54
+ imgPop: null | 'opacity' | 'rotate' | 'tilesize' | 'open';
52
55
  /** the tool each shared place on the rail draws with (the last picked; editor/mode.ts TOOL_GROUPS), and the menu of
53
56
  a group's tools, open beside its place at x, y */
54
57
  picked: Record<string, string>;
@@ -44,7 +44,10 @@ export const ui = sessionState(() => ({
44
44
  palette: false,
45
45
  /** what the tool just picked from the rail does (a note under the tabs that goes by itself); seq tells one pick from the next */
46
46
  toolTip: null,
47
- /** the slider open above the bar: the selected image's opacity, or how far it's turned; or the link tiles' size */
47
+ /**
48
+ * what's open above the bar: the selected image's opacity or turn, or the link tiles' size (sliders), or Open's
49
+ * question (here, or side by side)
50
+ */
48
51
  imgPop: null,
49
52
  /** the tool each shared place on the rail draws with (the last picked; editor/mode.ts TOOL_GROUPS), and the menu of
50
53
  a group's tools, open beside its place at x, y */
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/react/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;;EAGE;AAEF,IAAI,OAAO,GAAG,CAAC,CAAC;AAChB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;AAExC,2FAA2F;AAC3F,MAAM,UAAU,MAAM;IACpB,OAAO,EAAE,CAAC;IACV,KAAK,MAAM,CAAC,IAAI,SAAS;QAAE,CAAC,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,CAAa,EAAE,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;AAEjC,4DAA4D;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAW,EAAE,CAAC,oBAAoB,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAEtG,oGAAoG;AACpG,MAAM,CAAC,MAAM,aAAa,GAAG,GAAW,EAAE,CAAC,OAAO,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,GAAiB;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;IACrB,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IACpD,OAAO,oBAAoB,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC;AAKD,MAAM,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;IACpC,KAAK,EAAE,IAAyB;IAChC,0EAA0E;IAC1E,MAAM,EAAE,KAAK;IACb,gEAAgE;IAChE,QAAQ,EAAE,IAA4E;IACtF,+CAA+C;IAC/C,MAAM,EAAE,IAAwB;IAChC,8DAA8D;IAC9D,UAAU,EAAE,IAAqB;IACjC,IAAI,EAAE,IAA6B;IACnC,OAAO,EAAE,KAAK;IACd,iIAAiI;IACjI,OAAO,EAAE,IAA4C;IACrD,mHAAmH;IACnH,MAAM,EAAE,IAAgD;IACxD;yDACqD;IACrD,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAA4B;IACpE,SAAS,EAAE,IAAsD;IACjE,uFAAuF;IACvF,IAAI,EAAE,KAAkC;IACxC,+FAA+F;IAC/F,aAAa,EAAE,CAAC;IAChB;;;OAGG;IACH,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;IAC9C,8GAA8G;IAC9G,OAAO,EAAE,KAAK;CACf,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/react/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;;EAGE;AAEF,IAAI,OAAO,GAAG,CAAC,CAAC;AAChB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;AAExC,2FAA2F;AAC3F,MAAM,UAAU,MAAM;IACpB,OAAO,EAAE,CAAC;IACV,KAAK,MAAM,CAAC,IAAI,SAAS;QAAE,CAAC,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,CAAa,EAAE,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;AAEjC,4DAA4D;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAW,EAAE,CAAC,oBAAoB,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAEtG,oGAAoG;AACpG,MAAM,CAAC,MAAM,aAAa,GAAG,GAAW,EAAE,CAAC,OAAO,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,GAAiB;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;IACrB,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IACpD,OAAO,oBAAoB,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC;AAKD,MAAM,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;IACpC,KAAK,EAAE,IAAyB;IAChC,0EAA0E;IAC1E,MAAM,EAAE,KAAK;IACb,gEAAgE;IAChE,QAAQ,EAAE,IAA4E;IACtF,+CAA+C;IAC/C,MAAM,EAAE,IAAwB;IAChC,8DAA8D;IAC9D,UAAU,EAAE,IAAqB;IACjC,IAAI,EAAE,IAA6B;IACnC,OAAO,EAAE,KAAK;IACd,iIAAiI;IACjI,OAAO,EAAE,IAA4C;IACrD;;;OAGG;IACH,MAAM,EAAE,IAAyD;IACjE;yDACqD;IACrD,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAA4B;IACpE,SAAS,EAAE,IAAsD;IACjE,uFAAuF;IACvF,IAAI,EAAE,KAAkC;IACxC,+FAA+F;IAC/F,aAAa,EAAE,CAAC;IAChB;;;OAGG;IACH,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;IAC9C,8GAA8G;IAC9G,OAAO,EAAE,KAAK;CACf,CAAC,CAAC,CAAC"}
@@ -141,8 +141,17 @@ function drawUnderlay(c, T) {
141
141
  c.translate(x, y);
142
142
  if (u.rot)
143
143
  c.rotate((u.rot * Math.PI) / 180);
144
- if (ready)
145
- c.drawImage(im, -w / 2, -hh / 2, w, hh);
144
+ if (ready) {
145
+ // cropped: the picture whole, past the part that shows, clipped to it
146
+ const k = u.crop;
147
+ if (k) {
148
+ c.beginPath();
149
+ c.rect(-w / 2, -hh / 2, w, hh);
150
+ c.clip();
151
+ }
152
+ const fw = k ? w / (1 - k.l - k.r) : w, fh = k ? hh / (1 - k.t - k.b) : hh;
153
+ c.drawImage(im, -w / 2 - (k ? k.l * fw : 0), -hh / 2 - (k ? k.t * fh : 0), fw, fh);
154
+ }
146
155
  else {
147
156
  c.fillStyle = '#2B2C2E';
148
157
  c.fillRect(-w / 2, -hh / 2, w, hh);
@@ -160,12 +169,17 @@ function drawUnderlay(c, T) {
160
169
  /**
161
170
  * Each expanded photo's badge: its link icon in a white disc in its top-right corner (imageLinkBadge), over the drawing
162
171
  * — always, as Skia's, selected or not, locked or not: it says the photo is the job's, and a tap on it opens it.
172
+ * `selected`: the selected photos' badges, drawn with their outlines and handles (paintOverlay), or the rest, with the
173
+ * drawing. A device keeps the drawing as a picture while a photo is moved, sized, cropped or turned, and draws only
174
+ * the photos and the moving parts again: a badge kept with the drawing stayed where the photo had been.
163
175
  */
164
- function drawImageLinks(c, T) {
176
+ function drawImageLinks(c, T, selected) {
165
177
  if (!settings.layers.underlay)
166
178
  return;
167
179
  const { W, H } = cvs;
168
180
  for (const u of page().underlays) {
181
+ if (isSel('underlay', u.id) !== selected)
182
+ continue;
169
183
  const b = imageLinkBadge(T, u);
170
184
  if (!b || b.x < -b.r || b.y < -b.r || b.x > W + b.r || b.y > H + b.r)
171
185
  continue;
@@ -1540,7 +1554,7 @@ function drawSnap(c, T) {
1540
1554
  if (s.kind !== 'free' && s.kind !== 'grid') {
1541
1555
  c.lineWidth = 2;
1542
1556
  c.beginPath();
1543
- if (s.kind === 'point')
1557
+ if (s.kind === 'point' || s.kind === 'facecorner')
1544
1558
  c.arc(x, y, 8, 0, Math.PI * 2);
1545
1559
  else if (s.kind === 'mid') {
1546
1560
  c.moveTo(x, y - 8);
@@ -1677,8 +1691,8 @@ function paintPlanView(ctx, sk, m, under = true) {
1677
1691
  drawOpeningAnchors(ctx, T, sk);
1678
1692
  drawDims(ctx, T, sk);
1679
1693
  drawOpeningDims(ctx, T, sk);
1680
- // (an expanded photo's badge over the drawing, under the markup: as it's tapped)
1681
- drawImageLinks(ctx, T);
1694
+ // (an expanded photo's badge over the drawing, under the markup: as it's tapped. A selected one's: paintOverlay)
1695
+ drawImageLinks(ctx, T, false);
1682
1696
  drawNotes(ctx, T, sk);
1683
1697
  drawNoteSelection(ctx, T);
1684
1698
  }
@@ -1736,7 +1750,10 @@ function drawSurveyCursor(ctx, T) {
1736
1750
  }
1737
1751
  function paintOverlay(ctx, W, H, fixed = ctx) {
1738
1752
  const T = mainT();
1739
- // a selected image's outline and handles: with the moving parts, as it's turned, moved or sized (over the drawing)
1753
+ // a selected image's badge, outline and handles: with the moving parts, as it's turned, moved or sized (over the
1754
+ // drawing; the badge under the handles, as it was under them kept with the drawing). The wall view has no photos.
1755
+ if (!(elevOpen() && elev.frame))
1756
+ drawImageLinks(ctx, T, true);
1740
1757
  drawUnderlaySelection(ctx, T);
1741
1758
  if (ed.preview)
1742
1759
  ed.preview(ctx, T);