cps-ui-kit 0.111.0 → 0.112.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/cps-button-toggle/cps-button-toggle.component.mjs +28 -23
- package/esm2020/lib/components/cps-table/cps-column-filter-types.mjs +25 -0
- package/esm2020/lib/components/cps-table/directives/cps-table-column-filter.directive.mjs +13 -2
- package/esm2020/lib/components/cps-table/table-column-filter/table-column-filter-constraint/table-column-filter-constraint.component.mjs +27 -8
- package/esm2020/lib/components/cps-table/table-column-filter/table-column-filter.component.mjs +42 -26
- package/esm2020/lib/components/cps-tree-table/directives/cps-tree-table-column-filter.directive.mjs +13 -2
- package/esm2020/public-api.mjs +2 -2
- package/fesm2015/cps-ui-kit.mjs +142 -74
- package/fesm2015/cps-ui-kit.mjs.map +1 -1
- package/fesm2020/cps-ui-kit.mjs +138 -76
- package/fesm2020/cps-ui-kit.mjs.map +1 -1
- package/lib/components/cps-button-toggle/cps-button-toggle.component.d.ts +5 -6
- package/lib/components/cps-table/{cps-filter-match-mode.d.ts → cps-column-filter-types.d.ts} +9 -1
- package/lib/components/cps-table/directives/cps-table-column-filter.directive.d.ts +8 -6
- package/lib/components/cps-table/table-column-filter/table-column-filter-constraint/table-column-filter-constraint.component.d.ts +12 -9
- package/lib/components/cps-table/table-column-filter/table-column-filter.component.d.ts +11 -6
- package/lib/components/cps-tree-table/directives/cps-tree-table-column-filter.directive.d.ts +8 -6
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/styles/cps-tooltip-style.scss +1 -1
- package/esm2020/lib/components/cps-table/cps-filter-match-mode.mjs +0 -25
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, EventEmitter, Input, Optional, Output, Self
|
|
2
|
+
import { Component, EventEmitter, Input, Optional, Output, Self } from '@angular/core';
|
|
3
3
|
import { isEqual } from 'lodash-es';
|
|
4
4
|
import { CheckOptionSelectedPipe } from '../../pipes/internal/check-option-selected.pipe';
|
|
5
5
|
import { CpsInfoCircleComponent } from '../cps-info-circle/cps-info-circle.component';
|
|
@@ -33,6 +33,7 @@ export class CpsButtonToggleComponent {
|
|
|
33
33
|
this.infoTooltipPosition = 'top';
|
|
34
34
|
this._value = undefined;
|
|
35
35
|
this.valueChanged = new EventEmitter();
|
|
36
|
+
this.largestButtonWidth = 0;
|
|
36
37
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
37
38
|
this.onChange = (event) => { };
|
|
38
39
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
@@ -45,8 +46,6 @@ export class CpsButtonToggleComponent {
|
|
|
45
46
|
if (this.multiple && !this._value) {
|
|
46
47
|
this._value = [];
|
|
47
48
|
}
|
|
48
|
-
}
|
|
49
|
-
ngAfterViewInit() {
|
|
50
49
|
this._setEqualWidths();
|
|
51
50
|
}
|
|
52
51
|
registerOnChange(fn) {
|
|
@@ -99,28 +98,37 @@ export class CpsButtonToggleComponent {
|
|
|
99
98
|
_setEqualWidths() {
|
|
100
99
|
if (!this.equalWidths)
|
|
101
100
|
return;
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
101
|
+
const hiddenSpan = this.renderer.createElement('span');
|
|
102
|
+
this.renderer.setStyle(hiddenSpan, 'visibility', 'hidden');
|
|
103
|
+
this.renderer.setStyle(hiddenSpan, 'position', 'absolute');
|
|
104
|
+
this.renderer.setStyle(hiddenSpan, 'left', '-9999px');
|
|
105
|
+
this.renderer.setStyle(hiddenSpan, 'font-size', '16px');
|
|
106
|
+
this.renderer.setStyle(hiddenSpan, 'letter-spacing', '0.05em');
|
|
107
|
+
this.renderer.setStyle(hiddenSpan, 'font-family', '"Source Sans Pro", sans-serif');
|
|
108
|
+
this.renderer.appendChild(document.body, hiddenSpan);
|
|
109
|
+
this.largestButtonWidth = 0;
|
|
110
|
+
this.options.forEach((opt) => {
|
|
111
|
+
const text = this.renderer.createText(opt.label || '');
|
|
112
|
+
this.renderer.appendChild(hiddenSpan, text);
|
|
113
|
+
let width = hiddenSpan.offsetWidth || 0;
|
|
114
|
+
width += 26;
|
|
115
|
+
if (opt.icon) {
|
|
116
|
+
width += 16;
|
|
117
|
+
if (opt.label)
|
|
118
|
+
width += 8;
|
|
119
|
+
}
|
|
120
|
+
if (width > this.largestButtonWidth) {
|
|
121
|
+
this.largestButtonWidth = width;
|
|
111
122
|
}
|
|
123
|
+
this.renderer.removeChild(hiddenSpan, text);
|
|
112
124
|
});
|
|
113
|
-
|
|
114
|
-
contentOptions.forEach((elem) => {
|
|
115
|
-
this.renderer.setStyle(elem, 'min-width', largestButtonWidth + 'px');
|
|
116
|
-
});
|
|
117
|
-
}
|
|
125
|
+
this.renderer.removeChild(document.body, hiddenSpan);
|
|
118
126
|
}
|
|
119
127
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
120
128
|
setDisabledState(disabled) { }
|
|
121
129
|
}
|
|
122
130
|
CpsButtonToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsButtonToggleComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
123
|
-
CpsButtonToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CpsButtonToggleComponent, isStandalone: true, selector: "cps-button-toggle", inputs: { label: "label", options: "options", multiple: "multiple", disabled: "disabled", mandatory: "mandatory", equalWidths: "equalWidths", optionTooltipPosition: "optionTooltipPosition", infoTooltip: "infoTooltip", infoTooltipClass: "infoTooltipClass", infoTooltipMaxWidth: "infoTooltipMaxWidth", infoTooltipPersistent: "infoTooltipPersistent", infoTooltipPosition: "infoTooltipPosition", _value: ["value", "_value"] }, outputs: { valueChanged: "valueChanged" }, providers: [CheckOptionSelectedPipe],
|
|
131
|
+
CpsButtonToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CpsButtonToggleComponent, isStandalone: true, selector: "cps-button-toggle", inputs: { label: "label", options: "options", multiple: "multiple", disabled: "disabled", mandatory: "mandatory", equalWidths: "equalWidths", optionTooltipPosition: "optionTooltipPosition", infoTooltip: "infoTooltip", infoTooltipClass: "infoTooltipClass", infoTooltipMaxWidth: "infoTooltipMaxWidth", infoTooltipPersistent: "infoTooltipPersistent", infoTooltipPosition: "infoTooltipPosition", _value: ["value", "_value"] }, outputs: { valueChanged: "valueChanged" }, providers: [CheckOptionSelectedPipe], ngImport: i0, template: "<div class=\"cps-btn-toggle\">\n <div class=\"cps-btn-toggle-label\" *ngIf=\"label\">\n <span>{{ label }}</span>\n <cps-info-circle\n *ngIf=\"infoTooltip\"\n class=\"cps-btn-toggle-label-info-circle\"\n size=\"xsmall\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipContentClass]=\"infoTooltipClass\"\n [tooltipMaxWidth]=\"infoTooltipMaxWidth\"\n [tooltipPersistent]=\"infoTooltipPersistent\"\n [tooltipText]=\"infoTooltip\">\n </cps-info-circle>\n </div>\n <div class=\"cps-btn-toggle-content\">\n <ng-container *ngFor=\"let option of options\">\n <ng-container\n *ngTemplateOutlet=\"\n optionContainerTemplate;\n context: {\n option: option,\n tooltip: option.tooltip\n }\n \"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #optionContainerTemplate let-option=\"option\" let-tooltip=\"tooltip\">\n <label\n class=\"cps-btn-toggle-content-option\"\n *ngIf=\"tooltip\"\n [cpsTooltip]=\"option.tooltip\"\n tooltipCloseDelay=\"0\"\n [tooltipPosition]=\"optionTooltipPosition\">\n <ng-container\n *ngTemplateOutlet=\"\n optionRadioTemplate;\n context: {\n option: option\n }\n \"></ng-container>\n </label>\n <label class=\"cps-btn-toggle-content-option\" *ngIf=\"!tooltip\">\n <ng-container\n *ngTemplateOutlet=\"\n optionRadioTemplate;\n context: {\n option: option\n }\n \"></ng-container>\n </label>\n</ng-template>\n\n<ng-template #optionRadioTemplate let-option=\"option\">\n <input\n class=\"cps-btn-toggle-content-option-input\"\n [type]=\"!multiple && mandatory ? 'radio' : 'checkbox'\"\n [disabled]=\"option.disabled || disabled\"\n [value]=\"option.value\"\n [checked]=\"\n option.value | checkOptionSelected : value : multiple : true : ''\n \"\n (change)=\"updateValueEvent($event)\" />\n <span\n class=\"cps-btn-toggle-content-option-content\"\n [ngStyle]=\"{\n 'min-width': largestButtonWidth ? largestButtonWidth + 'px' : 'none'\n }\">\n <cps-icon\n *ngIf=\"option.icon\"\n [ngClass]=\"{ 'me-2': !!option.label }\"\n [icon]=\"option.icon\">\n </cps-icon>\n <span *ngIf=\"option.label\">{{ option.label }}</span>\n </span>\n</ng-template>\n", styles: [":host .cps-btn-toggle-label{color:var(--cps-color-text-dark);margin-bottom:.5rem;align-items:center;display:inline-flex;font-weight:700;font-size:16px;font-family:Source Sans Pro,sans-serif}:host .cps-btn-toggle-label .cps-btn-toggle-label-info-circle{margin-left:8px}:host .cps-btn-toggle-label .cps-btn-toggle-label-info-circle ::ng-deep cps-icon i{width:14px;height:14px}:host .cps-btn-toggle-content{display:flex}:host .cps-btn-toggle-content-option-input{clip:rect(0 0 0 0);clip-path:inset(100%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}:host .cps-btn-toggle-content-option-input:checked+.cps-btn-toggle-content-option-content{background-color:var(--cps-color-calm);z-index:1;color:#fff}:host .cps-btn-toggle-content-option-input:checked+.cps-btn-toggle-content-option-content:hover{background-image:linear-gradient(hsla(0,0%,100%,.1) 0 0)}:host .cps-btn-toggle-content-option-input:disabled+.cps-btn-toggle-content-option-content{pointer-events:none;background-color:#f7f7f7;color:var(--cps-color-text-light)}:host .cps-btn-toggle-content-option-input:disabled:checked+.cps-btn-toggle-content-option-content{background-color:var(--cps-color-line-mid);color:var(--cps-color-text-mild)}:host .cps-btn-toggle-content-option-content{height:36px;display:flex;width:max-content;align-items:center;justify-content:center;cursor:pointer;background-color:#fff;padding:.375em .75em;position:relative;border:.0625em solid var(--cps-color-text-light);border-right:0;font-weight:400;font-size:16px;font-family:Source Sans Pro,sans-serif;letter-spacing:.05em;color:var(--cps-color-text-dark);text-align:center;transition:background-color .2s ease;-webkit-user-select:none;user-select:none}:host .cps-btn-toggle-content-option-content:hover{background:#f8f4f5}:host .cps-btn-toggle-content-option-content:active{background:#f1eaec}:host .cps-btn-toggle-content-option:first-child .cps-btn-toggle-content-option-content{border-radius:4px 0 0 4px}:host .cps-btn-toggle-content-option:last-child .cps-btn-toggle-content-option-content{border-radius:0 4px 4px 0;border-right:.0625em solid var(--cps-color-text-light)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: CheckOptionSelectedPipe, name: "checkOptionSelected" }, { kind: "component", type: CpsInfoCircleComponent, selector: "cps-info-circle", inputs: ["size", "tooltipText", "tooltipPosition", "tooltipContentClass", "tooltipMaxWidth", "tooltipPersistent"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "directive", type: CpsTooltipDirective, selector: "[cpsTooltip]", inputs: ["cpsTooltip", "tooltipOpenDelay", "tooltipCloseDelay", "tooltipOpenOn", "tooltipPosition", "tooltipPersistent", "tooltipDisabled", "tooltipMaxWidth", "tooltipContentClass"] }] });
|
|
124
132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsButtonToggleComponent, decorators: [{
|
|
125
133
|
type: Component,
|
|
126
134
|
args: [{ standalone: true, imports: [
|
|
@@ -129,7 +137,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
129
137
|
CpsInfoCircleComponent,
|
|
130
138
|
CpsIconComponent,
|
|
131
139
|
CpsTooltipDirective
|
|
132
|
-
], providers: [CheckOptionSelectedPipe], selector: 'cps-button-toggle', template: "<div class=\"cps-btn-toggle\">\n <div class=\"cps-btn-toggle-label\" *ngIf=\"label\">\n <span>{{ label }}</span>\n <cps-info-circle\n *ngIf=\"infoTooltip\"\n class=\"cps-btn-toggle-label-info-circle\"\n size=\"xsmall\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipContentClass]=\"infoTooltipClass\"\n [tooltipMaxWidth]=\"infoTooltipMaxWidth\"\n [tooltipPersistent]=\"infoTooltipPersistent\"\n [tooltipText]=\"infoTooltip\">\n </cps-info-circle>\n </div>\n <div class=\"cps-btn-toggle-content\">\n <ng-container *ngFor=\"let option of options\">\n <ng-container\n *ngTemplateOutlet=\"\n optionContainerTemplate;\n context: {\n option: option,\n tooltip: option.tooltip\n }\n \"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #optionContainerTemplate let-option=\"option\" let-tooltip=\"tooltip\">\n <label\n class=\"cps-btn-toggle-content-option\"\n *ngIf=\"tooltip\"\n [cpsTooltip]=\"option.tooltip\"\n tooltipCloseDelay=\"0\"\n [tooltipPosition]=\"optionTooltipPosition\">\n <ng-container\n *ngTemplateOutlet=\"\n optionRadioTemplate;\n context: {\n option: option\n }\n \"></ng-container>\n </label>\n <label class=\"cps-btn-toggle-content-option\" *ngIf=\"!tooltip\">\n <ng-container\n *ngTemplateOutlet=\"\n optionRadioTemplate;\n context: {\n option: option\n }\n \"></ng-container>\n </label>\n</ng-template>\n\n<ng-template #optionRadioTemplate let-option=\"option\">\n <input\n class=\"cps-btn-toggle-content-option-input\"\n [type]=\"!multiple && mandatory ? 'radio' : 'checkbox'\"\n [disabled]=\"option.disabled || disabled\"\n [value]=\"option.value\"\n [checked]=\"\n option.value | checkOptionSelected : value : multiple : true : ''\n \"\n (change)=\"updateValueEvent($event)\" />\n <span
|
|
140
|
+
], providers: [CheckOptionSelectedPipe], selector: 'cps-button-toggle', template: "<div class=\"cps-btn-toggle\">\n <div class=\"cps-btn-toggle-label\" *ngIf=\"label\">\n <span>{{ label }}</span>\n <cps-info-circle\n *ngIf=\"infoTooltip\"\n class=\"cps-btn-toggle-label-info-circle\"\n size=\"xsmall\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipContentClass]=\"infoTooltipClass\"\n [tooltipMaxWidth]=\"infoTooltipMaxWidth\"\n [tooltipPersistent]=\"infoTooltipPersistent\"\n [tooltipText]=\"infoTooltip\">\n </cps-info-circle>\n </div>\n <div class=\"cps-btn-toggle-content\">\n <ng-container *ngFor=\"let option of options\">\n <ng-container\n *ngTemplateOutlet=\"\n optionContainerTemplate;\n context: {\n option: option,\n tooltip: option.tooltip\n }\n \"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #optionContainerTemplate let-option=\"option\" let-tooltip=\"tooltip\">\n <label\n class=\"cps-btn-toggle-content-option\"\n *ngIf=\"tooltip\"\n [cpsTooltip]=\"option.tooltip\"\n tooltipCloseDelay=\"0\"\n [tooltipPosition]=\"optionTooltipPosition\">\n <ng-container\n *ngTemplateOutlet=\"\n optionRadioTemplate;\n context: {\n option: option\n }\n \"></ng-container>\n </label>\n <label class=\"cps-btn-toggle-content-option\" *ngIf=\"!tooltip\">\n <ng-container\n *ngTemplateOutlet=\"\n optionRadioTemplate;\n context: {\n option: option\n }\n \"></ng-container>\n </label>\n</ng-template>\n\n<ng-template #optionRadioTemplate let-option=\"option\">\n <input\n class=\"cps-btn-toggle-content-option-input\"\n [type]=\"!multiple && mandatory ? 'radio' : 'checkbox'\"\n [disabled]=\"option.disabled || disabled\"\n [value]=\"option.value\"\n [checked]=\"\n option.value | checkOptionSelected : value : multiple : true : ''\n \"\n (change)=\"updateValueEvent($event)\" />\n <span\n class=\"cps-btn-toggle-content-option-content\"\n [ngStyle]=\"{\n 'min-width': largestButtonWidth ? largestButtonWidth + 'px' : 'none'\n }\">\n <cps-icon\n *ngIf=\"option.icon\"\n [ngClass]=\"{ 'me-2': !!option.label }\"\n [icon]=\"option.icon\">\n </cps-icon>\n <span *ngIf=\"option.label\">{{ option.label }}</span>\n </span>\n</ng-template>\n", styles: [":host .cps-btn-toggle-label{color:var(--cps-color-text-dark);margin-bottom:.5rem;align-items:center;display:inline-flex;font-weight:700;font-size:16px;font-family:Source Sans Pro,sans-serif}:host .cps-btn-toggle-label .cps-btn-toggle-label-info-circle{margin-left:8px}:host .cps-btn-toggle-label .cps-btn-toggle-label-info-circle ::ng-deep cps-icon i{width:14px;height:14px}:host .cps-btn-toggle-content{display:flex}:host .cps-btn-toggle-content-option-input{clip:rect(0 0 0 0);clip-path:inset(100%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}:host .cps-btn-toggle-content-option-input:checked+.cps-btn-toggle-content-option-content{background-color:var(--cps-color-calm);z-index:1;color:#fff}:host .cps-btn-toggle-content-option-input:checked+.cps-btn-toggle-content-option-content:hover{background-image:linear-gradient(hsla(0,0%,100%,.1) 0 0)}:host .cps-btn-toggle-content-option-input:disabled+.cps-btn-toggle-content-option-content{pointer-events:none;background-color:#f7f7f7;color:var(--cps-color-text-light)}:host .cps-btn-toggle-content-option-input:disabled:checked+.cps-btn-toggle-content-option-content{background-color:var(--cps-color-line-mid);color:var(--cps-color-text-mild)}:host .cps-btn-toggle-content-option-content{height:36px;display:flex;width:max-content;align-items:center;justify-content:center;cursor:pointer;background-color:#fff;padding:.375em .75em;position:relative;border:.0625em solid var(--cps-color-text-light);border-right:0;font-weight:400;font-size:16px;font-family:Source Sans Pro,sans-serif;letter-spacing:.05em;color:var(--cps-color-text-dark);text-align:center;transition:background-color .2s ease;-webkit-user-select:none;user-select:none}:host .cps-btn-toggle-content-option-content:hover{background:#f8f4f5}:host .cps-btn-toggle-content-option-content:active{background:#f1eaec}:host .cps-btn-toggle-content-option:first-child .cps-btn-toggle-content-option-content{border-radius:4px 0 0 4px}:host .cps-btn-toggle-content-option:last-child .cps-btn-toggle-content-option-content{border-radius:0 4px 4px 0;border-right:.0625em solid var(--cps-color-text-light)}\n"] }]
|
|
133
141
|
}], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
|
|
134
142
|
type: Self
|
|
135
143
|
}, {
|
|
@@ -163,8 +171,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
163
171
|
args: ['value']
|
|
164
172
|
}], valueChanged: [{
|
|
165
173
|
type: Output
|
|
166
|
-
}], optionsList: [{
|
|
167
|
-
type: ViewChildren,
|
|
168
|
-
args: ['optionContent']
|
|
169
174
|
}] } });
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLWJ1dHRvbi10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLWJ1dHRvbi10b2dnbGUvY3BzLWJ1dHRvbi10b2dnbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLWJ1dHRvbi10b2dnbGUvY3BzLWJ1dHRvbi10b2dnbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUdOLElBQUksRUFDSixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsbUJBQW1CLEVBRXBCLE1BQU0sd0NBQXdDLENBQUM7Ozs7QUF3QmhELE1BQU0sT0FBTyx3QkFBd0I7SUFrQm5DLElBQUksS0FBSyxDQUFDLEtBQVU7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFNRCxZQUM4QixRQUFt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O2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRVUsTUFBTTtzQkFBckIsS0FBSzt1QkFBQyxPQUFPO2dCQVdKLFlBQVk7c0JBQXJCLE1BQU07Z0JBRXdCLFdBQVc7c0JBQXpDLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFNlbGYsXG4gIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IENoZWNrT3B0aW9uU2VsZWN0ZWRQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvaW50ZXJuYWwvY2hlY2stb3B0aW9uLXNlbGVjdGVkLnBpcGUnO1xuaW1wb3J0IHsgQ3BzSW5mb0NpcmNsZUNvbXBvbmVudCB9IGZyb20gJy4uL2Nwcy1pbmZvLWNpcmNsZS9jcHMtaW5mby1jaXJjbGUuY29tcG9uZW50JztcbmltcG9ydCB7IENwc0ljb25Db21wb25lbnQgfSBmcm9tICcuLi9jcHMtaWNvbi9jcHMtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQ3BzVG9vbHRpcERpcmVjdGl2ZSxcbiAgVG9vbHRpcFBvc2l0aW9uXG59IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY3BzLXRvb2x0aXAuZGlyZWN0aXZlJztcblxuZXhwb3J0IHR5cGUgQnRuVG9nZ2xlT3B0aW9uID0ge1xuICB2YWx1ZTogYW55O1xuICBsYWJlbD86IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICB0b29sdGlwPzogc3RyaW5nO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ2hlY2tPcHRpb25TZWxlY3RlZFBpcGUsXG4gICAgQ3BzSW5mb0NpcmNsZUNvbXBvbmVudCxcbiAgICBDcHNJY29uQ29tcG9uZW50LFxuICAgIENwc1Rvb2x0aXBEaXJlY3RpdmVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbQ2hlY2tPcHRpb25TZWxlY3RlZFBpcGVdLFxuICBzZWxlY3RvcjogJ2Nwcy1idXR0b24tdG9nZ2xlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nwcy1idXR0b24tdG9nZ2xlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3BzLWJ1dHRvbi10b2dnbGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDcHNCdXR0b25Ub2dnbGVDb21wb25lbnRcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBBZnRlclZpZXdJbml0XG57XG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIG9wdGlvbnMgPSBbXSBhcyBCdG5Ub2dnbGVPcHRpb25bXTtcbiAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgbWFuZGF0b3J5ID0gdHJ1ZTsgLy8gYXQgbGVhc3Qgb25lIG9mIHRoZSBvcHRpb25zIGlzIG1hbmRhdG9yeVxuICBASW5wdXQoKSBlcXVhbFdpZHRocyA9IHRydWU7XG4gIEBJbnB1dCgpIG9wdGlvblRvb2x0aXBQb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9uID0gJ2JvdHRvbSc7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwID0gJyc7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwQ2xhc3MgPSAnY3BzLXRvb2x0aXAtY29udGVudCc7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwTWF4V2lkdGg6IG51bWJlciB8IHN0cmluZyA9ICcxMDAlJztcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXBQZXJzaXN0ZW50ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwUG9zaXRpb246IFRvb2x0aXBQb3NpdGlvbiA9ICd0b3AnO1xuXG4gIEBJbnB1dCgndmFsdWUnKSBfdmFsdWU6IGFueSA9IHVuZGVmaW5lZDtcblxuICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQFZpZXdDaGlsZHJlbignb3B0aW9uQ29udGVudCcpIG9wdGlvbnNMaXN0ITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY29udHJvbDogTmdDb250cm9sLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHtcbiAgICBpZiAodGhpcy5fY29udHJvbCkge1xuICAgICAgdGhpcy5fY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiAhdGhpcy5fdmFsdWUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gW107XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3NldEVxdWFsV2lkdGhzKCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uQ2hhbmdlID0gKGV2ZW50OiBhbnkpID0+IHt9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgdXBkYXRlVmFsdWVFdmVudChldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICBjb25zdCBjaGVjayA9IGV2ZW50Py50YXJnZXQ/LmNoZWNrZWQgfHwgZmFsc2U7XG5cbiAgICBpZiAodGhpcy5tYW5kYXRvcnkgJiYgdGhpcy5tdWx0aXBsZSAmJiAhY2hlY2sgJiYgdGhpcy52YWx1ZS5sZW5ndGggPCAyKSB7XG4gICAgICBldmVudC50YXJnZXQuY2hlY2tlZCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmFsID0gZXZlbnQ/LnRhcmdldD8udmFsdWUgfHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGxldCByZXMgPSBbXSBhcyBhbnk7XG4gICAgICBpZiAoIWNoZWNrKSB7XG4gICAgICAgIHJlcyA9IHRoaXMudmFsdWUuZmlsdGVyKCh2OiBhbnkpID0+ICFpc0VxdWFsKHYsIHZhbCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2goKG8pID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnZhbHVlLnNvbWUoKHY6IGFueSkgPT4gaXNFcXVhbCh2LCBvLnZhbHVlKSkgfHxcbiAgICAgICAgICAgIGlzRXF1YWwodmFsLCBvLnZhbHVlKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmVzLnB1c2goby52YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlKHJlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLm1hbmRhdG9yeSkge1xuICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZSh2YWwpOyAvLyByYWRpb1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlVmFsdWUoY2hlY2sgPyB2YWwgOiB1bmRlZmluZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0RXF1YWxXaWR0aHMoKSB7XG4gICAgaWYgKCF0aGlzLmVxdWFsV2lkdGhzKSByZXR1cm47XG5cbiAgICBjb25zdCBjb250ZW50T3B0aW9ucyA9XG4gICAgICB0aGlzLm9wdGlvbnNMaXN0XG4gICAgICAgID8udG9BcnJheSgpXG4gICAgICAgID8uZmlsdGVyKChvcHQpID0+IG9wdD8ubmF0aXZlRWxlbWVudClcbiAgICAgICAgPy5tYXAoKG9wdCkgPT4gb3B0Lm5hdGl2ZUVsZW1lbnQpIHx8IFtdO1xuXG4gICAgbGV0IGxhcmdlc3RCdXR0b25XaWR0aCA9IDA7XG4gICAgY29udGVudE9wdGlvbnMuZm9yRWFjaCgoZWxlbSkgPT4ge1xuICAgICAgY29uc3QgYnV0dG9uV2lkdGggPSBlbGVtLm9mZnNldFdpZHRoIHx8IDA7XG4gICAgICBpZiAoYnV0dG9uV2lkdGggPiBsYXJnZXN0QnV0dG9uV2lkdGgpIHtcbiAgICAgICAgbGFyZ2VzdEJ1dHRvbldpZHRoID0gYnV0dG9uV2lkdGg7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAobGFyZ2VzdEJ1dHRvbldpZHRoID4gMCkge1xuICAgICAgY29udGVudE9wdGlvbnMuZm9yRWFjaCgoZWxlbSkgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW0sICdtaW4td2lkdGgnLCBsYXJnZXN0QnV0dG9uV2lkdGggKyAncHgnKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbikge31cbn1cbiIsIjxkaXYgY2xhc3M9XCJjcHMtYnRuLXRvZ2dsZVwiPlxuICA8ZGl2IGNsYXNzPVwiY3BzLWJ0bi10b2dnbGUtbGFiZWxcIiAqbmdJZj1cImxhYmVsXCI+XG4gICAgPHNwYW4+e3sgbGFiZWwgfX08L3NwYW4+XG4gICAgPGNwcy1pbmZvLWNpcmNsZVxuICAgICAgKm5nSWY9XCJpbmZvVG9vbHRpcFwiXG4gICAgICBjbGFzcz1cImNwcy1idG4tdG9nZ2xlLWxhYmVsLWluZm8tY2lyY2xlXCJcbiAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJpbmZvVG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgIFt0b29sdGlwQ29udGVudENsYXNzXT1cImluZm9Ub29sdGlwQ2xhc3NcIlxuICAgICAgW3Rvb2x0aXBNYXhXaWR0aF09XCJpbmZvVG9vbHRpcE1heFdpZHRoXCJcbiAgICAgIFt0b29sdGlwUGVyc2lzdGVudF09XCJpbmZvVG9vbHRpcFBlcnNpc3RlbnRcIlxuICAgICAgW3Rvb2x0aXBUZXh0XT1cImluZm9Ub29sdGlwXCI+XG4gICAgPC9jcHMtaW5mby1jaXJjbGU+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY3BzLWJ0bi10b2dnbGUtY29udGVudFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgb3B0aW9uQ29udGFpbmVyVGVtcGxhdGU7XG4gICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgb3B0aW9uOiBvcHRpb24sXG4gICAgICAgICAgICB0b29sdGlwOiBvcHRpb24udG9vbHRpcFxuICAgICAgICAgIH1cbiAgICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjb3B0aW9uQ29udGFpbmVyVGVtcGxhdGUgbGV0LW9wdGlvbj1cIm9wdGlvblwiIGxldC10b29sdGlwPVwidG9vbHRpcFwiPlxuICA8bGFiZWxcbiAgICBjbGFzcz1cImNwcy1idG4tdG9nZ2xlLWNvbnRlbnQtb3B0aW9uXCJcbiAgICAqbmdJZj1cInRvb2x0aXBcIlxuICAgIFtjcHNUb29sdGlwXT1cIm9wdGlvbi50b29sdGlwXCJcbiAgICB0b29sdGlwQ2xvc2VEZWxheT1cIjBcIlxuICAgIFt0b29sdGlwUG9zaXRpb25dPVwib3B0aW9uVG9vbHRpcFBvc2l0aW9uXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgb3B0aW9uUmFkaW9UZW1wbGF0ZTtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIG9wdGlvbjogb3B0aW9uXG4gICAgICAgIH1cbiAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuICA8L2xhYmVsPlxuICA8bGFiZWwgY2xhc3M9XCJjcHMtYnRuLXRvZ2dsZS1jb250ZW50LW9wdGlvblwiICpuZ0lmPVwiIXRvb2x0aXBcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBvcHRpb25SYWRpb1RlbXBsYXRlO1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgb3B0aW9uOiBvcHRpb25cbiAgICAgICAgfVxuICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gIDwvbGFiZWw+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI29wdGlvblJhZGlvVGVtcGxhdGUgbGV0LW9wdGlvbj1cIm9wdGlvblwiPlxuICA8aW5wdXRcbiAgICBjbGFzcz1cImNwcy1idG4tdG9nZ2xlLWNvbnRlbnQtb3B0aW9uLWlucHV0XCJcbiAgICBbdHlwZV09XCIhbXVsdGlwbGUgJiYgbWFuZGF0b3J5ID8gJ3JhZGlvJyA6ICdjaGVja2JveCdcIlxuICAgIFtkaXNhYmxlZF09XCJvcHRpb24uZGlzYWJsZWQgfHwgZGlzYWJsZWRcIlxuICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgIFtjaGVja2VkXT1cIlxuICAgICAgb3B0aW9uLnZhbHVlIHwgY2hlY2tPcHRpb25TZWxlY3RlZCA6IHZhbHVlIDogbXVsdGlwbGUgOiB0cnVlIDogJydcbiAgICBcIlxuICAgIChjaGFuZ2UpPVwidXBkYXRlVmFsdWVFdmVudCgkZXZlbnQpXCIgLz5cbiAgPHNwYW4gY2xhc3M9XCJjcHMtYnRuLXRvZ2dsZS1jb250ZW50LW9wdGlvbi1jb250ZW50XCIgI29wdGlvbkNvbnRlbnQ+XG4gICAgPGNwcy1pY29uXG4gICAgICAqbmdJZj1cIm9wdGlvbi5pY29uXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ21lLTInOiAhIW9wdGlvbi5sYWJlbCB9XCJcbiAgICAgIFtpY29uXT1cIm9wdGlvbi5pY29uXCI+XG4gICAgPC9jcHMtaWNvbj5cbiAgICA8c3BhbiAqbmdJZj1cIm9wdGlvbi5sYWJlbFwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvc3Bhbj5cbiAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLWJ1dHRvbi10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLWJ1dHRvbi10b2dnbGUvY3BzLWJ1dHRvbi10b2dnbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLWJ1dHRvbi10b2dnbGUvY3BzLWJ1dHRvbi10b2dnbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUVOLElBQUksRUFDTCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFDTCxtQkFBbUIsRUFFcEIsTUFBTSx3Q0FBd0MsQ0FBQzs7OztBQXdCaEQsTUFBTSxPQUFPLHdCQUF3QjtJQWdCbkMsSUFBSSxLQUFLLENBQUMsS0FBVTtRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQU1ELFlBQzhCLFFBQW1CLEVBQ3ZDLFFB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LEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGdFQUFnRTtJQUNoRSxnQkFBZ0IsQ0FBQyxRQUFpQixJQUFHLENBQUM7O3FIQTdJM0Isd0JBQXdCO3lHQUF4Qix3QkFBd0Isa2hCQUx4QixDQUFDLHVCQUF1QixDQUFDLDBCQ3RDdEMsMjBFQTZFQSxvcEVEN0NJLFlBQVkscWxCQUNaLHVCQUF1Qiw0REFDdkIsc0JBQXNCLCtLQUN0QixnQkFBZ0Isd0ZBQ2hCLG1CQUFtQjsyRkFPVix3QkFBd0I7a0JBZHBDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3FCQUNwQixhQUNVLENBQUMsdUJBQXVCLENBQUMsWUFDMUIsbUJBQW1COzswQkFrQzFCLElBQUk7OzBCQUFJLFFBQVE7b0VBN0JWLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRVUsTUFBTTtzQkFBckIsS0FBSzt1QkFBQyxPQUFPO2dCQVdKLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IENoZWNrT3B0aW9uU2VsZWN0ZWRQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvaW50ZXJuYWwvY2hlY2stb3B0aW9uLXNlbGVjdGVkLnBpcGUnO1xuaW1wb3J0IHsgQ3BzSW5mb0NpcmNsZUNvbXBvbmVudCB9IGZyb20gJy4uL2Nwcy1pbmZvLWNpcmNsZS9jcHMtaW5mby1jaXJjbGUuY29tcG9uZW50JztcbmltcG9ydCB7IENwc0ljb25Db21wb25lbnQgfSBmcm9tICcuLi9jcHMtaWNvbi9jcHMtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQ3BzVG9vbHRpcERpcmVjdGl2ZSxcbiAgVG9vbHRpcFBvc2l0aW9uXG59IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY3BzLXRvb2x0aXAuZGlyZWN0aXZlJztcblxuZXhwb3J0IHR5cGUgQ3BzQnV0dG9uVG9nZ2xlT3B0aW9uID0ge1xuICB2YWx1ZTogYW55O1xuICBsYWJlbD86IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICB0b29sdGlwPzogc3RyaW5nO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ2hlY2tPcHRpb25TZWxlY3RlZFBpcGUsXG4gICAgQ3BzSW5mb0NpcmNsZUNvbXBvbmVudCxcbiAgICBDcHNJY29uQ29tcG9uZW50LFxuICAgIENwc1Rvb2x0aXBEaXJlY3RpdmVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbQ2hlY2tPcHRpb25TZWxlY3RlZFBpcGVdLFxuICBzZWxlY3RvcjogJ2Nwcy1idXR0b24tdG9nZ2xlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nwcy1idXR0b24tdG9nZ2xlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3BzLWJ1dHRvbi10b2dnbGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDcHNCdXR0b25Ub2dnbGVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgQElucHV0KCkgb3B0aW9ucyA9IFtdIGFzIENwc0J1dHRvblRvZ2dsZU9wdGlvbltdO1xuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBtYW5kYXRvcnkgPSB0cnVlOyAvLyBhdCBsZWFzdCBvbmUgb2YgdGhlIG9wdGlvbnMgaXMgbWFuZGF0b3J5XG4gIEBJbnB1dCgpIGVxdWFsV2lkdGhzID0gdHJ1ZTtcbiAgQElucHV0KCkgb3B0aW9uVG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSAnYm90dG9tJztcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXAgPSAnJztcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXBDbGFzcyA9ICdjcHMtdG9vbHRpcC1jb250ZW50JztcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXBNYXhXaWR0aDogbnVtYmVyIHwgc3RyaW5nID0gJzEwMCUnO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcFBlcnNpc3RlbnQgPSBmYWxzZTtcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXBQb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9uID0gJ3RvcCc7XG5cbiAgQElucHV0KCd2YWx1ZScpIF92YWx1ZTogYW55ID0gdW5kZWZpbmVkO1xuXG4gIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBsYXJnZXN0QnV0dG9uV2lkdGggPSAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY29udHJvbDogTmdDb250cm9sLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHtcbiAgICBpZiAodGhpcy5fY29udHJvbCkge1xuICAgICAgdGhpcy5fY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiAhdGhpcy5fdmFsdWUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gW107XG4gICAgfVxuICAgIHRoaXMuX3NldEVxdWFsV2lkdGhzKCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uQ2hhbmdlID0gKGV2ZW50OiBhbnkpID0+IHt9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgdXBkYXRlVmFsdWVFdmVudChldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICBjb25zdCBjaGVjayA9IGV2ZW50Py50YXJnZXQ/LmNoZWNrZWQgfHwgZmFsc2U7XG5cbiAgICBpZiAodGhpcy5tYW5kYXRvcnkgJiYgdGhpcy5tdWx0aXBsZSAmJiAhY2hlY2sgJiYgdGhpcy52YWx1ZS5sZW5ndGggPCAyKSB7XG4gICAgICBldmVudC50YXJnZXQuY2hlY2tlZCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmFsID0gZXZlbnQ/LnRhcmdldD8udmFsdWUgfHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGxldCByZXMgPSBbXSBhcyBhbnk7XG4gICAgICBpZiAoIWNoZWNrKSB7XG4gICAgICAgIHJlcyA9IHRoaXMudmFsdWUuZmlsdGVyKCh2OiBhbnkpID0+ICFpc0VxdWFsKHYsIHZhbCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2goKG8pID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnZhbHVlLnNvbWUoKHY6IGFueSkgPT4gaXNFcXVhbCh2LCBvLnZhbHVlKSkgfHxcbiAgICAgICAgICAgIGlzRXF1YWwodmFsLCBvLnZhbHVlKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmVzLnB1c2goby52YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlKHJlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLm1hbmRhdG9yeSkge1xuICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZSh2YWwpOyAvLyByYWRpb1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlVmFsdWUoY2hlY2sgPyB2YWwgOiB1bmRlZmluZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0RXF1YWxXaWR0aHMoKSB7XG4gICAgaWYgKCF0aGlzLmVxdWFsV2lkdGhzKSByZXR1cm47XG5cbiAgICBjb25zdCBoaWRkZW5TcGFuID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShoaWRkZW5TcGFuLCAndmlzaWJpbGl0eScsICdoaWRkZW4nKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGhpZGRlblNwYW4sICdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaGlkZGVuU3BhbiwgJ2xlZnQnLCAnLTk5OTlweCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaGlkZGVuU3BhbiwgJ2ZvbnQtc2l6ZScsICcxNnB4Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShoaWRkZW5TcGFuLCAnbGV0dGVyLXNwYWNpbmcnLCAnMC4wNWVtJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgIGhpZGRlblNwYW4sXG4gICAgICAnZm9udC1mYW1pbHknLFxuICAgICAgJ1wiU291cmNlIFNhbnMgUHJvXCIsIHNhbnMtc2VyaWYnXG4gICAgKTtcblxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuYm9keSwgaGlkZGVuU3Bhbik7XG5cbiAgICB0aGlzLmxhcmdlc3RCdXR0b25XaWR0aCA9IDA7XG4gICAgdGhpcy5vcHRpb25zLmZvckVhY2goKG9wdCkgPT4ge1xuICAgICAgY29uc3QgdGV4dCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dChvcHQubGFiZWwgfHwgJycpO1xuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChoaWRkZW5TcGFuLCB0ZXh0KTtcblxuICAgICAgbGV0IHdpZHRoID0gaGlkZGVuU3Bhbi5vZmZzZXRXaWR0aCB8fCAwO1xuICAgICAgd2lkdGggKz0gMjY7XG4gICAgICBpZiAob3B0Lmljb24pIHtcbiAgICAgICAgd2lkdGggKz0gMTY7XG4gICAgICAgIGlmIChvcHQubGFiZWwpIHdpZHRoICs9IDg7XG4gICAgICB9XG4gICAgICBpZiAod2lkdGggPiB0aGlzLmxhcmdlc3RCdXR0b25XaWR0aCkge1xuICAgICAgICB0aGlzLmxhcmdlc3RCdXR0b25XaWR0aCA9IHdpZHRoO1xuICAgICAgfVxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChoaWRkZW5TcGFuLCB0ZXh0KTtcbiAgICB9KTtcblxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuYm9keSwgaGlkZGVuU3Bhbik7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pIHt9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY3BzLWJ0bi10b2dnbGVcIj5cbiAgPGRpdiBjbGFzcz1cImNwcy1idG4tdG9nZ2xlLWxhYmVsXCIgKm5nSWY9XCJsYWJlbFwiPlxuICAgIDxzcGFuPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgIDxjcHMtaW5mby1jaXJjbGVcbiAgICAgICpuZ0lmPVwiaW5mb1Rvb2x0aXBcIlxuICAgICAgY2xhc3M9XCJjcHMtYnRuLXRvZ2dsZS1sYWJlbC1pbmZvLWNpcmNsZVwiXG4gICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiaW5mb1Rvb2x0aXBQb3NpdGlvblwiXG4gICAgICBbdG9vbHRpcENvbnRlbnRDbGFzc109XCJpbmZvVG9vbHRpcENsYXNzXCJcbiAgICAgIFt0b29sdGlwTWF4V2lkdGhdPVwiaW5mb1Rvb2x0aXBNYXhXaWR0aFwiXG4gICAgICBbdG9vbHRpcFBlcnNpc3RlbnRdPVwiaW5mb1Rvb2x0aXBQZXJzaXN0ZW50XCJcbiAgICAgIFt0b29sdGlwVGV4dF09XCJpbmZvVG9vbHRpcFwiPlxuICAgIDwvY3BzLWluZm8tY2lyY2xlPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNwcy1idG4tdG9nZ2xlLWNvbnRlbnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIG9wdGlvbkNvbnRhaW5lclRlbXBsYXRlO1xuICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgIG9wdGlvbjogb3B0aW9uLFxuICAgICAgICAgICAgdG9vbHRpcDogb3B0aW9uLnRvb2x0aXBcbiAgICAgICAgICB9XG4gICAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI29wdGlvbkNvbnRhaW5lclRlbXBsYXRlIGxldC1vcHRpb249XCJvcHRpb25cIiBsZXQtdG9vbHRpcD1cInRvb2x0aXBcIj5cbiAgPGxhYmVsXG4gICAgY2xhc3M9XCJjcHMtYnRuLXRvZ2dsZS1jb250ZW50LW9wdGlvblwiXG4gICAgKm5nSWY9XCJ0b29sdGlwXCJcbiAgICBbY3BzVG9vbHRpcF09XCJvcHRpb24udG9vbHRpcFwiXG4gICAgdG9vbHRpcENsb3NlRGVsYXk9XCIwXCJcbiAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIm9wdGlvblRvb2x0aXBQb3NpdGlvblwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIG9wdGlvblJhZGlvVGVtcGxhdGU7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBvcHRpb246IG9wdGlvblxuICAgICAgICB9XG4gICAgICBcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9sYWJlbD5cbiAgPGxhYmVsIGNsYXNzPVwiY3BzLWJ0bi10b2dnbGUtY29udGVudC1vcHRpb25cIiAqbmdJZj1cIiF0b29sdGlwXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgb3B0aW9uUmFkaW9UZW1wbGF0ZTtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIG9wdGlvbjogb3B0aW9uXG4gICAgICAgIH1cbiAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuICA8L2xhYmVsPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNvcHRpb25SYWRpb1RlbXBsYXRlIGxldC1vcHRpb249XCJvcHRpb25cIj5cbiAgPGlucHV0XG4gICAgY2xhc3M9XCJjcHMtYnRuLXRvZ2dsZS1jb250ZW50LW9wdGlvbi1pbnB1dFwiXG4gICAgW3R5cGVdPVwiIW11bHRpcGxlICYmIG1hbmRhdG9yeSA/ICdyYWRpbycgOiAnY2hlY2tib3gnXCJcbiAgICBbZGlzYWJsZWRdPVwib3B0aW9uLmRpc2FibGVkIHx8IGRpc2FibGVkXCJcbiAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICBbY2hlY2tlZF09XCJcbiAgICAgIG9wdGlvbi52YWx1ZSB8IGNoZWNrT3B0aW9uU2VsZWN0ZWQgOiB2YWx1ZSA6IG11bHRpcGxlIDogdHJ1ZSA6ICcnXG4gICAgXCJcbiAgICAoY2hhbmdlKT1cInVwZGF0ZVZhbHVlRXZlbnQoJGV2ZW50KVwiIC8+XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJjcHMtYnRuLXRvZ2dsZS1jb250ZW50LW9wdGlvbi1jb250ZW50XCJcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAnbWluLXdpZHRoJzogbGFyZ2VzdEJ1dHRvbldpZHRoID8gbGFyZ2VzdEJ1dHRvbldpZHRoICsgJ3B4JyA6ICdub25lJ1xuICAgIH1cIj5cbiAgICA8Y3BzLWljb25cbiAgICAgICpuZ0lmPVwib3B0aW9uLmljb25cIlxuICAgICAgW25nQ2xhc3NdPVwieyAnbWUtMic6ICEhb3B0aW9uLmxhYmVsIH1cIlxuICAgICAgW2ljb25dPVwib3B0aW9uLmljb25cIj5cbiAgICA8L2Nwcy1pY29uPlxuICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLmxhYmVsXCI+e3sgb3B0aW9uLmxhYmVsIH19PC9zcGFuPlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/* eslint-disable no-unused-vars */
|
|
2
|
+
export var CpsColumnFilterMatchMode;
|
|
3
|
+
(function (CpsColumnFilterMatchMode) {
|
|
4
|
+
CpsColumnFilterMatchMode["STARTS_WITH"] = "startsWith";
|
|
5
|
+
CpsColumnFilterMatchMode["CONTAINS"] = "contains";
|
|
6
|
+
CpsColumnFilterMatchMode["NOT_CONTAINS"] = "notContains";
|
|
7
|
+
CpsColumnFilterMatchMode["ENDS_WITH"] = "endsWith";
|
|
8
|
+
CpsColumnFilterMatchMode["EQUALS"] = "equals";
|
|
9
|
+
CpsColumnFilterMatchMode["NOT_EQUALS"] = "notEquals";
|
|
10
|
+
CpsColumnFilterMatchMode["IN"] = "in";
|
|
11
|
+
CpsColumnFilterMatchMode["LESS_THAN"] = "lt";
|
|
12
|
+
CpsColumnFilterMatchMode["LESS_THAN_OR_EQUAL_TO"] = "lte";
|
|
13
|
+
CpsColumnFilterMatchMode["GREATER_THAN"] = "gt";
|
|
14
|
+
CpsColumnFilterMatchMode["GREATER_THAN_OR_EQUAL_TO"] = "gte";
|
|
15
|
+
CpsColumnFilterMatchMode["BETWEEN"] = "between";
|
|
16
|
+
CpsColumnFilterMatchMode["IS"] = "is";
|
|
17
|
+
CpsColumnFilterMatchMode["IS_NOT"] = "isNot";
|
|
18
|
+
CpsColumnFilterMatchMode["BEFORE"] = "before";
|
|
19
|
+
CpsColumnFilterMatchMode["AFTER"] = "after";
|
|
20
|
+
CpsColumnFilterMatchMode["DATE_IS"] = "dateIs";
|
|
21
|
+
CpsColumnFilterMatchMode["DATE_IS_NOT"] = "dateIsNot";
|
|
22
|
+
CpsColumnFilterMatchMode["DATE_BEFORE"] = "dateBefore";
|
|
23
|
+
CpsColumnFilterMatchMode["DATE_AFTER"] = "dateAfter";
|
|
24
|
+
})(CpsColumnFilterMatchMode || (CpsColumnFilterMatchMode = {}));
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLWNvbHVtbi1maWx0ZXItdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcHMtdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9jcHMtdGFibGUvY3BzLWNvbHVtbi1maWx0ZXItdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBQ25DLE1BQU0sQ0FBTixJQUFZLHdCQXFCWDtBQXJCRCxXQUFZLHdCQUF3QjtJQUNsQyxzREFBMEIsQ0FBQTtJQUMxQixpREFBcUIsQ0FBQTtJQUNyQix3REFBNEIsQ0FBQTtJQUM1QixrREFBc0IsQ0FBQTtJQUN0Qiw2Q0FBaUIsQ0FBQTtJQUNqQixvREFBd0IsQ0FBQTtJQUN4QixxQ0FBUyxDQUFBO0lBQ1QsNENBQWdCLENBQUE7SUFDaEIseURBQTZCLENBQUE7SUFDN0IsK0NBQW1CLENBQUE7SUFDbkIsNERBQWdDLENBQUE7SUFDaEMsK0NBQW1CLENBQUE7SUFDbkIscUNBQVMsQ0FBQTtJQUNULDRDQUFnQixDQUFBO0lBQ2hCLDZDQUFpQixDQUFBO0lBQ2pCLDJDQUFlLENBQUE7SUFDZiw4Q0FBa0IsQ0FBQTtJQUNsQixxREFBeUIsQ0FBQTtJQUN6QixzREFBMEIsQ0FBQTtJQUMxQixvREFBd0IsQ0FBQTtBQUMxQixDQUFDLEVBckJXLHdCQUF3QixLQUF4Qix3QkFBd0IsUUFxQm5DIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbmV4cG9ydCBlbnVtIENwc0NvbHVtbkZpbHRlck1hdGNoTW9kZSB7XG4gIFNUQVJUU19XSVRIID0gJ3N0YXJ0c1dpdGgnLFxuICBDT05UQUlOUyA9ICdjb250YWlucycsXG4gIE5PVF9DT05UQUlOUyA9ICdub3RDb250YWlucycsXG4gIEVORFNfV0lUSCA9ICdlbmRzV2l0aCcsXG4gIEVRVUFMUyA9ICdlcXVhbHMnLFxuICBOT1RfRVFVQUxTID0gJ25vdEVxdWFscycsXG4gIElOID0gJ2luJyxcbiAgTEVTU19USEFOID0gJ2x0JyxcbiAgTEVTU19USEFOX09SX0VRVUFMX1RPID0gJ2x0ZScsXG4gIEdSRUFURVJfVEhBTiA9ICdndCcsXG4gIEdSRUFURVJfVEhBTl9PUl9FUVVBTF9UTyA9ICdndGUnLFxuICBCRVRXRUVOID0gJ2JldHdlZW4nLFxuICBJUyA9ICdpcycsXG4gIElTX05PVCA9ICdpc05vdCcsXG4gIEJFRk9SRSA9ICdiZWZvcmUnLFxuICBBRlRFUiA9ICdhZnRlcicsXG4gIERBVEVfSVMgPSAnZGF0ZUlzJyxcbiAgREFURV9JU19OT1QgPSAnZGF0ZUlzTm90JyxcbiAgREFURV9CRUZPUkUgPSAnZGF0ZUJlZm9yZScsXG4gIERBVEVfQUZURVIgPSAnZGF0ZUFmdGVyJ1xufVxuXG5leHBvcnQgdHlwZSBDcHNDb2x1bW5GaWx0ZXJDYXRlZ29yeU9wdGlvbiA9IHtcbiAgdmFsdWU6IGFueTtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgdG9vbHRpcD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIENwc0NvbHVtbkZpbHRlclR5cGUgPVxuICB8ICd0ZXh0J1xuICB8ICdudW1iZXInXG4gIHwgJ2RhdGUnXG4gIHwgJ2Jvb2xlYW4nXG4gIHwgJ2NhdGVnb3J5JztcbiJdfQ==
|
|
@@ -16,6 +16,8 @@ export class CpsTableColumnFilterDirective {
|
|
|
16
16
|
this.filterMaxConstraints = 2;
|
|
17
17
|
this.filterHideOnClear = false;
|
|
18
18
|
this.filterCategoryOptions = [];
|
|
19
|
+
this.filterAsButtonToggle = false; // for category filterType only
|
|
20
|
+
this.filterSingleSelection = false; // for category filterType only
|
|
19
21
|
this.filterPlaceholder = '';
|
|
20
22
|
this.filterCompRef = this.viewContainerRef.createComponent(TableColumnFilterComponent);
|
|
21
23
|
}
|
|
@@ -35,6 +37,8 @@ export class CpsTableColumnFilterDirective {
|
|
|
35
37
|
this.filterCompRef.setInput('maxConstraints', this.filterMaxConstraints);
|
|
36
38
|
this.filterCompRef.setInput('hideOnClear', this.filterHideOnClear);
|
|
37
39
|
this.filterCompRef.setInput('categoryOptions', this.filterCategoryOptions);
|
|
40
|
+
this.filterCompRef.setInput('asButtonToggle', this.filterAsButtonToggle);
|
|
41
|
+
this.filterCompRef.setInput('singleSelection', this.filterSingleSelection);
|
|
38
42
|
this.filterCompRef.setInput('placeholder', this.filterPlaceholder || this._getDefaultPlaceholder());
|
|
39
43
|
}
|
|
40
44
|
_getDefaultPlaceholder() {
|
|
@@ -51,6 +55,9 @@ export class CpsTableColumnFilterDirective {
|
|
|
51
55
|
return '';
|
|
52
56
|
}
|
|
53
57
|
}
|
|
58
|
+
hideFilter() {
|
|
59
|
+
this.filterCompRef?.instance?.hide();
|
|
60
|
+
}
|
|
54
61
|
clearFilter() {
|
|
55
62
|
this.filterCompRef?.instance?.clearFilter();
|
|
56
63
|
}
|
|
@@ -60,7 +67,7 @@ export class CpsTableColumnFilterDirective {
|
|
|
60
67
|
}
|
|
61
68
|
}
|
|
62
69
|
CpsTableColumnFilterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsTableColumnFilterDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
63
|
-
CpsTableColumnFilterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: CpsTableColumnFilterDirective, isStandalone: true, selector: "[cpsTColFilter]", inputs: { field: ["cpsTColFilter", "field"], filterType: "filterType", filterPersistent: "filterPersistent", filterShowClearButton: "filterShowClearButton", filterShowApplyButton: "filterShowApplyButton", filterShowCloseButton: "filterShowCloseButton", filterShowMatchModes: "filterShowMatchModes", filterMatchModes: "filterMatchModes", filterShowOperator: "filterShowOperator", filterMaxConstraints: "filterMaxConstraints", filterHideOnClear: "filterHideOnClear", filterCategoryOptions: "filterCategoryOptions", filterPlaceholder: "filterPlaceholder" }, exportAs: ["cpsTColFilter"], usesOnChanges: true, ngImport: i0 });
|
|
70
|
+
CpsTableColumnFilterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: CpsTableColumnFilterDirective, isStandalone: true, selector: "[cpsTColFilter]", inputs: { field: ["cpsTColFilter", "field"], filterType: "filterType", filterPersistent: "filterPersistent", filterShowClearButton: "filterShowClearButton", filterShowApplyButton: "filterShowApplyButton", filterShowCloseButton: "filterShowCloseButton", filterShowMatchModes: "filterShowMatchModes", filterMatchModes: "filterMatchModes", filterShowOperator: "filterShowOperator", filterMaxConstraints: "filterMaxConstraints", filterHideOnClear: "filterHideOnClear", filterCategoryOptions: "filterCategoryOptions", filterAsButtonToggle: "filterAsButtonToggle", filterSingleSelection: "filterSingleSelection", filterPlaceholder: "filterPlaceholder" }, exportAs: ["cpsTColFilter"], usesOnChanges: true, ngImport: i0 });
|
|
64
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsTableColumnFilterDirective, decorators: [{
|
|
65
72
|
type: Directive,
|
|
66
73
|
args: [{
|
|
@@ -93,7 +100,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
93
100
|
type: Input
|
|
94
101
|
}], filterCategoryOptions: [{
|
|
95
102
|
type: Input
|
|
103
|
+
}], filterAsButtonToggle: [{
|
|
104
|
+
type: Input
|
|
105
|
+
}], filterSingleSelection: [{
|
|
106
|
+
type: Input
|
|
96
107
|
}], filterPlaceholder: [{
|
|
97
108
|
type: Input
|
|
98
109
|
}] } });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRhYmxlLWNvbHVtbi1maWx0ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL2RpcmVjdGl2ZXMvY3BzLXRhYmxlLWNvbHVtbi1maWx0ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsS0FBSyxFQUtOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOztBQVlsRyxNQUFNLE9BQU8sNkJBQTZCO0lBdUJ4QyxZQUNVLFVBQXNCLEVBQ3RCLGdCQUFrQztRQURsQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFyQm5DLGVBQVUsR0FBd0IsTUFBTSxDQUFDO1FBQ3pDLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QiwwQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFDN0IsMEJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5Qix5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDNUIscUJBQWdCLEdBQStCLEVBQUUsQ0FBQztRQUNsRCx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIseUJBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQiwwQkFBcUIsR0FDNUIsRUFBRSxDQUFDO1FBRUkseUJBQW9CLEdBQUcsS0FBSyxDQUFDLENBQUMsK0JBQStCO1FBQzdELDBCQUFxQixHQUFHLEtBQUssQ0FBQyxDQUFDLCtCQUErQjtRQUM5RCxzQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFROUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENB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SEFyRlUsNkJBQTZCOzhHQUE3Qiw2QkFBNkI7MkZBQTdCLDZCQUE2QjtrQkFMekMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFLGVBQWU7aUJBQzFCO2dJQUl5QixLQUFLO3NCQUE1QixLQUFLO3VCQUFDLGVBQWU7Z0JBQ2IsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBR0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPbkNoYW5nZXMsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbkZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL3RhYmxlLWNvbHVtbi1maWx0ZXIvdGFibGUtY29sdW1uLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQ3BzQ29sdW1uRmlsdGVyQ2F0ZWdvcnlPcHRpb24sXG4gIENwc0NvbHVtbkZpbHRlck1hdGNoTW9kZSxcbiAgQ3BzQ29sdW1uRmlsdGVyVHlwZVxufSBmcm9tICcuLi9jcHMtY29sdW1uLWZpbHRlci10eXBlcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tjcHNUQ29sRmlsdGVyXScsXG4gIGV4cG9ydEFzOiAnY3BzVENvbEZpbHRlcidcbn0pXG5leHBvcnQgY2xhc3MgQ3BzVGFibGVDb2x1bW5GaWx0ZXJEaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gIEBJbnB1dCgnY3BzVENvbEZpbHRlcicpIGZpZWxkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGZpbHRlclR5cGU6IENwc0NvbHVtbkZpbHRlclR5cGUgPSAndGV4dCc7XG4gIEBJbnB1dCgpIGZpbHRlclBlcnNpc3RlbnQgPSBmYWxzZTtcbiAgQElucHV0KCkgZmlsdGVyU2hvd0NsZWFyQnV0dG9uID0gdHJ1ZTtcbiAgQElucHV0KCkgZmlsdGVyU2hvd0FwcGx5QnV0dG9uID0gdHJ1ZTtcbiAgQElucHV0KCkgZmlsdGVyU2hvd0Nsb3NlQnV0dG9uID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZpbHRlclNob3dNYXRjaE1vZGVzID0gdHJ1ZTtcbiAgQElucHV0KCkgZmlsdGVyTWF0Y2hNb2RlczogQ3BzQ29sdW1uRmlsdGVyTWF0Y2hNb2RlW10gPSBbXTtcbiAgQElucHV0KCkgZmlsdGVyU2hvd09wZXJhdG9yID0gdHJ1ZTtcbiAgQElucHV0KCkgZmlsdGVyTWF4Q29uc3RyYWludHMgPSAyO1xuICBASW5wdXQoKSBmaWx0ZXJIaWRlT25DbGVhciA9IGZhbHNlO1xuICBASW5wdXQoKSBmaWx0ZXJDYXRlZ29yeU9wdGlvbnM6IENwc0NvbHVtbkZpbHRlckNhdGVnb3J5T3B0aW9uW10gfCBzdHJpbmdbXSA9XG4gICAgW107XG5cbiAgQElucHV0KCkgZmlsdGVyQXNCdXR0b25Ub2dnbGUgPSBmYWxzZTsgLy8gZm9yIGNhdGVnb3J5IGZpbHRlclR5cGUgb25seVxuICBASW5wdXQoKSBmaWx0ZXJTaW5nbGVTZWxlY3Rpb24gPSBmYWxzZTsgLy8gZm9yIGNhdGVnb3J5IGZpbHRlclR5cGUgb25seVxuICBASW5wdXQoKSBmaWx0ZXJQbGFjZWhvbGRlciA9ICcnO1xuXG4gIGZpbHRlckNvbXBSZWY6IENvbXBvbmVudFJlZjxUYWJsZUNvbHVtbkZpbHRlckNvbXBvbmVudD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICApIHtcbiAgICB0aGlzLmZpbHRlckNvbXBSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgVGFibGVDb2x1bW5GaWx0ZXJDb21wb25lbnRcbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZC5hZnRlcihcbiAgICAgIHRoaXMuZmlsdGVyQ29tcFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50XG4gICAgKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyQ29tcFJlZi5zZXRJbnB1dCgnZmllbGQnLCB0aGlzLmZpZWxkKTtcbiAgICB0aGlzLmZpbHRlckNvbXBSZWYuc2V0SW5wdXQoJ3R5cGUnLCB0aGlzLmZpbHRlclR5cGUpO1xuICAgIHRoaXMuZmlsdGVyQ29tcFJlZi5zZXRJbnB1dCgncGVyc2lzdGVudCcsIHRoaXMuZmlsdGVyUGVyc2lzdGVudCk7XG4gICAgdGhpcy5maWx0ZXJDb21wUmVmLnNldElucHV0KCdzaG93Q2xlYXJCdXR0b24nLCB0aGlzLmZpbHRlclNob3dDbGVhckJ1dHRvbik7XG4gICAgdGhpcy5maWx0ZXJDb21wUmVmLnNldElucHV0KCdzaG93QXBwbHlCdXR0b24nLCB0aGlzLmZpbHRlclNob3dBcHBseUJ1dHRvbik7XG4gICAgdGhpcy5maWx0ZXJDb21wUmVmLnNldElucHV0KCdzaG93Q2xvc2VCdXR0b24nLCB0aGlzLmZpbHRlclNob3dDbG9zZUJ1dHRvbik7XG4gICAgdGhpcy5maWx0ZXJDb21wUmVmLnNldElucHV0KCdzaG93TWF0Y2hNb2RlcycsIHRoaXMuZmlsdGVyU2hvd01hdGNoTW9kZXMpO1xuICAgIHRoaXMuZmlsdGVyQ29tcFJlZi5zZXRJbnB1dCgnbWF0Y2hNb2RlcycsIHRoaXMuZmlsdGVyTWF0Y2hNb2Rlcyk7XG4gICAgdGhpcy5maWx0ZXJDb21wUmVmLnNldElucHV0KCdzaG93T3BlcmF0b3InLCB0aGlzLmZpbHRlclNob3dPcGVyYXRvcik7XG4gICAgdGhpcy5maWx0ZXJDb21wUmVmLnNldElucHV0KCdtYXhDb25zdHJhaW50cycsIHRoaXMuZmlsdGVyTWF4Q29uc3RyYWludHMpO1xuICAgIHRoaXMuZmlsdGVyQ29tcFJlZi5zZXRJbnB1dCgnaGlkZU9uQ2xlYXInLCB0aGlzLmZpbHRlckhpZGVPbkNsZWFyKTtcbiAgICB0aGlzLmZpbHRlckNvbXBSZWYuc2V0SW5wdXQoJ2NhdGVnb3J5T3B0aW9ucycsIHRoaXMuZmlsdGVyQ2F0ZWdvcnlPcHRpb25zKTtcbiAgICB0aGlzLmZpbHRlckNvbXBSZWYuc2V0SW5wdXQoJ2FzQnV0dG9uVG9nZ2xlJywgdGhpcy5maWx0ZXJBc0J1dHRvblRvZ2dsZSk7XG4gICAgdGhpcy5maWx0ZXJDb21wUmVmLnNldElucHV0KCdzaW5nbGVTZWxlY3Rpb24nLCB0aGlzLmZpbHRlclNpbmdsZVNlbGVjdGlvbik7XG4gICAgdGhpcy5maWx0ZXJDb21wUmVmLnNldElucHV0KFxuICAgICAgJ3BsYWNlaG9sZGVyJyxcbiAgICAgIHRoaXMuZmlsdGVyUGxhY2Vob2xkZXIgfHwgdGhpcy5fZ2V0RGVmYXVsdFBsYWNlaG9sZGVyKClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RGVmYXVsdFBsYWNlaG9sZGVyKCkge1xuICAgIHN3aXRjaCAodGhpcy5maWx0ZXJUeXBlKSB7XG4gICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgcmV0dXJuICdQbGVhc2UgZW50ZXInO1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgcmV0dXJuICdFbnRlciB2YWx1ZSc7XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgcmV0dXJuICdTZWxlY3QgZGF0ZSc7XG4gICAgICBjYXNlICdjYXRlZ29yeSc6XG4gICAgICAgIHJldHVybiAnUGxlYXNlIHNlbGVjdCc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgaGlkZUZpbHRlcigpIHtcbiAgICB0aGlzLmZpbHRlckNvbXBSZWY/Lmluc3RhbmNlPy5oaWRlKCk7XG4gIH1cblxuICBjbGVhckZpbHRlcigpIHtcbiAgICB0aGlzLmZpbHRlckNvbXBSZWY/Lmluc3RhbmNlPy5jbGVhckZpbHRlcigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJDb21wUmVmLmRlc3Ryb3koKTtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgfVxufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Input, Optional } from '@angular/core';
|
|
1
|
+
import { Component, Input, Optional, ViewChild } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { FormsModule } from '@angular/forms';
|
|
4
4
|
import { Table } from 'primeng/table';
|
|
@@ -11,10 +11,16 @@ import * as i1 from "primeng/table";
|
|
|
11
11
|
import * as i2 from "primeng/treetable";
|
|
12
12
|
import * as i3 from "@angular/common";
|
|
13
13
|
export class TableColumnFilterConstraintComponent {
|
|
14
|
+
get isCategoryDropdownOpened() {
|
|
15
|
+
return this.categoryAutocompleteComponent?.isOpened || false;
|
|
16
|
+
}
|
|
14
17
|
constructor(dt, tt) {
|
|
15
18
|
this.dt = dt;
|
|
16
19
|
this.tt = tt;
|
|
20
|
+
this.type = 'text';
|
|
17
21
|
this.categoryOptions = [];
|
|
22
|
+
this.asButtonToggle = false; // for category type only
|
|
23
|
+
this.singleSelection = false; // for category type only
|
|
18
24
|
this.placeholder = '';
|
|
19
25
|
this.hasApplyButton = true;
|
|
20
26
|
this.booleanOptions = [
|
|
@@ -31,10 +37,16 @@ export class TableColumnFilterConstraintComponent {
|
|
|
31
37
|
if (this.type !== 'category')
|
|
32
38
|
return;
|
|
33
39
|
if (this.categoryOptions.length > 0) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
if (typeof this.categoryOptions[0] === 'string') {
|
|
41
|
+
this.categories = this.categoryOptions.map((o) => ({
|
|
42
|
+
label: o,
|
|
43
|
+
value: o
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
this.categories = this
|
|
48
|
+
.categoryOptions;
|
|
49
|
+
}
|
|
38
50
|
}
|
|
39
51
|
else {
|
|
40
52
|
let cats = [];
|
|
@@ -70,7 +82,7 @@ export class TableColumnFilterConstraintComponent {
|
|
|
70
82
|
}
|
|
71
83
|
}
|
|
72
84
|
TableColumnFilterConstraintComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableColumnFilterConstraintComponent, deps: [{ token: i1.Table, optional: true }, { token: i2.TreeTable, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
73
|
-
TableColumnFilterConstraintComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TableColumnFilterConstraintComponent, isStandalone: true, selector: "table-column-filter-constraint", inputs: { type: "type", field: "field", filterConstraint: "filterConstraint", categoryOptions: "categoryOptions", placeholder: "placeholder", hasApplyButton: "hasApplyButton" }, usesOnChanges: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"type\">\n <cps-input\n *ngSwitchCase=\"'text'\"\n [placeholder]=\"placeholder\"\n [hideDetails]=\"true\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"text\"></cps-input>\n\n <cps-input\n *ngSwitchCase=\"'number'\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"number\"></cps-input>\n\n <div class=\"cps-table-col-filter-constraint-boolean\">\n <cps-button-toggle\n *ngSwitchCase=\"'boolean'\"\n [options]=\"booleanOptions\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [mandatory]=\"false\">\n </cps-button-toggle>\n </div>\n\n <cps-datepicker\n *ngSwitchCase=\"'date'\"\n [openOnInputFocus]=\"true\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n [value]=\"filterConstraint?.value\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n (valueChanged)=\"onValueChange($event)\">\n </cps-datepicker>\n\n <cps-autocomplete\n
|
|
85
|
+
TableColumnFilterConstraintComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TableColumnFilterConstraintComponent, isStandalone: true, selector: "table-column-filter-constraint", inputs: { type: "type", field: "field", filterConstraint: "filterConstraint", categoryOptions: "categoryOptions", asButtonToggle: "asButtonToggle", singleSelection: "singleSelection", placeholder: "placeholder", hasApplyButton: "hasApplyButton" }, viewQueries: [{ propertyName: "categoryAutocompleteComponent", first: true, predicate: ["categoryAutocompleteComponent"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"type\">\n <cps-input\n *ngSwitchCase=\"'text'\"\n [placeholder]=\"placeholder\"\n [hideDetails]=\"true\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"text\"></cps-input>\n\n <cps-input\n *ngSwitchCase=\"'number'\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"number\"></cps-input>\n\n <div class=\"cps-table-col-filter-constraint-boolean\">\n <cps-button-toggle\n *ngSwitchCase=\"'boolean'\"\n [options]=\"booleanOptions\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [mandatory]=\"false\">\n </cps-button-toggle>\n </div>\n\n <cps-datepicker\n *ngSwitchCase=\"'date'\"\n [openOnInputFocus]=\"true\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n [value]=\"filterConstraint?.value\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n (valueChanged)=\"onValueChange($event)\">\n </cps-datepicker>\n\n <ng-container *ngSwitchCase=\"'category'\">\n <cps-autocomplete\n #categoryAutocompleteComponent\n *ngIf=\"!asButtonToggle\"\n class=\"cps-table-col-filter-category-autocomplete\"\n [placeholder]=\"placeholder\"\n [options]=\"categories\"\n [hideDetails]=\"true\"\n [clearable]=\"true\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [returnObject]=\"false\"\n [multiple]=\"!singleSelection\">\n </cps-autocomplete>\n <cps-button-toggle\n *ngIf=\"asButtonToggle\"\n [options]=\"categories\"\n [value]=\"filterConstraint?.value\"\n optionTooltipPosition=\"top\"\n (valueChanged)=\"onValueChange($event)\"\n [mandatory]=\"false\"\n [multiple]=\"!singleSelection\">\n </cps-button-toggle>\n </ng-container>\n</ng-container>\n", styles: [":host .cps-table-col-filter-constraint-boolean{display:flex;justify-content:center}:host .cps-table-col-filter-category-autocomplete{min-width:200px;max-width:400px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: CpsInputComponent, selector: "cps-input", inputs: ["label", "hint", "placeholder", "disabled", "readonly", "width", "type", "loading", "clearable", "prefixIcon", "prefixIconClickable", "prefixIconSize", "prefixText", "hideDetails", "persistentClear", "error", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "valueToDisplay", "value"], outputs: ["valueChanged", "focused", "prefixIconClicked", "blurred", "cleared", "enterClicked"] }, { kind: "component", type: CpsDatepickerComponent, selector: "cps-datepicker", inputs: ["label", "disabled", "width", "placeholder", "hint", "clearable", "hideDetails", "persistentClear", "showTodayButton", "openOnInputFocus", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "minDate", "maxDate", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsButtonToggleComponent, selector: "cps-button-toggle", inputs: ["label", "options", "multiple", "disabled", "mandatory", "equalWidths", "optionTooltipPosition", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsAutocompleteComponent, selector: "cps-autocomplete", inputs: ["label", "placeholder", "hint", "returnObject", "multiple", "disabled", "width", "selectAll", "chips", "closableChips", "clearable", "openOnClear", "options", "optionLabel", "optionValue", "optionInfo", "hideDetails", "persistentClear", "prefixIcon", "prefixIconSize", "loading", "emptyMessage", "virtualScroll", "numToleratedItems", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "value"], outputs: ["valueChanged"] }] });
|
|
74
86
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableColumnFilterConstraintComponent, decorators: [{
|
|
75
87
|
type: Component,
|
|
76
88
|
args: [{ selector: 'table-column-filter-constraint', standalone: true, imports: [
|
|
@@ -80,7 +92,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
80
92
|
CpsDatepickerComponent,
|
|
81
93
|
CpsButtonToggleComponent,
|
|
82
94
|
CpsAutocompleteComponent
|
|
83
|
-
], template: "<ng-container [ngSwitch]=\"type\">\n <cps-input\n *ngSwitchCase=\"'text'\"\n [placeholder]=\"placeholder\"\n [hideDetails]=\"true\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"text\"></cps-input>\n\n <cps-input\n *ngSwitchCase=\"'number'\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"number\"></cps-input>\n\n <div class=\"cps-table-col-filter-constraint-boolean\">\n <cps-button-toggle\n *ngSwitchCase=\"'boolean'\"\n [options]=\"booleanOptions\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [mandatory]=\"false\">\n </cps-button-toggle>\n </div>\n\n <cps-datepicker\n *ngSwitchCase=\"'date'\"\n [openOnInputFocus]=\"true\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n [value]=\"filterConstraint?.value\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n (valueChanged)=\"onValueChange($event)\">\n </cps-datepicker>\n\n <cps-autocomplete\n
|
|
95
|
+
], template: "<ng-container [ngSwitch]=\"type\">\n <cps-input\n *ngSwitchCase=\"'text'\"\n [placeholder]=\"placeholder\"\n [hideDetails]=\"true\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"text\"></cps-input>\n\n <cps-input\n *ngSwitchCase=\"'number'\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"number\"></cps-input>\n\n <div class=\"cps-table-col-filter-constraint-boolean\">\n <cps-button-toggle\n *ngSwitchCase=\"'boolean'\"\n [options]=\"booleanOptions\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [mandatory]=\"false\">\n </cps-button-toggle>\n </div>\n\n <cps-datepicker\n *ngSwitchCase=\"'date'\"\n [openOnInputFocus]=\"true\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n [value]=\"filterConstraint?.value\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n (valueChanged)=\"onValueChange($event)\">\n </cps-datepicker>\n\n <ng-container *ngSwitchCase=\"'category'\">\n <cps-autocomplete\n #categoryAutocompleteComponent\n *ngIf=\"!asButtonToggle\"\n class=\"cps-table-col-filter-category-autocomplete\"\n [placeholder]=\"placeholder\"\n [options]=\"categories\"\n [hideDetails]=\"true\"\n [clearable]=\"true\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [returnObject]=\"false\"\n [multiple]=\"!singleSelection\">\n </cps-autocomplete>\n <cps-button-toggle\n *ngIf=\"asButtonToggle\"\n [options]=\"categories\"\n [value]=\"filterConstraint?.value\"\n optionTooltipPosition=\"top\"\n (valueChanged)=\"onValueChange($event)\"\n [mandatory]=\"false\"\n [multiple]=\"!singleSelection\">\n </cps-button-toggle>\n </ng-container>\n</ng-container>\n", styles: [":host .cps-table-col-filter-constraint-boolean{display:flex;justify-content:center}:host .cps-table-col-filter-category-autocomplete{min-width:200px;max-width:400px}\n"] }]
|
|
84
96
|
}], ctorParameters: function () { return [{ type: i1.Table, decorators: [{
|
|
85
97
|
type: Optional
|
|
86
98
|
}] }, { type: i2.TreeTable, decorators: [{
|
|
@@ -93,9 +105,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
93
105
|
type: Input
|
|
94
106
|
}], categoryOptions: [{
|
|
95
107
|
type: Input
|
|
108
|
+
}], asButtonToggle: [{
|
|
109
|
+
type: Input
|
|
110
|
+
}], singleSelection: [{
|
|
111
|
+
type: Input
|
|
96
112
|
}], placeholder: [{
|
|
97
113
|
type: Input
|
|
98
114
|
}], hasApplyButton: [{
|
|
99
115
|
type: Input
|
|
116
|
+
}], categoryAutocompleteComponent: [{
|
|
117
|
+
type: ViewChild,
|
|
118
|
+
args: ['categoryAutocompleteComponent']
|
|
100
119
|
}] } });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10YWJsZS90YWJsZS1jb2x1bW4tZmlsdGVyL3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL3RhYmxlLWNvbHVtbi1maWx0ZXIvdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50L3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFFTCx3QkFBd0IsRUFDekIsTUFBTSx3REFBd0QsQ0FBQzs7Ozs7QUFpQmhFLE1BQU0sT0FBTyxvQ0FBb0M7SUFpQi9DLFlBQStCLEVBQVMsRUFBcUIsRUFBYTtRQUEzQyxPQUFFLEdBQUYs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QWRoRCxTQUFTOytCQUNFLGdDQUFnQyxjQUM5QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0Qix3QkFBd0I7d0JBQ3hCLHdCQUF3QjtxQkFDekI7OzBCQXFCWSxRQUFROzswQkFBc0IsUUFBUTs0Q0FoQjFDLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmlsdGVyTWV0YWRhdGEgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgQ3BzSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jcHMtaW5wdXQvY3BzLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNEYXRlcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY3BzLWRhdGVwaWNrZXIvY3BzLWRhdGVwaWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENwc0F1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Nwcy1hdXRvY29tcGxldGUvY3BzLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQnRuVG9nZ2xlT3B0aW9uLFxuICBDcHNCdXR0b25Ub2dnbGVDb21wb25lbnRcbn0gZnJvbSAnLi4vLi4vLi4vY3BzLWJ1dHRvbi10b2dnbGUvY3BzLWJ1dHRvbi10b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRyZWVUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdHJlZXRhYmxlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDcHNJbnB1dENvbXBvbmVudCxcbiAgICBDcHNEYXRlcGlja2VyQ29tcG9uZW50LFxuICAgIENwc0J1dHRvblRvZ2dsZUNvbXBvbmVudCxcbiAgICBDcHNBdXRvY29tcGxldGVDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29sdW1uRmlsdGVyQ29uc3RyYWludENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHR5cGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZmllbGQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZmlsdGVyQ29uc3RyYWludDogRmlsdGVyTWV0YWRhdGEgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGNhdGVnb3J5T3B0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgaGFzQXBwbHlCdXR0b24gPSB0cnVlO1xuXG4gIGJvb2xlYW5PcHRpb25zID0gW1xuICAgIHsgbGFiZWw6ICdUcnVlJywgdmFsdWU6ICd0cnVlJyB9LFxuICAgIHsgbGFiZWw6ICdGYWxzZScsIHZhbHVlOiAnZmFsc2UnIH1cbiAgXSBhcyBCdG5Ub2dnbGVPcHRpb25bXTtcblxuICBjYXRlZ29yaWVzOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdID0gW107XG5cbiAgX3RhYmxlSW5zdGFuY2U6IFRhYmxlIHwgVHJlZVRhYmxlO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHB1YmxpYyBkdDogVGFibGUsIEBPcHRpb25hbCgpIHB1YmxpYyB0dDogVHJlZVRhYmxlKSB7XG4gICAgdGhpcy5fdGFibGVJbnN0YW5jZSA9IGR0IHx8IHR0O1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fdXBkYXRlQ2F0ZWdvcmllcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQ2F0ZWdvcmllcygpIHtcbiAgICBpZiAodGhpcy50eXBlICE9PSAnY2F0ZWdvcnknKSByZXR1cm47XG4gICAgaWYgKHRoaXMuY2F0ZWdvcnlPcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IHRoaXMuY2F0ZWdvcnlPcHRpb25zLm1hcCgobykgPT4gKHtcbiAgICAgICAgbGFiZWw6IG8sXG4gICAgICAgIHZhbHVlOiBvXG4gICAgICB9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBjYXRzID0gW107XG4gICAgICBpZiAodGhpcy5fdGFibGVJbnN0YW5jZSBpbnN0YW5jZW9mIFRhYmxlKSB7XG4gICAgICAgIGNhdHMgPVxuICAgICAgICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UudmFsdWU/Lm1hcCgodikgPT4gdlt0aGlzLmZpZWxkIGFzIHN0cmluZ10pIHx8IFtdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZmlsbENhdHMgPSAobm9kZXM6IGFueVtdKSA9PiB7XG4gICAgICAgICAgbm9kZXM/LmZvckVhY2goKHYpID0+IHtcbiAgICAgICAgICAgIGNhdHMucHVzaCh2LmRhdGFbdGhpcy5maWVsZCBhcyBzdHJpbmddKTtcbiAgICAgICAgICAgIGZpbGxDYXRzKHYuY2hpbGRyZW4pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBmaWxsQ2F0cyh0aGlzLl90YWJsZUluc3RhbmNlLnZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2F0ZWdvcmllcyA9XG4gICAgICAgIEFycmF5LmZyb20obmV3IFNldChjYXRzKSk/Lm1hcCgoYykgPT4gKHtcbiAgICAgICAgICBsYWJlbDogYyxcbiAgICAgICAgICB2YWx1ZTogY1xuICAgICAgICB9KSkgfHwgW107XG4gICAgfVxuICB9XG5cbiAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogYW55KSB7XG4gICAgKDxhbnk+dGhpcy5maWx0ZXJDb25zdHJhaW50KS52YWx1ZSA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlID09PSAnJyB8fCAhdGhpcy5oYXNBcHBseUJ1dHRvbikge1xuICAgICAgdGhpcy5fdGFibGVJbnN0YW5jZS5fZmlsdGVyKCk7XG4gICAgfVxuICB9XG5cbiAgb25FbnRlcktleURvd24oZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuX2ZpbHRlcigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cbiAgPGNwcy1pbnB1dFxuICAgICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJLZXlEb3duKCRldmVudClcIlxuICAgIFt2YWx1ZV09XCJmaWx0ZXJDb25zdHJhaW50Py52YWx1ZVwiXG4gICAgKHZhbHVlQ2hhbmdlZCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgIHR5cGU9XCJ0ZXh0XCI+PC9jcHMtaW5wdXQ+XG5cbiAgPGNwcy1pbnB1dFxuICAgICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiXG4gICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlcktleURvd24oJGV2ZW50KVwiXG4gICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAodmFsdWVDaGFuZ2VkKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgdHlwZT1cIm51bWJlclwiPjwvY3BzLWlucHV0PlxuXG4gIDxkaXYgY2xhc3M9XCJjcHMtdGFibGUtY29sLWZpbHRlci1jb25zdHJhaW50LWJvb2xlYW5cIj5cbiAgICA8Y3BzLWJ1dHRvbi10b2dnbGVcbiAgICAgICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIlxuICAgICAgW29wdGlvbnNdPVwiYm9vbGVhbk9wdGlvbnNcIlxuICAgICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFttYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICA8L2Nwcy1idXR0b24tdG9nZ2xlPlxuICA8L2Rpdj5cblxuICA8Y3BzLWRhdGVwaWNrZXJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCJcbiAgICBbb3Blbk9uSW5wdXRGb2N1c109XCJ0cnVlXCJcbiAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbdmFsdWVdPVwiZmlsdGVyQ29uc3RyYWludD8udmFsdWVcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJLZXlEb3duKCRldmVudClcIlxuICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XG4gIDwvY3BzLWRhdGVwaWNrZXI+XG5cbiAgPGNwcy1hdXRvY29tcGxldGVcbiAgICBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLWNhdGVnb3J5LWF1dG9jb21wbGV0ZVwiXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidjYXRlZ29yeSdcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW29wdGlvbnNdPVwiY2F0ZWdvcmllc1wiXG4gICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgIFtjbGVhcmFibGVdPVwidHJ1ZVwiXG4gICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAodmFsdWVDaGFuZ2VkKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW3JldHVybk9iamVjdF09XCJmYWxzZVwiXG4gICAgW211bHRpcGxlXT1cInRydWVcIj48L2Nwcy1hdXRvY29tcGxldGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10YWJsZS90YWJsZS1jb2x1bW4tZmlsdGVyL3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL3RhYmxlLWNvbHVtbi1maWx0ZXIvdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50L3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFFTCxRQUFRLEVBQ1IsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNoRyxPQUFPLEVBRUwsd0JBQXdCLEVBQ3pCLE1BQU0sd0RBQXdELENBQUM7Ozs7O0FBcUJoRSxNQUFNLE9BQU8sb0NBQW9DO0lBc0IvQyxJQUFJLHdCQUF3QjtRQUMxQixPQUFPLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxRQUFRLElBQUksS0FBSyxDQUFDO0lBQy9ELENBQUM7SUFFRCxZQUErQixFQUFTLEVBQXFCLEVBQWE7UUFBM0MsT0FBRSxHQUFGLEVBQUUsQ0FBTztRQUFxQixPQUFFLEdBQUYsRUFBRSxDQUFXO1FBekJqRSxTQUFJLEdBQXdCLE1BQU0sQ0FBQztRQUduQyxvQkFBZSxHQUErQyxFQUFFLENBQUM7UUFDakUsbUJBQWMsR0FBRyxLQUFLLENBQUMsQ0FBQyx5QkFBeUI7UUFDakQsb0JBQWUsR0FBRyxLQUFLLENBQUMsQ0FBQyx5QkFBeUI7UUFDbEQsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFLL0IsbUJBQWMsR0FBRztZQUNmLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQ2hDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1NBQ1IsQ0FBQztRQUU3QixlQUFVLEdBQW9DLEVBQUUsQ0FBQztRQVMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxVQUFVO1lBQUUsT0FBTztRQUNyQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuQyxJQUFJLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLEVBQUU7Z0JBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUksSUFBSSxDQUFDLGVBQTRCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUMvRCxLQUFLLEVBQUUsQ0FBQztvQkFDUixLQUFLLEVBQUUsQ0FBQztpQkFDVCxDQUFDLENBQUMsQ0FBQzthQUNMO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSTtxQkFDbkIsZUFBa0QsQ0FBQzthQUN2RDtTQUNGO2FBQU07WUFDTCxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7WUFDZCxJQUFJLElBQUksQ0FBQyxjQUFjLFlBQVksS0FBSyxFQUFFO2dCQUN4QyxJQUFJO29CQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFlLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUN4RTtpQkFBTTtnQkFDTCxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQVksRUFBRSxFQUFFO29CQUNoQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBZSxDQUFDLENBQUMsQ0FBQzt3QkFDeEMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDdkIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDO2dCQUNGLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3JDO1lBQ0QsSUFBSSxDQUFDLFVBQVU7Z0JBQ2IsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDckMsS0FBSyxFQUFFLENBQUM7b0JBQ1IsS0FBSyxFQUFFLENBQUM7aUJBQ1QsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDaEIsSUFBSSxDQUFDLGdCQUFpQixDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFM0MsSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7O2lJQS9FVSxvQ0FBb0M7cUhBQXBDLG9DQUFvQyx1ZkN0Q2pELDBoRUFnRUEsZ09EcENJLFlBQVksOFRBQ1osV0FBVywrQkFDWCxpQkFBaUIscWdCQUNqQixzQkFBc0Isa1lBQ3RCLHdCQUF3Qix1VEFDeEIsd0JBQXdCOzJGQUtmLG9DQUFvQztrQkFkaEQsU0FBUzsrQkFDRSxnQ0FBZ0MsY0FDOUIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3dCQUN4Qix3QkFBd0I7cUJBQ3pCOzswQkE4QlksUUFBUTs7MEJBQXNCLFFBQVE7NENBekIxQyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR04sNkJBQTZCO3NCQUQ1QixTQUFTO3VCQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3B0aW9uYWwsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpbHRlck1ldGFkYXRhIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7IENwc0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY3BzLWlucHV0L2Nwcy1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Nwcy1kYXRlcGlja2VyL2Nwcy1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jcHMtYXV0b2NvbXBsZXRlL2Nwcy1hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIENwc0J1dHRvblRvZ2dsZU9wdGlvbixcbiAgQ3BzQnV0dG9uVG9nZ2xlQ29tcG9uZW50XG59IGZyb20gJy4uLy4uLy4uL2Nwcy1idXR0b24tdG9nZ2xlL2Nwcy1idXR0b24tdG9nZ2xlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmVlVGFibGUgfSBmcm9tICdwcmltZW5nL3RyZWV0YWJsZSc7XG5pbXBvcnQge1xuICBDcHNDb2x1bW5GaWx0ZXJDYXRlZ29yeU9wdGlvbixcbiAgQ3BzQ29sdW1uRmlsdGVyVHlwZVxufSBmcm9tICcuLi8uLi9jcHMtY29sdW1uLWZpbHRlci10eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQ3BzSW5wdXRDb21wb25lbnQsXG4gICAgQ3BzRGF0ZXBpY2tlckNvbXBvbmVudCxcbiAgICBDcHNCdXR0b25Ub2dnbGVDb21wb25lbnQsXG4gICAgQ3BzQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtbkZpbHRlckNvbnN0cmFpbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSB0eXBlOiBDcHNDb2x1bW5GaWx0ZXJUeXBlID0gJ3RleHQnO1xuICBASW5wdXQoKSBmaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBmaWx0ZXJDb25zdHJhaW50OiBGaWx0ZXJNZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgY2F0ZWdvcnlPcHRpb25zOiBDcHNDb2x1bW5GaWx0ZXJDYXRlZ29yeU9wdGlvbltdIHwgc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgYXNCdXR0b25Ub2dnbGUgPSBmYWxzZTsgLy8gZm9yIGNhdGVnb3J5IHR5cGUgb25seVxuICBASW5wdXQoKSBzaW5nbGVTZWxlY3Rpb24gPSBmYWxzZTsgLy8gZm9yIGNhdGVnb3J5IHR5cGUgb25seVxuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICBASW5wdXQoKSBoYXNBcHBseUJ1dHRvbiA9IHRydWU7XG5cbiAgQFZpZXdDaGlsZCgnY2F0ZWdvcnlBdXRvY29tcGxldGVDb21wb25lbnQnKVxuICBjYXRlZ29yeUF1dG9jb21wbGV0ZUNvbXBvbmVudD86IENwc0F1dG9jb21wbGV0ZUNvbXBvbmVudDtcblxuICBib29sZWFuT3B0aW9ucyA9IFtcbiAgICB7IGxhYmVsOiAnVHJ1ZScsIHZhbHVlOiAndHJ1ZScgfSxcbiAgICB7IGxhYmVsOiAnRmFsc2UnLCB2YWx1ZTogJ2ZhbHNlJyB9XG4gIF0gYXMgQ3BzQnV0dG9uVG9nZ2xlT3B0aW9uW107XG5cbiAgY2F0ZWdvcmllczogQ3BzQ29sdW1uRmlsdGVyQ2F0ZWdvcnlPcHRpb25bXSA9IFtdO1xuXG4gIF90YWJsZUluc3RhbmNlOiBUYWJsZSB8IFRyZWVUYWJsZTtcblxuICBnZXQgaXNDYXRlZ29yeURyb3Bkb3duT3BlbmVkKCkge1xuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5QXV0b2NvbXBsZXRlQ29tcG9uZW50Py5pc09wZW5lZCB8fCBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHB1YmxpYyBkdDogVGFibGUsIEBPcHRpb25hbCgpIHB1YmxpYyB0dDogVHJlZVRhYmxlKSB7XG4gICAgdGhpcy5fdGFibGVJbnN0YW5jZSA9IGR0IHx8IHR0O1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fdXBkYXRlQ2F0ZWdvcmllcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQ2F0ZWdvcmllcygpIHtcbiAgICBpZiAodGhpcy50eXBlICE9PSAnY2F0ZWdvcnknKSByZXR1cm47XG4gICAgaWYgKHRoaXMuY2F0ZWdvcnlPcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5jYXRlZ29yeU9wdGlvbnNbMF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMuY2F0ZWdvcmllcyA9ICh0aGlzLmNhdGVnb3J5T3B0aW9ucyBhcyBzdHJpbmdbXSkubWFwKChvKSA9PiAoe1xuICAgICAgICAgIGxhYmVsOiBvLFxuICAgICAgICAgIHZhbHVlOiBvXG4gICAgICAgIH0pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IHRoaXNcbiAgICAgICAgICAuY2F0ZWdvcnlPcHRpb25zIGFzIENwc0NvbHVtbkZpbHRlckNhdGVnb3J5T3B0aW9uW107XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBjYXRzID0gW107XG4gICAgICBpZiAodGhpcy5fdGFibGVJbnN0YW5jZSBpbnN0YW5jZW9mIFRhYmxlKSB7XG4gICAgICAgIGNhdHMgPVxuICAgICAgICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UudmFsdWU/Lm1hcCgodikgPT4gdlt0aGlzLmZpZWxkIGFzIHN0cmluZ10pIHx8IFtdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZmlsbENhdHMgPSAobm9kZXM6IGFueVtdKSA9PiB7XG4gICAgICAgICAgbm9kZXM/LmZvckVhY2goKHYpID0+IHtcbiAgICAgICAgICAgIGNhdHMucHVzaCh2LmRhdGFbdGhpcy5maWVsZCBhcyBzdHJpbmddKTtcbiAgICAgICAgICAgIGZpbGxDYXRzKHYuY2hpbGRyZW4pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBmaWxsQ2F0cyh0aGlzLl90YWJsZUluc3RhbmNlLnZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2F0ZWdvcmllcyA9XG4gICAgICAgIEFycmF5LmZyb20obmV3IFNldChjYXRzKSk/Lm1hcCgoYykgPT4gKHtcbiAgICAgICAgICBsYWJlbDogYyxcbiAgICAgICAgICB2YWx1ZTogY1xuICAgICAgICB9KSkgfHwgW107XG4gICAgfVxuICB9XG5cbiAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogYW55KSB7XG4gICAgKDxhbnk+dGhpcy5maWx0ZXJDb25zdHJhaW50KS52YWx1ZSA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlID09PSAnJyB8fCAhdGhpcy5oYXNBcHBseUJ1dHRvbikge1xuICAgICAgdGhpcy5fdGFibGVJbnN0YW5jZS5fZmlsdGVyKCk7XG4gICAgfVxuICB9XG5cbiAgb25FbnRlcktleURvd24oZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuX2ZpbHRlcigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cbiAgPGNwcy1pbnB1dFxuICAgICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJLZXlEb3duKCRldmVudClcIlxuICAgIFt2YWx1ZV09XCJmaWx0ZXJDb25zdHJhaW50Py52YWx1ZVwiXG4gICAgKHZhbHVlQ2hhbmdlZCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgIHR5cGU9XCJ0ZXh0XCI+PC9jcHMtaW5wdXQ+XG5cbiAgPGNwcy1pbnB1dFxuICAgICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiXG4gICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlcktleURvd24oJGV2ZW50KVwiXG4gICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAodmFsdWVDaGFuZ2VkKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgdHlwZT1cIm51bWJlclwiPjwvY3BzLWlucHV0PlxuXG4gIDxkaXYgY2xhc3M9XCJjcHMtdGFibGUtY29sLWZpbHRlci1jb25zdHJhaW50LWJvb2xlYW5cIj5cbiAgICA8Y3BzLWJ1dHRvbi10b2dnbGVcbiAgICAgICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIlxuICAgICAgW29wdGlvbnNdPVwiYm9vbGVhbk9wdGlvbnNcIlxuICAgICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFttYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICA8L2Nwcy1idXR0b24tdG9nZ2xlPlxuICA8L2Rpdj5cblxuICA8Y3BzLWRhdGVwaWNrZXJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCJcbiAgICBbb3Blbk9uSW5wdXRGb2N1c109XCJ0cnVlXCJcbiAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbdmFsdWVdPVwiZmlsdGVyQ29uc3RyYWludD8udmFsdWVcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJLZXlEb3duKCRldmVudClcIlxuICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XG4gIDwvY3BzLWRhdGVwaWNrZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NhdGVnb3J5J1wiPlxuICAgIDxjcHMtYXV0b2NvbXBsZXRlXG4gICAgICAjY2F0ZWdvcnlBdXRvY29tcGxldGVDb21wb25lbnRcbiAgICAgICpuZ0lmPVwiIWFzQnV0dG9uVG9nZ2xlXCJcbiAgICAgIGNsYXNzPVwiY3BzLXRhYmxlLWNvbC1maWx0ZXItY2F0ZWdvcnktYXV0b2NvbXBsZXRlXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbb3B0aW9uc109XCJjYXRlZ29yaWVzXCJcbiAgICAgIFtoaWRlRGV0YWlsc109XCJ0cnVlXCJcbiAgICAgIFtjbGVhcmFibGVdPVwidHJ1ZVwiXG4gICAgICBbdmFsdWVdPVwiZmlsdGVyQ29uc3RyYWludD8udmFsdWVcIlxuICAgICAgKHZhbHVlQ2hhbmdlZCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgW3JldHVybk9iamVjdF09XCJmYWxzZVwiXG4gICAgICBbbXVsdGlwbGVdPVwiIXNpbmdsZVNlbGVjdGlvblwiPlxuICAgIDwvY3BzLWF1dG9jb21wbGV0ZT5cbiAgICA8Y3BzLWJ1dHRvbi10b2dnbGVcbiAgICAgICpuZ0lmPVwiYXNCdXR0b25Ub2dnbGVcIlxuICAgICAgW29wdGlvbnNdPVwiY2F0ZWdvcmllc1wiXG4gICAgICBbdmFsdWVdPVwiZmlsdGVyQ29uc3RyYWludD8udmFsdWVcIlxuICAgICAgb3B0aW9uVG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFttYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgW211bHRpcGxlXT1cIiFzaW5nbGVTZWxlY3Rpb25cIj5cbiAgICA8L2Nwcy1idXR0b24tdG9nZ2xlPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|