valtech-components 2.0.544 → 2.0.546
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 +7 -5
- package/esm2022/lib/components/molecules/docs-breadcrumb/docs-breadcrumb.component.mjs +166 -0
- package/esm2022/lib/components/molecules/docs-breadcrumb/types.mjs +2 -0
- package/esm2022/lib/components/molecules/docs-code-example/docs-code-example.component.mjs +43 -5
- package/esm2022/lib/components/molecules/docs-nav-links/docs-nav-links.component.mjs +3 -3
- package/esm2022/lib/components/molecules/docs-search/docs-search.component.mjs +268 -0
- package/esm2022/lib/components/molecules/docs-search/types.mjs +2 -0
- package/esm2022/lib/components/organisms/docs-sidebar/docs-sidebar.component.mjs +25 -11
- package/esm2022/lib/components/organisms/docs-toc/docs-toc.component.mjs +5 -3
- package/esm2022/lib/components/templates/docs-layout/docs-layout.component.mjs +20 -2
- package/esm2022/public-api.mjs +5 -1
- package/fesm2022/valtech-components.mjs +509 -26
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/docs-breadcrumb/docs-breadcrumb.component.d.ts +31 -0
- package/lib/components/molecules/docs-breadcrumb/types.d.ts +18 -0
- package/lib/components/molecules/docs-code-example/docs-code-example.component.d.ts +10 -0
- package/lib/components/molecules/docs-search/docs-search.component.d.ts +47 -0
- package/lib/components/molecules/docs-search/types.d.ts +27 -0
- package/lib/components/organisms/article/article.component.d.ts +1 -1
- package/lib/components/templates/docs-layout/docs-layout.component.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, Input, Output, EventEmitter, HostListener, signal, computed, ViewChild, } from '@angular/core';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { IonIcon } from '@ionic/angular/standalone';
|
|
5
|
+
import { addIcons } from 'ionicons';
|
|
6
|
+
import { searchOutline, closeOutline } from 'ionicons/icons';
|
|
7
|
+
import { Subject } from 'rxjs';
|
|
8
|
+
import { debounceTime, takeUntil } from 'rxjs/operators';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/router";
|
|
11
|
+
import * as i2 from "@angular/forms";
|
|
12
|
+
addIcons({ searchOutline, closeOutline });
|
|
13
|
+
/**
|
|
14
|
+
* val-docs-search
|
|
15
|
+
*
|
|
16
|
+
* A search component for documentation with keyboard navigation support.
|
|
17
|
+
* Supports Cmd+K / Ctrl+K shortcut to open.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```html
|
|
21
|
+
* <val-docs-search
|
|
22
|
+
* [props]="{
|
|
23
|
+
* placeholder: 'Search docs...',
|
|
24
|
+
* sections: sidebarSections,
|
|
25
|
+
* showShortcut: true
|
|
26
|
+
* }"
|
|
27
|
+
* (navigate)="onNavigate($event)"
|
|
28
|
+
* ></val-docs-search>
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export class DocsSearchComponent {
|
|
32
|
+
constructor(router) {
|
|
33
|
+
this.router = router;
|
|
34
|
+
this.props = {};
|
|
35
|
+
this.navigate = new EventEmitter();
|
|
36
|
+
this.search = new EventEmitter();
|
|
37
|
+
this.searchQuery = signal('');
|
|
38
|
+
this.showResults = signal(false);
|
|
39
|
+
this.selectedIndex = signal(0);
|
|
40
|
+
this.searchSubject = new Subject();
|
|
41
|
+
this.destroy$ = new Subject();
|
|
42
|
+
this.isMac = typeof navigator !== 'undefined' && navigator.platform.toLowerCase().includes('mac');
|
|
43
|
+
this.results = computed(() => {
|
|
44
|
+
const query = this.searchQuery().toLowerCase().trim();
|
|
45
|
+
if (!query || !this.props.sections)
|
|
46
|
+
return [];
|
|
47
|
+
const results = [];
|
|
48
|
+
this.props.sections.forEach((section) => {
|
|
49
|
+
section.items.forEach((item) => {
|
|
50
|
+
// Match label
|
|
51
|
+
if (item.label.toLowerCase().includes(query)) {
|
|
52
|
+
results.push({ section: section.title, item, matchType: 'label' });
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
// Match description
|
|
56
|
+
if (item.description?.toLowerCase().includes(query)) {
|
|
57
|
+
results.push({ section: section.title, item, matchType: 'description' });
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
// Match keywords
|
|
61
|
+
if (item.keywords?.some((kw) => kw.toLowerCase().includes(query))) {
|
|
62
|
+
results.push({ section: section.title, item, matchType: 'keyword' });
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
return results.slice(0, 10); // Limit results
|
|
67
|
+
});
|
|
68
|
+
this.searchSubject
|
|
69
|
+
.pipe(debounceTime(this.props.debounceMs || 150), takeUntil(this.destroy$))
|
|
70
|
+
.subscribe((query) => {
|
|
71
|
+
this.search.emit(query);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
ngOnDestroy() {
|
|
75
|
+
this.destroy$.next();
|
|
76
|
+
this.destroy$.complete();
|
|
77
|
+
}
|
|
78
|
+
onGlobalKeydown(event) {
|
|
79
|
+
// Cmd+K or Ctrl+K to focus search
|
|
80
|
+
if ((event.metaKey || event.ctrlKey) && event.key === 'k') {
|
|
81
|
+
event.preventDefault();
|
|
82
|
+
this.searchInputEl?.nativeElement.focus();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
onQueryChange(query) {
|
|
86
|
+
this.searchQuery.set(query);
|
|
87
|
+
this.selectedIndex.set(0);
|
|
88
|
+
this.searchSubject.next(query);
|
|
89
|
+
}
|
|
90
|
+
onFocus() {
|
|
91
|
+
this.showResults.set(true);
|
|
92
|
+
}
|
|
93
|
+
onBlur() {
|
|
94
|
+
// Delay to allow click on results
|
|
95
|
+
setTimeout(() => this.showResults.set(false), 200);
|
|
96
|
+
}
|
|
97
|
+
onInputKeydown(event) {
|
|
98
|
+
const resultsArray = this.results();
|
|
99
|
+
switch (event.key) {
|
|
100
|
+
case 'ArrowDown':
|
|
101
|
+
event.preventDefault();
|
|
102
|
+
this.selectedIndex.update((i) => Math.min(i + 1, resultsArray.length - 1));
|
|
103
|
+
break;
|
|
104
|
+
case 'ArrowUp':
|
|
105
|
+
event.preventDefault();
|
|
106
|
+
this.selectedIndex.update((i) => Math.max(i - 1, 0));
|
|
107
|
+
break;
|
|
108
|
+
case 'Enter':
|
|
109
|
+
event.preventDefault();
|
|
110
|
+
if (resultsArray[this.selectedIndex()]) {
|
|
111
|
+
this.selectResult(resultsArray[this.selectedIndex()]);
|
|
112
|
+
}
|
|
113
|
+
break;
|
|
114
|
+
case 'Escape':
|
|
115
|
+
event.preventDefault();
|
|
116
|
+
this.clearSearch();
|
|
117
|
+
this.searchInputEl?.nativeElement.blur();
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
selectResult(result) {
|
|
122
|
+
this.navigate.emit(result.item.route);
|
|
123
|
+
this.router.navigate(result.item.route);
|
|
124
|
+
this.clearSearch();
|
|
125
|
+
}
|
|
126
|
+
clearSearch() {
|
|
127
|
+
this.searchQuery.set('');
|
|
128
|
+
this.selectedIndex.set(0);
|
|
129
|
+
this.showResults.set(false);
|
|
130
|
+
}
|
|
131
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DocsSearchComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
132
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DocsSearchComponent, isStandalone: true, selector: "val-docs-search", inputs: { props: "props" }, outputs: { navigate: "navigate", search: "search" }, host: { listeners: { "document:keydown": "onGlobalKeydown($event)" } }, viewQueries: [{ propertyName: "searchInputEl", first: true, predicate: ["searchInput"], descendants: true }], ngImport: i0, template: `
|
|
133
|
+
<div class="docs-search" [class]="props.cssClass">
|
|
134
|
+
<div class="docs-search__input-wrapper">
|
|
135
|
+
<ion-icon name="search-outline" class="docs-search__icon"></ion-icon>
|
|
136
|
+
<input
|
|
137
|
+
#searchInput
|
|
138
|
+
type="text"
|
|
139
|
+
class="docs-search__input"
|
|
140
|
+
[placeholder]="props.placeholder || 'Search...'"
|
|
141
|
+
[(ngModel)]="searchQuery"
|
|
142
|
+
(ngModelChange)="onQueryChange($event)"
|
|
143
|
+
(keydown)="onInputKeydown($event)"
|
|
144
|
+
(focus)="onFocus()"
|
|
145
|
+
(blur)="onBlur()"
|
|
146
|
+
aria-label="Search documentation"
|
|
147
|
+
autocomplete="off"
|
|
148
|
+
/>
|
|
149
|
+
@if (searchQuery()) {
|
|
150
|
+
<button
|
|
151
|
+
type="button"
|
|
152
|
+
class="docs-search__clear"
|
|
153
|
+
(click)="clearSearch()"
|
|
154
|
+
aria-label="Clear search"
|
|
155
|
+
>
|
|
156
|
+
<ion-icon name="close-outline"></ion-icon>
|
|
157
|
+
</button>
|
|
158
|
+
} @else if (props.showShortcut) {
|
|
159
|
+
<span class="docs-search__shortcut">{{ isMac ? '⌘' : 'Ctrl' }}+K</span>
|
|
160
|
+
}
|
|
161
|
+
</div>
|
|
162
|
+
|
|
163
|
+
@if (showResults() && results().length > 0) {
|
|
164
|
+
<div class="docs-search__results" role="listbox">
|
|
165
|
+
@for (result of results(); track result.item.label; let i = $index) {
|
|
166
|
+
<button
|
|
167
|
+
type="button"
|
|
168
|
+
class="docs-search__result"
|
|
169
|
+
[class.docs-search__result--active]="selectedIndex() === i"
|
|
170
|
+
role="option"
|
|
171
|
+
[attr.aria-selected]="selectedIndex() === i"
|
|
172
|
+
(click)="selectResult(result)"
|
|
173
|
+
(mouseenter)="selectedIndex.set(i)"
|
|
174
|
+
>
|
|
175
|
+
<span class="docs-search__result-section">{{ result.section }}</span>
|
|
176
|
+
<span class="docs-search__result-label">{{ result.item.label }}</span>
|
|
177
|
+
@if (result.item.description) {
|
|
178
|
+
<span class="docs-search__result-description">{{ result.item.description }}</span>
|
|
179
|
+
}
|
|
180
|
+
</button>
|
|
181
|
+
}
|
|
182
|
+
</div>
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
@if (showResults() && searchQuery() && results().length === 0) {
|
|
186
|
+
<div class="docs-search__no-results">
|
|
187
|
+
No results found for "{{ searchQuery() }}"
|
|
188
|
+
</div>
|
|
189
|
+
}
|
|
190
|
+
</div>
|
|
191
|
+
`, isInline: true, styles: [".docs-search{--search-bg: var(--ion-background-color, #fff);--search-border: var(--ion-border-color, #e0e0e0);--search-text: var(--ion-text-color, #1a1a1a);--search-placeholder: var(--ion-color-medium, #666);--search-hover-bg: rgba(0, 0, 0, .03);--search-active-bg: rgba(0, 0, 0, .05);position:relative;font-family:var(--ion-font-family, system-ui, sans-serif)}.docs-search__input-wrapper{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--search-bg);border:1px solid var(--search-border);border-radius:8px;transition:all .15s ease}.docs-search__input-wrapper:focus-within{border-color:#1a1a1a;box-shadow:0 0 0 3px #0000000d}.docs-search__icon{font-size:1rem;color:var(--search-placeholder);flex-shrink:0}.docs-search__input{flex:1;border:none;outline:none;background:transparent;font-size:.875rem;color:var(--search-text);min-width:0}.docs-search__input::placeholder{color:var(--search-placeholder)}.docs-search__clear{display:flex;align-items:center;justify-content:center;padding:.25rem;border:none;background:transparent;color:var(--search-placeholder);cursor:pointer;border-radius:4px;transition:all .15s ease}.docs-search__clear:hover{background:var(--search-hover-bg);color:var(--search-text)}.docs-search__clear:focus-visible{outline:2px solid #1a1a1a;outline-offset:2px}.docs-search__clear ion-icon{font-size:.875rem}.docs-search__shortcut{font-size:.6875rem;font-weight:500;color:var(--search-placeholder);background:var(--search-hover-bg);padding:.125rem .375rem;border-radius:4px;white-space:nowrap}.docs-search__results{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:400px;overflow-y:auto;background:var(--search-bg);border:1px solid var(--search-border);border-radius:8px;box-shadow:0 4px 16px #0000001a;z-index:100}.docs-search__result{display:flex;flex-direction:column;gap:.125rem;width:100%;padding:.75rem 1rem;border:none;background:transparent;text-align:left;cursor:pointer;transition:background .15s ease;border-bottom:1px solid var(--search-border)}.docs-search__result:last-child{border-bottom:none}.docs-search__result:hover,.docs-search__result--active{background:var(--search-hover-bg)}.docs-search__result:focus-visible{outline:2px solid #1a1a1a;outline-offset:-2px}.docs-search__result-section{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--search-placeholder)}.docs-search__result-label{font-size:.875rem;font-weight:500;color:var(--search-text)}.docs-search__result-description{font-size:.75rem;color:var(--search-placeholder);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.docs-search__no-results{padding:1.5rem 1rem;text-align:center;font-size:.875rem;color:var(--search-placeholder);background:var(--search-bg);border:1px solid var(--search-border);border-radius:8px;box-shadow:0 4px 16px #0000001a;position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:100}:host-context(.dark) .docs-search,:host-context([color-scheme=dark]) .docs-search{--search-bg: #1e1e1e;--search-border: #3a3a3a;--search-text: #f4f5f8;--search-placeholder: #a0a0a0;--search-hover-bg: rgba(255, 255, 255, .05);--search-active-bg: rgba(255, 255, 255, .08)}:host-context(.dark) .docs-search__input-wrapper:focus-within,:host-context([color-scheme=dark]) .docs-search__input-wrapper:focus-within{border-color:#f4f5f8;box-shadow:0 0 0 3px #ffffff0d}:host-context(.dark) .docs-search__results,:host-context(.dark) .docs-search__no-results,:host-context([color-scheme=dark]) .docs-search__results,:host-context([color-scheme=dark]) .docs-search__no-results{box-shadow:0 4px 16px #0000004d}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
192
|
+
}
|
|
193
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DocsSearchComponent, decorators: [{
|
|
194
|
+
type: Component,
|
|
195
|
+
args: [{ selector: 'val-docs-search', standalone: true, imports: [CommonModule, FormsModule, IonIcon], template: `
|
|
196
|
+
<div class="docs-search" [class]="props.cssClass">
|
|
197
|
+
<div class="docs-search__input-wrapper">
|
|
198
|
+
<ion-icon name="search-outline" class="docs-search__icon"></ion-icon>
|
|
199
|
+
<input
|
|
200
|
+
#searchInput
|
|
201
|
+
type="text"
|
|
202
|
+
class="docs-search__input"
|
|
203
|
+
[placeholder]="props.placeholder || 'Search...'"
|
|
204
|
+
[(ngModel)]="searchQuery"
|
|
205
|
+
(ngModelChange)="onQueryChange($event)"
|
|
206
|
+
(keydown)="onInputKeydown($event)"
|
|
207
|
+
(focus)="onFocus()"
|
|
208
|
+
(blur)="onBlur()"
|
|
209
|
+
aria-label="Search documentation"
|
|
210
|
+
autocomplete="off"
|
|
211
|
+
/>
|
|
212
|
+
@if (searchQuery()) {
|
|
213
|
+
<button
|
|
214
|
+
type="button"
|
|
215
|
+
class="docs-search__clear"
|
|
216
|
+
(click)="clearSearch()"
|
|
217
|
+
aria-label="Clear search"
|
|
218
|
+
>
|
|
219
|
+
<ion-icon name="close-outline"></ion-icon>
|
|
220
|
+
</button>
|
|
221
|
+
} @else if (props.showShortcut) {
|
|
222
|
+
<span class="docs-search__shortcut">{{ isMac ? '⌘' : 'Ctrl' }}+K</span>
|
|
223
|
+
}
|
|
224
|
+
</div>
|
|
225
|
+
|
|
226
|
+
@if (showResults() && results().length > 0) {
|
|
227
|
+
<div class="docs-search__results" role="listbox">
|
|
228
|
+
@for (result of results(); track result.item.label; let i = $index) {
|
|
229
|
+
<button
|
|
230
|
+
type="button"
|
|
231
|
+
class="docs-search__result"
|
|
232
|
+
[class.docs-search__result--active]="selectedIndex() === i"
|
|
233
|
+
role="option"
|
|
234
|
+
[attr.aria-selected]="selectedIndex() === i"
|
|
235
|
+
(click)="selectResult(result)"
|
|
236
|
+
(mouseenter)="selectedIndex.set(i)"
|
|
237
|
+
>
|
|
238
|
+
<span class="docs-search__result-section">{{ result.section }}</span>
|
|
239
|
+
<span class="docs-search__result-label">{{ result.item.label }}</span>
|
|
240
|
+
@if (result.item.description) {
|
|
241
|
+
<span class="docs-search__result-description">{{ result.item.description }}</span>
|
|
242
|
+
}
|
|
243
|
+
</button>
|
|
244
|
+
}
|
|
245
|
+
</div>
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
@if (showResults() && searchQuery() && results().length === 0) {
|
|
249
|
+
<div class="docs-search__no-results">
|
|
250
|
+
No results found for "{{ searchQuery() }}"
|
|
251
|
+
</div>
|
|
252
|
+
}
|
|
253
|
+
</div>
|
|
254
|
+
`, styles: [".docs-search{--search-bg: var(--ion-background-color, #fff);--search-border: var(--ion-border-color, #e0e0e0);--search-text: var(--ion-text-color, #1a1a1a);--search-placeholder: var(--ion-color-medium, #666);--search-hover-bg: rgba(0, 0, 0, .03);--search-active-bg: rgba(0, 0, 0, .05);position:relative;font-family:var(--ion-font-family, system-ui, sans-serif)}.docs-search__input-wrapper{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--search-bg);border:1px solid var(--search-border);border-radius:8px;transition:all .15s ease}.docs-search__input-wrapper:focus-within{border-color:#1a1a1a;box-shadow:0 0 0 3px #0000000d}.docs-search__icon{font-size:1rem;color:var(--search-placeholder);flex-shrink:0}.docs-search__input{flex:1;border:none;outline:none;background:transparent;font-size:.875rem;color:var(--search-text);min-width:0}.docs-search__input::placeholder{color:var(--search-placeholder)}.docs-search__clear{display:flex;align-items:center;justify-content:center;padding:.25rem;border:none;background:transparent;color:var(--search-placeholder);cursor:pointer;border-radius:4px;transition:all .15s ease}.docs-search__clear:hover{background:var(--search-hover-bg);color:var(--search-text)}.docs-search__clear:focus-visible{outline:2px solid #1a1a1a;outline-offset:2px}.docs-search__clear ion-icon{font-size:.875rem}.docs-search__shortcut{font-size:.6875rem;font-weight:500;color:var(--search-placeholder);background:var(--search-hover-bg);padding:.125rem .375rem;border-radius:4px;white-space:nowrap}.docs-search__results{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:400px;overflow-y:auto;background:var(--search-bg);border:1px solid var(--search-border);border-radius:8px;box-shadow:0 4px 16px #0000001a;z-index:100}.docs-search__result{display:flex;flex-direction:column;gap:.125rem;width:100%;padding:.75rem 1rem;border:none;background:transparent;text-align:left;cursor:pointer;transition:background .15s ease;border-bottom:1px solid var(--search-border)}.docs-search__result:last-child{border-bottom:none}.docs-search__result:hover,.docs-search__result--active{background:var(--search-hover-bg)}.docs-search__result:focus-visible{outline:2px solid #1a1a1a;outline-offset:-2px}.docs-search__result-section{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--search-placeholder)}.docs-search__result-label{font-size:.875rem;font-weight:500;color:var(--search-text)}.docs-search__result-description{font-size:.75rem;color:var(--search-placeholder);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.docs-search__no-results{padding:1.5rem 1rem;text-align:center;font-size:.875rem;color:var(--search-placeholder);background:var(--search-bg);border:1px solid var(--search-border);border-radius:8px;box-shadow:0 4px 16px #0000001a;position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:100}:host-context(.dark) .docs-search,:host-context([color-scheme=dark]) .docs-search{--search-bg: #1e1e1e;--search-border: #3a3a3a;--search-text: #f4f5f8;--search-placeholder: #a0a0a0;--search-hover-bg: rgba(255, 255, 255, .05);--search-active-bg: rgba(255, 255, 255, .08)}:host-context(.dark) .docs-search__input-wrapper:focus-within,:host-context([color-scheme=dark]) .docs-search__input-wrapper:focus-within{border-color:#f4f5f8;box-shadow:0 0 0 3px #ffffff0d}:host-context(.dark) .docs-search__results,:host-context(.dark) .docs-search__no-results,:host-context([color-scheme=dark]) .docs-search__results,:host-context([color-scheme=dark]) .docs-search__no-results{box-shadow:0 4px 16px #0000004d}\n"] }]
|
|
255
|
+
}], ctorParameters: () => [{ type: i1.Router }], propDecorators: { props: [{
|
|
256
|
+
type: Input
|
|
257
|
+
}], navigate: [{
|
|
258
|
+
type: Output
|
|
259
|
+
}], search: [{
|
|
260
|
+
type: Output
|
|
261
|
+
}], searchInputEl: [{
|
|
262
|
+
type: ViewChild,
|
|
263
|
+
args: ['searchInput']
|
|
264
|
+
}], onGlobalKeydown: [{
|
|
265
|
+
type: HostListener,
|
|
266
|
+
args: ['document:keydown', ['$event']]
|
|
267
|
+
}] } });
|
|
268
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy1zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9kb2NzLXNlYXJjaC9kb2NzLXNlYXJjaC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBRVIsU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUd6RCxRQUFRLENBQUMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztBQUUxQzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFtRUgsTUFBTSxPQUFPLG1CQUFtQjtJQTZDOUIsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUE1Q3pCLFVBQUssR0FBdUIsRUFBRSxDQUFDO1FBRTlCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBQ3hDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBSXBDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxD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QXRIVSxtQkFBbUI7bUdBQW5CLG1CQUFtQixrVkE5RHBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJEVCwybEhBNURTLFlBQVksOEJBQUUsV0FBVywrbUJBQUUsT0FBTzs7NEZBK0RqQyxtQkFBbUI7a0JBbEUvQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLFlBQ25DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJEVDsyRUFJUSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBRW1CLGFBQWE7c0JBQXRDLFNBQVM7dUJBQUMsYUFBYTtnQkFxRHhCLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBzaWduYWwsXG4gIGNvbXB1dGVkLFxuICBFbGVtZW50UmVmLFxuICBWaWV3Q2hpbGQsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25JY29uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IHNlYXJjaE91dGxpbmUsIGNsb3NlT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRG9jc1NlYXJjaE1ldGFkYXRhLCBEb2NzU2VhcmNoUmVzdWx0LCBEb2NzU2VhcmNoSXRlbSwgRG9jc1NlYXJjaFNlY3Rpb24gfSBmcm9tICcuL3R5cGVzJztcblxuYWRkSWNvbnMoeyBzZWFyY2hPdXRsaW5lLCBjbG9zZU91dGxpbmUgfSk7XG5cbi8qKlxuICogdmFsLWRvY3Mtc2VhcmNoXG4gKlxuICogQSBzZWFyY2ggY29tcG9uZW50IGZvciBkb2N1bWVudGF0aW9uIHdpdGgga2V5Ym9hcmQgbmF2aWdhdGlvbiBzdXBwb3J0LlxuICogU3VwcG9ydHMgQ21kK0sgLyBDdHJsK0sgc2hvcnRjdXQgdG8gb3Blbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHZhbC1kb2NzLXNlYXJjaFxuICogICBbcHJvcHNdPVwie1xuICogICAgIHBsYWNlaG9sZGVyOiAnU2VhcmNoIGRvY3MuLi4nLFxuICogICAgIHNlY3Rpb25zOiBzaWRlYmFyU2VjdGlvbnMsXG4gKiAgICAgc2hvd1Nob3J0Y3V0OiB0cnVlXG4gKiAgIH1cIlxuICogICAobmF2aWdhdGUpPVwib25OYXZpZ2F0ZSgkZXZlbnQpXCJcbiAqID48L3ZhbC1kb2NzLXNlYXJjaD5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZG9jcy1zZWFyY2gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgSW9uSWNvbl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRvY3Mtc2VhcmNoXCIgW2NsYXNzXT1cInByb3BzLmNzc0NsYXNzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZG9jcy1zZWFyY2hfX2lucHV0LXdyYXBwZXJcIj5cbiAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzZWFyY2gtb3V0bGluZVwiIGNsYXNzPVwiZG9jcy1zZWFyY2hfX2ljb25cIj48L2lvbi1pY29uPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAjc2VhcmNoSW5wdXRcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgY2xhc3M9XCJkb2NzLXNlYXJjaF9faW5wdXRcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwcm9wcy5wbGFjZWhvbGRlciB8fCAnU2VhcmNoLi4uJ1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hRdWVyeVwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25RdWVyeUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAoa2V5ZG93bik9XCJvbklucHV0S2V5ZG93bigkZXZlbnQpXCJcbiAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIlNlYXJjaCBkb2N1bWVudGF0aW9uXCJcbiAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAvPlxuICAgICAgICBAaWYgKHNlYXJjaFF1ZXJ5KCkpIHtcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZG9jcy1zZWFyY2hfX2NsZWFyXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGVhclNlYXJjaCgpXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvc2Utb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH0gQGVsc2UgaWYgKHByb3BzLnNob3dTaG9ydGN1dCkge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZG9jcy1zZWFyY2hfX3Nob3J0Y3V0XCI+e3sgaXNNYWMgPyAn4oyYJyA6ICdDdHJsJyB9fStLPC9zcGFuPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChzaG93UmVzdWx0cygpICYmIHJlc3VsdHMoKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkb2NzLXNlYXJjaF9fcmVzdWx0c1wiIHJvbGU9XCJsaXN0Ym94XCI+XG4gICAgICAgICAgQGZvciAocmVzdWx0IG9mIHJlc3VsdHMoKTsgdHJhY2sgcmVzdWx0Lml0ZW0ubGFiZWw7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImRvY3Mtc2VhcmNoX19yZXN1bHRcIlxuICAgICAgICAgICAgICBbY2xhc3MuZG9jcy1zZWFyY2hfX3Jlc3VsdC0tYWN0aXZlXT1cInNlbGVjdGVkSW5kZXgoKSA9PT0gaVwiXG4gICAgICAgICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInNlbGVjdGVkSW5kZXgoKSA9PT0gaVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RSZXN1bHQocmVzdWx0KVwiXG4gICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInNlbGVjdGVkSW5kZXguc2V0KGkpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkb2NzLXNlYXJjaF9fcmVzdWx0LXNlY3Rpb25cIj57eyByZXN1bHQuc2VjdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkb2NzLXNlYXJjaF9fcmVzdWx0LWxhYmVsXCI+e3sgcmVzdWx0Lml0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgIEBpZiAocmVzdWx0Lml0ZW0uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRvY3Mtc2VhcmNoX19yZXN1bHQtZGVzY3JpcHRpb25cIj57eyByZXN1bHQuaXRlbS5kZXNjcmlwdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChzaG93UmVzdWx0cygpICYmIHNlYXJjaFF1ZXJ5KCkgJiYgcmVzdWx0cygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZG9jcy1zZWFyY2hfX25vLXJlc3VsdHNcIj5cbiAgICAgICAgICBObyByZXN1bHRzIGZvdW5kIGZvciBcInt7IHNlYXJjaFF1ZXJ5KCkgfX1cIlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jcy1zZWFyY2guY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jc1NlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHByb3BzOiBEb2NzU2VhcmNoTWV0YWRhdGEgPSB7fTtcblxuICBAT3V0cHV0KCkgbmF2aWdhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xuICBAT3V0cHV0KCkgc2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnKSBzZWFyY2hJbnB1dEVsPzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBwcm90ZWN0ZWQgc2VhcmNoUXVlcnkgPSBzaWduYWwoJycpO1xuICBwcm90ZWN0ZWQgc2hvd1Jlc3VsdHMgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRJbmRleCA9IHNpZ25hbCgwKTtcblxuICBwcml2YXRlIHNlYXJjaFN1YmplY3QgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IGlzTWFjID0gdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnBsYXRmb3JtLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ21hYycpO1xuXG4gIHByb3RlY3RlZCByZXN1bHRzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5zZWFyY2hRdWVyeSgpLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xuICAgIGlmICghcXVlcnkgfHwgIXRoaXMucHJvcHMuc2VjdGlvbnMpIHJldHVybiBbXTtcblxuICAgIGNvbnN0IHJlc3VsdHM6IERvY3NTZWFyY2hSZXN1bHRbXSA9IFtdO1xuXG4gICAgdGhpcy5wcm9wcy5zZWN0aW9ucy5mb3JFYWNoKChzZWN0aW9uOiBEb2NzU2VhcmNoU2VjdGlvbikgPT4ge1xuICAgICAgc2VjdGlvbi5pdGVtcy5mb3JFYWNoKChpdGVtOiBEb2NzU2VhcmNoSXRlbSkgPT4ge1xuICAgICAgICAvLyBNYXRjaCBsYWJlbFxuICAgICAgICBpZiAoaXRlbS5sYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHF1ZXJ5KSkge1xuICAgICAgICAgIHJlc3VsdHMucHVzaCh7IHNlY3Rpb246IHNlY3Rpb24udGl0bGUsIGl0ZW0sIG1hdGNoVHlwZTogJ2xhYmVsJyB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gTWF0Y2ggZGVzY3JpcHRpb25cbiAgICAgICAgaWYgKGl0ZW0uZGVzY3JpcHRpb24/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkpKSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKHsgc2VjdGlvbjogc2VjdGlvbi50aXRsZSwgaXRlbSwgbWF0Y2hUeXBlOiAnZGVzY3JpcHRpb24nIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBNYXRjaCBrZXl3b3Jkc1xuICAgICAgICBpZiAoaXRlbS5rZXl3b3Jkcz8uc29tZSgoa3c6IHN0cmluZykgPT4ga3cudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxdWVyeSkpKSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKHsgc2VjdGlvbjogc2VjdGlvbi50aXRsZSwgaXRlbSwgbWF0Y2hUeXBlOiAna2V5d29yZCcgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdHMuc2xpY2UoMCwgMTApOyAvLyBMaW1pdCByZXN1bHRzXG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICB0aGlzLnNlYXJjaFN1YmplY3RcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSh0aGlzLnByb3BzLmRlYm91bmNlTXMgfHwgMTUwKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgocXVlcnkpID0+IHtcbiAgICAgICAgdGhpcy5zZWFyY2guZW1pdChxdWVyeSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBvbkdsb2JhbEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBDbWQrSyBvciBDdHJsK0sgdG8gZm9jdXMgc2VhcmNoXG4gICAgaWYgKChldmVudC5tZXRhS2V5IHx8IGV2ZW50LmN0cmxLZXkpICYmIGV2ZW50LmtleSA9PT0gJ2snKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5zZWFyY2hJbnB1dEVsPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgb25RdWVyeUNoYW5nZShxdWVyeTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hRdWVyeS5zZXQocXVlcnkpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleC5zZXQoMCk7XG4gICAgdGhpcy5zZWFyY2hTdWJqZWN0Lm5leHQocXVlcnkpO1xuICB9XG5cbiAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dSZXN1bHRzLnNldCh0cnVlKTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICAvLyBEZWxheSB0byBhbGxvdyBjbGljayBvbiByZXN1bHRzXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNob3dSZXN1bHRzLnNldChmYWxzZSksIDIwMCk7XG4gIH1cblxuICBvbklucHV0S2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHJlc3VsdHNBcnJheSA9IHRoaXMucmVzdWx0cygpO1xuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleC51cGRhdGUoKGkpID0+IE1hdGgubWluKGkgKyAxLCByZXN1bHRzQXJyYXkubGVuZ3RoIC0gMSkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXgudXBkYXRlKChpKSA9PiBNYXRoLm1heChpIC0gMSwgMCkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHJlc3VsdHNBcnJheVt0aGlzLnNlbGVjdGVkSW5kZXgoKV0pIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdFJlc3VsdChyZXN1bHRzQXJyYXlbdGhpcy5zZWxlY3RlZEluZGV4KCldKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuY2xlYXJTZWFyY2goKTtcbiAgICAgICAgdGhpcy5zZWFyY2hJbnB1dEVsPy5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0UmVzdWx0KHJlc3VsdDogRG9jc1NlYXJjaFJlc3VsdCk6IHZvaWQge1xuICAgIHRoaXMubmF2aWdhdGUuZW1pdChyZXN1bHQuaXRlbS5yb3V0ZSk7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUocmVzdWx0Lml0ZW0ucm91dGUpO1xuICAgIHRoaXMuY2xlYXJTZWFyY2goKTtcbiAgfVxuXG4gIGNsZWFyU2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoUXVlcnkuc2V0KCcnKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXguc2V0KDApO1xuICAgIHRoaXMuc2hvd1Jlc3VsdHMuc2V0KGZhbHNlKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RvY3Mtc2VhcmNoL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIERvY3NTZWFyY2hNZXRhZGF0YSB7XG4gIC8qKiBQbGFjZWhvbGRlciB0ZXh0IGZvciB0aGUgc2VhcmNoIGlucHV0ICovXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAvKiogU2VjdGlvbnMgdG8gc2VhcmNoIHRocm91Z2ggKi9cbiAgc2VjdGlvbnM/OiBEb2NzU2VhcmNoU2VjdGlvbltdO1xuICAvKiogRGVib3VuY2UgdGltZSBpbiBtaWxsaXNlY29uZHMgKi9cbiAgZGVib3VuY2VNcz86IG51bWJlcjtcbiAgLyoqIFNob3cga2V5Ym9hcmQgc2hvcnRjdXQgaGludCAoQ21kK0sgLyBDdHJsK0spICovXG4gIHNob3dTaG9ydGN1dD86IGJvb2xlYW47XG4gIC8qKiBDdXN0b20gQ1NTIGNsYXNzICovXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY3NTZWFyY2hTZWN0aW9uIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgaXRlbXM6IERvY3NTZWFyY2hJdGVtW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jc1NlYXJjaEl0ZW0ge1xuICBsYWJlbDogc3RyaW5nO1xuICByb3V0ZTogc3RyaW5nW107XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBrZXl3b3Jkcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY3NTZWFyY2hSZXN1bHQge1xuICBzZWN0aW9uOiBzdHJpbmc7XG4gIGl0ZW06IERvY3NTZWFyY2hJdGVtO1xuICBtYXRjaFR5cGU6ICdsYWJlbCcgfCAnZGVzY3JpcHRpb24nIHwgJ2tleXdvcmQnO1xufVxuIl19
|
|
@@ -112,6 +112,8 @@ export class DocsSidebarComponent {
|
|
|
112
112
|
class="docs-sidebar"
|
|
113
113
|
[class]="props.cssClass"
|
|
114
114
|
[style.background]="props.backgroundColor"
|
|
115
|
+
role="navigation"
|
|
116
|
+
aria-label="Documentation navigation"
|
|
115
117
|
>
|
|
116
118
|
<!-- Logo -->
|
|
117
119
|
@if (props.logo) {
|
|
@@ -136,11 +138,14 @@ export class DocsSidebarComponent {
|
|
|
136
138
|
@for (section of props.sections; track section.title) {
|
|
137
139
|
<div class="docs-sidebar__section">
|
|
138
140
|
<!-- Section header -->
|
|
139
|
-
<
|
|
141
|
+
<button
|
|
142
|
+
type="button"
|
|
140
143
|
class="docs-sidebar__section-header"
|
|
141
144
|
[class.docs-sidebar__section-header--active]="isSectionActive(section)"
|
|
142
145
|
[class.docs-sidebar__section-header--expanded]="expandedSections[section.title]"
|
|
143
146
|
[class.docs-sidebar__section-header--clickable]="section.route || section.children?.length"
|
|
147
|
+
[attr.aria-expanded]="section.children?.length ? expandedSections[section.title] : null"
|
|
148
|
+
[attr.aria-current]="section.route && isSectionActive(section) ? 'page' : null"
|
|
144
149
|
(click)="onSectionClick(section)"
|
|
145
150
|
>
|
|
146
151
|
@if (section.icon) {
|
|
@@ -156,15 +161,17 @@ export class DocsSidebarComponent {
|
|
|
156
161
|
[name]="expandedSections[section.title] ? 'chevron-down-outline' : 'chevron-forward-outline'"
|
|
157
162
|
></ion-icon>
|
|
158
163
|
}
|
|
159
|
-
</
|
|
164
|
+
</button>
|
|
160
165
|
|
|
161
166
|
<!-- Section children -->
|
|
162
167
|
@if (section.children?.length && expandedSections[section.title]) {
|
|
163
168
|
<div class="docs-sidebar__children">
|
|
164
169
|
@for (link of section.children; track link.label) {
|
|
165
|
-
<
|
|
170
|
+
<button
|
|
171
|
+
type="button"
|
|
166
172
|
class="docs-sidebar__link"
|
|
167
173
|
[class.docs-sidebar__link--active]="isLinkActive(link)"
|
|
174
|
+
[attr.aria-current]="isLinkActive(link) ? 'page' : null"
|
|
168
175
|
(click)="onNavigate(link.route)"
|
|
169
176
|
>
|
|
170
177
|
<span class="docs-sidebar__link-label">{{ link.label }}</span>
|
|
@@ -177,7 +184,7 @@ export class DocsSidebarComponent {
|
|
|
177
184
|
[class.docs-sidebar__badge--danger]="link.badgeColor === 'danger'"
|
|
178
185
|
>{{ link.badge }}</span>
|
|
179
186
|
}
|
|
180
|
-
</
|
|
187
|
+
</button>
|
|
181
188
|
}
|
|
182
189
|
</div>
|
|
183
190
|
}
|
|
@@ -185,7 +192,7 @@ export class DocsSidebarComponent {
|
|
|
185
192
|
}
|
|
186
193
|
</div>
|
|
187
194
|
</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: #1a1a1a;--sidebar-active-bg: rgba(0, 0, 0, .05);--sidebar-hover-bg: rgba(0, 0, 0, .03);--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:#0000000f;color:#555}.docs-sidebar__badge--section{margin-left:auto}.docs-sidebar__badge--primary{background:#0000000f;color:#555}.docs-sidebar__badge--success{background:#e8f5e9;color:#2e7d32}.docs-sidebar__badge--warning{background:#fff8e1;color:#f57c00}.docs-sidebar__badge--danger{background:#ffebee;color:#c62828}: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"] }] }); }
|
|
195
|
+
`, isInline: true, styles: [".docs-sidebar{--sidebar-text-color: var(--ion-text-color, #1a1a1a);--sidebar-text-secondary: var(--ion-color-medium, #666);--sidebar-active-color: #1a1a1a;--sidebar-active-bg: rgba(0, 0, 0, .05);--sidebar-hover-bg: rgba(0, 0, 0, .03);--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{appearance:none;background:transparent;border:none;width:100%;text-align:left;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:focus-visible{outline:2px solid var(--sidebar-active-color);outline-offset:2px}.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{appearance:none;background:transparent;border:none;width:100%;text-align:left;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:focus-visible{outline:2px solid var(--sidebar-active-color);outline-offset:2px}.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:#0000000f;color:#555}.docs-sidebar__badge--section{margin-left:auto}.docs-sidebar__badge--primary{background:#0000000f;color:#555}.docs-sidebar__badge--success{background:#e8f5e9;color:#2e7d32}.docs-sidebar__badge--warning{background:#fff8e1;color:#f57c00}.docs-sidebar__badge--danger{background:#ffebee;color:#c62828}: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
196
|
}
|
|
190
197
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DocsSidebarComponent, decorators: [{
|
|
191
198
|
type: Component,
|
|
@@ -194,6 +201,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
194
201
|
class="docs-sidebar"
|
|
195
202
|
[class]="props.cssClass"
|
|
196
203
|
[style.background]="props.backgroundColor"
|
|
204
|
+
role="navigation"
|
|
205
|
+
aria-label="Documentation navigation"
|
|
197
206
|
>
|
|
198
207
|
<!-- Logo -->
|
|
199
208
|
@if (props.logo) {
|
|
@@ -218,11 +227,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
218
227
|
@for (section of props.sections; track section.title) {
|
|
219
228
|
<div class="docs-sidebar__section">
|
|
220
229
|
<!-- Section header -->
|
|
221
|
-
<
|
|
230
|
+
<button
|
|
231
|
+
type="button"
|
|
222
232
|
class="docs-sidebar__section-header"
|
|
223
233
|
[class.docs-sidebar__section-header--active]="isSectionActive(section)"
|
|
224
234
|
[class.docs-sidebar__section-header--expanded]="expandedSections[section.title]"
|
|
225
235
|
[class.docs-sidebar__section-header--clickable]="section.route || section.children?.length"
|
|
236
|
+
[attr.aria-expanded]="section.children?.length ? expandedSections[section.title] : null"
|
|
237
|
+
[attr.aria-current]="section.route && isSectionActive(section) ? 'page' : null"
|
|
226
238
|
(click)="onSectionClick(section)"
|
|
227
239
|
>
|
|
228
240
|
@if (section.icon) {
|
|
@@ -238,15 +250,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
238
250
|
[name]="expandedSections[section.title] ? 'chevron-down-outline' : 'chevron-forward-outline'"
|
|
239
251
|
></ion-icon>
|
|
240
252
|
}
|
|
241
|
-
</
|
|
253
|
+
</button>
|
|
242
254
|
|
|
243
255
|
<!-- Section children -->
|
|
244
256
|
@if (section.children?.length && expandedSections[section.title]) {
|
|
245
257
|
<div class="docs-sidebar__children">
|
|
246
258
|
@for (link of section.children; track link.label) {
|
|
247
|
-
<
|
|
259
|
+
<button
|
|
260
|
+
type="button"
|
|
248
261
|
class="docs-sidebar__link"
|
|
249
262
|
[class.docs-sidebar__link--active]="isLinkActive(link)"
|
|
263
|
+
[attr.aria-current]="isLinkActive(link) ? 'page' : null"
|
|
250
264
|
(click)="onNavigate(link.route)"
|
|
251
265
|
>
|
|
252
266
|
<span class="docs-sidebar__link-label">{{ link.label }}</span>
|
|
@@ -259,7 +273,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
259
273
|
[class.docs-sidebar__badge--danger]="link.badgeColor === 'danger'"
|
|
260
274
|
>{{ link.badge }}</span>
|
|
261
275
|
}
|
|
262
|
-
</
|
|
276
|
+
</button>
|
|
263
277
|
}
|
|
264
278
|
</div>
|
|
265
279
|
}
|
|
@@ -267,10 +281,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
267
281
|
}
|
|
268
282
|
</div>
|
|
269
283
|
</nav>
|
|
270
|
-
`, styles: [".docs-sidebar{--sidebar-text-color: var(--ion-text-color, #1a1a1a);--sidebar-text-secondary: var(--ion-color-medium, #666);--sidebar-active-color: #1a1a1a;--sidebar-active-bg: rgba(0, 0, 0, .05);--sidebar-hover-bg: rgba(0, 0, 0, .03);--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:#0000000f;color:#555}.docs-sidebar__badge--section{margin-left:auto}.docs-sidebar__badge--primary{background:#0000000f;color:#555}.docs-sidebar__badge--success{background:#e8f5e9;color:#2e7d32}.docs-sidebar__badge--warning{background:#fff8e1;color:#f57c00}.docs-sidebar__badge--danger{background:#ffebee;color:#c62828}: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"] }]
|
|
284
|
+
`, styles: [".docs-sidebar{--sidebar-text-color: var(--ion-text-color, #1a1a1a);--sidebar-text-secondary: var(--ion-color-medium, #666);--sidebar-active-color: #1a1a1a;--sidebar-active-bg: rgba(0, 0, 0, .05);--sidebar-hover-bg: rgba(0, 0, 0, .03);--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{appearance:none;background:transparent;border:none;width:100%;text-align:left;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:focus-visible{outline:2px solid var(--sidebar-active-color);outline-offset:2px}.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{appearance:none;background:transparent;border:none;width:100%;text-align:left;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:focus-visible{outline:2px solid var(--sidebar-active-color);outline-offset:2px}.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:#0000000f;color:#555}.docs-sidebar__badge--section{margin-left:auto}.docs-sidebar__badge--primary{background:#0000000f;color:#555}.docs-sidebar__badge--success{background:#e8f5e9;color:#2e7d32}.docs-sidebar__badge--warning{background:#fff8e1;color:#f57c00}.docs-sidebar__badge--danger{background:#ffebee;color:#c62828}: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
285
|
}], ctorParameters: () => [{ type: i1.Router }], propDecorators: { props: [{
|
|
272
286
|
type: Input
|
|
273
287
|
}], navigate: [{
|
|
274
288
|
type: Output
|
|
275
289
|
}] } });
|
|
276
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy1zaWRlYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZG9jcy1zaWRlYmFyL2RvY3Mtc2lkZWJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUd4QyxRQUFRLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7QUFFeEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBc0ZILE1BQU0sT0FBTyxvQkFBb0I7SUFRL0IsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFQekIsVUFBSyxHQUF3QixFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUU3QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUVsRCxxQkFBZ0IsR0FBNEIsRUFBRSxDQUFDO1FBQ3ZDLGlCQUFZLEdBQWEsRUFBRSxDQUFDO0lBRUMsQ0FBQztJQUV0QyxRQUFRO1FBQ04sSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGtC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QUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUMxRSxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQXFCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQWUsRUFBRSxPQUFpQjtRQUNwRCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDckQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxPQUFPLFdBQVcsS0FBSyxTQUFTLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDOUUsQ0FBQzsrR0FqRlUsb0JBQW9CO21HQUFwQixvQkFBb0IsZ0tBakZyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEVULGloR0EvRVMsWUFBWSwrQkFBRSxPQUFPOzs0RkFrRnBCLG9CQUFvQjtrQkFyRmhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsWUFDdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThFVDsyRUFJUSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciwgTmF2aWdhdGlvbkVuZCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25JY29uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGNoZXZyb25Eb3duT3V0bGluZSwgY2hldnJvbkZvcndhcmRPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRG9jc1NpZGViYXJNZXRhZGF0YSwgRG9jc1NpZGViYXJTZWN0aW9uLCBEb2NzU2lkZWJhckxpbmsgfSBmcm9tICcuL3R5cGVzJztcblxuYWRkSWNvbnMoeyBjaGV2cm9uRG93bk91dGxpbmUsIGNoZXZyb25Gb3J3YXJkT3V0bGluZSB9KTtcblxuLyoqXG4gKiB2YWwtZG9jcy1zaWRlYmFyXG4gKlxuICogQSBoaWVyYXJjaGljYWwgbmF2aWdhdGlvbiBzaWRlYmFyIGZvciBkb2N1bWVudGF0aW9uIHNpdGVzLlxuICogU3VwcG9ydHMgY29sbGFwc2libGUgc2VjdGlvbnMsIGFjdGl2ZSByb3V0ZSBoaWdobGlnaHRpbmcsIGFuZCBiYWRnZXMuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2VcbiAqIGBgYGh0bWxcbiAqIDx2YWwtZG9jcy1zaWRlYmFyXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgbG9nbzogeyBzcmM6ICcvYXNzZXRzL2xvZ28uc3ZnJywgYWx0OiAnRG9jcycsIHRpdGxlOiAnRE9DUycgfSxcbiAqICAgICBzZWN0aW9uczogW1xuICogICAgICAgeyB0aXRsZTogJ0dldHRpbmcgU3RhcnRlZCcsIHJvdXRlOiBbJy9kb2NzJywgJ2dldHRpbmctc3RhcnRlZCddIH0sXG4gKiAgICAgICB7XG4gKiAgICAgICAgIHRpdGxlOiAnQ29tcG9uZW50cycsXG4gKiAgICAgICAgIGV4cGFuZGVkOiB0cnVlLFxuICogICAgICAgICBjaGlsZHJlbjogW1xuICogICAgICAgICAgIHsgbGFiZWw6ICdCdXR0b24nLCByb3V0ZTogWycvZG9jcycsICdjb21wb25lbnRzJywgJ2J1dHRvbiddIH0sXG4gKiAgICAgICAgICAgeyBsYWJlbDogJ0NhcmQnLCByb3V0ZTogWycvZG9jcycsICdjb21wb25lbnRzJywgJ2NhcmQnXSwgYmFkZ2U6ICdOZXcnIH1cbiAqICAgICAgICAgXVxuICogICAgICAgfVxuICogICAgIF1cbiAqICAgfVwiXG4gKiAgIChuYXZpZ2F0ZSk9XCJvbk5hdmlnYXRlKCRldmVudClcIlxuICogPjwvdmFsLWRvY3Mtc2lkZWJhcj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZG9jcy1zaWRlYmFyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uSWNvbl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5hdlxuICAgICAgY2xhc3M9XCJkb2NzLXNpZGViYXJcIlxuICAgICAgW2NsYXNzXT1cInByb3BzLmNzc0NsYXNzXCJcbiAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cInByb3BzLmJhY2tncm91bmRDb2xvclwiXG4gICAgPlxuICAgICAgPCEtLSBMb2dvIC0tPlxuICAgICAgQGlmIChwcm9wcy5sb2dvKSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImRvY3Mtc2lkZWJhcl9fbG9nb1wiXG4gICAgICAgICAgW2NsYXNzLmRvY3Mtc2lkZWJhcl9fbG9nby0tY2xpY2thYmxlXT1cInByb3BzLmxvZ28ucm91dGVcIlxuICAgICAgICAgIChjbGljayk9XCJwcm9wcy5sb2dvLnJvdXRlID8gb25OYXZpZ2F0ZShwcm9wcy5sb2dvLnJvdXRlKSA6IG51bGxcIlxuICAgICAgICA+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgW3NyY109XCJwcm9wcy5sb2dvLnNyY1wiXG4gICAgICAgICAgICBbYWx0XT1cInByb3BzLmxvZ28uYWx0XCJcbiAgICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwicHJvcHMubG9nby5oZWlnaHQgfHwgJzMycHgnXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIEBpZiAocHJvcHMubG9nby50aXRsZSkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkb2NzLXNpZGViYXJfX2xvZ28tdGl0bGVcIj57eyBwcm9wcy5sb2dvLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIDwhLS0gTmF2aWdhdGlvbiBzZWN0aW9ucyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJkb2NzLXNpZGViYXJfX25hdlwiPlxuICAgICAgICBAZm9yIChzZWN0aW9uIG9mIHByb3BzLnNlY3Rpb25zOyB0cmFjayBzZWN0aW9uLnRpdGxlKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRvY3Mtc2lkZWJhcl9fc2VjdGlvblwiPlxuICAgICAgICAgICAgPCEtLSBTZWN0aW9uIGhlYWRlciAtLT5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJkb2NzLXNpZGViYXJfX3NlY3Rpb24taGVhZGVyXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmRvY3Mtc2lkZWJhcl9fc2VjdGlvbi1oZWFkZXItLWFjdGl2ZV09XCJpc1NlY3Rpb25BY3RpdmUoc2VjdGlvbilcIlxuICAgICAgICAgICAgICBbY2xhc3MuZG9jcy1zaWRlYmFyX19zZWN0aW9uLWhlYWRlci0tZXhwYW5kZWRdPVwiZXhwYW5kZWRTZWN0aW9uc1tzZWN0aW9uLnRpdGxlXVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5kb2NzLXNpZGViYXJfX3NlY3Rpb24taGVhZGVyLS1jbGlja2FibGVdPVwic2VjdGlvbi5yb3V0ZSB8fCBzZWN0aW9uLmNoaWxkcmVuPy5sZW5ndGhcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWN0aW9uQ2xpY2soc2VjdGlvbilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBAaWYgKHNlY3Rpb24uaWNvbikge1xuICAgICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJzZWN0aW9uLmljb25cIiBjbGFzcz1cImRvY3Mtc2lkZWJhcl9fc2VjdGlvbi1pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRvY3Mtc2lkZWJhcl9fc2VjdGlvbi10aXRsZVwiPnt7IHNlY3Rpb24udGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIEBpZiAoc2VjdGlvbi5iYWRnZSkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZG9jcy1zaWRlYmFyX19iYWRnZSBkb2NzLXNpZGViYXJfX2JhZGdlLS1zZWN0aW9uXCI+e3sgc2VjdGlvbi5iYWRnZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAaWYgKHNlY3Rpb24uY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIDxpb24taWNvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2NzLXNpZGViYXJfX2NoZXZyb25cIlxuICAgICAgICAgICAgICAgICAgW25hbWVdPVwiZXhwYW5kZWRTZWN0aW9uc1tzZWN0aW9uLnRpdGxlXSA/ICdjaGV2cm9uLWRvd24tb3V0bGluZScgOiAnY2hldnJvbi1mb3J3YXJkLW91dGxpbmUnXCJcbiAgICAgICAgICAgICAgICA+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwhLS0gU2VjdGlvbiBjaGlsZHJlbiAtLT5cbiAgICAgICAgICAgIEBpZiAoc2VjdGlvbi5jaGlsZHJlbj8ubGVuZ3RoICYmIGV4cGFuZGVkU2VjdGlvbnNbc2VjdGlvbi50aXRsZV0pIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvY3Mtc2lkZWJhcl9fY2hpbGRyZW5cIj5cbiAgICAgICAgICAgICAgICBAZm9yIChsaW5rIG9mIHNlY3Rpb24uY2hpbGRyZW47IHRyYWNrIGxpbmsubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2NzLXNpZGViYXJfX2xpbmtcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZG9jcy1zaWRlYmFyX19saW5rLS1hY3RpdmVdPVwiaXNMaW5rQWN0aXZlKGxpbmspXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTmF2aWdhdGUobGluay5yb3V0ZSlcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRvY3Mtc2lkZWJhcl9fbGluay1sYWJlbFwiPnt7IGxpbmsubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobGluay5iYWRnZSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvY3Mtc2lkZWJhcl9fYmFkZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvY3Mtc2lkZWJhcl9fYmFkZ2UtLXByaW1hcnldPVwibGluay5iYWRnZUNvbG9yID09PSAncHJpbWFyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvY3Mtc2lkZWJhcl9fYmFkZ2UtLXN1Y2Nlc3NdPVwibGluay5iYWRnZUNvbG9yID09PSAnc3VjY2VzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvY3Mtc2lkZWJhcl9fYmFkZ2UtLXdhcm5pbmddPVwibGluay5iYWRnZUNvbG9yID09PSAnd2FybmluZydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvY3Mtc2lkZWJhcl9fYmFkZ2UtLWRhbmdlcl09XCJsaW5rLmJhZGdlQ29sb3IgPT09ICdkYW5nZXInXCJcbiAgICAgICAgICAgICAgICAgICAgICA+e3sgbGluay5iYWRnZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9uYXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2RvY3Mtc2lkZWJhci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEb2NzU2lkZWJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgcHJvcHM6IERvY3NTaWRlYmFyTWV0YWRhdGEgPSB7IHNlY3Rpb25zOiBbXSB9O1xuXG4gIEBPdXRwdXQoKSBuYXZpZ2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XG5cbiAgZXhwYW5kZWRTZWN0aW9uczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcbiAgcHJpdmF0ZSBjdXJyZW50Um91dGU6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVFeHBhbmRlZFNlY3Rpb25zKCk7XG4gICAgdGhpcy51cGRhdGVDdXJyZW50Um91dGUoKTtcblxuICAgIC8vIExpc3RlbiBmb3Igcm91dGUgY2hhbmdlc1xuICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVDdXJyZW50Um91dGUoKTtcbiAgICAgICAgdGhpcy5hdXRvRXhwYW5kQWN0aXZlU2VjdGlvbigpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUV4cGFuZGVkU2VjdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVFeHBhbmRlZFNlY3Rpb25zKCk6IHZvaWQge1xuICAgIHRoaXMucHJvcHMuc2VjdGlvbnMuZm9yRWFjaChzZWN0aW9uID0+IHtcbiAgICAgIGlmICh0aGlzLmV4cGFuZGVkU2VjdGlvbnNbc2VjdGlvbi50aXRsZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkU2VjdGlvbnNbc2VjdGlvbi50aXRsZV0gPSBzZWN0aW9uLmV4cGFuZGVkID8/IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDdXJyZW50Um91dGUoKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50Um91dGUgPSB0aGlzLnJvdXRlci51cmwuc3BsaXQoJy8nKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgLy8gVXNlIGFjdGl2ZVJvdXRlIGZyb20gcHJvcHMgaWYgcHJvdmlkZWRcbiAgICBpZiAodGhpcy5wcm9wcy5hY3RpdmVSb3V0ZSkge1xuICAgICAgdGhpcy5jdXJyZW50Um91dGUgPSB0aGlzLnByb3BzLmFjdGl2ZVJvdXRlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXV0b0V4cGFuZEFjdGl2ZVNlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5wcm9wcy5zZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgaWYgKHNlY3Rpb24uY2hpbGRyZW4/LnNvbWUobGluayA9PiB0aGlzLmlzTGlua0FjdGl2ZShsaW5rKSkpIHtcbiAgICAgICAgdGhpcy5leHBhbmRlZFNlY3Rpb25zW3NlY3Rpb24udGl0bGVdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG9uU2VjdGlvbkNsaWNrKHNlY3Rpb246IERvY3NTaWRlYmFyU2VjdGlvbik6IHZvaWQge1xuICAgIGlmIChzZWN0aW9uLnJvdXRlKSB7XG4gICAgICB0aGlzLm9uTmF2aWdhdGUoc2VjdGlvbi5yb3V0ZSk7XG4gICAgfSBlbHNlIGlmIChzZWN0aW9uLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZXhwYW5kZWRTZWN0aW9uc1tzZWN0aW9uLnRpdGxlXSA9ICF0aGlzLmV4cGFuZGVkU2VjdGlvbnNbc2VjdGlvbi50aXRsZV07XG4gICAgfVxuICB9XG5cbiAgb25OYXZpZ2F0ZShyb3V0ZTogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLm5hdmlnYXRlLmVtaXQocm91dGUpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHJvdXRlKTtcbiAgfVxuXG4gIGlzU2VjdGlvbkFjdGl2ZShzZWN0aW9uOiBEb2NzU2lkZWJhclNlY3Rpb24pOiBib29sZWFuIHtcbiAgICBpZiAoc2VjdGlvbi5yb3V0ZSkge1xuICAgICAgcmV0dXJuIHRoaXMucm91dGVzTWF0Y2goc2VjdGlvbi5yb3V0ZSwgdGhpcy5jdXJyZW50Um91dGUpO1xuICAgIH1cbiAgICByZXR1cm4gc2VjdGlvbi5jaGlsZHJlbj8uc29tZShsaW5rID0+IHRoaXMuaXNMaW5rQWN0aXZlKGxpbmspKSA/PyBmYWxzZTtcbiAgfVxuXG4gIGlzTGlua0FjdGl2ZShsaW5rOiBEb2NzU2lkZWJhckxpbmspOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXNNYXRjaChsaW5rLnJvdXRlLCB0aGlzLmN1cnJlbnRSb3V0ZSk7XG4gIH1cblxuICBwcml2YXRlIHJvdXRlc01hdGNoKHJvdXRlOiBzdHJpbmdbXSwgY3VycmVudDogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICBjb25zdCByb3V0ZVBhdGggPSByb3V0ZS5qb2luKCcvJykucmVwbGFjZSgvXlxcLy8sICcnKTtcbiAgICBjb25zdCBjdXJyZW50UGF0aCA9IGN1cnJlbnQuam9pbignLycpO1xuICAgIHJldHVybiBjdXJyZW50UGF0aCA9PT0gcm91dGVQYXRoIHx8IGN1cnJlbnRQYXRoLnN0YXJ0c1dpdGgocm91dGVQYXRoICsgJy8nKTtcbiAgfVxufVxuIl19
|
|
290
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy1zaWRlYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZG9jcy1zaWRlYmFyL2RvY3Mtc2lkZWJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUd4QyxRQUFRLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7QUFFeEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBNkZILE1BQU0sT0FBTyxvQkFBb0I7SUFRL0IsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFQekIsVUFBSyxHQUF3QixFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUU3QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUVsRCxxQkFBZ0IsR0FBNEIsRUFBRSxDQUFDO1FBQ3ZDLGlCQUFZLEdBQWEsRUFBRSxDQUFDO0lBRUMsQ0FBQztJQUV0QyxRQUFRO1FBQ04sSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGtC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QUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUMxRSxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQXFCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQWUsRUFBRSxPQUFpQjtRQUNwRCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDckQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxPQUFPLFdBQVcsS0FBSyxTQUFTLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDOUUsQ0FBQzsrR0FqRlUsb0JBQW9CO21HQUFwQixvQkFBb0IsZ0tBeEZyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFGVCw2M0dBdEZTLFlBQVksK0JBQUUsT0FBTzs7NEZBeUZwQixvQkFBb0I7a0JBNUZoQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQ3RCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUZUOzJFQUlRLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgY2hldnJvbkRvd25PdXRsaW5lLCBjaGV2cm9uRm9yd2FyZE91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEb2NzU2lkZWJhck1ldGFkYXRhLCBEb2NzU2lkZWJhclNlY3Rpb24sIERvY3NTaWRlYmFyTGluayB9IGZyb20gJy4vdHlwZXMnO1xuXG5hZGRJY29ucyh7IGNoZXZyb25Eb3duT3V0bGluZSwgY2hldnJvbkZvcndhcmRPdXRsaW5lIH0pO1xuXG4vKipcbiAqIHZhbC1kb2NzLXNpZGViYXJcbiAqXG4gKiBBIGhpZXJhcmNoaWNhbCBuYXZpZ2F0aW9uIHNpZGViYXIgZm9yIGRvY3VtZW50YXRpb24gc2l0ZXMuXG4gKiBTdXBwb3J0cyBjb2xsYXBzaWJsZSBzZWN0aW9ucywgYWN0aXZlIHJvdXRlIGhpZ2hsaWdodGluZywgYW5kIGJhZGdlcy5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZVxuICogYGBgaHRtbFxuICogPHZhbC1kb2NzLXNpZGViYXJcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBsb2dvOiB7IHNyYzogJy9hc3NldHMvbG9nby5zdmcnLCBhbHQ6ICdEb2NzJywgdGl0bGU6ICdET0NTJyB9LFxuICogICAgIHNlY3Rpb25zOiBbXG4gKiAgICAgICB7IHRpdGxlOiAnR2V0dGluZyBTdGFydGVkJywgcm91dGU6IFsnL2RvY3MnLCAnZ2V0dGluZy1zdGFydGVkJ10gfSxcbiAqICAgICAgIHtcbiAqICAgICAgICAgdGl0bGU6ICdDb21wb25lbnRzJyxcbiAqICAgICAgICAgZXhwYW5kZWQ6IHRydWUsXG4gKiAgICAgICAgIGNoaWxkcmVuOiBbXG4gKiAgICAgICAgICAgeyBsYWJlbDogJ0J1dHRvbicsIHJvdXRlOiBbJy9kb2NzJywgJ2NvbXBvbmVudHMnLCAnYnV0dG9uJ10gfSxcbiAqICAgICAgICAgICB7IGxhYmVsOiAnQ2FyZCcsIHJvdXRlOiBbJy9kb2NzJywgJ2NvbXBvbmVudHMnLCAnY2FyZCddLCBiYWRnZTogJ05ldycgfVxuICogICAgICAgICBdXG4gKiAgICAgICB9XG4gKiAgICAgXVxuICogICB9XCJcbiAqICAgKG5hdmlnYXRlKT1cIm9uTmF2aWdhdGUoJGV2ZW50KVwiXG4gKiA+PC92YWwtZG9jcy1zaWRlYmFyPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1kb2NzLXNpZGViYXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25JY29uXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmF2XG4gICAgICBjbGFzcz1cImRvY3Mtc2lkZWJhclwiXG4gICAgICBbY2xhc3NdPVwicHJvcHMuY3NzQ2xhc3NcIlxuICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwicHJvcHMuYmFja2dyb3VuZENvbG9yXCJcbiAgICAgIHJvbGU9XCJuYXZpZ2F0aW9uXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJEb2N1bWVudGF0aW9uIG5hdmlnYXRpb25cIlxuICAgID5cbiAgICAgIDwhLS0gTG9nbyAtLT5cbiAgICAgIEBpZiAocHJvcHMubG9nbykge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJkb2NzLXNpZGViYXJfX2xvZ29cIlxuICAgICAgICAgIFtjbGFzcy5kb2NzLXNpZGViYXJfX2xvZ28tLWNsaWNrYWJsZV09XCJwcm9wcy5sb2dvLnJvdXRlXCJcbiAgICAgICAgICAoY2xpY2spPVwicHJvcHMubG9nby5yb3V0ZSA/IG9uTmF2aWdhdGUocHJvcHMubG9nby5yb3V0ZSkgOiBudWxsXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIFtzcmNdPVwicHJvcHMubG9nby5zcmNcIlxuICAgICAgICAgICAgW2FsdF09XCJwcm9wcy5sb2dvLmFsdFwiXG4gICAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cInByb3BzLmxvZ28uaGVpZ2h0IHx8ICczMnB4J1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgICBAaWYgKHByb3BzLmxvZ28udGl0bGUpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZG9jcy1zaWRlYmFyX19sb2dvLXRpdGxlXCI+e3sgcHJvcHMubG9nby50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICA8IS0tIE5hdmlnYXRpb24gc2VjdGlvbnMgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZG9jcy1zaWRlYmFyX19uYXZcIj5cbiAgICAgICAgQGZvciAoc2VjdGlvbiBvZiBwcm9wcy5zZWN0aW9uczsgdHJhY2sgc2VjdGlvbi50aXRsZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb2NzLXNpZGViYXJfX3NlY3Rpb25cIj5cbiAgICAgICAgICAgIDwhLS0gU2VjdGlvbiBoZWFkZXIgLS0+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImRvY3Mtc2lkZWJhcl9fc2VjdGlvbi1oZWFkZXJcIlxuICAgICAgICAgICAgICBbY2xhc3MuZG9jcy1zaWRlYmFyX19zZWN0aW9uLWhlYWRlci0tYWN0aXZlXT1cImlzU2VjdGlvbkFjdGl2ZShzZWN0aW9uKVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5kb2NzLXNpZGViYXJfX3NlY3Rpb24taGVhZGVyLS1leHBhbmRlZF09XCJleHBhbmRlZFNlY3Rpb25zW3NlY3Rpb24udGl0bGVdXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmRvY3Mtc2lkZWJhcl9fc2VjdGlvbi1oZWFkZXItLWNsaWNrYWJsZV09XCJzZWN0aW9uLnJvdXRlIHx8IHNlY3Rpb24uY2hpbGRyZW4/Lmxlbmd0aFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwic2VjdGlvbi5jaGlsZHJlbj8ubGVuZ3RoID8gZXhwYW5kZWRTZWN0aW9uc1tzZWN0aW9uLnRpdGxlXSA6IG51bGxcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwic2VjdGlvbi5yb3V0ZSAmJiBpc1NlY3Rpb25BY3RpdmUoc2VjdGlvbikgPyAncGFnZScgOiBudWxsXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VjdGlvbkNsaWNrKHNlY3Rpb24pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQGlmIChzZWN0aW9uLmljb24pIHtcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwic2VjdGlvbi5pY29uXCIgY2xhc3M9XCJkb2NzLXNpZGViYXJfX3NlY3Rpb24taWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkb2NzLXNpZGViYXJfX3NlY3Rpb24tdGl0bGVcIj57eyBzZWN0aW9uLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICBAaWYgKHNlY3Rpb24uYmFkZ2UpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRvY3Mtc2lkZWJhcl9fYmFkZ2UgZG9jcy1zaWRlYmFyX19iYWRnZS0tc2VjdGlvblwiPnt7IHNlY3Rpb24uYmFkZ2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChzZWN0aW9uLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICA8aW9uLWljb25cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZG9jcy1zaWRlYmFyX19jaGV2cm9uXCJcbiAgICAgICAgICAgICAgICAgIFtuYW1lXT1cImV4cGFuZGVkU2VjdGlvbnNbc2VjdGlvbi50aXRsZV0gPyAnY2hldnJvbi1kb3duLW91dGxpbmUnIDogJ2NoZXZyb24tZm9yd2FyZC1vdXRsaW5lJ1wiXG4gICAgICAgICAgICAgICAgPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICA8IS0tIFNlY3Rpb24gY2hpbGRyZW4gLS0+XG4gICAgICAgICAgICBAaWYgKHNlY3Rpb24uY2hpbGRyZW4/Lmxlbmd0aCAmJiBleHBhbmRlZFNlY3Rpb25zW3NlY3Rpb24udGl0bGVdKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb2NzLXNpZGViYXJfX2NoaWxkcmVuXCI+XG4gICAgICAgICAgICAgICAgQGZvciAobGluayBvZiBzZWN0aW9uLmNoaWxkcmVuOyB0cmFjayBsaW5rLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvY3Mtc2lkZWJhcl9fbGlua1wiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2NzLXNpZGViYXJfX2xpbmstLWFjdGl2ZV09XCJpc0xpbmtBY3RpdmUobGluaylcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiaXNMaW5rQWN0aXZlKGxpbmspID8gJ3BhZ2UnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5hdmlnYXRlKGxpbmsucm91dGUpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkb2NzLXNpZGViYXJfX2xpbmstbGFiZWxcIj57eyBsaW5rLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGxpbmsuYmFkZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2NzLXNpZGViYXJfX2JhZGdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2NzLXNpZGViYXJfX2JhZGdlLS1wcmltYXJ5XT1cImxpbmsuYmFkZ2VDb2xvciA9PT0gJ3ByaW1hcnknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2NzLXNpZGViYXJfX2JhZGdlLS1zdWNjZXNzXT1cImxpbmsuYmFkZ2VDb2xvciA9PT0gJ3N1Y2Nlc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2NzLXNpZGViYXJfX2JhZGdlLS13YXJuaW5nXT1cImxpbmsuYmFkZ2VDb2xvciA9PT0gJ3dhcm5pbmcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2NzLXNpZGViYXJfX2JhZGdlLS1kYW5nZXJdPVwibGluay5iYWRnZUNvbG9yID09PSAnZGFuZ2VyJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgPnt7IGxpbmsuYmFkZ2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvbmF2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9kb2NzLXNpZGViYXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jc1NpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHByb3BzOiBEb2NzU2lkZWJhck1ldGFkYXRhID0geyBzZWN0aW9uczogW10gfTtcblxuICBAT3V0cHV0KCkgbmF2aWdhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xuXG4gIGV4cGFuZGVkU2VjdGlvbnM6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XG4gIHByaXZhdGUgY3VycmVudFJvdXRlOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXplRXhwYW5kZWRTZWN0aW9ucygpO1xuICAgIHRoaXMudXBkYXRlQ3VycmVudFJvdXRlKCk7XG5cbiAgICAvLyBMaXN0ZW4gZm9yIHJvdXRlIGNoYW5nZXNcbiAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlQ3VycmVudFJvdXRlKCk7XG4gICAgICAgIHRoaXMuYXV0b0V4cGFuZEFjdGl2ZVNlY3Rpb24oKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydwcm9wcyddKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVFeHBhbmRlZFNlY3Rpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRXhwYW5kZWRTZWN0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BzLnNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XG4gICAgICBpZiAodGhpcy5leHBhbmRlZFNlY3Rpb25zW3NlY3Rpb24udGl0bGVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5leHBhbmRlZFNlY3Rpb25zW3NlY3Rpb24udGl0bGVdID0gc2VjdGlvbi5leHBhbmRlZCA/PyBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ3VycmVudFJvdXRlKCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFJvdXRlID0gdGhpcy5yb3V0ZXIudXJsLnNwbGl0KCcvJykuZmlsdGVyKEJvb2xlYW4pO1xuICAgIC8vIFVzZSBhY3RpdmVSb3V0ZSBmcm9tIHByb3BzIGlmIHByb3ZpZGVkXG4gICAgaWYgKHRoaXMucHJvcHMuYWN0aXZlUm91dGUpIHtcbiAgICAgIHRoaXMuY3VycmVudFJvdXRlID0gdGhpcy5wcm9wcy5hY3RpdmVSb3V0ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGF1dG9FeHBhbmRBY3RpdmVTZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMucHJvcHMuc2VjdGlvbnMuZm9yRWFjaChzZWN0aW9uID0+IHtcbiAgICAgIGlmIChzZWN0aW9uLmNoaWxkcmVuPy5zb21lKGxpbmsgPT4gdGhpcy5pc0xpbmtBY3RpdmUobGluaykpKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWRTZWN0aW9uc1tzZWN0aW9uLnRpdGxlXSA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvblNlY3Rpb25DbGljayhzZWN0aW9uOiBEb2NzU2lkZWJhclNlY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoc2VjdGlvbi5yb3V0ZSkge1xuICAgICAgdGhpcy5vbk5hdmlnYXRlKHNlY3Rpb24ucm91dGUpO1xuICAgIH0gZWxzZSBpZiAoc2VjdGlvbi5jaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmV4cGFuZGVkU2VjdGlvbnNbc2VjdGlvbi50aXRsZV0gPSAhdGhpcy5leHBhbmRlZFNlY3Rpb25zW3NlY3Rpb24udGl0bGVdO1xuICAgIH1cbiAgfVxuXG4gIG9uTmF2aWdhdGUocm91dGU6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5uYXZpZ2F0ZS5lbWl0KHJvdXRlKTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShyb3V0ZSk7XG4gIH1cblxuICBpc1NlY3Rpb25BY3RpdmUoc2VjdGlvbjogRG9jc1NpZGViYXJTZWN0aW9uKTogYm9vbGVhbiB7XG4gICAgaWYgKHNlY3Rpb24ucm91dGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnJvdXRlc01hdGNoKHNlY3Rpb24ucm91dGUsIHRoaXMuY3VycmVudFJvdXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIHNlY3Rpb24uY2hpbGRyZW4/LnNvbWUobGluayA9PiB0aGlzLmlzTGlua0FjdGl2ZShsaW5rKSkgPz8gZmFsc2U7XG4gIH1cblxuICBpc0xpbmtBY3RpdmUobGluazogRG9jc1NpZGViYXJMaW5rKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVzTWF0Y2gobGluay5yb3V0ZSwgdGhpcy5jdXJyZW50Um91dGUpO1xuICB9XG5cbiAgcHJpdmF0ZSByb3V0ZXNNYXRjaChyb3V0ZTogc3RyaW5nW10sIGN1cnJlbnQ6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgcm91dGVQYXRoID0gcm91dGUuam9pbignLycpLnJlcGxhY2UoL15cXC8vLCAnJyk7XG4gICAgY29uc3QgY3VycmVudFBhdGggPSBjdXJyZW50LmpvaW4oJy8nKTtcbiAgICByZXR1cm4gY3VycmVudFBhdGggPT09IHJvdXRlUGF0aCB8fCBjdXJyZW50UGF0aC5zdGFydHNXaXRoKHJvdXRlUGF0aCArICcvJyk7XG4gIH1cbn1cbiJdfQ==
|