@elaraai/east-ui 1.0.67 → 1.0.69
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 +2 -2
- package/dist/src/charts/chart/index.d.ts +39 -4
- package/dist/src/charts/chart/index.d.ts.map +1 -1
- package/dist/src/charts/chart/index.js +3 -3
- package/dist/src/charts/chart/index.js.map +1 -1
- package/dist/src/charts/spec/index.d.ts +61 -3
- package/dist/src/charts/spec/index.d.ts.map +1 -1
- package/dist/src/charts/spec/types.d.ts +1 -1
- package/dist/src/charts/spec/types.js +1 -1
- package/dist/src/collections/blend/index.d.ts +1 -1
- package/dist/src/collections/blend/index.d.ts.map +1 -1
- package/dist/src/collections/blend/index.js +1 -1
- package/dist/src/collections/blend/index.js.map +1 -1
- package/dist/src/collections/blend/types.js +1 -1
- package/dist/src/collections/blend/types.js.map +1 -1
- package/dist/src/collections/board/index.d.ts +4 -4
- package/dist/src/collections/board/index.d.ts.map +1 -1
- package/dist/src/collections/board/index.js +1 -1
- package/dist/src/collections/board/index.js.map +1 -1
- package/dist/src/collections/board/types.js +1 -1
- package/dist/src/collections/board/types.js.map +1 -1
- package/dist/src/collections/calendar/index.d.ts +1 -1
- package/dist/src/collections/calendar/index.d.ts.map +1 -1
- package/dist/src/collections/deck/index.d.ts +58 -0
- package/dist/src/collections/deck/index.d.ts.map +1 -1
- package/dist/src/collections/index.d.ts +1 -2
- package/dist/src/collections/index.d.ts.map +1 -1
- package/dist/src/collections/index.js +1 -2
- package/dist/src/collections/index.js.map +1 -1
- package/dist/src/collections/library/index.d.ts +29 -0
- package/dist/src/collections/library/index.d.ts.map +1 -1
- package/dist/src/collections/library/types.d.ts +29 -0
- package/dist/src/collections/library/types.d.ts.map +1 -1
- package/dist/src/collections/matrix/index.d.ts +1 -1
- package/dist/src/collections/matrix/index.d.ts.map +1 -1
- package/dist/src/collections/plan/assemble.d.ts +3732 -0
- package/dist/src/collections/plan/assemble.d.ts.map +1 -0
- package/dist/src/collections/plan/assemble.js +187 -0
- package/dist/src/collections/plan/assemble.js.map +1 -0
- package/dist/src/collections/plan/builders.d.ts +612 -0
- package/dist/src/collections/plan/builders.d.ts.map +1 -0
- package/dist/src/collections/plan/builders.js +543 -0
- package/dist/src/collections/plan/builders.js.map +1 -0
- package/dist/src/collections/plan/data-forms.d.ts +332 -0
- package/dist/src/collections/plan/data-forms.d.ts.map +1 -0
- package/dist/src/collections/plan/data-forms.js +212 -0
- package/dist/src/collections/plan/data-forms.js.map +1 -0
- package/dist/src/collections/plan/factories.d.ts +338 -0
- package/dist/src/collections/plan/factories.d.ts.map +1 -0
- package/dist/src/collections/plan/factories.js +414 -0
- package/dist/src/collections/plan/factories.js.map +1 -0
- package/dist/src/collections/plan/index.d.ts +271 -0
- package/dist/src/collections/plan/index.d.ts.map +1 -0
- package/dist/src/collections/plan/index.js +162 -0
- package/dist/src/collections/plan/index.js.map +1 -0
- package/dist/src/collections/plan/ir.d.ts +3496 -0
- package/dist/src/collections/plan/ir.d.ts.map +1 -0
- package/dist/src/collections/plan/ir.js +83 -0
- package/dist/src/collections/plan/ir.js.map +1 -0
- package/dist/src/collections/plan/pick.d.ts +115 -0
- package/dist/src/collections/plan/pick.d.ts.map +1 -0
- package/dist/src/collections/plan/pick.js +193 -0
- package/dist/src/collections/plan/pick.js.map +1 -0
- package/dist/src/collections/plan/root.d.ts +210 -0
- package/dist/src/collections/plan/root.d.ts.map +1 -0
- package/dist/src/collections/plan/root.js +146 -0
- package/dist/src/collections/plan/root.js.map +1 -0
- package/dist/src/collections/plan/series.d.ts +11890 -0
- package/dist/src/collections/plan/series.d.ts.map +1 -0
- package/dist/src/collections/plan/series.js +412 -0
- package/dist/src/collections/plan/series.js.map +1 -0
- package/dist/src/collections/plan/types.d.ts +9291 -0
- package/dist/src/collections/plan/types.d.ts.map +1 -0
- package/dist/src/collections/plan/types.js +940 -0
- package/dist/src/collections/plan/types.js.map +1 -0
- package/dist/src/collections/roster/index.d.ts +4 -4
- package/dist/src/collections/roster/index.d.ts.map +1 -1
- package/dist/src/collections/roster/index.js +1 -1
- package/dist/src/collections/roster/index.js.map +1 -1
- package/dist/src/collections/roster/types.d.ts +1 -1
- package/dist/src/collections/roster/types.d.ts.map +1 -1
- package/dist/src/collections/roster/types.js +4 -3
- package/dist/src/collections/roster/types.js.map +1 -1
- package/dist/src/collections/table/index.d.ts +70 -2
- package/dist/src/collections/table/index.d.ts.map +1 -1
- package/dist/src/collections/table/index.js +55 -11
- package/dist/src/collections/table/index.js.map +1 -1
- package/dist/src/collections/table/types.d.ts +1 -1
- package/dist/src/collections/table/types.d.ts.map +1 -1
- package/dist/src/component.d.ts +3898 -1339
- package/dist/src/component.d.ts.map +1 -1
- package/dist/src/component.js +83 -146
- package/dist/src/component.js.map +1 -1
- package/dist/src/container/card/types.d.ts +1 -1
- package/dist/src/container/card/types.d.ts.map +1 -1
- package/dist/src/contracts/approval.d.ts +117 -0
- package/dist/src/contracts/approval.d.ts.map +1 -0
- package/dist/src/contracts/approval.js +105 -0
- package/dist/src/contracts/approval.js.map +1 -0
- package/dist/src/contracts/drag.d.ts +3 -3
- package/dist/src/contracts/drag.d.ts.map +1 -1
- package/dist/src/contracts/drag.js +23 -10
- package/dist/src/contracts/drag.js.map +1 -1
- package/dist/src/contracts/index.d.ts +4 -1
- package/dist/src/contracts/index.d.ts.map +1 -1
- package/dist/src/contracts/index.js +4 -1
- package/dist/src/contracts/index.js.map +1 -1
- package/dist/src/contracts/pick.d.ts +705 -0
- package/dist/src/contracts/pick.d.ts.map +1 -0
- package/dist/src/contracts/pick.js +360 -0
- package/dist/src/contracts/pick.js.map +1 -0
- package/dist/src/contracts/review.d.ts +7 -99
- package/dist/src/contracts/review.d.ts.map +1 -1
- package/dist/src/contracts/review.js +11 -85
- package/dist/src/contracts/review.js.map +1 -1
- package/dist/src/contracts/slice-affordances.d.ts +13 -4
- package/dist/src/contracts/slice-affordances.d.ts.map +1 -1
- package/dist/src/contracts/slice-affordances.js +13 -3
- package/dist/src/contracts/slice-affordances.js.map +1 -1
- package/dist/src/contracts/source.d.ts +432 -0
- package/dist/src/contracts/source.d.ts.map +1 -0
- package/dist/src/contracts/source.js +505 -0
- package/dist/src/contracts/source.js.map +1 -0
- package/dist/src/contracts/states.d.ts +130 -0
- package/dist/src/contracts/states.d.ts.map +1 -1
- package/dist/src/contracts/states.js +122 -0
- package/dist/src/contracts/states.js.map +1 -1
- package/dist/src/contracts/time.d.ts +76 -0
- package/dist/src/contracts/time.d.ts.map +1 -0
- package/dist/src/contracts/time.js +78 -0
- package/dist/src/contracts/time.js.map +1 -0
- package/dist/src/display/trace/types.d.ts +1 -1
- package/dist/src/display/trace/types.d.ts.map +1 -1
- package/dist/src/index.d.ts +10 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +22 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal.d.ts +5 -3
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +4 -3
- package/dist/src/internal.js.map +1 -1
- package/dist/src/layout/dock/index.d.ts +1 -1
- package/dist/src/layout/dock/index.js +1 -1
- package/dist/src/layout/index.d.ts +0 -1
- package/dist/src/layout/index.d.ts.map +1 -1
- package/dist/src/layout/index.js +0 -1
- package/dist/src/layout/index.js.map +1 -1
- package/dist/src/overlays/drawer/types.d.ts +1 -1
- package/dist/src/overlays/drawer/types.d.ts.map +1 -1
- package/dist/src/pick/index.d.ts +443 -0
- package/dist/src/pick/index.d.ts.map +1 -0
- package/dist/src/pick/index.js +64 -0
- package/dist/src/pick/index.js.map +1 -0
- package/dist/src/pick/panel/index.d.ts +64 -0
- package/dist/src/pick/panel/index.d.ts.map +1 -0
- package/dist/src/pick/panel/index.js +61 -0
- package/dist/src/pick/panel/index.js.map +1 -0
- package/dist/src/platform/slice/index.d.ts +291 -0
- package/dist/src/platform/slice/index.d.ts.map +1 -1
- package/dist/src/platform/slice/index.js +16 -0
- package/dist/src/platform/slice/index.js.map +1 -1
- package/dist/src/runtime/collections/deck.d.ts +29 -0
- package/dist/src/runtime/collections/deck.d.ts.map +1 -1
- package/dist/src/runtime/collections/index.d.ts +1 -2
- package/dist/src/runtime/collections/index.d.ts.map +1 -1
- package/dist/src/runtime/collections/index.js +1 -2
- package/dist/src/runtime/collections/index.js.map +1 -1
- package/dist/src/runtime/collections/library.d.ts +1 -1
- package/dist/src/runtime/collections/library.js +1 -1
- package/dist/src/runtime/collections/plan.d.ts +98 -0
- package/dist/src/runtime/collections/plan.d.ts.map +1 -0
- package/dist/src/runtime/collections/plan.js +98 -0
- package/dist/src/runtime/collections/plan.js.map +1 -0
- package/dist/src/runtime/collections/schematic.d.ts +1 -1
- package/dist/src/runtime/collections/schematic.js +1 -1
- package/dist/src/runtime/collections/table.d.ts +9 -1
- package/dist/src/runtime/collections/table.d.ts.map +1 -1
- package/dist/src/runtime/collections/table.js +1 -7
- package/dist/src/runtime/collections/table.js.map +1 -1
- package/dist/src/runtime/layout/dock.d.ts +2 -2
- package/dist/src/runtime/layout/dock.js +2 -2
- package/dist/src/runtime/layout/index.d.ts +0 -1
- package/dist/src/runtime/layout/index.d.ts.map +1 -1
- package/dist/src/runtime/layout/index.js +0 -1
- package/dist/src/runtime/layout/index.js.map +1 -1
- package/dist/src/shared/plot-gutter.d.ts +6 -23
- package/dist/src/shared/plot-gutter.d.ts.map +1 -1
- package/dist/src/shared/plot-gutter.js +6 -19
- package/dist/src/shared/plot-gutter.js.map +1 -1
- package/dist/src/shared/reify.d.ts +47 -4
- package/dist/src/shared/reify.d.ts.map +1 -1
- package/dist/src/shared/reify.js +62 -4
- package/dist/src/shared/reify.js.map +1 -1
- package/dist/src/slice/breakdown/index.d.ts +27 -0
- package/dist/src/slice/breakdown/index.d.ts.map +1 -1
- package/dist/src/slice/breakdown/types.d.ts +27 -0
- package/dist/src/slice/breakdown/types.d.ts.map +1 -1
- package/dist/src/slice/cohort/index.d.ts +54 -0
- package/dist/src/slice/cohort/index.d.ts.map +1 -1
- package/dist/src/slice/cohort/types.d.ts +27 -0
- package/dist/src/slice/cohort/types.d.ts.map +1 -1
- package/dist/src/slice/filter/index.d.ts +27 -0
- package/dist/src/slice/filter/index.d.ts.map +1 -1
- package/dist/src/slice/filter/types.d.ts +27 -0
- package/dist/src/slice/filter/types.d.ts.map +1 -1
- package/dist/src/slice/index.d.ts +405 -0
- package/dist/src/slice/index.d.ts.map +1 -1
- package/dist/src/slice/legend/index.d.ts +27 -0
- package/dist/src/slice/legend/index.d.ts.map +1 -1
- package/dist/src/slice/legend/types.d.ts +27 -0
- package/dist/src/slice/legend/types.d.ts.map +1 -1
- package/dist/src/slice/range/index.d.ts +60 -18
- package/dist/src/slice/range/index.d.ts.map +1 -1
- package/dist/src/slice/range/index.js +9 -1
- package/dist/src/slice/range/index.js.map +1 -1
- package/dist/src/slice/range/types.d.ts +63 -22
- package/dist/src/slice/range/types.d.ts.map +1 -1
- package/dist/src/slice/range/types.js +12 -5
- package/dist/src/slice/range/types.js.map +1 -1
- package/dist/src/slice/search/index.d.ts +27 -0
- package/dist/src/slice/search/index.d.ts.map +1 -1
- package/dist/src/slice/search/types.d.ts +27 -0
- package/dist/src/slice/search/types.d.ts.map +1 -1
- package/dist/src/slice/summary/index.d.ts +27 -0
- package/dist/src/slice/summary/index.d.ts.map +1 -1
- package/dist/src/slice/summary/types.d.ts +27 -0
- package/dist/src/slice/summary/types.d.ts.map +1 -1
- package/dist/src/style/content.d.ts +4 -6
- package/dist/src/style/content.d.ts.map +1 -1
- package/dist/src/style/content.js +4 -6
- package/dist/src/style/content.js.map +1 -1
- package/dist/src/style/scheme.js +1 -1
- package/dist/src/style/scheme.js.map +1 -1
- package/dist/test/collections/index.d.ts +2 -2
- package/dist/test/collections/index.d.ts.map +1 -1
- package/dist/test/collections/index.js +2 -2
- package/dist/test/collections/index.js.map +1 -1
- package/dist/test/collections/paged-source.examples.d.ts +9 -0
- package/dist/test/collections/paged-source.examples.d.ts.map +1 -0
- package/dist/test/collections/paged-source.examples.js +136 -0
- package/dist/test/collections/paged-source.examples.js.map +1 -0
- package/dist/test/collections/plan.examples.d.ts +125 -0
- package/dist/test/collections/plan.examples.d.ts.map +1 -0
- package/dist/test/collections/plan.examples.js +2939 -0
- package/dist/test/collections/plan.examples.js.map +1 -0
- package/dist/test/contracts/pick.examples.d.ts +6 -0
- package/dist/test/contracts/pick.examples.d.ts.map +1 -0
- package/dist/test/contracts/pick.examples.js +89 -0
- package/dist/test/contracts/pick.examples.js.map +1 -0
- package/dist/test/layout/dock.examples.d.ts +4 -4
- package/dist/test/layout/dock.examples.d.ts.map +1 -1
- package/dist/test/layout/dock.examples.js +34 -16
- package/dist/test/layout/dock.examples.js.map +1 -1
- package/dist/test/slice/slice.examples.d.ts +2 -1
- package/dist/test/slice/slice.examples.d.ts.map +1 -1
- package/dist/test/slice/slice.examples.js +67 -9
- package/dist/test/slice/slice.examples.js.map +1 -1
- package/package.json +3 -3
- package/dist/src/collections/gantt/index.d.ts +0 -377
- package/dist/src/collections/gantt/index.d.ts.map +0 -1
- package/dist/src/collections/gantt/index.js +0 -896
- package/dist/src/collections/gantt/index.js.map +0 -1
- package/dist/src/collections/gantt/types.d.ts +0 -353
- package/dist/src/collections/gantt/types.d.ts.map +0 -1
- package/dist/src/collections/gantt/types.js +0 -207
- package/dist/src/collections/gantt/types.js.map +0 -1
- package/dist/src/collections/planner/index.d.ts +0 -624
- package/dist/src/collections/planner/index.d.ts.map +0 -1
- package/dist/src/collections/planner/index.js +0 -941
- package/dist/src/collections/planner/index.js.map +0 -1
- package/dist/src/collections/planner/types.d.ts +0 -615
- package/dist/src/collections/planner/types.d.ts.map +0 -1
- package/dist/src/collections/planner/types.js +0 -423
- package/dist/src/collections/planner/types.js.map +0 -1
- package/dist/src/layout/aligned-stack/index.d.ts +0 -101
- package/dist/src/layout/aligned-stack/index.d.ts.map +0 -1
- package/dist/src/layout/aligned-stack/index.js +0 -105
- package/dist/src/layout/aligned-stack/index.js.map +0 -1
- package/dist/src/layout/aligned-stack/types.d.ts +0 -50
- package/dist/src/layout/aligned-stack/types.d.ts.map +0 -1
- package/dist/src/layout/aligned-stack/types.js +0 -24
- package/dist/src/layout/aligned-stack/types.js.map +0 -1
- package/dist/src/runtime/collections/gantt.d.ts +0 -67
- package/dist/src/runtime/collections/gantt.d.ts.map +0 -1
- package/dist/src/runtime/collections/gantt.js +0 -58
- package/dist/src/runtime/collections/gantt.js.map +0 -1
- package/dist/src/runtime/collections/planner.d.ts +0 -80
- package/dist/src/runtime/collections/planner.d.ts.map +0 -1
- package/dist/src/runtime/collections/planner.js +0 -76
- package/dist/src/runtime/collections/planner.js.map +0 -1
- package/dist/src/runtime/layout/aligned-stack.d.ts +0 -38
- package/dist/src/runtime/layout/aligned-stack.d.ts.map +0 -1
- package/dist/src/runtime/layout/aligned-stack.js +0 -36
- package/dist/src/runtime/layout/aligned-stack.js.map +0 -1
- package/dist/test/collections/gantt.examples.d.ts +0 -33
- package/dist/test/collections/gantt.examples.d.ts.map +0 -1
- package/dist/test/collections/gantt.examples.js +0 -359
- package/dist/test/collections/gantt.examples.js.map +0 -1
- package/dist/test/collections/planner.examples.d.ts +0 -47
- package/dist/test/collections/planner.examples.d.ts.map +0 -1
- package/dist/test/collections/planner.examples.js +0 -546
- package/dist/test/collections/planner.examples.js.map +0 -1
- package/dist/test/layout/aligned-stack.examples.d.ts +0 -25
- package/dist/test/layout/aligned-stack.examples.d.ts.map +0 -1
- package/dist/test/layout/aligned-stack.examples.js +0 -294
- package/dist/test/layout/aligned-stack.examples.js.map +0 -1
|
@@ -1,359 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "@elaraai/east-ui/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
4
|
-
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
5
|
-
*/
|
|
6
|
-
/** @jsxImportSource @elaraai/east-ui */
|
|
7
|
-
import { ArrayType, BooleanType, East, DateTimeType, FloatType, NullType, OptionType, StringType, StructType, none, some, variant, example } from "@elaraai/east";
|
|
8
|
-
import { DragEventType, State, Style, UIComponentType } from "@elaraai/east-ui";
|
|
9
|
-
import { Badge, Box, Configurator, Gantt, HStack, Library, Reactive, SegmentGroup, Select, Switch, Table, Text, VStack } from "@elaraai/east-ui";
|
|
10
|
-
// ============================================================================
|
|
11
|
-
// Module-scope fixtures (consolidation epic #455, pass 4).
|
|
12
|
-
// ============================================================================
|
|
13
|
-
// The #262 two-axis grammar: lifecycle state + an orthogonal risk tint.
|
|
14
|
-
export const ganttBasic = example({
|
|
15
|
-
keywords: ["Gantt", "Root", "Task", "basic", "timeline"],
|
|
16
|
-
description: "Simple project timeline with tasks",
|
|
17
|
-
fn: East.function([], UIComponentType, (_$) => {
|
|
18
|
-
return (_jsx(Gantt, { data: [
|
|
19
|
-
{ task: "Planning", owner: "Alice", start: new Date("2024-01-01"), end: new Date("2024-01-15") },
|
|
20
|
-
{ task: "Design", owner: "Bob", start: new Date("2024-01-10"), end: new Date("2024-02-01") },
|
|
21
|
-
{ task: "Development", owner: "Charlie", start: new Date("2024-01-20"), end: new Date("2024-03-15") },
|
|
22
|
-
{ task: "Testing", owner: "Diana", start: new Date("2024-03-01"), end: new Date("2024-03-30") },
|
|
23
|
-
], columns: ["task", "owner"], rowSpec: row => ({ tasks: [Gantt.Task({ start: row.start, end: row.end })] }) }));
|
|
24
|
-
}),
|
|
25
|
-
inputs: [],
|
|
26
|
-
});
|
|
27
|
-
/**
|
|
28
|
-
* THE Gantt configurator (pass 4) — one preset axis spans the surface: the
|
|
29
|
-
* now-centred window, the quarter roadmap and week sprint windows, milestone
|
|
30
|
-
* diamonds, progress fills, styled labels, the five lifecycle treatments,
|
|
31
|
-
* the #262 state + status grammar, a 200-row stress window and the #320 fill
|
|
32
|
-
* contract. Every preset is DATA ({window, tier, format, header, rows}
|
|
33
|
-
* through one expression-fed axis + ONE rowSpec over the superset row), so
|
|
34
|
-
* only row-height presence (auto vs pixel) and the bounded-fill Box are
|
|
35
|
-
* prebuilt arms. Variant / density / striped / today compose across every
|
|
36
|
-
* preset; all eleven callbacks (and the ONE onDrag grammar funnel) log to
|
|
37
|
-
* the aside.
|
|
38
|
-
*/
|
|
39
|
-
export const ganttVariants = example({
|
|
40
|
-
keywords: ["Gantt", "Task", "Milestone", "kind", "interim", "release", "progress", "label", "LabelInput", "align", "fontWeight", "fontStyle", "state", "status", "committed", "added", "model", "removed", "rejected", "lifecycle", "risk", "tint", "variant", "line", "outline", "striped", "showToday", "density", "rowHeight", "axis", "window", "tier", "quarter", "week", "month", "format", "roadmap", "sprint", "stress", "fill", "height", "#320", "virtual", "popover", "click", "Reactive", "State", "onTaskClick", "onTaskDrag", "onMilestoneClick", "onDrag", "interactive", "SegmentGroup", "Switch", "Configurator", "getTag", "configurator"],
|
|
41
|
-
description: "Gantt configurator — a preset axis over window, milestone, progress, label, lifecycle, status, stress and fill demos plus variant, density, row-height, striped and today controls; every callback logs to the aside",
|
|
42
|
-
fn: East.function([], UIComponentType, (_$) => {
|
|
43
|
-
const GANTT_ROW = StructType({
|
|
44
|
-
name: StringType,
|
|
45
|
-
start: DateTimeType,
|
|
46
|
-
end: DateTimeType,
|
|
47
|
-
progress: FloatType,
|
|
48
|
-
state: StringType,
|
|
49
|
-
status: StringType,
|
|
50
|
-
styled: BooleanType,
|
|
51
|
-
milestone: OptionType(StructType({ date: DateTimeType, label: StringType, release: BooleanType })),
|
|
52
|
-
});
|
|
53
|
-
const GANTT_QUARTER_ROWS = [
|
|
54
|
-
{ name: "Platform", start: new Date("2024-01-01"), end: new Date("2024-09-30"), progress: 60.0, state: "added", status: "", styled: false, milestone: none },
|
|
55
|
-
{ name: "Mobile", start: new Date("2024-06-01"), end: new Date("2025-03-31"), progress: 35.0, state: "added", status: "", styled: false, milestone: none },
|
|
56
|
-
{ name: "Analytics", start: new Date("2025-01-01"), end: new Date("2025-12-31"), progress: 10.0, state: "added", status: "", styled: false, milestone: none },
|
|
57
|
-
];
|
|
58
|
-
const GANTT_WEEK_ROWS = [
|
|
59
|
-
{ name: "Spec", start: new Date("2024-04-01"), end: new Date("2024-04-05"), progress: 100.0, state: "committed", status: "", styled: false, milestone: none },
|
|
60
|
-
{ name: "Implement", start: new Date("2024-04-04"), end: new Date("2024-04-18"), progress: 55.0, state: "added", status: "", styled: false, milestone: none },
|
|
61
|
-
{ name: "Review", start: new Date("2024-04-17"), end: new Date("2024-04-24"), progress: 0.0, state: "added", status: "", styled: false, milestone: none },
|
|
62
|
-
];
|
|
63
|
-
const GANTT_MILESTONE_ROWS = [
|
|
64
|
-
{ name: "Sprint 1", start: new Date("2024-01-01"), end: new Date("2024-01-14"), progress: 100.0, state: "committed", status: "", styled: false, milestone: some({ date: new Date("2024-01-14"), label: "Checkpoint", release: false }) },
|
|
65
|
-
{ name: "Sprint 2", start: new Date("2024-01-15"), end: new Date("2024-01-28"), progress: 70.0, state: "added", status: "", styled: false, milestone: some({ date: new Date("2024-01-28"), label: "Checkpoint", release: false }) },
|
|
66
|
-
{ name: "Sprint 3", start: new Date("2024-01-29"), end: new Date("2024-02-11"), progress: 20.0, state: "added", status: "", styled: false, milestone: some({ date: new Date("2024-02-11"), label: "Release", release: true }) },
|
|
67
|
-
];
|
|
68
|
-
const GANTT_PROGRESS_ROWS = [
|
|
69
|
-
{ name: "Backend API", start: new Date("2024-01-01"), end: new Date("2024-02-15"), progress: 100.0, state: "added", status: "", styled: false, milestone: none },
|
|
70
|
-
{ name: "Frontend UI", start: new Date("2024-01-15"), end: new Date("2024-03-01"), progress: 75.0, state: "added", status: "", styled: false, milestone: none },
|
|
71
|
-
{ name: "Integration", start: new Date("2024-02-01"), end: new Date("2024-03-15"), progress: 40.0, state: "added", status: "", styled: false, milestone: none },
|
|
72
|
-
{ name: "QA Testing", start: new Date("2024-02-15"), end: new Date("2024-04-01"), progress: 10.0, state: "added", status: "", styled: false, milestone: none },
|
|
73
|
-
];
|
|
74
|
-
const GANTT_LABEL_ROWS = [
|
|
75
|
-
{ name: "Plain label", start: new Date("2024-01-01"), end: new Date("2024-01-15"), progress: 0.0, state: "added", status: "", styled: false, milestone: none },
|
|
76
|
-
{ name: "Styled label", start: new Date("2024-01-20"), end: new Date("2024-02-05"), progress: 0.0, state: "added", status: "", styled: true, milestone: none },
|
|
77
|
-
];
|
|
78
|
-
const GANTT_LIFECYCLE_ROWS = [
|
|
79
|
-
{ name: "Baseline build", start: new Date("2024-01-01"), end: new Date("2024-01-24"), progress: 100.0, state: "committed", status: "", styled: false, milestone: none },
|
|
80
|
-
{ name: "Operator draft", start: new Date("2024-01-08"), end: new Date("2024-02-02"), progress: 40.0, state: "added", status: "", styled: false, milestone: none },
|
|
81
|
-
{ name: "Model suggestion", start: new Date("2024-01-15"), end: new Date("2024-02-10"), progress: 0.0, state: "model", status: "", styled: false, milestone: none },
|
|
82
|
-
{ name: "Proposed cut", start: new Date("2024-01-05"), end: new Date("2024-01-30"), progress: 60.0, state: "removed", status: "", styled: false, milestone: none },
|
|
83
|
-
{ name: "Declined plan", start: new Date("2024-01-20"), end: new Date("2024-02-14"), progress: 20.0, state: "rejected", status: "", styled: false, milestone: none },
|
|
84
|
-
];
|
|
85
|
-
const GANTT_STATUS_ROWS = [
|
|
86
|
-
{ name: "User Auth", start: new Date("2024-01-01"), end: new Date("2024-01-20"), progress: 100.0, state: "committed", status: "success", styled: false, milestone: none },
|
|
87
|
-
{ name: "Login Issue", start: new Date("2024-01-10"), end: new Date("2024-01-15"), progress: 20.0, state: "added", status: "danger", styled: false, milestone: none },
|
|
88
|
-
{ name: "Performance", start: new Date("2024-01-15"), end: new Date("2024-02-01"), progress: 55.0, state: "added", status: "info", styled: false, milestone: none },
|
|
89
|
-
{ name: "Dashboard", start: new Date("2024-01-20"), end: new Date("2024-02-15"), progress: 90.0, state: "committed", status: "success", styled: false, milestone: none },
|
|
90
|
-
];
|
|
91
|
-
const GANTT_STRESS_ROWS = East.Array.range(0n, 200n).map((_$, i) => ({
|
|
92
|
-
name: East.str `Task ${i}`,
|
|
93
|
-
start: East.value(new Date("2024-01-01T00:00:00Z")).addDays(i.multiply(3n)),
|
|
94
|
-
end: East.value(new Date("2024-01-01T00:00:00Z")).addDays(i.multiply(3n).add(14n)),
|
|
95
|
-
progress: i.remainder(100n).toFloat(),
|
|
96
|
-
state: "added",
|
|
97
|
-
status: "",
|
|
98
|
-
styled: false,
|
|
99
|
-
milestone: East.value(none, OptionType(StructType({ date: DateTimeType, label: StringType, release: BooleanType }))),
|
|
100
|
-
}));
|
|
101
|
-
const day = 24 * 60 * 60 * 1000;
|
|
102
|
-
return (_jsx(Reactive, { children: $ => {
|
|
103
|
-
const presetKeys = $.const([
|
|
104
|
-
"today", "quarter", "week", "milestones", "progress",
|
|
105
|
-
"labels", "lifecycle", "status", "stress",
|
|
106
|
-
], ArrayType(StringType));
|
|
107
|
-
const variants = $.const([variant("line", null), variant("outline", null)], ArrayType(Table.Types.Variant));
|
|
108
|
-
const densities = $.const([
|
|
109
|
-
variant("condensed", null), variant("compact", null), variant("comfortable", null),
|
|
110
|
-
], ArrayType(Style.Types.Density));
|
|
111
|
-
// The now-centred rows keep `Date.now()` in-body (the
|
|
112
|
-
// no-build-time-clock rule).
|
|
113
|
-
const todayRows = $.const([
|
|
114
|
-
{ name: "Platform v2", start: new Date(Date.now() - 60 * day), end: new Date(Date.now() + 60 * day), progress: 50.0, state: "added", status: "", styled: false, milestone: some({ date: new Date(Date.now() + 60 * day), label: "Release", release: true }) },
|
|
115
|
-
{ name: "UI Refresh", start: new Date(Date.now() - 45 * day), end: new Date(Date.now() + 15 * day), progress: 70.0, state: "added", status: "", styled: false, milestone: none },
|
|
116
|
-
{ name: "CI/CD Pipeline", start: new Date(Date.now() - 20 * day), end: new Date(Date.now() + 30 * day), progress: 30.0, state: "added", status: "", styled: false, milestone: none },
|
|
117
|
-
{ name: "Test Automation", start: new Date(Date.now() - 10 * day), end: new Date(Date.now() + 75 * day), progress: 10.0, state: "added", status: "", styled: false, milestone: none },
|
|
118
|
-
], ArrayType(GANTT_ROW));
|
|
119
|
-
const stressRows = $.const(GANTT_STRESS_ROWS, ArrayType(GANTT_ROW));
|
|
120
|
-
// Every preset is data: window + tier + format + header + rows.
|
|
121
|
-
const presets = $.const([
|
|
122
|
-
{ key: "today", min: new Date(Date.now() - 75 * day), max: new Date(Date.now() + 90 * day), tier: variant("month", null), format: "MMM", header: "Project", rows: todayRows },
|
|
123
|
-
{ key: "quarter", min: new Date("2024-01-01"), max: new Date("2025-12-31"), tier: variant("quarter", null), format: "MMM YYYY", header: "Epic", rows: GANTT_QUARTER_ROWS },
|
|
124
|
-
{ key: "week", min: new Date("2024-04-01"), max: new Date("2024-04-26"), tier: variant("week", null), format: "MMM DD", header: "Task", rows: GANTT_WEEK_ROWS },
|
|
125
|
-
{ key: "milestones", min: new Date("2023-12-28"), max: new Date("2024-02-18"), tier: variant("week", null), format: "MMM DD", header: "Sprint", rows: GANTT_MILESTONE_ROWS },
|
|
126
|
-
{ key: "progress", min: new Date("2023-12-28"), max: new Date("2024-04-08"), tier: variant("month", null), format: "MMM", header: "Task", rows: GANTT_PROGRESS_ROWS },
|
|
127
|
-
{ key: "labels", min: new Date("2023-12-28"), max: new Date("2024-02-12"), tier: variant("week", null), format: "MMM DD", header: "Row", rows: GANTT_LABEL_ROWS },
|
|
128
|
-
{ key: "lifecycle", min: new Date("2023-12-28"), max: new Date("2024-02-21"), tier: variant("week", null), format: "MMM DD", header: "State", rows: GANTT_LIFECYCLE_ROWS },
|
|
129
|
-
{ key: "status", min: new Date("2023-12-28"), max: new Date("2024-02-21"), tier: variant("week", null), format: "MMM DD", header: "Name", rows: GANTT_STATUS_ROWS },
|
|
130
|
-
{ key: "stress", min: new Date("2023-12-01"), max: new Date("2025-10-01"), tier: variant("quarter", null), format: "MMM YYYY", header: "Task", rows: stressRows },
|
|
131
|
-
], ArrayType(StructType({ key: StringType, min: DateTimeType, max: DateTimeType, tier: Gantt.Types.Tier, format: StringType, header: StringType, rows: ArrayType(GANTT_ROW) })));
|
|
132
|
-
const presetBind = $.let(State.bind([StringType], "gantt_preset", "today"));
|
|
133
|
-
const variantBind = $.let(State.bind([StringType], "gantt_variant", "line"));
|
|
134
|
-
const densityBind = $.let(State.bind([StringType], "gantt_density", "compact"));
|
|
135
|
-
const fillBind = $.let(State.bind([BooleanType], "gantt_fill", false));
|
|
136
|
-
const stripedBind = $.let(State.bind([BooleanType], "gantt_striped", true));
|
|
137
|
-
const todayBind = $.let(State.bind([BooleanType], "gantt_showtoday", true));
|
|
138
|
-
const lastEventBind = $.let(State.bind([StringType], "gantt_last_event", ""));
|
|
139
|
-
const pKey = $.let(presetBind.read());
|
|
140
|
-
const vKey = $.let(variantBind.read());
|
|
141
|
-
const dKey = $.let(densityBind.read());
|
|
142
|
-
const fillOn = $.let(fillBind.read());
|
|
143
|
-
const stripedOn = $.let(stripedBind.read());
|
|
144
|
-
const todayOn = $.let(todayBind.read());
|
|
145
|
-
const lastEvent = $.let(lastEventBind.read());
|
|
146
|
-
const onPreset = $.const(East.function([StringType], NullType, ($, next) => { $(presetBind.write(next)); }));
|
|
147
|
-
const onVariant = $.const(East.function([StringType], NullType, ($, next) => { $(variantBind.write(next)); }));
|
|
148
|
-
const onDensity = $.const(East.function([StringType], NullType, ($, next) => { $(densityBind.write(next)); }));
|
|
149
|
-
const onFill = $.const(East.function([BooleanType], NullType, ($, next) => { $(fillBind.write(next)); }));
|
|
150
|
-
const onStriped = $.const(East.function([BooleanType], NullType, ($, next) => { $(stripedBind.write(next)); }));
|
|
151
|
-
const onToday = $.const(East.function([BooleanType], NullType, ($, next) => { $(todayBind.write(next)); }));
|
|
152
|
-
// The interactive surface — every callback writes the event line
|
|
153
|
-
// the aside shows.
|
|
154
|
-
const onRowClick = $.const(East.function([Table.Types.RowClickEvent], NullType, ($, event) => {
|
|
155
|
-
$(lastEventBind.write(East.str `onRowClick: row ${event.rowIndex}`));
|
|
156
|
-
}));
|
|
157
|
-
const onRowDoubleClick = $.const(East.function([Table.Types.RowClickEvent], NullType, ($, event) => {
|
|
158
|
-
$(lastEventBind.write(East.str `onRowDoubleClick: row ${event.rowIndex}`));
|
|
159
|
-
}));
|
|
160
|
-
const onCellClick = $.const(East.function([Table.Types.CellClickEvent], NullType, ($, event) => {
|
|
161
|
-
$(lastEventBind.write(East.str `onCellClick: row ${event.rowIndex}, col ${event.columnKey}`));
|
|
162
|
-
}));
|
|
163
|
-
const onCellDoubleClick = $.const(East.function([Table.Types.CellClickEvent], NullType, ($, event) => {
|
|
164
|
-
$(lastEventBind.write(East.str `onCellDoubleClick: row ${event.rowIndex}, col ${event.columnKey}`));
|
|
165
|
-
}));
|
|
166
|
-
const onSortChange = $.const(East.function([Table.Types.SortEvent], NullType, ($, event) => {
|
|
167
|
-
$(lastEventBind.write(East.str `onSortChange: ${event.columnKey} - ${event.sortDirection.getTag()}`));
|
|
168
|
-
}));
|
|
169
|
-
const onTaskClick = $.const(East.function([Gantt.Types.TaskClickEvent], NullType, ($, event) => {
|
|
170
|
-
$(lastEventBind.write(East.str `onTaskClick: row ${event.rowIndex}, task ${event.taskIndex}`));
|
|
171
|
-
}));
|
|
172
|
-
const onTaskDoubleClick = $.const(East.function([Gantt.Types.TaskClickEvent], NullType, ($, event) => {
|
|
173
|
-
$(lastEventBind.write(East.str `onTaskDoubleClick: row ${event.rowIndex}, task ${event.taskIndex}`));
|
|
174
|
-
}));
|
|
175
|
-
// ONE grammar funnel (#268): task-body drags arrive as `move`,
|
|
176
|
-
// edge drags as `resize`, Library drops as `add`.
|
|
177
|
-
const onDrag = $.const(East.function([DragEventType], NullType, ($, event) => {
|
|
178
|
-
$.match(event, {
|
|
179
|
-
move: ($, mv) => { $(lastEventBind.write(East.str `onDrag move: ${mv.from.row}/${mv.from.event.getTag()} → ${mv.to.slot}`)); },
|
|
180
|
-
resize: ($, rz) => { $(lastEventBind.write(East.str `onDrag resize: ${rz.event.row} ${rz.edge.getTag()} edge → ${rz.event.slot}`)); },
|
|
181
|
-
add: ($, add) => { $(lastEventBind.write(East.str `onDrag add: ${add.from.key} → row ${add.into.row}`)); },
|
|
182
|
-
remove: ($, rm) => { $(lastEventBind.write(East.str `onDrag remove: ${rm.from.row}`)); },
|
|
183
|
-
});
|
|
184
|
-
}));
|
|
185
|
-
const onTaskProgressChange = $.const(East.function([Gantt.Types.TaskProgressChangeEvent], NullType, ($, event) => {
|
|
186
|
-
$(lastEventBind.write(East.str `onTaskProgressChange: row ${event.rowIndex}, task ${event.taskIndex}, progress ${event.newProgress}`));
|
|
187
|
-
}));
|
|
188
|
-
const onMilestoneClick = $.const(East.function([Gantt.Types.MilestoneClickEvent], NullType, ($, event) => {
|
|
189
|
-
$(lastEventBind.write(East.str `onMilestoneClick: row ${event.rowIndex}, milestone ${event.milestoneIndex}`));
|
|
190
|
-
}));
|
|
191
|
-
const onMilestoneDoubleClick = $.const(East.function([Gantt.Types.MilestoneClickEvent], NullType, ($, event) => {
|
|
192
|
-
$(lastEventBind.write(East.str `onMilestoneDoubleClick: row ${event.rowIndex}, milestone ${event.milestoneIndex}`));
|
|
193
|
-
}));
|
|
194
|
-
const sel = $.let(presets.filter((_$, o) => o.key.equal(pKey)).get(0n, _$ => presets.get(0n)));
|
|
195
|
-
const variantSel = $.let(variants.filter((_$, v) => v.getTag().equal(vKey)).get(0n));
|
|
196
|
-
const densitySel = $.let(densities.filter((_$, v) => v.getTag().equal(dKey)).get(0n));
|
|
197
|
-
// ONE rowSpec over the superset row: lifecycle state, risk status,
|
|
198
|
-
// milestone diamonds and the styled label all come off row fields.
|
|
199
|
-
const stateOf = $.const(East.function([StringType], Gantt.Types.State, (_$, tag) => tag.equal("committed").ifElse(_$ => variant("committed", null), _$ => tag.equal("rejected").ifElse(_$ => variant("rejected", null), _$ => tag.equal("model").ifElse(_$ => variant("proposed", variant("model", null)), _$ => tag.equal("removed").ifElse(_$ => variant("proposed", variant("removed", null)), _$ => variant("proposed", variant("added", null))))))));
|
|
200
|
-
const statusOf = $.const(East.function([StringType], Gantt.Types.Status, (_$, tag) => tag.equal("success").ifElse(_$ => East.value(variant("success", null), Gantt.Types.Status), _$ => tag.equal("danger").ifElse(_$ => East.value(variant("danger", null), Gantt.Types.Status), _$ => East.value(variant("info", null), Gantt.Types.Status)))));
|
|
201
|
-
const noMilestones = $.const([], ArrayType(Gantt.Types.Milestone));
|
|
202
|
-
// ONE live gantt — the Fill switch feeds the height expression (an
|
|
203
|
-
// empty height reads as unbounded; the wrapper Box only bounds when
|
|
204
|
-
// filling).
|
|
205
|
-
const boxHeight = $.let(fillOn.ifElse(_$ => "220px", _$ => ""));
|
|
206
|
-
const ganttHeight = $.let(fillOn.ifElse(_$ => "fill", _$ => ""));
|
|
207
|
-
const gantt = $.const(_jsx(Gantt, { id: "gantt-live", variant: variantSel, striped: stripedOn, showToday: todayOn, density: densitySel, height: ganttHeight, axis: { range: { min: sel.min, max: sel.max }, tier: sel.tier, format: sel.format }, onRowClick: onRowClick, onRowDoubleClick: onRowDoubleClick, onCellClick: onCellClick, onCellDoubleClick: onCellDoubleClick, onSortChange: onSortChange, onTaskClick: onTaskClick, onTaskDoubleClick: onTaskDoubleClick, onDrag: onDrag, onTaskProgressChange: onTaskProgressChange, onMilestoneClick: onMilestoneClick, onMilestoneDoubleClick: onMilestoneDoubleClick, data: sel.rows, columns: { name: { header: sel.header, width: "180px" } }, rowSpec: row => ({
|
|
208
|
-
tasks: row.styled.ifElse(_$ => [Gantt.Task({
|
|
209
|
-
start: row.start, end: row.end,
|
|
210
|
-
label: { value: row.name, align: "center", verticalAlign: "center", color: "fg.warning", fontWeight: "bold", fontStyle: "italic" },
|
|
211
|
-
progress: row.progress, state: stateOf(row.state),
|
|
212
|
-
})], _$ => row.status.equal("").ifElse(_$ => [Gantt.Task({
|
|
213
|
-
start: row.start, end: row.end, label: row.name,
|
|
214
|
-
progress: row.progress, state: stateOf(row.state),
|
|
215
|
-
popover: (_jsxs(VStack, { gap: "2", children: [_jsx(Text, { fontWeight: "bold", children: row.name }), _jsx(Text, { children: East.str `From ${row.start} to ${row.end}` })] })),
|
|
216
|
-
})], _$ => [Gantt.Task({
|
|
217
|
-
start: row.start, end: row.end, label: row.name,
|
|
218
|
-
progress: row.progress, state: stateOf(row.state), status: statusOf(row.status),
|
|
219
|
-
})])),
|
|
220
|
-
milestones: row.milestone.match({
|
|
221
|
-
some: (_$, m) => [Gantt.Milestone({
|
|
222
|
-
date: m.date, label: m.label,
|
|
223
|
-
kind: m.release.ifElse(_$ => variant("release", null), _$ => variant("interim", null)),
|
|
224
|
-
})],
|
|
225
|
-
none: (_$) => noMilestones,
|
|
226
|
-
}),
|
|
227
|
-
}) }));
|
|
228
|
-
const preview = $.const(_jsx(Box, { width: "100%", height: boxHeight, overflow: "hidden", children: gantt }));
|
|
229
|
-
return (_jsx(Configurator, { controls: [
|
|
230
|
-
Configurator.Control("Preset", pKey, _jsx(Select, { value: pKey, onChange: onPreset, size: "sm", items: presetKeys.map((_$, s) => Select.Item(s, s)) })),
|
|
231
|
-
Configurator.Control("Variant", vKey, _jsx(SegmentGroup, { value: vKey, onChange: onVariant, size: "sm", items: variants.map((_$, v) => SegmentGroup.Item(v.getTag(), _jsx(Text, { children: v.getTag().upperCase() }))) })),
|
|
232
|
-
Configurator.Control("Density", dKey, _jsx(SegmentGroup, { value: dKey, onChange: onDensity, size: "sm", items: densities.map((_$, v) => SegmentGroup.Item(v.getTag(), _jsx(Text, { children: v.getTag().upperCase() }))) })),
|
|
233
|
-
Configurator.Slot("Chrome", _jsxs(HStack, { gap: "5", align: "center", wrap: "wrap", children: [_jsx(Switch, { checked: stripedOn, label: "Striped", onChange: onStriped }), _jsx(Switch, { checked: fillOn, label: "Fill", onChange: onFill }), _jsx(Switch, { checked: todayOn, label: "Today", onChange: onToday })] })),
|
|
234
|
-
], preview: preview, aside: {
|
|
235
|
-
label: "Events · Reactive",
|
|
236
|
-
body: (_jsx(Badge, { colorPalette: "brand", variant: "outline", children: East.equal(lastEvent.length(), 0n).ifElse(_$ => "Interact with the Gantt chart", _$ => lastEvent) })),
|
|
237
|
-
}, spec: [
|
|
238
|
-
Configurator.Spec("Tier", sel.tier.getTag()),
|
|
239
|
-
Configurator.Spec("Rows", East.print(sel.rows.size())),
|
|
240
|
-
] }));
|
|
241
|
-
} }));
|
|
242
|
-
}),
|
|
243
|
-
inputs: [],
|
|
244
|
-
});
|
|
245
|
-
export const ganttReactiveDrag = example({
|
|
246
|
-
keywords: ["Gantt", "Reactive", "State", "onDrag", "move", "drag", "dragStep", "grammar"],
|
|
247
|
-
description: "Drag task to update state via the shared grammar — the move event's to.slot is the snapped ISO instant; position persists after re-render",
|
|
248
|
-
fn: East.function([], UIComponentType, (_$) => (_jsx(Reactive, { children: $ => {
|
|
249
|
-
const taskStartBind = $.let(State.bind([DateTimeType], "gantt_task_start", new Date("2024-01-15")));
|
|
250
|
-
const taskStart = $.let(taskStartBind.read());
|
|
251
|
-
const taskEnd = $.let(taskStart.addDays(14));
|
|
252
|
-
const onDrag = $.const(East.function([DragEventType], NullType, ($, event) => {
|
|
253
|
-
$.match(event, {
|
|
254
|
-
// The grammar move: `to.slot` carries the snapped ISO
|
|
255
|
-
// instant the bar landed on (component-owned snapping).
|
|
256
|
-
move: ($, mv) => { $(taskStartBind.write(mv.to.slot.parse(DateTimeType))); },
|
|
257
|
-
});
|
|
258
|
-
}));
|
|
259
|
-
return (_jsxs(VStack, { gap: "3", align: "stretch", children: [_jsx(Gantt, { id: "gantt-drag", onDrag: onDrag, dragStep: variant("days", 1), durationStep: variant("days", 1), data: [{ name: "Draggable Task" }], columns: { name: { header: "Task" } }, rowSpec: _row => ({
|
|
260
|
-
tasks: [Gantt.Task({
|
|
261
|
-
start: taskStart,
|
|
262
|
-
end: taskEnd,
|
|
263
|
-
label: "Drag me!",
|
|
264
|
-
// proposed so the bar is editable (the ⠿ grip shows);
|
|
265
|
-
// committed bars are locked per spec.
|
|
266
|
-
state: "added",
|
|
267
|
-
})],
|
|
268
|
-
}) }), _jsx(Text, { textStyle: "body-sm", color: "fg.muted", children: East.str `Start: ${taskStart}` })] }));
|
|
269
|
-
} }))),
|
|
270
|
-
inputs: [],
|
|
271
|
-
});
|
|
272
|
-
/**
|
|
273
|
-
* Review chrome (#263) — the shared per-row Approve / Reject decision column
|
|
274
|
-
* (sticky beside the timeline) plus the commitBar batch foot, identical to
|
|
275
|
-
* the Planner's. A machine-written schedule under review: model-ghost bars
|
|
276
|
-
* on flagged rows resting `pending` (quiet warning dot), clean rows resting
|
|
277
|
-
* `approved`. Callbacks receive the acted-on `{ rowIndex }`.
|
|
278
|
-
*/
|
|
279
|
-
export const ganttReview = example({
|
|
280
|
-
keywords: ["Gantt", "review", "approve", "reject", "approval", "decision", "batch", "rerun", "status", "row", "model"],
|
|
281
|
-
description: "Optional per-row approval on a machine-written schedule — Decision column + batch foot, model-ghost bars on flagged pending rows",
|
|
282
|
-
fn: East.function([], UIComponentType, (_$) => {
|
|
283
|
-
return (_jsx(Gantt, { data: [
|
|
284
|
-
{ name: "Press retool", crew: "Crew A", flagged: false, start: new Date("2024-01-02"), end: new Date("2024-01-12") },
|
|
285
|
-
{ name: "Line balance", crew: "Crew B", flagged: true, start: new Date("2024-01-08"), end: new Date("2024-01-22") },
|
|
286
|
-
{ name: "Paint refit", crew: "Crew C", flagged: false, start: new Date("2024-01-15"), end: new Date("2024-01-29") },
|
|
287
|
-
{ name: "QA sweep", crew: "Crew A", flagged: true, start: new Date("2024-01-24"), end: new Date("2024-02-06") },
|
|
288
|
-
], columns: { name: { header: "Job" }, crew: { header: "Crew" } }, rowSpec: row => ({
|
|
289
|
-
tasks: [Gantt.Task({
|
|
290
|
-
start: row.start,
|
|
291
|
-
end: row.end,
|
|
292
|
-
label: row.name,
|
|
293
|
-
// The machine's suggestion on flagged rows renders as the
|
|
294
|
-
// dashed model ghost; clean rows are operator drafts.
|
|
295
|
-
state: East.value(row.flagged.ifElse(_$ => variant("proposed", variant("model", null)), _$ => variant("proposed", variant("added", null))), Gantt.Types.State),
|
|
296
|
-
})],
|
|
297
|
-
status: row.flagged.ifElse(() => some(variant("warning", null)), () => none),
|
|
298
|
-
approval: row.flagged.ifElse(() => some(variant("pending", null)), () => some(variant("approved", null))),
|
|
299
|
-
}), review: {
|
|
300
|
-
columnLabel: "Decision",
|
|
301
|
-
rerunLabel: "Rerun",
|
|
302
|
-
summary: _jsx(Text, { color: "fg.muted", children: "4 jobs \u00B7 2 flagged need a call \u00B7 +6h float" }),
|
|
303
|
-
onApprove: East.function([Gantt.Types.ApproveEvent], NullType, _$ => null),
|
|
304
|
-
onReject: East.function([Gantt.Types.ApproveEvent], NullType, _$ => null),
|
|
305
|
-
onApproveAll: East.function([], NullType, _$ => null),
|
|
306
|
-
onRejectAll: East.function([], NullType, _$ => null),
|
|
307
|
-
onRerun: East.function([], NullType, _$ => null),
|
|
308
|
-
} }));
|
|
309
|
-
}),
|
|
310
|
-
inputs: [],
|
|
311
|
-
});
|
|
312
|
-
/**
|
|
313
|
-
* Library → Gantt add (#268) — the Gantt registers as an ordinary drag
|
|
314
|
-
* target via the shared grammar: drag a crew card anywhere onto the
|
|
315
|
-
* timeline; the drop resolves to (row index key, snapped ISO instant),
|
|
316
|
-
* lands as an optimistic `proposed(added)` bar, and arrives through the ONE
|
|
317
|
-
* `onDrag` funnel. A `canDrop` veto (⊘ while hovering) keeps crews off the
|
|
318
|
-
* committed first row.
|
|
319
|
-
*/
|
|
320
|
-
export const ganttLibraryDnd = example({
|
|
321
|
-
keywords: ["Gantt", "Library", "DnD", "drag", "add", "move", "resize", "onDrag", "canDrop", "target", "proposed", "grammar"],
|
|
322
|
-
description: "Library + Gantt DnD — drag a crew card onto the timeline (proposed(added) bar at the snapped instant, canDrop ⊘ on the committed row); move/resize report through the same onDrag",
|
|
323
|
-
fn: East.function([], UIComponentType, (_$) => (_jsx(Reactive, { children: $ => {
|
|
324
|
-
const lastBind = $.let(State.bind([StringType], "gantt_last_drop", "none yet"));
|
|
325
|
-
const onDrag = $.const(East.function([DragEventType], NullType, ($, event) => {
|
|
326
|
-
$.match(event, {
|
|
327
|
-
add: ($, add) => { $(lastBind.write(East.str `add ${add.from.key} → row ${add.into.row} @ ${add.into.slot}`)); },
|
|
328
|
-
move: ($, mv) => { $(lastBind.write(East.str `move row ${mv.from.row} → ${mv.to.slot}`)); },
|
|
329
|
-
resize: ($, rz) => { $(lastBind.write(East.str `resize ${rz.edge.getTag()} → ${rz.event.slot}`)); },
|
|
330
|
-
remove: ($, rm) => { $(lastBind.write(East.str `remove row ${rm.from.row} → ${rm.to.getTag()}`)); },
|
|
331
|
-
});
|
|
332
|
-
}));
|
|
333
|
-
// Row 0 is committed history — no drops land there.
|
|
334
|
-
const canDrop = $.const(East.function([DragEventType], BooleanType, ($, event) => event.match({
|
|
335
|
-
add: (_$, add) => add.into.row.notEqual("0"),
|
|
336
|
-
move: (_$) => East.value(true),
|
|
337
|
-
remove: (_$) => East.value(true),
|
|
338
|
-
resize: (_$) => East.value(true),
|
|
339
|
-
})));
|
|
340
|
-
const last = $.let(lastBind.read());
|
|
341
|
-
return (_jsxs(VStack, { gap: "4", align: "stretch", children: [_jsx(Library, { id: "crews", data: [
|
|
342
|
-
{ id: "crew-a", name: "Crew A", trade: "rigging" },
|
|
343
|
-
{ id: "crew-b", name: "Crew B", trade: "fit-out" },
|
|
344
|
-
], item: c => ({ key: c.id, label: c.name, sublabel: c.trade, icon: "user" }) }), _jsx(Gantt, { id: "schedule", sources: ["crews"], onDrag: onDrag, canDrop: canDrop, dragStep: variant("days", 1), data: [
|
|
345
|
-
{ name: "Baseline", start: new Date("2024-01-01"), end: new Date("2024-01-20") },
|
|
346
|
-
{ name: "Fit-out", start: new Date("2024-01-10"), end: new Date("2024-02-05") },
|
|
347
|
-
{ name: "Commissioning", start: new Date("2024-01-25"), end: new Date("2024-02-15") },
|
|
348
|
-
], columns: { name: { header: "Phase" } }, rowSpec: row => ({
|
|
349
|
-
tasks: [Gantt.Task({
|
|
350
|
-
start: row.start,
|
|
351
|
-
end: row.end,
|
|
352
|
-
label: row.name,
|
|
353
|
-
state: East.value(row.name.equal("Baseline").ifElse(_$ => variant("committed", null), _$ => variant("proposed", variant("added", null))), Gantt.Types.State),
|
|
354
|
-
})],
|
|
355
|
-
}) }), _jsx(Text.MonoLabel, { children: East.str `LAST DROP · ${last}` })] }));
|
|
356
|
-
} }))),
|
|
357
|
-
inputs: [],
|
|
358
|
-
});
|
|
359
|
-
//# sourceMappingURL=gantt.examples.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gantt.examples.js","sourceRoot":"","sources":["../../../test/collections/gantt.examples.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AACH,wCAAwC;AACxC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAClK,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEjJ,+EAA+E;AAC/E,2DAA2D;AAC3D,+EAA+E;AAE/E,wEAAwE;AAExE,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC;IAC9B,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC;IACxD,WAAW,EAAE,oCAAoC;IACjD,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE;QAC1C,OAAO,CACH,KAAC,KAAK,IACF,IAAI,EAAE;gBACF,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;gBAChG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;gBAC5F,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;gBACrG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;aAClG,EACD,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAC/E,CACL,CAAC;IACN,CAAC,CAAC;IACF,MAAM,EAAE,EAAE;CACb,CAAC,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC;IACjC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,CAAC;IAC5nB,WAAW,EAAE,sNAAsN;IACnO,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE;QAC1C,MAAM,SAAS,GAAG,UAAU,CAAC;YACzB,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,YAAY;YACnB,GAAG,EAAE,YAAY;YACjB,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,WAAW;YACnB,SAAS,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;SACrG,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG;YACvB,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YAC5J,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YAC1J,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;SAChK,CAAC;QACF,MAAM,eAAe,GAAG;YACpB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YAC7J,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YAC7J,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;SAC5J,CAAC;QACF,MAAM,oBAAoB,GAAG;YACzB,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;YACxO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;YACnO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE;SAClO,CAAC;QACF,MAAM,mBAAmB,GAAG;YACxB,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YAChK,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YAC/J,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YAC/J,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;SACjK,CAAC;QACF,MAAM,gBAAgB,GAAG;YACrB,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YAC9J,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;SACjK,CAAC;QACF,MAAM,oBAAoB,GAAG;YACzB,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YACvK,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YAClK,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YACnK,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YAClK,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;SACvK,CAAC;QACF,MAAM,iBAAiB,GAAG;YACtB,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YACzK,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YACrK,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YACnK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;SAC3K,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACjE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAA,QAAQ,CAAC,EAAE;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC3E,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClF,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;YACrC,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;SACvH,CAAC,CAAC,CAAC;QACJ,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAChC,OAAO,CACP,KAAC,QAAQ,cAAE,CAAC,CAAC,EAAE;gBACX,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC;oBACvB,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU;oBACpD,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ;iBAC5C,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC1B,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5G,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;oBACtB,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC;iBACrF,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAEnC,sDAAsD;gBACtD,6BAA6B;gBAC7B,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;oBACtB,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE;oBAC7P,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;oBAChL,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;oBACpL,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;iBACxL,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;gBAEzB,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;gBAEpE,gEAAgE;gBAChE,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC;oBACpB,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;oBAC7K,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE;oBAC1K,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE;oBAC/J,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE;oBAC5K,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE;oBACrK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE;oBACjK,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE;oBAC1K,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE;oBACnK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;iBACpK,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEjL,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC5E,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC7E,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;gBAChF,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;gBACvE,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC5E,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC5E,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;gBAE9E,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtC,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5C,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;gBACxC,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;gBAE9C,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7G,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/G,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/G,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1G,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChH,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE5G,iEAAiE;gBACjE,mBAAmB;gBACnB,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;oBACzF,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,mBAAmB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACxE,CAAC,CAAC,CAAC,CAAC;gBACJ,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;oBAC/F,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,yBAAyB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC9E,CAAC,CAAC,CAAC,CAAC;gBACJ,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;oBAC3F,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,oBAAoB,KAAK,CAAC,QAAQ,SAAS,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACjG,CAAC,CAAC,CAAC,CAAC;gBACJ,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;oBACjG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,0BAA0B,KAAK,CAAC,QAAQ,SAAS,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACvG,CAAC,CAAC,CAAC,CAAC;gBACJ,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;oBACvF,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,iBAAiB,KAAK,CAAC,SAAS,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;gBACzG,CAAC,CAAC,CAAC,CAAC;gBACJ,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;oBAC3F,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,oBAAoB,KAAK,CAAC,QAAQ,UAAU,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBAClG,CAAC,CAAC,CAAC,CAAC;gBACJ,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;oBACjG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,0BAA0B,KAAK,CAAC,QAAQ,UAAU,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACxG,CAAC,CAAC,CAAC,CAAC;gBACJ,+DAA+D;gBAC/D,kDAAkD;gBAClD,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;oBACzE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE;wBACX,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,gBAAgB,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC7H,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACpI,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,eAAe,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACzG,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,kBAAkB,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC1F,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC,CAAC;gBACJ,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;oBAC7G,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,6BAA6B,KAAK,CAAC,QAAQ,UAAU,KAAK,CAAC,SAAS,cAAc,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC1I,CAAC,CAAC,CAAC,CAAC;gBACJ,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;oBACrG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,yBAAyB,KAAK,CAAC,QAAQ,eAAe,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;gBACjH,CAAC,CAAC,CAAC,CAAC;gBACJ,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;oBAC3G,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,+BAA+B,KAAK,CAAC,QAAQ,eAAe,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;gBACvH,CAAC,CAAC,CAAC,CAAC;gBAEJ,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC/F,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrF,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEtF,mEAAmE;gBACnE,mEAAmE;gBACnE,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAC/E,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CACzB,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,EAChC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAC9B,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,EAC/B,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAC3B,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EACjD,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAC7B,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,EACnD,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CACpD,CACJ,CACJ,CACJ,CAAC,CAAC,CAAC;gBACR,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CACjF,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CACvB,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAC9D,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC5B,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAC7D,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAC9D,CACJ,CAAC,CAAC,CAAC;gBAER,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBAEnE,mEAAmE;gBACnE,oEAAoE;gBACpE,YAAY;gBACZ,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChE,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjE,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CACjB,KAAC,KAAK,IACF,EAAE,EAAC,YAAY,EACf,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EACnF,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,sBAAsB,EAAE,sBAAsB,EAC9C,IAAI,EAAE,GAAG,CAAC,IAAI,EACd,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EACzD,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;wBACb,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CACpB,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gCACd,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG;gCAC9B,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE;gCAClI,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;6BACpD,CAAC,CAAC,EACH,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAC7B,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gCACd,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI;gCAC/C,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;gCACjD,OAAO,EAAE,CACL,MAAC,MAAM,IAAC,GAAG,EAAC,GAAG,aACX,KAAC,IAAI,IAAC,UAAU,EAAC,MAAM,YAAE,GAAG,CAAC,IAAI,GAAQ,EACzC,KAAC,IAAI,cAAE,IAAI,CAAC,GAAG,CAAA,QAAQ,GAAG,CAAC,KAAK,OAAO,GAAG,CAAC,GAAG,EAAE,GAAQ,IACnD,CACZ;6BACJ,CAAC,CAAC,EACH,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gCACd,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI;gCAC/C,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;6BAClF,CAAC,CAAC,CACN,CACJ;wBACD,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;4BAC5B,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;oCAC9B,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK;oCAC5B,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;iCACzF,CAAC,CAAC;4BACH,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY;yBAC7B,CAAC;qBACL,CAAC,GACJ,CACL,CAAC;gBACF,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CACnB,KAAC,GAAG,IAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAC,QAAQ,YAAE,KAAK,GAAO,CACvE,CAAC;gBAEF,OAAO,CACH,KAAC,YAAY,IACT,QAAQ,EAAE;wBACN,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAC/B,KAAC,MAAM,IAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAC,IAAI,EAC9C,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAI,CAAC;wBAChE,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAChC,KAAC,YAAY,IAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAC,IAAI,EACrD,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAC,IAAI,cAAE,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,GAAQ,CAAC,CAAC,GAAI,CAAC;wBACjH,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAChC,KAAC,YAAY,IAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAC,IAAI,EACrD,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAC,IAAI,cAAE,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,GAAQ,CAAC,CAAC,GAAI,CAAC;wBAClH,YAAY,CAAC,IAAI,CAAC,QAAQ,EACtB,MAAC,MAAM,IAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,aACtC,KAAC,MAAM,IAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAC,SAAS,EAAC,QAAQ,EAAE,SAAS,GAAI,EACnE,KAAC,MAAM,IAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,QAAQ,EAAE,MAAM,GAAI,EAC1D,KAAC,MAAM,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAC,OAAO,EAAC,QAAQ,EAAE,OAAO,GAAI,IACxD,CAAC;qBACjB,EACD,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE;wBACH,KAAK,EAAE,mBAAmB;wBAC1B,IAAI,EAAE,CACF,KAAC,KAAK,IAAC,YAAY,EAAC,OAAO,EAAC,OAAO,EAAC,SAAS,YACxC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,+BAA+B,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,GAC9F,CACX;qBACJ,EACD,IAAI,EAAE;wBACF,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBAC5C,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;qBACzD,GACH,CACL,CAAC;YACN,CAAC,GAAY,CACZ,CAAC;IACN,CAAC,CAAC;IACF,MAAM,EAAE,EAAE;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC;IACrC,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC;IACzF,WAAW,EAAE,2IAA2I;IACxJ,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAC3C,KAAC,QAAQ,cAAE,CAAC,CAAC,EAAE;YACX,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,EAAE,kBAAkB,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACpG,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;gBACzE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE;oBACX,sDAAsD;oBACtD,wDAAwD;oBACxD,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/E,CAAC,CAAC;YACP,CAAC,CAAC,CAAC,CAAC;YACJ,OAAO,CACH,MAAC,MAAM,IAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,SAAS,aAC3B,KAAC,KAAK,IACF,EAAE,EAAC,YAAY,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAC5B,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAChC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAClC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EACrC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;4BACd,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;oCACf,KAAK,EAAE,SAAS;oCAChB,GAAG,EAAE,OAAO;oCACZ,KAAK,EAAE,UAAU;oCACjB,sDAAsD;oCACtD,sCAAsC;oCACtC,KAAK,EAAE,OAAO;iCACjB,CAAC,CAAC;yBACN,CAAC,GACJ,EACF,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,EAAC,KAAK,EAAC,UAAU,YAAE,IAAI,CAAC,GAAG,CAAA,UAAU,SAAS,EAAE,GAAQ,IAC5E,CACZ,CAAC;QACN,CAAC,GAAY,CAChB,CAAC;IACF,MAAM,EAAE,EAAE;CACb,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;IAC/B,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC;IACtH,WAAW,EAAE,kIAAkI;IAC/I,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE;QAC1C,OAAO,CACH,KAAC,KAAK,IACF,IAAI,EAAE;gBACF,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;gBACpH,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;gBACnH,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;gBACnH,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;aAClH,EACD,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAC9D,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBACb,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;wBACf,KAAK,EAAE,GAAG,CAAC,KAAK;wBAChB,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,KAAK,EAAE,GAAG,CAAC,IAAI;wBACf,0DAA0D;wBAC1D,sDAAsD;wBACtD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAChC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EACjD,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CACpD,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;qBACxB,CAAC,CAAC;gBACH,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;gBAC5E,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;aAC5G,CAAC,EACF,MAAM,EAAE;gBACJ,WAAW,EAAE,UAAU;gBACvB,UAAU,EAAE,OAAO;gBACnB,OAAO,EAAE,KAAC,IAAI,IAAC,KAAK,EAAC,UAAU,qEAAkD;gBACjF,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBAC1E,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBACzE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBACrD,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBACpD,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;aACnD,GACH,CACL,CAAC;IACN,CAAC,CAAC;IACF,MAAM,EAAE,EAAE;CACb,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC;IACnC,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC;IAC5H,WAAW,EAAE,mLAAmL;IAChM,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAC3C,KAAC,QAAQ,cAAE,CAAC,CAAC,EAAE;YACX,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;YAChF,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;gBACzE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE;oBACX,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/G,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,YAAY,EAAE,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1F,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClG,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,cAAc,EAAE,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBACrG,CAAC,CAAC;YACP,CAAC,CAAC,CAAC,CAAC;YACJ,oDAAoD;YACpD,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAC7E,KAAK,CAAC,KAAK,CAAC;gBACR,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAC5C,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC9B,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAChC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aACnC,CAAC,CAAC,CAAC,CAAC;YACT,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACpC,OAAO,CACH,MAAC,MAAM,IAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,SAAS,aAC3B,KAAC,OAAO,IACJ,EAAE,EAAC,OAAO,EACV,IAAI,EAAE;4BACF,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;4BAClD,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;yBACrD,EACD,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAC5E,EACF,KAAC,KAAK,IACF,EAAE,EAAC,UAAU,EACb,OAAO,EAAE,CAAC,OAAO,CAAC,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAC5B,IAAI,EAAE;4BACF,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;4BAChF,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;4BAC/E,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;yBACxF,EACD,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EACtC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;4BACb,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;oCACf,KAAK,EAAE,GAAG,CAAC,KAAK;oCAChB,GAAG,EAAE,GAAG,CAAC,GAAG;oCACZ,KAAK,EAAE,GAAG,CAAC,IAAI;oCACf,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAC/C,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,EAChC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CACpD,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;iCACxB,CAAC,CAAC;yBACN,CAAC,GACJ,EACF,KAAC,IAAI,CAAC,SAAS,cAAE,IAAI,CAAC,GAAG,CAAA,eAAe,IAAI,EAAE,GAAkB,IAC3D,CACZ,CAAC;QACN,CAAC,GAAY,CAChB,CAAC;IACF,MAAM,EAAE,EAAE;CACb,CAAC,CAAC"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Point Planner — a numeric day axis with AM/PM buckets, an identity column,
|
|
3
|
-
* committed events, an explicit now-line, and a row-selection callback.
|
|
4
|
-
*/
|
|
5
|
-
export declare const plannerPoint: import("@elaraai/east").ExampleDef<[], any>;
|
|
6
|
-
/**
|
|
7
|
-
* THE Planner configurator (pass 4) — one preset axis spans the whole surface:
|
|
8
|
-
* the event grammars (states / stretch / tones / colors / markers), the bucket
|
|
9
|
-
* grammars (buckets / mixed / per-cell), the overlays (popover / hovercard),
|
|
10
|
-
* the axis scales (ordinal / day / hour / horizon / scroll), the span chassis
|
|
11
|
-
* and the #320 fill contract. Axis configs, `now` slots and event arrays are
|
|
12
|
-
* all East DATA, so every point preset flows through ONE subtree; only the
|
|
13
|
-
* chassis (Point / Span / bounded-fill) and the build-time column sets are
|
|
14
|
-
* prebuilt arms. Columns and density compose across every preset; the events
|
|
15
|
-
* callback branches per row for the mixed / per-cell bucket grammars.
|
|
16
|
-
*/
|
|
17
|
-
export declare const plannerVariants: import("@elaraai/east").ExampleDef<[], any>;
|
|
18
|
-
/**
|
|
19
|
-
* Optional row-approval review chrome — a per-row Approve / Reject decision
|
|
20
|
-
* column plus a batch foot (approve-all / reject-all / rerun). Clean lines rest
|
|
21
|
-
* pre-approved (`approval = some(approved)`, no status dot); flagged lines carry
|
|
22
|
-
* a quiet warning dot and await an explicit call (`approval = some(pending)`).
|
|
23
|
-
* The decision callbacks receive the acted-on `{ rowIndex }`.
|
|
24
|
-
*/
|
|
25
|
-
export declare const plannerReview: import("@elaraai/east").ExampleDef<[], any>;
|
|
26
|
-
/**
|
|
27
|
-
* Opt-in DnD target (#269) — drag a person from the Library onto the weekly
|
|
28
|
-
* plan: drops land as `proposed(added)` tiles at the (row, day[:bucket])
|
|
29
|
-
* the pointer resolves, arriving through the ONE shared `onDrag` grammar
|
|
30
|
-
* funnel. Press B carries AM/PM buckets, so its cells render lanes and drops
|
|
31
|
-
* there deliver composite `"5:pm"` slot keys (Press A stays flat — plain
|
|
32
|
-
* `"5"`). `canDrop` vetoes drops left of `now` (committed history, ⊘ while
|
|
33
|
-
* hovering) — policy is host-owned, never hard-coded. Every callback (all
|
|
34
|
-
* four grammar arms + the review's Approve) writes the `LAST ·` line under
|
|
35
|
-
* the planner so gestures are visible while testing. The example proves the
|
|
36
|
-
* review loop: a drop flips its row to `pending` via the `approval`
|
|
37
|
-
* accessor; the row's Approve resolves it back.
|
|
38
|
-
*/
|
|
39
|
-
export declare const plannerLibraryDnd: import("@elaraai/east").ExampleDef<[], any>;
|
|
40
|
-
/**
|
|
41
|
-
* Span chassis — multi-slot start → end events on a months axis, with the
|
|
42
|
-
* detailed column set (sublabel + derived hours) and team grouping.
|
|
43
|
-
*/
|
|
44
|
-
export declare const plannerSpan: import("@elaraai/east").ExampleDef<[], any>;
|
|
45
|
-
/** Fill (#320) — height="fill" resolves against the bounded Box and virtualizes the 200 rows. */
|
|
46
|
-
export declare const plannerFill: import("@elaraai/east").ExampleDef<[], any>;
|
|
47
|
-
//# sourceMappingURL=planner.examples.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"planner.examples.d.ts","sourceRoot":"","sources":["../../../test/collections/planner.examples.tsx"],"names":[],"mappings":"AAaA;;;GAGG;AACH,eAAO,MAAM,YAAY,6CA+BvB,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,6CAsU1B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,6CAsCxB,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,6CAgJ5B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,WAAW,6CA4DtB,CAAC;AAEH,iGAAiG;AACjG,eAAO,MAAM,WAAW,6CA2BtB,CAAC"}
|