@agorapulse/ui-components 15.1.17 → 15.1.19
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/agorapulse-ui-components-15.1.19.tgz +0 -0
- package/esm2020/infobox/infobox.component.mjs +51 -18
- package/esm2020/toggle/toggle.component.mjs +86 -35
- package/fesm2015/agorapulse-ui-components-infobox.mjs +47 -17
- package/fesm2015/agorapulse-ui-components-infobox.mjs.map +1 -1
- package/fesm2015/agorapulse-ui-components-toggle.mjs +82 -31
- package/fesm2015/agorapulse-ui-components-toggle.mjs.map +1 -1
- package/fesm2020/agorapulse-ui-components-infobox.mjs +47 -17
- package/fesm2020/agorapulse-ui-components-infobox.mjs.map +1 -1
- package/fesm2020/agorapulse-ui-components-toggle.mjs +82 -31
- package/fesm2020/agorapulse-ui-components-toggle.mjs.map +1 -1
- package/infobox/infobox.component.d.ts +20 -6
- package/package.json +1 -1
- package/toggle/toggle.component.d.ts +11 -3
- package/agorapulse-ui-components-15.1.17.tgz +0 -0
|
Binary file
|
|
@@ -1,37 +1,70 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { ButtonComponent } from '@agorapulse/ui-components/button';
|
|
2
|
+
import { AgorapulseUiSymbolModule, apAlertCircle, apCheckCircle, apClose, apInformationCircle, apRemoveCircle, SymbolRegistry, } from '@agorapulse/ui-symbol';
|
|
3
|
+
import { NgClass, NgIf } from '@angular/common';
|
|
4
|
+
import { ElementRef, EventEmitter } from '@angular/core';
|
|
5
|
+
import { Output } from '@angular/core';
|
|
6
|
+
import { inject } from '@angular/core';
|
|
7
|
+
import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
|
|
4
8
|
import * as i0 from "@angular/core";
|
|
5
9
|
import * as i1 from "@agorapulse/ui-symbol";
|
|
6
10
|
export class InfoboxComponent {
|
|
7
|
-
|
|
8
|
-
this.
|
|
11
|
+
set width(width) {
|
|
12
|
+
this._width = width;
|
|
13
|
+
this.fullWidth = width === 'full-width';
|
|
14
|
+
}
|
|
15
|
+
get width() {
|
|
16
|
+
return this._width;
|
|
17
|
+
}
|
|
18
|
+
constructor() {
|
|
19
|
+
this.CONTAINER_WIDTH_BREAKPOINT = 588;
|
|
20
|
+
this.symbolRegistry = inject(SymbolRegistry);
|
|
21
|
+
this.elementRef = inject(ElementRef);
|
|
22
|
+
this.fullWidth = false;
|
|
23
|
+
this.closable = false;
|
|
9
24
|
this.type = 'info';
|
|
10
|
-
this.
|
|
25
|
+
this._width = 'fit';
|
|
26
|
+
this.buttonClicked = new EventEmitter();
|
|
27
|
+
this.displayDirection = 'horizontal';
|
|
11
28
|
this.symbolIds = {
|
|
12
29
|
info: 'information-circle',
|
|
13
|
-
warning: 'alert-
|
|
14
|
-
error: '
|
|
15
|
-
success: '
|
|
30
|
+
warning: 'alert-circle',
|
|
31
|
+
error: 'remove-circle',
|
|
32
|
+
success: 'check-circle',
|
|
16
33
|
};
|
|
17
34
|
this.symbolRegistry.registerSymbols([
|
|
18
35
|
apInformationCircle,
|
|
19
|
-
apAlertTriangle,
|
|
20
36
|
apAlertCircle,
|
|
21
|
-
|
|
37
|
+
apRemoveCircle,
|
|
38
|
+
apCheckCircle,
|
|
39
|
+
apClose,
|
|
22
40
|
]);
|
|
23
41
|
}
|
|
42
|
+
onClickButton() {
|
|
43
|
+
this.buttonClicked.emit();
|
|
44
|
+
}
|
|
45
|
+
onCloseInfobox() {
|
|
46
|
+
this.elementRef.nativeElement.remove();
|
|
47
|
+
}
|
|
24
48
|
}
|
|
25
|
-
InfoboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: InfoboxComponent, deps: [
|
|
26
|
-
InfoboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: InfoboxComponent, isStandalone: true, selector: "ap-infobox", inputs: { type: "type",
|
|
49
|
+
InfoboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: InfoboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
50
|
+
InfoboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: InfoboxComponent, isStandalone: true, selector: "ap-infobox", inputs: { buttonLabel: "buttonLabel", closable: "closable", title: "title", type: "type", width: "width" }, outputs: { buttonClicked: "buttonClicked" }, host: { properties: { "class.full-width": "this.fullWidth" } }, ngImport: i0, template: "<div\n class=\"main\"\n [class.info]=\"type === 'info'\"\n [class.warning]=\"type === 'warning'\"\n [class.error]=\"type === 'error'\"\n [class.success]=\"type === 'success'\">\n <div class=\"status-banner\"></div>\n <div class=\"wrapper\">\n <div class=\"symbol-content\">\n <div class=\"symbol-wrapper\">\n <ap-symbol [symbolId]=\"symbolIds[type]\" class=\"status\" size=\"micro\"></ap-symbol>\n </div>\n <div class=\"content\">\n <div class=\"texts\">\n <span *ngIf=\"title\" class=\"title\">\n {{ title }}\n </span>\n <span class=\"text\">\n <ng-content></ng-content>\n </span>\n </div>\n <ng-container *ngIf=\"buttonLabel\">\n <ap-button\n name=\"infobox-button\"\n [config]=\"{\n style: 'stroked',\n color: 'grey'\n }\"\n (click)=\"onClickButton()\">\n {{ buttonLabel }}\n </ap-button>\n </ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"closable\">\n <button class=\"closable-button\" (click)=\"onCloseInfobox()\">\n <svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.3245 0.673336C7.16518 0.514565 6.94943 0.425415 6.7245 0.425415C6.49958 0.425415 6.28383 0.514565 6.12451 0.673336L4.00651 2.79134L1.88584 0.673336C1.72499 0.519607 1.51036 0.434955 1.28788 0.437501C1.0654 0.440048 0.852756 0.529591 0.695472 0.686962C0.538189 0.844333 0.448763 1.05702 0.44634 1.27951C0.443916 1.50199 0.528687 1.71658 0.682505 1.87734L2.79984 3.99534L0.682505 6.114C0.528687 6.27476 0.443916 6.48935 0.44634 6.71183C0.448763 6.93431 0.538189 7.147 0.695472 7.30438C0.852756 7.46175 1.0654 7.55129 1.28788 7.55384C1.51036 7.55638 1.72499 7.47173 1.88584 7.318L4.00317 5.2L6.12117 7.31867C6.28364 7.46307 6.4952 7.53986 6.71247 7.53329C6.92974 7.52671 7.13627 7.43728 7.28972 7.28332C7.44316 7.12936 7.53191 6.92254 7.53776 6.70525C7.5436 6.48796 7.46611 6.27666 7.32117 6.11467L5.20384 3.996L7.32117 1.878C7.48132 1.71867 7.57164 1.50226 7.57226 1.27636C7.57289 1.05045 7.48377 0.833548 7.3245 0.673336Z\"\n fill=\"currentColor\" />\n </svg>\n </button>\n </ng-container>\n </div>\n</div>\n", styles: ["ap-infobox{--comp-icon-size: 24px;container:infobox/inline-size;width:100%;max-width:100%;overflow:hidden;border-radius:var(--comp-infobox-border-radius)}ap-infobox .main{display:flex;font-size:var(--ref-font-size-sm);line-height:var(--ref-font-line-height-sm);align-items:center;color:var(--ref-color-grey-100);padding:var(--comp-infobox-padding-top) var(--comp-infobox-padding-right) var(--comp-infobox-padding-bottom) var(--comp-infobox-padding-left);border-radius:var(--comp-infobox-border-radius);font-family:var(--comp-infobox-text-title-font-family);box-sizing:border-box;width:100%;max-width:100%;position:relative;gap:var(--comp-infobox-button-margin-left)}ap-infobox .main .status-banner{position:absolute;left:0;top:0;width:4px;height:100%}ap-infobox .main ap-symbol{align-self:flex-start}ap-infobox .main button.closable-button{border:none;background-color:transparent;height:var(--comp-icon-size);width:var(--comp-icon-size);border-radius:100%;display:flex;align-items:center;justify-content:center;cursor:pointer}ap-infobox .main button.closable-button svg{margin:0;color:var(--ref-color-grey-60)}ap-infobox .main button.closable-button:hover{background-color:#3445631a}ap-infobox .main button.closable-button:hover svg{color:var(--ref-color-grey-80)}ap-infobox .main button.closable-button:active{background-color:#34456333}ap-infobox .main button.closable-button:active svg{color:var(--ref-color-grey-100)}ap-infobox .main .wrapper{display:flex;justify-content:space-between;width:100%;align-items:start;gap:var(--ref-spacing-xxs)}ap-infobox .main .wrapper .symbol-content{display:flex;gap:var(--ref-spacing-xs);align-items:start;flex:1}ap-infobox .main .wrapper .symbol-content .symbol-wrapper{margin-top:var(--ref-spacing-xxxs)}ap-infobox .main .wrapper .symbol-content .content{display:flex;flex-direction:column;align-items:start;flex:1;justify-content:space-between;gap:var(--ref-spacing-xxs)}ap-infobox .main .wrapper .symbol-content .content ap-button button{width:unset}ap-infobox .main .wrapper .symbol-content .content .texts{display:flex;flex-direction:column}ap-infobox .main .wrapper .symbol-content .content .texts .title{font-weight:var(--comp-infobox-text-title-weight);font-family:var(--comp-infobox-text-title-font-family);font-size:var(--comp-infobox-text-title-size);line-height:var(--comp-infobox-text-title-line-height)}ap-infobox .main.info{background-color:var(--comp-infobox-info-background-color)}ap-infobox .main.info ap-symbol.status{align-self:baseline;color:var(--comp-infobox-info-icon-color)}ap-infobox .main.info .status-banner{background-color:var(--comp-infobox-info-border-left-color)}ap-infobox .main.warning{background-color:var(--comp-infobox-warning-background-color)}ap-infobox .main.warning ap-symbol.status{color:var(--comp-infobox-warning-icon-color)}ap-infobox .main.warning .status-banner{background-color:var(--comp-infobox-warning-border-left-color)}ap-infobox .main.error{background-color:var(--comp-infobox-error-background-color)}ap-infobox .main.error ap-symbol.status{color:var(--comp-infobox-error-icon-color)}ap-infobox .main.error .status-banner{background-color:var(--comp-infobox-error-border-left-color)}ap-infobox .main.success{background-color:var(--comp-infobox-success-background-color)}ap-infobox .main.success ap-symbol.status{color:var(--comp-infobox-success-icon-color)}ap-infobox .main.success .status-banner{background-color:var(--comp-infobox-success-border-left-color)}@container infobox (min-width: 588px){.wrapper,.wrapper .symbol-content{align-items:center!important}.wrapper .symbol-content .symbol-wrapper{margin:0}.wrapper .symbol-content .content{flex-direction:row!important;align-items:center!important}}\n"], dependencies: [{ kind: "ngmodule", type: AgorapulseUiSymbolModule }, { kind: "component", type: i1.SymbolComponent, selector: "ap-symbol[symbolId]", inputs: ["color", "symbolId", "size", "state"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "ap-button[name]", inputs: ["ariaLabel", "disabled", "name", "form", "config", "loading", "locked", "menuTrigger", "symbolPosition", "ionicModalEnabled"], outputs: ["menuOpened", "menuClosed", "click", "focus", "blur"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
27
51
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: InfoboxComponent, decorators: [{
|
|
28
52
|
type: Component,
|
|
29
|
-
args: [{ selector: 'ap-infobox', standalone: true, imports: [AgorapulseUiSymbolModule, NgClass], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div
|
|
30
|
-
}], ctorParameters: function () { return [
|
|
53
|
+
args: [{ selector: 'ap-infobox', standalone: true, imports: [AgorapulseUiSymbolModule, NgClass, NgIf, ButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"main\"\n [class.info]=\"type === 'info'\"\n [class.warning]=\"type === 'warning'\"\n [class.error]=\"type === 'error'\"\n [class.success]=\"type === 'success'\">\n <div class=\"status-banner\"></div>\n <div class=\"wrapper\">\n <div class=\"symbol-content\">\n <div class=\"symbol-wrapper\">\n <ap-symbol [symbolId]=\"symbolIds[type]\" class=\"status\" size=\"micro\"></ap-symbol>\n </div>\n <div class=\"content\">\n <div class=\"texts\">\n <span *ngIf=\"title\" class=\"title\">\n {{ title }}\n </span>\n <span class=\"text\">\n <ng-content></ng-content>\n </span>\n </div>\n <ng-container *ngIf=\"buttonLabel\">\n <ap-button\n name=\"infobox-button\"\n [config]=\"{\n style: 'stroked',\n color: 'grey'\n }\"\n (click)=\"onClickButton()\">\n {{ buttonLabel }}\n </ap-button>\n </ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"closable\">\n <button class=\"closable-button\" (click)=\"onCloseInfobox()\">\n <svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.3245 0.673336C7.16518 0.514565 6.94943 0.425415 6.7245 0.425415C6.49958 0.425415 6.28383 0.514565 6.12451 0.673336L4.00651 2.79134L1.88584 0.673336C1.72499 0.519607 1.51036 0.434955 1.28788 0.437501C1.0654 0.440048 0.852756 0.529591 0.695472 0.686962C0.538189 0.844333 0.448763 1.05702 0.44634 1.27951C0.443916 1.50199 0.528687 1.71658 0.682505 1.87734L2.79984 3.99534L0.682505 6.114C0.528687 6.27476 0.443916 6.48935 0.44634 6.71183C0.448763 6.93431 0.538189 7.147 0.695472 7.30438C0.852756 7.46175 1.0654 7.55129 1.28788 7.55384C1.51036 7.55638 1.72499 7.47173 1.88584 7.318L4.00317 5.2L6.12117 7.31867C6.28364 7.46307 6.4952 7.53986 6.71247 7.53329C6.92974 7.52671 7.13627 7.43728 7.28972 7.28332C7.44316 7.12936 7.53191 6.92254 7.53776 6.70525C7.5436 6.48796 7.46611 6.27666 7.32117 6.11467L5.20384 3.996L7.32117 1.878C7.48132 1.71867 7.57164 1.50226 7.57226 1.27636C7.57289 1.05045 7.48377 0.833548 7.3245 0.673336Z\"\n fill=\"currentColor\" />\n </svg>\n </button>\n </ng-container>\n </div>\n</div>\n", styles: ["ap-infobox{--comp-icon-size: 24px;container:infobox/inline-size;width:100%;max-width:100%;overflow:hidden;border-radius:var(--comp-infobox-border-radius)}ap-infobox .main{display:flex;font-size:var(--ref-font-size-sm);line-height:var(--ref-font-line-height-sm);align-items:center;color:var(--ref-color-grey-100);padding:var(--comp-infobox-padding-top) var(--comp-infobox-padding-right) var(--comp-infobox-padding-bottom) var(--comp-infobox-padding-left);border-radius:var(--comp-infobox-border-radius);font-family:var(--comp-infobox-text-title-font-family);box-sizing:border-box;width:100%;max-width:100%;position:relative;gap:var(--comp-infobox-button-margin-left)}ap-infobox .main .status-banner{position:absolute;left:0;top:0;width:4px;height:100%}ap-infobox .main ap-symbol{align-self:flex-start}ap-infobox .main button.closable-button{border:none;background-color:transparent;height:var(--comp-icon-size);width:var(--comp-icon-size);border-radius:100%;display:flex;align-items:center;justify-content:center;cursor:pointer}ap-infobox .main button.closable-button svg{margin:0;color:var(--ref-color-grey-60)}ap-infobox .main button.closable-button:hover{background-color:#3445631a}ap-infobox .main button.closable-button:hover svg{color:var(--ref-color-grey-80)}ap-infobox .main button.closable-button:active{background-color:#34456333}ap-infobox .main button.closable-button:active svg{color:var(--ref-color-grey-100)}ap-infobox .main .wrapper{display:flex;justify-content:space-between;width:100%;align-items:start;gap:var(--ref-spacing-xxs)}ap-infobox .main .wrapper .symbol-content{display:flex;gap:var(--ref-spacing-xs);align-items:start;flex:1}ap-infobox .main .wrapper .symbol-content .symbol-wrapper{margin-top:var(--ref-spacing-xxxs)}ap-infobox .main .wrapper .symbol-content .content{display:flex;flex-direction:column;align-items:start;flex:1;justify-content:space-between;gap:var(--ref-spacing-xxs)}ap-infobox .main .wrapper .symbol-content .content ap-button button{width:unset}ap-infobox .main .wrapper .symbol-content .content .texts{display:flex;flex-direction:column}ap-infobox .main .wrapper .symbol-content .content .texts .title{font-weight:var(--comp-infobox-text-title-weight);font-family:var(--comp-infobox-text-title-font-family);font-size:var(--comp-infobox-text-title-size);line-height:var(--comp-infobox-text-title-line-height)}ap-infobox .main.info{background-color:var(--comp-infobox-info-background-color)}ap-infobox .main.info ap-symbol.status{align-self:baseline;color:var(--comp-infobox-info-icon-color)}ap-infobox .main.info .status-banner{background-color:var(--comp-infobox-info-border-left-color)}ap-infobox .main.warning{background-color:var(--comp-infobox-warning-background-color)}ap-infobox .main.warning ap-symbol.status{color:var(--comp-infobox-warning-icon-color)}ap-infobox .main.warning .status-banner{background-color:var(--comp-infobox-warning-border-left-color)}ap-infobox .main.error{background-color:var(--comp-infobox-error-background-color)}ap-infobox .main.error ap-symbol.status{color:var(--comp-infobox-error-icon-color)}ap-infobox .main.error .status-banner{background-color:var(--comp-infobox-error-border-left-color)}ap-infobox .main.success{background-color:var(--comp-infobox-success-background-color)}ap-infobox .main.success ap-symbol.status{color:var(--comp-infobox-success-icon-color)}ap-infobox .main.success .status-banner{background-color:var(--comp-infobox-success-border-left-color)}@container infobox (min-width: 588px){.wrapper,.wrapper .symbol-content{align-items:center!important}.wrapper .symbol-content .symbol-wrapper{margin:0}.wrapper .symbol-content .content{flex-direction:row!important;align-items:center!important}}\n"] }]
|
|
54
|
+
}], ctorParameters: function () { return []; }, propDecorators: { fullWidth: [{
|
|
55
|
+
type: HostBinding,
|
|
56
|
+
args: ['class.full-width']
|
|
57
|
+
}], buttonLabel: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], closable: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], title: [{
|
|
31
62
|
type: Input
|
|
32
|
-
}],
|
|
63
|
+
}], type: [{
|
|
33
64
|
type: Input
|
|
34
|
-
}],
|
|
65
|
+
}], width: [{
|
|
35
66
|
type: Input
|
|
67
|
+
}], buttonClicked: [{
|
|
68
|
+
type: Output
|
|
36
69
|
}] } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mb2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvaW5mb2JveC9zcmMvaW5mb2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvaW5mb2JveC9zcmMvaW5mb2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUVILHdCQUF3QixFQUN4QixhQUFhLEVBQ2IsYUFBYSxFQUNiLE9BQU8sRUFDUCxtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLGNBQWMsR0FDakIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFheEcsTUFBTSxPQUFPLGdCQUFnQjtJQWF6QixJQUFhLEtBQUssQ0FBQyxLQUFtQjtRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssS0FBSyxZQUFZLENBQUM7SUFDNUMsQ0FBQztJQUNELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBY0Q7UUFoQ2lCLCtCQUEwQixHQUFHLEdBQUcsQ0FBQztRQUVqQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWhCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFHbkQsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixTQUFJLEdBQTZDLE1BQU0sQ0FBQztRQVN6RCxXQUFNLEdBQWlCLEtBQUssQ0FBQztRQUUzQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFbkQscUJBQWdCLEdBQThCLFlBQVksQ0FBQztRQUVsRCxjQUFTLEdBQW9DO1lBQ2xELElBQUksRUFBRSxvQkFBb0I7WUFDMUIsT0FBTyxFQUFFLGNBQWM7WUFDdkIsS0FBSyxFQUFFLGVBQWU7WUFDdEIsT0FBTyxFQUFFLGNBQWM7U0FDMUIsQ0FBQztRQUdFLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO1lBQ2hDLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2IsY0FBYztZQUNkLGFBQWE7WUFDYixPQUFPO1NBQ1YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDM0MsQ0FBQzs7NkdBakRRLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLCtSQzVCN0IscW5GQTZDQSwrcUhEckJjLHdCQUF3QixpS0FBVyxJQUFJLDZGQUFFLGVBQWU7MkZBSXpELGdCQUFnQjtrQkFUNUIsU0FBUzsrQkFDSSxZQUFZLGNBR1YsSUFBSSxXQUNQLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsbUJBQ2xELHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7MEVBUUosU0FBUztzQkFBekMsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBRXRCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBU0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QnV0dG9uQ29tcG9uZW50fSBmcm9tICdAYWdvcmFwdWxzZS91aS1jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQge1xuICAgIGFnb3JhcHVsc2VTeW1ib2wsXG4gICAgQWdvcmFwdWxzZVVpU3ltYm9sTW9kdWxlLFxuICAgIGFwQWxlcnRDaXJjbGUsXG4gICAgYXBDaGVja0NpcmNsZSxcbiAgICBhcENsb3NlLFxuICAgIGFwSW5mb3JtYXRpb25DaXJjbGUsXG4gICAgYXBSZW1vdmVDaXJjbGUsXG4gICAgU3ltYm9sUmVnaXN0cnksXG59IGZyb20gJ0BhZ29yYXB1bHNlL3VpLXN5bWJvbCc7XG5pbXBvcnQge05nQ2xhc3MsIE5nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0FmdGVyVmlld0luaXQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge091dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2luamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuZXhwb3J0IHR5cGUgSW5mb2JveERpcmVjdGlvbiA9ICdjb2x1bW4nIHwgJ3Jvdyc7XG5leHBvcnQgdHlwZSBJbmZvYm94V2lkdGggPSAnZml0JyB8ICdmdWxsLXdpZHRoJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcC1pbmZvYm94JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5mb2JveC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5mb2JveC5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0Fnb3JhcHVsc2VVaVN5bWJvbE1vZHVsZSwgTmdDbGFzcywgTmdJZiwgQnV0dG9uQ29tcG9uZW50XSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBJbmZvYm94Q29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IENPTlRBSU5FUl9XSURUSF9CUkVBS1BPSU5UID0gNTg4O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzeW1ib2xSZWdpc3RyeSA9IGluamVjdChTeW1ib2xSZWdpc3RyeSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mdWxsLXdpZHRoJykgZnVsbFdpZHRoOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBidXR0b25MYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNsb3NhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgdHlwZTogJ2luZm8nIHwgJ3dhcm5pbmcnIHwgJ2Vycm9yJyB8ICdzdWNjZXNzJyA9ICdpbmZvJztcblxuICAgIEBJbnB1dCgpIHNldCB3aWR0aCh3aWR0aDogSW5mb2JveFdpZHRoKSB7XG4gICAgICAgIHRoaXMuX3dpZHRoID0gd2lkdGg7XG4gICAgICAgIHRoaXMuZnVsbFdpZHRoID0gd2lkdGggPT09ICdmdWxsLXdpZHRoJztcbiAgICB9XG4gICAgZ2V0IHdpZHRoKCk6IEluZm9ib3hXaWR0aCB7XG4gICAgICAgIHJldHVybiB0aGlzLl93aWR0aDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfd2lkdGg6IEluZm9ib3hXaWR0aCA9ICdmaXQnO1xuXG4gICAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBkaXNwbGF5RGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID0gJ2hvcml6b250YWwnO1xuXG4gICAgcmVhZG9ubHkgc3ltYm9sSWRzOiB7W2s6IHN0cmluZ106IGFnb3JhcHVsc2VTeW1ib2x9ID0ge1xuICAgICAgICBpbmZvOiAnaW5mb3JtYXRpb24tY2lyY2xlJyxcbiAgICAgICAgd2FybmluZzogJ2FsZXJ0LWNpcmNsZScsXG4gICAgICAgIGVycm9yOiAncmVtb3ZlLWNpcmNsZScsXG4gICAgICAgIHN1Y2Nlc3M6ICdjaGVjay1jaXJjbGUnLFxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zeW1ib2xSZWdpc3RyeS5yZWdpc3RlclN5bWJvbHMoW1xuICAgICAgICAgICAgYXBJbmZvcm1hdGlvbkNpcmNsZSxcbiAgICAgICAgICAgIGFwQWxlcnRDaXJjbGUsXG4gICAgICAgICAgICBhcFJlbW92ZUNpcmNsZSxcbiAgICAgICAgICAgIGFwQ2hlY2tDaXJjbGUsXG4gICAgICAgICAgICBhcENsb3NlLFxuICAgICAgICBdKTtcbiAgICB9XG5cbiAgICBvbkNsaWNrQnV0dG9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1dHRvbkNsaWNrZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uQ2xvc2VJbmZvYm94KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmUoKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJtYWluXCJcbiAgICBbY2xhc3MuaW5mb109XCJ0eXBlID09PSAnaW5mbydcIlxuICAgIFtjbGFzcy53YXJuaW5nXT1cInR5cGUgPT09ICd3YXJuaW5nJ1wiXG4gICAgW2NsYXNzLmVycm9yXT1cInR5cGUgPT09ICdlcnJvcidcIlxuICAgIFtjbGFzcy5zdWNjZXNzXT1cInR5cGUgPT09ICdzdWNjZXNzJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtYmFubmVyXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbC1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ltYm9sLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8YXAtc3ltYm9sIFtzeW1ib2xJZF09XCJzeW1ib2xJZHNbdHlwZV1cIiBjbGFzcz1cInN0YXR1c1wiIHNpemU9XCJtaWNyb1wiPjwvYXAtc3ltYm9sPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0c1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInRpdGxlXCIgY2xhc3M9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJidXR0b25MYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICA8YXAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiaW5mb2JveC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6ICdzdHJva2VkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2dyZXknXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrQnV0dG9uKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGJ1dHRvbkxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYXAtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2xvc2FibGVcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjbG9zYWJsZS1idXR0b25cIiAoY2xpY2spPVwib25DbG9zZUluZm9ib3goKVwiPlxuICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI4XCIgaGVpZ2h0PVwiOFwiIHZpZXdCb3g9XCIwIDAgOCA4XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuMzI0NSAwLjY3MzMzNkM3LjE2NTE4IDAuNTE0NTY1IDYuOTQ5NDMgMC40MjU0MTUgNi43MjQ1IDAuNDI1NDE1QzYuNDk5NTggMC40MjU0MTUgNi4yODM4MyAwLjUxNDU2NSA2LjEyNDUxIDAuNjczMzM2TDQuMDA2NTEgMi43OTEzNEwxLjg4NTg0IDAuNjczMzM2QzEuNzI0OTkgMC41MTk2MDcgMS41MTAzNiAwLjQzNDk1NSAxLjI4Nzg4IDAuNDM3NTAxQzEuMDY1NCAwLjQ0MDA0OCAwLjg1Mjc1NiAwLjUyOTU5MSAwLjY5NTQ3MiAwLjY4Njk2MkMwLjUzODE4OSAwLjg0NDMzMyAwLjQ0ODc2MyAxLjA1NzAyIDAuNDQ2MzQgMS4yNzk1MUMwLjQ0MzkxNiAxLjUwMTk5IDAuNTI4Njg3IDEuNzE2NTggMC42ODI1MDUgMS44NzczNEwyLjc5OTg0IDMuOTk1MzRMMC42ODI1MDUgNi4xMTRDMC41Mjg2ODcgNi4yNzQ3NiAwLjQ0MzkxNiA2LjQ4OTM1IDAuNDQ2MzQgNi43MTE4M0MwLjQ0ODc2MyA2LjkzNDMxIDAuNTM4MTg5IDcuMTQ3IDAuNjk1NDcyIDcuMzA0MzhDMC44NTI3NTYgNy40NjE3NSAxLjA2NTQgNy41NTEyOSAxLjI4Nzg4IDcuNTUzODRDMS41MTAzNiA3LjU1NjM4IDEuNzI0OTkgNy40NzE3MyAxLjg4NTg0IDcuMzE4TDQuMDAzMTcgNS4yTDYuMTIxMTcgNy4zMTg2N0M2LjI4MzY0IDcuNDYzMDcgNi40OTUyIDcuNTM5ODYgNi43MTI0NyA3LjUzMzI5QzYuOTI5NzQgNy41MjY3MSA3LjEzNjI3IDcuNDM3MjggNy4yODk3MiA3LjI4MzMyQzcuNDQzMTYgNy4xMjkzNiA3LjUzMTkxIDYuOTIyNTQgNy41Mzc3NiA2LjcwNTI1QzcuNTQzNiA2LjQ4Nzk2IDcuNDY2MTEgNi4yNzY2NiA3LjMyMTE3IDYuMTE0NjdMNS4yMDM4NCAzLjk5Nkw3LjMyMTE3IDEuODc4QzcuNDgxMzIgMS43MTg2NyA3LjU3MTY0IDEuNTAyMjYgNy41NzIyNiAxLjI3NjM2QzcuNTcyODkgMS4wNTA0NSA3LjQ4Mzc3IDAuODMzNTQ4IDcuMzI0NSAwLjY3MzMzNlpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, inject, Input, Output, ViewChild, ViewEncapsulation, } from
|
|
2
|
-
import { CommonModule, NgIf } from
|
|
3
|
-
import { apCheck2, SymbolComponent, SymbolRegistry } from
|
|
4
|
-
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, forwardRef, inject, Input, Output, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { CommonModule, NgIf } from '@angular/common';
|
|
3
|
+
import { apCheck2, SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';
|
|
4
|
+
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
|
+
import { ConfirmModalComponent } from '@agorapulse/ui-components/confirm-modal';
|
|
6
|
+
import { MatLegacyDialog } from '@angular/material/legacy-dialog';
|
|
7
|
+
import { first } from 'rxjs/operators';
|
|
5
8
|
import * as i0 from "@angular/core";
|
|
6
9
|
export const AP_CHECKBOX_CONTROL_VALUE_ACCESSOR = {
|
|
7
10
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -11,9 +14,16 @@ export const AP_CHECKBOX_CONTROL_VALUE_ACCESSOR = {
|
|
|
11
14
|
export class ToggleComponent {
|
|
12
15
|
constructor() {
|
|
13
16
|
this.symbolRegistry = inject(SymbolRegistry);
|
|
17
|
+
this.dialog = inject(MatLegacyDialog);
|
|
18
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
14
19
|
this.ariaLabel = '';
|
|
15
20
|
this.ariaLabelledby = null;
|
|
16
21
|
this.labelPosition = 'right';
|
|
22
|
+
this.confirm = false;
|
|
23
|
+
this.confirmMessage = 'If you toggle this, it will affect other things. Are you sure';
|
|
24
|
+
this.confirmOk = 'Confirm';
|
|
25
|
+
this.confirmCancel = 'Cancel';
|
|
26
|
+
this.confirmTitle = 'Are you sure?';
|
|
17
27
|
// eslint-disable-next-line
|
|
18
28
|
this.change = new EventEmitter();
|
|
19
29
|
this.hasLabel = false;
|
|
@@ -32,9 +42,7 @@ export class ToggleComponent {
|
|
|
32
42
|
}
|
|
33
43
|
}
|
|
34
44
|
ngOnInit() {
|
|
35
|
-
this.symbolRegistry.registerSymbols([
|
|
36
|
-
apCheck2
|
|
37
|
-
]);
|
|
45
|
+
this.symbolRegistry.registerSymbols([apCheck2]);
|
|
38
46
|
}
|
|
39
47
|
ngAfterContentInit() {
|
|
40
48
|
if (this.labelElement) {
|
|
@@ -42,23 +50,57 @@ export class ToggleComponent {
|
|
|
42
50
|
}
|
|
43
51
|
}
|
|
44
52
|
onValueChange() {
|
|
45
|
-
if (this.onTouched) {
|
|
46
|
-
this.onTouched();
|
|
47
|
-
}
|
|
48
53
|
if (!this.disabled) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
this.
|
|
54
|
+
if (!this.confirm) {
|
|
55
|
+
if (this.onTouched) {
|
|
56
|
+
this.onTouched();
|
|
57
|
+
}
|
|
58
|
+
this.changeValue();
|
|
54
59
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
60
|
+
else {
|
|
61
|
+
const toggleConfirmModal = {
|
|
62
|
+
contentText: this.confirmMessage,
|
|
63
|
+
headerTitle: this.confirmTitle,
|
|
64
|
+
footerCancelButtonLabel: this.confirmCancel,
|
|
65
|
+
footerConfirmButtonLabel: this.confirmOk,
|
|
66
|
+
footerConfirmButtonId: 'confirm',
|
|
67
|
+
footerCancelButtonId: 'cancel',
|
|
68
|
+
};
|
|
69
|
+
const modalConfig = {
|
|
70
|
+
matDialogConfig: {
|
|
71
|
+
panelClass: 'design-system',
|
|
72
|
+
width: '550px',
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
const dialogRef = ConfirmModalComponent.open(this.dialog, toggleConfirmModal, modalConfig);
|
|
76
|
+
dialogRef
|
|
77
|
+
.afterClosed()
|
|
78
|
+
.pipe(first())
|
|
79
|
+
.subscribe(result => {
|
|
80
|
+
if (result) {
|
|
81
|
+
if (this.onTouched) {
|
|
82
|
+
this.onTouched();
|
|
83
|
+
}
|
|
84
|
+
this.changeValue();
|
|
85
|
+
}
|
|
86
|
+
});
|
|
59
87
|
}
|
|
60
88
|
}
|
|
61
89
|
}
|
|
90
|
+
changeValue() {
|
|
91
|
+
this.checked = !this.checked;
|
|
92
|
+
this.focus();
|
|
93
|
+
this.change.emit(this.checked);
|
|
94
|
+
if (this._controlValueAccessorChangeFn) {
|
|
95
|
+
this._controlValueAccessorChangeFn(this.checked);
|
|
96
|
+
}
|
|
97
|
+
// Assigning the value again here is redundant, but we have to do it in case it was
|
|
98
|
+
// changed inside the `change` listener which will cause the input to be out of sync.
|
|
99
|
+
if (this.inputElement) {
|
|
100
|
+
this.inputElement.nativeElement.checked = this.checked;
|
|
101
|
+
}
|
|
102
|
+
this.cdr.markForCheck();
|
|
103
|
+
}
|
|
62
104
|
focus() {
|
|
63
105
|
this.inputElement.nativeElement.focus();
|
|
64
106
|
}
|
|
@@ -75,9 +117,10 @@ export class ToggleComponent {
|
|
|
75
117
|
this.disabled = isDisabled;
|
|
76
118
|
}
|
|
77
119
|
validate({ value }) {
|
|
78
|
-
return this.required &&
|
|
79
|
-
|
|
80
|
-
|
|
120
|
+
return (this.required &&
|
|
121
|
+
!value && {
|
|
122
|
+
invalid: true,
|
|
123
|
+
});
|
|
81
124
|
}
|
|
82
125
|
_preventBubblingFromLabel(event) {
|
|
83
126
|
if (!!event.target && this.labelElement.nativeElement.contains(event.target)) {
|
|
@@ -86,28 +129,26 @@ export class ToggleComponent {
|
|
|
86
129
|
}
|
|
87
130
|
}
|
|
88
131
|
ToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
89
|
-
ToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ToggleComponent, isStandalone: true, selector: "ap-toggle[name]", inputs: { ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], ariaDescribedby: ["aria-describedby", "ariaDescribedby"], labelPosition: "labelPosition", disabled: "disabled", checked: "checked", required: "required", name: "name" }, outputs: { change: "change" }, providers: [
|
|
132
|
+
ToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ToggleComponent, isStandalone: true, selector: "ap-toggle[name]", inputs: { ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], ariaDescribedby: ["aria-describedby", "ariaDescribedby"], labelPosition: "labelPosition", disabled: "disabled", checked: "checked", required: "required", confirm: "confirm", confirmMessage: "confirmMessage", confirmOk: "confirmOk", confirmCancel: "confirmCancel", confirmTitle: "confirmTitle", name: "name" }, outputs: { change: "change" }, providers: [
|
|
90
133
|
AP_CHECKBOX_CONTROL_VALUE_ACCESSOR,
|
|
91
134
|
{
|
|
92
135
|
provide: NG_VALIDATORS,
|
|
93
136
|
useExisting: ToggleComponent,
|
|
94
|
-
multi: true
|
|
95
|
-
}
|
|
96
|
-
|
|
137
|
+
multi: true,
|
|
138
|
+
},
|
|
139
|
+
MatLegacyDialog,
|
|
140
|
+
], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "labelElement", first: true, predicate: ["label"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"toggle\" (click)=\"_preventBubblingFromLabel($event)\">\n <input\n #input\n class=\"hidden\"\n type=\"checkbox\"\n role=\"switch\"\n [id]=\"name\"\n [name]=\"name\"\n [checked]=\"checked\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.data-test]=\"name\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-checked]=\"checked\"\n (click)=\"onValueChange()\" />\n <div class=\"switch-container\" [class.label-left]=\"labelPosition === 'left'\">\n <div class=\"switch\" [class.checked]=\"checked\" (click)=\"onValueChange()\">\n <div class=\"knob\"></div>\n </div>\n <label #label [class.disabled]=\"disabled\" [for]=\"name\">\n <ng-content></ng-content>\n </label>\n </div>\n</div>\n", styles: ["ap-toggle{position:relative}ap-toggle .toggle{display:flex;gap:8px;align-items:center;font-family:var(--sys-text-style-body-font-family);font-size:var(--sys-text-style-body-size);line-height:var(--sys-text-style-body-line-height);color:var(--ref-color-grey-100)}ap-toggle .toggle input.hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}ap-toggle .toggle input[type=checkbox]{margin:0;padding:0;width:0;height:0;transform:scale(0)}@media (hover: hover){ap-toggle .toggle input[type=checkbox]:focus:not(.disabled)~.switch-container .switch{outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px}}ap-toggle .toggle input[type=checkbox]:disabled~.switch-container .switch{background:var(--ref-color-grey-20);pointer-events:none;cursor:default}ap-toggle .toggle .switch-container{display:flex;gap:var(--ref-spacing-xs);align-items:center}ap-toggle .toggle .switch-container.label-left{flex-direction:row-reverse}ap-toggle .toggle .switch-container .switch{box-sizing:content-box;position:relative;display:flex;align-items:center;padding:2px;width:28px;height:12px;border-radius:16px;background:var(--ref-color-grey-40);transition:background-color .25s}ap-toggle .toggle .switch-container .switch:hover{cursor:pointer;background:var(--ref-color-grey-60)}ap-toggle .toggle .switch-container .switch:active:not(.checked){background:var(--ref-color-grey-80)}ap-toggle .toggle .switch-container .switch.checked{background:var(--ref-color-electric-blue-100)}ap-toggle .toggle .switch-container .switch.checked:active{background:var(--ref-color-electric-blue-60)}ap-toggle .toggle .switch-container .switch.checked .knob{left:18px}ap-toggle .toggle .switch-container .switch .knob{width:12px;height:12px;background:white;border-radius:100%;position:absolute;transition:left .25s;left:2px}ap-toggle .toggle .switch-container label{display:flex;align-items:center;font-family:var(--sys-text-style-body-font-family);font-size:var(--sys-text-style-body-size);font-weight:var(--sys-text-style-body-weight);line-height:var(--sys-text-style-body-line-height)}ap-toggle .toggle .switch-container label:empty{display:none}ap-toggle .toggle .switch-container label.disabled{color:var(--ref-color-grey-60)}ap-toggle .toggle .switch-container label:hover:not(.disabled){cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
97
141
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ToggleComponent, decorators: [{
|
|
98
142
|
type: Component,
|
|
99
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-toggle[name]', standalone: true, imports: [
|
|
100
|
-
NgIf,
|
|
101
|
-
SymbolComponent,
|
|
102
|
-
CommonModule
|
|
103
|
-
], providers: [
|
|
143
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-toggle[name]', standalone: true, imports: [NgIf, SymbolComponent, CommonModule], providers: [
|
|
104
144
|
AP_CHECKBOX_CONTROL_VALUE_ACCESSOR,
|
|
105
145
|
{
|
|
106
146
|
provide: NG_VALIDATORS,
|
|
107
147
|
useExisting: ToggleComponent,
|
|
108
|
-
multi: true
|
|
109
|
-
}
|
|
110
|
-
|
|
148
|
+
multi: true,
|
|
149
|
+
},
|
|
150
|
+
MatLegacyDialog,
|
|
151
|
+
], encapsulation: ViewEncapsulation.None, template: "<div class=\"toggle\" (click)=\"_preventBubblingFromLabel($event)\">\n <input\n #input\n class=\"hidden\"\n type=\"checkbox\"\n role=\"switch\"\n [id]=\"name\"\n [name]=\"name\"\n [checked]=\"checked\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.data-test]=\"name\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-checked]=\"checked\"\n (click)=\"onValueChange()\" />\n <div class=\"switch-container\" [class.label-left]=\"labelPosition === 'left'\">\n <div class=\"switch\" [class.checked]=\"checked\" (click)=\"onValueChange()\">\n <div class=\"knob\"></div>\n </div>\n <label #label [class.disabled]=\"disabled\" [for]=\"name\">\n <ng-content></ng-content>\n </label>\n </div>\n</div>\n", styles: ["ap-toggle{position:relative}ap-toggle .toggle{display:flex;gap:8px;align-items:center;font-family:var(--sys-text-style-body-font-family);font-size:var(--sys-text-style-body-size);line-height:var(--sys-text-style-body-line-height);color:var(--ref-color-grey-100)}ap-toggle .toggle input.hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}ap-toggle .toggle input[type=checkbox]{margin:0;padding:0;width:0;height:0;transform:scale(0)}@media (hover: hover){ap-toggle .toggle input[type=checkbox]:focus:not(.disabled)~.switch-container .switch{outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px}}ap-toggle .toggle input[type=checkbox]:disabled~.switch-container .switch{background:var(--ref-color-grey-20);pointer-events:none;cursor:default}ap-toggle .toggle .switch-container{display:flex;gap:var(--ref-spacing-xs);align-items:center}ap-toggle .toggle .switch-container.label-left{flex-direction:row-reverse}ap-toggle .toggle .switch-container .switch{box-sizing:content-box;position:relative;display:flex;align-items:center;padding:2px;width:28px;height:12px;border-radius:16px;background:var(--ref-color-grey-40);transition:background-color .25s}ap-toggle .toggle .switch-container .switch:hover{cursor:pointer;background:var(--ref-color-grey-60)}ap-toggle .toggle .switch-container .switch:active:not(.checked){background:var(--ref-color-grey-80)}ap-toggle .toggle .switch-container .switch.checked{background:var(--ref-color-electric-blue-100)}ap-toggle .toggle .switch-container .switch.checked:active{background:var(--ref-color-electric-blue-60)}ap-toggle .toggle .switch-container .switch.checked .knob{left:18px}ap-toggle .toggle .switch-container .switch .knob{width:12px;height:12px;background:white;border-radius:100%;position:absolute;transition:left .25s;left:2px}ap-toggle .toggle .switch-container label{display:flex;align-items:center;font-family:var(--sys-text-style-body-font-family);font-size:var(--sys-text-style-body-size);font-weight:var(--sys-text-style-body-weight);line-height:var(--sys-text-style-body-line-height)}ap-toggle .toggle .switch-container label:empty{display:none}ap-toggle .toggle .switch-container label.disabled{color:var(--ref-color-grey-60)}ap-toggle .toggle .switch-container label:hover:not(.disabled){cursor:pointer}\n"] }]
|
|
111
152
|
}], propDecorators: { inputElement: [{
|
|
112
153
|
type: ViewChild,
|
|
113
154
|
args: ['input', { static: true }]
|
|
@@ -131,9 +172,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
|
|
|
131
172
|
type: Input
|
|
132
173
|
}], required: [{
|
|
133
174
|
type: Input
|
|
175
|
+
}], confirm: [{
|
|
176
|
+
type: Input
|
|
177
|
+
}], confirmMessage: [{
|
|
178
|
+
type: Input
|
|
179
|
+
}], confirmOk: [{
|
|
180
|
+
type: Input
|
|
181
|
+
}], confirmCancel: [{
|
|
182
|
+
type: Input
|
|
183
|
+
}], confirmTitle: [{
|
|
184
|
+
type: Input
|
|
134
185
|
}], name: [{
|
|
135
186
|
type: Input
|
|
136
187
|
}], change: [{
|
|
137
188
|
type: Output
|
|
138
189
|
}] } });
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy90b2dnbGUvc3JjL3RvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvdG9nZ2xlL3NyYy90b2dnbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFVBQVUsRUFBRSxNQUFNLEVBQ2xCLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2hGLE9BQU8sRUFBb0MsYUFBYSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBRW5HLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHO0lBQzlDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7SUFDOUMsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBdUJGLE1BQU0sT0FBTyxlQUFlO0lBckI1QjtRQXVCcUIsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFHcEMsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUNsQixtQkFBYyxHQUFrQixJQUFJLENBQUM7UUFFdEQsa0JBQWEsR0FBcUIsT0FBTyxDQUFDO1FBWW5ELDJCQUEyQjtRQUNSLFdBQU0sR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUvRSxhQUFRLEdBQVksS0FBSyxDQUFDO0tBd0U3QjtJQW5GRyxJQUFhLElBQUksQ0FBQyxJQUFZO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxHQUFHLFVBQVUsQ0FBQztTQUNsQztJQUNMLENBQUM7SUFDRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQVNELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3hFO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQztZQUNoQyxRQUFRO1NBQ1gsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDeEU7SUFDTCxDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDcEI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0IsSUFBSSxJQUFJLENBQUMsNkJBQTZCLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDcEQ7WUFFRCxtRkFBbUY7WUFDbkYscUZBQXFGO1lBQ3JGLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDMUQ7U0FDSjtJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFjO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxFQUE0QjtRQUN6QyxJQUFJLENBQUMsNkJBQTZCLEdBQUcsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQsUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFlO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssSUFBSTtZQUM5QixPQUFPLEVBQUUsSUFBSTtTQUNoQixDQUFBO0lBQ0wsQ0FBQztJQUVELHlCQUF5QixDQUFDLEtBQWlCO1FBQ3ZDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFxQixDQUFDLEVBQUU7WUFDekYsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQzs7NEdBN0ZRLGVBQWU7Z0dBQWYsZUFBZSxnWEFYYjtRQUNQLGtDQUFrQztRQUNsQztZQUNJLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFdBQVcsRUFBRSxlQUFlO1lBQzVCLEtBQUssRUFBRSxJQUFJO1NBQ2Q7S0FDSiwwUUN4Q0wscWpDQW9DQSwrMUVETFEsWUFBWTsyRkFhUCxlQUFlO2tCQXJCM0IsU0FBUztzQ0FDVyx1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLGlCQUFpQixjQUVmLElBQUksV0FDUDt3QkFDTCxJQUFJO3dCQUNKLGVBQWU7d0JBQ2YsWUFBWTtxQkFDZixhQUNVO3dCQUNQLGtDQUFrQzt3QkFDbEM7NEJBQ0ksT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsaUJBQWlCOzRCQUM1QixLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSixpQkFFYyxpQkFBaUIsQ0FBQyxJQUFJOzhCQUtDLFlBQVk7c0JBQWpELFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRSxZQUFZO3NCQUFqRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2YsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZO2dCQUNPLGNBQWM7c0JBQXZDLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUNHLGVBQWU7c0JBQXpDLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUNoQixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ08sSUFBSTtzQkFBaEIsS0FBSztnQkFTYSxNQUFNO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLCBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLCBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7Q29tbW9uTW9kdWxlLCBOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge2FwQ2hlY2syLCBTeW1ib2xDb21wb25lbnQsIFN5bWJvbFJlZ2lzdHJ5fSBmcm9tIFwiQGFnb3JhcHVsc2UvdWktc3ltYm9sXCI7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5leHBvcnQgY29uc3QgQVBfQ0hFQ0tCT1hfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUiA9IHtcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUb2dnbGVDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlLFxufTtcblxuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICdhcC10b2dnbGVbbmFtZV0nLFxuICAgIHN0eWxlVXJsczogWycuL3RvZ2dsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBTeW1ib2xDb21wb25lbnQsXG4gICAgICAgIENvbW1vbk1vZHVsZVxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEFQX0NIRUNLQk9YX0NPTlRST0xfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVG9nZ2xlQ29tcG9uZW50LFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBUb2dnbGVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkluaXQge1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzeW1ib2xSZWdpc3RyeSA9IGluamVjdChTeW1ib2xSZWdpc3RyeSk7XG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgnbGFiZWwnLCB7IHN0YXRpYzogdHJ1ZSB9KSBsYWJlbEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gICAgQElucHV0KCdhcmlhLWxhYmVsJykgYXJpYUxhYmVsOiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoJ2FyaWEtbGFiZWxsZWRieScpIGFyaWFMYWJlbGxlZGJ5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoJ2FyaWEtZGVzY3JpYmVkYnknKSBhcmlhRGVzY3JpYmVkYnk6IHN0cmluZztcbiAgICBASW5wdXQoKSBsYWJlbFBvc2l0aW9uOiAnbGVmdCcgfCAncmlnaHQnID0gJ3JpZ2h0JztcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjaGVja2VkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNldCBuYW1lKG5hbWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIW5hbWUuZW5kc1dpdGgoJ0NoZWNrYm94JykpIHtcbiAgICAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lICsgJ0NoZWNrYm94JztcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbmFtZTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgaGFzTGFiZWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIF9uYW1lOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbjogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkO1xuICAgIG9uVG91Y2hlZDogKCkgPT4gdm9pZDtcblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5sYWJlbEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzTGFiZWwgPSAhIXRoaXMubGFiZWxFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQudHJpbSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc3ltYm9sUmVnaXN0cnkucmVnaXN0ZXJTeW1ib2xzKFtcbiAgICAgICAgICAgIGFwQ2hlY2syXG4gICAgICAgIF0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubGFiZWxFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmhhc0xhYmVsID0gISF0aGlzLmxhYmVsRWxlbWVudC5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50LnRyaW0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UoKSB7XG4gICAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCkge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZCA9ICF0aGlzLmNoZWNrZWQ7XG4gICAgICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuY2hlY2tlZCk7XG4gICAgICAgICAgICBpZiAodGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbikge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4odGhpcy5jaGVja2VkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQXNzaWduaW5nIHRoZSB2YWx1ZSBhZ2FpbiBoZXJlIGlzIHJlZHVuZGFudCwgYnV0IHdlIGhhdmUgdG8gZG8gaXQgaW4gY2FzZSBpdCB3YXNcbiAgICAgICAgICAgIC8vIGNoYW5nZWQgaW5zaWRlIHRoZSBgY2hhbmdlYCBsaXN0ZW5lciB3aGljaCB3aWxsIGNhdXNlIHRoZSBpbnB1dCB0byBiZSBvdXQgb2Ygc3luYy5cbiAgICAgICAgICAgIGlmICh0aGlzLmlucHV0RWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHRoaXMuY2hlY2tlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvY3VzKCkge1xuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSB2YWx1ZTtcbiAgICB9XG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4gPSBmbjtcbiAgICB9XG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIHZhbGlkYXRlKHsgdmFsdWUgfTogRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWlyZWQgJiYgIXZhbHVlICYmIHtcbiAgICAgICAgICAgIGludmFsaWQ6IHRydWVcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9wcmV2ZW50QnViYmxpbmdGcm9tTGFiZWwoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKCEhZXZlbnQudGFyZ2V0ICYmIHRoaXMubGFiZWxFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0b2dnbGVcIlxuICAgICAoY2xpY2spPVwiX3ByZXZlbnRCdWJibGluZ0Zyb21MYWJlbCgkZXZlbnQpXCJcbj5cbiAgICA8aW5wdXQgI2lucHV0XG4gICAgICAgICAgICBjbGFzcz1cImhpZGRlblwiXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgcm9sZT1cInN3aXRjaFwiXG4gICAgICAgICAgICBbaWRdPVwibmFtZVwiXG4gICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RdPVwibmFtZVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkYnlcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkYnlcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cImNoZWNrZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uVmFsdWVDaGFuZ2UoKVwiXG4gICAgPlxuICAgIDxkaXYgY2xhc3M9XCJzd2l0Y2gtY29udGFpbmVyXCJcbiAgICAgICAgIFtjbGFzcy5sYWJlbC1sZWZ0XT1cImxhYmVsUG9zaXRpb24gPT09ICdsZWZ0J1wiXG4gICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3dpdGNoXCJcbiAgICAgICAgICAgICBbY2xhc3MuY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICAgICAgICAgICAoY2xpY2spPVwib25WYWx1ZUNoYW5nZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImtub2JcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgI2xhYmVsXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2Zvcl09XCJuYW1lXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy90b2dnbGUvc3JjL3RvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvdG9nZ2xlL3NyYy90b2dnbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2hGLE9BQU8sRUFBb0MsYUFBYSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkcsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFckMsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUc7SUFDOUMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztJQUM5QyxLQUFLLEVBQUUsSUFBSTtDQUNkLENBQUM7QUFvQkYsTUFBTSxPQUFPLGVBQWU7SUFsQjVCO1FBbUJxQixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QyxXQUFNLEdBQUcsTUFBTSxDQUFD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LE9BQU87c0JBQWYsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNPLElBQUk7c0JBQWhCLEtBQUs7Z0JBU2EsTUFBTTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlLCBOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHthcENoZWNrMiwgU3ltYm9sQ29tcG9uZW50LCBTeW1ib2xSZWdpc3RyeX0gZnJvbSAnQGFnb3JhcHVsc2UvdWktc3ltYm9sJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtDb25maXJtTW9kYWxDb21wb25lbnR9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvY29uZmlybS1tb2RhbCc7XG5pbXBvcnQge01hdExlZ2FjeURpYWxvZ30gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZyc7XG5pbXBvcnQge2ZpcnN0fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBBUF9DSEVDS0JPWF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRvZ2dsZUNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWUsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2FwLXRvZ2dsZVtuYW1lXScsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9nZ2xlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgU3ltYm9sQ29tcG9uZW50LCBDb21tb25Nb2R1bGVdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBBUF9DSEVDS0JPWF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFRvZ2dsZUNvbXBvbmVudCxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBNYXRMZWdhY3lEaWFsb2csXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9nZ2xlLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBUb2dnbGVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkluaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3ltYm9sUmVnaXN0cnkgPSBpbmplY3QoU3ltYm9sUmVnaXN0cnkpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nID0gaW5qZWN0KE1hdExlZ2FjeURpYWxvZyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7c3RhdGljOiB0cnVlfSkgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ2xhYmVsJywge3N0YXRpYzogdHJ1ZX0pIGxhYmVsRWxlbWVudDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgICBASW5wdXQoJ2FyaWEtbGFiZWwnKSBhcmlhTGFiZWw6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCgnYXJpYS1sYWJlbGxlZGJ5JykgYXJpYUxhYmVsbGVkYnk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgnYXJpYS1kZXNjcmliZWRieScpIGFyaWFEZXNjcmliZWRieTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxhYmVsUG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgPSAncmlnaHQnO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNoZWNrZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY29uZmlybTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGNvbmZpcm1NZXNzYWdlOiBzdHJpbmcgPSAnSWYgeW91IHRvZ2dsZSB0aGlzLCBpdCB3aWxsIGFmZmVjdCBvdGhlciB0aGluZ3MuIEFyZSB5b3Ugc3VyZSc7XG4gICAgQElucHV0KCkgY29uZmlybU9rOiBzdHJpbmcgPSAnQ29uZmlybSc7XG4gICAgQElucHV0KCkgY29uZmlybUNhbmNlbDogc3RyaW5nID0gJ0NhbmNlbCc7XG4gICAgQElucHV0KCkgY29uZmlybVRpdGxlOiBzdHJpbmcgPSAnQXJlIHlvdSBzdXJlPyc7XG4gICAgQElucHV0KCkgc2V0IG5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghbmFtZS5lbmRzV2l0aCgnQ2hlY2tib3gnKSkge1xuICAgICAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWUgKyAnQ2hlY2tib3gnO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9uYW1lO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBoYXNMYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgX25hbWU6IHN0cmluZztcbiAgICBwcml2YXRlIF9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmxhYmVsRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5oYXNMYWJlbCA9ICEhdGhpcy5sYWJlbEVsZW1lbnQubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudC50cmltKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zeW1ib2xSZWdpc3RyeS5yZWdpc3RlclN5bWJvbHMoW2FwQ2hlY2syXSk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5sYWJlbEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzTGFiZWwgPSAhIXRoaXMubGFiZWxFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQudHJpbSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY29uZmlybSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVZhbHVlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvZ2dsZUNvbmZpcm1Nb2RhbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudFRleHQ6IHRoaXMuY29uZmlybU1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlclRpdGxlOiB0aGlzLmNvbmZpcm1UaXRsZSxcbiAgICAgICAgICAgICAgICAgICAgZm9vdGVyQ2FuY2VsQnV0dG9uTGFiZWw6IHRoaXMuY29uZmlybUNhbmNlbCxcbiAgICAgICAgICAgICAgICAgICAgZm9vdGVyQ29uZmlybUJ1dHRvbkxhYmVsOiB0aGlzLmNvbmZpcm1PayxcbiAgICAgICAgICAgICAgICAgICAgZm9vdGVyQ29uZmlybUJ1dHRvbklkOiAnY29uZmlybScsXG4gICAgICAgICAgICAgICAgICAgIGZvb3RlckNhbmNlbEJ1dHRvbklkOiAnY2FuY2VsJyxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vZGFsQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICBtYXREaWFsb2dDb25maWc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3M6ICdkZXNpZ24tc3lzdGVtJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnNTUwcHgnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSBDb25maXJtTW9kYWxDb21wb25lbnQub3Blbih0aGlzLmRpYWxvZywgdG9nZ2xlQ29uZmlybU1vZGFsLCBtb2RhbENvbmZpZyk7XG4gICAgICAgICAgICAgICAgZGlhbG9nUmVmXG4gICAgICAgICAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vblRvdWNoZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNoYW5nZVZhbHVlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkO1xuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5jaGVja2VkKTtcbiAgICAgICAgaWYgKHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4pIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4odGhpcy5jaGVja2VkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFzc2lnbmluZyB0aGUgdmFsdWUgYWdhaW4gaGVyZSBpcyByZWR1bmRhbnQsIGJ1dCB3ZSBoYXZlIHRvIGRvIGl0IGluIGNhc2UgaXQgd2FzXG4gICAgICAgIC8vIGNoYW5nZWQgaW5zaWRlIHRoZSBgY2hhbmdlYCBsaXN0ZW5lciB3aGljaCB3aWxsIGNhdXNlIHRoZSBpbnB1dCB0byBiZSBvdXQgb2Ygc3luYy5cbiAgICAgICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSB0aGlzLmNoZWNrZWQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgZm9jdXMoKSB7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hlY2tlZCA9IHZhbHVlO1xuICAgIH1cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbiA9IGZuO1xuICAgIH1cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgdmFsaWRhdGUoe3ZhbHVlfTogRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMucmVxdWlyZWQgJiZcbiAgICAgICAgICAgICF2YWx1ZSAmJiB7XG4gICAgICAgICAgICAgICAgaW52YWxpZDogdHJ1ZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBfcHJldmVudEJ1YmJsaW5nRnJvbUxhYmVsKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICghIWV2ZW50LnRhcmdldCAmJiB0aGlzLmxhYmVsRWxlbWVudC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRvZ2dsZVwiIChjbGljayk9XCJfcHJldmVudEJ1YmJsaW5nRnJvbUxhYmVsKCRldmVudClcIj5cbiAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0XG4gICAgICAgIGNsYXNzPVwiaGlkZGVuXCJcbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgcm9sZT1cInN3aXRjaFwiXG4gICAgICAgIFtpZF09XCJuYW1lXCJcbiAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbYXR0ci5kYXRhLXRlc3RdPVwibmFtZVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRieVwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZGJ5XCJcbiAgICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cImNoZWNrZWRcIlxuICAgICAgICAoY2xpY2spPVwib25WYWx1ZUNoYW5nZSgpXCIgLz5cbiAgICA8ZGl2IGNsYXNzPVwic3dpdGNoLWNvbnRhaW5lclwiIFtjbGFzcy5sYWJlbC1sZWZ0XT1cImxhYmVsUG9zaXRpb24gPT09ICdsZWZ0J1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3dpdGNoXCIgW2NsYXNzLmNoZWNrZWRdPVwiY2hlY2tlZFwiIChjbGljayk9XCJvblZhbHVlQ2hhbmdlKClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrbm9iXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bGFiZWwgI2xhYmVsIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtmb3JdPVwibmFtZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|