@koobiq/components 18.39.3 → 18.39.5
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/checkbox/checkbox.scss +5 -5
- package/code-block/code-block.d.ts +10 -3
- package/code-block/code-block.module.d.ts +1 -1
- package/code-block/code-block.scss +1 -0
- package/code-block/types.d.ts +9 -0
- package/core/pop-up/pop-up-trigger.d.ts +4 -1
- package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +2 -2
- package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +4 -4
- package/esm2022/checkbox/checkbox.mjs +2 -2
- package/esm2022/code-block/code-block.mjs +23 -6
- package/esm2022/code-block/code-block.module.mjs +8 -5
- package/esm2022/code-block/types.mjs +1 -1
- package/esm2022/core/locales/en-US.mjs +2 -2
- package/esm2022/core/locales/es-LA.mjs +2 -2
- package/esm2022/core/locales/pt-BR.mjs +2 -2
- package/esm2022/core/locales/ru-RU.mjs +2 -2
- package/esm2022/core/locales/tk-TM.mjs +2 -2
- package/esm2022/core/pop-up/pop-up-trigger.mjs +11 -3
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-date.mjs +7 -8
- package/esm2022/filter-bar/pipes/pipe-datetime.mjs +8 -9
- package/esm2022/filter-bar/pipes/pipe-text.mjs +3 -3
- package/esm2022/form-field/cleaner.mjs +3 -3
- package/esm2022/form-field/fieldset.mjs +2 -2
- package/esm2022/form-field/form-field.mjs +2 -2
- package/esm2022/form-field/password-toggle.mjs +3 -3
- package/esm2022/form-field/stepper.mjs +3 -1
- package/esm2022/icon/icon-button.component.mjs +2 -2
- package/esm2022/input/input-password.mjs +5 -4
- package/esm2022/input/input.mjs +5 -4
- package/esm2022/modal/modal-control.service.mjs +7 -1
- package/esm2022/navbar/navbar-item.component.mjs +9 -2
- package/esm2022/progress-spinner/progress-spinner.component.mjs +4 -3
- package/esm2022/search-expandable/search-expandable.mjs +3 -3
- package/esm2022/select/select.component.mjs +4 -3
- package/esm2022/sidepanel/sidepanel-directives.mjs +3 -3
- package/esm2022/tabs/tab-header.component.mjs +2 -2
- package/esm2022/tabs/tab-nav-bar.mjs +3 -3
- package/esm2022/tags/tag-input.mjs +15 -19
- package/esm2022/tags/tag-list.component.mjs +4 -3
- package/esm2022/textarea/textarea.component.mjs +4 -3
- package/esm2022/title/title.directive.mjs +18 -5
- package/esm2022/tooltip/tooltip.component.mjs +2 -2
- package/esm2022/top-bar/top-bar.mjs +7 -15
- package/esm2022/tree-select/tree-select.component.mjs +4 -3
- package/fesm2022/koobiq-components-autocomplete.mjs +3 -3
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +2 -2
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +29 -9
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +15 -7
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +22 -22
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +10 -8
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +2 -2
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +6 -4
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +6 -0
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +8 -1
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +3 -2
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +2 -2
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +3 -2
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +2 -2
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +4 -4
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +15 -18
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +3 -2
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +17 -4
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +6 -14
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +3 -2
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/filter-bar/pipes/pipe-date.scss +3 -15
- package/form-field/form-field.scss +2 -1
- package/icon/icon-button.scss +4 -0
- package/input/input-password.d.ts +1 -0
- package/input/input.d.ts +1 -0
- package/navbar/navbar-item.component.d.ts +3 -1
- package/package.json +4 -4
- package/progress-spinner/_progress-spinner-theme.scss +14 -4
- package/progress-spinner/progress-spinner-tokens.scss +2 -0
- package/progress-spinner/progress-spinner.scss +1 -0
- package/schematics/ng-add/index.js +3 -3
- package/select/select.component.d.ts +1 -0
- package/tabs/_tabs-common.scss +2 -1
- package/tags/tag-input.d.ts +4 -3
- package/tags/tag-list.component.d.ts +1 -0
- package/textarea/textarea.component.d.ts +1 -0
- package/title/title.directive.d.ts +3 -0
- package/top-bar/top-bar.d.ts +1 -8
- package/top-bar/top-bar.scss +2 -8
- package/tree-select/tree-select.component.d.ts +1 -0
|
@@ -2,7 +2,7 @@ import { Directionality } from '@angular/cdk/bidi';
|
|
|
2
2
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
3
3
|
import { CdkScrollable, Overlay, ScrollDispatcher } from '@angular/cdk/overlay';
|
|
4
4
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
5
|
-
import { DestroyRef, Directive, ElementRef, inject, NgZone, ViewContainerRef } from '@angular/core';
|
|
5
|
+
import { ChangeDetectorRef, DestroyRef, Directive, ElementRef, inject, NgZone, ViewContainerRef } from '@angular/core';
|
|
6
6
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
7
7
|
import { ENTER, ESCAPE, SPACE } from '@koobiq/cdk/keycodes';
|
|
8
8
|
import { BehaviorSubject, interval } from 'rxjs';
|
|
@@ -54,7 +54,8 @@ export class KbqPopUpTrigger {
|
|
|
54
54
|
this.direction = inject(Directionality, { optional: true });
|
|
55
55
|
this.destroyRef = inject(DestroyRef);
|
|
56
56
|
this.scrollable = inject(CdkScrollable, { optional: true });
|
|
57
|
-
this.
|
|
57
|
+
this.popUpChangeDetectorRef = inject(ChangeDetectorRef);
|
|
58
|
+
this._isOpen = false;
|
|
58
59
|
this.enterDelay = 0;
|
|
59
60
|
this.leaveDelay = 0;
|
|
60
61
|
this.placement = PopUpPlacements.Top;
|
|
@@ -107,6 +108,13 @@ export class KbqPopUpTrigger {
|
|
|
107
108
|
this.elementRef.nativeElement.removeEventListener(event, listener);
|
|
108
109
|
};
|
|
109
110
|
}
|
|
111
|
+
get isOpen() {
|
|
112
|
+
return this._isOpen;
|
|
113
|
+
}
|
|
114
|
+
set isOpen(value) {
|
|
115
|
+
this._isOpen = value;
|
|
116
|
+
this.popUpChangeDetectorRef.markForCheck();
|
|
117
|
+
}
|
|
110
118
|
ngOnInit() {
|
|
111
119
|
this.initListeners();
|
|
112
120
|
}
|
|
@@ -340,4 +348,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
340
348
|
}
|
|
341
349
|
}]
|
|
342
350
|
}] });
|
|
343
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wLXVwLXRyaWdnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvcmUvcG9wLXVwL3BvcC11cC10cmlnZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQ0gsYUFBYSxFQUliLE9BQU8sRUFHUCxnQkFBZ0IsRUFFbkIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUNILFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUVWLE1BQU0sRUFDTixNQUFNLEVBS04sZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxLQUFLLElBQUksT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUNILDBCQUEwQixFQUMxQixZQUFZLEVBQ1osMEJBQTBCLEVBQzFCLG1CQUFtQixFQUN0QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUtsRyxNQUFNLFNBQVMsR0FBRyxDQUNkLEVB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Q0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoQixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQixJQUFJLEtBQUssRUFBRSxJQUFJLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2dCQUN6RCxPQUFPO1lBQ1gsQ0FBQztZQUVELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7a0lBbGFpQixlQUFlO3NIQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBTnBDLFNBQVM7bUJBQUM7b0JBQ1AsSUFBSSxFQUFFO3dCQUNGLGNBQWMsRUFBRSxvQkFBb0I7d0JBQ3BDLGNBQWMsRUFBRSxxQkFBcUI7cUJBQ3hDO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgICBDZGtTY3JvbGxhYmxlLFxuICAgIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSxcbiAgICBDb25uZWN0aW9uUG9zaXRpb25QYWlyLFxuICAgIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSxcbiAgICBPdmVybGF5LFxuICAgIE92ZXJsYXlDb25maWcsXG4gICAgT3ZlcmxheVJlZixcbiAgICBTY3JvbGxEaXNwYXRjaGVyLFxuICAgIFNjcm9sbFN0cmF0ZWd5XG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgICBEZXN0cm95UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVHlwZSxcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRU5URVIsIEVTQ0FQRSwgU1BBQ0UgfSBmcm9tICdAa29vYmlxL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGludGVydmFsLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFzeW5jU2NoZWR1bGVyIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQXN5bmNTY2hlZHVsZXInO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgZGVsYXkgYXMgcnhEZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gICAgRVhURU5ERURfT1ZFUkxBWV9QT1NJVElPTlMsXG4gICAgUE9TSVRJT05fTUFQLFxuICAgIFBPU0lUSU9OX1BSSU9SSVRZX1NUUkFURUdZLFxuICAgIFBPU0lUSU9OX1RPX0NTU19NQVBcbn0gZnJvbSAnLi4vb3ZlcmxheS9vdmVybGF5LXBvc2l0aW9uLW1hcCc7XG5pbXBvcnQgeyBBUlJPV19CT1RUT01fTUFSR0lOX0FORF9IQUxGX0hFSUdIVCwgUG9wVXBQbGFjZW1lbnRzLCBQb3BVcFRyaWdnZXJzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgS2JxUG9wVXAgfSBmcm9tICcuL3BvcC11cCc7XG5cbnR5cGUgS2JxUG9wdXBUcmlnZ2VyT2Zmc2V0ID0gUGljazxDb25uZWN0aW9uUG9zaXRpb25QYWlyLCAnb2Zmc2V0WCcgfCAnb2Zmc2V0WSc+O1xuXG5jb25zdCBnZXRPZmZzZXQgPSAoXG4gICAgeyBvcmlnaW5YLCBvdmVybGF5WCwgb3JpZ2luWSwgb3ZlcmxheVkgfTogQ29ubmVjdGlvblBvc2l0aW9uUGFpcixcbiAgICB7IHdpZHRoLCBoZWlnaHQgfTogRE9NUmVjdFxuKTogS2JxUG9wdXBUcmlnZ2VyT2Zmc2V0ID0+IHtcbiAgICBjb25zdCBvZmZzZXQ6IEticVBvcHVwVHJpZ2dlck9mZnNldCA9IHt9O1xuICAgIGNvbnN0IGVsZW1lbnRXaWR0aEhhbGYgPSB3aWR0aCAvIDI7XG4gICAgY29uc3QgZWxlbWVudEhlaWdodEhhbGYgPSBoZWlnaHQgLyAyO1xuXG4gICAgLy8gYWxpZ25tZW50IHNob3VsZCBiZSBhcHBsaWVkIG9ubHkgaWYgdGhlIGVsZW1lbnQgaXMgc21hbGxcbiAgICBpZiAoQVJST1dfQk9UVE9NX01BUkdJTl9BTkRfSEFMRl9IRUlHSFQgPiBlbGVtZW50V2lkdGhIYWxmKSB7XG4gICAgICAgIGNvbnN0IFBBRERJTkcgPSBBUlJPV19CT1RUT01fTUFSR0lOX0FORF9IQUxGX0hFSUdIVCAtIGVsZW1lbnRXaWR0aEhhbGY7XG5cbiAgICAgICAgaWYgKG9yaWdpblggPT09IG92ZXJsYXlYKSB7XG4gICAgICAgICAgICBpZiAob3JpZ2luWCA9PT0gJ3N0YXJ0Jykge1xuICAgICAgICAgICAgICAgIG9mZnNldC5vZmZzZXRYID0gLVBBRERJTkc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcmlnaW5YID09PSAnZW5kJykge1xuICAgICAgICAgICAgICAgIG9mZnNldC5vZmZzZXRYID0gUEFERElORztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGFsaWdubWVudCBzaG91bGQgYmUgYXBwbGllZCBvbmx5IGlmIHRoZSBlbGVtZW50IGlzIHNtYWxsXG4gICAgaWYgKEFSUk9XX0JPVFRPTV9NQVJHSU5fQU5EX0hBTEZfSEVJR0hUID4gZWxlbWVudEhlaWdodEhhbGYpIHtcbiAgICAgICAgY29uc3QgUEFERElORyA9IEFSUk9XX0JPVFRPTV9NQVJHSU5fQU5EX0hBTEZfSEVJR0hUIC0gZWxlbWVudEhlaWdodEhhbGY7XG5cbiAgICAgICAgaWYgKG9yaWdpblkgPT09IG92ZXJsYXlZKSB7XG4gICAgICAgICAgICBpZiAob3JpZ2luWSA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQub2Zmc2V0WSA9IC1QQURESU5HO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3JpZ2luWSA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQub2Zmc2V0WSA9IFBBRERJTkc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gb2Zmc2V0O1xufTtcblxuQERpcmVjdGl2ZSh7XG4gICAgaG9zdDoge1xuICAgICAgICAnKG1vdXNlZW50ZXIpJzogJ2hvdmVyZWQubmV4dCh0cnVlKScsXG4gICAgICAgICcobW91c2VsZWF2ZSknOiAnaG92ZXJlZC5uZXh0KGZhbHNlKSdcbiAgICB9XG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEticVBvcFVwVHJpZ2dlcjxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogU3RyZWFtIHRoYXQgZW1pdHMgd2hlbiB0aGUgcG9wdXBUcmlnZ2VyIGlzIGhvdmVyZWQuICovXG4gICAgcmVhZG9ubHkgaG92ZXJlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNjaGVkdWxlciA9IGluamVjdChBc3luY1NjaGVkdWxlciwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCB1bmRlZmluZWQ7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3ZlcmxheTogT3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5nWm9uZTogTmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNjcm9sbERpc3BhdGNoZXI6IFNjcm9sbERpc3BhdGNoZXIgPSBpbmplY3QoU2Nyb2xsRGlzcGF0Y2hlcik7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGhvc3RWaWV3OiBWaWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkaXJlY3Rpb24gPSBpbmplY3QoRGlyZWN0aW9uYWxpdHksIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNjcm9sbGFibGUgPSBpbmplY3QoQ2RrU2Nyb2xsYWJsZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBzY3JvbGxTdHJhdGVneTogKCkgPT4gU2Nyb2xsU3RyYXRlZ3k7XG5cbiAgICBpc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGVudGVyRGVsYXk6IG51bWJlciA9IDA7XG4gICAgbGVhdmVEZWxheTogbnVtYmVyID0gMDtcblxuICAgIHRyaWdnZXJOYW1lOiBzdHJpbmc7XG5cbiAgICBvdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgbnVsbDtcblxuICAgIHN0aWNrVG9XaW5kb3c6IFBvcFVwUGxhY2VtZW50cy5Ub3AgfCBQb3BVcFBsYWNlbWVudHMuUmlnaHQgfCBQb3BVcFBsYWNlbWVudHMuQm90dG9tIHwgUG9wVXBQbGFjZW1lbnRzLkxlZnQgfCBzdHJpbmc7XG5cbiAgICBjb250YWluZXI6IEhUTUxFbGVtZW50O1xuXG4gICAgYWJzdHJhY3QgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgYWJzdHJhY3QgYXJyb3c6IGJvb2xlYW47XG4gICAgYWJzdHJhY3QgdHJpZ2dlcjogc3RyaW5nO1xuICAgIGFic3RyYWN0IGN1c3RvbUNsYXNzOiBzdHJpbmc7XG4gICAgYWJzdHJhY3QgY29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGFic3RyYWN0IHBsYWNlbWVudENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz47XG4gICAgYWJzdHJhY3QgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IG9yaWdpblNlbGVjdG9yOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IG92ZXJsYXlDb25maWc6IE92ZXJsYXlDb25maWc7XG5cbiAgICBwcm90ZWN0ZWQgcGxhY2VtZW50ID0gUG9wVXBQbGFjZW1lbnRzLlRvcDtcbiAgICBwcm90ZWN0ZWQgcGxhY2VtZW50UHJpb3JpdHk6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcm90ZWN0ZWQgdmlzaWJsZSA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIF9jb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHByb3RlY3RlZCBfZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHJvdGVjdGVkIF9jdXN0b21DbGFzczogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIHBvcnRhbDogQ29tcG9uZW50UG9ydGFsPFQ+O1xuICAgIHByb3RlY3RlZCBpbnN0YW5jZTogYW55IHwgbnVsbDtcblxuICAgIHByb3RlY3RlZCBsaXN0ZW5lcnMgPSBuZXcgTWFwPHN0cmluZywgRXZlbnRMaXN0ZW5lcj4oKTtcbiAgICBwcm90ZWN0ZWQgY2xvc2luZ0FjdGlvbnNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBhdmFpbGFibGVQb3NpdGlvbnM6IHsgW2tleTogc3RyaW5nXTogQ29ubmVjdGlvblBvc2l0aW9uUGFpciB9ID0gUE9TSVRJT05fTUFQO1xuXG4gICAgcHJvdGVjdGVkIG1vdXNlRXZlbnQ/OiBNb3VzZUV2ZW50O1xuICAgIHByb3RlY3RlZCBzdHJhdGVneTogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5O1xuXG4gICAgLyoqIEhpZGUgcG9wLXVwIHdpdGggdGltZW91dC4gTmVlZCBpZiB5b3Ugd2FudCB0byBzaG93IHBvcC11cCBhZnRlciBsZWF2aW5nIHRyaWdnZXIgKi9cbiAgICBwcm90ZWN0ZWQgaGlkZVdpdGhUaW1lb3V0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogcHJldmVudHMgY2xvc3VyZSBieSBhbnkgZXZlbnQgKi9cbiAgICBwcm90ZWN0ZWQgcHJldmVudENsb3NlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBhYnN0cmFjdCB1cGRhdGVDbGFzc01hcChuZXdQbGFjZW1lbnQ/OiBzdHJpbmcpOiB2b2lkO1xuXG4gICAgYWJzdHJhY3QgdXBkYXRlRGF0YSgpOiB2b2lkO1xuXG4gICAgYWJzdHJhY3QgY2xvc2luZ0FjdGlvbnMoKTogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gICAgYWJzdHJhY3QgZ2V0T3ZlcmxheUhhbmRsZUNvbXBvbmVudFR5cGUoKTogVHlwZTxUPjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRMaXN0ZW5lcnMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG5cbiAgICAgICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCh0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIpO1xuXG4gICAgICAgIHRoaXMubGlzdGVuZXJzLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlUGxhY2VtZW50KHZhbHVlOiBQb3BVcFBsYWNlbWVudHMpIHtcbiAgICAgICAgaWYgKFBPU0lUSU9OX1RPX0NTU19NQVBbdmFsdWVdKSB7XG4gICAgICAgICAgICB0aGlzLnBsYWNlbWVudCA9IHZhbHVlO1xuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzTWFwKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBsYWNlbWVudCA9IFBvcFVwUGxhY2VtZW50cy5Ub3A7XG5cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFVua25vd24gcG9zaXRpb246ICR7dmFsdWV9LiBXaWxsIHVzZWQgZGVmYXVsdCBwb3NpdGlvbjogJHt0aGlzLnBsYWNlbWVudH1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnZpc2libGUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVBsYWNlbWVudFByaW9yaXR5KHZhbHVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnBsYWNlbWVudFByaW9yaXR5ID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBsYWNlbWVudFByaW9yaXR5ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVZpc2libGUoZXh0ZXJuYWxWYWx1ZTogYm9vbGVhbikge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShleHRlcm5hbFZhbHVlKTtcblxuICAgICAgICBpZiAodGhpcy52aXNpYmxlICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gdmFsdWU7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvdygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGtleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmlzT3BlbiAmJiBldmVudC5rZXlDb2RlID09PSBFU0NBUEUpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdG91Y2hlbmRIYW5kbGVyKCkge1xuICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG5cbiAgICBzaG93KGRlbGF5OiBudW1iZXIgPSB0aGlzLmVudGVyRGVsYXkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlT25DbG9zaW5nQWN0aW9ucygpO1xuICAgICAgICB0aGlzLmRldGFjaCgpO1xuXG4gICAgICAgIHRoaXMucG9ydGFsID0gdGhpcy5wb3J0YWwgfHwgbmV3IENvbXBvbmVudFBvcnRhbCh0aGlzLmdldE92ZXJsYXlIYW5kbGVDb21wb25lbnRUeXBlKCksIHRoaXMuaG9zdFZpZXcpO1xuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UgPSB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHRoaXMucG9ydGFsKS5pbnN0YW5jZSBhcyBLYnFQb3BVcDtcblxuICAgICAgICB0aGlzLmluc3RhbmNlLnRyaWdnZXIgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UuYWZ0ZXJIaWRkZW4oKS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUodGhpcy5kZXRhY2gpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlQ2xhc3NNYXAoKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcblxuICAgICAgICB0aGlzLmluc3RhbmNlLnZpc2libGVDaGFuZ2VcbiAgICAgICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnZpc2libGUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pc09wZW4gPSB2YWx1ZTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKTtcblxuICAgICAgICB0aGlzLmluc3RhbmNlLnNob3coZGVsYXkpO1xuXG4gICAgICAgIGlmICh0aGlzLmhpZGVXaXRoVGltZW91dCAmJiB0aGlzLnRyaWdnZXIuaW5jbHVkZXMoUG9wVXBUcmlnZ2Vycy5Ib3ZlcikpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpbnRlcnZhbCh0aGlzLmxlYXZlRGVsYXksIHRoaXMuc2NoZWR1bGVyKVxuICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnRyaWdnZXIuaW5jbHVkZXMoUG9wVXBUcmlnZ2Vycy5Ib3ZlcikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLmhvdmVyZWQuZ2V0VmFsdWUoKSAmJiAhdGhpcy5pbnN0YW5jZT8uaG92ZXJlZC5nZXRWYWx1ZSgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmluc3RhbmNlPy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy5oaWRlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGlkZSA9IChkZWxheTogbnVtYmVyID0gdGhpcy5sZWF2ZURlbGF5KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnByZXZlbnRDbG9zZSkgcmV0dXJuO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICh0aGlzLmluc3RhbmNlICYmIHRoaXMudHJpZ2dlck5hbWUgIT09ICdtb3VzZWxlYXZlJykgfHxcbiAgICAgICAgICAgICh0aGlzLnRyaWdnZXJOYW1lID09PSAnbW91c2VsZWF2ZScgJiYgIXRoaXMuaW5zdGFuY2U/LmhvdmVyZWQuZ2V0VmFsdWUoKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5pbnN0YW5jZT8uaGlkZShkZWxheSkpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGRldGFjaCA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKHRoaXMub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbnN0YW5jZSA9IG51bGw7XG4gICAgfTtcblxuICAgIC8qKiBDcmVhdGUgdGhlIG92ZXJsYXkgY29uZmlnIGFuZCBwb3NpdGlvbiBzdHJhdGVneSAqL1xuICAgIGNyZWF0ZU92ZXJsYXkoKTogT3ZlcmxheVJlZiB7XG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm92ZXJsYXlSZWY7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDcmVhdGUgY29ubmVjdGVkIHBvc2l0aW9uIHN0cmF0ZWd5IHRoYXQgbGlzdGVucyBmb3Igc2Nyb2xsIGV2ZW50cyB0byByZXBvc2l0aW9uLlxuICAgICAgICB0aGlzLnN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbGVtZW50UmVmKVxuICAgICAgICAgICAgLndpdGhUcmFuc2Zvcm1PcmlnaW5Pbih0aGlzLm9yaWdpblNlbGVjdG9yKVxuICAgICAgICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnMoZmFsc2UpXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbLi4uRVhURU5ERURfT1ZFUkxBWV9QT1NJVElPTlNdKVxuICAgICAgICAgICAgLndpdGhMb2NrZWRQb3NpdGlvbigpXG4gICAgICAgICAgICAud2l0aFNjcm9sbGFibGVDb250YWluZXJzKHRoaXMuc2Nyb2xsRGlzcGF0Y2hlci5nZXRBbmNlc3RvclNjcm9sbENvbnRhaW5lcnModGhpcy5lbGVtZW50UmVmKSk7XG5cbiAgICAgICAgdGhpcy5zdHJhdGVneS5wb3NpdGlvbkNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKHRoaXMub25Qb3NpdGlvbkNoYW5nZSk7XG5cbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICAgICAgICAuLi50aGlzLm92ZXJsYXlDb25maWcsXG4gICAgICAgICAgICBkaXJlY3Rpb246IHRoaXMuZGlyZWN0aW9uIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuc3RyYXRlZ3ksXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5zY3JvbGxTdHJhdGVneSgpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlT25DbG9zaW5nQWN0aW9ucygpO1xuXG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5kZXRhY2htZW50cygpLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSh0aGlzLmRldGFjaCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMub3ZlcmxheVJlZjtcbiAgICB9XG5cbiAgICByZXNldE9yaWdpbigpIHtcbiAgICAgICAgdGhpcy5zdHJhdGVneS5zZXRPcmlnaW4odGhpcy5lbGVtZW50UmVmKTtcbiAgICB9XG5cbiAgICBvblBvc2l0aW9uQ2hhbmdlID0gKCRldmVudDogQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG5ld1BsYWNlbWVudCA9IHRoaXMucGxhY2VtZW50O1xuXG4gICAgICAgIGNvbnN0IHsgb3JpZ2luWCwgb3JpZ2luWSwgb3ZlcmxheVgsIG92ZXJsYXlZIH0gPSAkZXZlbnQuY29ubmVjdGlvblBhaXI7XG5cbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5hdmFpbGFibGVQb3NpdGlvbnMpLnNvbWUoKGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIG9yaWdpblggPT09IHRoaXMuYXZhaWxhYmxlUG9zaXRpb25zW2tleV0ub3JpZ2luWCAmJlxuICAgICAgICAgICAgICAgIG9yaWdpblkgPT09IHRoaXMuYXZhaWxhYmxlUG9zaXRpb25zW2tleV0ub3JpZ2luWSAmJlxuICAgICAgICAgICAgICAgIG92ZXJsYXlYID09PSB0aGlzLmF2YWlsYWJsZVBvc2l0aW9uc1trZXldLm92ZXJsYXlYICYmXG4gICAgICAgICAgICAgICAgb3ZlcmxheVkgPT09IHRoaXMuYXZhaWxhYmxlUG9zaXRpb25zW2tleV0ub3ZlcmxheVlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIG5ld1BsYWNlbWVudCA9IGtleSBhcyBQb3BVcFBsYWNlbWVudHM7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnBsYWNlbWVudENoYW5nZS5lbWl0KG5ld1BsYWNlbWVudCk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVDbGFzc01hcChuZXdQbGFjZW1lbnQpO1xuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH07XG5cbiAgICBpbml0TGlzdGVuZXJzKCkge1xuICAgICAgICB0aGlzLmNsZWFyTGlzdGVuZXJzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMudHJpZ2dlci5pbmNsdWRlcyhQb3BVcFRyaWdnZXJzLkNsaWNrKSkge1xuICAgICAgICAgICAgdGhpcy5saXN0ZW5lcnMuc2V0KC4uLnRoaXMuY3JlYXRlTGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5zaG93KSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50cmlnZ2VyLmluY2x1ZGVzKFBvcFVwVHJpZ2dlcnMuSG92ZXIpKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RlbmVyc1xuICAgICAgICAgICAgICAgIC5zZXQoLi4udGhpcy5jcmVhdGVMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuc2hvdykpXG4gICAgICAgICAgICAgICAgLnNldCguLi50aGlzLmNyZWF0ZUxpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5nZXRNb3VzZUxlYXZlTGlzdGVuZXIoKSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudHJpZ2dlci5pbmNsdWRlcyhQb3BVcFRyaWdnZXJzLkZvY3VzKSkge1xuICAgICAgICAgICAgdGhpcy5saXN0ZW5lcnNcbiAgICAgICAgICAgICAgICAuc2V0KC4uLnRoaXMuY3JlYXRlTGlzdGVuZXIoJ2ZvY3VzJywgdGhpcy5zaG93KSlcbiAgICAgICAgICAgICAgICAuc2V0KC4uLnRoaXMuY3JlYXRlTGlzdGVuZXIoJ2JsdXInLCB0aGlzLmhpZGUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnRyaWdnZXIuaW5jbHVkZXMoUG9wVXBUcmlnZ2Vycy5LZXlkb3duKSkge1xuICAgICAgICAgICAgdGhpcy5saXN0ZW5lcnMuc2V0KCdrZXlkb3duJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgS2V5Ym9hcmRFdmVudCAmJiBbRU5URVIsIFNQQUNFXS5pbmNsdWRlcyhldmVudC5rZXlDb2RlKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2hvdygpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2godGhpcy5hZGRFdmVudExpc3RlbmVyKTtcbiAgICB9XG5cbiAgICBnZXRNb3VzZUxlYXZlTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmhpZGVXaXRoVGltZW91dCkge1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHNldFRpbWVvdXQodGhpcy5oaWRlLCB0aGlzLmxlYXZlRGVsYXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaGlkZTtcbiAgICB9XG5cbiAgICAvKiogVXBkYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgcG9wb3Zlci4gKi9cbiAgICB1cGRhdGVQb3NpdGlvbihyZWFwcGx5UG9zaXRpb246IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLmNyZWF0ZU92ZXJsYXkoKTtcblxuICAgICAgICB0aGlzLnN1YnNjcmliZU9uQ2xvc2luZ0FjdGlvbnMoKTtcblxuICAgICAgICBjb25zdCBwb3NpdGlvbiA9ICh0aGlzLm92ZXJsYXlSZWYuZ2V0Q29uZmlnKCkucG9zaXRpb25TdHJhdGVneSBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kpXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyh0aGlzLmdldEFkanVzdGVkUG9zaXRpb25zKCkpXG4gICAgICAgICAgICAud2l0aFB1c2godHJ1ZSk7XG5cbiAgICAgICAgaWYgKHJlYXBwbHlQb3NpdGlvbikge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBwb3NpdGlvbi5yZWFwcGx5TGFzdFBvc2l0aW9uKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXMoKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGxpc3Qgb2YgcG9zaXRpb25zIHRoYXQgYXJlIGFsaWduZWQgd2l0aCB0aGUgZWxlbWVudCdzIGRpbWVuc2lvbnMgYW5kIG9mZnNldHMuXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRBZGp1c3RlZFBvc2l0aW9ucygpOiBDb25uZWN0aW9uUG9zaXRpb25QYWlyW10ge1xuICAgICAgICBjb25zdCByZXM6IENvbm5lY3Rpb25Qb3NpdGlvblBhaXJbXSA9IFtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgcG9zIG9mIHRoaXMuZ2V0UHJpb3JpdGl6ZWRQb3NpdGlvbnMoKSkge1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0OiBLYnFQb3B1cFRyaWdnZXJPZmZzZXQgPSB0aGlzLmFycm93XG4gICAgICAgICAgICAgICAgPyBnZXRPZmZzZXQocG9zLCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSlcbiAgICAgICAgICAgICAgICA6IHt9O1xuXG4gICAgICAgICAgICByZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgLi4ucG9zLFxuICAgICAgICAgICAgICAgIC4uLm9mZnNldFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRQcmlvcml0eVBsYWNlbWVudFN0cmF0ZWd5KHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSk6IENvbm5lY3Rpb25Qb3NpdGlvblBhaXJbXSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogQ29ubmVjdGlvblBvc2l0aW9uUGFpcltdID0gW107XG4gICAgICAgIGNvbnN0IHBvc3NpYmxlUG9zaXRpb25zID0gT2JqZWN0LmtleXModGhpcy5hdmFpbGFibGVQb3NpdGlvbnMpO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgocG9zaXRpb246IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwb3NzaWJsZVBvc2l0aW9ucy5pbmNsdWRlcyhwb3NpdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2godGhpcy5hdmFpbGFibGVQb3NpdGlvbnNbcG9zaXRpb25dKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChwb3NzaWJsZVBvc2l0aW9ucy5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHRoaXMuYXZhaWxhYmxlUG9zaXRpb25zW3ZhbHVlXSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRQcmlvcml0aXplZFBvc2l0aW9ucygpIHtcbiAgICAgICAgaWYgKHRoaXMucGxhY2VtZW50UHJpb3JpdHkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFByaW9yaXR5UGxhY2VtZW50U3RyYXRlZ3kodGhpcy5wbGFjZW1lbnRQcmlvcml0eSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUE9TSVRJT05fUFJJT1JJVFlfU1RSQVRFR1lbdGhpcy5wbGFjZW1lbnRdO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjbGVhckxpc3RlbmVycygpIHtcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCh0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIpO1xuXG4gICAgICAgIHRoaXMubGlzdGVuZXJzLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVMaXN0ZW5lcihuYW1lOiBzdHJpbmcsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogW3N0cmluZywgKGV2ZW50OiB1bmtub3duKSA9PiB2b2lkXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgKGV2ZW50OiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyTmFtZSA9IG5hbWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zYXZlTW91c2VFdmVudChldmVudCBhcyBNb3VzZUV2ZW50KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBsaXN0ZW5lci5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzYXZlTW91c2VFdmVudChldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAodGhpcy50cmlnZ2VyTmFtZSA9PT0gJ21vdXNlZW50ZXInKSB7XG4gICAgICAgICAgICB0aGlzLm1vdXNlRXZlbnQgPSBldmVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYWRkRXZlbnRMaXN0ZW5lciA9IChsaXN0ZW5lcjogRXZlbnRMaXN0ZW5lciwgZXZlbnQ6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBsaXN0ZW5lcik7XG4gICAgfTtcblxuICAgIHByaXZhdGUgcmVtb3ZlRXZlbnRMaXN0ZW5lciA9IChsaXN0ZW5lcjogRXZlbnRMaXN0ZW5lciwgZXZlbnQ6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBsaXN0ZW5lcik7XG4gICAgfTtcblxuICAgIHByaXZhdGUgc3Vic2NyaWJlT25DbG9zaW5nQWN0aW9ucygpIHtcbiAgICAgICAgdGhpcy5jbG9zaW5nQWN0aW9uc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcblxuICAgICAgICB0aGlzLmNsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uID0gdGhpcy5jbG9zaW5nQWN0aW9ucygpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5waXBlKHJ4RGVsYXkoMCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChldmVudD8udHlwZSA9PT0gJ2NsaWNrJyAmJiBldmVudC5rYnFQb3BvdmVyUHJldmVudEhpZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
351
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wLXVwLXRyaWdnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvcmUvcG9wLXVwL3BvcC11cC10cmlnZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQ0gsYUFBYSxFQUliLE9BQU8sRUFHUCxnQkFBZ0IsRUFFbkIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUNILGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFFVixNQUFNLEVBQ04sTUFBTSxFQUtOLGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxJQUFJLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hGLE9BQU8sRUFDSCwwQkFBMEIsRUFDMUIsWUFBWSxFQUNaLDBCQUEwQixFQUMxQixtQkFBbUIsRUFDdEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFLbEcsTUFBTSxTQUFT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YyxDQUFDLEtBQWlCO1FBQ3BDLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxZQUFZLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQztJQVVPLHlCQUF5QjtRQUM3QixJQUFJLENBQUMsMEJBQTBCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFFL0MsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUU7YUFDbEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hCLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2pCLElBQUksS0FBSyxFQUFFLElBQUksS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBQ3pELE9BQU87WUFDWCxDQUFDO1lBRUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztrSUE5YWlCLGVBQWU7c0hBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFOcEMsU0FBUzttQkFBQztvQkFDUCxJQUFJLEVBQUU7d0JBQ0YsY0FBYyxFQUFFLG9CQUFvQjt3QkFDcEMsY0FBYyxFQUFFLHFCQUFxQjtxQkFDeEM7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIENka1Njcm9sbGFibGUsXG4gICAgQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlLFxuICAgIENvbm5lY3Rpb25Qb3NpdGlvblBhaXIsXG4gICAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LFxuICAgIE92ZXJsYXksXG4gICAgT3ZlcmxheUNvbmZpZyxcbiAgICBPdmVybGF5UmVmLFxuICAgIFNjcm9sbERpc3BhdGNoZXIsXG4gICAgU2Nyb2xsU3RyYXRlZ3lcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBUeXBlLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBFTlRFUiwgRVNDQVBFLCBTUEFDRSB9IGZyb20gJ0Brb29iaXEvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgaW50ZXJ2YWwsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXN5bmNTY2hlZHVsZXIgfSBmcm9tICdyeGpzL2ludGVybmFsL3NjaGVkdWxlci9Bc3luY1NjaGVkdWxlcic7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBkZWxheSBhcyByeERlbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgICBFWFRFTkRFRF9PVkVSTEFZX1BPU0lUSU9OUyxcbiAgICBQT1NJVElPTl9NQVAsXG4gICAgUE9TSVRJT05fUFJJT1JJVFlfU1RSQVRFR1ksXG4gICAgUE9TSVRJT05fVE9fQ1NTX01BUFxufSBmcm9tICcuLi9vdmVybGF5L292ZXJsYXktcG9zaXRpb24tbWFwJztcbmltcG9ydCB7IEFSUk9XX0JPVFRPTV9NQVJHSU5fQU5EX0hBTEZfSEVJR0hULCBQb3BVcFBsYWNlbWVudHMsIFBvcFVwVHJpZ2dlcnMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBLYnFQb3BVcCB9IGZyb20gJy4vcG9wLXVwJztcblxudHlwZSBLYnFQb3B1cFRyaWdnZXJPZmZzZXQgPSBQaWNrPENvbm5lY3Rpb25Qb3NpdGlvblBhaXIsICdvZmZzZXRYJyB8ICdvZmZzZXRZJz47XG5cbmNvbnN0IGdldE9mZnNldCA9IChcbiAgICB7IG9yaWdpblgsIG92ZXJsYXlYLCBvcmlnaW5ZLCBvdmVybGF5WSB9OiBDb25uZWN0aW9uUG9zaXRpb25QYWlyLFxuICAgIHsgd2lkdGgsIGhlaWdodCB9OiBET01SZWN0XG4pOiBLYnFQb3B1cFRyaWdnZXJPZmZzZXQgPT4ge1xuICAgIGNvbnN0IG9mZnNldDogS2JxUG9wdXBUcmlnZ2VyT2Zmc2V0ID0ge307XG4gICAgY29uc3QgZWxlbWVudFdpZHRoSGFsZiA9IHdpZHRoIC8gMjtcbiAgICBjb25zdCBlbGVtZW50SGVpZ2h0SGFsZiA9IGhlaWdodCAvIDI7XG5cbiAgICAvLyBhbGlnbm1lbnQgc2hvdWxkIGJlIGFwcGxpZWQgb25seSBpZiB0aGUgZWxlbWVudCBpcyBzbWFsbFxuICAgIGlmIChBUlJPV19CT1RUT01fTUFSR0lOX0FORF9IQUxGX0hFSUdIVCA+IGVsZW1lbnRXaWR0aEhhbGYpIHtcbiAgICAgICAgY29uc3QgUEFERElORyA9IEFSUk9XX0JPVFRPTV9NQVJHSU5fQU5EX0hBTEZfSEVJR0hUIC0gZWxlbWVudFdpZHRoSGFsZjtcblxuICAgICAgICBpZiAob3JpZ2luWCA9PT0gb3ZlcmxheVgpIHtcbiAgICAgICAgICAgIGlmIChvcmlnaW5YID09PSAnc3RhcnQnKSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0Lm9mZnNldFggPSAtUEFERElORztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9yaWdpblggPT09ICdlbmQnKSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0Lm9mZnNldFggPSBQQURESU5HO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gYWxpZ25tZW50IHNob3VsZCBiZSBhcHBsaWVkIG9ubHkgaWYgdGhlIGVsZW1lbnQgaXMgc21hbGxcbiAgICBpZiAoQVJST1dfQk9UVE9NX01BUkdJTl9BTkRfSEFMRl9IRUlHSFQgPiBlbGVtZW50SGVpZ2h0SGFsZikge1xuICAgICAgICBjb25zdCBQQURESU5HID0gQVJST1dfQk9UVE9NX01BUkdJTl9BTkRfSEFMRl9IRUlHSFQgLSBlbGVtZW50SGVpZ2h0SGFsZjtcblxuICAgICAgICBpZiAob3JpZ2luWSA9PT0gb3ZlcmxheVkpIHtcbiAgICAgICAgICAgIGlmIChvcmlnaW5ZID09PSAndG9wJykge1xuICAgICAgICAgICAgICAgIG9mZnNldC5vZmZzZXRZID0gLVBBRERJTkc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcmlnaW5ZID09PSAnYm90dG9tJykge1xuICAgICAgICAgICAgICAgIG9mZnNldC5vZmZzZXRZID0gUEFERElORztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvZmZzZXQ7XG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgICBob3N0OiB7XG4gICAgICAgICcobW91c2VlbnRlciknOiAnaG92ZXJlZC5uZXh0KHRydWUpJyxcbiAgICAgICAgJyhtb3VzZWxlYXZlKSc6ICdob3ZlcmVkLm5leHQoZmFsc2UpJ1xuICAgIH1cbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgS2JxUG9wVXBUcmlnZ2VyPFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBTdHJlYW0gdGhhdCBlbWl0cyB3aGVuIHRoZSBwb3B1cFRyaWdnZXIgaXMgaG92ZXJlZC4gKi9cbiAgICByZWFkb25seSBob3ZlcmVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2NoZWR1bGVyID0gaW5qZWN0KEFzeW5jU2NoZWR1bGVyLCB7IG9wdGlvbmFsOiB0cnVlIH0pIHx8IHVuZGVmaW5lZDtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBvdmVybGF5OiBPdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2Nyb2xsRGlzcGF0Y2hlcjogU2Nyb2xsRGlzcGF0Y2hlciA9IGluamVjdChTY3JvbGxEaXNwYXRjaGVyKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaG9zdFZpZXc6IFZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpcmVjdGlvbiA9IGluamVjdChEaXJlY3Rpb25hbGl0eSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2Nyb2xsYWJsZSA9IGluamVjdChDZGtTY3JvbGxhYmxlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHNjcm9sbFN0cmF0ZWd5OiAoKSA9PiBTY3JvbGxTdHJhdGVneTtcblxuICAgIHByaXZhdGUgcG9wVXBDaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNPcGVuO1xuICAgIH1cblxuICAgIHNldCBpc09wZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNPcGVuID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5wb3BVcENoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2lzT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZW50ZXJEZWxheTogbnVtYmVyID0gMDtcbiAgICBsZWF2ZURlbGF5OiBudW1iZXIgPSAwO1xuXG4gICAgdHJpZ2dlck5hbWU6IHN0cmluZztcblxuICAgIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsO1xuXG4gICAgc3RpY2tUb1dpbmRvdzogUG9wVXBQbGFjZW1lbnRzLlRvcCB8IFBvcFVwUGxhY2VtZW50cy5SaWdodCB8IFBvcFVwUGxhY2VtZW50cy5Cb3R0b20gfCBQb3BVcFBsYWNlbWVudHMuTGVmdCB8IHN0cmluZztcblxuICAgIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cbiAgICBhYnN0cmFjdCBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBhYnN0cmFjdCBhcnJvdzogYm9vbGVhbjtcbiAgICBhYnN0cmFjdCB0cmlnZ2VyOiBzdHJpbmc7XG4gICAgYWJzdHJhY3QgY3VzdG9tQ2xhc3M6IHN0cmluZztcbiAgICBhYnN0cmFjdCBjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgYWJzdHJhY3QgcGxhY2VtZW50Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPjtcbiAgICBhYnN0cmFjdCB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb3JpZ2luU2VsZWN0b3I6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb3ZlcmxheUNvbmZpZzogT3ZlcmxheUNvbmZpZztcblxuICAgIHByb3RlY3RlZCBwbGFjZW1lbnQgPSBQb3BVcFBsYWNlbWVudHMuVG9wO1xuICAgIHByb3RlY3RlZCBwbGFjZW1lbnRQcmlvcml0eTogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsID0gbnVsbDtcblxuICAgIHByb3RlY3RlZCB2aXNpYmxlID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgX2NvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcHJvdGVjdGVkIF9kaXNhYmxlZDogYm9vbGVhbjtcbiAgICBwcm90ZWN0ZWQgX2N1c3RvbUNsYXNzOiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgcG9ydGFsOiBDb21wb25lbnRQb3J0YWw8VD47XG4gICAgcHJvdGVjdGVkIGluc3RhbmNlOiBhbnkgfCBudWxsO1xuXG4gICAgcHJvdGVjdGVkIGxpc3RlbmVycyA9IG5ldyBNYXA8c3RyaW5nLCBFdmVudExpc3RlbmVyPigpO1xuICAgIHByb3RlY3RlZCBjbG9zaW5nQWN0aW9uc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGF2YWlsYWJsZVBvc2l0aW9uczogeyBba2V5OiBzdHJpbmddOiBDb25uZWN0aW9uUG9zaXRpb25QYWlyIH0gPSBQT1NJVElPTl9NQVA7XG5cbiAgICBwcm90ZWN0ZWQgbW91c2VFdmVudD86IE1vdXNlRXZlbnQ7XG4gICAgcHJvdGVjdGVkIHN0cmF0ZWd5OiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3k7XG5cbiAgICAvKiogSGlkZSBwb3AtdXAgd2l0aCB0aW1lb3V0LiBOZWVkIGlmIHlvdSB3YW50IHRvIHNob3cgcG9wLXVwIGFmdGVyIGxlYXZpbmcgdHJpZ2dlciAqL1xuICAgIHByb3RlY3RlZCBoaWRlV2l0aFRpbWVvdXQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBwcmV2ZW50cyBjbG9zdXJlIGJ5IGFueSBldmVudCAqL1xuICAgIHByb3RlY3RlZCBwcmV2ZW50Q2xvc2U6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGFic3RyYWN0IHVwZGF0ZUNsYXNzTWFwKG5ld1BsYWNlbWVudD86IHN0cmluZyk6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCB1cGRhdGVEYXRhKCk6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCBjbG9zaW5nQWN0aW9ucygpOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgICBhYnN0cmFjdCBnZXRPdmVybGF5SGFuZGxlQ29tcG9uZW50VHlwZSgpOiBUeXBlPFQ+O1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdExpc3RlbmVycygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcblxuICAgICAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcik7XG5cbiAgICAgICAgdGhpcy5saXN0ZW5lcnMuY2xlYXIoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVQbGFjZW1lbnQodmFsdWU6IFBvcFVwUGxhY2VtZW50cykge1xuICAgICAgICBpZiAoUE9TSVRJT05fVE9fQ1NTX01BUFt2YWx1ZV0pIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2VtZW50ID0gdmFsdWU7XG5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2xhc3NNYXAoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2VtZW50ID0gUG9wVXBQbGFjZW1lbnRzLlRvcDtcblxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgVW5rbm93biBwb3NpdGlvbjogJHt2YWx1ZX0uIFdpbGwgdXNlZCBkZWZhdWx0IHBvc2l0aW9uOiAke3RoaXMucGxhY2VtZW50fWApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlUGxhY2VtZW50UHJpb3JpdHkodmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2VtZW50UHJpb3JpdHkgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2VtZW50UHJpb3JpdHkgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlVmlzaWJsZShleHRlcm5hbFZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KGV4dGVybmFsVmFsdWUpO1xuXG4gICAgICAgIGlmICh0aGlzLnZpc2libGUgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnZpc2libGUgPSB2YWx1ZTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAga2V5ZG93bkhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuICYmIGV2ZW50LmtleUNvZGUgPT09IEVTQ0FQRSkge1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0b3VjaGVuZEhhbmRsZXIoKSB7XG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cblxuICAgIHNob3coZGVsYXk6IG51bWJlciA9IHRoaXMuZW50ZXJEZWxheSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLmNyZWF0ZU92ZXJsYXkoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVPbkNsb3NpbmdBY3Rpb25zKCk7XG4gICAgICAgIHRoaXMuZGV0YWNoKCk7XG5cbiAgICAgICAgdGhpcy5wb3J0YWwgPSB0aGlzLnBvcnRhbCB8fCBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMuZ2V0T3ZlcmxheUhhbmRsZUNvbXBvbmVudFR5cGUoKSwgdGhpcy5ob3N0Vmlldyk7XG5cbiAgICAgICAgdGhpcy5pbnN0YW5jZSA9IHRoaXMub3ZlcmxheVJlZi5hdHRhY2godGhpcy5wb3J0YWwpLmluc3RhbmNlIGFzIEticVBvcFVwO1xuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UudHJpZ2dlciA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5pbnN0YW5jZS5hZnRlckhpZGRlbigpLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSh0aGlzLmRldGFjaCk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVDbGFzc01hcCgpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlRGF0YSgpO1xuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UudmlzaWJsZUNoYW5nZVxuICAgICAgICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbiA9IHZhbHVlO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbigpO1xuXG4gICAgICAgIHRoaXMuaW5zdGFuY2Uuc2hvdyhkZWxheSk7XG5cbiAgICAgICAgaWYgKHRoaXMuaGlkZVdpdGhUaW1lb3V0ICYmIHRoaXMudHJpZ2dlci5pbmNsdWRlcyhQb3BVcFRyaWdnZXJzLkhvdmVyKSkge1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGludGVydmFsKHRoaXMubGVhdmVEZWxheSwgdGhpcy5zY2hlZHVsZXIpXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMudHJpZ2dlci5pbmNsdWRlcyhQb3BVcFRyaWdnZXJzLkhvdmVyKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMuaG92ZXJlZC5nZXRWYWx1ZSgpICYmICF0aGlzLmluc3RhbmNlPy5ob3ZlcmVkLmdldFZhbHVlKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuaW5zdGFuY2U/LmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSh0aGlzLmhpZGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoaWRlID0gKGRlbGF5OiBudW1iZXIgPSB0aGlzLmxlYXZlRGVsYXkpID0+IHtcbiAgICAgICAgaWYgKHRoaXMucHJldmVudENsb3NlKSByZXR1cm47XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKHRoaXMuaW5zdGFuY2UgJiYgdGhpcy50cmlnZ2VyTmFtZSAhPT0gJ21vdXNlbGVhdmUnKSB8fFxuICAgICAgICAgICAgKHRoaXMudHJpZ2dlck5hbWUgPT09ICdtb3VzZWxlYXZlJyAmJiAhdGhpcy5pbnN0YW5jZT8uaG92ZXJlZC5nZXRWYWx1ZSgpKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLmluc3RhbmNlPy5oaWRlKGRlbGF5KSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZGV0YWNoID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluc3RhbmNlID0gbnVsbDtcbiAgICB9O1xuXG4gICAgLyoqIENyZWF0ZSB0aGUgb3ZlcmxheSBjb25maWcgYW5kIHBvc2l0aW9uIHN0cmF0ZWd5ICovXG4gICAgY3JlYXRlT3ZlcmxheSgpOiBPdmVybGF5UmVmIHtcbiAgICAgICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMub3ZlcmxheVJlZjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENyZWF0ZSBjb25uZWN0ZWQgcG9zaXRpb24gc3RyYXRlZ3kgdGhhdCBsaXN0ZW5zIGZvciBzY3JvbGwgZXZlbnRzIHRvIHJlcG9zaXRpb24uXG4gICAgICAgIHRoaXMuc3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmVsZW1lbnRSZWYpXG4gICAgICAgICAgICAud2l0aFRyYW5zZm9ybU9yaWdpbk9uKHRoaXMub3JpZ2luU2VsZWN0b3IpXG4gICAgICAgICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyhmYWxzZSlcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFsuLi5FWFRFTkRFRF9PVkVSTEFZX1BPU0lUSU9OU10pXG4gICAgICAgICAgICAud2l0aExvY2tlZFBvc2l0aW9uKClcbiAgICAgICAgICAgIC53aXRoU2Nyb2xsYWJsZUNvbnRhaW5lcnModGhpcy5zY3JvbGxEaXNwYXRjaGVyLmdldEFuY2VzdG9yU2Nyb2xsQ29udGFpbmVycyh0aGlzLmVsZW1lbnRSZWYpKTtcblxuICAgICAgICB0aGlzLnN0cmF0ZWd5LnBvc2l0aW9uQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUodGhpcy5vblBvc2l0aW9uQ2hhbmdlKTtcblxuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgICAgIC4uLnRoaXMub3ZlcmxheUNvbmZpZyxcbiAgICAgICAgICAgIGRpcmVjdGlvbjogdGhpcy5kaXJlY3Rpb24gfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5zdHJhdGVneSxcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLnNjcm9sbFN0cmF0ZWd5KClcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpYmVPbkNsb3NpbmdBY3Rpb25zKCk7XG5cbiAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaG1lbnRzKCkucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKHRoaXMuZGV0YWNoKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5vdmVybGF5UmVmO1xuICAgIH1cblxuICAgIHJlc2V0T3JpZ2luKCkge1xuICAgICAgICB0aGlzLnN0cmF0ZWd5LnNldE9yaWdpbih0aGlzLmVsZW1lbnRSZWYpO1xuICAgIH1cblxuICAgIG9uUG9zaXRpb25DaGFuZ2UgPSAoJGV2ZW50OiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbmV3UGxhY2VtZW50ID0gdGhpcy5wbGFjZW1lbnQ7XG5cbiAgICAgICAgY29uc3QgeyBvcmlnaW5YLCBvcmlnaW5ZLCBvdmVybGF5WCwgb3ZlcmxheVkgfSA9ICRldmVudC5jb25uZWN0aW9uUGFpcjtcblxuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmF2YWlsYWJsZVBvc2l0aW9ucykuc29tZSgoa2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgb3JpZ2luWCA9PT0gdGhpcy5hdmFpbGFibGVQb3NpdGlvbnNba2V5XS5vcmlnaW5YICYmXG4gICAgICAgICAgICAgICAgb3JpZ2luWSA9PT0gdGhpcy5hdmFpbGFibGVQb3NpdGlvbnNba2V5XS5vcmlnaW5ZICYmXG4gICAgICAgICAgICAgICAgb3ZlcmxheVggPT09IHRoaXMuYXZhaWxhYmxlUG9zaXRpb25zW2tleV0ub3ZlcmxheVggJiZcbiAgICAgICAgICAgICAgICBvdmVybGF5WSA9PT0gdGhpcy5hdmFpbGFibGVQb3NpdGlvbnNba2V5XS5vdmVybGF5WVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgbmV3UGxhY2VtZW50ID0ga2V5IGFzIFBvcFVwUGxhY2VtZW50cztcblxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucGxhY2VtZW50Q2hhbmdlLmVtaXQobmV3UGxhY2VtZW50KTtcblxuICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzTWFwKG5ld1BsYWNlbWVudCk7XG5cbiAgICAgICAgdGhpcy5pbnN0YW5jZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfTtcblxuICAgIGluaXRMaXN0ZW5lcnMoKSB7XG4gICAgICAgIHRoaXMuY2xlYXJMaXN0ZW5lcnMoKTtcblxuICAgICAgICBpZiAodGhpcy50cmlnZ2VyLmluY2x1ZGVzKFBvcFVwVHJpZ2dlcnMuQ2xpY2spKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RlbmVycy5zZXQoLi4udGhpcy5jcmVhdGVMaXN0ZW5lcignY2xpY2snLCB0aGlzLnNob3cpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnRyaWdnZXIuaW5jbHVkZXMoUG9wVXBUcmlnZ2Vycy5Ib3ZlcikpIHtcbiAgICAgICAgICAgIHRoaXMubGlzdGVuZXJzXG4gICAgICAgICAgICAgICAgLnNldCguLi50aGlzLmNyZWF0ZUxpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5zaG93KSlcbiAgICAgICAgICAgICAgICAuc2V0KC4uLnRoaXMuY3JlYXRlTGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLmdldE1vdXNlTGVhdmVMaXN0ZW5lcigpKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50cmlnZ2VyLmluY2x1ZGVzKFBvcFVwVHJpZ2dlcnMuRm9jdXMpKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RlbmVyc1xuICAgICAgICAgICAgICAgIC5zZXQoLi4udGhpcy5jcmVhdGVMaXN0ZW5lcignZm9jdXMnLCB0aGlzLnNob3cpKVxuICAgICAgICAgICAgICAgIC5zZXQoLi4udGhpcy5jcmVhdGVMaXN0ZW5lcignYmx1cicsIHRoaXMuaGlkZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudHJpZ2dlci5pbmNsdWRlcyhQb3BVcFRyaWdnZXJzLktleWRvd24pKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RlbmVycy5zZXQoJ2tleWRvd24nLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBLZXlib2FyZEV2ZW50ICYmIFtFTlRFUiwgU1BBQ0VdLmluY2x1ZGVzKGV2ZW50LmtleUNvZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zaG93KCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCh0aGlzLmFkZEV2ZW50TGlzdGVuZXIpO1xuICAgIH1cblxuICAgIGdldE1vdXNlTGVhdmVMaXN0ZW5lcigpIHtcbiAgICAgICAgaWYgKHRoaXMuaGlkZVdpdGhUaW1lb3V0KSB7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4gc2V0VGltZW91dCh0aGlzLmhpZGUsIHRoaXMubGVhdmVEZWxheSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5oaWRlO1xuICAgIH1cblxuICAgIC8qKiBVcGRhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCBwb3BvdmVyLiAqL1xuICAgIHVwZGF0ZVBvc2l0aW9uKHJlYXBwbHlQb3NpdGlvbjogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMuY3JlYXRlT3ZlcmxheSgpO1xuXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlT25DbG9zaW5nQWN0aW9ucygpO1xuXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uID0gKHRoaXMub3ZlcmxheVJlZi5nZXRDb25maWcoKS5wb3NpdGlvblN0cmF0ZWd5IGFzIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSlcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKHRoaXMuZ2V0QWRqdXN0ZWRQb3NpdGlvbnMoKSlcbiAgICAgICAgICAgIC53aXRoUHVzaCh0cnVlKTtcblxuICAgICAgICBpZiAocmVhcHBseVBvc2l0aW9uKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHBvc2l0aW9uLnJlYXBwbHlMYXN0UG9zaXRpb24oKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1cygpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBwb3NpdGlvbnMgdGhhdCBhcmUgYWxpZ25lZCB3aXRoIHRoZSBlbGVtZW50J3MgZGltZW5zaW9ucyBhbmQgb2Zmc2V0cy5cbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldEFkanVzdGVkUG9zaXRpb25zKCk6IENvbm5lY3Rpb25Qb3NpdGlvblBhaXJbXSB7XG4gICAgICAgIGNvbnN0IHJlczogQ29ubmVjdGlvblBvc2l0aW9uUGFpcltdID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBwb3Mgb2YgdGhpcy5nZXRQcmlvcml0aXplZFBvc2l0aW9ucygpKSB7XG4gICAgICAgICAgICBjb25zdCBvZmZzZXQ6IEticVBvcHVwVHJpZ2dlck9mZnNldCA9IHRoaXMuYXJyb3dcbiAgICAgICAgICAgICAgICA/IGdldE9mZnNldChwb3MsIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKVxuICAgICAgICAgICAgICAgIDoge307XG5cbiAgICAgICAgICAgIHJlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAuLi5wb3MsXG4gICAgICAgICAgICAgICAgLi4ub2Zmc2V0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFByaW9yaXR5UGxhY2VtZW50U3RyYXRlZ3kodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKTogQ29ubmVjdGlvblBvc2l0aW9uUGFpcltdIHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBDb25uZWN0aW9uUG9zaXRpb25QYWlyW10gPSBbXTtcbiAgICAgICAgY29uc3QgcG9zc2libGVQb3NpdGlvbnMgPSBPYmplY3Qua2V5cyh0aGlzLmF2YWlsYWJsZVBvc2l0aW9ucyk7XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKChwb3NpdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHBvc3NpYmxlUG9zaXRpb25zLmluY2x1ZGVzKHBvc2l0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLmF2YWlsYWJsZVBvc2l0aW9uc1twb3NpdGlvbl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHBvc3NpYmxlUG9zaXRpb25zLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2godGhpcy5hdmFpbGFibGVQb3NpdGlvbnNbdmFsdWVdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFByaW9yaXRpemVkUG9zaXRpb25zKCkge1xuICAgICAgICBpZiAodGhpcy5wbGFjZW1lbnRQcmlvcml0eSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UHJpb3JpdHlQbGFjZW1lbnRTdHJhdGVneSh0aGlzLnBsYWNlbWVudFByaW9yaXR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBQT1NJVElPTl9QUklPUklUWV9TVFJBVEVHWVt0aGlzLnBsYWNlbWVudF07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNsZWFyTGlzdGVuZXJzKCkge1xuICAgICAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcik7XG5cbiAgICAgICAgdGhpcy5saXN0ZW5lcnMuY2xlYXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUxpc3RlbmVyKG5hbWU6IHN0cmluZywgbGlzdGVuZXI6ICgpID0+IHZvaWQpOiBbc3RyaW5nLCAoZXZlbnQ6IHVua25vd24pID0+IHZvaWRdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAoZXZlbnQ6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJOYW1lID0gbmFtZTtcbiAgICAgICAgICAgICAgICB0aGlzLnNhdmVNb3VzZUV2ZW50KGV2ZW50IGFzIE1vdXNlRXZlbnQpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGxpc3RlbmVyLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNhdmVNb3VzZUV2ZW50KGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnRyaWdnZXJOYW1lID09PSAnbW91c2VlbnRlcicpIHtcbiAgICAgICAgICAgIHRoaXMubW91c2VFdmVudCA9IGV2ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRFdmVudExpc3RlbmVyID0gKGxpc3RlbmVyOiBFdmVudExpc3RlbmVyLCBldmVudDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGxpc3RlbmVyKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSByZW1vdmVFdmVudExpc3RlbmVyID0gKGxpc3RlbmVyOiBFdmVudExpc3RlbmVyLCBldmVudDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGxpc3RlbmVyKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVPbkNsb3NpbmdBY3Rpb25zKCkge1xuICAgICAgICB0aGlzLmNsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuXG4gICAgICAgIHRoaXMuY2xvc2luZ0FjdGlvbnNTdWJzY3JpcHRpb24gPSB0aGlzLmNsb3NpbmdBY3Rpb25zKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnBpcGUocnhEZWxheSgwKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50Py50eXBlID09PSAnY2xpY2snICYmIGV2ZW50LmticVBvcG92ZXJQcmV2ZW50SGlkZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
package/esm2022/core/version.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Version } from '@angular/core';
|
|
2
|
-
export const VERSION = new Version('18.39.
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
export const VERSION = new Version('18.39.5+sha-dd79ea8');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29yZS92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWZXJzaW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gbmV3IFZlcnNpb24oJzE4LjM5LjUrc2hhLWRkNzllYTgnKTtcbiJdfQ==
|
|
@@ -22,11 +22,10 @@ import * as i0 from "@angular/core";
|
|
|
22
22
|
import * as i1 from "@angular/forms";
|
|
23
23
|
import * as i2 from "@koobiq/components/form-field";
|
|
24
24
|
import * as i3 from "@koobiq/components/input";
|
|
25
|
-
import * as i4 from "@koobiq/components/
|
|
26
|
-
import * as i5 from "@koobiq/components/
|
|
27
|
-
import * as i6 from "@koobiq/components/
|
|
28
|
-
import * as i7 from "@koobiq/components/
|
|
29
|
-
import * as i8 from "@koobiq/components/datepicker";
|
|
25
|
+
import * as i4 from "@koobiq/components/popover";
|
|
26
|
+
import * as i5 from "@koobiq/components/button";
|
|
27
|
+
import * as i6 from "@koobiq/components/list";
|
|
28
|
+
import * as i7 from "@koobiq/components/datepicker";
|
|
30
29
|
export class KbqPipeDateComponent extends KbqBasePipe {
|
|
31
30
|
constructor() {
|
|
32
31
|
super(...arguments);
|
|
@@ -174,7 +173,7 @@ export class KbqPipeDateComponent extends KbqBasePipe {
|
|
|
174
173
|
provide: KbqBasePipe,
|
|
175
174
|
useExisting: this
|
|
176
175
|
}
|
|
177
|
-
], viewQueries: [{ propertyName: "listSelection", first: true, predicate: ["listSelection"], descendants: true, read: KbqListSelection, isSignal: true }, { propertyName: "returnButton", first: true, predicate: ["returnButton"], descendants: true, read: KbqButton, isSignal: true }, { propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [defaultPaddings]=\"false\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <i class=\"kbq kbq-icon kbq-chevron-right_16 kbq-contrast-fade\"></i>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <kbq-divider />\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <div class=\"kbq-date-period__content-header\">{{ localeData.datePipe.customPeriod }}</div>\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n \n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318' : 'Ctrl+' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-on-contrast);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding-top:var(--kbq-size-xs);padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content;padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__content-header{grid-column:2 span;padding-top:var(--kbq-size-s);padding-left:var(--kbq-size-l);padding-right:var(--kbq-size-l);color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{flex:1}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date{min-width:136px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker{margin-left:-1px;width:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i2.KbqSuffix, selector: "[kbqSuffix]" }, { kind: "component", type: i2.KbqHint, selector: "kbq-hint", inputs: ["id", "fillTextOff", "compact"], exportAs: ["kbqHint"] }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.MaxValidator, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: ["max"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "component", type: i4.KbqDivider, selector: "kbq-divider", inputs: ["vertical", "inset", "paddings"] }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i5.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["kbqPopoverPreventClose", "defaultPaddings", "kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "kbqPopoverStickToWindow", "container", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "kbqPopoverContext", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset", "kbqLeaveDelay"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i6.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i6.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqListModule }, { kind: "component", type: i7.KbqListSelection, selector: "kbq-list-selection", inputs: ["autoSelect", "noUnselectLast", "horizontal", "tabIndex", "disabled", "compareWith"], outputs: ["onSelectAll", "onCopy", "selectionChange"], exportAs: ["kbqListSelection"] }, { kind: "component", type: i7.KbqListOption, selector: "kbq-list-option", inputs: ["checkboxPosition", "value", "disabled", "showCheckbox", "selected"], exportAs: ["kbqListOption"] }, { kind: "ngmodule", type: KbqDatepickerModule }, { kind: "component", type: i8.KbqCalendar, selector: "kbq-calendar", inputs: ["startAt", "selected", "minDate", "maxDate", "dateFilter", "dateClass"], outputs: ["selectedChange", "yearSelected", "monthSelected", "userSelection"], exportAs: ["kbqCalendar"] }, { kind: "directive", type: i8.KbqDatepickerInput, selector: "input[kbqDatepicker], input[kbqCalendar]", inputs: ["errorStateMatcher", "placeholder", "required", "kbqDatepicker", "kbqCalendar", "kbqDatepickerFilter", "value", "min", "max", "disabled", "id", "kbqValidationTooltip"], outputs: ["incorrectInput", "dateChange", "dateInput"], exportAs: ["kbqDatepickerInput"] }, { kind: "ngmodule", type: KbqTimepickerModule }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "ngmodule", type: KbqFormattersModule }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
176
|
+
], viewQueries: [{ propertyName: "listSelection", first: true, predicate: ["listSelection"], descendants: true, read: KbqListSelection, isSignal: true }, { propertyName: "returnButton", first: true, predicate: ["returnButton"], descendants: true, read: KbqButton, isSignal: true }, { propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [defaultPaddings]=\"false\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <i class=\"kbq kbq-icon kbq-chevron-right_16 kbq-contrast-fade\"></i>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n \n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318\u2009' : 'Ctrl + ' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-on-contrast);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding:var(--kbq-size-xs) var(--kbq-size-xxs) var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content minmax(min-content,1fr);padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{width:auto}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date{min-width:136px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker{margin-left:-1px;width:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i2.KbqSuffix, selector: "[kbqSuffix]" }, { kind: "component", type: i2.KbqHint, selector: "kbq-hint", inputs: ["id", "fillTextOff", "compact"], exportAs: ["kbqHint"] }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.MaxValidator, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: ["max"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i4.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["kbqPopoverPreventClose", "defaultPaddings", "kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "kbqPopoverStickToWindow", "container", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "kbqPopoverContext", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset", "kbqLeaveDelay"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i5.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i5.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqListModule }, { kind: "component", type: i6.KbqListSelection, selector: "kbq-list-selection", inputs: ["autoSelect", "noUnselectLast", "horizontal", "tabIndex", "disabled", "compareWith"], outputs: ["onSelectAll", "onCopy", "selectionChange"], exportAs: ["kbqListSelection"] }, { kind: "component", type: i6.KbqListOption, selector: "kbq-list-option", inputs: ["checkboxPosition", "value", "disabled", "showCheckbox", "selected"], exportAs: ["kbqListOption"] }, { kind: "ngmodule", type: KbqDatepickerModule }, { kind: "component", type: i7.KbqCalendar, selector: "kbq-calendar", inputs: ["startAt", "selected", "minDate", "maxDate", "dateFilter", "dateClass"], outputs: ["selectedChange", "yearSelected", "monthSelected", "userSelection"], exportAs: ["kbqCalendar"] }, { kind: "directive", type: i7.KbqDatepickerInput, selector: "input[kbqDatepicker], input[kbqCalendar]", inputs: ["errorStateMatcher", "placeholder", "required", "kbqDatepicker", "kbqCalendar", "kbqDatepickerFilter", "value", "min", "max", "disabled", "id", "kbqValidationTooltip"], outputs: ["incorrectInput", "dateChange", "dateInput"], exportAs: ["kbqDatepickerInput"] }, { kind: "ngmodule", type: KbqTimepickerModule }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "ngmodule", type: KbqFormattersModule }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
178
177
|
}
|
|
179
178
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqPipeDateComponent, decorators: [{
|
|
180
179
|
type: Component,
|
|
@@ -201,9 +200,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
201
200
|
KbqTitleModule,
|
|
202
201
|
KbqPipeTitleDirective,
|
|
203
202
|
FormsModule
|
|
204
|
-
], template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [defaultPaddings]=\"false\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <i class=\"kbq kbq-icon kbq-chevron-right_16 kbq-contrast-fade\"></i>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <kbq-divider />\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <div class=\"kbq-date-period__content-header\">{{ localeData.datePipe.customPeriod }}</div>\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n \n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318' : 'Ctrl+' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-on-contrast);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding-top:var(--kbq-size-xs);padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content;padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__content-header{grid-column:2 span;padding-top:var(--kbq-size-s);padding-left:var(--kbq-size-l);padding-right:var(--kbq-size-l);color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{flex:1}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date{min-width:136px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker{margin-left:-1px;width:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n"] }]
|
|
203
|
+
], template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [defaultPaddings]=\"false\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <i class=\"kbq kbq-icon kbq-chevron-right_16 kbq-contrast-fade\"></i>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n \n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318\u2009' : 'Ctrl + ' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:var(--kbq-size-l);align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:var(--kbq-size-s);width:1px;height:var(--kbq-size-l);background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-on-contrast);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding:var(--kbq-size-xs) var(--kbq-size-xxs) var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content minmax(min-content,1fr);padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{width:auto}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date{min-width:136px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker{margin-left:-1px;width:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time.kbq-form-field-type-timepicker .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n"] }]
|
|
205
204
|
}], propDecorators: { popover: [{
|
|
206
205
|
type: ViewChild,
|
|
207
206
|
args: ['popover']
|
|
208
207
|
}] } });
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1kYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9maWx0ZXItYmFyL3BpcGVzL3BpcGUtZGF0ZS50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZmlsdGVyLWJhci9waXBlcy9waXBlLWRhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hGLE9BQU8sRUFDSCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGtCQUFrQixFQUNsQiwyQ0FBMkMsRUFDM0MsbUJBQW1CLEVBQ25CLGVBQWUsRUFDbEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdC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LG9CQUFvQjtrQkFqQ2hDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDUCwyQ0FBMkMsRUFBRTt3QkFDN0M7NEJBQ0ksT0FBTyxFQUFFLFdBQVc7NEJBQ3BCLFdBQVcsRUFBRSxJQUFJO3lCQUNwQjtxQkFDSixXQUNRO3dCQUNMLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLFdBQVc7cUJBQ2Q7OEJBZ0ZxQixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGluamVjdCxcbiAgICB2aWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Brb29iaXEvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEticUJ1dHRvbiwgS2JxQnV0dG9uTW9kdWxlLCBLYnFCdXR0b25TdHlsZXMgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7XG4gICAgRGF0ZUFkYXB0ZXIsXG4gICAgRGF0ZUZvcm1hdHRlcixcbiAgICBLYnFDb21wb25lbnRDb2xvcnMsXG4gICAga2JxRGlzYWJsZUxlZ2FjeVZhbGlkYXRpb25EaXJlY3RpdmVQcm92aWRlcixcbiAgICBLYnFGb3JtYXR0ZXJzTW9kdWxlLFxuICAgIFBvcFVwUGxhY2VtZW50c1xufSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBLYnFEYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgS2JxRGl2aWRlck1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9kaXZpZGVyJztcbmltcG9ydCB7IEticUZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEticUljb24gfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLYnFJbnB1dE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pbnB1dCc7XG5pbXBvcnQgeyBLYnFMaXN0TW9kdWxlLCBLYnFMaXN0U2VsZWN0aW9uIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2xpc3QnO1xuaW1wb3J0IHsgS2JxUG9wb3Zlck1vZHVsZSwgS2JxUG9wb3ZlclRyaWdnZXIgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBLYnFUaW1lcGlja2VyTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3RpbWVwaWNrZXInO1xuaW1wb3J0IHsgS2JxVGl0bGVNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvdGl0bGUnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgS2JxRGF0ZVRpbWVWYWx1ZSB9IGZyb20gJy4uL2ZpbHRlci1iYXIudHlwZXMnO1xuaW1wb3J0IHsgS2JxQmFzZVBpcGUgfSBmcm9tICcuL2Jhc2UtcGlwZSc7XG5pbXBvcnQgeyBLYnFQaXBlQnV0dG9uIH0gZnJvbSAnLi9waXBlLWJ1dHRvbic7XG5pbXBvcnQgeyBLYnFQaXBlU3RhdGUgfSBmcm9tICcuL3BpcGUtc3RhdGUnO1xuaW1wb3J0IHsgS2JxUGlwZVRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi9waXBlLXRpdGxlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2ticS1waXBlLWRhdGUnLFxuICAgIHRlbXBsYXRlVXJsOiAncGlwZS1kYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydiYXNlLXBpcGUuc2NzcycsICdwaXBlLWRhdGUuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIGticURpc2FibGVMZWdhY3lWYWxpZGF0aW9uRGlyZWN0aXZlUHJvdmlkZXIoKSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogS2JxQmFzZVBpcGUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogdGhpc1xuICAgICAgICB9XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIEticUZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgS2JxSWNvbixcbiAgICAgICAgS2JxSW5wdXRNb2R1bGUsXG4gICAgICAgIEticURpdmlkZXJNb2R1bGUsXG4gICAgICAgIEticVBvcG92ZXJNb2R1bGUsXG4gICAgICAgIEticUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgS2JxTGlzdE1vZHVsZSxcbiAgICAgICAgS2JxRGF0ZXBpY2tlck1vZHVsZSxcbiAgICAgICAgS2JxVGltZXBpY2tlck1vZHVsZSxcbiAgICAgICAgS2JxUGlwZVN0YXRlLFxuICAgICAgICBLYnFGb3JtYXR0ZXJzTW9kdWxlLFxuICAgICAgICBLYnFQaXBlQnV0dG9uLFxuICAgICAgICBLYnFUaXRsZU1vZHVsZSxcbiAgICAgICAgS2JxUGlwZVRpdGxlRGlyZWN0aXZlLFxuICAgICAgICBGb3Jtc01vZHVsZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgS2JxUGlwZURhdGVDb21wb25lbnQ8RD4gZXh0ZW5kcyBLYnFCYXNlUGlwZTxLYnFEYXRlVGltZVZhbHVlPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWRhcHRlciA9IGluamVjdChEYXRlQWRhcHRlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtYXR0ZXIgPSBpbmplY3QoRGF0ZUZvcm1hdHRlcik7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBwbGFjZW1lbnRzID0gUG9wVXBQbGFjZW1lbnRzO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0eWxlcyA9IEticUJ1dHRvblN0eWxlcztcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb2xvcnMgPSBLYnFDb21wb25lbnRDb2xvcnM7XG5cbiAgICAvKiogV2hldGhlciB0aGUgY3VycmVudCBzdGF0ZSBpcyBsaXN0IG9mIHBlcmlvZHMuIFdoZW4gZmFsc2Ugd2lsbCBkaXNwbGF5ZWQgY29udHJvbCBmb3Igc2V0IGN1c3RvbSBwZXJpb2QgKi9cbiAgICBwcm90ZWN0ZWQgaXNMaXN0TW9kZSA9IHRydWU7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHNob3dTdGFydENhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgc2hvd0VuZENhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogZm9ybWF0dGVkIHZhbHVlIGZvciBwZXJpb2QgKi9cbiAgICBnZXQgZm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhcnQgJiYgdGhpcy5lbmQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHRlci5yYW5nZVNob3J0RGF0ZSh0aGlzLnN0YXJ0LCB0aGlzLmVuZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLnZhbHVlPy5uYW1lID8/ICcnO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHBpcGUgaXMgZGlzYWJsZWQuICovXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXRoaXMuYWRhcHRlci5pc0RhdGVJbnN0YW5jZSh0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zdGFydC52YWx1ZSkgfHxcbiAgICAgICAgICAgICF0aGlzLmFkYXB0ZXIuaXNEYXRlSW5zdGFuY2UodGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZW5kLnZhbHVlKSB8fFxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc3RhcnQuaW52YWxpZFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBwYXJzZWQgc3RhcnQgKi9cbiAgICBnZXQgc3RhcnQoKTogRCB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucGFyc2UodGhpcy5kYXRhLnZhbHVlPy5zdGFydCwgJycpO1xuICAgIH1cblxuICAgIC8qKiBkZWZhdWx0IG9iamVjdCBmb3Igc3RhcnQgKi9cbiAgICBnZXQgZGVmYXVsdFN0YXJ0KCk6IEQge1xuICAgICAgICBpZiAodGhpcy5kYXRhLnZhbHVlPy5zdGFydCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci50b2RheSgpLnBsdXModGhpcy5kYXRhLnZhbHVlPy5zdGFydCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnRvZGF5KCk7XG4gICAgfVxuXG4gICAgLyoqIHBhcnNlZCBlbmQgKi9cbiAgICBnZXQgZW5kKCk6IEQge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnBhcnNlKHRoaXMuZGF0YS52YWx1ZT8uZW5kLCAnJyk7XG4gICAgfVxuXG4gICAgLyoqIGRlZmF1bHQgb2JqZWN0IGZvciBlbmQgKi9cbiAgICBnZXQgZGVmYXVsdEVuZCgpOiBEIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YS52YWx1ZT8uc3RhcnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIudG9kYXkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIudG9kYXkoKS5wbHVzKHsgZGF5czogMSB9KTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgY3VycmVudCBwaXBlIGlzIGVtcHR5LiAqL1xuICAgIG92ZXJyaWRlIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5kYXRhLnZhbHVlID09PSBudWxsKSByZXR1cm4gdHJ1ZTtcblxuICAgICAgICBpZiAodGhpcy5kYXRhLnZhbHVlPy5uYW1lKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgcmV0dXJuICF0aGlzLmFkYXB0ZXIuaXNEYXRlSW5zdGFuY2UodGhpcy5zdGFydCkgfHwgIXRoaXMuYWRhcHRlci5pc0RhdGVJbnN0YW5jZSh0aGlzLmVuZCk7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBAVmlld0NoaWxkKCdwb3BvdmVyJykgcG9wb3ZlcjogS2JxUG9wb3ZlclRyaWdnZXI7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBsaXN0U2VsZWN0aW9uID0gdmlld0NoaWxkLnJlcXVpcmVkKCdsaXN0U2VsZWN0aW9uJywgeyByZWFkOiBLYnFMaXN0U2VsZWN0aW9uIH0pO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcmV0dXJuQnV0dG9uID0gdmlld0NoaWxkLnJlcXVpcmVkKCdyZXR1cm5CdXR0b24nLCB7IHJlYWQ6IEticUJ1dHRvbiB9KTtcblxuICAgIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbiAgICAgICAgdGhpcy5wb3BvdmVyLnZpc2libGVDaGFuZ2VcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigodmlzaWJsZSkgPT4gIXZpc2libGUpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZmlsdGVyQmFyPy5vbkNsb3NlUGlwZS5uZXh0KHRoaXMuZGF0YSkpO1xuICAgIH1cblxuICAgIC8qKiBrZXlkb3duIGhhbmRsZXJcbiAgICAgKiBAZG9jcy1wcml2YXRlICovXG4gICAgb25LZXlkb3duKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoKCRldmVudC5jdHJsS2V5IHx8ICRldmVudC5tZXRhS2V5KSAmJiAkZXZlbnQua2V5Q29kZSA9PT0gRU5URVIpIHtcbiAgICAgICAgICAgIHRoaXMub25BcHBseVBlcmlvZCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCRldmVudC5rZXlDb2RlID09PSBFTlRFUikge1xuICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFwcGx5UGVyaW9kKCkge1xuICAgICAgICB0aGlzLmRhdGEudmFsdWUgPSB7XG4gICAgICAgICAgICBzdGFydDogdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc3RhcnQudmFsdWUudG9JU08oKSxcbiAgICAgICAgICAgIGVuZDogdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZW5kLnZhbHVlLnRvSVNPKClcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuXG4gICAgICAgIHRoaXMuZmlsdGVyQmFyPy5vbkNoYW5nZVBpcGUubmV4dCh0aGlzLmRhdGEpO1xuXG4gICAgICAgIHRoaXMucG9wb3Zlci5oaWRlKCk7XG4gICAgfVxuXG4gICAgb25TZWxlY3QoaXRlbTogS2JxRGF0ZVRpbWVWYWx1ZSkge1xuICAgICAgICB0aGlzLmRhdGEudmFsdWUgPSBpdGVtO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJCYXI/Lm9uQ2hhbmdlUGlwZS5uZXh0KHRoaXMuZGF0YSk7XG5cbiAgICAgICAgdGhpcy5wb3BvdmVyLmhpZGUoKTtcbiAgICB9XG5cbiAgICBzaG93UGVyaW9kKCkge1xuICAgICAgICB0aGlzLmlzTGlzdE1vZGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zaG93U3RhcnRDYWxlbmRhciA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNob3dFbmRDYWxlbmRhciA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuaW5pdEZvcm1Hcm91cCgpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyLnVwZGF0ZVBvc2l0aW9uKHRydWUpO1xuICAgICAgICAgICAgdGhpcy5yZXR1cm5CdXR0b24oKS5mb2N1cygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93TGlzdCgpIHtcbiAgICAgICAgdGhpcy5pc0xpc3RNb2RlID0gdHJ1ZTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubGlzdFNlbGVjdGlvbigpLmZvY3VzKCkpO1xuICAgICAgICB0aGlzLnBvcG92ZXIudXBkYXRlUG9zaXRpb24odHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqIG9wZW5zIHBvcG92ZXIgKi9cbiAgICBvdmVycmlkZSBvcGVuKCkge1xuICAgICAgICB0aGlzLnBvcG92ZXIuc2hvdygpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0U3RhcnREYXRlKHZhbHVlOiBEKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnN0YXJ0LnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdEVuZERhdGUodmFsdWU6IEQpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZW5kLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzU3RhcnRJbnB1dCgpIHtcbiAgICAgICAgdGhpcy5zaG93U3RhcnRDYWxlbmRhciA9IHRydWU7XG4gICAgICAgIHRoaXMuc2hvd0VuZENhbGVuZGFyID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5wb3BvdmVyLnVwZGF0ZVBvc2l0aW9uKHRydWUpO1xuICAgIH1cblxuICAgIG9uRm9jdXNFbmRJbnB1dCgpIHtcbiAgICAgICAgdGhpcy5zaG93RW5kQ2FsZW5kYXIgPSB0cnVlO1xuICAgICAgICB0aGlzLnNob3dTdGFydENhbGVuZGFyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaGlkZUNhbGVuZGFycygpIHtcbiAgICAgICAgdGhpcy5zaG93U3RhcnRDYWxlbmRhciA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNob3dFbmRDYWxlbmRhciA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEZvcm1Hcm91cCgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgICAgIHN0YXJ0OiBuZXcgRm9ybUNvbnRyb2wodGhpcy5zdGFydCB8fCB0aGlzLmRlZmF1bHRTdGFydCksXG4gICAgICAgICAgICBlbmQ6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmVuZCB8fCB0aGlzLmRlZmF1bHRFbmQpXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxidXR0b25cbiAgICAjcG9wb3Zlcj1cImticVBvcG92ZXJcIlxuICAgIGticS1idXR0b25cbiAgICBrYnFQb3BvdmVyXG4gICAgW2Rpc2FibGVkXT1cImRhdGEuZGlzYWJsZWRcIlxuICAgIFtrYnFQaXBlU3RhdGVdPVwiZGF0YVwiXG4gICAgW2ticVBpcGVUaXRsZV09XCJwaXBlVG9vbHRpcFwiXG4gICAgW2ticVBvcG92ZXJBcnJvd109XCJmYWxzZVwiXG4gICAgW2ticVBvcG92ZXJDbGFzc109XCIna2JxLXBpcGUtZGF0ZV9fcG9wb3ZlcidcIlxuICAgIFtrYnFQb3BvdmVyQ29udGVudF09XCJjb250ZW50XCJcbiAgICBba2JxUG9wb3Zlck9mZnNldF09XCI0XCJcbiAgICBbZGVmYXVsdFBhZGRpbmdzXT1cImZhbHNlXCJcbiAgICBba2JxUG9wb3ZlclBsYWNlbWVudF09XCJwbGFjZW1lbnRzLkJvdHRvbUxlZnRcIlxuICAgIFtrYnFQb3BvdmVyUGxhY2VtZW50UHJpb3JpdHldPVwiW3BsYWNlbWVudHMuQm90dG9tTGVmdCwgcGxhY2VtZW50cy5Ub3BMZWZ0XVwiXG4gICAgKGticVBvcG92ZXJWaXNpYmxlQ2hhbmdlKT1cImlzTGlzdE1vZGUgPSB0cnVlXCJcbj5cbiAgICA8c3BhbiAja2JxVGl0bGVUZXh0IGNsYXNzPVwia2JxLXBpcGVfX25hbWVcIj57eyBkYXRhLm5hbWUgfX08L3NwYW4+XG4gICAgPHNwYW4gI2ticVRpdGxlVGV4dCBjbGFzcz1cImticS1waXBlX192YWx1ZVwiIFtjbGFzcy5rYnEtcGlwZV9fdmFsdWVfZW1wdHldPVwiIWZvcm1hdHRlZFZhbHVlXCI+XG4gICAgICAgIHt7IGZvcm1hdHRlZFZhbHVlIH19XG4gICAgPC9zcGFuPlxuPC9idXR0b24+XG5cbkBpZiAoc2hvd1JlbW92ZUJ1dHRvbikge1xuICAgIDxrYnEtcGlwZS1idXR0b24gLz5cbn1cblxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgIEBpZiAoaXNMaXN0TW9kZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWRhdGUtbGlzdFwiPlxuICAgICAgICAgICAgPGticS1saXN0LXNlbGVjdGlvbiAjbGlzdFNlbGVjdGlvbiBbYXV0b1NlbGVjdF09XCJmYWxzZVwiIFtuZ01vZGVsXT1cImRhdGEudmFsdWU/Lm5hbWVcIj5cbiAgICAgICAgICAgICAgICA8a2JxLWxpc3Qtb3B0aW9uIChjbGljayk9XCJzaG93UGVyaW9kKClcIiAoa2V5ZG93bi5lbnRlcik9XCJzaG93UGVyaW9kKClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgbG9jYWxlRGF0YS5kYXRlUGlwZT8uY3VzdG9tUGVyaW9kIH19XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwia2JxIGticS1pY29uIGticS1jaGV2cm9uLXJpZ2h0XzE2IGticS1jb250cmFzdC1mYWRlXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwva2JxLWxpc3Qtb3B0aW9uPlxuXG4gICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiB2YWx1ZXM7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgPGticS1saXN0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS5uYW1lXCIgKGNsaWNrKT1cIm9uU2VsZWN0KGl0ZW0pXCIgKGtleWRvd24uZW50ZXIpPVwib25TZWxlY3QoaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2ticS1saXN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2ticS1saXN0LXNlbGVjdGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2Qga2JxLWRhdGVwaWNrZXJfX2NvbnRlbnRcIiAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAjcmV0dXJuQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGticS1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImNvbG9ycy5UaGVtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtrYnFTdHlsZV09XCJzdHlsZXMuVHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0xpc3QoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS1jaGV2cm9uLWxlZnRfMTZcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIHt7IGxvY2FsZURhdGEuZGF0ZVBpcGUuYmFja1RvUGVyaW9kU2VsZWN0aW9uIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGticS1kaXZpZGVyIC8+XG5cbiAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19jb250ZW50IGticS1mb3JtLWhvcml6b250YWxcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX2NvbnRlbnQtaGVhZGVyXCI+e3sgbG9jYWxlRGF0YS5kYXRlUGlwZS5jdXN0b21QZXJpb2QgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJrYnEtZm9ybV9fbGFiZWxcIj57eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmN1c3RvbVBlcmlvZEZyb20gfX08L2xhYmVsPlxuXG4gICAgICAgICAgICAgICAgPGticS1mb3JtLWZpZWxkIGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19kYXRlIGticS1mb3JtX19jb250cm9sXCIgW2NsYXNzLmticS1mb2N1c2VkXT1cInNob3dTdGFydENhbGVuZGFyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ticUNhbGVuZGFyXT1cInN0YXJ0RGF0ZUNhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmVuZC52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXNpbik9XCJvbkZvY3VzU3RhcnRJbnB1dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnRhYik9XCJoaWRlQ2FsZW5kYXJzKClcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS1jYWxlbmRhci1vXzE2XCIga2JxU3VmZml4PjwvaT5cbiAgICAgICAgICAgICAgICA8L2ticS1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgPGticS1jYWxlbmRhclxuICAgICAgICAgICAgICAgICAgICAjc3RhcnREYXRlQ2FsZW5kYXJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmticS1jYWxlbmRhcl9oaWRkZW5dPVwiIXNob3dTdGFydENhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIm9uU2VsZWN0U3RhcnREYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJrYnEtZm9ybV9fbGFiZWxcIj57eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmN1c3RvbVBlcmlvZFRvIH19PC9sYWJlbD5cblxuICAgICAgICAgICAgICAgIDxrYnEtZm9ybS1maWVsZCBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9fZGF0ZSBrYnEtZm9ybV9fY29udHJvbFwiIFtjbGFzcy5rYnEtZm9jdXNlZF09XCJzaG93RW5kQ2FsZW5kYXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ticUNhbGVuZGFyXT1cImVuZERhdGVDYWxlbmRhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXNpbik9XCJvbkZvY3VzRW5kSW5wdXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi50YWIpPVwiaGlkZUNhbGVuZGFycygpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtY2FsZW5kYXItb18xNlwiIGticVN1ZmZpeD48L2k+XG4gICAgICAgICAgICAgICAgPC9rYnEtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgIEBpZiAoZm9ybUdyb3VwLmNvbnRyb2xzLnN0YXJ0LmludmFsaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGticS1oaW50IGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19oaW50XCIgW2NvbG9yXT1cIidlcnJvcidcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxvY2FsZURhdGEuZGF0ZVBpcGUuY3VzdG9tUGVyaW9kRXJyb3JIaW50IH19XG4gICAgICAgICAgICAgICAgICAgIDwva2JxLWhpbnQ+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPGticS1jYWxlbmRhclxuICAgICAgICAgICAgICAgICAgICAjZW5kRGF0ZUNhbGVuZGFyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5rYnEtY2FsZW5kYXJfaGlkZGVuXT1cIiFzaG93RW5kQ2FsZW5kYXJcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwib25TZWxlY3RFbmREYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Zvcm0+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX2Zvb3RlclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAga2JxLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiJ3RoZW1lJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtrYnFTdHlsZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXBwbHlQZXJpb2QoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBsb2NhbGVEYXRhLnBpcGUuYXBwbHlCdXR0b24gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImticS1idXR0b25faG90LWtleVwiPnt7IGlzTWFjID8gJ+KMmCcgOiAnQ3RybCsnIH19RW50ZXI8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNwaXBlVG9vbHRpcD5cbiAgICA8ZGl2IGNsYXNzPVwia2JxLXBpcGUtdG9vbHRpcF9fbmFtZSBrYnEtdGV4dC1jb21wYWN0XCI+e3sgZGF0YS5uYW1lIH19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImticS1waXBlLXRvb2x0aXBfX3ZhbHVlIGticS10ZXh0LWNvbXBhY3RcIj57eyBmb3JtYXR0ZWRWYWx1ZSB9fTwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1kYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9maWx0ZXItYmFyL3BpcGVzL3BpcGUtZGF0ZS50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZmlsdGVyLWJhci9waXBlcy9waXBlLWRhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hGLE9BQU8sRUFDSCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGtCQUFrQixFQUNsQiwyQ0FBMkMsRUFDM0MsbUJBQW1CLEVBQ25CLGVBQWUsRUFDbEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdC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b0JBQW9CO2tCQWpDaEMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNQLDJDQUEyQyxFQUFFO3dCQUM3Qzs0QkFDSSxPQUFPLEVBQUUsV0FBVzs0QkFDcEIsV0FBVyxFQUFFLElBQUk7eUJBQ3BCO3FCQUNKLFdBQ1E7d0JBQ0wsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLE9BQU87d0JBQ1AsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLHFCQUFxQjt3QkFDckIsV0FBVztxQkFDZDs4QkFnRnFCLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgaW5qZWN0LFxuICAgIHZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVOVEVSIH0gZnJvbSAnQGtvb2JpcS9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgS2JxQnV0dG9uLCBLYnFCdXR0b25Nb2R1bGUsIEticUJ1dHRvblN0eWxlcyB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHtcbiAgICBEYXRlQWRhcHRlcixcbiAgICBEYXRlRm9ybWF0dGVyLFxuICAgIEticUNvbXBvbmVudENvbG9ycyxcbiAgICBrYnFEaXNhYmxlTGVnYWN5VmFsaWRhdGlvbkRpcmVjdGl2ZVByb3ZpZGVyLFxuICAgIEticUZvcm1hdHRlcnNNb2R1bGUsXG4gICAgUG9wVXBQbGFjZW1lbnRzXG59IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticURhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBLYnFEaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2RpdmlkZXInO1xuaW1wb3J0IHsgS2JxRm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgS2JxSWNvbiB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IEticUlucHV0TW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2lucHV0JztcbmltcG9ydCB7IEticUxpc3RNb2R1bGUsIEticUxpc3RTZWxlY3Rpb24gfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvbGlzdCc7XG5pbXBvcnQgeyBLYnFQb3BvdmVyTW9kdWxlLCBLYnFQb3BvdmVyVHJpZ2dlciB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7IEticVRpbWVwaWNrZXJNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvdGltZXBpY2tlcic7XG5pbXBvcnQgeyBLYnFUaXRsZU1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy90aXRsZSc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBLYnFEYXRlVGltZVZhbHVlIH0gZnJvbSAnLi4vZmlsdGVyLWJhci50eXBlcyc7XG5pbXBvcnQgeyBLYnFCYXNlUGlwZSB9IGZyb20gJy4vYmFzZS1waXBlJztcbmltcG9ydCB7IEticVBpcGVCdXR0b24gfSBmcm9tICcuL3BpcGUtYnV0dG9uJztcbmltcG9ydCB7IEticVBpcGVTdGF0ZSB9IGZyb20gJy4vcGlwZS1zdGF0ZSc7XG5pbXBvcnQgeyBLYnFQaXBlVGl0bGVEaXJlY3RpdmUgfSBmcm9tICcuL3BpcGUtdGl0bGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAna2JxLXBpcGUtZGF0ZScsXG4gICAgdGVtcGxhdGVVcmw6ICdwaXBlLWRhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ2Jhc2UtcGlwZS5zY3NzJywgJ3BpcGUtZGF0ZS5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAga2JxRGlzYWJsZUxlZ2FjeVZhbGlkYXRpb25EaXJlY3RpdmVQcm92aWRlcigpLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBLYnFCYXNlUGlwZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiB0aGlzXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgS2JxRm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBLYnFJY29uLFxuICAgICAgICBLYnFJbnB1dE1vZHVsZSxcbiAgICAgICAgS2JxRGl2aWRlck1vZHVsZSxcbiAgICAgICAgS2JxUG9wb3Zlck1vZHVsZSxcbiAgICAgICAgS2JxQnV0dG9uTW9kdWxlLFxuICAgICAgICBLYnFMaXN0TW9kdWxlLFxuICAgICAgICBLYnFEYXRlcGlja2VyTW9kdWxlLFxuICAgICAgICBLYnFUaW1lcGlja2VyTW9kdWxlLFxuICAgICAgICBLYnFQaXBlU3RhdGUsXG4gICAgICAgIEticUZvcm1hdHRlcnNNb2R1bGUsXG4gICAgICAgIEticVBpcGVCdXR0b24sXG4gICAgICAgIEticVRpdGxlTW9kdWxlLFxuICAgICAgICBLYnFQaXBlVGl0bGVEaXJlY3RpdmUsXG4gICAgICAgIEZvcm1zTW9kdWxlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBLYnFQaXBlRGF0ZUNvbXBvbmVudDxEPiBleHRlbmRzIEticUJhc2VQaXBlPEticURhdGVUaW1lVmFsdWU+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhZGFwdGVyID0gaW5qZWN0KERhdGVBZGFwdGVyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1hdHRlciA9IGluamVjdChEYXRlRm9ybWF0dGVyKTtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBsYWNlbWVudHMgPSBQb3BVcFBsYWNlbWVudHM7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3R5bGVzID0gS2JxQnV0dG9uU3R5bGVzO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbG9ycyA9IEticUNvbXBvbmVudENvbG9ycztcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHN0YXRlIGlzIGxpc3Qgb2YgcGVyaW9kcy4gV2hlbiBmYWxzZSB3aWxsIGRpc3BsYXllZCBjb250cm9sIGZvciBzZXQgY3VzdG9tIHBlcmlvZCAqL1xuICAgIHByb3RlY3RlZCBpc0xpc3RNb2RlID0gdHJ1ZTtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgc2hvd1N0YXJ0Q2FsZW5kYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBzaG93RW5kQ2FsZW5kYXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBmb3JtYXR0ZWQgdmFsdWUgZm9yIHBlcmlvZCAqL1xuICAgIGdldCBmb3JtYXR0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5zdGFydCAmJiB0aGlzLmVuZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVyLnJhbmdlU2hvcnREYXRlKHRoaXMuc3RhcnQsIHRoaXMuZW5kKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEudmFsdWU/Lm5hbWUgPz8gJyc7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgcGlwZSBpcyBkaXNhYmxlZC4gKi9cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhdGhpcy5hZGFwdGVyLmlzRGF0ZUluc3RhbmNlKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnN0YXJ0LnZhbHVlKSB8fFxuICAgICAgICAgICAgIXRoaXMuYWRhcHRlci5pc0RhdGVJbnN0YW5jZSh0aGlzLmZvcm1Hcm91cC5jb250cm9scy5lbmQudmFsdWUpIHx8XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zdGFydC5pbnZhbGlkXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIHBhcnNlZCBzdGFydCAqL1xuICAgIGdldCBzdGFydCgpOiBEIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5wYXJzZSh0aGlzLmRhdGEudmFsdWU/LnN0YXJ0LCAnJyk7XG4gICAgfVxuXG4gICAgLyoqIGRlZmF1bHQgb2JqZWN0IGZvciBzdGFydCAqL1xuICAgIGdldCBkZWZhdWx0U3RhcnQoKTogRCB7XG4gICAgICAgIGlmICh0aGlzLmRhdGEudmFsdWU/LnN0YXJ0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnRvZGF5KCkucGx1cyh0aGlzLmRhdGEudmFsdWU/LnN0YXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIudG9kYXkoKTtcbiAgICB9XG5cbiAgICAvKiogcGFyc2VkIGVuZCAqL1xuICAgIGdldCBlbmQoKTogRCB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucGFyc2UodGhpcy5kYXRhLnZhbHVlPy5lbmQsICcnKTtcbiAgICB9XG5cbiAgICAvKiogZGVmYXVsdCBvYmplY3QgZm9yIGVuZCAqL1xuICAgIGdldCBkZWZhdWx0RW5kKCk6IEQge1xuICAgICAgICBpZiAodGhpcy5kYXRhLnZhbHVlPy5zdGFydCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci50b2RheSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci50b2RheSgpLnBsdXMoeyBkYXlzOiAxIH0pO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHBpcGUgaXMgZW1wdHkuICovXG4gICAgb3ZlcnJpZGUgZ2V0IGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmRhdGEudmFsdWUgPT09IG51bGwpIHJldHVybiB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmRhdGEudmFsdWU/Lm5hbWUpIHJldHVybiBmYWxzZTtcblxuICAgICAgICByZXR1cm4gIXRoaXMuYWRhcHRlci5pc0RhdGVJbnN0YW5jZSh0aGlzLnN0YXJ0KSB8fCAhdGhpcy5hZGFwdGVyLmlzRGF0ZUluc3RhbmNlKHRoaXMuZW5kKTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIEBWaWV3Q2hpbGQoJ3BvcG92ZXInKSBwb3BvdmVyOiBLYnFQb3BvdmVyVHJpZ2dlcjtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIGxpc3RTZWxlY3Rpb24gPSB2aWV3Q2hpbGQucmVxdWlyZWQoJ2xpc3RTZWxlY3Rpb24nLCB7IHJlYWQ6IEticUxpc3RTZWxlY3Rpb24gfSk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICByZXR1cm5CdXR0b24gPSB2aWV3Q2hpbGQucmVxdWlyZWQoJ3JldHVybkJ1dHRvbicsIHsgcmVhZDogS2JxQnV0dG9uIH0pO1xuXG4gICAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcblxuICAgICAgICB0aGlzLnBvcG92ZXIudmlzaWJsZUNoYW5nZVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCh2aXNpYmxlKSA9PiAhdmlzaWJsZSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5maWx0ZXJCYXI/Lm9uQ2xvc2VQaXBlLm5leHQodGhpcy5kYXRhKSk7XG4gICAgfVxuXG4gICAgLyoqIGtleWRvd24gaGFuZGxlclxuICAgICAqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBvbktleWRvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICgoJGV2ZW50LmN0cmxLZXkgfHwgJGV2ZW50Lm1ldGFLZXkpICYmICRldmVudC5rZXlDb2RlID09PSBFTlRFUikge1xuICAgICAgICAgICAgdGhpcy5vbkFwcGx5UGVyaW9kKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoJGV2ZW50LmtleUNvZGUgPT09IEVOVEVSKSB7XG4gICAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQXBwbHlQZXJpb2QoKSB7XG4gICAgICAgIHRoaXMuZGF0YS52YWx1ZSA9IHtcbiAgICAgICAgICAgIHN0YXJ0OiB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zdGFydC52YWx1ZS50b0lTTygpLFxuICAgICAgICAgICAgZW5kOiB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5lbmQudmFsdWUudG9JU08oKVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJCYXI/Lm9uQ2hhbmdlUGlwZS5uZXh0KHRoaXMuZGF0YSk7XG5cbiAgICAgICAgdGhpcy5wb3BvdmVyLmhpZGUoKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdChpdGVtOiBLYnFEYXRlVGltZVZhbHVlKSB7XG4gICAgICAgIHRoaXMuZGF0YS52YWx1ZSA9IGl0ZW07XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcblxuICAgICAgICB0aGlzLmZpbHRlckJhcj8ub25DaGFuZ2VQaXBlLm5leHQodGhpcy5kYXRhKTtcblxuICAgICAgICB0aGlzLnBvcG92ZXIuaGlkZSgpO1xuICAgIH1cblxuICAgIHNob3dQZXJpb2QoKSB7XG4gICAgICAgIHRoaXMuaXNMaXN0TW9kZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNob3dTdGFydENhbGVuZGFyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2hvd0VuZENhbGVuZGFyID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5pbml0Rm9ybUdyb3VwKCk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXIudXBkYXRlUG9zaXRpb24odHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLnJldHVybkJ1dHRvbigpLmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dMaXN0KCkge1xuICAgICAgICB0aGlzLmlzTGlzdE1vZGUgPSB0cnVlO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5saXN0U2VsZWN0aW9uKCkuZm9jdXMoKSk7XG4gICAgICAgIHRoaXMucG9wb3Zlci51cGRhdGVQb3NpdGlvbih0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogb3BlbnMgcG9wb3ZlciAqL1xuICAgIG92ZXJyaWRlIG9wZW4oKSB7XG4gICAgICAgIHRoaXMucG9wb3Zlci5zaG93KCk7XG4gICAgfVxuXG4gICAgb25TZWxlY3RTdGFydERhdGUodmFsdWU6IEQpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc3RhcnQuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0RW5kRGF0ZSh2YWx1ZTogRCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5lbmQuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIG9uRm9jdXNTdGFydElucHV0KCkge1xuICAgICAgICB0aGlzLnNob3dTdGFydENhbGVuZGFyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zaG93RW5kQ2FsZW5kYXIgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLnBvcG92ZXIudXBkYXRlUG9zaXRpb24odHJ1ZSk7XG4gICAgfVxuXG4gICAgb25Gb2N1c0VuZElucHV0KCkge1xuICAgICAgICB0aGlzLnNob3dFbmRDYWxlbmRhciA9IHRydWU7XG4gICAgICAgIHRoaXMuc2hvd1N0YXJ0Q2FsZW5kYXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBoaWRlQ2FsZW5kYXJzKCkge1xuICAgICAgICB0aGlzLnNob3dTdGFydENhbGVuZGFyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2hvd0VuZENhbGVuZGFyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0Rm9ybUdyb3VwKCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICAgICAgc3RhcnQ6IG5ldyBGb3JtQ29udHJvbCh0aGlzLnN0YXJ0IHx8IHRoaXMuZGVmYXVsdFN0YXJ0KSxcbiAgICAgICAgICAgIGVuZDogbmV3IEZvcm1Db250cm9sKHRoaXMuZW5kIHx8IHRoaXMuZGVmYXVsdEVuZClcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGJ1dHRvblxuICAgICNwb3BvdmVyPVwia2JxUG9wb3ZlclwiXG4gICAga2JxLWJ1dHRvblxuICAgIGticVBvcG92ZXJcbiAgICBbZGlzYWJsZWRdPVwiZGF0YS5kaXNhYmxlZFwiXG4gICAgW2ticVBpcGVTdGF0ZV09XCJkYXRhXCJcbiAgICBba2JxUGlwZVRpdGxlXT1cInBpcGVUb29sdGlwXCJcbiAgICBba2JxUG9wb3ZlckFycm93XT1cImZhbHNlXCJcbiAgICBba2JxUG9wb3ZlckNsYXNzXT1cIidrYnEtcGlwZS1kYXRlX19wb3BvdmVyJ1wiXG4gICAgW2ticVBvcG92ZXJDb250ZW50XT1cImNvbnRlbnRcIlxuICAgIFtrYnFQb3BvdmVyT2Zmc2V0XT1cIjRcIlxuICAgIFtkZWZhdWx0UGFkZGluZ3NdPVwiZmFsc2VcIlxuICAgIFtrYnFQb3BvdmVyUGxhY2VtZW50XT1cInBsYWNlbWVudHMuQm90dG9tTGVmdFwiXG4gICAgW2ticVBvcG92ZXJQbGFjZW1lbnRQcmlvcml0eV09XCJbcGxhY2VtZW50cy5Cb3R0b21MZWZ0LCBwbGFjZW1lbnRzLlRvcExlZnRdXCJcbiAgICAoa2JxUG9wb3ZlclZpc2libGVDaGFuZ2UpPVwiaXNMaXN0TW9kZSA9IHRydWVcIlxuPlxuICAgIDxzcGFuICNrYnFUaXRsZVRleHQgY2xhc3M9XCJrYnEtcGlwZV9fbmFtZVwiPnt7IGRhdGEubmFtZSB9fTwvc3Bhbj5cbiAgICA8c3BhbiAja2JxVGl0bGVUZXh0IGNsYXNzPVwia2JxLXBpcGVfX3ZhbHVlXCIgW2NsYXNzLmticS1waXBlX192YWx1ZV9lbXB0eV09XCIhZm9ybWF0dGVkVmFsdWVcIj5cbiAgICAgICAge3sgZm9ybWF0dGVkVmFsdWUgfX1cbiAgICA8L3NwYW4+XG48L2J1dHRvbj5cblxuQGlmIChzaG93UmVtb3ZlQnV0dG9uKSB7XG4gICAgPGticS1waXBlLWJ1dHRvbiAvPlxufVxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgQGlmIChpc0xpc3RNb2RlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZGF0ZS1saXN0XCI+XG4gICAgICAgICAgICA8a2JxLWxpc3Qtc2VsZWN0aW9uICNsaXN0U2VsZWN0aW9uIFthdXRvU2VsZWN0XT1cImZhbHNlXCIgW25nTW9kZWxdPVwiZGF0YS52YWx1ZT8ubmFtZVwiPlxuICAgICAgICAgICAgICAgIDxrYnEtbGlzdC1vcHRpb24gKGNsaWNrKT1cInNob3dQZXJpb2QoKVwiIChrZXlkb3duLmVudGVyKT1cInNob3dQZXJpb2QoKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBsb2NhbGVEYXRhLmRhdGVQaXBlPy5jdXN0b21QZXJpb2QgfX1cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJrYnEga2JxLWljb24ga2JxLWNoZXZyb24tcmlnaHRfMTYga2JxLWNvbnRyYXN0LWZhZGVcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9rYnEtbGlzdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIHZhbHVlczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICA8a2JxLWxpc3Qtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLm5hbWVcIiAoY2xpY2spPVwib25TZWxlY3QoaXRlbSlcIiAoa2V5ZG93bi5lbnRlcik9XCJvblNlbGVjdChpdGVtKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwva2JxLWxpc3Qtb3B0aW9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwva2JxLWxpc3Qtc2VsZWN0aW9uPlxuICAgICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1kYXRlLXBlcmlvZCBrYnEtZGF0ZXBpY2tlcl9fY29udGVudFwiIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICNyZXR1cm5CdXR0b25cbiAgICAgICAgICAgICAgICAgICAga2JxLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiY29sb3JzLlRoZW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW2ticVN0eWxlXT1cInN0eWxlcy5UcmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93TGlzdCgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLWNoZXZyb24tbGVmdF8xNlwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAge3sgbG9jYWxlRGF0YS5kYXRlUGlwZS5iYWNrVG9QZXJpb2RTZWxlY3Rpb24gfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8Zm9ybSBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9fY29udGVudCBrYnEtZm9ybS1ob3Jpem9udGFsXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJrYnEtZm9ybV9fbGFiZWxcIj57eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmN1c3RvbVBlcmlvZEZyb20gfX08L2xhYmVsPlxuXG4gICAgICAgICAgICAgICAgPGticS1mb3JtLWZpZWxkIGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19kYXRlIGticS1mb3JtX19jb250cm9sXCIgW2NsYXNzLmticS1mb2N1c2VkXT1cInNob3dTdGFydENhbGVuZGFyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ticUNhbGVuZGFyXT1cInN0YXJ0RGF0ZUNhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmVuZC52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXNpbik9XCJvbkZvY3VzU3RhcnRJbnB1dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnRhYik9XCJoaWRlQ2FsZW5kYXJzKClcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS1jYWxlbmRhci1vXzE2XCIga2JxU3VmZml4PjwvaT5cbiAgICAgICAgICAgICAgICA8L2ticS1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgPGticS1jYWxlbmRhclxuICAgICAgICAgICAgICAgICAgICAjc3RhcnREYXRlQ2FsZW5kYXJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmticS1jYWxlbmRhcl9oaWRkZW5dPVwiIXNob3dTdGFydENhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIm9uU2VsZWN0U3RhcnREYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJrYnEtZm9ybV9fbGFiZWxcIj57eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmN1c3RvbVBlcmlvZFRvIH19PC9sYWJlbD5cblxuICAgICAgICAgICAgICAgIDxrYnEtZm9ybS1maWVsZCBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9fZGF0ZSBrYnEtZm9ybV9fY29udHJvbFwiIFtjbGFzcy5rYnEtZm9jdXNlZF09XCJzaG93RW5kQ2FsZW5kYXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ticUNhbGVuZGFyXT1cImVuZERhdGVDYWxlbmRhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXNpbik9XCJvbkZvY3VzRW5kSW5wdXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi50YWIpPVwiaGlkZUNhbGVuZGFycygpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtY2FsZW5kYXItb18xNlwiIGticVN1ZmZpeD48L2k+XG4gICAgICAgICAgICAgICAgPC9rYnEtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgIEBpZiAoZm9ybUdyb3VwLmNvbnRyb2xzLnN0YXJ0LmludmFsaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGticS1oaW50IGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19oaW50XCIgW2NvbG9yXT1cIidlcnJvcidcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxvY2FsZURhdGEuZGF0ZVBpcGUuY3VzdG9tUGVyaW9kRXJyb3JIaW50IH19XG4gICAgICAgICAgICAgICAgICAgIDwva2JxLWhpbnQ+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPGticS1jYWxlbmRhclxuICAgICAgICAgICAgICAgICAgICAjZW5kRGF0ZUNhbGVuZGFyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5rYnEtY2FsZW5kYXJfaGlkZGVuXT1cIiFzaG93RW5kQ2FsZW5kYXJcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwib25TZWxlY3RFbmREYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Zvcm0+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX2Zvb3RlclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAga2JxLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiJ3RoZW1lJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtrYnFTdHlsZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXBwbHlQZXJpb2QoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBsb2NhbGVEYXRhLnBpcGUuYXBwbHlCdXR0b24gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImticS1idXR0b25faG90LWtleVwiPnt7IGlzTWFjID8gJ+KMmOKAiScgOiAnQ3RybCArICcgfX1FbnRlcjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3BpcGVUb29sdGlwPlxuICAgIDxkaXYgY2xhc3M9XCJrYnEtcGlwZS10b29sdGlwX19uYW1lIGticS10ZXh0LWNvbXBhY3RcIj57eyBkYXRhLm5hbWUgfX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwia2JxLXBpcGUtdG9vbHRpcF9fdmFsdWUga2JxLXRleHQtY29tcGFjdFwiPnt7IGZvcm1hdHRlZFZhbHVlIH19PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|