@indice/ng-components 0.2.167-beta.33 → 0.2.167-beta.37

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/_styles.css CHANGED
@@ -4326,6 +4326,59 @@
4326
4326
  @apply cursor-pointer bg-white rounded-md inline-flex text-gray-400 hover:text-gray-500;
4327
4327
  }
4328
4328
  }
4329
+ @layer components {
4330
+ .toggle-button-button {
4331
+ @apply relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-1 focus:ring-gray-500 focus:ring-offset-1;
4332
+ }
4333
+
4334
+ .toggle-button-button-disabled {
4335
+ @apply opacity-75;
4336
+ }
4337
+
4338
+ .toggle-button-bg-false {
4339
+ @apply bg-gray-200;
4340
+ }
4341
+
4342
+ .toggle-button-bg-true {
4343
+ @apply bg-gray-600;
4344
+ }
4345
+
4346
+ .toggle-button-icon-container {
4347
+ @apply pointer-events-none relative inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out;
4348
+ }
4349
+
4350
+ .toggle-button-icon-container-true {
4351
+ @apply translate-x-5;
4352
+ }
4353
+
4354
+ .toggle-button-icon-container-false {
4355
+ @apply translate-x-0;
4356
+ }
4357
+
4358
+ .toggle-button-icon-container-inner {
4359
+ @apply opacity-100 ease-in duration-200 absolute inset-0 flex h-full w-full items-center justify-center transition-opacity;
4360
+ }
4361
+
4362
+ .toggle-button-container-inner-true {
4363
+ @apply opacity-0 ease-out duration-100;
4364
+ }
4365
+
4366
+ .toggle-button-container-inner-false {
4367
+ @apply opacity-100 ease-in duration-200;
4368
+ }
4369
+
4370
+ .toggle-button-icon {
4371
+ @apply h-3 w-3 text-gray-600;
4372
+ }
4373
+
4374
+ .toggle-button-text {
4375
+ @apply text-sm font-medium text-gray-900;
4376
+ }
4377
+
4378
+ .toggle-button-description {
4379
+ @apply text-xs mt-1 text-gray-500;
4380
+ }
4381
+ }
4329
4382
 
4330
4383
  .modal-active {
4331
4384
  overflow: hidden;
@@ -0,0 +1,87 @@
1
+ import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class ToggleButtonComponent {
6
+ constructor() {
7
+ this.value = false;
8
+ this.disabled = false;
9
+ this.icon = true;
10
+ this.valueChange = new EventEmitter();
11
+ this.onChange$ = undefined;
12
+ this.onTouched$ = undefined;
13
+ }
14
+ ngOnInit() {
15
+ }
16
+ writeValue(obj) {
17
+ if (obj) {
18
+ this.value = obj || false;
19
+ }
20
+ }
21
+ registerOnChange(fn) {
22
+ this.onChange$ = fn;
23
+ }
24
+ registerOnTouched(fn) {
25
+ this.onTouched$ = fn;
26
+ }
27
+ onBlur(event) {
28
+ if (this.onTouched$) {
29
+ this.onTouched$();
30
+ }
31
+ }
32
+ changeValue() {
33
+ this.value = !this.value;
34
+ this.valueChange.emit(this.value);
35
+ if (this.onChange$) {
36
+ this.onChange$(this.value);
37
+ }
38
+ if (this.onTouched$) {
39
+ this.onTouched$();
40
+ }
41
+ }
42
+ }
43
+ ToggleButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
44
+ ToggleButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ToggleButtonComponent, selector: "lib-toggle-button", inputs: { value: "value", disabled: "disabled", icon: "icon", text: "text", textTrue: ["text-true", "textTrue"], textFalse: ["text-false", "textFalse"], description: "description", descriptionTrue: ["description-true", "descriptionTrue"], descriptionFalse: ["description-false", "descriptionFalse"] }, outputs: { valueChange: "valueChange" }, providers: [
45
+ {
46
+ provide: NG_VALUE_ACCESSOR,
47
+ useExisting: forwardRef(() => ToggleButtonComponent),
48
+ multi: true
49
+ }
50
+ ], ngImport: i0, template: "<!-- Enabled: \"bg-indigo-600\", Not Enabled: \"bg-gray-200\" -->\n<div class=\"flex items-center\">\n<button type=\"button\"\n (click)=\"changeValue()\"\n [disabled]=\"disabled\"\n class=\"toggle-button-button\" \n [class.toggle-button-bg-false] = \"!value\"\n [class.toggle-button-bg-true] = \"value\"\n [class.toggle-button-button-disabled]=\"disabled\"\n role=\"switch\" \n aria-checked=\"false\">\n <span class=\"sr-only\">{{value ? textTrue : textFalse}}</span>\n <!-- Enabled: \"translate-x-5\", Not Enabled: \"translate-x-0\" -->\n <span \n class=\"toggle-button-icon-container\"\n [class.toggle-button-icon-container-false] = \"!value\"\n [class.toggle-button-icon-container-true] = \"value\">\n <!-- Enabled: \"opacity-0 ease-out duration-100\", Not Enabled: \"opacity-100 ease-in duration-200\" -->\n <span \n [class.toggle-button-container-inner-true]=\"value\"\n [class.toggle-button-container-inner-false]=\"!value\"\n class=\"toggle-button-icon-container-inner\"\n aria-hidden=\"true\">\n <svg *ngIf=\"icon\" class=\"toggle-button-icon\" fill=\"none\" viewBox=\"0 0 12 12\">\n <path d=\"M4 8l2-2m0 0l2-2M6 6L4 4m2 2l2 2\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n <!-- Enabled: \"opacity-0 ease-out duration-100\", Not Enabled: \"opacity-100 ease-in duration-200\" -->\n <span \n [class.toggle-button-container-inner-true]=\"!value\"\n [class.toggle-button-container-inner-false]=\"value\"\n class=\"toggle-button-icon-container-inner\"\n aria-hidden=\"true\">\n <svg *ngIf=\"icon\" class=\"toggle-button-icon\" fill=\"currentColor\" viewBox=\"0 0 12 12\">\n <path d=\"M3.707 5.293a1 1 0 00-1.414 1.414l1.414-1.414zM5 8l-.707.707a1 1 0 001.414 0L5 8zm4.707-3.293a1 1 0 00-1.414-1.414l1.414 1.414zm-7.414 2l2 2 1.414-1.414-2-2-1.414 1.414zm3.414 2l4-4-1.414-1.414-4 4 1.414 1.414z\" />\n </svg>\n </span>\n </span>\n</button>\n<span class=\"ml-3\" id=\"toggle-button-labels\">\n <div class=\"toggle-button-text\">{{value ? textTrue : textFalse}}</div>\n <div *ngIf=\"text\" class=\"toggle-button-text\">{{text}}</div>\n <div *ngIf=\"description\" class=\"toggle-button-description\">{{description}}</div>\n <div class=\"toggle-button-description\">{{value ? descriptionTrue : descriptionFalse}}</div>\n</span>\n</div>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ToggleButtonComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ selector: 'lib-toggle-button', providers: [
54
+ {
55
+ provide: NG_VALUE_ACCESSOR,
56
+ useExisting: forwardRef(() => ToggleButtonComponent),
57
+ multi: true
58
+ }
59
+ ], template: "<!-- Enabled: \"bg-indigo-600\", Not Enabled: \"bg-gray-200\" -->\n<div class=\"flex items-center\">\n<button type=\"button\"\n (click)=\"changeValue()\"\n [disabled]=\"disabled\"\n class=\"toggle-button-button\" \n [class.toggle-button-bg-false] = \"!value\"\n [class.toggle-button-bg-true] = \"value\"\n [class.toggle-button-button-disabled]=\"disabled\"\n role=\"switch\" \n aria-checked=\"false\">\n <span class=\"sr-only\">{{value ? textTrue : textFalse}}</span>\n <!-- Enabled: \"translate-x-5\", Not Enabled: \"translate-x-0\" -->\n <span \n class=\"toggle-button-icon-container\"\n [class.toggle-button-icon-container-false] = \"!value\"\n [class.toggle-button-icon-container-true] = \"value\">\n <!-- Enabled: \"opacity-0 ease-out duration-100\", Not Enabled: \"opacity-100 ease-in duration-200\" -->\n <span \n [class.toggle-button-container-inner-true]=\"value\"\n [class.toggle-button-container-inner-false]=\"!value\"\n class=\"toggle-button-icon-container-inner\"\n aria-hidden=\"true\">\n <svg *ngIf=\"icon\" class=\"toggle-button-icon\" fill=\"none\" viewBox=\"0 0 12 12\">\n <path d=\"M4 8l2-2m0 0l2-2M6 6L4 4m2 2l2 2\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n <!-- Enabled: \"opacity-0 ease-out duration-100\", Not Enabled: \"opacity-100 ease-in duration-200\" -->\n <span \n [class.toggle-button-container-inner-true]=\"!value\"\n [class.toggle-button-container-inner-false]=\"value\"\n class=\"toggle-button-icon-container-inner\"\n aria-hidden=\"true\">\n <svg *ngIf=\"icon\" class=\"toggle-button-icon\" fill=\"currentColor\" viewBox=\"0 0 12 12\">\n <path d=\"M3.707 5.293a1 1 0 00-1.414 1.414l1.414-1.414zM5 8l-.707.707a1 1 0 001.414 0L5 8zm4.707-3.293a1 1 0 00-1.414-1.414l1.414 1.414zm-7.414 2l2 2 1.414-1.414-2-2-1.414 1.414zm3.414 2l4-4-1.414-1.414-4 4 1.414 1.414z\" />\n </svg>\n </span>\n </span>\n</button>\n<span class=\"ml-3\" id=\"toggle-button-labels\">\n <div class=\"toggle-button-text\">{{value ? textTrue : textFalse}}</div>\n <div *ngIf=\"text\" class=\"toggle-button-text\">{{text}}</div>\n <div *ngIf=\"description\" class=\"toggle-button-description\">{{description}}</div>\n <div class=\"toggle-button-description\">{{value ? descriptionTrue : descriptionFalse}}</div>\n</span>\n</div>" }]
60
+ }], ctorParameters: function () { return []; }, propDecorators: { value: [{
61
+ type: Input
62
+ }], disabled: [{
63
+ type: Input
64
+ }], icon: [{
65
+ type: Input
66
+ }], text: [{
67
+ type: Input,
68
+ args: ['text']
69
+ }], textTrue: [{
70
+ type: Input,
71
+ args: ['text-true']
72
+ }], textFalse: [{
73
+ type: Input,
74
+ args: ['text-false']
75
+ }], description: [{
76
+ type: Input,
77
+ args: ['description']
78
+ }], descriptionTrue: [{
79
+ type: Input,
80
+ args: ['description-true']
81
+ }], descriptionFalse: [{
82
+ type: Input,
83
+ args: ['description-false']
84
+ }], valueChange: [{
85
+ type: Output
86
+ }] } });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvdG9nZ2xlLWJ1dHRvbi90b2dnbGUtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy90b2dnbGUtYnV0dG9uL3RvZ2dsZS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQWFuRCxNQUFNLE9BQU8scUJBQXFCO0lBZWhDO1FBZFMsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFNBQUksR0FBWSxJQUFJLENBQUM7UUFPcEIsZ0JBQVcsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVuRSxjQUFTLEdBQW9CLFNBQVMsQ0FBQztRQUN2QyxlQUFVLEdBQW9CLFNBQVMsQ0FBQztJQUVoQyxDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVE7UUFDakIsSUFBRyxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQVU7UUFDdEIsSUFBRyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFHLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7UUFDRCxJQUFHLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQzs7a0hBL0NVLHFCQUFxQjtzR0FBckIscUJBQXFCLG1ZQVJyQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDO1lBQ3BELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiwwQkNaSCxzaEZBNkNNOzJGRC9CTyxxQkFBcUI7a0JBWGpDLFNBQVM7K0JBQ0UsbUJBQW1CLGFBRWxCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDOzRCQUNwRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjswRUFHUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ1MsSUFBSTtzQkFBbEIsS0FBSzt1QkFBQyxNQUFNO2dCQUNPLFFBQVE7c0JBQTNCLEtBQUs7dUJBQUMsV0FBVztnQkFDRyxTQUFTO3NCQUE3QixLQUFLO3VCQUFDLFlBQVk7Z0JBQ0csV0FBVztzQkFBaEMsS0FBSzt1QkFBQyxhQUFhO2dCQUNPLGVBQWU7c0JBQXpDLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUNHLGdCQUFnQjtzQkFBM0MsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBQ2hCLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXRvZ2dsZS1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVG9nZ2xlQnV0dG9uQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRvZ2dsZUJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHZhbHVlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGljb246IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoJ3RleHQnKSB0ZXh0OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoJ3RleHQtdHJ1ZScpIHRleHRUcnVlOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoJ3RleHQtZmFsc2UnKSB0ZXh0RmFsc2U6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgnZGVzY3JpcHRpb24nKSBkZXNjcmlwdGlvbjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCdkZXNjcmlwdGlvbi10cnVlJykgZGVzY3JpcHRpb25UcnVlOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoJ2Rlc2NyaXB0aW9uLWZhbHNlJykgZGVzY3JpcHRpb25GYWxzZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZSQ6IGFueSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBvblRvdWNoZWQkOiBhbnkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICBpZihvYmopIHtcbiAgICAgIHRoaXMudmFsdWUgPSBvYmogfHwgZmFsc2U7XG4gICAgfVxuICB9XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UkID0gZm47XG4gIH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkJCA9IGZuO1xuICB9XG5cbiAgcHVibGljIG9uQmx1cihldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYodGhpcy5vblRvdWNoZWQkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlVmFsdWUoKXtcbiAgICB0aGlzLnZhbHVlID0gIXRoaXMudmFsdWU7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgIGlmKHRoaXMub25DaGFuZ2UkKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlJCh0aGlzLnZhbHVlKTtcbiAgICB9XG4gICAgaWYodGhpcy5vblRvdWNoZWQkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCQoKTtcbiAgICB9XG4gIH1cblxufVxuIiwiPCEtLSBFbmFibGVkOiBcImJnLWluZGlnby02MDBcIiwgTm90IEVuYWJsZWQ6IFwiYmctZ3JheS0yMDBcIiAtLT5cbjxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwiY2hhbmdlVmFsdWUoKVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBjbGFzcz1cInRvZ2dsZS1idXR0b24tYnV0dG9uXCIgXG4gICAgW2NsYXNzLnRvZ2dsZS1idXR0b24tYmctZmFsc2VdID0gXCIhdmFsdWVcIlxuICAgIFtjbGFzcy50b2dnbGUtYnV0dG9uLWJnLXRydWVdID0gXCJ2YWx1ZVwiXG4gICAgW2NsYXNzLnRvZ2dsZS1idXR0b24tYnV0dG9uLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICByb2xlPVwic3dpdGNoXCIgXG4gICAgYXJpYS1jaGVja2VkPVwiZmFsc2VcIj5cbiAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj57e3ZhbHVlID8gdGV4dFRydWUgOiB0ZXh0RmFsc2V9fTwvc3Bhbj5cbiAgICA8IS0tIEVuYWJsZWQ6IFwidHJhbnNsYXRlLXgtNVwiLCBOb3QgRW5hYmxlZDogXCJ0cmFuc2xhdGUteC0wXCIgLS0+XG4gICAgPHNwYW4gXG4gICAgICAgIGNsYXNzPVwidG9nZ2xlLWJ1dHRvbi1pY29uLWNvbnRhaW5lclwiXG4gICAgICAgIFtjbGFzcy50b2dnbGUtYnV0dG9uLWljb24tY29udGFpbmVyLWZhbHNlXSA9IFwiIXZhbHVlXCJcbiAgICAgICAgW2NsYXNzLnRvZ2dsZS1idXR0b24taWNvbi1jb250YWluZXItdHJ1ZV0gPSBcInZhbHVlXCI+XG4gICAgICAgIDwhLS0gRW5hYmxlZDogXCJvcGFjaXR5LTAgZWFzZS1vdXQgZHVyYXRpb24tMTAwXCIsIE5vdCBFbmFibGVkOiBcIm9wYWNpdHktMTAwIGVhc2UtaW4gZHVyYXRpb24tMjAwXCIgLS0+XG4gICAgICAgIDxzcGFuIFxuICAgICAgICAgICAgW2NsYXNzLnRvZ2dsZS1idXR0b24tY29udGFpbmVyLWlubmVyLXRydWVdPVwidmFsdWVcIlxuICAgICAgICAgICAgW2NsYXNzLnRvZ2dsZS1idXR0b24tY29udGFpbmVyLWlubmVyLWZhbHNlXT1cIiF2YWx1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cInRvZ2dsZS1idXR0b24taWNvbi1jb250YWluZXItaW5uZXJcIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICA8c3ZnICpuZ0lmPVwiaWNvblwiIGNsYXNzPVwidG9nZ2xlLWJ1dHRvbi1pY29uXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCI+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk00IDhsMi0ybTAgMGwyLTJNNiA2TDQgNG0yIDJsMiAyXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8IS0tIEVuYWJsZWQ6IFwib3BhY2l0eS0wIGVhc2Utb3V0IGR1cmF0aW9uLTEwMFwiLCBOb3QgRW5hYmxlZDogXCJvcGFjaXR5LTEwMCBlYXNlLWluIGR1cmF0aW9uLTIwMFwiIC0tPlxuICAgICAgICA8c3BhbiBcbiAgICAgICAgICAgIFtjbGFzcy50b2dnbGUtYnV0dG9uLWNvbnRhaW5lci1pbm5lci10cnVlXT1cIiF2YWx1ZVwiXG4gICAgICAgICAgICBbY2xhc3MudG9nZ2xlLWJ1dHRvbi1jb250YWluZXItaW5uZXItZmFsc2VdPVwidmFsdWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0b2dnbGUtYnV0dG9uLWljb24tY29udGFpbmVyLWlubmVyXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImljb25cIiBjbGFzcz1cInRvZ2dsZS1idXR0b24taWNvblwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCI+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0zLjcwNyA1LjI5M2ExIDEgMCAwMC0xLjQxNCAxLjQxNGwxLjQxNC0xLjQxNHpNNSA4bC0uNzA3LjcwN2ExIDEgMCAwMDEuNDE0IDBMNSA4em00LjcwNy0zLjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNGwxLjQxNCAxLjQxNHptLTcuNDE0IDJsMiAyIDEuNDE0LTEuNDE0LTItMi0xLjQxNCAxLjQxNHptMy40MTQgMmw0LTQtMS40MTQtMS40MTQtNCA0IDEuNDE0IDEuNDE0elwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvc3Bhbj5cbjwvYnV0dG9uPlxuPHNwYW4gY2xhc3M9XCJtbC0zXCIgaWQ9XCJ0b2dnbGUtYnV0dG9uLWxhYmVsc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJ0b2dnbGUtYnV0dG9uLXRleHRcIj57e3ZhbHVlID8gdGV4dFRydWUgOiB0ZXh0RmFsc2V9fTwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJ0ZXh0XCIgY2xhc3M9XCJ0b2dnbGUtYnV0dG9uLXRleHRcIj57e3RleHR9fTwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwidG9nZ2xlLWJ1dHRvbi1kZXNjcmlwdGlvblwiPnt7ZGVzY3JpcHRpb259fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ0b2dnbGUtYnV0dG9uLWRlc2NyaXB0aW9uXCI+e3t2YWx1ZSA/IGRlc2NyaXB0aW9uVHJ1ZSA6IGRlc2NyaXB0aW9uRmFsc2V9fTwvZGl2PlxuPC9zcGFuPlxuPC9kaXY+Il19
@@ -1,58 +1,50 @@
1
- import { SHELL_CONFIG } from './../../../tokens';
2
- import { DefaultShellConfig } from './../../../types';
3
- import { Component, Inject, ViewChildren } from '@angular/core';
4
- import { DOCUMENT } from '@angular/common';
1
+ import { Component, Inject, ViewChildren, Input } from '@angular/core';
5
2
  import { ActivationStart } from '@angular/router';
6
3
  import { filter } from 'rxjs/operators';
4
+ import { SHELL_CONFIG } from './../../../tokens';
5
+ import { DefaultShellConfig } from './../../../types';
7
6
  import { DynamicComponentHostDirective } from '../../../directives/dynamic-component-host.directive';
8
7
  import * as i0 from "@angular/core";
9
8
  import * as i1 from "@angular/router";
10
- import * as i2 from "@angular/common";
11
- import * as i3 from "../../../services/component-loader/component-loader.factory";
9
+ import * as i2 from "../../../services/component-loader/component-loader.factory";
10
+ import * as i3 from "@angular/common";
12
11
  import * as i4 from "../shell-sidebar-layout/shell-sidebar-layout.component";
13
12
  import * as i5 from "../shell-stacked-layout/shell-stacked-layout.component";
14
13
  import * as i6 from "../../../controls/side-pane/side-pane.component";
15
14
  import * as i7 from "../../../controls/toaster/toaster-container.component";
16
15
  export class ShellLayoutComponent {
17
- constructor(document, router, location, config, componentLoaderFactory) {
18
- this.document = document;
19
- this.router = router;
20
- this.location = location;
21
- this.config = config;
22
- this.componentLoaderFactory = componentLoaderFactory;
23
- this.dynamicComponentHosts = null;
16
+ constructor(_router, _componentLoaderFactory, _config) {
17
+ this._router = _router;
18
+ this._componentLoaderFactory = _componentLoaderFactory;
19
+ this._config = _config;
20
+ this._dynamicComponentHosts = null;
21
+ this._routerSub$ = null;
24
22
  this.showRightPaneSM = false;
25
- this.routerSub$ = null;
26
23
  this.activeConfig = new DefaultShellConfig();
27
24
  this.loaded = false;
28
25
  this.hideSidebar = false;
29
- if (!config) {
30
- config = new DefaultShellConfig();
26
+ if (!_config) {
27
+ _config = new DefaultShellConfig();
31
28
  }
32
- this.activeConfig = config;
29
+ this.activeConfig = _config;
33
30
  }
34
31
  ngAfterViewChecked() {
35
32
  setTimeout(() => { this.loaded = true; }, 200);
36
33
  }
37
34
  ngOnInit() {
38
- this.routerSub$ = this.router.events.pipe(filter((event) => event instanceof ActivationStart)).subscribe((e) => {
39
- // console.log('ShellLayoutComponent ActivationStart', e);
40
- if (e?.snapshot) {
41
- // console.log('ShellLayoutComponent ActivationStart snapshot', (e as ActivationStart)?.snapshot);
42
- if (e?.snapshot?.data) {
43
- // console.log('ShellLayoutComponent ActivationStart snapshot data', (e as ActivationStart)?.snapshot.data);
44
- if (e?.snapshot?.data.shell) {
45
- // console.log('ShellLayoutComponent ActivationStart snapshot data shell params',
46
- // (e as ActivationStart)?.snapshot.data.shell);
47
- this.activeConfig = e?.snapshot.data.shell;
48
- // console.log('ShellLayoutComponent activeConfig from route: ', this.activeConfig);
35
+ this._routerSub$ = this._router
36
+ .events
37
+ .pipe(filter((event) => event instanceof ActivationStart)).subscribe((event) => {
38
+ if (event?.snapshot) {
39
+ if (event?.snapshot?.data) {
40
+ if (event?.snapshot?.data.shell) {
41
+ this.activeConfig = event?.snapshot.data.shell;
49
42
  if (this.activeConfig.customHeaderComponent) {
50
43
  this.initCustomComponents();
51
44
  }
52
45
  }
53
46
  else {
54
- this.activeConfig = this.config ? this.config : new DefaultShellConfig();
55
- // console.log('ShellLayoutComponent default activeConfig: ', this.activeConfig);
47
+ this.activeConfig = this._config ? this._config : new DefaultShellConfig();
56
48
  }
57
49
  }
58
50
  }
@@ -62,40 +54,37 @@ export class ShellLayoutComponent {
62
54
  this.initCustomComponents();
63
55
  }
64
56
  initCustomComponents() {
65
- if (this.dynamicComponentHosts && this.dynamicComponentHosts.length > 0) {
66
- this.loadCustomComponent(this.dynamicComponentHosts.find((_) => _.hostName === 'Header'));
67
- // since you're not using it...
68
- // this.loadCustomComponent(this.dynamicComponentHosts.find(_ => _.hostName === 'Footer'));
57
+ if (this._dynamicComponentHosts && this._dynamicComponentHosts.length > 0) {
58
+ this.loadCustomComponent(this._dynamicComponentHosts.find((_) => _.hostName === 'Header'));
69
59
  }
70
60
  }
71
61
  ngOnDestroy() {
72
- if (this.routerSub$) {
73
- this.routerSub$.unsubscribe();
62
+ if (this._routerSub$) {
63
+ this._routerSub$.unsubscribe();
74
64
  }
75
65
  }
76
66
  loadCustomComponent(host) {
77
67
  if (host) {
78
68
  const viewContainerRef = host.viewContainerRef;
79
69
  if (viewContainerRef && this.activeConfig.customHeaderComponent) {
80
- const clf = this.componentLoaderFactory.createLoader(viewContainerRef);
81
- const headerCompRef = clf.attach(this.activeConfig.customHeaderComponent).to(viewContainerRef.element).show();
70
+ const clf = this._componentLoaderFactory.createLoader(viewContainerRef);
71
+ clf.attach(this.activeConfig.customHeaderComponent).to(viewContainerRef.element).show();
82
72
  }
83
73
  }
84
74
  }
85
75
  }
86
- ShellLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ShellLayoutComponent, deps: [{ token: DOCUMENT }, { token: i1.Router }, { token: i2.Location }, { token: SHELL_CONFIG }, { token: i3.ComponentLoaderFactory }], target: i0.ɵɵFactoryTarget.Component });
87
- ShellLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ShellLayoutComponent, selector: "lib-shell-layout", viewQueries: [{ propertyName: "dynamicComponentHosts", predicate: DynamicComponentHostDirective, descendants: true }], ngImport: i0, template: "<div [class.hidden]=\"!loaded\" [class.block]=\"loaded\">\r\n <!-- STACKED LAYOUT -->\r\n <div *ngIf=\"(activeConfig.layout === 'Stacked' || !activeConfig.layout)\"\r\n class=\"shell-container active-side-pane\">\r\n <lib-shell-stacked-layout [config]=\"activeConfig\"></lib-shell-stacked-layout>\r\n </div>\r\n <!-- SIDEBAR LAYOUT -->\r\n <div *ngIf=\"activeConfig.layout === 'Sidebar'\"\r\n class=\"sidebar shell-container active-side-pane\">\r\n <lib-shell-sidebar-layout [config]=\"activeConfig\"></lib-shell-sidebar-layout>\r\n </div>\r\n <lib-side-pane #rightPane>\r\n <router-outlet name=\"rightpane\"\r\n (activate)=\"rightPane.onSidePaneActivated($event)\"\r\n (deactivate)=\"rightPane.onSidePaneDeactivated($event)\">\r\n </router-outlet>\r\n </lib-side-pane>\r\n <lib-toaster-container></lib-toaster-container>\r\n</div>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i4.ShellSidebarLayoutComponent, selector: "lib-shell-sidebar-layout", inputs: ["config"] }, { kind: "component", type: i5.ShellStackedLayoutComponent, selector: "lib-shell-stacked-layout", inputs: ["config"] }, { kind: "component", type: i6.SidePaneComponent, selector: "lib-side-pane", inputs: ["visible"], outputs: ["onComplete"] }, { kind: "component", type: i7.ToasterContainerComponent, selector: "lib-toaster-container" }] });
76
+ ShellLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ShellLayoutComponent, deps: [{ token: i1.Router }, { token: i2.ComponentLoaderFactory }, { token: SHELL_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
77
+ ShellLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ShellLayoutComponent, selector: "lib-shell-layout", inputs: { sidebarFooterTemplate: "sidebarFooterTemplate" }, viewQueries: [{ propertyName: "_dynamicComponentHosts", predicate: DynamicComponentHostDirective, descendants: true }], ngImport: i0, template: "<div [class.hidden]=\"!loaded\"\r\n [class.block]=\"loaded\">\r\n <!-- STACKED LAYOUT -->\r\n <div *ngIf=\"(activeConfig.layout === 'Stacked' || !activeConfig.layout)\"\r\n class=\"shell-container active-side-pane\">\r\n <lib-shell-stacked-layout [config]=\"activeConfig\"></lib-shell-stacked-layout>\r\n </div>\r\n <!-- SIDEBAR LAYOUT -->\r\n <div *ngIf=\"activeConfig.layout === 'Sidebar'\"\r\n class=\"sidebar shell-container active-side-pane\">\r\n <lib-shell-sidebar-layout [config]=\"activeConfig\"\r\n [sidebarFooterTemplate]=\"sidebarFooterTemplate\">\r\n </lib-shell-sidebar-layout>\r\n </div>\r\n <lib-side-pane #rightPane>\r\n <router-outlet name=\"rightpane\"\r\n (activate)=\"rightPane.onSidePaneActivated($event)\"\r\n (deactivate)=\"rightPane.onSidePaneDeactivated($event)\">\r\n </router-outlet>\r\n </lib-side-pane>\r\n <lib-toaster-container></lib-toaster-container>\r\n</div>", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i4.ShellSidebarLayoutComponent, selector: "lib-shell-sidebar-layout", inputs: ["config", "sidebarFooterTemplate"] }, { kind: "component", type: i5.ShellStackedLayoutComponent, selector: "lib-shell-stacked-layout", inputs: ["config"] }, { kind: "component", type: i6.SidePaneComponent, selector: "lib-side-pane", inputs: ["visible"], outputs: ["onComplete"] }, { kind: "component", type: i7.ToasterContainerComponent, selector: "lib-toaster-container" }] });
88
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ShellLayoutComponent, decorators: [{
89
79
  type: Component,
90
- args: [{ selector: 'lib-shell-layout', template: "<div [class.hidden]=\"!loaded\" [class.block]=\"loaded\">\r\n <!-- STACKED LAYOUT -->\r\n <div *ngIf=\"(activeConfig.layout === 'Stacked' || !activeConfig.layout)\"\r\n class=\"shell-container active-side-pane\">\r\n <lib-shell-stacked-layout [config]=\"activeConfig\"></lib-shell-stacked-layout>\r\n </div>\r\n <!-- SIDEBAR LAYOUT -->\r\n <div *ngIf=\"activeConfig.layout === 'Sidebar'\"\r\n class=\"sidebar shell-container active-side-pane\">\r\n <lib-shell-sidebar-layout [config]=\"activeConfig\"></lib-shell-sidebar-layout>\r\n </div>\r\n <lib-side-pane #rightPane>\r\n <router-outlet name=\"rightpane\"\r\n (activate)=\"rightPane.onSidePaneActivated($event)\"\r\n (deactivate)=\"rightPane.onSidePaneDeactivated($event)\">\r\n </router-outlet>\r\n </lib-side-pane>\r\n <lib-toaster-container></lib-toaster-container>\r\n</div>" }]
91
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
92
- type: Inject,
93
- args: [DOCUMENT]
94
- }] }, { type: i1.Router }, { type: i2.Location }, { type: undefined, decorators: [{
80
+ args: [{ selector: 'lib-shell-layout', template: "<div [class.hidden]=\"!loaded\"\r\n [class.block]=\"loaded\">\r\n <!-- STACKED LAYOUT -->\r\n <div *ngIf=\"(activeConfig.layout === 'Stacked' || !activeConfig.layout)\"\r\n class=\"shell-container active-side-pane\">\r\n <lib-shell-stacked-layout [config]=\"activeConfig\"></lib-shell-stacked-layout>\r\n </div>\r\n <!-- SIDEBAR LAYOUT -->\r\n <div *ngIf=\"activeConfig.layout === 'Sidebar'\"\r\n class=\"sidebar shell-container active-side-pane\">\r\n <lib-shell-sidebar-layout [config]=\"activeConfig\"\r\n [sidebarFooterTemplate]=\"sidebarFooterTemplate\">\r\n </lib-shell-sidebar-layout>\r\n </div>\r\n <lib-side-pane #rightPane>\r\n <router-outlet name=\"rightpane\"\r\n (activate)=\"rightPane.onSidePaneActivated($event)\"\r\n (deactivate)=\"rightPane.onSidePaneDeactivated($event)\">\r\n </router-outlet>\r\n </lib-side-pane>\r\n <lib-toaster-container></lib-toaster-container>\r\n</div>" }]
81
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.ComponentLoaderFactory }, { type: undefined, decorators: [{
95
82
  type: Inject,
96
83
  args: [SHELL_CONFIG]
97
- }] }, { type: i3.ComponentLoaderFactory }]; }, propDecorators: { dynamicComponentHosts: [{
84
+ }] }]; }, propDecorators: { _dynamicComponentHosts: [{
98
85
  type: ViewChildren,
99
86
  args: [DynamicComponentHostDirective]
87
+ }], sidebarFooterTemplate: [{
88
+ type: Input
100
89
  }] } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9sYXlvdXRzL3NoZWxsL3NoZWxsLWxheW91dC9zaGVsbC1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtbGF5b3V0L3NoZWxsLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BFLE9BQU8sRUFBaUIsU0FBUyxFQUFxQixNQUFNLEVBQUUsWUFBWSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7O0FBU3JHLE1BQU0sT0FBTyxvQkFBb0I7SUFRL0IsWUFDNEIsUUFBYSxFQUMvQixNQUFjLEVBQ2QsUUFBa0IsRUFDSSxNQUFnQyxFQUN0RCxzQkFBOEM7UUFKNUIsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUMvQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNJLFdBQU0sR0FBTixNQUFNLENBQTBCO1FBQ3RELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFYeEQsMEJBQXFCLEdBQW9ELElBQUksQ0FBQztR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QUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQy9HO1NBQ0Y7SUFDSCxDQUFDOztpSEEzRVUsb0JBQW9CLGtCQVNyQixRQUFRLDJEQUdSLFlBQVk7cUdBWlgsb0JBQW9CLGtHQUNqQiw2QkFBNkIsZ0RDakI3QyxzNEJBa0JNOzJGREZPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFFRSxrQkFBa0I7OzBCQVl6QixNQUFNOzJCQUFDLFFBQVE7OzBCQUdmLE1BQU07MkJBQUMsWUFBWTtpRkFWdEIscUJBQXFCO3NCQURwQixZQUFZO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNIRUxMX0NPTkZJRyB9IGZyb20gJy4vLi4vLi4vLi4vdG9rZW5zJztcclxuaW1wb3J0IHsgSVNoZWxsQ29uZmlnLCBEZWZhdWx0U2hlbGxDb25maWcgfSBmcm9tICcuLy4uLy4uLy4uL3R5cGVzJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgSW5qZWN0LCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCwgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBY3RpdmF0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEeW5hbWljQ29tcG9uZW50SG9zdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvZHluYW1pYy1jb21wb25lbnQtaG9zdC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRMb2FkZXJGYWN0b3J5IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29tcG9uZW50LWxvYWRlci9jb21wb25lbnQtbG9hZGVyLmZhY3RvcnknO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2xpYi1zaGVsbC1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGVsbC1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hlbGxMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XHJcbiAgQFZpZXdDaGlsZHJlbihEeW5hbWljQ29tcG9uZW50SG9zdERpcmVjdGl2ZSlcclxuICBkeW5hbWljQ29tcG9uZW50SG9zdHM6IFF1ZXJ5TGlzdDxEeW5hbWljQ29tcG9uZW50SG9zdERpcmVjdGl2ZT4gfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgc2hvd1JpZ2h0UGFuZVNNID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSByb3V0ZXJTdWIkOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgYWN0aXZlQ29uZmlnOiBJU2hlbGxDb25maWcgPSBuZXcgRGVmYXVsdFNoZWxsQ29uZmlnKCk7XHJcbiAgcHVibGljIGxvYWRlZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBoaWRlU2lkZWJhciA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55LFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxyXG4gICAgQEluamVjdChTSEVMTF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBJU2hlbGxDb25maWcgfCB1bmRlZmluZWQsXHJcbiAgICBwcml2YXRlIGNvbXBvbmVudExvYWRlckZhY3Rvcnk6IENvbXBvbmVudExvYWRlckZhY3RvcnlcclxuICApIHtcclxuICAgIGlmICghY29uZmlnKSB7XHJcbiAgICAgIGNvbmZpZyA9IG5ldyBEZWZhdWx0U2hlbGxDb25maWcoKTtcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZlQ29uZmlnID0gY29uZmlnO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7IHRoaXMubG9hZGVkID0gdHJ1ZTsgfSwgMjAwKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yb3V0ZXJTdWIkID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBBY3RpdmF0aW9uU3RhcnQpKS5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgLy8gY29uc29sZS5sb2coJ1NoZWxsTGF5b3V0Q29tcG9uZW50IEFjdGl2YXRpb25TdGFydCcsIGUpO1xyXG4gICAgICBpZiAoKGUgYXMgQWN0aXZhdGlvblN0YXJ0KT8uc25hcHNob3QpIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZygnU2hlbGxMYXlvdXRDb21wb25lbnQgQWN0aXZhdGlvblN0YXJ0IHNuYXBzaG90JywgKGUgYXMgQWN0aXZhdGlvblN0YXJ0KT8uc25hcHNob3QpO1xyXG4gICAgICAgIGlmICgoZSBhcyBBY3RpdmF0aW9uU3RhcnQpPy5zbmFwc2hvdD8uZGF0YSkge1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ1NoZWxsTGF5b3V0Q29tcG9uZW50IEFjdGl2YXRpb25TdGFydCBzbmFwc2hvdCBkYXRhJywgKGUgYXMgQWN0aXZhdGlvblN0YXJ0KT8uc25hcHNob3QuZGF0YSk7XHJcbiAgICAgICAgICBpZiAoKGUgYXMgQWN0aXZhdGlvblN0YXJ0KT8uc25hcHNob3Q/LmRhdGEuc2hlbGwpIHtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ1NoZWxsTGF5b3V0Q29tcG9uZW50IEFjdGl2YXRpb25TdGFydCBzbmFwc2hvdCBkYXRhIHNoZWxsIHBhcmFtcycsXHJcbiAgICAgICAgICAgIC8vIChlIGFzIEFjdGl2YXRpb25TdGFydCk/LnNuYXBzaG90LmRhdGEuc2hlbGwpO1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUNvbmZpZyA9IChlIGFzIEFjdGl2YXRpb25TdGFydCk/LnNuYXBzaG90LmRhdGEuc2hlbGwgYXMgSVNoZWxsQ29uZmlnO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnU2hlbGxMYXlvdXRDb21wb25lbnQgYWN0aXZlQ29uZmlnIGZyb20gcm91dGU6ICcsIHRoaXMuYWN0aXZlQ29uZmlnKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlQ29uZmlnLmN1c3RvbUhlYWRlckNvbXBvbmVudCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuaW5pdEN1c3RvbUNvbXBvbmVudHMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVDb25maWcgPSB0aGlzLmNvbmZpZyA/IHRoaXMuY29uZmlnIDogbmV3IERlZmF1bHRTaGVsbENvbmZpZygpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnU2hlbGxMYXlvdXRDb21wb25lbnQgZGVmYXVsdCBhY3RpdmVDb25maWc6ICcsIHRoaXMuYWN0aXZlQ29uZmlnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0Q3VzdG9tQ29tcG9uZW50cygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0Q3VzdG9tQ29tcG9uZW50cygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmR5bmFtaWNDb21wb25lbnRIb3N0cyAmJiB0aGlzLmR5bmFtaWNDb21wb25lbnRIb3N0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMubG9hZEN1c3RvbUNvbXBvbmVudCh0aGlzLmR5bmFtaWNDb21wb25lbnRIb3N0cy5maW5kKChfKSA9PiBfLmhvc3ROYW1lID09PSAnSGVhZGVyJykpO1xyXG4gICAgICAvLyBzaW5jZSB5b3UncmUgbm90IHVzaW5nIGl0Li4uXHJcbiAgICAgIC8vIHRoaXMubG9hZEN1c3RvbUNvbXBvbmVudCh0aGlzLmR5bmFtaWNDb21wb25lbnRIb3N0cy5maW5kKF8gPT4gXy5ob3N0TmFtZSA9PT0gJ0Zvb3RlcicpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucm91dGVyU3ViJCkge1xyXG4gICAgICB0aGlzLnJvdXRlclN1YiQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZEN1c3RvbUNvbXBvbmVudChob3N0OiBEeW5hbWljQ29tcG9uZW50SG9zdERpcmVjdGl2ZSB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgaWYgKGhvc3QpIHtcclxuICAgICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZiA9IGhvc3Qudmlld0NvbnRhaW5lclJlZjtcclxuICAgICAgaWYgKHZpZXdDb250YWluZXJSZWYgJiYgdGhpcy5hY3RpdmVDb25maWcuY3VzdG9tSGVhZGVyQ29tcG9uZW50KSB7XHJcbiAgICAgICAgY29uc3QgY2xmID0gdGhpcy5jb21wb25lbnRMb2FkZXJGYWN0b3J5LmNyZWF0ZUxvYWRlcih2aWV3Q29udGFpbmVyUmVmKTtcclxuICAgICAgICBjb25zdCBoZWFkZXJDb21wUmVmID0gY2xmLmF0dGFjaCh0aGlzLmFjdGl2ZUNvbmZpZy5jdXN0b21IZWFkZXJDb21wb25lbnQpLnRvKHZpZXdDb250YWluZXJSZWYuZWxlbWVudCkuc2hvdygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgW2NsYXNzLmhpZGRlbl09XCIhbG9hZGVkXCIgW2NsYXNzLmJsb2NrXT1cImxvYWRlZFwiPlxyXG4gIDwhLS0gU1RBQ0tFRCBMQVlPVVQgLS0+XHJcbiAgPGRpdiAqbmdJZj1cIihhY3RpdmVDb25maWcubGF5b3V0ID09PSAnU3RhY2tlZCcgfHwgIWFjdGl2ZUNvbmZpZy5sYXlvdXQpXCJcclxuICAgICAgIGNsYXNzPVwic2hlbGwtY29udGFpbmVyIGFjdGl2ZS1zaWRlLXBhbmVcIj5cclxuICAgIDxsaWItc2hlbGwtc3RhY2tlZC1sYXlvdXQgW2NvbmZpZ109XCJhY3RpdmVDb25maWdcIj48L2xpYi1zaGVsbC1zdGFja2VkLWxheW91dD5cclxuICA8L2Rpdj5cclxuICA8IS0tIFNJREVCQVIgTEFZT1VUIC0tPlxyXG4gIDxkaXYgKm5nSWY9XCJhY3RpdmVDb25maWcubGF5b3V0ID09PSAnU2lkZWJhcidcIlxyXG4gICAgICAgY2xhc3M9XCJzaWRlYmFyIHNoZWxsLWNvbnRhaW5lciBhY3RpdmUtc2lkZS1wYW5lXCI+XHJcbiAgICA8bGliLXNoZWxsLXNpZGViYXItbGF5b3V0IFtjb25maWddPVwiYWN0aXZlQ29uZmlnXCI+PC9saWItc2hlbGwtc2lkZWJhci1sYXlvdXQ+XHJcbiAgPC9kaXY+XHJcbiAgPGxpYi1zaWRlLXBhbmUgI3JpZ2h0UGFuZT5cclxuICAgIDxyb3V0ZXItb3V0bGV0IG5hbWU9XCJyaWdodHBhbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgKGFjdGl2YXRlKT1cInJpZ2h0UGFuZS5vblNpZGVQYW5lQWN0aXZhdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgKGRlYWN0aXZhdGUpPVwicmlnaHRQYW5lLm9uU2lkZVBhbmVEZWFjdGl2YXRlZCgkZXZlbnQpXCI+XHJcbiAgICA8L3JvdXRlci1vdXRsZXQ+XHJcbiAgPC9saWItc2lkZS1wYW5lPlxyXG4gIDxsaWItdG9hc3Rlci1jb250YWluZXI+PC9saWItdG9hc3Rlci1jb250YWluZXI+XHJcbjwvZGl2PiJdfQ==
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9sYXlvdXRzL3NoZWxsL3NoZWxsLWxheW91dC9zaGVsbC1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtbGF5b3V0L3NoZWxsLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBcUIsTUFBTSxFQUFFLFlBQVksRUFBNEMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25KLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7O0FBT3JHLE1BQU0sT0FBTyxvQkFBb0I7SUFJL0IsWUFDVSxPQUFlLEVBQ2YsdUJBQStDLEVBQ3pCLE9BQWlDO1FBRnZELFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBQ3pCLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBTlosMkJBQXNCLEdBQW9ELElBQUksQ0FBQztRQUM1SCxnQkFBVyxHQUF3QixJQUFJLENBQUM7UUFjekMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsaUJBQVksR0FBaUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3RELFdBQU0sR0FB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QXFCO3NCQUFwQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgSW5qZWN0LCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgVGVtcGxhdGVSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNIRUxMX0NPTkZJRyB9IGZyb20gJy4vLi4vLi4vLi4vdG9rZW5zJztcclxuaW1wb3J0IHsgSVNoZWxsQ29uZmlnLCBEZWZhdWx0U2hlbGxDb25maWcgfSBmcm9tICcuLy4uLy4uLy4uL3R5cGVzJztcclxuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEhvc3REaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2R5bmFtaWMtY29tcG9uZW50LWhvc3QuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50TG9hZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbXBvbmVudC1sb2FkZXIvY29tcG9uZW50LWxvYWRlci5mYWN0b3J5JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNoZWxsLWxheW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NoZWxsLWxheW91dC5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaGVsbExheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBBZnRlclZpZXdDaGVja2VkIHtcclxuICBAVmlld0NoaWxkcmVuKER5bmFtaWNDb21wb25lbnRIb3N0RGlyZWN0aXZlKSBwcml2YXRlIF9keW5hbWljQ29tcG9uZW50SG9zdHM6IFF1ZXJ5TGlzdDxEeW5hbWljQ29tcG9uZW50SG9zdERpcmVjdGl2ZT4gfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIF9yb3V0ZXJTdWIkOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgX2NvbXBvbmVudExvYWRlckZhY3Rvcnk6IENvbXBvbmVudExvYWRlckZhY3RvcnksXHJcbiAgICBASW5qZWN0KFNIRUxMX0NPTkZJRykgcHJpdmF0ZSBfY29uZmlnOiBJU2hlbGxDb25maWcgfCB1bmRlZmluZWRcclxuICApIHtcclxuICAgIGlmICghX2NvbmZpZykge1xyXG4gICAgICBfY29uZmlnID0gbmV3IERlZmF1bHRTaGVsbENvbmZpZygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3RpdmVDb25maWcgPSBfY29uZmlnO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgcHVibGljIHNpZGViYXJGb290ZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgcHVibGljIHNob3dSaWdodFBhbmVTTSA9IGZhbHNlO1xyXG4gIHB1YmxpYyBhY3RpdmVDb25maWc6IElTaGVsbENvbmZpZyA9IG5ldyBEZWZhdWx0U2hlbGxDb25maWcoKTtcclxuICBwdWJsaWMgbG9hZGVkID0gZmFsc2U7XHJcbiAgcHVibGljIGhpZGVTaWRlYmFyID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgdGhpcy5sb2FkZWQgPSB0cnVlOyB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcm91dGVyU3ViJCA9IHRoaXMuX3JvdXRlclxyXG4gICAgICAuZXZlbnRzXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgQWN0aXZhdGlvblN0YXJ0KVxyXG4gICAgICApLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoKGV2ZW50IGFzIEFjdGl2YXRpb25TdGFydCk/LnNuYXBzaG90KSB7XHJcbiAgICAgICAgICBpZiAoKGV2ZW50IGFzIEFjdGl2YXRpb25TdGFydCk/LnNuYXBzaG90Py5kYXRhKSB7XHJcbiAgICAgICAgICAgIGlmICgoZXZlbnQgYXMgQWN0aXZhdGlvblN0YXJ0KT8uc25hcHNob3Q/LmRhdGEuc2hlbGwpIHtcclxuICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUNvbmZpZyA9IChldmVudCBhcyBBY3RpdmF0aW9uU3RhcnQpPy5zbmFwc2hvdC5kYXRhLnNoZWxsIGFzIElTaGVsbENvbmZpZztcclxuICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVDb25maWcuY3VzdG9tSGVhZGVyQ29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRDdXN0b21Db21wb25lbnRzKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuYWN0aXZlQ29uZmlnID0gdGhpcy5fY29uZmlnID8gdGhpcy5fY29uZmlnIDogbmV3IERlZmF1bHRTaGVsbENvbmZpZygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRDdXN0b21Db21wb25lbnRzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRDdXN0b21Db21wb25lbnRzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2R5bmFtaWNDb21wb25lbnRIb3N0cyAmJiB0aGlzLl9keW5hbWljQ29tcG9uZW50SG9zdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmxvYWRDdXN0b21Db21wb25lbnQodGhpcy5fZHluYW1pY0NvbXBvbmVudEhvc3RzLmZpbmQoKF8pID0+IF8uaG9zdE5hbWUgPT09ICdIZWFkZXInKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fcm91dGVyU3ViJCkge1xyXG4gICAgICB0aGlzLl9yb3V0ZXJTdWIkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRDdXN0b21Db21wb25lbnQoaG9zdDogRHluYW1pY0NvbXBvbmVudEhvc3REaXJlY3RpdmUgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgIGlmIChob3N0KSB7XHJcbiAgICAgIGNvbnN0IHZpZXdDb250YWluZXJSZWYgPSBob3N0LnZpZXdDb250YWluZXJSZWY7XHJcbiAgICAgIGlmICh2aWV3Q29udGFpbmVyUmVmICYmIHRoaXMuYWN0aXZlQ29uZmlnLmN1c3RvbUhlYWRlckNvbXBvbmVudCkge1xyXG4gICAgICAgIGNvbnN0IGNsZiA9IHRoaXMuX2NvbXBvbmVudExvYWRlckZhY3RvcnkuY3JlYXRlTG9hZGVyKHZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICAgIGNsZi5hdHRhY2godGhpcy5hY3RpdmVDb25maWcuY3VzdG9tSGVhZGVyQ29tcG9uZW50KS50byh2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQpLnNob3coKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFtjbGFzcy5oaWRkZW5dPVwiIWxvYWRlZFwiXHJcbiAgICAgW2NsYXNzLmJsb2NrXT1cImxvYWRlZFwiPlxyXG4gIDwhLS0gU1RBQ0tFRCBMQVlPVVQgLS0+XHJcbiAgPGRpdiAqbmdJZj1cIihhY3RpdmVDb25maWcubGF5b3V0ID09PSAnU3RhY2tlZCcgfHwgIWFjdGl2ZUNvbmZpZy5sYXlvdXQpXCJcclxuICAgICAgIGNsYXNzPVwic2hlbGwtY29udGFpbmVyIGFjdGl2ZS1zaWRlLXBhbmVcIj5cclxuICAgIDxsaWItc2hlbGwtc3RhY2tlZC1sYXlvdXQgW2NvbmZpZ109XCJhY3RpdmVDb25maWdcIj48L2xpYi1zaGVsbC1zdGFja2VkLWxheW91dD5cclxuICA8L2Rpdj5cclxuICA8IS0tIFNJREVCQVIgTEFZT1VUIC0tPlxyXG4gIDxkaXYgKm5nSWY9XCJhY3RpdmVDb25maWcubGF5b3V0ID09PSAnU2lkZWJhcidcIlxyXG4gICAgICAgY2xhc3M9XCJzaWRlYmFyIHNoZWxsLWNvbnRhaW5lciBhY3RpdmUtc2lkZS1wYW5lXCI+XHJcbiAgICA8bGliLXNoZWxsLXNpZGViYXItbGF5b3V0IFtjb25maWddPVwiYWN0aXZlQ29uZmlnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NpZGViYXJGb290ZXJUZW1wbGF0ZV09XCJzaWRlYmFyRm9vdGVyVGVtcGxhdGVcIj5cclxuICAgIDwvbGliLXNoZWxsLXNpZGViYXItbGF5b3V0PlxyXG4gIDwvZGl2PlxyXG4gIDxsaWItc2lkZS1wYW5lICNyaWdodFBhbmU+XHJcbiAgICA8cm91dGVyLW91dGxldCBuYW1lPVwicmlnaHRwYW5lXCJcclxuICAgICAgICAgICAgICAgICAgIChhY3RpdmF0ZSk9XCJyaWdodFBhbmUub25TaWRlUGFuZUFjdGl2YXRlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgIChkZWFjdGl2YXRlKT1cInJpZ2h0UGFuZS5vblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50KVwiPlxyXG4gICAgPC9yb3V0ZXItb3V0bGV0PlxyXG4gIDwvbGliLXNpZGUtcGFuZT5cclxuICA8bGliLXRvYXN0ZXItY29udGFpbmVyPjwvbGliLXRvYXN0ZXItY29udGFpbmVyPlxyXG48L2Rpdj4iXX0=
@@ -18,11 +18,13 @@ export class ShellSidebarLayoutComponent {
18
18
  }
19
19
  }
20
20
  ShellSidebarLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ShellSidebarLayoutComponent, deps: [{ token: i1.UserSettingsService }], target: i0.ɵɵFactoryTarget.Component });
21
- ShellSidebarLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ShellSidebarLayoutComponent, selector: "lib-shell-sidebar-layout", inputs: { config: "config" }, ngImport: i0, template: "<div>\r\n <div class=\"sidebar-off-canvas-menu-container\"\r\n role=\"dialog\"\r\n aria-modal=\"true\">\r\n <div class=\"sidebar-off-canvas-menu-backdrop\"\r\n [class.sidebar-off-canvas-menu-backdrop-opacity-100]=\"!showMobileSidebar\">\r\n </div>\r\n <div class=\"sidebar-off-canvas-menu-container-inner\"\r\n [class.sidebar-off-canvas-menu-container-inner-active]=\"!showMobileSidebar\"\r\n [class.sidebar-off-canvas-menu-container-inner-not-active]=\"showMobileSidebar\">\r\n <div class=\"sidebar-off-canvas-layout-container\">\r\n <div class=\"sidebar-off-canvas-toggle-button-container\">\r\n <button type=\"button\"\r\n class=\"sidebar-off-canvas-toggle-button\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Close sidebar</span>\r\n <svg class=\"h-6 w-6 text-white\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <div class=\"sidebar-off-canvas-app-logo-container\">\r\n <img class=\"h-8 w-auto\"\r\n [src]=\"config?.appLogo\"\r\n [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n <lib-shell-sidebar></lib-shell-sidebar>\r\n </div>\r\n <div class=\"sidebar-dummy-element\"\r\n aria-hidden=\"true\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-outer-container\">\r\n <div class=\"sidebar-static-menu-container\"\r\n [class.sidebar-static-menu-container-active]=\"!showMobileSidebar\"\r\n [class.sidebar-static-menu-container-not-active]=\"showMobileSidebar\">\r\n <div class=\"sidebar-static-menu-container-inner\">\r\n <div class=\"sidebar-static-menu-app-logo-container\">\r\n <img *ngIf=\"!showMobileSidebar\"\r\n class=\"h-8 w-auto\"\r\n [src]=\"config?.appLogo\"\r\n [alt]=\"config?.appLogoAlt\">\r\n <button *ngIf=\"showMobileSidebar\"\r\n type=\"button\"\r\n class=\"sidebar-static-menu-toggle-button\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <svg class=\"h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <lib-shell-sidebar [sticky]=\"showMobileSidebar\"></lib-shell-sidebar>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-wrapper\"\r\n [class.sidebar-static-menu-wrapper-expanded]=\"!showMobileSidebar\">\r\n <div class=\"sidebar-static-menu-sticky-header-container\"\r\n *ngIf=\"config?.showHeader\">\r\n <button *ngIf=\"showMobileSidebar\"\r\n type=\"button\"\r\n class=\"sidebar-static-menu-toggle-button-md\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <svg class=\"h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n <button *ngIf=\"!showMobileSidebar\"\r\n type=\"button\"\r\n class=\"sidebar-static-menu-toggle-button\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <svg class=\"h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n <div class=\"sidebar-static-menu-header-container\">\r\n <div class=\"sidebar-static-menu-header-near-container\">\r\n <div class=\"sidebar-static-menu-header-app-logo-container\"\r\n *ngIf=\"showMobileSidebar\">\r\n <img class=\"h-8 w-auto\"\r\n [src]=\"config?.appLogo\"\r\n [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-header-far-container\">\r\n <lib-shell-sidebar-header [show-userName]=\"config?.showUserNameOnHeader\"\r\n [show-alerts]=\"config?.showAlertsOnHeader\"\r\n [show-langs]=\"config?.showLangsOnHeader\">\r\n </lib-shell-sidebar-header>\r\n </div>\r\n </div>\r\n </div>\r\n <div flex-1>\r\n <main class=\"shell-content-container-fluid\">\r\n <lib-breadcrumb *ngIf=\"config?.breadcrumb || false\"></lib-breadcrumb>\r\n <div class=\"shell-content-container-inner\">\r\n <router-outlet *ngIf=\"(config && config.layout === 'Sidebar')\"></router-outlet>\r\n </div>\r\n </main>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i4.BreadcrumbComponent, selector: "lib-breadcrumb" }, { kind: "component", type: i5.ShellSidebarComponent, selector: "lib-shell-sidebar", inputs: ["section-links", "config", "sticky"] }, { kind: "component", type: i6.ShellSidebarHeaderComponent, selector: "lib-shell-sidebar-header" }] });
21
+ ShellSidebarLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ShellSidebarLayoutComponent, selector: "lib-shell-sidebar-layout", inputs: { config: "config", sidebarFooterTemplate: "sidebarFooterTemplate" }, ngImport: i0, template: "<div>\r\n <div class=\"sidebar-off-canvas-menu-container\"\r\n role=\"dialog\"\r\n aria-modal=\"true\">\r\n <div class=\"sidebar-off-canvas-menu-backdrop\"\r\n [class.sidebar-off-canvas-menu-backdrop-opacity-100]=\"!showMobileSidebar\">\r\n </div>\r\n <div class=\"sidebar-off-canvas-menu-container-inner\"\r\n [class.sidebar-off-canvas-menu-container-inner-active]=\"!showMobileSidebar\"\r\n [class.sidebar-off-canvas-menu-container-inner-not-active]=\"showMobileSidebar\">\r\n <div class=\"sidebar-off-canvas-layout-container\">\r\n <div class=\"sidebar-off-canvas-toggle-button-container\">\r\n <button type=\"button\"\r\n class=\"sidebar-off-canvas-toggle-button\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Close sidebar</span>\r\n <svg class=\"h-6 w-6 text-white\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <div class=\"sidebar-off-canvas-app-logo-container\">\r\n <img class=\"h-8 w-auto\"\r\n [src]=\"config?.appLogo\"\r\n [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n <lib-shell-sidebar></lib-shell-sidebar>\r\n </div>\r\n <div class=\"sidebar-dummy-element\"\r\n aria-hidden=\"true\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-outer-container\">\r\n <div class=\"sidebar-static-menu-container\"\r\n [class.sidebar-static-menu-container-active]=\"!showMobileSidebar\"\r\n [class.sidebar-static-menu-container-not-active]=\"showMobileSidebar\">\r\n <div class=\"sidebar-static-menu-container-inner\">\r\n <div class=\"sidebar-static-menu-app-logo-container\">\r\n <img *ngIf=\"!showMobileSidebar\"\r\n class=\"h-8 w-auto\"\r\n [src]=\"config?.appLogo\"\r\n [alt]=\"config?.appLogoAlt\">\r\n <button *ngIf=\"showMobileSidebar\"\r\n type=\"button\"\r\n class=\"sidebar-static-menu-toggle-button\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <svg class=\"h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <lib-shell-sidebar [sticky]=\"showMobileSidebar\"></lib-shell-sidebar>\r\n </div>\r\n <div class=\"flex flex-shrink-0 bg-gray-700 p-4\"\r\n *ngIf=\"!showMobileSidebar && sidebarFooterTemplate\">\r\n <div class=\"group block flex-shrink-0\">\r\n <div class=\"flex items-center\">\r\n <div>\r\n <p class=\"text-sm font-medium text-gray-400\">\r\n <ng-container [ngTemplateOutlet]=\"sidebarFooterTemplate\"></ng-container>\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-wrapper\"\r\n [class.sidebar-static-menu-wrapper-expanded]=\"!showMobileSidebar\">\r\n <div class=\"sidebar-static-menu-sticky-header-container\"\r\n *ngIf=\"config?.showHeader\">\r\n <button *ngIf=\"showMobileSidebar\"\r\n type=\"button\"\r\n class=\"sidebar-static-menu-toggle-button-md\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <svg class=\"h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n <button *ngIf=\"!showMobileSidebar\"\r\n type=\"button\"\r\n class=\"sidebar-static-menu-toggle-button\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <svg class=\"h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n <div class=\"sidebar-static-menu-header-container\">\r\n <div class=\"sidebar-static-menu-header-near-container\">\r\n <div class=\"sidebar-static-menu-header-app-logo-container\"\r\n *ngIf=\"showMobileSidebar\">\r\n <img class=\"h-8 w-auto\"\r\n [src]=\"config?.appLogo\"\r\n [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-header-far-container\">\r\n <lib-shell-sidebar-header [show-userName]=\"config?.showUserNameOnHeader\"\r\n [show-alerts]=\"config?.showAlertsOnHeader\"\r\n [show-langs]=\"config?.showLangsOnHeader\">\r\n </lib-shell-sidebar-header>\r\n </div>\r\n </div>\r\n </div>\r\n <div flex-1>\r\n <main class=\"shell-content-container-fluid\">\r\n <lib-breadcrumb *ngIf=\"config?.breadcrumb || false\"></lib-breadcrumb>\r\n <div class=\"shell-content-container-inner\">\r\n <router-outlet *ngIf=\"(config && config.layout === 'Sidebar')\"></router-outlet>\r\n </div>\r\n </main>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i4.BreadcrumbComponent, selector: "lib-breadcrumb" }, { kind: "component", type: i5.ShellSidebarComponent, selector: "lib-shell-sidebar", inputs: ["section-links", "config", "sticky"] }, { kind: "component", type: i6.ShellSidebarHeaderComponent, selector: "lib-shell-sidebar-header" }] });
22
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ShellSidebarLayoutComponent, decorators: [{
23
23
  type: Component,
24
- args: [{ selector: 'lib-shell-sidebar-layout', template: "<div>\r\n <div class=\"sidebar-off-canvas-menu-container\"\r\n role=\"dialog\"\r\n aria-modal=\"true\">\r\n <div class=\"sidebar-off-canvas-menu-backdrop\"\r\n [class.sidebar-off-canvas-menu-backdrop-opacity-100]=\"!showMobileSidebar\">\r\n </div>\r\n <div class=\"sidebar-off-canvas-menu-container-inner\"\r\n [class.sidebar-off-canvas-menu-container-inner-active]=\"!showMobileSidebar\"\r\n [class.sidebar-off-canvas-menu-container-inner-not-active]=\"showMobileSidebar\">\r\n <div class=\"sidebar-off-canvas-layout-container\">\r\n <div class=\"sidebar-off-canvas-toggle-button-container\">\r\n <button type=\"button\"\r\n class=\"sidebar-off-canvas-toggle-button\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Close sidebar</span>\r\n <svg class=\"h-6 w-6 text-white\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <div class=\"sidebar-off-canvas-app-logo-container\">\r\n <img class=\"h-8 w-auto\"\r\n [src]=\"config?.appLogo\"\r\n [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n <lib-shell-sidebar></lib-shell-sidebar>\r\n </div>\r\n <div class=\"sidebar-dummy-element\"\r\n aria-hidden=\"true\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-outer-container\">\r\n <div class=\"sidebar-static-menu-container\"\r\n [class.sidebar-static-menu-container-active]=\"!showMobileSidebar\"\r\n [class.sidebar-static-menu-container-not-active]=\"showMobileSidebar\">\r\n <div class=\"sidebar-static-menu-container-inner\">\r\n <div class=\"sidebar-static-menu-app-logo-container\">\r\n <img *ngIf=\"!showMobileSidebar\"\r\n class=\"h-8 w-auto\"\r\n [src]=\"config?.appLogo\"\r\n [alt]=\"config?.appLogoAlt\">\r\n <button *ngIf=\"showMobileSidebar\"\r\n type=\"button\"\r\n class=\"sidebar-static-menu-toggle-button\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <svg class=\"h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <lib-shell-sidebar [sticky]=\"showMobileSidebar\"></lib-shell-sidebar>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-wrapper\"\r\n [class.sidebar-static-menu-wrapper-expanded]=\"!showMobileSidebar\">\r\n <div class=\"sidebar-static-menu-sticky-header-container\"\r\n *ngIf=\"config?.showHeader\">\r\n <button *ngIf=\"showMobileSidebar\"\r\n type=\"button\"\r\n class=\"sidebar-static-menu-toggle-button-md\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <svg class=\"h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n <button *ngIf=\"!showMobileSidebar\"\r\n type=\"button\"\r\n class=\"sidebar-static-menu-toggle-button\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <svg class=\"h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n <div class=\"sidebar-static-menu-header-container\">\r\n <div class=\"sidebar-static-menu-header-near-container\">\r\n <div class=\"sidebar-static-menu-header-app-logo-container\"\r\n *ngIf=\"showMobileSidebar\">\r\n <img class=\"h-8 w-auto\"\r\n [src]=\"config?.appLogo\"\r\n [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-header-far-container\">\r\n <lib-shell-sidebar-header [show-userName]=\"config?.showUserNameOnHeader\"\r\n [show-alerts]=\"config?.showAlertsOnHeader\"\r\n [show-langs]=\"config?.showLangsOnHeader\">\r\n </lib-shell-sidebar-header>\r\n </div>\r\n </div>\r\n </div>\r\n <div flex-1>\r\n <main class=\"shell-content-container-fluid\">\r\n <lib-breadcrumb *ngIf=\"config?.breadcrumb || false\"></lib-breadcrumb>\r\n <div class=\"shell-content-container-inner\">\r\n <router-outlet *ngIf=\"(config && config.layout === 'Sidebar')\"></router-outlet>\r\n </div>\r\n </main>\r\n </div>\r\n </div>\r\n</div>" }]
24
+ args: [{ selector: 'lib-shell-sidebar-layout', template: "<div>\r\n <div class=\"sidebar-off-canvas-menu-container\"\r\n role=\"dialog\"\r\n aria-modal=\"true\">\r\n <div class=\"sidebar-off-canvas-menu-backdrop\"\r\n [class.sidebar-off-canvas-menu-backdrop-opacity-100]=\"!showMobileSidebar\">\r\n </div>\r\n <div class=\"sidebar-off-canvas-menu-container-inner\"\r\n [class.sidebar-off-canvas-menu-container-inner-active]=\"!showMobileSidebar\"\r\n [class.sidebar-off-canvas-menu-container-inner-not-active]=\"showMobileSidebar\">\r\n <div class=\"sidebar-off-canvas-layout-container\">\r\n <div class=\"sidebar-off-canvas-toggle-button-container\">\r\n <button type=\"button\"\r\n class=\"sidebar-off-canvas-toggle-button\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Close sidebar</span>\r\n <svg class=\"h-6 w-6 text-white\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <div class=\"sidebar-off-canvas-app-logo-container\">\r\n <img class=\"h-8 w-auto\"\r\n [src]=\"config?.appLogo\"\r\n [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n <lib-shell-sidebar></lib-shell-sidebar>\r\n </div>\r\n <div class=\"sidebar-dummy-element\"\r\n aria-hidden=\"true\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-outer-container\">\r\n <div class=\"sidebar-static-menu-container\"\r\n [class.sidebar-static-menu-container-active]=\"!showMobileSidebar\"\r\n [class.sidebar-static-menu-container-not-active]=\"showMobileSidebar\">\r\n <div class=\"sidebar-static-menu-container-inner\">\r\n <div class=\"sidebar-static-menu-app-logo-container\">\r\n <img *ngIf=\"!showMobileSidebar\"\r\n class=\"h-8 w-auto\"\r\n [src]=\"config?.appLogo\"\r\n [alt]=\"config?.appLogoAlt\">\r\n <button *ngIf=\"showMobileSidebar\"\r\n type=\"button\"\r\n class=\"sidebar-static-menu-toggle-button\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <svg class=\"h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <lib-shell-sidebar [sticky]=\"showMobileSidebar\"></lib-shell-sidebar>\r\n </div>\r\n <div class=\"flex flex-shrink-0 bg-gray-700 p-4\"\r\n *ngIf=\"!showMobileSidebar && sidebarFooterTemplate\">\r\n <div class=\"group block flex-shrink-0\">\r\n <div class=\"flex items-center\">\r\n <div>\r\n <p class=\"text-sm font-medium text-gray-400\">\r\n <ng-container [ngTemplateOutlet]=\"sidebarFooterTemplate\"></ng-container>\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-wrapper\"\r\n [class.sidebar-static-menu-wrapper-expanded]=\"!showMobileSidebar\">\r\n <div class=\"sidebar-static-menu-sticky-header-container\"\r\n *ngIf=\"config?.showHeader\">\r\n <button *ngIf=\"showMobileSidebar\"\r\n type=\"button\"\r\n class=\"sidebar-static-menu-toggle-button-md\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <svg class=\"h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n <button *ngIf=\"!showMobileSidebar\"\r\n type=\"button\"\r\n class=\"sidebar-static-menu-toggle-button\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <svg class=\"h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n <div class=\"sidebar-static-menu-header-container\">\r\n <div class=\"sidebar-static-menu-header-near-container\">\r\n <div class=\"sidebar-static-menu-header-app-logo-container\"\r\n *ngIf=\"showMobileSidebar\">\r\n <img class=\"h-8 w-auto\"\r\n [src]=\"config?.appLogo\"\r\n [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-header-far-container\">\r\n <lib-shell-sidebar-header [show-userName]=\"config?.showUserNameOnHeader\"\r\n [show-alerts]=\"config?.showAlertsOnHeader\"\r\n [show-langs]=\"config?.showLangsOnHeader\">\r\n </lib-shell-sidebar-header>\r\n </div>\r\n </div>\r\n </div>\r\n <div flex-1>\r\n <main class=\"shell-content-container-fluid\">\r\n <lib-breadcrumb *ngIf=\"config?.breadcrumb || false\"></lib-breadcrumb>\r\n <div class=\"shell-content-container-inner\">\r\n <router-outlet *ngIf=\"(config && config.layout === 'Sidebar')\"></router-outlet>\r\n </div>\r\n </main>\r\n </div>\r\n </div>\r\n</div>" }]
25
25
  }], ctorParameters: function () { return [{ type: i1.UserSettingsService }]; }, propDecorators: { config: [{
26
26
  type: Input
27
+ }], sidebarFooterTemplate: [{
28
+ type: Input
27
29
  }] } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtc2lkZWJhci1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtc2lkZWJhci1sYXlvdXQvc2hlbGwtc2lkZWJhci1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtc2lkZWJhci1sYXlvdXQvc2hlbGwtc2lkZWJhci1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBU3pELE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsWUFDVSxhQUFrQztRQUFsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFFMUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFLTSxRQUFRLEtBQVcsQ0FBQztJQUVwQixtQkFBbUI7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ2pELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNsRSxDQUFDOzt3SEFmVSwyQkFBMkI7NEdBQTNCLDJCQUEyQiw4RkNUeEMsMCtMQXlJTTsyRkRoSU8sMkJBQTJCO2tCQUp2QyxTQUFTOytCQUNFLDBCQUEwQjswR0FVM0IsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBJU2hlbGxDb25maWcgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XHJcbmltcG9ydCB7IFVzZXJTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91c2VyLXNldHRpbmdzLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc2hlbGwtc2lkZWJhci1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGVsbC1zaWRlYmFyLWxheW91dC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNoZWxsU2lkZWJhckxheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF91c2VyU2V0dGluZ3M6IFVzZXJTZXR0aW5nc1NlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuc2hvd01vYmlsZVNpZGViYXIgPSB0aGlzLl91c2VyU2V0dGluZ3MuZ2V0KCdNb2JpbGVTaWRlQmFyJyk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBjb25maWc6IElTaGVsbENvbmZpZyB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgc2hvd01vYmlsZVNpZGViYXI6IGJvb2xlYW47XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHsgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlTW9iaWxlU2lkZWJhcigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd01vYmlsZVNpZGViYXIgPSAhdGhpcy5zaG93TW9iaWxlU2lkZWJhcjtcclxuICAgIHRoaXMuX3VzZXJTZXR0aW5ncy5zZXQoJ01vYmlsZVNpZGVCYXInLCB0aGlzLnNob3dNb2JpbGVTaWRlYmFyKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdj5cclxuICA8ZGl2IGNsYXNzPVwic2lkZWJhci1vZmYtY2FudmFzLW1lbnUtY29udGFpbmVyXCJcclxuICAgICAgIHJvbGU9XCJkaWFsb2dcIlxyXG4gICAgICAgYXJpYS1tb2RhbD1cInRydWVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLW9mZi1jYW52YXMtbWVudS1iYWNrZHJvcFwiXHJcbiAgICAgICAgIFtjbGFzcy5zaWRlYmFyLW9mZi1jYW52YXMtbWVudS1iYWNrZHJvcC1vcGFjaXR5LTEwMF09XCIhc2hvd01vYmlsZVNpZGViYXJcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInNpZGViYXItb2ZmLWNhbnZhcy1tZW51LWNvbnRhaW5lci1pbm5lclwiXHJcbiAgICAgICAgIFtjbGFzcy5zaWRlYmFyLW9mZi1jYW52YXMtbWVudS1jb250YWluZXItaW5uZXItYWN0aXZlXT1cIiFzaG93TW9iaWxlU2lkZWJhclwiXHJcbiAgICAgICAgIFtjbGFzcy5zaWRlYmFyLW9mZi1jYW52YXMtbWVudS1jb250YWluZXItaW5uZXItbm90LWFjdGl2ZV09XCJzaG93TW9iaWxlU2lkZWJhclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2lkZWJhci1vZmYtY2FudmFzLWxheW91dC1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZWJhci1vZmYtY2FudmFzLXRvZ2dsZS1idXR0b24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNpZGViYXItb2ZmLWNhbnZhcy10b2dnbGUtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1vYmlsZVNpZGViYXIoKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5DbG9zZSBzaWRlYmFyPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiaC02IHctNiB0ZXh0LXdoaXRlXCJcclxuICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk02IDE4TDE4IDZNNiA2bDEyIDEyXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZWJhci1vZmYtY2FudmFzLWFwcC1sb2dvLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGltZyBjbGFzcz1cImgtOCB3LWF1dG9cIlxyXG4gICAgICAgICAgICAgICBbc3JjXT1cImNvbmZpZz8uYXBwTG9nb1wiXHJcbiAgICAgICAgICAgICAgIFthbHRdPVwiY29uZmlnPy5hcHBMb2dvQWx0XCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGxpYi1zaGVsbC1zaWRlYmFyPjwvbGliLXNoZWxsLXNpZGViYXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2lkZWJhci1kdW1teS1lbGVtZW50XCJcclxuICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwic2lkZWJhci1zdGF0aWMtbWVudS1vdXRlci1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLXN0YXRpYy1tZW51LWNvbnRhaW5lclwiXHJcbiAgICAgICAgIFtjbGFzcy5zaWRlYmFyLXN0YXRpYy1tZW51LWNvbnRhaW5lci1hY3RpdmVdPVwiIXNob3dNb2JpbGVTaWRlYmFyXCJcclxuICAgICAgICAgW2NsYXNzLnNpZGViYXItc3RhdGljLW1lbnUtY29udGFpbmVyLW5vdC1hY3RpdmVdPVwic2hvd01vYmlsZVNpZGViYXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNpZGViYXItc3RhdGljLW1lbnUtY29udGFpbmVyLWlubmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNpZGViYXItc3RhdGljLW1lbnUtYXBwLWxvZ28tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8aW1nICpuZ0lmPVwiIXNob3dNb2JpbGVTaWRlYmFyXCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJoLTggdy1hdXRvXCJcclxuICAgICAgICAgICAgICAgW3NyY109XCJjb25maWc/LmFwcExvZ29cIlxyXG4gICAgICAgICAgICAgICBbYWx0XT1cImNvbmZpZz8uYXBwTG9nb0FsdFwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dNb2JpbGVTaWRlYmFyXCJcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2lkZWJhci1zdGF0aWMtbWVudS10b2dnbGUtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1vYmlsZVNpZGViYXIoKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5Ub2dnbGUgc2lkZWJhcjwvc3Bhbj5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImgtNiB3LTZcIlxyXG4gICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTQgNmgxNk00IDEyaDE2TTQgMThoN1wiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGxpYi1zaGVsbC1zaWRlYmFyIFtzdGlja3ldPVwic2hvd01vYmlsZVNpZGViYXJcIj48L2xpYi1zaGVsbC1zaWRlYmFyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJzaWRlYmFyLXN0YXRpYy1tZW51LXdyYXBwZXJcIlxyXG4gICAgICAgW2NsYXNzLnNpZGViYXItc3RhdGljLW1lbnUtd3JhcHBlci1leHBhbmRlZF09XCIhc2hvd01vYmlsZVNpZGViYXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLXN0YXRpYy1tZW51LXN0aWNreS1oZWFkZXItY29udGFpbmVyXCJcclxuICAgICAgICAgKm5nSWY9XCJjb25maWc/LnNob3dIZWFkZXJcIj5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dNb2JpbGVTaWRlYmFyXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInNpZGViYXItc3RhdGljLW1lbnUtdG9nZ2xlLWJ1dHRvbi1tZFwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1vYmlsZVNpZGViYXIoKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPlRvZ2dsZSBzaWRlYmFyPC9zcGFuPlxyXG4gICAgICAgIDxzdmcgY2xhc3M9XCJoLTYgdy02XCJcclxuICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgZD1cIk00IDZoMTZNNCAxMmgxNk00IDE4aDdcIiAvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFzaG93TW9iaWxlU2lkZWJhclwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzaWRlYmFyLXN0YXRpYy1tZW51LXRvZ2dsZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVNb2JpbGVTaWRlYmFyKClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5Ub2dnbGUgc2lkZWJhcjwvc3Bhbj5cclxuICAgICAgICA8c3ZnIGNsYXNzPVwiaC02IHctNlwiXHJcbiAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgIGQ9XCJNNCA2aDE2TTQgMTJoMTZNNCAxOGg3XCIgLz5cclxuICAgICAgICA8L3N2Zz5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLXN0YXRpYy1tZW51LWhlYWRlci1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZWJhci1zdGF0aWMtbWVudS1oZWFkZXItbmVhci1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLXN0YXRpYy1tZW51LWhlYWRlci1hcHAtbG9nby1jb250YWluZXJcIlxyXG4gICAgICAgICAgICAgICAqbmdJZj1cInNob3dNb2JpbGVTaWRlYmFyXCI+XHJcbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJoLTggdy1hdXRvXCJcclxuICAgICAgICAgICAgICAgICBbc3JjXT1cImNvbmZpZz8uYXBwTG9nb1wiXHJcbiAgICAgICAgICAgICAgICAgW2FsdF09XCJjb25maWc/LmFwcExvZ29BbHRcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLXN0YXRpYy1tZW51LWhlYWRlci1mYXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8bGliLXNoZWxsLXNpZGViYXItaGVhZGVyIFtzaG93LXVzZXJOYW1lXT1cImNvbmZpZz8uc2hvd1VzZXJOYW1lT25IZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvdy1hbGVydHNdPVwiY29uZmlnPy5zaG93QWxlcnRzT25IZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvdy1sYW5nc109XCJjb25maWc/LnNob3dMYW5nc09uSGVhZGVyXCI+XHJcbiAgICAgICAgICA8L2xpYi1zaGVsbC1zaWRlYmFyLWhlYWRlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgZmxleC0xPlxyXG4gICAgICA8bWFpbiBjbGFzcz1cInNoZWxsLWNvbnRlbnQtY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgPGxpYi1icmVhZGNydW1iICpuZ0lmPVwiY29uZmlnPy5icmVhZGNydW1iIHx8IGZhbHNlXCI+PC9saWItYnJlYWRjcnVtYj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hlbGwtY29udGVudC1jb250YWluZXItaW5uZXJcIj5cclxuICAgICAgICAgIDxyb3V0ZXItb3V0bGV0ICpuZ0lmPVwiKGNvbmZpZyAmJiBjb25maWcubGF5b3V0ID09PSAnU2lkZWJhcicpXCI+PC9yb3V0ZXItb3V0bGV0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L21haW4+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtc2lkZWJhci1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtc2lkZWJhci1sYXlvdXQvc2hlbGwtc2lkZWJhci1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtc2lkZWJhci1sYXlvdXQvc2hlbGwtc2lkZWJhci1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQWlDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVN4RixNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQ1UsYUFBa0M7UUFBbEMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBRTFDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBTU0sUUFBUSxLQUFXLENBQUM7SUFFcEIsbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbEUsQ0FBQzs7d0hBaEJVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLDhJQ1R4QyxvK01BcUpNOzJGRDVJTywyQkFBMkI7a0JBSnZDLFNBQVM7K0JBQ0UsMEJBQTBCOzBHQVUzQixNQUFNO3NCQUFkLEtBQUs7Z0JBQ1UscUJBQXFCO3NCQUFwQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgSVNoZWxsQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBVc2VyU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXNlci1zZXR0aW5ncy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNoZWxsLXNpZGViYXItbGF5b3V0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2hlbGwtc2lkZWJhci1sYXlvdXQuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaGVsbFNpZGViYXJMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfdXNlclNldHRpbmdzOiBVc2VyU2V0dGluZ3NTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLnNob3dNb2JpbGVTaWRlYmFyID0gdGhpcy5fdXNlclNldHRpbmdzLmdldCgnTW9iaWxlU2lkZUJhcicpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgY29uZmlnOiBJU2hlbGxDb25maWcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIHNpZGViYXJGb290ZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgcHVibGljIHNob3dNb2JpbGVTaWRlYmFyOiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7IH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZU1vYmlsZVNpZGViYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dNb2JpbGVTaWRlYmFyID0gIXRoaXMuc2hvd01vYmlsZVNpZGViYXI7XHJcbiAgICB0aGlzLl91c2VyU2V0dGluZ3Muc2V0KCdNb2JpbGVTaWRlQmFyJywgdGhpcy5zaG93TW9iaWxlU2lkZWJhcik7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXY+XHJcbiAgPGRpdiBjbGFzcz1cInNpZGViYXItb2ZmLWNhbnZhcy1tZW51LWNvbnRhaW5lclwiXHJcbiAgICAgICByb2xlPVwiZGlhbG9nXCJcclxuICAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2lkZWJhci1vZmYtY2FudmFzLW1lbnUtYmFja2Ryb3BcIlxyXG4gICAgICAgICBbY2xhc3Muc2lkZWJhci1vZmYtY2FudmFzLW1lbnUtYmFja2Ryb3Atb3BhY2l0eS0xMDBdPVwiIXNob3dNb2JpbGVTaWRlYmFyXCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLW9mZi1jYW52YXMtbWVudS1jb250YWluZXItaW5uZXJcIlxyXG4gICAgICAgICBbY2xhc3Muc2lkZWJhci1vZmYtY2FudmFzLW1lbnUtY29udGFpbmVyLWlubmVyLWFjdGl2ZV09XCIhc2hvd01vYmlsZVNpZGViYXJcIlxyXG4gICAgICAgICBbY2xhc3Muc2lkZWJhci1vZmYtY2FudmFzLW1lbnUtY29udGFpbmVyLWlubmVyLW5vdC1hY3RpdmVdPVwic2hvd01vYmlsZVNpZGViYXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNpZGViYXItb2ZmLWNhbnZhcy1sYXlvdXQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNpZGViYXItb2ZmLWNhbnZhcy10b2dnbGUtYnV0dG9uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaWRlYmFyLW9mZi1jYW52YXMtdG9nZ2xlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVNb2JpbGVTaWRlYmFyKClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+Q2xvc2Ugc2lkZWJhcjwvc3Bhbj5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImgtNiB3LTYgdGV4dC13aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNiAxOEwxOCA2TTYgNmwxMiAxMlwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNpZGViYXItb2ZmLWNhbnZhcy1hcHAtbG9nby1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxpbWcgY2xhc3M9XCJoLTggdy1hdXRvXCJcclxuICAgICAgICAgICAgICAgW3NyY109XCJjb25maWc/LmFwcExvZ29cIlxyXG4gICAgICAgICAgICAgICBbYWx0XT1cImNvbmZpZz8uYXBwTG9nb0FsdFwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxsaWItc2hlbGwtc2lkZWJhcj48L2xpYi1zaGVsbC1zaWRlYmFyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNpZGViYXItZHVtbXktZWxlbWVudFwiXHJcbiAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInNpZGViYXItc3RhdGljLW1lbnUtb3V0ZXItY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2lkZWJhci1zdGF0aWMtbWVudS1jb250YWluZXJcIlxyXG4gICAgICAgICBbY2xhc3Muc2lkZWJhci1zdGF0aWMtbWVudS1jb250YWluZXItYWN0aXZlXT1cIiFzaG93TW9iaWxlU2lkZWJhclwiXHJcbiAgICAgICAgIFtjbGFzcy5zaWRlYmFyLXN0YXRpYy1tZW51LWNvbnRhaW5lci1ub3QtYWN0aXZlXT1cInNob3dNb2JpbGVTaWRlYmFyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLXN0YXRpYy1tZW51LWNvbnRhaW5lci1pbm5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLXN0YXRpYy1tZW51LWFwcC1sb2dvLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGltZyAqbmdJZj1cIiFzaG93TW9iaWxlU2lkZWJhclwiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiaC04IHctYXV0b1wiXHJcbiAgICAgICAgICAgICAgIFtzcmNdPVwiY29uZmlnPy5hcHBMb2dvXCJcclxuICAgICAgICAgICAgICAgW2FsdF09XCJjb25maWc/LmFwcExvZ29BbHRcIj5cclxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzaG93TW9iaWxlU2lkZWJhclwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNpZGViYXItc3RhdGljLW1lbnUtdG9nZ2xlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVNb2JpbGVTaWRlYmFyKClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+VG9nZ2xlIHNpZGViYXI8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJoLTYgdy02XCJcclxuICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk00IDZoMTZNNCAxMmgxNk00IDE4aDdcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxsaWItc2hlbGwtc2lkZWJhciBbc3RpY2t5XT1cInNob3dNb2JpbGVTaWRlYmFyXCI+PC9saWItc2hlbGwtc2lkZWJhcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtc2hyaW5rLTAgYmctZ3JheS03MDAgcC00XCJcclxuICAgICAgICAgICAqbmdJZj1cIiFzaG93TW9iaWxlU2lkZWJhciAmJiBzaWRlYmFyRm9vdGVyVGVtcGxhdGVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAgYmxvY2sgZmxleC1zaHJpbmstMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS00MDBcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2lkZWJhckZvb3RlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJzaWRlYmFyLXN0YXRpYy1tZW51LXdyYXBwZXJcIlxyXG4gICAgICAgW2NsYXNzLnNpZGViYXItc3RhdGljLW1lbnUtd3JhcHBlci1leHBhbmRlZF09XCIhc2hvd01vYmlsZVNpZGViYXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLXN0YXRpYy1tZW51LXN0aWNreS1oZWFkZXItY29udGFpbmVyXCJcclxuICAgICAgICAgKm5nSWY9XCJjb25maWc/LnNob3dIZWFkZXJcIj5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dNb2JpbGVTaWRlYmFyXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInNpZGViYXItc3RhdGljLW1lbnUtdG9nZ2xlLWJ1dHRvbi1tZFwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1vYmlsZVNpZGViYXIoKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPlRvZ2dsZSBzaWRlYmFyPC9zcGFuPlxyXG4gICAgICAgIDxzdmcgY2xhc3M9XCJoLTYgdy02XCJcclxuICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgZD1cIk00IDZoMTZNNCAxMmgxNk00IDE4aDdcIiAvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFzaG93TW9iaWxlU2lkZWJhclwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzaWRlYmFyLXN0YXRpYy1tZW51LXRvZ2dsZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVNb2JpbGVTaWRlYmFyKClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5Ub2dnbGUgc2lkZWJhcjwvc3Bhbj5cclxuICAgICAgICA8c3ZnIGNsYXNzPVwiaC02IHctNlwiXHJcbiAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgIGQ9XCJNNCA2aDE2TTQgMTJoMTZNNCAxOGg3XCIgLz5cclxuICAgICAgICA8L3N2Zz5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLXN0YXRpYy1tZW51LWhlYWRlci1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZWJhci1zdGF0aWMtbWVudS1oZWFkZXItbmVhci1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLXN0YXRpYy1tZW51LWhlYWRlci1hcHAtbG9nby1jb250YWluZXJcIlxyXG4gICAgICAgICAgICAgICAqbmdJZj1cInNob3dNb2JpbGVTaWRlYmFyXCI+XHJcbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJoLTggdy1hdXRvXCJcclxuICAgICAgICAgICAgICAgICBbc3JjXT1cImNvbmZpZz8uYXBwTG9nb1wiXHJcbiAgICAgICAgICAgICAgICAgW2FsdF09XCJjb25maWc/LmFwcExvZ29BbHRcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLXN0YXRpYy1tZW51LWhlYWRlci1mYXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8bGliLXNoZWxsLXNpZGViYXItaGVhZGVyIFtzaG93LXVzZXJOYW1lXT1cImNvbmZpZz8uc2hvd1VzZXJOYW1lT25IZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvdy1hbGVydHNdPVwiY29uZmlnPy5zaG93QWxlcnRzT25IZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvdy1sYW5nc109XCJjb25maWc/LnNob3dMYW5nc09uSGVhZGVyXCI+XHJcbiAgICAgICAgICA8L2xpYi1zaGVsbC1zaWRlYmFyLWhlYWRlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgZmxleC0xPlxyXG4gICAgICA8bWFpbiBjbGFzcz1cInNoZWxsLWNvbnRlbnQtY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgPGxpYi1icmVhZGNydW1iICpuZ0lmPVwiY29uZmlnPy5icmVhZGNydW1iIHx8IGZhbHNlXCI+PC9saWItYnJlYWRjcnVtYj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hlbGwtY29udGVudC1jb250YWluZXItaW5uZXJcIj5cclxuICAgICAgICAgIDxyb3V0ZXItb3V0bGV0ICpuZ0lmPVwiKGNvbmZpZyAmJiBjb25maWcubGF5b3V0ID09PSAnU2lkZWJhcicpXCI+PC9yb3V0ZXItb3V0bGV0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L21haW4+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19