@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.
- package/dist/app/state.d.ts +3 -3
- package/dist/editor/actions.js +112 -18
- package/dist/editor/actions.js.map +1 -1
- package/dist/editor/keys.js +2 -1
- package/dist/editor/keys.js.map +1 -1
- package/dist/editor/laser.d.ts +4 -2
- package/dist/editor/laser.js +4 -2
- package/dist/editor/laser.js.map +1 -1
- package/dist/editor/linkActions.d.ts +29 -11
- package/dist/editor/linkActions.js +76 -29
- package/dist/editor/linkActions.js.map +1 -1
- package/dist/editor/links.d.ts +13 -0
- package/dist/editor/links.js +7 -1
- package/dist/editor/links.js.map +1 -1
- package/dist/editor/mode.d.ts +2 -1
- package/dist/editor/mode.js +7 -5
- package/dist/editor/mode.js.map +1 -1
- package/dist/editor/selection.js +1 -1
- package/dist/editor/selection.js.map +1 -1
- package/dist/editor/tooltips.js +1 -0
- package/dist/editor/tooltips.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/model/constraints.js +2 -0
- package/dist/model/constraints.js.map +1 -1
- package/dist/model/geom.d.ts +2 -0
- package/dist/model/geom.js +11 -0
- package/dist/model/geom.js.map +1 -1
- package/dist/model/links.d.ts +6 -1
- package/dist/model/links.js +6 -1
- package/dist/model/links.js.map +1 -1
- package/dist/model/scale.js +3 -0
- package/dist/model/scale.js.map +1 -1
- package/dist/model/sketch.d.ts +5 -1
- package/dist/model/sketch.js +19 -18
- package/dist/model/sketch.js.map +1 -1
- package/dist/model/trim.d.ts +54 -0
- package/dist/model/trim.js +219 -0
- package/dist/model/trim.js.map +1 -0
- package/dist/model/types.d.ts +24 -2
- package/dist/react/BottomBar.js +53 -24
- package/dist/react/BottomBar.js.map +1 -1
- package/dist/react/CadEditor.js +18 -9
- package/dist/react/CadEditor.js.map +1 -1
- package/dist/react/Drawer.js +3 -2
- package/dist/react/Drawer.js.map +1 -1
- package/dist/react/PlanCanvas.web.js +17 -5
- package/dist/react/PlanCanvas.web.js.map +1 -1
- package/dist/react/ShapeMenu.js +3 -2
- package/dist/react/ShapeMenu.js.map +1 -1
- package/dist/react/ToolTip.js +3 -2
- package/dist/react/ToolTip.js.map +1 -1
- package/dist/react/TopBar.js +4 -3
- package/dist/react/TopBar.js.map +1 -1
- package/dist/react/editorBox.d.ts +8 -0
- package/dist/react/editorBox.js +10 -0
- package/dist/react/editorBox.js.map +1 -0
- package/dist/react/host.d.ts +1 -1
- package/dist/react/host.js +1 -1
- package/dist/react/host.js.map +1 -1
- package/dist/react/pageLock.native.d.ts +2 -0
- package/dist/react/pageLock.native.js +2 -0
- package/dist/react/pageLock.native.js.map +1 -1
- package/dist/react/pageLock.web.d.ts +6 -0
- package/dist/react/pageLock.web.js +12 -3
- package/dist/react/pageLock.web.js.map +1 -1
- package/dist/react/ports.js +8 -3
- package/dist/react/ports.js.map +1 -1
- package/dist/react/saving.d.ts +7 -1
- package/dist/react/saving.js +10 -2
- package/dist/react/saving.js.map +1 -1
- package/dist/react/store.d.ts +5 -2
- package/dist/react/store.js +4 -1
- package/dist/react/store.js.map +1 -1
- package/dist/render/draw.js +24 -7
- package/dist/render/draw.js.map +1 -1
- package/dist/render/linkTile.js +2 -2
- package/dist/render/linkTile.js.map +1 -1
- package/dist/render/snap.d.ts +5 -0
- package/dist/render/snap.js +84 -14
- package/dist/render/snap.js.map +1 -1
- package/dist/render/view.js +7 -2
- package/dist/render/view.js.map +1 -1
- package/dist/solver/equations.js +30 -16
- package/dist/solver/equations.js.map +1 -1
- package/dist/tools/modify.d.ts +32 -4
- package/dist/tools/modify.js +247 -97
- package/dist/tools/modify.js.map +1 -1
- package/dist/tools/registry.d.ts +2 -0
- package/dist/tools/registry.js +8 -0
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/select.d.ts +11 -8
- package/dist/tools/select.js +51 -19
- package/dist/tools/select.js.map +1 -1
- package/package.json +1 -1
- package/src/app/state.ts +3 -3
- package/src/editor/actions.ts +92 -15
- package/src/editor/keys.ts +2 -1
- package/src/editor/laser.ts +7 -4
- package/src/editor/linkActions.ts +87 -26
- package/src/editor/links.ts +17 -1
- package/src/editor/mode.ts +7 -5
- package/src/editor/selection.ts +1 -1
- package/src/editor/tooltips.ts +1 -0
- package/src/index.ts +1 -0
- package/src/model/constraints.ts +1 -0
- package/src/model/geom.ts +10 -0
- package/src/model/links.ts +6 -1
- package/src/model/scale.ts +2 -0
- package/src/model/sketch.ts +14 -7
- package/src/model/trim.ts +188 -0
- package/src/model/types.ts +19 -2
- package/src/react/BottomBar.tsx +64 -24
- package/src/react/CadEditor.tsx +19 -9
- package/src/react/Drawer.tsx +3 -2
- package/src/react/PlanCanvas.web.tsx +17 -5
- package/src/react/ShapeMenu.tsx +3 -2
- package/src/react/ToolTip.tsx +3 -2
- package/src/react/TopBar.tsx +4 -3
- package/src/react/editorBox.ts +20 -0
- package/src/react/host.ts +1 -1
- package/src/react/pageLock.native.ts +2 -0
- package/src/react/pageLock.web.ts +12 -3
- package/src/react/ports.ts +7 -2
- package/src/react/saving.ts +10 -2
- package/src/react/store.ts +5 -2
- package/src/render/draw.ts +18 -7
- package/src/render/linkTile.ts +2 -2
- package/src/render/snap.ts +80 -15
- package/src/render/view.ts +6 -2
- package/src/solver/equations.ts +30 -16
- package/src/tools/modify.ts +205 -69
- package/src/tools/registry.ts +8 -0
- package/src/tools/select.ts +47 -20
- package/dist/react/LaserTray.d.ts +0 -4
- package/dist/react/LaserTray.js +0 -26
- package/dist/react/LaserTray.js.map +0 -1
- 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
|
-
|
|
37
|
-
const
|
|
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,
|
|
1
|
+
{"version":3,"file":"pageLock.web.js","sourceRoot":"","sources":["../../src/react/pageLock.web.ts"],"names":[],"mappings":"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"}
|
package/dist/react/ports.js
CHANGED
|
@@ -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
|
|
120
|
-
|
|
121
|
-
|
|
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();
|
package/dist/react/ports.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/react/ports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE3H,OAAO,EAAE,UAAU,EAA0B,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/react/ports.ts"],"names":[],"mappings":"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"}
|
package/dist/react/saving.d.ts
CHANGED
|
@@ -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
|
-
/**
|
|
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;
|
package/dist/react/saving.js
CHANGED
|
@@ -20,10 +20,18 @@ function setState(s) {
|
|
|
20
20
|
sv.listener?.(s);
|
|
21
21
|
notify();
|
|
22
22
|
}
|
|
23
|
-
/**
|
|
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
|
-
|
|
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 });
|
package/dist/react/saving.js.map
CHANGED
|
@@ -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
|
|
1
|
+
{"version":3,"file":"saving.js","sourceRoot":"","sources":["../../src/react/saving.ts"],"names":[],"mappings":"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"}
|
package/dist/react/store.d.ts
CHANGED
|
@@ -47,8 +47,11 @@ export declare const ui: {
|
|
|
47
47
|
text: string;
|
|
48
48
|
seq: number;
|
|
49
49
|
} | null;
|
|
50
|
-
/**
|
|
51
|
-
|
|
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>;
|
package/dist/react/store.js
CHANGED
|
@@ -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
|
-
/**
|
|
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 */
|
package/dist/react/store.js.map
CHANGED
|
@@ -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
|
|
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"}
|
package/dist/render/draw.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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);
|