@contraagent/ui 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +130 -2
- package/custom-elements.json +7084 -0
- package/dist/adapters/check-rows.d.ts +18 -0
- package/dist/adapters/check-rows.d.ts.map +1 -0
- package/dist/adapters/check-rows.js +75 -0
- package/dist/adapters/check-rows.js.map +1 -0
- package/dist/adapters/filters.d.ts +29 -0
- package/dist/adapters/filters.d.ts.map +1 -0
- package/dist/adapters/filters.js +74 -0
- package/dist/adapters/filters.js.map +1 -0
- package/dist/adapters/graph/compound.d.ts +93 -0
- package/dist/adapters/graph/compound.d.ts.map +1 -0
- package/dist/adapters/graph/compound.js +322 -0
- package/dist/adapters/graph/compound.js.map +1 -0
- package/dist/adapters/graph/flow-index.d.ts +54 -0
- package/dist/adapters/graph/flow-index.d.ts.map +1 -0
- package/dist/adapters/graph/flow-index.js +129 -0
- package/dist/adapters/graph/flow-index.js.map +1 -0
- package/dist/adapters/graph/highlight.d.ts +14 -0
- package/dist/adapters/graph/highlight.d.ts.map +1 -0
- package/dist/adapters/graph/highlight.js +33 -0
- package/dist/adapters/graph/highlight.js.map +1 -0
- package/dist/adapters/graph/input.d.ts +50 -0
- package/dist/adapters/graph/input.d.ts.map +1 -0
- package/dist/adapters/graph/input.js +201 -0
- package/dist/adapters/graph/input.js.map +1 -0
- package/dist/adapters/graph/layer.d.ts +33 -0
- package/dist/adapters/graph/layer.d.ts.map +1 -0
- package/dist/adapters/graph/layer.js +94 -0
- package/dist/adapters/graph/layer.js.map +1 -0
- package/dist/adapters/graph/matrix.d.ts +62 -0
- package/dist/adapters/graph/matrix.d.ts.map +1 -0
- package/dist/adapters/graph/matrix.js +96 -0
- package/dist/adapters/graph/matrix.js.map +1 -0
- package/dist/adapters/graph/project.d.ts +49 -0
- package/dist/adapters/graph/project.d.ts.map +1 -0
- package/dist/adapters/graph/project.js +319 -0
- package/dist/adapters/graph/project.js.map +1 -0
- package/dist/adapters/graph/selection.d.ts +31 -0
- package/dist/adapters/graph/selection.d.ts.map +1 -0
- package/dist/adapters/graph/selection.js +48 -0
- package/dist/adapters/graph/selection.js.map +1 -0
- package/dist/adapters/graph/states.d.ts +6 -0
- package/dist/adapters/graph/states.d.ts.map +1 -0
- package/dist/adapters/graph/states.js +5 -0
- package/dist/adapters/graph/states.js.map +1 -0
- package/dist/adapters/graph/types.d.ts +141 -0
- package/dist/adapters/graph/types.d.ts.map +1 -0
- package/dist/adapters/graph/types.js +3 -0
- package/dist/adapters/graph/types.js.map +1 -0
- package/dist/adapters/graph/words.d.ts +48 -0
- package/dist/adapters/graph/words.d.ts.map +1 -0
- package/dist/adapters/graph/words.js +128 -0
- package/dist/adapters/graph/words.js.map +1 -0
- package/dist/adapters/index.d.ts +18 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +23 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/journal-columns.d.ts +21 -0
- package/dist/adapters/journal-columns.d.ts.map +1 -0
- package/dist/adapters/journal-columns.js +179 -0
- package/dist/adapters/journal-columns.js.map +1 -0
- package/dist/adapters/kpi-tiles.d.ts +47 -0
- package/dist/adapters/kpi-tiles.d.ts.map +1 -0
- package/dist/adapters/kpi-tiles.js +173 -0
- package/dist/adapters/kpi-tiles.js.map +1 -0
- package/dist/adapters/lanes.d.ts +31 -0
- package/dist/adapters/lanes.d.ts.map +1 -0
- package/dist/adapters/lanes.js +75 -0
- package/dist/adapters/lanes.js.map +1 -0
- package/dist/adapters/model-shares.d.ts +27 -0
- package/dist/adapters/model-shares.d.ts.map +1 -0
- package/dist/adapters/model-shares.js +52 -0
- package/dist/adapters/model-shares.js.map +1 -0
- package/dist/adapters/panel-body.d.ts +20 -0
- package/dist/adapters/panel-body.d.ts.map +1 -0
- package/dist/adapters/panel-body.js +63 -0
- package/dist/adapters/panel-body.js.map +1 -0
- package/dist/adapters/preflight.d.ts +12 -0
- package/dist/adapters/preflight.d.ts.map +1 -0
- package/dist/adapters/preflight.js +15 -0
- package/dist/adapters/preflight.js.map +1 -0
- package/dist/adapters/task-columns.d.ts +19 -0
- package/dist/adapters/task-columns.d.ts.map +1 -0
- package/dist/adapters/task-columns.js +107 -0
- package/dist/adapters/task-columns.js.map +1 -0
- package/dist/adapters/transcript/index.d.ts +6 -0
- package/dist/adapters/transcript/index.d.ts.map +1 -0
- package/dist/adapters/transcript/index.js +8 -0
- package/dist/adapters/transcript/index.js.map +1 -0
- package/dist/adapters/transcript/model.d.ts +42 -0
- package/dist/adapters/transcript/model.d.ts.map +1 -0
- package/dist/adapters/transcript/model.js +128 -0
- package/dist/adapters/transcript/model.js.map +1 -0
- package/dist/adapters/transcript/rounds.d.ts +15 -0
- package/dist/adapters/transcript/rounds.d.ts.map +1 -0
- package/dist/adapters/transcript/rounds.js +74 -0
- package/dist/adapters/transcript/rounds.js.map +1 -0
- package/dist/adapters/transcript/sections.d.ts +18 -0
- package/dist/adapters/transcript/sections.d.ts.map +1 -0
- package/dist/adapters/transcript/sections.js +69 -0
- package/dist/adapters/transcript/sections.js.map +1 -0
- package/dist/adapters/transcript/web.d.ts +12 -0
- package/dist/adapters/transcript/web.d.ts.map +1 -0
- package/dist/adapters/transcript/web.js +39 -0
- package/dist/adapters/transcript/web.js.map +1 -0
- package/dist/adapters/transcript/who.d.ts +15 -0
- package/dist/adapters/transcript/who.d.ts.map +1 -0
- package/dist/adapters/transcript/who.js +42 -0
- package/dist/adapters/transcript/who.js.map +1 -0
- package/dist/adapters/trends.d.ts +11 -0
- package/dist/adapters/trends.d.ts.map +1 -0
- package/dist/adapters/trends.js +316 -0
- package/dist/adapters/trends.js.map +1 -0
- package/dist/contraagent-ui.js +985 -0
- package/dist/controllers/locale.d.ts +25 -0
- package/dist/controllers/locale.d.ts.map +1 -0
- package/dist/controllers/locale.js +33 -0
- package/dist/controllers/locale.js.map +1 -0
- package/dist/controllers/shortcuts.d.ts +29 -0
- package/dist/controllers/shortcuts.d.ts.map +1 -0
- package/dist/controllers/shortcuts.js +51 -0
- package/dist/controllers/shortcuts.js.map +1 -0
- package/dist/controllers/stream.d.ts +41 -0
- package/dist/controllers/stream.d.ts.map +1 -0
- package/dist/controllers/stream.js +90 -0
- package/dist/controllers/stream.js.map +1 -0
- package/dist/controllers/task-detail.d.ts +22 -0
- package/dist/controllers/task-detail.d.ts.map +1 -0
- package/dist/controllers/task-detail.js +50 -0
- package/dist/controllers/task-detail.js.map +1 -0
- package/dist/controllers/theme.d.ts +32 -0
- package/dist/controllers/theme.d.ts.map +1 -0
- package/dist/controllers/theme.js +56 -0
- package/dist/controllers/theme.js.map +1 -0
- package/dist/core/clock.d.ts +20 -0
- package/dist/core/clock.d.ts.map +1 -0
- package/dist/core/clock.js +45 -0
- package/dist/core/clock.js.map +1 -0
- package/dist/core/events.d.ts +107 -0
- package/dist/core/events.d.ts.map +1 -0
- package/dist/core/events.js +5 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/i18n.d.ts +21 -0
- package/dist/core/i18n.d.ts.map +1 -0
- package/dist/core/i18n.js +71 -0
- package/dist/core/i18n.js.map +1 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +7 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/memory.d.ts +51 -0
- package/dist/core/memory.d.ts.map +1 -0
- package/dist/core/memory.js +174 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/route.d.ts +62 -0
- package/dist/core/route.d.ts.map +1 -0
- package/dist/core/route.js +143 -0
- package/dist/core/route.js.map +1 -0
- package/dist/core/router.d.ts +27 -0
- package/dist/core/router.d.ts.map +1 -0
- package/dist/core/router.js +57 -0
- package/dist/core/router.js.map +1 -0
- package/dist/core/scroll.d.ts +21 -0
- package/dist/core/scroll.d.ts.map +1 -0
- package/dist/core/scroll.js +74 -0
- package/dist/core/scroll.js.map +1 -0
- package/dist/core/view-route.d.ts +62 -0
- package/dist/core/view-route.d.ts.map +1 -0
- package/dist/core/view-route.js +143 -0
- package/dist/core/view-route.js.map +1 -0
- package/dist/core/view-router.d.ts +27 -0
- package/dist/core/view-router.d.ts.map +1 -0
- package/dist/core/view-router.js +57 -0
- package/dist/core/view-router.js.map +1 -0
- package/dist/define/all.d.ts +13 -0
- package/dist/define/all.d.ts.map +1 -0
- package/dist/define/all.js +14 -0
- package/dist/define/all.js.map +1 -0
- package/dist/define/contracts.d.ts +2 -0
- package/dist/define/contracts.d.ts.map +1 -0
- package/dist/define/contracts.js +3 -0
- package/dist/define/contracts.js.map +1 -0
- package/dist/define/definitions.d.ts +3 -0
- package/dist/define/definitions.d.ts.map +1 -0
- package/dist/define/definitions.js +4 -0
- package/dist/define/definitions.js.map +1 -0
- package/dist/define/journal-table.d.ts +2 -0
- package/dist/define/journal-table.d.ts.map +1 -0
- package/dist/define/journal-table.js +3 -0
- package/dist/define/journal-table.js.map +1 -0
- package/dist/define/kpis.d.ts +2 -0
- package/dist/define/kpis.d.ts.map +1 -0
- package/dist/define/kpis.js +3 -0
- package/dist/define/kpis.js.map +1 -0
- package/dist/define/monitor.d.ts +2 -0
- package/dist/define/monitor.d.ts.map +1 -0
- package/dist/define/monitor.js +3 -0
- package/dist/define/monitor.js.map +1 -0
- package/dist/define/overview.d.ts +2 -0
- package/dist/define/overview.d.ts.map +1 -0
- package/dist/define/overview.js +3 -0
- package/dist/define/overview.js.map +1 -0
- package/dist/define/pipeline-graph.d.ts +2 -0
- package/dist/define/pipeline-graph.d.ts.map +1 -0
- package/dist/define/pipeline-graph.js +3 -0
- package/dist/define/pipeline-graph.js.map +1 -0
- package/dist/define/procs.d.ts +3 -0
- package/dist/define/procs.d.ts.map +1 -0
- package/dist/define/procs.js +4 -0
- package/dist/define/procs.js.map +1 -0
- package/dist/define/task-table.d.ts +2 -0
- package/dist/define/task-table.d.ts.map +1 -0
- package/dist/define/task-table.js +3 -0
- package/dist/define/task-table.js.map +1 -0
- package/dist/define/task-view.d.ts +2 -0
- package/dist/define/task-view.d.ts.map +1 -0
- package/dist/define/task-view.js +3 -0
- package/dist/define/task-view.js.map +1 -0
- package/dist/define/timeline.d.ts +2 -0
- package/dist/define/timeline.d.ts.map +1 -0
- package/dist/define/timeline.js +3 -0
- package/dist/define/timeline.js.map +1 -0
- package/dist/define/transcript.d.ts +2 -0
- package/dist/define/transcript.d.ts.map +1 -0
- package/dist/define/transcript.js +3 -0
- package/dist/define/transcript.js.map +1 -0
- package/dist/elements/lists/ca-contracts.d.ts +46 -0
- package/dist/elements/lists/ca-contracts.d.ts.map +1 -0
- package/dist/elements/lists/ca-contracts.js +199 -0
- package/dist/elements/lists/ca-contracts.js.map +1 -0
- package/dist/elements/lists/ca-definitions.d.ts +41 -0
- package/dist/elements/lists/ca-definitions.d.ts.map +1 -0
- package/dist/elements/lists/ca-definitions.js +182 -0
- package/dist/elements/lists/ca-definitions.js.map +1 -0
- package/dist/elements/lists/ca-journal-table.d.ts +37 -0
- package/dist/elements/lists/ca-journal-table.d.ts.map +1 -0
- package/dist/elements/lists/ca-journal-table.js +170 -0
- package/dist/elements/lists/ca-journal-table.js.map +1 -0
- package/dist/elements/lists/ca-panel-body.d.ts +29 -0
- package/dist/elements/lists/ca-panel-body.d.ts.map +1 -0
- package/dist/elements/lists/ca-panel-body.js +144 -0
- package/dist/elements/lists/ca-panel-body.js.map +1 -0
- package/dist/elements/lists/ca-panel-view.d.ts +21 -0
- package/dist/elements/lists/ca-panel-view.d.ts.map +1 -0
- package/dist/elements/lists/ca-panel-view.js +59 -0
- package/dist/elements/lists/ca-panel-view.js.map +1 -0
- package/dist/elements/lists/ca-proc-tree.d.ts +16 -0
- package/dist/elements/lists/ca-proc-tree.d.ts.map +1 -0
- package/dist/elements/lists/ca-proc-tree.js +63 -0
- package/dist/elements/lists/ca-proc-tree.js.map +1 -0
- package/dist/elements/lists/ca-procs-view.d.ts +27 -0
- package/dist/elements/lists/ca-procs-view.d.ts.map +1 -0
- package/dist/elements/lists/ca-procs-view.js +91 -0
- package/dist/elements/lists/ca-procs-view.js.map +1 -0
- package/dist/elements/lists/ca-task-table.d.ts +33 -0
- package/dist/elements/lists/ca-task-table.d.ts.map +1 -0
- package/dist/elements/lists/ca-task-table.js +115 -0
- package/dist/elements/lists/ca-task-table.js.map +1 -0
- package/dist/elements/lists/filters.d.ts +28 -0
- package/dist/elements/lists/filters.d.ts.map +1 -0
- package/dist/elements/lists/filters.js +71 -0
- package/dist/elements/lists/filters.js.map +1 -0
- package/dist/elements/lists/index.d.ts +9 -0
- package/dist/elements/lists/index.d.ts.map +1 -0
- package/dist/elements/lists/index.js +9 -0
- package/dist/elements/lists/index.js.map +1 -0
- package/dist/elements/overview/ca-kpis.d.ts +32 -0
- package/dist/elements/overview/ca-kpis.d.ts.map +1 -0
- package/dist/elements/overview/ca-kpis.js +62 -0
- package/dist/elements/overview/ca-kpis.js.map +1 -0
- package/dist/elements/overview/ca-model-usage.d.ts +25 -0
- package/dist/elements/overview/ca-model-usage.d.ts.map +1 -0
- package/dist/elements/overview/ca-model-usage.js +118 -0
- package/dist/elements/overview/ca-model-usage.js.map +1 -0
- package/dist/elements/overview/ca-overview.d.ts +66 -0
- package/dist/elements/overview/ca-overview.d.ts.map +1 -0
- package/dist/elements/overview/ca-overview.js +456 -0
- package/dist/elements/overview/ca-overview.js.map +1 -0
- package/dist/elements/overview/ca-pipeline-graph.d.ts +211 -0
- package/dist/elements/overview/ca-pipeline-graph.d.ts.map +1 -0
- package/dist/elements/overview/ca-pipeline-graph.js +616 -0
- package/dist/elements/overview/ca-pipeline-graph.js.map +1 -0
- package/dist/elements/overview/ca-pipeline-progress.d.ts +17 -0
- package/dist/elements/overview/ca-pipeline-progress.d.ts.map +1 -0
- package/dist/elements/overview/ca-pipeline-progress.js +119 -0
- package/dist/elements/overview/ca-pipeline-progress.js.map +1 -0
- package/dist/elements/overview/ca-plan-matrix.d.ts +27 -0
- package/dist/elements/overview/ca-plan-matrix.d.ts.map +1 -0
- package/dist/elements/overview/ca-plan-matrix.js +113 -0
- package/dist/elements/overview/ca-plan-matrix.js.map +1 -0
- package/dist/elements/overview/ca-quota.d.ts +42 -0
- package/dist/elements/overview/ca-quota.d.ts.map +1 -0
- package/dist/elements/overview/ca-quota.js +179 -0
- package/dist/elements/overview/ca-quota.js.map +1 -0
- package/dist/elements/overview/ca-run-driver.d.ts +33 -0
- package/dist/elements/overview/ca-run-driver.d.ts.map +1 -0
- package/dist/elements/overview/ca-run-driver.js +146 -0
- package/dist/elements/overview/ca-run-driver.js.map +1 -0
- package/dist/elements/overview/ca-spend-breakdown.d.ts +24 -0
- package/dist/elements/overview/ca-spend-breakdown.d.ts.map +1 -0
- package/dist/elements/overview/ca-spend-breakdown.js +108 -0
- package/dist/elements/overview/ca-spend-breakdown.js.map +1 -0
- package/dist/elements/overview/ca-timeline.d.ts +28 -0
- package/dist/elements/overview/ca-timeline.d.ts.map +1 -0
- package/dist/elements/overview/ca-timeline.js +72 -0
- package/dist/elements/overview/ca-timeline.js.map +1 -0
- package/dist/elements/overview/ca-workers.d.ts +23 -0
- package/dist/elements/overview/ca-workers.d.ts.map +1 -0
- package/dist/elements/overview/ca-workers.js +86 -0
- package/dist/elements/overview/ca-workers.js.map +1 -0
- package/dist/elements/overview/flow-types.d.ts +2 -0
- package/dist/elements/overview/flow-types.d.ts.map +1 -0
- package/dist/elements/overview/flow-types.js +2 -0
- package/dist/elements/overview/flow-types.js.map +1 -0
- package/dist/elements/overview/graph/arrange.d.ts +16 -0
- package/dist/elements/overview/graph/arrange.d.ts.map +1 -0
- package/dist/elements/overview/graph/arrange.js +152 -0
- package/dist/elements/overview/graph/arrange.js.map +1 -0
- package/dist/elements/overview/graph/card.d.ts +64 -0
- package/dist/elements/overview/graph/card.d.ts.map +1 -0
- package/dist/elements/overview/graph/card.js +160 -0
- package/dist/elements/overview/graph/card.js.map +1 -0
- package/dist/elements/overview/graph/flow-index.d.ts +52 -0
- package/dist/elements/overview/graph/flow-index.d.ts.map +1 -0
- package/dist/elements/overview/graph/flow-index.js +121 -0
- package/dist/elements/overview/graph/flow-index.js.map +1 -0
- package/dist/elements/overview/graph/highlight.d.ts +14 -0
- package/dist/elements/overview/graph/highlight.d.ts.map +1 -0
- package/dist/elements/overview/graph/highlight.js +33 -0
- package/dist/elements/overview/graph/highlight.js.map +1 -0
- package/dist/elements/overview/graph/layer.d.ts +32 -0
- package/dist/elements/overview/graph/layer.d.ts.map +1 -0
- package/dist/elements/overview/graph/layer.js +92 -0
- package/dist/elements/overview/graph/layer.js.map +1 -0
- package/dist/elements/overview/graph/layout.d.ts +80 -0
- package/dist/elements/overview/graph/layout.d.ts.map +1 -0
- package/dist/elements/overview/graph/layout.js +261 -0
- package/dist/elements/overview/graph/layout.js.map +1 -0
- package/dist/elements/overview/graph/marks.d.ts +18 -0
- package/dist/elements/overview/graph/marks.d.ts.map +1 -0
- package/dist/elements/overview/graph/marks.js +17 -0
- package/dist/elements/overview/graph/marks.js.map +1 -0
- package/dist/elements/overview/graph/matrix.d.ts +58 -0
- package/dist/elements/overview/graph/matrix.d.ts.map +1 -0
- package/dist/elements/overview/graph/matrix.js +93 -0
- package/dist/elements/overview/graph/matrix.js.map +1 -0
- package/dist/elements/overview/graph/nav.d.ts +15 -0
- package/dist/elements/overview/graph/nav.d.ts.map +1 -0
- package/dist/elements/overview/graph/nav.js +80 -0
- package/dist/elements/overview/graph/nav.js.map +1 -0
- package/dist/elements/overview/graph/pan-zoom.d.ts +83 -0
- package/dist/elements/overview/graph/pan-zoom.d.ts.map +1 -0
- package/dist/elements/overview/graph/pan-zoom.js +189 -0
- package/dist/elements/overview/graph/pan-zoom.js.map +1 -0
- package/dist/elements/overview/graph/paths.d.ts +9 -0
- package/dist/elements/overview/graph/paths.d.ts.map +1 -0
- package/dist/elements/overview/graph/paths.js +44 -0
- package/dist/elements/overview/graph/paths.js.map +1 -0
- package/dist/elements/overview/graph/place-card.d.ts +36 -0
- package/dist/elements/overview/graph/place-card.d.ts.map +1 -0
- package/dist/elements/overview/graph/place-card.js +68 -0
- package/dist/elements/overview/graph/place-card.js.map +1 -0
- package/dist/elements/overview/graph/project.d.ts +31 -0
- package/dist/elements/overview/graph/project.d.ts.map +1 -0
- package/dist/elements/overview/graph/project.js +455 -0
- package/dist/elements/overview/graph/project.js.map +1 -0
- package/dist/elements/overview/graph/selection.d.ts +31 -0
- package/dist/elements/overview/graph/selection.d.ts.map +1 -0
- package/dist/elements/overview/graph/selection.js +44 -0
- package/dist/elements/overview/graph/selection.js.map +1 -0
- package/dist/elements/overview/graph/states.d.ts +6 -0
- package/dist/elements/overview/graph/states.d.ts.map +1 -0
- package/dist/elements/overview/graph/states.js +5 -0
- package/dist/elements/overview/graph/states.js.map +1 -0
- package/dist/elements/overview/graph/types.d.ts +124 -0
- package/dist/elements/overview/graph/types.d.ts.map +1 -0
- package/dist/elements/overview/graph/types.js +3 -0
- package/dist/elements/overview/graph/types.js.map +1 -0
- package/dist/elements/overview/graph/view.d.ts +16 -0
- package/dist/elements/overview/graph/view.d.ts.map +1 -0
- package/dist/elements/overview/graph/view.js +20 -0
- package/dist/elements/overview/graph/view.js.map +1 -0
- package/dist/elements/overview/index.d.ts +10 -0
- package/dist/elements/overview/index.d.ts.map +1 -0
- package/dist/elements/overview/index.js +10 -0
- package/dist/elements/overview/index.js.map +1 -0
- package/dist/elements/overview/kpis-model.d.ts +31 -0
- package/dist/elements/overview/kpis-model.d.ts.map +1 -0
- package/dist/elements/overview/kpis-model.js +30 -0
- package/dist/elements/overview/kpis-model.js.map +1 -0
- package/dist/elements/overview/logic.d.ts +442 -0
- package/dist/elements/overview/logic.d.ts.map +1 -0
- package/dist/elements/overview/logic.js +1431 -0
- package/dist/elements/overview/logic.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/actions.d.ts +16 -0
- package/dist/elements/overview/pipeline-graph/actions.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/actions.js +42 -0
- package/dist/elements/overview/pipeline-graph/actions.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/crumbs.d.ts +15 -0
- package/dist/elements/overview/pipeline-graph/crumbs.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/crumbs.js +70 -0
- package/dist/elements/overview/pipeline-graph/crumbs.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/dag.d.ts +4 -0
- package/dist/elements/overview/pipeline-graph/dag.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/dag.js +259 -0
- package/dist/elements/overview/pipeline-graph/dag.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/host.d.ts +24 -0
- package/dist/elements/overview/pipeline-graph/host.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/host.js +2 -0
- package/dist/elements/overview/pipeline-graph/host.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/icons.d.ts +5 -0
- package/dist/elements/overview/pipeline-graph/icons.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/icons.js +13 -0
- package/dist/elements/overview/pipeline-graph/icons.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/inspector.d.ts +5 -0
- package/dist/elements/overview/pipeline-graph/inspector.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/inspector.js +100 -0
- package/dist/elements/overview/pipeline-graph/inspector.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/legend.d.ts +9 -0
- package/dist/elements/overview/pipeline-graph/legend.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/legend.js +59 -0
- package/dist/elements/overview/pipeline-graph/legend.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/matrix.d.ts +4 -0
- package/dist/elements/overview/pipeline-graph/matrix.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/matrix.js +193 -0
- package/dist/elements/overview/pipeline-graph/matrix.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/outline.d.ts +53 -0
- package/dist/elements/overview/pipeline-graph/outline.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/outline.js +111 -0
- package/dist/elements/overview/pipeline-graph/outline.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/strings.d.ts +11 -0
- package/dist/elements/overview/pipeline-graph/strings.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/strings.js +49 -0
- package/dist/elements/overview/pipeline-graph/strings.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/styles.d.ts +4 -0
- package/dist/elements/overview/pipeline-graph/styles.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/styles.js +96 -0
- package/dist/elements/overview/pipeline-graph/styles.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/table.d.ts +11 -0
- package/dist/elements/overview/pipeline-graph/table.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/table.js +74 -0
- package/dist/elements/overview/pipeline-graph/table.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/tools.d.ts +5 -0
- package/dist/elements/overview/pipeline-graph/tools.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/tools.js +48 -0
- package/dist/elements/overview/pipeline-graph/tools.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/words.d.ts +45 -0
- package/dist/elements/overview/pipeline-graph/words.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/words.js +108 -0
- package/dist/elements/overview/pipeline-graph/words.js.map +1 -0
- package/dist/elements/overview/place-card.d.ts +36 -0
- package/dist/elements/overview/place-card.d.ts.map +1 -0
- package/dist/elements/overview/place-card.js +68 -0
- package/dist/elements/overview/place-card.js.map +1 -0
- package/dist/elements/overview/timeline-model.d.ts +44 -0
- package/dist/elements/overview/timeline-model.d.ts.map +1 -0
- package/dist/elements/overview/timeline-model.js +53 -0
- package/dist/elements/overview/timeline-model.js.map +1 -0
- package/dist/elements/shared/ca-count.d.ts +17 -0
- package/dist/elements/shared/ca-count.d.ts.map +1 -0
- package/dist/elements/shared/ca-count.js +59 -0
- package/dist/elements/shared/ca-count.js.map +1 -0
- package/dist/elements/shared/ca-definition.d.ts +26 -0
- package/dist/elements/shared/ca-definition.d.ts.map +1 -0
- package/dist/elements/shared/ca-definition.js +202 -0
- package/dist/elements/shared/ca-definition.js.map +1 -0
- package/dist/elements/shared/ca-elapsed.d.ts +14 -0
- package/dist/elements/shared/ca-elapsed.d.ts.map +1 -0
- package/dist/elements/shared/ca-elapsed.js +33 -0
- package/dist/elements/shared/ca-elapsed.js.map +1 -0
- package/dist/elements/shared/ca-json-tree.d.ts +16 -0
- package/dist/elements/shared/ca-json-tree.d.ts.map +1 -0
- package/dist/elements/shared/ca-json-tree.js +52 -0
- package/dist/elements/shared/ca-json-tree.js.map +1 -0
- package/dist/elements/shared/ca-markdown.d.ts +19 -0
- package/dist/elements/shared/ca-markdown.d.ts.map +1 -0
- package/dist/elements/shared/ca-markdown.js +59 -0
- package/dist/elements/shared/ca-markdown.js.map +1 -0
- package/dist/elements/shared/contract-parts.d.ts +35 -0
- package/dist/elements/shared/contract-parts.d.ts.map +1 -0
- package/dist/elements/shared/contract-parts.js +151 -0
- package/dist/elements/shared/contract-parts.js.map +1 -0
- package/dist/elements/shared/fact-line.d.ts +4 -0
- package/dist/elements/shared/fact-line.d.ts.map +1 -0
- package/dist/elements/shared/fact-line.js +8 -0
- package/dist/elements/shared/fact-line.js.map +1 -0
- package/dist/elements/shared/file-card.d.ts +17 -0
- package/dist/elements/shared/file-card.d.ts.map +1 -0
- package/dist/elements/shared/file-card.js +37 -0
- package/dist/elements/shared/file-card.js.map +1 -0
- package/dist/elements/shared/prompt-text.d.ts +5 -0
- package/dist/elements/shared/prompt-text.d.ts.map +1 -0
- package/dist/elements/shared/prompt-text.js +13 -0
- package/dist/elements/shared/prompt-text.js.map +1 -0
- package/dist/elements/shared/task-chip.d.ts +10 -0
- package/dist/elements/shared/task-chip.d.ts.map +1 -0
- package/dist/elements/shared/task-chip.js +19 -0
- package/dist/elements/shared/task-chip.js.map +1 -0
- package/dist/elements/shell/ca-clock.d.ts +13 -0
- package/dist/elements/shell/ca-clock.d.ts.map +1 -0
- package/dist/elements/shell/ca-clock.js +30 -0
- package/dist/elements/shell/ca-clock.js.map +1 -0
- package/dist/elements/shell/ca-hosts.d.ts +21 -0
- package/dist/elements/shell/ca-hosts.d.ts.map +1 -0
- package/dist/elements/shell/ca-hosts.js +97 -0
- package/dist/elements/shell/ca-hosts.js.map +1 -0
- package/dist/elements/shell/ca-monitor.d.ts +180 -0
- package/dist/elements/shell/ca-monitor.d.ts.map +1 -0
- package/dist/elements/shell/ca-monitor.js +547 -0
- package/dist/elements/shell/ca-monitor.js.map +1 -0
- package/dist/elements/shell/ca-run-picker.d.ts +71 -0
- package/dist/elements/shell/ca-run-picker.d.ts.map +1 -0
- package/dist/elements/shell/ca-run-picker.js +313 -0
- package/dist/elements/shell/ca-run-picker.js.map +1 -0
- package/dist/elements/shell/ca-theme-switch.d.ts +36 -0
- package/dist/elements/shell/ca-theme-switch.d.ts.map +1 -0
- package/dist/elements/shell/ca-theme-switch.js +186 -0
- package/dist/elements/shell/ca-theme-switch.js.map +1 -0
- package/dist/elements/shell/ca-toasts.d.ts +23 -0
- package/dist/elements/shell/ca-toasts.d.ts.map +1 -0
- package/dist/elements/shell/ca-toasts.js +88 -0
- package/dist/elements/shell/ca-toasts.js.map +1 -0
- package/dist/elements/shell/header.d.ts +13 -0
- package/dist/elements/shell/header.d.ts.map +1 -0
- package/dist/elements/shell/header.js +38 -0
- package/dist/elements/shell/header.js.map +1 -0
- package/dist/elements/shell/styles.d.ts +2 -0
- package/dist/elements/shell/styles.d.ts.map +1 -0
- package/dist/elements/shell/styles.js +72 -0
- package/dist/elements/shell/styles.js.map +1 -0
- package/dist/elements/shell/tabs.d.ts +32 -0
- package/dist/elements/shell/tabs.d.ts.map +1 -0
- package/dist/elements/shell/tabs.js +125 -0
- package/dist/elements/shell/tabs.js.map +1 -0
- package/dist/elements/shell/views.d.ts +27 -0
- package/dist/elements/shell/views.d.ts.map +1 -0
- package/dist/elements/shell/views.js +55 -0
- package/dist/elements/shell/views.js.map +1 -0
- package/dist/elements/task/ca-task-view.d.ts +55 -0
- package/dist/elements/task/ca-task-view.d.ts.map +1 -0
- package/dist/elements/task/ca-task-view.js +199 -0
- package/dist/elements/task/ca-task-view.js.map +1 -0
- package/dist/elements/task/ca-transcript.d.ts +74 -0
- package/dist/elements/task/ca-transcript.d.ts.map +1 -0
- package/dist/elements/task/ca-transcript.js +241 -0
- package/dist/elements/task/ca-transcript.js.map +1 -0
- package/dist/elements/task/context.d.ts +57 -0
- package/dist/elements/task/context.d.ts.map +1 -0
- package/dist/elements/task/context.js +61 -0
- package/dist/elements/task/context.js.map +1 -0
- package/dist/elements/task/header.d.ts +9 -0
- package/dist/elements/task/header.d.ts.map +1 -0
- package/dist/elements/task/header.js +287 -0
- package/dist/elements/task/header.js.map +1 -0
- package/dist/elements/task/index.d.ts +3 -0
- package/dist/elements/task/index.d.ts.map +1 -0
- package/dist/elements/task/index.js +3 -0
- package/dist/elements/task/index.js.map +1 -0
- package/dist/elements/task/inputs.d.ts +28 -0
- package/dist/elements/task/inputs.d.ts.map +1 -0
- package/dist/elements/task/inputs.js +27 -0
- package/dist/elements/task/inputs.js.map +1 -0
- package/dist/elements/task/panes/definition.d.ts +5 -0
- package/dist/elements/task/panes/definition.d.ts.map +1 -0
- package/dist/elements/task/panes/definition.js +5 -0
- package/dist/elements/task/panes/definition.js.map +1 -0
- package/dist/elements/task/panes/io.d.ts +8 -0
- package/dist/elements/task/panes/io.d.ts.map +1 -0
- package/dist/elements/task/panes/io.js +184 -0
- package/dist/elements/task/panes/io.js.map +1 -0
- package/dist/elements/task/panes/transcript.d.ts +5 -0
- package/dist/elements/task/panes/transcript.d.ts.map +1 -0
- package/dist/elements/task/panes/transcript.js +29 -0
- package/dist/elements/task/panes/transcript.js.map +1 -0
- package/dist/elements/task/rounds.d.ts +14 -0
- package/dist/elements/task/rounds.d.ts.map +1 -0
- package/dist/elements/task/rounds.js +59 -0
- package/dist/elements/task/rounds.js.map +1 -0
- package/dist/elements/task/styles.d.ts +2 -0
- package/dist/elements/task/styles.d.ts.map +1 -0
- package/dist/elements/task/styles.js +66 -0
- package/dist/elements/task/styles.js.map +1 -0
- package/dist/elements/task/transcript-model.d.ts +106 -0
- package/dist/elements/task/transcript-model.d.ts.map +1 -0
- package/dist/elements/task/transcript-model.js +280 -0
- package/dist/elements/task/transcript-model.js.map +1 -0
- package/dist/elements/task/who.d.ts +5 -0
- package/dist/elements/task/who.d.ts.map +1 -0
- package/dist/elements/task/who.js +30 -0
- package/dist/elements/task/who.js.map +1 -0
- package/dist/elements/trends/ca-trends.d.ts +55 -0
- package/dist/elements/trends/ca-trends.d.ts.map +1 -0
- package/dist/elements/trends/ca-trends.js +213 -0
- package/dist/elements/trends/ca-trends.js.map +1 -0
- package/dist/events.d.ts +107 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +5 -0
- package/dist/events.js.map +1 -0
- package/dist/i18n.d.ts +16 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +48 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/clock.d.ts +20 -0
- package/dist/lib/clock.d.ts.map +1 -0
- package/dist/lib/clock.js +45 -0
- package/dist/lib/clock.js.map +1 -0
- package/dist/lib/format.d.ts +35 -0
- package/dist/lib/format.d.ts.map +1 -0
- package/dist/lib/format.js +117 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/highlight.d.ts +5 -0
- package/dist/lib/highlight.d.ts.map +1 -0
- package/dist/lib/highlight.js +86 -0
- package/dist/lib/highlight.js.map +1 -0
- package/dist/lib/labels.d.ts +103 -0
- package/dist/lib/labels.d.ts.map +1 -0
- package/dist/lib/labels.js +249 -0
- package/dist/lib/labels.js.map +1 -0
- package/dist/lib/markdown.d.ts +13 -0
- package/dist/lib/markdown.d.ts.map +1 -0
- package/dist/lib/markdown.js +118 -0
- package/dist/lib/markdown.js.map +1 -0
- package/dist/lib/memory.d.ts +27 -0
- package/dist/lib/memory.d.ts.map +1 -0
- package/dist/lib/memory.js +117 -0
- package/dist/lib/memory.js.map +1 -0
- package/dist/lib/quota-format.d.ts +28 -0
- package/dist/lib/quota-format.d.ts.map +1 -0
- package/dist/lib/quota-format.js +67 -0
- package/dist/lib/quota-format.js.map +1 -0
- package/dist/lib/scroll.d.ts +16 -0
- package/dist/lib/scroll.d.ts.map +1 -0
- package/dist/lib/scroll.js +70 -0
- package/dist/lib/scroll.js.map +1 -0
- package/dist/lib/status.d.ts +25 -0
- package/dist/lib/status.d.ts.map +1 -0
- package/dist/lib/status.js +40 -0
- package/dist/lib/status.js.map +1 -0
- package/dist/lib/tone.d.ts +29 -0
- package/dist/lib/tone.d.ts.map +1 -0
- package/dist/lib/tone.js +97 -0
- package/dist/lib/tone.js.map +1 -0
- package/dist/lib/trends.d.ts +15 -0
- package/dist/lib/trends.d.ts.map +1 -0
- package/dist/lib/trends.js +36 -0
- package/dist/lib/trends.js.map +1 -0
- package/dist/locales/codes.d.ts +14 -0
- package/dist/locales/codes.d.ts.map +1 -0
- package/dist/locales/codes.js +21 -0
- package/dist/locales/codes.js.map +1 -0
- package/dist/locales/ja.d.ts +761 -0
- package/dist/locales/ja.d.ts.map +1 -0
- package/dist/locales/ja.js +767 -0
- package/dist/locales/ja.js.map +1 -0
- package/dist/route.d.ts +46 -0
- package/dist/route.d.ts.map +1 -0
- package/dist/route.js +102 -0
- package/dist/route.js.map +1 -0
- package/dist/router.d.ts +23 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.js +55 -0
- package/dist/router.js.map +1 -0
- package/dist/styles/base.d.ts +11 -0
- package/dist/styles/base.d.ts.map +1 -0
- package/dist/styles/base.js +241 -0
- package/dist/styles/base.js.map +1 -0
- package/dist/styles/chips.d.ts +2 -0
- package/dist/styles/chips.d.ts.map +1 -0
- package/dist/styles/chips.js +18 -0
- package/dist/styles/chips.js.map +1 -0
- package/dist/styles/executor-icon.d.ts +3 -0
- package/dist/styles/executor-icon.d.ts.map +1 -0
- package/dist/styles/executor-icon.js +9 -0
- package/dist/styles/executor-icon.js.map +1 -0
- package/dist/styles/facts.d.ts +2 -0
- package/dist/styles/facts.d.ts.map +1 -0
- package/dist/styles/facts.js +7 -0
- package/dist/styles/facts.js.map +1 -0
- package/dist/styles/index.d.ts +17 -0
- package/dist/styles/index.d.ts.map +1 -0
- package/dist/styles/index.js +16 -0
- package/dist/styles/index.js.map +1 -0
- package/dist/styles/layout.d.ts +2 -0
- package/dist/styles/layout.d.ts.map +1 -0
- package/dist/styles/layout.js +30 -0
- package/dist/styles/layout.js.map +1 -0
- package/dist/styles/legend.d.ts +2 -0
- package/dist/styles/legend.d.ts.map +1 -0
- package/dist/styles/legend.js +8 -0
- package/dist/styles/legend.js.map +1 -0
- package/dist/styles/meter.d.ts +3 -0
- package/dist/styles/meter.d.ts.map +1 -0
- package/dist/styles/meter.js +9 -0
- package/dist/styles/meter.js.map +1 -0
- package/dist/styles/motion.d.ts +2 -0
- package/dist/styles/motion.d.ts.map +1 -0
- package/dist/styles/motion.js +27 -0
- package/dist/styles/motion.js.map +1 -0
- package/dist/styles/prose.d.ts +3 -0
- package/dist/styles/prose.d.ts.map +1 -0
- package/dist/styles/prose.js +59 -0
- package/dist/styles/prose.js.map +1 -0
- package/dist/styles/reset.d.ts +2 -0
- package/dist/styles/reset.d.ts.map +1 -0
- package/dist/styles/reset.js +13 -0
- package/dist/styles/reset.js.map +1 -0
- package/dist/styles/status.d.ts +2 -0
- package/dist/styles/status.d.ts.map +1 -0
- package/dist/styles/status.js +52 -0
- package/dist/styles/status.js.map +1 -0
- package/dist/styles/text.d.ts +2 -0
- package/dist/styles/text.d.ts.map +1 -0
- package/dist/styles/text.js +21 -0
- package/dist/styles/text.js.map +1 -0
- package/dist/styles/theme-sheet.d.ts +12 -0
- package/dist/styles/theme-sheet.d.ts.map +1 -0
- package/dist/styles/theme-sheet.js +24 -0
- package/dist/styles/theme-sheet.js.map +1 -0
- package/dist/styles/themes.d.ts +75 -0
- package/dist/styles/themes.d.ts.map +1 -0
- package/dist/styles/themes.js +452 -0
- package/dist/styles/themes.js.map +1 -0
- package/dist/styles/tokens.d.ts +8 -0
- package/dist/styles/tokens.d.ts.map +1 -0
- package/dist/styles/tokens.js +32 -0
- package/dist/styles/tokens.js.map +1 -0
- package/dist/themes/boot.d.ts +7 -0
- package/dist/themes/boot.d.ts.map +1 -0
- package/dist/themes/boot.js +14 -0
- package/dist/themes/boot.js.map +1 -0
- package/dist/themes/choice.d.ts +16 -0
- package/dist/themes/choice.d.ts.map +1 -0
- package/dist/themes/choice.js +45 -0
- package/dist/themes/choice.js.map +1 -0
- package/dist/themes/data.d.ts +42 -0
- package/dist/themes/data.d.ts.map +1 -0
- package/dist/themes/data.js +356 -0
- package/dist/themes/data.js.map +1 -0
- package/dist/themes/index.d.ts +5 -0
- package/dist/themes/index.d.ts.map +1 -0
- package/dist/themes/index.js +8 -0
- package/dist/themes/index.js.map +1 -0
- package/dist/themes/sheet.d.ts +12 -0
- package/dist/themes/sheet.d.ts.map +1 -0
- package/dist/themes/sheet.js +24 -0
- package/dist/themes/sheet.js.map +1 -0
- package/dist/themes/tokens-list.d.ts +15 -0
- package/dist/themes/tokens-list.d.ts.map +1 -0
- package/dist/themes/tokens-list.js +62 -0
- package/dist/themes/tokens-list.js.map +1 -0
- package/dist/words/api-error.d.ts +4 -0
- package/dist/words/api-error.d.ts.map +1 -0
- package/dist/words/api-error.js +13 -0
- package/dist/words/api-error.js.map +1 -0
- package/dist/words/attempts.d.ts +17 -0
- package/dist/words/attempts.d.ts.map +1 -0
- package/dist/words/attempts.js +26 -0
- package/dist/words/attempts.js.map +1 -0
- package/dist/words/causes.d.ts +33 -0
- package/dist/words/causes.d.ts.map +1 -0
- package/dist/words/causes.js +58 -0
- package/dist/words/causes.js.map +1 -0
- package/dist/words/changes.d.ts +9 -0
- package/dist/words/changes.d.ts.map +1 -0
- package/dist/words/changes.js +21 -0
- package/dist/words/changes.js.map +1 -0
- package/dist/words/claims.d.ts +9 -0
- package/dist/words/claims.d.ts.map +1 -0
- package/dist/words/claims.js +12 -0
- package/dist/words/claims.js.map +1 -0
- package/dist/words/context.d.ts +18 -0
- package/dist/words/context.d.ts.map +1 -0
- package/dist/words/context.js +39 -0
- package/dist/words/context.js.map +1 -0
- package/dist/words/contract.d.ts +25 -0
- package/dist/words/contract.d.ts.map +1 -0
- package/dist/words/contract.js +52 -0
- package/dist/words/contract.js.map +1 -0
- package/dist/words/credential.d.ts +5 -0
- package/dist/words/credential.d.ts.map +1 -0
- package/dist/words/credential.js +7 -0
- package/dist/words/credential.js.map +1 -0
- package/dist/words/executor.d.ts +12 -0
- package/dist/words/executor.d.ts.map +1 -0
- package/dist/words/executor.js +20 -0
- package/dist/words/executor.js.map +1 -0
- package/dist/words/export.d.ts +8 -0
- package/dist/words/export.d.ts.map +1 -0
- package/dist/words/export.js +17 -0
- package/dist/words/export.js.map +1 -0
- package/dist/words/format.d.ts +36 -0
- package/dist/words/format.d.ts.map +1 -0
- package/dist/words/format.js +109 -0
- package/dist/words/format.js.map +1 -0
- package/dist/words/hops.d.ts +12 -0
- package/dist/words/hops.d.ts.map +1 -0
- package/dist/words/hops.js +27 -0
- package/dist/words/hops.js.map +1 -0
- package/dist/words/hosts.d.ts +18 -0
- package/dist/words/hosts.d.ts.map +1 -0
- package/dist/words/hosts.js +22 -0
- package/dist/words/hosts.js.map +1 -0
- package/dist/words/index.d.ts +27 -0
- package/dist/words/index.d.ts.map +1 -0
- package/dist/words/index.js +31 -0
- package/dist/words/index.js.map +1 -0
- package/dist/words/models.d.ts +10 -0
- package/dist/words/models.d.ts.map +1 -0
- package/dist/words/models.js +45 -0
- package/dist/words/models.js.map +1 -0
- package/dist/words/outcome.d.ts +14 -0
- package/dist/words/outcome.d.ts.map +1 -0
- package/dist/words/outcome.js +58 -0
- package/dist/words/outcome.js.map +1 -0
- package/dist/words/panels.d.ts +11 -0
- package/dist/words/panels.d.ts.map +1 -0
- package/dist/words/panels.js +50 -0
- package/dist/words/panels.js.map +1 -0
- package/dist/words/passes.d.ts +11 -0
- package/dist/words/passes.d.ts.map +1 -0
- package/dist/words/passes.js +13 -0
- package/dist/words/passes.js.map +1 -0
- package/dist/words/preflight.d.ts +28 -0
- package/dist/words/preflight.d.ts.map +1 -0
- package/dist/words/preflight.js +30 -0
- package/dist/words/preflight.js.map +1 -0
- package/dist/words/priority.d.ts +5 -0
- package/dist/words/priority.d.ts.map +1 -0
- package/dist/words/priority.js +7 -0
- package/dist/words/priority.js.map +1 -0
- package/dist/words/prompt.d.ts +10 -0
- package/dist/words/prompt.d.ts.map +1 -0
- package/dist/words/prompt.js +17 -0
- package/dist/words/prompt.js.map +1 -0
- package/dist/words/quota.d.ts +35 -0
- package/dist/words/quota.d.ts.map +1 -0
- package/dist/words/quota.js +102 -0
- package/dist/words/quota.js.map +1 -0
- package/dist/words/rests.d.ts +26 -0
- package/dist/words/rests.d.ts.map +1 -0
- package/dist/words/rests.js +77 -0
- package/dist/words/rests.js.map +1 -0
- package/dist/words/rounds.d.ts +14 -0
- package/dist/words/rounds.d.ts.map +1 -0
- package/dist/words/rounds.js +60 -0
- package/dist/words/rounds.js.map +1 -0
- package/dist/words/row-extras.d.ts +7 -0
- package/dist/words/row-extras.d.ts.map +1 -0
- package/dist/words/row-extras.js +26 -0
- package/dist/words/row-extras.js.map +1 -0
- package/dist/words/run-line.d.ts +40 -0
- package/dist/words/run-line.d.ts.map +1 -0
- package/dist/words/run-line.js +66 -0
- package/dist/words/run-line.js.map +1 -0
- package/dist/words/stop.d.ts +6 -0
- package/dist/words/stop.d.ts.map +1 -0
- package/dist/words/stop.js +69 -0
- package/dist/words/stop.js.map +1 -0
- package/dist/words/table.d.ts +4 -0
- package/dist/words/table.d.ts.map +1 -0
- package/dist/words/table.js +8 -0
- package/dist/words/table.js.map +1 -0
- package/dist/words/task-definition.d.ts +23 -0
- package/dist/words/task-definition.d.ts.map +1 -0
- package/dist/words/task-definition.js +27 -0
- package/dist/words/task-definition.js.map +1 -0
- package/dist/words/time-box.d.ts +8 -0
- package/dist/words/time-box.d.ts.map +1 -0
- package/dist/words/time-box.js +12 -0
- package/dist/words/time-box.js.map +1 -0
- package/dist/words/trends.d.ts +86 -0
- package/dist/words/trends.d.ts.map +1 -0
- package/dist/words/trends.js +104 -0
- package/dist/words/trends.js.map +1 -0
- package/dist/words/units.d.ts +9 -0
- package/dist/words/units.d.ts.map +1 -0
- package/dist/words/units.js +12 -0
- package/dist/words/units.js.map +1 -0
- package/docs/embed.md +118 -0
- package/docs/events.md +38 -0
- package/docs/examples/embed.html +31 -0
- package/docs/examples/journal.ts +32 -0
- package/docs/examples/live-transcript.ts +22 -0
- package/docs/examples/vite/index.html +30 -0
- package/docs/examples/vite/main.ts +23 -0
- package/docs/languages.md +48 -0
- package/docs/live-data.md +17 -0
- package/docs/theming.md +21 -0
- package/docs/tsconfig.json +14 -0
- package/package.json +131 -4
- package/src/adapters/check-rows.ts +78 -0
- package/src/adapters/filters.ts +76 -0
- package/src/adapters/graph/compound.ts +359 -0
- package/src/adapters/graph/flow-index.ts +154 -0
- package/src/adapters/graph/highlight.ts +40 -0
- package/src/adapters/graph/input.ts +236 -0
- package/src/adapters/graph/layer.ts +92 -0
- package/src/adapters/graph/matrix.ts +133 -0
- package/src/adapters/graph/plans.fixture.ts +194 -0
- package/src/adapters/graph/project.ts +358 -0
- package/src/adapters/graph/selection.ts +54 -0
- package/src/adapters/graph/states.ts +10 -0
- package/src/adapters/graph/types.ts +148 -0
- package/src/adapters/graph/words.ts +146 -0
- package/src/adapters/index.ts +22 -0
- package/src/adapters/journal-columns.ts +200 -0
- package/src/adapters/kpi-tiles.ts +211 -0
- package/src/adapters/lanes.ts +98 -0
- package/src/adapters/model-shares.ts +62 -0
- package/src/adapters/panel-body.ts +74 -0
- package/src/adapters/preflight.ts +27 -0
- package/src/adapters/task-columns.ts +120 -0
- package/src/adapters/transcript/index.ts +14 -0
- package/src/adapters/transcript/model.ts +156 -0
- package/src/adapters/transcript/rounds.ts +86 -0
- package/src/adapters/transcript/sections.ts +82 -0
- package/src/adapters/transcript/web.ts +40 -0
- package/src/adapters/transcript/who.ts +53 -0
- package/src/adapters/trends.ts +337 -0
- package/src/controllers/locale.ts +47 -0
- package/src/controllers/shortcuts.ts +69 -0
- package/src/controllers/stream.ts +103 -0
- package/src/controllers/task-detail.ts +54 -0
- package/src/controllers/theme.ts +73 -0
- package/src/core/events.ts +120 -0
- package/src/core/i18n.ts +76 -0
- package/src/core/index.ts +6 -0
- package/src/core/memory.ts +177 -0
- package/src/core/scroll.ts +73 -0
- package/src/core/view-route.ts +177 -0
- package/src/core/view-router.ts +66 -0
- package/src/define/all.ts +13 -0
- package/src/define/contracts.ts +2 -0
- package/src/define/definitions.ts +3 -0
- package/src/define/journal-table.ts +2 -0
- package/src/define/kpis.ts +2 -0
- package/src/define/monitor.ts +2 -0
- package/src/define/overview.ts +2 -0
- package/src/define/pipeline-graph.ts +2 -0
- package/src/define/procs.ts +3 -0
- package/src/define/task-table.ts +2 -0
- package/src/define/task-view.ts +2 -0
- package/src/define/timeline.ts +2 -0
- package/src/define/transcript.ts +2 -0
- package/src/elements/lists/ca-contracts.ts +204 -0
- package/src/elements/lists/ca-definitions.ts +170 -0
- package/src/elements/lists/ca-journal-table.ts +141 -0
- package/src/elements/lists/ca-panel-body.ts +139 -0
- package/src/elements/lists/ca-panel-view.ts +50 -0
- package/src/elements/lists/ca-proc-tree.ts +57 -0
- package/src/elements/lists/ca-procs-view.ts +89 -0
- package/src/elements/lists/ca-task-table.ts +94 -0
- package/src/elements/lists/index.ts +8 -0
- package/src/elements/overview/ca-kpis.ts +51 -0
- package/src/elements/overview/ca-model-usage.ts +113 -0
- package/src/elements/overview/ca-overview.ts +492 -0
- package/src/elements/overview/ca-pipeline-graph.ts +617 -0
- package/src/elements/overview/ca-quota.ts +164 -0
- package/src/elements/overview/ca-run-driver.ts +140 -0
- package/src/elements/overview/ca-spend-breakdown.ts +107 -0
- package/src/elements/overview/ca-timeline.ts +57 -0
- package/src/elements/overview/ca-workers.ts +82 -0
- package/src/elements/overview/index.ts +9 -0
- package/src/elements/overview/pipeline-graph/actions.ts +45 -0
- package/src/elements/overview/pipeline-graph/crumbs.ts +75 -0
- package/src/elements/overview/pipeline-graph/host.ts +26 -0
- package/src/elements/overview/pipeline-graph/inspector.ts +104 -0
- package/src/elements/overview/pipeline-graph/outline.ts +150 -0
- package/src/elements/overview/pipeline-graph/strings.ts +53 -0
- package/src/elements/overview/pipeline-graph/styles.ts +97 -0
- package/src/elements/shared/ca-definition.ts +206 -0
- package/src/elements/shared/contract-parts.ts +158 -0
- package/src/elements/shared/file-card.ts +49 -0
- package/src/elements/shared/prompt-text.ts +13 -0
- package/src/elements/shared/task-chip.ts +18 -0
- package/src/elements/shell/ca-clock.ts +27 -0
- package/src/elements/shell/ca-hosts.ts +93 -0
- package/src/elements/shell/ca-monitor.ts +526 -0
- package/src/elements/shell/ca-run-picker.ts +284 -0
- package/src/elements/shell/ca-theme-switch.ts +170 -0
- package/src/elements/shell/ca-toasts.ts +100 -0
- package/src/elements/shell/header.ts +45 -0
- package/src/elements/shell/styles.ts +72 -0
- package/src/elements/shell/tabs.ts +143 -0
- package/src/elements/shell/views.ts +67 -0
- package/src/elements/task/ca-task-view.ts +157 -0
- package/src/elements/task/ca-transcript.ts +214 -0
- package/src/elements/task/context.ts +105 -0
- package/src/elements/task/header.ts +292 -0
- package/src/elements/task/index.ts +2 -0
- package/src/elements/task/inputs.ts +46 -0
- package/src/elements/task/panes/definition.ts +7 -0
- package/src/elements/task/panes/io.ts +190 -0
- package/src/elements/task/panes/transcript.ts +29 -0
- package/src/elements/task/styles.ts +66 -0
- package/src/elements/trends/ca-trends.ts +204 -0
- package/src/index.ts +23 -0
- package/src/lib/tone.ts +109 -0
- package/src/lib/trends.ts +44 -0
- package/src/locales/codes.ts +23 -0
- package/src/locales/ja.ts +771 -0
- package/src/words/api-error.ts +17 -0
- package/src/words/attempts.ts +28 -0
- package/src/words/causes.ts +67 -0
- package/src/words/changes.ts +27 -0
- package/src/words/claims.ts +16 -0
- package/src/words/context.ts +47 -0
- package/src/words/contract.ts +63 -0
- package/src/words/credential.ts +8 -0
- package/src/words/executor.ts +22 -0
- package/src/words/export.ts +22 -0
- package/src/words/format.ts +107 -0
- package/src/words/hops.ts +30 -0
- package/src/words/hosts.ts +37 -0
- package/src/words/index.ts +30 -0
- package/src/words/models.ts +50 -0
- package/src/words/outcome.ts +61 -0
- package/src/words/panels.ts +53 -0
- package/src/words/passes.ts +18 -0
- package/src/words/preflight.ts +53 -0
- package/src/words/priority.ts +8 -0
- package/src/words/prompt.ts +20 -0
- package/src/words/quota.ts +108 -0
- package/src/words/rests.ts +96 -0
- package/src/words/rounds.ts +56 -0
- package/src/words/row-extras.ts +24 -0
- package/src/words/run-line.ts +77 -0
- package/src/words/stop.ts +65 -0
- package/src/words/table.ts +10 -0
- package/src/words/task-definition.ts +37 -0
- package/src/words/time-box.ts +21 -0
- package/src/words/trends.ts +118 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// A task's transcript as it arrives: a saved one folded at once, or one tailed
|
|
2
|
+
// from the monitor's stream feed (`openStreamFeed`), page by page, with "load
|
|
3
|
+
// earlier" through the client. The host re-renders on every page.
|
|
4
|
+
import {
|
|
5
|
+
openStreamFeed,
|
|
6
|
+
type MonitorClient,
|
|
7
|
+
type StreamPage,
|
|
8
|
+
type TranscriptEvent,
|
|
9
|
+
type Unsubscribe,
|
|
10
|
+
} from '@contraagent/api';
|
|
11
|
+
import type { ReactiveController, ReactiveControllerHost } from 'lit';
|
|
12
|
+
import { applyEvents, emptyTranscript, type Transcript } from '../adapters/transcript/model.js';
|
|
13
|
+
|
|
14
|
+
/** How far back "load earlier" reaches, in transcript lines. */
|
|
15
|
+
const EARLIER_LINES = 3000;
|
|
16
|
+
|
|
17
|
+
/** What to load: a saved transcript, or the transcript of task `stream` in `run`, tailed from `baseUrl`. */
|
|
18
|
+
export type StreamSource = { events: readonly TranscriptEvent[] } | { run: string; stream: string; baseUrl: string };
|
|
19
|
+
|
|
20
|
+
export class StreamController implements ReactiveController {
|
|
21
|
+
model: Transcript = emptyTranscript();
|
|
22
|
+
/** Transcript lines before the first page that are not loaded. */
|
|
23
|
+
behind = 0;
|
|
24
|
+
/** The events shown so far: the pages' events that showed something. */
|
|
25
|
+
count = 0;
|
|
26
|
+
/** The first page has arrived (a saved transcript: at once). */
|
|
27
|
+
ready = false;
|
|
28
|
+
/** Changes with every page, and with every load. */
|
|
29
|
+
version = 0;
|
|
30
|
+
/** Changes with every load: a new transcript, or the same one after the host was attached again. */
|
|
31
|
+
generation = 0;
|
|
32
|
+
/** The key of what is loaded (`load`); '' after the host was detached. */
|
|
33
|
+
loaded = '';
|
|
34
|
+
private close: Unsubscribe | null = null;
|
|
35
|
+
|
|
36
|
+
constructor(private readonly host: ReactiveControllerHost) {
|
|
37
|
+
host.addController(this);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** The feed is open: the transcript is being tailed. */
|
|
41
|
+
get tailing(): boolean {
|
|
42
|
+
return this.close !== null;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
hostDisconnected(): void {
|
|
46
|
+
this.stop();
|
|
47
|
+
this.loaded = '';
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
private stop(): void {
|
|
51
|
+
this.close?.();
|
|
52
|
+
this.close = null;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/** Start over with `source` (none: an empty transcript); `key` names it for `loaded`. */
|
|
56
|
+
load(key: string, source: StreamSource | null): void {
|
|
57
|
+
this.stop();
|
|
58
|
+
this.loaded = key;
|
|
59
|
+
this.generation++;
|
|
60
|
+
this.version++;
|
|
61
|
+
this.model = emptyTranscript();
|
|
62
|
+
this.behind = 0;
|
|
63
|
+
this.count = 0;
|
|
64
|
+
this.ready = false;
|
|
65
|
+
if (source && 'events' in source) {
|
|
66
|
+
this.count = applyEvents(this.model, source.events);
|
|
67
|
+
this.ready = true;
|
|
68
|
+
} else if (source) {
|
|
69
|
+
const generation = this.generation;
|
|
70
|
+
this.close = openStreamFeed(source.run, source.stream, { message: (page) => this.onPage(page, generation) }, { baseUrl: source.baseUrl });
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** More events of the saved transcript loaded last: folded in after the others, the same transcript (no new `generation`). */
|
|
75
|
+
append(events: readonly TranscriptEvent[]): void {
|
|
76
|
+
if (!events.length) return;
|
|
77
|
+
this.count += applyEvents(this.model, events);
|
|
78
|
+
this.version++;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
private onPage(page: StreamPage, generation: number): void {
|
|
82
|
+
if (generation !== this.generation) return;
|
|
83
|
+
if (!this.ready && page.behind) this.behind = page.behind;
|
|
84
|
+
this.count += applyEvents(this.model, page.events);
|
|
85
|
+
this.ready = true;
|
|
86
|
+
this.version++;
|
|
87
|
+
this.host.requestUpdate();
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/** Load the transcript again from further back: the lines `behind` the first page, up to 3000. */
|
|
91
|
+
async loadEarlier(client: MonitorClient, run: string, stream: string): Promise<void> {
|
|
92
|
+
const generation = this.generation;
|
|
93
|
+
const back = Math.max(0, this.behind - EARLIER_LINES);
|
|
94
|
+
this.behind = 0;
|
|
95
|
+
this.host.requestUpdate();
|
|
96
|
+
const page = await client.stream(run, stream, back);
|
|
97
|
+
if (generation !== this.generation) return;
|
|
98
|
+
this.model = emptyTranscript();
|
|
99
|
+
applyEvents(this.model, page.events);
|
|
100
|
+
this.version++;
|
|
101
|
+
this.host.requestUpdate();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// One task's detail (`MonitorClient.task`), fetched for the element that shows
|
|
2
|
+
// it: again whenever the run, the task or the client changes, and only the
|
|
3
|
+
// latest request's answer is kept.
|
|
4
|
+
import type { MonitorClient, TaskDetail } from '@contraagent/api';
|
|
5
|
+
import type { ReactiveControllerHost } from 'lit';
|
|
6
|
+
|
|
7
|
+
/** The detail of a task the server could not return: no attempts, no files, no definition. */
|
|
8
|
+
export const emptyDetail = (key: string): TaskDetail => ({
|
|
9
|
+
key,
|
|
10
|
+
rows: [],
|
|
11
|
+
launches: [],
|
|
12
|
+
definition: null,
|
|
13
|
+
io: { params: {}, inputs: [], outputs: [], executor: 'agent', upstream: [], downstream: [] },
|
|
14
|
+
stream: null,
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Holds `value`, the detail of the task `load` named last: null until it
|
|
19
|
+
* arrives, `emptyDetail` (and `error`) when the request failed. The host
|
|
20
|
+
* re-renders when it arrives.
|
|
21
|
+
*/
|
|
22
|
+
export class TaskDetailController {
|
|
23
|
+
/** The detail; null while it loads, or when there is no task to load. */
|
|
24
|
+
value: TaskDetail | null = null;
|
|
25
|
+
/** Why the last request failed; null when it did not. */
|
|
26
|
+
error: unknown = null;
|
|
27
|
+
private token = 0;
|
|
28
|
+
|
|
29
|
+
constructor(private readonly host: ReactiveControllerHost) {}
|
|
30
|
+
|
|
31
|
+
/** Load the detail of `key` in `run`; an earlier request still on its way is dropped. */
|
|
32
|
+
load(client: MonitorClient | undefined, run: string, key: string | null): void {
|
|
33
|
+
const token = ++this.token;
|
|
34
|
+
this.value = null;
|
|
35
|
+
this.error = null;
|
|
36
|
+
if (!run || !key || !client) return;
|
|
37
|
+
void this.fetch(token, client, run, key);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
private async fetch(token: number, client: MonitorClient, run: string, key: string): Promise<void> {
|
|
41
|
+
let d: TaskDetail;
|
|
42
|
+
let error: unknown = null;
|
|
43
|
+
try {
|
|
44
|
+
d = await client.task(run, key);
|
|
45
|
+
} catch (e) {
|
|
46
|
+
d = emptyDetail(key);
|
|
47
|
+
error = e;
|
|
48
|
+
}
|
|
49
|
+
if (token !== this.token) return;
|
|
50
|
+
this.value = d;
|
|
51
|
+
this.error = error;
|
|
52
|
+
this.host.requestUpdate();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// The theme an element shows: the reader's choice, resolved against the
|
|
2
|
+
// system's colour scheme, reflected as `data-ca-theme`.
|
|
3
|
+
import type { ReactiveController, ReactiveControllerHost } from 'lit';
|
|
4
|
+
import { isThemeChoice, preferredTheme, prefersLight, resolveTheme, type ThemeChoice, type ThemeName } from '@contraagent/elements/themes';
|
|
5
|
+
|
|
6
|
+
export interface ThemeOptions {
|
|
7
|
+
/** The element's `theme` property: a choice, or '' for the choice remembered from an earlier visit. */
|
|
8
|
+
theme: () => ThemeChoice | '';
|
|
9
|
+
/** The element is the page: the theme goes on `<html>` too. */
|
|
10
|
+
pageWide: () => boolean;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Shows the theme on its host (and on `<html>` when the host is the page),
|
|
15
|
+
* after every update, and follows the system's colour scheme for `system`.
|
|
16
|
+
*/
|
|
17
|
+
export class ThemeController implements ReactiveController {
|
|
18
|
+
/** Whether the system asks for a light colour scheme (what `system` follows). */
|
|
19
|
+
light = prefersLight();
|
|
20
|
+
private stop: (() => void) | null = null;
|
|
21
|
+
|
|
22
|
+
constructor(
|
|
23
|
+
private readonly host: ReactiveControllerHost & HTMLElement,
|
|
24
|
+
private readonly opts: ThemeOptions,
|
|
25
|
+
) {
|
|
26
|
+
host.addController(this);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** The reader's choice: the `theme` property, else the choice remembered from an earlier visit. */
|
|
30
|
+
get choice(): ThemeChoice {
|
|
31
|
+
const t = this.opts.theme();
|
|
32
|
+
return isThemeChoice(t) ? t : preferredTheme();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/** The theme shown now. */
|
|
36
|
+
get shown(): ThemeName {
|
|
37
|
+
return resolveTheme(this.choice, this.light);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** What `system` resolves to now. */
|
|
41
|
+
get system(): ThemeName {
|
|
42
|
+
return resolveTheme('system', this.light);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
hostConnected(): void {
|
|
46
|
+
this.apply();
|
|
47
|
+
const scheme = globalThis.matchMedia?.('(prefers-color-scheme: light)');
|
|
48
|
+
if (!scheme) return;
|
|
49
|
+
const onScheme = (e: MediaQueryListEvent) => {
|
|
50
|
+
this.light = e.matches;
|
|
51
|
+
this.host.requestUpdate();
|
|
52
|
+
};
|
|
53
|
+
scheme.addEventListener('change', onScheme);
|
|
54
|
+
this.stop = () => scheme.removeEventListener('change', onScheme);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
hostDisconnected(): void {
|
|
58
|
+
this.stop?.();
|
|
59
|
+
this.stop = null;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
hostUpdated(): void {
|
|
63
|
+
this.apply();
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/** Show the theme: on the host, and on the page when the host is the page. */
|
|
67
|
+
private apply(): void {
|
|
68
|
+
const name = this.shown;
|
|
69
|
+
if (this.host.getAttribute('data-ca-theme') !== name) this.host.setAttribute('data-ca-theme', name);
|
|
70
|
+
if (this.opts.pageWide() && document.documentElement.getAttribute('data-ca-theme') !== name)
|
|
71
|
+
document.documentElement.setAttribute('data-ca-theme', name);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
// The events the elements send up. Each crosses shadow roots (`composed`) and
|
|
2
|
+
// all but `ca-rounds` bubble, so a host listens on any ancestor. An element
|
|
3
|
+
// states what the reader asked for; whoever hosts it decides what happens (the
|
|
4
|
+
// monitor changes its view route; another page may open its own view).
|
|
5
|
+
import type { LaunchEvent } from '@contraagent/api';
|
|
6
|
+
import type { ViewRoutePatch, TaskView } from './view-route.js';
|
|
7
|
+
import type { ThemeChoice } from '@contraagent/elements/themes';
|
|
8
|
+
|
|
9
|
+
export interface OpenTaskDetail {
|
|
10
|
+
/** A task key. */
|
|
11
|
+
key: string;
|
|
12
|
+
/** What to show of it; the host's choice when absent. */
|
|
13
|
+
view?: TaskView;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface SelectRunDetail {
|
|
17
|
+
run: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface FilterDetail {
|
|
21
|
+
kind?: string;
|
|
22
|
+
/** A journal stop, or 'bad' for every attempt that did not complete. */
|
|
23
|
+
stop?: string;
|
|
24
|
+
q?: string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/** Where to go; `replace`: in place of where the reader is (a link that named nothing, set right), not a step back can return to. */
|
|
28
|
+
export type NavigateDetail = ViewRoutePatch & { replace?: boolean };
|
|
29
|
+
|
|
30
|
+
export interface ChooseThemeDetail {
|
|
31
|
+
/** The reader's choice: a theme, or `system`. */
|
|
32
|
+
theme: ThemeChoice;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/** What a journal row says about a try (the fields this needs). */
|
|
36
|
+
export interface TryResult {
|
|
37
|
+
attempt?: number | null;
|
|
38
|
+
ok: boolean;
|
|
39
|
+
stop: string;
|
|
40
|
+
reason?: string | null;
|
|
41
|
+
/** The models this try went through, one per hop of the failover chain. */
|
|
42
|
+
hops?: readonly { model?: string | null; route?: string | null; stop?: string | null }[] | null;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export interface RoundInfo {
|
|
46
|
+
kind: 'try' | 'fixup' | 'switch';
|
|
47
|
+
/** 1-based try number. */
|
|
48
|
+
tryNo: number;
|
|
49
|
+
/** 0 for a try's first answer, else the fix-up's number within its try. */
|
|
50
|
+
fixupNo: number;
|
|
51
|
+
/** 0 for the try's first model, else the model switch's number within the try. */
|
|
52
|
+
hopNo: number;
|
|
53
|
+
/** The model of this round's hop, when the journal names it. */
|
|
54
|
+
model: string;
|
|
55
|
+
/**
|
|
56
|
+
* `ok`: this round's output passed (the try's last round, the try succeeded);
|
|
57
|
+
* `rejected`: a later fix-up in the same try followed it (its output failed its checks);
|
|
58
|
+
* `failed`: the try's last round, and the try failed;
|
|
59
|
+
* `switched`: a model switch followed it (its model stopped, e.g. rate limited);
|
|
60
|
+
* null: not known yet (running).
|
|
61
|
+
*/
|
|
62
|
+
result: 'ok' | 'rejected' | 'failed' | 'switched' | null;
|
|
63
|
+
/** For a switched round: how its model's session ended (a stop value). */
|
|
64
|
+
switchedStop: string;
|
|
65
|
+
/** For a switched round: the model the next session ran on ('' when the journal names none). */
|
|
66
|
+
switchedTo: string;
|
|
67
|
+
/** For a rejected round: the errors the next round was sent back with. */
|
|
68
|
+
rejectedWith: string[];
|
|
69
|
+
/** For a failed round: the journal row of its try. */
|
|
70
|
+
row: TryResult | null;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export interface RoundsChangedDetail {
|
|
74
|
+
/** Each round's launch event (null for events before any launch). */
|
|
75
|
+
launches: (LaunchEvent | null)[];
|
|
76
|
+
/** The round shown, 0-based; -1 while there is none. */
|
|
77
|
+
shown: number;
|
|
78
|
+
/** Each round as a try or a fix-up, with its result when known. */
|
|
79
|
+
rounds: RoundInfo[];
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/** Every event an element sends, by name. */
|
|
83
|
+
export interface CaEventMap {
|
|
84
|
+
/** Open a task: its transcript, or `view` of it. */
|
|
85
|
+
'ca-open-task': OpenTaskDetail;
|
|
86
|
+
/** Switch to another run. */
|
|
87
|
+
'ca-select-run': SelectRunDetail;
|
|
88
|
+
/** Change a list filter. */
|
|
89
|
+
'ca-filter': FilterDetail;
|
|
90
|
+
/** Go elsewhere in the monitor (its own views use this). */
|
|
91
|
+
'ca-navigate': NavigateDetail;
|
|
92
|
+
/** Show another theme (the theme control). */
|
|
93
|
+
'ca-choose-theme': ChooseThemeDetail;
|
|
94
|
+
/** Close the element (the run picker). */
|
|
95
|
+
'ca-close': Record<string, never>;
|
|
96
|
+
/** A transcript's rounds or its shown round changed; does not bubble (`ca-transcript`). */
|
|
97
|
+
'ca-rounds': RoundsChangedDetail;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
declare global {
|
|
101
|
+
interface HTMLElementEventMap {
|
|
102
|
+
'ca-open-task': CustomEvent<OpenTaskDetail>;
|
|
103
|
+
'ca-select-run': CustomEvent<SelectRunDetail>;
|
|
104
|
+
'ca-filter': CustomEvent<FilterDetail>;
|
|
105
|
+
'ca-navigate': CustomEvent<NavigateDetail>;
|
|
106
|
+
'ca-choose-theme': CustomEvent<ChooseThemeDetail>;
|
|
107
|
+
'ca-close': CustomEvent<Record<string, never>>;
|
|
108
|
+
'ca-rounds': CustomEvent<RoundsChangedDetail>;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/** Sends `name` from `from`; it bubbles unless `bubbles: false`. */
|
|
113
|
+
export function emit<K extends keyof CaEventMap>(
|
|
114
|
+
from: EventTarget,
|
|
115
|
+
name: K,
|
|
116
|
+
detail: CaEventMap[K],
|
|
117
|
+
{ bubbles = true }: { bubbles?: boolean } = {},
|
|
118
|
+
): void {
|
|
119
|
+
from.dispatchEvent(new CustomEvent(name, { detail, bubbles, composed: true }));
|
|
120
|
+
}
|
package/src/core/i18n.ts
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// The language the elements speak. English is written in the sources; other
|
|
2
|
+
// locales are generated from xliff/<locale>.xlf by `pnpm i18n`
|
|
3
|
+
// (lit-localize, runtime mode) into src/locales/<locale>.ts.
|
|
4
|
+
//
|
|
5
|
+
// Importing this module configures nothing: `configureLocales()` sets up Lit
|
|
6
|
+
// Localize, once, when the page or `<ca-monitor>` calls it. Until then, and in
|
|
7
|
+
// a page whose own code configured Lit Localize first, the elements speak
|
|
8
|
+
// English. Every element is `@localized()`, so `setLocale` re-renders them in place.
|
|
9
|
+
import { configureLocalization } from '@lit/localize';
|
|
10
|
+
import { allLocales, sourceLocale, targetLocales } from '../locales/codes.js';
|
|
11
|
+
|
|
12
|
+
export type Locale = (typeof allLocales)[number];
|
|
13
|
+
export { allLocales };
|
|
14
|
+
|
|
15
|
+
/** Each locale's name, written in itself (for a language switch). */
|
|
16
|
+
export const LOCALE_NAMES: Record<Locale, string> = { en: 'English', ja: '日本語' };
|
|
17
|
+
|
|
18
|
+
/** Each target locale's module, loaded when the locale is first chosen. */
|
|
19
|
+
const LOADERS: Record<(typeof targetLocales)[number], () => Promise<typeof import('../locales/ja.js')>> = {
|
|
20
|
+
ja: () => import('../locales/ja.js'),
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
let localization: ReturnType<typeof configureLocalization> | null | undefined;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Sets up Lit Localize for these elements, once; true when the elements can
|
|
27
|
+
* switch language. False when the page had already configured Lit Localize
|
|
28
|
+
* (it can be configured once per page): the elements then stay in English.
|
|
29
|
+
*/
|
|
30
|
+
export function configureLocales(): boolean {
|
|
31
|
+
if (localization === undefined) {
|
|
32
|
+
try {
|
|
33
|
+
localization = configureLocalization({ sourceLocale, targetLocales, loadLocale: (l) => LOADERS[l as keyof typeof LOADERS]() });
|
|
34
|
+
} catch {
|
|
35
|
+
localization = null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return localization !== null;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** The language shown now: English before `configureLocales()`. */
|
|
42
|
+
export const getLocale = (): Locale => (localization?.getLocale() as Locale | undefined) ?? sourceLocale;
|
|
43
|
+
|
|
44
|
+
/** Show every element in `locale`; it configures the locales first if nothing has. */
|
|
45
|
+
export async function setLocale(locale: Locale): Promise<void> {
|
|
46
|
+
if (configureLocales()) await localization!.setLocale(locale);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const STORE_KEY = 'contraagent:locale';
|
|
50
|
+
|
|
51
|
+
export const isLocale = (x: unknown): x is Locale => (allLocales as readonly unknown[]).includes(x);
|
|
52
|
+
|
|
53
|
+
/** The reader's choice from an earlier visit, else the first of the browser's languages we have, else English. */
|
|
54
|
+
export function preferredLocale(): Locale {
|
|
55
|
+
try {
|
|
56
|
+
const saved = globalThis.localStorage?.getItem(STORE_KEY);
|
|
57
|
+
if (isLocale(saved)) return saved;
|
|
58
|
+
} catch {
|
|
59
|
+
/* storage blocked: fall through */
|
|
60
|
+
}
|
|
61
|
+
for (const lang of globalThis.navigator?.languages ?? []) {
|
|
62
|
+
const base = lang.toLowerCase().split('-')[0];
|
|
63
|
+
if (isLocale(base)) return base;
|
|
64
|
+
}
|
|
65
|
+
return sourceLocale;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** Switch every element to `locale`, and remember the choice for the next visit. */
|
|
69
|
+
export async function chooseLocale(locale: Locale): Promise<void> {
|
|
70
|
+
try {
|
|
71
|
+
globalThis.localStorage?.setItem(STORE_KEY, locale);
|
|
72
|
+
} catch {
|
|
73
|
+
/* storage blocked: the choice lasts for this page */
|
|
74
|
+
}
|
|
75
|
+
await setLocale(locale);
|
|
76
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// `@contraagent/ui/core`: the events the elements send, the monitor's view route and
|
|
2
|
+
// view router, and the languages. No element; nothing happens at import.
|
|
3
|
+
export * from './events.js';
|
|
4
|
+
export * from './view-route.js';
|
|
5
|
+
export { ViewRouter, type ViewRouteCause, type ViewRouterMode } from './view-router.js';
|
|
6
|
+
export { LOCALE_NAMES, allLocales, chooseLocale, configureLocales, getLocale, preferredLocale, setLocale, type Locale } from './i18n.js';
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
// What the reader did on a page that the URL does not say: how far a list is
|
|
2
|
+
// scrolled, which cards are open. Kept in the current history entry, so Back,
|
|
3
|
+
// Forward and a reload return to it, and a new entry starts clean.
|
|
4
|
+
//
|
|
5
|
+
// Stored under one key of `history.state`, merged with whatever else a host
|
|
6
|
+
// page keeps there (the host's own state survives). A monitor embedded with
|
|
7
|
+
// `history="memory"` keeps its own instead (`LocalMemory`, `keepMemory`): it
|
|
8
|
+
// leaves the page's history alone, and two monitors on a page do not share it.
|
|
9
|
+
|
|
10
|
+
const NS = 'contraagent';
|
|
11
|
+
const WRITE_MS = 200;
|
|
12
|
+
|
|
13
|
+
type Bag = Record<string, unknown> & { entry?: string };
|
|
14
|
+
|
|
15
|
+
let pending: Bag | null = null;
|
|
16
|
+
/** The entry `pending` belongs to: after Back/Forward it must not land on another one. */
|
|
17
|
+
let pendingEntry = '';
|
|
18
|
+
let timer: ReturnType<typeof setTimeout> | null = null;
|
|
19
|
+
/** Whether the page's `pagehide` writes what is pending: added on the first write, not on import. */
|
|
20
|
+
let flushOnHide = false;
|
|
21
|
+
|
|
22
|
+
function state(): Record<string, unknown> {
|
|
23
|
+
const s: unknown = globalThis.history?.state;
|
|
24
|
+
return s && typeof s === 'object' ? (s as Record<string, unknown>) : {};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function bag(): Bag {
|
|
28
|
+
const mine = state()[NS];
|
|
29
|
+
return mine && typeof mine === 'object' ? (mine as Bag) : {};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** The current entry's id, given one on first use. */
|
|
33
|
+
function entry(): string {
|
|
34
|
+
const id = bag().entry;
|
|
35
|
+
if (id) return id;
|
|
36
|
+
const fresh = Math.random().toString(36).slice(2);
|
|
37
|
+
history.replaceState({ ...state(), [NS]: { ...bag(), entry: fresh } }, '');
|
|
38
|
+
return fresh;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function write(): void {
|
|
42
|
+
if (timer) clearTimeout(timer);
|
|
43
|
+
timer = null;
|
|
44
|
+
const p = pending;
|
|
45
|
+
pending = null;
|
|
46
|
+
if (!p || !globalThis.history || bag().entry !== pendingEntry) return;
|
|
47
|
+
history.replaceState({ ...state(), [NS]: { ...bag(), ...p } }, '');
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** The value remembered under `id` in the current history entry. */
|
|
51
|
+
export function recall<T>(id: string): T | undefined {
|
|
52
|
+
if (!globalThis.history) return undefined;
|
|
53
|
+
const fromPending = pending && pendingEntry === bag().entry && id in pending;
|
|
54
|
+
return (fromPending ? pending![id] : bag()[id]) as T | undefined;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** Remember `value` under `id` in the current history entry (written shortly after, batched). */
|
|
58
|
+
export function remember(id: string, value: unknown): void {
|
|
59
|
+
if (!globalThis.history) return;
|
|
60
|
+
const e = entry();
|
|
61
|
+
if (pending && pendingEntry !== e) pending = null;
|
|
62
|
+
pendingEntry = e;
|
|
63
|
+
(pending ??= {})[id] = value;
|
|
64
|
+
timer ??= setTimeout(write, WRITE_MS);
|
|
65
|
+
if (!flushOnHide) {
|
|
66
|
+
flushOnHide = true;
|
|
67
|
+
globalThis.addEventListener?.('pagehide', flushMemory);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/** Write what is pending now: before the page pushes a new entry, so it lands on the old one. */
|
|
72
|
+
export function flushMemory(): void {
|
|
73
|
+
write();
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/** Where values are remembered: the page's history entry, or one embedded monitor's own. */
|
|
77
|
+
export interface Memory {
|
|
78
|
+
recall<T>(id: string): T | undefined;
|
|
79
|
+
remember(id: string, value: unknown): void;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/** The current history entry of the page (`recall`, `remember`). */
|
|
83
|
+
export const pageMemory: Memory = { recall, remember };
|
|
84
|
+
|
|
85
|
+
/** Values kept by one element for as long as it lives: the memory of a monitor with `history="memory"`. */
|
|
86
|
+
export class LocalMemory implements Memory {
|
|
87
|
+
private readonly values = new Map<string, unknown>();
|
|
88
|
+
recall<T>(id: string): T | undefined {
|
|
89
|
+
return this.values.get(id) as T | undefined;
|
|
90
|
+
}
|
|
91
|
+
remember(id: string, value: unknown): void {
|
|
92
|
+
this.values.set(id, value);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const kept = new WeakMap<Node, Memory>();
|
|
97
|
+
|
|
98
|
+
/** Make `memory` the memory of everything inside `root` (its light and shadow trees); null gives it back to the page. */
|
|
99
|
+
export function keepMemory(root: Node, memory: Memory | null): void {
|
|
100
|
+
if (memory) kept.set(root, memory);
|
|
101
|
+
else kept.delete(root);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/** The memory `node` remembers in: that of the nearest root around it (across shadow roots) given one, else the page's. */
|
|
105
|
+
export function memoryOf(node: Node | null | undefined): Memory {
|
|
106
|
+
for (let n: Node | null | undefined = node; n; n = n.parentNode ?? (n as Partial<ShadowRoot>).host) {
|
|
107
|
+
const m = kept.get(n);
|
|
108
|
+
if (m) return m;
|
|
109
|
+
}
|
|
110
|
+
return pageMemory;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/** A set of ids remembered under `id` (open cards, folds), in the memory of `from` (read on first use). */
|
|
114
|
+
export class RememberedSet {
|
|
115
|
+
private items: Set<string> | null = null;
|
|
116
|
+
constructor(
|
|
117
|
+
private readonly id: string,
|
|
118
|
+
private readonly from?: Node,
|
|
119
|
+
) {}
|
|
120
|
+
private get memory(): Memory {
|
|
121
|
+
return memoryOf(this.from);
|
|
122
|
+
}
|
|
123
|
+
private get loaded(): Set<string> {
|
|
124
|
+
return (this.items ??= new Set(this.memory.recall<string[]>(this.id) ?? []));
|
|
125
|
+
}
|
|
126
|
+
has(x: string): boolean {
|
|
127
|
+
return this.loaded.has(x);
|
|
128
|
+
}
|
|
129
|
+
set(x: string, on: boolean): void {
|
|
130
|
+
const items = this.loaded;
|
|
131
|
+
if (on === items.has(x)) return;
|
|
132
|
+
if (on) items.add(x);
|
|
133
|
+
else items.delete(x);
|
|
134
|
+
this.memory.remember(this.id, [...items]);
|
|
135
|
+
}
|
|
136
|
+
/** Every id in the set. */
|
|
137
|
+
values(): string[] {
|
|
138
|
+
return [...this.loaded];
|
|
139
|
+
}
|
|
140
|
+
/** Empty the set. */
|
|
141
|
+
clear(): void {
|
|
142
|
+
if (!this.loaded.size) return;
|
|
143
|
+
this.loaded.clear();
|
|
144
|
+
this.memory.remember(this.id, []);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* A set of ids kept for this browser tab (sessionStorage) rather than one
|
|
150
|
+
* history entry: state that belongs to a thing shown on several entries, such
|
|
151
|
+
* as the tool cards open in a transcript. A reload keeps it.
|
|
152
|
+
*/
|
|
153
|
+
export class SessionSet {
|
|
154
|
+
private readonly items: Set<string>;
|
|
155
|
+
constructor(private readonly id: string) {
|
|
156
|
+
let saved: unknown = null;
|
|
157
|
+
try {
|
|
158
|
+
saved = JSON.parse(globalThis.sessionStorage?.getItem(`${NS}:${id}`) ?? 'null');
|
|
159
|
+
} catch {
|
|
160
|
+
/* storage blocked or corrupt: start empty */
|
|
161
|
+
}
|
|
162
|
+
this.items = new Set(Array.isArray(saved) ? saved.filter((x): x is string => typeof x === 'string') : []);
|
|
163
|
+
}
|
|
164
|
+
has(x: string): boolean {
|
|
165
|
+
return this.items.has(x);
|
|
166
|
+
}
|
|
167
|
+
set(x: string, on: boolean): void {
|
|
168
|
+
if (on === this.items.has(x)) return;
|
|
169
|
+
if (on) this.items.add(x);
|
|
170
|
+
else this.items.delete(x);
|
|
171
|
+
try {
|
|
172
|
+
globalThis.sessionStorage?.setItem(`${NS}:${this.id}`, JSON.stringify([...this.items]));
|
|
173
|
+
} catch {
|
|
174
|
+
/* storage blocked or full: the state lives until the page goes */
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// A scroller that comes back where the reader left it. The position is
|
|
2
|
+
// remembered in a memory (`memory.ts`: the history entry, or an embedded
|
|
3
|
+
// monitor's own); restoring waits until the content, which arrives over the
|
|
4
|
+
// network, is tall enough to scroll there.
|
|
5
|
+
import { pageMemory, type Memory } from './memory.js';
|
|
6
|
+
|
|
7
|
+
const GIVE_UP_MS = 6000;
|
|
8
|
+
const INPUT_EVENTS = ['wheel', 'touchstart', 'pointerdown', 'keydown'] as const;
|
|
9
|
+
|
|
10
|
+
export class ScrollMemory {
|
|
11
|
+
private el: HTMLElement | null = null;
|
|
12
|
+
private frame = 0;
|
|
13
|
+
private restoring = false;
|
|
14
|
+
|
|
15
|
+
constructor(
|
|
16
|
+
private readonly id: string,
|
|
17
|
+
/** Where the position is remembered: read at each use. */
|
|
18
|
+
private readonly memory: () => Memory = () => pageMemory,
|
|
19
|
+
) {}
|
|
20
|
+
|
|
21
|
+
attach(el: HTMLElement): void {
|
|
22
|
+
if (this.el === el) return;
|
|
23
|
+
this.detach();
|
|
24
|
+
this.el = el;
|
|
25
|
+
el.addEventListener('scroll', this.onScroll, { passive: true });
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
detach(): void {
|
|
29
|
+
this.cancel();
|
|
30
|
+
this.el?.removeEventListener('scroll', this.onScroll);
|
|
31
|
+
this.el = null;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/** Go back to the remembered position, as soon as the content allows; to the top when none is remembered. */
|
|
35
|
+
restore(): void {
|
|
36
|
+
const el = this.el;
|
|
37
|
+
if (!el) return;
|
|
38
|
+
this.cancel();
|
|
39
|
+
const target = this.memory().recall<number>(this.id) ?? 0;
|
|
40
|
+
if (target <= 0) {
|
|
41
|
+
el.scrollTop = 0;
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const until = performance.now() + GIVE_UP_MS;
|
|
45
|
+
this.restoring = true;
|
|
46
|
+
for (const t of INPUT_EVENTS) el.addEventListener(t, this.cancel, { passive: true, once: true });
|
|
47
|
+
const step = () => {
|
|
48
|
+
const max = el.scrollHeight - el.clientHeight;
|
|
49
|
+
el.scrollTop = Math.min(target, max);
|
|
50
|
+
if (max >= target || performance.now() > until) return this.cancel();
|
|
51
|
+
this.frame = requestAnimationFrame(step);
|
|
52
|
+
};
|
|
53
|
+
step();
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** Start at the top (a new place). */
|
|
57
|
+
reset(): void {
|
|
58
|
+
this.cancel();
|
|
59
|
+
if (this.el) this.el.scrollTop = 0;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
private readonly cancel = (): void => {
|
|
63
|
+
cancelAnimationFrame(this.frame);
|
|
64
|
+
this.frame = 0;
|
|
65
|
+
if (!this.restoring) return;
|
|
66
|
+
this.restoring = false;
|
|
67
|
+
for (const t of INPUT_EVENTS) this.el?.removeEventListener(t, this.cancel);
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
private readonly onScroll = (): void => {
|
|
71
|
+
if (!this.restoring && this.el) this.memory().remember(this.id, Math.round(this.el.scrollTop));
|
|
72
|
+
};
|
|
73
|
+
}
|