@tolle_/tolle-ui 18.2.29 → 18.2.30
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/esm2022/lib/accordion-item.component.mjs +5 -11
- package/esm2022/lib/accordion.component.mjs +4 -9
- package/esm2022/lib/alert-dialog-dynamic.component.mjs +5 -10
- package/esm2022/lib/alert-dialog.component.mjs +44 -59
- package/esm2022/lib/alert.component.mjs +5 -11
- package/esm2022/lib/aspect-ratio.component.mjs +119 -0
- package/esm2022/lib/attachment.component.mjs +334 -0
- package/esm2022/lib/avatar-fallback.component.mjs +3 -3
- package/esm2022/lib/avatar.component.mjs +4 -9
- package/esm2022/lib/badge.component.mjs +4 -9
- package/esm2022/lib/breadcrumb-item.component.mjs +3 -3
- package/esm2022/lib/breadcrumb-link.component.mjs +3 -3
- package/esm2022/lib/breadcrumb-separator.component.mjs +3 -3
- package/esm2022/lib/breadcrumb.component.mjs +3 -3
- package/esm2022/lib/bubble.component.mjs +301 -0
- package/esm2022/lib/button.component.mjs +5 -11
- package/esm2022/lib/calendar.component.mjs +5 -11
- package/esm2022/lib/card.component.mjs +14 -43
- package/esm2022/lib/carousel/carousel.component.mjs +5 -12
- package/esm2022/lib/chain-of-thought.component.mjs +380 -0
- package/esm2022/lib/chart-pie.component.mjs +386 -0
- package/esm2022/lib/chart.component.mjs +1146 -0
- package/esm2022/lib/chart.service.mjs +555 -0
- package/esm2022/lib/checkbox.component.mjs +5 -11
- package/esm2022/lib/checkpoint.component.mjs +134 -0
- package/esm2022/lib/collapsible.component.mjs +4 -11
- package/esm2022/lib/combobox.component.mjs +372 -0
- package/esm2022/lib/command-dialog.component.mjs +164 -0
- package/esm2022/lib/command.component.mjs +514 -0
- package/esm2022/lib/command.service.mjs +130 -0
- package/esm2022/lib/confirmation.component.mjs +219 -0
- package/esm2022/lib/context-menu-trigger.directive.mjs +36 -0
- package/esm2022/lib/context-menu.component.mjs +460 -0
- package/esm2022/lib/context-menu.service.mjs +121 -0
- package/esm2022/lib/context.component.mjs +377 -0
- package/esm2022/lib/conversation.component.mjs +442 -0
- package/esm2022/lib/country-selector.component.mjs +5 -11
- package/esm2022/lib/data-table.component.mjs +59 -12
- package/esm2022/lib/date-picker.component.mjs +251 -198
- package/esm2022/lib/date-range-picker.component.mjs +224 -116
- package/esm2022/lib/date-time-picker.component.mjs +506 -0
- package/esm2022/lib/direction.component.mjs +79 -0
- package/esm2022/lib/dropdown-item.component.mjs +3 -3
- package/esm2022/lib/dropdown-label.component.mjs +3 -3
- package/esm2022/lib/dropdown-menu.component.mjs +3 -3
- package/esm2022/lib/dropdown-separator.component.mjs +3 -3
- package/esm2022/lib/dropdown-trigger.directive.mjs +6 -4
- package/esm2022/lib/empty-state.component.mjs +4 -9
- package/esm2022/lib/field.component.mjs +394 -0
- package/esm2022/lib/hover-card.component.mjs +6 -16
- package/esm2022/lib/inline-citation.component.mjs +263 -0
- package/esm2022/lib/input-group.component.mjs +418 -0
- package/esm2022/lib/input.component.mjs +5 -11
- package/esm2022/lib/item.component.mjs +243 -0
- package/esm2022/lib/kbd.component.mjs +82 -0
- package/esm2022/lib/label.component.mjs +4 -9
- package/esm2022/lib/marker.component.mjs +135 -0
- package/esm2022/lib/masked-input.component.mjs +5 -11
- package/esm2022/lib/menubar.component.mjs +683 -0
- package/esm2022/lib/message-scroller.component.mjs +353 -0
- package/esm2022/lib/message-scroller.service.mjs +157 -0
- package/esm2022/lib/message.component.mjs +228 -0
- package/esm2022/lib/model-selector.component.mjs +310 -0
- package/esm2022/lib/multi-select.component.mjs +155 -72
- package/esm2022/lib/native-select.component.mjs +201 -0
- package/esm2022/lib/navigation-menu.component.mjs +642 -0
- package/esm2022/lib/otp-group.component.mjs +3 -3
- package/esm2022/lib/otp-slot.component.mjs +4 -9
- package/esm2022/lib/otp.component.mjs +5 -11
- package/esm2022/lib/pagination.component.mjs +7 -10
- package/esm2022/lib/plan.component.mjs +335 -0
- package/esm2022/lib/popover-content.component.mjs +4 -9
- package/esm2022/lib/popover.component.mjs +15 -13
- package/esm2022/lib/progress.component.mjs +4 -9
- package/esm2022/lib/prompt-input.component.mjs +526 -0
- package/esm2022/lib/queue.component.mjs +280 -0
- package/esm2022/lib/radio-group.component.mjs +6 -13
- package/esm2022/lib/radio-item.component.mjs +4 -9
- package/esm2022/lib/range-calendar.component.mjs +5 -11
- package/esm2022/lib/reasoning.component.mjs +335 -0
- package/esm2022/lib/resizable.component.mjs +219 -0
- package/esm2022/lib/segment.component.mjs +17 -7
- package/esm2022/lib/select-group.component.mjs +4 -8
- package/esm2022/lib/select-item.component.mjs +4 -9
- package/esm2022/lib/select-separator.component.mjs +4 -8
- package/esm2022/lib/select.component.mjs +133 -49
- package/esm2022/lib/separator.component.mjs +4 -9
- package/esm2022/lib/sheet.component.mjs +38 -56
- package/esm2022/lib/shimmer.component.mjs +84 -0
- package/esm2022/lib/sidebar.component.mjs +11 -1
- package/esm2022/lib/skeleton.component.mjs +4 -9
- package/esm2022/lib/sources.component.mjs +452 -0
- package/esm2022/lib/spinner.component.mjs +68 -0
- package/esm2022/lib/suggestion.component.mjs +207 -0
- package/esm2022/lib/switch.component.mjs +5 -11
- package/esm2022/lib/table.component.mjs +213 -0
- package/esm2022/lib/tabs.component.mjs +4 -11
- package/esm2022/lib/tag-input.component.mjs +5 -11
- package/esm2022/lib/task.component.mjs +359 -0
- package/esm2022/lib/textarea.component.mjs +5 -11
- package/esm2022/lib/theme.service.mjs +17 -6
- package/esm2022/lib/time-picker.component.mjs +923 -0
- package/esm2022/lib/toast.service.mjs +3 -2
- package/esm2022/lib/toaster.component.mjs +76 -39
- package/esm2022/lib/toggle-group.component.mjs +4 -9
- package/esm2022/lib/toggle.component.mjs +5 -11
- package/esm2022/lib/tool.component.mjs +462 -0
- package/esm2022/lib/typography.component.mjs +83 -0
- package/esm2022/lib/utils/color.mjs +140 -19
- package/esm2022/public-api.mjs +61 -1
- package/fesm2022/tolle-ui.mjs +16453 -1024
- package/fesm2022/tolle-ui.mjs.map +1 -1
- package/lib/alert-dialog.component.d.ts +10 -2
- package/lib/aspect-ratio.component.d.ts +20 -0
- package/lib/attachment.component.d.ts +101 -0
- package/lib/bubble.component.d.ts +112 -0
- package/lib/chain-of-thought.component.d.ts +166 -0
- package/lib/chart-pie.component.d.ts +108 -0
- package/lib/chart.component.d.ts +369 -0
- package/lib/chart.service.d.ts +222 -0
- package/lib/checkpoint.component.d.ts +51 -0
- package/lib/combobox.component.d.ts +90 -0
- package/lib/command-dialog.component.d.ts +53 -0
- package/lib/command.component.d.ts +189 -0
- package/lib/command.service.d.ts +67 -0
- package/lib/confirmation.component.d.ts +70 -0
- package/lib/context-menu-trigger.directive.d.ts +12 -0
- package/lib/context-menu.component.d.ts +41 -0
- package/lib/context-menu.service.d.ts +38 -0
- package/lib/context.component.d.ts +134 -0
- package/lib/conversation.component.d.ts +165 -0
- package/lib/data-table.component.d.ts +26 -1
- package/lib/date-picker.component.d.ts +72 -11
- package/lib/date-range-picker.component.d.ts +63 -6
- package/lib/date-time-picker.component.d.ts +119 -0
- package/lib/direction.component.d.ts +45 -0
- package/lib/field.component.d.ts +201 -0
- package/lib/inline-citation.component.d.ts +103 -0
- package/lib/input-group.component.d.ts +150 -0
- package/lib/item.component.d.ts +154 -0
- package/lib/kbd.component.d.ts +50 -0
- package/lib/marker.component.d.ts +58 -0
- package/lib/menubar.component.d.ts +247 -0
- package/lib/message-scroller.component.d.ts +159 -0
- package/lib/message-scroller.service.d.ts +73 -0
- package/lib/message.component.d.ts +128 -0
- package/lib/model-selector.component.d.ts +103 -0
- package/lib/multi-select.component.d.ts +66 -14
- package/lib/native-select.component.d.ts +57 -0
- package/lib/navigation-menu.component.d.ts +230 -0
- package/lib/plan.component.d.ts +120 -0
- package/lib/popover.component.d.ts +1 -0
- package/lib/prompt-input.component.d.ts +194 -0
- package/lib/queue.component.d.ts +106 -0
- package/lib/reasoning.component.d.ts +127 -0
- package/lib/resizable.component.d.ts +43 -0
- package/lib/segment.component.d.ts +13 -3
- package/lib/select.component.d.ts +37 -5
- package/lib/sheet.component.d.ts +3 -0
- package/lib/shimmer.component.d.ts +38 -0
- package/lib/sidebar.component.d.ts +2 -0
- package/lib/sources.component.d.ts +156 -0
- package/lib/spinner.component.d.ts +29 -0
- package/lib/suggestion.component.d.ts +96 -0
- package/lib/table.component.d.ts +106 -0
- package/lib/task.component.d.ts +151 -0
- package/lib/theme.service.d.ts +9 -0
- package/lib/time-picker.component.d.ts +243 -0
- package/lib/toast.service.d.ts +3 -1
- package/lib/toaster.component.d.ts +26 -9
- package/lib/tool.component.d.ts +158 -0
- package/lib/typography.component.d.ts +32 -0
- package/lib/utils/color.d.ts +19 -5
- package/package.json +1 -1
- package/public-api.d.ts +50 -0
- package/registry/docs-content.json +8480 -1542
- package/registry/llms-full.txt +2679 -319
- package/registry/llms.txt +43 -4
- package/registry/manifest.json +9090 -1742
- package/registry/r/accordion-item.json +1 -1
- package/registry/r/accordion.json +1 -1
- package/registry/r/alert-dialog-dynamic.json +1 -1
- package/registry/r/alert-dialog.json +1 -1
- package/registry/r/alert.json +1 -1
- package/registry/r/attachment.json +23 -0
- package/registry/r/avatar-fallback.json +1 -1
- package/registry/r/avatar.json +1 -1
- package/registry/r/badge.json +1 -1
- package/registry/r/breadcrumb-item.json +1 -1
- package/registry/r/breadcrumb-link.json +1 -1
- package/registry/r/breadcrumb-separator.json +1 -1
- package/registry/r/breadcrumb.json +1 -1
- package/registry/r/bubble.json +23 -0
- package/registry/r/button.json +1 -1
- package/registry/r/calendar.json +1 -1
- package/registry/r/card.json +1 -1
- package/registry/r/carousel.json +1 -1
- package/registry/r/chain-of-thought.json +23 -0
- package/registry/r/chart-pie.json +30 -0
- package/registry/r/chart.json +28 -0
- package/registry/r/checkbox.json +1 -1
- package/registry/r/checkpoint.json +23 -0
- package/registry/r/collapsible.json +1 -1
- package/registry/r/combobox.json +31 -0
- package/registry/r/command-dialog.json +21 -0
- package/registry/r/command.json +26 -0
- package/registry/r/confirmation.json +23 -0
- package/registry/r/context.json +26 -0
- package/registry/r/conversation.json +23 -0
- package/registry/r/country-selector.json +1 -1
- package/registry/r/data-table.json +1 -1
- package/registry/r/date-picker.json +4 -4
- package/registry/r/date-range-picker.json +3 -3
- package/registry/r/date-time-picker.json +28 -0
- package/registry/r/direction.json +16 -0
- package/registry/r/dropdown-item.json +1 -1
- package/registry/r/dropdown-label.json +1 -1
- package/registry/r/dropdown-menu.json +1 -1
- package/registry/r/dropdown-separator.json +1 -1
- package/registry/r/dropdown-trigger.json +1 -1
- package/registry/r/empty-state.json +1 -1
- package/registry/r/field.json +23 -0
- package/registry/r/hover-card.json +1 -1
- package/registry/r/inline-citation.json +26 -0
- package/registry/r/input-group.json +23 -0
- package/registry/r/input.json +1 -1
- package/registry/r/item.json +23 -0
- package/registry/r/kbd.json +23 -0
- package/registry/r/label.json +1 -1
- package/registry/r/marker.json +23 -0
- package/registry/r/masked-input.json +1 -1
- package/registry/r/menubar.json +24 -0
- package/registry/r/message-scroller.json +26 -0
- package/registry/r/message.json +23 -0
- package/registry/r/model-selector.json +32 -0
- package/registry/r/multi-select.json +2 -2
- package/registry/r/native-select.json +23 -0
- package/registry/r/navigation-menu.json +24 -0
- package/registry/r/otp-group.json +1 -1
- package/registry/r/otp-slot.json +1 -1
- package/registry/r/otp.json +1 -1
- package/registry/r/pagination.json +3 -2
- package/registry/r/plan.json +23 -0
- package/registry/r/popover-content.json +1 -1
- package/registry/r/popover.json +1 -1
- package/registry/r/progress.json +1 -1
- package/registry/r/prompt-input.json +23 -0
- package/registry/r/queue.json +23 -0
- package/registry/r/radio-group.json +1 -1
- package/registry/r/radio-item.json +1 -1
- package/registry/r/range-calendar.json +1 -1
- package/registry/r/reasoning.json +23 -0
- package/registry/r/segment.json +1 -1
- package/registry/r/select-group.json +1 -1
- package/registry/r/select-item.json +1 -1
- package/registry/r/select-separator.json +1 -1
- package/registry/r/select.json +4 -3
- package/registry/r/separator.json +1 -1
- package/registry/r/sheet.json +1 -1
- package/registry/r/shimmer.json +23 -0
- package/registry/r/sidebar.json +1 -1
- package/registry/r/skeleton.json +1 -1
- package/registry/r/sources.json +23 -0
- package/registry/r/spinner.json +23 -0
- package/registry/r/suggestion.json +23 -0
- package/registry/r/switch.json +1 -1
- package/registry/r/table.json +21 -0
- package/registry/r/tabs.json +1 -1
- package/registry/r/tag-input.json +1 -1
- package/registry/r/task.json +23 -0
- package/registry/r/textarea.json +1 -1
- package/registry/r/time-picker.json +24 -0
- package/registry/r/toaster.json +2 -2
- package/registry/r/toggle-group.json +1 -1
- package/registry/r/toggle.json +1 -1
- package/registry/r/tool.json +23 -0
- package/registry/r/typography.json +23 -0
- package/registry/registry.json +915 -22
- package/theme.css +109 -8
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Injectable, Input, Output, inject } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { BehaviorSubject, Subscription } from 'rxjs';
|
|
4
|
+
import { cva } from 'class-variance-authority';
|
|
5
|
+
import { cn } from './utils/cn';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
let planStepId = 0;
|
|
9
|
+
const planVariants = cva('w-full rounded-lg border border-border bg-card p-3 text-card-foreground', {
|
|
10
|
+
variants: {
|
|
11
|
+
size: {
|
|
12
|
+
sm: 'p-2 text-xs',
|
|
13
|
+
default: 'p-3 text-sm',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
defaultVariants: { size: 'default' },
|
|
17
|
+
});
|
|
18
|
+
const planStepVariants = cva(
|
|
19
|
+
// The connector is hidden on the final step so the line stops at the last badge.
|
|
20
|
+
'relative flex gap-3 pb-3 last:pb-0 [&:last-child_.tolle-plan-rail]:hidden', {
|
|
21
|
+
variants: {
|
|
22
|
+
status: {
|
|
23
|
+
pending: 'opacity-100',
|
|
24
|
+
active: 'opacity-100',
|
|
25
|
+
done: 'opacity-100',
|
|
26
|
+
skipped: 'opacity-60',
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
defaultVariants: { status: 'pending' },
|
|
30
|
+
});
|
|
31
|
+
const planBadgeVariants = cva('relative z-[1] flex h-6 w-6 shrink-0 items-center justify-center rounded-full border text-[11px] font-medium tabular-nums', {
|
|
32
|
+
variants: {
|
|
33
|
+
status: {
|
|
34
|
+
pending: 'border-border bg-background text-muted-foreground',
|
|
35
|
+
active: 'border-primary bg-primary text-primary-foreground',
|
|
36
|
+
done: 'border-success/50 bg-success/10 text-success',
|
|
37
|
+
skipped: 'border-dashed border-border bg-background text-muted-foreground',
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
defaultVariants: { status: 'pending' },
|
|
41
|
+
});
|
|
42
|
+
/**
|
|
43
|
+
* Coordinates a `tolle-plan` and its steps: assigns each step its number and
|
|
44
|
+
* derives the "Step N of M" summary.
|
|
45
|
+
*
|
|
46
|
+
* The header is `OnPush` and the step count is not one of its inputs, so the
|
|
47
|
+
* summary is published as an observable and every subscriber calls
|
|
48
|
+
* `markForCheck()`.
|
|
49
|
+
*/
|
|
50
|
+
export class PlanService {
|
|
51
|
+
statuses = new Map();
|
|
52
|
+
order = [];
|
|
53
|
+
progressSource = new BehaviorSubject({ current: 0, total: 0 });
|
|
54
|
+
/** Emits the plan's current position and step count. */
|
|
55
|
+
progress$ = this.progressSource.asObservable();
|
|
56
|
+
collapsedSource = new BehaviorSubject(false);
|
|
57
|
+
/** Emits whether the plan is showing only its summary row. */
|
|
58
|
+
collapsed$ = this.collapsedSource.asObservable();
|
|
59
|
+
get progress() {
|
|
60
|
+
return this.progressSource.value;
|
|
61
|
+
}
|
|
62
|
+
get collapsed() {
|
|
63
|
+
return this.collapsedSource.value;
|
|
64
|
+
}
|
|
65
|
+
setCollapsed(collapsed) {
|
|
66
|
+
if (this.collapsedSource.value !== collapsed)
|
|
67
|
+
this.collapsedSource.next(collapsed);
|
|
68
|
+
}
|
|
69
|
+
toggleCollapsed() {
|
|
70
|
+
this.collapsedSource.next(!this.collapsedSource.value);
|
|
71
|
+
}
|
|
72
|
+
/** Registers a step and returns its 1-based number. */
|
|
73
|
+
register(id, status) {
|
|
74
|
+
if (!this.statuses.has(id))
|
|
75
|
+
this.order.push(id);
|
|
76
|
+
this.statuses.set(id, status);
|
|
77
|
+
this.recompute();
|
|
78
|
+
return this.order.indexOf(id) + 1;
|
|
79
|
+
}
|
|
80
|
+
setStatus(id, status) {
|
|
81
|
+
if (!this.statuses.has(id))
|
|
82
|
+
return;
|
|
83
|
+
if (this.statuses.get(id) === status)
|
|
84
|
+
return;
|
|
85
|
+
this.statuses.set(id, status);
|
|
86
|
+
this.recompute();
|
|
87
|
+
}
|
|
88
|
+
unregister(id) {
|
|
89
|
+
const index = this.order.indexOf(id);
|
|
90
|
+
if (index > -1)
|
|
91
|
+
this.order.splice(index, 1);
|
|
92
|
+
this.statuses.delete(id);
|
|
93
|
+
this.recompute();
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* "Current" is the first step still in flight — the active one if there is
|
|
97
|
+
* one, otherwise however many have already been resolved.
|
|
98
|
+
*/
|
|
99
|
+
recompute() {
|
|
100
|
+
const total = this.order.length;
|
|
101
|
+
const activeIndex = this.order.findIndex((id) => this.statuses.get(id) === 'active');
|
|
102
|
+
const resolved = this.order.filter((id) => {
|
|
103
|
+
const status = this.statuses.get(id);
|
|
104
|
+
return status === 'done' || status === 'skipped';
|
|
105
|
+
}).length;
|
|
106
|
+
const current = activeIndex > -1 ? activeIndex + 1 : Math.min(resolved, total);
|
|
107
|
+
this.progressSource.next({ current, total });
|
|
108
|
+
}
|
|
109
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PlanService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
110
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PlanService });
|
|
111
|
+
}
|
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PlanService, decorators: [{
|
|
113
|
+
type: Injectable
|
|
114
|
+
}] });
|
|
115
|
+
/**
|
|
116
|
+
* An ordered plan the agent intends to work through. Each `tolle-plan-step`
|
|
117
|
+
* numbers itself and joins the connector line; collapsing the plan swaps the
|
|
118
|
+
* steps for a single "Step N of M" summary.
|
|
119
|
+
*
|
|
120
|
+
* ```html
|
|
121
|
+
* <tolle-plan title="Migration plan">
|
|
122
|
+
* <tolle-plan-step label="Read the schema" status="done"></tolle-plan-step>
|
|
123
|
+
* <tolle-plan-step label="Write the migration" status="active"></tolle-plan-step>
|
|
124
|
+
* <tolle-plan-step label="Run it" status="pending"></tolle-plan-step>
|
|
125
|
+
* </tolle-plan>
|
|
126
|
+
* ```
|
|
127
|
+
* @new
|
|
128
|
+
*/
|
|
129
|
+
export class PlanComponent {
|
|
130
|
+
/** Heading shown above the steps. @default 'Plan' */
|
|
131
|
+
title = 'Plan';
|
|
132
|
+
/** Shows only the header and its "Step N of M" summary. @default false */
|
|
133
|
+
collapsed = false;
|
|
134
|
+
/** Lets the user collapse and expand the plan by clicking the header. @default true */
|
|
135
|
+
collapsible = true;
|
|
136
|
+
/** Padding and text scale of the plan. @default 'default' */
|
|
137
|
+
size = 'default';
|
|
138
|
+
/** Extra Tailwind classes merged onto the plan via `cn()` (last-wins). */
|
|
139
|
+
class = '';
|
|
140
|
+
/** Emitted with the new collapsed state when the header is toggled. */
|
|
141
|
+
collapsedChange = new EventEmitter();
|
|
142
|
+
service = inject(PlanService);
|
|
143
|
+
cdr = inject(ChangeDetectorRef);
|
|
144
|
+
sub = new Subscription();
|
|
145
|
+
isCollapsed = false;
|
|
146
|
+
progress = { current: 0, total: 0 };
|
|
147
|
+
ngOnInit() {
|
|
148
|
+
this.service.setCollapsed(this.collapsed);
|
|
149
|
+
// Seeded before subscribing so the replayed initial value is not mistaken
|
|
150
|
+
// for a user toggle and echoed back out as a `collapsedChange`.
|
|
151
|
+
this.isCollapsed = this.collapsed;
|
|
152
|
+
this.sub.add(this.service.collapsed$.subscribe((collapsed) => {
|
|
153
|
+
const changed = this.isCollapsed !== collapsed;
|
|
154
|
+
this.isCollapsed = collapsed;
|
|
155
|
+
this.cdr.markForCheck();
|
|
156
|
+
if (changed)
|
|
157
|
+
this.collapsedChange.emit(collapsed);
|
|
158
|
+
}));
|
|
159
|
+
this.sub.add(this.service.progress$.subscribe((progress) => {
|
|
160
|
+
this.progress = progress;
|
|
161
|
+
this.cdr.markForCheck();
|
|
162
|
+
}));
|
|
163
|
+
}
|
|
164
|
+
ngOnChanges() {
|
|
165
|
+
this.service.setCollapsed(this.collapsed);
|
|
166
|
+
// A bound `class` input is written through Angular's styling path,
|
|
167
|
+
// which does not mark an OnPush view dirty on its own.
|
|
168
|
+
this.cdr.markForCheck();
|
|
169
|
+
}
|
|
170
|
+
ngOnDestroy() {
|
|
171
|
+
this.sub.unsubscribe();
|
|
172
|
+
}
|
|
173
|
+
/** The compact "Step N of M" label, empty until at least one step registers. */
|
|
174
|
+
get summary() {
|
|
175
|
+
if (!this.progress.total)
|
|
176
|
+
return '';
|
|
177
|
+
return 'Step ' + Math.max(1, this.progress.current) + ' of ' + this.progress.total;
|
|
178
|
+
}
|
|
179
|
+
get computedClass() {
|
|
180
|
+
return cn(planVariants({ size: this.size }), this.class);
|
|
181
|
+
}
|
|
182
|
+
get headerClass() {
|
|
183
|
+
return cn('flex w-full items-center gap-1.5 rounded-md text-left text-sm outline-none transition-colors', this.collapsible ? 'cursor-pointer' : 'cursor-default', 'focus-visible:ring-2 focus-visible:ring-ring');
|
|
184
|
+
}
|
|
185
|
+
toggle() {
|
|
186
|
+
if (!this.collapsible)
|
|
187
|
+
return;
|
|
188
|
+
this.service.toggleCollapsed();
|
|
189
|
+
}
|
|
190
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PlanComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
191
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PlanComponent, isStandalone: true, selector: "tolle-plan", inputs: { title: "title", collapsed: "collapsed", collapsible: "collapsible", size: "size", class: "class" }, outputs: { collapsedChange: "collapsedChange" }, providers: [PlanService], usesOnChanges: true, ngImport: i0, template: `
|
|
192
|
+
<div [class]="computedClass" [attr.data-collapsed]="isCollapsed ? '' : null">
|
|
193
|
+
<button
|
|
194
|
+
type="button"
|
|
195
|
+
[disabled]="!collapsible"
|
|
196
|
+
[attr.aria-expanded]="collapsible ? !isCollapsed : null"
|
|
197
|
+
[class]="headerClass"
|
|
198
|
+
(click)="toggle()"
|
|
199
|
+
>
|
|
200
|
+
<i
|
|
201
|
+
*ngIf="collapsible"
|
|
202
|
+
[class]="isCollapsed ? 'ri-arrow-right-s-line shrink-0 text-muted-foreground' : 'ri-arrow-down-s-line shrink-0 text-muted-foreground'"
|
|
203
|
+
aria-hidden="true"
|
|
204
|
+
></i>
|
|
205
|
+
<span class="truncate font-medium text-foreground">{{ title }}</span>
|
|
206
|
+
<span class="ml-auto shrink-0 text-xs tabular-nums text-muted-foreground">{{ summary }}</span>
|
|
207
|
+
</button>
|
|
208
|
+
|
|
209
|
+
<div [class]="isCollapsed ? 'hidden' : 'mt-3 flex flex-col'">
|
|
210
|
+
<ng-content></ng-content>
|
|
211
|
+
</div>
|
|
212
|
+
</div>
|
|
213
|
+
`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
214
|
+
}
|
|
215
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PlanComponent, decorators: [{
|
|
216
|
+
type: Component,
|
|
217
|
+
args: [{ selector: 'tolle-plan', standalone: true, imports: [CommonModule], providers: [PlanService], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
218
|
+
<div [class]="computedClass" [attr.data-collapsed]="isCollapsed ? '' : null">
|
|
219
|
+
<button
|
|
220
|
+
type="button"
|
|
221
|
+
[disabled]="!collapsible"
|
|
222
|
+
[attr.aria-expanded]="collapsible ? !isCollapsed : null"
|
|
223
|
+
[class]="headerClass"
|
|
224
|
+
(click)="toggle()"
|
|
225
|
+
>
|
|
226
|
+
<i
|
|
227
|
+
*ngIf="collapsible"
|
|
228
|
+
[class]="isCollapsed ? 'ri-arrow-right-s-line shrink-0 text-muted-foreground' : 'ri-arrow-down-s-line shrink-0 text-muted-foreground'"
|
|
229
|
+
aria-hidden="true"
|
|
230
|
+
></i>
|
|
231
|
+
<span class="truncate font-medium text-foreground">{{ title }}</span>
|
|
232
|
+
<span class="ml-auto shrink-0 text-xs tabular-nums text-muted-foreground">{{ summary }}</span>
|
|
233
|
+
</button>
|
|
234
|
+
|
|
235
|
+
<div [class]="isCollapsed ? 'hidden' : 'mt-3 flex flex-col'">
|
|
236
|
+
<ng-content></ng-content>
|
|
237
|
+
</div>
|
|
238
|
+
</div>
|
|
239
|
+
`, styles: [":host{display:block}\n"] }]
|
|
240
|
+
}], propDecorators: { title: [{
|
|
241
|
+
type: Input
|
|
242
|
+
}], collapsed: [{
|
|
243
|
+
type: Input
|
|
244
|
+
}], collapsible: [{
|
|
245
|
+
type: Input
|
|
246
|
+
}], size: [{
|
|
247
|
+
type: Input
|
|
248
|
+
}], class: [{
|
|
249
|
+
type: Input
|
|
250
|
+
}], collapsedChange: [{
|
|
251
|
+
type: Output
|
|
252
|
+
}] } });
|
|
253
|
+
/** One numbered step of a `tolle-plan`. */
|
|
254
|
+
export class PlanStepComponent {
|
|
255
|
+
/** What this step does. @default '' */
|
|
256
|
+
label = '';
|
|
257
|
+
/** Supporting detail shown under the label. @default '' */
|
|
258
|
+
description = '';
|
|
259
|
+
/** Progress of this step; drives the badge colour and glyph. @default 'pending' */
|
|
260
|
+
status = 'pending';
|
|
261
|
+
/** Extra Tailwind classes merged onto the step via `cn()` (last-wins). */
|
|
262
|
+
class = '';
|
|
263
|
+
service = inject(PlanService);
|
|
264
|
+
id = 'tolle-plan-step-' + planStepId++;
|
|
265
|
+
/** 1-based position of this step, assigned on registration. */
|
|
266
|
+
index = 0;
|
|
267
|
+
ngOnInit() {
|
|
268
|
+
this.index = this.service.register(this.id, this.status);
|
|
269
|
+
}
|
|
270
|
+
ngOnChanges() {
|
|
271
|
+
this.service.setStatus(this.id, this.status);
|
|
272
|
+
}
|
|
273
|
+
ngOnDestroy() {
|
|
274
|
+
this.service.unregister(this.id);
|
|
275
|
+
}
|
|
276
|
+
get computedClass() {
|
|
277
|
+
return cn(planStepVariants({ status: this.status }), this.class);
|
|
278
|
+
}
|
|
279
|
+
get badgeClass() {
|
|
280
|
+
return cn(planBadgeVariants({ status: this.status }));
|
|
281
|
+
}
|
|
282
|
+
get labelClass() {
|
|
283
|
+
return cn('text-sm', this.status === 'active' && 'font-medium text-foreground', this.status === 'done' && 'text-foreground', this.status === 'pending' && 'text-muted-foreground', this.status === 'skipped' && 'text-muted-foreground line-through');
|
|
284
|
+
}
|
|
285
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PlanStepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
286
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PlanStepComponent, isStandalone: true, selector: "tolle-plan-step", inputs: { label: "label", description: "description", status: "status", class: "class" }, host: { properties: { "class": "computedClass", "attr.data-status": "status" } }, usesOnChanges: true, ngImport: i0, template: `
|
|
287
|
+
<span class="tolle-plan-rail absolute bottom-0 left-3 top-6 w-px -translate-x-1/2 bg-border" aria-hidden="true"></span>
|
|
288
|
+
|
|
289
|
+
<span [class]="badgeClass">
|
|
290
|
+
<i *ngIf="status === 'done'" class="ri-check-line" aria-hidden="true"></i>
|
|
291
|
+
<i *ngIf="status === 'skipped'" class="ri-subtract-line" aria-hidden="true"></i>
|
|
292
|
+
<ng-container *ngIf="status !== 'done' && status !== 'skipped'">{{ index }}</ng-container>
|
|
293
|
+
</span>
|
|
294
|
+
|
|
295
|
+
<div class="min-w-0 flex-1 pt-0.5">
|
|
296
|
+
<p [class]="labelClass">{{ label }}</p>
|
|
297
|
+
<p *ngIf="description" class="mt-0.5 text-xs text-muted-foreground">{{ description }}</p>
|
|
298
|
+
<ng-content></ng-content>
|
|
299
|
+
</div>
|
|
300
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
301
|
+
}
|
|
302
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PlanStepComponent, decorators: [{
|
|
303
|
+
type: Component,
|
|
304
|
+
args: [{
|
|
305
|
+
selector: 'tolle-plan-step',
|
|
306
|
+
standalone: true,
|
|
307
|
+
imports: [CommonModule],
|
|
308
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
309
|
+
host: { '[class]': 'computedClass', '[attr.data-status]': 'status' },
|
|
310
|
+
template: `
|
|
311
|
+
<span class="tolle-plan-rail absolute bottom-0 left-3 top-6 w-px -translate-x-1/2 bg-border" aria-hidden="true"></span>
|
|
312
|
+
|
|
313
|
+
<span [class]="badgeClass">
|
|
314
|
+
<i *ngIf="status === 'done'" class="ri-check-line" aria-hidden="true"></i>
|
|
315
|
+
<i *ngIf="status === 'skipped'" class="ri-subtract-line" aria-hidden="true"></i>
|
|
316
|
+
<ng-container *ngIf="status !== 'done' && status !== 'skipped'">{{ index }}</ng-container>
|
|
317
|
+
</span>
|
|
318
|
+
|
|
319
|
+
<div class="min-w-0 flex-1 pt-0.5">
|
|
320
|
+
<p [class]="labelClass">{{ label }}</p>
|
|
321
|
+
<p *ngIf="description" class="mt-0.5 text-xs text-muted-foreground">{{ description }}</p>
|
|
322
|
+
<ng-content></ng-content>
|
|
323
|
+
</div>
|
|
324
|
+
`,
|
|
325
|
+
}]
|
|
326
|
+
}], propDecorators: { label: [{
|
|
327
|
+
type: Input
|
|
328
|
+
}], description: [{
|
|
329
|
+
type: Input
|
|
330
|
+
}], status: [{
|
|
331
|
+
type: Input
|
|
332
|
+
}], class: [{
|
|
333
|
+
type: Input
|
|
334
|
+
}] } });
|
|
335
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3BsYW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckssT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7O0FBS2hDLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztBQVVuQixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMseUVBQXlFLEVBQUU7SUFDbEcsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFO1lBQ0osRUFBRSxFQUFFLGFBQWE7WUFDakIsT0FBTyxFQUFFLGFBQWE7U0FDdkI7S0FDRjtJQUNELGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7Q0FDckMsQ0FBQyxDQUFDO0FBSUgsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHO0FBQzFCLGlGQUFpRjtBQUNqRiwyRUFBMkUsRUFDM0U7SUFDRSxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUU7WUFDTixPQUFPLEVBQUUsYUFBYTtZQUN0QixNQUFNLEVBQUUsYUFBYTtZQUNyQixJQUFJLEVBQUUsYUFBYTtZQUNuQixPQUFPLEVBQUUsWUFBWTtTQUN0QjtLQUNGO0lBQ0QsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRTtDQUN2QyxDQUNGLENBQUM7QUFFRixN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SztnQkFFRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY3ZhLCB0eXBlIFZhcmlhbnRQcm9wcyB9IGZyb20gJ2NsYXNzLXZhcmlhbmNlLWF1dGhvcml0eSc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuXG4vKiogUHJvZ3Jlc3Mgb2YgYSBzaW5nbGUgc3RlcCBpbiBhbiBhZ2VudCBwbGFuLiAqL1xuZXhwb3J0IHR5cGUgUGxhblN0ZXBTdGF0dXMgPSAncGVuZGluZycgfCAnYWN0aXZlJyB8ICdkb25lJyB8ICdza2lwcGVkJztcblxubGV0IHBsYW5TdGVwSWQgPSAwO1xuXG4vKiogSG93IGZhciB0aHJvdWdoIHRoZSBwbGFuIHRoZSBhZ2VudCBpcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxhblByb2dyZXNzIHtcbiAgLyoqIDEtYmFzZWQgcG9zaXRpb24gb2YgdGhlIHN0ZXAgYmVpbmcgd29ya2VkIG9uLCBvciBvZiB0aGUgbGFzdCBmaW5pc2hlZCBvbmUuICovXG4gIGN1cnJlbnQ6IG51bWJlcjtcbiAgLyoqIE51bWJlciBvZiByZWdpc3RlcmVkIHN0ZXBzLiAqL1xuICB0b3RhbDogbnVtYmVyO1xufVxuXG5jb25zdCBwbGFuVmFyaWFudHMgPSBjdmEoJ3ctZnVsbCByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLWNhcmQgcC0zIHRleHQtY2FyZC1mb3JlZ3JvdW5kJywge1xuICB2YXJpYW50czoge1xuICAgIHNpemU6IHtcbiAgICAgIHNtOiAncC0yIHRleHQteHMnLFxuICAgICAgZGVmYXVsdDogJ3AtMyB0ZXh0LXNtJyxcbiAgICB9LFxuICB9LFxuICBkZWZhdWx0VmFyaWFudHM6IHsgc2l6ZTogJ2RlZmF1bHQnIH0sXG59KTtcblxuZXhwb3J0IHR5cGUgUGxhblByb3BzID0gVmFyaWFudFByb3BzPHR5cGVvZiBwbGFuVmFyaWFudHM+O1xuXG5jb25zdCBwbGFuU3RlcFZhcmlhbnRzID0gY3ZhKFxuICAvLyBUaGUgY29ubmVjdG9yIGlzIGhpZGRlbiBvbiB0aGUgZmluYWwgc3RlcCBzbyB0aGUgbGluZSBzdG9wcyBhdCB0aGUgbGFzdCBiYWRnZS5cbiAgJ3JlbGF0aXZlIGZsZXggZ2FwLTMgcGItMyBsYXN0OnBiLTAgWyY6bGFzdC1jaGlsZF8udG9sbGUtcGxhbi1yYWlsXTpoaWRkZW4nLFxuICB7XG4gICAgdmFyaWFudHM6IHtcbiAgICAgIHN0YXR1czoge1xuICAgICAgICBwZW5kaW5nOiAnb3BhY2l0eS0xMDAnLFxuICAgICAgICBhY3RpdmU6ICdvcGFjaXR5LTEwMCcsXG4gICAgICAgIGRvbmU6ICdvcGFjaXR5LTEwMCcsXG4gICAgICAgIHNraXBwZWQ6ICdvcGFjaXR5LTYwJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0VmFyaWFudHM6IHsgc3RhdHVzOiAncGVuZGluZycgfSxcbiAgfVxuKTtcblxuY29uc3QgcGxhbkJhZGdlVmFyaWFudHMgPSBjdmEoXG4gICdyZWxhdGl2ZSB6LVsxXSBmbGV4IGgtNiB3LTYgc2hyaW5rLTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtZnVsbCBib3JkZXIgdGV4dC1bMTFweF0gZm9udC1tZWRpdW0gdGFidWxhci1udW1zJyxcbiAge1xuICAgIHZhcmlhbnRzOiB7XG4gICAgICBzdGF0dXM6IHtcbiAgICAgICAgcGVuZGluZzogJ2JvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCB0ZXh0LW11dGVkLWZvcmVncm91bmQnLFxuICAgICAgICBhY3RpdmU6ICdib3JkZXItcHJpbWFyeSBiZy1wcmltYXJ5IHRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kJyxcbiAgICAgICAgZG9uZTogJ2JvcmRlci1zdWNjZXNzLzUwIGJnLXN1Y2Nlc3MvMTAgdGV4dC1zdWNjZXNzJyxcbiAgICAgICAgc2tpcHBlZDogJ2JvcmRlci1kYXNoZWQgYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZGVmYXVsdFZhcmlhbnRzOiB7IHN0YXR1czogJ3BlbmRpbmcnIH0sXG4gIH1cbik7XG5cbmV4cG9ydCB0eXBlIFBsYW5TdGVwUHJvcHMgPSBWYXJpYW50UHJvcHM8dHlwZW9mIHBsYW5TdGVwVmFyaWFudHM+O1xuXG4vKipcbiAqIENvb3JkaW5hdGVzIGEgYHRvbGxlLXBsYW5gIGFuZCBpdHMgc3RlcHM6IGFzc2lnbnMgZWFjaCBzdGVwIGl0cyBudW1iZXIgYW5kXG4gKiBkZXJpdmVzIHRoZSBcIlN0ZXAgTiBvZiBNXCIgc3VtbWFyeS5cbiAqXG4gKiBUaGUgaGVhZGVyIGlzIGBPblB1c2hgIGFuZCB0aGUgc3RlcCBjb3VudCBpcyBub3Qgb25lIG9mIGl0cyBpbnB1dHMsIHNvIHRoZVxuICogc3VtbWFyeSBpcyBwdWJsaXNoZWQgYXMgYW4gb2JzZXJ2YWJsZSBhbmQgZXZlcnkgc3Vic2NyaWJlciBjYWxsc1xuICogYG1hcmtGb3JDaGVjaygpYC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBsYW5TZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0dXNlcyA9IG5ldyBNYXA8c3RyaW5nLCBQbGFuU3RlcFN0YXR1cz4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvcmRlcjogc3RyaW5nW10gPSBbXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHByb2dyZXNzU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQbGFuUHJvZ3Jlc3M+KHsgY3VycmVudDogMCwgdG90YWw6IDAgfSk7XG4gIC8qKiBFbWl0cyB0aGUgcGxhbidzIGN1cnJlbnQgcG9zaXRpb24gYW5kIHN0ZXAgY291bnQuICovXG4gIHJlYWRvbmx5IHByb2dyZXNzJCA9IHRoaXMucHJvZ3Jlc3NTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb2xsYXBzZWRTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgLyoqIEVtaXRzIHdoZXRoZXIgdGhlIHBsYW4gaXMgc2hvd2luZyBvbmx5IGl0cyBzdW1tYXJ5IHJvdy4gKi9cbiAgcmVhZG9ubHkgY29sbGFwc2VkJCA9IHRoaXMuY29sbGFwc2VkU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGdldCBwcm9ncmVzcygpOiBQbGFuUHJvZ3Jlc3Mge1xuICAgIHJldHVybiB0aGlzLnByb2dyZXNzU291cmNlLnZhbHVlO1xuICB9XG5cbiAgZ2V0IGNvbGxhcHNlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb2xsYXBzZWRTb3VyY2UudmFsdWU7XG4gIH1cblxuICBzZXRDb2xsYXBzZWQoY29sbGFwc2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29sbGFwc2VkU291cmNlLnZhbHVlICE9PSBjb2xsYXBzZWQpIHRoaXMuY29sbGFwc2VkU291cmNlLm5leHQoY29sbGFwc2VkKTtcbiAgfVxuXG4gIHRvZ2dsZUNvbGxhcHNlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbGxhcHNlZFNvdXJjZS5uZXh0KCF0aGlzLmNvbGxhcHNlZFNvdXJjZS52YWx1ZSk7XG4gIH1cblxuICAvKiogUmVnaXN0ZXJzIGEgc3RlcCBhbmQgcmV0dXJucyBpdHMgMS1iYXNlZCBudW1iZXIuICovXG4gIHJlZ2lzdGVyKGlkOiBzdHJpbmcsIHN0YXR1czogUGxhblN0ZXBTdGF0dXMpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5zdGF0dXNlcy5oYXMoaWQpKSB0aGlzLm9yZGVyLnB1c2goaWQpO1xuICAgIHRoaXMuc3RhdHVzZXMuc2V0KGlkLCBzdGF0dXMpO1xuICAgIHRoaXMucmVjb21wdXRlKCk7XG4gICAgcmV0dXJuIHRoaXMub3JkZXIuaW5kZXhPZihpZCkgKyAxO1xuICB9XG5cbiAgc2V0U3RhdHVzKGlkOiBzdHJpbmcsIHN0YXR1czogUGxhblN0ZXBTdGF0dXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc3RhdHVzZXMuaGFzKGlkKSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnN0YXR1c2VzLmdldChpZCkgPT09IHN0YXR1cykgcmV0dXJuO1xuICAgIHRoaXMuc3RhdHVzZXMuc2V0KGlkLCBzdGF0dXMpO1xuICAgIHRoaXMucmVjb21wdXRlKCk7XG4gIH1cblxuICB1bnJlZ2lzdGVyKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMub3JkZXIuaW5kZXhPZihpZCk7XG4gICAgaWYgKGluZGV4ID4gLTEpIHRoaXMub3JkZXIuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLnN0YXR1c2VzLmRlbGV0ZShpZCk7XG4gICAgdGhpcy5yZWNvbXB1dGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIkN1cnJlbnRcIiBpcyB0aGUgZmlyc3Qgc3RlcCBzdGlsbCBpbiBmbGlnaHQg4oCUIHRoZSBhY3RpdmUgb25lIGlmIHRoZXJlIGlzXG4gICAqIG9uZSwgb3RoZXJ3aXNlIGhvd2V2ZXIgbWFueSBoYXZlIGFscmVhZHkgYmVlbiByZXNvbHZlZC5cbiAgICovXG4gIHByaXZhdGUgcmVjb21wdXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5vcmRlci5sZW5ndGg7XG4gICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLm9yZGVyLmZpbmRJbmRleCgoaWQpID0+IHRoaXMuc3RhdHVzZXMuZ2V0KGlkKSA9PT0gJ2FjdGl2ZScpO1xuICAgIGNvbnN0IHJlc29sdmVkID0gdGhpcy5vcmRlci5maWx0ZXIoKGlkKSA9PiB7XG4gICAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnN0YXR1c2VzLmdldChpZCk7XG4gICAgICByZXR1cm4gc3RhdHVzID09PSAnZG9uZScgfHwgc3RhdHVzID09PSAnc2tpcHBlZCc7XG4gICAgfSkubGVuZ3RoO1xuXG4gICAgY29uc3QgY3VycmVudCA9IGFjdGl2ZUluZGV4ID4gLTEgPyBhY3RpdmVJbmRleCArIDEgOiBNYXRoLm1pbihyZXNvbHZlZCwgdG90YWwpO1xuICAgIHRoaXMucHJvZ3Jlc3NTb3VyY2UubmV4dCh7IGN1cnJlbnQsIHRvdGFsIH0pO1xuICB9XG59XG5cbi8qKlxuICogQW4gb3JkZXJlZCBwbGFuIHRoZSBhZ2VudCBpbnRlbmRzIHRvIHdvcmsgdGhyb3VnaC4gRWFjaCBgdG9sbGUtcGxhbi1zdGVwYFxuICogbnVtYmVycyBpdHNlbGYgYW5kIGpvaW5zIHRoZSBjb25uZWN0b3IgbGluZTsgY29sbGFwc2luZyB0aGUgcGxhbiBzd2FwcyB0aGVcbiAqIHN0ZXBzIGZvciBhIHNpbmdsZSBcIlN0ZXAgTiBvZiBNXCIgc3VtbWFyeS5cbiAqXG4gKiBgYGBodG1sXG4gKiA8dG9sbGUtcGxhbiB0aXRsZT1cIk1pZ3JhdGlvbiBwbGFuXCI+XG4gKiAgIDx0b2xsZS1wbGFuLXN0ZXAgbGFiZWw9XCJSZWFkIHRoZSBzY2hlbWFcIiBzdGF0dXM9XCJkb25lXCI+PC90b2xsZS1wbGFuLXN0ZXA+XG4gKiAgIDx0b2xsZS1wbGFuLXN0ZXAgbGFiZWw9XCJXcml0ZSB0aGUgbWlncmF0aW9uXCIgc3RhdHVzPVwiYWN0aXZlXCI+PC90b2xsZS1wbGFuLXN0ZXA+XG4gKiAgIDx0b2xsZS1wbGFuLXN0ZXAgbGFiZWw9XCJSdW4gaXRcIiBzdGF0dXM9XCJwZW5kaW5nXCI+PC90b2xsZS1wbGFuLXN0ZXA+XG4gKiA8L3RvbGxlLXBsYW4+XG4gKiBgYGBcbiAqIEBuZXdcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtcGxhbicsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFtQbGFuU2VydmljZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgW2NsYXNzXT1cImNvbXB1dGVkQ2xhc3NcIiBbYXR0ci5kYXRhLWNvbGxhcHNlZF09XCJpc0NvbGxhcHNlZCA/ICcnIDogbnVsbFwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFjb2xsYXBzaWJsZVwiXG4gICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiY29sbGFwc2libGUgPyAhaXNDb2xsYXBzZWQgOiBudWxsXCJcbiAgICAgICAgW2NsYXNzXT1cImhlYWRlckNsYXNzXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbiAgICAgID5cbiAgICAgICAgPGlcbiAgICAgICAgICAqbmdJZj1cImNvbGxhcHNpYmxlXCJcbiAgICAgICAgICBbY2xhc3NdPVwiaXNDb2xsYXBzZWQgPyAncmktYXJyb3ctcmlnaHQtcy1saW5lIHNocmluay0wIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcgOiAncmktYXJyb3ctZG93bi1zLWxpbmUgc2hyaW5rLTAgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kJ1wiXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPjwvaT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZSBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmRcIj57eyB0aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC1hdXRvIHNocmluay0wIHRleHQteHMgdGFidWxhci1udW1zIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPnt7IHN1bW1hcnkgfX08L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGRpdiBbY2xhc3NdPVwiaXNDb2xsYXBzZWQgPyAnaGlkZGVuJyA6ICdtdC0zIGZsZXggZmxleC1jb2wnXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBQbGFuQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIC8qKiBIZWFkaW5nIHNob3duIGFib3ZlIHRoZSBzdGVwcy4gQGRlZmF1bHQgJ1BsYW4nICovXG4gIEBJbnB1dCgpIHRpdGxlID0gJ1BsYW4nO1xuICAvKiogU2hvd3Mgb25seSB0aGUgaGVhZGVyIGFuZCBpdHMgXCJTdGVwIE4gb2YgTVwiIHN1bW1hcnkuIEBkZWZhdWx0IGZhbHNlICovXG4gIEBJbnB1dCgpIGNvbGxhcHNlZCA9IGZhbHNlO1xuICAvKiogTGV0cyB0aGUgdXNlciBjb2xsYXBzZSBhbmQgZXhwYW5kIHRoZSBwbGFuIGJ5IGNsaWNraW5nIHRoZSBoZWFkZXIuIEBkZWZhdWx0IHRydWUgKi9cbiAgQElucHV0KCkgY29sbGFwc2libGUgPSB0cnVlO1xuICAvKiogUGFkZGluZyBhbmQgdGV4dCBzY2FsZSBvZiB0aGUgcGxhbi4gQGRlZmF1bHQgJ2RlZmF1bHQnICovXG4gIEBJbnB1dCgpIHNpemU6IFBsYW5Qcm9wc1snc2l6ZSddID0gJ2RlZmF1bHQnO1xuICAvKiogRXh0cmEgVGFpbHdpbmQgY2xhc3NlcyBtZXJnZWQgb250byB0aGUgcGxhbiB2aWEgYGNuKClgIChsYXN0LXdpbnMpLiAqL1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuXG4gIC8qKiBFbWl0dGVkIHdpdGggdGhlIG5ldyBjb2xsYXBzZWQgc3RhdGUgd2hlbiB0aGUgaGVhZGVyIGlzIHRvZ2dsZWQuICovXG4gIEBPdXRwdXQoKSBjb2xsYXBzZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlID0gaW5qZWN0KFBsYW5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHN1YiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBpc0NvbGxhcHNlZCA9IGZhbHNlO1xuICBwcm9ncmVzczogUGxhblByb2dyZXNzID0geyBjdXJyZW50OiAwLCB0b3RhbDogMCB9O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5zZXRDb2xsYXBzZWQodGhpcy5jb2xsYXBzZWQpO1xuICAgIC8vIFNlZWRlZCBiZWZvcmUgc3Vic2NyaWJpbmcgc28gdGhlIHJlcGxheWVkIGluaXRpYWwgdmFsdWUgaXMgbm90IG1pc3Rha2VuXG4gICAgLy8gZm9yIGEgdXNlciB0b2dnbGUgYW5kIGVjaG9lZCBiYWNrIG91dCBhcyBhIGBjb2xsYXBzZWRDaGFuZ2VgLlxuICAgIHRoaXMuaXNDb2xsYXBzZWQgPSB0aGlzLmNvbGxhcHNlZDtcbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICB0aGlzLnNlcnZpY2UuY29sbGFwc2VkJC5zdWJzY3JpYmUoKGNvbGxhcHNlZCkgPT4ge1xuICAgICAgICBjb25zdCBjaGFuZ2VkID0gdGhpcy5pc0NvbGxhcHNlZCAhPT0gY29sbGFwc2VkO1xuICAgICAgICB0aGlzLmlzQ29sbGFwc2VkID0gY29sbGFwc2VkO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgaWYgKGNoYW5nZWQpIHRoaXMuY29sbGFwc2VkQ2hhbmdlLmVtaXQoY29sbGFwc2VkKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICB0aGlzLnNlcnZpY2UucHJvZ3Jlc3MkLnN1YnNjcmliZSgocHJvZ3Jlc3MpID0+IHtcbiAgICAgICAgdGhpcy5wcm9ncmVzcyA9IHByb2dyZXNzO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5zZXRDb2xsYXBzZWQodGhpcy5jb2xsYXBzZWQpO1xuICBcbiAgICAvLyBBIGJvdW5kIGBjbGFzc2AgaW5wdXQgaXMgd3JpdHRlbiB0aHJvdWdoIEFuZ3VsYXIncyBzdHlsaW5nIHBhdGgsXG4gICAgLy8gd2hpY2ggZG9lcyBub3QgbWFyayBhbiBPblB1c2ggdmlldyBkaXJ0eSBvbiBpdHMgb3duLlxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKiBUaGUgY29tcGFjdCBcIlN0ZXAgTiBvZiBNXCIgbGFiZWwsIGVtcHR5IHVudGlsIGF0IGxlYXN0IG9uZSBzdGVwIHJlZ2lzdGVycy4gKi9cbiAgZ2V0IHN1bW1hcnkoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMucHJvZ3Jlc3MudG90YWwpIHJldHVybiAnJztcbiAgICByZXR1cm4gJ1N0ZXAgJyArIE1hdGgubWF4KDEsIHRoaXMucHJvZ3Jlc3MuY3VycmVudCkgKyAnIG9mICcgKyB0aGlzLnByb2dyZXNzLnRvdGFsO1xuICB9XG5cbiAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKHBsYW5WYXJpYW50cyh7IHNpemU6IHRoaXMuc2l6ZSB9KSwgdGhpcy5jbGFzcyk7XG4gIH1cblxuICBnZXQgaGVhZGVyQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKFxuICAgICAgJ2ZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlciBnYXAtMS41IHJvdW5kZWQtbWQgdGV4dC1sZWZ0IHRleHQtc20gb3V0bGluZS1ub25lIHRyYW5zaXRpb24tY29sb3JzJyxcbiAgICAgIHRoaXMuY29sbGFwc2libGUgPyAnY3Vyc29yLXBvaW50ZXInIDogJ2N1cnNvci1kZWZhdWx0JyxcbiAgICAgICdmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZydcbiAgICApO1xuICB9XG5cbiAgdG9nZ2xlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb2xsYXBzaWJsZSkgcmV0dXJuO1xuICAgIHRoaXMuc2VydmljZS50b2dnbGVDb2xsYXBzZWQoKTtcbiAgfVxufVxuXG4vKiogT25lIG51bWJlcmVkIHN0ZXAgb2YgYSBgdG9sbGUtcGxhbmAuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1wbGFuLXN0ZXAnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHsgJ1tjbGFzc10nOiAnY29tcHV0ZWRDbGFzcycsICdbYXR0ci5kYXRhLXN0YXR1c10nOiAnc3RhdHVzJyB9LFxuICB0ZW1wbGF0ZTogYFxuICAgIDxzcGFuIGNsYXNzPVwidG9sbGUtcGxhbi1yYWlsIGFic29sdXRlIGJvdHRvbS0wIGxlZnQtMyB0b3AtNiB3LXB4IC10cmFuc2xhdGUteC0xLzIgYmctYm9yZGVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuXG4gICAgPHNwYW4gW2NsYXNzXT1cImJhZGdlQ2xhc3NcIj5cbiAgICAgIDxpICpuZ0lmPVwic3RhdHVzID09PSAnZG9uZSdcIiBjbGFzcz1cInJpLWNoZWNrLWxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICA8aSAqbmdJZj1cInN0YXR1cyA9PT0gJ3NraXBwZWQnXCIgY2xhc3M9XCJyaS1zdWJ0cmFjdC1saW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0YXR1cyAhPT0gJ2RvbmUnICYmIHN0YXR1cyAhPT0gJ3NraXBwZWQnXCI+e3sgaW5kZXggfX08L25nLWNvbnRhaW5lcj5cbiAgICA8L3NwYW4+XG5cbiAgICA8ZGl2IGNsYXNzPVwibWluLXctMCBmbGV4LTEgcHQtMC41XCI+XG4gICAgICA8cCBbY2xhc3NdPVwibGFiZWxDbGFzc1wiPnt7IGxhYmVsIH19PC9wPlxuICAgICAgPHAgKm5nSWY9XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwibXQtMC41IHRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+e3sgZGVzY3JpcHRpb24gfX08L3A+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFBsYW5TdGVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIC8qKiBXaGF0IHRoaXMgc3RlcCBkb2VzLiBAZGVmYXVsdCAnJyAqL1xuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICAvKiogU3VwcG9ydGluZyBkZXRhaWwgc2hvd24gdW5kZXIgdGhlIGxhYmVsLiBAZGVmYXVsdCAnJyAqL1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbiA9ICcnO1xuICAvKiogUHJvZ3Jlc3Mgb2YgdGhpcyBzdGVwOyBkcml2ZXMgdGhlIGJhZGdlIGNvbG91ciBhbmQgZ2x5cGguIEBkZWZhdWx0ICdwZW5kaW5nJyAqL1xuICBASW5wdXQoKSBzdGF0dXM6IFBsYW5TdGVwU3RhdHVzID0gJ3BlbmRpbmcnO1xuICAvKiogRXh0cmEgVGFpbHdpbmQgY2xhc3NlcyBtZXJnZWQgb250byB0aGUgc3RlcCB2aWEgYGNuKClgIChsYXN0LXdpbnMpLiAqL1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZSA9IGluamVjdChQbGFuU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaWQgPSAndG9sbGUtcGxhbi1zdGVwLScgKyBwbGFuU3RlcElkKys7XG5cbiAgLyoqIDEtYmFzZWQgcG9zaXRpb24gb2YgdGhpcyBzdGVwLCBhc3NpZ25lZCBvbiByZWdpc3RyYXRpb24uICovXG4gIGluZGV4ID0gMDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluZGV4ID0gdGhpcy5zZXJ2aWNlLnJlZ2lzdGVyKHRoaXMuaWQsIHRoaXMuc3RhdHVzKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5zZXRTdGF0dXModGhpcy5pZCwgdGhpcy5zdGF0dXMpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zZXJ2aWNlLnVucmVnaXN0ZXIodGhpcy5pZCk7XG4gIH1cblxuICBnZXQgY29tcHV0ZWRDbGFzcygpIHtcbiAgICByZXR1cm4gY24ocGxhblN0ZXBWYXJpYW50cyh7IHN0YXR1czogdGhpcy5zdGF0dXMgfSksIHRoaXMuY2xhc3MpO1xuICB9XG5cbiAgZ2V0IGJhZGdlQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKHBsYW5CYWRnZVZhcmlhbnRzKHsgc3RhdHVzOiB0aGlzLnN0YXR1cyB9KSk7XG4gIH1cblxuICBnZXQgbGFiZWxDbGFzcygpIHtcbiAgICByZXR1cm4gY24oXG4gICAgICAndGV4dC1zbScsXG4gICAgICB0aGlzLnN0YXR1cyA9PT0gJ2FjdGl2ZScgJiYgJ2ZvbnQtbWVkaXVtIHRleHQtZm9yZWdyb3VuZCcsXG4gICAgICB0aGlzLnN0YXR1cyA9PT0gJ2RvbmUnICYmICd0ZXh0LWZvcmVncm91bmQnLFxuICAgICAgdGhpcy5zdGF0dXMgPT09ICdwZW5kaW5nJyAmJiAndGV4dC1tdXRlZC1mb3JlZ3JvdW5kJyxcbiAgICAgIHRoaXMuc3RhdHVzID09PSAnc2tpcHBlZCcgJiYgJ3RleHQtbXV0ZWQtZm9yZWdyb3VuZCBsaW5lLXRocm91Z2gnXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -17,15 +17,11 @@ export class PopoverContentComponent {
|
|
|
17
17
|
>
|
|
18
18
|
<ng-content></ng-content>
|
|
19
19
|
</div>
|
|
20
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
20
|
+
`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
21
21
|
}
|
|
22
22
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PopoverContentComponent, decorators: [{
|
|
23
23
|
type: Component,
|
|
24
|
-
args: [{
|
|
25
|
-
selector: 'tolle-popover-content',
|
|
26
|
-
standalone: true,
|
|
27
|
-
imports: [CommonModule],
|
|
28
|
-
template: `
|
|
24
|
+
args: [{ selector: 'tolle-popover-content', standalone: true, imports: [CommonModule], template: `
|
|
29
25
|
<div
|
|
30
26
|
[class]="cn(
|
|
31
27
|
'z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none',
|
|
@@ -36,9 +32,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
36
32
|
>
|
|
37
33
|
<ng-content></ng-content>
|
|
38
34
|
</div>
|
|
39
|
-
|
|
40
|
-
}]
|
|
35
|
+
`, styles: [":host{display:block}\n"] }]
|
|
41
36
|
}], propDecorators: { class: [{
|
|
42
37
|
type: Input
|
|
43
38
|
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvcG9wb3Zlci1jb250ZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFvQmhDLE1BQU0sT0FBTyx1QkFBdUI7SUFDekIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNWLEVBQUUsR0FBRyxFQUFFLENBQUM7d0dBRlAsdUJBQXVCOzRGQUF2Qix1QkFBdUIsNkdBYnhCOzs7Ozs7Ozs7OztHQVdULCtGQVpTLFlBQVk7OzRGQWNYLHVCQUF1QjtrQkFsQm5DLFNBQVM7K0JBQ0UsdUJBQXVCLGNBRXJCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiOzs7Ozs7Ozs7OztHQVdUOzhCQUdRLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXBvcG92ZXItY29udGVudCcsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJjbihcbiAgICAgICAgJ3otNTAgdy03MiByb3VuZGVkLW1kIGJvcmRlciBiZy1wb3BvdmVyIHAtNCB0ZXh0LXBvcG92ZXItZm9yZWdyb3VuZCBzaGFkb3ctbWQgb3V0bGluZS1ub25lJyxcbiAgICAgICAgJ2FuaW1hdGUtaW4gZmFkZS1pbiB6b29tLWluLTk1IGR1cmF0aW9uLTIwMCcsXG4gICAgICAgIGNsYXNzXG4gICAgICApXCJcbiAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBQb3BvdmVyQ29udGVudENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG4gIHByb3RlY3RlZCBjbiA9IGNuO1xufVxuIl19
|
|
@@ -12,10 +12,14 @@ export class PopoverComponent {
|
|
|
12
12
|
isOpen = false;
|
|
13
13
|
cleanup;
|
|
14
14
|
_outsideClickHandler = (event) => {
|
|
15
|
-
if (!this.triggerEl
|
|
15
|
+
if (!this.triggerEl?.nativeElement.contains(event.target) && !this.popoverEl?.nativeElement.contains(event.target)) {
|
|
16
16
|
this.close();
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
|
+
_escapeHandler = (event) => {
|
|
20
|
+
if (event.key === 'Escape')
|
|
21
|
+
this.close();
|
|
22
|
+
};
|
|
19
23
|
toggle() {
|
|
20
24
|
this.isOpen ? this.close() : this.open();
|
|
21
25
|
}
|
|
@@ -24,7 +28,8 @@ export class PopoverComponent {
|
|
|
24
28
|
this.onOpen.emit();
|
|
25
29
|
setTimeout(() => {
|
|
26
30
|
this.updatePosition();
|
|
27
|
-
document.addEventListener('
|
|
31
|
+
document.addEventListener('pointerdown', this._outsideClickHandler, true);
|
|
32
|
+
document.addEventListener('keydown', this._escapeHandler, true);
|
|
28
33
|
});
|
|
29
34
|
}
|
|
30
35
|
close() {
|
|
@@ -32,7 +37,8 @@ export class PopoverComponent {
|
|
|
32
37
|
this.onClose.emit();
|
|
33
38
|
if (this.cleanup)
|
|
34
39
|
this.cleanup();
|
|
35
|
-
document.removeEventListener('
|
|
40
|
+
document.removeEventListener('pointerdown', this._outsideClickHandler, true);
|
|
41
|
+
document.removeEventListener('keydown', this._escapeHandler, true);
|
|
36
42
|
}
|
|
37
43
|
updatePosition() {
|
|
38
44
|
if (!this.triggerEl || !this.popoverEl)
|
|
@@ -54,7 +60,8 @@ export class PopoverComponent {
|
|
|
54
60
|
ngOnDestroy() {
|
|
55
61
|
if (this.cleanup)
|
|
56
62
|
this.cleanup();
|
|
57
|
-
document.removeEventListener('
|
|
63
|
+
document.removeEventListener('pointerdown', this._outsideClickHandler, true);
|
|
64
|
+
document.removeEventListener('keydown', this._escapeHandler, true);
|
|
58
65
|
}
|
|
59
66
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
60
67
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PopoverComponent, isStandalone: true, selector: "tolle-popover", inputs: { placement: "placement" }, outputs: { onOpen: "onOpen", onClose: "onClose" }, viewQueries: [{ propertyName: "triggerEl", first: true, predicate: ["trigger"], descendants: true }, { propertyName: "popoverEl", first: true, predicate: ["popover"], descendants: true }], ngImport: i0, template: `
|
|
@@ -70,15 +77,11 @@ export class PopoverComponent {
|
|
|
70
77
|
>
|
|
71
78
|
<ng-content></ng-content>
|
|
72
79
|
</div>
|
|
73
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
80
|
+
`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
74
81
|
}
|
|
75
82
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PopoverComponent, decorators: [{
|
|
76
83
|
type: Component,
|
|
77
|
-
args: [{
|
|
78
|
-
selector: 'tolle-popover',
|
|
79
|
-
standalone: true,
|
|
80
|
-
imports: [CommonModule],
|
|
81
|
-
template: `
|
|
84
|
+
args: [{ selector: 'tolle-popover', standalone: true, imports: [CommonModule], template: `
|
|
82
85
|
<div class="inline-block" #trigger (click)="toggle()">
|
|
83
86
|
<ng-content select="[trigger]"></ng-content>
|
|
84
87
|
</div>
|
|
@@ -91,8 +94,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
91
94
|
>
|
|
92
95
|
<ng-content></ng-content>
|
|
93
96
|
</div>
|
|
94
|
-
`,
|
|
95
|
-
}]
|
|
97
|
+
`, styles: [":host{display:block}\n"] }]
|
|
96
98
|
}], propDecorators: { placement: [{
|
|
97
99
|
type: Input
|
|
98
100
|
}], onOpen: [{
|
|
@@ -106,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
106
108
|
type: ViewChild,
|
|
107
109
|
args: ['popover']
|
|
108
110
|
}] } });
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3BvcG92ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFzQnpHLE1BQU0sT0FBTyxnQkFBZ0I7SUFDbEIsU0FBUyxHQUE0SixRQUFRLENBQUM7SUFDN0ssTUFBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDbEMsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFdkIsU0FBUyxDQUFjO0lBQ3ZCLFNBQVMsQ0FBYztJQUU3QyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ1AsT0FBTyxDQUFjO0lBRXJCLG9CQUFvQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO1FBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ25ILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFTSxjQUFjLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUU7UUFDaEQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVE7WUFBRSxJQUFJLENBQUMsS0FBSyxF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QUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYjs7Ozs7Ozs7Ozs7OztHQWFUOzhCQUdRLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBRWUsU0FBUztzQkFBOUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNFLFNBQVM7c0JBQTlCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNvbXB1dGVQb3NpdGlvbiwgZmxpcCwgc2hpZnQsIG9mZnNldCwgYXV0b1VwZGF0ZSB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXBvcG92ZXInLFxuICBzdHlsZXM6IFsnOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgfSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLWJsb2NrXCIgI3RyaWdnZXIgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdHJpZ2dlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImlzT3BlblwiXG4gICAgICAjcG9wb3ZlclxuICAgICAgY2xhc3M9XCJmaXhlZCB0b3AtMCBsZWZ0LTAgdy1tYXggei1bOTk5OV1cIlxuICAgICAgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW5cIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgUG9wb3ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBsYWNlbWVudDogJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCcgfCAndG9wLXN0YXJ0JyB8ICd0b3AtZW5kJyB8ICdib3R0b20tc3RhcnQnIHwgJ2JvdHRvbS1lbmQnIHwgJ2xlZnQtc3RhcnQnIHwgJ2xlZnQtZW5kJyB8ICdyaWdodC1zdGFydCcgfCAncmlnaHQtZW5kJyA9ICdib3R0b20nO1xuICBAT3V0cHV0KCkgb25PcGVuID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgb25DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKCd0cmlnZ2VyJykgdHJpZ2dlckVsITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgncG9wb3ZlcicpIHBvcG92ZXJFbCE6IEVsZW1lbnRSZWY7XG5cbiAgaXNPcGVuID0gZmFsc2U7XG4gIHByaXZhdGUgY2xlYW51cD86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfb3V0c2lkZUNsaWNrSGFuZGxlciA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgIGlmICghdGhpcy50cmlnZ2VyRWw/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJiAhdGhpcy5wb3BvdmVyRWw/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9lc2NhcGVIYW5kbGVyID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHRoaXMuY2xvc2UoKTtcbiAgfTtcblxuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5pc09wZW4gPyB0aGlzLmNsb3NlKCkgOiB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgIHRoaXMub25PcGVuLmVtaXQoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgdGhpcy5fb3V0c2lkZUNsaWNrSGFuZGxlciwgdHJ1ZSk7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fZXNjYXBlSGFuZGxlciwgdHJ1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub25DbG9zZS5lbWl0KCk7XG4gICAgaWYgKHRoaXMuY2xlYW51cCkgdGhpcy5jbGVhbnVwKCk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCB0aGlzLl9vdXRzaWRlQ2xpY2tIYW5kbGVyLCB0cnVlKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fZXNjYXBlSGFuZGxlciwgdHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVBvc2l0aW9uKCkge1xuICAgIGlmICghdGhpcy50cmlnZ2VyRWwgfHwgIXRoaXMucG9wb3ZlckVsKSByZXR1cm47XG5cbiAgICB0aGlzLmNsZWFudXAgPSBhdXRvVXBkYXRlKFxuICAgICAgdGhpcy50cmlnZ2VyRWwubmF0aXZlRWxlbWVudCxcbiAgICAgIHRoaXMucG9wb3ZlckVsLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbXB1dGVQb3NpdGlvbih0aGlzLnRyaWdnZXJFbC5uYXRpdmVFbGVtZW50LCB0aGlzLnBvcG92ZXJFbC5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCxcbiAgICAgICAgICBzdHJhdGVneTogJ2ZpeGVkJyxcbiAgICAgICAgICBtaWRkbGV3YXJlOiBbb2Zmc2V0KDgpLCBmbGlwKCksIHNoaWZ0KHsgcGFkZGluZzogOCB9KV0sXG4gICAgICAgIH0pLnRoZW4oKHsgeCwgeSB9KSA9PiB7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnBvcG92ZXJFbC5uYXRpdmVFbGVtZW50LnN0eWxlLCB7XG4gICAgICAgICAgICBsZWZ0OiBgJHt4fXB4YCxcbiAgICAgICAgICAgIHRvcDogYCR7eX1weGAsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiAndmlzaWJsZScsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5jbGVhbnVwKSB0aGlzLmNsZWFudXAoKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIHRoaXMuX291dHNpZGVDbGlja0hhbmRsZXIsIHRydWUpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9lc2NhcGVIYW5kbGVyLCB0cnVlKTtcbiAgfVxufVxuIl19
|
|
@@ -25,15 +25,11 @@ export class ProgressComponent {
|
|
|
25
25
|
[style.transform]="'translateX(-' + (100 - clampedValue) + '%)'"
|
|
26
26
|
></div>
|
|
27
27
|
</div>
|
|
28
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
28
|
+
`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
29
29
|
}
|
|
30
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProgressComponent, decorators: [{
|
|
31
31
|
type: Component,
|
|
32
|
-
args: [{
|
|
33
|
-
selector: 'tolle-progress',
|
|
34
|
-
standalone: true,
|
|
35
|
-
imports: [CommonModule],
|
|
36
|
-
template: `
|
|
32
|
+
args: [{ selector: 'tolle-progress', standalone: true, imports: [CommonModule], template: `
|
|
37
33
|
<div
|
|
38
34
|
[class]="computedClass"
|
|
39
35
|
role="progressbar"
|
|
@@ -46,11 +42,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
46
42
|
[style.transform]="'translateX(-' + (100 - clampedValue) + '%)'"
|
|
47
43
|
></div>
|
|
48
44
|
</div>
|
|
49
|
-
|
|
50
|
-
}]
|
|
45
|
+
`, styles: [":host{display:block}\n"] }]
|
|
51
46
|
}], propDecorators: { value: [{
|
|
52
47
|
type: Input
|
|
53
48
|
}], class: [{
|
|
54
49
|
type: Input
|
|
55
50
|
}] } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9wcm9ncmVzcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBc0JoQyxNQUFNLE9BQU8saUJBQWlCO0lBQ2pCLEtBQUssR0FBa0IsQ0FBQyxDQUFDO0lBQ3pCLEtBQUssR0FBVyxFQUFFLENBQUM7SUFFNUIsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sRUFBRSxDQUNMLGdFQUFnRSxFQUNoRSxJQUFJLENBQUMsS0FBSyxDQUNiLENBQUM7SUFDTixDQUFDO3dHQWJRLGlCQUFpQjs0RkFBakIsaUJBQWlCLHNIQWZoQjs7Ozs7Ozs7Ozs7OztHQWFYLCtGQWRXLFlBQVk7OzRGQWdCYixpQkFBaUI7a0JBcEI3QixTQUFTOytCQUNJLGdCQUFnQixjQUVkLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiOzs7Ozs7Ozs7Ozs7O0dBYVg7OEJBR1UsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RvbGxlLXByb2dyZXNzJyxcbiAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgW2NsYXNzXT1cImNvbXB1dGVkQ2xhc3NcIlxuICAgICAgcm9sZT1cInByb2dyZXNzYmFyXCJcbiAgICAgIFthdHRyLmFyaWEtdmFsdWVtaW5dPVwiMFwiXG4gICAgICBbYXR0ci5hcmlhLXZhbHVlbWF4XT1cIjEwMFwiXG4gICAgICBbYXR0ci5hcmlhLXZhbHVlbm93XT1cImNsYW1wZWRWYWx1ZVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImgtZnVsbCB3LWZ1bGwgZmxleC0xIGJnLXByaW1hcnkgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIGVhc2UtaW4tb3V0XCJcbiAgICAgICAgW3N0eWxlLnRyYW5zZm9ybV09XCIndHJhbnNsYXRlWCgtJyArICgxMDAgLSBjbGFtcGVkVmFsdWUpICsgJyUpJ1wiXG4gICAgICA+PC9kaXY+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHZhbHVlOiBudW1iZXIgfCBudWxsID0gMDtcbiAgICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG5cbiAgICBnZXQgY2xhbXBlZFZhbHVlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBNYXRoLm1pbigxMDAsIE1hdGgubWF4KDAsIHRoaXMudmFsdWUgPz8gMCkpO1xuICAgIH1cblxuICAgIGdldCBjb21wdXRlZENsYXNzKCkge1xuICAgICAgICByZXR1cm4gY24oXG4gICAgICAgICAgICBcInJlbGF0aXZlIGgtMiB3LWZ1bGwgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtZnVsbCBiZy1wcmltYXJ5LzIwXCIsXG4gICAgICAgICAgICB0aGlzLmNsYXNzXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
|