@reekon-tools/boldr-cad 1.6.0 → 1.8.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/README.md +12 -1
- package/dist/data/provider.d.ts +2 -1
- package/dist/data/sync.js +4 -1
- package/dist/data/sync.js.map +1 -1
- package/dist/editor/actions.js +26 -2
- package/dist/editor/actions.js.map +1 -1
- package/dist/editor/advance.d.ts +2 -0
- package/dist/editor/advance.js +23 -0
- package/dist/editor/advance.js.map +1 -0
- package/dist/editor/dimSize.d.ts +13 -0
- package/dist/editor/dimSize.js +50 -0
- package/dist/editor/dimSize.js.map +1 -0
- package/dist/editor/gestures.js +30 -7
- package/dist/editor/gestures.js.map +1 -1
- package/dist/editor/keypad.d.ts +8 -0
- package/dist/editor/keypad.js +15 -1
- package/dist/editor/keypad.js.map +1 -1
- package/dist/editor/laser.d.ts +9 -0
- package/dist/editor/laser.js +38 -12
- package/dist/editor/laser.js.map +1 -1
- package/dist/editor/linkActions.d.ts +5 -1
- package/dist/editor/linkActions.js +27 -5
- package/dist/editor/linkActions.js.map +1 -1
- package/dist/editor/ports.d.ts +9 -0
- package/dist/editor/ports.js +2 -0
- package/dist/editor/ports.js.map +1 -1
- package/dist/editor/refDim.d.ts +17 -0
- package/dist/editor/refDim.js +62 -0
- package/dist/editor/refDim.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/model/clockwise.d.ts +11 -0
- package/dist/model/clockwise.js +123 -0
- package/dist/model/clockwise.js.map +1 -0
- package/dist/model/settings.d.ts +2 -0
- package/dist/model/settings.js +1 -1
- package/dist/model/settings.js.map +1 -1
- package/dist/model/types.d.ts +5 -0
- package/dist/react/BottomBar.js +43 -3
- package/dist/react/BottomBar.js.map +1 -1
- package/dist/react/PlanCanvas.native.js +15 -9
- package/dist/react/PlanCanvas.native.js.map +1 -1
- package/dist/react/host.d.ts +6 -0
- package/dist/react/host.js +11 -1
- package/dist/react/host.js.map +1 -1
- package/dist/react/ports.js +2 -1
- package/dist/react/ports.js.map +1 -1
- package/dist/react/store.d.ts +1 -1
- package/dist/react/store.js.map +1 -1
- package/dist/render/draw.d.ts +8 -0
- package/dist/render/draw.js +164 -92
- package/dist/render/draw.js.map +1 -1
- package/dist/render/navigate.d.ts +11 -6
- package/dist/render/navigate.js +34 -20
- package/dist/render/navigate.js.map +1 -1
- package/dist/tools/dim.d.ts +15 -0
- package/dist/tools/dim.js +171 -45
- package/dist/tools/dim.js.map +1 -1
- package/dist/tools/line.js +5 -0
- package/dist/tools/line.js.map +1 -1
- package/package.json +1 -1
- package/src/data/provider.ts +2 -2
- package/src/data/sync.ts +4 -1
- package/src/editor/actions.ts +20 -2
- package/src/editor/advance.ts +23 -0
- package/src/editor/dimSize.ts +53 -0
- package/src/editor/gestures.ts +31 -9
- package/src/editor/keypad.ts +17 -1
- package/src/editor/laser.ts +38 -10
- package/src/editor/linkActions.ts +25 -6
- package/src/editor/ports.ts +10 -0
- package/src/editor/refDim.ts +61 -0
- package/src/index.ts +1 -2
- package/src/model/clockwise.ts +121 -0
- package/src/model/settings.ts +3 -1
- package/src/model/types.ts +5 -0
- package/src/react/BottomBar.tsx +46 -2
- package/src/react/PlanCanvas.native.tsx +25 -12
- package/src/react/host.ts +11 -1
- package/src/react/ports.ts +3 -2
- package/src/react/store.ts +1 -1
- package/src/render/draw.ts +131 -71
- package/src/render/navigate.ts +31 -20
- package/src/tools/dim.ts +168 -35
- package/src/tools/line.ts +4 -0
- package/src/ui/domPorts.ts +2 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Constraint } from '../model/types';
|
|
2
|
+
/**
|
|
3
|
+
* What the grey number is for: the dimension the + would make for the selection (`id` unset), or the reference already
|
|
4
|
+
* there for it that isn't kept. Null with nothing to show: a dimension already measured or kept there, nothing the +
|
|
5
|
+
* measures this way, the wall view, Annotate, another tool, the keypad up (it draws what it's setting), dimensions
|
|
6
|
+
* hidden, or a page whose sizes are still placeholders (rule 15).
|
|
7
|
+
*/
|
|
8
|
+
export declare function refTarget(): {
|
|
9
|
+
c: Constraint;
|
|
10
|
+
id?: string;
|
|
11
|
+
} | null;
|
|
12
|
+
/** The dimension the grey number shows, when it isn't one of the drawing's yet. */
|
|
13
|
+
export declare function ghostDim(): Constraint | null;
|
|
14
|
+
/** Whether the bar offers Make reference: something to keep, in a drawing that can be edited. */
|
|
15
|
+
export declare const makeRefVisible: () => boolean;
|
|
16
|
+
/** Make reference: the grey number kept, as a reference dimension that stays on screen. One undo step. */
|
|
17
|
+
export declare function makeReference(): void;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { afterEdit } from '../app/edit';
|
|
2
|
+
import { ed } from '../app/state';
|
|
3
|
+
import { measure } from '../model/constraints';
|
|
4
|
+
import { pushHistory } from '../model/history';
|
|
5
|
+
import { settings } from '../model/settings';
|
|
6
|
+
import { addCons } from '../model/sketch';
|
|
7
|
+
import { SK } from '../model/store';
|
|
8
|
+
import { selectionDim } from '../tools/dim';
|
|
9
|
+
import { elevOpen } from './elevation';
|
|
10
|
+
import { keypadOpen } from './keypad';
|
|
11
|
+
import { noScaleYet } from './scaleGate';
|
|
12
|
+
/*
|
|
13
|
+
Reference measurements by hand (the user's call, 2026-11-05: "upon selection of a line, two points, angle etc there
|
|
14
|
+
should be a grey measurement ... bottom bar should have a make reference option, when pressed the shown grey
|
|
15
|
+
measurement now stays on screen"). With something picked that the yellow + measures, the dimension it would make is
|
|
16
|
+
drawn as it measures now: a faded grey number with a dashed outline (the "ghost", render/draw.ts). It's a readout,
|
|
17
|
+
not a tap target: it sits on what it measures (a line's middle, a wall's cabinets), and a press there is for that —
|
|
18
|
+
the bar's + sets it. The bar's Make reference keeps it, as a reference dimension (never drives the drawing) that
|
|
19
|
+
stays on screen (`Constraint.kept`), solid grey in brackets. Only new ones: a dimension that drives stays driving. A reference the
|
|
20
|
+
drawing already set (one that would over-define it) shows only while selected, so it's drawn as a ghost too, and
|
|
21
|
+
Make reference keeps it. Everywhere (BOLDR's app and web), and in a drawing opened view-only, where a tap picks one
|
|
22
|
+
thing to read its size (readOnlyTap) and nothing can be kept.
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* What the grey number is for: the dimension the + would make for the selection (`id` unset), or the reference already
|
|
26
|
+
* there for it that isn't kept. Null with nothing to show: a dimension already measured or kept there, nothing the +
|
|
27
|
+
* measures this way, the wall view, Annotate, another tool, the keypad up (it draws what it's setting), dimensions
|
|
28
|
+
* hidden, or a page whose sizes are still placeholders (rule 15).
|
|
29
|
+
*/
|
|
30
|
+
export function refTarget() {
|
|
31
|
+
if (ed.mode === 'annotate' || ed.tool !== 'select' || elevOpen() || keypadOpen() || !settings.layers.dims || noScaleYet())
|
|
32
|
+
return null;
|
|
33
|
+
const d = selectionDim();
|
|
34
|
+
if (!d)
|
|
35
|
+
return null;
|
|
36
|
+
const sk = SK();
|
|
37
|
+
if (!d.existing)
|
|
38
|
+
return { c: { ...d.c, value: measure(sk, d.c) } };
|
|
39
|
+
const e = sk.cons[d.existing];
|
|
40
|
+
return e.driving === false && !e.kept ? { c: e, id: d.existing } : null;
|
|
41
|
+
}
|
|
42
|
+
/** The dimension the grey number shows, when it isn't one of the drawing's yet. */
|
|
43
|
+
export function ghostDim() {
|
|
44
|
+
const t = refTarget();
|
|
45
|
+
return t && !t.id ? t.c : null;
|
|
46
|
+
}
|
|
47
|
+
/** Whether the bar offers Make reference: something to keep, in a drawing that can be edited. */
|
|
48
|
+
export const makeRefVisible = () => !ed.readOnly && !!refTarget();
|
|
49
|
+
/** Make reference: the grey number kept, as a reference dimension that stays on screen. One undo step. */
|
|
50
|
+
export function makeReference() {
|
|
51
|
+
const t = refTarget();
|
|
52
|
+
if (!t || ed.readOnly)
|
|
53
|
+
return;
|
|
54
|
+
pushHistory();
|
|
55
|
+
const sk = SK();
|
|
56
|
+
if (t.id)
|
|
57
|
+
sk.cons[t.id].kept = true;
|
|
58
|
+
else
|
|
59
|
+
addCons(sk, { ...t.c, driving: false, kept: true });
|
|
60
|
+
afterEdit();
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=refDim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refDim.js","sourceRoot":"","sources":["../../src/editor/refDim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;;;;;;;EAWE;AAEF;;;;;GAKG;AACH,MAAM,UAAU,SAAS;IACvB,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,EAAE,IAAI,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,UAAU,EAAE;QAAE,OAAO,IAAI,CAAC;IACvI,MAAM,CAAC,GAAG,YAAY,EAAE,CAAC;IACzB,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,CAAC,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACnE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC9B,OAAO,CAAC,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1E,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,QAAQ;IACtB,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;IACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,MAAM,cAAc,GAAG,GAAY,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;AAE3E,0GAA0G;AAC1G,MAAM,UAAU,aAAa;IAC3B,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;IACtB,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ;QAAE,OAAO;IAC9B,WAAW,EAAE,CAAC;IACd,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC,CAAC,EAAE;QAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;;QAC/B,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,SAAS,EAAE,CAAC;AACd,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;
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clockwise.js","sourceRoot":"","sources":["../../src/model/clockwise.ts"],"names":[],"mappings":"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"}
|
package/dist/model/settings.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ export interface Settings extends UnitPrefs {
|
|
|
21
21
|
layers: Layers;
|
|
22
22
|
/** default wall height (floor to ceiling), inches */
|
|
23
23
|
wallH: number;
|
|
24
|
+
/** the size of the drawing's measurement tiles (its dimensions' chips), percent: the file's, everyone's (editor/dimSize.ts) */
|
|
25
|
+
chipPct: number;
|
|
24
26
|
}
|
|
25
27
|
export declare const defaultLayers: () => Layers;
|
|
26
28
|
export declare const settings: Settings;
|
package/dist/model/settings.js
CHANGED
|
@@ -3,7 +3,7 @@ import { sessionState } from './session';
|
|
|
3
3
|
export const defaultLayers = () => ({ underlay: true, construction: true, dims: true, rooms: true, annot: true, cabinets: true, objSnap: true });
|
|
4
4
|
export const settings = sessionState(() => ({
|
|
5
5
|
unit: 'ftin', denom: 16, snapGrid: false, autoCons: true, toolTips: true, showCons: true, theme: 'system', welcomed: false,
|
|
6
|
-
layers: defaultLayers(), wallH: 96,
|
|
6
|
+
layers: defaultLayers(), wallH: 96, chipPct: 100,
|
|
7
7
|
}));
|
|
8
8
|
useUnitPrefs(settings);
|
|
9
9
|
//# sourceMappingURL=settings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/model/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkB,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/model/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkB,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AA6BzC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAW,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAEzJ,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAa,EAAE,CAAC,CAAC;IACpD,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK;IAC1H,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG;CACjD,CAAC,CAAC,CAAC;AAEJ,YAAY,CAAC,QAAQ,CAAC,CAAC"}
|
package/dist/model/types.d.ts
CHANGED
|
@@ -75,6 +75,11 @@ export interface Constraint {
|
|
|
75
75
|
value?: number;
|
|
76
76
|
/** false = reference dimension (shown in parentheses, never drives geometry) */
|
|
77
77
|
driving?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* a reference made by hand (the bar's Make reference: editor/refDim.ts): it stays on screen, as an entered dimension
|
|
80
|
+
* does. Any other reference — one the drawing already set — shows only while it or what it measures is selected.
|
|
81
|
+
*/
|
|
82
|
+
kept?: boolean;
|
|
78
83
|
/**
|
|
79
84
|
* label offset from the measured span, across it (a distance between parallel lines or walls: along them); a
|
|
80
85
|
* diameter's, how far past the circle the label sits; an angle's, its arc's radius once pulled off its corner
|
package/dist/react/BottomBar.js
CHANGED
|
@@ -5,6 +5,8 @@ import { ed } from '../app/state';
|
|
|
5
5
|
import { applyCtxAction, barItems, deleteSelection, iconAlone, plusAction, plusLabel, plusVisible } from '../editor/actions';
|
|
6
6
|
import { addLinks, LINK_PLUS_LABEL, linkPlusVisible, linkSizeVisible, openLinkTarget, opensWithChoice, pageLinkSize, pageTilePct, pctToStep, selectedOpenTarget, setTilePct, SIZE_STEPS, stepToPct } from '../editor/linkActions';
|
|
7
7
|
import { afterEdit } from '../app/edit';
|
|
8
|
+
import { DIM_STEPS, dimPctToStep, dimSizeDone, dimSizeVisible, setDimPct, stepToDimPct } from '../editor/dimSize';
|
|
9
|
+
import { settings } from '../model/settings';
|
|
8
10
|
import { bar3d, run3d } from '../editor/view3d';
|
|
9
11
|
import { is3d } from '../editor/view3dState';
|
|
10
12
|
import { OPACITY_MIN, OPACITY_STEP, ROTATE_MAX, ROTATE_STEP, setUnderlayOpacity, setUnderlayRotation } from '../editor/project';
|
|
@@ -33,7 +35,7 @@ export function BottomBar({ phone }) {
|
|
|
33
35
|
// what's in the bar and what it's for, and the selected image's opacity and turn (its sliders)
|
|
34
36
|
useEditorKey(() => {
|
|
35
37
|
const u = ed.sel.length === 1 && ed.sel[0].type === 'underlay' ? imageById(ed.sel[0].id) : undefined;
|
|
36
|
-
return [buttonsKey(), barFor(), plusVisible(), ed.sel.length, u ? u.opacity ?? 0.6 : '', u ? (u.rot ?? 0) + (u.locked ? 'L' : '') : '', linkPlusVisible(), ui.linkFab, linkSizeVisible(), pageLinkSize() ?? ''].join('|');
|
|
38
|
+
return [buttonsKey(), barFor(), plusVisible(), ed.sel.length, u ? u.opacity ?? 0.6 : '', u ? (u.rot ?? 0) + (u.locked ? 'L' : '') : '', linkPlusVisible(), ui.linkFab, linkSizeVisible(), pageLinkSize() ?? '', dimSizeVisible(), settings.chipPct].join('|');
|
|
37
39
|
});
|
|
38
40
|
// (on a phone only buttons show: a bar that would hold just a label isn't shown at all. The 3D tab measures and
|
|
39
41
|
// deletes nothing: what's tapped there shows its sizes, and what can be done with it from there)
|
|
@@ -48,7 +50,7 @@ export function BottomBar({ phone }) {
|
|
|
48
50
|
const cut = !over ? undefined : spans ? barCut(spans, room) : room;
|
|
49
51
|
const onWidth = useCallback((i, w) => setWidths(p => (p[i] === w ? p : Object.assign(p.slice(), { [i]: w }))), []);
|
|
50
52
|
const scroll = useBarScroll(over, cut == null ? 0 : content - cut, barFor());
|
|
51
|
-
return (_jsxs(_Fragment, { children: [(items.length > 0 || plus) && (_jsxs(View, { style: [s.bottom, phone ? s.phoneRow : s.centered], onLayout: e => setRow(e.nativeEvent.layout.width), children: [_jsx(ImagePopover, {}), _jsx(LinkSizePopover, {}), _jsx(OpenPopover, {}), phone && _jsx(View, { pointerEvents: "none", style: [s.springL, { flexBasis: corner ? TRASH_ROOM : 0 }] }), _jsxs(View, { testID: "ctxBar", style: s.ctx, children: [_jsxs(View, { style: s.clip, children: [_jsx(Animated.ScrollView, { ref: scroll.ref, testID: "ctxScroll", horizontal: true, showsHorizontalScrollIndicator: false, scrollEnabled: over, bounces: over, contentContainerStyle: s.items, style: [s.scroller, cut != null && { width: cut }], onContentSizeChange: w => setContent(w), onScroll: scroll.onScroll, scrollEventThrottle: 16, onScrollBeginDrag: scroll.stop, children: _jsx(BarButtons, { k: buttonsKey(), phone: phone, onWidth: onWidth }) }), cut != null && _jsx(Fades, { x: scroll.x, end: cut, max: content - cut })] }), plus && (_jsx(Tap, { accessibilityRole: "button", accessibilityLabel: plusLabel(), testID: "addbtn", onPress: plusAction, style: s.add, children: _jsx(Icon, { name: "plus", color: C.dark }) }))] }), phone && _jsx(View, { pointerEvents: "none", style: [s.springR, { flexBasis: corner ? TRASH_ROOM : 0 }] })] })), trash && (_jsx(Tap, { accessibilityRole: "button", accessibilityLabel: "Delete selection", testID: "btnTrash", onPress: deleteSelection, style: s.trash, children: _jsx(Icon, { name: "trash", size: 24, color: "#fff" }) })), fab && (_jsx(Tap, { accessibilityRole: "button", accessibilityLabel: LINK_PLUS_LABEL, testID: "linkFab", onPress: () => { void addLinks(); }, style: [s.trash, s.fab], children: _jsx(Icon, { name: "plus", size: 30, color: C.dark }) }))] }));
|
|
53
|
+
return (_jsxs(_Fragment, { children: [(items.length > 0 || plus) && (_jsxs(View, { style: [s.bottom, phone ? s.phoneRow : s.centered], onLayout: e => setRow(e.nativeEvent.layout.width), children: [_jsx(ImagePopover, {}), _jsx(LinkSizePopover, {}), _jsx(DimSizePopover, {}), _jsx(OpenPopover, {}), phone && _jsx(View, { pointerEvents: "none", style: [s.springL, { flexBasis: corner ? TRASH_ROOM : 0 }] }), _jsxs(View, { testID: "ctxBar", style: s.ctx, children: [_jsxs(View, { style: s.clip, children: [_jsx(Animated.ScrollView, { ref: scroll.ref, testID: "ctxScroll", horizontal: true, showsHorizontalScrollIndicator: false, scrollEnabled: over, bounces: over, contentContainerStyle: s.items, style: [s.scroller, cut != null && { width: cut }], onContentSizeChange: w => setContent(w), onScroll: scroll.onScroll, scrollEventThrottle: 16, onScrollBeginDrag: scroll.stop, children: _jsx(BarButtons, { k: buttonsKey(), phone: phone, onWidth: onWidth }) }), cut != null && _jsx(Fades, { x: scroll.x, end: cut, max: content - cut })] }), plus && (_jsx(Tap, { accessibilityRole: "button", accessibilityLabel: plusLabel(), testID: "addbtn", onPress: plusAction, style: s.add, children: _jsx(Icon, { name: "plus", color: C.dark }) }))] }), phone && _jsx(View, { pointerEvents: "none", style: [s.springR, { flexBasis: corner ? TRASH_ROOM : 0 }] })] })), trash && (_jsx(Tap, { accessibilityRole: "button", accessibilityLabel: "Delete selection", testID: "btnTrash", onPress: deleteSelection, style: s.trash, children: _jsx(Icon, { name: "trash", size: 24, color: "#fff" }) })), fab && (_jsx(Tap, { accessibilityRole: "button", accessibilityLabel: LINK_PLUS_LABEL, testID: "linkFab", onPress: () => { void addLinks(); }, style: [s.trash, s.fab], children: _jsx(Icon, { name: "plus", size: 30, color: C.dark }) }))] }));
|
|
52
54
|
}
|
|
53
55
|
/** What's in the bar: for the selection, or for what's tapped in the 3D tab. */
|
|
54
56
|
const entries = () => (is3d() ? bar3d() : barItems());
|
|
@@ -147,7 +149,7 @@ const BarButtons = memo(function BarButtons({ phone, onWidth }) {
|
|
|
147
149
|
return;
|
|
148
150
|
}
|
|
149
151
|
applyCtxAction(it.act, e.currentTarget);
|
|
150
|
-
}, style: st => [s.cb, iconAlone(it) && s.lead, it.on || (it.act === 'imgOpacity' && ui.imgPop === 'opacity') || (it.act === 'imgRotate' && ui.imgPop === 'rotate') || (it.act === 'linkSize' && ui.imgPop === 'tilesize') || (isOpen(it.act) && ui.imgPop === 'open') ? { backgroundColor: 'rgba(255,255,255,0.14)' } : null,
|
|
152
|
+
}, style: st => [s.cb, iconAlone(it) && s.lead, it.on || (it.act === 'imgOpacity' && ui.imgPop === 'opacity') || (it.act === 'imgRotate' && ui.imgPop === 'rotate') || (it.act === 'linkSize' && ui.imgPop === 'tilesize') || (it.act === 'dimSize' && ui.imgPop === 'dimsize') || (isOpen(it.act) && ui.imgPop === 'open') ? { backgroundColor: 'rgba(255,255,255,0.14)' } : null,
|
|
151
153
|
it.on ? { backgroundColor: '#fff' } : hovered(st) && { backgroundColor: 'rgba(255,255,255,0.08)' }], children: [_jsx(Icon, { name: it.ic, color: fg }), !iconAlone(it) && _jsx(Text, { style: [s.cbText, { color: fg }], children: it.label })] }, it.act + i));
|
|
152
154
|
}) }));
|
|
153
155
|
});
|
|
@@ -265,6 +267,44 @@ function LinkSizePopover() {
|
|
|
265
267
|
};
|
|
266
268
|
return (_jsx(View, { style: s.popWrap, pointerEvents: "box-none", children: _jsxs(Animated.View, { style: [s.pop, pop.style], pointerEvents: open ? 'auto' : 'none', testID: open ? 'tileSizePop' : undefined, children: [_jsx(Text, { style: s.popLabel, children: "Tile size" }), _jsx(View, { style: { flex: 1 }, children: _jsx(Slider, { label: "Tile size", testID: "tileSizeSlider", value: value, min: 0, max: SIZE_STEPS, step: 1, format: v => stepToPct(v) + '%', onStart: pushHistory, onChange: change, onEnd: end }) }), _jsx(Text, { style: s.popValue, children: (live != null ? stepToPct(live) : last.current) + '%' })] }) }));
|
|
267
269
|
}
|
|
270
|
+
/**
|
|
271
|
+
* The measurement tiles' size slider (editor/dimSize.ts): the bar's Size with a dimension picked, as LinkSizePopover is
|
|
272
|
+
* for the tiles — one size for every measurement tile in the file, in percent of the size they're drawn at (50% to
|
|
273
|
+
* 300%), catching at 100%. Kept quick the same way: the thumb and the number follow the finger, the drawing is redrawn
|
|
274
|
+
* at most once a frame, and the change is marked (to save) as it's let go. Not an undo step, as the file's other
|
|
275
|
+
* settings aren't.
|
|
276
|
+
*/
|
|
277
|
+
function DimSizePopover() {
|
|
278
|
+
const [live, setLive] = useState(null);
|
|
279
|
+
const pending = useRef(null);
|
|
280
|
+
const open = ui.imgPop === 'dimsize' && dimSizeVisible();
|
|
281
|
+
const pop = usePopup(open, { y: 8 }, 'bottom center');
|
|
282
|
+
if (!pop.present)
|
|
283
|
+
return null;
|
|
284
|
+
const value = live ?? dimPctToStep(settings.chipPct);
|
|
285
|
+
const change = (v) => {
|
|
286
|
+
setLive(v);
|
|
287
|
+
const p = pending.current;
|
|
288
|
+
if (p) {
|
|
289
|
+
p.v = v;
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
pending.current = { v, frame: requestAnimationFrame(() => { const q = pending.current; pending.current = null; if (q)
|
|
293
|
+
setDimPct(stepToDimPct(q.v)); }) };
|
|
294
|
+
};
|
|
295
|
+
const end = () => {
|
|
296
|
+
const p = pending.current;
|
|
297
|
+
if (p) {
|
|
298
|
+
cancelAnimationFrame(p.frame);
|
|
299
|
+
pending.current = null;
|
|
300
|
+
setDimPct(stepToDimPct(p.v));
|
|
301
|
+
}
|
|
302
|
+
setLive(null);
|
|
303
|
+
dimSizeDone();
|
|
304
|
+
notify();
|
|
305
|
+
};
|
|
306
|
+
return (_jsx(View, { style: s.popWrap, pointerEvents: "box-none", children: _jsxs(Animated.View, { style: [s.pop, pop.style], pointerEvents: open ? 'auto' : 'none', testID: open ? 'dimSizePop' : undefined, children: [_jsx(Text, { style: s.popLabel, children: "Measurement size" }), _jsx(View, { style: { flex: 1 }, children: _jsx(Slider, { label: "Measurement size", testID: "dimSizeSlider", value: value, min: 0, max: DIM_STEPS, step: 1, format: v => stepToDimPct(v) + '%', onChange: change, onEnd: end }) }), _jsx(Text, { style: s.popValue, children: (live != null ? stepToDimPct(live) : settings.chipPct) + '%' })] }) }));
|
|
307
|
+
}
|
|
268
308
|
/** The hint for screen readers: what to do next with the tool or what's picked, read out as it changes. */
|
|
269
309
|
export function SpokenHint() {
|
|
270
310
|
useEditorKey(currentHint);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomBar.js","sourceRoot":"","sources":["../../src/react/BottomBar.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BottomBar.js","sourceRoot":"","sources":["../../src/react/BottomBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAqB,MAAM,OAAO,CAAC;AACnG,OAAO,EAAE,QAAQ,EAAc,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7H,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClO,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAClH,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAChI,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzG;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,EAAsB;IACrD,+FAA+F;IAC/F,YAAY,CAAC,GAAG,EAAE;QAChB,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrG,OAAO,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChQ,CAAC,CAAC,CAAC;IACH,gHAAgH;IAChH,iGAAiG;IACjG,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,WAAW,EAAE,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IAClG,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,eAAe,EAAE,EAAE,MAAM,GAAG,KAAK,IAAI,GAAG,CAAC;IACxF,kHAAkH;IAClH,mHAAmH;IACnH,4FAA4F;IAC5F,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAkC,EAAE,CAAC,CAAC;IAC5I,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC;IACnI,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrK,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnI,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7E,OAAO,CACL,8BACG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAC7B,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,aACzG,KAAC,YAAY,KAAG,EAChB,KAAC,eAAe,KAAG,EACnB,KAAC,cAAc,KAAG,EAClB,KAAC,WAAW,KAAG,EAKd,KAAK,IAAI,KAAC,IAAI,IAAC,aAAa,EAAC,MAAM,EAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAI,EACnG,MAAC,IAAI,IAAC,MAAM,EAAC,QAAQ,EAAC,KAAK,EAAE,CAAC,CAAC,GAAG,aAIhC,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,IAAI,aACjB,KAAC,QAAQ,CAAC,UAAU,IAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAC,WAAW,EAAC,UAAU,QAAC,8BAA8B,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAC3I,qBAAqB,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAC3H,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,mBAAmB,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,CAAC,IAAI,YAClF,KAAC,UAAU,IAAC,CAAC,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAI,GAC3C,EACrB,GAAG,IAAI,IAAI,IAAI,KAAC,KAAK,IAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,GAAI,IAC/D,EACN,IAAI,IAAI,CACP,KAAC,GAAG,IAAC,iBAAiB,EAAC,QAAQ,EAAC,kBAAkB,EAAE,SAAS,EAAE,EAAE,MAAM,EAAC,QAAQ,EAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,YAChH,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,CAAC,CAAC,IAAI,GAAI,GAC/B,CACP,IACI,EACN,KAAK,IAAI,KAAC,IAAI,IAAC,aAAa,EAAC,MAAM,EAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAI,IAC9F,CACR,EACA,KAAK,IAAI,CACR,KAAC,GAAG,IAAC,iBAAiB,EAAC,QAAQ,EAAC,kBAAkB,EAAC,kBAAkB,EAAC,MAAM,EAAC,UAAU,EAAC,OAAO,EAAE,eAAe,EAC9G,KAAK,EAAE,CAAC,CAAC,KAAK,YACd,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,MAAM,GAAG,GACxC,CACP,EACA,GAAG,IAAI,CACN,KAAC,GAAG,IAAC,iBAAiB,EAAC,QAAQ,EAAC,kBAAkB,EAAE,eAAe,EAAE,MAAM,EAAC,SAAS,EAAC,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,YAChJ,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,GAAI,GACzC,CACP,IACA,CACJ,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAEtD;;;GAGG;AACH,MAAM,KAAK,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAE1F,qGAAqG;AACrG,SAAS,UAAU;IACjB,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;AAC/C,CAAC;AAED,uGAAuG;AACvG,MAAM,MAAM,GAAG,GAAW,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEjH,sGAAsG;AACtG,IAAI,MAAM,GAAG,KAAK,CAAC;AAEnB;;;;GAIG;AACH,SAAS,YAAY,CAAC,IAAa,EAAE,GAAW,EAAE,MAAc;IAC9D,MAAM,GAAG,GAAG,MAAM,CAAkC,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACrG,MAAM,IAAI,GAAG,MAAM,CAA4C,SAAS,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9H,kDAAkD;IAClD,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACzG,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,aAAa,EAAE;YAAE,OAAO;QAC3D,mFAAmF;QACnF,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,MAAM,GAAG,IAAI,CAAC;YACd,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QAC/F,CAAC,EAAE,WAAW,CAAC,CAAC;QAChB,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAChB,2DAA2D;IAC3D,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhE;;;GAGG;AACH,SAAS,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAmD;IAC7E,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;QACnD,OAAO;YACL,CAAC,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;YACnF,CAAC,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;SAC5F,CAAC;IACJ,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACb,OAAO,CACL,8BACE,KAAC,QAAQ,CAAC,IAAI,IAAC,MAAM,EAAC,cAAc,EAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,YAAE,KAAC,MAAM,IAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAI,GAAgB,EAC1J,KAAC,QAAQ,CAAC,IAAI,IAAC,MAAM,EAAC,YAAY,EAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,YAAE,KAAC,MAAM,IAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAI,GAAgB,IAC7J,CACJ,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,KAAkC;IACrD,MAAM,GAAG,GAAgC,EAAE,CAAC;IAC5C,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,IAAI,EAAE;YAAE,SAAS;QAC1C,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC;YAAE,SAAS;QAC7E,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,CAAC;IACD,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK;QAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAA0E;IACpI,OAAO,CACL,4BACG,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,EAAE,KAAK,KAAK;gBAAE,OAAO,KAAC,IAAI,IAAe,KAAK,EAAE,CAAC,CAAC,GAAG,IAArB,GAAG,GAAG,CAAC,CAAkB,CAAC;YAC9D,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAC,IAAI,IAAe,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,YAAG,EAAE,CAAC,GAAG,IAArF,GAAG,GAAG,CAAC,CAAsF,CAAC;YACjI,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACvD,OAAO,CACL,MAAC,GAAG,IAAkB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,iBAAiB,EAAC,QAAQ,EAAC,kBAAkB,EAAE,EAAE,CAAC,KAAK,EAClI,kBAAkB,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACzG,OAAO,EAAE,CAAC,CAAC,EAAE;oBACX,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC;wBAAE,OAAO;oBACpC,0GAA0G;oBAC1G,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;oBACvD,IAAI,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;wBAAC,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;wBAAC,MAAM,EAAE,CAAC;wBAAC,OAAO;oBAAC,CAAC;oBACpG,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;gBAC1C,CAAC,EACD,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,YAAY,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,WAAW,IAAI,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,UAAU,IAAI,EAAE,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,wBAAwB,EAAE,CAAC,CAAC,CAAC,IAAI;oBAC7W,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,wBAAwB,EAAE,CAAC,aACrG,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,GAAI,EAE/B,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,YAAG,EAAE,CAAC,KAAK,GAAQ,KAbpE,EAAE,CAAC,GAAG,GAAG,CAAC,CAcd,CACP,CAAC;QACJ,CAAC,CAAC,GACD,CACJ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,6EAA6E;AAC7E,MAAM,MAAM,GAAG,CAAC,GAAW,EAAW,EAAE,CAAC,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,aAAa,CAAC;AAErF;;;;GAIG;AACH,SAAS,WAAW;IAClB,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;IACtD,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,EAAE,GAAG,CAAC,GAAsB,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACpC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;QACjB,MAAM,EAAE,CAAC;QACT,IAAI,MAAM;YAAE,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAC;IACF,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,aAAa,EAAC,UAAU,YAC9C,MAAC,QAAQ,CAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,aAC9H,KAAC,GAAG,IAAC,IAAI,EAAC,KAAK,EAAC,iBAAiB,EAAC,QAAQ,EAAC,kBAAkB,EAAC,MAAM,EAAC,MAAM,EAAC,UAAU,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAC9G,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YACrD,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,UAAU,qBAAa,GAClC,EACN,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,GAAG,GAAI,EACtB,KAAC,GAAG,IAAC,IAAI,EAAC,KAAK,EAAC,iBAAiB,EAAC,QAAQ,EAAC,kBAAkB,EAAC,mBAAmB,EAAC,MAAM,EAAC,YAAY,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAC/H,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YACrD,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,UAAU,kCAA0B,GAC/C,IACQ,GACX,CACR,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,MAAM,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;AAEjG;;;;;;;;GAQG;AACH,SAAS,YAAY;IACnB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,CAAsC,IAAI,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvG,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IACnE,4EAA4E;IAC5E,MAAM,IAAI,GAAG,MAAM,CAAsE,IAAI,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;IAChJ,IAAI,IAAI;QAAE,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,IAAK,EAAE,GAAG,EAAE,GAAI,EAAE,CAAC;IACpD,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;IACnF,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACrG,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE;QAC3B,OAAO,CAAC,CAAC,CAAC,CAAC;QACX,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC;YAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC3B,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC;gBAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzI,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,GAAG,EAAE;QACf,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC;YAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAC7E,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,EAAE,CAAC;IACX,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9C,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,aAAa,EAAC,UAAU,YAChD,MAAC,QAAQ,CAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,aACrK,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,GAAQ,EAC/D,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YACrB,MAAM;wBACL,CAAC,CAAC,KAAC,MAAM,IAAC,KAAK,EAAC,gBAAgB,EAAC,MAAM,EAAC,cAAc,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EACrI,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAI;wBAC1D,CAAC,CAAC,KAAC,MAAM,IAAC,KAAK,EAAC,eAAe,EAAC,MAAM,EAAC,eAAe,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAC/G,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAI,GACvD,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,GAAQ,EACrE,MAAM,IAAI,CACT,KAAC,GAAG,IAAC,IAAI,EAAC,KAAK,EAAC,iBAAiB,EAAC,QAAQ,EAAC,kBAAkB,EAAC,gBAAgB,EAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EACzI,MAAM,EAAC,aAAa,EAAC,OAAO,EAAE,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,YAC3I,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,SAAS,sBAAc,GAClC,CACP,IACa,GACT,CACR,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe;IACtB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,CAAsC,IAAI,CAAC,CAAC;IAClE,4FAA4F;IAC5F,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,KAAK,UAAU,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC;IACrG,gDAAgD;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;IACjF,IAAI,GAAG,IAAI,IAAI;QAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IACpC,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE;QAC3B,OAAO,CAAC,CAAC,CAAC,CAAC;QACX,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC;YAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC3B,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC;gBAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzJ,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,GAAG,EAAE;QACf,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC;YAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAC7F,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,SAAS,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC;IACX,CAAC,CAAC;IACF,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,aAAa,EAAC,UAAU,YAC9C,MAAC,QAAQ,CAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,aACvH,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,0BAAkB,EACzC,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YACtB,KAAC,MAAM,IAAC,KAAK,EAAC,WAAW,EAAC,MAAM,EAAC,gBAAgB,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,EAC/H,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAI,GACnD,EAEP,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,GAAQ,IACzE,GACX,CACR,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc;IACrB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,CAAsC,IAAI,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,cAAc,EAAE,CAAC;IACzD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;IACtD,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE;QAC3B,OAAO,CAAC,CAAC,CAAC,CAAC;QACX,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC;YAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC3B,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3J,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,GAAG,EAAE;QACf,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC;YAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAC/F,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,WAAW,EAAE,CAAC;QACd,MAAM,EAAE,CAAC;IACX,CAAC,CAAC;IACF,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,aAAa,EAAC,UAAU,YAC9C,MAAC,QAAQ,CAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,aACtH,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,iCAAyB,EAChD,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YACtB,KAAC,MAAM,IAAC,KAAK,EAAC,kBAAkB,EAAC,MAAM,EAAC,eAAe,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,EACvI,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAI,GAC7B,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,GAAQ,IAChF,GACX,CACR,CAAC;AACJ,CAAC;AAED,2GAA2G;AAC3G,MAAM,UAAU,UAAU;IACxB,YAAY,CAAC,WAAW,CAAC,CAAC;IAC1B,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,uBAAuB,EAAC,QAAQ,EAAC,QAAQ,EAAC,MAAM,YACrE,KAAC,QAAQ,IAAC,IAAI,EAAE,WAAW,EAAE,GAAI,GAC5B,CACR,CAAC;AACJ,CAAC;AAED,kIAAkI;AAClI,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB;;;;GAIG;AACH,MAAM,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;AAE5F,MAAM,CAAC,GAAG,WAAW,CAAC;IACpB,MAAM,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE;IAC/H,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE;IAC3D,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IACjC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;IAC1C,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;IACvC,qHAAqH;IACrH,2DAA2D;IAC3D,gHAAgH;IAChH,GAAG,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,iBAAiB,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE;IAC/N,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE;IACjF,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;IACxC,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE;IAC/D,sDAAsD;IACtD,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE;IACrF,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,GAAG,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE;IAC1I,8CAA8C;IAC9C,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE;IACrF,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE;IAC/D,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE;IACjF,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE;IAC5E,oDAAoD;IACpD,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE;IACtF,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE;IAC1L,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE;IAC/E,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE;IAC/G,qHAAqH;IACrH,wEAAwE;IACxE,QAAQ,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE;IAC7B,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE;IAC/G,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;IACjF,8GAA8G;IAC9G,sCAAsC;IACtC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;IACxD,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE;IACzF,WAAW,EAAE,EAAE,eAAe,EAAE,wBAAwB,EAAE;IAC1D,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;IAChF,gEAAgE;IAChE,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE;IACvJ,qHAAqH;IACrH,6DAA6D;IAC7D,KAAK,EAAE;QACL,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;QAChG,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ;QAC1E,SAAS,EAAE,gCAAgC,EAAE,SAAS,EAAE,CAAC;KAC1D;IACD,MAAM,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;IACrF,+FAA+F;IAC/F,GAAG,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;CACnC,CAAC,CAAC"}
|
|
@@ -27,7 +27,8 @@ import { TABS_TOP, topLayout } from './topRow';
|
|
|
27
27
|
|
|
28
28
|
As a tool follows the pointer, only the moving parts (preview, snap marker, selection box) are drawn again; the
|
|
29
29
|
drawing is kept until it changes. Touches still reach editor/gestures.ts for the tools, Apple Pencil, and two- and
|
|
30
|
-
three-finger taps (undo, redo); it leaves the view to this canvas (setHostNavigation).
|
|
30
|
+
three-finger taps (undo, redo); it leaves the view to this canvas (setHostNavigation). A Pencil and fingers can be
|
|
31
|
+
down at once (fingers pan and pinch while it draws), so each touch is handed over with what it is (OwnType).
|
|
31
32
|
|
|
32
33
|
While a finger or Pencil places or drags something, the lens (render/lens.ts) shows the drawing around it twice as
|
|
33
34
|
close in a top corner: the same pictures again, through its zoom, clipped to it — nothing more is drawn for it.
|
|
@@ -45,7 +46,7 @@ let placeLens = null;
|
|
|
45
46
|
* Touches from the UI thread: the view first, if the fingers moved it, then each touch to the editor's gestures (as a
|
|
46
47
|
* pointer lands, `down` is every one still down: any other's lift was lost).
|
|
47
48
|
*/
|
|
48
|
-
function touchesOnJS(type,
|
|
49
|
+
function touchesOnJS(type, ts, view, down) {
|
|
49
50
|
if (view) {
|
|
50
51
|
hostSeq = view.seq;
|
|
51
52
|
setViewFromHost(view.s, view.cx, view.cy);
|
|
@@ -53,7 +54,7 @@ function touchesOnJS(type, kind, ts, view, down) {
|
|
|
53
54
|
if (down)
|
|
54
55
|
pointersStill(down);
|
|
55
56
|
const fn = type === NAV_DOWN ? pointerDown : type === NAV_MOVE ? pointerMove : type === NAV_UP ? pointerUp : pointerCancel, t = Date.now();
|
|
56
|
-
for (const [id, x, y, ax, ay] of ts)
|
|
57
|
+
for (const [id, x, y, ax, ay, kind] of ts)
|
|
57
58
|
fn({ id, kind, x, y, t, cx: ax, cy: ay });
|
|
58
59
|
// what a tool shows following the finger (a shape's outline, its marks, the snap), drawn now: left for the next frame
|
|
59
60
|
// it reached the screen a frame behind the finger. Only when nothing but those moving parts changed — the drawing
|
|
@@ -66,16 +67,21 @@ const kindOf = (t) => {
|
|
|
66
67
|
'worklet';
|
|
67
68
|
return t === PointerType.STYLUS ? 'pen' : t === PointerType.MOUSE ? 'mouse' : 'touch';
|
|
68
69
|
};
|
|
70
|
+
/** Each touch, and what it is: its own pointer type where it says, else the event's (see OwnType). */
|
|
71
|
+
const typed = (ts, type) => {
|
|
72
|
+
'worklet';
|
|
73
|
+
return ts.map(t => ({ id: t.id, x: t.x, y: t.y, ax: t.absoluteX, ay: t.absoluteY, kind: kindOf(t.pointerType ?? type) }));
|
|
74
|
+
};
|
|
69
75
|
const pack = (ts) => {
|
|
70
76
|
'worklet';
|
|
71
|
-
return ts.map(t => [t.id, t.x, t.y, t.
|
|
77
|
+
return ts.map(t => [t.id, t.x, t.y, t.ax, t.ay, t.kind]);
|
|
72
78
|
};
|
|
73
79
|
export const PlanCanvas = memo(function PlanCanvas() {
|
|
74
80
|
const first = useRef(true);
|
|
75
81
|
const frame = useSharedValue(null);
|
|
76
82
|
const view = useSharedValue({ s: 1, cx: 0, cy: 0, seq: 0 });
|
|
77
|
-
// the UI thread's own: the fingers down, whether they're navigating and where they were last,
|
|
78
|
-
const nav = useSharedValue({ fingers: {}, navigating: false, last: null,
|
|
83
|
+
// the UI thread's own: the fingers down, whether they're navigating and where they were last, any Pencil down
|
|
84
|
+
const nav = useSharedValue({ fingers: {}, navigating: false, last: null, pens: [] });
|
|
79
85
|
const readOnly = useSharedValue(false);
|
|
80
86
|
// the lens, and whether it's up (mounted only then: nothing drawn twice for it otherwise)
|
|
81
87
|
const lens = useSharedValue(null);
|
|
@@ -182,12 +188,12 @@ export const PlanCanvas = memo(function PlanCanvas() {
|
|
|
182
188
|
/** A touch event on the UI thread: follow the fingers (render/navigate.ts), then hand the touches to this thread. */
|
|
183
189
|
const touch = (type, e) => {
|
|
184
190
|
'worklet';
|
|
185
|
-
const
|
|
186
|
-
const r = navTouch(nav.value, type,
|
|
191
|
+
const ts = typed(e.changedTouches, e.pointerType), down = type === NAV_DOWN ? e.allTouches.map(t => t.id) : null;
|
|
192
|
+
const r = navTouch(nav.value, type, kindOf(e.pointerType), ts, down, readOnly.value, view.value, frame.value);
|
|
187
193
|
nav.value = r.st;
|
|
188
194
|
if (r.view !== view.value)
|
|
189
195
|
view.value = r.view;
|
|
190
|
-
runOnJS(touchesOnJS)(type,
|
|
196
|
+
runOnJS(touchesOnJS)(type, pack(ts), r.moved ? r.view : null, down);
|
|
191
197
|
};
|
|
192
198
|
const touches = Gesture.Manual()
|
|
193
199
|
.onTouchesDown((e, manager) => {
|