valtech-components 2.0.529 → 2.0.531
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/components/molecules/docs-api-table/docs-api-table.component.mjs +218 -0
- package/esm2022/lib/components/molecules/docs-api-table/types.mjs +11 -0
- package/esm2022/lib/components/molecules/docs-code-example/docs-code-example.component.mjs +217 -0
- package/esm2022/lib/components/molecules/docs-code-example/types.mjs +2 -0
- package/esm2022/lib/components/molecules/docs-nav-links/docs-nav-links.component.mjs +133 -0
- package/esm2022/lib/components/molecules/docs-nav-links/types.mjs +2 -0
- package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +15 -10
- package/esm2022/lib/components/organisms/docs-sidebar/docs-sidebar.component.mjs +276 -0
- package/esm2022/lib/components/organisms/docs-sidebar/types.mjs +2 -0
- package/esm2022/lib/components/organisms/docs-toc/docs-toc.component.mjs +255 -0
- package/esm2022/lib/components/organisms/docs-toc/types.mjs +2 -0
- package/esm2022/lib/components/organisms/infinite-list/infinite-list.component.mjs +20 -18
- package/esm2022/lib/components/templates/docs-layout/docs-layout.component.mjs +203 -0
- package/esm2022/lib/components/templates/docs-layout/types.mjs +2 -0
- package/esm2022/lib/services/i18n/default-content.mjs +5 -1
- package/esm2022/public-api.mjs +15 -1
- package/fesm2022/valtech-components.mjs +1313 -27
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/docs-api-table/docs-api-table.component.d.ts +41 -0
- package/lib/components/molecules/docs-api-table/types.d.ts +62 -0
- package/lib/components/molecules/docs-code-example/docs-code-example.component.d.ts +35 -0
- package/lib/components/molecules/docs-code-example/types.d.ts +63 -0
- package/lib/components/molecules/docs-nav-links/docs-nav-links.component.d.ts +29 -0
- package/lib/components/molecules/docs-nav-links/types.d.ts +31 -0
- package/lib/components/organisms/comment-section/comment-section.component.d.ts +2 -0
- package/lib/components/organisms/docs-sidebar/docs-sidebar.component.d.ts +51 -0
- package/lib/components/organisms/docs-sidebar/types.d.ts +93 -0
- package/lib/components/organisms/docs-toc/docs-toc.component.d.ts +58 -0
- package/lib/components/organisms/docs-toc/types.d.ts +62 -0
- package/lib/components/organisms/infinite-list/infinite-list.component.d.ts +2 -0
- package/lib/components/templates/docs-layout/docs-layout.component.d.ts +41 -0
- package/lib/components/templates/docs-layout/types.d.ts +39 -0
- package/package.json +1 -1
- package/public-api.d.ts +12 -0
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
3
|
+
import { NavigationEnd } from '@angular/router';
|
|
4
|
+
import { IonIcon } from '@ionic/angular/standalone';
|
|
5
|
+
import { addIcons } from 'ionicons';
|
|
6
|
+
import { chevronDownOutline, chevronForwardOutline } from 'ionicons/icons';
|
|
7
|
+
import { filter } from 'rxjs/operators';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/router";
|
|
10
|
+
addIcons({ chevronDownOutline, chevronForwardOutline });
|
|
11
|
+
/**
|
|
12
|
+
* val-docs-sidebar
|
|
13
|
+
*
|
|
14
|
+
* A hierarchical navigation sidebar for documentation sites.
|
|
15
|
+
* Supports collapsible sections, active route highlighting, and badges.
|
|
16
|
+
*
|
|
17
|
+
* @example Basic usage
|
|
18
|
+
* ```html
|
|
19
|
+
* <val-docs-sidebar
|
|
20
|
+
* [props]="{
|
|
21
|
+
* logo: { src: '/assets/logo.svg', alt: 'Docs', title: 'DOCS' },
|
|
22
|
+
* sections: [
|
|
23
|
+
* { title: 'Getting Started', route: ['/docs', 'getting-started'] },
|
|
24
|
+
* {
|
|
25
|
+
* title: 'Components',
|
|
26
|
+
* expanded: true,
|
|
27
|
+
* children: [
|
|
28
|
+
* { label: 'Button', route: ['/docs', 'components', 'button'] },
|
|
29
|
+
* { label: 'Card', route: ['/docs', 'components', 'card'], badge: 'New' }
|
|
30
|
+
* ]
|
|
31
|
+
* }
|
|
32
|
+
* ]
|
|
33
|
+
* }"
|
|
34
|
+
* (navigate)="onNavigate($event)"
|
|
35
|
+
* ></val-docs-sidebar>
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export class DocsSidebarComponent {
|
|
39
|
+
constructor(router) {
|
|
40
|
+
this.router = router;
|
|
41
|
+
this.props = { sections: [] };
|
|
42
|
+
this.navigate = new EventEmitter();
|
|
43
|
+
this.expandedSections = {};
|
|
44
|
+
this.currentRoute = [];
|
|
45
|
+
}
|
|
46
|
+
ngOnInit() {
|
|
47
|
+
this.initializeExpandedSections();
|
|
48
|
+
this.updateCurrentRoute();
|
|
49
|
+
// Listen for route changes
|
|
50
|
+
this.router.events
|
|
51
|
+
.pipe(filter(event => event instanceof NavigationEnd))
|
|
52
|
+
.subscribe(() => {
|
|
53
|
+
this.updateCurrentRoute();
|
|
54
|
+
this.autoExpandActiveSection();
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
ngOnChanges(changes) {
|
|
58
|
+
if (changes['props']) {
|
|
59
|
+
this.initializeExpandedSections();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
initializeExpandedSections() {
|
|
63
|
+
this.props.sections.forEach(section => {
|
|
64
|
+
if (this.expandedSections[section.title] === undefined) {
|
|
65
|
+
this.expandedSections[section.title] = section.expanded ?? false;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
updateCurrentRoute() {
|
|
70
|
+
this.currentRoute = this.router.url.split('/').filter(Boolean);
|
|
71
|
+
// Use activeRoute from props if provided
|
|
72
|
+
if (this.props.activeRoute) {
|
|
73
|
+
this.currentRoute = this.props.activeRoute;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
autoExpandActiveSection() {
|
|
77
|
+
this.props.sections.forEach(section => {
|
|
78
|
+
if (section.children?.some(link => this.isLinkActive(link))) {
|
|
79
|
+
this.expandedSections[section.title] = true;
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
onSectionClick(section) {
|
|
84
|
+
if (section.route) {
|
|
85
|
+
this.onNavigate(section.route);
|
|
86
|
+
}
|
|
87
|
+
else if (section.children?.length) {
|
|
88
|
+
this.expandedSections[section.title] = !this.expandedSections[section.title];
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
onNavigate(route) {
|
|
92
|
+
this.navigate.emit(route);
|
|
93
|
+
this.router.navigate(route);
|
|
94
|
+
}
|
|
95
|
+
isSectionActive(section) {
|
|
96
|
+
if (section.route) {
|
|
97
|
+
return this.routesMatch(section.route, this.currentRoute);
|
|
98
|
+
}
|
|
99
|
+
return section.children?.some(link => this.isLinkActive(link)) ?? false;
|
|
100
|
+
}
|
|
101
|
+
isLinkActive(link) {
|
|
102
|
+
return this.routesMatch(link.route, this.currentRoute);
|
|
103
|
+
}
|
|
104
|
+
routesMatch(route, current) {
|
|
105
|
+
const routePath = route.join('/').replace(/^\//, '');
|
|
106
|
+
const currentPath = current.join('/');
|
|
107
|
+
return currentPath === routePath || currentPath.startsWith(routePath + '/');
|
|
108
|
+
}
|
|
109
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DocsSidebarComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DocsSidebarComponent, isStandalone: true, selector: "val-docs-sidebar", inputs: { props: "props" }, outputs: { navigate: "navigate" }, usesOnChanges: true, ngImport: i0, template: `
|
|
111
|
+
<nav
|
|
112
|
+
class="docs-sidebar"
|
|
113
|
+
[class]="props.cssClass"
|
|
114
|
+
[style.background]="props.backgroundColor"
|
|
115
|
+
>
|
|
116
|
+
<!-- Logo -->
|
|
117
|
+
@if (props.logo) {
|
|
118
|
+
<div
|
|
119
|
+
class="docs-sidebar__logo"
|
|
120
|
+
[class.docs-sidebar__logo--clickable]="props.logo.route"
|
|
121
|
+
(click)="props.logo.route ? onNavigate(props.logo.route) : null"
|
|
122
|
+
>
|
|
123
|
+
<img
|
|
124
|
+
[src]="props.logo.src"
|
|
125
|
+
[alt]="props.logo.alt"
|
|
126
|
+
[style.height]="props.logo.height || '32px'"
|
|
127
|
+
/>
|
|
128
|
+
@if (props.logo.title) {
|
|
129
|
+
<span class="docs-sidebar__logo-title">{{ props.logo.title }}</span>
|
|
130
|
+
}
|
|
131
|
+
</div>
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
<!-- Navigation sections -->
|
|
135
|
+
<div class="docs-sidebar__nav">
|
|
136
|
+
@for (section of props.sections; track section.title) {
|
|
137
|
+
<div class="docs-sidebar__section">
|
|
138
|
+
<!-- Section header -->
|
|
139
|
+
<div
|
|
140
|
+
class="docs-sidebar__section-header"
|
|
141
|
+
[class.docs-sidebar__section-header--active]="isSectionActive(section)"
|
|
142
|
+
[class.docs-sidebar__section-header--expanded]="expandedSections[section.title]"
|
|
143
|
+
[class.docs-sidebar__section-header--clickable]="section.route || section.children?.length"
|
|
144
|
+
(click)="onSectionClick(section)"
|
|
145
|
+
>
|
|
146
|
+
@if (section.icon) {
|
|
147
|
+
<ion-icon [name]="section.icon" class="docs-sidebar__section-icon"></ion-icon>
|
|
148
|
+
}
|
|
149
|
+
<span class="docs-sidebar__section-title">{{ section.title }}</span>
|
|
150
|
+
@if (section.badge) {
|
|
151
|
+
<span class="docs-sidebar__badge docs-sidebar__badge--section">{{ section.badge }}</span>
|
|
152
|
+
}
|
|
153
|
+
@if (section.children?.length) {
|
|
154
|
+
<ion-icon
|
|
155
|
+
class="docs-sidebar__chevron"
|
|
156
|
+
[name]="expandedSections[section.title] ? 'chevron-down-outline' : 'chevron-forward-outline'"
|
|
157
|
+
></ion-icon>
|
|
158
|
+
}
|
|
159
|
+
</div>
|
|
160
|
+
|
|
161
|
+
<!-- Section children -->
|
|
162
|
+
@if (section.children?.length && expandedSections[section.title]) {
|
|
163
|
+
<div class="docs-sidebar__children">
|
|
164
|
+
@for (link of section.children; track link.label) {
|
|
165
|
+
<div
|
|
166
|
+
class="docs-sidebar__link"
|
|
167
|
+
[class.docs-sidebar__link--active]="isLinkActive(link)"
|
|
168
|
+
(click)="onNavigate(link.route)"
|
|
169
|
+
>
|
|
170
|
+
<span class="docs-sidebar__link-label">{{ link.label }}</span>
|
|
171
|
+
@if (link.badge) {
|
|
172
|
+
<span
|
|
173
|
+
class="docs-sidebar__badge"
|
|
174
|
+
[class.docs-sidebar__badge--primary]="link.badgeColor === 'primary'"
|
|
175
|
+
[class.docs-sidebar__badge--success]="link.badgeColor === 'success'"
|
|
176
|
+
[class.docs-sidebar__badge--warning]="link.badgeColor === 'warning'"
|
|
177
|
+
[class.docs-sidebar__badge--danger]="link.badgeColor === 'danger'"
|
|
178
|
+
>{{ link.badge }}</span>
|
|
179
|
+
}
|
|
180
|
+
</div>
|
|
181
|
+
}
|
|
182
|
+
</div>
|
|
183
|
+
}
|
|
184
|
+
</div>
|
|
185
|
+
}
|
|
186
|
+
</div>
|
|
187
|
+
</nav>
|
|
188
|
+
`, isInline: true, styles: [".docs-sidebar{--sidebar-text-color: var(--ion-text-color, #1a1a1a);--sidebar-text-secondary: var(--ion-color-medium, #666);--sidebar-active-color: var(--ion-color-primary, #3880ff);--sidebar-active-bg: var(--ion-color-primary-tint, rgba(56, 128, 255, .1));--sidebar-hover-bg: var(--ion-color-light, #f4f5f8);--sidebar-border-color: var(--ion-border-color, #e0e0e0);font-family:var(--ion-font-family, system-ui, sans-serif)}.docs-sidebar__logo{display:flex;align-items:center;gap:.75rem;padding:1rem 0;margin-bottom:1rem;border-bottom:1px solid var(--sidebar-border-color)}.docs-sidebar__logo--clickable{cursor:pointer;transition:opacity .2s ease}.docs-sidebar__logo--clickable:hover{opacity:.8}.docs-sidebar__logo img{height:32px;width:auto}.docs-sidebar__logo-title{font-size:1.25rem;font-weight:600;color:var(--sidebar-text-color);letter-spacing:.5px}.docs-sidebar__nav{display:flex;flex-direction:column;gap:.25rem}.docs-sidebar__section{margin-bottom:.25rem}.docs-sidebar__section-header{display:flex;align-items:center;gap:.5rem;padding:.625rem .75rem;border-radius:6px;font-size:.875rem;font-weight:600;color:var(--sidebar-text-color);transition:all .15s ease}.docs-sidebar__section-header--clickable{cursor:pointer}.docs-sidebar__section-header--clickable:hover{background:var(--sidebar-hover-bg)}.docs-sidebar__section-header--active{color:var(--sidebar-active-color)}.docs-sidebar__section-header--expanded .docs-sidebar__chevron{transform:rotate(0)}.docs-sidebar__section-icon{font-size:1.125rem;color:var(--sidebar-text-secondary)}.docs-sidebar__section-title{flex:1}.docs-sidebar__chevron{font-size:.875rem;color:var(--sidebar-text-secondary);transition:transform .2s ease}.docs-sidebar__children{padding-left:1rem;margin-top:.25rem;border-left:1px solid var(--sidebar-border-color);margin-left:.75rem}.docs-sidebar__link{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:6px;font-size:.8125rem;color:var(--sidebar-text-secondary);cursor:pointer;transition:all .15s ease}.docs-sidebar__link:hover{background:var(--sidebar-hover-bg);color:var(--sidebar-text-color)}.docs-sidebar__link--active{background:var(--sidebar-active-bg);color:var(--sidebar-active-color);font-weight:500}.docs-sidebar__link--active:hover{background:var(--sidebar-active-bg);color:var(--sidebar-active-color)}.docs-sidebar__link-label{flex:1}.docs-sidebar__badge{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:10px;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:var(--ion-color-primary-tint, rgba(56, 128, 255, .15));color:var(--ion-color-primary, #3880ff)}.docs-sidebar__badge--section{margin-left:auto}.docs-sidebar__badge--primary{background:var(--ion-color-primary-tint, rgba(56, 128, 255, .15));color:var(--ion-color-primary, #3880ff)}.docs-sidebar__badge--success{background:var(--ion-color-success-tint, rgba(45, 211, 111, .15));color:var(--ion-color-success, #2dd36f)}.docs-sidebar__badge--warning{background:var(--ion-color-warning-tint, rgba(255, 196, 9, .15));color:var(--ion-color-warning-shade, #e0ac08)}.docs-sidebar__badge--danger{background:var(--ion-color-danger-tint, rgba(235, 68, 90, .15));color:var(--ion-color-danger, #eb445a)}:host-context(.dark) .docs-sidebar,:host-context([color-scheme=dark]) .docs-sidebar{--sidebar-text-color: #f4f5f8;--sidebar-text-secondary: #a0a0a0;--sidebar-hover-bg: rgba(255, 255, 255, .05);--sidebar-border-color: #3a3a3a}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
189
|
+
}
|
|
190
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DocsSidebarComponent, decorators: [{
|
|
191
|
+
type: Component,
|
|
192
|
+
args: [{ selector: 'val-docs-sidebar', standalone: true, imports: [CommonModule, IonIcon], template: `
|
|
193
|
+
<nav
|
|
194
|
+
class="docs-sidebar"
|
|
195
|
+
[class]="props.cssClass"
|
|
196
|
+
[style.background]="props.backgroundColor"
|
|
197
|
+
>
|
|
198
|
+
<!-- Logo -->
|
|
199
|
+
@if (props.logo) {
|
|
200
|
+
<div
|
|
201
|
+
class="docs-sidebar__logo"
|
|
202
|
+
[class.docs-sidebar__logo--clickable]="props.logo.route"
|
|
203
|
+
(click)="props.logo.route ? onNavigate(props.logo.route) : null"
|
|
204
|
+
>
|
|
205
|
+
<img
|
|
206
|
+
[src]="props.logo.src"
|
|
207
|
+
[alt]="props.logo.alt"
|
|
208
|
+
[style.height]="props.logo.height || '32px'"
|
|
209
|
+
/>
|
|
210
|
+
@if (props.logo.title) {
|
|
211
|
+
<span class="docs-sidebar__logo-title">{{ props.logo.title }}</span>
|
|
212
|
+
}
|
|
213
|
+
</div>
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
<!-- Navigation sections -->
|
|
217
|
+
<div class="docs-sidebar__nav">
|
|
218
|
+
@for (section of props.sections; track section.title) {
|
|
219
|
+
<div class="docs-sidebar__section">
|
|
220
|
+
<!-- Section header -->
|
|
221
|
+
<div
|
|
222
|
+
class="docs-sidebar__section-header"
|
|
223
|
+
[class.docs-sidebar__section-header--active]="isSectionActive(section)"
|
|
224
|
+
[class.docs-sidebar__section-header--expanded]="expandedSections[section.title]"
|
|
225
|
+
[class.docs-sidebar__section-header--clickable]="section.route || section.children?.length"
|
|
226
|
+
(click)="onSectionClick(section)"
|
|
227
|
+
>
|
|
228
|
+
@if (section.icon) {
|
|
229
|
+
<ion-icon [name]="section.icon" class="docs-sidebar__section-icon"></ion-icon>
|
|
230
|
+
}
|
|
231
|
+
<span class="docs-sidebar__section-title">{{ section.title }}</span>
|
|
232
|
+
@if (section.badge) {
|
|
233
|
+
<span class="docs-sidebar__badge docs-sidebar__badge--section">{{ section.badge }}</span>
|
|
234
|
+
}
|
|
235
|
+
@if (section.children?.length) {
|
|
236
|
+
<ion-icon
|
|
237
|
+
class="docs-sidebar__chevron"
|
|
238
|
+
[name]="expandedSections[section.title] ? 'chevron-down-outline' : 'chevron-forward-outline'"
|
|
239
|
+
></ion-icon>
|
|
240
|
+
}
|
|
241
|
+
</div>
|
|
242
|
+
|
|
243
|
+
<!-- Section children -->
|
|
244
|
+
@if (section.children?.length && expandedSections[section.title]) {
|
|
245
|
+
<div class="docs-sidebar__children">
|
|
246
|
+
@for (link of section.children; track link.label) {
|
|
247
|
+
<div
|
|
248
|
+
class="docs-sidebar__link"
|
|
249
|
+
[class.docs-sidebar__link--active]="isLinkActive(link)"
|
|
250
|
+
(click)="onNavigate(link.route)"
|
|
251
|
+
>
|
|
252
|
+
<span class="docs-sidebar__link-label">{{ link.label }}</span>
|
|
253
|
+
@if (link.badge) {
|
|
254
|
+
<span
|
|
255
|
+
class="docs-sidebar__badge"
|
|
256
|
+
[class.docs-sidebar__badge--primary]="link.badgeColor === 'primary'"
|
|
257
|
+
[class.docs-sidebar__badge--success]="link.badgeColor === 'success'"
|
|
258
|
+
[class.docs-sidebar__badge--warning]="link.badgeColor === 'warning'"
|
|
259
|
+
[class.docs-sidebar__badge--danger]="link.badgeColor === 'danger'"
|
|
260
|
+
>{{ link.badge }}</span>
|
|
261
|
+
}
|
|
262
|
+
</div>
|
|
263
|
+
}
|
|
264
|
+
</div>
|
|
265
|
+
}
|
|
266
|
+
</div>
|
|
267
|
+
}
|
|
268
|
+
</div>
|
|
269
|
+
</nav>
|
|
270
|
+
`, styles: [".docs-sidebar{--sidebar-text-color: var(--ion-text-color, #1a1a1a);--sidebar-text-secondary: var(--ion-color-medium, #666);--sidebar-active-color: var(--ion-color-primary, #3880ff);--sidebar-active-bg: var(--ion-color-primary-tint, rgba(56, 128, 255, .1));--sidebar-hover-bg: var(--ion-color-light, #f4f5f8);--sidebar-border-color: var(--ion-border-color, #e0e0e0);font-family:var(--ion-font-family, system-ui, sans-serif)}.docs-sidebar__logo{display:flex;align-items:center;gap:.75rem;padding:1rem 0;margin-bottom:1rem;border-bottom:1px solid var(--sidebar-border-color)}.docs-sidebar__logo--clickable{cursor:pointer;transition:opacity .2s ease}.docs-sidebar__logo--clickable:hover{opacity:.8}.docs-sidebar__logo img{height:32px;width:auto}.docs-sidebar__logo-title{font-size:1.25rem;font-weight:600;color:var(--sidebar-text-color);letter-spacing:.5px}.docs-sidebar__nav{display:flex;flex-direction:column;gap:.25rem}.docs-sidebar__section{margin-bottom:.25rem}.docs-sidebar__section-header{display:flex;align-items:center;gap:.5rem;padding:.625rem .75rem;border-radius:6px;font-size:.875rem;font-weight:600;color:var(--sidebar-text-color);transition:all .15s ease}.docs-sidebar__section-header--clickable{cursor:pointer}.docs-sidebar__section-header--clickable:hover{background:var(--sidebar-hover-bg)}.docs-sidebar__section-header--active{color:var(--sidebar-active-color)}.docs-sidebar__section-header--expanded .docs-sidebar__chevron{transform:rotate(0)}.docs-sidebar__section-icon{font-size:1.125rem;color:var(--sidebar-text-secondary)}.docs-sidebar__section-title{flex:1}.docs-sidebar__chevron{font-size:.875rem;color:var(--sidebar-text-secondary);transition:transform .2s ease}.docs-sidebar__children{padding-left:1rem;margin-top:.25rem;border-left:1px solid var(--sidebar-border-color);margin-left:.75rem}.docs-sidebar__link{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:6px;font-size:.8125rem;color:var(--sidebar-text-secondary);cursor:pointer;transition:all .15s ease}.docs-sidebar__link:hover{background:var(--sidebar-hover-bg);color:var(--sidebar-text-color)}.docs-sidebar__link--active{background:var(--sidebar-active-bg);color:var(--sidebar-active-color);font-weight:500}.docs-sidebar__link--active:hover{background:var(--sidebar-active-bg);color:var(--sidebar-active-color)}.docs-sidebar__link-label{flex:1}.docs-sidebar__badge{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:10px;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:var(--ion-color-primary-tint, rgba(56, 128, 255, .15));color:var(--ion-color-primary, #3880ff)}.docs-sidebar__badge--section{margin-left:auto}.docs-sidebar__badge--primary{background:var(--ion-color-primary-tint, rgba(56, 128, 255, .15));color:var(--ion-color-primary, #3880ff)}.docs-sidebar__badge--success{background:var(--ion-color-success-tint, rgba(45, 211, 111, .15));color:var(--ion-color-success, #2dd36f)}.docs-sidebar__badge--warning{background:var(--ion-color-warning-tint, rgba(255, 196, 9, .15));color:var(--ion-color-warning-shade, #e0ac08)}.docs-sidebar__badge--danger{background:var(--ion-color-danger-tint, rgba(235, 68, 90, .15));color:var(--ion-color-danger, #eb445a)}:host-context(.dark) .docs-sidebar,:host-context([color-scheme=dark]) .docs-sidebar{--sidebar-text-color: #f4f5f8;--sidebar-text-secondary: #a0a0a0;--sidebar-hover-bg: rgba(255, 255, 255, .05);--sidebar-border-color: #3a3a3a}\n"] }]
|
|
271
|
+
}], ctorParameters: () => [{ type: i1.Router }], propDecorators: { props: [{
|
|
272
|
+
type: Input
|
|
273
|
+
}], navigate: [{
|
|
274
|
+
type: Output
|
|
275
|
+
}] } });
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy1zaWRlYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZG9jcy1zaWRlYmFyL2RvY3Mtc2lkZWJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUd4QyxRQUFRLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7QUFFeEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBc0ZILE1BQU0sT0FBTyxvQkFBb0I7SUFRL0IsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFQekIsVUFBSyxHQUF3QixFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUU3QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUVsRCxxQkFBZ0IsR0FBNEIsRUFBRSxDQUFDO1FBQ3ZDLGlCQUFZLEdBQWEsRUFBRSxDQUFDO0lBRUMsQ0FBQztJQUV0QyxRQUFRO1FBQ04sSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGtC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QUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUMxRSxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQXFCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQWUsRUFBRSxPQUFpQjtRQUNwRCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDckQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxPQUFPLFdBQVcsS0FBSyxTQUFTLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDOUUsQ0FBQzsrR0FqRlUsb0JBQW9CO21HQUFwQixvQkFBb0IsZ0tBakZyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEVULDQ4R0EvRVMsWUFBWSwrQkFBRSxPQUFPOzs0RkFrRnBCLG9CQUFvQjtrQkFyRmhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsWUFDdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThFVDsyRUFJUSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciwgTmF2aWdhdGlvbkVuZCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25JY29uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGNoZXZyb25Eb3duT3V0bGluZSwgY2hldnJvbkZvcndhcmRPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRG9jc1NpZGViYXJNZXRhZGF0YSwgRG9jc1NpZGViYXJTZWN0aW9uLCBEb2NzU2lkZWJhckxpbmsgfSBmcm9tICcuL3R5cGVzJztcblxuYWRkSWNvbnMoeyBjaGV2cm9uRG93bk91dGxpbmUsIGNoZXZyb25Gb3J3YXJkT3V0bGluZSB9KTtcblxuLyoqXG4gKiB2YWwtZG9jcy1zaWRlYmFyXG4gKlxuICogQSBoaWVyYXJjaGljYWwgbmF2aWdhdGlvbiBzaWRlYmFyIGZvciBkb2N1bWVudGF0aW9uIHNpdGVzLlxuICogU3VwcG9ydHMgY29sbGFwc2libGUgc2VjdGlvbnMsIGFjdGl2ZSByb3V0ZSBoaWdobGlnaHRpbmcsIGFuZCBiYWRnZXMuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2VcbiAqIGBgYGh0bWxcbiAqIDx2YWwtZG9jcy1zaWRlYmFyXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgbG9nbzogeyBzcmM6ICcvYXNzZXRzL2xvZ28uc3ZnJywgYWx0OiAnRG9jcycsIHRpdGxlOiAnRE9DUycgfSxcbiAqICAgICBzZWN0aW9uczogW1xuICogICAgICAgeyB0aXRsZTogJ0dldHRpbmcgU3RhcnRlZCcsIHJvdXRlOiBbJy9kb2NzJywgJ2dldHRpbmctc3RhcnRlZCddIH0sXG4gKiAgICAgICB7XG4gKiAgICAgICAgIHRpdGxlOiAnQ29tcG9uZW50cycsXG4gKiAgICAgICAgIGV4cGFuZGVkOiB0cnVlLFxuICogICAgICAgICBjaGlsZHJlbjogW1xuICogICAgICAgICAgIHsgbGFiZWw6ICdCdXR0b24nLCByb3V0ZTogWycvZG9jcycsICdjb21wb25lbnRzJywgJ2J1dHRvbiddIH0sXG4gKiAgICAgICAgICAgeyBsYWJlbDogJ0NhcmQnLCByb3V0ZTogWycvZG9jcycsICdjb21wb25lbnRzJywgJ2NhcmQnXSwgYmFkZ2U6ICdOZXcnIH1cbiAqICAgICAgICAgXVxuICogICAgICAgfVxuICogICAgIF1cbiAqICAgfVwiXG4gKiAgIChuYXZpZ2F0ZSk9XCJvbk5hdmlnYXRlKCRldmVudClcIlxuICogPjwvdmFsLWRvY3Mtc2lkZWJhcj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZG9jcy1zaWRlYmFyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uSWNvbl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5hdlxuICAgICAgY2xhc3M9XCJkb2NzLXNpZGViYXJcIlxuICAgICAgW2NsYXNzXT1cInByb3BzLmNzc0NsYXNzXCJcbiAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cInByb3BzLmJhY2tncm91bmRDb2xvclwiXG4gICAgPlxuICAgICAgPCEtLSBMb2dvIC0tPlxuICAgICAgQGlmIChwcm9wcy5sb2dvKSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImRvY3Mtc2lkZWJhcl9fbG9nb1wiXG4gICAgICAgICAgW2NsYXNzLmRvY3Mtc2lkZWJhcl9fbG9nby0tY2xpY2thYmxlXT1cInByb3BzLmxvZ28ucm91dGVcIlxuICAgICAgICAgIChjbGljayk9XCJwcm9wcy5sb2dvLnJvdXRlID8gb25OYXZpZ2F0ZShwcm9wcy5sb2dvLnJvdXRlKSA6IG51bGxcIlxuICAgICAgICA+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgW3NyY109XCJwcm9wcy5sb2dvLnNyY1wiXG4gICAgICAgICAgICBbYWx0XT1cInByb3BzLmxvZ28uYWx0XCJcbiAgICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwicHJvcHMubG9nby5oZWlnaHQgfHwgJzMycHgnXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIEBpZiAocHJvcHMubG9nby50aXRsZSkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkb2NzLXNpZGViYXJfX2xvZ28tdGl0bGVcIj57eyBwcm9wcy5sb2dvLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIDwhLS0gTmF2aWdhdGlvbiBzZWN0aW9ucyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJkb2NzLXNpZGViYXJfX25hdlwiPlxuICAgICAgICBAZm9yIChzZWN0aW9uIG9mIHByb3BzLnNlY3Rpb25zOyB0cmFjayBzZWN0aW9uLnRpdGxlKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRvY3Mtc2lkZWJhcl9fc2VjdGlvblwiPlxuICAgICAgICAgICAgPCEtLSBTZWN0aW9uIGhlYWRlciAtLT5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJkb2NzLXNpZGViYXJfX3NlY3Rpb24taGVhZGVyXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmRvY3Mtc2lkZWJhcl9fc2VjdGlvbi1oZWFkZXItLWFjdGl2ZV09XCJpc1NlY3Rpb25BY3RpdmUoc2VjdGlvbilcIlxuICAgICAgICAgICAgICBbY2xhc3MuZG9jcy1zaWRlYmFyX19zZWN0aW9uLWhlYWRlci0tZXhwYW5kZWRdPVwiZXhwYW5kZWRTZWN0aW9uc1tzZWN0aW9uLnRpdGxlXVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5kb2NzLXNpZGViYXJfX3NlY3Rpb24taGVhZGVyLS1jbGlja2FibGVdPVwic2VjdGlvbi5yb3V0ZSB8fCBzZWN0aW9uLmNoaWxkcmVuPy5sZW5ndGhcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWN0aW9uQ2xpY2soc2VjdGlvbilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBAaWYgKHNlY3Rpb24uaWNvbikge1xuICAgICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJzZWN0aW9uLmljb25cIiBjbGFzcz1cImRvY3Mtc2lkZWJhcl9fc2VjdGlvbi1pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRvY3Mtc2lkZWJhcl9fc2VjdGlvbi10aXRsZVwiPnt7IHNlY3Rpb24udGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIEBpZiAoc2VjdGlvbi5iYWRnZSkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZG9jcy1zaWRlYmFyX19iYWRnZSBkb2NzLXNpZGViYXJfX2JhZGdlLS1zZWN0aW9uXCI+e3sgc2VjdGlvbi5iYWRnZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAaWYgKHNlY3Rpb24uY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIDxpb24taWNvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2NzLXNpZGViYXJfX2NoZXZyb25cIlxuICAgICAgICAgICAgICAgICAgW25hbWVdPVwiZXhwYW5kZWRTZWN0aW9uc1tzZWN0aW9uLnRpdGxlXSA/ICdjaGV2cm9uLWRvd24tb3V0bGluZScgOiAnY2hldnJvbi1mb3J3YXJkLW91dGxpbmUnXCJcbiAgICAgICAgICAgICAgICA+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwhLS0gU2VjdGlvbiBjaGlsZHJlbiAtLT5cbiAgICAgICAgICAgIEBpZiAoc2VjdGlvbi5jaGlsZHJlbj8ubGVuZ3RoICYmIGV4cGFuZGVkU2VjdGlvbnNbc2VjdGlvbi50aXRsZV0pIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvY3Mtc2lkZWJhcl9fY2hpbGRyZW5cIj5cbiAgICAgICAgICAgICAgICBAZm9yIChsaW5rIG9mIHNlY3Rpb24uY2hpbGRyZW47IHRyYWNrIGxpbmsubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2NzLXNpZGViYXJfX2xpbmtcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZG9jcy1zaWRlYmFyX19saW5rLS1hY3RpdmVdPVwiaXNMaW5rQWN0aXZlKGxpbmspXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTmF2aWdhdGUobGluay5yb3V0ZSlcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRvY3Mtc2lkZWJhcl9fbGluay1sYWJlbFwiPnt7IGxpbmsubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobGluay5iYWRnZSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvY3Mtc2lkZWJhcl9fYmFkZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvY3Mtc2lkZWJhcl9fYmFkZ2UtLXByaW1hcnldPVwibGluay5iYWRnZUNvbG9yID09PSAncHJpbWFyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvY3Mtc2lkZWJhcl9fYmFkZ2UtLXN1Y2Nlc3NdPVwibGluay5iYWRnZUNvbG9yID09PSAnc3VjY2VzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvY3Mtc2lkZWJhcl9fYmFkZ2UtLXdhcm5pbmddPVwibGluay5iYWRnZUNvbG9yID09PSAnd2FybmluZydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvY3Mtc2lkZWJhcl9fYmFkZ2UtLWRhbmdlcl09XCJsaW5rLmJhZGdlQ29sb3IgPT09ICdkYW5nZXInXCJcbiAgICAgICAgICAgICAgICAgICAgICA+e3sgbGluay5iYWRnZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9uYXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2RvY3Mtc2lkZWJhci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEb2NzU2lkZWJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgcHJvcHM6IERvY3NTaWRlYmFyTWV0YWRhdGEgPSB7IHNlY3Rpb25zOiBbXSB9O1xuXG4gIEBPdXRwdXQoKSBuYXZpZ2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XG5cbiAgZXhwYW5kZWRTZWN0aW9uczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcbiAgcHJpdmF0ZSBjdXJyZW50Um91dGU6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVFeHBhbmRlZFNlY3Rpb25zKCk7XG4gICAgdGhpcy51cGRhdGVDdXJyZW50Um91dGUoKTtcblxuICAgIC8vIExpc3RlbiBmb3Igcm91dGUgY2hhbmdlc1xuICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVDdXJyZW50Um91dGUoKTtcbiAgICAgICAgdGhpcy5hdXRvRXhwYW5kQWN0aXZlU2VjdGlvbigpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUV4cGFuZGVkU2VjdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVFeHBhbmRlZFNlY3Rpb25zKCk6IHZvaWQge1xuICAgIHRoaXMucHJvcHMuc2VjdGlvbnMuZm9yRWFjaChzZWN0aW9uID0+IHtcbiAgICAgIGlmICh0aGlzLmV4cGFuZGVkU2VjdGlvbnNbc2VjdGlvbi50aXRsZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkU2VjdGlvbnNbc2VjdGlvbi50aXRsZV0gPSBzZWN0aW9uLmV4cGFuZGVkID8/IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDdXJyZW50Um91dGUoKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50Um91dGUgPSB0aGlzLnJvdXRlci51cmwuc3BsaXQoJy8nKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgLy8gVXNlIGFjdGl2ZVJvdXRlIGZyb20gcHJvcHMgaWYgcHJvdmlkZWRcbiAgICBpZiAodGhpcy5wcm9wcy5hY3RpdmVSb3V0ZSkge1xuICAgICAgdGhpcy5jdXJyZW50Um91dGUgPSB0aGlzLnByb3BzLmFjdGl2ZVJvdXRlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXV0b0V4cGFuZEFjdGl2ZVNlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5wcm9wcy5zZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgaWYgKHNlY3Rpb24uY2hpbGRyZW4/LnNvbWUobGluayA9PiB0aGlzLmlzTGlua0FjdGl2ZShsaW5rKSkpIHtcbiAgICAgICAgdGhpcy5leHBhbmRlZFNlY3Rpb25zW3NlY3Rpb24udGl0bGVdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG9uU2VjdGlvbkNsaWNrKHNlY3Rpb246IERvY3NTaWRlYmFyU2VjdGlvbik6IHZvaWQge1xuICAgIGlmIChzZWN0aW9uLnJvdXRlKSB7XG4gICAgICB0aGlzLm9uTmF2aWdhdGUoc2VjdGlvbi5yb3V0ZSk7XG4gICAgfSBlbHNlIGlmIChzZWN0aW9uLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZXhwYW5kZWRTZWN0aW9uc1tzZWN0aW9uLnRpdGxlXSA9ICF0aGlzLmV4cGFuZGVkU2VjdGlvbnNbc2VjdGlvbi50aXRsZV07XG4gICAgfVxuICB9XG5cbiAgb25OYXZpZ2F0ZShyb3V0ZTogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLm5hdmlnYXRlLmVtaXQocm91dGUpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHJvdXRlKTtcbiAgfVxuXG4gIGlzU2VjdGlvbkFjdGl2ZShzZWN0aW9uOiBEb2NzU2lkZWJhclNlY3Rpb24pOiBib29sZWFuIHtcbiAgICBpZiAoc2VjdGlvbi5yb3V0ZSkge1xuICAgICAgcmV0dXJuIHRoaXMucm91dGVzTWF0Y2goc2VjdGlvbi5yb3V0ZSwgdGhpcy5jdXJyZW50Um91dGUpO1xuICAgIH1cbiAgICByZXR1cm4gc2VjdGlvbi5jaGlsZHJlbj8uc29tZShsaW5rID0+IHRoaXMuaXNMaW5rQWN0aXZlKGxpbmspKSA/PyBmYWxzZTtcbiAgfVxuXG4gIGlzTGlua0FjdGl2ZShsaW5rOiBEb2NzU2lkZWJhckxpbmspOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXNNYXRjaChsaW5rLnJvdXRlLCB0aGlzLmN1cnJlbnRSb3V0ZSk7XG4gIH1cblxuICBwcml2YXRlIHJvdXRlc01hdGNoKHJvdXRlOiBzdHJpbmdbXSwgY3VycmVudDogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICBjb25zdCByb3V0ZVBhdGggPSByb3V0ZS5qb2luKCcvJykucmVwbGFjZSgvXlxcLy8sICcnKTtcbiAgICBjb25zdCBjdXJyZW50UGF0aCA9IGN1cnJlbnQuam9pbignLycpO1xuICAgIHJldHVybiBjdXJyZW50UGF0aCA9PT0gcm91dGVQYXRoIHx8IGN1cnJlbnRQYXRoLnN0YXJ0c1dpdGgocm91dGVQYXRoICsgJy8nKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2RvY3Mtc2lkZWJhci90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciB0aGUgZG9jcy1zaWRlYmFyIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NzU2lkZWJhck1ldGFkYXRhIHtcbiAgLyoqXG4gICAqIE5hdmlnYXRpb24gc2VjdGlvbnMgdG8gZGlzcGxheS5cbiAgICovXG4gIHNlY3Rpb25zOiBEb2NzU2lkZWJhclNlY3Rpb25bXTtcblxuICAvKipcbiAgICogQ3VycmVudGx5IGFjdGl2ZSByb3V0ZSBmb3IgaGlnaGxpZ2h0aW5nLlxuICAgKi9cbiAgYWN0aXZlUm91dGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTG9nbyBjb25maWd1cmF0aW9uIGZvciB0aGUgc2lkZWJhciBoZWFkZXIuXG4gICAqL1xuICBsb2dvPzogRG9jc1NpZGViYXJMb2dvO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gQ1NTIGNsYXNzLlxuICAgKi9cbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJhY2tncm91bmQgY29sb3Igb3ZlcnJpZGUuXG4gICAqL1xuICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jc1NpZGViYXJMb2dvIHtcbiAgLyoqXG4gICAqIExvZ28gaW1hZ2Ugc291cmNlLlxuICAgKi9cbiAgc3JjOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFsdCB0ZXh0IGZvciBhY2Nlc3NpYmlsaXR5LlxuICAgKi9cbiAgYWx0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHRpdGxlL3RleHQgbmV4dCB0byBsb2dvLlxuICAgKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJvdXRlIHRvIG5hdmlnYXRlIHdoZW4gbG9nbyBpcyBjbGlja2VkLlxuICAgKi9cbiAgcm91dGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTG9nbyBoZWlnaHQgKHdpZHRoIGF1dG8tY2FsY3VsYXRlZCkuXG4gICAqIEBkZWZhdWx0ICczMnB4J1xuICAgKi9cbiAgaGVpZ2h0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY3NTaWRlYmFyU2VjdGlvbiB7XG4gIC8qKlxuICAgKiBTZWN0aW9uIHRpdGxlIGRpc3BsYXllZCBpbiB0aGUgc2lkZWJhci5cbiAgICovXG4gIHRpdGxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJvdXRlIGZvciBkaXJlY3QgbmF2aWdhdGlvbiAoaWYgbm8gY2hpbGRyZW4pLlxuICAgKi9cbiAgcm91dGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ2hpbGQgbGlua3MgdW5kZXIgdGhpcyBzZWN0aW9uLlxuICAgKi9cbiAgY2hpbGRyZW4/OiBEb2NzU2lkZWJhckxpbmtbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgc2VjdGlvbiBpcyBleHBhbmRlZCBieSBkZWZhdWx0LlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZXhwYW5kZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBpY29uIG5hbWUgKElvbmljb25zKS5cbiAgICovXG4gIGljb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJhZGdlIHRleHQgKGUuZy4sIFwiTmV3XCIsIFwiQmV0YVwiKS5cbiAgICovXG4gIGJhZGdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY3NTaWRlYmFyTGluayB7XG4gIC8qKlxuICAgKiBMaW5rIGRpc3BsYXkgdGV4dC5cbiAgICovXG4gIGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJvdXRlIHRvIG5hdmlnYXRlIHRvLlxuICAgKi9cbiAgcm91dGU6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBCYWRnZSB0ZXh0IChlLmcuLCBcIk5ld1wiLCBcIkRlcHJlY2F0ZWRcIikuXG4gICAqL1xuICBiYWRnZT86IHN0cmluZztcblxuICAvKipcbiAgICogQmFkZ2UgY29sb3IgdmFyaWFudC5cbiAgICovXG4gIGJhZGdlQ29sb3I/OiAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdzdWNjZXNzJyB8ICd3YXJuaW5nJyB8ICdkYW5nZXInO1xufVxuIl19
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, Input, Output, EventEmitter, signal, } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* val-docs-toc
|
|
6
|
+
*
|
|
7
|
+
* A table of contents component with scroll spy functionality.
|
|
8
|
+
* Automatically highlights the current section based on scroll position.
|
|
9
|
+
*
|
|
10
|
+
* @example Manual items
|
|
11
|
+
* ```html
|
|
12
|
+
* <val-docs-toc
|
|
13
|
+
* [props]="{
|
|
14
|
+
* title: 'On this page',
|
|
15
|
+
* items: [
|
|
16
|
+
* { id: 'overview', label: 'Overview', level: 1 },
|
|
17
|
+
* { id: 'installation', label: 'Installation', level: 1 },
|
|
18
|
+
* { id: 'npm', label: 'Using npm', level: 2 },
|
|
19
|
+
* { id: 'yarn', label: 'Using yarn', level: 2 }
|
|
20
|
+
* ]
|
|
21
|
+
* }"
|
|
22
|
+
* ></val-docs-toc>
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @example Auto-generated from headings
|
|
26
|
+
* ```html
|
|
27
|
+
* <val-docs-toc
|
|
28
|
+
* [props]="{
|
|
29
|
+
* autoGenerate: true,
|
|
30
|
+
* containerSelector: '.article-content',
|
|
31
|
+
* headingLevels: [2, 3]
|
|
32
|
+
* }"
|
|
33
|
+
* ></val-docs-toc>
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export class DocsTocComponent {
|
|
37
|
+
constructor(ngZone) {
|
|
38
|
+
this.ngZone = ngZone;
|
|
39
|
+
this.props = {};
|
|
40
|
+
this.sectionChange = new EventEmitter();
|
|
41
|
+
// Reactive state
|
|
42
|
+
this.activeId = signal('');
|
|
43
|
+
this.flatItems = signal([]);
|
|
44
|
+
this.observer = null;
|
|
45
|
+
this.headingElements = [];
|
|
46
|
+
}
|
|
47
|
+
ngOnInit() {
|
|
48
|
+
this.updateFlatItems();
|
|
49
|
+
}
|
|
50
|
+
ngAfterViewInit() {
|
|
51
|
+
// Delay to ensure DOM is ready
|
|
52
|
+
setTimeout(() => {
|
|
53
|
+
if (this.props.autoGenerate) {
|
|
54
|
+
this.generateTocFromHeadings();
|
|
55
|
+
}
|
|
56
|
+
this.setupScrollSpy();
|
|
57
|
+
}, 100);
|
|
58
|
+
}
|
|
59
|
+
ngOnChanges(changes) {
|
|
60
|
+
if (changes['props']) {
|
|
61
|
+
this.updateFlatItems();
|
|
62
|
+
if (this.props.autoGenerate) {
|
|
63
|
+
setTimeout(() => this.generateTocFromHeadings(), 100);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
ngOnDestroy() {
|
|
68
|
+
this.destroyScrollSpy();
|
|
69
|
+
}
|
|
70
|
+
updateFlatItems() {
|
|
71
|
+
if (this.props.items) {
|
|
72
|
+
this.flatItems.set(this.flattenItems(this.props.items));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
flattenItems(items) {
|
|
76
|
+
const result = [];
|
|
77
|
+
const flatten = (itemList) => {
|
|
78
|
+
itemList.forEach(item => {
|
|
79
|
+
result.push(item);
|
|
80
|
+
if (item.children?.length) {
|
|
81
|
+
flatten(item.children);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
flatten(items);
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
88
|
+
generateTocFromHeadings() {
|
|
89
|
+
const selector = this.props.containerSelector || '.docs-layout__content';
|
|
90
|
+
const container = document.querySelector(selector);
|
|
91
|
+
if (!container) {
|
|
92
|
+
console.warn(`[docs-toc] Container not found: ${selector}`);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const levels = this.props.headingLevels || [2, 3];
|
|
96
|
+
const headingSelector = levels.map(l => `h${l}`).join(', ');
|
|
97
|
+
const headings = container.querySelectorAll(headingSelector);
|
|
98
|
+
const items = [];
|
|
99
|
+
headings.forEach((heading) => {
|
|
100
|
+
const el = heading;
|
|
101
|
+
// Generate ID if not present
|
|
102
|
+
if (!el.id) {
|
|
103
|
+
el.id = this.generateId(el.textContent || '');
|
|
104
|
+
}
|
|
105
|
+
const level = parseInt(el.tagName[1], 10);
|
|
106
|
+
items.push({
|
|
107
|
+
id: el.id,
|
|
108
|
+
label: el.textContent?.trim() || '',
|
|
109
|
+
level: level - 1, // h2 = level 1, h3 = level 2
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
this.flatItems.set(items);
|
|
113
|
+
// Re-setup scroll spy with new items
|
|
114
|
+
this.setupScrollSpy();
|
|
115
|
+
}
|
|
116
|
+
generateId(text) {
|
|
117
|
+
return text
|
|
118
|
+
.toLowerCase()
|
|
119
|
+
.trim()
|
|
120
|
+
.replace(/[^\w\s-]/g, '')
|
|
121
|
+
.replace(/\s+/g, '-')
|
|
122
|
+
.substring(0, 50);
|
|
123
|
+
}
|
|
124
|
+
setupScrollSpy() {
|
|
125
|
+
this.destroyScrollSpy();
|
|
126
|
+
const items = this.flatItems();
|
|
127
|
+
if (items.length === 0)
|
|
128
|
+
return;
|
|
129
|
+
// Collect heading elements
|
|
130
|
+
this.headingElements = items
|
|
131
|
+
.map(item => document.getElementById(item.id))
|
|
132
|
+
.filter((el) => el !== null);
|
|
133
|
+
if (this.headingElements.length === 0)
|
|
134
|
+
return;
|
|
135
|
+
const offsetTop = this.props.offsetTop ?? 100;
|
|
136
|
+
// Use IntersectionObserver for scroll spy
|
|
137
|
+
this.ngZone.runOutsideAngular(() => {
|
|
138
|
+
this.observer = new IntersectionObserver(entries => {
|
|
139
|
+
// Find the first visible heading
|
|
140
|
+
const visibleEntries = entries
|
|
141
|
+
.filter(entry => entry.isIntersecting)
|
|
142
|
+
.sort((a, b) => a.boundingClientRect.top - b.boundingClientRect.top);
|
|
143
|
+
if (visibleEntries.length > 0) {
|
|
144
|
+
const activeEntry = visibleEntries[0];
|
|
145
|
+
this.ngZone.run(() => {
|
|
146
|
+
this.activeId.set(activeEntry.target.id);
|
|
147
|
+
this.sectionChange.emit(activeEntry.target.id);
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
}, {
|
|
151
|
+
rootMargin: `-${offsetTop}px 0px -70% 0px`,
|
|
152
|
+
threshold: 0,
|
|
153
|
+
});
|
|
154
|
+
this.headingElements.forEach(el => {
|
|
155
|
+
this.observer?.observe(el);
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
destroyScrollSpy() {
|
|
160
|
+
if (this.observer) {
|
|
161
|
+
this.observer.disconnect();
|
|
162
|
+
this.observer = null;
|
|
163
|
+
}
|
|
164
|
+
this.headingElements = [];
|
|
165
|
+
}
|
|
166
|
+
scrollToSection(event, id) {
|
|
167
|
+
event.preventDefault();
|
|
168
|
+
const element = document.getElementById(id);
|
|
169
|
+
if (!element)
|
|
170
|
+
return;
|
|
171
|
+
const offsetTop = this.props.offsetTop ?? 100;
|
|
172
|
+
const top = element.getBoundingClientRect().top + window.scrollY - offsetTop;
|
|
173
|
+
window.scrollTo({
|
|
174
|
+
top,
|
|
175
|
+
behavior: 'smooth',
|
|
176
|
+
});
|
|
177
|
+
// Update active immediately for better UX
|
|
178
|
+
this.activeId.set(id);
|
|
179
|
+
// Update URL hash without jumping
|
|
180
|
+
history.pushState(null, '', `#${id}`);
|
|
181
|
+
}
|
|
182
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DocsTocComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
183
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DocsTocComponent, isStandalone: true, selector: "val-docs-toc", inputs: { props: "props" }, outputs: { sectionChange: "sectionChange" }, usesOnChanges: true, ngImport: i0, template: `
|
|
184
|
+
<nav
|
|
185
|
+
class="docs-toc"
|
|
186
|
+
[class]="props.cssClass"
|
|
187
|
+
role="navigation"
|
|
188
|
+
aria-label="Table of contents"
|
|
189
|
+
>
|
|
190
|
+
@if (!props.hideTitle) {
|
|
191
|
+
<h4 class="docs-toc__title">{{ props.title || 'Contents' }}</h4>
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
<ul class="docs-toc__list">
|
|
195
|
+
@for (item of flatItems(); track item.id) {
|
|
196
|
+
<li
|
|
197
|
+
class="docs-toc__item"
|
|
198
|
+
[class.docs-toc__item--level-1]="item.level === 1"
|
|
199
|
+
[class.docs-toc__item--level-2]="item.level === 2"
|
|
200
|
+
[class.docs-toc__item--level-3]="item.level === 3"
|
|
201
|
+
[class.docs-toc__item--active]="activeId() === item.id"
|
|
202
|
+
>
|
|
203
|
+
<a
|
|
204
|
+
class="docs-toc__link"
|
|
205
|
+
[href]="'#' + item.id"
|
|
206
|
+
(click)="scrollToSection($event, item.id)"
|
|
207
|
+
>
|
|
208
|
+
{{ item.label }}
|
|
209
|
+
</a>
|
|
210
|
+
</li>
|
|
211
|
+
}
|
|
212
|
+
</ul>
|
|
213
|
+
</nav>
|
|
214
|
+
`, isInline: true, styles: [".docs-toc{--toc-text-color: var(--ion-color-medium, #666);--toc-active-color: var(--ion-color-primary, #3880ff);--toc-hover-color: var(--ion-text-color, #1a1a1a);--toc-border-color: var(--ion-border-color, #e0e0e0);font-family:var(--ion-font-family, system-ui, sans-serif)}.docs-toc__title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--toc-text-color);margin:0 0 1rem}.docs-toc__list{list-style:none;margin:0;padding:0;border-left:1px solid var(--toc-border-color)}.docs-toc__item{position:relative;margin:0}.docs-toc__item:before{content:\"\";position:absolute;left:-1px;top:0;bottom:0;width:2px;background:transparent;transition:background .2s ease}.docs-toc__item--active:before{background:var(--toc-active-color)}.docs-toc__item--active .docs-toc__link{color:var(--toc-active-color);font-weight:500}.docs-toc__item--level-1 .docs-toc__link{padding-left:.75rem}.docs-toc__item--level-2 .docs-toc__link{padding-left:1.5rem;font-size:.75rem}.docs-toc__item--level-3 .docs-toc__link{padding-left:2.25rem;font-size:.6875rem}.docs-toc__link{display:block;padding:.375rem .75rem;font-size:.8125rem;line-height:1.4;color:var(--toc-text-color);text-decoration:none;transition:color .15s ease;word-break:break-word}.docs-toc__link:hover{color:var(--toc-hover-color)}:host-context(.dark) .docs-toc,:host-context([color-scheme=dark]) .docs-toc{--toc-text-color: #a0a0a0;--toc-hover-color: #f4f5f8;--toc-border-color: #3a3a3a}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
215
|
+
}
|
|
216
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DocsTocComponent, decorators: [{
|
|
217
|
+
type: Component,
|
|
218
|
+
args: [{ selector: 'val-docs-toc', standalone: true, imports: [CommonModule], template: `
|
|
219
|
+
<nav
|
|
220
|
+
class="docs-toc"
|
|
221
|
+
[class]="props.cssClass"
|
|
222
|
+
role="navigation"
|
|
223
|
+
aria-label="Table of contents"
|
|
224
|
+
>
|
|
225
|
+
@if (!props.hideTitle) {
|
|
226
|
+
<h4 class="docs-toc__title">{{ props.title || 'Contents' }}</h4>
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
<ul class="docs-toc__list">
|
|
230
|
+
@for (item of flatItems(); track item.id) {
|
|
231
|
+
<li
|
|
232
|
+
class="docs-toc__item"
|
|
233
|
+
[class.docs-toc__item--level-1]="item.level === 1"
|
|
234
|
+
[class.docs-toc__item--level-2]="item.level === 2"
|
|
235
|
+
[class.docs-toc__item--level-3]="item.level === 3"
|
|
236
|
+
[class.docs-toc__item--active]="activeId() === item.id"
|
|
237
|
+
>
|
|
238
|
+
<a
|
|
239
|
+
class="docs-toc__link"
|
|
240
|
+
[href]="'#' + item.id"
|
|
241
|
+
(click)="scrollToSection($event, item.id)"
|
|
242
|
+
>
|
|
243
|
+
{{ item.label }}
|
|
244
|
+
</a>
|
|
245
|
+
</li>
|
|
246
|
+
}
|
|
247
|
+
</ul>
|
|
248
|
+
</nav>
|
|
249
|
+
`, styles: [".docs-toc{--toc-text-color: var(--ion-color-medium, #666);--toc-active-color: var(--ion-color-primary, #3880ff);--toc-hover-color: var(--ion-text-color, #1a1a1a);--toc-border-color: var(--ion-border-color, #e0e0e0);font-family:var(--ion-font-family, system-ui, sans-serif)}.docs-toc__title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--toc-text-color);margin:0 0 1rem}.docs-toc__list{list-style:none;margin:0;padding:0;border-left:1px solid var(--toc-border-color)}.docs-toc__item{position:relative;margin:0}.docs-toc__item:before{content:\"\";position:absolute;left:-1px;top:0;bottom:0;width:2px;background:transparent;transition:background .2s ease}.docs-toc__item--active:before{background:var(--toc-active-color)}.docs-toc__item--active .docs-toc__link{color:var(--toc-active-color);font-weight:500}.docs-toc__item--level-1 .docs-toc__link{padding-left:.75rem}.docs-toc__item--level-2 .docs-toc__link{padding-left:1.5rem;font-size:.75rem}.docs-toc__item--level-3 .docs-toc__link{padding-left:2.25rem;font-size:.6875rem}.docs-toc__link{display:block;padding:.375rem .75rem;font-size:.8125rem;line-height:1.4;color:var(--toc-text-color);text-decoration:none;transition:color .15s ease;word-break:break-word}.docs-toc__link:hover{color:var(--toc-hover-color)}:host-context(.dark) .docs-toc,:host-context([color-scheme=dark]) .docs-toc{--toc-text-color: #a0a0a0;--toc-hover-color: #f4f5f8;--toc-border-color: #3a3a3a}\n"] }]
|
|
250
|
+
}], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { props: [{
|
|
251
|
+
type: Input
|
|
252
|
+
}], sectionChange: [{
|
|
253
|
+
type: Output
|
|
254
|
+
}] } });
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy10b2MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9kb2NzLXRvYy9kb2NzLXRvYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBT1osTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDOztBQUd2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCRztBQXVDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBWTNCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWHpCLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBRTNCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVyRCxpQkFBaUI7UUFDUCxhQUFRLEdBQUcsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLGNBQVMsR0FBRyxNQUFNLENBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBRXhDLGFBQVEsR0FBZ0MsSUFBSSxDQUFDO1FBQzdDLG9CQUFlLEdBQWtCLEVBQUUsQ0FBQztJQUVQLENBQUM7SUFFdEMsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsZUFBZTtRQUNiLCtCQUErQjtRQUMvQixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUNqQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxX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bic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgTmdab25lLFxuICBzaWduYWwsXG4gIGNvbXB1dGVkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvY3NUb2NNZXRhZGF0YSwgRG9jc1RvY0l0ZW0gfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiB2YWwtZG9jcy10b2NcbiAqXG4gKiBBIHRhYmxlIG9mIGNvbnRlbnRzIGNvbXBvbmVudCB3aXRoIHNjcm9sbCBzcHkgZnVuY3Rpb25hbGl0eS5cbiAqIEF1dG9tYXRpY2FsbHkgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBzZWN0aW9uIGJhc2VkIG9uIHNjcm9sbCBwb3NpdGlvbi5cbiAqXG4gKiBAZXhhbXBsZSBNYW51YWwgaXRlbXNcbiAqIGBgYGh0bWxcbiAqIDx2YWwtZG9jcy10b2NcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICB0aXRsZTogJ09uIHRoaXMgcGFnZScsXG4gKiAgICAgaXRlbXM6IFtcbiAqICAgICAgIHsgaWQ6ICdvdmVydmlldycsIGxhYmVsOiAnT3ZlcnZpZXcnLCBsZXZlbDogMSB9LFxuICogICAgICAgeyBpZDogJ2luc3RhbGxhdGlvbicsIGxhYmVsOiAnSW5zdGFsbGF0aW9uJywgbGV2ZWw6IDEgfSxcbiAqICAgICAgIHsgaWQ6ICducG0nLCBsYWJlbDogJ1VzaW5nIG5wbScsIGxldmVsOiAyIH0sXG4gKiAgICAgICB7IGlkOiAneWFybicsIGxhYmVsOiAnVXNpbmcgeWFybicsIGxldmVsOiAyIH1cbiAqICAgICBdXG4gKiAgIH1cIlxuICogPjwvdmFsLWRvY3MtdG9jPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgQXV0by1nZW5lcmF0ZWQgZnJvbSBoZWFkaW5nc1xuICogYGBgaHRtbFxuICogPHZhbC1kb2NzLXRvY1xuICogICBbcHJvcHNdPVwie1xuICogICAgIGF1dG9HZW5lcmF0ZTogdHJ1ZSxcbiAqICAgICBjb250YWluZXJTZWxlY3RvcjogJy5hcnRpY2xlLWNvbnRlbnQnLFxuICogICAgIGhlYWRpbmdMZXZlbHM6IFsyLCAzXVxuICogICB9XCJcbiAqID48L3ZhbC1kb2NzLXRvYz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZG9jcy10b2MnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmF2XG4gICAgICBjbGFzcz1cImRvY3MtdG9jXCJcbiAgICAgIFtjbGFzc109XCJwcm9wcy5jc3NDbGFzc1wiXG4gICAgICByb2xlPVwibmF2aWdhdGlvblwiXG4gICAgICBhcmlhLWxhYmVsPVwiVGFibGUgb2YgY29udGVudHNcIlxuICAgID5cbiAgICAgIEBpZiAoIXByb3BzLmhpZGVUaXRsZSkge1xuICAgICAgICA8aDQgY2xhc3M9XCJkb2NzLXRvY19fdGl0bGVcIj57eyBwcm9wcy50aXRsZSB8fCAnQ29udGVudHMnIH19PC9oND5cbiAgICAgIH1cblxuICAgICAgPHVsIGNsYXNzPVwiZG9jcy10b2NfX2xpc3RcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBmbGF0SXRlbXMoKTsgdHJhY2sgaXRlbS5pZCkge1xuICAgICAgICAgIDxsaVxuICAgICAgICAgICAgY2xhc3M9XCJkb2NzLXRvY19faXRlbVwiXG4gICAgICAgICAgICBbY2xhc3MuZG9jcy10b2NfX2l0ZW0tLWxldmVsLTFdPVwiaXRlbS5sZXZlbCA9PT0gMVwiXG4gICAgICAgICAgICBbY2xhc3MuZG9jcy10b2NfX2l0ZW0tLWxldmVsLTJdPVwiaXRlbS5sZXZlbCA9PT0gMlwiXG4gICAgICAgICAgICBbY2xhc3MuZG9jcy10b2NfX2l0ZW0tLWxldmVsLTNdPVwiaXRlbS5sZXZlbCA9PT0gM1wiXG4gICAgICAgICAgICBbY2xhc3MuZG9jcy10b2NfX2l0ZW0tLWFjdGl2ZV09XCJhY3RpdmVJZCgpID09PSBpdGVtLmlkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBjbGFzcz1cImRvY3MtdG9jX19saW5rXCJcbiAgICAgICAgICAgICAgW2hyZWZdPVwiJyMnICsgaXRlbS5pZFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzY3JvbGxUb1NlY3Rpb24oJGV2ZW50LCBpdGVtLmlkKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICB9XG4gICAgICA8L3VsPlxuICAgIDwvbmF2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9kb2NzLXRvYy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEb2NzVG9jQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHByb3BzOiBEb2NzVG9jTWV0YWRhdGEgPSB7fTtcblxuICBAT3V0cHV0KCkgc2VjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8vIFJlYWN0aXZlIHN0YXRlXG4gIHByb3RlY3RlZCBhY3RpdmVJZCA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcbiAgcHJvdGVjdGVkIGZsYXRJdGVtcyA9IHNpZ25hbDxEb2NzVG9jSXRlbVtdPihbXSk7XG5cbiAgcHJpdmF0ZSBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBoZWFkaW5nRWxlbWVudHM6IEhUTUxFbGVtZW50W10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nWm9uZTogTmdab25lKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRmxhdEl0ZW1zKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gRGVsYXkgdG8gZW5zdXJlIERPTSBpcyByZWFkeVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucHJvcHMuYXV0b0dlbmVyYXRlKSB7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVUb2NGcm9tSGVhZGluZ3MoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0dXBTY3JvbGxTcHkoKTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydwcm9wcyddKSB7XG4gICAgICB0aGlzLnVwZGF0ZUZsYXRJdGVtcygpO1xuICAgICAgaWYgKHRoaXMucHJvcHMuYXV0b0dlbmVyYXRlKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5nZW5lcmF0ZVRvY0Zyb21IZWFkaW5ncygpLCAxMDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveVNjcm9sbFNweSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGbGF0SXRlbXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHMuaXRlbXMpIHtcbiAgICAgIHRoaXMuZmxhdEl0ZW1zLnNldCh0aGlzLmZsYXR0ZW5JdGVtcyh0aGlzLnByb3BzLml0ZW1zKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmbGF0dGVuSXRlbXMoaXRlbXM6IERvY3NUb2NJdGVtW10pOiBEb2NzVG9jSXRlbVtdIHtcbiAgICBjb25zdCByZXN1bHQ6IERvY3NUb2NJdGVtW10gPSBbXTtcbiAgICBjb25zdCBmbGF0dGVuID0gKGl0ZW1MaXN0OiBEb2NzVG9jSXRlbVtdKSA9PiB7XG4gICAgICBpdGVtTGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICByZXN1bHQucHVzaChpdGVtKTtcbiAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICAgIGZsYXR0ZW4oaXRlbS5jaGlsZHJlbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG4gICAgZmxhdHRlbihpdGVtcyk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVUb2NGcm9tSGVhZGluZ3MoKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSB0aGlzLnByb3BzLmNvbnRhaW5lclNlbGVjdG9yIHx8ICcuZG9jcy1sYXlvdXRfX2NvbnRlbnQnO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xuXG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIGNvbnNvbGUud2FybihgW2RvY3MtdG9jXSBDb250YWluZXIgbm90IGZvdW5kOiAke3NlbGVjdG9yfWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxldmVscyA9IHRoaXMucHJvcHMuaGVhZGluZ0xldmVscyB8fCBbMiwgM107XG4gICAgY29uc3QgaGVhZGluZ1NlbGVjdG9yID0gbGV2ZWxzLm1hcChsID0+IGBoJHtsfWApLmpvaW4oJywgJyk7XG4gICAgY29uc3QgaGVhZGluZ3MgPSBjb250YWluZXIucXVlcnlTZWxlY3RvckFsbChoZWFkaW5nU2VsZWN0b3IpO1xuXG4gICAgY29uc3QgaXRlbXM6IERvY3NUb2NJdGVtW10gPSBbXTtcbiAgICBoZWFkaW5ncy5mb3JFYWNoKChoZWFkaW5nOiBFbGVtZW50KSA9PiB7XG4gICAgICBjb25zdCBlbCA9IGhlYWRpbmcgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAvLyBHZW5lcmF0ZSBJRCBpZiBub3QgcHJlc2VudFxuICAgICAgaWYgKCFlbC5pZCkge1xuICAgICAgICBlbC5pZCA9IHRoaXMuZ2VuZXJhdGVJZChlbC50ZXh0Q29udGVudCB8fCAnJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxldmVsID0gcGFyc2VJbnQoZWwudGFnTmFtZVsxXSwgMTApO1xuICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgIGlkOiBlbC5pZCxcbiAgICAgICAgbGFiZWw6IGVsLnRleHRDb250ZW50Py50cmltKCkgfHwgJycsXG4gICAgICAgIGxldmVsOiBsZXZlbCAtIDEsIC8vIGgyID0gbGV2ZWwgMSwgaDMgPSBsZXZlbCAyXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuZmxhdEl0ZW1zLnNldChpdGVtcyk7XG4gICAgLy8gUmUtc2V0dXAgc2Nyb2xsIHNweSB3aXRoIG5ldyBpdGVtc1xuICAgIHRoaXMuc2V0dXBTY3JvbGxTcHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVJZCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZXh0XG4gICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgLnRyaW0oKVxuICAgICAgLnJlcGxhY2UoL1teXFx3XFxzLV0vZywgJycpXG4gICAgICAucmVwbGFjZSgvXFxzKy9nLCAnLScpXG4gICAgICAuc3Vic3RyaW5nKDAsIDUwKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBTY3JvbGxTcHkoKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95U2Nyb2xsU3B5KCk7XG5cbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuZmxhdEl0ZW1zKCk7XG4gICAgaWYgKGl0ZW1zLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgLy8gQ29sbGVjdCBoZWFkaW5nIGVsZW1lbnRzXG4gICAgdGhpcy5oZWFkaW5nRWxlbWVudHMgPSBpdGVtc1xuICAgICAgLm1hcChpdGVtID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGl0ZW0uaWQpKVxuICAgICAgLmZpbHRlcigoZWwpOiBlbCBpcyBIVE1MRWxlbWVudCA9PiBlbCAhPT0gbnVsbCk7XG5cbiAgICBpZiAodGhpcy5oZWFkaW5nRWxlbWVudHMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICBjb25zdCBvZmZzZXRUb3AgPSB0aGlzLnByb3BzLm9mZnNldFRvcCA/PyAxMDA7XG5cbiAgICAvLyBVc2UgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgZm9yIHNjcm9sbCBzcHlcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLm9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgICBlbnRyaWVzID0+IHtcbiAgICAgICAgICAvLyBGaW5kIHRoZSBmaXJzdCB2aXNpYmxlIGhlYWRpbmdcbiAgICAgICAgICBjb25zdCB2aXNpYmxlRW50cmllcyA9IGVudHJpZXNcbiAgICAgICAgICAgIC5maWx0ZXIoZW50cnkgPT4gZW50cnkuaXNJbnRlcnNlY3RpbmcpXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5ib3VuZGluZ0NsaWVudFJlY3QudG9wIC0gYi5ib3VuZGluZ0NsaWVudFJlY3QudG9wKTtcblxuICAgICAgICAgIGlmICh2aXNpYmxlRW50cmllcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmVFbnRyeSA9IHZpc2libGVFbnRyaWVzWzBdO1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5hY3RpdmVJZC5zZXQoYWN0aXZlRW50cnkudGFyZ2V0LmlkKTtcbiAgICAgICAgICAgICAgdGhpcy5zZWN0aW9uQ2hhbmdlLmVtaXQoYWN0aXZlRW50cnkudGFyZ2V0LmlkKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHJvb3RNYXJnaW46IGAtJHtvZmZzZXRUb3B9cHggMHB4IC03MCUgMHB4YCxcbiAgICAgICAgICB0aHJlc2hvbGQ6IDAsXG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIHRoaXMuaGVhZGluZ0VsZW1lbnRzLmZvckVhY2goZWwgPT4ge1xuICAgICAgICB0aGlzLm9ic2VydmVyPy5vYnNlcnZlKGVsKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95U2Nyb2xsU3B5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9ic2VydmVyKSB7XG4gICAgICB0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIHRoaXMub2JzZXJ2ZXIgPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLmhlYWRpbmdFbGVtZW50cyA9IFtdO1xuICB9XG5cbiAgc2Nyb2xsVG9TZWN0aW9uKGV2ZW50OiBFdmVudCwgaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuICAgIGlmICghZWxlbWVudCkgcmV0dXJuO1xuXG4gICAgY29uc3Qgb2Zmc2V0VG9wID0gdGhpcy5wcm9wcy5vZmZzZXRUb3AgPz8gMTAwO1xuXG4gICAgY29uc3QgdG9wID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB3aW5kb3cuc2Nyb2xsWSAtIG9mZnNldFRvcDtcblxuICAgIHdpbmRvdy5zY3JvbGxUbyh7XG4gICAgICB0b3AsXG4gICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgfSk7XG5cbiAgICAvLyBVcGRhdGUgYWN0aXZlIGltbWVkaWF0ZWx5IGZvciBiZXR0ZXIgVVhcbiAgICB0aGlzLmFjdGl2ZUlkLnNldChpZCk7XG5cbiAgICAvLyBVcGRhdGUgVVJMIGhhc2ggd2l0aG91dCBqdW1waW5nXG4gICAgaGlzdG9yeS5wdXNoU3RhdGUobnVsbCwgJycsIGAjJHtpZH1gKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2RvY3MtdG9jL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBkb2NzLXRvYyBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9jc1RvY01ldGFkYXRhIHtcbiAgLyoqXG4gICAqIE1hbnVhbCBUT0MgaXRlbXMgKHVzZWQgd2hlbiBhdXRvR2VuZXJhdGUgaXMgZmFsc2UpLlxuICAgKi9cbiAgaXRlbXM/OiBEb2NzVG9jSXRlbVtdO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlIFRPQyBmcm9tIGhlYWRpbmdzIGluIHRoZSBjb250ZW50LlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgYXV0b0dlbmVyYXRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ1NTIHNlbGVjdG9yIGZvciB0aGUgY29udGVudCBjb250YWluZXIgdG8gc2NhbiBmb3IgaGVhZGluZ3MuXG4gICAqIFJlcXVpcmVkIHdoZW4gYXV0b0dlbmVyYXRlIGlzIHRydWUuXG4gICAqIEBkZWZhdWx0ICcuZG9jcy1sYXlvdXRfX2NvbnRlbnQnXG4gICAqL1xuICBjb250YWluZXJTZWxlY3Rvcj86IHN0cmluZztcblxuICAvKipcbiAgICogSGVhZGluZyBsZXZlbHMgdG8gaW5jbHVkZSBpbiBhdXRvLWdlbmVyYXRlZCBUT0MuXG4gICAqIEBkZWZhdWx0IFsyLCAzXVxuICAgKi9cbiAgaGVhZGluZ0xldmVscz86IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBUaXRsZSBkaXNwbGF5ZWQgYWJvdmUgdGhlIFRPQy5cbiAgICogQGRlZmF1bHQgJ0NvbnRlbnRzJ1xuICAgKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9mZnNldCBmcm9tIHRvcCBmb3Igc2Nyb2xsIHNweSBjYWxjdWxhdGlvbnMgKGUuZy4sIGZvciBzdGlja3kgaGVhZGVycykuXG4gICAqIEBkZWZhdWx0IDEwMFxuICAgKi9cbiAgb2Zmc2V0VG9wPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gQ1NTIGNsYXNzLlxuICAgKi9cbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhpZGUgdGhlIHRpdGxlLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgaGlkZVRpdGxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb2NzVG9jSXRlbSB7XG4gIC8qKlxuICAgKiBJRCBvZiB0aGUgRE9NIGVsZW1lbnQgKHdpdGhvdXQgIykuXG4gICAqL1xuICBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMYWJlbCB0byBkaXNwbGF5IGluIHRoZSBUT0MuXG4gICAqL1xuICBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIZWFkaW5nIGxldmVsIGZvciBpbmRlbnRhdGlvbiAoMSwgMiwgMykuXG4gICAqL1xuICBsZXZlbDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBOZXN0ZWQgY2hpbGRyZW4gaXRlbXMuXG4gICAqL1xuICBjaGlsZHJlbj86IERvY3NUb2NJdGVtW107XG59XG4iXX0=
|