@visuno/angular 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/LICENSE +24 -0
- package/README.md +56 -2
- package/account-table/account-table.component.d.ts +72 -0
- package/action-log/action-log.component.d.ts +41 -0
- package/activity-heatmap/activity-heatmap.component.d.ts +67 -0
- package/agent-inbox/agent-inbox.component.d.ts +75 -0
- package/agent-lanes/agent-lanes.component.d.ts +152 -0
- package/agent-phases/agent-phases.component.d.ts +62 -0
- package/agent-run-timeline/agent-run-timeline.component.d.ts +113 -0
- package/agent-tree/agent-tree.component.d.ts +80 -0
- package/answer-action-bar/answer-action-bar.component.d.ts +110 -0
- package/artifact-card/artifact-card.component.d.ts +145 -0
- package/attachment-tray/attachment-tray.component.d.ts +84 -0
- package/badge/badge.component.d.ts +25 -0
- package/bar-chart/bar-chart.component.d.ts +87 -0
- package/browser-session/browser-session.component.d.ts +70 -0
- package/buttons/buttons.component.d.ts +63 -0
- package/card/card.component.d.ts +21 -0
- package/change-review/change-review.component.d.ts +97 -0
- package/citation-hover-card/citation-hover-card.component.d.ts +95 -0
- package/code-viewer/code-viewer.component.d.ts +86 -0
- package/composer/composer.component.d.ts +114 -0
- package/context-meter/context-meter.component.d.ts +60 -0
- package/core/icon.component.d.ts +10 -0
- package/core/reduced-motion.service.d.ts +15 -0
- package/decision-prompt/decision-prompt.component.d.ts +56 -0
- package/design-review/design-review.component.d.ts +108 -0
- package/design-tuner/design-tuner.component.d.ts +75 -0
- package/details-panel/details-panel.component.d.ts +150 -0
- package/donut-chart/donut-chart.component.d.ts +63 -0
- package/draft-review/draft-review.component.d.ts +128 -0
- package/error-recovery/error-recovery.component.d.ts +59 -0
- package/esm2022/account-table/account-table.component.mjs +399 -0
- package/esm2022/action-log/action-log.component.mjs +177 -0
- package/esm2022/activity-heatmap/activity-heatmap.component.mjs +285 -0
- package/esm2022/agent-inbox/agent-inbox.component.mjs +284 -0
- package/esm2022/agent-lanes/agent-lanes.component.mjs +600 -0
- package/esm2022/agent-phases/agent-phases.component.mjs +300 -0
- package/esm2022/agent-run-timeline/agent-run-timeline.component.mjs +412 -0
- package/esm2022/agent-tree/agent-tree.component.mjs +393 -0
- package/esm2022/answer-action-bar/answer-action-bar.component.mjs +636 -0
- package/esm2022/artifact-card/artifact-card.component.mjs +916 -0
- package/esm2022/attachment-tray/attachment-tray.component.mjs +402 -0
- package/esm2022/badge/badge.component.mjs +97 -0
- package/esm2022/bar-chart/bar-chart.component.mjs +300 -0
- package/esm2022/browser-session/browser-session.component.mjs +352 -0
- package/esm2022/buttons/buttons.component.mjs +215 -0
- package/esm2022/card/card.component.mjs +107 -0
- package/esm2022/change-review/change-review.component.mjs +398 -0
- package/esm2022/citation-hover-card/citation-hover-card.component.mjs +360 -0
- package/esm2022/code-viewer/code-viewer.component.mjs +291 -0
- package/esm2022/composer/composer.component.mjs +743 -0
- package/esm2022/context-meter/context-meter.component.mjs +275 -0
- package/esm2022/core/icon.component.mjs +111 -0
- package/esm2022/core/reduced-motion.service.mjs +34 -0
- package/esm2022/decision-prompt/decision-prompt.component.mjs +259 -0
- package/esm2022/design-review/design-review.component.mjs +428 -0
- package/esm2022/design-tuner/design-tuner.component.mjs +341 -0
- package/esm2022/details-panel/details-panel.component.mjs +537 -0
- package/esm2022/donut-chart/donut-chart.component.mjs +240 -0
- package/esm2022/draft-review/draft-review.component.mjs +549 -0
- package/esm2022/error-recovery/error-recovery.component.mjs +231 -0
- package/esm2022/eval-results/eval-results.component.mjs +368 -0
- package/esm2022/feedback-sheet/feedback-sheet.component.mjs +411 -0
- package/esm2022/field-extraction/field-extraction.component.mjs +368 -0
- package/esm2022/funnel-chart/funnel-chart.component.mjs +258 -0
- package/esm2022/grid/grid.component.mjs +66 -0
- package/esm2022/health-score/health-score.component.mjs +420 -0
- package/esm2022/human-handoff/human-handoff.component.mjs +676 -0
- package/esm2022/image-generation/image-generation.component.mjs +1028 -0
- package/esm2022/inline-text-diff/inline-text-diff.component.mjs +390 -0
- package/esm2022/launch-checklist/launch-checklist.component.mjs +229 -0
- package/esm2022/line-chart/line-chart.component.mjs +417 -0
- package/esm2022/live-answer/live-answer.component.mjs +411 -0
- package/esm2022/metric-insight/metric-insight.component.mjs +511 -0
- package/esm2022/modal/modal.component.mjs +202 -0
- package/esm2022/model-picker/model-picker.component.mjs +491 -0
- package/esm2022/permission-gate/permission-gate.component.mjs +498 -0
- package/esm2022/plan-review/plan-review.component.mjs +432 -0
- package/esm2022/progress/progress.component.mjs +503 -0
- package/esm2022/prompt-library/prompt-library.component.mjs +453 -0
- package/esm2022/prompt-starters/prompt-starters.component.mjs +272 -0
- package/esm2022/proposal-card/proposal-card.component.mjs +402 -0
- package/esm2022/public-api.mjs +88 -0
- package/esm2022/radar-chart/radar-chart.component.mjs +500 -0
- package/esm2022/radial-goals/radial-goals.component.mjs +418 -0
- package/esm2022/reasoning-trail/reasoning-trail.component.mjs +284 -0
- package/esm2022/response-versions/response-versions.component.mjs +288 -0
- package/esm2022/rewrite-toolbar/rewrite-toolbar.component.mjs +397 -0
- package/esm2022/rich-text-editor/rich-text-editor.component.mjs +1755 -0
- package/esm2022/run-cost/run-cost.component.mjs +215 -0
- package/esm2022/run-queue/run-queue.component.mjs +481 -0
- package/esm2022/run-summary/run-summary.component.mjs +331 -0
- package/esm2022/scatter-chart/scatter-chart.component.mjs +705 -0
- package/esm2022/score-breakdown/score-breakdown.component.mjs +460 -0
- package/esm2022/segmented-control/segmented-control.component.mjs +180 -0
- package/esm2022/source-stack/source-stack.component.mjs +245 -0
- package/esm2022/stat-cards/stat-cards.component.mjs +258 -0
- package/esm2022/status-pill/status-pill.component.mjs +305 -0
- package/esm2022/steering/steering.component.mjs +343 -0
- package/esm2022/step-loader/step-loader.component.mjs +209 -0
- package/esm2022/task-table/task-table.component.mjs +534 -0
- package/esm2022/terminal-stream/terminal-stream.component.mjs +583 -0
- package/esm2022/thinking/thinking.component.mjs +276 -0
- package/esm2022/thinking-states/thinking-states.component.mjs +333 -0
- package/esm2022/thread-panel/thread-panel.component.mjs +271 -0
- package/esm2022/toast/toast.component.mjs +195 -0
- package/esm2022/toast-stack/toast-stack.component.mjs +301 -0
- package/esm2022/tool-call/tool-call.component.mjs +273 -0
- package/esm2022/tooltip/tooltip.component.mjs +417 -0
- package/esm2022/top-pages/top-pages.component.mjs +240 -0
- package/esm2022/trace-view/trace-view.component.mjs +440 -0
- package/esm2022/visuno-angular.mjs +5 -0
- package/esm2022/voice-capture/voice-capture.component.mjs +650 -0
- package/esm2022/voice-orb/voice-orb.component.mjs +538 -0
- package/esm2022/web-search/web-search.component.mjs +374 -0
- package/eval-results/eval-results.component.d.ts +67 -0
- package/feedback-sheet/feedback-sheet.component.d.ts +74 -0
- package/fesm2022/visuno-angular.mjs +31992 -0
- package/fesm2022/visuno-angular.mjs.map +1 -0
- package/field-extraction/field-extraction.component.d.ts +82 -0
- package/funnel-chart/funnel-chart.component.d.ts +70 -0
- package/grid/grid.component.d.ts +22 -0
- package/health-score/health-score.component.d.ts +87 -0
- package/human-handoff/human-handoff.component.d.ts +125 -0
- package/image-generation/image-generation.component.d.ts +253 -0
- package/index.d.ts +5 -0
- package/inline-text-diff/inline-text-diff.component.d.ts +76 -0
- package/launch-checklist/launch-checklist.component.d.ts +46 -0
- package/line-chart/line-chart.component.d.ts +89 -0
- package/live-answer/live-answer.component.d.ts +110 -0
- package/metric-insight/metric-insight.component.d.ts +110 -0
- package/modal/modal.component.d.ts +37 -0
- package/model-picker/model-picker.component.d.ts +97 -0
- package/package.json +51 -4
- package/permission-gate/permission-gate.component.d.ts +100 -0
- package/plan-review/plan-review.component.d.ts +86 -0
- package/progress/progress.component.d.ts +91 -0
- package/prompt-library/prompt-library.component.d.ts +121 -0
- package/prompt-starters/prompt-starters.component.d.ts +65 -0
- package/proposal-card/proposal-card.component.d.ts +101 -0
- package/public-api.d.ts +82 -0
- package/radar-chart/radar-chart.component.d.ts +110 -0
- package/radial-goals/radial-goals.component.d.ts +90 -0
- package/reasoning-trail/reasoning-trail.component.d.ts +73 -0
- package/response-versions/response-versions.component.d.ts +54 -0
- package/rewrite-toolbar/rewrite-toolbar.component.d.ts +92 -0
- package/rich-text-editor/rich-text-editor.component.d.ts +180 -0
- package/run-cost/run-cost.component.d.ts +43 -0
- package/run-queue/run-queue.component.d.ts +93 -0
- package/run-summary/run-summary.component.d.ts +81 -0
- package/scatter-chart/scatter-chart.component.d.ts +139 -0
- package/score-breakdown/score-breakdown.component.d.ts +107 -0
- package/segmented-control/segmented-control.component.d.ts +44 -0
- package/source-stack/source-stack.component.d.ts +60 -0
- package/stat-cards/stat-cards.component.d.ts +86 -0
- package/status-pill/status-pill.component.d.ts +64 -0
- package/steering/steering.component.d.ts +75 -0
- package/step-loader/step-loader.component.d.ts +40 -0
- package/styles.css +424 -0
- package/task-table/task-table.component.d.ts +114 -0
- package/terminal-stream/terminal-stream.component.d.ts +110 -0
- package/thinking/thinking.component.d.ts +63 -0
- package/thinking-states/thinking-states.component.d.ts +51 -0
- package/thread-panel/thread-panel.component.d.ts +75 -0
- package/toast/toast.component.d.ts +56 -0
- package/toast-stack/toast-stack.component.d.ts +72 -0
- package/tokens.css +424 -0
- package/tool-call/tool-call.component.d.ts +61 -0
- package/tooltip/tooltip.component.d.ts +89 -0
- package/top-pages/top-pages.component.d.ts +75 -0
- package/trace-view/trace-view.component.d.ts +95 -0
- package/voice-capture/voice-capture.component.d.ts +103 -0
- package/voice-orb/voice-orb.component.d.ts +78 -0
- package/web-search/web-search.component.d.ts +77 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { AfterViewInit, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/** The state of an agent or one of its steps. */
|
|
4
|
+
export type AgentNodeStatus = 'queued' | 'running' | 'done' | 'failed';
|
|
5
|
+
/** A way out of a failed step, shown as a button under its task. */
|
|
6
|
+
export interface AgentNodeFix {
|
|
7
|
+
label: string;
|
|
8
|
+
onClick: () => void;
|
|
9
|
+
}
|
|
10
|
+
/** An orchestrator, an agent, or one of its steps. */
|
|
11
|
+
export interface AgentNode {
|
|
12
|
+
id: string;
|
|
13
|
+
/** Like "Design agent", or a step's name. */
|
|
14
|
+
name: string;
|
|
15
|
+
/** Its task, or what it is doing now. It crossfades when it changes. */
|
|
16
|
+
task: string;
|
|
17
|
+
status: AgentNodeStatus;
|
|
18
|
+
/** What this node spent on its own, in dollars. A branch shows this plus everything under it. */
|
|
19
|
+
cost?: number;
|
|
20
|
+
/** A way out of a failed step, shown as a button under its task. */
|
|
21
|
+
fix?: AgentNodeFix;
|
|
22
|
+
children?: AgentNode[];
|
|
23
|
+
}
|
|
24
|
+
export declare class AgentTreeComponent implements OnChanges, AfterViewInit, OnDestroy {
|
|
25
|
+
/** The orchestrator, with its agents and their steps as children. */
|
|
26
|
+
root: AgentNode;
|
|
27
|
+
/** The run's goal, like "Redesign the pricing page". */
|
|
28
|
+
title: string;
|
|
29
|
+
/** The line under the title. Defaults to "Running", "1 step failed" or "Done", then the clock. */
|
|
30
|
+
status?: string;
|
|
31
|
+
/** Seconds to show as m:ss. Leave it out to let the clock count until the root is done. */
|
|
32
|
+
seconds?: number;
|
|
33
|
+
/** Shown under the tree once the root is done. Defaults to "Done in 0:14 · 3 agents · $0.66"; false hides it. */
|
|
34
|
+
summary?: string | false;
|
|
35
|
+
/** Ids of the folded branches. Leave it out to let each branch fold itself. */
|
|
36
|
+
collapsed?: string[];
|
|
37
|
+
/** Ids folded to begin with, when `collapsed` is not controlled. */
|
|
38
|
+
defaultCollapsed: string[];
|
|
39
|
+
/** Writes a cost. Defaults to dollars and cents, like "$0.12". */
|
|
40
|
+
formatCost?: (dollars: number) => string;
|
|
41
|
+
className: string;
|
|
42
|
+
/** Emitted when a branch folds or unfolds, with the ids now folded. */
|
|
43
|
+
collapsedChange: EventEmitter<string[]>;
|
|
44
|
+
private treeRef?;
|
|
45
|
+
private readonly motion;
|
|
46
|
+
/** The focused node's id (tree holds one tab stop). */
|
|
47
|
+
focus: string;
|
|
48
|
+
private shutInner;
|
|
49
|
+
private counted;
|
|
50
|
+
private timer?;
|
|
51
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
52
|
+
ngAfterViewInit(): void;
|
|
53
|
+
ngOnDestroy(): void;
|
|
54
|
+
private get finished();
|
|
55
|
+
private syncClock;
|
|
56
|
+
private stopClock;
|
|
57
|
+
get secs(): number;
|
|
58
|
+
get clockText(): string;
|
|
59
|
+
private get flat();
|
|
60
|
+
get line(): string;
|
|
61
|
+
get rootTotal(): number;
|
|
62
|
+
private get agents();
|
|
63
|
+
get summaryText(): string;
|
|
64
|
+
get showSummary(): boolean;
|
|
65
|
+
money(v: number): string;
|
|
66
|
+
isBranch(n: AgentNode): boolean;
|
|
67
|
+
cls(status: AgentNodeStatus): string;
|
|
68
|
+
costText(n: AgentNode): string;
|
|
69
|
+
tip(n: AgentNode, lv: number): string;
|
|
70
|
+
private get shut();
|
|
71
|
+
isOpen(n: AgentNode): boolean;
|
|
72
|
+
toggle(n: AgentNode, open?: boolean): void;
|
|
73
|
+
onRowClick(n: AgentNode, e: Event): void;
|
|
74
|
+
runFix(n: AgentNode, e: Event): void;
|
|
75
|
+
private get visible();
|
|
76
|
+
private go;
|
|
77
|
+
onKey(e: KeyboardEvent): void;
|
|
78
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AgentTreeComponent, never>;
|
|
79
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AgentTreeComponent, "vo-agent-tree", never, { "root": { "alias": "root"; "required": true; }; "title": { "alias": "title"; "required": true; }; "status": { "alias": "status"; "required": false; }; "seconds": { "alias": "seconds"; "required": false; }; "summary": { "alias": "summary"; "required": false; }; "collapsed": { "alias": "collapsed"; "required": false; }; "defaultCollapsed": { "alias": "defaultCollapsed"; "required": false; }; "formatCost": { "alias": "formatCost"; "required": false; }; "className": { "alias": "className"; "required": false; }; }, { "collapsedChange": "collapsedChange"; }, never, never, true, never>;
|
|
80
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { ReducedMotionService } from '../core/reduced-motion.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/** A rating given with the thumbs up/down buttons. */
|
|
5
|
+
export type AnswerBarRating = 'up' | 'down' | null;
|
|
6
|
+
/** Read aloud: playing lights each word in turn, paused keeps the place. */
|
|
7
|
+
export type ReadingState = 'idle' | 'playing' | 'paused';
|
|
8
|
+
/** One version of the answer. */
|
|
9
|
+
export interface AnswerVersion {
|
|
10
|
+
text: string;
|
|
11
|
+
/** A phrase in the text that changed from the version before, like "21%, or $60 a year". It's highlighted. */
|
|
12
|
+
changed?: string;
|
|
13
|
+
/** Quiet text after the bar, like "Sonnet 5.5 · 6.2s". */
|
|
14
|
+
meta?: string;
|
|
15
|
+
/** Its rating. Leave it out to let the thumbs hold their own, one per version. */
|
|
16
|
+
rating?: AnswerBarRating;
|
|
17
|
+
}
|
|
18
|
+
/** A word of the answer, marked when it sits inside the changed phrase. */
|
|
19
|
+
interface Word {
|
|
20
|
+
w: string;
|
|
21
|
+
nw: boolean;
|
|
22
|
+
}
|
|
23
|
+
export declare class AnswerActionBarComponent implements OnChanges, OnDestroy {
|
|
24
|
+
private readonly reduced;
|
|
25
|
+
/** The person's message the answer replies to, shown as a bubble above it. */
|
|
26
|
+
question?: string;
|
|
27
|
+
/** Every version of the answer so far, oldest first. */
|
|
28
|
+
versions: AnswerVersion[];
|
|
29
|
+
/** Which version is showing. Leave it out to let the arrows page through them. */
|
|
30
|
+
version?: number;
|
|
31
|
+
defaultVersion: number;
|
|
32
|
+
/** The newest version is still being written: paging and reading wait. */
|
|
33
|
+
streaming: boolean;
|
|
34
|
+
/** Shows the regenerate button. */
|
|
35
|
+
regenerateable: boolean;
|
|
36
|
+
/** The reasons a thumbs down offers. */
|
|
37
|
+
reasons: string[];
|
|
38
|
+
/** The quiet line under the bar. It shimmers while streaming. */
|
|
39
|
+
status: string;
|
|
40
|
+
/** warn turns the status amber; ok gives it a green check. */
|
|
41
|
+
statusTone?: 'warn' | 'ok';
|
|
42
|
+
/** Read aloud. Leave it out to let the button play and pause. */
|
|
43
|
+
reading?: ReadingState;
|
|
44
|
+
defaultReading: ReadingState;
|
|
45
|
+
/** How long the built-in reading clock gives each word. Defaults to 0.28s. */
|
|
46
|
+
secondsPerWord: number;
|
|
47
|
+
/** Sits flat in a chat thread (the default). Set false to give it a card of its own. */
|
|
48
|
+
bare: boolean;
|
|
49
|
+
className: string;
|
|
50
|
+
versionChange: EventEmitter<number>;
|
|
51
|
+
/** Called by the regenerate button. Add a version and show it to answer it. */
|
|
52
|
+
regenerateClick: EventEmitter<void>;
|
|
53
|
+
/** Called with the plain text after it is copied. */
|
|
54
|
+
copyText: EventEmitter<string>;
|
|
55
|
+
/** Called when a thumb is pressed or pressed again to clear it. */
|
|
56
|
+
rateChange: EventEmitter<{
|
|
57
|
+
index: number;
|
|
58
|
+
rating: AnswerBarRating;
|
|
59
|
+
}>;
|
|
60
|
+
/** Called with the reason picked after a thumbs down. */
|
|
61
|
+
reason: EventEmitter<{
|
|
62
|
+
index: number;
|
|
63
|
+
reason: string;
|
|
64
|
+
}>;
|
|
65
|
+
readingChange: EventEmitter<ReadingState>;
|
|
66
|
+
private curOwn;
|
|
67
|
+
private readOwn;
|
|
68
|
+
private ownRating;
|
|
69
|
+
private asked;
|
|
70
|
+
copied: boolean;
|
|
71
|
+
spin: boolean;
|
|
72
|
+
pos: number;
|
|
73
|
+
words: Word[];
|
|
74
|
+
private copyTimer?;
|
|
75
|
+
private spinTimer?;
|
|
76
|
+
private timer?;
|
|
77
|
+
constructor(reduced: ReducedMotionService);
|
|
78
|
+
reduce(): boolean;
|
|
79
|
+
get showRegenerate(): boolean;
|
|
80
|
+
get last(): number;
|
|
81
|
+
/** The version showing now, clamped into range. */
|
|
82
|
+
get at(): number;
|
|
83
|
+
private get v();
|
|
84
|
+
get rating(): AnswerBarRating;
|
|
85
|
+
get read(): ReadingState;
|
|
86
|
+
get metaText(): string;
|
|
87
|
+
/** The thumbs-down reason fold is open while the answer is rated down and no reason is picked yet. */
|
|
88
|
+
get why(): boolean;
|
|
89
|
+
/** The word the reading clock has reached, or -1 when idle. */
|
|
90
|
+
get lit(): number;
|
|
91
|
+
get progress(): number;
|
|
92
|
+
max1(n: number): number;
|
|
93
|
+
clockOf(s: number): string;
|
|
94
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
95
|
+
private splitWords;
|
|
96
|
+
setCur(i: number): void;
|
|
97
|
+
private setRead;
|
|
98
|
+
private startTimer;
|
|
99
|
+
private stopTimer;
|
|
100
|
+
toggleRead(): void;
|
|
101
|
+
rate(r: 'up' | 'down'): void;
|
|
102
|
+
pickReason(r: string): void;
|
|
103
|
+
regenerate(): void;
|
|
104
|
+
copy(): void;
|
|
105
|
+
onToolbarKey(e: KeyboardEvent): void;
|
|
106
|
+
ngOnDestroy(): void;
|
|
107
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AnswerActionBarComponent, never>;
|
|
108
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AnswerActionBarComponent, "vo-answer-action-bar", never, { "question": { "alias": "question"; "required": false; }; "versions": { "alias": "versions"; "required": false; }; "version": { "alias": "version"; "required": false; }; "defaultVersion": { "alias": "defaultVersion"; "required": false; }; "streaming": { "alias": "streaming"; "required": false; }; "regenerateable": { "alias": "regenerateable"; "required": false; }; "reasons": { "alias": "reasons"; "required": false; }; "status": { "alias": "status"; "required": false; }; "statusTone": { "alias": "statusTone"; "required": false; }; "reading": { "alias": "reading"; "required": false; }; "defaultReading": { "alias": "defaultReading"; "required": false; }; "secondsPerWord": { "alias": "secondsPerWord"; "required": false; }; "bare": { "alias": "bare"; "required": false; }; "className": { "alias": "className"; "required": false; }; }, { "versionChange": "versionChange"; "regenerateClick": "regenerateClick"; "copyText": "copyText"; "rateChange": "rateChange"; "reason": "reason"; "readingChange": "readingChange"; }, never, never, true, never>;
|
|
109
|
+
}
|
|
110
|
+
export {};
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { AfterViewInit, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { type VoIconName } from '../core/icon.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/** One version of the file. */
|
|
5
|
+
export interface ArtifactVersion {
|
|
6
|
+
/** The file's name in this version, like "Pricing page review". */
|
|
7
|
+
title: string;
|
|
8
|
+
/** When this version was made, like "edited 2 hours ago". */
|
|
9
|
+
meta: string;
|
|
10
|
+
/** What changed in this version, like "Added a competitor price check". */
|
|
11
|
+
note?: string;
|
|
12
|
+
/** The file itself, as Markdown (or CSV when `ext` is "csv"). */
|
|
13
|
+
content: string;
|
|
14
|
+
/** The text on the preview's first page. Defaults to the first paragraph of `content`. */
|
|
15
|
+
summary?: string;
|
|
16
|
+
}
|
|
17
|
+
/** How the card shows the file. */
|
|
18
|
+
export type ArtifactVariant = 'compact' | 'preview' | 'inline' | 'stack';
|
|
19
|
+
/** Whether the agent is still making the file. */
|
|
20
|
+
export type ArtifactState = 'writing' | 'ready';
|
|
21
|
+
/** A block of the reader's rendered body. */
|
|
22
|
+
interface Block {
|
|
23
|
+
kind: 'h3' | 'p' | 'ul' | 'ol';
|
|
24
|
+
text?: string;
|
|
25
|
+
items?: string[];
|
|
26
|
+
}
|
|
27
|
+
/** One drawn line on a stack sheet: p a paragraph, b a bullet, n a numbered fix, s a gap. */
|
|
28
|
+
interface Line {
|
|
29
|
+
t: 'p' | 'b' | 'n' | 's';
|
|
30
|
+
w?: number;
|
|
31
|
+
}
|
|
32
|
+
/** A view the reader is showing, or null when closed. */
|
|
33
|
+
interface Reading {
|
|
34
|
+
kind: 'view' | 'page';
|
|
35
|
+
src: HTMLElement | null;
|
|
36
|
+
opener: HTMLElement | null;
|
|
37
|
+
}
|
|
38
|
+
export declare class ArtifactCardComponent implements OnChanges, AfterViewInit, OnDestroy {
|
|
39
|
+
/** How the card shows the file. */
|
|
40
|
+
variant: ArtifactVariant;
|
|
41
|
+
/** The versions, oldest first. */
|
|
42
|
+
versions: ArtifactVersion[];
|
|
43
|
+
/** Index of the version shown. Leave it out to let the versions menu change it. */
|
|
44
|
+
version?: number;
|
|
45
|
+
/** Defaults to the latest version. */
|
|
46
|
+
defaultVersion?: number;
|
|
47
|
+
/** 'writing' while the agent is still making the file; 'ready' once it is done. */
|
|
48
|
+
state: ArtifactState;
|
|
49
|
+
/** The line shown while writing, like "Reading the page…". */
|
|
50
|
+
status: string;
|
|
51
|
+
/** How far the writing has got, from 0 to 1 (the compact card draws it along its bottom edge). */
|
|
52
|
+
progress?: number;
|
|
53
|
+
/** The kind of file on the meta line, like "Report" or "Table". */
|
|
54
|
+
kind: string;
|
|
55
|
+
/** The file's icon. */
|
|
56
|
+
icon: VoIconName;
|
|
57
|
+
/** The name Download saves under, before "-v3.md". Defaults to the title in lowercase, with dashes. */
|
|
58
|
+
fileName?: string;
|
|
59
|
+
/** The extension Download saves with. "csv" also shows the content as a table in the reader. */
|
|
60
|
+
ext: string;
|
|
61
|
+
/** The Open button's tip, like "Open beside the chat". Its label stays "Open". */
|
|
62
|
+
openLabel?: string;
|
|
63
|
+
className: string;
|
|
64
|
+
/** Emitted when the shown version changes. */
|
|
65
|
+
versionChange: EventEmitter<number>;
|
|
66
|
+
/** Emitted when the file is opened, with the version shown. With a listener, Open does not show the card's own reader. */
|
|
67
|
+
opened: EventEmitter<number>;
|
|
68
|
+
/** Emitted after Copy has put the version's content on the clipboard. */
|
|
69
|
+
copied: EventEmitter<number>;
|
|
70
|
+
/** Emitted after Download has saved the version's content as a file. */
|
|
71
|
+
downloaded: EventEmitter<number>;
|
|
72
|
+
private menuEl?;
|
|
73
|
+
private desk?;
|
|
74
|
+
private fanBtn?;
|
|
75
|
+
private pan?;
|
|
76
|
+
private closeBtn?;
|
|
77
|
+
private readonly host;
|
|
78
|
+
private readonly motion;
|
|
79
|
+
private curIndex;
|
|
80
|
+
private controlled;
|
|
81
|
+
flashed: string | null;
|
|
82
|
+
private flashTimer?;
|
|
83
|
+
said: string;
|
|
84
|
+
private sayTimer?;
|
|
85
|
+
settled: boolean;
|
|
86
|
+
private wasWriting;
|
|
87
|
+
reading: Reading | null;
|
|
88
|
+
private openerEl;
|
|
89
|
+
menuOpen: boolean;
|
|
90
|
+
menuLeft: number;
|
|
91
|
+
menuTop: number;
|
|
92
|
+
private openerTrigger?;
|
|
93
|
+
fanned: boolean;
|
|
94
|
+
peek: number | null;
|
|
95
|
+
typedTitle: string;
|
|
96
|
+
private stackTimers;
|
|
97
|
+
private stackAnims;
|
|
98
|
+
private onDocPointer;
|
|
99
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
100
|
+
ngAfterViewInit(): void;
|
|
101
|
+
ngOnDestroy(): void;
|
|
102
|
+
get n(): number;
|
|
103
|
+
get last(): number;
|
|
104
|
+
get i(): number;
|
|
105
|
+
get v(): ArtifactVersion;
|
|
106
|
+
get writing(): boolean;
|
|
107
|
+
get shown(): number;
|
|
108
|
+
get reversed(): number[];
|
|
109
|
+
get actionSize(): 'sm' | 'md';
|
|
110
|
+
get summary(): string;
|
|
111
|
+
get previewWidths(): number[];
|
|
112
|
+
clamp(x?: number): number;
|
|
113
|
+
shortMeta(meta: string): string;
|
|
114
|
+
whenHtml(meta: string): string;
|
|
115
|
+
stackLines(n: number): Line[];
|
|
116
|
+
get csvRows(): string[][];
|
|
117
|
+
get bodyBlocks(): Block[];
|
|
118
|
+
private say;
|
|
119
|
+
private flash;
|
|
120
|
+
private pick;
|
|
121
|
+
copy(key: string): void;
|
|
122
|
+
download(key: string): void;
|
|
123
|
+
open(kindOf: 'view' | 'page', opener: HTMLElement | null, src: HTMLElement | null): void;
|
|
124
|
+
closeReader(): void;
|
|
125
|
+
readerKeys(e: KeyboardEvent): void;
|
|
126
|
+
toggleMenu(trigger: HTMLElement): void;
|
|
127
|
+
private openMenu;
|
|
128
|
+
closeMenu(): void;
|
|
129
|
+
private placeMenu;
|
|
130
|
+
pickFromMenu(nn: number): void;
|
|
131
|
+
triggerKeys(e: KeyboardEvent): void;
|
|
132
|
+
menuKeys(e: KeyboardEvent): void;
|
|
133
|
+
setPeek(nn: number | null): void;
|
|
134
|
+
sheetStyle(nn: number): Record<string, string | number>;
|
|
135
|
+
fan(on: boolean, focus?: boolean): void;
|
|
136
|
+
sheetClick(nn: number, el: HTMLElement): void;
|
|
137
|
+
openStack(opener: HTMLElement): void;
|
|
138
|
+
deskKeys(e: KeyboardEvent): void;
|
|
139
|
+
private restartStack;
|
|
140
|
+
private clearStack;
|
|
141
|
+
private runStack;
|
|
142
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ArtifactCardComponent, never>;
|
|
143
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ArtifactCardComponent, "vo-artifact-card", never, { "variant": { "alias": "variant"; "required": false; }; "versions": { "alias": "versions"; "required": false; }; "version": { "alias": "version"; "required": false; }; "defaultVersion": { "alias": "defaultVersion"; "required": false; }; "state": { "alias": "state"; "required": false; }; "status": { "alias": "status"; "required": false; }; "progress": { "alias": "progress"; "required": false; }; "kind": { "alias": "kind"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "fileName": { "alias": "fileName"; "required": false; }; "ext": { "alias": "ext"; "required": false; }; "openLabel": { "alias": "openLabel"; "required": false; }; "className": { "alias": "className"; "required": false; }; }, { "versionChange": "versionChange"; "opened": "opened"; "copied": "copied"; "downloaded": "downloaded"; }, never, never, true, never>;
|
|
144
|
+
}
|
|
145
|
+
export {};
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { AfterViewInit, ElementRef, EventEmitter, OnDestroy } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/** One file in the tray, from upload through to what the agent read in it. */
|
|
4
|
+
export interface Attachment {
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
/** In bytes. */
|
|
8
|
+
size: number;
|
|
9
|
+
/** 0 to 100. The ring closes and the row fills with the file type's colour; at 100 the ring turns into a check. */
|
|
10
|
+
progress: number;
|
|
11
|
+
/** After the upload, while the agent reads the file: a spinner, and "Reading" shimmering after the size. */
|
|
12
|
+
reading?: boolean;
|
|
13
|
+
/** What the agent found once it has read the file, like "12 pages", shown after the size. */
|
|
14
|
+
detail?: string;
|
|
15
|
+
}
|
|
16
|
+
/** A link after "or" in the drop zone, like "add sample files". */
|
|
17
|
+
export interface AttachmentAction {
|
|
18
|
+
label: string;
|
|
19
|
+
onClick: () => void;
|
|
20
|
+
}
|
|
21
|
+
/** A file row with everything the template needs computed from its Attachment. */
|
|
22
|
+
interface Row {
|
|
23
|
+
file: Attachment;
|
|
24
|
+
delay: number;
|
|
25
|
+
label: string;
|
|
26
|
+
fg: string;
|
|
27
|
+
bg: string;
|
|
28
|
+
p: number;
|
|
29
|
+
up: boolean;
|
|
30
|
+
meta: string;
|
|
31
|
+
dashoffset: number;
|
|
32
|
+
leaving: boolean;
|
|
33
|
+
}
|
|
34
|
+
/** The dashed edge of the drop zone, as a rect whose dashes march around the corners. */
|
|
35
|
+
interface Ants {
|
|
36
|
+
w: number;
|
|
37
|
+
h: number;
|
|
38
|
+
rx: number;
|
|
39
|
+
ap: number;
|
|
40
|
+
ag: number;
|
|
41
|
+
}
|
|
42
|
+
export declare class AttachmentTrayComponent implements AfterViewInit, OnDestroy {
|
|
43
|
+
/** The files in the tray. */
|
|
44
|
+
files: Attachment[];
|
|
45
|
+
/** The drop zone's heading. */
|
|
46
|
+
title: string;
|
|
47
|
+
/** A link after "or" in the drop zone, like "add sample files". */
|
|
48
|
+
action: AttachmentAction | null;
|
|
49
|
+
/** Passed to the file input, like "image/*,.pdf". */
|
|
50
|
+
accept?: string;
|
|
51
|
+
/** The line under the list. Defaults to how many files the agent can read. */
|
|
52
|
+
summary?: string;
|
|
53
|
+
/** Shows the drop zone as if a file were being dragged over it, for a scripted demo. */
|
|
54
|
+
dragging: boolean;
|
|
55
|
+
className: string;
|
|
56
|
+
/** Files the person dropped on the tray or picked with the file dialog. */
|
|
57
|
+
filesPicked: EventEmitter<File[]>;
|
|
58
|
+
/** Emitted once a removed file has animated out. Its presence also adds a remove button. */
|
|
59
|
+
remove$: EventEmitter<string>;
|
|
60
|
+
dropRef: ElementRef<HTMLElement>;
|
|
61
|
+
private readonly motion;
|
|
62
|
+
readonly RING = 50.3;
|
|
63
|
+
over: boolean;
|
|
64
|
+
ants: Ants | null;
|
|
65
|
+
private delays;
|
|
66
|
+
private seen;
|
|
67
|
+
private leaving;
|
|
68
|
+
private removeTimers;
|
|
69
|
+
private ro?;
|
|
70
|
+
bytesOf: (b: number) => string;
|
|
71
|
+
round: (x: number) => number;
|
|
72
|
+
get showRemove(): boolean;
|
|
73
|
+
get rows(): Row[];
|
|
74
|
+
get line(): string;
|
|
75
|
+
ngAfterViewInit(): void;
|
|
76
|
+
hold(e: DragEvent): void;
|
|
77
|
+
onDrop(e: DragEvent): void;
|
|
78
|
+
onChange(e: Event): void;
|
|
79
|
+
remove(row: Row): void;
|
|
80
|
+
ngOnDestroy(): void;
|
|
81
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AttachmentTrayComponent, never>;
|
|
82
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AttachmentTrayComponent, "vo-attachment-tray", never, { "files": { "alias": "files"; "required": false; }; "title": { "alias": "title"; "required": false; }; "action": { "alias": "action"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "summary": { "alias": "summary"; "required": false; }; "dragging": { "alias": "dragging"; "required": false; }; "className": { "alias": "className"; "required": false; }; }, { "filesPicked": "filesPicked"; "remove$": "remove$"; }, never, never, true, never>;
|
|
83
|
+
}
|
|
84
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { type VoIconName } from '../core/icon.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/** Color of the badge: neutral, accent tint, the three states or one of the eight tag colors. */
|
|
5
|
+
export type BadgeTone = 'neutral' | 'accent' | 'success' | 'warning' | 'danger' | 'blue' | 'violet' | 'green' | 'orange' | 'red' | 'yellow' | 'pink' | 'teal';
|
|
6
|
+
export declare class BadgeComponent {
|
|
7
|
+
/** Color as text on its own tint. Neutral by default. */
|
|
8
|
+
tone: BadgeTone;
|
|
9
|
+
/** 'sm' = 20px tall, 'md' = 24px (default). */
|
|
10
|
+
size: 'sm' | 'md';
|
|
11
|
+
/** Dot in badge color before the label (status like "Running"). */
|
|
12
|
+
dot: boolean;
|
|
13
|
+
/** Pulsing dot for running states (.live). */
|
|
14
|
+
live: boolean;
|
|
15
|
+
/** Icon before the label (name from the icon set). */
|
|
16
|
+
icon?: VoIconName;
|
|
17
|
+
/** Shows a remove button after the label. */
|
|
18
|
+
removable: boolean;
|
|
19
|
+
/** Label of the remove button for screen readers. */
|
|
20
|
+
removeLabel?: string;
|
|
21
|
+
/** Emitted when the remove button is clicked. */
|
|
22
|
+
remove: EventEmitter<void>;
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BadgeComponent, never>;
|
|
24
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BadgeComponent, "vo-badge", never, { "tone": { "alias": "tone"; "required": false; }; "size": { "alias": "size"; "required": false; }; "dot": { "alias": "dot"; "required": false; }; "live": { "alias": "live"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; "removeLabel": { "alias": "removeLabel"; "required": false; }; }, { "remove": "remove"; }, never, ["*"], true, never>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy } from '@angular/core';
|
|
2
|
+
import { ReducedMotionService } from '../core/reduced-motion.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/** One part of a bar: names it in the readout and, when stacked, in the legend. */
|
|
5
|
+
export interface BarChartSeries {
|
|
6
|
+
/** Names the part in the hover readout and, when stacked, in the legend, like "Needed review". */
|
|
7
|
+
label: string;
|
|
8
|
+
/** How the hover readout names it, like "reviewed". Defaults to the label in lower case. */
|
|
9
|
+
tipLabel?: string;
|
|
10
|
+
/** When stacked. Defaults to the chart palette: blue, purple, then orange. */
|
|
11
|
+
color?: string;
|
|
12
|
+
}
|
|
13
|
+
/** One bar: a label under it and one value per series, stacked from the bottom. */
|
|
14
|
+
export interface BarChartBar {
|
|
15
|
+
/** Under the bar, like "Mon". */
|
|
16
|
+
label: string;
|
|
17
|
+
/** One value per series, stacked from the bottom. */
|
|
18
|
+
values: number[];
|
|
19
|
+
}
|
|
20
|
+
/** One set of bars for a range. With more than one, a switch picks between them. */
|
|
21
|
+
export interface BarChartRange {
|
|
22
|
+
key: string;
|
|
23
|
+
/** On the switch, like "Week". */
|
|
24
|
+
label: string;
|
|
25
|
+
bars: BarChartBar[];
|
|
26
|
+
}
|
|
27
|
+
/** One rendered part of a bar. */
|
|
28
|
+
interface Seg {
|
|
29
|
+
height: number;
|
|
30
|
+
color: string;
|
|
31
|
+
}
|
|
32
|
+
/** Internal per-bar render state. */
|
|
33
|
+
interface BarView {
|
|
34
|
+
index: number;
|
|
35
|
+
label: string;
|
|
36
|
+
tipTotal: string;
|
|
37
|
+
tipParts: string;
|
|
38
|
+
segs: Seg[];
|
|
39
|
+
}
|
|
40
|
+
export declare class BarChartComponent implements AfterViewInit, OnDestroy {
|
|
41
|
+
private readonly reduced;
|
|
42
|
+
private readonly cdr;
|
|
43
|
+
private readonly host;
|
|
44
|
+
/** The name over the big number, like "Agent runs". */
|
|
45
|
+
label: string;
|
|
46
|
+
/** What each part of a bar means, in order. The hover readout breaks each bar down by these. */
|
|
47
|
+
series: BarChartSeries[];
|
|
48
|
+
/** One set of bars per range. With more than one, a switch picks between them. */
|
|
49
|
+
ranges: BarChartRange[];
|
|
50
|
+
/** Draws each bar as a stack of its parts in the palette's colours, with a legend. Off by
|
|
51
|
+
default: one bar in the accent, with the breakdown in the hover readout. */
|
|
52
|
+
stacked: boolean;
|
|
53
|
+
/** Key of the range shown. Leave it out to let the switch change it. */
|
|
54
|
+
set range(value: string | undefined);
|
|
55
|
+
/** Defaults to the first range. */
|
|
56
|
+
defaultRange?: string;
|
|
57
|
+
/** What the values count, like "runs" in "66 runs". */
|
|
58
|
+
unit?: string;
|
|
59
|
+
/** Writes a value. Defaults to whole numbers like 1,240. */
|
|
60
|
+
format: (n: number) => string;
|
|
61
|
+
className: string;
|
|
62
|
+
rangeChange: EventEmitter<string>;
|
|
63
|
+
cur: string;
|
|
64
|
+
total: number;
|
|
65
|
+
bars: BarView[];
|
|
66
|
+
knobLeft: number;
|
|
67
|
+
knobWidth: number;
|
|
68
|
+
private controlled;
|
|
69
|
+
private ready;
|
|
70
|
+
private timers;
|
|
71
|
+
private frames;
|
|
72
|
+
constructor(reduced: ReducedMotionService, cdr: ChangeDetectorRef, host: ElementRef<HTMLElement>);
|
|
73
|
+
color(index: number): string;
|
|
74
|
+
ngAfterViewInit(): void;
|
|
75
|
+
select(key: string): void;
|
|
76
|
+
private sum;
|
|
77
|
+
private byKey;
|
|
78
|
+
private draw;
|
|
79
|
+
private roll;
|
|
80
|
+
private room;
|
|
81
|
+
private placeKnob;
|
|
82
|
+
private later;
|
|
83
|
+
ngOnDestroy(): void;
|
|
84
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BarChartComponent, never>;
|
|
85
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BarChartComponent, "vo-bar-chart", never, { "label": { "alias": "label"; "required": true; }; "series": { "alias": "series"; "required": true; }; "ranges": { "alias": "ranges"; "required": true; }; "stacked": { "alias": "stacked"; "required": false; }; "range": { "alias": "range"; "required": false; }; "defaultRange": { "alias": "defaultRange"; "required": false; }; "unit": { "alias": "unit"; "required": false; }; "format": { "alias": "format"; "required": false; }; "className": { "alias": "className"; "required": false; }; }, { "rangeChange": "rangeChange"; }, never, never, true, never>;
|
|
86
|
+
}
|
|
87
|
+
export {};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { EventEmitter, OnChanges, OnDestroy, SimpleChanges, TemplateRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export type BrowserStepState = 'queued' | 'running' | 'waiting' | 'done';
|
|
4
|
+
/** One step the agent takes, with its state and an optional quiet detail line. */
|
|
5
|
+
export interface BrowserStep {
|
|
6
|
+
/** What the agent does, like 'Click "Pricing"'. */
|
|
7
|
+
label: string;
|
|
8
|
+
state: BrowserStepState;
|
|
9
|
+
/** A quiet line under the step. On a waiting step it says what is in the way, in amber. */
|
|
10
|
+
detail?: string;
|
|
11
|
+
}
|
|
12
|
+
/** The agent's own pointer, in pixels from the page's top left. */
|
|
13
|
+
export interface BrowserCursor {
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
down?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/** While a step waits: the button that lets the agent go on, like "Allow closing it". */
|
|
19
|
+
export interface BrowserAsk {
|
|
20
|
+
label: string;
|
|
21
|
+
onAllow: () => void;
|
|
22
|
+
}
|
|
23
|
+
/** The agent browsing the web for the person, with Pause and Take over. */
|
|
24
|
+
export declare class BrowserSessionComponent implements OnChanges, OnDestroy {
|
|
25
|
+
/** What the agent is browsing for, like "Pricing research". */
|
|
26
|
+
title: string;
|
|
27
|
+
/** The address bar: the page's address, or the search being typed. */
|
|
28
|
+
url: string;
|
|
29
|
+
/** Marks `url` as a search, with a magnifier instead of the padlock. */
|
|
30
|
+
search: boolean;
|
|
31
|
+
/** The agent's own pointer. Hidden while the person has control. */
|
|
32
|
+
cursor?: BrowserCursor | null;
|
|
33
|
+
steps: BrowserStep[];
|
|
34
|
+
ask?: BrowserAsk;
|
|
35
|
+
/** Pause holds the agent where it is. Leave it out to let the button toggle it. */
|
|
36
|
+
paused?: boolean;
|
|
37
|
+
defaultPaused: boolean;
|
|
38
|
+
/** Take over hands the page to the person. Leave it out to let the button toggle it. */
|
|
39
|
+
inControl?: boolean;
|
|
40
|
+
defaultInControl: boolean;
|
|
41
|
+
/** Seconds to show as m:ss. Leave it out to let the clock count while browsing. */
|
|
42
|
+
seconds?: number;
|
|
43
|
+
/** The line under the title. Defaults to a status word, then the clock. */
|
|
44
|
+
status?: string;
|
|
45
|
+
/** Shown under the steps once every step is done. */
|
|
46
|
+
summary?: string;
|
|
47
|
+
pausedChange: EventEmitter<boolean>;
|
|
48
|
+
inControlChange: EventEmitter<boolean>;
|
|
49
|
+
/** The wireframe page to draw in the viewport, passed as a <ng-template>. */
|
|
50
|
+
page?: TemplateRef<unknown>;
|
|
51
|
+
private innerPaused;
|
|
52
|
+
private innerMine;
|
|
53
|
+
private counted;
|
|
54
|
+
private secondTimer?;
|
|
55
|
+
get isPaused(): boolean;
|
|
56
|
+
get mine(): boolean;
|
|
57
|
+
get done(): boolean;
|
|
58
|
+
get waiting(): boolean;
|
|
59
|
+
get secs(): number;
|
|
60
|
+
get clockText(): string;
|
|
61
|
+
get line(): string;
|
|
62
|
+
cls(state: BrowserStepState): string;
|
|
63
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
64
|
+
togglePaused(): void;
|
|
65
|
+
take(): void;
|
|
66
|
+
private updateClock;
|
|
67
|
+
ngOnDestroy(): void;
|
|
68
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BrowserSessionComponent, never>;
|
|
69
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BrowserSessionComponent, "vo-browser-session", never, { "title": { "alias": "title"; "required": false; }; "url": { "alias": "url"; "required": false; }; "search": { "alias": "search"; "required": false; }; "cursor": { "alias": "cursor"; "required": false; }; "steps": { "alias": "steps"; "required": false; }; "ask": { "alias": "ask"; "required": false; }; "paused": { "alias": "paused"; "required": false; }; "defaultPaused": { "alias": "defaultPaused"; "required": false; }; "inControl": { "alias": "inControl"; "required": false; }; "defaultInControl": { "alias": "defaultInControl"; "required": false; }; "seconds": { "alias": "seconds"; "required": false; }; "status": { "alias": "status"; "required": false; }; "summary": { "alias": "summary"; "required": false; }; }, { "pausedChange": "pausedChange"; "inControlChange": "inControlChange"; }, ["page"], never, true, never>;
|
|
70
|
+
}
|