@testgorilla/tgo-ui 2.29.5 → 2.29.7-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/card/card.component.d.ts +10 -3
- package/components/multi-input/multi-input.component.d.ts +14 -7
- package/esm2022/components/card/card.component.mjs +24 -5
- package/esm2022/components/multi-input/multi-input.component.mjs +31 -19
- package/fesm2022/testgorilla-tgo-ui.mjs +52 -21
- package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/projects/tgo-canopy-ui/theme/_variables.scss +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EventEmitter, OnChanges, OnInit } from '@angular/core';
|
|
2
|
-
import { CardSize, CardVariant } from './card.model';
|
|
3
|
-
import { ApplicationTheme } from '../../models/application-theme.model';
|
|
4
2
|
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
|
|
3
|
+
import { ApplicationTheme } from '../../models/application-theme.model';
|
|
4
|
+
import { CardSize, CardVariant } from './card.model';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class CardComponent implements OnChanges, OnInit {
|
|
7
7
|
private readonly defaultAppTheme;
|
|
@@ -42,6 +42,13 @@ export declare class CardComponent implements OnChanges, OnInit {
|
|
|
42
42
|
* @memberof CardComponent
|
|
43
43
|
*/
|
|
44
44
|
selected: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Marks card as readonly. Defaults "false".
|
|
47
|
+
*
|
|
48
|
+
* @type {CardVariant}
|
|
49
|
+
* @memberof CardComponent
|
|
50
|
+
*/
|
|
51
|
+
isReadOnly: boolean;
|
|
45
52
|
/**
|
|
46
53
|
* Emits when card is being selected
|
|
47
54
|
*/
|
|
@@ -55,5 +62,5 @@ export declare class CardComponent implements OnChanges, OnInit {
|
|
|
55
62
|
get isSelected(): boolean;
|
|
56
63
|
selectCard(): void;
|
|
57
64
|
static ɵfac: i0.ɵɵFactoryDeclaration<CardComponent, [{ optional: true; }, null]>;
|
|
58
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "ui-card", never, { "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; }, { "cardSelected": "cardSelected"; }, never, ["*"], false, never>;
|
|
65
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "ui-card", never, { "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "isReadOnly": { "alias": "isReadOnly"; "required": false; }; }, { "cardSelected": "cardSelected"; }, never, ["*"], false, never>;
|
|
59
66
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter, OnInit, SimpleChanges } from '@angular/core';
|
|
2
|
-
import { AbstractControl, ControlValueAccessor, FormBuilder, FormControl, NgControl } from '@angular/forms';
|
|
2
|
+
import { AbstractControl, ControlValueAccessor, FormBuilder, FormControl, NgControl, ValidatorFn } from '@angular/forms';
|
|
3
3
|
import { ApplicationTheme } from '../../models/application-theme.model';
|
|
4
4
|
import { MultiInputValue } from './multi-input.model';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -57,11 +57,11 @@ export declare class MultiInputComponent implements ControlValueAccessor, OnInit
|
|
|
57
57
|
*/
|
|
58
58
|
label: string;
|
|
59
59
|
/**
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
*
|
|
61
|
+
* @description Defines the placeholder of the multi input
|
|
62
|
+
* @type {string}
|
|
63
|
+
* @memberof MultiInputComponent
|
|
64
|
+
*/
|
|
65
65
|
placeholder: string;
|
|
66
66
|
/**
|
|
67
67
|
*
|
|
@@ -112,6 +112,13 @@ export declare class MultiInputComponent implements ControlValueAccessor, OnInit
|
|
|
112
112
|
* @memberof MultiInputComponent
|
|
113
113
|
*/
|
|
114
114
|
maxCharacters: number;
|
|
115
|
+
/**
|
|
116
|
+
*
|
|
117
|
+
* @description The validators to apply to input field
|
|
118
|
+
* @type {Validators[]}
|
|
119
|
+
* @memberof MultiInputComponent
|
|
120
|
+
*/
|
|
121
|
+
validators: ValidatorFn[];
|
|
115
122
|
/**
|
|
116
123
|
*
|
|
117
124
|
* @description The width of the multi input
|
|
@@ -154,7 +161,7 @@ export declare class MultiInputComponent implements ControlValueAccessor, OnInit
|
|
|
154
161
|
private addValidation;
|
|
155
162
|
private updateDisableState;
|
|
156
163
|
static ɵfac: i0.ɵɵFactoryDeclaration<MultiInputComponent, [{ optional: true; self: true; }, { optional: true; }, null]>;
|
|
157
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MultiInputComponent, "ui-multi-input", never, { "itemsList": { "alias": "itemsList"; "required": true; }; "itemTextField": { "alias": "itemTextField"; "required": true; }; "itemValueField": { "alias": "itemValueField"; "required": true; }; "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "allowDecimal": { "alias": "allowDecimal"; "required": false; }; "allowNegative": { "alias": "allowNegative"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "hideBuiltInErrors": { "alias": "hideBuiltInErrors"; "required": false; }; "hideLabelInErrors": { "alias": "hideLabelInErrors"; "required": false; }; "maxCharacters": { "alias": "maxCharacters"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, false, never>;
|
|
164
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MultiInputComponent, "ui-multi-input", never, { "itemsList": { "alias": "itemsList"; "required": true; }; "itemTextField": { "alias": "itemTextField"; "required": true; }; "itemValueField": { "alias": "itemValueField"; "required": true; }; "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "allowDecimal": { "alias": "allowDecimal"; "required": false; }; "allowNegative": { "alias": "allowNegative"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "errors": { "alias": "errors"; "required": false; }; "hideBuiltInErrors": { "alias": "hideBuiltInErrors"; "required": false; }; "hideLabelInErrors": { "alias": "hideLabelInErrors"; "required": false; }; "maxCharacters": { "alias": "maxCharacters"; "required": false; }; "validators": { "alias": "validators"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, false, never>;
|
|
158
165
|
static ngAcceptInputType_disabled: unknown;
|
|
159
166
|
static ngAcceptInputType_required: unknown;
|
|
160
167
|
static ngAcceptInputType_allowDecimal: unknown;
|
|
@@ -45,6 +45,13 @@ export class CardComponent {
|
|
|
45
45
|
* @memberof CardComponent
|
|
46
46
|
*/
|
|
47
47
|
this.selected = false;
|
|
48
|
+
/**
|
|
49
|
+
* Marks card as readonly. Defaults "false".
|
|
50
|
+
*
|
|
51
|
+
* @type {CardVariant}
|
|
52
|
+
* @memberof CardComponent
|
|
53
|
+
*/
|
|
54
|
+
this.isReadOnly = false;
|
|
48
55
|
/**
|
|
49
56
|
* Emits when card is being selected
|
|
50
57
|
*/
|
|
@@ -65,20 +72,30 @@ export class CardComponent {
|
|
|
65
72
|
}
|
|
66
73
|
get isSelected() {
|
|
67
74
|
// educative, premium, ai, actionDriver and neutral variants shouldn't have any selected/interactive states
|
|
68
|
-
return this.selected &&
|
|
75
|
+
return (this.selected &&
|
|
76
|
+
this.variant !== 'educative' &&
|
|
77
|
+
this.variant !== 'premium' &&
|
|
78
|
+
this.variant !== 'ai' &&
|
|
79
|
+
this.variant !== 'actionDriver' &&
|
|
80
|
+
this.variant !== 'neutral');
|
|
69
81
|
}
|
|
70
82
|
selectCard() {
|
|
71
|
-
if (this.
|
|
83
|
+
if (!this.isReadOnly &&
|
|
84
|
+
this.variant !== 'educative' &&
|
|
85
|
+
this.variant !== 'premium' &&
|
|
86
|
+
this.variant !== 'ai' &&
|
|
87
|
+
this.variant !== 'actionDriver' &&
|
|
88
|
+
this.variant !== 'neutral') {
|
|
72
89
|
this.selected = true;
|
|
73
90
|
this.cardSelected.emit(this.selected);
|
|
74
91
|
}
|
|
75
92
|
}
|
|
76
93
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CardComponent, deps: [{ token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }, { token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CardComponent, selector: "ui-card", inputs: { size: "size", variant: "variant", applicationTheme: "applicationTheme", errors: "errors", selected: "selected" }, outputs: { cardSelected: "cardSelected" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"card-container\"\n (keydown.enter)=\"selectCard()\"\n (keydown.space)=\"selectCard()\"\n (click)=\"selectCard()\"\n [ngClass]=\"[classes, isSelected ? 'selected' : '']\"\n [attr.theme]=\"applicationTheme\"\n tabindex=\"0\"\n>\n <ng-content></ng-content>\n</div>\n<div class=\"errors\" *ngIf=\"safeErrors?.length\">\n <div class=\"error\" *ngFor=\"let error of safeErrors\">\n <ui-icon [size]=\"'24'\" [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span [innerHTML]=\"error\"></span>\n </div>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.card-container{border:1px solid #E0E0E0;background:#fff;position:relative;transition:box-shadow .25s ease}.card-container.card-size-medium{padding:24px}.card-container.card-size-large{padding:80px}.card-container.card-size-small{padding:16px}.card-container[theme=dark],.card-container[theme=light]{border-color:#d3d3d3;border-radius:10px;border-width:1px}.card-container[theme=dark].shadow,.card-container[theme=light].shadow{box-shadow:0 4px 100px #2424240a}.card-container[theme=dark].error,.card-container[theme=light].error{border-width:2px;border-color:#e02800}.card-container[theme=dark].ai,.card-container[theme=light].ai{border
|
|
94
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CardComponent, selector: "ui-card", inputs: { size: "size", variant: "variant", applicationTheme: "applicationTheme", errors: "errors", selected: "selected", isReadOnly: "isReadOnly" }, outputs: { cardSelected: "cardSelected" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"card-container\"\n (keydown.enter)=\"selectCard()\"\n (keydown.space)=\"selectCard()\"\n (click)=\"selectCard()\"\n [ngClass]=\"[classes, isSelected ? 'selected' : '']\"\n [attr.theme]=\"applicationTheme\"\n tabindex=\"0\"\n>\n <ng-content></ng-content>\n</div>\n<div class=\"errors\" *ngIf=\"safeErrors?.length\">\n <div class=\"error\" *ngFor=\"let error of safeErrors\">\n <ui-icon [size]=\"'24'\" [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span [innerHTML]=\"error\"></span>\n </div>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.card-container{border:1px solid #E0E0E0;background:#fff;position:relative;transition:box-shadow .25s ease}.card-container.card-size-medium{padding:24px}.card-container.card-size-large{padding:80px}.card-container.card-size-small{padding:16px}.card-container[theme=dark],.card-container[theme=light]{border-color:#d3d3d3;border-radius:10px;border-width:1px}.card-container[theme=dark].shadow,.card-container[theme=light].shadow{box-shadow:0 4px 100px #2424240a}.card-container[theme=dark].error,.card-container[theme=light].error{border-width:2px;border-color:#e02800}.card-container[theme=dark].ai,.card-container[theme=light].ai{border:2px solid transparent;background:linear-gradient(to left,#fff,#fff),linear-gradient(to right,#0165fc 12%,#d410aa 88%);background-clip:padding-box,border-box;background-origin:padding-box,border-box}.card-container[theme=dark].educative,.card-container[theme=light].educative{background:#d9e8ff;border-color:#1a47aa}.card-container[theme=dark].premium,.card-container[theme=light].premium{background:#fff5e6;border-color:#d07d00}.card-container[theme=dark].actionDriver,.card-container[theme=light].actionDriver{background:#242424}.card-container[theme=dark].neutral,.card-container[theme=light].neutral{background:#f4f4f4;border:none}.card-container[theme=dark].state,.card-container[theme=light].state{cursor:pointer}.card-container[theme=dark].state:hover,.card-container[theme=dark].state:hover:focus,.card-container[theme=light].state:hover,.card-container[theme=light].state:hover:focus{border-color:#242424;outline:1px solid #242424}.card-container[theme=dark].state.selected:focus:not(:focus-visible),.card-container[theme=light].state.selected:focus:not(:focus-visible){border-color:#242424;outline:1px solid #242424}.card-container[theme=dark].selected,.card-container[theme=light].selected{border-color:#242424;outline:1px solid #242424}.card-container[theme=dark]:focus-visible:not(.selected),.card-container[theme=light]:focus-visible:not(.selected){outline:1px solid black;border-color:#242424;box-shadow:0 0 0 2px #fff,0 0 0 4px #242424;animation:none}.card-container[theme=dark]:focus-visible:not(.selected):before,.card-container[theme=light]:focus-visible:not(.selected):before{display:none}.card-container[theme=dark]:focus-visible:is(.selected),.card-container[theme=light]:focus-visible:is(.selected){outline:1px solid black;border-color:#242424;box-shadow:0 0 0 2px #fff,0 0 0 4px #242424;animation:none}.card-container[theme=dark]:focus-visible:is(.selected):before,.card-container[theme=light]:focus-visible:is(.selected):before{display:none}.card-container[theme=dark].default,.card-container[theme=light].default{border-color:#d3d3d3}.card-size-brand.card-size-medium{padding:23px}.card-size-brand.card-size-large{padding:79px}.card-size-brand.card-size-small{padding:15px}.errors{margin-top:8px}.errors .error{font-size:14px;display:flex;flex-direction:row;align-items:center;color:#e02800}.errors .error ui-icon{margin-right:8px}.errors .error ui-icon ::ng-deep svg{color:#e02800}\n"], dependencies: [{ 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: "component", type: i3.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "applicationTheme", "useFullIconName"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
78
95
|
}
|
|
79
96
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CardComponent, decorators: [{
|
|
80
97
|
type: Component,
|
|
81
|
-
args: [{ selector: 'ui-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"card-container\"\n (keydown.enter)=\"selectCard()\"\n (keydown.space)=\"selectCard()\"\n (click)=\"selectCard()\"\n [ngClass]=\"[classes, isSelected ? 'selected' : '']\"\n [attr.theme]=\"applicationTheme\"\n tabindex=\"0\"\n>\n <ng-content></ng-content>\n</div>\n<div class=\"errors\" *ngIf=\"safeErrors?.length\">\n <div class=\"error\" *ngFor=\"let error of safeErrors\">\n <ui-icon [size]=\"'24'\" [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span [innerHTML]=\"error\"></span>\n </div>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.card-container{border:1px solid #E0E0E0;background:#fff;position:relative;transition:box-shadow .25s ease}.card-container.card-size-medium{padding:24px}.card-container.card-size-large{padding:80px}.card-container.card-size-small{padding:16px}.card-container[theme=dark],.card-container[theme=light]{border-color:#d3d3d3;border-radius:10px;border-width:1px}.card-container[theme=dark].shadow,.card-container[theme=light].shadow{box-shadow:0 4px 100px #2424240a}.card-container[theme=dark].error,.card-container[theme=light].error{border-width:2px;border-color:#e02800}.card-container[theme=dark].ai,.card-container[theme=light].ai{border
|
|
98
|
+
args: [{ selector: 'ui-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"card-container\"\n (keydown.enter)=\"selectCard()\"\n (keydown.space)=\"selectCard()\"\n (click)=\"selectCard()\"\n [ngClass]=\"[classes, isSelected ? 'selected' : '']\"\n [attr.theme]=\"applicationTheme\"\n tabindex=\"0\"\n>\n <ng-content></ng-content>\n</div>\n<div class=\"errors\" *ngIf=\"safeErrors?.length\">\n <div class=\"error\" *ngFor=\"let error of safeErrors\">\n <ui-icon [size]=\"'24'\" [applicationTheme]=\"applicationTheme\" [name]=\"'Error'\"></ui-icon>\n <span [innerHTML]=\"error\"></span>\n </div>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.card-container{border:1px solid #E0E0E0;background:#fff;position:relative;transition:box-shadow .25s ease}.card-container.card-size-medium{padding:24px}.card-container.card-size-large{padding:80px}.card-container.card-size-small{padding:16px}.card-container[theme=dark],.card-container[theme=light]{border-color:#d3d3d3;border-radius:10px;border-width:1px}.card-container[theme=dark].shadow,.card-container[theme=light].shadow{box-shadow:0 4px 100px #2424240a}.card-container[theme=dark].error,.card-container[theme=light].error{border-width:2px;border-color:#e02800}.card-container[theme=dark].ai,.card-container[theme=light].ai{border:2px solid transparent;background:linear-gradient(to left,#fff,#fff),linear-gradient(to right,#0165fc 12%,#d410aa 88%);background-clip:padding-box,border-box;background-origin:padding-box,border-box}.card-container[theme=dark].educative,.card-container[theme=light].educative{background:#d9e8ff;border-color:#1a47aa}.card-container[theme=dark].premium,.card-container[theme=light].premium{background:#fff5e6;border-color:#d07d00}.card-container[theme=dark].actionDriver,.card-container[theme=light].actionDriver{background:#242424}.card-container[theme=dark].neutral,.card-container[theme=light].neutral{background:#f4f4f4;border:none}.card-container[theme=dark].state,.card-container[theme=light].state{cursor:pointer}.card-container[theme=dark].state:hover,.card-container[theme=dark].state:hover:focus,.card-container[theme=light].state:hover,.card-container[theme=light].state:hover:focus{border-color:#242424;outline:1px solid #242424}.card-container[theme=dark].state.selected:focus:not(:focus-visible),.card-container[theme=light].state.selected:focus:not(:focus-visible){border-color:#242424;outline:1px solid #242424}.card-container[theme=dark].selected,.card-container[theme=light].selected{border-color:#242424;outline:1px solid #242424}.card-container[theme=dark]:focus-visible:not(.selected),.card-container[theme=light]:focus-visible:not(.selected){outline:1px solid black;border-color:#242424;box-shadow:0 0 0 2px #fff,0 0 0 4px #242424;animation:none}.card-container[theme=dark]:focus-visible:not(.selected):before,.card-container[theme=light]:focus-visible:not(.selected):before{display:none}.card-container[theme=dark]:focus-visible:is(.selected),.card-container[theme=light]:focus-visible:is(.selected){outline:1px solid black;border-color:#242424;box-shadow:0 0 0 2px #fff,0 0 0 4px #242424;animation:none}.card-container[theme=dark]:focus-visible:is(.selected):before,.card-container[theme=light]:focus-visible:is(.selected):before{display:none}.card-container[theme=dark].default,.card-container[theme=light].default{border-color:#d3d3d3}.card-size-brand.card-size-medium{padding:23px}.card-size-brand.card-size-large{padding:79px}.card-size-brand.card-size-small{padding:15px}.errors{margin-top:8px}.errors .error{font-size:14px;display:flex;flex-direction:row;align-items:center;color:#e02800}.errors .error ui-icon{margin-right:8px}.errors .error ui-icon ::ng-deep svg{color:#e02800}\n"] }]
|
|
82
99
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
83
100
|
type: Optional
|
|
84
101
|
}, {
|
|
@@ -94,7 +111,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
94
111
|
type: Input
|
|
95
112
|
}], selected: [{
|
|
96
113
|
type: Input
|
|
114
|
+
}], isReadOnly: [{
|
|
115
|
+
type: Input
|
|
97
116
|
}], cardSelected: [{
|
|
98
117
|
type: Output
|
|
99
118
|
}] } });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Z28tY2Fub3B5LXVpL2NvbXBvbmVudHMvY2FyZC9jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9jYXJkL2NhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFXdkIsTUFBTSxPQUFPLGFBQWE7SUEwQnhCOzs7OztPQUtHO0lBQ0gsSUFBYSxNQUFNLENBQUMsTUFBZ0I7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBMkJELFlBQzZFLGVBQWlDLEVBQ3BHLFlBQTBCO1FBRHlDLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUNwRyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQTlEcEM7Ozs7O1dBS0c7UUFDTSxTQUFJLEdBQWEsUUFBUSxDQUFDO1FBRW5DOzs7OztXQUtHO1FBQ00sWUFBTyxHQUFnQixTQUFTLENBQUM7UUFFMUM7Ozs7OztXQU1HO1FBQ00scUJBQWdCLEdBQXFCLE9BQU8sQ0FBQztRQVl0RDs7Ozs7V0FLRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFMUI7Ozs7O1dBS0c7UUFDTSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRTVCOztXQUVHO1FBQ08saUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBSXJELFlBQU8sR0FBRyxFQUFFLENBQUM7UUFNWCxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sR0FBRyxhQUFhLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksU0FBUyxFQUFFLENBQUM7SUFDdkYsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUN2RixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWiwyR0FBMkc7UUFDM0csT0FBTyxDQUNMLElBQUksQ0FBQyxRQUFRO1lBQ2IsSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXO1lBQzVCLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUztZQUMxQixJQUFJLENBQUMsT0FBTyxLQUFLLElBQUk7WUFDckIsSUFBSSxDQUFDLE9BQU8sS0FBSyxjQUFjO1lBQy9CLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUMzQixDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVU7UUFDUixJQUNFLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFDaEIsSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXO1lBQzVCLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUztZQUMxQixJQUFJLENBQUMsT0FBTyxLQUFLLElBQUk7WUFDckIsSUFBSSxDQUFDLE9BQU8sS0FBSyxjQUFjO1lBQy9CLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUMxQixDQUFDO1lBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDOytHQTFHVSxhQUFhLGtCQThERixvQ0FBb0M7bUdBOUQvQyxhQUFhLHFRQ3JCMUIsZ2pCQWlCQTs7NEZESWEsYUFBYTtrQkFOekIsU0FBUzsrQkFDRSxTQUFTLG1CQUdGLHVCQUF1QixDQUFDLE1BQU07OzBCQWdFNUMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxvQ0FBb0M7b0VBdkRqRCxJQUFJO3NCQUFaLEtBQUs7Z0JBUUcsT0FBTztzQkFBZixLQUFLO2dCQVNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFRTyxNQUFNO3NCQUFsQixLQUFLO2dCQVVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBUUcsVUFBVTtzQkFBbEIsS0FBSztnQkFLSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblRoZW1lIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FwcGxpY2F0aW9uLXRoZW1lLm1vZGVsJztcbmltcG9ydCB7IENhcmRTaXplLCBDYXJkVmFyaWFudCB9IGZyb20gJy4vY2FyZC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBDYXJkIHNpemUuIERlZmF1bHRzIFwibWVkaXVtXCIuXG4gICAqXG4gICAqIEB0eXBlIHtDYXJkU2l6ZX1cbiAgICogQG1lbWJlcm9mIENhcmRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHNpemU6IENhcmRTaXplID0gJ21lZGl1bSc7XG5cbiAgLyoqXG4gICAqIENhcmQgdmFyaWFudHMuIERlZmF1bHRzIFwiZGVmYXVsdFwiLlxuICAgKlxuICAgKiBAdHlwZSB7Q2FyZFZhcmlhbnR9XG4gICAqIEBtZW1iZXJvZiBDYXJkQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSB2YXJpYW50OiBDYXJkVmFyaWFudCA9ICdkZWZhdWx0JztcblxuICAvKipcbiAgICpcbiAgICogRGVmaW5lcyB0aGUgYXBwbGljYXRpb24gdGhlbWVcbiAgICpcbiAgICogQHR5cGUge0FwcGxpY2F0aW9uVGhlbWV9XG4gICAqIEBtZW1iZXJvZiBDYXJkQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBhcHBsaWNhdGlvblRoZW1lOiBBcHBsaWNhdGlvblRoZW1lID0gJ2xpZ2h0JztcblxuICAvKipcbiAgICogU2hvdyBlcnJvcnMgYmVsb3cgY2FyZC5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZ1tdfVxuICAgKiBAbWVtYmVyb2YgQ2FyZENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgc2V0IGVycm9ycyhlcnJvcnM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5zYWZlRXJyb3JzID0gZXJyb3JzPy5maWx0ZXIoQm9vbGVhbikubWFwKGVycm9yID0+IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGVycm9yKSk7XG4gIH1cblxuICAvKipcbiAgICogTWFya3MgY2FyZCBhcyBzZWxlY3RlZFxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIENhcmRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHNlbGVjdGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIE1hcmtzIGNhcmQgYXMgcmVhZG9ubHkuIERlZmF1bHRzIFwiZmFsc2VcIi5cbiAgICpcbiAgICogQHR5cGUge0NhcmRWYXJpYW50fVxuICAgKiBAbWVtYmVyb2YgQ2FyZENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgaXNSZWFkT25seSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGNhcmQgaXMgYmVpbmcgc2VsZWN0ZWRcbiAgICovXG4gIEBPdXRwdXQoKSBjYXJkU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgc2FmZUVycm9yczogU2FmZUh0bWxbXTtcblxuICBjbGFzc2VzID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdCgnQ0FOT1BZVUlfREVGQVVMVF9BUFBMSUNBVElPTl9USEVNRScpIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEFwcFRoZW1lOiBBcHBsaWNhdGlvblRoZW1lLFxuICAgIHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcbiAgKSB7XG4gICAgaWYgKGRlZmF1bHRBcHBUaGVtZSkge1xuICAgICAgdGhpcy5hcHBsaWNhdGlvblRoZW1lID0gZGVmYXVsdEFwcFRoZW1lO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuY2xhc3NlcyA9IGBjYXJkLXNpemUtJHt0aGlzLnNpemUgPz8gJ21lZGl1bSd9ICR7dGhpcy5jYXJkVmFyaWFudCA/PyAnZGVmYXVsdCd9YDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2xhc3NlcyA9IGBjYXJkLXNpemUtJHt0aGlzLnNpemUgPz8gJ21lZGl1bSd9ICR7dGhpcy5jYXJkVmFyaWFudCA/PyAnZGVmYXVsdCd9YDtcbiAgfVxuXG4gIGdldCBjYXJkVmFyaWFudCgpOiBDYXJkVmFyaWFudCB7XG4gICAgcmV0dXJuIHRoaXMuc2FmZUVycm9ycz8ubGVuZ3RoID8gJ2Vycm9yJyA6IHRoaXMudmFyaWFudDtcbiAgfVxuXG4gIGdldCBpc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIC8vIGVkdWNhdGl2ZSwgcHJlbWl1bSwgYWksIGFjdGlvbkRyaXZlciBhbmQgbmV1dHJhbCB2YXJpYW50cyBzaG91bGRuJ3QgaGF2ZSBhbnkgc2VsZWN0ZWQvaW50ZXJhY3RpdmUgc3RhdGVzXG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuc2VsZWN0ZWQgJiZcbiAgICAgIHRoaXMudmFyaWFudCAhPT0gJ2VkdWNhdGl2ZScgJiZcbiAgICAgIHRoaXMudmFyaWFudCAhPT0gJ3ByZW1pdW0nICYmXG4gICAgICB0aGlzLnZhcmlhbnQgIT09ICdhaScgJiZcbiAgICAgIHRoaXMudmFyaWFudCAhPT0gJ2FjdGlvbkRyaXZlcicgJiZcbiAgICAgIHRoaXMudmFyaWFudCAhPT0gJ25ldXRyYWwnXG4gICAgKTtcbiAgfVxuXG4gIHNlbGVjdENhcmQoKSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuaXNSZWFkT25seSAmJlxuICAgICAgdGhpcy52YXJpYW50ICE9PSAnZWR1Y2F0aXZlJyAmJlxuICAgICAgdGhpcy52YXJpYW50ICE9PSAncHJlbWl1bScgJiZcbiAgICAgIHRoaXMudmFyaWFudCAhPT0gJ2FpJyAmJlxuICAgICAgdGhpcy52YXJpYW50ICE9PSAnYWN0aW9uRHJpdmVyJyAmJlxuICAgICAgdGhpcy52YXJpYW50ICE9PSAnbmV1dHJhbCdcbiAgICApIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5jYXJkU2VsZWN0ZWQuZW1pdCh0aGlzLnNlbGVjdGVkKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJjYXJkLWNvbnRhaW5lclwiXG4gIChrZXlkb3duLmVudGVyKT1cInNlbGVjdENhcmQoKVwiXG4gIChrZXlkb3duLnNwYWNlKT1cInNlbGVjdENhcmQoKVwiXG4gIChjbGljayk9XCJzZWxlY3RDYXJkKClcIlxuICBbbmdDbGFzc109XCJbY2xhc3NlcywgaXNTZWxlY3RlZCA/ICdzZWxlY3RlZCcgOiAnJ11cIlxuICBbYXR0ci50aGVtZV09XCJhcHBsaWNhdGlvblRoZW1lXCJcbiAgdGFiaW5kZXg9XCIwXCJcbj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZXJyb3JzXCIgKm5nSWY9XCJzYWZlRXJyb3JzPy5sZW5ndGhcIj5cbiAgPGRpdiBjbGFzcz1cImVycm9yXCIgKm5nRm9yPVwibGV0IGVycm9yIG9mIHNhZmVFcnJvcnNcIj5cbiAgICA8dWktaWNvbiBbc2l6ZV09XCInMjQnXCIgW2FwcGxpY2F0aW9uVGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZVwiIFtuYW1lXT1cIidFcnJvcidcIj48L3VpLWljb24+XG4gICAgPHNwYW4gW2lubmVySFRNTF09XCJlcnJvclwiPjwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { booleanAttribute, Component, EventEmitter, HostBinding, Inject, Input, Optional, Output, Self, } from '@angular/core';
|
|
2
2
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { FormControl, Validators } from '@angular/forms';
|
|
3
|
+
import { FormControl, Validators, } from '@angular/forms';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/forms";
|
|
6
6
|
import * as i2 from "@angular/common";
|
|
@@ -69,11 +69,11 @@ export class MultiInputComponent {
|
|
|
69
69
|
*/
|
|
70
70
|
this.label = '';
|
|
71
71
|
/**
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
*
|
|
73
|
+
* @description Defines the placeholder of the multi input
|
|
74
|
+
* @type {string}
|
|
75
|
+
* @memberof MultiInputComponent
|
|
76
|
+
*/
|
|
77
77
|
this.placeholder = '';
|
|
78
78
|
/**
|
|
79
79
|
*
|
|
@@ -124,6 +124,13 @@ export class MultiInputComponent {
|
|
|
124
124
|
* @memberof MultiInputComponent
|
|
125
125
|
*/
|
|
126
126
|
this.maxCharacters = 0;
|
|
127
|
+
/**
|
|
128
|
+
*
|
|
129
|
+
* @description The validators to apply to input field
|
|
130
|
+
* @type {Validators[]}
|
|
131
|
+
* @memberof MultiInputComponent
|
|
132
|
+
*/
|
|
133
|
+
this.validators = [];
|
|
127
134
|
/**
|
|
128
135
|
*
|
|
129
136
|
* @description The width of the multi input
|
|
@@ -151,9 +158,7 @@ export class MultiInputComponent {
|
|
|
151
158
|
if (this.defaultAppTheme) {
|
|
152
159
|
this.applicationTheme = this.defaultAppTheme;
|
|
153
160
|
}
|
|
154
|
-
this.multiInputForm.valueChanges
|
|
155
|
-
.pipe(takeUntilDestroyed())
|
|
156
|
-
.subscribe(formValue => {
|
|
161
|
+
this.multiInputForm.valueChanges.pipe(takeUntilDestroyed()).subscribe(formValue => {
|
|
157
162
|
this.valueChanged(formValue);
|
|
158
163
|
this.checkFormErrors();
|
|
159
164
|
if (!formValue.value && !formValue[this.itemValueField]) {
|
|
@@ -212,7 +217,9 @@ export class MultiInputComponent {
|
|
|
212
217
|
this.showError = !!(this.inputControl?.errors || this.dropdownControl?.errors);
|
|
213
218
|
}
|
|
214
219
|
markAsTouched() {
|
|
215
|
-
if (this.ngControl &&
|
|
220
|
+
if (this.ngControl &&
|
|
221
|
+
((this.inputControl?.touched && this.dropdownControl?.touched) ||
|
|
222
|
+
(!this.inputControl?.value && !this.dropdownControl?.value))) {
|
|
216
223
|
this.ngControl.control?.markAsTouched();
|
|
217
224
|
}
|
|
218
225
|
}
|
|
@@ -224,13 +231,13 @@ export class MultiInputComponent {
|
|
|
224
231
|
}
|
|
225
232
|
get controlHasError() {
|
|
226
233
|
return this.ngControl
|
|
227
|
-
? (this.showError && !!this.ngControl.control?.touched)
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
: this.showError
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
+
? (this.showError && !!this.ngControl.control?.touched) ||
|
|
235
|
+
(!this.inputControl?.valid && !!this.inputControl?.touched) ||
|
|
236
|
+
(!this.dropdownControl?.valid && !!this.dropdownControl?.touched)
|
|
237
|
+
: this.showError ||
|
|
238
|
+
!!this.errors.length ||
|
|
239
|
+
(!this.inputControl?.valid && !!this.inputControl?.touched) ||
|
|
240
|
+
(!this.dropdownControl?.valid && !!this.dropdownControl?.touched);
|
|
234
241
|
}
|
|
235
242
|
getValueLength() {
|
|
236
243
|
return this.inputControl?.value?.toString().length || 0;
|
|
@@ -239,6 +246,9 @@ export class MultiInputComponent {
|
|
|
239
246
|
if (this.maxCharacters) {
|
|
240
247
|
this.inputControl?.addValidators(Validators.maxLength(this.maxCharacters));
|
|
241
248
|
}
|
|
249
|
+
if (this.validators?.length) {
|
|
250
|
+
this.inputControl?.addValidators(this.validators);
|
|
251
|
+
}
|
|
242
252
|
}
|
|
243
253
|
updateDisableState(state) {
|
|
244
254
|
if (state) {
|
|
@@ -249,7 +259,7 @@ export class MultiInputComponent {
|
|
|
249
259
|
}
|
|
250
260
|
}
|
|
251
261
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MultiInputComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }, { token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
252
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: MultiInputComponent, selector: "ui-multi-input", inputs: { itemsList: "itemsList", itemTextField: "itemTextField", itemValueField: "itemValueField", value: "value", disabled: ["disabled", "disabled", booleanAttribute], required: ["required", "required", booleanAttribute], label: "label", placeholder: "placeholder", allowDecimal: ["allowDecimal", "allowDecimal", booleanAttribute], allowNegative: ["allowNegative", "allowNegative", booleanAttribute], applicationTheme: "applicationTheme", errors: "errors", hideBuiltInErrors: ["hideBuiltInErrors", "hideBuiltInErrors", booleanAttribute], hideLabelInErrors: ["hideLabelInErrors", "hideLabelInErrors", booleanAttribute], maxCharacters: "maxCharacters", fullWidth: "fullWidth" }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.theme": "this.applicationTheme", "class.full-width": "this.fullWidth", "class": "this.class" } }, usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"multiInputForm\">\n <div class=\"controls-wrapper\">\n <ui-dropdown\n [hasError]=\"controlHasError\"\n [formControlName]=\"itemValueField\"\n [valueList]=\"itemsList\"\n [textField]=\"itemTextField\"\n [valueField]=\"itemValueField\"\n [showBottomContent]=\"false\"\n [allowClear]=\"false\"\n (closed)=\"markAsTouched(); checkFormErrors()\"\n ></ui-dropdown>\n\n <ui-field\n [hasError]=\"controlHasError\"\n [formControlName]=\"'value'\"\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [hideBuiltInErrors]=\"true\"\n [showBottomContent]=\"false\"\n [allowOnlyDigits]=\"true\"\n [fullWidth]=\"fullWidth\"\n (focusout)=\"markAsTouched(); checkFormErrors()\"\n ></ui-field>\n </div>\n\n <mat-hint class=\"info\" *ngIf=\"!controlHasError && maxCharacters && !errors?.length\">{{ getValueLength() }} / {{ maxCharacters }}</mat-hint>\n\n @if (errors?.length || (ngControl?.errors | hasValidationError)) {\n <mat-hint class=\"error\">\n @for (error of errors; track error) {\n <ui-icon\n [applicationTheme]=\"applicationTheme\"\n [name]=\"applicationTheme === 'classic' ? 'Error' : 'Error-in-line'\"\n ></ui-icon>{{ error }}\n }\n @if ((ngControl?.errors | hasValidationError) && !hideBuiltInErrors) {\n <ui-validation-error\n [touchedOn]=\"!controlHasError\"\n [ngControl]=\"ngControl\"\n [label]=\"hideLabelInErrors ? null : label\"\n ></ui-validation-error>\n }\n </mat-hint>\n }\n\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host.ui-multi-input{position:relative!important}:host.ui-multi-input .ng-untouched,:host.ui-multi-input .ng-touched{width:fit-content}:host.ui-multi-input.full-width .ng-untouched{width:100%}:host.ui-multi-input .controls-wrapper{display:flex}:host.ui-multi-input ::ng-deep ui-validation-error .errors{display:flex}:host.ui-multi-input ::ng-deep .ui-dropdown{max-width:120px}:host.ui-multi-input ::ng-deep .ui-dropdown .mdc-notched-outline__trailing{border-right-color:transparent!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host.ui-multi-input ::ng-deep .ui-dropdown:hover .mdc-notched-outline__trailing,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field-focused .mdc-notched-outline__trailing{border-right-color:#242424}:host.ui-multi-input ::ng-deep .ui-field .mdc-notched-outline__leading{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-form-field-subscript-wrapper{position:absolute!important;left:0!important;top:48px!important}:host.ui-multi-input ::ng-deep .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:0!important;padding-bottom:0!important;min-height:48px!important;align-items:center!important;display:flex!important}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.info{display:block;color:#888;width:100%;text-align:right}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error{display:flex;gap:4px;color:#e02800;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error svg{color:#e02800}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint:before{display:none}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error{color:#e02800;font-size:12px;line-height:16px;letter-spacing:.4px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error .errors{display:flex;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error svg{margin-right:4px;color:#e02800;row-gap:0}:host.ui-multi-input .separator-line{border-left:1px solid var(--mdc-outlined-text-field-outline-color);height:40px;margin:0 12px -7px 8px}:host.ui-multi-input ::ng-deep .mat-mdc-select .mat-mdc-select-arrow-wrapper{display:none}:host.ui-multi-input ::ng-deep .mdc-text-field--outlined{padding-left:12px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i4.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "applicationTheme", "useFullIconName"] }, { kind: "component", type: i5.DropdownComponent, selector: "ui-dropdown", inputs: ["label", "name", "placeholder", "id", "value", "errors", "disabled", "valueList", "allowClear", "allowMultipleSelection", "required", "showBottomContent", "applicationTheme", "hideBuiltInErrors", "hideLabelInErrors", "textField", "valueField", "hasError", "companyColor"], outputs: ["closed", "opened"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.ValidationErrorComponent, selector: "ui-validation-error", inputs: ["ngControl", "touchedOn", "errorMessage", "label", "applicationTheme"] }, { kind: "component", type: i7.FieldComponent, selector: "ui-field", inputs: ["fullWidth", "label", "fieldName", "placeholder", "id", "value", "errors", "disabled", "required", "hintMessage", "type", "updateOnBlur", "allowOnlyDigits", "allowNegative", "showBottomContent", "applicationTheme", "ariaLabel", "loading", "isValid", "maxCharacters", "trimOnBlur", "trimOnSubmit", "maxRows", "hideBuiltInErrors", "hideLabelInErrors", "max", "min", "textareaHeight", "ariaLabelledby", "ariaDescribedby", "hasError"], outputs: ["validateEvent", "fieldBlur"] }, { kind: "pipe", type: i8.HasValidationErrorPipe, name: "hasValidationError" }] }); }
|
|
262
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: MultiInputComponent, selector: "ui-multi-input", inputs: { itemsList: "itemsList", itemTextField: "itemTextField", itemValueField: "itemValueField", value: "value", disabled: ["disabled", "disabled", booleanAttribute], required: ["required", "required", booleanAttribute], label: "label", placeholder: "placeholder", allowDecimal: ["allowDecimal", "allowDecimal", booleanAttribute], allowNegative: ["allowNegative", "allowNegative", booleanAttribute], applicationTheme: "applicationTheme", errors: "errors", hideBuiltInErrors: ["hideBuiltInErrors", "hideBuiltInErrors", booleanAttribute], hideLabelInErrors: ["hideLabelInErrors", "hideLabelInErrors", booleanAttribute], maxCharacters: "maxCharacters", validators: "validators", fullWidth: "fullWidth" }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.theme": "this.applicationTheme", "class.full-width": "this.fullWidth", "class": "this.class" } }, usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"multiInputForm\">\n <div class=\"controls-wrapper\">\n <ui-dropdown\n [hasError]=\"controlHasError\"\n [formControlName]=\"itemValueField\"\n [valueList]=\"itemsList\"\n [textField]=\"itemTextField\"\n [valueField]=\"itemValueField\"\n [showBottomContent]=\"false\"\n [allowClear]=\"false\"\n (closed)=\"markAsTouched(); checkFormErrors()\"\n ></ui-dropdown>\n\n <ui-field\n [hasError]=\"controlHasError\"\n [formControlName]=\"'value'\"\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [hideBuiltInErrors]=\"true\"\n [showBottomContent]=\"false\"\n [allowOnlyDigits]=\"true\"\n [fullWidth]=\"fullWidth\"\n (focusout)=\"markAsTouched(); checkFormErrors()\"\n ></ui-field>\n </div>\n\n <mat-hint class=\"info\" *ngIf=\"!controlHasError && maxCharacters && !errors?.length\">{{ getValueLength() }} / {{ maxCharacters }}</mat-hint>\n\n @if (errors?.length || (ngControl?.errors | hasValidationError)) {\n <mat-hint class=\"error\">\n @for (error of errors; track error) {\n <ui-icon\n [applicationTheme]=\"applicationTheme\"\n [name]=\"applicationTheme === 'classic' ? 'Error' : 'Error-in-line'\"\n ></ui-icon>{{ error }}\n }\n @if ((ngControl?.errors | hasValidationError) && !hideBuiltInErrors) {\n <ui-validation-error\n [touchedOn]=\"!controlHasError\"\n [ngControl]=\"ngControl\"\n [label]=\"hideLabelInErrors ? null : label\"\n ></ui-validation-error>\n }\n </mat-hint>\n }\n\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host.ui-multi-input{position:relative!important}:host.ui-multi-input .ng-untouched,:host.ui-multi-input .ng-touched{width:fit-content}:host.ui-multi-input.full-width .ng-untouched{width:100%}:host.ui-multi-input .controls-wrapper{display:flex}:host.ui-multi-input ::ng-deep ui-validation-error .errors{display:flex}:host.ui-multi-input ::ng-deep .ui-dropdown{max-width:120px}:host.ui-multi-input ::ng-deep .ui-dropdown .mdc-notched-outline__trailing{border-right-color:transparent!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host.ui-multi-input ::ng-deep .ui-dropdown:hover .mdc-notched-outline__trailing,:host.ui-multi-input ::ng-deep .ui-dropdown .mat-mdc-form-field-focused .mdc-notched-outline__trailing{border-right-color:#242424}:host.ui-multi-input ::ng-deep .ui-field .mdc-notched-outline__leading{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.ui-multi-input ::ng-deep .ui-field .mat-mdc-form-field-subscript-wrapper{position:absolute!important;left:0!important;top:48px!important}:host.ui-multi-input ::ng-deep .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:0!important;padding-bottom:0!important;min-height:48px!important;align-items:center!important;display:flex!important}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.info{display:block;color:#888;width:100%;text-align:right}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error{display:flex;gap:4px;color:#e02800;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint.error svg{color:#e02800}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint:before{display:none}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error{color:#e02800;font-size:12px;line-height:16px;letter-spacing:.4px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error .errors{display:flex;align-items:center;padding:4px 0 10px}:host.ui-multi-input ::ng-deep .mat-mdc-form-field-hint ui-validation-error svg{margin-right:4px;color:#e02800;row-gap:0}:host.ui-multi-input .separator-line{border-left:1px solid var(--mdc-outlined-text-field-outline-color);height:40px;margin:0 12px -7px 8px}:host.ui-multi-input ::ng-deep .mat-mdc-select .mat-mdc-select-arrow-wrapper{display:none}:host.ui-multi-input ::ng-deep .mdc-text-field--outlined{padding-left:12px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i4.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "applicationTheme", "useFullIconName"] }, { kind: "component", type: i5.DropdownComponent, selector: "ui-dropdown", inputs: ["label", "name", "placeholder", "id", "value", "errors", "disabled", "valueList", "allowClear", "allowMultipleSelection", "required", "showBottomContent", "applicationTheme", "hideBuiltInErrors", "hideLabelInErrors", "textField", "valueField", "hasError", "companyColor"], outputs: ["closed", "opened"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.ValidationErrorComponent, selector: "ui-validation-error", inputs: ["ngControl", "touchedOn", "errorMessage", "label", "applicationTheme"] }, { kind: "component", type: i7.FieldComponent, selector: "ui-field", inputs: ["fullWidth", "label", "fieldName", "placeholder", "id", "value", "errors", "disabled", "required", "hintMessage", "type", "updateOnBlur", "allowOnlyDigits", "allowNegative", "showBottomContent", "applicationTheme", "ariaLabel", "loading", "isValid", "maxCharacters", "trimOnBlur", "trimOnSubmit", "maxRows", "hideBuiltInErrors", "hideLabelInErrors", "max", "min", "textareaHeight", "ariaLabelledby", "ariaDescribedby", "hasError"], outputs: ["validateEvent", "fieldBlur"] }, { kind: "pipe", type: i8.HasValidationErrorPipe, name: "hasValidationError" }] }); }
|
|
253
263
|
}
|
|
254
264
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MultiInputComponent, decorators: [{
|
|
255
265
|
type: Component,
|
|
@@ -305,6 +315,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
305
315
|
args: [{ transform: booleanAttribute }]
|
|
306
316
|
}], maxCharacters: [{
|
|
307
317
|
type: Input
|
|
318
|
+
}], validators: [{
|
|
319
|
+
type: Input
|
|
308
320
|
}], fullWidth: [{
|
|
309
321
|
type: HostBinding,
|
|
310
322
|
args: ['class.full-width']
|
|
@@ -315,4 +327,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
315
327
|
}], class: [{
|
|
316
328
|
type: HostBinding
|
|
317
329
|
}] } });
|
|
318
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGdvLWNhbm9weS11aS9jb21wb25lbnRzL211bHRpLWlucHV0L211bHRpLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9tdWx0aS1pbnB1dC9tdWx0aS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEdBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFzRCxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFTeEgsTUFBTSxPQUFPLG1CQUFtQjtJQXlCOUI7Ozs7O09BS0c7SUFDSCxJQUFhLEtBQUssQ0FBQyxDQUFrQjtRQUNuQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNoQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBeUhELFlBQ2dDLFNBQW9CLEVBQ3lCLGVBQWlDLEVBQzNGLEVBQWU7UUFGRixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3lCLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUMzRixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBOUpsQzs7Ozs7V0FLRztRQUN3QixjQUFTLEdBQTZDLEVBQUUsQ0FBQztRQUVwRjs7Ozs7V0FLRztRQUN3QixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUU5Qzs7Ozs7V0FLRztRQUN3QixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQWMvQzs7Ozs7V0FLRztRQUNxQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRXpEOzs7OztXQUtHO1FBQ3FDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFekQ7Ozs7O1dBS0c7UUFDTSxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRWxCOzs7OztTQUtDO1FBQ00sZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFMUI7Ozs7O1dBS0c7UUFDcUMsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFNUQ7Ozs7O1dBS0c7UUFDcUMsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFFN0Q7Ozs7O1dBS0c7UUFFTSxxQkFBZ0IsR0FBcUIsT0FBTyxDQUFDO1FBRXREOzs7OztXQUtHO1FBQ00sV0FBTSxHQUFhLEVBQUUsQ0FBQztRQUUvQjs7Ozs7V0FLRztRQUNxQyxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFbEU7Ozs7O1dBS0c7UUFDcUMsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRWxFOzs7OztXQUtHO1FBQ00sa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFFM0I7Ozs7O1dBS0c7UUFFTSxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTFCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFFN0MsVUFBSyxHQUFHLGdCQUFnQixDQUFDO1FBRXhDOztXQUVHO1FBQ0gsYUFBUSxHQUFHLENBQUMsQ0FBTSxFQUFRLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFaEM7O1dBRUc7UUFDSCxZQUFPLEdBQUcsR0FBUyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBR2YsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVULG1CQUFjLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQWtCO1lBQ2pFLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO1FBT0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUMvQyxDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZO2FBQzdCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2FBQzFCLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQTRCLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFFdkIsSUFBSSxDQUFFLFNBQWlCLENBQUMsS0FBSyxJQUFJLENBQUUsU0FBaUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztnQkFDMUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDeEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFckIsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQXNCO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVTLFlBQVksQ0FBQyxLQUFzQjtRQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELElBQWMsb0JBQW9CO1FBQ2hDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBYyxZQUFZO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFRLENBQUM7SUFDakQsQ0FBQztJQUVTLGVBQWU7UUFDdkIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN2RyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFUyxhQUFhO1FBQ3JCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNySixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVTLGtCQUFrQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ2pHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTyxJQUFJLENBQUMsU0FBUztZQUNuQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7bUJBQ2xELENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUM7bUJBQzNELENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUM7WUFDdEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO21CQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07bUJBQ3BCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUM7bUJBQzNELENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUN4RSxDQUFDO0lBRVMsY0FBYztRQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQWM7UUFDdkMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDOytHQTVSVSxtQkFBbUIsdUVBOEpSLG9DQUFvQzttR0E5Si9DLG1CQUFtQixxTEEyQ1YsZ0JBQWdCLHNDQVFoQixnQkFBZ0IsOEZBd0JoQixnQkFBZ0IscURBUWhCLGdCQUFnQix5SEF5QmhCLGdCQUFnQixpRUFRaEIsZ0JBQWdCLGlSQzFJdEMsOG1EQWdEQTs7NEZEMUJhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxnQkFBZ0I7OzBCQWlLdkIsUUFBUTs7MEJBQUksSUFBSTs7MEJBQ2hCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsb0NBQW9DO21FQXZKL0IsU0FBUztzQkFBbkMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBUUUsYUFBYTtzQkFBdkMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBUUUsY0FBYztzQkFBeEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBUVosS0FBSztzQkFBakIsS0FBSztnQkFZa0MsUUFBUTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRRSxRQUFRO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVE3QixLQUFLO3NCQUFiLEtBQUs7Z0JBUUcsV0FBVztzQkFBbkIsS0FBSztnQkFRa0MsWUFBWTtzQkFBbkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRRSxhQUFhO3NCQUFwRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVM3QixnQkFBZ0I7c0JBRHhCLFdBQVc7dUJBQUMsWUFBWTs7c0JBQ3hCLEtBQUs7Z0JBUUcsTUFBTTtzQkFBZCxLQUFLO2dCQVFrQyxpQkFBaUI7c0JBQXhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBUUUsaUJBQWlCO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVE3QixhQUFhO3NCQUFyQixLQUFLO2dCQVNHLFNBQVM7c0JBRGpCLFdBQVc7dUJBQUMsa0JBQWtCOztzQkFDOUIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVRLEtBQUs7c0JBQW5CLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2VsZiwgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVGhlbWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXBwbGljYXRpb24tdGhlbWUubW9kZWwnO1xuaW1wb3J0IHsgTXVsdGlJbnB1dFZhbHVlIH0gZnJvbSAnLi9tdWx0aS1pbnB1dC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLW11bHRpLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL211bHRpLWlucHV0LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIExpc3Qgb2YgaXRlbXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBkcm9wZG93biBsaXN0XG4gICAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsIHwgbnVtYmVyPltdfVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgaXRlbXNMaXN0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsIHwgbnVtYmVyPltdID0gW107XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgZmllbGQgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBkcm9wZG93blxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgaXRlbVRleHRGaWVsZCA9ICcnO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHZhbHVlIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZHJvZGRvd25cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGl0ZW1WYWx1ZUZpZWxkID0gJyc7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgVmFsdWUgb2YgdGhlIG11bHRpIGlucHV0XG4gICAqIEB0eXBlIHtNdWx0aUlucHV0VmFsdWV9XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBzZXQgdmFsdWUodjogTXVsdGlJbnB1dFZhbHVlKSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2O1xuICAgIHRoaXMuYWRkRHJvcGRvd25Db250cm9sKCk7XG4gICAgdGhpcy5tdWx0aUlucHV0Rm9ybS5wYXRjaFZhbHVlKHYpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBEaXNhYmxlcyB0aGUgbXVsdGkgaW5wdXRcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIERlZmluZXMgaWYgdGhlIG11bHRpIGlucHV0IGlzIHJlcXVpcmVkXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBEZWZpbmVzIHRoZSBsYWJlbCBvZiB0aGUgbXVsdGkgaW5wdXRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG5cbiAgICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIERlZmluZXMgdGhlIHBsYWNlaG9sZGVyIG9mIHRoZSBtdWx0aSBpbnB1dFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcblxuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIEFsbG93IGRlY2ltYWwgdmFsdWVzIGluIHRoZSBtdWx0aSBpbnB1dFxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhbGxvd0RlY2ltYWwgPSB0cnVlO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gQWxsb3cgbmVnYXRpdmUgdmFsdWVzIGluIHRoZSBtdWx0aSBpbnB1dFxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhbGxvd05lZ2F0aXZlID0gdHJ1ZTtcblxuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIFRoZSB0aGVtZSBvZiB0aGUgYXBwbGljYXRpb25cbiAgICogQHR5cGUge0FwcGxpY2F0aW9uVGhlbWV9XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIudGhlbWUnKVxuICBASW5wdXQoKSBhcHBsaWNhdGlvblRoZW1lOiBBcHBsaWNhdGlvblRoZW1lID0gJ2xpZ2h0JztcblxuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBlcnJvcnMgb2YgdGhlIG11bHRpIGlucHV0XG4gICAqIEB0eXBlIHtzdHJpbmdbXX1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIEhpZGUgYnVpbHQgaW4gZXJyb3JzIGZvciBSZWFjdGl2ZSBGb3Jtc1xuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoaWRlQnVpbHRJbkVycm9ycyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gSGlkZSBsYWJlbCBpbiBlcnJvcnNcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGlkZUxhYmVsSW5FcnJvcnMgPSBmYWxzZTtcblxuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBtYXhpbXVtIGNoYXJhY3RlcnMgYWxsb3dlZCBpbiB0aGUgbXVsdGkgaW5wdXRcbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIG1heENoYXJhY3RlcnMgPSAwO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHdpZHRoIG9mIHRoZSBtdWx0aSBpbnB1dFxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZnVsbC13aWR0aCcpXG4gIEBJbnB1dCgpIGZ1bGxXaWR0aDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TXVsdGlJbnB1dFZhbHVlPigpO1xuXG4gIEBIb3N0QmluZGluZygpIGNsYXNzID0gJ3VpLW11bHRpLWlucHV0JztcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25DaGFuZ2UgPSAoXzogYW55KTogdm9pZCA9PiB7fTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25Ub3VjaCA9ICgpOiB2b2lkID0+IHt9O1xuXG4gIHByaXZhdGUgX3ZhbHVlOiBNdWx0aUlucHV0VmFsdWUgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBzaG93RXJyb3IgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbXVsdGlJbnB1dEZvcm0gPSB0aGlzLmZiLmdyb3VwPE11bHRpSW5wdXRWYWx1ZT4oe1xuICAgIHZhbHVlOiBudWxsLFxuICB9KTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHByb3RlY3RlZCBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KCdDQU5PUFlVSV9ERUZBVUxUX0FQUExJQ0FUSU9OX1RIRU1FJykgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QXBwVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICkge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGVmYXVsdEFwcFRoZW1lKSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9uVGhlbWUgPSB0aGlzLmRlZmF1bHRBcHBUaGVtZTtcbiAgICB9XG5cbiAgICB0aGlzLm11bHRpSW5wdXRGb3JtLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKGZvcm1WYWx1ZSA9PiB7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VkKGZvcm1WYWx1ZSBhcyBNdWx0aUlucHV0VmFsdWUpO1xuICAgICAgICB0aGlzLmNoZWNrRm9ybUVycm9ycygpO1xuXG4gICAgICAgIGlmICghKGZvcm1WYWx1ZSBhcyBhbnkpLnZhbHVlICYmICEoZm9ybVZhbHVlIGFzIGFueSlbdGhpcy5pdGVtVmFsdWVGaWVsZF0pIHtcbiAgICAgICAgICB0aGlzLnNob3dFcnJvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGREcm9wZG93bkNvbnRyb2woKTtcbiAgICB0aGlzLmFkZFZhbGlkYXRpb24oKTtcblxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAmJiB0aGlzLmhhc1JlcXVpcmVkVmFsaWRhdG9yKSB7XG4gICAgICB0aGlzLmlucHV0Q29udHJvbD8uYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgIHRoaXMuZHJvcGRvd25Db250cm9sPy5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snZGlzYWJsZWQnXSkge1xuICAgICAgdGhpcy51cGRhdGVEaXNhYmxlU3RhdGUodGhpcy5kaXNhYmxlZCk7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogTXVsdGlJbnB1dFZhbHVlKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuYWRkRHJvcGRvd25Db250cm9sKCk7XG4gICAgdGhpcy5tdWx0aUlucHV0Rm9ybS5wYXRjaFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMudXBkYXRlRGlzYWJsZVN0YXRlKGlzRGlzYWJsZWQpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG5cbiAgcHJvdGVjdGVkIHZhbHVlQ2hhbmdlZCh2YWx1ZTogTXVsdGlJbnB1dFZhbHVlKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBNdWx0aUlucHV0VmFsdWUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaGFzUmVxdWlyZWRWYWxpZGF0b3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5uZ0NvbnRyb2wuY29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBkcm9wZG93bkNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sPHN0cmluZyB8IG51bGw+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlJbnB1dEZvcm0uZ2V0KHRoaXMuaXRlbVZhbHVlRmllbGQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBpbnB1dENvbnRyb2woKTogQWJzdHJhY3RDb250cm9sPG51bWJlciB8IG51bGw+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlJbnB1dEZvcm0uZ2V0KCd2YWx1ZScpIGFzIGFueTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGVja0Zvcm1FcnJvcnMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sPy5zZXRFcnJvcnMoeyAuLi50aGlzLmlucHV0Q29udHJvbD8uZXJyb3JzLCAuLi50aGlzLmRyb3Bkb3duQ29udHJvbD8uZXJyb3JzIH0pO1xuICAgIH1cbiAgICB0aGlzLnNob3dFcnJvciA9ICEhKHRoaXMuaW5wdXRDb250cm9sPy5lcnJvcnMgfHwgdGhpcy5kcm9wZG93bkNvbnRyb2w/LmVycm9ycyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0FzVG91Y2hlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgJiYgKCh0aGlzLmlucHV0Q29udHJvbD8udG91Y2hlZCAmJiB0aGlzLmRyb3Bkb3duQ29udHJvbD8udG91Y2hlZCkgfHwgKCF0aGlzLmlucHV0Q29udHJvbD8udmFsdWUgJiYgIXRoaXMuZHJvcGRvd25Db250cm9sPy52YWx1ZSkpKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFkZERyb3Bkb3duQ29udHJvbCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlJbnB1dEZvcm0udmFsdWVbdGhpcy5pdGVtVmFsdWVGaWVsZF0pIHtcbiAgICAgIHRoaXMubXVsdGlJbnB1dEZvcm0uYWRkQ29udHJvbCh0aGlzLml0ZW1WYWx1ZUZpZWxkLCBuZXcgRm9ybUNvbnRyb2wobnVsbCksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIHRoaXMudXBkYXRlRGlzYWJsZVN0YXRlKHRoaXMuZGlzYWJsZWQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgY29udHJvbEhhc0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5nQ29udHJvbFxuICAgICAgPyAodGhpcy5zaG93RXJyb3IgJiYgISF0aGlzLm5nQ29udHJvbC5jb250cm9sPy50b3VjaGVkKVxuICAgICAgICB8fCAoIXRoaXMuaW5wdXRDb250cm9sPy52YWxpZCAmJiAhIXRoaXMuaW5wdXRDb250cm9sPy50b3VjaGVkKVxuICAgICAgICB8fCAoIXRoaXMuZHJvcGRvd25Db250cm9sPy52YWxpZCAmJiAhIXRoaXMuZHJvcGRvd25Db250cm9sPy50b3VjaGVkKVxuICAgICAgOiB0aGlzLnNob3dFcnJvclxuICAgICAgfHwgISF0aGlzLmVycm9ycy5sZW5ndGhcbiAgICAgIHx8ICghdGhpcy5pbnB1dENvbnRyb2w/LnZhbGlkICYmICEhdGhpcy5pbnB1dENvbnRyb2w/LnRvdWNoZWQpXG4gICAgICB8fCAoIXRoaXMuZHJvcGRvd25Db250cm9sPy52YWxpZCAmJiAhIXRoaXMuZHJvcGRvd25Db250cm9sPy50b3VjaGVkKVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldFZhbHVlTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRDb250cm9sPy52YWx1ZT8udG9TdHJpbmcoKS5sZW5ndGggfHwgMDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkVmFsaWRhdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tYXhDaGFyYWN0ZXJzKSB7XG4gICAgICB0aGlzLmlucHV0Q29udHJvbD8uYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heENoYXJhY3RlcnMpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURpc2FibGVTdGF0ZShzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChzdGF0ZSkge1xuICAgICAgdGhpcy5tdWx0aUlucHV0Rm9ybS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tdWx0aUlucHV0Rm9ybS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cIm11bHRpSW5wdXRGb3JtXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250cm9scy13cmFwcGVyXCI+XG4gICAgPHVpLWRyb3Bkb3duXG4gICAgICBbaGFzRXJyb3JdPVwiY29udHJvbEhhc0Vycm9yXCJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbVZhbHVlRmllbGRcIlxuICAgICAgW3ZhbHVlTGlzdF09XCJpdGVtc0xpc3RcIlxuICAgICAgW3RleHRGaWVsZF09XCJpdGVtVGV4dEZpZWxkXCJcbiAgICAgIFt2YWx1ZUZpZWxkXT1cIml0ZW1WYWx1ZUZpZWxkXCJcbiAgICAgIFtzaG93Qm90dG9tQ29udGVudF09XCJmYWxzZVwiXG4gICAgICBbYWxsb3dDbGVhcl09XCJmYWxzZVwiXG4gICAgICAoY2xvc2VkKT1cIm1hcmtBc1RvdWNoZWQoKTsgY2hlY2tGb3JtRXJyb3JzKClcIlxuICAgID48L3VpLWRyb3Bkb3duPlxuXG4gICAgPHVpLWZpZWxkXG4gICAgICBbaGFzRXJyb3JdPVwiY29udHJvbEhhc0Vycm9yXCJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ3ZhbHVlJ1wiXG4gICAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbaGlkZUJ1aWx0SW5FcnJvcnNdPVwidHJ1ZVwiXG4gICAgICBbc2hvd0JvdHRvbUNvbnRlbnRdPVwiZmFsc2VcIlxuICAgICAgW2FsbG93T25seURpZ2l0c109XCJ0cnVlXCJcbiAgICAgIFtmdWxsV2lkdGhdPVwiZnVsbFdpZHRoXCJcbiAgICAgIChmb2N1c291dCk9XCJtYXJrQXNUb3VjaGVkKCk7IGNoZWNrRm9ybUVycm9ycygpXCJcbiAgICA+PC91aS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPG1hdC1oaW50IGNsYXNzPVwiaW5mb1wiICpuZ0lmPVwiIWNvbnRyb2xIYXNFcnJvciAmJiBtYXhDaGFyYWN0ZXJzICYmICFlcnJvcnM/Lmxlbmd0aFwiPnt7IGdldFZhbHVlTGVuZ3RoKCkgfX0gLyB7eyBtYXhDaGFyYWN0ZXJzIH19PC9tYXQtaGludD5cblxuICBAaWYgKGVycm9ycz8ubGVuZ3RoIHx8IChuZ0NvbnRyb2w/LmVycm9ycyB8IGhhc1ZhbGlkYXRpb25FcnJvcikpIHtcbiAgICA8bWF0LWhpbnQgY2xhc3M9XCJlcnJvclwiPlxuICAgICAgQGZvciAoZXJyb3Igb2YgZXJyb3JzOyB0cmFjayBlcnJvcikge1xuICAgICAgICA8dWktaWNvblxuICAgICAgICAgIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICAgICAgICAgIFtuYW1lXT1cImFwcGxpY2F0aW9uVGhlbWUgPT09ICdjbGFzc2ljJyA/ICdFcnJvcicgOiAnRXJyb3ItaW4tbGluZSdcIlxuICAgICAgICA+PC91aS1pY29uPnt7IGVycm9yIH19XG4gICAgICB9XG4gICAgICBAaWYgKChuZ0NvbnRyb2w/LmVycm9ycyB8IGhhc1ZhbGlkYXRpb25FcnJvcikgJiYgIWhpZGVCdWlsdEluRXJyb3JzKSB7XG4gICAgICAgIDx1aS12YWxpZGF0aW9uLWVycm9yXG4gICAgICAgICAgW3RvdWNoZWRPbl09XCIhY29udHJvbEhhc0Vycm9yXCJcbiAgICAgICAgICBbbmdDb250cm9sXT1cIm5nQ29udHJvbFwiXG4gICAgICAgICAgW2xhYmVsXT1cImhpZGVMYWJlbEluRXJyb3JzID8gbnVsbCA6IGxhYmVsXCJcbiAgICAgICAgPjwvdWktdmFsaWRhdGlvbi1lcnJvcj5cbiAgICAgIH1cbiAgICA8L21hdC1oaW50PlxuICB9XG5cbjwvZGl2PlxuIl19
|
|
330
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGdvLWNhbm9weS11aS9jb21wb25lbnRzL211bHRpLWlucHV0L211bHRpLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9tdWx0aS1pbnB1dC9tdWx0aS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEdBRUwsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUlMLFdBQVcsRUFHWCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQVN4QixNQUFNLE9BQU8sbUJBQW1CO0lBeUI5Qjs7Ozs7T0FLRztJQUNILElBQWEsS0FBSyxDQUFDLENBQWtCO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFtSUQsWUFDZ0MsU0FBb0IsRUFDeUIsZUFBaUMsRUFDM0YsRUFBZTtRQUZGLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDeUIsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQzNGLE9BQUUsR0FBRixFQUFFLENBQWE7UUF4S2xDOzs7OztXQUtHO1FBQ3dCLGNBQVMsR0FBNkMsRUFBRSxDQUFDO1FBRXBGOzs7OztXQUtHO1FBQ3dCLGtCQUFhLEdBQUcsRUFB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Z0IsRUFBRTtnQkFVdEMsZ0JBQWdCO3NCQUZmLFdBQVc7dUJBQUMsWUFBWTs7c0JBQ3hCLEtBQUs7Z0JBU0csTUFBTTtzQkFBZCxLQUFLO2dCQVFrQyxpQkFBaUI7c0JBQXhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBUUUsaUJBQWlCO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVE3QixhQUFhO3NCQUFyQixLQUFLO2dCQVFHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBVU4sU0FBUztzQkFGUixXQUFXO3VCQUFDLGtCQUFrQjs7c0JBQzlCLEtBQUs7Z0JBR0ksV0FBVztzQkFBcEIsTUFBTTtnQkFFUSxLQUFLO3NCQUFuQixXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGYsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUJ1aWxkZXIsXG4gIEZvcm1Db250cm9sLFxuICBOZ0NvbnRyb2wsXG4gIFZhbGlkYXRvckZuLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblRoZW1lIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FwcGxpY2F0aW9uLXRoZW1lLm1vZGVsJztcbmltcG9ydCB7IE11bHRpSW5wdXRWYWx1ZSB9IGZyb20gJy4vbXVsdGktaW5wdXQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1aS1tdWx0aS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tdWx0aS1pbnB1dC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IG9mIGl0ZW1zIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZHJvcGRvd24gbGlzdFxuICAgKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVsbCB8IG51bWJlcj5bXX1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGl0ZW1zTGlzdDogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVsbCB8IG51bWJlcj5bXSA9IFtdO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGZpZWxkIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZHJvcGRvd25cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGl0ZW1UZXh0RmllbGQgPSAnJztcblxuICAvKipcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIFRoZSB2YWx1ZSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGRyb2Rkb3duXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBpdGVtVmFsdWVGaWVsZCA9ICcnO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIFZhbHVlIG9mIHRoZSBtdWx0aSBpbnB1dFxuICAgKiBAdHlwZSB7TXVsdGlJbnB1dFZhbHVlfVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgc2V0IHZhbHVlKHY6IE11bHRpSW5wdXRWYWx1ZSkge1xuICAgIHRoaXMuX3ZhbHVlID0gdjtcbiAgICB0aGlzLmFkZERyb3Bkb3duQ29udHJvbCgpO1xuICAgIHRoaXMubXVsdGlJbnB1dEZvcm0ucGF0Y2hWYWx1ZSh2KTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gRGlzYWJsZXMgdGhlIG11bHRpIGlucHV0XG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBEZWZpbmVzIGlmIHRoZSBtdWx0aSBpbnB1dCBpcyByZXF1aXJlZFxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByZXF1aXJlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gRGVmaW5lcyB0aGUgbGFiZWwgb2YgdGhlIG11bHRpIGlucHV0XG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gRGVmaW5lcyB0aGUgcGxhY2Vob2xkZXIgb2YgdGhlIG11bHRpIGlucHV0XG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBNdWx0aUlucHV0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gQWxsb3cgZGVjaW1hbCB2YWx1ZXMgaW4gdGhlIG11bHRpIGlucHV0XG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGFsbG93RGVjaW1hbCA9IHRydWU7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBBbGxvdyBuZWdhdGl2ZSB2YWx1ZXMgaW4gdGhlIG11bHRpIGlucHV0XG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGFsbG93TmVnYXRpdmUgPSB0cnVlO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHRoZW1lIG9mIHRoZSBhcHBsaWNhdGlvblxuICAgKiBAdHlwZSB7QXBwbGljYXRpb25UaGVtZX1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci50aGVtZScpXG4gIEBJbnB1dCgpXG4gIGFwcGxpY2F0aW9uVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUgPSAnbGlnaHQnO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGVycm9ycyBvZiB0aGUgbXVsdGkgaW5wdXRcbiAgICogQHR5cGUge3N0cmluZ1tdfVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gSGlkZSBidWlsdCBpbiBlcnJvcnMgZm9yIFJlYWN0aXZlIEZvcm1zXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhpZGVCdWlsdEluRXJyb3JzID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBIaWRlIGxhYmVsIGluIGVycm9yc1xuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoaWRlTGFiZWxJbkVycm9ycyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIG1heGltdW0gY2hhcmFjdGVycyBhbGxvd2VkIGluIHRoZSBtdWx0aSBpbnB1dFxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgbWF4Q2hhcmFjdGVycyA9IDA7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgdmFsaWRhdG9ycyB0byBhcHBseSB0byBpbnB1dCBmaWVsZFxuICAgKiBAdHlwZSB7VmFsaWRhdG9yc1tdfVxuICAgKiBAbWVtYmVyb2YgTXVsdGlJbnB1dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHdpZHRoIG9mIHRoZSBtdWx0aSBpbnB1dFxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIE11bHRpSW5wdXRDb21wb25lbnRcbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZnVsbC13aWR0aCcpXG4gIEBJbnB1dCgpXG4gIGZ1bGxXaWR0aDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TXVsdGlJbnB1dFZhbHVlPigpO1xuXG4gIEBIb3N0QmluZGluZygpIGNsYXNzID0gJ3VpLW11bHRpLWlucHV0JztcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25DaGFuZ2UgPSAoXzogYW55KTogdm9pZCA9PiB7fTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25Ub3VjaCA9ICgpOiB2b2lkID0+IHt9O1xuXG4gIHByaXZhdGUgX3ZhbHVlOiBNdWx0aUlucHV0VmFsdWUgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBzaG93RXJyb3IgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbXVsdGlJbnB1dEZvcm0gPSB0aGlzLmZiLmdyb3VwPE11bHRpSW5wdXRWYWx1ZT4oe1xuICAgIHZhbHVlOiBudWxsLFxuICB9KTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHByb3RlY3RlZCBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KCdDQU5PUFlVSV9ERUZBVUxUX0FQUExJQ0FUSU9OX1RIRU1FJykgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QXBwVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXJcbiAgKSB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZWZhdWx0QXBwVGhlbWUpIHtcbiAgICAgIHRoaXMuYXBwbGljYXRpb25UaGVtZSA9IHRoaXMuZGVmYXVsdEFwcFRoZW1lO1xuICAgIH1cblxuICAgIHRoaXMubXVsdGlJbnB1dEZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZShmb3JtVmFsdWUgPT4ge1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZWQoZm9ybVZhbHVlIGFzIE11bHRpSW5wdXRWYWx1ZSk7XG4gICAgICB0aGlzLmNoZWNrRm9ybUVycm9ycygpO1xuXG4gICAgICBpZiAoIShmb3JtVmFsdWUgYXMgYW55KS52YWx1ZSAmJiAhKGZvcm1WYWx1ZSBhcyBhbnkpW3RoaXMuaXRlbVZhbHVlRmllbGRdKSB7XG4gICAgICAgIHRoaXMuc2hvd0Vycm9yID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWRkRHJvcGRvd25Db250cm9sKCk7XG4gICAgdGhpcy5hZGRWYWxpZGF0aW9uKCk7XG5cbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgJiYgdGhpcy5oYXNSZXF1aXJlZFZhbGlkYXRvcikge1xuICAgICAgdGhpcy5pbnB1dENvbnRyb2w/LmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICB0aGlzLmRyb3Bkb3duQ29udHJvbD8uYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2Rpc2FibGVkJ10pIHtcbiAgICAgIHRoaXMudXBkYXRlRGlzYWJsZVN0YXRlKHRoaXMuZGlzYWJsZWQpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IE11bHRpSW5wdXRWYWx1ZSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmFkZERyb3Bkb3duQ29udHJvbCgpO1xuICAgIHRoaXMubXVsdGlJbnB1dEZvcm0ucGF0Y2hWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLnVwZGF0ZURpc2FibGVTdGF0ZShpc0Rpc2FibGVkKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIHByb3RlY3RlZCB2YWx1ZUNoYW5nZWQodmFsdWU6IE11bHRpSW5wdXRWYWx1ZSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgdmFsdWUoKTogTXVsdGlJbnB1dFZhbHVlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGhhc1JlcXVpcmVkVmFsaWRhdG9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMubmdDb250cm9sLmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgZHJvcGRvd25Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbDxzdHJpbmcgfCBudWxsPiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLm11bHRpSW5wdXRGb3JtLmdldCh0aGlzLml0ZW1WYWx1ZUZpZWxkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaW5wdXRDb250cm9sKCk6IEFic3RyYWN0Q29udHJvbDxudW1iZXIgfCBudWxsPiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLm11bHRpSW5wdXRGb3JtLmdldCgndmFsdWUnKSBhcyBhbnk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tGb3JtRXJyb3JzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbD8uc2V0RXJyb3JzKHsgLi4udGhpcy5pbnB1dENvbnRyb2w/LmVycm9ycywgLi4udGhpcy5kcm9wZG93bkNvbnRyb2w/LmVycm9ycyB9KTtcbiAgICB9XG4gICAgdGhpcy5zaG93RXJyb3IgPSAhISh0aGlzLmlucHV0Q29udHJvbD8uZXJyb3JzIHx8IHRoaXMuZHJvcGRvd25Db250cm9sPy5lcnJvcnMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtBc1RvdWNoZWQoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5uZ0NvbnRyb2wgJiZcbiAgICAgICgodGhpcy5pbnB1dENvbnRyb2w/LnRvdWNoZWQgJiYgdGhpcy5kcm9wZG93bkNvbnRyb2w/LnRvdWNoZWQpIHx8XG4gICAgICAgICghdGhpcy5pbnB1dENvbnRyb2w/LnZhbHVlICYmICF0aGlzLmRyb3Bkb3duQ29udHJvbD8udmFsdWUpKVxuICAgICkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbD8ubWFya0FzVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhZGREcm9wZG93bkNvbnRyb2woKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpSW5wdXRGb3JtLnZhbHVlW3RoaXMuaXRlbVZhbHVlRmllbGRdKSB7XG4gICAgICB0aGlzLm11bHRpSW5wdXRGb3JtLmFkZENvbnRyb2wodGhpcy5pdGVtVmFsdWVGaWVsZCwgbmV3IEZvcm1Db250cm9sKG51bGwpLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB0aGlzLnVwZGF0ZURpc2FibGVTdGF0ZSh0aGlzLmRpc2FibGVkKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGNvbnRyb2xIYXNFcnJvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2xcbiAgICAgID8gKHRoaXMuc2hvd0Vycm9yICYmICEhdGhpcy5uZ0NvbnRyb2wuY29udHJvbD8udG91Y2hlZCkgfHxcbiAgICAgICAgICAoIXRoaXMuaW5wdXRDb250cm9sPy52YWxpZCAmJiAhIXRoaXMuaW5wdXRDb250cm9sPy50b3VjaGVkKSB8fFxuICAgICAgICAgICghdGhpcy5kcm9wZG93bkNvbnRyb2w/LnZhbGlkICYmICEhdGhpcy5kcm9wZG93bkNvbnRyb2w/LnRvdWNoZWQpXG4gICAgICA6IHRoaXMuc2hvd0Vycm9yIHx8XG4gICAgICAgICAgISF0aGlzLmVycm9ycy5sZW5ndGggfHxcbiAgICAgICAgICAoIXRoaXMuaW5wdXRDb250cm9sPy52YWxpZCAmJiAhIXRoaXMuaW5wdXRDb250cm9sPy50b3VjaGVkKSB8fFxuICAgICAgICAgICghdGhpcy5kcm9wZG93bkNvbnRyb2w/LnZhbGlkICYmICEhdGhpcy5kcm9wZG93bkNvbnRyb2w/LnRvdWNoZWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFZhbHVlTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRDb250cm9sPy52YWx1ZT8udG9TdHJpbmcoKS5sZW5ndGggfHwgMDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkVmFsaWRhdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tYXhDaGFyYWN0ZXJzKSB7XG4gICAgICB0aGlzLmlucHV0Q29udHJvbD8uYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heENoYXJhY3RlcnMpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudmFsaWRhdG9ycz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmlucHV0Q29udHJvbD8uYWRkVmFsaWRhdG9ycyh0aGlzLnZhbGlkYXRvcnMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRGlzYWJsZVN0YXRlKHN0YXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHN0YXRlKSB7XG4gICAgICB0aGlzLm11bHRpSW5wdXRGb3JtLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm11bHRpSW5wdXRGb3JtLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwibXVsdGlJbnB1dEZvcm1cIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRyb2xzLXdyYXBwZXJcIj5cbiAgICA8dWktZHJvcGRvd25cbiAgICAgIFtoYXNFcnJvcl09XCJjb250cm9sSGFzRXJyb3JcIlxuICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJpdGVtVmFsdWVGaWVsZFwiXG4gICAgICBbdmFsdWVMaXN0XT1cIml0ZW1zTGlzdFwiXG4gICAgICBbdGV4dEZpZWxkXT1cIml0ZW1UZXh0RmllbGRcIlxuICAgICAgW3ZhbHVlRmllbGRdPVwiaXRlbVZhbHVlRmllbGRcIlxuICAgICAgW3Nob3dCb3R0b21Db250ZW50XT1cImZhbHNlXCJcbiAgICAgIFthbGxvd0NsZWFyXT1cImZhbHNlXCJcbiAgICAgIChjbG9zZWQpPVwibWFya0FzVG91Y2hlZCgpOyBjaGVja0Zvcm1FcnJvcnMoKVwiXG4gICAgPjwvdWktZHJvcGRvd24+XG5cbiAgICA8dWktZmllbGRcbiAgICAgIFtoYXNFcnJvcl09XCJjb250cm9sSGFzRXJyb3JcIlxuICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCIndmFsdWUnXCJcbiAgICAgIFtsYWJlbF09XCJsYWJlbFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFtoaWRlQnVpbHRJbkVycm9yc109XCJ0cnVlXCJcbiAgICAgIFtzaG93Qm90dG9tQ29udGVudF09XCJmYWxzZVwiXG4gICAgICBbYWxsb3dPbmx5RGlnaXRzXT1cInRydWVcIlxuICAgICAgW2Z1bGxXaWR0aF09XCJmdWxsV2lkdGhcIlxuICAgICAgKGZvY3Vzb3V0KT1cIm1hcmtBc1RvdWNoZWQoKTsgY2hlY2tGb3JtRXJyb3JzKClcIlxuICAgID48L3VpLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8bWF0LWhpbnQgY2xhc3M9XCJpbmZvXCIgKm5nSWY9XCIhY29udHJvbEhhc0Vycm9yICYmIG1heENoYXJhY3RlcnMgJiYgIWVycm9ycz8ubGVuZ3RoXCI+e3sgZ2V0VmFsdWVMZW5ndGgoKSB9fSAvIHt7IG1heENoYXJhY3RlcnMgfX08L21hdC1oaW50PlxuXG4gIEBpZiAoZXJyb3JzPy5sZW5ndGggfHwgKG5nQ29udHJvbD8uZXJyb3JzIHwgaGFzVmFsaWRhdGlvbkVycm9yKSkge1xuICAgIDxtYXQtaGludCBjbGFzcz1cImVycm9yXCI+XG4gICAgICBAZm9yIChlcnJvciBvZiBlcnJvcnM7IHRyYWNrIGVycm9yKSB7XG4gICAgICAgIDx1aS1pY29uXG4gICAgICAgICAgW2FwcGxpY2F0aW9uVGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZVwiXG4gICAgICAgICAgW25hbWVdPVwiYXBwbGljYXRpb25UaGVtZSA9PT0gJ2NsYXNzaWMnID8gJ0Vycm9yJyA6ICdFcnJvci1pbi1saW5lJ1wiXG4gICAgICAgID48L3VpLWljb24+e3sgZXJyb3IgfX1cbiAgICAgIH1cbiAgICAgIEBpZiAoKG5nQ29udHJvbD8uZXJyb3JzIHwgaGFzVmFsaWRhdGlvbkVycm9yKSAmJiAhaGlkZUJ1aWx0SW5FcnJvcnMpIHtcbiAgICAgICAgPHVpLXZhbGlkYXRpb24tZXJyb3JcbiAgICAgICAgICBbdG91Y2hlZE9uXT1cIiFjb250cm9sSGFzRXJyb3JcIlxuICAgICAgICAgIFtuZ0NvbnRyb2xdPVwibmdDb250cm9sXCJcbiAgICAgICAgICBbbGFiZWxdPVwiaGlkZUxhYmVsSW5FcnJvcnMgPyBudWxsIDogbGFiZWxcIlxuICAgICAgICA+PC91aS12YWxpZGF0aW9uLWVycm9yPlxuICAgICAgfVxuICAgIDwvbWF0LWhpbnQ+XG4gIH1cblxuPC9kaXY+XG4iXX0=
|