@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.
@@ -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
- * @description Defines the placeholder of the multi input
62
- * @type {string}
63
- * @memberof MultiInputComponent
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 && this.variant !== 'educative' && this.variant !== 'premium' && this.variant !== 'ai' && this.variant !== 'actionDriver' && this.variant !== 'neutral';
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.variant !== 'educative' && this.variant !== 'premium' && this.variant !== 'ai' && this.variant !== 'actionDriver' && this.variant !== 'neutral') {
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-color:transparent}.card-container[theme=dark].ai:before,.card-container[theme=light].ai:before{z-index:-1;content:\"\";width:calc(100% + 8px);height:calc(100% + 8px);top:-4px;left:-4px;position:absolute;background:#0165fc;background:linear-gradient(129deg,#0165fc 12%,#d410aa 88%);border-radius:11px}.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:focus:not(:focus-visible),.card-container[theme=light].state: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 }); }
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-color:transparent}.card-container[theme=dark].ai:before,.card-container[theme=light].ai:before{z-index:-1;content:\"\";width:calc(100% + 8px);height:calc(100% + 8px);top:-4px;left:-4px;position:absolute;background:#0165fc;background:linear-gradient(129deg,#0165fc 12%,#d410aa 88%);border-radius:11px}.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:focus:not(:focus-visible),.card-container[theme=light].state: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"] }]
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Z28tY2Fub3B5LXVpL2NvbXBvbmVudHMvY2FyZC9jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9jYXJkL2NhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFXdkIsTUFBTSxPQUFPLGFBQWE7SUEwQnhCOzs7OztPQUtHO0lBQ0gsSUFBYSxNQUFNLENBQUMsTUFBZ0I7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBbUJELFlBQzZFLGVBQWlDLEVBQ3BHLFlBQTBCO1FBRHlDLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUNwRyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQXREcEM7Ozs7O1dBS0c7UUFDTSxTQUFJLEdBQWEsUUFBUSxDQUFDO1FBRW5DOzs7OztXQUtHO1FBQ00sWUFBTyxHQUFnQixTQUFTLENBQUM7UUFFMUM7Ozs7OztXQU1HO1FBQ00scUJBQWdCLEdBQXFCLE9BQU8sQ0FBQztRQVl0RDs7Ozs7V0FLRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFMUI7O1dBRUc7UUFDTyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFJckQsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQU1YLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUN2RixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBYSxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLFNBQVMsRUFBRSxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLDJHQUEyRztRQUMzRyxPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxjQUFjLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUM7SUFDL0ssQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssY0FBYyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDekosSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFFSCxDQUFDOytHQXJGVSxhQUFhLGtCQXNERixvQ0FBb0M7bUdBdEQvQyxhQUFhLDJPQ3JCMUIsZ2pCQWlCQTs7NEZESWEsYUFBYTtrQkFOekIsU0FBUzsrQkFDRSxTQUFTLG1CQUdGLHVCQUF1QixDQUFDLE1BQU07OzBCQXdENUMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxvQ0FBb0M7b0VBL0NqRCxJQUFJO3NCQUFaLEtBQUs7Z0JBUUcsT0FBTztzQkFBZixLQUFLO2dCQVNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFRTyxNQUFNO3NCQUFsQixLQUFLO2dCQVVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FyZFNpemUsIENhcmRWYXJpYW50IH0gZnJvbSAnLi9jYXJkLm1vZGVsJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVGhlbWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXBwbGljYXRpb24tdGhlbWUubW9kZWwnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1aS1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuICAvKipcbiAgICogQ2FyZCBzaXplLiBEZWZhdWx0cyBcIm1lZGl1bVwiLlxuICAgKlxuICAgKiBAdHlwZSB7Q2FyZFNpemV9XG4gICAqIEBtZW1iZXJvZiBDYXJkQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBzaXplOiBDYXJkU2l6ZSA9ICdtZWRpdW0nO1xuXG4gIC8qKlxuICAgKiBDYXJkIHZhcmlhbnRzLiBEZWZhdWx0cyBcImRlZmF1bHRcIi5cbiAgICpcbiAgICogQHR5cGUge0NhcmRWYXJpYW50fVxuICAgKiBAbWVtYmVyb2YgQ2FyZENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgdmFyaWFudDogQ2FyZFZhcmlhbnQgPSAnZGVmYXVsdCc7XG5cbiAgLyoqXG4gICAqXG4gICAqIERlZmluZXMgdGhlIGFwcGxpY2F0aW9uIHRoZW1lXG4gICAqXG4gICAqIEB0eXBlIHtBcHBsaWNhdGlvblRoZW1lfVxuICAgKiBAbWVtYmVyb2YgQ2FyZENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYXBwbGljYXRpb25UaGVtZTogQXBwbGljYXRpb25UaGVtZSA9ICdsaWdodCc7XG5cbiAgLyoqXG4gICAqIFNob3cgZXJyb3JzIGJlbG93IGNhcmQuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmdbXX1cbiAgICogQG1lbWJlcm9mIENhcmRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHNldCBlcnJvcnMoZXJyb3JzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuc2FmZUVycm9ycyA9IGVycm9ycz8uZmlsdGVyKEJvb2xlYW4pLm1hcChlcnJvciA9PiB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChlcnJvcikpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmtzIGNhcmQgYXMgc2VsZWN0ZWRcbiAgICpcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBtZW1iZXJvZiBDYXJkQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBzZWxlY3RlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGNhcmQgaXMgYmVpbmcgc2VsZWN0ZWRcbiAgICovXG4gIEBPdXRwdXQoKSBjYXJkU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgc2FmZUVycm9yczogU2FmZUh0bWxbXTtcblxuICBjbGFzc2VzID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdCgnQ0FOT1BZVUlfREVGQVVMVF9BUFBMSUNBVElPTl9USEVNRScpIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEFwcFRoZW1lOiBBcHBsaWNhdGlvblRoZW1lLFxuICAgIHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcbiAgKSB7XG4gICAgaWYgKGRlZmF1bHRBcHBUaGVtZSkge1xuICAgICAgdGhpcy5hcHBsaWNhdGlvblRoZW1lID0gZGVmYXVsdEFwcFRoZW1lO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuY2xhc3NlcyA9IGBjYXJkLXNpemUtJHt0aGlzLnNpemUgPz8gJ21lZGl1bSd9ICR7dGhpcy5jYXJkVmFyaWFudCA/PyAnZGVmYXVsdCd9YDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2xhc3NlcyA9IGBjYXJkLXNpemUtJHt0aGlzLnNpemUgPz8gJ21lZGl1bSd9ICR7dGhpcy5jYXJkVmFyaWFudCA/PyAnZGVmYXVsdCd9YDtcbiAgfVxuXG4gIGdldCBjYXJkVmFyaWFudCgpOiBDYXJkVmFyaWFudCB7XG4gICAgcmV0dXJuIHRoaXMuc2FmZUVycm9ycz8ubGVuZ3RoID8gJ2Vycm9yJyA6IHRoaXMudmFyaWFudDtcbiAgfVxuXG4gIGdldCBpc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIC8vIGVkdWNhdGl2ZSwgcHJlbWl1bSwgYWksIGFjdGlvbkRyaXZlciBhbmQgbmV1dHJhbCB2YXJpYW50cyBzaG91bGRuJ3QgaGF2ZSBhbnkgc2VsZWN0ZWQvaW50ZXJhY3RpdmUgc3RhdGVzXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQgJiYgdGhpcy52YXJpYW50ICE9PSAnZWR1Y2F0aXZlJyAmJiB0aGlzLnZhcmlhbnQgIT09ICdwcmVtaXVtJyAmJiB0aGlzLnZhcmlhbnQgIT09ICdhaScgJiYgdGhpcy52YXJpYW50ICE9PSAnYWN0aW9uRHJpdmVyJyAmJiB0aGlzLnZhcmlhbnQgIT09ICduZXV0cmFsJztcbiAgfVxuXG4gIHNlbGVjdENhcmQoKSB7XG4gICAgaWYgKHRoaXMudmFyaWFudCAhPT0gJ2VkdWNhdGl2ZScgJiYgdGhpcy52YXJpYW50ICE9PSAncHJlbWl1bScgJiYgdGhpcy52YXJpYW50ICE9PSAnYWknICYmIHRoaXMudmFyaWFudCAhPT0gJ2FjdGlvbkRyaXZlcicgJiYgdGhpcy52YXJpYW50ICE9PSAnbmV1dHJhbCcpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5jYXJkU2VsZWN0ZWQuZW1pdCh0aGlzLnNlbGVjdGVkKTtcbiAgICB9XG5cbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImNhcmQtY29udGFpbmVyXCJcbiAgKGtleWRvd24uZW50ZXIpPVwic2VsZWN0Q2FyZCgpXCJcbiAgKGtleWRvd24uc3BhY2UpPVwic2VsZWN0Q2FyZCgpXCJcbiAgKGNsaWNrKT1cInNlbGVjdENhcmQoKVwiXG4gIFtuZ0NsYXNzXT1cIltjbGFzc2VzLCBpc1NlbGVjdGVkID8gJ3NlbGVjdGVkJyA6ICcnXVwiXG4gIFthdHRyLnRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICB0YWJpbmRleD1cIjBcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJlcnJvcnNcIiAqbmdJZj1cInNhZmVFcnJvcnM/Lmxlbmd0aFwiPlxuICA8ZGl2IGNsYXNzPVwiZXJyb3JcIiAqbmdGb3I9XCJsZXQgZXJyb3Igb2Ygc2FmZUVycm9yc1wiPlxuICAgIDx1aS1pY29uIFtzaXplXT1cIicyNCdcIiBbYXBwbGljYXRpb25UaGVtZV09XCJhcHBsaWNhdGlvblRoZW1lXCIgW25hbWVdPVwiJ0Vycm9yJ1wiPjwvdWktaWNvbj5cbiAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImVycm9yXCI+PC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
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
- * @description Defines the placeholder of the multi input
74
- * @type {string}
75
- * @memberof MultiInputComponent
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 && ((this.inputControl?.touched && this.dropdownControl?.touched) || (!this.inputControl?.value && !this.dropdownControl?.value))) {
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
- || (!this.inputControl?.valid && !!this.inputControl?.touched)
229
- || (!this.dropdownControl?.valid && !!this.dropdownControl?.touched)
230
- : this.showError
231
- || !!this.errors.length
232
- || (!this.inputControl?.valid && !!this.inputControl?.touched)
233
- || (!this.dropdownControl?.valid && !!this.dropdownControl?.touched);
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=