@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.
Files changed (87) hide show
  1. package/README.md +12 -1
  2. package/dist/data/provider.d.ts +2 -1
  3. package/dist/data/sync.js +4 -1
  4. package/dist/data/sync.js.map +1 -1
  5. package/dist/editor/actions.js +26 -2
  6. package/dist/editor/actions.js.map +1 -1
  7. package/dist/editor/advance.d.ts +2 -0
  8. package/dist/editor/advance.js +23 -0
  9. package/dist/editor/advance.js.map +1 -0
  10. package/dist/editor/dimSize.d.ts +13 -0
  11. package/dist/editor/dimSize.js +50 -0
  12. package/dist/editor/dimSize.js.map +1 -0
  13. package/dist/editor/gestures.js +30 -7
  14. package/dist/editor/gestures.js.map +1 -1
  15. package/dist/editor/keypad.d.ts +8 -0
  16. package/dist/editor/keypad.js +15 -1
  17. package/dist/editor/keypad.js.map +1 -1
  18. package/dist/editor/laser.d.ts +9 -0
  19. package/dist/editor/laser.js +38 -12
  20. package/dist/editor/laser.js.map +1 -1
  21. package/dist/editor/linkActions.d.ts +5 -1
  22. package/dist/editor/linkActions.js +27 -5
  23. package/dist/editor/linkActions.js.map +1 -1
  24. package/dist/editor/ports.d.ts +9 -0
  25. package/dist/editor/ports.js +2 -0
  26. package/dist/editor/ports.js.map +1 -1
  27. package/dist/editor/refDim.d.ts +17 -0
  28. package/dist/editor/refDim.js +62 -0
  29. package/dist/editor/refDim.js.map +1 -0
  30. package/dist/index.d.ts +1 -1
  31. package/dist/index.js +1 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/model/clockwise.d.ts +11 -0
  34. package/dist/model/clockwise.js +123 -0
  35. package/dist/model/clockwise.js.map +1 -0
  36. package/dist/model/settings.d.ts +2 -0
  37. package/dist/model/settings.js +1 -1
  38. package/dist/model/settings.js.map +1 -1
  39. package/dist/model/types.d.ts +5 -0
  40. package/dist/react/BottomBar.js +43 -3
  41. package/dist/react/BottomBar.js.map +1 -1
  42. package/dist/react/PlanCanvas.native.js +15 -9
  43. package/dist/react/PlanCanvas.native.js.map +1 -1
  44. package/dist/react/host.d.ts +6 -0
  45. package/dist/react/host.js +11 -1
  46. package/dist/react/host.js.map +1 -1
  47. package/dist/react/ports.js +2 -1
  48. package/dist/react/ports.js.map +1 -1
  49. package/dist/react/store.d.ts +1 -1
  50. package/dist/react/store.js.map +1 -1
  51. package/dist/render/draw.d.ts +8 -0
  52. package/dist/render/draw.js +164 -92
  53. package/dist/render/draw.js.map +1 -1
  54. package/dist/render/navigate.d.ts +11 -6
  55. package/dist/render/navigate.js +34 -20
  56. package/dist/render/navigate.js.map +1 -1
  57. package/dist/tools/dim.d.ts +15 -0
  58. package/dist/tools/dim.js +171 -45
  59. package/dist/tools/dim.js.map +1 -1
  60. package/dist/tools/line.js +5 -0
  61. package/dist/tools/line.js.map +1 -1
  62. package/package.json +1 -1
  63. package/src/data/provider.ts +2 -2
  64. package/src/data/sync.ts +4 -1
  65. package/src/editor/actions.ts +20 -2
  66. package/src/editor/advance.ts +23 -0
  67. package/src/editor/dimSize.ts +53 -0
  68. package/src/editor/gestures.ts +31 -9
  69. package/src/editor/keypad.ts +17 -1
  70. package/src/editor/laser.ts +38 -10
  71. package/src/editor/linkActions.ts +25 -6
  72. package/src/editor/ports.ts +10 -0
  73. package/src/editor/refDim.ts +61 -0
  74. package/src/index.ts +1 -2
  75. package/src/model/clockwise.ts +121 -0
  76. package/src/model/settings.ts +3 -1
  77. package/src/model/types.ts +5 -0
  78. package/src/react/BottomBar.tsx +46 -2
  79. package/src/react/PlanCanvas.native.tsx +25 -12
  80. package/src/react/host.ts +11 -1
  81. package/src/react/ports.ts +3 -2
  82. package/src/react/store.ts +1 -1
  83. package/src/render/draw.ts +131 -71
  84. package/src/render/navigate.ts +31 -20
  85. package/src/tools/dim.ts +168 -35
  86. package/src/tools/line.ts +4 -0
  87. 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;AAIvG,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,iBAAiB,IAAI,oBAAoB,EAAE,WAAW,IAAI,cAAc,EAAqB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AAEF,OAAO,EAAE,SAAS,EAAuB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAqC,MAAM,aAAa,CAAC;AAG/G,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG/H,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,iBAAiB,IAAI,oBAAoB,EAAE,WAAW,IAAI,cAAc,EAAqB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { Sketch } from './types';
2
+ /**
3
+ * The next line clockwise from line or arc `id`, round the shape it's part of; null when there's none (a lone line, a
4
+ * run's end, a circle). `side`: a wall's edge it was measured on (+1 the left of its A → B): the edge of the next wall on
5
+ * the same side of the shape (the inside stays the inside) comes back with it. A line between two rooms goes round the
6
+ * one that edge faces, or the smaller one.
7
+ */
8
+ export declare function nextClockwise(sk: Sketch, id: string, side?: 1 | -1): {
9
+ id: string;
10
+ side?: 1 | -1;
11
+ } | null;
@@ -0,0 +1,123 @@
1
+ /** Every line and arc, by the points they end at (guides left out). */
2
+ function ends(sk) {
3
+ const m = new Map();
4
+ const add = (id, a, b) => {
5
+ if (a === b || !sk.points[a] || !sk.points[b])
6
+ return;
7
+ (m.get(a) ?? m.set(a, []).get(a)).push({ id, other: b });
8
+ (m.get(b) ?? m.set(b, []).get(b)).push({ id, other: a });
9
+ };
10
+ for (const [id, l] of Object.entries(sk.lines))
11
+ if (!l.constr)
12
+ add(id, l.a, l.b);
13
+ for (const [id, c] of Object.entries(sk.arcs))
14
+ if (!c.constr)
15
+ add(id, c.a, c.b);
16
+ return m;
17
+ }
18
+ const TURN = 2 * Math.PI;
19
+ /** The step after `s`, keeping the face on the right: the edge at its end turning most to the right. Null at a dead end. */
20
+ function after(sk, at, s) {
21
+ const v = sk.points[s.to], u = sk.points[s.from];
22
+ const back = Math.atan2(u.y - v.y, u.x - v.x);
23
+ let best = null, least = Infinity;
24
+ for (const e of at.get(s.to) ?? []) {
25
+ if (e.id === s.id)
26
+ continue;
27
+ const w = sk.points[e.other];
28
+ // (counter-clockwise from the way back: the least is the sharpest turn right)
29
+ let d = Math.atan2(w.y - v.y, w.x - v.x) - back;
30
+ while (d <= 1e-9)
31
+ d += TURN;
32
+ while (d > TURN)
33
+ d -= TURN;
34
+ if (d < least) {
35
+ least = d;
36
+ best = { id: e.id, from: s.to, to: e.other };
37
+ }
38
+ }
39
+ return best;
40
+ }
41
+ /** The walk from `s` on round: every step after it, and whether it came back to `s` (a closed shape). */
42
+ function walk(sk, at, s) {
43
+ const steps = [];
44
+ let cur = s;
45
+ const most = 2 * (Object.keys(sk.lines).length + Object.keys(sk.arcs).length) + 2;
46
+ while (steps.length < most) {
47
+ cur = after(sk, at, cur);
48
+ if (!cur)
49
+ return { steps, closed: false };
50
+ if (cur.id === s.id && cur.from === s.from)
51
+ return { steps, closed: true };
52
+ steps.push(cur);
53
+ }
54
+ return { steps, closed: false };
55
+ }
56
+ /** Twice the signed area round `s` and the steps after it (negative: clockwise, y up). */
57
+ function area(sk, s, steps) {
58
+ let a = 0;
59
+ for (const t of [s, ...steps]) {
60
+ const p = sk.points[t.from], q = sk.points[t.to];
61
+ a += p.x * q.y - q.x * p.y;
62
+ }
63
+ return a;
64
+ }
65
+ /** The middle of everything joined to `pid` (the points it can reach along lines and arcs). */
66
+ function middle(sk, at, pid) {
67
+ const seen = new Set([pid]), todo = [pid];
68
+ while (todo.length)
69
+ for (const e of at.get(todo.pop()) ?? [])
70
+ if (!seen.has(e.other)) {
71
+ seen.add(e.other);
72
+ todo.push(e.other);
73
+ }
74
+ let x = 0, y = 0;
75
+ for (const id of seen) {
76
+ x += sk.points[id].x;
77
+ y += sk.points[id].y;
78
+ }
79
+ return { x: x / seen.size, y: y / seen.size };
80
+ }
81
+ /** The side of a straight line on the right of walking it as `s` does (+1 the left of its A → B, −1 the right). */
82
+ const rightOf = (sk, s) => (s.from === sk.lines[s.id]?.a ? -1 : 1);
83
+ /**
84
+ * The next line clockwise from line or arc `id`, round the shape it's part of; null when there's none (a lone line, a
85
+ * run's end, a circle). `side`: a wall's edge it was measured on (+1 the left of its A → B): the edge of the next wall on
86
+ * the same side of the shape (the inside stays the inside) comes back with it. A line between two rooms goes round the
87
+ * one that edge faces, or the smaller one.
88
+ */
89
+ export function nextClockwise(sk, id, side) {
90
+ const e = sk.lines[id] ?? sk.arcs[id];
91
+ if (!e || e.constr || e.a === e.b)
92
+ return null;
93
+ const at = ends(sk);
94
+ const fwd = { id, from: e.a, to: e.b }, rev = { id, from: e.b, to: e.a };
95
+ const wf = walk(sk, at, fwd), wr = walk(sk, at, rev);
96
+ const room = (s, w) => w.closed && area(sk, s, w.steps) < 0;
97
+ const inF = room(fwd, wf), inR = room(rev, wr);
98
+ let start, w;
99
+ if (inF && inR) {
100
+ // between two rooms: the one the edge faces (on the walk's right), or the smaller
101
+ const pickF = side && sk.lines[id] ? rightOf(sk, fwd) === side : Math.abs(area(sk, fwd, wf.steps)) <= Math.abs(area(sk, rev, wr.steps));
102
+ [start, w] = pickF ? [fwd, wf] : [rev, wr];
103
+ }
104
+ else if (inF || inR) {
105
+ [start, w] = inF ? [fwd, wf] : [rev, wr];
106
+ }
107
+ else {
108
+ // a run that doesn't close: clockwise round its middle (the middle on the right of the way it's walked)
109
+ const m = middle(sk, at, e.a), a = sk.points[e.a], b = sk.points[e.b];
110
+ const leftOfAB = (b.x - a.x) * (m.y - a.y) - (b.y - a.y) * (m.x - a.x) >= 0;
111
+ [start, w] = leftOfAB ? [rev, wr] : [fwd, wf];
112
+ }
113
+ const next = w.steps.find(s => s.id !== id && sk.lines[s.id]);
114
+ if (!next)
115
+ return null;
116
+ if (!side || !sk.lines[id])
117
+ return { id: next.id };
118
+ // the measured edge's side of the shape (on the walk's right, or its left), kept on the next line
119
+ const sameRight = rightOf(sk, start) === side;
120
+ const r = rightOf(sk, next);
121
+ return { id: next.id, side: sameRight ? r : -r };
122
+ }
123
+ //# sourceMappingURL=clockwise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clockwise.js","sourceRoot":"","sources":["../../src/model/clockwise.ts"],"names":[],"mappings":"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"}
@@ -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;
@@ -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;AA2BzC,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;CACnC,CAAC,CAAC,CAAC;AAEJ,YAAY,CAAC,QAAQ,CAAC,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"}
@@ -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
@@ -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":";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,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,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5N,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,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,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;oBACxT,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,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"}
1
+ {"version":3,"file":"BottomBar.js","sourceRoot":"","sources":["../../src/react/BottomBar.tsx"],"names":[],"mappings":"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"}
@@ -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, kind, ts, view, down) {
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.absoluteX, t.absoluteY]);
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, a pen seen
78
- const nav = useSharedValue({ fingers: {}, navigating: false, last: null, pen: false });
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 kind = kindOf(e.pointerType), down = type === NAV_DOWN ? e.allTouches.map(t => t.id) : null;
186
- const r = navTouch(nav.value, type, kind, e.changedTouches, down, readOnly.value, view.value, frame.value);
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, kind, pack(e.changedTouches), r.moved ? r.view : null, down);
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) => {