@koobiq/components 18.3.0 → 18.4.1
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/accordion/accordion-tokens.scss +0 -2
- package/alert/alert-tokens.scss +0 -2
- package/autocomplete/autocomplete-tokens.scss +0 -2
- package/badge/badge-tokens.scss +0 -2
- package/button/button-tokens.scss +7 -2
- package/button/button.scss +0 -2
- package/button-toggle/button-toggle-tokens.scss +0 -2
- package/checkbox/checkbox-tokens.scss +0 -2
- package/code-block/_code-block-theme.scss +1 -1
- package/code-block/actionbar.component.d.ts +14 -4
- package/code-block/code-block-tokens.scss +4 -6
- package/code-block/code-block.component.d.ts +12 -15
- package/code-block/code-block.types.d.ts +12 -0
- package/core/common-behaviors/color.d.ts +1 -1
- package/core/formatters/date/formatter.pipe.d.ts +82 -65
- package/core/formatters/index.d.ts +1 -1
- package/core/forms/forms-tokens.scss +0 -2
- package/core/forms/validators.d.ts +21 -0
- package/core/locales/en-US.d.ts +13 -0
- package/core/locales/es-LA.d.ts +13 -0
- package/core/locales/fa-IR.d.ts +13 -0
- package/core/locales/locale-service.d.ts +78 -0
- package/core/locales/pt-BR.d.ts +13 -0
- package/core/locales/ru-RU.d.ts +13 -0
- package/core/locales/zh-CN.d.ts +13 -0
- package/core/option/optgroup-tokens.scss +0 -2
- package/core/option/option-action-tokens.scss +0 -2
- package/core/option/option-tokens.scss +0 -2
- package/core/select/common.d.ts +2 -0
- package/core/selection/pseudo-checkbox/pseudo-checkbox-tokens.scss +0 -2
- package/core/services/theme.service.d.ts +2 -2
- package/core/styles/theming/_components-theming.scss +1 -1
- package/core/styles/theming/_theming.scss +1 -1
- package/core/styles/theming/scrollbar-tokens.scss +0 -2
- package/datepicker/_datepicker-theme.scss +1 -1
- package/datepicker/datepicker-tokens.scss +2 -4
- package/divider/divider-tokens.scss +0 -2
- package/dl/dl-tokens.scss +0 -2
- package/dropdown/_dropdown-theme.scss +1 -1
- package/dropdown/dropdown-tokens.scss +1 -3
- package/empty-state/empty-state-tokens.scss +0 -2
- package/esm2022/button/button.component.mjs +2 -2
- package/esm2022/code-block/actionbar.component.mjs +35 -8
- package/esm2022/code-block/code-block.component.mjs +28 -19
- package/esm2022/code-block/code-block.types.mjs +5 -2
- package/esm2022/core/common-behaviors/color.mjs +2 -2
- package/esm2022/core/formatters/date/formatter.pipe.mjs +280 -120
- package/esm2022/core/formatters/index.mjs +65 -12
- package/esm2022/core/forms/validators.mjs +32 -1
- package/esm2022/core/locales/en-US.mjs +14 -1
- package/esm2022/core/locales/es-LA.mjs +14 -1
- package/esm2022/core/locales/fa-IR.mjs +14 -1
- package/esm2022/core/locales/pt-BR.mjs +14 -1
- package/esm2022/core/locales/ru-RU.mjs +14 -1
- package/esm2022/core/locales/zh-CN.mjs +14 -1
- package/esm2022/core/select/common.mjs +7 -1
- package/esm2022/core/services/theme.service.mjs +3 -3
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/datepicker/datepicker.component.mjs +3 -3
- package/esm2022/dropdown/dropdown.component.mjs +3 -3
- package/esm2022/file-upload/file-upload.mjs +2 -3
- package/esm2022/file-upload/multiple-file-upload.component.mjs +57 -17
- package/esm2022/file-upload/single-file-upload.component.mjs +31 -19
- package/esm2022/form-field/validate.directive.mjs +21 -1
- package/esm2022/markdown/markdown.values.mjs +4 -2
- package/esm2022/modal/modal.component.mjs +2 -2
- package/esm2022/navbar/navbar-item.component.mjs +2 -2
- package/esm2022/navbar/navbar.component.mjs +2 -2
- package/esm2022/navbar/vertical-navbar.component.mjs +2 -2
- package/esm2022/popover/popover-confirm.component.mjs +3 -3
- package/esm2022/popover/popover.component.mjs +3 -3
- package/esm2022/select/select.component.mjs +1 -1
- package/esm2022/sidepanel/sidepanel-container.component.mjs +3 -3
- package/esm2022/splitter/splitter.component.mjs +2 -2
- package/esm2022/timezone/timezone-select.component.mjs +20 -10
- package/esm2022/toast/toast.component.mjs +3 -3
- package/esm2022/tooltip/tooltip.component.mjs +13 -1
- package/fesm2022/koobiq-components-button.mjs +2 -2
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +58 -24
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +461 -131
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +2 -2
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +2 -2
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +76 -27
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +20 -0
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-markdown.mjs +3 -1
- package/fesm2022/koobiq-components-markdown.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 +6 -6
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +4 -4
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +2 -2
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +1 -1
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +18 -8
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +2 -2
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +12 -0
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/file-upload/_file-upload-theme.scss +6 -10
- package/file-upload/file-upload-tokens.scss +0 -2
- package/file-upload/file-upload.d.ts +3 -0
- package/file-upload/file-upload.scss +6 -0
- package/file-upload/multiple-file-upload.component.d.ts +28 -5
- package/file-upload/multiple-file-upload.component.scss +0 -4
- package/file-upload/single-file-upload.component.d.ts +13 -4
- package/file-upload/single-file-upload.component.scss +0 -12
- package/form-field/form-field-tokens.scss +0 -2
- package/form-field/hint-tokens.scss +0 -2
- package/form-field/validate.directive.d.ts +20 -0
- package/icon/icon-button-tokens.scss +0 -2
- package/icon/icon-item-tokens.scss +0 -2
- package/icon/icon-tokens.scss +0 -2
- package/input/input-tokens.scss +0 -2
- package/link/link-tokens.scss +0 -2
- package/list/list-tokens.scss +0 -2
- package/loader-overlay/loader-overlay-tokens.scss +0 -2
- package/markdown/markdown-tokens.scss +0 -2
- package/markdown/markdown.values.d.ts +3 -0
- package/modal/_modal-theme.scss +1 -1
- package/modal/modal-tokens.scss +2 -4
- package/navbar/_navbar-theme.scss +1 -1
- package/navbar/navbar-tokens.scss +2 -10
- package/package.json +4 -4
- package/popover/_popover-theme.scss +2 -2
- package/popover/popover-tokens.scss +2 -4
- package/popover/popover.scss +2 -2
- package/progress-bar/progress-bar-tokens.scss +0 -2
- package/progress-spinner/progress-spinner-tokens.scss +0 -2
- package/radio/radio-tokens.scss +0 -2
- package/risk-level/risk-level-tokens.scss +0 -2
- package/schematics/ng-add/index.js +2 -2
- package/scrollbar/scrollbar-tokens.scss +0 -2
- package/select/select-tokens.scss +0 -2
- package/select/select.component.d.ts +1 -1
- package/sidepanel/_sidepanel-theme.scss +1 -1
- package/sidepanel/sidepanel-tokens.scss +2 -4
- package/table/table-tokens.scss +0 -2
- package/tabs/tabs-tokens.scss +0 -2
- package/tags/tag-input-tokens.scss +0 -2
- package/tags/tag-tokens.scss +0 -2
- package/textarea/textarea-tokens.scss +0 -2
- package/timezone/timezone-option-tokens.scss +0 -2
- package/timezone/timezone-select.component.d.ts +5 -6
- package/toast/toast-tokens.scss +4 -3
- package/toggle/toggle-tokens.scss +0 -2
- package/tooltip/tooltip-tokens.scss +0 -2
- package/tooltip/tooltip.component.d.ts +9 -0
- package/tree/tree-tokens.scss +0 -2
- package/tree-select/tree-select-tokens.scss +0 -2
- package/splitter/splitter-tokens.scss +0 -1
|
@@ -88,7 +88,7 @@ export class KbqToastComponent {
|
|
|
88
88
|
this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);
|
|
89
89
|
}
|
|
90
90
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqToastComponent, deps: [{ token: i1.KbqToastData }, { token: forwardRef(() => KbqToastService) }, { token: i0.ElementRef }, { token: i2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
91
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KbqToastComponent, selector: "kbq-toast", host: { listeners: { "@state.start": "onAnimation($event)", "@state.done": "onAnimation($event)", "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)", "keydown.esc": "close()" }, properties: { "class": "toastStyle", "class.kbq-toast_dismissible": "data.closeButton", "@state": "animationState" }, classAttribute: "kbq-toast" }, ngImport: i0, template: "@if (data.icon) {\n <div class=\"kbq-toast__icon-container layout-row layout-align-start-start\">\n @if (data.icon === true) {\n @switch (data.style) {\n @case ('contrast') {\n <i\n kbq-icon=\"kbq-info-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('success') {\n <i\n kbq-icon=\"kbq-check-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('warning') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('error') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n }\n }\n @if (isTemplateRef(data.icon)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n </div>\n}\n\n<div class=\"kbq-toast__container\">\n @if (data.title) {\n <div\n kbq-title\n class=\"kbq-toast__title\"\n [class.kbq-toast__title_with-content]=\"data.caption || data.content\"\n >\n @if (isTemplateRef(data.title)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n @if (!isTemplateRef(data.title)) {\n <p>{{ data.title }}</p>\n }\n </div>\n }\n\n @if (data.caption) {\n <div\n kbq-title\n [class.kbq-toast__text]=\"data.title\"\n [class.kbq-toast__title]=\"!data.title\"\n >\n @if (isTemplateRef(data.caption)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n @if (!isTemplateRef(data.caption)) {\n {{ data.caption }}\n }\n </div>\n }\n\n @if (data.content) {\n <div class=\"kbq-toast__content\">\n @if (isTemplateRef(data.content)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n @if (!isTemplateRef(data.content)) {\n {{ data.content }}\n }\n </div>\n }\n\n @if (data.actions) {\n <div class=\"kbq-toast__actions\">\n @if (isTemplateRef(data.actions)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n @if (!isTemplateRef(data.actions)) {\n {{ data.actions }}\n }\n </div>\n }\n</div>\n\n@if (data.closeButton) {\n <div>\n @if (data.closeButton === true) {\n <i\n kbq-icon-button=\"kbq-xmark-s_16\"\n kbq-toast-close-button\n (click)=\"close()\"\n ></i>\n }\n @if (isTemplateRef(data.closeButton)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.closeButton)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n </div>\n}\n", styles: [".kbq-toast{display:flex;box-sizing:border-box;width:var(--kbq-toast-size-container-width);height:auto;border-radius:var(--kbq-toast-size-container-border-radius);padding-left:var(--kbq-toast-size-container-padding-left);padding-right:var(--kbq-toast-size-container-padding-right)}.kbq-toast__icon-container{flex-shrink:0;width:var(--kbq-toast-size-icon-width);max-width:var(--kbq-toast-size-icon-width);height:var(--kbq-toast-size-icon-height);max-height:var(--kbq-toast-size-icon-height);border-radius:var(--kbq-toast-size-container-border-radius);margin-right:var(--kbq-toast-size-icon-margin-right);padding-top:calc(var(--kbq-toast-size-content-padding-top) + (var(--kbq-toast-font-title-line-height) - var(--kbq-toast-size-icon-height)) / 2)}.kbq-toast__container{display:flex;flex-direction:column;flex:1;padding-top:var(--kbq-toast-size-content-padding-top);padding-right:var(--kbq-size-s);padding-bottom:var(--kbq-toast-size-content-padding-bottom);overflow:hidden}.kbq-toast__title{overflow:hidden;text-overflow:ellipsis}.kbq-toast__title>p{margin:0;overflow:hidden;text-overflow:ellipsis}.kbq-toast__title_with-content{padding-bottom:var(--kbq-toast-size-caption-padding-bottom)}.kbq-toast__text{display:flex;flex:1;align-items:center}.kbq-toast__content{display:flex;flex-direction:column}.kbq-toast__actions{display:flex;padding-top:var(--kbq-toast-size-button-stack-padding-top);gap:var(--kbq-toast-size-button-stack-content-gap-horizontal)}.kbq-toast__close-button{margin-top:calc(var(--kbq-toast-size-content-padding-top) - (var(--kbq-icon-button-size-small-vertical-padding) * 2 + 16px - var(--kbq-toast-font-title-line-height)) / 2);margin-right:var(--kbq-toast-size-close-button-margin-right)}.kbq-toast.kbq-toast_contrast{box-shadow:var(--kbq-toast-contrast-container-shadow);background:var(--kbq-toast-contrast-container-background)}.kbq-toast.kbq-toast_contrast .kbq-toast__title{color:var(--kbq-toast-contrast-container-title)}.kbq-toast.kbq-toast_contrast .kbq-toast__text{color:var(--kbq-toast-contrast-container-text)}.kbq-toast.kbq-toast_success{box-shadow:var(--kbq-toast-success-container-shadow);background:var(--kbq-toast-success-container-background)}.kbq-toast.kbq-toast_success .kbq-toast__title{color:var(--kbq-toast-success-container-title)}.kbq-toast.kbq-toast_success .kbq-toast__text{color:var(--kbq-toast-success-container-text)}.kbq-toast.kbq-toast_warning{box-shadow:var(--kbq-toast-warning-container-shadow);background:var(--kbq-toast-warning-container-background)}.kbq-toast.kbq-toast_warning .kbq-toast__title{color:var(--kbq-toast-warning-container-title)}.kbq-toast.kbq-toast_warning .kbq-toast__text{color:var(--kbq-toast-warning-container-text)}.kbq-toast.kbq-toast_error{box-shadow:var(--kbq-toast-error-container-shadow);background:var(--kbq-toast-error-container-background)}.kbq-toast.kbq-toast_error .kbq-toast__title{color:var(--kbq-toast-error-container-title)}.kbq-toast.kbq-toast_error .kbq-toast__text{color:var(--kbq-toast-error-container-text)}.kbq-toast{font-size:var(--kbq-toast-font-text-font-size);font-weight:var(--kbq-toast-font-text-font-weight);line-height:var(--kbq-toast-font-text-line-height);font-family:var(--kbq-toast-font-text-font-family);text-transform:var(--kbq-toast-font-text-text-transform);font-feature-settings:var(--kbq-toast-font-text-font-feature-settings);letter-spacing:var(--kbq-toast-font-text-letter-spacing)}.kbq-toast__title{font-size:var(--kbq-toast-font-title-font-size);font-weight:var(--kbq-toast-font-title-font-weight);line-height:var(--kbq-toast-font-title-line-height);font-family:var(--kbq-toast-font-title-font-family);text-transform:var(--kbq-toast-font-title-text-transform);font-feature-settings:var(--kbq-toast-font-title-font-feature-settings);letter-spacing:var(--kbq-toast-font-title-letter-spacing)}\n", ".kbq-toast{--kbq-toast-size-container-width: 360px;--kbq-toast-size-container-border-radius: var(--kbq-size-s);--kbq-toast-size-container-padding-left: var(--kbq-size-m);--kbq-toast-size-container-padding-right: var(--kbq-size-s);--kbq-toast-size-content-padding-top: var(--kbq-size-l);--kbq-toast-size-content-padding-bottom: var(--kbq-size-l);--kbq-toast-size-caption-padding-bottom: var(--kbq-size-xxs);--kbq-toast-size-icon-width: var(--kbq-size-l);--kbq-toast-size-icon-height: var(--kbq-size-l);--kbq-toast-size-icon-margin-right: var(--kbq-size-s);--kbq-toast-size-icon-border-radius: 50%;--kbq-toast-size-close-button-margin-top: var(--kbq-size-m);--kbq-toast-size-close-button-margin-right: var(--kbq-size-xxs);--kbq-toast-size-button-stack-padding-top: var(--kbq-size-s);--kbq-toast-size-button-stack-content-gap-horizontal: var(--kbq-size-m);--kbq-toast-font-title-font-size: var(--kbq-typography-text-normal-font-size);--kbq-toast-font-title-line-height: var(--kbq-typography-text-normal-line-height);--kbq-toast-font-title-letter-spacing: var(--kbq-typography-text-normal-letter-spacing);--kbq-toast-font-title-font-weight: var(--kbq-typography-text-normal-font-weight);--kbq-toast-font-title-font-family: var(--kbq-typography-text-normal-font-family);--kbq-toast-font-title-text-transform: var(--kbq-typography-text-normal-text-transform);--kbq-toast-font-title-font-feature-settings: var(--kbq-typography-text-normal-font-feature-settings);--kbq-toast-font-text-font-size: var(--kbq-typography-text-normal-font-size);--kbq-toast-font-text-line-height: var(--kbq-typography-text-normal-line-height);--kbq-toast-font-text-letter-spacing: var(--kbq-typography-text-normal-letter-spacing);--kbq-toast-font-text-font-weight: var(--kbq-typography-text-normal-font-weight);--kbq-toast-font-text-font-family: var(--kbq-typography-text-normal-font-family);--kbq-toast-font-text-text-transform: var(--kbq-typography-text-normal-text-transform);--kbq-toast-font-text-font-feature-settings: var(--kbq-typography-text-normal-font-feature-settings)}:where(.kbq-light,.theme-light,.kbq-theme-light){--kbq-toast-contrast-container-background: var(--kbq-background-card);--kbq-toast-contrast-container-title: var(--kbq-foreground-contrast);--kbq-toast-contrast-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-contrast-container-shadow: var(--kbq-shadow-popup);--kbq-toast-error-container-background: var(--kbq-background-card);--kbq-toast-error-container-title: var(--kbq-foreground-contrast);--kbq-toast-error-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-error-container-shadow: var(--kbq-shadow-popup);--kbq-toast-warning-container-background: var(--kbq-background-card);--kbq-toast-warning-container-title: var(--kbq-foreground-contrast);--kbq-toast-warning-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-warning-container-shadow: var(--kbq-shadow-popup);--kbq-toast-success-container-background: var(--kbq-background-card);--kbq-toast-success-container-title: var(--kbq-foreground-contrast);--kbq-toast-success-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-success-container-shadow: var(--kbq-shadow-popup)}:where(.kbq-dark,.theme-dark,.kbq-theme-dark){--kbq-toast-contrast-container-background: var(--kbq-background-card);--kbq-toast-contrast-container-title: var(--kbq-foreground-contrast);--kbq-toast-contrast-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-contrast-container-shadow: var(--kbq-shadow-popup);--kbq-toast-error-container-background: var(--kbq-background-card);--kbq-toast-error-container-title: var(--kbq-foreground-contrast);--kbq-toast-error-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-error-container-shadow: var(--kbq-shadow-popup);--kbq-toast-warning-container-background: var(--kbq-background-card);--kbq-toast-warning-container-title: var(--kbq-foreground-contrast);--kbq-toast-warning-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-warning-container-shadow: var(--kbq-shadow-popup);--kbq-toast-success-container-background: var(--kbq-background-card);--kbq-toast-success-container-title: var(--kbq-foreground-contrast);--kbq-toast-success-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-success-container-shadow: var(--kbq-shadow-popup)}\n"], dependencies: [{ kind: "directive", type: i3.KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }, { kind: "component", type: i4.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "component", type: i4.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["color", "small", "tabindex", "disabled"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: KbqToastCloseButton, selector: "[kbq-toast-close-button]" }], animations: [kbqToastAnimations.toastState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
91
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KbqToastComponent, selector: "kbq-toast", host: { listeners: { "@state.start": "onAnimation($event)", "@state.done": "onAnimation($event)", "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)", "keydown.esc": "close()" }, properties: { "class": "toastStyle", "class.kbq-toast_dismissible": "data.closeButton", "@state": "animationState" }, classAttribute: "kbq-toast" }, ngImport: i0, template: "@if (data.icon) {\n <div class=\"kbq-toast__icon-container layout-row layout-align-start-start\">\n @if (data.icon === true) {\n @switch (data.style) {\n @case ('contrast') {\n <i\n kbq-icon=\"kbq-info-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('success') {\n <i\n kbq-icon=\"kbq-check-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('warning') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('error') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n }\n }\n @if (isTemplateRef(data.icon)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n </div>\n}\n\n<div class=\"kbq-toast__container\">\n @if (data.title) {\n <div\n kbq-title\n class=\"kbq-toast__title\"\n [class.kbq-toast__title_with-content]=\"data.caption || data.content\"\n >\n @if (isTemplateRef(data.title)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n @if (!isTemplateRef(data.title)) {\n <p>{{ data.title }}</p>\n }\n </div>\n }\n\n @if (data.caption) {\n <div\n kbq-title\n [class.kbq-toast__text]=\"data.title\"\n [class.kbq-toast__title]=\"!data.title\"\n >\n @if (isTemplateRef(data.caption)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n @if (!isTemplateRef(data.caption)) {\n {{ data.caption }}\n }\n </div>\n }\n\n @if (data.content) {\n <div class=\"kbq-toast__content\">\n @if (isTemplateRef(data.content)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n @if (!isTemplateRef(data.content)) {\n {{ data.content }}\n }\n </div>\n }\n\n @if (data.actions) {\n <div class=\"kbq-toast__actions\">\n @if (isTemplateRef(data.actions)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n @if (!isTemplateRef(data.actions)) {\n {{ data.actions }}\n }\n </div>\n }\n</div>\n\n@if (data.closeButton) {\n <div>\n @if (data.closeButton === true) {\n <i\n kbq-icon-button=\"kbq-xmark-s_16\"\n kbq-toast-close-button\n (click)=\"close()\"\n ></i>\n }\n @if (isTemplateRef(data.closeButton)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.closeButton)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n </div>\n}\n", styles: [".kbq-toast{display:flex;box-sizing:border-box;width:var(--kbq-toast-size-container-width);height:auto;border-radius:var(--kbq-toast-size-container-border-radius);padding-left:var(--kbq-toast-size-container-padding-left);padding-right:var(--kbq-toast-size-container-padding-right)}.kbq-toast__icon-container{flex-shrink:0;width:var(--kbq-toast-size-icon-width);max-width:var(--kbq-toast-size-icon-width);height:var(--kbq-toast-size-icon-height);max-height:var(--kbq-toast-size-icon-height);border-radius:var(--kbq-toast-size-container-border-radius);margin-right:var(--kbq-toast-size-icon-margin-right);padding-top:calc(var(--kbq-toast-size-content-padding-top) + (var(--kbq-toast-font-title-line-height) - var(--kbq-toast-size-icon-height)) / 2)}.kbq-toast__container{display:flex;flex-direction:column;flex:1;padding-top:var(--kbq-toast-size-content-padding-top);padding-right:var(--kbq-size-s);padding-bottom:var(--kbq-toast-size-content-padding-bottom);overflow:hidden}.kbq-toast__title{overflow:hidden;text-overflow:ellipsis}.kbq-toast__title>p{margin:0;overflow:hidden;text-overflow:ellipsis}.kbq-toast__title_with-content{padding-bottom:var(--kbq-toast-size-caption-padding-bottom)}.kbq-toast__text{display:flex;flex:1;align-items:center}.kbq-toast__content{display:flex;flex-direction:column}.kbq-toast__actions{display:flex;padding-top:var(--kbq-toast-size-button-stack-padding-top);gap:var(--kbq-toast-size-button-stack-content-gap-horizontal)}.kbq-toast__close-button{margin-top:calc(var(--kbq-toast-size-content-padding-top) - (var(--kbq-icon-button-size-small-vertical-padding) * 2 + 16px - var(--kbq-toast-font-title-line-height)) / 2);margin-right:var(--kbq-toast-size-close-button-margin-right)}.kbq-toast.kbq-toast_contrast{box-shadow:var(--kbq-toast-contrast-container-shadow);background:var(--kbq-toast-contrast-container-background)}.kbq-toast.kbq-toast_contrast .kbq-toast__title{color:var(--kbq-toast-contrast-container-title)}.kbq-toast.kbq-toast_contrast .kbq-toast__text{color:var(--kbq-toast-contrast-container-text)}.kbq-toast.kbq-toast_success{box-shadow:var(--kbq-toast-success-container-shadow);background:var(--kbq-toast-success-container-background)}.kbq-toast.kbq-toast_success .kbq-toast__title{color:var(--kbq-toast-success-container-title)}.kbq-toast.kbq-toast_success .kbq-toast__text{color:var(--kbq-toast-success-container-text)}.kbq-toast.kbq-toast_warning{box-shadow:var(--kbq-toast-warning-container-shadow);background:var(--kbq-toast-warning-container-background)}.kbq-toast.kbq-toast_warning .kbq-toast__title{color:var(--kbq-toast-warning-container-title)}.kbq-toast.kbq-toast_warning .kbq-toast__text{color:var(--kbq-toast-warning-container-text)}.kbq-toast.kbq-toast_error{box-shadow:var(--kbq-toast-error-container-shadow);background:var(--kbq-toast-error-container-background)}.kbq-toast.kbq-toast_error .kbq-toast__title{color:var(--kbq-toast-error-container-title)}.kbq-toast.kbq-toast_error .kbq-toast__text{color:var(--kbq-toast-error-container-text)}.kbq-toast{font-size:var(--kbq-toast-font-text-font-size);font-weight:var(--kbq-toast-font-text-font-weight);line-height:var(--kbq-toast-font-text-line-height);font-family:var(--kbq-toast-font-text-font-family);text-transform:var(--kbq-toast-font-text-text-transform);font-feature-settings:var(--kbq-toast-font-text-font-feature-settings);letter-spacing:var(--kbq-toast-font-text-letter-spacing)}.kbq-toast__title{font-size:var(--kbq-toast-font-title-font-size);font-weight:var(--kbq-toast-font-title-font-weight);line-height:var(--kbq-toast-font-title-line-height);font-family:var(--kbq-toast-font-title-font-family);text-transform:var(--kbq-toast-font-title-text-transform);font-feature-settings:var(--kbq-toast-font-title-font-feature-settings);letter-spacing:var(--kbq-toast-font-title-letter-spacing)}\n", ".kbq-toast-container{--kbq-toast-stack-size-margin-top: var(--kbq-size-m);--kbq-toast-stack-size-margin-right: var(--kbq-size-m);--kbq-toast-stack-size-gap: var(--kbq-size-s);--kbq-toast-size-container-width: 360px;--kbq-toast-size-container-border-radius: var(--kbq-size-s);--kbq-toast-size-container-padding-left: var(--kbq-size-m);--kbq-toast-size-container-padding-right: var(--kbq-size-s);--kbq-toast-size-content-padding-top: var(--kbq-size-l);--kbq-toast-size-content-padding-bottom: var(--kbq-size-l);--kbq-toast-size-caption-padding-bottom: var(--kbq-size-xxs);--kbq-toast-size-icon-width: var(--kbq-size-l);--kbq-toast-size-icon-height: var(--kbq-size-l);--kbq-toast-size-icon-margin-right: var(--kbq-size-s);--kbq-toast-size-icon-border-radius: 50%;--kbq-toast-size-close-button-margin-top: var(--kbq-size-m);--kbq-toast-size-close-button-margin-right: var(--kbq-size-xxs);--kbq-toast-size-button-stack-padding-top: var(--kbq-size-s);--kbq-toast-size-button-stack-content-gap-horizontal: var(--kbq-size-m);--kbq-toast-font-title-font-size: var(--kbq-typography-text-normal-font-size);--kbq-toast-font-title-line-height: var(--kbq-typography-text-normal-line-height);--kbq-toast-font-title-letter-spacing: var(--kbq-typography-text-normal-letter-spacing);--kbq-toast-font-title-font-weight: var(--kbq-typography-text-normal-font-weight);--kbq-toast-font-title-font-family: var(--kbq-typography-text-normal-font-family);--kbq-toast-font-title-text-transform: var(--kbq-typography-text-normal-text-transform);--kbq-toast-font-title-font-feature-settings: var(--kbq-typography-text-normal-font-feature-settings);--kbq-toast-font-text-font-size: var(--kbq-typography-text-normal-font-size);--kbq-toast-font-text-line-height: var(--kbq-typography-text-normal-line-height);--kbq-toast-font-text-letter-spacing: var(--kbq-typography-text-normal-letter-spacing);--kbq-toast-font-text-font-weight: var(--kbq-typography-text-normal-font-weight);--kbq-toast-font-text-font-family: var(--kbq-typography-text-normal-font-family);--kbq-toast-font-text-text-transform: var(--kbq-typography-text-normal-text-transform);--kbq-toast-font-text-font-feature-settings: var(--kbq-typography-text-normal-font-feature-settings)}:where(.kbq-light,.theme-light,.kbq-theme-light){--kbq-toast-contrast-container-background: var(--kbq-background-card);--kbq-toast-contrast-container-title: var(--kbq-foreground-contrast);--kbq-toast-contrast-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-contrast-container-shadow: var(--kbq-shadow-popup);--kbq-toast-error-container-background: var(--kbq-background-card);--kbq-toast-error-container-title: var(--kbq-foreground-contrast);--kbq-toast-error-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-error-container-shadow: var(--kbq-shadow-popup);--kbq-toast-warning-container-background: var(--kbq-background-card);--kbq-toast-warning-container-title: var(--kbq-foreground-contrast);--kbq-toast-warning-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-warning-container-shadow: var(--kbq-shadow-popup);--kbq-toast-success-container-background: var(--kbq-background-card);--kbq-toast-success-container-title: var(--kbq-foreground-contrast);--kbq-toast-success-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-success-container-shadow: var(--kbq-shadow-popup)}:where(.kbq-dark,.theme-dark,.kbq-theme-dark){--kbq-toast-contrast-container-background: var(--kbq-background-card);--kbq-toast-contrast-container-title: var(--kbq-foreground-contrast);--kbq-toast-contrast-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-contrast-container-shadow: var(--kbq-shadow-popup);--kbq-toast-error-container-background: var(--kbq-background-card);--kbq-toast-error-container-title: var(--kbq-foreground-contrast);--kbq-toast-error-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-error-container-shadow: var(--kbq-shadow-popup);--kbq-toast-warning-container-background: var(--kbq-background-card);--kbq-toast-warning-container-title: var(--kbq-foreground-contrast);--kbq-toast-warning-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-warning-container-shadow: var(--kbq-shadow-popup);--kbq-toast-success-container-background: var(--kbq-background-card);--kbq-toast-success-container-title: var(--kbq-foreground-contrast);--kbq-toast-success-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-success-container-shadow: var(--kbq-shadow-popup)}\n"], dependencies: [{ kind: "directive", type: i3.KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }, { kind: "component", type: i4.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "component", type: i4.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["color", "small", "tabindex", "disabled"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: KbqToastCloseButton, selector: "[kbq-toast-close-button]" }], animations: [kbqToastAnimations.toastState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
92
92
|
}
|
|
93
93
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqToastComponent, decorators: [{
|
|
94
94
|
type: Component,
|
|
@@ -102,9 +102,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
102
102
|
'(mouseenter)': 'hovered.next(true)',
|
|
103
103
|
'(mouseleave)': 'hovered.next(false)',
|
|
104
104
|
'(keydown.esc)': 'close()'
|
|
105
|
-
}, animations: [kbqToastAnimations.toastState], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (data.icon) {\n <div class=\"kbq-toast__icon-container layout-row layout-align-start-start\">\n @if (data.icon === true) {\n @switch (data.style) {\n @case ('contrast') {\n <i\n kbq-icon=\"kbq-info-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('success') {\n <i\n kbq-icon=\"kbq-check-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('warning') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('error') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n }\n }\n @if (isTemplateRef(data.icon)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n </div>\n}\n\n<div class=\"kbq-toast__container\">\n @if (data.title) {\n <div\n kbq-title\n class=\"kbq-toast__title\"\n [class.kbq-toast__title_with-content]=\"data.caption || data.content\"\n >\n @if (isTemplateRef(data.title)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n @if (!isTemplateRef(data.title)) {\n <p>{{ data.title }}</p>\n }\n </div>\n }\n\n @if (data.caption) {\n <div\n kbq-title\n [class.kbq-toast__text]=\"data.title\"\n [class.kbq-toast__title]=\"!data.title\"\n >\n @if (isTemplateRef(data.caption)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n @if (!isTemplateRef(data.caption)) {\n {{ data.caption }}\n }\n </div>\n }\n\n @if (data.content) {\n <div class=\"kbq-toast__content\">\n @if (isTemplateRef(data.content)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n @if (!isTemplateRef(data.content)) {\n {{ data.content }}\n }\n </div>\n }\n\n @if (data.actions) {\n <div class=\"kbq-toast__actions\">\n @if (isTemplateRef(data.actions)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n @if (!isTemplateRef(data.actions)) {\n {{ data.actions }}\n }\n </div>\n }\n</div>\n\n@if (data.closeButton) {\n <div>\n @if (data.closeButton === true) {\n <i\n kbq-icon-button=\"kbq-xmark-s_16\"\n kbq-toast-close-button\n (click)=\"close()\"\n ></i>\n }\n @if (isTemplateRef(data.closeButton)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.closeButton)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n </div>\n}\n", styles: [".kbq-toast{display:flex;box-sizing:border-box;width:var(--kbq-toast-size-container-width);height:auto;border-radius:var(--kbq-toast-size-container-border-radius);padding-left:var(--kbq-toast-size-container-padding-left);padding-right:var(--kbq-toast-size-container-padding-right)}.kbq-toast__icon-container{flex-shrink:0;width:var(--kbq-toast-size-icon-width);max-width:var(--kbq-toast-size-icon-width);height:var(--kbq-toast-size-icon-height);max-height:var(--kbq-toast-size-icon-height);border-radius:var(--kbq-toast-size-container-border-radius);margin-right:var(--kbq-toast-size-icon-margin-right);padding-top:calc(var(--kbq-toast-size-content-padding-top) + (var(--kbq-toast-font-title-line-height) - var(--kbq-toast-size-icon-height)) / 2)}.kbq-toast__container{display:flex;flex-direction:column;flex:1;padding-top:var(--kbq-toast-size-content-padding-top);padding-right:var(--kbq-size-s);padding-bottom:var(--kbq-toast-size-content-padding-bottom);overflow:hidden}.kbq-toast__title{overflow:hidden;text-overflow:ellipsis}.kbq-toast__title>p{margin:0;overflow:hidden;text-overflow:ellipsis}.kbq-toast__title_with-content{padding-bottom:var(--kbq-toast-size-caption-padding-bottom)}.kbq-toast__text{display:flex;flex:1;align-items:center}.kbq-toast__content{display:flex;flex-direction:column}.kbq-toast__actions{display:flex;padding-top:var(--kbq-toast-size-button-stack-padding-top);gap:var(--kbq-toast-size-button-stack-content-gap-horizontal)}.kbq-toast__close-button{margin-top:calc(var(--kbq-toast-size-content-padding-top) - (var(--kbq-icon-button-size-small-vertical-padding) * 2 + 16px - var(--kbq-toast-font-title-line-height)) / 2);margin-right:var(--kbq-toast-size-close-button-margin-right)}.kbq-toast.kbq-toast_contrast{box-shadow:var(--kbq-toast-contrast-container-shadow);background:var(--kbq-toast-contrast-container-background)}.kbq-toast.kbq-toast_contrast .kbq-toast__title{color:var(--kbq-toast-contrast-container-title)}.kbq-toast.kbq-toast_contrast .kbq-toast__text{color:var(--kbq-toast-contrast-container-text)}.kbq-toast.kbq-toast_success{box-shadow:var(--kbq-toast-success-container-shadow);background:var(--kbq-toast-success-container-background)}.kbq-toast.kbq-toast_success .kbq-toast__title{color:var(--kbq-toast-success-container-title)}.kbq-toast.kbq-toast_success .kbq-toast__text{color:var(--kbq-toast-success-container-text)}.kbq-toast.kbq-toast_warning{box-shadow:var(--kbq-toast-warning-container-shadow);background:var(--kbq-toast-warning-container-background)}.kbq-toast.kbq-toast_warning .kbq-toast__title{color:var(--kbq-toast-warning-container-title)}.kbq-toast.kbq-toast_warning .kbq-toast__text{color:var(--kbq-toast-warning-container-text)}.kbq-toast.kbq-toast_error{box-shadow:var(--kbq-toast-error-container-shadow);background:var(--kbq-toast-error-container-background)}.kbq-toast.kbq-toast_error .kbq-toast__title{color:var(--kbq-toast-error-container-title)}.kbq-toast.kbq-toast_error .kbq-toast__text{color:var(--kbq-toast-error-container-text)}.kbq-toast{font-size:var(--kbq-toast-font-text-font-size);font-weight:var(--kbq-toast-font-text-font-weight);line-height:var(--kbq-toast-font-text-line-height);font-family:var(--kbq-toast-font-text-font-family);text-transform:var(--kbq-toast-font-text-text-transform);font-feature-settings:var(--kbq-toast-font-text-font-feature-settings);letter-spacing:var(--kbq-toast-font-text-letter-spacing)}.kbq-toast__title{font-size:var(--kbq-toast-font-title-font-size);font-weight:var(--kbq-toast-font-title-font-weight);line-height:var(--kbq-toast-font-title-line-height);font-family:var(--kbq-toast-font-title-font-family);text-transform:var(--kbq-toast-font-title-text-transform);font-feature-settings:var(--kbq-toast-font-title-font-feature-settings);letter-spacing:var(--kbq-toast-font-title-letter-spacing)}\n", ".kbq-toast{--kbq-toast-size-container-width: 360px;--kbq-toast-size-container-border-radius: var(--kbq-size-s);--kbq-toast-size-container-padding-left: var(--kbq-size-m);--kbq-toast-size-container-padding-right: var(--kbq-size-s);--kbq-toast-size-content-padding-top: var(--kbq-size-l);--kbq-toast-size-content-padding-bottom: var(--kbq-size-l);--kbq-toast-size-caption-padding-bottom: var(--kbq-size-xxs);--kbq-toast-size-icon-width: var(--kbq-size-l);--kbq-toast-size-icon-height: var(--kbq-size-l);--kbq-toast-size-icon-margin-right: var(--kbq-size-s);--kbq-toast-size-icon-border-radius: 50%;--kbq-toast-size-close-button-margin-top: var(--kbq-size-m);--kbq-toast-size-close-button-margin-right: var(--kbq-size-xxs);--kbq-toast-size-button-stack-padding-top: var(--kbq-size-s);--kbq-toast-size-button-stack-content-gap-horizontal: var(--kbq-size-m);--kbq-toast-font-title-font-size: var(--kbq-typography-text-normal-font-size);--kbq-toast-font-title-line-height: var(--kbq-typography-text-normal-line-height);--kbq-toast-font-title-letter-spacing: var(--kbq-typography-text-normal-letter-spacing);--kbq-toast-font-title-font-weight: var(--kbq-typography-text-normal-font-weight);--kbq-toast-font-title-font-family: var(--kbq-typography-text-normal-font-family);--kbq-toast-font-title-text-transform: var(--kbq-typography-text-normal-text-transform);--kbq-toast-font-title-font-feature-settings: var(--kbq-typography-text-normal-font-feature-settings);--kbq-toast-font-text-font-size: var(--kbq-typography-text-normal-font-size);--kbq-toast-font-text-line-height: var(--kbq-typography-text-normal-line-height);--kbq-toast-font-text-letter-spacing: var(--kbq-typography-text-normal-letter-spacing);--kbq-toast-font-text-font-weight: var(--kbq-typography-text-normal-font-weight);--kbq-toast-font-text-font-family: var(--kbq-typography-text-normal-font-family);--kbq-toast-font-text-text-transform: var(--kbq-typography-text-normal-text-transform);--kbq-toast-font-text-font-feature-settings: var(--kbq-typography-text-normal-font-feature-settings)}:where(.kbq-light,.theme-light,.kbq-theme-light){--kbq-toast-contrast-container-background: var(--kbq-background-card);--kbq-toast-contrast-container-title: var(--kbq-foreground-contrast);--kbq-toast-contrast-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-contrast-container-shadow: var(--kbq-shadow-popup);--kbq-toast-error-container-background: var(--kbq-background-card);--kbq-toast-error-container-title: var(--kbq-foreground-contrast);--kbq-toast-error-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-error-container-shadow: var(--kbq-shadow-popup);--kbq-toast-warning-container-background: var(--kbq-background-card);--kbq-toast-warning-container-title: var(--kbq-foreground-contrast);--kbq-toast-warning-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-warning-container-shadow: var(--kbq-shadow-popup);--kbq-toast-success-container-background: var(--kbq-background-card);--kbq-toast-success-container-title: var(--kbq-foreground-contrast);--kbq-toast-success-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-success-container-shadow: var(--kbq-shadow-popup)}:where(.kbq-dark,.theme-dark,.kbq-theme-dark){--kbq-toast-contrast-container-background: var(--kbq-background-card);--kbq-toast-contrast-container-title: var(--kbq-foreground-contrast);--kbq-toast-contrast-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-contrast-container-shadow: var(--kbq-shadow-popup);--kbq-toast-error-container-background: var(--kbq-background-card);--kbq-toast-error-container-title: var(--kbq-foreground-contrast);--kbq-toast-error-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-error-container-shadow: var(--kbq-shadow-popup);--kbq-toast-warning-container-background: var(--kbq-background-card);--kbq-toast-warning-container-title: var(--kbq-foreground-contrast);--kbq-toast-warning-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-warning-container-shadow: var(--kbq-shadow-popup);--kbq-toast-success-container-background: var(--kbq-background-card);--kbq-toast-success-container-title: var(--kbq-foreground-contrast);--kbq-toast-success-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-success-container-shadow: var(--kbq-shadow-popup)}\n"] }]
|
|
105
|
+
}, animations: [kbqToastAnimations.toastState], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (data.icon) {\n <div class=\"kbq-toast__icon-container layout-row layout-align-start-start\">\n @if (data.icon === true) {\n @switch (data.style) {\n @case ('contrast') {\n <i\n kbq-icon=\"kbq-info-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('success') {\n <i\n kbq-icon=\"kbq-check-circle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('warning') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('error') {\n <i\n kbq-icon=\"kbq-exclamation-triangle_16\"\n class=\"kbq-toast__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n }\n }\n @if (isTemplateRef(data.icon)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n </div>\n}\n\n<div class=\"kbq-toast__container\">\n @if (data.title) {\n <div\n kbq-title\n class=\"kbq-toast__title\"\n [class.kbq-toast__title_with-content]=\"data.caption || data.content\"\n >\n @if (isTemplateRef(data.title)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n @if (!isTemplateRef(data.title)) {\n <p>{{ data.title }}</p>\n }\n </div>\n }\n\n @if (data.caption) {\n <div\n kbq-title\n [class.kbq-toast__text]=\"data.title\"\n [class.kbq-toast__title]=\"!data.title\"\n >\n @if (isTemplateRef(data.caption)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n @if (!isTemplateRef(data.caption)) {\n {{ data.caption }}\n }\n </div>\n }\n\n @if (data.content) {\n <div class=\"kbq-toast__content\">\n @if (isTemplateRef(data.content)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n @if (!isTemplateRef(data.content)) {\n {{ data.content }}\n }\n </div>\n }\n\n @if (data.actions) {\n <div class=\"kbq-toast__actions\">\n @if (isTemplateRef(data.actions)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n @if (!isTemplateRef(data.actions)) {\n {{ data.actions }}\n }\n </div>\n }\n</div>\n\n@if (data.closeButton) {\n <div>\n @if (data.closeButton === true) {\n <i\n kbq-icon-button=\"kbq-xmark-s_16\"\n kbq-toast-close-button\n (click)=\"close()\"\n ></i>\n }\n @if (isTemplateRef(data.closeButton)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(data.closeButton)\"\n [ngTemplateOutletContext]=\"{ $implicit }\"\n />\n }\n </div>\n}\n", styles: [".kbq-toast{display:flex;box-sizing:border-box;width:var(--kbq-toast-size-container-width);height:auto;border-radius:var(--kbq-toast-size-container-border-radius);padding-left:var(--kbq-toast-size-container-padding-left);padding-right:var(--kbq-toast-size-container-padding-right)}.kbq-toast__icon-container{flex-shrink:0;width:var(--kbq-toast-size-icon-width);max-width:var(--kbq-toast-size-icon-width);height:var(--kbq-toast-size-icon-height);max-height:var(--kbq-toast-size-icon-height);border-radius:var(--kbq-toast-size-container-border-radius);margin-right:var(--kbq-toast-size-icon-margin-right);padding-top:calc(var(--kbq-toast-size-content-padding-top) + (var(--kbq-toast-font-title-line-height) - var(--kbq-toast-size-icon-height)) / 2)}.kbq-toast__container{display:flex;flex-direction:column;flex:1;padding-top:var(--kbq-toast-size-content-padding-top);padding-right:var(--kbq-size-s);padding-bottom:var(--kbq-toast-size-content-padding-bottom);overflow:hidden}.kbq-toast__title{overflow:hidden;text-overflow:ellipsis}.kbq-toast__title>p{margin:0;overflow:hidden;text-overflow:ellipsis}.kbq-toast__title_with-content{padding-bottom:var(--kbq-toast-size-caption-padding-bottom)}.kbq-toast__text{display:flex;flex:1;align-items:center}.kbq-toast__content{display:flex;flex-direction:column}.kbq-toast__actions{display:flex;padding-top:var(--kbq-toast-size-button-stack-padding-top);gap:var(--kbq-toast-size-button-stack-content-gap-horizontal)}.kbq-toast__close-button{margin-top:calc(var(--kbq-toast-size-content-padding-top) - (var(--kbq-icon-button-size-small-vertical-padding) * 2 + 16px - var(--kbq-toast-font-title-line-height)) / 2);margin-right:var(--kbq-toast-size-close-button-margin-right)}.kbq-toast.kbq-toast_contrast{box-shadow:var(--kbq-toast-contrast-container-shadow);background:var(--kbq-toast-contrast-container-background)}.kbq-toast.kbq-toast_contrast .kbq-toast__title{color:var(--kbq-toast-contrast-container-title)}.kbq-toast.kbq-toast_contrast .kbq-toast__text{color:var(--kbq-toast-contrast-container-text)}.kbq-toast.kbq-toast_success{box-shadow:var(--kbq-toast-success-container-shadow);background:var(--kbq-toast-success-container-background)}.kbq-toast.kbq-toast_success .kbq-toast__title{color:var(--kbq-toast-success-container-title)}.kbq-toast.kbq-toast_success .kbq-toast__text{color:var(--kbq-toast-success-container-text)}.kbq-toast.kbq-toast_warning{box-shadow:var(--kbq-toast-warning-container-shadow);background:var(--kbq-toast-warning-container-background)}.kbq-toast.kbq-toast_warning .kbq-toast__title{color:var(--kbq-toast-warning-container-title)}.kbq-toast.kbq-toast_warning .kbq-toast__text{color:var(--kbq-toast-warning-container-text)}.kbq-toast.kbq-toast_error{box-shadow:var(--kbq-toast-error-container-shadow);background:var(--kbq-toast-error-container-background)}.kbq-toast.kbq-toast_error .kbq-toast__title{color:var(--kbq-toast-error-container-title)}.kbq-toast.kbq-toast_error .kbq-toast__text{color:var(--kbq-toast-error-container-text)}.kbq-toast{font-size:var(--kbq-toast-font-text-font-size);font-weight:var(--kbq-toast-font-text-font-weight);line-height:var(--kbq-toast-font-text-line-height);font-family:var(--kbq-toast-font-text-font-family);text-transform:var(--kbq-toast-font-text-text-transform);font-feature-settings:var(--kbq-toast-font-text-font-feature-settings);letter-spacing:var(--kbq-toast-font-text-letter-spacing)}.kbq-toast__title{font-size:var(--kbq-toast-font-title-font-size);font-weight:var(--kbq-toast-font-title-font-weight);line-height:var(--kbq-toast-font-title-line-height);font-family:var(--kbq-toast-font-title-font-family);text-transform:var(--kbq-toast-font-title-text-transform);font-feature-settings:var(--kbq-toast-font-title-font-feature-settings);letter-spacing:var(--kbq-toast-font-title-letter-spacing)}\n", ".kbq-toast-container{--kbq-toast-stack-size-margin-top: var(--kbq-size-m);--kbq-toast-stack-size-margin-right: var(--kbq-size-m);--kbq-toast-stack-size-gap: var(--kbq-size-s);--kbq-toast-size-container-width: 360px;--kbq-toast-size-container-border-radius: var(--kbq-size-s);--kbq-toast-size-container-padding-left: var(--kbq-size-m);--kbq-toast-size-container-padding-right: var(--kbq-size-s);--kbq-toast-size-content-padding-top: var(--kbq-size-l);--kbq-toast-size-content-padding-bottom: var(--kbq-size-l);--kbq-toast-size-caption-padding-bottom: var(--kbq-size-xxs);--kbq-toast-size-icon-width: var(--kbq-size-l);--kbq-toast-size-icon-height: var(--kbq-size-l);--kbq-toast-size-icon-margin-right: var(--kbq-size-s);--kbq-toast-size-icon-border-radius: 50%;--kbq-toast-size-close-button-margin-top: var(--kbq-size-m);--kbq-toast-size-close-button-margin-right: var(--kbq-size-xxs);--kbq-toast-size-button-stack-padding-top: var(--kbq-size-s);--kbq-toast-size-button-stack-content-gap-horizontal: var(--kbq-size-m);--kbq-toast-font-title-font-size: var(--kbq-typography-text-normal-font-size);--kbq-toast-font-title-line-height: var(--kbq-typography-text-normal-line-height);--kbq-toast-font-title-letter-spacing: var(--kbq-typography-text-normal-letter-spacing);--kbq-toast-font-title-font-weight: var(--kbq-typography-text-normal-font-weight);--kbq-toast-font-title-font-family: var(--kbq-typography-text-normal-font-family);--kbq-toast-font-title-text-transform: var(--kbq-typography-text-normal-text-transform);--kbq-toast-font-title-font-feature-settings: var(--kbq-typography-text-normal-font-feature-settings);--kbq-toast-font-text-font-size: var(--kbq-typography-text-normal-font-size);--kbq-toast-font-text-line-height: var(--kbq-typography-text-normal-line-height);--kbq-toast-font-text-letter-spacing: var(--kbq-typography-text-normal-letter-spacing);--kbq-toast-font-text-font-weight: var(--kbq-typography-text-normal-font-weight);--kbq-toast-font-text-font-family: var(--kbq-typography-text-normal-font-family);--kbq-toast-font-text-text-transform: var(--kbq-typography-text-normal-text-transform);--kbq-toast-font-text-font-feature-settings: var(--kbq-typography-text-normal-font-feature-settings)}:where(.kbq-light,.theme-light,.kbq-theme-light){--kbq-toast-contrast-container-background: var(--kbq-background-card);--kbq-toast-contrast-container-title: var(--kbq-foreground-contrast);--kbq-toast-contrast-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-contrast-container-shadow: var(--kbq-shadow-popup);--kbq-toast-error-container-background: var(--kbq-background-card);--kbq-toast-error-container-title: var(--kbq-foreground-contrast);--kbq-toast-error-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-error-container-shadow: var(--kbq-shadow-popup);--kbq-toast-warning-container-background: var(--kbq-background-card);--kbq-toast-warning-container-title: var(--kbq-foreground-contrast);--kbq-toast-warning-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-warning-container-shadow: var(--kbq-shadow-popup);--kbq-toast-success-container-background: var(--kbq-background-card);--kbq-toast-success-container-title: var(--kbq-foreground-contrast);--kbq-toast-success-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-success-container-shadow: var(--kbq-shadow-popup)}:where(.kbq-dark,.theme-dark,.kbq-theme-dark){--kbq-toast-contrast-container-background: var(--kbq-background-card);--kbq-toast-contrast-container-title: var(--kbq-foreground-contrast);--kbq-toast-contrast-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-contrast-container-shadow: var(--kbq-shadow-popup);--kbq-toast-error-container-background: var(--kbq-background-card);--kbq-toast-error-container-title: var(--kbq-foreground-contrast);--kbq-toast-error-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-error-container-shadow: var(--kbq-shadow-popup);--kbq-toast-warning-container-background: var(--kbq-background-card);--kbq-toast-warning-container-title: var(--kbq-foreground-contrast);--kbq-toast-warning-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-warning-container-shadow: var(--kbq-shadow-popup);--kbq-toast-success-container-background: var(--kbq-background-card);--kbq-toast-success-container-title: var(--kbq-foreground-contrast);--kbq-toast-success-container-text: var(--kbq-foreground-contrast-secondary);--kbq-toast-success-container-shadow: var(--kbq-shadow-popup)}\n"] }]
|
|
106
106
|
}], ctorParameters: () => [{ type: i1.KbqToastData }, { type: i6.KbqToastService, decorators: [{
|
|
107
107
|
type: Inject,
|
|
108
108
|
args: [forwardRef(() => KbqToastService)]
|
|
109
109
|
}] }, { type: i0.ElementRef }, { type: i2.FocusMonitor }] });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90b2FzdC90b2FzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RvYXN0L3RvYXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFFTixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUFRM0QsTUFBTSxPQUFPLG1CQUFtQjtpSUFBbkIsbUJBQW1CO3FIQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBTi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSx5QkFBeUI7cUJBQ25DO2lCQUNKOztBQUdELElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQXVCWCxNQUFN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QUFFLFNBQVM7cUJBQzdCLGNBQ1csQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsbUJBQzFCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OzBCQTRCaEMsTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgT25EZXN0cm95LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGZvcndhcmRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBrYnFUb2FzdEFuaW1hdGlvbnMgfSBmcm9tICcuL3RvYXN0LWFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgS2JxVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEticVRvYXN0RGF0YSwgS2JxVG9hc3RTdHlsZSB9IGZyb20gJy4vdG9hc3QudHlwZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ticS10b2FzdC1jbG9zZS1idXR0b25dJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLXRvYXN0X19jbG9zZS1idXR0b24nXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFUb2FzdENsb3NlQnV0dG9uIHt9XG5cbmxldCBpZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2JxLXRvYXN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RvYXN0LmNvbXBvbmVudC5zY3NzJywgJy4vdG9hc3QtdG9rZW5zLnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLXRvYXN0JyxcbiAgICAgICAgJ1tjbGFzc10nOiAndG9hc3RTdHlsZScsXG4gICAgICAgICdbY2xhc3Mua2JxLXRvYXN0X2Rpc21pc3NpYmxlXSc6ICdkYXRhLmNsb3NlQnV0dG9uJyxcbiAgICAgICAgJ1tAc3RhdGVdJzogJ2FuaW1hdGlvblN0YXRlJyxcbiAgICAgICAgJyhAc3RhdGUuc3RhcnQpJzogJ29uQW5pbWF0aW9uKCRldmVudCknLFxuICAgICAgICAnKEBzdGF0ZS5kb25lKSc6ICdvbkFuaW1hdGlvbigkZXZlbnQpJyxcblxuICAgICAgICAnKG1vdXNlZW50ZXIpJzogJ2hvdmVyZWQubmV4dCh0cnVlKScsXG4gICAgICAgICcobW91c2VsZWF2ZSknOiAnaG92ZXJlZC5uZXh0KGZhbHNlKScsXG5cbiAgICAgICAgJyhrZXlkb3duLmVzYyknOiAnY2xvc2UoKSdcbiAgICB9LFxuICAgIGFuaW1hdGlvbnM6IFtrYnFUb2FzdEFuaW1hdGlvbnMudG9hc3RTdGF0ZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBLYnFUb2FzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgdGhlbWVQYWxldHRlID0gVGhlbWVQYWxldHRlO1xuXG4gICAgYW5pbWF0aW9uU3RhdGUgPSAndm9pZCc7XG5cbiAgICByZWFkb25seSBob3ZlcmVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcmVhZG9ubHkgZm9jdXNlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgaWQgPSBpZCsrO1xuICAgIHR0bDtcbiAgICBkZWxheTtcblxuICAgICRpbXBsaWNpdDtcblxuICAgIGdldCB0b2FzdFN0eWxlKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgW2BrYnEtdG9hc3RfJHt0aGlzLmRhdGEuc3R5bGV9YF06IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXQgaXNGb2N1c2VkT3JIb3ZlcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3ZlcmVkLmdldFZhbHVlKCkgfHwgdGhpcy5mb2N1c2VkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHJlYWRvbmx5IGRhdGE6IEticVRvYXN0RGF0YSxcbiAgICAgICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IEticVRvYXN0U2VydmljZSkpIHJlYWRvbmx5IHNlcnZpY2U6IEticVRvYXN0U2VydmljZSxcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3JcbiAgICApIHtcbiAgICAgICAgdGhpcy4kaW1wbGljaXQgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuZGF0YS5zdHlsZSA9IHRoaXMuZGF0YS5zdHlsZSB8fCBLYnFUb2FzdFN0eWxlLkNvbnRyYXN0O1xuICAgICAgICB0aGlzLmRhdGEuaWNvbiA9IHRoaXMuZGF0YS5pY29uICE9PSB1bmRlZmluZWQgPyB0aGlzLmRhdGEuaWNvbiA6IHRydWU7XG4gICAgICAgIHRoaXMuZGF0YS5pY29uQ2xhc3MgPSB0aGlzLmRhdGEuaWNvbkNsYXNzIHx8IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5kYXRhLmNsb3NlQnV0dG9uID0gdGhpcy5kYXRhLmNsb3NlQnV0dG9uICE9PSB1bmRlZmluZWQgPyB0aGlzLmRhdGEuY2xvc2VCdXR0b24gOiB0cnVlO1xuXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSAndmlzaWJsZSc7XG5cbiAgICAgICAgdGhpcy5ydW5Gb2N1c01vbml0b3IoKTtcblxuICAgICAgICB0aGlzLmhvdmVyZWQuc3Vic2NyaWJlKHRoaXMuc2VydmljZS5ob3ZlcmVkKTtcbiAgICAgICAgdGhpcy5mb2N1c2VkLnN1YnNjcmliZSh0aGlzLnNlcnZpY2UuZm9jdXNlZCk7XG5cbiAgICAgICAgbWVyZ2UodGhpcy5ob3ZlcmVkLCB0aGlzLmZvY3VzZWQpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnR0bCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy50dGwgPSB0aGlzLnR0bCA8IHRoaXMuZGVsYXkgPyB0aGlzLmRlbGF5IDogdGhpcy50dGw7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5zdG9wRm9jdXNNb25pdG9yKCk7XG5cbiAgICAgICAgdGhpcy5ob3ZlcmVkLm5leHQoZmFsc2UpO1xuICAgICAgICB0aGlzLmZvY3VzZWQubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS5oaWRlKHRoaXMuaWQpO1xuICAgIH1cblxuICAgIGlzVGVtcGxhdGVSZWYodmFsdWUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWY7XG4gICAgfVxuXG4gICAgb25BbmltYXRpb24oJGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgICAgICB0aGlzLnNlcnZpY2UuYW5pbWF0aW9uLm5leHQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJ1bkZvY3VzTW9uaXRvcigpIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3JcbiAgICAgICAgICAgIC5tb25pdG9yKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0cnVlKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgob3JpZ2luOiBGb2N1c09yaWdpbikgPT4gdGhpcy5mb2N1c2VkLm5leHQoISFvcmlnaW4pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0b3BGb2N1c01vbml0b3IoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG59XG4iLCJAaWYgKGRhdGEuaWNvbikge1xuICAgIDxkaXYgY2xhc3M9XCJrYnEtdG9hc3RfX2ljb24tY29udGFpbmVyIGxheW91dC1yb3cgbGF5b3V0LWFsaWduLXN0YXJ0LXN0YXJ0XCI+XG4gICAgICAgIEBpZiAoZGF0YS5pY29uID09PSB0cnVlKSB7XG4gICAgICAgICAgICBAc3dpdGNoIChkYXRhLnN0eWxlKSB7XG4gICAgICAgICAgICAgICAgQGNhc2UgKCdjb250cmFzdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGticS1pY29uPVwia2JxLWluZm8tY2lyY2xlXzE2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwia2JxLXRvYXN0X19pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCIkYW55KGRhdGEuc3R5bGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImRhdGEuaWNvbkNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGNhc2UgKCdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAga2JxLWljb249XCJrYnEtY2hlY2stY2lyY2xlXzE2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwia2JxLXRvYXN0X19pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCIkYW55KGRhdGEuc3R5bGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImRhdGEuaWNvbkNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGNhc2UgKCd3YXJuaW5nJykge1xuICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAga2JxLWljb249XCJrYnEtZXhjbGFtYXRpb24tdHJpYW5nbGVfMTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJrYnEtdG9hc3RfX2ljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIiRhbnkoZGF0YS5zdHlsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZGF0YS5pY29uQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAY2FzZSAoJ2Vycm9yJykge1xuICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAga2JxLWljb249XCJrYnEtZXhjbGFtYXRpb24tdHJpYW5nbGVfMTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJrYnEtdG9hc3RfX2ljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIiRhbnkoZGF0YS5zdHlsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZGF0YS5pY29uQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGlzVGVtcGxhdGVSZWYoZGF0YS5pY29uKSkge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZGF0YS5pY29uKVwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0IH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxufVxuXG48ZGl2IGNsYXNzPVwia2JxLXRvYXN0X19jb250YWluZXJcIj5cbiAgICBAaWYgKGRhdGEudGl0bGUpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAga2JxLXRpdGxlXG4gICAgICAgICAgICBjbGFzcz1cImticS10b2FzdF9fdGl0bGVcIlxuICAgICAgICAgICAgW2NsYXNzLmticS10b2FzdF9fdGl0bGVfd2l0aC1jb250ZW50XT1cImRhdGEuY2FwdGlvbiB8fCBkYXRhLmNvbnRlbnRcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKGlzVGVtcGxhdGVSZWYoZGF0YS50aXRsZSkpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZGF0YS50aXRsZSlcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoIWlzVGVtcGxhdGVSZWYoZGF0YS50aXRsZSkpIHtcbiAgICAgICAgICAgICAgICA8cD57eyBkYXRhLnRpdGxlIH19PC9wPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICBAaWYgKGRhdGEuY2FwdGlvbikge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBrYnEtdGl0bGVcbiAgICAgICAgICAgIFtjbGFzcy5rYnEtdG9hc3RfX3RleHRdPVwiZGF0YS50aXRsZVwiXG4gICAgICAgICAgICBbY2xhc3Mua2JxLXRvYXN0X190aXRsZV09XCIhZGF0YS50aXRsZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoaXNUZW1wbGF0ZVJlZihkYXRhLmNhcHRpb24pKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGRhdGEuY2FwdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoIWlzVGVtcGxhdGVSZWYoZGF0YS5jYXB0aW9uKSkge1xuICAgICAgICAgICAgICAgIHt7IGRhdGEuY2FwdGlvbiB9fVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICBAaWYgKGRhdGEuY29udGVudCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLXRvYXN0X19jb250ZW50XCI+XG4gICAgICAgICAgICBAaWYgKGlzVGVtcGxhdGVSZWYoZGF0YS5jb250ZW50KSkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShkYXRhLmNvbnRlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0IH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKCFpc1RlbXBsYXRlUmVmKGRhdGEuY29udGVudCkpIHtcbiAgICAgICAgICAgICAgICB7eyBkYXRhLmNvbnRlbnQgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGlmIChkYXRhLmFjdGlvbnMpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImticS10b2FzdF9fYWN0aW9uc1wiPlxuICAgICAgICAgICAgQGlmIChpc1RlbXBsYXRlUmVmKGRhdGEuYWN0aW9ucykpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZGF0YS5hY3Rpb25zKVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdCB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICghaXNUZW1wbGF0ZVJlZihkYXRhLmFjdGlvbnMpKSB7XG4gICAgICAgICAgICAgICAge3sgZGF0YS5hY3Rpb25zIH19XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvZGl2PlxuXG5AaWYgKGRhdGEuY2xvc2VCdXR0b24pIHtcbiAgICA8ZGl2PlxuICAgICAgICBAaWYgKGRhdGEuY2xvc2VCdXR0b24gPT09IHRydWUpIHtcbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAga2JxLWljb24tYnV0dG9uPVwia2JxLXhtYXJrLXNfMTZcIlxuICAgICAgICAgICAgICAgIGticS10b2FzdC1jbG9zZS1idXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgICAgICA+PC9pPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoaXNUZW1wbGF0ZVJlZihkYXRhLmNsb3NlQnV0dG9uKSkge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZGF0YS5jbG9zZUJ1dHRvbilcIlxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdCB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90b2FzdC90b2FzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RvYXN0L3RvYXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFFTixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUFRM0QsTUFBTSxPQUFPLG1CQUFtQjtpSUFBbkIsbUJBQW1CO3FIQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBTi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSx5QkFBeUI7cUJBQ25DO2lCQUNKOztBQUdELElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQXVCWCxNQUFN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QUFFLFNBQVM7cUJBQzdCLGNBQ1csQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsbUJBQzFCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OzBCQTRCaEMsTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgT25EZXN0cm95LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGZvcndhcmRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBrYnFUb2FzdEFuaW1hdGlvbnMgfSBmcm9tICcuL3RvYXN0LWFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgS2JxVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEticVRvYXN0RGF0YSwgS2JxVG9hc3RTdHlsZSB9IGZyb20gJy4vdG9hc3QudHlwZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ticS10b2FzdC1jbG9zZS1idXR0b25dJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLXRvYXN0X19jbG9zZS1idXR0b24nXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFUb2FzdENsb3NlQnV0dG9uIHt9XG5cbmxldCBpZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2JxLXRvYXN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RvYXN0LmNvbXBvbmVudC5zY3NzJywgJy4vdG9hc3QtdG9rZW5zLnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLXRvYXN0JyxcbiAgICAgICAgJ1tjbGFzc10nOiAndG9hc3RTdHlsZScsXG4gICAgICAgICdbY2xhc3Mua2JxLXRvYXN0X2Rpc21pc3NpYmxlXSc6ICdkYXRhLmNsb3NlQnV0dG9uJyxcbiAgICAgICAgJ1tAc3RhdGVdJzogJ2FuaW1hdGlvblN0YXRlJyxcbiAgICAgICAgJyhAc3RhdGUuc3RhcnQpJzogJ29uQW5pbWF0aW9uKCRldmVudCknLFxuICAgICAgICAnKEBzdGF0ZS5kb25lKSc6ICdvbkFuaW1hdGlvbigkZXZlbnQpJyxcblxuICAgICAgICAnKG1vdXNlZW50ZXIpJzogJ2hvdmVyZWQubmV4dCh0cnVlKScsXG4gICAgICAgICcobW91c2VsZWF2ZSknOiAnaG92ZXJlZC5uZXh0KGZhbHNlKScsXG5cbiAgICAgICAgJyhrZXlkb3duLmVzYyknOiAnY2xvc2UoKSdcbiAgICB9LFxuICAgIGFuaW1hdGlvbnM6IFtrYnFUb2FzdEFuaW1hdGlvbnMudG9hc3RTdGF0ZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBLYnFUb2FzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgdGhlbWVQYWxldHRlID0gVGhlbWVQYWxldHRlO1xuXG4gICAgYW5pbWF0aW9uU3RhdGUgPSAndm9pZCc7XG5cbiAgICByZWFkb25seSBob3ZlcmVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcmVhZG9ubHkgZm9jdXNlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgaWQgPSBpZCsrO1xuICAgIHR0bDtcbiAgICBkZWxheTtcblxuICAgICRpbXBsaWNpdDtcblxuICAgIGdldCB0b2FzdFN0eWxlKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgW2BrYnEtdG9hc3RfJHt0aGlzLmRhdGEuc3R5bGV9YF06IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXQgaXNGb2N1c2VkT3JIb3ZlcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3ZlcmVkLmdldFZhbHVlKCkgfHwgdGhpcy5mb2N1c2VkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHJlYWRvbmx5IGRhdGE6IEticVRvYXN0RGF0YSxcbiAgICAgICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IEticVRvYXN0U2VydmljZSkpIHJlYWRvbmx5IHNlcnZpY2U6IEticVRvYXN0U2VydmljZSxcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3JcbiAgICApIHtcbiAgICAgICAgdGhpcy4kaW1wbGljaXQgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuZGF0YS5zdHlsZSA9IHRoaXMuZGF0YS5zdHlsZSB8fCBLYnFUb2FzdFN0eWxlLkNvbnRyYXN0O1xuICAgICAgICB0aGlzLmRhdGEuaWNvbiA9IHRoaXMuZGF0YS5pY29uICE9PSB1bmRlZmluZWQgPyB0aGlzLmRhdGEuaWNvbiA6IHRydWU7XG4gICAgICAgIHRoaXMuZGF0YS5pY29uQ2xhc3MgPSB0aGlzLmRhdGEuaWNvbkNsYXNzIHx8IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5kYXRhLmNsb3NlQnV0dG9uID0gdGhpcy5kYXRhLmNsb3NlQnV0dG9uICE9PSB1bmRlZmluZWQgPyB0aGlzLmRhdGEuY2xvc2VCdXR0b24gOiB0cnVlO1xuXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSAndmlzaWJsZSc7XG5cbiAgICAgICAgdGhpcy5ydW5Gb2N1c01vbml0b3IoKTtcblxuICAgICAgICB0aGlzLmhvdmVyZWQuc3Vic2NyaWJlKHRoaXMuc2VydmljZS5ob3ZlcmVkKTtcbiAgICAgICAgdGhpcy5mb2N1c2VkLnN1YnNjcmliZSh0aGlzLnNlcnZpY2UuZm9jdXNlZCk7XG5cbiAgICAgICAgbWVyZ2UodGhpcy5ob3ZlcmVkLCB0aGlzLmZvY3VzZWQpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnR0bCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy50dGwgPSB0aGlzLnR0bCA8IHRoaXMuZGVsYXkgPyB0aGlzLmRlbGF5IDogdGhpcy50dGw7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5zdG9wRm9jdXNNb25pdG9yKCk7XG5cbiAgICAgICAgdGhpcy5ob3ZlcmVkLm5leHQoZmFsc2UpO1xuICAgICAgICB0aGlzLmZvY3VzZWQubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS5oaWRlKHRoaXMuaWQpO1xuICAgIH1cblxuICAgIGlzVGVtcGxhdGVSZWYodmFsdWUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWY7XG4gICAgfVxuXG4gICAgb25BbmltYXRpb24oJGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgICAgICB0aGlzLnNlcnZpY2UuYW5pbWF0aW9uLm5leHQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJ1bkZvY3VzTW9uaXRvcigpIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3JcbiAgICAgICAgICAgIC5tb25pdG9yKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0cnVlKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgob3JpZ2luOiBGb2N1c09yaWdpbikgPT4gdGhpcy5mb2N1c2VkLm5leHQoISFvcmlnaW4pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0b3BGb2N1c01vbml0b3IoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG59XG4iLCJAaWYgKGRhdGEuaWNvbikge1xuICAgIDxkaXYgY2xhc3M9XCJrYnEtdG9hc3RfX2ljb24tY29udGFpbmVyIGxheW91dC1yb3cgbGF5b3V0LWFsaWduLXN0YXJ0LXN0YXJ0XCI+XG4gICAgICAgIEBpZiAoZGF0YS5pY29uID09PSB0cnVlKSB7XG4gICAgICAgICAgICBAc3dpdGNoIChkYXRhLnN0eWxlKSB7XG4gICAgICAgICAgICAgICAgQGNhc2UgKCdjb250cmFzdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGticS1pY29uPVwia2JxLWluZm8tY2lyY2xlXzE2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwia2JxLXRvYXN0X19pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCIkYW55KGRhdGEuc3R5bGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImRhdGEuaWNvbkNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGNhc2UgKCdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAga2JxLWljb249XCJrYnEtY2hlY2stY2lyY2xlXzE2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwia2JxLXRvYXN0X19pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCIkYW55KGRhdGEuc3R5bGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImRhdGEuaWNvbkNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGNhc2UgKCd3YXJuaW5nJykge1xuICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAga2JxLWljb249XCJrYnEtZXhjbGFtYXRpb24tdHJpYW5nbGVfMTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJrYnEtdG9hc3RfX2ljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIiRhbnkoZGF0YS5zdHlsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZGF0YS5pY29uQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAY2FzZSAoJ2Vycm9yJykge1xuICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAga2JxLWljb249XCJrYnEtZXhjbGFtYXRpb24tdHJpYW5nbGVfMTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJrYnEtdG9hc3RfX2ljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIiRhbnkoZGF0YS5zdHlsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZGF0YS5pY29uQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGlzVGVtcGxhdGVSZWYoZGF0YS5pY29uKSkge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZGF0YS5pY29uKVwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0IH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxufVxuXG48ZGl2IGNsYXNzPVwia2JxLXRvYXN0X19jb250YWluZXJcIj5cbiAgICBAaWYgKGRhdGEudGl0bGUpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAga2JxLXRpdGxlXG4gICAgICAgICAgICBjbGFzcz1cImticS10b2FzdF9fdGl0bGVcIlxuICAgICAgICAgICAgW2NsYXNzLmticS10b2FzdF9fdGl0bGVfd2l0aC1jb250ZW50XT1cImRhdGEuY2FwdGlvbiB8fCBkYXRhLmNvbnRlbnRcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKGlzVGVtcGxhdGVSZWYoZGF0YS50aXRsZSkpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZGF0YS50aXRsZSlcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoIWlzVGVtcGxhdGVSZWYoZGF0YS50aXRsZSkpIHtcbiAgICAgICAgICAgICAgICA8cD57eyBkYXRhLnRpdGxlIH19PC9wPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICBAaWYgKGRhdGEuY2FwdGlvbikge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBrYnEtdGl0bGVcbiAgICAgICAgICAgIFtjbGFzcy5rYnEtdG9hc3RfX3RleHRdPVwiZGF0YS50aXRsZVwiXG4gICAgICAgICAgICBbY2xhc3Mua2JxLXRvYXN0X190aXRsZV09XCIhZGF0YS50aXRsZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoaXNUZW1wbGF0ZVJlZihkYXRhLmNhcHRpb24pKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGRhdGEuY2FwdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoIWlzVGVtcGxhdGVSZWYoZGF0YS5jYXB0aW9uKSkge1xuICAgICAgICAgICAgICAgIHt7IGRhdGEuY2FwdGlvbiB9fVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICBAaWYgKGRhdGEuY29udGVudCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLXRvYXN0X19jb250ZW50XCI+XG4gICAgICAgICAgICBAaWYgKGlzVGVtcGxhdGVSZWYoZGF0YS5jb250ZW50KSkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShkYXRhLmNvbnRlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0IH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKCFpc1RlbXBsYXRlUmVmKGRhdGEuY29udGVudCkpIHtcbiAgICAgICAgICAgICAgICB7eyBkYXRhLmNvbnRlbnQgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGlmIChkYXRhLmFjdGlvbnMpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImticS10b2FzdF9fYWN0aW9uc1wiPlxuICAgICAgICAgICAgQGlmIChpc1RlbXBsYXRlUmVmKGRhdGEuYWN0aW9ucykpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZGF0YS5hY3Rpb25zKVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdCB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICghaXNUZW1wbGF0ZVJlZihkYXRhLmFjdGlvbnMpKSB7XG4gICAgICAgICAgICAgICAge3sgZGF0YS5hY3Rpb25zIH19XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvZGl2PlxuXG5AaWYgKGRhdGEuY2xvc2VCdXR0b24pIHtcbiAgICA8ZGl2PlxuICAgICAgICBAaWYgKGRhdGEuY2xvc2VCdXR0b24gPT09IHRydWUpIHtcbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAga2JxLWljb24tYnV0dG9uPVwia2JxLXhtYXJrLXNfMTZcIlxuICAgICAgICAgICAgICAgIGticS10b2FzdC1jbG9zZS1idXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgICAgICA+PC9pPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoaXNUZW1wbGF0ZVJlZihkYXRhLmNsb3NlQnV0dG9uKSkge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZGF0YS5jbG9zZUJ1dHRvbilcIlxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdCB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
|
|
@@ -182,6 +182,18 @@ export class KbqTooltipTrigger extends KbqPopUpTrigger {
|
|
|
182
182
|
this.applyRelativeToPointer();
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* method allows to show the tooltip relative to the element
|
|
187
|
+
* Use this approach when it is not possible to define a trigger in the template.
|
|
188
|
+
*
|
|
189
|
+
* For example:
|
|
190
|
+
* const tooltip = new KbqTooltipTrigger();
|
|
191
|
+
* tooltip.showForElement(element);
|
|
192
|
+
*/
|
|
193
|
+
showForElement(element) {
|
|
194
|
+
this.show();
|
|
195
|
+
this.strategy.setOrigin(element);
|
|
196
|
+
}
|
|
185
197
|
updateData() {
|
|
186
198
|
if (!this.instance) {
|
|
187
199
|
return;
|
|
@@ -370,4 +382,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
370
382
|
type: Input,
|
|
371
383
|
args: ['kbqTooltipHeader']
|
|
372
384
|
}] } });
|
|
373
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFOUQsT0FBTyxFQUFFLE9BQU8sRUFBaUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBRUwsTUFBTSxFQUdOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixlQUFlLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsUUFBUSxFQUNSLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGFBQWEsRUFDYixpQkFBaUIsRUFDcEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFNUQsTUFBTSxDQUFOLElBQVksZUFJWDtBQUpELFdBQVksZUFBZTtJQUN2QixzQ0FBbUIsQ0FBQTtJQUNuQixzQ0FBbUIsQ0FBQTtJQUNuQix3Q0FBcUIsQ0FBQTtBQUN6QixD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LEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFDSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFpQztRQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUV0QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQU1ELFVBQVU7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLE9BQU87UUFDWCxDQUFDO1FBRUQsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkMsQ0FBQztpSUFsQ1EseUJBQXlCO3FIQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBWHJDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLElBQUksRUFBRTt3QkFDRiwwQkFBMEIsRUFBRSxRQUFRO3dCQUVwQyxXQUFXLEVBQUUsdUJBQXVCO3dCQUNwQyxZQUFZLEVBQUUsa0JBQWtCO3FCQUNuQztpQkFDSjs4QkFHTyxPQUFPO3NCQURWLEtBQUs7dUJBQUMsb0JBQW9CO2dCQVl2QixNQUFNO3NCQURULEtBQUs7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBTY3JvbGxTdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFR5cGUsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgaW5qZWN0LFxuICAgIG51bWJlckF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgS2JxQ29tcG9uZW50Q29sb3JzLFxuICAgIEticVBvcFVwLFxuICAgIEticVBvcFVwVHJpZ2dlcixcbiAgICBQT1NJVElPTl9UT19DU1NfTUFQLFxuICAgIFBvcFVwUGxhY2VtZW50cyxcbiAgICBQb3BVcFRyaWdnZXJzLFxuICAgIGFwcGx5UG9wdXBNYXJnaW5zXG59IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEVNUFRZLCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsga2JxVG9vbHRpcEFuaW1hdGlvbnMgfSBmcm9tICcuL3Rvb2x0aXAuYW5pbWF0aW9ucyc7XG5cbmV4cG9ydCBlbnVtIFRvb2x0aXBNb2RpZmllciB7XG4gICAgRGVmYXVsdCA9ICdkZWZhdWx0JyxcbiAgICBXYXJuaW5nID0gJ3dhcm5pbmcnLFxuICAgIEV4dGVuZGVkID0gJ2V4dGVuZGVkJ1xufVxuXG5leHBvcnQgY29uc3QgS0JRX1RPT0xUSVBfT1BFTl9USU1FID0gbmV3IEluamVjdGlvblRva2VuPCgpID0+IFNjcm9sbFN0cmF0ZWd5Pigna2JxLXRvb2x0aXAtb3Blbi10aW1lJyk7XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgY29uc3QgS0JRX1RPT0xUSVBfT1BFTl9USU1FX1BST1ZJREVSID0ge1xuICAgIHByb3ZpZGU6IEtCUV9UT09MVElQX09QRU5fVElNRSxcbiAgICB1c2VWYWx1ZTogeyB2YWx1ZTogMCB9XG59O1xuXG5leHBvcnQgY29uc3QgTUlOX1RJTUVfRk9SX0RFTEFZID0gMjAwMDtcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXRcbiAgICBdLFxuICAgIHNlbGVjdG9yOiAna2JxLXRvb2x0aXAtY29tcG9uZW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9vbHRpcC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9vbHRpcC5zY3NzJywgJy4vdG9vbHRpcC10b2tlbnMuc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFtrYnFUb29sdGlwQW5pbWF0aW9ucy50b29sdGlwU3RhdGVdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbS0JRX1RPT0xUSVBfT1BFTl9USU1FX1BST1ZJREVSXVxufSlcbmV4cG9ydCBjbGFzcyBLYnFUb29sdGlwQ29tcG9uZW50IGV4dGVuZHMgS2JxUG9wVXAge1xuICAgIHByZWZpeCA9ICdrYnEtdG9vbHRpcCc7XG5cbiAgICBAVmlld0NoaWxkKCd0b29sdGlwJykgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoS0JRX1RPT0xUSVBfT1BFTl9USU1FKSBwcml2YXRlIG9wZW5UaW1lKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgc2hvdyhkZWxheTogbnVtYmVyKSB7XG4gICAgICAgIGlmICghdGhpcy5jb250ZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci5zaG93KERhdGUubm93KCkgLSB0aGlzLm9wZW5UaW1lLnZhbHVlIDwgTUlOX1RJTUVfRk9SX0RFTEFZID8gMCA6IGRlbGF5KTtcblxuICAgICAgICBpZiAodGhpcy5vZmZzZXQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGFwcGx5UG9wdXBNYXJnaW5zKFxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgdGhpcy5wcmVmaXgsXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5vZmZzZXQhLnRvU3RyaW5nKCl9cHhgXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vcGVuVGltZS52YWx1ZSA9IERhdGUubm93KCk7XG4gICAgfVxuXG4gICAgdXBkYXRlQ2xhc3NNYXAocGxhY2VtZW50OiBzdHJpbmcsIGN1c3RvbUNsYXNzOiBzdHJpbmcsIHsgbW9kaWZpZXIgfSkge1xuICAgICAgICBjb25zdCBjbGFzc01hcCA9IHtcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeH1fJHttb2RpZmllcn1gXTogdHJ1ZVxuICAgICAgICB9O1xuXG4gICAgICAgIHN1cGVyLnVwZGF0ZUNsYXNzTWFwKHBsYWNlbWVudCwgY3VzdG9tQ2xhc3MsIGNsYXNzTWFwKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBLQlFfVE9PTFRJUF9TQ1JPTExfU1RSQVRFR1kgPSBuZXcgSW5qZWN0aW9uVG9rZW48KCkgPT4gU2Nyb2xsU3RyYXRlZ3k+KCdrYnEtdG9vbHRpcC1zY3JvbGwtc3RyYXRlZ3knKTtcblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiBrYnFUb29sdGlwU2Nyb2xsU3RyYXRlZ3lGYWN0b3J5KG92ZXJsYXk6IE92ZXJsYXkpOiAoKSA9PiBTY3JvbGxTdHJhdGVneSB7XG4gICAgcmV0dXJuICgpID0+IG92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5jbG9zZSgpO1xufVxuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGNvbnN0IEtCUV9UT09MVElQX1NDUk9MTF9TVFJBVEVHWV9GQUNUT1JZX1BST1ZJREVSID0ge1xuICAgIHByb3ZpZGU6IEtCUV9UT09MVElQX1NDUk9MTF9TVFJBVEVHWSxcbiAgICBkZXBzOiBbT3ZlcmxheV0sXG4gICAgdXNlRmFjdG9yeToga2JxVG9vbHRpcFNjcm9sbFN0cmF0ZWd5RmFjdG9yeVxufTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1trYnFUb29sdGlwXScsXG4gICAgZXhwb3J0QXM6ICdrYnFUb29sdGlwJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3Mua2JxLXRvb2x0aXBfb3Blbl0nOiAnaXNPcGVuJyxcblxuICAgICAgICAnKGtleWRvd24pJzogJ2hhbmRsZUtleWRvd24oJGV2ZW50KScsXG4gICAgICAgICcodG91Y2hlbmQpJzogJ2hhbmRsZVRvdWNoZW5kKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFUb29sdGlwVHJpZ2dlciBleHRlbmRzIEticVBvcFVwVHJpZ2dlcjxLYnFUb29sdGlwQ29tcG9uZW50PiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJvdGVjdGVkIHNjcm9sbFN0cmF0ZWd5OiAoKSA9PiBTY3JvbGxTdHJhdGVneSA9IGluamVjdChLQlFfVE9PTFRJUF9TQ1JPTExfU1RSQVRFR1kpO1xuICAgIHByb3RlY3RlZCBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvciA9IGluamVjdChGb2N1c01vbml0b3IpO1xuXG4gICAgQElucHV0KCdrYnFWaXNpYmxlJylcbiAgICBnZXQgdG9vbHRpcFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGU7XG4gICAgfVxuXG4gICAgc2V0IHRvb2x0aXBWaXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZVZpc2libGUodmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgna2JxUGxhY2VtZW50JylcbiAgICBnZXQgdG9vbHRpcFBsYWNlbWVudCgpOiBQb3BVcFBsYWNlbWVudHMge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGFjZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb25zIHRoZSB0b29sdGlwIHJlbGF0aXZlIHRvIHRoZSBtb3VzZSBjdXJzb3IuIE9ubHkgYXZhaWxhYmxlIGZvciB0b3AgYW5kIGJvdHRvbSBrYnFQbGFjZW1lbnQuXG4gICAgICogRG9lcyBub3Qgd29yayB3aXRoIGticVBsYWNlbWVudFByaW9yaXR5LlxuICAgICAqL1xuICAgIEBJbnB1dCh7IGFsaWFzOiAna2JxUmVsYXRpdmVUb1BvaW50ZXInLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcmVsYXRpdmVUb1BvaW50ZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHNldCB0b29sdGlwUGxhY2VtZW50KHZhbHVlOiBQb3BVcFBsYWNlbWVudHMpIHtcbiAgICAgICAgc3VwZXIudXBkYXRlUGxhY2VtZW50KHZhbHVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoJ2ticVBsYWNlbWVudFByaW9yaXR5JylcbiAgICBnZXQgdG9vbHRpcFBsYWNlbWVudFByaW9yaXR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGFjZW1lbnRQcmlvcml0eTtcbiAgICB9XG5cbiAgICBzZXQgdG9vbHRpcFBsYWNlbWVudFByaW9yaXR5KHZhbHVlKSB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZVBsYWNlbWVudFByaW9yaXR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoJ2ticVRvb2x0aXAnKVxuICAgIGdldCBjb250ZW50KCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudDtcbiAgICB9XG5cbiAgICBzZXQgY29udGVudChjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2NvbnRlbnQgPSBjb250ZW50O1xuXG4gICAgICAgIHRoaXMudXBkYXRlRGF0YSgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgna2JxVG9vbHRpcERpc2FibGVkJylcbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBzZXQgZGlzYWJsZWQodmFsdWUpIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuXG4gICAgICAgIGlmICh0aGlzLl9kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoJ2ticUVudGVyRGVsYXknKSBlbnRlckRlbGF5ID0gNDAwO1xuICAgIEBJbnB1dCgna2JxTGVhdmVEZWxheScpIGxlYXZlRGVsYXkgPSAwO1xuXG4gICAgQElucHV0KCdrYnFUcmlnZ2VyJylcbiAgICBnZXQgdHJpZ2dlcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHJpZ2dlcjtcbiAgICB9XG5cbiAgICBzZXQgdHJpZ2dlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdHJpZ2dlciA9IHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fdHJpZ2dlciA9IGAke1BvcFVwVHJpZ2dlcnMuSG92ZXJ9LCAke1BvcFVwVHJpZ2dlcnMuRm9jdXN9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdExpc3RlbmVycygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfdHJpZ2dlciA9IGAke1BvcFVwVHJpZ2dlcnMuSG92ZXJ9LCAke1BvcFVwVHJpZ2dlcnMuRm9jdXN9YDtcblxuICAgIEBJbnB1dCgna2JxVG9vbHRpcENsYXNzJylcbiAgICBnZXQgY3VzdG9tQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1c3RvbUNsYXNzIHx8ICcnO1xuICAgIH1cblxuICAgIHNldCBjdXN0b21DbGFzcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fY3VzdG9tQ2xhc3MgPSB2YWx1ZTtcblxuICAgICAgICAgICAgdGhpcy51cGRhdGVDbGFzc01hcCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fY3VzdG9tQ2xhc3MgPSAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgna2JxVG9vbHRpcENvbnRleHQnKVxuICAgIGdldCBjb250ZXh0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dDtcbiAgICB9XG5cbiAgICBzZXQgY29udGV4dChjdHgpIHtcbiAgICAgICAgdGhpcy5fY29udGV4dCA9IGN0eDtcbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29udGV4dDogYW55ID0gbnVsbDtcblxuICAgIEBJbnB1dCgna2JxVG9vbHRpcENvbG9yJylcbiAgICBnZXQgY29sb3IoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGBrYnEtJHt0aGlzLl9jb2xvcn1gO1xuICAgIH1cblxuICAgIHNldCBjb2xvcih2YWx1ZTogS2JxQ29tcG9uZW50Q29sb3JzIHwgc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2NvbG9yID0gdmFsdWUgfHwgS2JxQ29tcG9uZW50Q29sb3JzLkNvbnRyYXN0O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbG9yOiBLYnFDb21wb25lbnRDb2xvcnMgfCBzdHJpbmcgPSBLYnFDb21wb25lbnRDb2xvcnMuQ29udHJhc3Q7XG5cbiAgICBASW5wdXQoeyBhbGlhczogJ2ticVRvb2x0aXBBcnJvdycsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhcnJvdzogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KHsgYWxpYXM6ICdrYnFUb29sdGlwT2Zmc2V0JywgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgb2Zmc2V0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBPdXRwdXQoJ2ticVBsYWNlbWVudENoYW5nZScpIHBsYWNlbWVudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoJ2ticVZpc2libGVDaGFuZ2UnKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgcHJpdmF0ZSBnZXQgaGFzQ2xpY2tJblRyaWdnZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyaWdnZXIuaW5jbHVkZXMoUG9wVXBUcmlnZ2Vycy5DbGljayk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9yaWdpblNlbGVjdG9yID0gJy5rYnEtdG9vbHRpcCc7XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcmxheUNvbmZpZzogT3ZlcmxheUNvbmZpZyA9IHtcbiAgICAgICAgcGFuZWxDbGFzczogJ2ticS10b29sdGlwLXBhbmVsJ1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgbW9kaWZpZXI6IFRvb2x0aXBNb2RpZmllciA9IFRvb2x0aXBNb2RpZmllci5EZWZhdWx0O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cblxuICAgIHNob3coZGVsYXk6IG51bWJlciA9IHRoaXMuZW50ZXJEZWxheSkge1xuICAgICAgICBpZiAodGhpcy50cmlnZ2VyTmFtZSA9PT0gJ2ZvY3VzJyAmJiB0aGlzLmZvY3VzTW9uaXRvclsnX2xhc3RGb2N1c09yaWdpbiddICE9PSAna2V5Ym9hcmQnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci5zaG93KGRlbGF5KTtcblxuICAgICAgICBpZiAodGhpcy5yZWxhdGl2ZVRvUG9pbnRlcikge1xuICAgICAgICAgICAgdGhpcy5hcHBseVJlbGF0aXZlVG9Qb2ludGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVEYXRhKCkge1xuICAgICAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UuY29udGVudCA9IHRoaXMuY29udGVudDtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5jb250ZXh0ID0gdGhpcy5jb250ZXh0ICYmIHsgJGltcGxpY2l0OiB0aGlzLmNvbnRleHQgfTtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5hcnJvdyA9IHRoaXMuYXJyb3c7XG4gICAgICAgIHRoaXMuaW5zdGFuY2Uub2Zmc2V0ID0gdGhpcy5vZmZzZXQ7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIGNsb3NpbmdBY3Rpb25zKCkge1xuICAgICAgICByZXR1cm4gbWVyZ2UoXG4gICAgICAgICAgICB0aGlzLmhhc0NsaWNrSW5UcmlnZ2VyID8gdGhpcy5vdmVybGF5UmVmIS5vdXRzaWRlUG9pbnRlckV2ZW50cygpIDogRU1QVFksXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYhLmRldGFjaG1lbnRzKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRPdmVybGF5SGFuZGxlQ29tcG9uZW50VHlwZSgpOiBUeXBlPEticVRvb2x0aXBDb21wb25lbnQ+IHtcbiAgICAgICAgcmV0dXJuIEticVRvb2x0aXBDb21wb25lbnQ7XG4gICAgfVxuXG4gICAgdXBkYXRlQ2xhc3NNYXAobmV3UGxhY2VtZW50OiBzdHJpbmcgPSB0aGlzLnBsYWNlbWVudCkge1xuICAgICAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UudXBkYXRlQ2xhc3NNYXAoUE9TSVRJT05fVE9fQ1NTX01BUFtuZXdQbGFjZW1lbnRdLCBgJHt0aGlzLmN1c3RvbUNsYXNzfSAke3RoaXMuY29sb3J9YCwge1xuICAgICAgICAgICAgbW9kaWZpZXI6IHRoaXMubW9kaWZpZXJcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFwcGx5UmVsYXRpdmVUb1BvaW50ZXIoKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLnN0cmF0ZWd5IHx8XG4gICAgICAgICAgICAhW1BvcFVwUGxhY2VtZW50cy5Ub3AsIFBvcFVwUGxhY2VtZW50cy5Cb3R0b21dLmluY2x1ZGVzKHRoaXMucGxhY2VtZW50KSB8fFxuICAgICAgICAgICAgdGhpcy50cmlnZ2VyTmFtZSAhPT0gJ21vdXNlZW50ZXInXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5yZXNldE9yaWdpbigpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0cmlnZ2VyUmVjdHMgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgcG9pbnQ6IFBvaW50ID0geyB4OiAwLCB5OiAwIH07XG5cbiAgICAgICAgdGhpcy5wbGFjZW1lbnRQcmlvcml0eSA9IG51bGw7XG5cbiAgICAgICAgaWYgKHRoaXMucGxhY2VtZW50ID09PSBQb3BVcFBsYWNlbWVudHMuVG9wKSB7XG4gICAgICAgICAgICBwb2ludC54ID0gdGhpcy5tb3VzZUV2ZW50IS54O1xuICAgICAgICAgICAgcG9pbnQueSA9IHRyaWdnZXJSZWN0cy55O1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucGxhY2VtZW50ID09PSBQb3BVcFBsYWNlbWVudHMuQm90dG9tKSB7XG4gICAgICAgICAgICBwb2ludC54ID0gdGhpcy5tb3VzZUV2ZW50IS54O1xuICAgICAgICAgICAgcG9pbnQueSA9IHRyaWdnZXJSZWN0cy55ICsgdHJpZ2dlclJlY3RzLmhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3RyYXRlZ3kuc2V0T3JpZ2luKHBvaW50KTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdba2JxV2FybmluZ1Rvb2x0aXBdJyxcbiAgICBleHBvcnRBczogJ2ticVdhcm5pbmdUb29sdGlwJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3Mua2JxLXRvb2x0aXBfb3Blbl0nOiAnaXNPcGVuJyxcblxuICAgICAgICAnKGtleWRvd24pJzogJ2hhbmRsZUtleWRvd24oJGV2ZW50KScsXG4gICAgICAgICcodG91Y2hlbmQpJzogJ2hhbmRsZVRvdWNoZW5kKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFXYXJuaW5nVG9vbHRpcFRyaWdnZXIgZXh0ZW5kcyBLYnFUb29sdGlwVHJpZ2dlciB7XG4gICAgQElucHV0KCdrYnFXYXJuaW5nVG9vbHRpcCcpXG4gICAgZ2V0IGNvbnRlbnQoKTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50O1xuICAgIH1cblxuICAgIHNldCBjb250ZW50KGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgdGhpcy5fY29udGVudCA9IGNvbnRlbnQ7XG5cbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG1vZGlmaWVyOiBUb29sdGlwTW9kaWZpZXIgPSBUb29sdGlwTW9kaWZpZXIuV2FybmluZztcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1trYnFFeHRlbmRlZFRvb2x0aXBdJyxcbiAgICBleHBvcnRBczogJ2ticUV4dGVuZGVkVG9vbHRpcCcsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLmticS10b29sdGlwX29wZW5dJzogJ2lzT3BlbicsXG5cbiAgICAgICAgJyhrZXlkb3duKSc6ICdoYW5kbGVLZXlkb3duKCRldmVudCknLFxuICAgICAgICAnKHRvdWNoZW5kKSc6ICdoYW5kbGVUb3VjaGVuZCgpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxRXh0ZW5kZWRUb29sdGlwVHJpZ2dlciBleHRlbmRzIEticVRvb2x0aXBUcmlnZ2VyIHtcbiAgICBASW5wdXQoJ2ticUV4dGVuZGVkVG9vbHRpcCcpXG4gICAgZ2V0IGNvbnRlbnQoKTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50O1xuICAgIH1cblxuICAgIHNldCBjb250ZW50KGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgdGhpcy5fY29udGVudCA9IGNvbnRlbnQ7XG5cbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfVxuXG4gICAgQElucHV0KCdrYnFUb29sdGlwSGVhZGVyJylcbiAgICBnZXQgaGVhZGVyKCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGVhZGVyO1xuICAgIH1cblxuICAgIHNldCBoZWFkZXIoaGVhZGVyOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2hlYWRlciA9IGhlYWRlcjtcblxuICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oZWFkZXI6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwcm90ZWN0ZWQgbW9kaWZpZXI6IFRvb2x0aXBNb2RpZmllciA9IFRvb2x0aXBNb2RpZmllci5FeHRlbmRlZDtcblxuICAgIHVwZGF0ZURhdGEoKSB7XG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIudXBkYXRlRGF0YSgpO1xuICAgICAgICB0aGlzLmluc3RhbmNlLmhlYWRlciA9IHRoaXMuaGVhZGVyO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICAjdG9vbHRpcFxuICAgIGNsYXNzPVwia2JxLXRvb2x0aXBcIlxuICAgIFtjbGFzcy5rYnEtdG9vbHRpcF9hcnJvd2xlc3NdPVwiIWFycm93XCJcbiAgICBbbmdDbGFzc109XCJjbGFzc01hcFwiXG4gICAgKEBzdGF0ZS5kb25lKT1cImFuaW1hdGlvbkRvbmUoJGV2ZW50KVwiXG4gICAgKEBzdGF0ZS5zdGFydCk9XCJhbmltYXRpb25TdGFydCgpXCJcbiAgICBbQHN0YXRlXT1cInZpc2liaWxpdHlcIlxuPlxuICAgIDxkaXYgY2xhc3M9XCJrYnEtdG9vbHRpcF9faW5uZXJcIj5cbiAgICAgICAgQGlmIChhcnJvdykge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS10b29sdGlwX19hcnJvd1wiPjwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChoZWFkZXIpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtdG9vbHRpcF9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgQGlmIChpc1RlbXBsYXRlUmVmKGhlYWRlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShoZWFkZXIpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJjb250ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmICghaXNUZW1wbGF0ZVJlZihoZWFkZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3sgaGVhZGVyIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cImticS10b29sdGlwX19jb250ZW50XCI+XG4gICAgICAgICAgICBAaWYgKGlzVGVtcGxhdGVSZWYoY29udGVudCkpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoY29udGVudClcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiY29udGV4dFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoIWlzVGVtcGxhdGVSZWYoY29udGVudCkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2Pnt7IGNvbnRlbnQgfX08L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
385
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFOUQsT0FBTyxFQUFFLE9BQU8sRUFBaUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBRUwsTUFBTSxFQUdOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixlQUFlLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsUUFBUSxFQUNSLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGFBQWEsRUFDYixpQkFBaUIsRUFDcEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFNUQsTUFBTSxDQUFOLElBQVksZUFJWDtBQUpELFdBQVksZUFBZTtJQUN2QixzQ0FBbUIsQ0FBQTtJQUNuQixzQ0FBbUIsQ0FBQTtJQUNuQix3Q0FBcUIsQ0FBQTtBQUN6QixD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LE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLE9BQWtDO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBRXhCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFDSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFpQztRQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUV0QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQU1ELFVBQVU7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLE9BQU87UUFDWCxDQUFDO1FBRUQsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkMsQ0FBQztpSUFsQ1EseUJBQXlCO3FIQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBWHJDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLElBQUksRUFBRTt3QkFDRiwwQkFBMEIsRUFBRSxRQUFRO3dCQUVwQyxXQUFXLEVBQUUsdUJBQXVCO3dCQUNwQyxZQUFZLEVBQUUsa0JBQWtCO3FCQUNuQztpQkFDSjs4QkFHTyxPQUFPO3NCQURWLEtBQUs7dUJBQUMsb0JBQW9CO2dCQVl2QixNQUFNO3NCQURULEtBQUs7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBTY3JvbGxTdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFR5cGUsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgaW5qZWN0LFxuICAgIG51bWJlckF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgS2JxQ29tcG9uZW50Q29sb3JzLFxuICAgIEticVBvcFVwLFxuICAgIEticVBvcFVwVHJpZ2dlcixcbiAgICBQT1NJVElPTl9UT19DU1NfTUFQLFxuICAgIFBvcFVwUGxhY2VtZW50cyxcbiAgICBQb3BVcFRyaWdnZXJzLFxuICAgIGFwcGx5UG9wdXBNYXJnaW5zXG59IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEVNUFRZLCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsga2JxVG9vbHRpcEFuaW1hdGlvbnMgfSBmcm9tICcuL3Rvb2x0aXAuYW5pbWF0aW9ucyc7XG5cbmV4cG9ydCBlbnVtIFRvb2x0aXBNb2RpZmllciB7XG4gICAgRGVmYXVsdCA9ICdkZWZhdWx0JyxcbiAgICBXYXJuaW5nID0gJ3dhcm5pbmcnLFxuICAgIEV4dGVuZGVkID0gJ2V4dGVuZGVkJ1xufVxuXG5leHBvcnQgY29uc3QgS0JRX1RPT0xUSVBfT1BFTl9USU1FID0gbmV3IEluamVjdGlvblRva2VuPCgpID0+IFNjcm9sbFN0cmF0ZWd5Pigna2JxLXRvb2x0aXAtb3Blbi10aW1lJyk7XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgY29uc3QgS0JRX1RPT0xUSVBfT1BFTl9USU1FX1BST1ZJREVSID0ge1xuICAgIHByb3ZpZGU6IEtCUV9UT09MVElQX09QRU5fVElNRSxcbiAgICB1c2VWYWx1ZTogeyB2YWx1ZTogMCB9XG59O1xuXG5leHBvcnQgY29uc3QgTUlOX1RJTUVfRk9SX0RFTEFZID0gMjAwMDtcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXRcbiAgICBdLFxuICAgIHNlbGVjdG9yOiAna2JxLXRvb2x0aXAtY29tcG9uZW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9vbHRpcC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9vbHRpcC5zY3NzJywgJy4vdG9vbHRpcC10b2tlbnMuc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFtrYnFUb29sdGlwQW5pbWF0aW9ucy50b29sdGlwU3RhdGVdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbS0JRX1RPT0xUSVBfT1BFTl9USU1FX1BST1ZJREVSXVxufSlcbmV4cG9ydCBjbGFzcyBLYnFUb29sdGlwQ29tcG9uZW50IGV4dGVuZHMgS2JxUG9wVXAge1xuICAgIHByZWZpeCA9ICdrYnEtdG9vbHRpcCc7XG5cbiAgICBAVmlld0NoaWxkKCd0b29sdGlwJykgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoS0JRX1RPT0xUSVBfT1BFTl9USU1FKSBwcml2YXRlIG9wZW5UaW1lKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgc2hvdyhkZWxheTogbnVtYmVyKSB7XG4gICAgICAgIGlmICghdGhpcy5jb250ZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci5zaG93KERhdGUubm93KCkgLSB0aGlzLm9wZW5UaW1lLnZhbHVlIDwgTUlOX1RJTUVfRk9SX0RFTEFZID8gMCA6IGRlbGF5KTtcblxuICAgICAgICBpZiAodGhpcy5vZmZzZXQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGFwcGx5UG9wdXBNYXJnaW5zKFxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgdGhpcy5wcmVmaXgsXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5vZmZzZXQhLnRvU3RyaW5nKCl9cHhgXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vcGVuVGltZS52YWx1ZSA9IERhdGUubm93KCk7XG4gICAgfVxuXG4gICAgdXBkYXRlQ2xhc3NNYXAocGxhY2VtZW50OiBzdHJpbmcsIGN1c3RvbUNsYXNzOiBzdHJpbmcsIHsgbW9kaWZpZXIgfSkge1xuICAgICAgICBjb25zdCBjbGFzc01hcCA9IHtcbiAgICAgICAgICAgIFtgJHt0aGlzLnByZWZpeH1fJHttb2RpZmllcn1gXTogdHJ1ZVxuICAgICAgICB9O1xuXG4gICAgICAgIHN1cGVyLnVwZGF0ZUNsYXNzTWFwKHBsYWNlbWVudCwgY3VzdG9tQ2xhc3MsIGNsYXNzTWFwKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBLQlFfVE9PTFRJUF9TQ1JPTExfU1RSQVRFR1kgPSBuZXcgSW5qZWN0aW9uVG9rZW48KCkgPT4gU2Nyb2xsU3RyYXRlZ3k+KCdrYnEtdG9vbHRpcC1zY3JvbGwtc3RyYXRlZ3knKTtcblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiBrYnFUb29sdGlwU2Nyb2xsU3RyYXRlZ3lGYWN0b3J5KG92ZXJsYXk6IE92ZXJsYXkpOiAoKSA9PiBTY3JvbGxTdHJhdGVneSB7XG4gICAgcmV0dXJuICgpID0+IG92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5jbG9zZSgpO1xufVxuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGNvbnN0IEtCUV9UT09MVElQX1NDUk9MTF9TVFJBVEVHWV9GQUNUT1JZX1BST1ZJREVSID0ge1xuICAgIHByb3ZpZGU6IEtCUV9UT09MVElQX1NDUk9MTF9TVFJBVEVHWSxcbiAgICBkZXBzOiBbT3ZlcmxheV0sXG4gICAgdXNlRmFjdG9yeToga2JxVG9vbHRpcFNjcm9sbFN0cmF0ZWd5RmFjdG9yeVxufTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1trYnFUb29sdGlwXScsXG4gICAgZXhwb3J0QXM6ICdrYnFUb29sdGlwJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3Mua2JxLXRvb2x0aXBfb3Blbl0nOiAnaXNPcGVuJyxcblxuICAgICAgICAnKGtleWRvd24pJzogJ2hhbmRsZUtleWRvd24oJGV2ZW50KScsXG4gICAgICAgICcodG91Y2hlbmQpJzogJ2hhbmRsZVRvdWNoZW5kKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFUb29sdGlwVHJpZ2dlciBleHRlbmRzIEticVBvcFVwVHJpZ2dlcjxLYnFUb29sdGlwQ29tcG9uZW50PiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJvdGVjdGVkIHNjcm9sbFN0cmF0ZWd5OiAoKSA9PiBTY3JvbGxTdHJhdGVneSA9IGluamVjdChLQlFfVE9PTFRJUF9TQ1JPTExfU1RSQVRFR1kpO1xuICAgIHByb3RlY3RlZCBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvciA9IGluamVjdChGb2N1c01vbml0b3IpO1xuXG4gICAgQElucHV0KCdrYnFWaXNpYmxlJylcbiAgICBnZXQgdG9vbHRpcFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGU7XG4gICAgfVxuXG4gICAgc2V0IHRvb2x0aXBWaXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZVZpc2libGUodmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgna2JxUGxhY2VtZW50JylcbiAgICBnZXQgdG9vbHRpcFBsYWNlbWVudCgpOiBQb3BVcFBsYWNlbWVudHMge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGFjZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb25zIHRoZSB0b29sdGlwIHJlbGF0aXZlIHRvIHRoZSBtb3VzZSBjdXJzb3IuIE9ubHkgYXZhaWxhYmxlIGZvciB0b3AgYW5kIGJvdHRvbSBrYnFQbGFjZW1lbnQuXG4gICAgICogRG9lcyBub3Qgd29yayB3aXRoIGticVBsYWNlbWVudFByaW9yaXR5LlxuICAgICAqL1xuICAgIEBJbnB1dCh7IGFsaWFzOiAna2JxUmVsYXRpdmVUb1BvaW50ZXInLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcmVsYXRpdmVUb1BvaW50ZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHNldCB0b29sdGlwUGxhY2VtZW50KHZhbHVlOiBQb3BVcFBsYWNlbWVudHMpIHtcbiAgICAgICAgc3VwZXIudXBkYXRlUGxhY2VtZW50KHZhbHVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoJ2ticVBsYWNlbWVudFByaW9yaXR5JylcbiAgICBnZXQgdG9vbHRpcFBsYWNlbWVudFByaW9yaXR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGFjZW1lbnRQcmlvcml0eTtcbiAgICB9XG5cbiAgICBzZXQgdG9vbHRpcFBsYWNlbWVudFByaW9yaXR5KHZhbHVlKSB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZVBsYWNlbWVudFByaW9yaXR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoJ2ticVRvb2x0aXAnKVxuICAgIGdldCBjb250ZW50KCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudDtcbiAgICB9XG5cbiAgICBzZXQgY29udGVudChjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2NvbnRlbnQgPSBjb250ZW50O1xuXG4gICAgICAgIHRoaXMudXBkYXRlRGF0YSgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgna2JxVG9vbHRpcERpc2FibGVkJylcbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBzZXQgZGlzYWJsZWQodmFsdWUpIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuXG4gICAgICAgIGlmICh0aGlzLl9kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoJ2ticUVudGVyRGVsYXknKSBlbnRlckRlbGF5ID0gNDAwO1xuICAgIEBJbnB1dCgna2JxTGVhdmVEZWxheScpIGxlYXZlRGVsYXkgPSAwO1xuXG4gICAgQElucHV0KCdrYnFUcmlnZ2VyJylcbiAgICBnZXQgdHJpZ2dlcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHJpZ2dlcjtcbiAgICB9XG5cbiAgICBzZXQgdHJpZ2dlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdHJpZ2dlciA9IHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fdHJpZ2dlciA9IGAke1BvcFVwVHJpZ2dlcnMuSG92ZXJ9LCAke1BvcFVwVHJpZ2dlcnMuRm9jdXN9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdExpc3RlbmVycygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfdHJpZ2dlciA9IGAke1BvcFVwVHJpZ2dlcnMuSG92ZXJ9LCAke1BvcFVwVHJpZ2dlcnMuRm9jdXN9YDtcblxuICAgIEBJbnB1dCgna2JxVG9vbHRpcENsYXNzJylcbiAgICBnZXQgY3VzdG9tQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1c3RvbUNsYXNzIHx8ICcnO1xuICAgIH1cblxuICAgIHNldCBjdXN0b21DbGFzcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fY3VzdG9tQ2xhc3MgPSB2YWx1ZTtcblxuICAgICAgICAgICAgdGhpcy51cGRhdGVDbGFzc01hcCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fY3VzdG9tQ2xhc3MgPSAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgna2JxVG9vbHRpcENvbnRleHQnKVxuICAgIGdldCBjb250ZXh0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dDtcbiAgICB9XG5cbiAgICBzZXQgY29udGV4dChjdHgpIHtcbiAgICAgICAgdGhpcy5fY29udGV4dCA9IGN0eDtcbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29udGV4dDogYW55ID0gbnVsbDtcblxuICAgIEBJbnB1dCgna2JxVG9vbHRpcENvbG9yJylcbiAgICBnZXQgY29sb3IoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGBrYnEtJHt0aGlzLl9jb2xvcn1gO1xuICAgIH1cblxuICAgIHNldCBjb2xvcih2YWx1ZTogS2JxQ29tcG9uZW50Q29sb3JzIHwgc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2NvbG9yID0gdmFsdWUgfHwgS2JxQ29tcG9uZW50Q29sb3JzLkNvbnRyYXN0O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbG9yOiBLYnFDb21wb25lbnRDb2xvcnMgfCBzdHJpbmcgPSBLYnFDb21wb25lbnRDb2xvcnMuQ29udHJhc3Q7XG5cbiAgICBASW5wdXQoeyBhbGlhczogJ2ticVRvb2x0aXBBcnJvdycsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhcnJvdzogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KHsgYWxpYXM6ICdrYnFUb29sdGlwT2Zmc2V0JywgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgb2Zmc2V0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBPdXRwdXQoJ2ticVBsYWNlbWVudENoYW5nZScpIHBsYWNlbWVudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoJ2ticVZpc2libGVDaGFuZ2UnKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgcHJpdmF0ZSBnZXQgaGFzQ2xpY2tJblRyaWdnZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyaWdnZXIuaW5jbHVkZXMoUG9wVXBUcmlnZ2Vycy5DbGljayk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9yaWdpblNlbGVjdG9yID0gJy5rYnEtdG9vbHRpcCc7XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcmxheUNvbmZpZzogT3ZlcmxheUNvbmZpZyA9IHtcbiAgICAgICAgcGFuZWxDbGFzczogJ2ticS10b29sdGlwLXBhbmVsJ1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgbW9kaWZpZXI6IFRvb2x0aXBNb2RpZmllciA9IFRvb2x0aXBNb2RpZmllci5EZWZhdWx0O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cblxuICAgIHNob3coZGVsYXk6IG51bWJlciA9IHRoaXMuZW50ZXJEZWxheSkge1xuICAgICAgICBpZiAodGhpcy50cmlnZ2VyTmFtZSA9PT0gJ2ZvY3VzJyAmJiB0aGlzLmZvY3VzTW9uaXRvclsnX2xhc3RGb2N1c09yaWdpbiddICE9PSAna2V5Ym9hcmQnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci5zaG93KGRlbGF5KTtcblxuICAgICAgICBpZiAodGhpcy5yZWxhdGl2ZVRvUG9pbnRlcikge1xuICAgICAgICAgICAgdGhpcy5hcHBseVJlbGF0aXZlVG9Qb2ludGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBtZXRob2QgYWxsb3dzIHRvIHNob3cgdGhlIHRvb2x0aXAgcmVsYXRpdmUgdG8gdGhlIGVsZW1lbnRcbiAgICAgKiBVc2UgdGhpcyBhcHByb2FjaCB3aGVuIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBkZWZpbmUgYSB0cmlnZ2VyIGluIHRoZSB0ZW1wbGF0ZS5cbiAgICAgKlxuICAgICAqIEZvciBleGFtcGxlOlxuICAgICAqIGNvbnN0IHRvb2x0aXAgPSBuZXcgS2JxVG9vbHRpcFRyaWdnZXIoKTtcbiAgICAgKiB0b29sdGlwLnNob3dGb3JFbGVtZW50KGVsZW1lbnQpO1xuICAgICAqL1xuICAgIHNob3dGb3JFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuc2hvdygpO1xuICAgICAgICB0aGlzLnN0cmF0ZWd5LnNldE9yaWdpbihlbGVtZW50KTtcbiAgICB9XG5cbiAgICB1cGRhdGVEYXRhKCkge1xuICAgICAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UuY29udGVudCA9IHRoaXMuY29udGVudDtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5jb250ZXh0ID0gdGhpcy5jb250ZXh0ICYmIHsgJGltcGxpY2l0OiB0aGlzLmNvbnRleHQgfTtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5hcnJvdyA9IHRoaXMuYXJyb3c7XG4gICAgICAgIHRoaXMuaW5zdGFuY2Uub2Zmc2V0ID0gdGhpcy5vZmZzZXQ7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIGNsb3NpbmdBY3Rpb25zKCkge1xuICAgICAgICByZXR1cm4gbWVyZ2UoXG4gICAgICAgICAgICB0aGlzLmhhc0NsaWNrSW5UcmlnZ2VyID8gdGhpcy5vdmVybGF5UmVmIS5vdXRzaWRlUG9pbnRlckV2ZW50cygpIDogRU1QVFksXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYhLmRldGFjaG1lbnRzKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRPdmVybGF5SGFuZGxlQ29tcG9uZW50VHlwZSgpOiBUeXBlPEticVRvb2x0aXBDb21wb25lbnQ+IHtcbiAgICAgICAgcmV0dXJuIEticVRvb2x0aXBDb21wb25lbnQ7XG4gICAgfVxuXG4gICAgdXBkYXRlQ2xhc3NNYXAobmV3UGxhY2VtZW50OiBzdHJpbmcgPSB0aGlzLnBsYWNlbWVudCkge1xuICAgICAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UudXBkYXRlQ2xhc3NNYXAoUE9TSVRJT05fVE9fQ1NTX01BUFtuZXdQbGFjZW1lbnRdLCBgJHt0aGlzLmN1c3RvbUNsYXNzfSAke3RoaXMuY29sb3J9YCwge1xuICAgICAgICAgICAgbW9kaWZpZXI6IHRoaXMubW9kaWZpZXJcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFwcGx5UmVsYXRpdmVUb1BvaW50ZXIoKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLnN0cmF0ZWd5IHx8XG4gICAgICAgICAgICAhW1BvcFVwUGxhY2VtZW50cy5Ub3AsIFBvcFVwUGxhY2VtZW50cy5Cb3R0b21dLmluY2x1ZGVzKHRoaXMucGxhY2VtZW50KSB8fFxuICAgICAgICAgICAgdGhpcy50cmlnZ2VyTmFtZSAhPT0gJ21vdXNlZW50ZXInXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5yZXNldE9yaWdpbigpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0cmlnZ2VyUmVjdHMgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgcG9pbnQ6IFBvaW50ID0geyB4OiAwLCB5OiAwIH07XG5cbiAgICAgICAgdGhpcy5wbGFjZW1lbnRQcmlvcml0eSA9IG51bGw7XG5cbiAgICAgICAgaWYgKHRoaXMucGxhY2VtZW50ID09PSBQb3BVcFBsYWNlbWVudHMuVG9wKSB7XG4gICAgICAgICAgICBwb2ludC54ID0gdGhpcy5tb3VzZUV2ZW50IS54O1xuICAgICAgICAgICAgcG9pbnQueSA9IHRyaWdnZXJSZWN0cy55O1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucGxhY2VtZW50ID09PSBQb3BVcFBsYWNlbWVudHMuQm90dG9tKSB7XG4gICAgICAgICAgICBwb2ludC54ID0gdGhpcy5tb3VzZUV2ZW50IS54O1xuICAgICAgICAgICAgcG9pbnQueSA9IHRyaWdnZXJSZWN0cy55ICsgdHJpZ2dlclJlY3RzLmhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3RyYXRlZ3kuc2V0T3JpZ2luKHBvaW50KTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdba2JxV2FybmluZ1Rvb2x0aXBdJyxcbiAgICBleHBvcnRBczogJ2ticVdhcm5pbmdUb29sdGlwJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3Mua2JxLXRvb2x0aXBfb3Blbl0nOiAnaXNPcGVuJyxcblxuICAgICAgICAnKGtleWRvd24pJzogJ2hhbmRsZUtleWRvd24oJGV2ZW50KScsXG4gICAgICAgICcodG91Y2hlbmQpJzogJ2hhbmRsZVRvdWNoZW5kKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFXYXJuaW5nVG9vbHRpcFRyaWdnZXIgZXh0ZW5kcyBLYnFUb29sdGlwVHJpZ2dlciB7XG4gICAgQElucHV0KCdrYnFXYXJuaW5nVG9vbHRpcCcpXG4gICAgZ2V0IGNvbnRlbnQoKTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50O1xuICAgIH1cblxuICAgIHNldCBjb250ZW50KGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgdGhpcy5fY29udGVudCA9IGNvbnRlbnQ7XG5cbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG1vZGlmaWVyOiBUb29sdGlwTW9kaWZpZXIgPSBUb29sdGlwTW9kaWZpZXIuV2FybmluZztcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1trYnFFeHRlbmRlZFRvb2x0aXBdJyxcbiAgICBleHBvcnRBczogJ2ticUV4dGVuZGVkVG9vbHRpcCcsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLmticS10b29sdGlwX29wZW5dJzogJ2lzT3BlbicsXG5cbiAgICAgICAgJyhrZXlkb3duKSc6ICdoYW5kbGVLZXlkb3duKCRldmVudCknLFxuICAgICAgICAnKHRvdWNoZW5kKSc6ICdoYW5kbGVUb3VjaGVuZCgpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxRXh0ZW5kZWRUb29sdGlwVHJpZ2dlciBleHRlbmRzIEticVRvb2x0aXBUcmlnZ2VyIHtcbiAgICBASW5wdXQoJ2ticUV4dGVuZGVkVG9vbHRpcCcpXG4gICAgZ2V0IGNvbnRlbnQoKTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50O1xuICAgIH1cblxuICAgIHNldCBjb250ZW50KGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgdGhpcy5fY29udGVudCA9IGNvbnRlbnQ7XG5cbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfVxuXG4gICAgQElucHV0KCdrYnFUb29sdGlwSGVhZGVyJylcbiAgICBnZXQgaGVhZGVyKCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGVhZGVyO1xuICAgIH1cblxuICAgIHNldCBoZWFkZXIoaGVhZGVyOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2hlYWRlciA9IGhlYWRlcjtcblxuICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oZWFkZXI6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwcm90ZWN0ZWQgbW9kaWZpZXI6IFRvb2x0aXBNb2RpZmllciA9IFRvb2x0aXBNb2RpZmllci5FeHRlbmRlZDtcblxuICAgIHVwZGF0ZURhdGEoKSB7XG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIudXBkYXRlRGF0YSgpO1xuICAgICAgICB0aGlzLmluc3RhbmNlLmhlYWRlciA9IHRoaXMuaGVhZGVyO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICAjdG9vbHRpcFxuICAgIGNsYXNzPVwia2JxLXRvb2x0aXBcIlxuICAgIFtjbGFzcy5rYnEtdG9vbHRpcF9hcnJvd2xlc3NdPVwiIWFycm93XCJcbiAgICBbbmdDbGFzc109XCJjbGFzc01hcFwiXG4gICAgKEBzdGF0ZS5kb25lKT1cImFuaW1hdGlvbkRvbmUoJGV2ZW50KVwiXG4gICAgKEBzdGF0ZS5zdGFydCk9XCJhbmltYXRpb25TdGFydCgpXCJcbiAgICBbQHN0YXRlXT1cInZpc2liaWxpdHlcIlxuPlxuICAgIDxkaXYgY2xhc3M9XCJrYnEtdG9vbHRpcF9faW5uZXJcIj5cbiAgICAgICAgQGlmIChhcnJvdykge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS10b29sdGlwX19hcnJvd1wiPjwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChoZWFkZXIpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtdG9vbHRpcF9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgQGlmIChpc1RlbXBsYXRlUmVmKGhlYWRlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShoZWFkZXIpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJjb250ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmICghaXNUZW1wbGF0ZVJlZihoZWFkZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3sgaGVhZGVyIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cImticS10b29sdGlwX19jb250ZW50XCI+XG4gICAgICAgICAgICBAaWYgKGlzVGVtcGxhdGVSZWYoY29udGVudCkpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoY29udGVudClcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiY29udGV4dFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoIWlzVGVtcGxhdGVSZWYoY29udGVudCkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2Pnt7IGNvbnRlbnQgfX08L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|