verben-ng-ui 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/Verbena-input/verbena-input.component.mjs +93 -27
- package/esm2022/lib/components/card-data-view/card-data-view.component.mjs +59 -5
- package/esm2022/lib/components/card-data-view/card-data.mjs +3 -1
- package/esm2022/lib/components/card-data-view/left-card-data/left-card-data.component.mjs +33 -3
- package/esm2022/lib/components/card-data-view/right-card-data-view/right-card-data-view.component.mjs +26 -5
- package/esm2022/lib/components/chip/chip.component.mjs +1 -1
- package/esm2022/lib/components/data-export/data-export.component.mjs +158 -90
- package/esm2022/lib/components/data-export/data-export.module.mjs +34 -5
- package/esm2022/lib/components/data-export/data-export.service.mjs +12 -5
- package/esm2022/lib/components/data-export/data-export.types.mjs +11 -2
- package/esm2022/lib/components/data-table/data-table.component.mjs +89 -39
- package/esm2022/lib/components/data-table/style.types.mjs +1 -1
- package/esm2022/lib/components/data-view/data-view.component.mjs +1 -1
- package/esm2022/lib/components/date-picker/date-picker.component.mjs +1 -1
- package/esm2022/lib/components/drop-down/drop-down-item/drop-down-item.component.mjs +1 -1
- package/esm2022/lib/components/drop-down/drop-down.component.mjs +2 -2
- package/esm2022/lib/components/notification/notification.component.mjs +82 -5
- package/esm2022/lib/components/notification/notification.module.mjs +5 -4
- package/esm2022/lib/components/sort-table/sort-table.component.mjs +1 -1
- package/esm2022/lib/components/svg/svg.component.mjs +41 -4
- package/esm2022/lib/components/table-filter/table-filter.component.mjs +3 -15
- package/esm2022/lib/components/tooltip/tooltip.component.mjs +3 -3
- package/esm2022/lib/components/verben-dialogue/verben-dialogue.component.mjs +107 -0
- package/esm2022/lib/components/verben-dialogue/verben-dialogue.module.mjs +20 -0
- package/esm2022/lib/components/verben-mail/verben-mail.component.mjs +1 -1
- package/esm2022/lib/components/visible-column/visible-column.component.mjs +1 -1
- package/esm2022/lib/verbena-button/verbena-button.component.mjs +14 -5
- package/esm2022/lib/verbena-switch/verbena-switch.component.mjs +15 -3
- package/esm2022/lib/verbena-textarea/verbena-textarea.component.mjs +2 -2
- package/esm2022/public-api.mjs +4 -1
- package/fesm2022/verben-ng-ui.mjs +935 -373
- package/fesm2022/verben-ng-ui.mjs.map +1 -1
- package/lib/Verbena-input/verbena-input.component.d.ts +20 -6
- package/lib/components/card-data-view/card-data-view.component.d.ts +9 -1
- package/lib/components/card-data-view/card-data.d.ts +2 -0
- package/lib/components/card-data-view/left-card-data/left-card-data.component.d.ts +9 -1
- package/lib/components/card-data-view/right-card-data-view/right-card-data-view.component.d.ts +8 -1
- package/lib/components/data-export/data-export.component.d.ts +49 -19
- package/lib/components/data-export/data-export.module.d.ts +6 -1
- package/lib/components/data-export/data-export.types.d.ts +10 -1
- package/lib/components/data-table/data-table.component.d.ts +10 -3
- package/lib/components/data-table/style.types.d.ts +33 -9
- package/lib/components/notification/notification.component.d.ts +17 -17
- package/lib/components/notification/notification.module.d.ts +2 -1
- package/lib/components/svg/svg.component.d.ts +5 -3
- package/lib/components/table-filter/table-filter.component.d.ts +0 -2
- package/lib/components/tooltip/tooltip.component.d.ts +2 -2
- package/lib/components/verben-dialogue/verben-dialogue.component.d.ts +32 -0
- package/lib/components/verben-dialogue/verben-dialogue.module.d.ts +10 -0
- package/lib/verbena-button/verbena-button.component.d.ts +6 -3
- package/lib/verbena-switch/verbena-switch.component.d.ts +5 -1
- package/package.json +1 -1
- package/public-api.d.ts +3 -0
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter, forwardRef } from '@angular/core';
|
|
2
|
-
import {
|
|
1
|
+
import { Component, Input, Output, EventEmitter, Optional, Self, Inject, forwardRef } from '@angular/core';
|
|
2
|
+
import { NgControl } from '@angular/forms';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
5
|
import * as i2 from "@angular/forms";
|
|
6
6
|
import * as i3 from "../components/tooltip/tooltip.component";
|
|
7
7
|
export class VerbenaInputComponent {
|
|
8
|
+
ngControl;
|
|
8
9
|
label = '';
|
|
9
10
|
placeHolder = '';
|
|
10
11
|
required = false;
|
|
12
|
+
svgPosition = 'left';
|
|
11
13
|
minLength;
|
|
12
14
|
maxLength;
|
|
13
15
|
type = 'text';
|
|
14
16
|
bgColor = '#f9f9f9';
|
|
15
|
-
border = '
|
|
17
|
+
border = '';
|
|
16
18
|
borderRadius = '5px';
|
|
17
19
|
textColor = '#333';
|
|
18
20
|
value = '';
|
|
@@ -24,9 +26,17 @@ export class VerbenaInputComponent {
|
|
|
24
26
|
showBorder = true;
|
|
25
27
|
showErrorMessage = true;
|
|
26
28
|
errorMessageColor = 'red';
|
|
27
|
-
errorBorderColor
|
|
29
|
+
errorBorderColor;
|
|
28
30
|
errorPosition = 'bottom';
|
|
31
|
+
svg = '';
|
|
32
|
+
svgWidth = 20;
|
|
33
|
+
svgHeight = 20;
|
|
34
|
+
svgColor = '';
|
|
29
35
|
capitalization = 'none';
|
|
36
|
+
// New input properties to expose custom classes
|
|
37
|
+
inputContainerClass = ''; // Expose custom class for input container
|
|
38
|
+
inputFieldClass = ''; // Expose custom class for input field
|
|
39
|
+
inputWrapperClass = ''; // Expose custom class for input wrapper
|
|
30
40
|
// New property for custom error messages
|
|
31
41
|
customErrorMessages = {};
|
|
32
42
|
valueChange = new EventEmitter();
|
|
@@ -34,17 +44,36 @@ export class VerbenaInputComponent {
|
|
|
34
44
|
inputId = '';
|
|
35
45
|
onChange = () => { };
|
|
36
46
|
onTouch = () => { };
|
|
47
|
+
isInvalid = false;
|
|
48
|
+
constructor(ngControl) {
|
|
49
|
+
this.ngControl = ngControl;
|
|
50
|
+
if (this.ngControl) {
|
|
51
|
+
this.ngControl.valueAccessor = this;
|
|
52
|
+
this.ngControl?.statusChanges?.subscribe((status) => {
|
|
53
|
+
this.isInvalid = this.ngControl.touched
|
|
54
|
+
? status === 'INVALID' && this.ngControl.touched
|
|
55
|
+
: false;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
37
59
|
ngOnInit() {
|
|
38
60
|
this.inputId = `verbena-input-${Math.random().toString(36).substr(2, 9)}`;
|
|
39
61
|
}
|
|
40
62
|
onInput(event) {
|
|
41
63
|
const target = event.target;
|
|
42
|
-
this.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
64
|
+
if (this.type === 'file' && target.files) {
|
|
65
|
+
const files = target.files;
|
|
66
|
+
this.onChange(files);
|
|
67
|
+
this.valueChange.emit(files);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
this.value = target.value.trim();
|
|
71
|
+
this.value = this.applyCapitalization(this.value, this.capitalization);
|
|
72
|
+
this.validate();
|
|
73
|
+
const sanitizedValue = this.sanitizeValue(this.value);
|
|
74
|
+
this.onChange(sanitizedValue);
|
|
75
|
+
this.valueChange.emit(sanitizedValue);
|
|
76
|
+
}
|
|
48
77
|
}
|
|
49
78
|
applyCapitalization(value, format) {
|
|
50
79
|
switch (format) {
|
|
@@ -66,14 +95,17 @@ export class VerbenaInputComponent {
|
|
|
66
95
|
this.errorMessage = '';
|
|
67
96
|
if (this.required && !this.value) {
|
|
68
97
|
this.errorMessage = this.customErrorMessages.required || 'This field is required.';
|
|
98
|
+
this.isInvalid = true;
|
|
69
99
|
return;
|
|
70
100
|
}
|
|
71
101
|
if (this.minLength && this.value.length < this.minLength) {
|
|
72
102
|
this.errorMessage = this.customErrorMessages.minLength || `Minimum length is ${this.minLength}.`;
|
|
103
|
+
this.isInvalid = true;
|
|
73
104
|
return;
|
|
74
105
|
}
|
|
75
106
|
if (this.maxLength && this.value.length > this.maxLength) {
|
|
76
107
|
this.errorMessage = this.customErrorMessages.maxLength || `Maximum length is ${this.maxLength}.`;
|
|
108
|
+
this.isInvalid = true;
|
|
77
109
|
return;
|
|
78
110
|
}
|
|
79
111
|
const sanitizedValue = this.sanitizeValue(this.value);
|
|
@@ -81,28 +113,51 @@ export class VerbenaInputComponent {
|
|
|
81
113
|
if (['integer', 'number', 'decimal'].includes(this.type)) {
|
|
82
114
|
if (this.min !== undefined && numericValue < this.min) {
|
|
83
115
|
this.errorMessage = this.customErrorMessages.minValue || `Minimum value is ${this.min}.`;
|
|
116
|
+
this.isInvalid = true;
|
|
84
117
|
return;
|
|
85
118
|
}
|
|
86
119
|
else if (this.max !== undefined && numericValue > this.max) {
|
|
87
120
|
this.errorMessage = this.customErrorMessages.maxValue || `Maximum value is ${this.max}.`;
|
|
121
|
+
this.isInvalid = true;
|
|
88
122
|
return;
|
|
89
123
|
}
|
|
90
124
|
}
|
|
91
125
|
if (this.type === 'integer' && !/^\d+$/.test(this.value)) {
|
|
92
126
|
this.errorMessage = this.customErrorMessages.integer || 'Please enter a valid integer.';
|
|
127
|
+
this.isInvalid = true;
|
|
93
128
|
return;
|
|
94
129
|
}
|
|
95
130
|
if (this.type === 'number' && !/^\d+(\.\d+)?$/.test(this.value)) {
|
|
96
131
|
this.errorMessage = this.customErrorMessages.number || 'Please enter a valid number.';
|
|
132
|
+
this.isInvalid = true;
|
|
97
133
|
return;
|
|
98
134
|
}
|
|
99
135
|
if (this.type === 'decimal' && !/^\d+(\.\d+)?$/.test(this.value)) {
|
|
100
136
|
this.errorMessage = this.customErrorMessages.decimal || 'Please enter a valid decimal.';
|
|
137
|
+
this.isInvalid = true;
|
|
101
138
|
return;
|
|
102
139
|
}
|
|
103
140
|
if (this.type === 'email' && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(this.value)) {
|
|
104
141
|
this.errorMessage = this.customErrorMessages.email || 'Please enter a valid email address.';
|
|
142
|
+
this.isInvalid = true;
|
|
143
|
+
return;
|
|
105
144
|
}
|
|
145
|
+
if (this.type === 'password' && this.value.length < 8) {
|
|
146
|
+
this.errorMessage = this.customErrorMessages.password || 'Password must be at least 8 characters long.';
|
|
147
|
+
this.isInvalid = true;
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
if (this.type === 'tel' && !/^\+?[1-9]\d{1,14}$/.test(this.value)) {
|
|
151
|
+
this.errorMessage = this.customErrorMessages.tel || 'Please enter a valid telephone number.';
|
|
152
|
+
this.isInvalid = true;
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
if (this.type === 'url' && !/^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/.test(this.value)) {
|
|
156
|
+
this.errorMessage = this.customErrorMessages.url || 'Please enter a valid URL.';
|
|
157
|
+
this.isInvalid = true;
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
this.isInvalid = false;
|
|
106
161
|
}
|
|
107
162
|
writeValue(value) {
|
|
108
163
|
this.value = value ? this.applyCapitalization(value.trim(), this.capitalization) : '';
|
|
@@ -116,30 +171,27 @@ export class VerbenaInputComponent {
|
|
|
116
171
|
setDisabledState(isDisabled) {
|
|
117
172
|
this.disable = isDisabled;
|
|
118
173
|
}
|
|
119
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: VerbenaInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
120
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: VerbenaInputComponent, selector: "verbena-input", inputs: { label: "label", placeHolder: "placeHolder", required: "required", minLength: "minLength", maxLength: "maxLength", type: "type", bgColor: "bgColor", border: "border", borderRadius: "borderRadius", textColor: "textColor", value: "value", labelPosition: "labelPosition", labelColor: "labelColor", disable: "disable", min: "min", max: "max", showBorder: "showBorder", showErrorMessage: "showErrorMessage", errorMessageColor: "errorMessageColor", errorBorderColor: "errorBorderColor", errorPosition: "errorPosition", capitalization: "capitalization", customErrorMessages: "customErrorMessages" }, outputs: { valueChange: "valueChange" },
|
|
121
|
-
{
|
|
122
|
-
provide: NG_VALUE_ACCESSOR,
|
|
123
|
-
useExisting: forwardRef(() => VerbenaInputComponent),
|
|
124
|
-
multi: true
|
|
125
|
-
}
|
|
126
|
-
], ngImport: i0, template: "<div class=\"input-container\"\n [ngStyle]=\"{\n 'display': 'flex',\n 'flex-direction': 'column',\n\n }\"\n>\n <div\n [ngStyle]=\"{\n 'display': 'flex',\n 'justify-content': labelPosition,\n 'color': labelColor,\n 'padding': '0'\n }\"\n class=\"input-field\"\n >\n <label [for]=\"label\">{{ label }}</label>\n </div>\n\n <div class=\"input-wrapper\">\n <input\n [id]=\"label\"\n [attr.type]=\"type\"\n [attr.placeholder]=\"placeHolder\"\n [required]=\"required\"\n [attr.minlength]=\"minLength?.toString()\"\n [attr.maxlength]=\"maxLength?.toString()\"\n (input)=\"onInput($event)\"\n [(ngModel)]=\"value\"\n [ngStyle]=\"{\n 'background-color': bgColor,\n 'border': showBorder ? (errorMessage ? '1px solid ' + errorBorderColor : border) : 'none',\n 'border-radius': borderRadius,\n 'color': textColor\n }\"\n class=\"input-field\"\n />\n\n <!-- Conditional red dot for error when showErrorMessage is false -->\n <verben-tooltip *ngIf=\"errorMessage && !showErrorMessage\"\n [tooltipContent]=\"tooltipTemplate\"\n customClass=\"error-tooltip\">\n <div class=\"error-dot\"\n [ngStyle]=\"{ 'background-color': errorBorderColor }\">\n </div>\n </verben-tooltip>\n\n <!-- Tooltip template for error message -->\n <ng-template #tooltipTemplate>\n {{ errorMessage }}\n </ng-template>\n\n <!-- Conditional error message display -->\n <span *ngIf=\"errorMessage && showErrorMessage\"\n [ngStyle]=\"{ 'color': errorMessageColor }\"\n [ngClass]=\"{'error-message': true,\n 'error-top': errorPosition === 'top',\n 'error-bottom': errorPosition === 'bottom',\n 'error-left': errorPosition === 'left',\n 'error-right': errorPosition === 'right'}\">\n {{ errorMessage }}\n </span>\n </div>\n</div>\n", styles: [".input-container{display:flex;flex-direction:column;gap:5px;position:relative}.input-field{width:100%;padding:6px}.error-message{font-size:12px;margin:0}.error-top{position:absolute;top:0;left:50%}.error-bottom{position:relative;margin-top:5px}.error-left{position:absolute;left:-10px}.error-right{position:absolute;right:-10px;top:0}.input-wrapper{position:relative}.input-field{width:100%;padding:8px}.error-dot{position:absolute;top:0%;right:-10px;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.TooltipComponent, selector: "verben-tooltip", inputs: ["tooltipContent", "customClass", "backgroundColor", "textColor", "padding", "borderRadius", "border", "width", "top", "bottom", "left", "right"] }] });
|
|
174
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: VerbenaInputComponent, deps: [{ token: forwardRef(() => NgControl), optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
175
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: VerbenaInputComponent, selector: "verbena-input", inputs: { label: "label", placeHolder: "placeHolder", required: "required", svgPosition: "svgPosition", minLength: "minLength", maxLength: "maxLength", type: "type", bgColor: "bgColor", border: "border", borderRadius: "borderRadius", textColor: "textColor", value: "value", labelPosition: "labelPosition", labelColor: "labelColor", disable: "disable", min: "min", max: "max", showBorder: "showBorder", showErrorMessage: "showErrorMessage", errorMessageColor: "errorMessageColor", errorBorderColor: "errorBorderColor", errorPosition: "errorPosition", svg: "svg", svgWidth: "svgWidth", svgHeight: "svgHeight", svgColor: "svgColor", capitalization: "capitalization", inputContainerClass: "inputContainerClass", inputFieldClass: "inputFieldClass", inputWrapperClass: "inputWrapperClass", customErrorMessages: "customErrorMessages" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"input-container {{ inputContainerClass }}\"\n [ngStyle]=\"{\n 'display': 'flex',\n 'flex-direction': 'column',\n\n }\"\n>\n <div\n [ngStyle]=\"{\n 'display': 'flex',\n 'justify-content': labelPosition,\n 'color': labelColor,\n 'padding': '0'\n }\"\n class=\"input-field\"\n >\n <label [for]=\"label\">{{ label }}</label>\n </div>\n\n <div class=\"input-wrapper {{ inputWrapperClass }}\">\n <input\n [ngClass]=\"{'ng-invalid': isInvalid}\"\n [id]=\"label\"\n [attr.type]=\"type\"\n [attr.placeholder]=\"placeHolder\"\n\n [attr.minlength]=\"minLength?.toString()\"\n [attr.maxlength]=\"maxLength?.toString()\"\n (input)=\"onInput($event)\"\n [(ngModel)]=\"value\"\n [ngStyle]=\"{\n 'background-color': bgColor,\n 'border': isInvalid && errorBorderColor? '1px solid ' + errorBorderColor : border ,\n 'border-radius': borderRadius,\n 'color': textColor\n }\"\n class=\"input-field verben-input\"\n />\n\n <!-- Conditional red dot for error when showErrorMessage is false -->\n <verben-tooltip *ngIf=\"errorMessage && !showErrorMessage\"\n [tooltipContent]=\"tooltipTemplate\"\n customClass=\"error-tooltip\">\n <div class=\"error-dot\"\n [ngStyle]=\"{ 'background-color': errorBorderColor }\">\n </div>\n </verben-tooltip>\n\n <!-- Tooltip template for error message -->\n <ng-template #tooltipTemplate>\n {{ errorMessage }}\n </ng-template>\n\n <!-- Conditional error message display -->\n <span *ngIf=\"errorMessage && showErrorMessage\"\n [ngStyle]=\"{ 'color': errorMessageColor }\"\n [ngClass]=\"{'verben-error-message': true,\n 'top-error': errorPosition === 'top',\n 'left-error': errorPosition === 'left',\n 'right-error': errorPosition === 'right'}\"\n class=\"verben-error-message \"\n >\n\n {{ errorMessage }}\n\n </span>\n </div>\n</div>\n", styles: ["*{font-family:sans-serif;font-size:.9rem}.w-100{width:100%}.h-100{height:100%}.flex{display:flex}.flex-col{flex-direction:column}.font-bold{font-weight:700}.justify-center{justify-content:center}.justify-end{justify-content:end}.align-items-center{align-items:center}.grid{display:grid}.verben-error-message{font-size:.8rem;color:red}.verben-input{border:1px solid #cbd5e1;outline:none;border-radius:5px;color:#334155;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,outline-color .2s}.verben-input::placeholder{color:#64748b}.verben-input:hover{border:1px solid #697e97}.verben-input.disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input:disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input.focused{border-color:#3b82f6;outline:none}.verben-input:focus{border-color:#3b82f6;outline:none}.verben-input.ng-invalid{border-color:red}.verben-button{padding:8px 15px;border-radius:4px;border:none;text-align:center}.verben-button.primary{background-color:#ffe681}.verben-button.secondary{background-color:#d9d9d940}.input-container{display:flex;flex-direction:column;gap:5px;position:relative}.input-field{width:100%;padding:6px}.error-message-text{font-size:12px;margin:0}.error-top{position:absolute;top:0;left:50%}.error-bottom{position:relative;margin-top:5px}.error-left{position:absolute;left:-10px}.error-right{position:absolute;right:-10px;top:0}.input-wrapper{position:relative}.input-field{width:100%;padding:8px}.error-dot{position:absolute;top:0%;right:-10px;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;cursor:pointer}.error-message{position:absolute;z-index:1;left:0;right:0;bottom:-20px}.top-error .error-message{position:absolute!important;top:-20px!important;bottom:initial!important}.left-error{position:absolute!important;bottom:50%!important;right:calc(100% + 10px)!important;width:max-content;left:initial!important;transform:translateY(50%);top:-100px}.right-error .error-message{position:absolute!important;bottom:50%!important;left:calc(100% + 10px)!important;width:max-content;right:initial!important;transform:translateY(50%)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.TooltipComponent, selector: "verben-tooltip", inputs: ["tooltipContent", "customClass", "backgroundColor", "textColor", "padding", "borderRadius", "border", "width", "top", "bottom", "left", "right"] }] });
|
|
127
176
|
}
|
|
128
177
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: VerbenaInputComponent, decorators: [{
|
|
129
178
|
type: Component,
|
|
130
|
-
args: [{ selector: 'verbena-input',
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
179
|
+
args: [{ selector: 'verbena-input', template: "<div class=\"input-container {{ inputContainerClass }}\"\n [ngStyle]=\"{\n 'display': 'flex',\n 'flex-direction': 'column',\n\n }\"\n>\n <div\n [ngStyle]=\"{\n 'display': 'flex',\n 'justify-content': labelPosition,\n 'color': labelColor,\n 'padding': '0'\n }\"\n class=\"input-field\"\n >\n <label [for]=\"label\">{{ label }}</label>\n </div>\n\n <div class=\"input-wrapper {{ inputWrapperClass }}\">\n <input\n [ngClass]=\"{'ng-invalid': isInvalid}\"\n [id]=\"label\"\n [attr.type]=\"type\"\n [attr.placeholder]=\"placeHolder\"\n\n [attr.minlength]=\"minLength?.toString()\"\n [attr.maxlength]=\"maxLength?.toString()\"\n (input)=\"onInput($event)\"\n [(ngModel)]=\"value\"\n [ngStyle]=\"{\n 'background-color': bgColor,\n 'border': isInvalid && errorBorderColor? '1px solid ' + errorBorderColor : border ,\n 'border-radius': borderRadius,\n 'color': textColor\n }\"\n class=\"input-field verben-input\"\n />\n\n <!-- Conditional red dot for error when showErrorMessage is false -->\n <verben-tooltip *ngIf=\"errorMessage && !showErrorMessage\"\n [tooltipContent]=\"tooltipTemplate\"\n customClass=\"error-tooltip\">\n <div class=\"error-dot\"\n [ngStyle]=\"{ 'background-color': errorBorderColor }\">\n </div>\n </verben-tooltip>\n\n <!-- Tooltip template for error message -->\n <ng-template #tooltipTemplate>\n {{ errorMessage }}\n </ng-template>\n\n <!-- Conditional error message display -->\n <span *ngIf=\"errorMessage && showErrorMessage\"\n [ngStyle]=\"{ 'color': errorMessageColor }\"\n [ngClass]=\"{'verben-error-message': true,\n 'top-error': errorPosition === 'top',\n 'left-error': errorPosition === 'left',\n 'right-error': errorPosition === 'right'}\"\n class=\"verben-error-message \"\n >\n\n {{ errorMessage }}\n\n </span>\n </div>\n</div>\n", styles: ["*{font-family:sans-serif;font-size:.9rem}.w-100{width:100%}.h-100{height:100%}.flex{display:flex}.flex-col{flex-direction:column}.font-bold{font-weight:700}.justify-center{justify-content:center}.justify-end{justify-content:end}.align-items-center{align-items:center}.grid{display:grid}.verben-error-message{font-size:.8rem;color:red}.verben-input{border:1px solid #cbd5e1;outline:none;border-radius:5px;color:#334155;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,outline-color .2s}.verben-input::placeholder{color:#64748b}.verben-input:hover{border:1px solid #697e97}.verben-input.disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input:disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input.focused{border-color:#3b82f6;outline:none}.verben-input:focus{border-color:#3b82f6;outline:none}.verben-input.ng-invalid{border-color:red}.verben-button{padding:8px 15px;border-radius:4px;border:none;text-align:center}.verben-button.primary{background-color:#ffe681}.verben-button.secondary{background-color:#d9d9d940}.input-container{display:flex;flex-direction:column;gap:5px;position:relative}.input-field{width:100%;padding:6px}.error-message-text{font-size:12px;margin:0}.error-top{position:absolute;top:0;left:50%}.error-bottom{position:relative;margin-top:5px}.error-left{position:absolute;left:-10px}.error-right{position:absolute;right:-10px;top:0}.input-wrapper{position:relative}.input-field{width:100%;padding:8px}.error-dot{position:absolute;top:0%;right:-10px;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;cursor:pointer}.error-message{position:absolute;z-index:1;left:0;right:0;bottom:-20px}.top-error .error-message{position:absolute!important;top:-20px!important;bottom:initial!important}.left-error{position:absolute!important;bottom:50%!important;right:calc(100% + 10px)!important;width:max-content;left:initial!important;transform:translateY(50%);top:-100px}.right-error .error-message{position:absolute!important;bottom:50%!important;left:calc(100% + 10px)!important;width:max-content;right:initial!important;transform:translateY(50%)}\n"] }]
|
|
180
|
+
}], ctorParameters: () => [{ type: i2.NgControl, decorators: [{
|
|
181
|
+
type: Optional
|
|
182
|
+
}, {
|
|
183
|
+
type: Self
|
|
184
|
+
}, {
|
|
185
|
+
type: Inject,
|
|
186
|
+
args: [forwardRef(() => NgControl)]
|
|
187
|
+
}] }], propDecorators: { label: [{
|
|
138
188
|
type: Input
|
|
139
189
|
}], placeHolder: [{
|
|
140
190
|
type: Input
|
|
141
191
|
}], required: [{
|
|
142
192
|
type: Input
|
|
193
|
+
}], svgPosition: [{
|
|
194
|
+
type: Input
|
|
143
195
|
}], minLength: [{
|
|
144
196
|
type: Input
|
|
145
197
|
}], maxLength: [{
|
|
@@ -176,11 +228,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
176
228
|
type: Input
|
|
177
229
|
}], errorPosition: [{
|
|
178
230
|
type: Input
|
|
231
|
+
}], svg: [{
|
|
232
|
+
type: Input
|
|
233
|
+
}], svgWidth: [{
|
|
234
|
+
type: Input
|
|
235
|
+
}], svgHeight: [{
|
|
236
|
+
type: Input
|
|
237
|
+
}], svgColor: [{
|
|
238
|
+
type: Input
|
|
179
239
|
}], capitalization: [{
|
|
180
240
|
type: Input
|
|
241
|
+
}], inputContainerClass: [{
|
|
242
|
+
type: Input
|
|
243
|
+
}], inputFieldClass: [{
|
|
244
|
+
type: Input
|
|
245
|
+
}], inputWrapperClass: [{
|
|
246
|
+
type: Input
|
|
181
247
|
}], customErrorMessages: [{
|
|
182
248
|
type: Input
|
|
183
249
|
}], valueChange: [{
|
|
184
250
|
type: Output
|
|
185
251
|
}] } });
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyYmVuYS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9WZXJiZW5hLWlucHV0L3ZlcmJlbmEtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvVmVyYmVuYS1pbnB1dC92ZXJiZW5hLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFjekUsTUFBTSxPQUFPLHFCQUFxQjtJQUN2QixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixTQUFTLENBQVU7SUFDbkIsU0FBUyxDQUFVO0lBQ25CLElBQUksR0FBaUUsTUFBTSxDQUFDO0lBQzVFLE9BQU8sR0FBVyxTQUFTLENBQUM7SUFDNUIsTUFBTSxHQUFXLGdCQUFnQixDQUFDO0lBQ2xDLFlBQVksR0FBVyxLQUFLLENBQUM7SUFDN0IsU0FBUyxHQUFXLE1BQU0sQ0FBQztJQUMzQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLGFBQWEsR0FBVyxPQUFPLENBQUM7SUFDaEMsVUFBVSxHQUFXLE9BQU8sQ0FBQztJQUM3QixPQUFPLEdBQVksS0FBSyxDQUFDO0lBQ3pCLEdBQUcsQ0FBVTtJQUNiLEdBQUcsQ0FBVTtJQUViLFVBQVUsR0FBWSxJQUFJLENBQUM7SUFDM0IsZ0JBQWdCLEdBQVksSUFBSSxDQUFDO0lBQ2pDLGlCQUFpQixHQUFXLEtBQUssQ0FBQztJQUNsQyxnQkFB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QUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBWUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVyYmVuYS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi92ZXJiZW5hLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmVyYmVuYS1pbnB1dC5jb21wb25lbnQuY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVmVyYmVuYUlucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFZlcmJlbmFJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlSG9sZGVyOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWluTGVuZ3RoPzogbnVtYmVyO1xuICBASW5wdXQoKSBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHR5cGU6ICd0ZXh0JyB8ICdpbnRlZ2VyJyB8ICdudW1iZXInIHwgJ2RlY2ltYWwnIHwgJ2VtYWlsJyB8ICdkYXRlJyA9ICd0ZXh0JztcbiAgQElucHV0KCkgYmdDb2xvcjogc3RyaW5nID0gJyNmOWY5ZjknO1xuICBASW5wdXQoKSBib3JkZXI6IHN0cmluZyA9ICcxcHggc29saWQgI2NjYyc7XG4gIEBJbnB1dCgpIGJvcmRlclJhZGl1czogc3RyaW5nID0gJzVweCc7XG4gIEBJbnB1dCgpIHRleHRDb2xvcjogc3RyaW5nID0gJyMzMzMnO1xuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGxhYmVsUG9zaXRpb246IHN0cmluZyA9ICdzdGFydCc7XG4gIEBJbnB1dCgpIGxhYmVsQ29sb3I6IHN0cmluZyA9ICdibGFjayc7XG4gIEBJbnB1dCgpIGRpc2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWluPzogbnVtYmVyO1xuICBASW5wdXQoKSBtYXg/OiBudW1iZXI7XG5cbiAgQElucHV0KCkgc2hvd0JvcmRlcjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dFcnJvck1lc3NhZ2U6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2VDb2xvcjogc3RyaW5nID0gJ3JlZCc7XG4gIEBJbnB1dCgpIGVycm9yQm9yZGVyQ29sb3I6IHN0cmluZyA9ICdyZWQnO1xuICBASW5wdXQoKSBlcnJvclBvc2l0aW9uOiAnbGVmdCcgfCAncmlnaHQnIHwgJ3RvcCcgfCAnYm90dG9tJyA9ICdib3R0b20nO1xuXG4gIEBJbnB1dCgpIGNhcGl0YWxpemF0aW9uOiAnbm9uZScgfCAndXBwZXJjYXNlJyB8ICdsb3dlcmNhc2UnIHwgJ3NlbnRlbmNlY2FzZScgfCAncGFzY2FsY2FzZScgfCAnY2FtZWxjYXNlJyA9ICdub25lJztcblxuICAvLyBOZXcgcHJvcGVydHkgZm9yIGN1c3RvbSBlcnJvciBtZXNzYWdlc1xuICBASW5wdXQoKSBjdXN0b21FcnJvck1lc3NhZ2VzOiB7XG4gICAgcmVxdWlyZWQ/OiBzdHJpbmc7XG4gICAgbWluTGVuZ3RoPzogc3RyaW5nO1xuICAgIG1heExlbmd0aD86IHN0cmluZztcbiAgICBtaW5WYWx1ZT86IHN0cmluZztcbiAgICBtYXhWYWx1ZT86IHN0cmluZztcbiAgICBpbnRlZ2VyPzogc3RyaW5nO1xuICAgIG51bWJlcj86IHN0cmluZztcbiAgICBkZWNpbWFsPzogc3RyaW5nO1xuICAgIGVtYWlsPzogc3RyaW5nO1xuICB9ID0ge307XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGlucHV0SWQ6IHN0cmluZyA9ICcnO1xuXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcbiAgb25Ub3VjaDogYW55ID0gKCkgPT4ge307XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbnB1dElkID0gYHZlcmJlbmEtaW5wdXQtJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwgOSl9YDtcbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgdGhpcy52YWx1ZSA9IHRhcmdldC52YWx1ZS50cmltKCk7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuYXBwbHlDYXBpdGFsaXphdGlvbih0aGlzLnZhbHVlLCB0aGlzLmNhcGl0YWxpemF0aW9uKTtcbiAgICB0aGlzLnZhbGlkYXRlKCk7XG4gICAgY29uc3Qgc2FuaXRpemVkVmFsdWUgPSB0aGlzLnNhbml0aXplVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZShzYW5pdGl6ZWRWYWx1ZSk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHNhbml0aXplZFZhbHVlKTtcbiAgfVxuXG4gIGFwcGx5Q2FwaXRhbGl6YXRpb24odmFsdWU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICBjYXNlICd1cHBlcmNhc2UnOiByZXR1cm4gdmFsdWUudG9VcHBlckNhc2UoKTtcbiAgICAgIGNhc2UgJ2xvd2VyY2FzZSc6IHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgY2FzZSAnc2VudGVuY2VjYXNlJzogcmV0dXJuIHZhbHVlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdmFsdWUuc2xpY2UoMSkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNhc2UgJ3Bhc2NhbGNhc2UnOiByZXR1cm4gdmFsdWUucmVwbGFjZSgvXFx3Ky9nLCAodykgPT4gd1swXS50b1VwcGVyQ2FzZSgpICsgdy5zbGljZSgxKS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIGNhc2UgJ2NhbWVsY2FzZSc6IHJldHVybiB2YWx1ZS5yZXBsYWNlKC8oPzpeXFx3fFtBLVpdfFxcYlxcd3xcXHMrKS9nLCAobWF0Y2gsIGluZGV4KSA9PlxuICAgICAgICBpbmRleCA9PT0gMCA/IG1hdGNoLnRvTG93ZXJDYXNlKCkgOiBtYXRjaC50b1VwcGVyQ2FzZSgpKS5yZXBsYWNlKC9cXHMrL2csICcnKTtcbiAgICAgIGRlZmF1bHQ6IHJldHVybiB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBzYW5pdGl6ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChbJ251bWJlcicsICdkZWNpbWFsJywgJ2ludGVnZXInXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHZhbGlkYXRlKCkge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XG5cbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMucmVxdWlyZWQgfHwgJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5taW5MZW5ndGggJiYgdGhpcy52YWx1ZS5sZW5ndGggPCB0aGlzLm1pbkxlbmd0aCkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMubWluTGVuZ3RoIHx8IGBNaW5pbXVtIGxlbmd0aCBpcyAke3RoaXMubWluTGVuZ3RofS5gO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1heExlbmd0aCAmJiB0aGlzLnZhbHVlLmxlbmd0aCA+IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlcy5tYXhMZW5ndGggfHwgYE1heGltdW0gbGVuZ3RoIGlzICR7dGhpcy5tYXhMZW5ndGh9LmA7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2FuaXRpemVkVmFsdWUgPSB0aGlzLnNhbml0aXplVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgY29uc3QgbnVtZXJpY1ZhbHVlID0gcGFyc2VGbG9hdChzYW5pdGl6ZWRWYWx1ZSk7XG5cbiAgICBpZiAoWydpbnRlZ2VyJywgJ251bWJlcicsICdkZWNpbWFsJ10uaW5jbHVkZXModGhpcy50eXBlKSkge1xuICAgICAgaWYgKHRoaXMubWluICE9PSB1bmRlZmluZWQgJiYgbnVtZXJpY1ZhbHVlIDwgdGhpcy5taW4pIHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMubWluVmFsdWUgfHwgYE1pbmltdW0gdmFsdWUgaXMgJHt0aGlzLm1pbn0uYDtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLm1heCAhPT0gdW5kZWZpbmVkICYmIG51bWVyaWNWYWx1ZSA+IHRoaXMubWF4KSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jdXN0b21FcnJvck1lc3NhZ2VzLm1heFZhbHVlIHx8IGBNYXhpbXVtIHZhbHVlIGlzICR7dGhpcy5tYXh9LmA7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAnaW50ZWdlcicgJiYgIS9eXFxkKyQvLnRlc3QodGhpcy52YWx1ZSkpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jdXN0b21FcnJvck1lc3NhZ2VzLmludGVnZXIgfHwgJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGludGVnZXIuJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAnbnVtYmVyJyAmJiAhL15cXGQrKFxcLlxcZCspPyQvLnRlc3QodGhpcy52YWx1ZSkpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jdXN0b21FcnJvck1lc3NhZ2VzLm51bWJlciB8fCAnUGxlYXNlIGVudGVyIGEgdmFsaWQgbnVtYmVyLic7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2RlY2ltYWwnICYmICEvXlxcZCsoXFwuXFxkKyk/JC8udGVzdCh0aGlzLnZhbHVlKSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMuZGVjaW1hbCB8fCAnUGxlYXNlIGVudGVyIGEgdmFsaWQgZGVjaW1hbC4nO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdlbWFpbCcgJiYgIS9eW15cXHNAXStAW15cXHNAXStcXC5bXlxcc0BdKyQvLnRlc3QodGhpcy52YWx1ZSkpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jdXN0b21FcnJvck1lc3NhZ2VzLmVtYWlsIHx8ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzLic7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlID8gdGhpcy5hcHBseUNhcGl0YWxpemF0aW9uKHZhbHVlLnRyaW0oKSwgdGhpcy5jYXBpdGFsaXphdGlvbikgOiAnJztcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZSA9IGlzRGlzYWJsZWQ7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIlxuICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAnZGlzcGxheSc6ICdmbGV4JyxcbiAgICAgICdmbGV4LWRpcmVjdGlvbic6ICdjb2x1bW4nLFxuXG4gICAgIH1cIlxuPlxuICA8ZGl2XG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgJ2Rpc3BsYXknOiAnZmxleCcsXG4gICAgICAnanVzdGlmeS1jb250ZW50JzogbGFiZWxQb3NpdGlvbixcbiAgICAgICdjb2xvcic6IGxhYmVsQ29sb3IsXG4gICAgICAncGFkZGluZyc6ICcwJ1xuICAgIH1cIlxuICAgIGNsYXNzPVwiaW5wdXQtZmllbGRcIlxuICA+XG4gICAgPGxhYmVsIFtmb3JdPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCI+XG4gICAgPGlucHV0XG4gICAgICBbaWRdPVwibGFiZWxcIlxuICAgICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcbiAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbYXR0ci5taW5sZW5ndGhdPVwibWluTGVuZ3RoPy50b1N0cmluZygpXCJcbiAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhMZW5ndGg/LnRvU3RyaW5nKClcIlxuICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiBiZ0NvbG9yLFxuICAgICAgICAnYm9yZGVyJzogc2hvd0JvcmRlciA/IChlcnJvck1lc3NhZ2UgPyAnMXB4IHNvbGlkICcgKyBlcnJvckJvcmRlckNvbG9yIDogYm9yZGVyKSA6ICdub25lJyxcbiAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiBib3JkZXJSYWRpdXMsXG4gICAgICAgICdjb2xvcic6IHRleHRDb2xvclxuICAgICAgfVwiXG4gICAgICBjbGFzcz1cImlucHV0LWZpZWxkXCJcbiAgICAvPlxuXG4gICAgPCEtLSBDb25kaXRpb25hbCByZWQgZG90IGZvciBlcnJvciB3aGVuIHNob3dFcnJvck1lc3NhZ2UgaXMgZmFsc2UgLS0+XG4gICAgPHZlcmJlbi10b29sdGlwICpuZ0lmPVwiZXJyb3JNZXNzYWdlICYmICFzaG93RXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBDb250ZW50XT1cInRvb2x0aXBUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbUNsYXNzPVwiZXJyb3ItdG9vbHRpcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImVycm9yLWRvdFwiXG4gICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBlcnJvckJvcmRlckNvbG9yIH1cIj5cbiAgICAgIDwvZGl2PlxuICAgIDwvdmVyYmVuLXRvb2x0aXA+XG5cbiAgICA8IS0tIFRvb2x0aXAgdGVtcGxhdGUgZm9yIGVycm9yIG1lc3NhZ2UgLS0+XG4gICAgPG5nLXRlbXBsYXRlICN0b29sdGlwVGVtcGxhdGU+XG4gICAgICB7eyBlcnJvck1lc3NhZ2UgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPCEtLSBDb25kaXRpb25hbCBlcnJvciBtZXNzYWdlIGRpc3BsYXkgLS0+XG4gICAgPHNwYW4gKm5nSWY9XCJlcnJvck1lc3NhZ2UgJiYgc2hvd0Vycm9yTWVzc2FnZVwiXG4gICAgICAgICAgW25nU3R5bGVdPVwieyAnY29sb3InOiBlcnJvck1lc3NhZ2VDb2xvciB9XCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J2Vycm9yLW1lc3NhZ2UnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICdlcnJvci10b3AnOiBlcnJvclBvc2l0aW9uID09PSAndG9wJyxcbiAgICAgICAgICAgICAgICAgICAgICAnZXJyb3ItYm90dG9tJzogZXJyb3JQb3NpdGlvbiA9PT0gJ2JvdHRvbScsXG4gICAgICAgICAgICAgICAgICAgICAgJ2Vycm9yLWxlZnQnOiBlcnJvclBvc2l0aW9uID09PSAnbGVmdCcsXG4gICAgICAgICAgICAgICAgICAgICAgJ2Vycm9yLXJpZ2h0JzogZXJyb3JQb3NpdGlvbiA9PT0gJ3JpZ2h0J31cIj5cbiAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
252
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyYmVuYS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9WZXJiZW5hLWlucHV0L3ZlcmJlbmEtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvVmVyYmVuYS1pbnB1dC92ZXJiZW5hLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBd0IsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBT2pFLE1BQU0sT0FBTyxxQkFBcUI7SUEyRDZDO0lBMURwRSxLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixXQUFXLEdBQXFCLE1BQU0sQ0FBQztJQUN2QyxTQUFTLENBQVU7SUFDbkIsU0FBUyxDQUFVO0lBQ25CLElBQUksR0FBaUgsTUFBTSxDQUFDO0lBQzVILE9BQU8sR0FBVyxTQUFTLENBQUM7SUFDNUIsTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUNwQixZQUFZLEdBQVcsS0FBSyxDQUFDO0lBQzdCLFNBQVMsR0FBVyxNQUFNLENBQUM7SUFDM0IsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixhQUFhLEdBQVcsT0FBTyxDQUFDO0lBQ2hDLFVBQVUsR0FBVyxPQUFPLENBQUM7SUFDN0IsT0FBTyxHQUFZLEtBQUssQ0FBQztJQUN6QixHQUFHLENBQVU7SUFDYixHQUFHLENBQVU7SUFDYixVQUFVLEdBQVksSUFBSSxDQUFDO0lBQzNC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QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBZUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9wdGlvbmFsLCBTZWxmLCBJbmplY3QsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlcmJlbmEtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmVyYmVuYS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZlcmJlbmEtaW5wdXQuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFZlcmJlbmFJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlSG9sZGVyOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc3ZnUG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgPSAnbGVmdCc7XG4gIEBJbnB1dCgpIG1pbkxlbmd0aD86IG51bWJlcjtcbiAgQElucHV0KCkgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBASW5wdXQoKSB0eXBlOiAndGV4dCcgfCAncGFzc3dvcmQnIHwgJ2ludGVnZXInIHwgJ251bWJlcicgfCAnZGVjaW1hbCcgfCAnZW1haWwnIHwgJ2RhdGUnIHwgJ3RlbCcgfCAndXJsJyB8ICdmaWxlJyB8ICdjb2xvcicgPSAndGV4dCc7XG4gIEBJbnB1dCgpIGJnQ29sb3I6IHN0cmluZyA9ICcjZjlmOWY5JztcbiAgQElucHV0KCkgYm9yZGVyOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYm9yZGVyUmFkaXVzOiBzdHJpbmcgPSAnNXB4JztcbiAgQElucHV0KCkgdGV4dENvbG9yOiBzdHJpbmcgPSAnIzMzMyc7XG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgbGFiZWxQb3NpdGlvbjogc3RyaW5nID0gJ3N0YXJ0JztcbiAgQElucHV0KCkgbGFiZWxDb2xvcjogc3RyaW5nID0gJ2JsYWNrJztcbiAgQElucHV0KCkgZGlzYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtaW4/OiBudW1iZXI7XG4gIEBJbnB1dCgpIG1heD86IG51bWJlcjtcbiAgQElucHV0KCkgc2hvd0JvcmRlcjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dFcnJvck1lc3NhZ2U6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2VDb2xvcjogc3RyaW5nID0gJ3JlZCc7XG4gIEBJbnB1dCgpIGVycm9yQm9yZGVyQ29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGVycm9yUG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgfCAndG9wJyB8ICdib3R0b20nID0gJ2JvdHRvbSc7XG4gIEBJbnB1dCgpIHN2Zzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHN2Z1dpZHRoOiBudW1iZXIgPSAyMDtcbiAgQElucHV0KCkgc3ZnSGVpZ2h0OiBudW1iZXIgPSAyMDtcbiAgQElucHV0KCkgc3ZnQ29sb3I6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBjYXBpdGFsaXphdGlvbjogJ25vbmUnIHwgJ3VwcGVyY2FzZScgfCAnbG93ZXJjYXNlJyB8ICdzZW50ZW5jZWNhc2UnIHwgJ3Bhc2NhbGNhc2UnIHwgJ2NhbWVsY2FzZScgPSAnbm9uZSc7XG5cbiAgLy8gTmV3IGlucHV0IHByb3BlcnRpZXMgdG8gZXhwb3NlIGN1c3RvbSBjbGFzc2VzXG4gIEBJbnB1dCgpIGlucHV0Q29udGFpbmVyQ2xhc3M6IHN0cmluZyA9ICcnOyAvLyBFeHBvc2UgY3VzdG9tIGNsYXNzIGZvciBpbnB1dCBjb250YWluZXJcbiAgQElucHV0KCkgaW5wdXRGaWVsZENsYXNzOiBzdHJpbmcgPSAnJzsgLy8gRXhwb3NlIGN1c3RvbSBjbGFzcyBmb3IgaW5wdXQgZmllbGRcbiAgQElucHV0KCkgaW5wdXRXcmFwcGVyQ2xhc3M6IHN0cmluZyA9ICcnOyAvLyBFeHBvc2UgY3VzdG9tIGNsYXNzIGZvciBpbnB1dCB3cmFwcGVyXG5cbiAgLy8gTmV3IHByb3BlcnR5IGZvciBjdXN0b20gZXJyb3IgbWVzc2FnZXNcbiAgQElucHV0KCkgY3VzdG9tRXJyb3JNZXNzYWdlczoge1xuICAgIHJlcXVpcmVkPzogc3RyaW5nO1xuICAgIG1pbkxlbmd0aD86IHN0cmluZztcbiAgICBtYXhMZW5ndGg/OiBzdHJpbmc7XG4gICAgbWluVmFsdWU/OiBzdHJpbmc7XG4gICAgbWF4VmFsdWU/OiBzdHJpbmc7XG4gICAgaW50ZWdlcj86IHN0cmluZztcbiAgICBudW1iZXI/OiBzdHJpbmc7XG4gICAgZGVjaW1hbD86IHN0cmluZztcbiAgICBlbWFpbD86IHN0cmluZztcbiAgICBwYXNzd29yZD86IHN0cmluZztcbiAgICB0ZWw/OiBzdHJpbmc7XG4gICAgdXJsPzogc3RyaW5nO1xuICB9ID0ge307XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBGaWxlTGlzdD4oKTtcblxuICBlcnJvck1lc3NhZ2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgaW5wdXRJZDogc3RyaW5nID0gJyc7XG5cbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuICBvblRvdWNoOiBhbnkgPSAoKSA9PiB7fTtcbiAgaXNJbnZhbGlkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQFNlbGYoKSBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gTmdDb250cm9sKSkgcHJpdmF0ZSBuZ0NvbnRyb2w6IE5nQ29udHJvbCkge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICB0aGlzLm5nQ29udHJvbD8uc3RhdHVzQ2hhbmdlcz8uc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0aGlzLm5nQ29udHJvbC50b3VjaGVkXG4gICAgICAgICAgPyBzdGF0dXMgPT09ICdJTlZBTElEJyAmJiB0aGlzLm5nQ29udHJvbC50b3VjaGVkXG4gICAgICAgICAgOiBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5wdXRJZCA9IGB2ZXJiZW5hLWlucHV0LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpfWA7XG4gIH1cblxuICBvbklucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2ZpbGUnICYmIHRhcmdldC5maWxlcykge1xuICAgICAgY29uc3QgZmlsZXMgPSB0YXJnZXQuZmlsZXM7XG4gICAgICB0aGlzLm9uQ2hhbmdlKGZpbGVzKTtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChmaWxlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0YXJnZXQudmFsdWUudHJpbSgpO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuYXBwbHlDYXBpdGFsaXphdGlvbih0aGlzLnZhbHVlLCB0aGlzLmNhcGl0YWxpemF0aW9uKTtcbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICAgIGNvbnN0IHNhbml0aXplZFZhbHVlID0gdGhpcy5zYW5pdGl6ZVZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5vbkNoYW5nZShzYW5pdGl6ZWRWYWx1ZSk7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoc2FuaXRpemVkVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGFwcGx5Q2FwaXRhbGl6YXRpb24odmFsdWU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICBjYXNlICd1cHBlcmNhc2UnOiByZXR1cm4gdmFsdWUudG9VcHBlckNhc2UoKTtcbiAgICAgIGNhc2UgJ2xvd2VyY2FzZSc6IHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgY2FzZSAnc2VudGVuY2VjYXNlJzogcmV0dXJuIHZhbHVlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdmFsdWUuc2xpY2UoMSkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNhc2UgJ3Bhc2NhbGNhc2UnOiByZXR1cm4gdmFsdWUucmVwbGFjZSgvXFx3Ky9nLCAodykgPT4gd1swXS50b1VwcGVyQ2FzZSgpICsgdy5zbGljZSgxKS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIGNhc2UgJ2NhbWVsY2FzZSc6IHJldHVybiB2YWx1ZS5yZXBsYWNlKC8oPzpeXFx3fFtBLVpdfFxcYlxcd3xcXHMrKS9nLCAobWF0Y2gsIGluZGV4KSA9PlxuICAgICAgICBpbmRleCA9PT0gMCA/IG1hdGNoLnRvTG93ZXJDYXNlKCkgOiBtYXRjaC50b1VwcGVyQ2FzZSgpKS5yZXBsYWNlKC9cXHMrL2csICcnKTtcbiAgICAgIGRlZmF1bHQ6IHJldHVybiB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBzYW5pdGl6ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChbJ251bWJlcicsICdkZWNpbWFsJywgJ2ludGVnZXInXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHZhbGlkYXRlKCkge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XG5cbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMucmVxdWlyZWQgfHwgJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJztcbiAgICAgIHRoaXMuaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5taW5MZW5ndGggJiYgdGhpcy52YWx1ZS5sZW5ndGggPCB0aGlzLm1pbkxlbmd0aCkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMubWluTGVuZ3RoIHx8IGBNaW5pbXVtIGxlbmd0aCBpcyAke3RoaXMubWluTGVuZ3RofS5gO1xuICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1heExlbmd0aCAmJiB0aGlzLnZhbHVlLmxlbmd0aCA+IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlcy5tYXhMZW5ndGggfHwgYE1heGltdW0gbGVuZ3RoIGlzICR7dGhpcy5tYXhMZW5ndGh9LmA7XG4gICAgICB0aGlzLmlzSW52YWxpZCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2FuaXRpemVkVmFsdWUgPSB0aGlzLnNhbml0aXplVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgY29uc3QgbnVtZXJpY1ZhbHVlID0gcGFyc2VGbG9hdChzYW5pdGl6ZWRWYWx1ZSk7XG5cbiAgICBpZiAoWydpbnRlZ2VyJywgJ251bWJlcicsICdkZWNpbWFsJ10uaW5jbHVkZXModGhpcy50eXBlKSkge1xuICAgICAgaWYgKHRoaXMubWluICE9PSB1bmRlZmluZWQgJiYgbnVtZXJpY1ZhbHVlIDwgdGhpcy5taW4pIHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMubWluVmFsdWUgfHwgYE1pbmltdW0gdmFsdWUgaXMgJHt0aGlzLm1pbn0uYDtcbiAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKHRoaXMubWF4ICE9PSB1bmRlZmluZWQgJiYgbnVtZXJpY1ZhbHVlID4gdGhpcy5tYXgpIHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMubWF4VmFsdWUgfHwgYE1heGltdW0gdmFsdWUgaXMgJHt0aGlzLm1heH0uYDtcbiAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2ludGVnZXInICYmICEvXlxcZCskLy50ZXN0KHRoaXMudmFsdWUpKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlcy5pbnRlZ2VyIHx8ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBpbnRlZ2VyLic7XG4gICAgICB0aGlzLmlzSW52YWxpZCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ251bWJlcicgJiYgIS9eXFxkKyhcXC5cXGQrKT8kLy50ZXN0KHRoaXMudmFsdWUpKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlcy5udW1iZXIgfHwgJ1BsZWFzZSBlbnRlciBhIHZhbGlkIG51bWJlci4nO1xuICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdkZWNpbWFsJyAmJiAhL15cXGQrKFxcLlxcZCspPyQvLnRlc3QodGhpcy52YWx1ZSkpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jdXN0b21FcnJvck1lc3NhZ2VzLmRlY2ltYWwgfHwgJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGRlY2ltYWwuJztcbiAgICAgIHRoaXMuaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAnZW1haWwnICYmICEvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLy50ZXN0KHRoaXMudmFsdWUpKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlcy5lbWFpbCB8fCAnUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcy4nO1xuICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdwYXNzd29yZCcgJiYgdGhpcy52YWx1ZS5sZW5ndGggPCA4KSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlcy5wYXNzd29yZCB8fCAnUGFzc3dvcmQgbXVzdCBiZSBhdCBsZWFzdCA4IGNoYXJhY3RlcnMgbG9uZy4nO1xuICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICd0ZWwnICYmICEvXlxcKz9bMS05XVxcZHsxLDE0fSQvLnRlc3QodGhpcy52YWx1ZSkpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jdXN0b21FcnJvck1lc3NhZ2VzLnRlbCB8fCAnUGxlYXNlIGVudGVyIGEgdmFsaWQgdGVsZXBob25lIG51bWJlci4nO1xuICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICd1cmwnICYmICEvXihodHRwcz98ZnRwKTpcXC9cXC9bXlxccy8kLj8jXS5bXlxcc10qJC8udGVzdCh0aGlzLnZhbHVlKSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMudXJsIHx8ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBVUkwuJztcbiAgICAgIHRoaXMuaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzSW52YWxpZCA9IGZhbHNlO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlID8gdGhpcy5hcHBseUNhcGl0YWxpemF0aW9uKHZhbHVlLnRyaW0oKSwgdGhpcy5jYXBpdGFsaXphdGlvbikgOiAnJztcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZSA9IGlzRGlzYWJsZWQ7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXIge3sgaW5wdXRDb250YWluZXJDbGFzcyB9fVwiXG4gICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICdkaXNwbGF5JzogJ2ZsZXgnLFxuICAgICAgJ2ZsZXgtZGlyZWN0aW9uJzogJ2NvbHVtbicsXG5cbiAgICAgfVwiXG4+XG4gIDxkaXZcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAnZGlzcGxheSc6ICdmbGV4JyxcbiAgICAgICdqdXN0aWZ5LWNvbnRlbnQnOiBsYWJlbFBvc2l0aW9uLFxuICAgICAgJ2NvbG9yJzogbGFiZWxDb2xvcixcbiAgICAgICdwYWRkaW5nJzogJzAnXG4gICAgfVwiXG4gICAgY2xhc3M9XCJpbnB1dC1maWVsZFwiXG4gID5cbiAgICA8bGFiZWwgW2Zvcl09XCJsYWJlbFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImlucHV0LXdyYXBwZXIge3sgaW5wdXRXcmFwcGVyQ2xhc3MgfX1cIj5cbiAgICA8aW5wdXRcbiAgICBbbmdDbGFzc109XCJ7J25nLWludmFsaWQnOiBpc0ludmFsaWR9XCJcbiAgICAgIFtpZF09XCJsYWJlbFwiXG4gICAgICBbYXR0ci50eXBlXT1cInR5cGVcIlxuICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIlxuXG4gICAgICBbYXR0ci5taW5sZW5ndGhdPVwibWluTGVuZ3RoPy50b1N0cmluZygpXCJcbiAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhMZW5ndGg/LnRvU3RyaW5nKClcIlxuICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiBiZ0NvbG9yLFxuICAgICAgICAnYm9yZGVyJzogaXNJbnZhbGlkICYmIGVycm9yQm9yZGVyQ29sb3I/ICcxcHggc29saWQgJyArIGVycm9yQm9yZGVyQ29sb3IgOiBib3JkZXIgLFxuICAgICAgICAnYm9yZGVyLXJhZGl1cyc6IGJvcmRlclJhZGl1cyxcbiAgICAgICAgJ2NvbG9yJzogdGV4dENvbG9yXG4gICAgICB9XCJcbiAgICAgIGNsYXNzPVwiaW5wdXQtZmllbGQgdmVyYmVuLWlucHV0XCJcbiAgICAvPlxuXG4gICAgPCEtLSBDb25kaXRpb25hbCByZWQgZG90IGZvciBlcnJvciB3aGVuIHNob3dFcnJvck1lc3NhZ2UgaXMgZmFsc2UgLS0+XG4gICAgPHZlcmJlbi10b29sdGlwICpuZ0lmPVwiZXJyb3JNZXNzYWdlICYmICFzaG93RXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBDb250ZW50XT1cInRvb2x0aXBUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbUNsYXNzPVwiZXJyb3ItdG9vbHRpcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImVycm9yLWRvdFwiXG4gICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBlcnJvckJvcmRlckNvbG9yIH1cIj5cbiAgICAgIDwvZGl2PlxuICAgIDwvdmVyYmVuLXRvb2x0aXA+XG5cbiAgICA8IS0tIFRvb2x0aXAgdGVtcGxhdGUgZm9yIGVycm9yIG1lc3NhZ2UgLS0+XG4gICAgPG5nLXRlbXBsYXRlICN0b29sdGlwVGVtcGxhdGU+XG4gICAgICB7eyBlcnJvck1lc3NhZ2UgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPCEtLSBDb25kaXRpb25hbCBlcnJvciBtZXNzYWdlIGRpc3BsYXkgLS0+XG4gICAgPHNwYW4gKm5nSWY9XCJlcnJvck1lc3NhZ2UgJiYgc2hvd0Vycm9yTWVzc2FnZVwiXG4gICAgICAgICAgW25nU3R5bGVdPVwieyAnY29sb3InOiBlcnJvck1lc3NhZ2VDb2xvciB9XCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J3ZlcmJlbi1lcnJvci1tZXNzYWdlJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAndG9wLWVycm9yJzogZXJyb3JQb3NpdGlvbiA9PT0gJ3RvcCcsXG4gICAgICAgICAgICAgICAgICAgICAgJ2xlZnQtZXJyb3InOiBlcnJvclBvc2l0aW9uID09PSAnbGVmdCcsXG4gICAgICAgICAgICAgICAgICAgICAgJ3JpZ2h0LWVycm9yJzogZXJyb3JQb3NpdGlvbiA9PT0gJ3JpZ2h0J31cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJiZW4tZXJyb3ItbWVzc2FnZSBcIlxuICAgICAgICAgICAgICAgICAgICAgID5cblxuICAgICAge3sgZXJyb3JNZXNzYWdlIH19XG5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Component, ContentChild, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { RightCardDataViewComponent } from './right-card-data-view/right-card-data-view.component';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
import * as i1 from "@angular/common";
|
|
4
5
|
import * as i2 from "../svg/svg.component";
|
|
@@ -19,22 +20,34 @@ export class CardDataViewComponent {
|
|
|
19
20
|
inActiveCss;
|
|
20
21
|
displayAsRow = true;
|
|
21
22
|
cardDataList = [];
|
|
22
|
-
dataId;
|
|
23
|
+
dataId; //what to use to identify each data
|
|
23
24
|
totalRecords = 0;
|
|
24
25
|
footer = false;
|
|
26
|
+
noOfVisibleChildren = 3;
|
|
27
|
+
rightContent;
|
|
28
|
+
// @ContentChild(LeftCardDataComponent) left!:LeftCardDataComponent;
|
|
25
29
|
card;
|
|
26
30
|
// @ContentChild('content') content!: TemplateRef<any>;
|
|
27
31
|
currentItem = {};
|
|
32
|
+
currentChildItem = {};
|
|
28
33
|
hasCurrentItem() {
|
|
29
|
-
return !!Object.keys(this.currentItem).length;
|
|
34
|
+
return !!Object.keys(this.currentItem).length || !!Object.keys(this.currentChildItem).length;
|
|
30
35
|
}
|
|
31
36
|
clearData() {
|
|
32
37
|
this.currentItem = {};
|
|
38
|
+
this.currentChildItem = {};
|
|
33
39
|
this.cardDataList.forEach(_ => {
|
|
34
40
|
_.selected = false;
|
|
41
|
+
_.children.forEach(c => { c.selected = false; c.isChildrenExpanded = false; });
|
|
42
|
+
_.isChildrenExpanded = false;
|
|
35
43
|
});
|
|
36
44
|
}
|
|
45
|
+
setDetailData() {
|
|
46
|
+
this.rightContent.parentData = this.currentItem;
|
|
47
|
+
this.rightContent.chilData = this.currentChildItem;
|
|
48
|
+
}
|
|
37
49
|
onItemClick(item) {
|
|
50
|
+
this.resetChildren(item);
|
|
38
51
|
item.selected = true;
|
|
39
52
|
this.cardDataList.forEach(element => {
|
|
40
53
|
if (element.data[this.dataId] == item.data[this.dataId]) {
|
|
@@ -44,18 +57,52 @@ export class CardDataViewComponent {
|
|
|
44
57
|
element.selected = false;
|
|
45
58
|
}
|
|
46
59
|
});
|
|
60
|
+
this.setDetailData();
|
|
47
61
|
return this.currentItem;
|
|
48
62
|
}
|
|
63
|
+
resetChildren(newSelect) {
|
|
64
|
+
if (this.currentItem && this.currentItem.children?.length) {
|
|
65
|
+
this.currentItem.children.forEach(c => {
|
|
66
|
+
c.selected = false;
|
|
67
|
+
});
|
|
68
|
+
if (newSelect.data[this.dataId] != this.currentItem.data[this.dataId])
|
|
69
|
+
this.currentItem.isChildrenExpanded = false;
|
|
70
|
+
}
|
|
71
|
+
this.currentChildItem = null;
|
|
72
|
+
}
|
|
73
|
+
onCardChildClick(childIndex) {
|
|
74
|
+
var item = this.currentItem.children[childIndex];
|
|
75
|
+
this.currentItem.children.forEach(element => {
|
|
76
|
+
if (element.data[this.dataId] == item.data[this.dataId]) {
|
|
77
|
+
this.currentChildItem = item;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
element.selected = false;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
this.currentChildItem.selected = true;
|
|
84
|
+
this.setDetailData();
|
|
85
|
+
return this.currentChildItem;
|
|
86
|
+
}
|
|
87
|
+
showChildren(item) {
|
|
88
|
+
var currToggleState = item.isChildrenExpanded;
|
|
89
|
+
this.cardDataList.forEach(_ => {
|
|
90
|
+
_.isChildrenExpanded = false;
|
|
91
|
+
_.selected = false;
|
|
92
|
+
});
|
|
93
|
+
item.selected = true;
|
|
94
|
+
item.isChildrenExpanded = !currToggleState;
|
|
95
|
+
}
|
|
49
96
|
loadMoreClick = new EventEmitter();
|
|
50
97
|
onLoadMoreClick() {
|
|
51
98
|
this.loadMoreClick.emit();
|
|
52
99
|
}
|
|
53
100
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CardDataViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
54
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: CardDataViewComponent, selector: "verben-card-data-view", inputs: { pd: "pd", mg: "mg", lHeight: "lHeight", rHeight: "rHeight", rWidth: "rWidth", lWidth: "lWidth", textColor: "textColor", lbgColor: "lbgColor", rbgColor: "rbgColor", border: "border", display: "display", borderRadius: "borderRadius", activeCss: "activeCss", inActiveCss: "inActiveCss", displayAsRow: "displayAsRow", cardDataList: "cardDataList", dataId: "dataId", totalRecords: "totalRecords", footer: "footer", onItemClick: "onItemClick" }, outputs: { loadMoreClick: "loadMoreClick" }, queries: [{ propertyName: "card", first: true, predicate: ["card"], descendants: true }], ngImport: i0, template: "\n<div class=\"container flex-col\" [style.display]=\"'flex'\" [style.margin]=\"mg\" > \n <!-- Header -->\n <ng-container ngProjectAs=\"verben-card-data-view-header\">\n <ng-content select='verben-card-data-view-header'></ng-content>\n </ng-container>\n\n <div [style.padding]=\"pd\" [ngClass]=\"!hasCurrentItem()?'master-only-container':'master-detail-container'\" >\n <!-- Card and Footer -->\n <div [style.borderRadius]=\"borderRadius\" [style.backgroundColor]=\"lbgColor\" class=\"flex-col \">\n <!-- Card section -->\n <ng-container ngProjectAs=\"verben-left-card-data-view\">\n <ng-content select='verben-left-card-data-view'></ng-content>\n </ng-container>\n\n <!-- Footer-->\n <ng-container ngProjectAs=\"verben-card-data-view-footer\">\n <ng-content select='verben-card-data-view-footer'></ng-content>\n </ng-container>\n </div>\n <!-- Detail Section-->\n <div [style.backgroundColor]=\"rbgColor\" *ngIf=\"hasCurrentItem()\" [style.borderRadius]=\"borderRadius\">\n <verben-svg (click)=\"clearData()\" class=\"cursor-pointer toRight\" icon=\"close\" [width]=\"20\" [height]=\"20\" color=\"black\"></verben-svg> \n <ng-container
|
|
101
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: CardDataViewComponent, selector: "verben-card-data-view", inputs: { pd: "pd", mg: "mg", lHeight: "lHeight", rHeight: "rHeight", rWidth: "rWidth", lWidth: "lWidth", textColor: "textColor", lbgColor: "lbgColor", rbgColor: "rbgColor", border: "border", display: "display", borderRadius: "borderRadius", activeCss: "activeCss", inActiveCss: "inActiveCss", displayAsRow: "displayAsRow", cardDataList: "cardDataList", dataId: "dataId", totalRecords: "totalRecords", footer: "footer", noOfVisibleChildren: "noOfVisibleChildren", onItemClick: "onItemClick", onCardChildClick: "onCardChildClick" }, outputs: { loadMoreClick: "loadMoreClick" }, queries: [{ propertyName: "rightContent", first: true, predicate: RightCardDataViewComponent, descendants: true }, { propertyName: "card", first: true, predicate: ["card"], descendants: true }], ngImport: i0, template: "\n<div #main class=\"container flex-col\" [style.display]=\"'flex'\" [style.margin]=\"mg\" > \n <!-- Header -->\n <ng-container ngProjectAs=\"verben-card-data-view-header\">\n <ng-content select='verben-card-data-view-header'></ng-content>\n </ng-container>\n\n <div [style.padding]=\"pd\" [ngClass]=\"!hasCurrentItem()?'master-only-container':'master-detail-container'\" >\n <!-- Card and Footer -->\n <div [style.borderRadius]=\"borderRadius\" [style.backgroundColor]=\"lbgColor\" class=\"flex-col \">\n <!-- Card section -->\n <ng-container ngProjectAs=\"verben-left-card-data-view\">\n <ng-content select='verben-left-card-data-view'></ng-content>\n </ng-container>\n\n <!-- Footer-->\n <ng-container ngProjectAs=\"verben-card-data-view-footer\">\n <ng-content select='verben-card-data-view-footer'></ng-content>\n </ng-container>\n </div>\n <!-- Detail Section-->\n <div [style.backgroundColor]=\"rbgColor\" *ngIf=\"hasCurrentItem()\" [style.borderRadius]=\"borderRadius\">\n <verben-svg (click)=\"clearData()\" class=\"cursor-pointer toRight\" icon=\"close\" [width]=\"20\" [height]=\"20\" color=\"black\"></verben-svg> \n <ng-container #right ngProjectAs=\"verben-right-card-data-view\">\n <ng-content #rightContent select='verben-right-card-data-view'></ng-content>\n </ng-container>\n </div>\n </div>\n</div>", styles: [".container{gap:10px;min-height:100vh}:host{border-radius:12px}.master-detail-container{display:grid;grid-template-columns:30% 70%;gap:15px;justify-content:center;margin-top:20px}.master-only-container{display:grid;grid-template-columns:100%;justify-content:center;margin-top:20px}.paginator-text{margin-left:auto;margin-right:auto}.cursor-pointer{cursor:pointer}.toRight{float:right;margin:5px 10px 0 0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "size"] }] });
|
|
55
102
|
}
|
|
56
103
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CardDataViewComponent, decorators: [{
|
|
57
104
|
type: Component,
|
|
58
|
-
args: [{ selector: 'verben-card-data-view', template: "\n<div class=\"container flex-col\" [style.display]=\"'flex'\" [style.margin]=\"mg\" > \n <!-- Header -->\n <ng-container ngProjectAs=\"verben-card-data-view-header\">\n <ng-content select='verben-card-data-view-header'></ng-content>\n </ng-container>\n\n <div [style.padding]=\"pd\" [ngClass]=\"!hasCurrentItem()?'master-only-container':'master-detail-container'\" >\n <!-- Card and Footer -->\n <div [style.borderRadius]=\"borderRadius\" [style.backgroundColor]=\"lbgColor\" class=\"flex-col \">\n <!-- Card section -->\n <ng-container ngProjectAs=\"verben-left-card-data-view\">\n <ng-content select='verben-left-card-data-view'></ng-content>\n </ng-container>\n\n <!-- Footer-->\n <ng-container ngProjectAs=\"verben-card-data-view-footer\">\n <ng-content select='verben-card-data-view-footer'></ng-content>\n </ng-container>\n </div>\n <!-- Detail Section-->\n <div [style.backgroundColor]=\"rbgColor\" *ngIf=\"hasCurrentItem()\" [style.borderRadius]=\"borderRadius\">\n <verben-svg (click)=\"clearData()\" class=\"cursor-pointer toRight\" icon=\"close\" [width]=\"20\" [height]=\"20\" color=\"black\"></verben-svg> \n <ng-container
|
|
105
|
+
args: [{ selector: 'verben-card-data-view', template: "\n<div #main class=\"container flex-col\" [style.display]=\"'flex'\" [style.margin]=\"mg\" > \n <!-- Header -->\n <ng-container ngProjectAs=\"verben-card-data-view-header\">\n <ng-content select='verben-card-data-view-header'></ng-content>\n </ng-container>\n\n <div [style.padding]=\"pd\" [ngClass]=\"!hasCurrentItem()?'master-only-container':'master-detail-container'\" >\n <!-- Card and Footer -->\n <div [style.borderRadius]=\"borderRadius\" [style.backgroundColor]=\"lbgColor\" class=\"flex-col \">\n <!-- Card section -->\n <ng-container ngProjectAs=\"verben-left-card-data-view\">\n <ng-content select='verben-left-card-data-view'></ng-content>\n </ng-container>\n\n <!-- Footer-->\n <ng-container ngProjectAs=\"verben-card-data-view-footer\">\n <ng-content select='verben-card-data-view-footer'></ng-content>\n </ng-container>\n </div>\n <!-- Detail Section-->\n <div [style.backgroundColor]=\"rbgColor\" *ngIf=\"hasCurrentItem()\" [style.borderRadius]=\"borderRadius\">\n <verben-svg (click)=\"clearData()\" class=\"cursor-pointer toRight\" icon=\"close\" [width]=\"20\" [height]=\"20\" color=\"black\"></verben-svg> \n <ng-container #right ngProjectAs=\"verben-right-card-data-view\">\n <ng-content #rightContent select='verben-right-card-data-view'></ng-content>\n </ng-container>\n </div>\n </div>\n</div>", styles: [".container{gap:10px;min-height:100vh}:host{border-radius:12px}.master-detail-container{display:grid;grid-template-columns:30% 70%;gap:15px;justify-content:center;margin-top:20px}.master-only-container{display:grid;grid-template-columns:100%;justify-content:center;margin-top:20px}.paginator-text{margin-left:auto;margin-right:auto}.cursor-pointer{cursor:pointer}.toRight{float:right;margin:5px 10px 0 0}\n"] }]
|
|
59
106
|
}], propDecorators: { pd: [{
|
|
60
107
|
type: Input
|
|
61
108
|
}], mg: [{
|
|
@@ -94,12 +141,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
94
141
|
type: Input
|
|
95
142
|
}], footer: [{
|
|
96
143
|
type: Input
|
|
144
|
+
}], noOfVisibleChildren: [{
|
|
145
|
+
type: Input
|
|
146
|
+
}], rightContent: [{
|
|
147
|
+
type: ContentChild,
|
|
148
|
+
args: [RightCardDataViewComponent]
|
|
97
149
|
}], card: [{
|
|
98
150
|
type: ContentChild,
|
|
99
151
|
args: ['card']
|
|
100
152
|
}], onItemClick: [{
|
|
101
153
|
type: Input
|
|
154
|
+
}], onCardChildClick: [{
|
|
155
|
+
type: Input
|
|
102
156
|
}], loadMoreClick: [{
|
|
103
157
|
type: Output
|
|
104
158
|
}] } });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1kYXRhLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWRhdGEtdmlldy9jYXJkLWRhdGEtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtZGF0YS12aWV3L2NhcmQtZGF0YS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLFlBQVksRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBMEIsTUFBTSxlQUFlLENBQUM7Ozs7QUFVM0ksTUFBTSxPQUFPLHFCQUFxQjtJQUN2QixFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ1osRUFBRSxHQUFHLEtBQUssQ0FBQztJQUNYLE9BQU8sR0FBUyxNQUFNLENBQUM7SUFDdkIsT0FBTyxHQUFTLE1BQU0sQ0FBQztJQUN2QixNQUFNLEdBQVMsS0FBSyxDQUFDO0lBQ3JCLE1BQU0sR0FBUyxLQUFLLENBQUM7SUFDckIsU0FBUyxDQUFVO0lBQ25CLFFBQVEsQ0FBVTtJQUNsQixRQUFRLENBQVU7SUFDbEIsTUFBTSxDQUFVO0lBQ2hCLE9BQU8sQ0FBVTtJQUNqQixZQUFZLEdBQVMsTUFBTSxDQUFDO0lBQzVCLFNBQVMsQ0FBVTtJQUNuQixXQUFXLENBQVU7SUFDckIsWUFBWSxHQUFXLElBQUksQ0FBQztJQUM1QixZQUFZLEdBQVksRUFBRSxDQUFDO0lBQzNCLE1BQU0sQ0FBUztJQUNmLFlBQVksR0FBUSxDQUFDLENBQUM7SUFDdEIsTUFBTSxHQUFTLEtBQUssQ0FBQztJQUdSLElBQUksQ0FBb0I7SUFDOUMsdURBQXVEO0lBQ3ZELFdBQVcsR0FBSyxFQUFFLENBQUM7SUFDbkIsY0FBYztRQUVaLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtJQUMvQyxDQUFDO0lBQ0QsU0FBUztRQUVQLElBQUksQ0FBQyxXQUFXLEdBQUMsRUFBYyxDQUFBO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQSxFQUFFO1lBQzNCLENBQUMsQ0FBQyxRQUFRLEdBQUMsS0FBSyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNPLFdBQVcsQ0FBQyxJQUFhO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUUsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2xDLElBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQ3BELENBQUM7Z0JBQ0MsSUFBSSxDQUFDLFdBQVcsR0FBRSxJQUFJLENBQUM7WUFDekIsQ0FBQztpQkFFRCxDQUFDO2dCQUNDLE9BQU8sQ0FBQyxRQUFRLEdBQUMsS0FBSyxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQTtJQUN6QixDQUFDO0lBQ1MsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDN0MsZUFBZTtRQUViLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQzt1R0F0RFUscUJBQXFCOzJGQUFyQixxQkFBcUIsc29CQ1ZsQywrN0NBNEJNOzsyRkRsQk8scUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLHVCQUF1Qjs4QkFNeEIsRUFBRTtzQkFBVixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUdnQixJQUFJO3NCQUF6QixZQUFZO3VCQUFDLE1BQU07Z0JBY1gsV0FBVztzQkFBbkIsS0FBSztnQkFjSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FyZERhdGEgfSBmcm9tICcuL2NhcmQtZGF0YSc7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZXJiZW4tY2FyZC1kYXRhLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZC1kYXRhLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY2FyZC1kYXRhLXZpZXcuY29tcG9uZW50LmNzcydcbn0pXG5cbmV4cG9ydCBjbGFzcyBDYXJkRGF0YVZpZXdDb21wb25lbnQgIHtcbiAgQElucHV0KCkgcGQgPSAnMTBweCc7XG4gIEBJbnB1dCgpIG1nID0gJzBweCc7XG4gIEBJbnB1dCgpIGxIZWlnaHQ/OnN0cmluZz1cIjEwMCVcIjtcbiAgQElucHV0KCkgckhlaWdodD86c3RyaW5nPVwiMTAwJVwiO1xuICBASW5wdXQoKSByV2lkdGg/OnN0cmluZz1cIjcwJVwiO1xuICBASW5wdXQoKSBsV2lkdGg/OnN0cmluZz1cIjMwJVwiO1xuICBASW5wdXQoKSB0ZXh0Q29sb3I/OnN0cmluZyA7XG4gIEBJbnB1dCgpIGxiZ0NvbG9yPzpzdHJpbmcgO1xuICBASW5wdXQoKSByYmdDb2xvcj86c3RyaW5nIDtcbiAgQElucHV0KCkgYm9yZGVyPzpzdHJpbmcgO1xuICBASW5wdXQoKSBkaXNwbGF5PzpzdHJpbmcgO1xuICBASW5wdXQoKSBib3JkZXJSYWRpdXM/OnN0cmluZz1cIjEycHhcIjtcbiAgQElucHV0KCkgYWN0aXZlQ3NzPzpzdHJpbmcgO1xuICBASW5wdXQoKSBpbkFjdGl2ZUNzcz86c3RyaW5nIDtcbiAgQElucHV0KCkgZGlzcGxheUFzUm93Pzpib29sZWFuID10cnVlO1xuICBASW5wdXQoKSBjYXJkRGF0YUxpc3Q6Q2FyZERhdGFbXT1bXTtcbiAgQElucHV0KCkgZGF0YUlkITpzdHJpbmc7XG4gIEBJbnB1dCgpIHRvdGFsUmVjb3JkczpudW1iZXI9MDtcbiAgQElucHV0KCkgZm9vdGVyOmJvb2xlYW49ZmFsc2U7XG5cblxuICBAQ29udGVudENoaWxkKCdjYXJkJykgY2FyZCE6IFRlbXBsYXRlUmVmPGFueT47XG4gIC8vIEBDb250ZW50Q2hpbGQoJ2NvbnRlbnQnKSBjb250ZW50ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgY3VycmVudEl0ZW06YW55PXt9O1xuICBoYXNDdXJyZW50SXRlbSgpXG4gIHtcbiAgICByZXR1cm4gISFPYmplY3Qua2V5cyh0aGlzLmN1cnJlbnRJdGVtKS5sZW5ndGhcbiAgfVxuICBjbGVhckRhdGEoKVxuICAge1xuICAgIHRoaXMuY3VycmVudEl0ZW09e30gYXMgQ2FyZERhdGFcbiAgICB0aGlzLmNhcmREYXRhTGlzdC5mb3JFYWNoKF89PntcbiAgICAgIF8uc2VsZWN0ZWQ9ZmFsc2U7XG4gICAgfSk7XG4gICB9XG4gIEBJbnB1dCgpIG9uSXRlbUNsaWNrKGl0ZW06Q2FyZERhdGEpe1xuICAgIGl0ZW0uc2VsZWN0ZWQ9IHRydWU7XG4gICAgdGhpcy5jYXJkRGF0YUxpc3QuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgIGlmKGVsZW1lbnQuZGF0YVt0aGlzLmRhdGFJZF09PWl0ZW0uZGF0YVt0aGlzLmRhdGFJZF0pXG4gICAgICB7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW09IGl0ZW07XG4gICAgICB9XG4gICAgICBlbHNlXG4gICAgICB7XG4gICAgICAgIGVsZW1lbnQuc2VsZWN0ZWQ9ZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudEl0ZW1cbiAgfVxuICBAT3V0cHV0KCkgbG9hZE1vcmVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgb25Mb2FkTW9yZUNsaWNrKClcbiAge1xuICAgIHRoaXMubG9hZE1vcmVDbGljay5lbWl0KCk7XG4gIH1cbn1cbiIsIlxuPGRpdiBjbGFzcz1cImNvbnRhaW5lciBmbGV4LWNvbFwiIFtzdHlsZS5kaXNwbGF5XT1cIidmbGV4J1wiIFtzdHlsZS5tYXJnaW5dPVwibWdcIiA+IFxuICAgICA8IS0tIEhlYWRlciAtLT5cbiAgICAgPG5nLWNvbnRhaW5lciBuZ1Byb2plY3RBcz1cInZlcmJlbi1jYXJkLWRhdGEtdmlldy1oZWFkZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSd2ZXJiZW4tY2FyZC1kYXRhLXZpZXctaGVhZGVyJz48L25nLWNvbnRlbnQ+XG4gICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgIDxkaXYgW3N0eWxlLnBhZGRpbmddPVwicGRcIiAgW25nQ2xhc3NdPVwiIWhhc0N1cnJlbnRJdGVtKCk/J21hc3Rlci1vbmx5LWNvbnRhaW5lcic6J21hc3Rlci1kZXRhaWwtY29udGFpbmVyJ1wiICA+XG4gICAgICA8IS0tIENhcmQgYW5kIEZvb3RlciAtLT5cbiAgICAgICAgPGRpdiBbc3R5bGUuYm9yZGVyUmFkaXVzXT1cImJvcmRlclJhZGl1c1wiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwibGJnQ29sb3JcIiBjbGFzcz1cImZsZXgtY29sIFwiPlxuICAgICAgICAgIDwhLS0gQ2FyZCBzZWN0aW9uIC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgbmdQcm9qZWN0QXM9XCJ2ZXJiZW4tbGVmdC1jYXJkLWRhdGEtdmlld1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSd2ZXJiZW4tbGVmdC1jYXJkLWRhdGEtdmlldyc+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPCEtLSBGb290ZXItLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyIG5nUHJvamVjdEFzPVwidmVyYmVuLWNhcmQtZGF0YS12aWV3LWZvb3RlclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSd2ZXJiZW4tY2FyZC1kYXRhLXZpZXctZm9vdGVyJz48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBEZXRhaWwgU2VjdGlvbi0tPlxuICAgICAgIDxkaXYgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJyYmdDb2xvclwiICpuZ0lmPVwiaGFzQ3VycmVudEl0ZW0oKVwiIFtzdHlsZS5ib3JkZXJSYWRpdXNdPVwiYm9yZGVyUmFkaXVzXCI+XG4gICAgICAgICA8dmVyYmVuLXN2ZyAgKGNsaWNrKT1cImNsZWFyRGF0YSgpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB0b1JpZ2h0XCIgaWNvbj1cImNsb3NlXCIgW3dpZHRoXT1cIjIwXCIgW2hlaWdodF09XCIyMFwiICBjb2xvcj1cImJsYWNrXCI+PC92ZXJiZW4tc3ZnPiBcbiAgICAgICAgIDxuZy1jb250YWluZXIgICBuZ1Byb2plY3RBcz1cInZlcmJlbi1yaWdodC1jYXJkLWRhdGEtdmlld1wiPlxuICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9J3ZlcmJlbi1yaWdodC1jYXJkLWRhdGEtdmlldyc+PC9uZy1jb250ZW50PlxuICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgPC9kaXY+XG4gICAgIDwvZGl2PlxuPC9kaXY+Il19
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1kYXRhLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWRhdGEtdmlldy9jYXJkLWRhdGEtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtZGF0YS12aWV3L2NhcmQtZGF0YS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFnQixZQUFZLEVBQXNCLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFxQyxNQUFNLGVBQWUsQ0FBQztBQUc1SyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7OztBQVNuRyxNQUFNLE9BQU8scUJBQXFCO0lBQ3ZCLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDWixFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQ1gsT0FBTyxHQUFTLE1BQU0sQ0FBQztJQUN2QixPQUFPLEdBQVMsTUFBTSxDQUFDO0lBQ3ZCLE1BQU0sR0FBUyxLQUFLLENBQUM7SUFDckIsTUFBTSxHQUFTLEtBQUssQ0FBQztJQUNyQixTQUFTLENBQVU7SUFDbkIsUUFBUSxDQUFVO0lBQ2xCLFFBQVEsQ0FBVTtJQUNsQixNQUFNLENBQVU7SUFDaEIsT0FBTyxDQUFVO0lBQ2pCLFlBQVksR0FBUyxNQUFNLENBQUM7SUFDNUIsU0FBUyxDQUFVO0lBQ25CLFdBQVcsQ0FBVTtJQUNyQixZQUFZLEdBQVcsSUFBSSxDQUFDO0lBQzVCLFlBQVksR0FBWSxFQUFFLENBQUM7SUFDM0IsTUFBTSxDQUFTLENBQUMsbUNBQW1DO0lBQ25ELFlBQVksR0FBUSxDQUFDLENBQUM7SUFDdEIsTUFBTSxHQUFTLEtBQUssQ0FBQztJQUNyQixtQkFB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QixFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNvQyxZQUFZO3NCQUFyRCxZQUFZO3VCQUFDLDBCQUEwQjtnQkFFbEIsSUFBSTtzQkFBekIsWUFBWTt1QkFBQyxNQUFNO2dCQXdCWCxXQUFXO3NCQUFuQixLQUFLO2dCQTJCRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBMkJJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIGNvbnRlbnRDaGlsZCwgQ29udGVudENoaWxkLCBlZmZlY3QsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIHZpZXdDaGlsZCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYXJkRGF0YSB9IGZyb20gJy4vY2FyZC1kYXRhJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSaWdodENhcmREYXRhVmlld0NvbXBvbmVudCB9IGZyb20gJy4vcmlnaHQtY2FyZC1kYXRhLXZpZXcvcmlnaHQtY2FyZC1kYXRhLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IExlZnRDYXJkRGF0YUNvbXBvbmVudCB9IGZyb20gJy4vbGVmdC1jYXJkLWRhdGEvbGVmdC1jYXJkLWRhdGEuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVyYmVuLWNhcmQtZGF0YS12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtZGF0YS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NhcmQtZGF0YS12aWV3LmNvbXBvbmVudC5jc3MnXG59KVxuXG5leHBvcnQgY2xhc3MgQ2FyZERhdGFWaWV3Q29tcG9uZW50ICB7XG4gIEBJbnB1dCgpIHBkID0gJzEwcHgnO1xuICBASW5wdXQoKSBtZyA9ICcwcHgnO1xuICBASW5wdXQoKSBsSGVpZ2h0PzpzdHJpbmc9XCIxMDAlXCI7XG4gIEBJbnB1dCgpIHJIZWlnaHQ/OnN0cmluZz1cIjEwMCVcIjtcbiAgQElucHV0KCkgcldpZHRoPzpzdHJpbmc9XCI3MCVcIjtcbiAgQElucHV0KCkgbFdpZHRoPzpzdHJpbmc9XCIzMCVcIjtcbiAgQElucHV0KCkgdGV4dENvbG9yPzpzdHJpbmcgO1xuICBASW5wdXQoKSBsYmdDb2xvcj86c3RyaW5nIDtcbiAgQElucHV0KCkgcmJnQ29sb3I/OnN0cmluZyA7XG4gIEBJbnB1dCgpIGJvcmRlcj86c3RyaW5nIDtcbiAgQElucHV0KCkgZGlzcGxheT86c3RyaW5nIDtcbiAgQElucHV0KCkgYm9yZGVyUmFkaXVzPzpzdHJpbmc9XCIxMnB4XCI7XG4gIEBJbnB1dCgpIGFjdGl2ZUNzcz86c3RyaW5nIDtcbiAgQElucHV0KCkgaW5BY3RpdmVDc3M/OnN0cmluZyA7XG4gIEBJbnB1dCgpIGRpc3BsYXlBc1Jvdz86Ym9vbGVhbiA9dHJ1ZTtcbiAgQElucHV0KCkgY2FyZERhdGFMaXN0OkNhcmREYXRhW109W107XG4gIEBJbnB1dCgpIGRhdGFJZCE6c3RyaW5nOyAvL3doYXQgdG8gdXNlIHRvIGlkZW50aWZ5IGVhY2ggZGF0YVxuICBASW5wdXQoKSB0b3RhbFJlY29yZHM6bnVtYmVyPTA7XG4gIEBJbnB1dCgpIGZvb3Rlcjpib29sZWFuPWZhbHNlO1xuICBASW5wdXQoKSBub09mVmlzaWJsZUNoaWxkcmVuOm51bWJlcj0zO1xuICBAQ29udGVudENoaWxkKFJpZ2h0Q2FyZERhdGFWaWV3Q29tcG9uZW50KSByaWdodENvbnRlbnQhOlJpZ2h0Q2FyZERhdGFWaWV3Q29tcG9uZW50OyBcbiAgLy8gQENvbnRlbnRDaGlsZChMZWZ0Q2FyZERhdGFDb21wb25lbnQpIGxlZnQhOkxlZnRDYXJkRGF0YUNvbXBvbmVudDsgXG4gIEBDb250ZW50Q2hpbGQoJ2NhcmQnKSBjYXJkITogVGVtcGxhdGVSZWY8YW55PjtcbiAgLy8gQENvbnRlbnRDaGlsZCgnY29udGVudCcpIGNvbnRlbnQhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBjdXJyZW50SXRlbTphbnk9e307XG4gIGN1cnJlbnRDaGlsZEl0ZW06YW55PXt9O1xuXG4gIGhhc0N1cnJlbnRJdGVtKClcbiAge1xuICAgIHJldHVybiAhIU9iamVjdC5rZXlzKHRoaXMuY3VycmVudEl0ZW0pLmxlbmd0aCB8fCAhIU9iamVjdC5rZXlzKHRoaXMuY3VycmVudENoaWxkSXRlbSkubGVuZ3RoXG4gIH1cbiAgY2xlYXJEYXRhKClcbiAgIHtcbiAgICB0aGlzLmN1cnJlbnRJdGVtPXt9IGFzIENhcmREYXRhXG4gICAgdGhpcy5jdXJyZW50Q2hpbGRJdGVtPXt9IGFzIENhcmREYXRhXG4gICAgdGhpcy5jYXJkRGF0YUxpc3QuZm9yRWFjaChfPT57XG4gICAgICBfLnNlbGVjdGVkPWZhbHNlO1xuICAgICAgXy5jaGlsZHJlbi5mb3JFYWNoKGM9PntjLnNlbGVjdGVkPWZhbHNlO2MuaXNDaGlsZHJlbkV4cGFuZGVkPWZhbHNlfSlcbiAgICAgIF8uaXNDaGlsZHJlbkV4cGFuZGVkPWZhbHNlXG4gICAgfSk7XG4gICB9XG4gICBzZXREZXRhaWxEYXRhKClcbiAgIHtcbiAgICAgdGhpcy5yaWdodENvbnRlbnQucGFyZW50RGF0YT0gdGhpcy5jdXJyZW50SXRlbTtcbiAgICAgIHRoaXMucmlnaHRDb250ZW50LmNoaWxEYXRhPSB0aGlzLmN1cnJlbnRDaGlsZEl0ZW07XG4gICB9XG4gIEBJbnB1dCgpIG9uSXRlbUNsaWNrKGl0ZW06Q2FyZERhdGEpe1xuICAgIHRoaXMucmVzZXRDaGlsZHJlbihpdGVtKTtcbiAgICBpdGVtLnNlbGVjdGVkPSB0cnVlO1xuICAgIHRoaXMuY2FyZERhdGFMaXN0LmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICBpZihlbGVtZW50LmRhdGFbdGhpcy5kYXRhSWRdPT1pdGVtLmRhdGFbdGhpcy5kYXRhSWRdKVxuICAgICAge1xuICAgICAgICB0aGlzLmN1cnJlbnRJdGVtPSBpdGVtO1xuICAgICAgfVxuICAgICAgZWxzZVxuICAgICAge1xuICAgICAgICBlbGVtZW50LnNlbGVjdGVkPWZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc2V0RGV0YWlsRGF0YSgpXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudEl0ZW1cbiAgfVxuIHJlc2V0Q2hpbGRyZW4obmV3U2VsZWN0OkNhcmREYXRhKVxuICB7XG4gICAgaWYodGhpcy5jdXJyZW50SXRlbSAmJiB0aGlzLmN1cnJlbnRJdGVtLmNoaWxkcmVuPy5sZW5ndGgpe1xuICAgKHRoaXMuY3VycmVudEl0ZW0uY2hpbGRyZW4gYXMgYW55W10pLmZvckVhY2goYz0+e1xuICAgIGMuc2VsZWN0ZWQ9ZmFsc2U7XG4gIH0pXG4gIGlmKG5ld1NlbGVjdC5kYXRhW3RoaXMuZGF0YUlkXSE9dGhpcy5jdXJyZW50SXRlbS5kYXRhW3RoaXMuZGF0YUlkXSlcbiAgICB0aGlzLmN1cnJlbnRJdGVtLmlzQ2hpbGRyZW5FeHBhbmRlZD1mYWxzZTtcbn1cbiAgdGhpcy5jdXJyZW50Q2hpbGRJdGVtPSBudWxsO1xuICB9XG4gIEBJbnB1dCgpIG9uQ2FyZENoaWxkQ2xpY2soY2hpbGRJbmRleDpudW1iZXIpe1xuICAgIHZhciBpdGVtID0gdGhpcy5jdXJyZW50SXRlbS5jaGlsZHJlbltjaGlsZEluZGV4XTtcbiAgICAodGhpcy5jdXJyZW50SXRlbS5jaGlsZHJlbiBhcyBhbnlbXSkuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgIGlmKGVsZW1lbnQuZGF0YVt0aGlzLmRhdGFJZF09PWl0ZW0uZGF0YVt0aGlzLmRhdGFJZF0pXG4gICAgICB7XG4gICAgICAgIHRoaXMuY3VycmVudENoaWxkSXRlbT0gaXRlbTtcbiAgICAgIH1cbiAgICAgIGVsc2VcbiAgICAgIHtcbiAgICAgICAgZWxlbWVudC5zZWxlY3RlZD1mYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmN1cnJlbnRDaGlsZEl0ZW0uc2VsZWN0ZWQ9dHJ1ZTtcbiAgICB0aGlzLnNldERldGFpbERhdGEoKVxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRDaGlsZEl0ZW1cbiAgfVxuICBzaG93Q2hpbGRyZW4oaXRlbTpDYXJkRGF0YSlcbiAge1xuICAgIHZhciBjdXJyVG9nZ2xlU3RhdGU9IGl0ZW0uaXNDaGlsZHJlbkV4cGFuZGVkO1xuICAgIHRoaXMuY2FyZERhdGFMaXN0LmZvckVhY2goXz0+e1xuICAgICAgXy5pc0NoaWxkcmVuRXhwYW5kZWQ9ZmFsc2VcbiAgICAgIF8uc2VsZWN0ZWQ9ZmFsc2U7XG4gICAgfSk7XG4gICAgaXRlbS5zZWxlY3RlZD10cnVlO1xuICAgIGl0ZW0uaXNDaGlsZHJlbkV4cGFuZGVkPSFjdXJyVG9nZ2xlU3RhdGVcbiAgfVxuXG4gIEBPdXRwdXQoKSBsb2FkTW9yZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBvbkxvYWRNb3JlQ2xpY2soKVxuICB7XG4gICAgdGhpcy5sb2FkTW9yZUNsaWNrLmVtaXQoKTtcbiAgfVxufVxuIiwiXG48ZGl2ICNtYWluIGNsYXNzPVwiY29udGFpbmVyIGZsZXgtY29sXCIgW3N0eWxlLmRpc3BsYXldPVwiJ2ZsZXgnXCIgW3N0eWxlLm1hcmdpbl09XCJtZ1wiID4gXG4gICAgIDwhLS0gSGVhZGVyIC0tPlxuICAgICA8bmctY29udGFpbmVyIG5nUHJvamVjdEFzPVwidmVyYmVuLWNhcmQtZGF0YS12aWV3LWhlYWRlclwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9J3ZlcmJlbi1jYXJkLWRhdGEtdmlldy1oZWFkZXInPjwvbmctY29udGVudD5cbiAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgPGRpdiBbc3R5bGUucGFkZGluZ109XCJwZFwiICBbbmdDbGFzc109XCIhaGFzQ3VycmVudEl0ZW0oKT8nbWFzdGVyLW9ubHktY29udGFpbmVyJzonbWFzdGVyLWRldGFpbC1jb250YWluZXInXCIgID5cbiAgICAgIDwhLS0gQ2FyZCBhbmQgRm9vdGVyIC0tPlxuICAgICAgICA8ZGl2IFtzdHlsZS5ib3JkZXJSYWRpdXNdPVwiYm9yZGVyUmFkaXVzXCIgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJsYmdDb2xvclwiIGNsYXNzPVwiZmxleC1jb2wgXCI+XG4gICAgICAgICAgPCEtLSBDYXJkIHNlY3Rpb24gLS0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBuZ1Byb2plY3RBcz1cInZlcmJlbi1sZWZ0LWNhcmQtZGF0YS12aWV3XCI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9J3ZlcmJlbi1sZWZ0LWNhcmQtZGF0YS12aWV3Jz48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8IS0tIEZvb3Rlci0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgbmdQcm9qZWN0QXM9XCJ2ZXJiZW4tY2FyZC1kYXRhLXZpZXctZm9vdGVyXCI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9J3ZlcmJlbi1jYXJkLWRhdGEtdmlldy1mb290ZXInPjwvbmctY29udGVudD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8IS0tIERldGFpbCBTZWN0aW9uLS0+XG4gICAgICAgPGRpdiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cInJiZ0NvbG9yXCIgKm5nSWY9XCJoYXNDdXJyZW50SXRlbSgpXCIgW3N0eWxlLmJvcmRlclJhZGl1c109XCJib3JkZXJSYWRpdXNcIj5cbiAgICAgICAgIDx2ZXJiZW4tc3ZnICAoY2xpY2spPVwiY2xlYXJEYXRhKClcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyIHRvUmlnaHRcIiBpY29uPVwiY2xvc2VcIiBbd2lkdGhdPVwiMjBcIiBbaGVpZ2h0XT1cIjIwXCIgIGNvbG9yPVwiYmxhY2tcIj48L3ZlcmJlbi1zdmc+IFxuICAgICAgICAgPG5nLWNvbnRhaW5lciAjcmlnaHQgIG5nUHJvamVjdEFzPVwidmVyYmVuLXJpZ2h0LWNhcmQtZGF0YS12aWV3XCI+XG4gICAgICAgICAgIDxuZy1jb250ZW50ICNyaWdodENvbnRlbnQgc2VsZWN0PSd2ZXJiZW4tcmlnaHQtY2FyZC1kYXRhLXZpZXcnPjwvbmctY29udGVudD5cbiAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgIDwvZGl2PlxuICAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -3,5 +3,7 @@ export class CardData {
|
|
|
3
3
|
title = '';
|
|
4
4
|
body = [];
|
|
5
5
|
data;
|
|
6
|
+
children = [];
|
|
7
|
+
isChildrenExpanded = false;
|
|
6
8
|
}
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWRhdGEtdmlldy9jYXJkLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFFBQVE7SUFFbkIsUUFBUSxHQUFTLEtBQUssQ0FBQztJQUN2QixLQUFLLEdBQVEsRUFBRSxDQUFDO0lBQ2hCLElBQUksR0FBK0IsRUFBRSxDQUFDO0lBQ3RDLElBQUksQ0FBTTtJQUNWLFFBQVEsR0FBWSxFQUFFLENBQUE7SUFDdEIsa0JBQWtCLEdBQVUsS0FBSyxDQUFBO0NBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIENhcmREYXRhXG57XG4gIHNlbGVjdGVkOmJvb2xlYW49ZmFsc2U7XG4gIHRpdGxlOnN0cmluZz0nJztcbiAgYm9keTp7dGl0bGU6c3RyaW5nLHZhbHVlOnN0cmluZ31bXT1bXTtcbiAgZGF0YT86YW55O1xuICBjaGlsZHJlbjpDYXJkRGF0YVtdPVtdXG4gIGlzQ2hpbGRyZW5FeHBhbmRlZD86Ym9vbGVhbj1mYWxzZVxufSJdfQ==
|