valtech-components 4.0.1042 → 4.0.1044
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/select-search/select-search.component.mjs +51 -33
- package/esm2022/lib/components/organisms/chat-window/chat-window.component.mjs +4 -2
- package/esm2022/lib/components/organisms/thread-panel/thread-panel.component.mjs +1 -1
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +53 -35
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +1 -1
- package/lib/components/molecules/media-object/media-object.component.d.ts +1 -1
- package/lib/components/molecules/metadata-list/metadata-list.component.d.ts +1 -1
- package/lib/components/molecules/phone-display/phone-display.component.d.ts +1 -1
- package/lib/components/molecules/select-search/select-search.component.d.ts +2 -0
- package/lib/components/organisms/article/article.component.d.ts +1 -1
- package/lib/components/organisms/chat-window/chat-window.component.d.ts +2 -1
- package/lib/components/organisms/landing-steps/landing-steps.component.d.ts +1 -1
- package/lib/components/organisms/survey-builder/survey-builder.component.d.ts +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -2,6 +2,8 @@ import { CommonModule } from '@angular/common';
|
|
|
2
2
|
import { ChangeDetectorRef, Component, inject, Input } from '@angular/core';
|
|
3
3
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
4
|
import { IonicModule } from '@ionic/angular';
|
|
5
|
+
import { addIcons } from 'ionicons';
|
|
6
|
+
import { chevronDownOutline } from 'ionicons/icons';
|
|
5
7
|
import { I18nService } from '../../../services/i18n';
|
|
6
8
|
import { IconService } from '../../../services/icons.service';
|
|
7
9
|
import { ModalService } from '../../../services/modal/modal.service';
|
|
@@ -22,23 +24,6 @@ import * as i3 from "@angular/forms";
|
|
|
22
24
|
* @input props: InputMetadata - Configuration for the select input (form control, label, options, etc.)
|
|
23
25
|
*/
|
|
24
26
|
export class SelectSearchComponent {
|
|
25
|
-
constructor() {
|
|
26
|
-
this.label = '';
|
|
27
|
-
this.labelProperty = 'name';
|
|
28
|
-
this.valueProperty = 'id';
|
|
29
|
-
this.multiple = false;
|
|
30
|
-
this.placeholder = '';
|
|
31
|
-
this.icon = inject(IconService);
|
|
32
|
-
this.changeDetector = inject(ChangeDetectorRef);
|
|
33
|
-
this.i18n = inject(I18nService);
|
|
34
|
-
this.modals = inject(ModalService);
|
|
35
|
-
this.searchTerm = '';
|
|
36
|
-
this.filteredItems = [];
|
|
37
|
-
this.selectedItems = [];
|
|
38
|
-
this.displayValue = '';
|
|
39
|
-
this.previousOptions = [];
|
|
40
|
-
this.isProcessingChanges = false;
|
|
41
|
-
}
|
|
42
27
|
/**
|
|
43
28
|
* Label visible sobre el selector (estilo val-form). Solo se muestra si viene
|
|
44
29
|
* explícito por `props.label` o el input `label`; sin él, no se renderiza nada.
|
|
@@ -66,6 +51,24 @@ export class SelectSearchComponent {
|
|
|
66
51
|
getItemsSelectedText(count) {
|
|
67
52
|
return `${count} ${this.i18n.t('itemsSelected')}`;
|
|
68
53
|
}
|
|
54
|
+
constructor() {
|
|
55
|
+
this.label = '';
|
|
56
|
+
this.labelProperty = 'name';
|
|
57
|
+
this.valueProperty = 'id';
|
|
58
|
+
this.multiple = false;
|
|
59
|
+
this.placeholder = '';
|
|
60
|
+
this.icon = inject(IconService);
|
|
61
|
+
this.changeDetector = inject(ChangeDetectorRef);
|
|
62
|
+
this.i18n = inject(I18nService);
|
|
63
|
+
this.modals = inject(ModalService);
|
|
64
|
+
this.searchTerm = '';
|
|
65
|
+
this.filteredItems = [];
|
|
66
|
+
this.selectedItems = [];
|
|
67
|
+
this.displayValue = '';
|
|
68
|
+
this.previousOptions = [];
|
|
69
|
+
this.isProcessingChanges = false;
|
|
70
|
+
addIcons({ chevronDownOutline });
|
|
71
|
+
}
|
|
69
72
|
ngOnInit() {
|
|
70
73
|
this.applyDefaultValue();
|
|
71
74
|
this.initializeItems();
|
|
@@ -235,6 +238,11 @@ export class SelectSearchComponent {
|
|
|
235
238
|
event.stopPropagation();
|
|
236
239
|
void this.openPicker();
|
|
237
240
|
}
|
|
241
|
+
openPickerFromKeyboard(event) {
|
|
242
|
+
event.preventDefault();
|
|
243
|
+
event.stopPropagation();
|
|
244
|
+
void this.openPicker();
|
|
245
|
+
}
|
|
238
246
|
updateDisplayValue() {
|
|
239
247
|
if (this.props?.mode === 'legacy' && this.selectedItems.length === 0 && this.props?.control?.value) {
|
|
240
248
|
this.displayValue = this.props.control.value.toString();
|
|
@@ -288,33 +296,43 @@ export class SelectSearchComponent {
|
|
|
288
296
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SelectSearchComponent, isStandalone: true, selector: "val-select-search", inputs: { label: "label", labelProperty: "labelProperty", valueProperty: "valueProperty", multiple: "multiple", placeholder: "placeholder", props: "props" }, usesOnChanges: true, ngImport: i0, template: `
|
|
289
297
|
<label *ngIf="displayLabel" class="vss-label">{{ displayLabel }}</label>
|
|
290
298
|
|
|
291
|
-
<
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
299
|
+
<div
|
|
300
|
+
class="vss-control"
|
|
301
|
+
role="button"
|
|
302
|
+
tabindex="0"
|
|
303
|
+
[attr.aria-label]="getLabel()"
|
|
296
304
|
(mousedown)="preventDefaultBehavior($event)"
|
|
297
|
-
|
|
305
|
+
(keydown.enter)="openPickerFromKeyboard($event)"
|
|
306
|
+
(keydown.space)="openPickerFromKeyboard($event)"
|
|
307
|
+
>
|
|
308
|
+
<ion-input type="text" [value]="displayValue" [placeholder]="getPlaceholder()" readonly />
|
|
309
|
+
<ion-icon class="vss-indicator" name="chevron-down-outline" aria-hidden="true" />
|
|
310
|
+
</div>
|
|
298
311
|
|
|
299
312
|
<ion-input style="position: absolute;" [formControl]="props.control" type="hidden"></ion-input>
|
|
300
|
-
`, isInline: true, styles: [":host{display:block}.vss-label{display:block;margin-bottom:4px;font-size:.8125rem;color:var(--ion-color-dark, #43464d)}ion-header{padding:8px 8px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-input-otp[type=text],ion-textarea,ion-searchbar" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
|
|
313
|
+
`, isInline: true, styles: [":host{display:block}.vss-label{display:block;margin-bottom:4px;font-size:.8125rem;color:var(--ion-color-dark, #43464d)}.vss-control{position:relative;display:block;cursor:pointer}.vss-control ion-input{--padding-end: 44px;cursor:pointer}.vss-control:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:3px;border-radius:999px}.vss-indicator{position:absolute;top:50%;right:16px;width:1.25rem;height:1.25rem;transform:translateY(-50%);color:var(--ion-color-medium, #92949c);pointer-events:none}ion-header{padding:8px 8px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-input-otp[type=text],ion-textarea,ion-searchbar" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
|
|
301
314
|
}
|
|
302
315
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectSearchComponent, decorators: [{
|
|
303
316
|
type: Component,
|
|
304
317
|
args: [{ selector: 'val-select-search', standalone: true, imports: [CommonModule, IonicModule, FormsModule, ReactiveFormsModule], template: `
|
|
305
318
|
<label *ngIf="displayLabel" class="vss-label">{{ displayLabel }}</label>
|
|
306
319
|
|
|
307
|
-
<
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
320
|
+
<div
|
|
321
|
+
class="vss-control"
|
|
322
|
+
role="button"
|
|
323
|
+
tabindex="0"
|
|
324
|
+
[attr.aria-label]="getLabel()"
|
|
312
325
|
(mousedown)="preventDefaultBehavior($event)"
|
|
313
|
-
|
|
326
|
+
(keydown.enter)="openPickerFromKeyboard($event)"
|
|
327
|
+
(keydown.space)="openPickerFromKeyboard($event)"
|
|
328
|
+
>
|
|
329
|
+
<ion-input type="text" [value]="displayValue" [placeholder]="getPlaceholder()" readonly />
|
|
330
|
+
<ion-icon class="vss-indicator" name="chevron-down-outline" aria-hidden="true" />
|
|
331
|
+
</div>
|
|
314
332
|
|
|
315
333
|
<ion-input style="position: absolute;" [formControl]="props.control" type="hidden"></ion-input>
|
|
316
|
-
`, styles: [":host{display:block}.vss-label{display:block;margin-bottom:4px;font-size:.8125rem;color:var(--ion-color-dark, #43464d)}ion-header{padding:8px 8px 0}\n"] }]
|
|
317
|
-
}], propDecorators: { label: [{
|
|
334
|
+
`, styles: [":host{display:block}.vss-label{display:block;margin-bottom:4px;font-size:.8125rem;color:var(--ion-color-dark, #43464d)}.vss-control{position:relative;display:block;cursor:pointer}.vss-control ion-input{--padding-end: 44px;cursor:pointer}.vss-control:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:3px;border-radius:999px}.vss-indicator{position:absolute;top:50%;right:16px;width:1.25rem;height:1.25rem;transform:translateY(-50%);color:var(--ion-color-medium, #92949c);pointer-events:none}ion-header{padding:8px 8px 0}\n"] }]
|
|
335
|
+
}], ctorParameters: () => [], propDecorators: { label: [{
|
|
318
336
|
type: Input
|
|
319
337
|
}], labelProperty: [{
|
|
320
338
|
type: Input
|
|
@@ -327,4 +345,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
327
345
|
}], props: [{
|
|
328
346
|
type: Input
|
|
329
347
|
}] } });
|
|
330
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlbGVjdC1zZWFyY2gvc2VsZWN0LXNlYXJjaC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7QUFvQzFGOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUE1Q2xDO1FBNkNXLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsa0JBQWEsR0FBVyxNQUFNLENBQUM7UUFDL0Isa0JBQWEsR0FBVyxJQUFJLENBQUM7UUFDN0IsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQVdsQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFD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QUUsQ0FBQztZQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdEMsQ0FBQzsrR0FwU1UscUJBQXFCO21HQUFyQixxQkFBcUIsZ1FBeEN0Qjs7Ozs7Ozs7Ozs7O0dBWVQsK05BYlMsWUFBWSxrSUFBRSxXQUFXLHdxQkFBRSxXQUFXLHNJQUFFLG1CQUFtQjs7NEZBeUMxRCxxQkFBcUI7a0JBNUNqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxZQUM1RDs7Ozs7Ozs7Ozs7O0dBWVQ7OEJBNkJRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQVNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IEljb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaWNvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IGFwcGx5RGVmYXVsdFZhbHVlVG9Db250cm9sIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL2Zvcm0tZGVmYXVsdHMnO1xuaW1wb3J0IHsgSW5wdXRNZXRhZGF0YSwgSW5wdXRPcHRpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBTZWxlY3RTZWFyY2hQaWNrZXJNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LXNlYXJjaC1waWNrZXItbW9kYWwuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXNlbGVjdC1zZWFyY2gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25pY01vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxsYWJlbCAqbmdJZj1cImRpc3BsYXlMYWJlbFwiIGNsYXNzPVwidnNzLWxhYmVsXCI+e3sgZGlzcGxheUxhYmVsIH19PC9sYWJlbD5cblxuICAgIDxpb24taW5wdXRcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIFt2YWx1ZV09XCJkaXNwbGF5VmFsdWVcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyKClcIlxuICAgICAgcmVhZG9ubHlcbiAgICAgIChtb3VzZWRvd24pPVwicHJldmVudERlZmF1bHRCZWhhdmlvcigkZXZlbnQpXCJcbiAgICAvPlxuXG4gICAgPGlvbi1pbnB1dCBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTtcIiBbZm9ybUNvbnRyb2xdPVwicHJvcHMuY29udHJvbFwiIHR5cGU9XCJoaWRkZW5cIj48L2lvbi1pbnB1dD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgIC52c3MtbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLCAjNDM0NjRkKTtcbiAgICAgIH1cbiAgICAgIGlvbi1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiA4cHggOHB4IDBweCA4cHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG4vKipcbiAqIHZhbC1zZWxlY3Qtc2VhcmNoXG4gKlxuICogQSBzZWFyY2hhYmxlIHNlbGVjdC9kcm9wZG93biBpbnB1dCB3aXRoIG1vZGFsIGFuZCBmaWx0ZXJpbmcsIGludGVncmF0ZWQgd2l0aCBBbmd1bGFyIGZvcm1zLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLXNlbGVjdC1zZWFyY2ggW3Byb3BzXT1cInsgY29udHJvbDogbXlDb250cm9sLCBsYWJlbDogJ0Nob29zZScsIG9wdGlvbnM6IFt7IGlkOiAnMScsIG5hbWU6ICdPcHRpb24gMScgfV0gfVwiPjwvdmFsLXNlbGVjdC1zZWFyY2g+XG4gKlxuICogQGlucHV0IHByb3BzOiBJbnB1dE1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIHNlbGVjdCBpbnB1dCAoZm9ybSBjb250cm9sLCBsYWJlbCwgb3B0aW9ucywgZXRjLilcbiAqL1xuZXhwb3J0IGNsYXNzIFNlbGVjdFNlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBsYWJlbFByb3BlcnR5OiBzdHJpbmcgPSAnbmFtZSc7XG4gIEBJbnB1dCgpIHZhbHVlUHJvcGVydHk6IHN0cmluZyA9ICdpZCc7XG4gIEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcbiAgLyoqXG4gICAqIElucHV0IGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKiBAdHlwZSB7SW5wdXRNZXRhZGF0YX1cbiAgICogQHByb3BlcnR5IGNvbnRyb2wgLSBUaGUgQW5ndWxhciBGb3JtQ29udHJvbCBmb3IgdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHByb3BlcnR5IGxhYmVsIC0gVGhlIGxhYmVsIGZvciB0aGUgc2VsZWN0LlxuICAgKiBAcHJvcGVydHkgb3B0aW9ucyAtIFRoZSBhdmFpbGFibGUgb3B0aW9ucyBmb3IgdGhlIHNlbGVjdC5cbiAgICogQHByb3BlcnR5IHBsYWNlaG9sZGVyIC0gVGhlIHBsYWNlaG9sZGVyIHRleHQuXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogSW5wdXRNZXRhZGF0YSAmIHsgbW9kZT86ICdsZWdhY3knIHwgJ3N0cmljdCcgfTtcblxuICBpY29uID0gaW5qZWN0KEljb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgbW9kYWxzID0gaW5qZWN0KE1vZGFsU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIExhYmVsIHZpc2libGUgc29icmUgZWwgc2VsZWN0b3IgKGVzdGlsbyB2YWwtZm9ybSkuIFNvbG8gc2UgbXVlc3RyYSBzaSB2aWVuZVxuICAgKiBleHBsw61jaXRvIHBvciBgcHJvcHMubGFiZWxgIG8gZWwgaW5wdXQgYGxhYmVsYDsgc2luIMOpbCwgbm8gc2UgcmVuZGVyaXphIG5hZGEuXG4gICAqL1xuICBnZXQgZGlzcGxheUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHM/LmxhYmVsIHx8IHRoaXMubGFiZWwgfHwgJyc7XG4gIH1cblxuICAvKiogR2V0IHJlc29sdmVkIGxhYmVsIHdpdGggaTE4biBmYWxsYmFjayAodMOtdHVsbyBkZWwgbW9kYWwpLiAqL1xuICBnZXRMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzPy5sYWJlbCB8fCB0aGlzLmxhYmVsIHx8IHRoaXMuaTE4bi50KCdzZWxlY3QnKTtcbiAgfVxuXG4gIC8qKiBHZXQgcmVzb2x2ZWQgcGxhY2Vob2xkZXIgd2l0aCBpMThuIGZhbGxiYWNrICovXG4gIGdldFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHM/LnBsYWNlaG9sZGVyIHx8IHRoaXMucGxhY2Vob2xkZXIgfHwgdGhpcy5pMThuLnQoJ3NlbGVjdE9wdGlvbicpO1xuICB9XG5cbiAgLyoqIEdldCBjbG9zZSBidXR0b24gdGV4dCAqL1xuICBnZXRDbG9zZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoJ2Nsb3NlJyk7XG4gIH1cblxuICAvKiogR2V0IG5vIHJlc3VsdHMgdGV4dCAqL1xuICBnZXROb1Jlc3VsdHNUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCdub1Jlc3VsdHMnKTtcbiAgfVxuXG4gIC8qKiBHZXQgaXRlbXMgc2VsZWN0ZWQgdGV4dCAqL1xuICBnZXRJdGVtc1NlbGVjdGVkVGV4dChjb3VudDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7Y291bnR9ICR7dGhpcy5pMThuLnQoJ2l0ZW1zU2VsZWN0ZWQnKX1gO1xuICB9XG5cbiAgc2VhcmNoVGVybTogc3RyaW5nID0gJyc7XG4gIGZpbHRlcmVkSXRlbXM6IElucHV0T3B0aW9uW10gPSBbXTtcbiAgc2VsZWN0ZWRJdGVtczogSW5wdXRPcHRpb25bXSA9IFtdO1xuICBkaXNwbGF5VmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgcHJldmlvdXNPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIGlzUHJvY2Vzc2luZ0NoYW5nZXMgPSBmYWxzZTtcbiAgcHJpdmF0ZSB2YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hcHBseURlZmF1bHRWYWx1ZSgpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gICAgdGhpcy5zeW5jQ29udHJvbFZhbHVlV2l0aFNlbGVjdGVkSXRlbXMoKTtcbiAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgIHRoaXMuc3Vic2NyaWJlVG9WYWx1ZUNoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIExpbXBpYXIgc3VzY3JpcGNpb25lcyBwYXJhIGV2aXRhciBtZW1vcnkgbGVha3NcbiAgICBpZiAodGhpcy52YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vIEV2aXRhciBidWNsZXMgaW5maW5pdG9zXG4gICAgaWYgKHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEN1YW5kbyBjYW1iaWEgcHJvcHMgbyBwcm9wcy5vcHRpb25zXG4gICAgaWYgKGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcyA9IHRydWU7XG5cbiAgICAgICAgLy8gRGVzdXNjcmliaXJzZSBkZWwgYW50aWd1byBjb250cm9sIHNpIGV4aXN0ZVxuICAgICAgICBpZiAodGhpcy52YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHM/Lm9wdGlvbnMpIHtcbiAgICAgICAgICAvLyBWZXJpZmljYXIgc2kgbGFzIG9wY2lvbmVzIGhhbiBjYW1iaWFkbyByZWFsbWVudGVcbiAgICAgICAgICBjb25zdCBvcHRpb25zQ2hhbmdlZCA9ICF0aGlzLmFyZU9wdGlvbnNFcXVhbCh0aGlzLnByZXZpb3VzT3B0aW9ucywgdGhpcy5wcm9wcy5vcHRpb25zKTtcblxuICAgICAgICAgIGlmIChvcHRpb25zQ2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5wcmV2aW91c09wdGlvbnMgPSBbLi4udGhpcy5wcm9wcy5vcHRpb25zXTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2luY3Jvbml6YXIgY29uIGVsIG51ZXZvIGNvbnRyb2wgc2kgZXhpc3RlXG4gICAgICAgIHRoaXMuc3luY0NvbnRyb2xWYWx1ZVdpdGhTZWxlY3RlZEl0ZW1zKCk7XG4gICAgICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG5cbiAgICAgICAgLy8gU3VzY3JpYmlyc2UgYWwgbnVldm8gY29udHJvbFxuICAgICAgICB0aGlzLnN1YnNjcmliZVRvVmFsdWVDaGFuZ2VzKCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpb25WaWV3V2lsbEVudGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gICAgICB0aGlzLnN5bmNDb250cm9sVmFsdWVXaXRoU2VsZWN0ZWRJdGVtcygpO1xuICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICAgIHRoaXMuc3Vic2NyaWJlVG9WYWx1ZUNoYW5nZXMoKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLy8gU3VzY3JpYmlyc2UgYSBjYW1iaW9zIGVuIGVsIEZvcm1Db250cm9sXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9WYWx1ZUNoYW5nZXMoKSB7XG4gICAgaWYgKCF0aGlzLnByb3BzPy5jb250cm9sKSByZXR1cm47XG5cbiAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbiA9IHRoaXMucHJvcHMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIGlmICh0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMpIHJldHVybjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zeW5jQ29udHJvbFZhbHVlV2l0aFNlbGVjdGVkSXRlbXMoKTtcbiAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcyA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gQ29tcGFyYSBzaSBkb3MgYXJyYXlzIGRlIG9wY2lvbmVzIHNvbiBpZ3VhbGVzXG4gIHByaXZhdGUgYXJlT3B0aW9uc0VxdWFsKHByZXZPcHRpb25zOiBhbnlbXSwgbmV3T3B0aW9uczogYW55W10pOiBib29sZWFuIHtcbiAgICAvLyBQRVJGOiBVc2UgcmVmZXJlbmNlIGVxdWFsaXR5IGZpcnN0IGZvciBmYXN0IHBhdGhcbiAgICBpZiAocHJldk9wdGlvbnMgPT09IG5ld09wdGlvbnMpIHJldHVybiB0cnVlO1xuICAgIGlmICghcHJldk9wdGlvbnMgfHwgIW5ld09wdGlvbnMpIHJldHVybiBwcmV2T3B0aW9ucyA9PT0gbmV3T3B0aW9ucztcbiAgICBpZiAocHJldk9wdGlvbnMubGVuZ3RoICE9PSBuZXdPcHRpb25zLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgIC8vIE9ubHkgY29tcGFyZSB2YWx1ZVByb3BlcnR5IGZvciBlcXVhbGl0eVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJldk9wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChwcmV2T3B0aW9uc1tpXVt0aGlzLnZhbHVlUHJvcGVydHldICE9PSBuZXdPcHRpb25zW2ldW3RoaXMudmFsdWVQcm9wZXJ0eV0pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUl0ZW1zKCk6IHZvaWQge1xuICAgIC8vIFBFUkY6IEF2b2lkIHVubmVjZXNzYXJ5IGFycmF5IGNvcGllc1xuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMucHJvcHM/Lm9wdGlvbnMgfHwgW107XG4gIH1cblxuICBwcml2YXRlIHN5bmNDb250cm9sVmFsdWVXaXRoU2VsZWN0ZWRJdGVtcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJvcHM/LmNvbnRyb2wpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjb250cm9sVmFsdWUgPSB0aGlzLnByb3BzLmNvbnRyb2wudmFsdWU7XG4gICAgaWYgKHRoaXMucHJvcHMubW9kZSA9PT0gJ2xlZ2FjeScpIHtcbiAgICAgIC8vIFBlcm1pc2l2bzogbXVlc3RyYSBlbCB2YWxvciBhdW5xdWUgbm8gZXN0w6kgZW4gbGFzIG9wY2lvbmVzXG4gICAgICBpZiAoY29udHJvbFZhbHVlICE9PSBudWxsICYmIGNvbnRyb2xWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gY29udHJvbFZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEVzdHJpY3RvOiBzb2xvIG11ZXN0cmEgc2kgY29pbmNpZGUgY29uIHVuYSBvcGNpw7NuXG4gICAgICBpZiAoY29udHJvbFZhbHVlID09PSBudWxsIHx8IGNvbnRyb2xWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5wcm9wcy5vcHRpb25zICYmIHRoaXMucHJvcHMub3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAodGhpcy5wcm9wcy5vcHRpb25zLm1hcChvcHQgPT4gW29wdFt0aGlzLnZhbHVlUHJvcGVydHldLCBvcHRdKSk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gbWFwLmdldChjb250cm9sVmFsdWUpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBzZWxlY3RlZE9wdGlvbiA/IFtzZWxlY3RlZE9wdGlvbl0gOiBbXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlEZWZhdWx0VmFsdWUoKTogdm9pZCB7XG4gICAgYXBwbHlEZWZhdWx0VmFsdWVUb0NvbnRyb2wodGhpcy5wcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogQWJyZSBlbCBwaWNrZXIgdsOtYSBgTW9kYWxTZXJ2aWNlLm9wZW5BZGFwdGl2ZWAgKFJlZ2xhICM1OiBmdWxsLXNjcmVlbiBlblxuICAgKiBtb2JpbGUsIGNhcmQgZmxvdGFudGUgZW4gZGVza3RvcCkgZW4gdmV6IGRlbCBgaW9uLW1vZGFsYCBjb24gYnJlYWtwb2ludHNcbiAgICogcXVlIGVzdGUgY29tcG9uZW50ZSB0ZW7DrWEgZW1iZWJpZG8gYW50ZXMg4oCUIG1pc21vIGJvdHRvbS1zaGVldCBlblxuICAgKiBjdWFscXVpZXIgdGFtYcOxbyBkZSBwYW50YWxsYSwgc2luIGVsIHRyYXRhbWllbnRvIGRlIGNhcmQgY2VudHJhZGEgcXVlIHlhXG4gICAqIHVzYSBlbCByZXN0byBkZSBsb3MgbW9kYWxlcyBkZWwgZmFjdG9yeS4gRWwgZmlsdHJhZG8sIGxhIHNlbGVjY2nDs24geSBlbFxuICAgKiBmb290ZXIgXCJBcGxpY2FyXCIgKG1vZG8gYG11bHRpcGxlYCkgdml2ZW4gZW4gYFNlbGVjdFNlYXJjaFBpY2tlck1vZGFsQ29tcG9uZW50YC5cbiAgICovXG4gIGFzeW5jIG9wZW5QaWNrZXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBkYXRhLCByb2xlIH0gPSBhd2FpdCB0aGlzLm1vZGFscy5vcGVuQWRhcHRpdmU8U2VsZWN0U2VhcmNoUGlja2VyTW9kYWxDb21wb25lbnQ+KHtcbiAgICAgIGNvbXBvbmVudDogU2VsZWN0U2VhcmNoUGlja2VyTW9kYWxDb21wb25lbnQsXG4gICAgICBjb21wb25lbnRQcm9wczoge1xuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIHRpdGxlOiB0aGlzLmdldExhYmVsKCksXG4gICAgICAgICAgb3B0aW9uczogdGhpcy5wcm9wcz8ub3B0aW9ucyA/PyBbXSxcbiAgICAgICAgICB2YWx1ZVByb3BlcnR5OiB0aGlzLnZhbHVlUHJvcGVydHksXG4gICAgICAgICAgbGFiZWxQcm9wZXJ0eTogdGhpcy5sYWJlbFByb3BlcnR5LFxuICAgICAgICAgIG11bHRpcGxlOiB0aGlzLm11bHRpcGxlLFxuICAgICAgICAgIHNlbGVjdGVkVmFsdWVzOiB0aGlzLnNlbGVjdGVkSXRlbXMubWFwKGl0ZW0gPT4gaXRlbVt0aGlzLnZhbHVlUHJvcGVydHldKSxcbiAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5nZXRQbGFjZWhvbGRlcigpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBpZiAocm9sZSAhPT0gJ3NlbGVjdGVkJyB8fCAhZGF0YSkgcmV0dXJuO1xuXG4gICAgY29uc3QgdmFsdWVzOiB1bmtub3duW10gPSAoZGF0YSBhcyB7IHZhbHVlczogdW5rbm93bltdIH0pLnZhbHVlcyA/PyBbXTtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5wcm9wcz8ub3B0aW9ucyA/PyBbXTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB2YWx1ZXNcbiAgICAgIC5tYXAodiA9PiBvcHRpb25zLmZpbmQobyA9PiBvW3RoaXMudmFsdWVQcm9wZXJ0eV0gPT09IHYpKVxuICAgICAgLmZpbHRlcigobyk6IG8gaXMgSW5wdXRPcHRpb24gPT4gISFvKTtcblxuICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgdGhpcy5hcHBseUNoYW5nZXMoKTtcbiAgfVxuXG4gIHByZXZlbnREZWZhdWx0QmVoYXZpb3IoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHZvaWQgdGhpcy5vcGVuUGlja2VyKCk7XG4gIH1cblxuICB1cGRhdGVEaXNwbGF5VmFsdWUoKSB7XG4gICAgaWYgKHRoaXMucHJvcHM/Lm1vZGUgPT09ICdsZWdhY3knICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IDAgJiYgdGhpcy5wcm9wcz8uY29udHJvbD8udmFsdWUpIHtcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5wcm9wcy5jb250cm9sLnZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnNlbGVjdGVkSXRlbXNbMF1bdGhpcy5sYWJlbFByb3BlcnR5XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5nZXRJdGVtc1NlbGVjdGVkVGV4dCh0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnNlbGVjdGVkSXRlbXNbMF1bdGhpcy5sYWJlbFByb3BlcnR5XTtcbiAgICB9XG4gIH1cblxuICBhcHBseUNoYW5nZXMoKSB7XG4gICAgaWYgKCF0aGlzLnByb3BzPy5jb250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcyA9IHRydWU7XG5cbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnByb3BzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy5zZWxlY3RlZEl0ZW1zWzBdW3RoaXMudmFsdWVQcm9wZXJ0eV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wcm9wcy5jb250cm9sLnNldFZhbHVlKG51bGwpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnByb3BzLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgIHRoaXMucHJvcHMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8vIE3DqXRvZG8gcMO6YmxpY28gcGFyYSByZWluaWNpYXIgZWwgY29tcG9uZW50ZVxuICByZXNldCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9ICcnO1xuICAgIGlmICh0aGlzLnByb3BzPy5jb250cm9sKSB7XG4gICAgICB0aGlzLnByb3BzLmNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59XG4iXX0=
|
|
348
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlbGVjdC1zZWFyY2gvc2VsZWN0LXNlYXJjaC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7OztBQWlFMUY7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLHFCQUFxQjtJQXFCaEM7OztPQUdHO0lBQ0gsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLFFBQVE7UUFDTixPQUFP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Q2pDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDOUMsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQztJQUVELDhDQUE4QztJQUM5QyxLQUFLO1FBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QyxDQUFDOytHQTlTVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixnUUFyRXRCOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVCx5bUJBbEJTLFlBQVksa0lBQUUsV0FBVyw2MEJBQUUsV0FBVyxzSUFBRSxtQkFBbUI7OzRGQXNFMUQscUJBQXFCO2tCQXpFakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLENBQUMsWUFDNUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJUO3dEQXFEUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFTRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGNoZXZyb25Eb3duT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IEljb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaWNvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IGFwcGx5RGVmYXVsdFZhbHVlVG9Db250cm9sIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL2Zvcm0tZGVmYXVsdHMnO1xuaW1wb3J0IHsgSW5wdXRNZXRhZGF0YSwgSW5wdXRPcHRpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBTZWxlY3RTZWFyY2hQaWNrZXJNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LXNlYXJjaC1waWNrZXItbW9kYWwuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXNlbGVjdC1zZWFyY2gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25pY01vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxsYWJlbCAqbmdJZj1cImRpc3BsYXlMYWJlbFwiIGNsYXNzPVwidnNzLWxhYmVsXCI+e3sgZGlzcGxheUxhYmVsIH19PC9sYWJlbD5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidnNzLWNvbnRyb2xcIlxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRMYWJlbCgpXCJcbiAgICAgIChtb3VzZWRvd24pPVwicHJldmVudERlZmF1bHRCZWhhdmlvcigkZXZlbnQpXCJcbiAgICAgIChrZXlkb3duLmVudGVyKT1cIm9wZW5QaWNrZXJGcm9tS2V5Ym9hcmQoJGV2ZW50KVwiXG4gICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvcGVuUGlja2VyRnJvbUtleWJvYXJkKCRldmVudClcIlxuICAgID5cbiAgICAgIDxpb24taW5wdXQgdHlwZT1cInRleHRcIiBbdmFsdWVdPVwiZGlzcGxheVZhbHVlXCIgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyKClcIiByZWFkb25seSAvPlxuICAgICAgPGlvbi1pY29uIGNsYXNzPVwidnNzLWluZGljYXRvclwiIG5hbWU9XCJjaGV2cm9uLWRvd24tb3V0bGluZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8aW9uLWlucHV0IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlO1wiIFtmb3JtQ29udHJvbF09XCJwcm9wcy5jb250cm9sXCIgdHlwZT1cImhpZGRlblwiPjwvaW9uLWlucHV0PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLnZzcy1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmssICM0MzQ2NGQpO1xuICAgICAgfVxuICAgICAgLnZzcy1jb250cm9sIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuICAgICAgLnZzcy1jb250cm9sIGlvbi1pbnB1dCB7XG4gICAgICAgIC0tcGFkZGluZy1lbmQ6IDQ0cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICAgIC52c3MtY29udHJvbDpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDNweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICB9XG4gICAgICAudnNzLWluZGljYXRvciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHJpZ2h0OiAxNnB4O1xuICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG4gICAgICBpb24taGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogOHB4IDhweCAwcHggOHB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuLyoqXG4gKiB2YWwtc2VsZWN0LXNlYXJjaFxuICpcbiAqIEEgc2VhcmNoYWJsZSBzZWxlY3QvZHJvcGRvd24gaW5wdXQgd2l0aCBtb2RhbCBhbmQgZmlsdGVyaW5nLCBpbnRlZ3JhdGVkIHdpdGggQW5ndWxhciBmb3Jtcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1zZWxlY3Qtc2VhcmNoIFtwcm9wc109XCJ7IGNvbnRyb2w6IG15Q29udHJvbCwgbGFiZWw6ICdDaG9vc2UnLCBvcHRpb25zOiBbeyBpZDogJzEnLCBuYW1lOiAnT3B0aW9uIDEnIH1dIH1cIj48L3ZhbC1zZWxlY3Qtc2VhcmNoPlxuICpcbiAqIEBpbnB1dCBwcm9wczogSW5wdXRNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzZWxlY3QgaW5wdXQgKGZvcm0gY29udHJvbCwgbGFiZWwsIG9wdGlvbnMsIGV0Yy4pXG4gKi9cbmV4cG9ydCBjbGFzcyBTZWxlY3RTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgbGFiZWxQcm9wZXJ0eTogc3RyaW5nID0gJ25hbWUnO1xuICBASW5wdXQoKSB2YWx1ZVByb3BlcnR5OiBzdHJpbmcgPSAnaWQnO1xuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG4gIC8qKlxuICAgKiBJbnB1dCBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICogQHR5cGUge0lucHV0TWV0YWRhdGF9XG4gICAqIEBwcm9wZXJ0eSBjb250cm9sIC0gVGhlIEFuZ3VsYXIgRm9ybUNvbnRyb2wgZm9yIHRoZSBzZWxlY3QgaW5wdXQuXG4gICAqIEBwcm9wZXJ0eSBsYWJlbCAtIFRoZSBsYWJlbCBmb3IgdGhlIHNlbGVjdC5cbiAgICogQHByb3BlcnR5IG9wdGlvbnMgLSBUaGUgYXZhaWxhYmxlIG9wdGlvbnMgZm9yIHRoZSBzZWxlY3QuXG4gICAqIEBwcm9wZXJ0eSBwbGFjZWhvbGRlciAtIFRoZSBwbGFjZWhvbGRlciB0ZXh0LlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IElucHV0TWV0YWRhdGEgJiB7IG1vZGU/OiAnbGVnYWN5JyB8ICdzdHJpY3QnIH07XG5cbiAgaWNvbiA9IGluamVjdChJY29uU2VydmljZSk7XG4gIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIG1vZGFscyA9IGluamVjdChNb2RhbFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBMYWJlbCB2aXNpYmxlIHNvYnJlIGVsIHNlbGVjdG9yIChlc3RpbG8gdmFsLWZvcm0pLiBTb2xvIHNlIG11ZXN0cmEgc2kgdmllbmVcbiAgICogZXhwbMOtY2l0byBwb3IgYHByb3BzLmxhYmVsYCBvIGVsIGlucHV0IGBsYWJlbGA7IHNpbiDDqWwsIG5vIHNlIHJlbmRlcml6YSBuYWRhLlxuICAgKi9cbiAgZ2V0IGRpc3BsYXlMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzPy5sYWJlbCB8fCB0aGlzLmxhYmVsIHx8ICcnO1xuICB9XG5cbiAgLyoqIEdldCByZXNvbHZlZCBsYWJlbCB3aXRoIGkxOG4gZmFsbGJhY2sgKHTDrXR1bG8gZGVsIG1vZGFsKS4gKi9cbiAgZ2V0TGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcz8ubGFiZWwgfHwgdGhpcy5sYWJlbCB8fCB0aGlzLmkxOG4udCgnc2VsZWN0Jyk7XG4gIH1cblxuICAvKiogR2V0IHJlc29sdmVkIHBsYWNlaG9sZGVyIHdpdGggaTE4biBmYWxsYmFjayAqL1xuICBnZXRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzPy5wbGFjZWhvbGRlciB8fCB0aGlzLnBsYWNlaG9sZGVyIHx8IHRoaXMuaTE4bi50KCdzZWxlY3RPcHRpb24nKTtcbiAgfVxuXG4gIC8qKiBHZXQgY2xvc2UgYnV0dG9uIHRleHQgKi9cbiAgZ2V0Q2xvc2VUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCdjbG9zZScpO1xuICB9XG5cbiAgLyoqIEdldCBubyByZXN1bHRzIHRleHQgKi9cbiAgZ2V0Tm9SZXN1bHRzVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgnbm9SZXN1bHRzJyk7XG4gIH1cblxuICAvKiogR2V0IGl0ZW1zIHNlbGVjdGVkIHRleHQgKi9cbiAgZ2V0SXRlbXNTZWxlY3RlZFRleHQoY291bnQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke2NvdW50fSAke3RoaXMuaTE4bi50KCdpdGVtc1NlbGVjdGVkJyl9YDtcbiAgfVxuXG4gIHNlYXJjaFRlcm06IHN0cmluZyA9ICcnO1xuICBmaWx0ZXJlZEl0ZW1zOiBJbnB1dE9wdGlvbltdID0gW107XG4gIHNlbGVjdGVkSXRlbXM6IElucHV0T3B0aW9uW10gPSBbXTtcbiAgZGlzcGxheVZhbHVlOiBzdHJpbmcgPSAnJztcblxuICBwcml2YXRlIHByZXZpb3VzT3B0aW9uczogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSBpc1Byb2Nlc3NpbmdDaGFuZ2VzID0gZmFsc2U7XG4gIHByaXZhdGUgdmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGFkZEljb25zKHsgY2hldnJvbkRvd25PdXRsaW5lIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hcHBseURlZmF1bHRWYWx1ZSgpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gICAgdGhpcy5zeW5jQ29udHJvbFZhbHVlV2l0aFNlbGVjdGVkSXRlbXMoKTtcbiAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgIHRoaXMuc3Vic2NyaWJlVG9WYWx1ZUNoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIExpbXBpYXIgc3VzY3JpcGNpb25lcyBwYXJhIGV2aXRhciBtZW1vcnkgbGVha3NcbiAgICBpZiAodGhpcy52YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vIEV2aXRhciBidWNsZXMgaW5maW5pdG9zXG4gICAgaWYgKHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEN1YW5kbyBjYW1iaWEgcHJvcHMgbyBwcm9wcy5vcHRpb25zXG4gICAgaWYgKGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcyA9IHRydWU7XG5cbiAgICAgICAgLy8gRGVzdXNjcmliaXJzZSBkZWwgYW50aWd1byBjb250cm9sIHNpIGV4aXN0ZVxuICAgICAgICBpZiAodGhpcy52YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHM/Lm9wdGlvbnMpIHtcbiAgICAgICAgICAvLyBWZXJpZmljYXIgc2kgbGFzIG9wY2lvbmVzIGhhbiBjYW1iaWFkbyByZWFsbWVudGVcbiAgICAgICAgICBjb25zdCBvcHRpb25zQ2hhbmdlZCA9ICF0aGlzLmFyZU9wdGlvbnNFcXVhbCh0aGlzLnByZXZpb3VzT3B0aW9ucywgdGhpcy5wcm9wcy5vcHRpb25zKTtcblxuICAgICAgICAgIGlmIChvcHRpb25zQ2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5wcmV2aW91c09wdGlvbnMgPSBbLi4udGhpcy5wcm9wcy5vcHRpb25zXTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2luY3Jvbml6YXIgY29uIGVsIG51ZXZvIGNvbnRyb2wgc2kgZXhpc3RlXG4gICAgICAgIHRoaXMuc3luY0NvbnRyb2xWYWx1ZVdpdGhTZWxlY3RlZEl0ZW1zKCk7XG4gICAgICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG5cbiAgICAgICAgLy8gU3VzY3JpYmlyc2UgYWwgbnVldm8gY29udHJvbFxuICAgICAgICB0aGlzLnN1YnNjcmliZVRvVmFsdWVDaGFuZ2VzKCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpb25WaWV3V2lsbEVudGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gICAgICB0aGlzLnN5bmNDb250cm9sVmFsdWVXaXRoU2VsZWN0ZWRJdGVtcygpO1xuICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICAgIHRoaXMuc3Vic2NyaWJlVG9WYWx1ZUNoYW5nZXMoKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLy8gU3VzY3JpYmlyc2UgYSBjYW1iaW9zIGVuIGVsIEZvcm1Db250cm9sXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9WYWx1ZUNoYW5nZXMoKSB7XG4gICAgaWYgKCF0aGlzLnByb3BzPy5jb250cm9sKSByZXR1cm47XG5cbiAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbiA9IHRoaXMucHJvcHMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIGlmICh0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMpIHJldHVybjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zeW5jQ29udHJvbFZhbHVlV2l0aFNlbGVjdGVkSXRlbXMoKTtcbiAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcyA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gQ29tcGFyYSBzaSBkb3MgYXJyYXlzIGRlIG9wY2lvbmVzIHNvbiBpZ3VhbGVzXG4gIHByaXZhdGUgYXJlT3B0aW9uc0VxdWFsKHByZXZPcHRpb25zOiBhbnlbXSwgbmV3T3B0aW9uczogYW55W10pOiBib29sZWFuIHtcbiAgICAvLyBQRVJGOiBVc2UgcmVmZXJlbmNlIGVxdWFsaXR5IGZpcnN0IGZvciBmYXN0IHBhdGhcbiAgICBpZiAocHJldk9wdGlvbnMgPT09IG5ld09wdGlvbnMpIHJldHVybiB0cnVlO1xuICAgIGlmICghcHJldk9wdGlvbnMgfHwgIW5ld09wdGlvbnMpIHJldHVybiBwcmV2T3B0aW9ucyA9PT0gbmV3T3B0aW9ucztcbiAgICBpZiAocHJldk9wdGlvbnMubGVuZ3RoICE9PSBuZXdPcHRpb25zLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgIC8vIE9ubHkgY29tcGFyZSB2YWx1ZVByb3BlcnR5IGZvciBlcXVhbGl0eVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJldk9wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChwcmV2T3B0aW9uc1tpXVt0aGlzLnZhbHVlUHJvcGVydHldICE9PSBuZXdPcHRpb25zW2ldW3RoaXMudmFsdWVQcm9wZXJ0eV0pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUl0ZW1zKCk6IHZvaWQge1xuICAgIC8vIFBFUkY6IEF2b2lkIHVubmVjZXNzYXJ5IGFycmF5IGNvcGllc1xuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMucHJvcHM/Lm9wdGlvbnMgfHwgW107XG4gIH1cblxuICBwcml2YXRlIHN5bmNDb250cm9sVmFsdWVXaXRoU2VsZWN0ZWRJdGVtcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJvcHM/LmNvbnRyb2wpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjb250cm9sVmFsdWUgPSB0aGlzLnByb3BzLmNvbnRyb2wudmFsdWU7XG4gICAgaWYgKHRoaXMucHJvcHMubW9kZSA9PT0gJ2xlZ2FjeScpIHtcbiAgICAgIC8vIFBlcm1pc2l2bzogbXVlc3RyYSBlbCB2YWxvciBhdW5xdWUgbm8gZXN0w6kgZW4gbGFzIG9wY2lvbmVzXG4gICAgICBpZiAoY29udHJvbFZhbHVlICE9PSBudWxsICYmIGNvbnRyb2xWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gY29udHJvbFZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEVzdHJpY3RvOiBzb2xvIG11ZXN0cmEgc2kgY29pbmNpZGUgY29uIHVuYSBvcGNpw7NuXG4gICAgICBpZiAoY29udHJvbFZhbHVlID09PSBudWxsIHx8IGNvbnRyb2xWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5wcm9wcy5vcHRpb25zICYmIHRoaXMucHJvcHMub3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAodGhpcy5wcm9wcy5vcHRpb25zLm1hcChvcHQgPT4gW29wdFt0aGlzLnZhbHVlUHJvcGVydHldLCBvcHRdKSk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gbWFwLmdldChjb250cm9sVmFsdWUpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBzZWxlY3RlZE9wdGlvbiA/IFtzZWxlY3RlZE9wdGlvbl0gOiBbXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlEZWZhdWx0VmFsdWUoKTogdm9pZCB7XG4gICAgYXBwbHlEZWZhdWx0VmFsdWVUb0NvbnRyb2wodGhpcy5wcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogQWJyZSBlbCBwaWNrZXIgdsOtYSBgTW9kYWxTZXJ2aWNlLm9wZW5BZGFwdGl2ZWAgKFJlZ2xhICM1OiBmdWxsLXNjcmVlbiBlblxuICAgKiBtb2JpbGUsIGNhcmQgZmxvdGFudGUgZW4gZGVza3RvcCkgZW4gdmV6IGRlbCBgaW9uLW1vZGFsYCBjb24gYnJlYWtwb2ludHNcbiAgICogcXVlIGVzdGUgY29tcG9uZW50ZSB0ZW7DrWEgZW1iZWJpZG8gYW50ZXMg4oCUIG1pc21vIGJvdHRvbS1zaGVldCBlblxuICAgKiBjdWFscXVpZXIgdGFtYcOxbyBkZSBwYW50YWxsYSwgc2luIGVsIHRyYXRhbWllbnRvIGRlIGNhcmQgY2VudHJhZGEgcXVlIHlhXG4gICAqIHVzYSBlbCByZXN0byBkZSBsb3MgbW9kYWxlcyBkZWwgZmFjdG9yeS4gRWwgZmlsdHJhZG8sIGxhIHNlbGVjY2nDs24geSBlbFxuICAgKiBmb290ZXIgXCJBcGxpY2FyXCIgKG1vZG8gYG11bHRpcGxlYCkgdml2ZW4gZW4gYFNlbGVjdFNlYXJjaFBpY2tlck1vZGFsQ29tcG9uZW50YC5cbiAgICovXG4gIGFzeW5jIG9wZW5QaWNrZXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBkYXRhLCByb2xlIH0gPSBhd2FpdCB0aGlzLm1vZGFscy5vcGVuQWRhcHRpdmU8U2VsZWN0U2VhcmNoUGlja2VyTW9kYWxDb21wb25lbnQ+KHtcbiAgICAgIGNvbXBvbmVudDogU2VsZWN0U2VhcmNoUGlja2VyTW9kYWxDb21wb25lbnQsXG4gICAgICBjb21wb25lbnRQcm9wczoge1xuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIHRpdGxlOiB0aGlzLmdldExhYmVsKCksXG4gICAgICAgICAgb3B0aW9uczogdGhpcy5wcm9wcz8ub3B0aW9ucyA/PyBbXSxcbiAgICAgICAgICB2YWx1ZVByb3BlcnR5OiB0aGlzLnZhbHVlUHJvcGVydHksXG4gICAgICAgICAgbGFiZWxQcm9wZXJ0eTogdGhpcy5sYWJlbFByb3BlcnR5LFxuICAgICAgICAgIG11bHRpcGxlOiB0aGlzLm11bHRpcGxlLFxuICAgICAgICAgIHNlbGVjdGVkVmFsdWVzOiB0aGlzLnNlbGVjdGVkSXRlbXMubWFwKGl0ZW0gPT4gaXRlbVt0aGlzLnZhbHVlUHJvcGVydHldKSxcbiAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5nZXRQbGFjZWhvbGRlcigpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBpZiAocm9sZSAhPT0gJ3NlbGVjdGVkJyB8fCAhZGF0YSkgcmV0dXJuO1xuXG4gICAgY29uc3QgdmFsdWVzOiB1bmtub3duW10gPSAoZGF0YSBhcyB7IHZhbHVlczogdW5rbm93bltdIH0pLnZhbHVlcyA/PyBbXTtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5wcm9wcz8ub3B0aW9ucyA/PyBbXTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB2YWx1ZXNcbiAgICAgIC5tYXAodiA9PiBvcHRpb25zLmZpbmQobyA9PiBvW3RoaXMudmFsdWVQcm9wZXJ0eV0gPT09IHYpKVxuICAgICAgLmZpbHRlcigobyk6IG8gaXMgSW5wdXRPcHRpb24gPT4gISFvKTtcblxuICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgdGhpcy5hcHBseUNoYW5nZXMoKTtcbiAgfVxuXG4gIHByZXZlbnREZWZhdWx0QmVoYXZpb3IoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHZvaWQgdGhpcy5vcGVuUGlja2VyKCk7XG4gIH1cblxuICBvcGVuUGlja2VyRnJvbUtleWJvYXJkKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdm9pZCB0aGlzLm9wZW5QaWNrZXIoKTtcbiAgfVxuXG4gIHVwZGF0ZURpc3BsYXlWYWx1ZSgpIHtcbiAgICBpZiAodGhpcy5wcm9wcz8ubW9kZSA9PT0gJ2xlZ2FjeScgJiYgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA9PT0gMCAmJiB0aGlzLnByb3BzPy5jb250cm9sPy52YWx1ZSkge1xuICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnByb3BzLmNvbnRyb2wudmFsdWUudG9TdHJpbmcoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuc2VsZWN0ZWRJdGVtc1swXVt0aGlzLmxhYmVsUHJvcGVydHldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmdldEl0ZW1zU2VsZWN0ZWRUZXh0KHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuc2VsZWN0ZWRJdGVtc1swXVt0aGlzLmxhYmVsUHJvcGVydHldO1xuICAgIH1cbiAgfVxuXG4gIGFwcGx5Q2hhbmdlcygpIHtcbiAgICBpZiAoIXRoaXMucHJvcHM/LmNvbnRyb2wpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzID0gdHJ1ZTtcblxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMucHJvcHMuY29udHJvbC5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkSXRlbXNbMF1bdGhpcy52YWx1ZVByb3BlcnR5XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByb3BzLmNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJvcHMuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgdGhpcy5wcm9wcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLy8gTcOpdG9kbyBww7pibGljbyBwYXJhIHJlaW5pY2lhciBlbCBjb21wb25lbnRlXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gJyc7XG4gICAgaWYgKHRoaXMucHJvcHM/LmNvbnRyb2wpIHtcbiAgICAgIHRoaXMucHJvcHMuY29udHJvbC5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -69,6 +69,7 @@ export class ChatWindowComponent {
|
|
|
69
69
|
this.deleteMessage = output();
|
|
70
70
|
this.replyTo = output();
|
|
71
71
|
this.editMessage = output();
|
|
72
|
+
this.copyMessage = output();
|
|
72
73
|
this.typing = output();
|
|
73
74
|
this.voice = output();
|
|
74
75
|
this.msgsEl = viewChild('msgs');
|
|
@@ -178,6 +179,7 @@ export class ChatWindowComponent {
|
|
|
178
179
|
this.reactionClick.emit({ msgId: event.msgId, token: event.token ?? '👍' });
|
|
179
180
|
break;
|
|
180
181
|
case 'copy':
|
|
182
|
+
this.copyMessage.emit(event.msgId);
|
|
181
183
|
break;
|
|
182
184
|
}
|
|
183
185
|
}
|
|
@@ -185,7 +187,7 @@ export class ChatWindowComponent {
|
|
|
185
187
|
return this.i18n.t(key, 'ChatWindow');
|
|
186
188
|
}
|
|
187
189
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWindowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
188
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChatWindowComponent, isStandalone: true, selector: "val-chat-window", inputs: { convId: { classPropertyName: "convId", publicName: "convId", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, currentUserId: { classPropertyName: "currentUserId", publicName: "currentUserId", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, typingUsers: { classPropertyName: "typingUsers", publicName: "typingUsers", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, canModerate: { classPropertyName: "canModerate", publicName: "canModerate", isSignal: true, isRequired: false, transformFunction: null }, showAttach: { classPropertyName: "showAttach", publicName: "showAttach", isSignal: true, isRequired: false, transformFunction: null }, showDictation: { classPropertyName: "showDictation", publicName: "showDictation", isSignal: true, isRequired: false, transformFunction: null }, showVoiceMessage: { classPropertyName: "showVoiceMessage", publicName: "showVoiceMessage", isSignal: true, isRequired: false, transformFunction: null }, showAvatars: { classPropertyName: "showAvatars", publicName: "showAvatars", isSignal: true, isRequired: false, transformFunction: null }, renderAiMessages: { classPropertyName: "renderAiMessages", publicName: "renderAiMessages", isSignal: true, isRequired: false, transformFunction: null }, showReactions: { classPropertyName: "showReactions", publicName: "showReactions", isSignal: true, isRequired: false, transformFunction: null }, showReplyAction: { classPropertyName: "showReplyAction", publicName: "showReplyAction", isSignal: true, isRequired: false, transformFunction: null }, showReactAction: { classPropertyName: "showReactAction", publicName: "showReactAction", isSignal: true, isRequired: false, transformFunction: null }, showEditAction: { classPropertyName: "showEditAction", publicName: "showEditAction", isSignal: true, isRequired: false, transformFunction: null }, showDeleteAction: { classPropertyName: "showDeleteAction", publicName: "showDeleteAction", isSignal: true, isRequired: false, transformFunction: null }, showCopyAction: { classPropertyName: "showCopyAction", publicName: "showCopyAction", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sendMessage: "sendMessage", loadMore: "loadMore", reactionClick: "reactionClick", deleteMessage: "deleteMessage", replyTo: "replyTo", editMessage: "editMessage", typing: "typing", voice: "voice" }, viewQueries: [{ propertyName: "msgsEl", first: true, predicate: ["msgs"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
190
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChatWindowComponent, isStandalone: true, selector: "val-chat-window", inputs: { convId: { classPropertyName: "convId", publicName: "convId", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, currentUserId: { classPropertyName: "currentUserId", publicName: "currentUserId", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, typingUsers: { classPropertyName: "typingUsers", publicName: "typingUsers", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, canModerate: { classPropertyName: "canModerate", publicName: "canModerate", isSignal: true, isRequired: false, transformFunction: null }, showAttach: { classPropertyName: "showAttach", publicName: "showAttach", isSignal: true, isRequired: false, transformFunction: null }, showDictation: { classPropertyName: "showDictation", publicName: "showDictation", isSignal: true, isRequired: false, transformFunction: null }, showVoiceMessage: { classPropertyName: "showVoiceMessage", publicName: "showVoiceMessage", isSignal: true, isRequired: false, transformFunction: null }, showAvatars: { classPropertyName: "showAvatars", publicName: "showAvatars", isSignal: true, isRequired: false, transformFunction: null }, renderAiMessages: { classPropertyName: "renderAiMessages", publicName: "renderAiMessages", isSignal: true, isRequired: false, transformFunction: null }, showReactions: { classPropertyName: "showReactions", publicName: "showReactions", isSignal: true, isRequired: false, transformFunction: null }, showReplyAction: { classPropertyName: "showReplyAction", publicName: "showReplyAction", isSignal: true, isRequired: false, transformFunction: null }, showReactAction: { classPropertyName: "showReactAction", publicName: "showReactAction", isSignal: true, isRequired: false, transformFunction: null }, showEditAction: { classPropertyName: "showEditAction", publicName: "showEditAction", isSignal: true, isRequired: false, transformFunction: null }, showDeleteAction: { classPropertyName: "showDeleteAction", publicName: "showDeleteAction", isSignal: true, isRequired: false, transformFunction: null }, showCopyAction: { classPropertyName: "showCopyAction", publicName: "showCopyAction", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sendMessage: "sendMessage", loadMore: "loadMore", reactionClick: "reactionClick", deleteMessage: "deleteMessage", replyTo: "replyTo", editMessage: "editMessage", copyMessage: "copyMessage", typing: "typing", voice: "voice" }, viewQueries: [{ propertyName: "msgsEl", first: true, predicate: ["msgs"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
189
191
|
<div class="chat">
|
|
190
192
|
<div #msgs class="messages" (scroll)="onScroll()">
|
|
191
193
|
@if (isLoading()) {
|
|
@@ -325,4 +327,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
325
327
|
</div>
|
|
326
328
|
`, styles: [":host{display:block;position:relative;height:100%;min-height:0}.chat{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--val-chat-background, var(--ion-background-color, #fff))}.messages{flex:1;min-height:0;overflow-y:auto;padding:var(--val-chat-messages-padding, 18px 16px 12px);display:flex;flex-direction:column;gap:2px}.state{margin:auto;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--ion-color-dark, #92949c);font-size:.9375rem;text-align:center;padding:24px}.state.empty ion-icon{font-size:2.5rem;opacity:.5}.date-sep{position:sticky;top:4px;z-index:1;display:flex;justify-content:center;margin:8px 0}.date-sep span{font-size:.75rem;color:var(--ion-color-dark, #92949c);background:var(--val-chat-date-background, rgba(127, 127, 127, .08));padding:3px 12px;border-radius:999px;backdrop-filter:blur(4px)}.scroll-down{position:absolute;right:14px;bottom:84px;width:40px;height:40px;border-radius:50%;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-card-background, var(--ion-background-color, #fff));color:var(--ion-color-dark, #92949c);box-shadow:0 2px 10px #00000026;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;z-index:3}.scroll-down .dot{position:absolute;top:0;right:0;width:12px;height:12px;border-radius:50%;background:var(--ion-color-primary);border:2px solid var(--ion-card-background, #fff)}.closed-banner{text-align:center;padding:14px;color:var(--ion-color-dark, #92949c);font-size:.875rem}\n"] }]
|
|
327
329
|
}], ctorParameters: () => [] });
|
|
328
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC13aW5kb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9jaGF0LXdpbmRvdy9jaGF0LXdpbmRvdy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQXVCLE1BQU0seURBQXlELENBQUM7QUFFdEgsT0FBTyxFQUFFLHFCQUFxQixFQUF5QixNQUFNLHVEQUF1RCxDQUFDO0FBQ3JILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDOztBQUV2RyxRQUFRLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7QUFFbkQsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixFQUFFLEVBQUU7UUFDRixrQkFBa0IsRUFBRSxnQ0FBZ0M7UUFDcEQsT0FBTyxFQUFFLHNCQUFzQjtRQUMvQixVQUFVLEVBQUUsMENBQTBDO1FBQ3RELFdBQVcsRUFBRSxpQkFBaUI7S0FDL0I7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LCtCQUFFLE9BQU8sMkpBQUUsc0JBQXNCLGtTQUFFLHFCQUFxQixnT0FBRSx3QkFBd0I7OzRGQW9LN0YsbUJBQW1CO2tCQXZLL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLHdCQUF3QixDQUFDLFlBQy9GOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUVUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBvdXRwdXQsIHNpZ25hbCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW9uSWNvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBhcnJvd0Rvd25PdXRsaW5lLCBjaGF0YnViYmxlc091dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBmb3JtYXREYXRlU2VwYXJhdG9yIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL2RhdGV0aW1lJztcbmltcG9ydCB7IE1lc3NhZ2VSZXBseVRvIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2hhdC90eXBlcyc7XG5pbXBvcnQgeyBNZXNzYWdlQnViYmxlQ29tcG9uZW50LCBNZXNzYWdlQnViYmxlQWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL21lc3NhZ2UtYnViYmxlL21lc3NhZ2UtYnViYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZXNzYWdlQnViYmxlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvbWVzc2FnZS1idWJibGUvdHlwZXMnO1xuaW1wb3J0IHsgQ2hhdENvbXBvc2VyQ29tcG9uZW50LCBDaGF0Q29tcG9zZXJTZW5kRXZlbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY2hhdC1jb21wb3Nlci9jaGF0LWNvbXBvc2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUeXBpbmdJbmRpY2F0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdHlwaW5nLWluZGljYXRvci90eXBpbmctaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5cbmFkZEljb25zKHsgYXJyb3dEb3duT3V0bGluZSwgY2hhdGJ1YmJsZXNPdXRsaW5lIH0pO1xuXG5jb25zdCBDSEFUX1dJTkRPV19JMThOID0ge1xuICBlczoge1xuICAgIGNvbnZlcnNhdGlvbkNsb3NlZDogJ0VzdGEgY29udmVyc2FjaW9uIGVzdGEgY2VycmFkYScsXG4gICAgbG9hZGluZzogJ0NhcmdhbmRvIG1lbnNhamVzLi4uJyxcbiAgICBub01lc3NhZ2VzOiAnQXVuIG5vIGhheSBtZW5zYWplcy4gRXNjcmliZSBlbCBwcmltZXJvLicsXG4gICAgbmV3TWVzc2FnZXM6ICdNZW5zYWplcyBudWV2b3MnLFxuICB9LFxuICBlbjoge1xuICAgIGNvbnZlcnNhdGlvbkNsb3NlZDogJ1RoaXMgY29udmVyc2F0aW9uIGlzIGNsb3NlZCcsXG4gICAgbG9hZGluZzogJ0xvYWRpbmcgbWVzc2FnZXMuLi4nLFxuICAgIG5vTWVzc2FnZXM6ICdObyBtZXNzYWdlcyB5ZXQuIFNlbmQgdGhlIGZpcnN0IG9uZS4nLFxuICAgIG5ld01lc3NhZ2VzOiAnTmV3IG1lc3NhZ2VzJyxcbiAgfSxcbn07XG5cbnR5cGUgQ2hhdFJvdyA9XG4gIHwgeyBraW5kOiAnZGF0ZSc7IGlkOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVxuICB8IHtcbiAgICAgIGtpbmQ6ICdtc2cnO1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIG1zZzogTWVzc2FnZUJ1YmJsZU1ldGFkYXRhO1xuICAgICAgc2hvd05hbWU6IGJvb2xlYW47XG4gICAgICBzaG93QXZhdGFyOiBib29sZWFuO1xuICAgICAgdGFpbDogYm9vbGVhbjtcbiAgICB9O1xuXG4vKipcbiAqIHZhbC1jaGF0LXdpbmRvdyDigJQgdmVudGFuYSBkZSBjaGF0IGNvbXBsZXRhIChzaWduYWwgaW5wdXRzKS5cbiAqXG4gKiBBZ3J1cGEgbWVuc2FqZXMgY29uc2VjdXRpdm9zIGRlbCBtaXNtbyBlbWlzb3IgeSBwb3IgZMOtYSAoc2VwYXJhZG9yZXMgc3RpY2t5KSxcbiAqIG11ZXN0cmEgYXZhdGFyL25vbWJyZSBzb2xvIGVuIGxvcyBib3JkZXMgZGVsIGdydXBvLCBzY3JvbGwtdG8tYm90dG9tIGludGVsaWdlbnRlXG4gKiAoYXV0by1zY3JvbGwgc2kgZXN0w6FzIGFiYWpvLCBwaWxsIFwibWVuc2FqZXMgbnVldm9zXCIgc2kgZXN0w6FzIGxleWVuZG8gYXJyaWJhKSxcbiAqIGNvbXBvc2VyIG1vZGVybm8gY29uIGNvbnRleHRvIGRlIHJlc3B1ZXN0YSwgeSB0eXBpbmcgaW5kaWNhdG9yLlxuICpcbiAqIEFQSSBww7pibGljYSBlc3RhYmxlIChjb25zdW1pZGEgcG9yIHRocmVhZC1wYW5lbCB5IHNob3djYXNlKTogaW5wdXRzIGNvbnZJZCxcbiAqIG1lc3NhZ2VzLCBjdXJyZW50VXNlcklkLCBpc09wZW4sIHR5cGluZ1VzZXJzLCBpc0xvYWRpbmc7IG91dHB1dHMgc2VuZE1lc3NhZ2UsXG4gKiBsb2FkTW9yZSwgcmVhY3Rpb25DbGljaywgZGVsZXRlTWVzc2FnZSwgcmVwbHlUbyAoKyBlZGl0TWVzc2FnZS9hdHRhY2gvdm9pY2UgbnVldm9zKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNoYXQtd2luZG93JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uSWNvbiwgTWVzc2FnZUJ1YmJsZUNvbXBvbmVudCwgQ2hhdENvbXBvc2VyQ29tcG9uZW50LCBUeXBpbmdJbmRpY2F0b3JDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjaGF0XCI+XG4gICAgICA8ZGl2ICNtc2dzIGNsYXNzPVwibWVzc2FnZXNcIiAoc2Nyb2xsKT1cIm9uU2Nyb2xsKClcIj5cbiAgICAgICAgQGlmIChpc0xvYWRpbmcoKSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0ZVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgdCgnbG9hZGluZycpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIGlmIChyb3dzKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlIGVtcHR5XCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoYXRidWJibGVzLW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICAgICAgPHNwYW4+e3sgdCgnbm9NZXNzYWdlcycpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICBAZm9yIChyb3cgb2Ygcm93cygpOyB0cmFjayByb3cuaWQpIHtcbiAgICAgICAgICAgIEBpZiAocm93LmtpbmQgPT09ICdkYXRlJykge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1zZXBcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyByb3cubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDx2YWwtbWVzc2FnZS1idWJibGVcbiAgICAgICAgICAgICAgICBbbXNnXT1cInJvdy5tc2dcIlxuICAgICAgICAgICAgICAgIFtzaG93TmFtZV09XCJyb3cuc2hvd05hbWVcIlxuICAgICAgICAgICAgICAgIFtzaG93QXZhdGFyXT1cInJvdy5zaG93QXZhdGFyXCJcbiAgICAgICAgICAgICAgICBbdGFpbF09XCJyb3cudGFpbFwiXG4gICAgICAgICAgICAgICAgW2xvY2FsZV09XCJsb2NhbGUoKVwiXG4gICAgICAgICAgICAgICAgW2Nhbk1vZGVyYXRlXT1cImNhbk1vZGVyYXRlKClcIlxuICAgICAgICAgICAgICAgIFtyZW5kZXJBaU1lc3NhZ2VdPVwicmVuZGVyQWlNZXNzYWdlcygpICYmICFyb3cubXNnLmlzTWluZVwiXG4gICAgICAgICAgICAgICAgW3Nob3dSZWFjdGlvbnNdPVwic2hvd1JlYWN0aW9ucygpXCJcbiAgICAgICAgICAgICAgICBbc2hvd1JlcGx5QWN0aW9uXT1cInNob3dSZXBseUFjdGlvbigpXCJcbiAgICAgICAgICAgICAgICBbc2hvd1JlYWN0QWN0aW9uXT1cInNob3dSZWFjdEFjdGlvbigpXCJcbiAgICAgICAgICAgICAgICBbc2hvd0VkaXRBY3Rpb25dPVwic2hvd0VkaXRBY3Rpb24oKVwiXG4gICAgICAgICAgICAgICAgW3Nob3dEZWxldGVBY3Rpb25dPVwic2hvd0RlbGV0ZUFjdGlvbigpXCJcbiAgICAgICAgICAgICAgICBbc2hvd0NvcHlBY3Rpb25dPVwic2hvd0NvcHlBY3Rpb24oKVwiXG4gICAgICAgICAgICAgICAgKGFjdGlvbik9XCJvbkFjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPHZhbC10eXBpbmctaW5kaWNhdG9yIFt0eXBpbmdVc2Vyc109XCJ0eXBpbmdVc2VycygpXCIgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICBAaWYgKCFhdEJvdHRvbSgpKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJzY3JvbGwtZG93blwiIChjbGljayk9XCJzY3JvbGxUb0JvdHRvbSh0cnVlKVwiIGFyaWEtbGFiZWw9XCJzY3JvbGxcIj5cbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImFycm93LWRvd24tb3V0bGluZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgQGlmIChoYXNOZXcoKSkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkb3RcIj48L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChpc09wZW4oKSkge1xuICAgICAgICA8dmFsLWNoYXQtY29tcG9zZXJcbiAgICAgICAgICBbcmVwbHlpbmdUb109XCJyZXBseWluZ1RvKClcIlxuICAgICAgICAgIFtzaG93QXR0YWNoXT1cInNob3dBdHRhY2goKVwiXG4gICAgICAgICAgW3Nob3dNaWNdPVwic2hvd0RpY3RhdGlvbigpXCJcbiAgICAgICAgICBbc2hvd1ZvaWNlTWVzc2FnZV09XCJzaG93Vm9pY2VNZXNzYWdlKClcIlxuICAgICAgICAgIChzZW5kKT1cIm9uU2VuZCgkZXZlbnQpXCJcbiAgICAgICAgICAodHlwaW5nKT1cInR5cGluZy5lbWl0KClcIlxuICAgICAgICAgICh2b2ljZSk9XCJ2b2ljZS5lbWl0KClcIlxuICAgICAgICAgIChjYW5jZWxSZXBseSk9XCJyZXBseWluZ1RvLnNldChudWxsKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY29tcG9zZXItbGVhZGluZ11cIiAvPlxuICAgICAgICA8L3ZhbC1jaGF0LWNvbXBvc2VyPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjbG9zZWQtYmFubmVyXCI+e3sgdCgnY29udmVyc2F0aW9uQ2xvc2VkJykgfX08L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICB9XG4gICAgICAvKiBwb3NpdGlvbjphYnNvbHV0ZSArIGluc2V0OjAgZGEgYWwgY29udGVuZWRvciB1bmEgYWx0dXJhIERFRklOSURBICg9IGxhIGRlbFxuICAgICAgICAgaG9zdCksIHNpbiBkZXBlbmRlciBkZSBoZWlnaHQ6MTAwJSBxdWUgbm8gcmVzdWVsdmUgZW4gY2FkZW5hcyBmbGV4L3NoYWRvdy5cbiAgICAgICAgIE1lbnNhamVzIHNjcm9sbGVhbjsgZWwgY29tcG9zZXIgKGZsZXg6bm9uZSkgcXVlZGEgYW5jbGFkbyBhYmFqbyBzaWVtcHJlLiAqL1xuICAgICAgLmNoYXQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS12YWwtY2hhdC1iYWNrZ3JvdW5kLCB2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZikpO1xuICAgICAgfVxuICAgICAgLm1lc3NhZ2VzIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgcGFkZGluZzogdmFyKC0tdmFsLWNoYXQtbWVzc2FnZXMtcGFkZGluZywgMThweCAxNnB4IDEycHgpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgIH1cbiAgICAgIC5zdGF0ZSB7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyaywgIzkyOTQ5Yyk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgICB9XG4gICAgICAuc3RhdGUuZW1wdHkgaW9uLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgfVxuICAgICAgLmRhdGUtc2VwIHtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgdG9wOiA0cHg7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXJnaW46IDhweCAwO1xuICAgICAgfVxuICAgICAgLmRhdGUtc2VwIHNwYW4ge1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyaywgIzkyOTQ5Yyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZhbC1jaGF0LWRhdGUtYmFja2dyb3VuZCwgcmdiYSgxMjcsIDEyNywgMTI3LCAwLjA4KSk7XG4gICAgICAgIHBhZGRpbmc6IDNweCAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG4gICAgICB9XG4gICAgICAuc2Nyb2xsLWRvd24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAxNHB4O1xuICAgICAgICBib3R0b206IDg0cHg7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW9uLWJvcmRlci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjEpKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgdmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLCAjOTI5NDljKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgfVxuICAgICAgLnNjcm9sbC1kb3duIC5kb3Qge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1pb24tY2FyZC1iYWNrZ3JvdW5kLCAjZmZmKTtcbiAgICAgIH1cbiAgICAgIC5jbG9zZWQtYmFubmVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAxNHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmssICM5Mjk0OWMpO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENoYXRXaW5kb3dDb21wb25lbnQge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGNvbnZJZCA9IGlucHV0PHN0cmluZz4oJycpO1xuICByZWFkb25seSBtZXNzYWdlcyA9IGlucHV0PE1lc3NhZ2VCdWJibGVNZXRhZGF0YVtdPihbXSk7XG4gIHJlYWRvbmx5IGN1cnJlbnRVc2VySWQgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcmVhZG9ubHkgaXNPcGVuID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IHR5cGluZ1VzZXJzID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcbiAgcmVhZG9ubHkgaXNMb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICAvKiogT3duZXIvbW9kZXJhdG9yIGRlbCBjaGF0OiBoYWJpbGl0YSBib3JyYXIgbWVuc2FqZXMgYWplbm9zIChtb2RlcmFjaW9uKS4gKi9cbiAgcmVhZG9ubHkgY2FuTW9kZXJhdGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIC8vIEZlYXR1cmUtZmxhZ3MgZGVsIGNvbXBvc2VyIOKAlCBjYWRhIGFwcC9jb25zdW1pZG9yIGRlY2lkZSBxdcOpIGhhYmlsaXRhci5cbiAgLyoqIEJvdMOzbiBkZSBhZGp1bnRhciBhcmNoaXZvcy9pbcOhZ2VuZXMuICovXG4gIHJlYWRvbmx5IHNob3dBdHRhY2ggPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgLyoqIEJvdMOzbiBkZSBkaWN0YWRvIHZveuKGknRleHRvIChTcGVlY2hSZWNvZ25pdGlvbikuICovXG4gIHJlYWRvbmx5IHNob3dEaWN0YXRpb24gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgLyoqIEJvdMOzbiBkZSBtZW5zYWplIGRlIHZveiAoZ3JhYmFyIGNsaXAgZGUgYXVkaW8pLiAqL1xuICByZWFkb25seSBzaG93Vm9pY2VNZXNzYWdlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICAvKiogTXVlc3RyYSBhdmF0YXJlcyBlbiBtZW5zYWplcyBhamVub3MuIERlc2FjdGl2YWJsZSBwYXJhIGNoYXRzIDE6MSBvIGFnZW50ZXMuICovXG4gIHJlYWRvbmx5IHNob3dBdmF0YXJzID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IHJlbmRlckFpTWVzc2FnZXMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHNob3dSZWFjdGlvbnMgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgc2hvd1JlcGx5QWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IHNob3dSZWFjdEFjdGlvbiA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBzaG93RWRpdEFjdGlvbiA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBzaG93RGVsZXRlQWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IHNob3dDb3B5QWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHJlYWRvbmx5IHNlbmRNZXNzYWdlID0gb3V0cHV0PENoYXRDb21wb3NlclNlbmRFdmVudD4oKTtcbiAgcmVhZG9ubHkgbG9hZE1vcmUgPSBvdXRwdXQ8dm9pZD4oKTtcbiAgcmVhZG9ubHkgcmVhY3Rpb25DbGljayA9IG91dHB1dDx7IG1zZ0lkOiBzdHJpbmc7IHRva2VuOiBzdHJpbmcgfT4oKTtcbiAgcmVhZG9ubHkgZGVsZXRlTWVzc2FnZSA9IG91dHB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHJlcGx5VG8gPSBvdXRwdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBlZGl0TWVzc2FnZSA9IG91dHB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHR5cGluZyA9IG91dHB1dDx2b2lkPigpO1xuICByZWFkb25seSB2b2ljZSA9IG91dHB1dDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbXNnc0VsID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PignbXNncycpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSByZXBseWluZ1RvID0gc2lnbmFsPE1lc3NhZ2VSZXBseVRvIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBhdEJvdHRvbSA9IHNpZ25hbCh0cnVlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhc05ldyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvY2FsZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmkxOG4ubGFuZygpID09PSAnZW4nID8gJ2VuLVVTJyA6ICdlcy1DTCcpKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cygnQ2hhdFdpbmRvdycsIENIQVRfV0lORE9XX0kxOE4pO1xuXG4gICAgLy8gQXV0by1zY3JvbGwgYWwgZm9uZG8gY3VhbmRvIGxsZWdhbiBtZW5zYWplcyB5IGVsIHVzdWFyaW8geWEgZXN0YWJhIGFiYWpvXG4gICAgLy8gKG8gZWwgw7psdGltbyBtZW5zYWplIGVzIHByb3BpbykuIFNpIGVzdMOhIGxleWVuZG8gYXJyaWJhLCBtYXJjYSBcIm51ZXZvc1wiLlxuICAgIGxldCBwcmV2U2lnbmF0dXJlID0gJyc7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2VzID0gdGhpcy5tZXNzYWdlcygpO1xuICAgICAgY29uc3QgbGFzdCA9IG1lc3NhZ2VzW21lc3NhZ2VzLmxlbmd0aCAtIDFdO1xuICAgICAgY29uc3Qgc2lnbmF0dXJlID0gYCR7bWVzc2FnZXMubGVuZ3RofToke2xhc3Q/Lm1zZ0lkID8/ICcnfToke2xhc3Q/LmJvZHk/Lmxlbmd0aCA/PyAwfWA7XG4gICAgICBpZiAoc2lnbmF0dXJlID09PSBwcmV2U2lnbmF0dXJlKSByZXR1cm47XG4gICAgICBjb25zdCBwcmV2aW91c0NvdW50ID0gTnVtYmVyKHByZXZTaWduYXR1cmUuc3BsaXQoJzonKVswXSB8fCAwKTtcbiAgICAgIGNvbnN0IGdyZXcgPSBtZXNzYWdlcy5sZW5ndGggPiBwcmV2aW91c0NvdW50O1xuICAgICAgcHJldlNpZ25hdHVyZSA9IHNpZ25hdHVyZTtcbiAgICAgIGNvbnN0IG1pbmUgPSBsYXN0Py5pc01pbmUgPz8gZmFsc2U7XG4gICAgICBpZiAodGhpcy5hdEJvdHRvbSgpIHx8IG1pbmUpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNjcm9sbFRvQm90dG9tKGZhbHNlKSwgMCk7XG4gICAgICB9IGVsc2UgaWYgKGdyZXcpIHtcbiAgICAgICAgdGhpcy5oYXNOZXcuc2V0KHRydWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvd3MgPSBjb21wdXRlZDxDaGF0Um93W10+KCgpID0+IHtcbiAgICBjb25zdCBtc2dzID0gdGhpcy5tZXNzYWdlcygpO1xuICAgIGlmIChtc2dzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IGxhYmVscyA9IHtcbiAgICAgIHRvZGF5OiB0aGlzLmkxOG4udCgndG9kYXknLCAnX2dsb2JhbCcpLFxuICAgICAgeWVzdGVyZGF5OiB0aGlzLmkxOG4udCgneWVzdGVyZGF5JywgJ19nbG9iYWwnKSxcbiAgICB9O1xuICAgIGNvbnN0IG91dDogQ2hhdFJvd1tdID0gW107XG4gICAgbGV0IHByZXZEYXkgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1zZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IG0gPSBtc2dzW2ldO1xuICAgICAgY29uc3QgZCA9IG0uY3JlYXRlZEF0IGluc3RhbmNlb2YgRGF0ZSA/IG0uY3JlYXRlZEF0IDogbmV3IERhdGUobS5jcmVhdGVkQXQpO1xuICAgICAgY29uc3QgZGF5ID0gYCR7ZC5nZXRGdWxsWWVhcigpfS0ke2QuZ2V0TW9udGgoKX0tJHtkLmdldERhdGUoKX1gO1xuICAgICAgY29uc3QgbmV3RGF5ID0gZGF5ICE9PSBwcmV2RGF5O1xuICAgICAgaWYgKG5ld0RheSkge1xuICAgICAgICBvdXQucHVzaCh7IGtpbmQ6ICdkYXRlJywgaWQ6ICdkYXRlLScgKyBkYXksIGxhYmVsOiBmb3JtYXREYXRlU2VwYXJhdG9yKGQsIHRoaXMubG9jYWxlKCksIGxhYmVscykgfSk7XG4gICAgICAgIHByZXZEYXkgPSBkYXk7XG4gICAgICB9XG4gICAgICBjb25zdCBwcmV2ID0gbXNnc1tpIC0gMV07XG4gICAgICBjb25zdCBuZXh0ID0gbXNnc1tpICsgMV07XG4gICAgICBjb25zdCBmaXJzdEluR3JvdXAgPSBuZXdEYXkgfHwgIXByZXYgfHwgcHJldi5zZW5kZXJJZCAhPT0gbS5zZW5kZXJJZDtcbiAgICAgIGNvbnN0IG5leHREYXkgPSBuZXh0XG4gICAgICAgID8gYCR7bmV3IERhdGUobmV4dC5jcmVhdGVkQXQpLmdldEZ1bGxZZWFyKCl9LSR7bmV3IERhdGUobmV4dC5jcmVhdGVkQXQpLmdldE1vbnRoKCl9LSR7bmV3IERhdGUobmV4dC5jcmVhdGVkQXQpLmdldERhdGUoKX1gXG4gICAgICAgIDogJyc7XG4gICAgICBjb25zdCBsYXN0SW5Hcm91cCA9ICFuZXh0IHx8IG5leHQuc2VuZGVySWQgIT09IG0uc2VuZGVySWQgfHwgbmV4dERheSAhPT0gZGF5O1xuICAgICAgb3V0LnB1c2goe1xuICAgICAgICBraW5kOiAnbXNnJyxcbiAgICAgICAgaWQ6IG0ubXNnSWQsXG4gICAgICAgIG1zZzogbSxcbiAgICAgICAgc2hvd05hbWU6IGZpcnN0SW5Hcm91cCAmJiAhbS5pc01pbmUsXG4gICAgICAgIHNob3dBdmF0YXI6IHRoaXMuc2hvd0F2YXRhcnMoKSAmJiBsYXN0SW5Hcm91cCAmJiAhbS5pc01pbmUsXG4gICAgICAgIHRhaWw6IGxhc3RJbkdyb3VwLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBvdXQ7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBvblNjcm9sbCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMubXNnc0VsKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGNvbnN0IG5lYXJCb3R0b20gPSBlbC5zY3JvbGxIZWlnaHQgLSBlbC5zY3JvbGxUb3AgLSBlbC5jbGllbnRIZWlnaHQgPCA4MDtcbiAgICB0aGlzLmF0Qm90dG9tLnNldChuZWFyQm90dG9tKTtcbiAgICBpZiAobmVhckJvdHRvbSkgdGhpcy5oYXNOZXcuc2V0KGZhbHNlKTtcbiAgICBpZiAoZWwuc2Nyb2xsVG9wIDwgNDApIHRoaXMubG9hZE1vcmUuZW1pdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNjcm9sbFRvQm90dG9tKHNtb290aDogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5tc2dzRWwoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIWVsKSByZXR1cm47XG4gICAgZWwuc2Nyb2xsVG8oeyB0b3A6IGVsLnNjcm9sbEhlaWdodCwgYmVoYXZpb3I6IHNtb290aCA/ICdzbW9vdGgnIDogJ2F1dG8nIH0pO1xuICAgIHRoaXMuYXRCb3R0b20uc2V0KHRydWUpO1xuICAgIHRoaXMuaGFzTmV3LnNldChmYWxzZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25TZW5kKGV2ZW50OiBDaGF0Q29tcG9zZXJTZW5kRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbmRNZXNzYWdlLmVtaXQoZXZlbnQpO1xuICAgIHRoaXMucmVwbHlpbmdUby5zZXQobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25BY3Rpb24oZXZlbnQ6IE1lc3NhZ2VCdWJibGVBY3Rpb24pOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAgICAgIGNhc2UgJ3JlcGx5Jzoge1xuICAgICAgICBjb25zdCBtID0gdGhpcy5tZXNzYWdlcygpLmZpbmQoeCA9PiB4Lm1zZ0lkID09PSBldmVudC5tc2dJZCk7XG4gICAgICAgIGlmIChtKSB7XG4gICAgICAgICAgdGhpcy5yZXBseWluZ1RvLnNldCh7IG1zZ0lkOiBtLm1zZ0lkLCBzZW5kZXJOYW1lOiBtLnNlbmRlck5hbWUsIGJvZHk6IG0uYm9keSB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlcGx5VG8uZW1pdChldmVudC5tc2dJZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnZWRpdCc6XG4gICAgICAgIHRoaXMuZWRpdE1lc3NhZ2UuZW1pdChldmVudC5tc2dJZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgdGhpcy5kZWxldGVNZXNzYWdlLmVtaXQoZXZlbnQubXNnSWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JlYWN0JzpcbiAgICAgICAgdGhpcy5yZWFjdGlvbkNsaWNrLmVtaXQoeyBtc2dJZDogZXZlbnQubXNnSWQsIHRva2VuOiBldmVudC50b2tlbiA/PyAn8J+RjScgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY29weSc6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksICdDaGF0V2luZG93Jyk7XG4gIH1cbn1cbiJdfQ==
|
|
330
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC13aW5kb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9jaGF0LXdpbmRvdy9jaGF0LXdpbmRvdy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQXVCLE1BQU0seURBQXlELENBQUM7QUFFdEgsT0FBTyxFQUFFLHFCQUFxQixFQUF5QixNQUFNLHVEQUF1RCxDQUFDO0FBQ3JILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDOztBQUV2RyxRQUFRLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7QUFFbkQsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixFQUFFLEVBQUU7UUFDRixrQkFBa0IsRUFBRSxnQ0FBZ0M7UUFDcEQsT0FBTyxFQUFFLHNCQUFzQjtRQUMvQixVQUFVLEVBQUUsMENBQTBDO1FBQ3RELFdBQVcsRUFBRSxpQkFBaUI7S0FDL0I7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LGk2RkFuS3BCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUVULGdsREFwRVMsWUFBWSwrQkFBRSxPQUFPLDJKQUFFLHNCQUFzQixrU0FBRSxxQkFBcUIsZ09BQUUsd0JBQXdCOzs0RkFvSzdGLG1CQUFtQjtrQkF2Sy9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsQ0FBQyxZQUMvRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1FVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBzaWduYWwsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgYXJyb3dEb3duT3V0bGluZSwgY2hhdGJ1YmJsZXNPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgZm9ybWF0RGF0ZVNlcGFyYXRvciB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC91dGlscy9kYXRldGltZSc7XG5pbXBvcnQgeyBNZXNzYWdlUmVwbHlUbyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NoYXQvdHlwZXMnO1xuaW1wb3J0IHsgTWVzc2FnZUJ1YmJsZUNvbXBvbmVudCwgTWVzc2FnZUJ1YmJsZUFjdGlvbiB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9tZXNzYWdlLWJ1YmJsZS9tZXNzYWdlLWJ1YmJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVzc2FnZUJ1YmJsZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL21lc3NhZ2UtYnViYmxlL3R5cGVzJztcbmltcG9ydCB7IENoYXRDb21wb3NlckNvbXBvbmVudCwgQ2hhdENvbXBvc2VyU2VuZEV2ZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2NoYXQtY29tcG9zZXIvY2hhdC1jb21wb3Nlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHlwaW5nSW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3R5cGluZy1pbmRpY2F0b3IvdHlwaW5nLWluZGljYXRvci5jb21wb25lbnQnO1xuXG5hZGRJY29ucyh7IGFycm93RG93bk91dGxpbmUsIGNoYXRidWJibGVzT3V0bGluZSB9KTtcblxuY29uc3QgQ0hBVF9XSU5ET1dfSTE4TiA9IHtcbiAgZXM6IHtcbiAgICBjb252ZXJzYXRpb25DbG9zZWQ6ICdFc3RhIGNvbnZlcnNhY2lvbiBlc3RhIGNlcnJhZGEnLFxuICAgIGxvYWRpbmc6ICdDYXJnYW5kbyBtZW5zYWplcy4uLicsXG4gICAgbm9NZXNzYWdlczogJ0F1biBubyBoYXkgbWVuc2FqZXMuIEVzY3JpYmUgZWwgcHJpbWVyby4nLFxuICAgIG5ld01lc3NhZ2VzOiAnTWVuc2FqZXMgbnVldm9zJyxcbiAgfSxcbiAgZW46IHtcbiAgICBjb252ZXJzYXRpb25DbG9zZWQ6ICdUaGlzIGNvbnZlcnNhdGlvbiBpcyBjbG9zZWQnLFxuICAgIGxvYWRpbmc6ICdMb2FkaW5nIG1lc3NhZ2VzLi4uJyxcbiAgICBub01lc3NhZ2VzOiAnTm8gbWVzc2FnZXMgeWV0LiBTZW5kIHRoZSBmaXJzdCBvbmUuJyxcbiAgICBuZXdNZXNzYWdlczogJ05ldyBtZXNzYWdlcycsXG4gIH0sXG59O1xuXG50eXBlIENoYXRSb3cgPVxuICB8IHsga2luZDogJ2RhdGUnOyBpZDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1cbiAgfCB7XG4gICAgICBraW5kOiAnbXNnJztcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICBtc2c6IE1lc3NhZ2VCdWJibGVNZXRhZGF0YTtcbiAgICAgIHNob3dOYW1lOiBib29sZWFuO1xuICAgICAgc2hvd0F2YXRhcjogYm9vbGVhbjtcbiAgICAgIHRhaWw6IGJvb2xlYW47XG4gICAgfTtcblxuLyoqXG4gKiB2YWwtY2hhdC13aW5kb3cg4oCUIHZlbnRhbmEgZGUgY2hhdCBjb21wbGV0YSAoc2lnbmFsIGlucHV0cykuXG4gKlxuICogQWdydXBhIG1lbnNhamVzIGNvbnNlY3V0aXZvcyBkZWwgbWlzbW8gZW1pc29yIHkgcG9yIGTDrWEgKHNlcGFyYWRvcmVzIHN0aWNreSksXG4gKiBtdWVzdHJhIGF2YXRhci9ub21icmUgc29sbyBlbiBsb3MgYm9yZGVzIGRlbCBncnVwbywgc2Nyb2xsLXRvLWJvdHRvbSBpbnRlbGlnZW50ZVxuICogKGF1dG8tc2Nyb2xsIHNpIGVzdMOhcyBhYmFqbywgcGlsbCBcIm1lbnNhamVzIG51ZXZvc1wiIHNpIGVzdMOhcyBsZXllbmRvIGFycmliYSksXG4gKiBjb21wb3NlciBtb2Rlcm5vIGNvbiBjb250ZXh0byBkZSByZXNwdWVzdGEsIHkgdHlwaW5nIGluZGljYXRvci5cbiAqXG4gKiBBUEkgcMO6YmxpY2EgZXN0YWJsZSAoY29uc3VtaWRhIHBvciB0aHJlYWQtcGFuZWwgeSBzaG93Y2FzZSk6IGlucHV0cyBjb252SWQsXG4gKiBtZXNzYWdlcywgY3VycmVudFVzZXJJZCwgaXNPcGVuLCB0eXBpbmdVc2VycywgaXNMb2FkaW5nOyBvdXRwdXRzIHNlbmRNZXNzYWdlLFxuICogbG9hZE1vcmUsIHJlYWN0aW9uQ2xpY2ssIGRlbGV0ZU1lc3NhZ2UsIHJlcGx5VG8gKCsgZWRpdE1lc3NhZ2UvYXR0YWNoL3ZvaWNlIG51ZXZvcykuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1jaGF0LXdpbmRvdycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkljb24sIE1lc3NhZ2VCdWJibGVDb21wb25lbnQsIENoYXRDb21wb3NlckNvbXBvbmVudCwgVHlwaW5nSW5kaWNhdG9yQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiY2hhdFwiPlxuICAgICAgPGRpdiAjbXNncyBjbGFzcz1cIm1lc3NhZ2VzXCIgKHNjcm9sbCk9XCJvblNjcm9sbCgpXCI+XG4gICAgICAgIEBpZiAoaXNMb2FkaW5nKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdGVcIj5cbiAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2xvYWRpbmcnKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSBpZiAocm93cygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0ZSBlbXB0eVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGF0YnViYmxlcy1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgIDxzcGFuPnt7IHQoJ25vTWVzc2FnZXMnKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgQGZvciAocm93IG9mIHJvd3MoKTsgdHJhY2sgcm93LmlkKSB7XG4gICAgICAgICAgICBAaWYgKHJvdy5raW5kID09PSAnZGF0ZScpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtc2VwXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgcm93LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICA8dmFsLW1lc3NhZ2UtYnViYmxlXG4gICAgICAgICAgICAgICAgW21zZ109XCJyb3cubXNnXCJcbiAgICAgICAgICAgICAgICBbc2hvd05hbWVdPVwicm93LnNob3dOYW1lXCJcbiAgICAgICAgICAgICAgICBbc2hvd0F2YXRhcl09XCJyb3cuc2hvd0F2YXRhclwiXG4gICAgICAgICAgICAgICAgW3RhaWxdPVwicm93LnRhaWxcIlxuICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwibG9jYWxlKClcIlxuICAgICAgICAgICAgICAgIFtjYW5Nb2RlcmF0ZV09XCJjYW5Nb2RlcmF0ZSgpXCJcbiAgICAgICAgICAgICAgICBbcmVuZGVyQWlNZXNzYWdlXT1cInJlbmRlckFpTWVzc2FnZXMoKSAmJiAhcm93Lm1zZy5pc01pbmVcIlxuICAgICAgICAgICAgICAgIFtzaG93UmVhY3Rpb25zXT1cInNob3dSZWFjdGlvbnMoKVwiXG4gICAgICAgICAgICAgICAgW3Nob3dSZXBseUFjdGlvbl09XCJzaG93UmVwbHlBY3Rpb24oKVwiXG4gICAgICAgICAgICAgICAgW3Nob3dSZWFjdEFjdGlvbl09XCJzaG93UmVhY3RBY3Rpb24oKVwiXG4gICAgICAgICAgICAgICAgW3Nob3dFZGl0QWN0aW9uXT1cInNob3dFZGl0QWN0aW9uKClcIlxuICAgICAgICAgICAgICAgIFtzaG93RGVsZXRlQWN0aW9uXT1cInNob3dEZWxldGVBY3Rpb24oKVwiXG4gICAgICAgICAgICAgICAgW3Nob3dDb3B5QWN0aW9uXT1cInNob3dDb3B5QWN0aW9uKClcIlxuICAgICAgICAgICAgICAgIChhY3Rpb24pPVwib25BY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIDx2YWwtdHlwaW5nLWluZGljYXRvciBbdHlwaW5nVXNlcnNdPVwidHlwaW5nVXNlcnMoKVwiIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmICghYXRCb3R0b20oKSkge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2Nyb2xsLWRvd25cIiAoY2xpY2spPVwic2Nyb2xsVG9Cb3R0b20odHJ1ZSlcIiBhcmlhLWxhYmVsPVwic2Nyb2xsXCI+XG4gICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJhcnJvdy1kb3duLW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICAgIEBpZiAoaGFzTmV3KCkpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZG90XCI+PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoaXNPcGVuKCkpIHtcbiAgICAgICAgPHZhbC1jaGF0LWNvbXBvc2VyXG4gICAgICAgICAgW3JlcGx5aW5nVG9dPVwicmVwbHlpbmdUbygpXCJcbiAgICAgICAgICBbc2hvd0F0dGFjaF09XCJzaG93QXR0YWNoKClcIlxuICAgICAgICAgIFtzaG93TWljXT1cInNob3dEaWN0YXRpb24oKVwiXG4gICAgICAgICAgW3Nob3dWb2ljZU1lc3NhZ2VdPVwic2hvd1ZvaWNlTWVzc2FnZSgpXCJcbiAgICAgICAgICAoc2VuZCk9XCJvblNlbmQoJGV2ZW50KVwiXG4gICAgICAgICAgKHR5cGluZyk9XCJ0eXBpbmcuZW1pdCgpXCJcbiAgICAgICAgICAodm9pY2UpPVwidm9pY2UuZW1pdCgpXCJcbiAgICAgICAgICAoY2FuY2VsUmVwbHkpPVwicmVwbHlpbmdUby5zZXQobnVsbClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NvbXBvc2VyLWxlYWRpbmddXCIgLz5cbiAgICAgICAgPC92YWwtY2hhdC1jb21wb3Nlcj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvc2VkLWJhbm5lclwiPnt7IHQoJ2NvbnZlcnNhdGlvbkNsb3NlZCcpIH19PC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgfVxuICAgICAgLyogcG9zaXRpb246YWJzb2x1dGUgKyBpbnNldDowIGRhIGFsIGNvbnRlbmVkb3IgdW5hIGFsdHVyYSBERUZJTklEQSAoPSBsYSBkZWxcbiAgICAgICAgIGhvc3QpLCBzaW4gZGVwZW5kZXIgZGUgaGVpZ2h0OjEwMCUgcXVlIG5vIHJlc3VlbHZlIGVuIGNhZGVuYXMgZmxleC9zaGFkb3cuXG4gICAgICAgICBNZW5zYWplcyBzY3JvbGxlYW47IGVsIGNvbXBvc2VyIChmbGV4Om5vbmUpIHF1ZWRhIGFuY2xhZG8gYWJham8gc2llbXByZS4gKi9cbiAgICAgIC5jaGF0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdmFsLWNoYXQtYmFja2dyb3VuZCwgdmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpKTtcbiAgICAgIH1cbiAgICAgIC5tZXNzYWdlcyB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLXZhbC1jaGF0LW1lc3NhZ2VzLXBhZGRpbmcsIDE4cHggMTZweCAxMnB4KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICB9XG4gICAgICAuc3RhdGUge1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmssICM5Mjk0OWMpO1xuICAgICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgfVxuICAgICAgLnN0YXRlLmVtcHR5IGlvbi1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIH1cbiAgICAgIC5kYXRlLXNlcCB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIHRvcDogNHB4O1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiA4cHggMDtcbiAgICAgIH1cbiAgICAgIC5kYXRlLXNlcCBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmssICM5Mjk0OWMpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS12YWwtY2hhdC1kYXRlLWJhY2tncm91bmQsIHJnYmEoMTI3LCAxMjcsIDEyNywgMC4wOCkpO1xuICAgICAgICBwYWRkaW5nOiAzcHggMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xuICAgICAgfVxuICAgICAgLnNjcm9sbC1kb3duIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMTRweDtcbiAgICAgICAgYm90dG9tOiA4NHB4O1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlvbi1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jYXJkLWJhY2tncm91bmQsIHZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyaywgIzkyOTQ5Yyk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgIH1cbiAgICAgIC5zY3JvbGwtZG93biAuZG90IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgI2ZmZik7XG4gICAgICB9XG4gICAgICAuY2xvc2VkLWJhbm5lciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMTRweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLCAjOTI5NDljKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDaGF0V2luZG93Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICByZWFkb25seSBjb252SWQgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcmVhZG9ubHkgbWVzc2FnZXMgPSBpbnB1dDxNZXNzYWdlQnViYmxlTWV0YWRhdGFbXT4oW10pO1xuICByZWFkb25seSBjdXJyZW50VXNlcklkID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGlzT3BlbiA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSB0eXBpbmdVc2VycyA9IGlucHV0PHN0cmluZ1tdPihbXSk7XG4gIHJlYWRvbmx5IGlzTG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgLyoqIE93bmVyL21vZGVyYXRvciBkZWwgY2hhdDogaGFiaWxpdGEgYm9ycmFyIG1lbnNhamVzIGFqZW5vcyAobW9kZXJhY2lvbikuICovXG4gIHJlYWRvbmx5IGNhbk1vZGVyYXRlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICAvLyBGZWF0dXJlLWZsYWdzIGRlbCBjb21wb3NlciDigJQgY2FkYSBhcHAvY29uc3VtaWRvciBkZWNpZGUgcXXDqSBoYWJpbGl0YXIuXG4gIC8qKiBCb3TDs24gZGUgYWRqdW50YXIgYXJjaGl2b3MvaW3DoWdlbmVzLiAqL1xuICByZWFkb25seSBzaG93QXR0YWNoID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIC8qKiBCb3TDs24gZGUgZGljdGFkbyB2b3rihpJ0ZXh0byAoU3BlZWNoUmVjb2duaXRpb24pLiAqL1xuICByZWFkb25seSBzaG93RGljdGF0aW9uID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIC8qKiBCb3TDs24gZGUgbWVuc2FqZSBkZSB2b3ogKGdyYWJhciBjbGlwIGRlIGF1ZGlvKS4gKi9cbiAgcmVhZG9ubHkgc2hvd1ZvaWNlTWVzc2FnZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgLyoqIE11ZXN0cmEgYXZhdGFyZXMgZW4gbWVuc2FqZXMgYWplbm9zLiBEZXNhY3RpdmFibGUgcGFyYSBjaGF0cyAxOjEgbyBhZ2VudGVzLiAqL1xuICByZWFkb25seSBzaG93QXZhdGFycyA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSByZW5kZXJBaU1lc3NhZ2VzID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaG93UmVhY3Rpb25zID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IHNob3dSZXBseUFjdGlvbiA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBzaG93UmVhY3RBY3Rpb24gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgc2hvd0VkaXRBY3Rpb24gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgc2hvd0RlbGV0ZUFjdGlvbiA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBzaG93Q29weUFjdGlvbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSBzZW5kTWVzc2FnZSA9IG91dHB1dDxDaGF0Q29tcG9zZXJTZW5kRXZlbnQ+KCk7XG4gIHJlYWRvbmx5IGxvYWRNb3JlID0gb3V0cHV0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5IHJlYWN0aW9uQ2xpY2sgPSBvdXRwdXQ8eyBtc2dJZDogc3RyaW5nOyB0b2tlbjogc3RyaW5nIH0+KCk7XG4gIHJlYWRvbmx5IGRlbGV0ZU1lc3NhZ2UgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSByZXBseVRvID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgZWRpdE1lc3NhZ2UgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBjb3B5TWVzc2FnZSA9IG91dHB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHR5cGluZyA9IG91dHB1dDx2b2lkPigpO1xuICByZWFkb25seSB2b2ljZSA9IG91dHB1dDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbXNnc0VsID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PignbXNncycpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSByZXBseWluZ1RvID0gc2lnbmFsPE1lc3NhZ2VSZXBseVRvIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBhdEJvdHRvbSA9IHNpZ25hbCh0cnVlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhc05ldyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvY2FsZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmkxOG4ubGFuZygpID09PSAnZW4nID8gJ2VuLVVTJyA6ICdlcy1DTCcpKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cygnQ2hhdFdpbmRvdycsIENIQVRfV0lORE9XX0kxOE4pO1xuXG4gICAgLy8gQXV0by1zY3JvbGwgYWwgZm9uZG8gY3VhbmRvIGxsZWdhbiBtZW5zYWplcyB5IGVsIHVzdWFyaW8geWEgZXN0YWJhIGFiYWpvXG4gICAgLy8gKG8gZWwgw7psdGltbyBtZW5zYWplIGVzIHByb3BpbykuIFNpIGVzdMOhIGxleWVuZG8gYXJyaWJhLCBtYXJjYSBcIm51ZXZvc1wiLlxuICAgIGxldCBwcmV2U2lnbmF0dXJlID0gJyc7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2VzID0gdGhpcy5tZXNzYWdlcygpO1xuICAgICAgY29uc3QgbGFzdCA9IG1lc3NhZ2VzW21lc3NhZ2VzLmxlbmd0aCAtIDFdO1xuICAgICAgY29uc3Qgc2lnbmF0dXJlID0gYCR7bWVzc2FnZXMubGVuZ3RofToke2xhc3Q/Lm1zZ0lkID8/ICcnfToke2xhc3Q/LmJvZHk/Lmxlbmd0aCA/PyAwfWA7XG4gICAgICBpZiAoc2lnbmF0dXJlID09PSBwcmV2U2lnbmF0dXJlKSByZXR1cm47XG4gICAgICBjb25zdCBwcmV2aW91c0NvdW50ID0gTnVtYmVyKHByZXZTaWduYXR1cmUuc3BsaXQoJzonKVswXSB8fCAwKTtcbiAgICAgIGNvbnN0IGdyZXcgPSBtZXNzYWdlcy5sZW5ndGggPiBwcmV2aW91c0NvdW50O1xuICAgICAgcHJldlNpZ25hdHVyZSA9IHNpZ25hdHVyZTtcbiAgICAgIGNvbnN0IG1pbmUgPSBsYXN0Py5pc01pbmUgPz8gZmFsc2U7XG4gICAgICBpZiAodGhpcy5hdEJvdHRvbSgpIHx8IG1pbmUpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNjcm9sbFRvQm90dG9tKGZhbHNlKSwgMCk7XG4gICAgICB9IGVsc2UgaWYgKGdyZXcpIHtcbiAgICAgICAgdGhpcy5oYXNOZXcuc2V0KHRydWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvd3MgPSBjb21wdXRlZDxDaGF0Um93W10+KCgpID0+IHtcbiAgICBjb25zdCBtc2dzID0gdGhpcy5tZXNzYWdlcygpO1xuICAgIGlmIChtc2dzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IGxhYmVscyA9IHtcbiAgICAgIHRvZGF5OiB0aGlzLmkxOG4udCgndG9kYXknLCAnX2dsb2JhbCcpLFxuICAgICAgeWVzdGVyZGF5OiB0aGlzLmkxOG4udCgneWVzdGVyZGF5JywgJ19nbG9iYWwnKSxcbiAgICB9O1xuICAgIGNvbnN0IG91dDogQ2hhdFJvd1tdID0gW107XG4gICAgbGV0IHByZXZEYXkgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1zZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IG0gPSBtc2dzW2ldO1xuICAgICAgY29uc3QgZCA9IG0uY3JlYXRlZEF0IGluc3RhbmNlb2YgRGF0ZSA/IG0uY3JlYXRlZEF0IDogbmV3IERhdGUobS5jcmVhdGVkQXQpO1xuICAgICAgY29uc3QgZGF5ID0gYCR7ZC5nZXRGdWxsWWVhcigpfS0ke2QuZ2V0TW9udGgoKX0tJHtkLmdldERhdGUoKX1gO1xuICAgICAgY29uc3QgbmV3RGF5ID0gZGF5ICE9PSBwcmV2RGF5O1xuICAgICAgaWYgKG5ld0RheSkge1xuICAgICAgICBvdXQucHVzaCh7IGtpbmQ6ICdkYXRlJywgaWQ6ICdkYXRlLScgKyBkYXksIGxhYmVsOiBmb3JtYXREYXRlU2VwYXJhdG9yKGQsIHRoaXMubG9jYWxlKCksIGxhYmVscykgfSk7XG4gICAgICAgIHByZXZEYXkgPSBkYXk7XG4gICAgICB9XG4gICAgICBjb25zdCBwcmV2ID0gbXNnc1tpIC0gMV07XG4gICAgICBjb25zdCBuZXh0ID0gbXNnc1tpICsgMV07XG4gICAgICBjb25zdCBmaXJzdEluR3JvdXAgPSBuZXdEYXkgfHwgIXByZXYgfHwgcHJldi5zZW5kZXJJZCAhPT0gbS5zZW5kZXJJZDtcbiAgICAgIGNvbnN0IG5leHREYXkgPSBuZXh0XG4gICAgICAgID8gYCR7bmV3IERhdGUobmV4dC5jcmVhdGVkQXQpLmdldEZ1bGxZZWFyKCl9LSR7bmV3IERhdGUobmV4dC5jcmVhdGVkQXQpLmdldE1vbnRoKCl9LSR7bmV3IERhdGUobmV4dC5jcmVhdGVkQXQpLmdldERhdGUoKX1gXG4gICAgICAgIDogJyc7XG4gICAgICBjb25zdCBsYXN0SW5Hcm91cCA9ICFuZXh0IHx8IG5leHQuc2VuZGVySWQgIT09IG0uc2VuZGVySWQgfHwgbmV4dERheSAhPT0gZGF5O1xuICAgICAgb3V0LnB1c2goe1xuICAgICAgICBraW5kOiAnbXNnJyxcbiAgICAgICAgaWQ6IG0ubXNnSWQsXG4gICAgICAgIG1zZzogbSxcbiAgICAgICAgc2hvd05hbWU6IGZpcnN0SW5Hcm91cCAmJiAhbS5pc01pbmUsXG4gICAgICAgIHNob3dBdmF0YXI6IHRoaXMuc2hvd0F2YXRhcnMoKSAmJiBsYXN0SW5Hcm91cCAmJiAhbS5pc01pbmUsXG4gICAgICAgIHRhaWw6IGxhc3RJbkdyb3VwLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBvdXQ7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBvblNjcm9sbCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMubXNnc0VsKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGNvbnN0IG5lYXJCb3R0b20gPSBlbC5zY3JvbGxIZWlnaHQgLSBlbC5zY3JvbGxUb3AgLSBlbC5jbGllbnRIZWlnaHQgPCA4MDtcbiAgICB0aGlzLmF0Qm90dG9tLnNldChuZWFyQm90dG9tKTtcbiAgICBpZiAobmVhckJvdHRvbSkgdGhpcy5oYXNOZXcuc2V0KGZhbHNlKTtcbiAgICBpZiAoZWwuc2Nyb2xsVG9wIDwgNDApIHRoaXMubG9hZE1vcmUuZW1pdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNjcm9sbFRvQm90dG9tKHNtb290aDogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5tc2dzRWwoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIWVsKSByZXR1cm47XG4gICAgZWwuc2Nyb2xsVG8oeyB0b3A6IGVsLnNjcm9sbEhlaWdodCwgYmVoYXZpb3I6IHNtb290aCA/ICdzbW9vdGgnIDogJ2F1dG8nIH0pO1xuICAgIHRoaXMuYXRCb3R0b20uc2V0KHRydWUpO1xuICAgIHRoaXMuaGFzTmV3LnNldChmYWxzZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25TZW5kKGV2ZW50OiBDaGF0Q29tcG9zZXJTZW5kRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbmRNZXNzYWdlLmVtaXQoZXZlbnQpO1xuICAgIHRoaXMucmVwbHlpbmdUby5zZXQobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25BY3Rpb24oZXZlbnQ6IE1lc3NhZ2VCdWJibGVBY3Rpb24pOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAgICAgIGNhc2UgJ3JlcGx5Jzoge1xuICAgICAgICBjb25zdCBtID0gdGhpcy5tZXNzYWdlcygpLmZpbmQoeCA9PiB4Lm1zZ0lkID09PSBldmVudC5tc2dJZCk7XG4gICAgICAgIGlmIChtKSB7XG4gICAgICAgICAgdGhpcy5yZXBseWluZ1RvLnNldCh7IG1zZ0lkOiBtLm1zZ0lkLCBzZW5kZXJOYW1lOiBtLnNlbmRlck5hbWUsIGJvZHk6IG0uYm9keSB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlcGx5VG8uZW1pdChldmVudC5tc2dJZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnZWRpdCc6XG4gICAgICAgIHRoaXMuZWRpdE1lc3NhZ2UuZW1pdChldmVudC5tc2dJZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgdGhpcy5kZWxldGVNZXNzYWdlLmVtaXQoZXZlbnQubXNnSWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JlYWN0JzpcbiAgICAgICAgdGhpcy5yZWFjdGlvbkNsaWNrLmVtaXQoeyBtc2dJZDogZXZlbnQubXNnSWQsIHRva2VuOiBldmVudC50b2tlbiA/PyAn8J+RjScgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY29weSc6XG4gICAgICAgIHRoaXMuY29weU1lc3NhZ2UuZW1pdChldmVudC5tc2dJZCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksICdDaGF0V2luZG93Jyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -167,7 +167,7 @@ export class ThreadPanelComponent {
|
|
|
167
167
|
</div>
|
|
168
168
|
}
|
|
169
169
|
</div>
|
|
170
|
-
`, isInline: true, styles: [".thread-panel{display:flex;flex-direction:column;height:100%;background:var(--ion-background-color, #f4f5f8)}.thread-header{padding:12px 16px;border-bottom:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-card-background, var(--ion-background-color, #fff))}.thread-header .thread-title{font-size:1rem;font-weight:600;color:var(--ion-text-color, #000);margin:0}.thread-loading{display:flex;align-items:center;justify-content:center;flex:1;gap:10px;color:var(--ion-color-dark, #92949c);font-size:.875rem}.thread-chat{flex:1;overflow:hidden;display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: ChatWindowComponent, selector: "val-chat-window", inputs: ["convId", "messages", "currentUserId", "isOpen", "typingUsers", "isLoading", "canModerate", "showAttach", "showDictation", "showVoiceMessage", "showAvatars", "renderAiMessages", "showReactions", "showReplyAction", "showReactAction", "showEditAction", "showDeleteAction", "showCopyAction"], outputs: ["sendMessage", "loadMore", "reactionClick", "deleteMessage", "replyTo", "editMessage", "typing", "voice"] }] }); }
|
|
170
|
+
`, isInline: true, styles: [".thread-panel{display:flex;flex-direction:column;height:100%;background:var(--ion-background-color, #f4f5f8)}.thread-header{padding:12px 16px;border-bottom:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-card-background, var(--ion-background-color, #fff))}.thread-header .thread-title{font-size:1rem;font-weight:600;color:var(--ion-text-color, #000);margin:0}.thread-loading{display:flex;align-items:center;justify-content:center;flex:1;gap:10px;color:var(--ion-color-dark, #92949c);font-size:.875rem}.thread-chat{flex:1;overflow:hidden;display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: ChatWindowComponent, selector: "val-chat-window", inputs: ["convId", "messages", "currentUserId", "isOpen", "typingUsers", "isLoading", "canModerate", "showAttach", "showDictation", "showVoiceMessage", "showAvatars", "renderAiMessages", "showReactions", "showReplyAction", "showReactAction", "showEditAction", "showDeleteAction", "showCopyAction"], outputs: ["sendMessage", "loadMore", "reactionClick", "deleteMessage", "replyTo", "editMessage", "copyMessage", "typing", "voice"] }] }); }
|
|
171
171
|
}
|
|
172
172
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ThreadPanelComponent, decorators: [{
|
|
173
173
|
type: Component,
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '4.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '4.0.1044';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xMDQ0JztcbiJdfQ==
|