cps-ui-kit 0.65.0 → 0.67.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/assets/fonts/SourceSansPro-Regular.woff2 +0 -0
- package/esm2020/lib/components/cps-radio-group/cps-radio/cps-radio.component.mjs +38 -0
- package/esm2020/lib/components/cps-radio-group/cps-radio-button/cps-radio-button.component.mjs +38 -0
- package/esm2020/lib/components/cps-radio-group/cps-radio-group.component.mjs +111 -0
- package/esm2020/lib/components/cps-select/cps-select.component.mjs +3 -3
- package/esm2020/public-api.mjs +3 -2
- package/fesm2015/cps-ui-kit.mjs +94 -9
- package/fesm2015/cps-ui-kit.mjs.map +1 -1
- package/fesm2020/cps-ui-kit.mjs +90 -9
- package/fesm2020/cps-ui-kit.mjs.map +1 -1
- package/lib/components/cps-radio-group/cps-radio/cps-radio.component.d.ts +13 -0
- package/lib/components/cps-radio-group/cps-radio-button/cps-radio-button.component.d.ts +14 -0
- package/lib/components/{cps-radio/cps-radio.component.d.ts → cps-radio-group/cps-radio-group.component.d.ts} +6 -5
- package/package.json +1 -1
- package/public-api.d.ts +2 -1
- package/styles/fonts.scss +1 -1
- package/assets/fonts/SourceSansPro-Regular.ttf +0 -0
- package/esm2020/lib/components/cps-radio/cps-radio.component.mjs +0 -93
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { CpsRadioGroupComponent, RadioOption } from '../cps-radio-group.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class CpsRadioComponent implements OnInit {
|
|
5
|
+
option: RadioOption;
|
|
6
|
+
radioGroup?: CpsRadioGroupComponent;
|
|
7
|
+
groupDisabled: boolean;
|
|
8
|
+
constructor(radioGroup: CpsRadioGroupComponent);
|
|
9
|
+
ngOnInit(): void;
|
|
10
|
+
updateValueEvent(event: Event): void;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CpsRadioComponent, [{ optional: true; }]>;
|
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CpsRadioComponent, "cps-radio", never, { "option": "option"; }, {}, never, ["*"], true, never>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { RadioOption } from '../cps-radio-group.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class CpsRadioButtonComponent {
|
|
5
|
+
private _uniqueId;
|
|
6
|
+
option: RadioOption;
|
|
7
|
+
checked: boolean;
|
|
8
|
+
groupDisabled: boolean;
|
|
9
|
+
updateValueEvent: EventEmitter<Event>;
|
|
10
|
+
get inputId(): string;
|
|
11
|
+
updateValue(event: Event): void;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CpsRadioButtonComponent, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CpsRadioButtonComponent, "cps-radio-button", never, { "option": "option"; "checked": "checked"; "groupDisabled": "groupDisabled"; }, { "updateValueEvent": "updateValueEvent"; }, never, ["*"], true, never>;
|
|
14
|
+
}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { EventEmitter, InjectionToken } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor, NgControl } from '@angular/forms';
|
|
3
3
|
import { TooltipPosition } from '../../directives/cps-tooltip.directive';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export type RadioOption = {
|
|
6
6
|
value: any;
|
|
7
|
-
label
|
|
7
|
+
label?: string;
|
|
8
8
|
disabled?: boolean;
|
|
9
9
|
tooltip?: string;
|
|
10
10
|
};
|
|
11
|
-
export declare
|
|
11
|
+
export declare const CPS_RADIO_GROUP: InjectionToken<CpsRadioGroupComponent>;
|
|
12
|
+
export declare class CpsRadioGroupComponent implements ControlValueAccessor {
|
|
12
13
|
private _control;
|
|
13
14
|
options: RadioOption[];
|
|
14
15
|
groupLabel: string;
|
|
@@ -32,6 +33,6 @@ export declare class CpsRadioComponent implements ControlValueAccessor {
|
|
|
32
33
|
updateValueEvent(event: any): void;
|
|
33
34
|
private _updateValue;
|
|
34
35
|
setDisabledState(disabled: boolean): void;
|
|
35
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
36
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CpsRadioGroupComponent, [{ optional: true; self: true; }]>;
|
|
37
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CpsRadioGroupComponent, "cps-radio-group", never, { "options": "options"; "groupLabel": "groupLabel"; "vertical": "vertical"; "disabled": "disabled"; "infoTooltip": "infoTooltip"; "infoTooltipClass": "infoTooltipClass"; "infoTooltipMaxWidth": "infoTooltipMaxWidth"; "infoTooltipPersistent": "infoTooltipPersistent"; "infoTooltipPosition": "infoTooltipPosition"; "value": "value"; }, { "valueChanged": "valueChanged"; }, never, ["*"], true, never>;
|
|
37
38
|
}
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -7,7 +7,8 @@ export * from './lib/components/cps-tree-autocomplete/cps-tree-autocomplete.comp
|
|
|
7
7
|
export * from './lib/components/cps-info-circle/cps-info-circle.component';
|
|
8
8
|
export * from './lib/components/cps-button/cps-button.component';
|
|
9
9
|
export * from './lib/components/cps-checkbox/cps-checkbox.component';
|
|
10
|
-
export * from './lib/components/cps-radio/cps-radio.component';
|
|
10
|
+
export * from './lib/components/cps-radio-group/cps-radio/cps-radio.component';
|
|
11
|
+
export * from './lib/components/cps-radio-group/cps-radio-group.component';
|
|
11
12
|
export * from './lib/components/cps-table/cps-table.component';
|
|
12
13
|
export * from './lib/components/cps-table/directives/cps-table-column-sortable.directive';
|
|
13
14
|
export * from './lib/components/cps-table/directives/cps-table-column-filter.directive';
|
package/styles/fonts.scss
CHANGED
|
Binary file
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, EventEmitter, Input, Optional, Output, Self } from '@angular/core';
|
|
3
|
-
import { CpsInfoCircleComponent } from '../cps-info-circle/cps-info-circle.component';
|
|
4
|
-
import { CpsTooltipDirective } from '../../directives/cps-tooltip.directive';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/forms";
|
|
7
|
-
import * as i2 from "@angular/common";
|
|
8
|
-
export class CpsRadioComponent {
|
|
9
|
-
set value(value) {
|
|
10
|
-
this._value = value;
|
|
11
|
-
this.onChange(value);
|
|
12
|
-
}
|
|
13
|
-
get value() {
|
|
14
|
-
return this._value;
|
|
15
|
-
}
|
|
16
|
-
constructor(_control) {
|
|
17
|
-
this._control = _control;
|
|
18
|
-
this.options = [];
|
|
19
|
-
this.groupLabel = '';
|
|
20
|
-
this.vertical = false;
|
|
21
|
-
this.disabled = false;
|
|
22
|
-
this.infoTooltip = '';
|
|
23
|
-
this.infoTooltipClass = 'cps-tooltip-content';
|
|
24
|
-
this.infoTooltipMaxWidth = '100%';
|
|
25
|
-
this.infoTooltipPersistent = false;
|
|
26
|
-
this.infoTooltipPosition = 'top';
|
|
27
|
-
this.valueChanged = new EventEmitter();
|
|
28
|
-
this._value = undefined;
|
|
29
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
30
|
-
this.onChange = (event) => { };
|
|
31
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
32
|
-
this.onTouched = () => { };
|
|
33
|
-
if (this._control) {
|
|
34
|
-
this._control.valueAccessor = this;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
registerOnChange(fn) {
|
|
38
|
-
this.onChange = fn;
|
|
39
|
-
}
|
|
40
|
-
registerOnTouched(fn) {
|
|
41
|
-
this.onTouched = fn;
|
|
42
|
-
}
|
|
43
|
-
writeValue(value) {
|
|
44
|
-
this.value = value;
|
|
45
|
-
}
|
|
46
|
-
updateValueEvent(event) {
|
|
47
|
-
event.preventDefault();
|
|
48
|
-
if (this.disabled)
|
|
49
|
-
return;
|
|
50
|
-
const value = event?.target?.value || '';
|
|
51
|
-
this._updateValue(value);
|
|
52
|
-
}
|
|
53
|
-
_updateValue(value) {
|
|
54
|
-
this.writeValue(value);
|
|
55
|
-
this.onChange(value);
|
|
56
|
-
this.valueChanged.emit(value);
|
|
57
|
-
}
|
|
58
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
59
|
-
setDisabledState(disabled) { }
|
|
60
|
-
}
|
|
61
|
-
CpsRadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsRadioComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
62
|
-
CpsRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CpsRadioComponent, isStandalone: true, selector: "cps-radio", inputs: { options: "options", groupLabel: "groupLabel", vertical: "vertical", disabled: "disabled", infoTooltip: "infoTooltip", infoTooltipClass: "infoTooltipClass", infoTooltipMaxWidth: "infoTooltipMaxWidth", infoTooltipPersistent: "infoTooltipPersistent", infoTooltipPosition: "infoTooltipPosition", value: "value" }, outputs: { valueChanged: "valueChanged" }, ngImport: i0, template: "<div class=\"cps-radio-group\">\n <div class=\"cps-radio-group-label\" *ngIf=\"groupLabel\">\n <span>{{ groupLabel }}</span>\n <cps-info-circle\n *ngIf=\"infoTooltip\"\n class=\"cps-radio-group-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\n <div\n class=\"cps-radio-group-content\"\n [ngClass]=\"\n vertical\n ? 'cps-radio-group-content-vertical'\n : 'cps-radio-group-content-horizontal'\n \">\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 *ngIf=\"tooltip\"\n class=\"cps-radio-group-content-button\"\n [cpsTooltip]=\"option.tooltip\"\n tooltipCloseDelay=\"0\"\n tooltipPosition=\"bottom\"\n [ngStyle]=\"{\n cursor: option.disabled || disabled ? 'default' : 'pointer'\n }\">\n <ng-container\n *ngTemplateOutlet=\"\n optionRadioTemplate;\n context: {\n option: option\n }\n \"></ng-container>\n </label>\n <label\n *ngIf=\"!tooltip\"\n class=\"cps-radio-group-content-button\"\n [ngStyle]=\"{\n cursor: option.disabled || disabled ? 'default' : 'pointer'\n }\">\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 type=\"radio\"\n [disabled]=\"option.disabled || disabled\"\n [value]=\"option.value\"\n [checked]=\"value === option.value\"\n (change)=\"updateValueEvent($event)\" />\n <span class=\"cps-radio-group-content-button-label\">{{ option.label }}</span>\n</ng-template>\n", styles: [":host{width:-moz-fit-content;width:fit-content;display:inline-block}:host .cps-radio-group{font-family:Source Sans Pro,sans-serif}:host .cps-radio-group-label{font-style:normal;font-weight:400;font-size:1rem;color:var(--cps-color-text-dark);margin-bottom:.75rem;align-items:center;display:inline-flex}:host .cps-radio-group-label .cps-radio-group-label-info-circle{margin-left:8px}:host .cps-radio-group-label .cps-radio-group-label-info-circle ::ng-deep cps-icon i{width:14px;height:14px}:host .cps-radio-group-content{margin-left:.5rem;gap:1.25rem}:host .cps-radio-group-content-vertical{display:grid}:host .cps-radio-group-content-horizontal{display:flex;flex-direction:row;flex-wrap:wrap}:host .cps-radio-group-content-button{display:grid;grid-template-columns:1em auto;gap:.75em}:host .cps-radio-group-content-button-label{font-size:1rem;color:var(--cps-color-text-dark);font-style:normal;font-weight:400;line-height:1rem}:host .cps-radio-group-content-button input[type=radio]{-webkit-appearance:none;appearance:none;background-color:transparent;margin:0;cursor:pointer;font:inherit;color:var(--cps-color-text-dark);width:1.25em;height:1.25em;border:.15em solid currentColor;border-radius:50%;transform:translateY(-.075em);display:grid;place-content:center}:host .cps-radio-group-content-button input[type=radio]:hover,:host .cps-radio-group-content-button input[type=radio]:checked{color:var(--cps-color-calm)}:host .cps-radio-group-content-button input[type=radio]:disabled{color:var(--cps-color-text-lightest);cursor:default}:host .cps-radio-group-content-button input[type=radio]:before{content:\"\";width:.625em;height:.625em;border-radius:50%;transform:scale(0);transition:.12s transform ease-in-out;box-shadow:inset 1em 1em var(--cps-color-calm);background-color:CanvasText}:host .cps-radio-group-content-button input[type=radio][disabled]:before{box-shadow:inset 1em 1em var(--cps-color-text-lightest)}:host .cps-radio-group-content-button input[type=radio]:disabled+.cps-radio-group-content-button-label{color:var(--cps-color-text-light)}:host .cps-radio-group-content-button input[type=radio]:checked:before{transform:scale(1)}\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: "component", type: CpsInfoCircleComponent, selector: "cps-info-circle", inputs: ["size", "tooltipText", "tooltipPosition", "tooltipContentClass", "tooltipMaxWidth", "tooltipPersistent"] }, { kind: "directive", type: CpsTooltipDirective, selector: "[cpsTooltip]", inputs: ["cpsTooltip", "tooltipOpenDelay", "tooltipCloseDelay", "tooltipOpenOn", "tooltipPosition", "tooltipPersistent", "tooltipDisabled", "tooltipMaxWidth", "tooltipContentClass"] }] });
|
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsRadioComponent, decorators: [{
|
|
64
|
-
type: Component,
|
|
65
|
-
args: [{ standalone: true, imports: [CommonModule, CpsInfoCircleComponent, CpsTooltipDirective], selector: 'cps-radio', template: "<div class=\"cps-radio-group\">\n <div class=\"cps-radio-group-label\" *ngIf=\"groupLabel\">\n <span>{{ groupLabel }}</span>\n <cps-info-circle\n *ngIf=\"infoTooltip\"\n class=\"cps-radio-group-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\n <div\n class=\"cps-radio-group-content\"\n [ngClass]=\"\n vertical\n ? 'cps-radio-group-content-vertical'\n : 'cps-radio-group-content-horizontal'\n \">\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 *ngIf=\"tooltip\"\n class=\"cps-radio-group-content-button\"\n [cpsTooltip]=\"option.tooltip\"\n tooltipCloseDelay=\"0\"\n tooltipPosition=\"bottom\"\n [ngStyle]=\"{\n cursor: option.disabled || disabled ? 'default' : 'pointer'\n }\">\n <ng-container\n *ngTemplateOutlet=\"\n optionRadioTemplate;\n context: {\n option: option\n }\n \"></ng-container>\n </label>\n <label\n *ngIf=\"!tooltip\"\n class=\"cps-radio-group-content-button\"\n [ngStyle]=\"{\n cursor: option.disabled || disabled ? 'default' : 'pointer'\n }\">\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 type=\"radio\"\n [disabled]=\"option.disabled || disabled\"\n [value]=\"option.value\"\n [checked]=\"value === option.value\"\n (change)=\"updateValueEvent($event)\" />\n <span class=\"cps-radio-group-content-button-label\">{{ option.label }}</span>\n</ng-template>\n", styles: [":host{width:-moz-fit-content;width:fit-content;display:inline-block}:host .cps-radio-group{font-family:Source Sans Pro,sans-serif}:host .cps-radio-group-label{font-style:normal;font-weight:400;font-size:1rem;color:var(--cps-color-text-dark);margin-bottom:.75rem;align-items:center;display:inline-flex}:host .cps-radio-group-label .cps-radio-group-label-info-circle{margin-left:8px}:host .cps-radio-group-label .cps-radio-group-label-info-circle ::ng-deep cps-icon i{width:14px;height:14px}:host .cps-radio-group-content{margin-left:.5rem;gap:1.25rem}:host .cps-radio-group-content-vertical{display:grid}:host .cps-radio-group-content-horizontal{display:flex;flex-direction:row;flex-wrap:wrap}:host .cps-radio-group-content-button{display:grid;grid-template-columns:1em auto;gap:.75em}:host .cps-radio-group-content-button-label{font-size:1rem;color:var(--cps-color-text-dark);font-style:normal;font-weight:400;line-height:1rem}:host .cps-radio-group-content-button input[type=radio]{-webkit-appearance:none;appearance:none;background-color:transparent;margin:0;cursor:pointer;font:inherit;color:var(--cps-color-text-dark);width:1.25em;height:1.25em;border:.15em solid currentColor;border-radius:50%;transform:translateY(-.075em);display:grid;place-content:center}:host .cps-radio-group-content-button input[type=radio]:hover,:host .cps-radio-group-content-button input[type=radio]:checked{color:var(--cps-color-calm)}:host .cps-radio-group-content-button input[type=radio]:disabled{color:var(--cps-color-text-lightest);cursor:default}:host .cps-radio-group-content-button input[type=radio]:before{content:\"\";width:.625em;height:.625em;border-radius:50%;transform:scale(0);transition:.12s transform ease-in-out;box-shadow:inset 1em 1em var(--cps-color-calm);background-color:CanvasText}:host .cps-radio-group-content-button input[type=radio][disabled]:before{box-shadow:inset 1em 1em var(--cps-color-text-lightest)}:host .cps-radio-group-content-button input[type=radio]:disabled+.cps-radio-group-content-button-label{color:var(--cps-color-text-light)}:host .cps-radio-group-content-button input[type=radio]:checked:before{transform:scale(1)}\n"] }]
|
|
66
|
-
}], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
|
|
67
|
-
type: Self
|
|
68
|
-
}, {
|
|
69
|
-
type: Optional
|
|
70
|
-
}] }]; }, propDecorators: { options: [{
|
|
71
|
-
type: Input
|
|
72
|
-
}], groupLabel: [{
|
|
73
|
-
type: Input
|
|
74
|
-
}], vertical: [{
|
|
75
|
-
type: Input
|
|
76
|
-
}], disabled: [{
|
|
77
|
-
type: Input
|
|
78
|
-
}], infoTooltip: [{
|
|
79
|
-
type: Input
|
|
80
|
-
}], infoTooltipClass: [{
|
|
81
|
-
type: Input
|
|
82
|
-
}], infoTooltipMaxWidth: [{
|
|
83
|
-
type: Input
|
|
84
|
-
}], infoTooltipPersistent: [{
|
|
85
|
-
type: Input
|
|
86
|
-
}], infoTooltipPosition: [{
|
|
87
|
-
type: Input
|
|
88
|
-
}], value: [{
|
|
89
|
-
type: Input
|
|
90
|
-
}], valueChanged: [{
|
|
91
|
-
type: Output
|
|
92
|
-
}] } });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy1yYWRpby9jcHMtcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXJhZGlvL2Nwcy1yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNMLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFDTCxtQkFBbUIsRUFFcEIsTUFBTSx3Q0FBd0MsQ0FBQzs7OztBQWdCaEQsTUFBTSxPQUFPLGlCQUFpQjtJQVc1QixJQUFhLEtBQUssQ0FBQyxLQUFVO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBTUQsWUFBd0MsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQXZCbEQsWUFBTyxHQUFHLEVBQW1CLENBQUM7UUFDOUIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIscUJBQWdCLEdBQUcscUJBQXFCLENBQUM7UUFDekMsd0JBQW1CLEdBQW9CLE1BQU0sQ0FBQztRQUM5QywwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsd0JBQW1CLEdBQW9CLEtBQUssQ0FBQztRQVc1QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFN0MsV0FBTSxHQUFRLFNBQVMsQ0FBQztRQVFoQyxnRUFBZ0U7UUFDaEUsYUFBUSxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDOUIsZ0VBQWdFO1FBQ2hFLGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFSbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztTQUNwQztJQUNILENBQUM7SUFPRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBVTtRQUN6QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDMUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVPLFlBQVksQ0FBQyxLQUFVO1FBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLGdCQUFnQixDQUFDLFFBQWlCLElBQUcsQ0FBQzs7OEdBN0QzQixpQkFBaUI7a0dBQWpCLGlCQUFpQixnYkM5QjlCLG11RUE4RUEsMHBFRHJEWSxZQUFZLDBsQkFBRSxzQkFBc0IsK0tBQUUsbUJBQW1COzJGQUt4RCxpQkFBaUI7a0JBUDdCLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLHNCQUFzQixFQUFFLG1CQUFtQixDQUFDLFlBQzFELFdBQVc7OzBCQTRCUixJQUFJOzswQkFBSSxRQUFROzRDQXZCcEIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBU0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ3BzSW5mb0NpcmNsZUNvbXBvbmVudCB9IGZyb20gJy4uL2Nwcy1pbmZvLWNpcmNsZS9jcHMtaW5mby1jaXJjbGUuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIENwc1Rvb2x0aXBEaXJlY3RpdmUsXG4gIFRvb2x0aXBQb3NpdGlvblxufSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2Nwcy10b29sdGlwLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCB0eXBlIFJhZGlvT3B0aW9uID0ge1xuICB2YWx1ZTogYW55O1xuICBsYWJlbDogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIHRvb2x0aXA/OiBzdHJpbmc7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ3BzSW5mb0NpcmNsZUNvbXBvbmVudCwgQ3BzVG9vbHRpcERpcmVjdGl2ZV0sXG4gIHNlbGVjdG9yOiAnY3BzLXJhZGlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nwcy1yYWRpby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nwcy1yYWRpby5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENwc1JhZGlvQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSBvcHRpb25zID0gW10gYXMgUmFkaW9PcHRpb25bXTtcbiAgQElucHV0KCkgZ3JvdXBMYWJlbCA9ICcnO1xuICBASW5wdXQoKSB2ZXJ0aWNhbCA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcCA9ICcnO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcENsYXNzID0gJ2Nwcy10b29sdGlwLWNvbnRlbnQnO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcE1heFdpZHRoOiBudW1iZXIgfCBzdHJpbmcgPSAnMTAwJSc7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwUGVyc2lzdGVudCA9IGZhbHNlO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSAndG9wJztcblxuICBASW5wdXQoKSBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgX3ZhbHVlOiBhbnkgPSB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoQFNlbGYoKSBAT3B0aW9uYWwoKSBwcml2YXRlIF9jb250cm9sOiBOZ0NvbnRyb2wpIHtcbiAgICBpZiAodGhpcy5fY29udHJvbCkge1xuICAgICAgdGhpcy5fY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uQ2hhbmdlID0gKGV2ZW50OiBhbnkpID0+IHt9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgdXBkYXRlVmFsdWVFdmVudChldmVudDogYW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQ/LnRhcmdldD8udmFsdWUgfHwgJyc7XG4gICAgdGhpcy5fdXBkYXRlVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZWQuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pIHt9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY3BzLXJhZGlvLWdyb3VwXCI+XG4gIDxkaXYgY2xhc3M9XCJjcHMtcmFkaW8tZ3JvdXAtbGFiZWxcIiAqbmdJZj1cImdyb3VwTGFiZWxcIj5cbiAgICA8c3Bhbj57eyBncm91cExhYmVsIH19PC9zcGFuPlxuICAgIDxjcHMtaW5mby1jaXJjbGVcbiAgICAgICpuZ0lmPVwiaW5mb1Rvb2x0aXBcIlxuICAgICAgY2xhc3M9XCJjcHMtcmFkaW8tZ3JvdXAtbGFiZWwtaW5mby1jaXJjbGVcIlxuICAgICAgc2l6ZT1cInhzbWFsbFwiXG4gICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cImluZm9Ub29sdGlwUG9zaXRpb25cIlxuICAgICAgW3Rvb2x0aXBDb250ZW50Q2xhc3NdPVwiaW5mb1Rvb2x0aXBDbGFzc1wiXG4gICAgICBbdG9vbHRpcE1heFdpZHRoXT1cImluZm9Ub29sdGlwTWF4V2lkdGhcIlxuICAgICAgW3Rvb2x0aXBQZXJzaXN0ZW50XT1cImluZm9Ub29sdGlwUGVyc2lzdGVudFwiXG4gICAgICBbdG9vbHRpcFRleHRdPVwiaW5mb1Rvb2x0aXBcIj5cbiAgICA8L2Nwcy1pbmZvLWNpcmNsZT5cbiAgPC9kaXY+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY3BzLXJhZGlvLWdyb3VwLWNvbnRlbnRcIlxuICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgdmVydGljYWxcbiAgICAgICAgPyAnY3BzLXJhZGlvLWdyb3VwLWNvbnRlbnQtdmVydGljYWwnXG4gICAgICAgIDogJ2Nwcy1yYWRpby1ncm91cC1jb250ZW50LWhvcml6b250YWwnXG4gICAgXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICBvcHRpb25Db250YWluZXJUZW1wbGF0ZTtcbiAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICBvcHRpb246IG9wdGlvbixcbiAgICAgICAgICAgIHRvb2x0aXA6IG9wdGlvbi50b29sdGlwXG4gICAgICAgICAgfVxuICAgICAgICBcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNvcHRpb25Db250YWluZXJUZW1wbGF0ZSBsZXQtb3B0aW9uPVwib3B0aW9uXCIgbGV0LXRvb2x0aXA9XCJ0b29sdGlwXCI+XG4gIDxsYWJlbFxuICAgICpuZ0lmPVwidG9vbHRpcFwiXG4gICAgY2xhc3M9XCJjcHMtcmFkaW8tZ3JvdXAtY29udGVudC1idXR0b25cIlxuICAgIFtjcHNUb29sdGlwXT1cIm9wdGlvbi50b29sdGlwXCJcbiAgICB0b29sdGlwQ2xvc2VEZWxheT1cIjBcIlxuICAgIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgY3Vyc29yOiBvcHRpb24uZGlzYWJsZWQgfHwgZGlzYWJsZWQgPyAnZGVmYXVsdCcgOiAncG9pbnRlcidcbiAgICB9XCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgb3B0aW9uUmFkaW9UZW1wbGF0ZTtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIG9wdGlvbjogb3B0aW9uXG4gICAgICAgIH1cbiAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuICA8L2xhYmVsPlxuICA8bGFiZWxcbiAgICAqbmdJZj1cIiF0b29sdGlwXCJcbiAgICBjbGFzcz1cImNwcy1yYWRpby1ncm91cC1jb250ZW50LWJ1dHRvblwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgY3Vyc29yOiBvcHRpb24uZGlzYWJsZWQgfHwgZGlzYWJsZWQgPyAnZGVmYXVsdCcgOiAncG9pbnRlcidcbiAgICB9XCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgb3B0aW9uUmFkaW9UZW1wbGF0ZTtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIG9wdGlvbjogb3B0aW9uXG4gICAgICAgIH1cbiAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuICA8L2xhYmVsPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNvcHRpb25SYWRpb1RlbXBsYXRlIGxldC1vcHRpb249XCJvcHRpb25cIj5cbiAgPGlucHV0XG4gICAgdHlwZT1cInJhZGlvXCJcbiAgICBbZGlzYWJsZWRdPVwib3B0aW9uLmRpc2FibGVkIHx8IGRpc2FibGVkXCJcbiAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICBbY2hlY2tlZF09XCJ2YWx1ZSA9PT0gb3B0aW9uLnZhbHVlXCJcbiAgICAoY2hhbmdlKT1cInVwZGF0ZVZhbHVlRXZlbnQoJGV2ZW50KVwiIC8+XG4gIDxzcGFuIGNsYXNzPVwiY3BzLXJhZGlvLWdyb3VwLWNvbnRlbnQtYnV0dG9uLWxhYmVsXCI+e3sgb3B0aW9uLmxhYmVsIH19PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|