@koobiq/components 18.17.0 → 18.19.0
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/actions-panel/actions-panel-config.d.ts +79 -0
- package/actions-panel/actions-panel-container.d.ts +90 -0
- package/actions-panel/actions-panel-container.scss +33 -0
- package/actions-panel/actions-panel-ref.d.ts +31 -0
- package/actions-panel/actions-panel-tokens.scss +13 -0
- package/actions-panel/actions-panel.d.ts +144 -0
- package/actions-panel/index.d.ts +5 -0
- package/actions-panel/module.d.ts +7 -0
- package/core/animation/animation.d.ts +26 -0
- package/core/form-field/form-field-ref.d.ts +4 -0
- package/core/locales/en-US.d.ts +45 -0
- package/core/locales/es-LA.d.ts +45 -0
- package/core/locales/fa-IR.d.ts +45 -0
- package/core/locales/locale-service.d.ts +315 -0
- package/core/locales/pt-BR.d.ts +45 -0
- package/core/locales/ru-RU.d.ts +45 -0
- package/core/locales/tk-TM.d.ts +45 -0
- package/core/locales/types.d.ts +6 -0
- package/core/locales/zh-CN.d.ts +45 -0
- package/core/option/option.d.ts +3 -1
- package/datepicker/calendar.component.d.ts +9 -0
- package/datepicker/datepicker-input.directive.d.ts +5 -1
- package/dl/dl.component.d.ts +3 -4
- package/dropdown/_dropdown-theme.scss +9 -10
- package/dropdown/dropdown-tokens.scss +1 -0
- package/dropdown/dropdown.component.d.ts +1 -1
- package/dropdown/dropdown.scss +5 -0
- package/dropdown/dropdown.types.d.ts +3 -1
- package/esm2022/accordion/accordion-trigger.component.mjs +1 -1
- package/esm2022/actions-panel/actions-panel-config.mjs +55 -0
- package/esm2022/actions-panel/actions-panel-container.mjs +217 -0
- package/esm2022/actions-panel/actions-panel-ref.mjs +62 -0
- package/esm2022/actions-panel/actions-panel.mjs +220 -0
- package/esm2022/actions-panel/index.mjs +6 -0
- package/esm2022/actions-panel/koobiq-components-actions-panel.mjs +5 -0
- package/esm2022/actions-panel/module.mjs +21 -0
- package/esm2022/breadcrumbs/breadcrumbs.mjs +2 -2
- package/esm2022/code-block/code-block.mjs +1 -1
- package/esm2022/core/animation/animation.mjs +29 -1
- package/esm2022/core/common-behaviors/common-module.mjs +2 -2
- package/esm2022/core/form-field/form-field-ref.mjs +1 -1
- package/esm2022/core/locales/en-US.mjs +46 -1
- package/esm2022/core/locales/es-LA.mjs +46 -1
- package/esm2022/core/locales/fa-IR.mjs +46 -1
- package/esm2022/core/locales/pt-BR.mjs +46 -1
- package/esm2022/core/locales/ru-RU.mjs +46 -1
- package/esm2022/core/locales/tk-TM.mjs +46 -1
- package/esm2022/core/locales/types.mjs +1 -1
- package/esm2022/core/locales/zh-CN.mjs +46 -1
- package/esm2022/core/option/option.mjs +10 -3
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/datepicker/calendar-header.component.mjs +1 -1
- package/esm2022/datepicker/calendar.component.mjs +20 -2
- package/esm2022/datepicker/datepicker-input.directive.mjs +22 -11
- package/esm2022/datepicker/datepicker-toggle.component.mjs +1 -1
- package/esm2022/dl/dl.component.mjs +8 -7
- package/esm2022/dropdown/dropdown-item.component.mjs +1 -1
- package/esm2022/dropdown/dropdown-trigger.directive.mjs +6 -1
- package/esm2022/dropdown/dropdown.component.mjs +4 -4
- package/esm2022/dropdown/dropdown.types.mjs +1 -1
- package/esm2022/file-upload/multiple-file-upload.component.mjs +1 -1
- package/esm2022/file-upload/single-file-upload.component.mjs +1 -1
- package/esm2022/filter-bar/filter-bar-button.mjs +30 -0
- package/esm2022/filter-bar/filter-bar.mjs +168 -0
- package/esm2022/filter-bar/filter-bar.module.mjs +65 -0
- package/esm2022/filter-bar/filter-bar.types.mjs +13 -0
- package/esm2022/filter-bar/filter-refresher.mjs +34 -0
- package/esm2022/filter-bar/filter-reset.mjs +38 -0
- package/esm2022/filter-bar/filter-search.mjs +132 -0
- package/esm2022/filter-bar/filters.mjs +225 -0
- package/esm2022/filter-bar/index.mjs +2 -0
- package/esm2022/filter-bar/koobiq-components-filter-bar.mjs +5 -0
- package/esm2022/filter-bar/pipe-add.mjs +129 -0
- package/esm2022/filter-bar/pipe.directive.mjs +55 -0
- package/esm2022/filter-bar/pipes/base-pipe.mjs +106 -0
- package/esm2022/filter-bar/pipes/pipe-button.mjs +59 -0
- package/esm2022/filter-bar/pipes/pipe-date.mjs +171 -0
- package/esm2022/filter-bar/pipes/pipe-datetime.mjs +172 -0
- package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +96 -0
- package/esm2022/filter-bar/pipes/pipe-select.mjs +88 -0
- package/esm2022/filter-bar/pipes/pipe-state.mjs +45 -0
- package/esm2022/filter-bar/pipes/pipe-text.mjs +89 -0
- package/esm2022/filter-bar/pipes/pipe-title.mjs +96 -0
- package/esm2022/filter-bar/public-api.mjs +20 -0
- package/esm2022/form-field/cleaner.mjs +1 -1
- package/esm2022/form-field/form-field.mjs +13 -6
- package/esm2022/form-field/password-hint.mjs +1 -1
- package/esm2022/form-field/password-toggle.mjs +1 -1
- package/esm2022/form-field/stepper.mjs +1 -1
- package/esm2022/icon/icon-button.component.mjs +9 -9
- package/esm2022/icon/icon-item.component.mjs +10 -10
- package/esm2022/icon/icon.component.mjs +9 -12
- package/esm2022/list/list-selection.component.mjs +4 -4
- package/esm2022/modal/modal.component.mjs +1 -1
- package/esm2022/modal/modal.directive.mjs +1 -1
- package/esm2022/navbar/navbar-item.component.mjs +2 -2
- package/esm2022/overflow-items/overflow-items.mjs +151 -195
- package/esm2022/popover/popover.component.mjs +30 -10
- package/esm2022/select/select.component.mjs +3 -3
- package/esm2022/sidepanel/sidepanel-directives.mjs +2 -2
- package/esm2022/tabs/tab-header.component.mjs +1 -1
- package/esm2022/tabs/tab-nav-bar.mjs +2 -2
- package/esm2022/textarea/textarea.component.mjs +9 -5
- package/esm2022/timezone/timezone-select.component.mjs +2 -2
- package/esm2022/title/title.directive.mjs +12 -5
- package/esm2022/toast/toast.component.mjs +2 -2
- package/esm2022/tree/toggle.mjs +1 -1
- package/esm2022/tree/tree-option.component.mjs +3 -2
- package/esm2022/tree/tree-selection.component.mjs +4 -2
- package/esm2022/tree-select/tree-select.component.mjs +6 -4
- package/fesm2022/koobiq-components-accordion.mjs +1 -1
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +567 -0
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -0
- package/fesm2022/koobiq-components-breadcrumbs.mjs +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +1 -1
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +355 -5
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +40 -12
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +7 -6
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +9 -4
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +2 -2
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +1596 -0
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -0
- package/fesm2022/koobiq-components-form-field.mjs +16 -9
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +23 -26
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +3 -3
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +2 -2
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +2 -2
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +152 -196
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +29 -9
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +2 -2
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +2 -2
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +8 -4
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +2 -2
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +11 -4
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +1 -1
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +5 -3
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +6 -3
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/filter-bar/_filter-bar-theme.scss +61 -0
- package/filter-bar/filter-bar-button.d.ts +8 -0
- package/filter-bar/filter-bar.d.ts +55 -0
- package/filter-bar/filter-bar.module.d.ts +17 -0
- package/filter-bar/filter-bar.scss +60 -0
- package/filter-bar/filter-bar.types.d.ts +97 -0
- package/filter-bar/filter-refresher.d.ts +5 -0
- package/filter-bar/filter-refresher.scss +6 -0
- package/filter-bar/filter-reset.d.ts +11 -0
- package/filter-bar/filter-search.d.ts +25 -0
- package/filter-bar/filter-search.scss +14 -0
- package/filter-bar/filters.d.ts +72 -0
- package/filter-bar/filters.scss +92 -0
- package/filter-bar/index.d.ts +1 -0
- package/filter-bar/pipe-add.d.ts +18 -0
- package/filter-bar/pipe-add.scss +5 -0
- package/filter-bar/pipe.directive.d.ts +13 -0
- package/filter-bar/pipes/base-pipe.d.ts +40 -0
- package/filter-bar/pipes/base-pipe.scss +117 -0
- package/filter-bar/pipes/pipe-button.d.ts +13 -0
- package/filter-bar/pipes/pipe-button.scss +5 -0
- package/filter-bar/pipes/pipe-date.d.ts +41 -0
- package/filter-bar/pipes/pipe-date.scss +132 -0
- package/filter-bar/pipes/pipe-datetime.d.ts +41 -0
- package/filter-bar/pipes/pipe-multi-select.d.ts +22 -0
- package/filter-bar/pipes/pipe-multiselect.scss +15 -0
- package/filter-bar/pipes/pipe-select.d.ts +21 -0
- package/filter-bar/pipes/pipe-select.scss +3 -0
- package/filter-bar/pipes/pipe-state.d.ts +14 -0
- package/filter-bar/pipes/pipe-text.d.ts +19 -0
- package/filter-bar/pipes/pipe-title.d.ts +25 -0
- package/filter-bar/public-api.d.ts +19 -0
- package/form-field/form-field.d.ts +6 -1
- package/form-field/form-field.scss +1 -0
- package/icon/icon-button.component.d.ts +5 -3
- package/icon/icon-item.component.d.ts +5 -3
- package/icon/icon.component.d.ts +5 -4
- package/overflow-items/overflow-items.d.ts +68 -82
- package/package.json +18 -6
- package/popover/popover.component.d.ts +6 -1
- package/schematics/ng-add/index.js +5 -5
- package/select/_select-theme.scss +9 -1
- package/textarea/textarea.component.d.ts +2 -1
- package/title/title.directive.d.ts +2 -0
- package/tree-select/_tree-select-theme.scss +9 -1
- package/tree-select/tree-select.component.d.ts +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { CdkTrapFocus } from '@angular/cdk/a11y';
|
|
2
2
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
3
3
|
import { Overlay } from '@angular/cdk/overlay';
|
|
4
|
-
import { ChangeDetectionStrategy, Component, DestroyRef, Directive, ElementRef, EventEmitter, InjectionToken, Input, Output, ViewChild, ViewEncapsulation, inject } from '@angular/core';
|
|
4
|
+
import { ChangeDetectionStrategy, Component, DestroyRef, Directive, ElementRef, EventEmitter, InjectionToken, Input, Output, ViewChild, ViewEncapsulation, booleanAttribute, inject, numberAttribute } from '@angular/core';
|
|
5
5
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
|
-
import { KbqComponentColors, KbqPopUp, KbqPopUpTrigger, POSITION_TO_CSS_MAP, PopUpPlacements, PopUpSizes, PopUpTriggers } from '@koobiq/components/core';
|
|
6
|
+
import { KbqComponentColors, KbqPopUp, KbqPopUpTrigger, POSITION_TO_CSS_MAP, PopUpPlacements, PopUpSizes, PopUpTriggers, applyPopupMargins, defaultOffsetY } from '@koobiq/components/core';
|
|
7
7
|
import { NEVER, fromEvent, merge } from 'rxjs';
|
|
8
8
|
import { debounceTime } from 'rxjs/operators';
|
|
9
9
|
import { kbqPopoverAnimations } from './popover-animations';
|
|
@@ -35,6 +35,11 @@ export class KbqPopoverComponent extends KbqPopUp {
|
|
|
35
35
|
this.checkContentOverflow(event.target);
|
|
36
36
|
});
|
|
37
37
|
this.cdkTrapFocus.focusTrap.focusFirstTabbableElement();
|
|
38
|
+
this.visibleChange.subscribe((state) => {
|
|
39
|
+
if (this.offset !== null && state) {
|
|
40
|
+
applyPopupMargins(this.renderer, this.elementRef.nativeElement, this.prefix, `${this.offset.toString()}px`);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
38
43
|
}
|
|
39
44
|
onContentChange() {
|
|
40
45
|
this.checkContentOverflow(this.popoverContent.nativeElement);
|
|
@@ -56,16 +61,19 @@ export class KbqPopoverComponent extends KbqPopUp {
|
|
|
56
61
|
this.trigger.focus();
|
|
57
62
|
}
|
|
58
63
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KbqPopoverComponent, selector: "kbq-popover-component", host: { listeners: { "keydown.esc": "onEscape()" } }, viewQueries: [{ propertyName: "popoverContent", first: true, predicate: ["popoverContent"], descendants: true }, { propertyName: "cdkTrapFocus", first: true, predicate: CdkTrapFocus, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"kbq-popover\"\n [cdkTrapFocus]=\"isTrapFocus\"\n [ngClass]=\"classMap\"\n (@state.done)=\"animationDone($event)\"\n (@state.start)=\"animationStart()\"\n [@state]=\"visibility\"\n>\n <div\n class=\"kbq-popover__container\"\n [class.kbq-popover__container_with-footer]=\"footer\"\n [class.kbq-popover__container_with-header]=\"header\"\n >\n @if (header) {\n <div\n class=\"kbq-popover__header\"\n [class.kbq-popover__header_top-overflow]=\"isContentTopOverflow\"\n [class.kbq-popover__header_with-close-button]=\"hasCloseButton\"\n >\n @if (isTemplateRef(header)) {\n <ng-container [ngTemplateOutlet]=\"$any(header)\" />\n }\n @if (!isTemplateRef(header)) {\n <div class=\"kbq-popover__header-text\">{{ header }}</div>\n }\n </div>\n }\n\n @if (content) {\n <div #popoverContent class=\"kbq-popover__content kbq-scrollbar\" (cdkObserveContent)=\"onContentChange()\">\n @if (hasCloseButton && !header) {\n <div class=\"kbq-popover__close-container\">\n <ng-container *ngTemplateOutlet=\"closeButton\" />\n </div>\n }\n @if (isTemplateRef(content)) {\n <ng-container [ngTemplateOutlet]=\"$any(content)\" />\n }\n @if (!isTemplateRef(content)) {\n <div>{{ content }}</div>\n }\n </div>\n }\n\n @if (footer) {\n <div class=\"kbq-popover__footer\" [class.kbq-popover__footer_bottom-overflow]=\"isContentBottomOverflow\">\n @if (isTemplateRef(footer)) {\n <ng-container [ngTemplateOutlet]=\"$any(footer)\" />\n }\n @if (!isTemplateRef(footer)) {\n <div>{{ footer }}</div>\n }\n </div>\n }\n </div>\n\n @if (hasCloseButton && header) {\n <div class=\"kbq-popover__close-container\">\n <ng-container *ngTemplateOutlet=\"closeButton\" />\n </div>\n }\n\n <ng-template #closeButton>\n <div class=\"kbq-popover__close\">\n <button kbq-button class=\"kbq-button_transparent\" [color]=\"componentColors.Contrast\" (click)=\"hide(0)\">\n <i kbq-icon=\"kbq-xmark_16\" [color]=\"componentColors.Contrast\"></i>\n </button>\n </div>\n </ng-template>\n\n <div class=\"kbq-popover__arrow\"></div>\n</div>\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-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-popover{position:relative;border-radius:var(--kbq-popover-size-container-border-radius);box-sizing:border-box;list-style:none;white-space:pre-line;z-index:1}.kbq-popover.kbq-popover_small{max-width:var(--kbq-popover-size-container-width-small)}.kbq-popover.kbq-popover_medium{max-width:var(--kbq-popover-size-container-width-medium)}.kbq-popover.kbq-popover_large{max-width:var(--kbq-popover-size-container-width-large)}.kbq-popover.kbq-popover_placement-top,.kbq-popover.kbq-popover_placement-top-left,.kbq-popover.kbq-popover_placement-top-right{margin-bottom:8px}.kbq-popover.kbq-popover_placement-right,.kbq-popover.kbq-popover_placement-right-top,.kbq-popover.kbq-popover_placement-right-bottom{margin-left:8px}.kbq-popover.kbq-popover_placement-bottom,.kbq-popover.kbq-popover_placement-bottom-left,.kbq-popover.kbq-popover_placement-bottom-right{margin-top:8px}.kbq-popover.kbq-popover_placement-left,.kbq-popover.kbq-popover_placement-left-top,.kbq-popover.kbq-popover_placement-left-bottom{margin-right:8px}.kbq-popover__content{overflow-y:auto;padding:var(--kbq-popover-size-content-padding-top) var(--kbq-popover-size-content-padding-horizontal) var(--kbq-popover-size-content-padding-bottom)}.kbq-popover__container{overflow:hidden;display:flex;flex-direction:column;max-height:var(--kbq-popover-size-container-max-height);border-radius:var(--kbq-popover-size-container-border-radius)}.kbq-popover__container.kbq-popover__container_with-header .kbq-popover__content{padding-top:var(--kbq-size-s)}.kbq-popover__container.kbq-popover__container_with-footer .kbq-popover__content{padding-bottom:var(--kbq-size-s)}.kbq-popover__content .kbq-popover__close-container{display:flex;justify-content:flex-end;height:0}.kbq-popover__content .kbq-popover__close-container .kbq-popover__close{top:auto;right:auto;transform:translateY(-50%) translate(50%)}.kbq-popover__header{display:flex;align-items:center;overflow:hidden;padding:var(--kbq-popover-size-header-padding-top) var(--kbq-popover-size-header-padding-horizontal) var(--kbq-popover-size-header-padding-bottom) var(--kbq-popover-size-header-padding-horizontal)}.kbq-popover__header .kbq-popover__header-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-popover__header_top-overflow{position:relative;z-index:2;box-shadow:var(--kbq-shadow-overflow-normal-bottom)}.kbq-popover__header_with-close-button{padding-right:var(--kbq-size-4xl)}.kbq-popover__footer{padding:var(--kbq-popover-size-footer-padding-vertical) var(--kbq-popover-size-footer-padding-horizontal)}.kbq-popover__footer_bottom-overflow{position:relative;z-index:2;box-shadow:var(--kbq-shadow-overflow-normal-top)}.kbq-popover__arrow{position:absolute;z-index:-1;width:12px;height:12px;transform:rotate(45deg)}.kbq-popover_placement-top .kbq-popover__arrow{bottom:-5.5px;left:50%;margin-left:-5.5px}.kbq-popover_placement-top-left .kbq-popover__arrow{bottom:-5.5px;left:9px}.kbq-popover_placement-top-right .kbq-popover__arrow{bottom:-5.5px;right:9px}.kbq-popover_placement-right .kbq-popover__arrow{left:-5.5px;top:50%;margin-top:-5.5px}.kbq-popover_placement-right-top .kbq-popover__arrow{left:-5.5px;top:9px}.kbq-popover_placement-right-bottom .kbq-popover__arrow{left:-5.5px;bottom:9px}.kbq-popover_placement-left .kbq-popover__arrow{right:-5.5px;top:50%;margin-top:-5.5px}.kbq-popover_placement-left-top .kbq-popover__arrow{right:-5.5px;top:9px}.kbq-popover_placement-left-bottom .kbq-popover__arrow{right:-5.5px;bottom:9px}.kbq-popover_placement-bottom .kbq-popover__arrow{top:-5.5px;left:50%;margin-left:-5.5px}.kbq-popover_placement-bottom-left .kbq-popover__arrow{top:-5.5px;left:9px}.kbq-popover_placement-bottom-right .kbq-popover__arrow{top:-5.5px;right:9px}.kbq-popover__close{position:absolute;z-index:2;top:var(--kbq-size-s);right:var(--kbq-size-s);border-radius:var(--kbq-size-border-radius)}.kbq-popover{box-shadow:var(--kbq-popover-container-shadow)}.kbq-popover__container{background:var(--kbq-popover-container-background)}.kbq-popover__arrow{box-shadow:var(--kbq-popover-container-shadow);background:var(--kbq-popover-container-background)}.kbq-popover__close{background-color:var(--kbq-background-overlay-inverse)}.kbq-popover__header{color:var(--kbq-popover-header-text-color)}.kbq-popover__content{color:var(--kbq-popover-content-text-color)}.kbq-popover__header{font-size:var(--kbq-typography-subheading-font-size);font-weight:var(--kbq-typography-subheading-font-weight);line-height:var(--kbq-typography-subheading-line-height);font-family:var(--kbq-typography-subheading-font-family);text-transform:var(--kbq-typography-subheading-text-transform);font-feature-settings:var(--kbq-typography-subheading-font-feature-settings);letter-spacing:var(--kbq-typography-subheading-letter-spacing)}.kbq-popover__content{font-size:var(--kbq-typography-text-normal-font-size);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", ".kbq-popover{--kbq-popover-size-container-width-small: 200px;--kbq-popover-size-container-width-medium: 400px;--kbq-popover-size-container-width-large: 640px;--kbq-popover-size-container-border-radius: var(--kbq-size-m);--kbq-popover-size-container-max-height: 480px;--kbq-popover-size-close-button-width: 32px;--kbq-popover-size-close-button-margin-right: -16px;--kbq-popover-size-close-button-margin-top: -10px;--kbq-popover-size-header-padding-horizontal: var(--kbq-size-xxl);--kbq-popover-size-header-padding-top: var(--kbq-size-l);--kbq-popover-size-header-padding-bottom: var(--kbq-size-xs);--kbq-popover-size-content-padding-top: var(--kbq-size-xxl);--kbq-popover-size-content-padding-bottom: var(--kbq-size-3xl);--kbq-popover-size-content-padding-horizontal: var(--kbq-size-xxl);--kbq-popover-size-content-padding-with-header-top: var(--kbq-size-s);--kbq-popover-size-content-padding-with-footer-bottom: var(--kbq-size-s);--kbq-popover-size-footer-padding-vertical: var(--kbq-size-l);--kbq-popover-size-footer-padding-horizontal: var(--kbq-size-xxl);--kbq-popover-container-background: var(--kbq-background-card);--kbq-popover-container-shadow: var(--kbq-shadow-popup);--kbq-popover-header-text-color: var(--kbq-foreground-contrast);--kbq-popover-header-scroll-shadow: var(--kbq-shadow-overflow-normal-bottom);--kbq-popover-content-text-color: var(--kbq-foreground-contrast);--kbq-popover-footer-scroll-shadow: var(--kbq-shadow-overflow-normal-top)}\n"], dependencies: [{ kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "directive", type: i4.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [kbqPopoverAnimations.popoverState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
64
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KbqPopoverComponent, selector: "kbq-popover-component", host: { listeners: { "keydown.esc": "onEscape()" } }, viewQueries: [{ propertyName: "popoverContent", first: true, predicate: ["popoverContent"], descendants: true }, { propertyName: "elementRef", first: true, predicate: ["popover"], descendants: true }, { propertyName: "cdkTrapFocus", first: true, predicate: CdkTrapFocus, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n #popover\n class=\"kbq-popover\"\n [cdkTrapFocus]=\"isTrapFocus\"\n [ngClass]=\"classMap\"\n (@state.done)=\"animationDone($event)\"\n (@state.start)=\"animationStart()\"\n [@state]=\"visibility\"\n>\n <div\n class=\"kbq-popover__container\"\n [class.kbq-popover__container_with-footer]=\"footer\"\n [class.kbq-popover__container_with-header]=\"header\"\n >\n @if (header) {\n <div\n class=\"kbq-popover__header\"\n [class.kbq-popover__header_top-overflow]=\"isContentTopOverflow\"\n [class.kbq-popover__header_with-close-button]=\"hasCloseButton\"\n >\n @if (isTemplateRef(header)) {\n <ng-container [ngTemplateOutlet]=\"$any(header)\" />\n }\n @if (!isTemplateRef(header)) {\n <div class=\"kbq-popover__header-text\">{{ header }}</div>\n }\n </div>\n }\n\n @if (content) {\n <div #popoverContent class=\"kbq-popover__content kbq-scrollbar\" (cdkObserveContent)=\"onContentChange()\">\n @if (hasCloseButton && !header) {\n <div class=\"kbq-popover__close-container\">\n <ng-container *ngTemplateOutlet=\"closeButton\" />\n </div>\n }\n @if (isTemplateRef(content)) {\n <ng-container [ngTemplateOutlet]=\"$any(content)\" />\n }\n @if (!isTemplateRef(content)) {\n <div>{{ content }}</div>\n }\n </div>\n }\n\n @if (footer) {\n <div class=\"kbq-popover__footer\" [class.kbq-popover__footer_bottom-overflow]=\"isContentBottomOverflow\">\n @if (isTemplateRef(footer)) {\n <ng-container [ngTemplateOutlet]=\"$any(footer)\" />\n }\n @if (!isTemplateRef(footer)) {\n <div>{{ footer }}</div>\n }\n </div>\n }\n </div>\n\n @if (hasCloseButton && header) {\n <div class=\"kbq-popover__close-container\">\n <ng-container *ngTemplateOutlet=\"closeButton\" />\n </div>\n }\n\n <ng-template #closeButton>\n <div class=\"kbq-popover__close\">\n <button kbq-button class=\"kbq-button_transparent\" [color]=\"componentColors.Contrast\" (click)=\"hide(0)\">\n <i kbq-icon=\"kbq-xmark_16\" [color]=\"componentColors.Contrast\"></i>\n </button>\n </div>\n </ng-template>\n\n @if (arrow) {\n <div class=\"kbq-popover__arrow\"></div>\n }\n</div>\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-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-popover{position:relative;border-radius:var(--kbq-popover-size-container-border-radius);box-sizing:border-box;list-style:none;white-space:pre-line;z-index:1}.kbq-popover.kbq-popover_small{max-width:var(--kbq-popover-size-container-width-small)}.kbq-popover.kbq-popover_medium{max-width:var(--kbq-popover-size-container-width-medium)}.kbq-popover.kbq-popover_large{max-width:var(--kbq-popover-size-container-width-large)}.kbq-popover.kbq-popover_placement-top,.kbq-popover.kbq-popover_placement-top-left,.kbq-popover.kbq-popover_placement-top-right{margin-bottom:8px}.kbq-popover.kbq-popover_placement-right,.kbq-popover.kbq-popover_placement-right-top,.kbq-popover.kbq-popover_placement-right-bottom{margin-left:8px}.kbq-popover.kbq-popover_placement-bottom,.kbq-popover.kbq-popover_placement-bottom-left,.kbq-popover.kbq-popover_placement-bottom-right{margin-top:8px}.kbq-popover.kbq-popover_placement-left,.kbq-popover.kbq-popover_placement-left-top,.kbq-popover.kbq-popover_placement-left-bottom{margin-right:8px}.kbq-popover__content{overflow-y:auto;padding:var(--kbq-popover-size-content-padding-top) var(--kbq-popover-size-content-padding-horizontal) var(--kbq-popover-size-content-padding-bottom)}.kbq-popover__container{overflow:hidden;display:flex;flex-direction:column;max-height:var(--kbq-popover-size-container-max-height);border-radius:var(--kbq-popover-size-container-border-radius)}.kbq-popover__container.kbq-popover__container_with-header .kbq-popover__content{padding-top:var(--kbq-size-s)}.kbq-popover__container.kbq-popover__container_with-footer .kbq-popover__content{padding-bottom:var(--kbq-size-s)}.kbq-popover__content .kbq-popover__close-container{display:flex;justify-content:flex-end;height:0}.kbq-popover__content .kbq-popover__close-container .kbq-popover__close{top:auto;right:auto;transform:translateY(-50%) translate(50%)}.kbq-popover__header{display:flex;align-items:center;overflow:hidden;padding:var(--kbq-popover-size-header-padding-top) var(--kbq-popover-size-header-padding-horizontal) var(--kbq-popover-size-header-padding-bottom) var(--kbq-popover-size-header-padding-horizontal)}.kbq-popover__header .kbq-popover__header-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-popover__header_top-overflow{position:relative;z-index:2;box-shadow:var(--kbq-shadow-overflow-normal-bottom)}.kbq-popover__header_with-close-button{padding-right:var(--kbq-size-4xl)}.kbq-popover__footer{padding:var(--kbq-popover-size-footer-padding-vertical) var(--kbq-popover-size-footer-padding-horizontal)}.kbq-popover__footer_bottom-overflow{position:relative;z-index:2;box-shadow:var(--kbq-shadow-overflow-normal-top)}.kbq-popover__arrow{position:absolute;z-index:-1;width:12px;height:12px;transform:rotate(45deg)}.kbq-popover_placement-top .kbq-popover__arrow{bottom:-5.5px;left:50%;margin-left:-5.5px}.kbq-popover_placement-top-left .kbq-popover__arrow{bottom:-5.5px;left:9px}.kbq-popover_placement-top-right .kbq-popover__arrow{bottom:-5.5px;right:9px}.kbq-popover_placement-right .kbq-popover__arrow{left:-5.5px;top:50%;margin-top:-5.5px}.kbq-popover_placement-right-top .kbq-popover__arrow{left:-5.5px;top:9px}.kbq-popover_placement-right-bottom .kbq-popover__arrow{left:-5.5px;bottom:9px}.kbq-popover_placement-left .kbq-popover__arrow{right:-5.5px;top:50%;margin-top:-5.5px}.kbq-popover_placement-left-top .kbq-popover__arrow{right:-5.5px;top:9px}.kbq-popover_placement-left-bottom .kbq-popover__arrow{right:-5.5px;bottom:9px}.kbq-popover_placement-bottom .kbq-popover__arrow{top:-5.5px;left:50%;margin-left:-5.5px}.kbq-popover_placement-bottom-left .kbq-popover__arrow{top:-5.5px;left:9px}.kbq-popover_placement-bottom-right .kbq-popover__arrow{top:-5.5px;right:9px}.kbq-popover__close{position:absolute;z-index:2;top:var(--kbq-size-s);right:var(--kbq-size-s);border-radius:var(--kbq-size-border-radius)}.kbq-popover{box-shadow:var(--kbq-popover-container-shadow)}.kbq-popover__container{background:var(--kbq-popover-container-background)}.kbq-popover__arrow{box-shadow:var(--kbq-popover-container-shadow);background:var(--kbq-popover-container-background)}.kbq-popover__close{background-color:var(--kbq-background-overlay-inverse)}.kbq-popover__header{color:var(--kbq-popover-header-text-color)}.kbq-popover__content{color:var(--kbq-popover-content-text-color)}.kbq-popover__header{font-size:var(--kbq-typography-subheading-font-size);font-weight:var(--kbq-typography-subheading-font-weight);line-height:var(--kbq-typography-subheading-line-height);font-family:var(--kbq-typography-subheading-font-family);text-transform:var(--kbq-typography-subheading-text-transform);font-feature-settings:var(--kbq-typography-subheading-font-feature-settings);letter-spacing:var(--kbq-typography-subheading-letter-spacing)}.kbq-popover__content{font-size:var(--kbq-typography-text-normal-font-size);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", ".kbq-popover{--kbq-popover-size-container-width-small: 200px;--kbq-popover-size-container-width-medium: 400px;--kbq-popover-size-container-width-large: 640px;--kbq-popover-size-container-border-radius: var(--kbq-size-m);--kbq-popover-size-container-max-height: 480px;--kbq-popover-size-close-button-width: 32px;--kbq-popover-size-close-button-margin-right: -16px;--kbq-popover-size-close-button-margin-top: -10px;--kbq-popover-size-header-padding-horizontal: var(--kbq-size-xxl);--kbq-popover-size-header-padding-top: var(--kbq-size-l);--kbq-popover-size-header-padding-bottom: var(--kbq-size-xs);--kbq-popover-size-content-padding-top: var(--kbq-size-xxl);--kbq-popover-size-content-padding-bottom: var(--kbq-size-3xl);--kbq-popover-size-content-padding-horizontal: var(--kbq-size-xxl);--kbq-popover-size-content-padding-with-header-top: var(--kbq-size-s);--kbq-popover-size-content-padding-with-footer-bottom: var(--kbq-size-s);--kbq-popover-size-footer-padding-vertical: var(--kbq-size-l);--kbq-popover-size-footer-padding-horizontal: var(--kbq-size-xxl);--kbq-popover-container-background: var(--kbq-background-card);--kbq-popover-container-shadow: var(--kbq-shadow-popup);--kbq-popover-header-text-color: var(--kbq-foreground-contrast);--kbq-popover-header-scroll-shadow: var(--kbq-shadow-overflow-normal-bottom);--kbq-popover-content-text-color: var(--kbq-foreground-contrast);--kbq-popover-footer-scroll-shadow: var(--kbq-shadow-overflow-normal-top)}\n"], dependencies: [{ kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor", "kbq-icon"] }, { kind: "directive", type: i4.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [kbqPopoverAnimations.popoverState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
60
65
|
}
|
|
61
66
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqPopoverComponent, decorators: [{
|
|
62
67
|
type: Component,
|
|
63
68
|
args: [{ selector: 'kbq-popover-component', preserveWhitespaces: false, host: {
|
|
64
69
|
'(keydown.esc)': 'onEscape()'
|
|
65
|
-
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [kbqPopoverAnimations.popoverState], template: "<div\n class=\"kbq-popover\"\n [cdkTrapFocus]=\"isTrapFocus\"\n [ngClass]=\"classMap\"\n (@state.done)=\"animationDone($event)\"\n (@state.start)=\"animationStart()\"\n [@state]=\"visibility\"\n>\n <div\n class=\"kbq-popover__container\"\n [class.kbq-popover__container_with-footer]=\"footer\"\n [class.kbq-popover__container_with-header]=\"header\"\n >\n @if (header) {\n <div\n class=\"kbq-popover__header\"\n [class.kbq-popover__header_top-overflow]=\"isContentTopOverflow\"\n [class.kbq-popover__header_with-close-button]=\"hasCloseButton\"\n >\n @if (isTemplateRef(header)) {\n <ng-container [ngTemplateOutlet]=\"$any(header)\" />\n }\n @if (!isTemplateRef(header)) {\n <div class=\"kbq-popover__header-text\">{{ header }}</div>\n }\n </div>\n }\n\n @if (content) {\n <div #popoverContent class=\"kbq-popover__content kbq-scrollbar\" (cdkObserveContent)=\"onContentChange()\">\n @if (hasCloseButton && !header) {\n <div class=\"kbq-popover__close-container\">\n <ng-container *ngTemplateOutlet=\"closeButton\" />\n </div>\n }\n @if (isTemplateRef(content)) {\n <ng-container [ngTemplateOutlet]=\"$any(content)\" />\n }\n @if (!isTemplateRef(content)) {\n <div>{{ content }}</div>\n }\n </div>\n }\n\n @if (footer) {\n <div class=\"kbq-popover__footer\" [class.kbq-popover__footer_bottom-overflow]=\"isContentBottomOverflow\">\n @if (isTemplateRef(footer)) {\n <ng-container [ngTemplateOutlet]=\"$any(footer)\" />\n }\n @if (!isTemplateRef(footer)) {\n <div>{{ footer }}</div>\n }\n </div>\n }\n </div>\n\n @if (hasCloseButton && header) {\n <div class=\"kbq-popover__close-container\">\n <ng-container *ngTemplateOutlet=\"closeButton\" />\n </div>\n }\n\n <ng-template #closeButton>\n <div class=\"kbq-popover__close\">\n <button kbq-button class=\"kbq-button_transparent\" [color]=\"componentColors.Contrast\" (click)=\"hide(0)\">\n <i kbq-icon=\"kbq-xmark_16\" [color]=\"componentColors.Contrast\"></i>\n </button>\n </div>\n </ng-template>\n\n <div class=\"kbq-popover__arrow\"></div>\n</div>\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-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-popover{position:relative;border-radius:var(--kbq-popover-size-container-border-radius);box-sizing:border-box;list-style:none;white-space:pre-line;z-index:1}.kbq-popover.kbq-popover_small{max-width:var(--kbq-popover-size-container-width-small)}.kbq-popover.kbq-popover_medium{max-width:var(--kbq-popover-size-container-width-medium)}.kbq-popover.kbq-popover_large{max-width:var(--kbq-popover-size-container-width-large)}.kbq-popover.kbq-popover_placement-top,.kbq-popover.kbq-popover_placement-top-left,.kbq-popover.kbq-popover_placement-top-right{margin-bottom:8px}.kbq-popover.kbq-popover_placement-right,.kbq-popover.kbq-popover_placement-right-top,.kbq-popover.kbq-popover_placement-right-bottom{margin-left:8px}.kbq-popover.kbq-popover_placement-bottom,.kbq-popover.kbq-popover_placement-bottom-left,.kbq-popover.kbq-popover_placement-bottom-right{margin-top:8px}.kbq-popover.kbq-popover_placement-left,.kbq-popover.kbq-popover_placement-left-top,.kbq-popover.kbq-popover_placement-left-bottom{margin-right:8px}.kbq-popover__content{overflow-y:auto;padding:var(--kbq-popover-size-content-padding-top) var(--kbq-popover-size-content-padding-horizontal) var(--kbq-popover-size-content-padding-bottom)}.kbq-popover__container{overflow:hidden;display:flex;flex-direction:column;max-height:var(--kbq-popover-size-container-max-height);border-radius:var(--kbq-popover-size-container-border-radius)}.kbq-popover__container.kbq-popover__container_with-header .kbq-popover__content{padding-top:var(--kbq-size-s)}.kbq-popover__container.kbq-popover__container_with-footer .kbq-popover__content{padding-bottom:var(--kbq-size-s)}.kbq-popover__content .kbq-popover__close-container{display:flex;justify-content:flex-end;height:0}.kbq-popover__content .kbq-popover__close-container .kbq-popover__close{top:auto;right:auto;transform:translateY(-50%) translate(50%)}.kbq-popover__header{display:flex;align-items:center;overflow:hidden;padding:var(--kbq-popover-size-header-padding-top) var(--kbq-popover-size-header-padding-horizontal) var(--kbq-popover-size-header-padding-bottom) var(--kbq-popover-size-header-padding-horizontal)}.kbq-popover__header .kbq-popover__header-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-popover__header_top-overflow{position:relative;z-index:2;box-shadow:var(--kbq-shadow-overflow-normal-bottom)}.kbq-popover__header_with-close-button{padding-right:var(--kbq-size-4xl)}.kbq-popover__footer{padding:var(--kbq-popover-size-footer-padding-vertical) var(--kbq-popover-size-footer-padding-horizontal)}.kbq-popover__footer_bottom-overflow{position:relative;z-index:2;box-shadow:var(--kbq-shadow-overflow-normal-top)}.kbq-popover__arrow{position:absolute;z-index:-1;width:12px;height:12px;transform:rotate(45deg)}.kbq-popover_placement-top .kbq-popover__arrow{bottom:-5.5px;left:50%;margin-left:-5.5px}.kbq-popover_placement-top-left .kbq-popover__arrow{bottom:-5.5px;left:9px}.kbq-popover_placement-top-right .kbq-popover__arrow{bottom:-5.5px;right:9px}.kbq-popover_placement-right .kbq-popover__arrow{left:-5.5px;top:50%;margin-top:-5.5px}.kbq-popover_placement-right-top .kbq-popover__arrow{left:-5.5px;top:9px}.kbq-popover_placement-right-bottom .kbq-popover__arrow{left:-5.5px;bottom:9px}.kbq-popover_placement-left .kbq-popover__arrow{right:-5.5px;top:50%;margin-top:-5.5px}.kbq-popover_placement-left-top .kbq-popover__arrow{right:-5.5px;top:9px}.kbq-popover_placement-left-bottom .kbq-popover__arrow{right:-5.5px;bottom:9px}.kbq-popover_placement-bottom .kbq-popover__arrow{top:-5.5px;left:50%;margin-left:-5.5px}.kbq-popover_placement-bottom-left .kbq-popover__arrow{top:-5.5px;left:9px}.kbq-popover_placement-bottom-right .kbq-popover__arrow{top:-5.5px;right:9px}.kbq-popover__close{position:absolute;z-index:2;top:var(--kbq-size-s);right:var(--kbq-size-s);border-radius:var(--kbq-size-border-radius)}.kbq-popover{box-shadow:var(--kbq-popover-container-shadow)}.kbq-popover__container{background:var(--kbq-popover-container-background)}.kbq-popover__arrow{box-shadow:var(--kbq-popover-container-shadow);background:var(--kbq-popover-container-background)}.kbq-popover__close{background-color:var(--kbq-background-overlay-inverse)}.kbq-popover__header{color:var(--kbq-popover-header-text-color)}.kbq-popover__content{color:var(--kbq-popover-content-text-color)}.kbq-popover__header{font-size:var(--kbq-typography-subheading-font-size);font-weight:var(--kbq-typography-subheading-font-weight);line-height:var(--kbq-typography-subheading-line-height);font-family:var(--kbq-typography-subheading-font-family);text-transform:var(--kbq-typography-subheading-text-transform);font-feature-settings:var(--kbq-typography-subheading-font-feature-settings);letter-spacing:var(--kbq-typography-subheading-letter-spacing)}.kbq-popover__content{font-size:var(--kbq-typography-text-normal-font-size);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", ".kbq-popover{--kbq-popover-size-container-width-small: 200px;--kbq-popover-size-container-width-medium: 400px;--kbq-popover-size-container-width-large: 640px;--kbq-popover-size-container-border-radius: var(--kbq-size-m);--kbq-popover-size-container-max-height: 480px;--kbq-popover-size-close-button-width: 32px;--kbq-popover-size-close-button-margin-right: -16px;--kbq-popover-size-close-button-margin-top: -10px;--kbq-popover-size-header-padding-horizontal: var(--kbq-size-xxl);--kbq-popover-size-header-padding-top: var(--kbq-size-l);--kbq-popover-size-header-padding-bottom: var(--kbq-size-xs);--kbq-popover-size-content-padding-top: var(--kbq-size-xxl);--kbq-popover-size-content-padding-bottom: var(--kbq-size-3xl);--kbq-popover-size-content-padding-horizontal: var(--kbq-size-xxl);--kbq-popover-size-content-padding-with-header-top: var(--kbq-size-s);--kbq-popover-size-content-padding-with-footer-bottom: var(--kbq-size-s);--kbq-popover-size-footer-padding-vertical: var(--kbq-size-l);--kbq-popover-size-footer-padding-horizontal: var(--kbq-size-xxl);--kbq-popover-container-background: var(--kbq-background-card);--kbq-popover-container-shadow: var(--kbq-shadow-popup);--kbq-popover-header-text-color: var(--kbq-foreground-contrast);--kbq-popover-header-scroll-shadow: var(--kbq-shadow-overflow-normal-bottom);--kbq-popover-content-text-color: var(--kbq-foreground-contrast);--kbq-popover-footer-scroll-shadow: var(--kbq-shadow-overflow-normal-top)}\n"] }]
|
|
70
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [kbqPopoverAnimations.popoverState], template: "<div\n #popover\n class=\"kbq-popover\"\n [cdkTrapFocus]=\"isTrapFocus\"\n [ngClass]=\"classMap\"\n (@state.done)=\"animationDone($event)\"\n (@state.start)=\"animationStart()\"\n [@state]=\"visibility\"\n>\n <div\n class=\"kbq-popover__container\"\n [class.kbq-popover__container_with-footer]=\"footer\"\n [class.kbq-popover__container_with-header]=\"header\"\n >\n @if (header) {\n <div\n class=\"kbq-popover__header\"\n [class.kbq-popover__header_top-overflow]=\"isContentTopOverflow\"\n [class.kbq-popover__header_with-close-button]=\"hasCloseButton\"\n >\n @if (isTemplateRef(header)) {\n <ng-container [ngTemplateOutlet]=\"$any(header)\" />\n }\n @if (!isTemplateRef(header)) {\n <div class=\"kbq-popover__header-text\">{{ header }}</div>\n }\n </div>\n }\n\n @if (content) {\n <div #popoverContent class=\"kbq-popover__content kbq-scrollbar\" (cdkObserveContent)=\"onContentChange()\">\n @if (hasCloseButton && !header) {\n <div class=\"kbq-popover__close-container\">\n <ng-container *ngTemplateOutlet=\"closeButton\" />\n </div>\n }\n @if (isTemplateRef(content)) {\n <ng-container [ngTemplateOutlet]=\"$any(content)\" />\n }\n @if (!isTemplateRef(content)) {\n <div>{{ content }}</div>\n }\n </div>\n }\n\n @if (footer) {\n <div class=\"kbq-popover__footer\" [class.kbq-popover__footer_bottom-overflow]=\"isContentBottomOverflow\">\n @if (isTemplateRef(footer)) {\n <ng-container [ngTemplateOutlet]=\"$any(footer)\" />\n }\n @if (!isTemplateRef(footer)) {\n <div>{{ footer }}</div>\n }\n </div>\n }\n </div>\n\n @if (hasCloseButton && header) {\n <div class=\"kbq-popover__close-container\">\n <ng-container *ngTemplateOutlet=\"closeButton\" />\n </div>\n }\n\n <ng-template #closeButton>\n <div class=\"kbq-popover__close\">\n <button kbq-button class=\"kbq-button_transparent\" [color]=\"componentColors.Contrast\" (click)=\"hide(0)\">\n <i kbq-icon=\"kbq-xmark_16\" [color]=\"componentColors.Contrast\"></i>\n </button>\n </div>\n </ng-template>\n\n @if (arrow) {\n <div class=\"kbq-popover__arrow\"></div>\n }\n</div>\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-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-popover{position:relative;border-radius:var(--kbq-popover-size-container-border-radius);box-sizing:border-box;list-style:none;white-space:pre-line;z-index:1}.kbq-popover.kbq-popover_small{max-width:var(--kbq-popover-size-container-width-small)}.kbq-popover.kbq-popover_medium{max-width:var(--kbq-popover-size-container-width-medium)}.kbq-popover.kbq-popover_large{max-width:var(--kbq-popover-size-container-width-large)}.kbq-popover.kbq-popover_placement-top,.kbq-popover.kbq-popover_placement-top-left,.kbq-popover.kbq-popover_placement-top-right{margin-bottom:8px}.kbq-popover.kbq-popover_placement-right,.kbq-popover.kbq-popover_placement-right-top,.kbq-popover.kbq-popover_placement-right-bottom{margin-left:8px}.kbq-popover.kbq-popover_placement-bottom,.kbq-popover.kbq-popover_placement-bottom-left,.kbq-popover.kbq-popover_placement-bottom-right{margin-top:8px}.kbq-popover.kbq-popover_placement-left,.kbq-popover.kbq-popover_placement-left-top,.kbq-popover.kbq-popover_placement-left-bottom{margin-right:8px}.kbq-popover__content{overflow-y:auto;padding:var(--kbq-popover-size-content-padding-top) var(--kbq-popover-size-content-padding-horizontal) var(--kbq-popover-size-content-padding-bottom)}.kbq-popover__container{overflow:hidden;display:flex;flex-direction:column;max-height:var(--kbq-popover-size-container-max-height);border-radius:var(--kbq-popover-size-container-border-radius)}.kbq-popover__container.kbq-popover__container_with-header .kbq-popover__content{padding-top:var(--kbq-size-s)}.kbq-popover__container.kbq-popover__container_with-footer .kbq-popover__content{padding-bottom:var(--kbq-size-s)}.kbq-popover__content .kbq-popover__close-container{display:flex;justify-content:flex-end;height:0}.kbq-popover__content .kbq-popover__close-container .kbq-popover__close{top:auto;right:auto;transform:translateY(-50%) translate(50%)}.kbq-popover__header{display:flex;align-items:center;overflow:hidden;padding:var(--kbq-popover-size-header-padding-top) var(--kbq-popover-size-header-padding-horizontal) var(--kbq-popover-size-header-padding-bottom) var(--kbq-popover-size-header-padding-horizontal)}.kbq-popover__header .kbq-popover__header-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-popover__header_top-overflow{position:relative;z-index:2;box-shadow:var(--kbq-shadow-overflow-normal-bottom)}.kbq-popover__header_with-close-button{padding-right:var(--kbq-size-4xl)}.kbq-popover__footer{padding:var(--kbq-popover-size-footer-padding-vertical) var(--kbq-popover-size-footer-padding-horizontal)}.kbq-popover__footer_bottom-overflow{position:relative;z-index:2;box-shadow:var(--kbq-shadow-overflow-normal-top)}.kbq-popover__arrow{position:absolute;z-index:-1;width:12px;height:12px;transform:rotate(45deg)}.kbq-popover_placement-top .kbq-popover__arrow{bottom:-5.5px;left:50%;margin-left:-5.5px}.kbq-popover_placement-top-left .kbq-popover__arrow{bottom:-5.5px;left:9px}.kbq-popover_placement-top-right .kbq-popover__arrow{bottom:-5.5px;right:9px}.kbq-popover_placement-right .kbq-popover__arrow{left:-5.5px;top:50%;margin-top:-5.5px}.kbq-popover_placement-right-top .kbq-popover__arrow{left:-5.5px;top:9px}.kbq-popover_placement-right-bottom .kbq-popover__arrow{left:-5.5px;bottom:9px}.kbq-popover_placement-left .kbq-popover__arrow{right:-5.5px;top:50%;margin-top:-5.5px}.kbq-popover_placement-left-top .kbq-popover__arrow{right:-5.5px;top:9px}.kbq-popover_placement-left-bottom .kbq-popover__arrow{right:-5.5px;bottom:9px}.kbq-popover_placement-bottom .kbq-popover__arrow{top:-5.5px;left:50%;margin-left:-5.5px}.kbq-popover_placement-bottom-left .kbq-popover__arrow{top:-5.5px;left:9px}.kbq-popover_placement-bottom-right .kbq-popover__arrow{top:-5.5px;right:9px}.kbq-popover__close{position:absolute;z-index:2;top:var(--kbq-size-s);right:var(--kbq-size-s);border-radius:var(--kbq-size-border-radius)}.kbq-popover{box-shadow:var(--kbq-popover-container-shadow)}.kbq-popover__container{background:var(--kbq-popover-container-background)}.kbq-popover__arrow{box-shadow:var(--kbq-popover-container-shadow);background:var(--kbq-popover-container-background)}.kbq-popover__close{background-color:var(--kbq-background-overlay-inverse)}.kbq-popover__header{color:var(--kbq-popover-header-text-color)}.kbq-popover__content{color:var(--kbq-popover-content-text-color)}.kbq-popover__header{font-size:var(--kbq-typography-subheading-font-size);font-weight:var(--kbq-typography-subheading-font-weight);line-height:var(--kbq-typography-subheading-line-height);font-family:var(--kbq-typography-subheading-font-family);text-transform:var(--kbq-typography-subheading-text-transform);font-feature-settings:var(--kbq-typography-subheading-font-feature-settings);letter-spacing:var(--kbq-typography-subheading-letter-spacing)}.kbq-popover__content{font-size:var(--kbq-typography-text-normal-font-size);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", ".kbq-popover{--kbq-popover-size-container-width-small: 200px;--kbq-popover-size-container-width-medium: 400px;--kbq-popover-size-container-width-large: 640px;--kbq-popover-size-container-border-radius: var(--kbq-size-m);--kbq-popover-size-container-max-height: 480px;--kbq-popover-size-close-button-width: 32px;--kbq-popover-size-close-button-margin-right: -16px;--kbq-popover-size-close-button-margin-top: -10px;--kbq-popover-size-header-padding-horizontal: var(--kbq-size-xxl);--kbq-popover-size-header-padding-top: var(--kbq-size-l);--kbq-popover-size-header-padding-bottom: var(--kbq-size-xs);--kbq-popover-size-content-padding-top: var(--kbq-size-xxl);--kbq-popover-size-content-padding-bottom: var(--kbq-size-3xl);--kbq-popover-size-content-padding-horizontal: var(--kbq-size-xxl);--kbq-popover-size-content-padding-with-header-top: var(--kbq-size-s);--kbq-popover-size-content-padding-with-footer-bottom: var(--kbq-size-s);--kbq-popover-size-footer-padding-vertical: var(--kbq-size-l);--kbq-popover-size-footer-padding-horizontal: var(--kbq-size-xxl);--kbq-popover-container-background: var(--kbq-background-card);--kbq-popover-container-shadow: var(--kbq-shadow-popup);--kbq-popover-header-text-color: var(--kbq-foreground-contrast);--kbq-popover-header-scroll-shadow: var(--kbq-shadow-overflow-normal-bottom);--kbq-popover-content-text-color: var(--kbq-foreground-contrast);--kbq-popover-footer-scroll-shadow: var(--kbq-shadow-overflow-normal-top)}\n"] }]
|
|
66
71
|
}], propDecorators: { popoverContent: [{
|
|
67
72
|
type: ViewChild,
|
|
68
73
|
args: ['popoverContent']
|
|
74
|
+
}], elementRef: [{
|
|
75
|
+
type: ViewChild,
|
|
76
|
+
args: ['popover']
|
|
69
77
|
}], cdkTrapFocus: [{
|
|
70
78
|
type: ViewChild,
|
|
71
79
|
args: [CdkTrapFocus]
|
|
@@ -97,6 +105,7 @@ export class KbqPopoverTrigger extends KbqPopUpTrigger {
|
|
|
97
105
|
this.backdropClass = 'cdk-overlay-transparent-backdrop';
|
|
98
106
|
// @TODO add realization for arrow (#DS-2514)
|
|
99
107
|
this.arrow = true;
|
|
108
|
+
this.offset = defaultOffsetY;
|
|
100
109
|
this.placementChange = new EventEmitter();
|
|
101
110
|
this.visibleChange = new EventEmitter();
|
|
102
111
|
this.originSelector = '.kbq-popover';
|
|
@@ -233,6 +242,8 @@ export class KbqPopoverTrigger extends KbqPopUpTrigger {
|
|
|
233
242
|
}
|
|
234
243
|
this.instance.header = this.header;
|
|
235
244
|
this.instance.content = this.content;
|
|
245
|
+
this.instance.arrow = this.arrow;
|
|
246
|
+
this.instance.offset = this.offset;
|
|
236
247
|
this.instance.footer = this.footer;
|
|
237
248
|
this.instance.hasCloseButton = this.hasCloseButton;
|
|
238
249
|
this.instance.updateTrapFocus(this.trigger !== PopUpTriggers.Focus);
|
|
@@ -262,18 +273,21 @@ export class KbqPopoverTrigger extends KbqPopUpTrigger {
|
|
|
262
273
|
}
|
|
263
274
|
closingActionsForClick() {
|
|
264
275
|
if (this.hasClickTrigger) {
|
|
265
|
-
return
|
|
266
|
-
this.overlayRef.backdropClick(),
|
|
267
|
-
this.hasBackdrop ? NEVER : this.overlayRef.outsidePointerEvents()
|
|
268
|
-
];
|
|
276
|
+
return this.defaultClosingActions();
|
|
269
277
|
}
|
|
270
278
|
return [];
|
|
271
279
|
}
|
|
280
|
+
defaultClosingActions() {
|
|
281
|
+
return [
|
|
282
|
+
this.overlayRef.backdropClick(),
|
|
283
|
+
this.hasBackdrop ? NEVER : this.overlayRef.outsidePointerEvents()
|
|
284
|
+
];
|
|
285
|
+
}
|
|
272
286
|
closingActions() {
|
|
273
287
|
return merge(...this.closingActionsForClick(), this.closeOnScroll ? this.scrollDispatcher.scrolled() : NEVER);
|
|
274
288
|
}
|
|
275
289
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqPopoverTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
276
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
290
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.6", type: KbqPopoverTrigger, selector: "[kbqPopover]", inputs: { popoverVisible: ["kbqPopoverVisible", "popoverVisible"], popoverPlacement: ["kbqPopoverPlacement", "popoverPlacement"], popoverPlacementPriority: ["kbqPopoverPlacementPriority", "popoverPlacementPriority"], hasBackdrop: "hasBackdrop", header: ["kbqPopoverHeader", "header"], content: ["kbqPopoverContent", "content"], footer: ["kbqPopoverFooter", "footer"], disabled: ["kbqPopoverDisabled", "disabled"], trigger: ["kbqTrigger", "trigger"], size: ["kbqPopoverSize", "size"], customClass: ["kbqPopoverClass", "customClass"], hasCloseButton: "hasCloseButton", closeOnScroll: "closeOnScroll", backdropClass: "backdropClass", arrow: ["kbqPopoverArrow", "arrow", booleanAttribute], offset: ["kbqPopoverOffset", "offset", numberAttribute] }, outputs: { placementChange: "kbqPopoverPlacementChange", visibleChange: "kbqPopoverVisibleChange" }, host: { listeners: { "keydown": "handleKeydown($event)", "touchend": "handleTouchend()" }, properties: { "class.kbq-popover_open": "isOpen", "class.kbq-active": "hasClickTrigger && isOpen" } }, exportAs: ["kbqPopover"], usesInheritance: true, ngImport: i0 }); }
|
|
277
291
|
}
|
|
278
292
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqPopoverTrigger, decorators: [{
|
|
279
293
|
type: Directive,
|
|
@@ -325,6 +339,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
325
339
|
type: Input
|
|
326
340
|
}], backdropClass: [{
|
|
327
341
|
type: Input
|
|
342
|
+
}], arrow: [{
|
|
343
|
+
type: Input,
|
|
344
|
+
args: [{ alias: 'kbqPopoverArrow', transform: booleanAttribute }]
|
|
345
|
+
}], offset: [{
|
|
346
|
+
type: Input,
|
|
347
|
+
args: [{ alias: 'kbqPopoverOffset', transform: numberAttribute }]
|
|
328
348
|
}], placementChange: [{
|
|
329
349
|
type: Output,
|
|
330
350
|
args: ['kbqPopoverPlacementChange']
|
|
@@ -332,4 +352,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
332
352
|
type: Output,
|
|
333
353
|
args: ['kbqPopoverVisibleChange']
|
|
334
354
|
}] } });
|
|
335
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUdILE9BQU8sRUFHVixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixjQUFjLEVBQ2QsS0FBSyxFQUNMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLFFBQVEsRUFDUixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixVQUFVLEVBQ1YsYUFBYSxFQUNoQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFjNUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFFBQVE7SUFaakQ7O1FBYUksV0FBTSxHQUFHLGFBQWEsQ0FBQztRQU92QixnQkFBVyxHQUFZ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aUI7cUhBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFWN0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLElBQUksRUFBRTt3QkFDRiwwQkFBMEIsRUFBRSxRQUFRO3dCQUNwQyxvQkFBb0IsRUFBRSwyQkFBMkI7d0JBQ2pELFdBQVcsRUFBRSx1QkFBdUI7d0JBQ3BDLFlBQVksRUFBRSxrQkFBa0I7cUJBQ25DO2lCQUNKOzhCQUtPLGNBQWM7c0JBRGpCLEtBQUs7dUJBQUMsbUJBQW1CO2dCQVV0QixnQkFBZ0I7c0JBRG5CLEtBQUs7dUJBQUMscUJBQXFCO2dCQVV4Qix3QkFBd0I7c0JBRDNCLEtBQUs7dUJBQUMsNkJBQTZCO2dCQVVoQyxXQUFXO3NCQURkLEtBQUs7Z0JBWUYsTUFBTTtzQkFEVCxLQUFLO3VCQUFDLGtCQUFrQjtnQkFjckIsT0FBTztzQkFEVixLQUFLO3VCQUFDLG1CQUFtQjtnQkFZdEIsTUFBTTtzQkFEVCxLQUFLO3VCQUFDLGtCQUFrQjtnQkFjckIsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLG9CQUFvQjtnQkFjdkIsT0FBTztzQkFEVixLQUFLO3VCQUFDLFlBQVk7Z0JBa0JmLElBQUk7c0JBRFAsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBa0JuQixXQUFXO3NCQURkLEtBQUs7dUJBQUMsaUJBQWlCO2dCQVlwQixjQUFjO3NCQURqQixLQUFLO2dCQWdCRixhQUFhO3NCQURoQixLQUFLO2dCQWVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBSytCLGVBQWU7c0JBQW5ELE1BQU07dUJBQUMsMkJBQTJCO2dCQUVBLGFBQWE7c0JBQS9DLE1BQU07dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrVHJhcEZvY3VzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgT3ZlcmxheSxcbiAgICBPdmVybGF5Q29uZmlnLFxuICAgIFNjcm9sbFN0cmF0ZWd5XG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgICBLYnFDb21wb25lbnRDb2xvcnMsXG4gICAgS2JxUG9wVXAsXG4gICAgS2JxUG9wVXBUcmlnZ2VyLFxuICAgIFBPU0lUSU9OX1RPX0NTU19NQVAsXG4gICAgUG9wVXBQbGFjZW1lbnRzLFxuICAgIFBvcFVwU2l6ZXMsXG4gICAgUG9wVXBUcmlnZ2Vyc1xufSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBORVZFUiwgZnJvbUV2ZW50LCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsga2JxUG9wb3ZlckFuaW1hdGlvbnMgfSBmcm9tICcuL3BvcG92ZXItYW5pbWF0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2JxLXBvcG92ZXItY29tcG9uZW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgc3R5bGVVcmxzOiBbJy4vcG9wb3Zlci5zY3NzJywgJy4vcG9wb3Zlci10b2tlbnMuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhrZXlkb3duLmVzYyknOiAnb25Fc2NhcGUoKSdcbiAgICB9LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgYW5pbWF0aW9uczogW2ticVBvcG92ZXJBbmltYXRpb25zLnBvcG92ZXJTdGF0ZV1cbn0pXG5leHBvcnQgY2xhc3MgS2JxUG9wb3ZlckNvbXBvbmVudCBleHRlbmRzIEticVBvcFVwIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcHJlZml4ID0gJ2ticS1wb3BvdmVyJztcblxuICAgIGhlYWRlcjogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgICBmb290ZXI6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICB0cmlnZ2VyOiBLYnFQb3BvdmVyVHJpZ2dlcjtcblxuICAgIGlzVHJhcEZvY3VzOiBib29sZWFuID0gZmFsc2U7XG4gICAgaGFzQ2xvc2VCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBWaWV3Q2hpbGQoJ3BvcG92ZXJDb250ZW50JykgcG9wb3ZlckNvbnRlbnQ6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoQ2RrVHJhcEZvY3VzKSBjZGtUcmFwRm9jdXM6IENka1RyYXBGb2N1cztcblxuICAgIHByaXZhdGUgZGVib3VuY2VUaW1lID0gMTU7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIGlzQ29udGVudFRvcE92ZXJmbG93OiBib29sZWFuID0gZmFsc2U7XG4gICAgaXNDb250ZW50Qm90dG9tT3ZlcmZsb3c6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnBvcG92ZXJDb250ZW50KSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5jaGVja0NvbnRlbnRPdmVyZmxvdyh0aGlzLnBvcG92ZXJDb250ZW50Lm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgIGZyb21FdmVudCh0aGlzLnBvcG92ZXJDb250ZW50Lm5hdGl2ZUVsZW1lbnQsICdzY3JvbGwnKVxuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2VUaW1lKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tDb250ZW50T3ZlcmZsb3coZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY2RrVHJhcEZvY3VzLmZvY3VzVHJhcC5mb2N1c0ZpcnN0VGFiYmFibGVFbGVtZW50KCk7XG4gICAgfVxuXG4gICAgb25Db250ZW50Q2hhbmdlKCkge1xuICAgICAgICB0aGlzLmNoZWNrQ29udGVudE92ZXJmbG93KHRoaXMucG9wb3ZlckNvbnRlbnQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgY2hlY2tDb250ZW50T3ZlcmZsb3coY29udGVudEVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBvZmZzZXRIZWlnaHQsIHNjcm9sbEhlaWdodCB9ID0gY29udGVudEVsZW1lbnQ7XG5cbiAgICAgICAgdGhpcy5pc0NvbnRlbnRUb3BPdmVyZmxvdyA9IHNjcm9sbFRvcCA+IDA7XG5cbiAgICAgICAgdGhpcy5pc0NvbnRlbnRCb3R0b21PdmVyZmxvdyA9IHNjcm9sbFRvcCArIG9mZnNldEhlaWdodCA8IHNjcm9sbEhlaWdodDtcblxuICAgICAgICBzdXBlci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlQ2xhc3NNYXAocGxhY2VtZW50OiBzdHJpbmcsIGN1c3RvbUNsYXNzOiBzdHJpbmcsIHNpemU6IFBvcFVwU2l6ZXMpIHtcbiAgICAgICAgc3VwZXIudXBkYXRlQ2xhc3NNYXAocGxhY2VtZW50LCBjdXN0b21DbGFzcywgeyBbYCR7dGhpcy5wcmVmaXh9XyR7c2l6ZX1gXTogISFzaXplIH0pO1xuICAgIH1cblxuICAgIHVwZGF0ZVRyYXBGb2N1cyhpc1RyYXBGb2N1czogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmlzVHJhcEZvY3VzID0gaXNUcmFwRm9jdXM7XG4gICAgfVxuXG4gICAgb25Fc2NhcGUoKSB7XG4gICAgICAgIHRoaXMuaGlkZSgwKTtcblxuICAgICAgICB0aGlzLnRyaWdnZXIuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29tcG9uZW50Q29sb3JzID0gS2JxQ29tcG9uZW50Q29sb3JzO1xufVxuXG5leHBvcnQgY29uc3QgS0JRX1BPUE9WRVJfU0NST0xMX1NUUkFURUdZID0gbmV3IEluamVjdGlvblRva2VuPCgpID0+IFNjcm9sbFN0cmF0ZWd5Pigna2JxLXBvcG92ZXItc2Nyb2xsLXN0cmF0ZWd5Jyk7XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgZnVuY3Rpb24ga2JxUG9wb3ZlclNjcm9sbFN0cmF0ZWd5RmFjdG9yeShvdmVybGF5OiBPdmVybGF5KTogKCkgPT4gU2Nyb2xsU3RyYXRlZ3kge1xuICAgIHJldHVybiAoKSA9PiBvdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbih7IHNjcm9sbFRocm90dGxlOiAyMCB9KTtcbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBjb25zdCBLQlFfUE9QT1ZFUl9TQ1JPTExfU1RSQVRFR1lfRkFDVE9SWV9QUk9WSURFUiA9IHtcbiAgICBwcm92aWRlOiBLQlFfUE9QT1ZFUl9TQ1JPTExfU1RSQVRFR1ksXG4gICAgZGVwczogW092ZXJsYXldLFxuICAgIHVzZUZhY3Rvcnk6IGticVBvcG92ZXJTY3JvbGxTdHJhdGVneUZhY3Rvcnlcbn07XG5cbi8qKiBDcmVhdGVzIGFuIGVycm9yIHRvIGJlIHRocm93biBpZiB0aGUgdXNlciBzdXBwbGllZCBhbiBpbnZhbGlkIHBvcG92ZXIgcG9zaXRpb24uICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2JxUG9wb3ZlckludmFsaWRQb3NpdGlvbkVycm9yKHBvc2l0aW9uOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gRXJyb3IoYEticVBvcG92ZXIgcG9zaXRpb24gXCIke3Bvc2l0aW9ufVwiIGlzIGludmFsaWQuYCk7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ticVBvcG92ZXJdJyxcbiAgICBleHBvcnRBczogJ2ticVBvcG92ZXInLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5rYnEtcG9wb3Zlcl9vcGVuXSc6ICdpc09wZW4nLFxuICAgICAgICAnW2NsYXNzLmticS1hY3RpdmVdJzogJ2hhc0NsaWNrVHJpZ2dlciAmJiBpc09wZW4nLFxuICAgICAgICAnKGtleWRvd24pJzogJ2hhbmRsZUtleWRvd24oJGV2ZW50KScsXG4gICAgICAgICcodG91Y2hlbmQpJzogJ2hhbmRsZVRvdWNoZW5kKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFQb3BvdmVyVHJpZ2dlciBleHRlbmRzIEticVBvcFVwVHJpZ2dlcjxLYnFQb3BvdmVyQ29tcG9uZW50PiBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIHByb3RlY3RlZCBzY3JvbGxTdHJhdGVneTogKCkgPT4gU2Nyb2xsU3RyYXRlZ3kgPSBpbmplY3QoS0JRX1BPUE9WRVJfU0NST0xMX1NUUkFURUdZKTtcblxuICAgIEBJbnB1dCgna2JxUG9wb3ZlclZpc2libGUnKVxuICAgIGdldCBwb3BvdmVyVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJsZTtcbiAgICB9XG5cbiAgICBzZXQgcG9wb3ZlclZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgc3VwZXIudXBkYXRlVmlzaWJsZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KCdrYnFQb3BvdmVyUGxhY2VtZW50JylcbiAgICBnZXQgcG9wb3ZlclBsYWNlbWVudCgpOiBQb3BVcFBsYWNlbWVudHMge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGFjZW1lbnQ7XG4gICAgfVxuXG4gICAgc2V0IHBvcG92ZXJQbGFjZW1lbnQodmFsdWU6IFBvcFVwUGxhY2VtZW50cykge1xuICAgICAgICBzdXBlci51cGRhdGVQbGFjZW1lbnQodmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgna2JxUG9wb3ZlclBsYWNlbWVudFByaW9yaXR5JylcbiAgICBnZXQgcG9wb3ZlclBsYWNlbWVudFByaW9yaXR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGFjZW1lbnRQcmlvcml0eTtcbiAgICB9XG5cbiAgICBzZXQgcG9wb3ZlclBsYWNlbWVudFByaW9yaXR5KHZhbHVlKSB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZVBsYWNlbWVudFByaW9yaXR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBoYXNCYWNrZHJvcCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc0JhY2tkcm9wO1xuICAgIH1cblxuICAgIHNldCBoYXNCYWNrZHJvcCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9oYXNCYWNrZHJvcCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGFzQmFja2Ryb3A6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgna2JxUG9wb3ZlckhlYWRlcicpXG4gICAgZ2V0IGhlYWRlcigpOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hlYWRlcjtcbiAgICB9XG5cbiAgICBzZXQgaGVhZGVyKHZhbHVlOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2hlYWRlciA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMudXBkYXRlRGF0YSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2hlYWRlcjogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBJbnB1dCgna2JxUG9wb3ZlckNvbnRlbnQnKVxuICAgIGdldCBjb250ZW50KCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudDtcbiAgICB9XG5cbiAgICBzZXQgY29udGVudCh2YWx1ZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pikge1xuICAgICAgICB0aGlzLl9jb250ZW50ID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfVxuXG4gICAgQElucHV0KCdrYnFQb3BvdmVyRm9vdGVyJylcbiAgICBnZXQgZm9vdGVyKCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9vdGVyO1xuICAgIH1cblxuICAgIHNldCBmb290ZXIodmFsdWU6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgdGhpcy5fZm9vdGVyID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZm9vdGVyOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KCdrYnFQb3BvdmVyRGlzYWJsZWQnKVxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgna2JxVHJpZ2dlcicpXG4gICAgZ2V0IHRyaWdnZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyaWdnZXI7XG4gICAgfVxuXG4gICAgc2V0IHRyaWdnZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIgPSBgJHtQb3BVcFRyaWdnZXJzLkNsaWNrfSwgJHtQb3BVcFRyaWdnZXJzLktleWRvd259YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdExpc3RlbmVycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3RyaWdnZXI6IHN0cmluZyA9IGAke1BvcFVwVHJpZ2dlcnMuQ2xpY2t9LCAke1BvcFVwVHJpZ2dlcnMuS2V5ZG93bn1gO1xuXG4gICAgQElucHV0KCdrYnFQb3BvdmVyU2l6ZScpXG4gICAgZ2V0IHNpemUoKTogUG9wVXBTaXplcyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaXplO1xuICAgIH1cblxuICAgIHNldCBzaXplKHZhbHVlOiBQb3BVcFNpemVzKSB7XG4gICAgICAgIGlmIChbUG9wVXBTaXplcy5TbWFsbCwgUG9wVXBTaXplcy5NZWRpdW0sIFBvcFVwU2l6ZXMuTGFyZ2VdLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5fc2l6ZSA9IHZhbHVlO1xuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzTWFwKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zaXplID0gUG9wVXBTaXplcy5NZWRpdW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zaXplOiBQb3BVcFNpemVzID0gUG9wVXBTaXplcy5NZWRpdW07XG5cbiAgICBASW5wdXQoJ2ticVBvcG92ZXJDbGFzcycpXG4gICAgZ2V0IGN1c3RvbUNsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3VzdG9tQ2xhc3M7XG4gICAgfVxuXG4gICAgc2V0IGN1c3RvbUNsYXNzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fY3VzdG9tQ2xhc3MgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzTWFwKCk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzQ2xvc2VCdXR0b24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNDbG9zZUJ1dHRvbjtcbiAgICB9XG4gICAgc2V0IGhhc0Nsb3NlQnV0dG9uKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2hhc0Nsb3NlQnV0dG9uID0gdmFsdWU7XG4gICAgICAgIHRoaXMudXBkYXRlRGF0YSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9oYXNDbG9zZUJ1dHRvbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQ29udHJvbHMgdGhlIGJlaGF2aW9yIG9mIGNsb3NpbmcgdGhlIGNvbXBvbmVudCBvbiBzY3JvbGwuXG4gICAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgYGZhbHNlYC5cbiAgICAgKiBVc2UgQ2xvc2VTY3JvbGxTdHJhdGVneSBhcyBhbHRlcm5hdGl2ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGNsb3NlT25TY3JvbGwoKTogYm9vbGVhbiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xvc2VPblNjcm9sbDtcbiAgICB9XG5cbiAgICBzZXQgY2xvc2VPblNjcm9sbCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9jbG9zZU9uU2Nyb2xsID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jbG9zZU9uU2Nyb2xsOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG5cbiAgICBnZXQgaGFzQ2xpY2tUcmlnZ2VyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50cmlnZ2VyLmluY2x1ZGVzKFBvcFVwVHJpZ2dlcnMuQ2xpY2spO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGJhY2tkcm9wQ2xhc3M6IHN0cmluZyA9ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCc7XG5cbiAgICAvLyBAVE9ETyBhZGQgcmVhbGl6YXRpb24gZm9yIGFycm93ICgjRFMtMjUxNClcbiAgICBhcnJvdzogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBAT3V0cHV0KCdrYnFQb3BvdmVyUGxhY2VtZW50Q2hhbmdlJykgcGxhY2VtZW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgna2JxUG9wb3ZlclZpc2libGVDaGFuZ2UnKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgcHJvdGVjdGVkIG9yaWdpblNlbGVjdG9yID0gJy5rYnEtcG9wb3Zlcic7XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IG92ZXJsYXlDb25maWcoKTogT3ZlcmxheUNvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwYW5lbENsYXNzOiAna2JxLXBvcG92ZXJfX3BhbmVsJyxcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiB0aGlzLmhhc0JhY2tkcm9wLFxuICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogdGhpcy5iYWNrZHJvcENsYXNzXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jbG9zZU9uU2Nyb2xsID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbERpc3BhdGNoZXIuc2Nyb2xsZWQoKS5zdWJzY3JpYmUoKHNjcm9sbGFibGU6IENka1Njcm9sbGFibGUgfCB2b2lkKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFzY3JvbGxhYmxlPy5nZXRFbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2ticS1oaWRlLW5lc3RlZC1wb3B1cCcpKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRSZWN0cyA9IHNjcm9sbGFibGUuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRSZWN0cyA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkUmVjdHMuYm90dG9tIDwgcGFyZW50UmVjdHMudG9wIHx8IGNoaWxkUmVjdHMudG9wID4gcGFyZW50UmVjdHMuYm90dG9tKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlRGF0YSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluc3RhbmNlLmhlYWRlciA9IHRoaXMuaGVhZGVyO1xuICAgICAgICB0aGlzLmluc3RhbmNlLmNvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UuZm9vdGVyID0gdGhpcy5mb290ZXI7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UuaGFzQ2xvc2VCdXR0b24gPSB0aGlzLmhhc0Nsb3NlQnV0dG9uO1xuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UudXBkYXRlVHJhcEZvY3VzKHRoaXMudHJpZ2dlciAhPT0gUG9wVXBUcmlnZ2Vycy5Gb2N1cyk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFVwZGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IHBvcG92ZXIuICovXG4gICAgdXBkYXRlUG9zaXRpb24ocmVhcHBseVBvc2l0aW9uOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KCk7XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSAodGhpcy5vdmVybGF5UmVmLmdldENvbmZpZygpLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5KVxuICAgICAgICAgICAgLndpdGhQb3NpdGlvbnModGhpcy5nZXRBZGp1c3RlZFBvc2l0aW9ucygpKVxuICAgICAgICAgICAgLndpdGhQdXNoKHRydWUpO1xuXG4gICAgICAgIGlmIChyZWFwcGx5UG9zaXRpb24pIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcG9zaXRpb24ucmVhcHBseUxhc3RQb3NpdGlvbigpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldE92ZXJsYXlIYW5kbGVDb21wb25lbnRUeXBlKCk6IFR5cGU8S2JxUG9wb3ZlckNvbXBvbmVudD4ge1xuICAgICAgICByZXR1cm4gS2JxUG9wb3ZlckNvbXBvbmVudDtcbiAgICB9XG5cbiAgICB1cGRhdGVDbGFzc01hcChuZXdQbGFjZW1lbnQ6IHN0cmluZyA9IHRoaXMucGxhY2VtZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbnN0YW5jZS51cGRhdGVDbGFzc01hcChQT1NJVElPTl9UT19DU1NfTUFQW25ld1BsYWNlbWVudF0sIHRoaXMuY3VzdG9tQ2xhc3MsIHRoaXMuc2l6ZSk7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgY2xvc2luZ0FjdGlvbnNGb3JDbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzQ2xpY2tUcmlnZ2VyKSB7XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZiEuYmFja2Ryb3BDbGljaygpLFxuICAgICAgICAgICAgICAgIHRoaXMuaGFzQmFja2Ryb3AgPyBORVZFUiA6IHRoaXMub3ZlcmxheVJlZiEub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjbG9zaW5nQWN0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIG1lcmdlKC4uLnRoaXMuY2xvc2luZ0FjdGlvbnNGb3JDbGljaygpLCB0aGlzLmNsb3NlT25TY3JvbGwgPyB0aGlzLnNjcm9sbERpc3BhdGNoZXIuc2Nyb2xsZWQoKSA6IE5FVkVSKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJrYnEtcG9wb3ZlclwiXG4gICAgW2Nka1RyYXBGb2N1c109XCJpc1RyYXBGb2N1c1wiXG4gICAgW25nQ2xhc3NdPVwiY2xhc3NNYXBcIlxuICAgIChAc3RhdGUuZG9uZSk9XCJhbmltYXRpb25Eb25lKCRldmVudClcIlxuICAgIChAc3RhdGUuc3RhcnQpPVwiYW5pbWF0aW9uU3RhcnQoKVwiXG4gICAgW0BzdGF0ZV09XCJ2aXNpYmlsaXR5XCJcbj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwia2JxLXBvcG92ZXJfX2NvbnRhaW5lclwiXG4gICAgICAgIFtjbGFzcy5rYnEtcG9wb3Zlcl9fY29udGFpbmVyX3dpdGgtZm9vdGVyXT1cImZvb3RlclwiXG4gICAgICAgIFtjbGFzcy5rYnEtcG9wb3Zlcl9fY29udGFpbmVyX3dpdGgtaGVhZGVyXT1cImhlYWRlclwiXG4gICAgPlxuICAgICAgICBAaWYgKGhlYWRlcikge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwia2JxLXBvcG92ZXJfX2hlYWRlclwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmticS1wb3BvdmVyX19oZWFkZXJfdG9wLW92ZXJmbG93XT1cImlzQ29udGVudFRvcE92ZXJmbG93XCJcbiAgICAgICAgICAgICAgICBbY2xhc3Mua2JxLXBvcG92ZXJfX2hlYWRlcl93aXRoLWNsb3NlLWJ1dHRvbl09XCJoYXNDbG9zZUJ1dHRvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGlmIChpc1RlbXBsYXRlUmVmKGhlYWRlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGhlYWRlcilcIiAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKCFpc1RlbXBsYXRlUmVmKGhlYWRlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1wb3BvdmVyX19oZWFkZXItdGV4dFwiPnt7IGhlYWRlciB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChjb250ZW50KSB7XG4gICAgICAgICAgICA8ZGl2ICNwb3BvdmVyQ29udGVudCBjbGFzcz1cImticS1wb3BvdmVyX19jb250ZW50IGticS1zY3JvbGxiYXJcIiAoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwib25Db250ZW50Q2hhbmdlKClcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGhhc0Nsb3NlQnV0dG9uICYmICFoZWFkZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1wb3BvdmVyX19jbG9zZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjbG9zZUJ1dHRvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGlzVGVtcGxhdGVSZWYoY29udGVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGNvbnRlbnQpXCIgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmICghaXNUZW1wbGF0ZVJlZihjb250ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7IGNvbnRlbnQgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoZm9vdGVyKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLXBvcG92ZXJfX2Zvb3RlclwiIFtjbGFzcy5rYnEtcG9wb3Zlcl9fZm9vdGVyX2JvdHRvbS1vdmVyZmxvd109XCJpc0NvbnRlbnRCb3R0b21PdmVyZmxvd1wiPlxuICAgICAgICAgICAgICAgIEBpZiAoaXNUZW1wbGF0ZVJlZihmb290ZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShmb290ZXIpXCIgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmICghaXNUZW1wbGF0ZVJlZihmb290ZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3sgZm9vdGVyIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoaGFzQ2xvc2VCdXR0b24gJiYgaGVhZGVyKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtcG9wb3Zlcl9fY2xvc2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2xvc2VCdXR0b25cIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8bmctdGVtcGxhdGUgI2Nsb3NlQnV0dG9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLXBvcG92ZXJfX2Nsb3NlXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGticS1idXR0b24gY2xhc3M9XCJrYnEtYnV0dG9uX3RyYW5zcGFyZW50XCIgW2NvbG9yXT1cImNvbXBvbmVudENvbG9ycy5Db250cmFzdFwiIChjbGljayk9XCJoaWRlKDApXCI+XG4gICAgICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEteG1hcmtfMTZcIiBbY29sb3JdPVwiY29tcG9uZW50Q29sb3JzLkNvbnRyYXN0XCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8ZGl2IGNsYXNzPVwia2JxLXBvcG92ZXJfX2Fycm93XCI+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
355
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUdILE9BQU8sRUFHVixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixjQUFjLEVBQ2QsS0FBSyxFQUNMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sZUFBZSxFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLFFBQVEsRUFDUixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixVQUFVLEVBQ1YsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixjQUFjLEVBQ2pCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQWM1RCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsUUFBUTtJ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QkFEM0IsS0FBSzt1QkFBQyw2QkFBNkI7Z0JBVWhDLFdBQVc7c0JBRGQsS0FBSztnQkFZRixNQUFNO3NCQURULEtBQUs7dUJBQUMsa0JBQWtCO2dCQWNyQixPQUFPO3NCQURWLEtBQUs7dUJBQUMsbUJBQW1CO2dCQVl0QixNQUFNO3NCQURULEtBQUs7dUJBQUMsa0JBQWtCO2dCQWNyQixRQUFRO3NCQURYLEtBQUs7dUJBQUMsb0JBQW9CO2dCQWN2QixPQUFPO3NCQURWLEtBQUs7dUJBQUMsWUFBWTtnQkFrQmYsSUFBSTtzQkFEUCxLQUFLO3VCQUFDLGdCQUFnQjtnQkFrQm5CLFdBQVc7c0JBRGQsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBWXBCLGNBQWM7c0JBRGpCLEtBQUs7Z0JBZ0JGLGFBQWE7c0JBRGhCLEtBQUs7Z0JBZUcsYUFBYTtzQkFBckIsS0FBSztnQkFHNEQsS0FBSztzQkFBdEUsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRUUsTUFBTTtzQkFBdkUsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUUzQixlQUFlO3NCQUFuRCxNQUFNO3VCQUFDLDJCQUEyQjtnQkFFQSxhQUFhO3NCQUEvQyxNQUFNO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka1RyYXBGb2N1cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIENka1Njcm9sbGFibGUsXG4gICAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LFxuICAgIE92ZXJsYXksXG4gICAgT3ZlcmxheUNvbmZpZyxcbiAgICBTY3JvbGxTdHJhdGVneVxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRGVzdHJveVJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFR5cGUsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgaW5qZWN0LFxuICAgIG51bWJlckF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gICAgS2JxQ29tcG9uZW50Q29sb3JzLFxuICAgIEticVBvcFVwLFxuICAgIEticVBvcFVwVHJpZ2dlcixcbiAgICBQT1NJVElPTl9UT19DU1NfTUFQLFxuICAgIFBvcFVwUGxhY2VtZW50cyxcbiAgICBQb3BVcFNpemVzLFxuICAgIFBvcFVwVHJpZ2dlcnMsXG4gICAgYXBwbHlQb3B1cE1hcmdpbnMsXG4gICAgZGVmYXVsdE9mZnNldFlcbn0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgTkVWRVIsIGZyb21FdmVudCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGticVBvcG92ZXJBbmltYXRpb25zIH0gZnJvbSAnLi9wb3BvdmVyLWFuaW1hdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ticS1wb3BvdmVyLWNvbXBvbmVudCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIHN0eWxlVXJsczogWycuL3BvcG92ZXIuc2NzcycsICcuL3BvcG92ZXItdG9rZW5zLnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoa2V5ZG93bi5lc2MpJzogJ29uRXNjYXBlKCknXG4gICAgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGFuaW1hdGlvbnM6IFtrYnFQb3BvdmVyQW5pbWF0aW9ucy5wb3BvdmVyU3RhdGVdXG59KVxuZXhwb3J0IGNsYXNzIEticVBvcG92ZXJDb21wb25lbnQgZXh0ZW5kcyBLYnFQb3BVcCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIHByZWZpeCA9ICdrYnEtcG9wb3Zlcic7XG5cbiAgICBoZWFkZXI6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG4gICAgZm9vdGVyOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgdHJpZ2dlcjogS2JxUG9wb3ZlclRyaWdnZXI7XG5cbiAgICBpc1RyYXBGb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGhhc0Nsb3NlQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkKCdwb3BvdmVyQ29udGVudCcpIHBvcG92ZXJDb250ZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdwb3BvdmVyJykgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKENka1RyYXBGb2N1cykgY2RrVHJhcEZvY3VzOiBDZGtUcmFwRm9jdXM7XG5cbiAgICBwcml2YXRlIGRlYm91bmNlVGltZSA9IDE1O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBpc0NvbnRlbnRUb3BPdmVyZmxvdzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGlzQ29udGVudEJvdHRvbU92ZXJmbG93OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5wb3BvdmVyQ29udGVudCkgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuY2hlY2tDb250ZW50T3ZlcmZsb3codGhpcy5wb3BvdmVyQ29udGVudC5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICBmcm9tRXZlbnQodGhpcy5wb3BvdmVyQ29udGVudC5uYXRpdmVFbGVtZW50LCAnc2Nyb2xsJylcbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZSksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrQ29udGVudE92ZXJmbG93KGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNka1RyYXBGb2N1cy5mb2N1c1RyYXAuZm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudCgpO1xuICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2Uuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMub2Zmc2V0ICE9PSBudWxsICYmIHN0YXRlKSB7XG4gICAgICAgICAgICAgICAgYXBwbHlQb3B1cE1hcmdpbnMoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZWZpeCxcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5vZmZzZXQhLnRvU3RyaW5nKCl9cHhgXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25Db250ZW50Q2hhbmdlKCkge1xuICAgICAgICB0aGlzLmNoZWNrQ29udGVudE92ZXJmbG93KHRoaXMucG9wb3ZlckNvbnRlbnQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgY2hlY2tDb250ZW50T3ZlcmZsb3coY29udGVudEVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBvZmZzZXRIZWlnaHQsIHNjcm9sbEhlaWdodCB9ID0gY29udGVudEVsZW1lbnQ7XG5cbiAgICAgICAgdGhpcy5pc0NvbnRlbnRUb3BPdmVyZmxvdyA9IHNjcm9sbFRvcCA+IDA7XG5cbiAgICAgICAgdGhpcy5pc0NvbnRlbnRCb3R0b21PdmVyZmxvdyA9IHNjcm9sbFRvcCArIG9mZnNldEhlaWdodCA8IHNjcm9sbEhlaWdodDtcblxuICAgICAgICBzdXBlci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlQ2xhc3NNYXAocGxhY2VtZW50OiBzdHJpbmcsIGN1c3RvbUNsYXNzOiBzdHJpbmcsIHNpemU6IFBvcFVwU2l6ZXMpIHtcbiAgICAgICAgc3VwZXIudXBkYXRlQ2xhc3NNYXAocGxhY2VtZW50LCBjdXN0b21DbGFzcywgeyBbYCR7dGhpcy5wcmVmaXh9XyR7c2l6ZX1gXTogISFzaXplIH0pO1xuICAgIH1cblxuICAgIHVwZGF0ZVRyYXBGb2N1cyhpc1RyYXBGb2N1czogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmlzVHJhcEZvY3VzID0gaXNUcmFwRm9jdXM7XG4gICAgfVxuXG4gICAgb25Fc2NhcGUoKSB7XG4gICAgICAgIHRoaXMuaGlkZSgwKTtcblxuICAgICAgICB0aGlzLnRyaWdnZXIuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29tcG9uZW50Q29sb3JzID0gS2JxQ29tcG9uZW50Q29sb3JzO1xufVxuXG5leHBvcnQgY29uc3QgS0JRX1BPUE9WRVJfU0NST0xMX1NUUkFURUdZID0gbmV3IEluamVjdGlvblRva2VuPCgpID0+IFNjcm9sbFN0cmF0ZWd5Pigna2JxLXBvcG92ZXItc2Nyb2xsLXN0cmF0ZWd5Jyk7XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgZnVuY3Rpb24ga2JxUG9wb3ZlclNjcm9sbFN0cmF0ZWd5RmFjdG9yeShvdmVybGF5OiBPdmVybGF5KTogKCkgPT4gU2Nyb2xsU3RyYXRlZ3kge1xuICAgIHJldHVybiAoKSA9PiBvdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbih7IHNjcm9sbFRocm90dGxlOiAyMCB9KTtcbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBjb25zdCBLQlFfUE9QT1ZFUl9TQ1JPTExfU1RSQVRFR1lfRkFDVE9SWV9QUk9WSURFUiA9IHtcbiAgICBwcm92aWRlOiBLQlFfUE9QT1ZFUl9TQ1JPTExfU1RSQVRFR1ksXG4gICAgZGVwczogW092ZXJsYXldLFxuICAgIHVzZUZhY3Rvcnk6IGticVBvcG92ZXJTY3JvbGxTdHJhdGVneUZhY3Rvcnlcbn07XG5cbi8qKiBDcmVhdGVzIGFuIGVycm9yIHRvIGJlIHRocm93biBpZiB0aGUgdXNlciBzdXBwbGllZCBhbiBpbnZhbGlkIHBvcG92ZXIgcG9zaXRpb24uICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2JxUG9wb3ZlckludmFsaWRQb3NpdGlvbkVycm9yKHBvc2l0aW9uOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gRXJyb3IoYEticVBvcG92ZXIgcG9zaXRpb24gXCIke3Bvc2l0aW9ufVwiIGlzIGludmFsaWQuYCk7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ticVBvcG92ZXJdJyxcbiAgICBleHBvcnRBczogJ2ticVBvcG92ZXInLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5rYnEtcG9wb3Zlcl9vcGVuXSc6ICdpc09wZW4nLFxuICAgICAgICAnW2NsYXNzLmticS1hY3RpdmVdJzogJ2hhc0NsaWNrVHJpZ2dlciAmJiBpc09wZW4nLFxuICAgICAgICAnKGtleWRvd24pJzogJ2hhbmRsZUtleWRvd24oJGV2ZW50KScsXG4gICAgICAgICcodG91Y2hlbmQpJzogJ2hhbmRsZVRvdWNoZW5kKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFQb3BvdmVyVHJpZ2dlciBleHRlbmRzIEticVBvcFVwVHJpZ2dlcjxLYnFQb3BvdmVyQ29tcG9uZW50PiBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIHByb3RlY3RlZCBzY3JvbGxTdHJhdGVneTogKCkgPT4gU2Nyb2xsU3RyYXRlZ3kgPSBpbmplY3QoS0JRX1BPUE9WRVJfU0NST0xMX1NUUkFURUdZKTtcblxuICAgIEBJbnB1dCgna2JxUG9wb3ZlclZpc2libGUnKVxuICAgIGdldCBwb3BvdmVyVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJsZTtcbiAgICB9XG5cbiAgICBzZXQgcG9wb3ZlclZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgc3VwZXIudXBkYXRlVmlzaWJsZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KCdrYnFQb3BvdmVyUGxhY2VtZW50JylcbiAgICBnZXQgcG9wb3ZlclBsYWNlbWVudCgpOiBQb3BVcFBsYWNlbWVudHMge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGFjZW1lbnQ7XG4gICAgfVxuXG4gICAgc2V0IHBvcG92ZXJQbGFjZW1lbnQodmFsdWU6IFBvcFVwUGxhY2VtZW50cykge1xuICAgICAgICBzdXBlci51cGRhdGVQbGFjZW1lbnQodmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgna2JxUG9wb3ZlclBsYWNlbWVudFByaW9yaXR5JylcbiAgICBnZXQgcG9wb3ZlclBsYWNlbWVudFByaW9yaXR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGFjZW1lbnRQcmlvcml0eTtcbiAgICB9XG5cbiAgICBzZXQgcG9wb3ZlclBsYWNlbWVudFByaW9yaXR5KHZhbHVlKSB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZVBsYWNlbWVudFByaW9yaXR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBoYXNCYWNrZHJvcCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc0JhY2tkcm9wO1xuICAgIH1cblxuICAgIHNldCBoYXNCYWNrZHJvcCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9oYXNCYWNrZHJvcCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGFzQmFja2Ryb3A6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgna2JxUG9wb3ZlckhlYWRlcicpXG4gICAgZ2V0IGhlYWRlcigpOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hlYWRlcjtcbiAgICB9XG5cbiAgICBzZXQgaGVhZGVyKHZhbHVlOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2hlYWRlciA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMudXBkYXRlRGF0YSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2hlYWRlcjogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBJbnB1dCgna2JxUG9wb3ZlckNvbnRlbnQnKVxuICAgIGdldCBjb250ZW50KCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudDtcbiAgICB9XG5cbiAgICBzZXQgY29udGVudCh2YWx1ZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pikge1xuICAgICAgICB0aGlzLl9jb250ZW50ID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfVxuXG4gICAgQElucHV0KCdrYnFQb3BvdmVyRm9vdGVyJylcbiAgICBnZXQgZm9vdGVyKCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9vdGVyO1xuICAgIH1cblxuICAgIHNldCBmb290ZXIodmFsdWU6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgdGhpcy5fZm9vdGVyID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZm9vdGVyOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KCdrYnFQb3BvdmVyRGlzYWJsZWQnKVxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgna2JxVHJpZ2dlcicpXG4gICAgZ2V0IHRyaWdnZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyaWdnZXI7XG4gICAgfVxuXG4gICAgc2V0IHRyaWdnZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIgPSBgJHtQb3BVcFRyaWdnZXJzLkNsaWNrfSwgJHtQb3BVcFRyaWdnZXJzLktleWRvd259YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdExpc3RlbmVycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3RyaWdnZXI6IHN0cmluZyA9IGAke1BvcFVwVHJpZ2dlcnMuQ2xpY2t9LCAke1BvcFVwVHJpZ2dlcnMuS2V5ZG93bn1gO1xuXG4gICAgQElucHV0KCdrYnFQb3BvdmVyU2l6ZScpXG4gICAgZ2V0IHNpemUoKTogUG9wVXBTaXplcyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaXplO1xuICAgIH1cblxuICAgIHNldCBzaXplKHZhbHVlOiBQb3BVcFNpemVzKSB7XG4gICAgICAgIGlmIChbUG9wVXBTaXplcy5TbWFsbCwgUG9wVXBTaXplcy5NZWRpdW0sIFBvcFVwU2l6ZXMuTGFyZ2VdLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5fc2l6ZSA9IHZhbHVlO1xuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzTWFwKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zaXplID0gUG9wVXBTaXplcy5NZWRpdW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zaXplOiBQb3BVcFNpemVzID0gUG9wVXBTaXplcy5NZWRpdW07XG5cbiAgICBASW5wdXQoJ2ticVBvcG92ZXJDbGFzcycpXG4gICAgZ2V0IGN1c3RvbUNsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3VzdG9tQ2xhc3M7XG4gICAgfVxuXG4gICAgc2V0IGN1c3RvbUNsYXNzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fY3VzdG9tQ2xhc3MgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzTWFwKCk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzQ2xvc2VCdXR0b24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNDbG9zZUJ1dHRvbjtcbiAgICB9XG4gICAgc2V0IGhhc0Nsb3NlQnV0dG9uKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2hhc0Nsb3NlQnV0dG9uID0gdmFsdWU7XG4gICAgICAgIHRoaXMudXBkYXRlRGF0YSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9oYXNDbG9zZUJ1dHRvbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQ29udHJvbHMgdGhlIGJlaGF2aW9yIG9mIGNsb3NpbmcgdGhlIGNvbXBvbmVudCBvbiBzY3JvbGwuXG4gICAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgYGZhbHNlYC5cbiAgICAgKiBVc2UgQ2xvc2VTY3JvbGxTdHJhdGVneSBhcyBhbHRlcm5hdGl2ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGNsb3NlT25TY3JvbGwoKTogYm9vbGVhbiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xvc2VPblNjcm9sbDtcbiAgICB9XG5cbiAgICBzZXQgY2xvc2VPblNjcm9sbCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9jbG9zZU9uU2Nyb2xsID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jbG9zZU9uU2Nyb2xsOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG5cbiAgICBnZXQgaGFzQ2xpY2tUcmlnZ2VyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50cmlnZ2VyLmluY2x1ZGVzKFBvcFVwVHJpZ2dlcnMuQ2xpY2spO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGJhY2tkcm9wQ2xhc3M6IHN0cmluZyA9ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCc7XG5cbiAgICAvLyBAVE9ETyBhZGQgcmVhbGl6YXRpb24gZm9yIGFycm93ICgjRFMtMjUxNClcbiAgICBASW5wdXQoeyBhbGlhczogJ2ticVBvcG92ZXJBcnJvdycsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhcnJvdzogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBASW5wdXQoeyBhbGlhczogJ2ticVBvcG92ZXJPZmZzZXQnLCB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBvZmZzZXQ6IG51bWJlciB8IG51bGwgPSBkZWZhdWx0T2Zmc2V0WTtcblxuICAgIEBPdXRwdXQoJ2ticVBvcG92ZXJQbGFjZW1lbnRDaGFuZ2UnKSBwbGFjZW1lbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCdrYnFQb3BvdmVyVmlzaWJsZUNoYW5nZScpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBwcm90ZWN0ZWQgb3JpZ2luU2VsZWN0b3IgPSAnLmticS1wb3BvdmVyJztcblxuICAgIHByb3RlY3RlZCBnZXQgb3ZlcmxheUNvbmZpZygpOiBPdmVybGF5Q29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhbmVsQ2xhc3M6ICdrYnEtcG9wb3Zlcl9fcGFuZWwnLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IHRoaXMuaGFzQmFja2Ryb3AsXG4gICAgICAgICAgICBiYWNrZHJvcENsYXNzOiB0aGlzLmJhY2tkcm9wQ2xhc3NcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNsb3NlT25TY3JvbGwgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlci5zY3JvbGxlZCgpLnN1YnNjcmliZSgoc2Nyb2xsYWJsZTogQ2RrU2Nyb2xsYWJsZSB8IHZvaWQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXNjcm9sbGFibGU/LmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygna2JxLWhpZGUtbmVzdGVkLXBvcHVwJykpIHJldHVybjtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFJlY3RzID0gc2Nyb2xsYWJsZS5nZXRFbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZFJlY3RzID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY2hpbGRSZWN0cy5ib3R0b20gPCBwYXJlbnRSZWN0cy50b3AgfHwgY2hpbGRSZWN0cy50b3AgPiBwYXJlbnRSZWN0cy5ib3R0b20pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVEYXRhKCkge1xuICAgICAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UuaGVhZGVyID0gdGhpcy5oZWFkZXI7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UuY29udGVudCA9IHRoaXMuY29udGVudDtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5hcnJvdyA9IHRoaXMuYXJyb3c7XG4gICAgICAgIHRoaXMuaW5zdGFuY2Uub2Zmc2V0ID0gdGhpcy5vZmZzZXQ7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UuZm9vdGVyID0gdGhpcy5mb290ZXI7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UuaGFzQ2xvc2VCdXR0b24gPSB0aGlzLmhhc0Nsb3NlQnV0dG9uO1xuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UudXBkYXRlVHJhcEZvY3VzKHRoaXMudHJpZ2dlciAhPT0gUG9wVXBUcmlnZ2Vycy5Gb2N1cyk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFVwZGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IHBvcG92ZXIuICovXG4gICAgdXBkYXRlUG9zaXRpb24ocmVhcHBseVBvc2l0aW9uOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KCk7XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSAodGhpcy5vdmVybGF5UmVmLmdldENvbmZpZygpLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5KVxuICAgICAgICAgICAgLndpdGhQb3NpdGlvbnModGhpcy5nZXRBZGp1c3RlZFBvc2l0aW9ucygpKVxuICAgICAgICAgICAgLndpdGhQdXNoKHRydWUpO1xuXG4gICAgICAgIGlmIChyZWFwcGx5UG9zaXRpb24pIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcG9zaXRpb24ucmVhcHBseUxhc3RQb3NpdGlvbigpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldE92ZXJsYXlIYW5kbGVDb21wb25lbnRUeXBlKCk6IFR5cGU8S2JxUG9wb3ZlckNvbXBvbmVudD4ge1xuICAgICAgICByZXR1cm4gS2JxUG9wb3ZlckNvbXBvbmVudDtcbiAgICB9XG5cbiAgICB1cGRhdGVDbGFzc01hcChuZXdQbGFjZW1lbnQ6IHN0cmluZyA9IHRoaXMucGxhY2VtZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbnN0YW5jZS51cGRhdGVDbGFzc01hcChQT1NJVElPTl9UT19DU1NfTUFQW25ld1BsYWNlbWVudF0sIHRoaXMuY3VzdG9tQ2xhc3MsIHRoaXMuc2l6ZSk7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgY2xvc2luZ0FjdGlvbnNGb3JDbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzQ2xpY2tUcmlnZ2VyKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0Q2xvc2luZ0FjdGlvbnMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBkZWZhdWx0Q2xvc2luZ0FjdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYhLmJhY2tkcm9wQ2xpY2soKSxcbiAgICAgICAgICAgIHRoaXMuaGFzQmFja2Ryb3AgPyBORVZFUiA6IHRoaXMub3ZlcmxheVJlZiEub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIGNsb3NpbmdBY3Rpb25zKCkge1xuICAgICAgICByZXR1cm4gbWVyZ2UoLi4udGhpcy5jbG9zaW5nQWN0aW9uc0ZvckNsaWNrKCksIHRoaXMuY2xvc2VPblNjcm9sbCA/IHRoaXMuc2Nyb2xsRGlzcGF0Y2hlci5zY3JvbGxlZCgpIDogTkVWRVIpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICAjcG9wb3ZlclxuICAgIGNsYXNzPVwia2JxLXBvcG92ZXJcIlxuICAgIFtjZGtUcmFwRm9jdXNdPVwiaXNUcmFwRm9jdXNcIlxuICAgIFtuZ0NsYXNzXT1cImNsYXNzTWFwXCJcbiAgICAoQHN0YXRlLmRvbmUpPVwiYW5pbWF0aW9uRG9uZSgkZXZlbnQpXCJcbiAgICAoQHN0YXRlLnN0YXJ0KT1cImFuaW1hdGlvblN0YXJ0KClcIlxuICAgIFtAc3RhdGVdPVwidmlzaWJpbGl0eVwiXG4+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImticS1wb3BvdmVyX19jb250YWluZXJcIlxuICAgICAgICBbY2xhc3Mua2JxLXBvcG92ZXJfX2NvbnRhaW5lcl93aXRoLWZvb3Rlcl09XCJmb290ZXJcIlxuICAgICAgICBbY2xhc3Mua2JxLXBvcG92ZXJfX2NvbnRhaW5lcl93aXRoLWhlYWRlcl09XCJoZWFkZXJcIlxuICAgID5cbiAgICAgICAgQGlmIChoZWFkZXIpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImticS1wb3BvdmVyX19oZWFkZXJcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5rYnEtcG9wb3Zlcl9faGVhZGVyX3RvcC1vdmVyZmxvd109XCJpc0NvbnRlbnRUb3BPdmVyZmxvd1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmticS1wb3BvdmVyX19oZWFkZXJfd2l0aC1jbG9zZS1idXR0b25dPVwiaGFzQ2xvc2VCdXR0b25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBpZiAoaXNUZW1wbGF0ZVJlZihoZWFkZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShoZWFkZXIpXCIgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmICghaXNUZW1wbGF0ZVJlZihoZWFkZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtcG9wb3Zlcl9faGVhZGVyLXRleHRcIj57eyBoZWFkZXIgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoY29udGVudCkge1xuICAgICAgICAgICAgPGRpdiAjcG9wb3ZlckNvbnRlbnQgY2xhc3M9XCJrYnEtcG9wb3Zlcl9fY29udGVudCBrYnEtc2Nyb2xsYmFyXCIgKGNka09ic2VydmVDb250ZW50KT1cIm9uQ29udGVudENoYW5nZSgpXCI+XG4gICAgICAgICAgICAgICAgQGlmIChoYXNDbG9zZUJ1dHRvbiAmJiAhaGVhZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtcG9wb3Zlcl9fY2xvc2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2xvc2VCdXR0b25cIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChpc1RlbXBsYXRlUmVmKGNvbnRlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShjb250ZW50KVwiIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoIWlzVGVtcGxhdGVSZWYoY29udGVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdj57eyBjb250ZW50IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKGZvb3Rlcikge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1wb3BvdmVyX19mb290ZXJcIiBbY2xhc3Mua2JxLXBvcG92ZXJfX2Zvb3Rlcl9ib3R0b20tb3ZlcmZsb3ddPVwiaXNDb250ZW50Qm90dG9tT3ZlcmZsb3dcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGlzVGVtcGxhdGVSZWYoZm9vdGVyKSkge1xuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZm9vdGVyKVwiIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoIWlzVGVtcGxhdGVSZWYoZm9vdGVyKSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7IGZvb3RlciB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGhhc0Nsb3NlQnV0dG9uICYmIGhlYWRlcikge1xuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLXBvcG92ZXJfX2Nsb3NlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNsb3NlQnV0dG9uXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPG5nLXRlbXBsYXRlICNjbG9zZUJ1dHRvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1wb3BvdmVyX19jbG9zZVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBrYnEtYnV0dG9uIGNsYXNzPVwia2JxLWJ1dHRvbl90cmFuc3BhcmVudFwiIFtjb2xvcl09XCJjb21wb25lbnRDb2xvcnMuQ29udHJhc3RcIiAoY2xpY2spPVwiaGlkZSgwKVwiPlxuICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLXhtYXJrXzE2XCIgW2NvbG9yXT1cImNvbXBvbmVudENvbG9ycy5Db250cmFzdFwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgQGlmIChhcnJvdykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLXBvcG92ZXJfX2Fycm93XCI+PC9kaXY+XG4gICAgfVxuPC9kaXY+XG4iXX0=
|