master-control 0.3.32 → 0.3.34
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/autocomplete/autocomplete.component.mjs +16 -48
- package/esm2022/lib/footer/footer.component.mjs +12 -0
- package/esm2022/lib/footer-with-buttons/footer-with-buttons.component.mjs +23 -0
- package/esm2022/lib/master-control.component.mjs +10 -4
- package/esm2022/lib/textbox/textbox.component.mjs +213 -61
- package/esm2022/lib/top-header/top-header.component.mjs +34 -0
- package/fesm2022/master-control.mjs +292 -110
- package/fesm2022/master-control.mjs.map +1 -1
- package/lib/autocomplete/autocomplete.component.d.ts +1 -7
- package/lib/footer/footer.component.d.ts +6 -0
- package/lib/footer-with-buttons/footer-with-buttons.component.d.ts +16 -0
- package/lib/textbox/textbox.component.d.ts +26 -14
- package/lib/top-header/top-header.component.d.ts +23 -0
- package/master-control-0.3.34.tgz +0 -0
- package/package.json +2 -2
- package/master-control-0.3.32.tgz +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, input, Output, EventEmitter } from '@angular/core';
|
|
1
|
+
import { Component, forwardRef, input, Output, EventEmitter, effect, } from '@angular/core';
|
|
2
2
|
import { MatInputModule } from '@angular/material/input';
|
|
3
3
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
@@ -11,100 +11,252 @@ import * as i4 from "@angular/common";
|
|
|
11
11
|
import * as i5 from "@angular/forms";
|
|
12
12
|
export class TextboxComponent {
|
|
13
13
|
masterService;
|
|
14
|
-
|
|
14
|
+
kvDiffers;
|
|
15
|
+
constructor(masterService, kvDiffers) {
|
|
15
16
|
this.masterService = masterService;
|
|
17
|
+
this.kvDiffers = kvDiffers;
|
|
18
|
+
effect(() => {
|
|
19
|
+
const f = this.field();
|
|
20
|
+
if (!f)
|
|
21
|
+
return;
|
|
22
|
+
if (f.isInputMasked == null)
|
|
23
|
+
f.isInputMasked = false;
|
|
24
|
+
this.syncUIFromRaw();
|
|
25
|
+
});
|
|
16
26
|
}
|
|
17
|
-
inputValue = null;
|
|
18
27
|
field = input.required();
|
|
19
28
|
reactiveFormControlobject = input();
|
|
20
|
-
_onChange = (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
29
|
+
_onChange = () => { };
|
|
30
|
+
_onTouched = () => { };
|
|
31
|
+
inputValueDeepCopy = '';
|
|
32
|
+
inputValue = '';
|
|
33
|
+
lastBeforeInput = null;
|
|
34
|
+
fieldDiffer;
|
|
35
|
+
cfgDiffer;
|
|
36
|
+
styleDiffer;
|
|
37
|
+
validatorsDiffer;
|
|
25
38
|
blur = new EventEmitter();
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
39
|
+
ngDoCheck() {
|
|
40
|
+
const f = this.field?.();
|
|
41
|
+
if (!f)
|
|
42
|
+
return;
|
|
43
|
+
if (!this.fieldDiffer)
|
|
44
|
+
this.fieldDiffer = this.kvDiffers.find(f).create();
|
|
45
|
+
let changed = !!this.fieldDiffer.diff(f);
|
|
46
|
+
if (f.configData) {
|
|
47
|
+
if (!this.cfgDiffer)
|
|
48
|
+
this.cfgDiffer = this.kvDiffers.find(f.configData).create();
|
|
49
|
+
if (this.cfgDiffer.diff(f.configData))
|
|
50
|
+
changed = true;
|
|
29
51
|
}
|
|
30
|
-
if (
|
|
31
|
-
|
|
32
|
-
|
|
52
|
+
if (f.controlStyle) {
|
|
53
|
+
if (!this.styleDiffer)
|
|
54
|
+
this.styleDiffer = this.kvDiffers.find(f.controlStyle).create();
|
|
55
|
+
if (this.styleDiffer.diff(f.controlStyle))
|
|
56
|
+
changed = true;
|
|
57
|
+
}
|
|
58
|
+
if (f.validators) {
|
|
59
|
+
if (!this.validatorsDiffer)
|
|
60
|
+
this.validatorsDiffer = this.kvDiffers.find(f.validators).create();
|
|
61
|
+
if (this.validatorsDiffer.diff(f.validators))
|
|
62
|
+
changed = true;
|
|
63
|
+
}
|
|
64
|
+
if (changed) {
|
|
65
|
+
this.onFieldConfigChanged();
|
|
33
66
|
}
|
|
34
67
|
}
|
|
68
|
+
onFieldConfigChanged() {
|
|
69
|
+
const oldRaw = this.inputValueDeepCopy ?? '';
|
|
70
|
+
const newRaw = this.applyCapitalization(oldRaw);
|
|
71
|
+
if (newRaw !== oldRaw) {
|
|
72
|
+
this.inputValueDeepCopy = newRaw;
|
|
73
|
+
const maskEnabled = !!this.field?.().isInputMasked;
|
|
74
|
+
const hasReactive = !!this.reactiveFormControlobject?.();
|
|
75
|
+
if (hasReactive && !maskEnabled) {
|
|
76
|
+
try {
|
|
77
|
+
this.reactiveFormControlobject().setValue(newRaw, { emitEvent: true });
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
this._onChange(newRaw);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
this._onChange(newRaw);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
this.syncUIFromRaw();
|
|
88
|
+
}
|
|
35
89
|
writeValue(obj) {
|
|
36
|
-
|
|
90
|
+
const raw = !this.masterService.checkIfValueIsEmpty(obj) ? String(obj) : '';
|
|
91
|
+
const capitalized = this.applyCapitalization(raw);
|
|
92
|
+
this.inputValueDeepCopy = capitalized;
|
|
93
|
+
this.syncUIFromRaw();
|
|
37
94
|
}
|
|
38
|
-
;
|
|
39
95
|
registerOnChange(fn) {
|
|
40
96
|
this._onChange = fn;
|
|
41
97
|
}
|
|
42
|
-
;
|
|
43
98
|
registerOnTouched(fn) {
|
|
44
|
-
this.
|
|
99
|
+
this._onTouched = fn;
|
|
100
|
+
}
|
|
101
|
+
setDisabledState(isDisabled) {
|
|
102
|
+
const f = this.field?.();
|
|
103
|
+
if (f)
|
|
104
|
+
f.isDisable = !!isDisabled;
|
|
105
|
+
}
|
|
106
|
+
onBeforeInput(event) {
|
|
107
|
+
const target = event.target;
|
|
108
|
+
const start = target?.selectionStart ?? 0;
|
|
109
|
+
const end = target?.selectionEnd ?? start;
|
|
110
|
+
this.lastBeforeInput = {
|
|
111
|
+
type: event.inputType,
|
|
112
|
+
data: event.data,
|
|
113
|
+
start,
|
|
114
|
+
end,
|
|
115
|
+
};
|
|
45
116
|
}
|
|
46
|
-
;
|
|
47
|
-
setDisabledState(isDisabled) { }
|
|
48
|
-
;
|
|
49
117
|
onInputChange(event) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
118
|
+
const target = event.target;
|
|
119
|
+
const f = this.field?.();
|
|
120
|
+
const cfg = f?.configData;
|
|
121
|
+
const intent = this.lastBeforeInput ?? {
|
|
122
|
+
type: 'insertText',
|
|
123
|
+
data: null,
|
|
124
|
+
start: target.selectionStart ?? this.inputValueDeepCopy.length,
|
|
125
|
+
end: target.selectionEnd ?? target.selectionStart ?? this.inputValueDeepCopy.length,
|
|
126
|
+
};
|
|
127
|
+
let newVal = this.applyIntentToRaw(this.inputValueDeepCopy, intent);
|
|
128
|
+
newVal = this.applyCapitalization(newVal);
|
|
129
|
+
if (cfg?.inputType === 'number') {
|
|
130
|
+
const min = this.normalizeNumber(cfg?.minValue);
|
|
131
|
+
const max = this.normalizeNumber(cfg?.maxValue);
|
|
132
|
+
const num = Number(newVal);
|
|
133
|
+
if (!Number.isNaN(num)) {
|
|
134
|
+
if (min !== null && num < min)
|
|
135
|
+
newVal = String(min);
|
|
136
|
+
if (max !== null && num > max)
|
|
137
|
+
newVal = String(max);
|
|
138
|
+
}
|
|
56
139
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
140
|
+
this.inputValueDeepCopy = newVal;
|
|
141
|
+
const maskEnabled = !!f?.isInputMasked;
|
|
142
|
+
const hasReactive = !!this.reactiveFormControlobject?.();
|
|
143
|
+
if (hasReactive && !maskEnabled) {
|
|
144
|
+
try {
|
|
145
|
+
this.reactiveFormControlobject().setValue(newVal, { emitEvent: true });
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
this._onChange(newVal);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
this._onChange(newVal);
|
|
153
|
+
}
|
|
154
|
+
const display = maskEnabled ? this.maskInput(newVal) : newVal;
|
|
155
|
+
this.inputValue = display;
|
|
156
|
+
const nextCaret = this.computeNextCaret(intent, newVal.length);
|
|
157
|
+
if (target.value !== display) {
|
|
158
|
+
target.value = display;
|
|
159
|
+
try {
|
|
160
|
+
target.setSelectionRange(nextCaret, nextCaret);
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
console.log(this.inputValue);
|
|
60
164
|
}
|
|
61
165
|
}
|
|
62
|
-
this.
|
|
63
|
-
this.inputValueDeepCopy = JSON.parse(JSON.stringify(this.inputValue));
|
|
64
|
-
this._onChange(this.inputValue);
|
|
166
|
+
this.lastBeforeInput = null;
|
|
65
167
|
}
|
|
66
168
|
onInputBlur(event) {
|
|
67
|
-
this.
|
|
169
|
+
this._onTouched();
|
|
68
170
|
this.blur.emit(event);
|
|
69
|
-
if (!this.masterService.checkIfValueIsEmpty(event.target.value)) {
|
|
70
|
-
this.checkinputMasked();
|
|
71
|
-
}
|
|
72
171
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
172
|
+
onInputFocus() {
|
|
173
|
+
}
|
|
174
|
+
syncUIFromRaw() {
|
|
175
|
+
const f = this.field?.();
|
|
176
|
+
const maskEnabled = !!f?.isInputMasked;
|
|
177
|
+
const raw = this.inputValueDeepCopy ?? '';
|
|
178
|
+
this.inputValue = maskEnabled ? this.maskInput(raw) : raw;
|
|
179
|
+
}
|
|
180
|
+
applyCapitalization(v) {
|
|
181
|
+
const f = this.field?.();
|
|
182
|
+
return f?.configData?.isTextCapitalized ? v.toUpperCase() : v;
|
|
183
|
+
}
|
|
184
|
+
normalizeNumber(v) {
|
|
185
|
+
if (this.masterService.checkIfValueIsEmpty(v))
|
|
186
|
+
return null;
|
|
187
|
+
const n = Number(v);
|
|
188
|
+
return Number.isNaN(n) ? null : n;
|
|
78
189
|
}
|
|
79
190
|
maskInput(value) {
|
|
80
|
-
if (value.length
|
|
81
|
-
|
|
191
|
+
if (!value || value.length < 3)
|
|
192
|
+
return value || '';
|
|
193
|
+
return value[0] + 'X'.repeat(value.length - 2) + value[value.length - 1];
|
|
194
|
+
}
|
|
195
|
+
applyIntentToRaw(raw, intent) {
|
|
196
|
+
const { type, data, start, end } = intent;
|
|
197
|
+
const s = Math.max(0, Math.min(start, raw.length));
|
|
198
|
+
const e = Math.max(s, Math.min(end, raw.length));
|
|
199
|
+
switch (type) {
|
|
200
|
+
case 'insertText': {
|
|
201
|
+
const insert = data ?? '';
|
|
202
|
+
return raw.slice(0, s) + insert + raw.slice(e);
|
|
203
|
+
}
|
|
204
|
+
case 'insertFromPaste': {
|
|
205
|
+
const paste = data ?? '';
|
|
206
|
+
return raw.slice(0, s) + paste + raw.slice(e);
|
|
207
|
+
}
|
|
208
|
+
case 'deleteContentBackward': {
|
|
209
|
+
if (s !== e)
|
|
210
|
+
return raw.slice(0, s) + raw.slice(e);
|
|
211
|
+
const idx = Math.max(0, s - 1);
|
|
212
|
+
return raw.slice(0, idx) + raw.slice(e);
|
|
213
|
+
}
|
|
214
|
+
case 'deleteContentForward': {
|
|
215
|
+
if (s !== e)
|
|
216
|
+
return raw.slice(0, s) + raw.slice(e);
|
|
217
|
+
return raw.slice(0, s) + raw.slice(Math.min(e + 1, raw.length));
|
|
218
|
+
}
|
|
219
|
+
case 'deleteByCut': {
|
|
220
|
+
return raw.slice(0, s) + raw.slice(e);
|
|
221
|
+
}
|
|
222
|
+
default:
|
|
223
|
+
return raw;
|
|
82
224
|
}
|
|
83
225
|
}
|
|
84
|
-
|
|
226
|
+
computeNextCaret(intent, newLen) {
|
|
227
|
+
const { type, data, start, end } = intent;
|
|
228
|
+
switch (type) {
|
|
229
|
+
case 'insertText':
|
|
230
|
+
case 'insertFromPaste':
|
|
231
|
+
return start + (data?.length ?? 0);
|
|
232
|
+
case 'deleteContentBackward':
|
|
233
|
+
return Math.max(0, start - (start === end ? 1 : 0));
|
|
234
|
+
case 'deleteContentForward':
|
|
235
|
+
case 'deleteByCut':
|
|
236
|
+
return start;
|
|
237
|
+
default:
|
|
238
|
+
return Math.max(0, Math.min(start, newLen));
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextboxComponent, deps: [{ token: i1.MasterControlService }, { token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Component });
|
|
85
242
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TextboxComponent, isStandalone: true, selector: "lib-textbox", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, reactiveFormControlobject: { classPropertyName: "reactiveFormControlobject", publicName: "reactiveFormControlobject", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { blur: "blur" }, providers: [
|
|
86
243
|
{
|
|
87
244
|
provide: NG_VALUE_ACCESSOR,
|
|
88
|
-
useExisting: TextboxComponent,
|
|
89
|
-
multi: true
|
|
90
|
-
}
|
|
91
|
-
], ngImport: i0, template: "<label\r\n class=\"field-lable\"\r\n *ngIf=\"field() && field()?.isVisible && field().isShowLabel\"\r\n
|
|
245
|
+
useExisting: forwardRef(() => TextboxComponent),
|
|
246
|
+
multi: true,
|
|
247
|
+
},
|
|
248
|
+
], ngImport: i0, template: "<label\r\n class=\"field-lable\"\r\n *ngIf=\"field() && field()?.isVisible && field().isShowLabel\"\r\n>\r\n {{ field()?.label }}\r\n <span style=\"color: red\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span>\r\n</label>\r\n\r\n<mat-form-field\r\n class=\"w-100\"\r\n appearance=\"outline\"\r\n *ngIf=\"field() && field()?.isVisible\"\r\n [ngStyle]=\"{\r\n '--custom-border-color': field()?.controlStyle?.borderColor ,\r\n '--custom-border-width': field()?.controlStyle?.borderWidth ,\r\n '--custom-border-radius': field()?.controlStyle?.borderRadius ,\r\n '--custom-bg-color': field()?.controlStyle?.background ,\r\n '--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n '--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\r\n '--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\r\n '--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\r\n '--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\r\n '--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\r\n '--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\r\n '--custom-font-size': field()?.controlStyle?.fontSize ,\r\n '--custom-font-weight': field()?.controlStyle?.fontWeight ,\r\n '--custom-font-family': field()?.controlStyle?.fontFamily ,\r\n '--custom-font-color': field()?.controlStyle?.color ,\r\n '--custom-caret-color': field()?.controlStyle?.caretColor ,\r\n '--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\r\n '--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\r\n '--custom-width': field()?.controlStyle?.width\r\n }\"\r\n>\r\n\r\n @if (reactiveFormControlobject() && !field()?.isInputMasked) {\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n [type]=\"field()?.configData?.inputType ? field()?.configData?.inputType : field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (beforeinput)=\"onBeforeInput($event)\"\r\n (input)=\"onInputChange($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onInputFocus()\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n />\r\n } @else {\r\n\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n [type]=\"field()?.configData?.inputType ? field()?.configData?.inputType : field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (beforeinput)=\"onBeforeInput($event)\"\r\n (input)=\"onInputChange($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onInputFocus()\"\r\n [value]=\"inputValue\"\r\n />\r\n }\r\n\r\n <mat-hint *ngIf=\"field()?.configData?.helperText\">{{ field()?.configData?.helperText }}</mat-hint>\r\n\r\n <mat-error *ngIf=\"false\">\r\n {{ field()?.validators?.requiredMessage || 'This field cannot be empty' }}\r\n </mat-error>\r\n\r\n</mat-form-field>\r\n\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{ field()?.validators?.requiredMessage }}.\r\n</div>\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{ field()?.validators?.patternMessage }}.\r\n</div>", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:5px}.error-message{color:red}*{font-family:mulish!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-size:12px!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{font-size:14px!important}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
92
249
|
}
|
|
93
250
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextboxComponent, decorators: [{
|
|
94
251
|
type: Component,
|
|
95
|
-
args: [{ selector: 'lib-textbox', standalone: true, imports: [
|
|
96
|
-
MatInputModule,
|
|
97
|
-
MatFormFieldModule,
|
|
98
|
-
CommonModule,
|
|
99
|
-
ReactiveFormsModule
|
|
100
|
-
], providers: [
|
|
252
|
+
args: [{ selector: 'lib-textbox', standalone: true, imports: [MatInputModule, MatFormFieldModule, CommonModule, ReactiveFormsModule], providers: [
|
|
101
253
|
{
|
|
102
254
|
provide: NG_VALUE_ACCESSOR,
|
|
103
|
-
useExisting: TextboxComponent,
|
|
104
|
-
multi: true
|
|
105
|
-
}
|
|
106
|
-
], template: "<label\r\n class=\"field-lable\"\r\n *ngIf=\"field() && field()?.isVisible && field().isShowLabel\"\r\n
|
|
107
|
-
}], ctorParameters: () => [{ type: i1.MasterControlService }], propDecorators: { blur: [{
|
|
255
|
+
useExisting: forwardRef(() => TextboxComponent),
|
|
256
|
+
multi: true,
|
|
257
|
+
},
|
|
258
|
+
], template: "<label\r\n class=\"field-lable\"\r\n *ngIf=\"field() && field()?.isVisible && field().isShowLabel\"\r\n>\r\n {{ field()?.label }}\r\n <span style=\"color: red\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span>\r\n</label>\r\n\r\n<mat-form-field\r\n class=\"w-100\"\r\n appearance=\"outline\"\r\n *ngIf=\"field() && field()?.isVisible\"\r\n [ngStyle]=\"{\r\n '--custom-border-color': field()?.controlStyle?.borderColor ,\r\n '--custom-border-width': field()?.controlStyle?.borderWidth ,\r\n '--custom-border-radius': field()?.controlStyle?.borderRadius ,\r\n '--custom-bg-color': field()?.controlStyle?.background ,\r\n '--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n '--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\r\n '--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\r\n '--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\r\n '--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\r\n '--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\r\n '--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\r\n '--custom-font-size': field()?.controlStyle?.fontSize ,\r\n '--custom-font-weight': field()?.controlStyle?.fontWeight ,\r\n '--custom-font-family': field()?.controlStyle?.fontFamily ,\r\n '--custom-font-color': field()?.controlStyle?.color ,\r\n '--custom-caret-color': field()?.controlStyle?.caretColor ,\r\n '--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\r\n '--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\r\n '--custom-width': field()?.controlStyle?.width\r\n }\"\r\n>\r\n\r\n @if (reactiveFormControlobject() && !field()?.isInputMasked) {\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n [type]=\"field()?.configData?.inputType ? field()?.configData?.inputType : field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (beforeinput)=\"onBeforeInput($event)\"\r\n (input)=\"onInputChange($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onInputFocus()\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n />\r\n } @else {\r\n\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n [type]=\"field()?.configData?.inputType ? field()?.configData?.inputType : field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [pattern]=\"field()?.validators?.pattern\"\r\n (beforeinput)=\"onBeforeInput($event)\"\r\n (input)=\"onInputChange($event)\"\r\n (blur)=\"onInputBlur($event)\"\r\n (focus)=\"onInputFocus()\"\r\n [value]=\"inputValue\"\r\n />\r\n }\r\n\r\n <mat-hint *ngIf=\"field()?.configData?.helperText\">{{ field()?.configData?.helperText }}</mat-hint>\r\n\r\n <mat-error *ngIf=\"false\">\r\n {{ field()?.validators?.requiredMessage || 'This field cannot be empty' }}\r\n </mat-error>\r\n\r\n</mat-form-field>\r\n\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{ field()?.validators?.requiredMessage }}.\r\n</div>\r\n<div class=\"error-message\" *ngIf=\"false\">\r\n {{ field()?.validators?.patternMessage }}.\r\n</div>", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:5px}.error-message{color:red}*{font-family:mulish!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-size:12px!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{font-size:14px!important}\n"] }]
|
|
259
|
+
}], ctorParameters: () => [{ type: i1.MasterControlService }, { type: i0.KeyValueDiffers }], propDecorators: { blur: [{
|
|
108
260
|
type: Output
|
|
109
261
|
}] } });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RleHRib3gvdGV4dGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RleHRib3gvdGV4dGJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFHLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBcUI5RixNQUFNLE9BQU8sZ0JBQWdCO0lBQ1I7SUFBbkIsWUFBbUIsYUFBb0M7UUFBcEMsa0JBQWEsR0FBYixhQUFhLENBQXVCO0lBQUUsQ0FBQztJQUMxRCxVQUFVLEdBQVEsSUFBSSxDQUFDO0lBQ3ZCLEtBQUssR0FBUyxLQUFLLENBQUMsUUFBUSxFQUFPLENBQUM7SUFDcEMseUJBQXlCLEdBQVMsS0FBSyxFQUFPLENBQUM7SUFFL0MsU0FBUyxHQUFRLENBQUMsVUFBYyxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDeEMsVUFBVSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUMzQixXQUFXLEdBQVEsSUFBSSxDQUFDO0lBQ3hCLGtCQUFrQixHQUFPLElBQUksQ0FBQztJQUU3QixrREFBa0Q7SUFDekMsSUFBSSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFeEMsUUFBUTtRQUNQLElBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsYUFBYSxFQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsYUFBYSxFQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixDQUFDO1lBQzlELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVE7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzFFLENBQUM7SUFBQSxDQUFDO0lBQ0YsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQUEsQ0FBQztJQUNGLGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUFBLENBQUM7SUFDRixnQkFBZ0IsQ0FBRSxVQUFtQixJQUFRLENBQUM7SUFBQSxDQUFDO0lBRS9DLGFBQWEsQ0FBQyxLQUFVO1FBQ3RCLElBQUksR0FBRyxHQUFTLElBQUksQ0FBQztRQUNyQixJQUFJLEdBQUcsR0FBUSxJQUFJLENBQUM7UUFDcEIsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDL0IsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDbk8sR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ25ELEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLFNBQVMsS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JPLElBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7Z0JBQ2xELEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RSxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUN4SCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVztRQUNyQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9ELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxhQUFhLEVBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN4RixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQVU7UUFDbEIsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2RixDQUFDO0lBQ0gsQ0FBQzt3R0F6RVUsZ0JBQWdCOzRGQUFoQixnQkFBZ0IsNFlBUmhCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLGdCQUFnQjtnQkFDN0IsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQ3hCSCwwckhBcUZBLDY3R0QxRUksY0FBYywwdUJBQ2Qsa0JBQWtCLDhCQUNsQixZQUFZLHVOQUNaLG1CQUFtQjs7NEZBWVYsZ0JBQWdCO2tCQW5CNUIsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQO3dCQUNQLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixZQUFZO3dCQUNaLG1CQUFtQjtxQkFDcEIsYUFHVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLGtCQUFrQjs0QkFDN0IsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7eUZBY1MsSUFBSTtzQkFBYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWFzdGVyQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi9tYXN0ZXItY29udHJvbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGV4dGJveCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSAsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dGJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RleHRib3guY29tcG9uZW50LmNzcycsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogVGV4dGJveENvbXBvbmVudCxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXh0Ym94Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtYXN0ZXJTZXJ2aWNlIDogTWFzdGVyQ29udHJvbFNlcnZpY2Upe31cclxuICBpbnB1dFZhbHVlOiBhbnkgPSBudWxsO1xyXG4gIGZpZWxkIDogYW55ID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xyXG4gIHJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QgOiBhbnkgPSBpbnB1dDxhbnk+KCk7XHJcblxyXG4gIF9vbkNoYW5nZTogYW55ID0gKGlucHV0VmFsdWU6YW55KSA9PiB7fTtcclxuICBfdW5Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcclxuICBtYXNrRW5hYmxlZDogYW55ID0gdHJ1ZTtcclxuICBpbnB1dFZhbHVlRGVlcENvcHk6YW55ID0gbnVsbDtcclxuXHJcbiAgIC8vIERlY2xhcmUgT3V0cHV0IGV2ZW50IGVtaXR0ZXIgaGVyZSAoY2xhc3MgbGV2ZWwpXHJcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgIG5nT25Jbml0KCkge1xyXG4gICAgaWYoIXRoaXMuZmllbGQoKS5pc0lucHV0TWFza2VkKXtcclxuICAgICAgdGhpcy5maWVsZCgpLmlzSW5wdXRNYXNrZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmKHRoaXMuZmllbGQoKT8uY29uZmlnRGF0YT8uaXNUZXh0Q2FwaXRhbGl6ZWQgJiYgdGhpcy5maWVsZCgpLmlzSW5wdXRNYXNrZWQpe1xyXG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLmZpZWxkKCk/LmNvbmZpZ0RhdGE/LmlzVGV4dENhcGl0YWxpemVkO1xyXG4gICAgICB0aGlzLmNoZWNraW5wdXRNYXNrZWQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lke1xyXG4gICAgdGhpcy5pbnB1dFZhbHVlPSF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eShvYmopID8gb2JqIDogJyc7XHJcbiAgfTtcclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lke1xyXG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcclxuICB9O1xyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lke1xyXG4gICAgdGhpcy5fdW5Ub3VjaGVkID0gZm47XHJcbiAgfTtcclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZHt9O1xyXG5cclxuICBvbklucHV0Q2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGxldCBtaW4gOiBhbnkgPSBudWxsO1xyXG4gICAgbGV0IG1heCA6IGFueT0gbnVsbDtcclxuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIGlmKCF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLmZpZWxkKCk/LmNvbmZpZ0RhdGEpICYmICF0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh0aGlzLmZpZWxkKCk/LmNvbmZpZ0RhdGE/Lm1pblZhbHVlKSAmJiAhdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5maWVsZCgpPy5jb25maWdEYXRhPy5tYXhWYWx1ZSkpIHtcclxuICAgICAgbWluID0gcGFyc2VJbnQodGhpcy5maWVsZCgpPy5jb25maWdEYXRhPy5taW5WYWx1ZSk7XHJcbiAgICAgIG1heCA9IHBhcnNlSW50KHRoaXMuZmllbGQoKT8uY29uZmlnRGF0YT8ubWF4VmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkodGhpcy5maWVsZCgpPy5jb25maWdEYXRhPy5pbnB1dFR5cGUpICYmIHRoaXMuZmllbGQoKT8uY29uZmlnRGF0YT8uaW5wdXRUeXBlID09PSAnbnVtYmVyJyAmJiAhdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkobWF4KSAmJiAhdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkobWluKSkge1xyXG4gICAgICBpZihwYXJzZUludCh2YWx1ZSkgPCBtaW4gfHwgcGFyc2VJbnQodmFsdWUpID4gbWF4KSB7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gcGFyc2VJbnQoZXZlbnQudGFyZ2V0LnZhbHVlLnRvU3RyaW5nKCkuc2xpY2UoMCwgLTEpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5pbnB1dFZhbHVlID0gdGhpcy5maWVsZCgpPy5jb25maWdEYXRhPy5pc1RleHRDYXBpdGFsaXplZCA/IChldmVudC50YXJnZXQudmFsdWUpLnRvVXBwZXJDYXNlKCkgOiBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICB0aGlzLmlucHV0VmFsdWVEZWVwQ29weSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5pbnB1dFZhbHVlKSk7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLmlucHV0VmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb25JbnB1dEJsdXIoZXZlbnQ/OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuVG91Y2hlZCgpO1xyXG4gICAgdGhpcy5ibHVyLmVtaXQoZXZlbnQpO1xyXG4gICAgaWYoIXRoaXMubWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KGV2ZW50LnRhcmdldC52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5jaGVja2lucHV0TWFza2VkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja2lucHV0TWFza2VkKCkge1xyXG4gICAgaWYoIXRoaXMuZmllbGQoKS5pc0lucHV0TWFza2VkKXtcclxuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdGhpcy5pbnB1dFZhbHVlRGVlcENvcHk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5maWVsZCgpLmlzSW5wdXRNYXNrZWQgPyB0aGlzLm1hc2tJbnB1dCh0aGlzLmlucHV0VmFsdWUpIDogdGhpcy5pbnB1dFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgbWFza0lucHV0KHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZS5sZW5ndGggPiAzKXtcclxuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gIHZhbHVlWzBdICsgJ1gnLnJlcGVhdCh2YWx1ZS5sZW5ndGggLSAyKSArIHZhbHVlW3ZhbHVlLmxlbmd0aCAtIDFdO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8bGFiZWxcclxuICBjbGFzcz1cImZpZWxkLWxhYmxlXCJcclxuICAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8uaXNWaXNpYmxlICYmIGZpZWxkKCkuaXNTaG93TGFiZWxcIlxyXG4gID57eyBmaWVsZCgpPy5sYWJlbFxyXG4gIH19PHNwYW4gc3R5bGU9XCJjb2xvcjogcmVkXCIgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIlxyXG4gICAgPio8L3NwYW5cclxuICA+PC9sYWJlbFxyXG4+XHJcbjxtYXQtZm9ybS1maWVsZFxyXG4gIGNsYXNzPVwidy0xMDBcIlxyXG4gIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCJcclxuICAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8uaXNWaXNpYmxlXCJcclxuICBbbmdTdHlsZV09XCJ7XHJcbictLWN1c3RvbS1ib3JkZXItY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlckNvbG9yICxcclxuJy0tY3VzdG9tLWJvcmRlci13aWR0aCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyV2lkdGggLFxyXG4nLS1jdXN0b20tYm9yZGVyLXJhZGl1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyUmFkaXVzICxcclxuJy0tY3VzdG9tLWJnLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5iYWNrZ3JvdW5kICxcclxuJy0tY3VzdG9tLWJvcmRlci1jb2xvci1mb2N1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCb3JkZXJDb2xvciAsXHJcbictLWN1c3RvbS1ib3JkZXItd2lkdGgtZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyV2lkdGggLFxyXG4nLS1jdXN0b20tYmctY29sb3ItZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQmFja2dyb3VuZCAsXHJcbictLWN1c3RvbS1ib3JkZXItY29sb3ItaG92ZXInOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmhvdmVyQm9yZGVyQ29sb3IgLFxyXG4nLS1jdXN0b20tYm9yZGVyLXdpZHRoLWhvdmVyJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ob3ZlckJvcmRlcldpZHRoICxcclxuJy0tY3VzdG9tLWJvcmRlci1jb2xvci1lcnJvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZXJyb3JCb3JkZXJDb2xvciAsXHJcbictLWN1c3RvbS1ib3JkZXItd2lkdGgtZXJyb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmVycm9yQm9yZGVyV2lkdGggLFxyXG4nLS1jdXN0b20tZm9udC1zaXplJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250U2l6ZSAsXHJcbictLWN1c3RvbS1mb250LXdlaWdodCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFdlaWdodCAsXHJcbictLWN1c3RvbS1mb250LWZhbWlseSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udEZhbWlseSAsXHJcbictLWN1c3RvbS1mb250LWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5jb2xvciAsXHJcbictLWN1c3RvbS1jYXJldC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY2FyZXRDb2xvciAsXHJcbictLWN1c3RvbS1mb250LWNvbG9yLWRpc2FibGVkJyA6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZGlzYWJsZUNvbG9yICxcclxuJy0tY3VzdG9tLWJnLWNvbG9yLWRpc2FibGVkJyA6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZGlzYWJsZUJhY2tncm91bmQgLFxyXG4nLS1jdXN0b20td2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LndpZHRoICxcclxufVwiXHJcbj5cclxuICBAaWYocmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpKSB7XHJcbiAgPGlucHV0XHJcbiAgICBtYXRJbnB1dFxyXG4gICAgYXV0b2NvbXBsZXRlPVwibm9uZVwiXHJcbiAgICBbdHlwZV09XCJmaWVsZCgpPy5jb25maWdEYXRhPy5pbnB1dFR5cGUgPyBmaWVsZCgpPy5jb25maWdEYXRhPy5pbnB1dFR5cGUgOiBmaWVsZCgpPy5jb250cm9sVHlwZVwiXHJcbiAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxyXG4gICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQoKT8ucGxhY2VIb2xkZXJcIlxyXG4gICAgW21heExlbmd0aF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5tYXhMZW5ndGhcIlxyXG4gICAgW21pbkxlbmd0aF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5taW5MZW5ndGhcIlxyXG4gICAgW2Rpc2FibGVkXT1cImZpZWxkKCk/LmlzRGlzYWJsZVwiXHJcbiAgICBbcmVxdWlyZWRdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiXHJcbiAgICBbcGF0dGVybl09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5wYXR0ZXJuXCJcclxuICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXHJcbiAgICBbdmFsdWVdPVwiaW5wdXRWYWx1ZVwiXHJcbiAgICBbZm9ybUNvbnRyb2xdPVwicmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpXCJcclxuICAvPlxyXG4gIH1AZWxzZSB7XHJcbiAgPGlucHV0XHJcbiAgICBtYXRJbnB1dFxyXG4gICAgYXV0b2NvbXBsZXRlPVwibm9uZVwiXHJcbiAgICBbdHlwZV09XCJmaWVsZCgpPy5jb25maWdEYXRhPy5pbnB1dFR5cGUgPyBmaWVsZCgpPy5jb25maWdEYXRhPy5pbnB1dFR5cGUgOiBmaWVsZCgpPy5jb250cm9sVHlwZVwiXHJcbiAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxyXG4gICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQoKT8ucGxhY2VIb2xkZXJcIlxyXG4gICAgW21heExlbmd0aF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5tYXhMZW5ndGhcIlxyXG4gICAgW21pbkxlbmd0aF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5taW5MZW5ndGhcIlxyXG4gICAgW2Rpc2FibGVkXT1cImZpZWxkKCk/LmlzRGlzYWJsZVwiXHJcbiAgICBbcmVxdWlyZWRdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiXHJcbiAgICBbcGF0dGVybl09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5wYXR0ZXJuXCJcclxuICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXHJcbiAgICBbdmFsdWVdPVwiaW5wdXRWYWx1ZVwiXHJcbiAgLz5cclxuICB9XHJcbiAgICA8bWF0LWhpbnQgKm5nSWY9XCJmaWVsZCgpPy5jb25maWdEYXRhPy5oZWxwZXJUZXh0XCI+e3tmaWVsZCgpPy5jb25maWdEYXRhPy5oZWxwZXJUZXh0fX08L21hdC1oaW50PlxyXG5cclxuICA8bWF0LWVycm9yICpuZ0lmPVwiZmFsc2VcIj5cclxuICAgIHt7IGZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRNZXNzYWdlIH19XHJcbiAgPC9tYXQtZXJyb3I+XHJcbiAgPCEtLSA8bWF0LWVycm9yICpuZ0lmPVwiZmllbGQoKT8uY29uZmlnRGF0YT8uaXNJbnZhbGlkUGF0dGVybiAmJiAhbWFzdGVyU2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KGZpZWxkKCk/LnZhbGlkYXRvcnM/LnBhdHRlcm5NZXNzYWdlKVwiPlxyXG4gICAge3sgZmllbGQoKT8udmFsaWRhdG9ycz8ucGF0dGVybk1lc3NhZ2UgfX1cclxuICA8L21hdC1lcnJvcj4gLS0+XHJcbjwvbWF0LWZvcm0tZmllbGQ+XHJcbjxkaXYgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmYWxzZVwiPlxyXG4gIHt7IGZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRNZXNzYWdlIH19LlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImZhbHNlXCI+XHJcbiAge3sgZmllbGQoKT8udmFsaWRhdG9ycz8ucGF0dGVybk1lc3NhZ2UgfX0uXHJcbjwvZGl2PlxyXG4iXX0=
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RleHRib3gvdGV4dGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RleHRib3gvdGV4dGJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEdBSVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUF1QjlGLE1BQU0sT0FBTyxnQkFBZ0I7SUFFbEI7SUFDQztJQUZWLFlBQ1MsYUFBbUMsRUFDbEMsU0FBMEI7UUFEM0Isa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ2xDLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBRWxDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUM7Z0JBQUUsT0FBTztZQUVmLElBQUksQ0FBQyxDQUFDLGFBQWEsSUFBSSxJQUFJO2dCQUFFLENBQUMsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBRXJELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFL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QUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDO3dHQXJQVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQiw0WUFSaEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO2dCQUMvQyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDcENILDR6SEF5Rk0sNjdHRDlETSxjQUFjLDB1QkFBRSxrQkFBa0IsOEJBQUUsWUFBWSx1TkFBRSxtQkFBbUI7OzRGQVdwRSxnQkFBZ0I7a0JBZDVCLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLENBQUMsYUFHckU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUM7NEJBQy9DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3VIQWdDUyxJQUFJO3NCQUFiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBmb3J3YXJkUmVmLFxyXG4gIGlucHV0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZWZmZWN0LFxyXG4gIERvQ2hlY2ssXHJcbiAgS2V5VmFsdWVEaWZmZXJzLFxyXG4gIEtleVZhbHVlRGlmZmVyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hc3RlckNvbnRyb2xTZXJ2aWNlIH0gZnJvbSAnLi4vbWFzdGVyLWNvbnRyb2wuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbnR5cGUgQmVmb3JlSW5wdXRJbmZvID0ge1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBkYXRhOiBzdHJpbmcgfCBudWxsO1xyXG4gIHN0YXJ0OiBudW1iZXI7XHJcbiAgZW5kOiBudW1iZXI7XHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi10ZXh0Ym94JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtNYXRJbnB1dE1vZHVsZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0Ym94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90ZXh0Ym94LmNvbXBvbmVudC5jc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRleHRib3hDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHRib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRG9DaGVjayB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgbWFzdGVyU2VydmljZTogTWFzdGVyQ29udHJvbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGt2RGlmZmVyczogS2V5VmFsdWVEaWZmZXJzXHJcbiAgKSB7XHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICBjb25zdCBmID0gdGhpcy5maWVsZCgpO1xyXG4gICAgICBpZiAoIWYpIHJldHVybjtcclxuXHJcbiAgICAgIGlmIChmLmlzSW5wdXRNYXNrZWQgPT0gbnVsbCkgZi5pc0lucHV0TWFza2VkID0gZmFsc2U7XHJcblxyXG4gICAgICB0aGlzLnN5bmNVSUZyb21SYXcoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZmllbGQ6IGFueSA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcclxuICByZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0OiBhbnkgPSBpbnB1dDxhbnk+KCk7XHJcblxyXG4gIHByaXZhdGUgX29uQ2hhbmdlOiAodmFsOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuICBwcml2YXRlIF9vblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuXHJcbiAgaW5wdXRWYWx1ZURlZXBDb3B5OiBzdHJpbmcgPSAnJzsgXHJcbiAgaW5wdXRWYWx1ZTogc3RyaW5nID0gJyc7ICAgICAgICBcclxuICBwcml2YXRlIGxhc3RCZWZvcmVJbnB1dDogQmVmb3JlSW5wdXRJbmZvIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgZmllbGREaWZmZXI/OiBLZXlWYWx1ZURpZmZlcjxzdHJpbmcsIGFueT47XHJcbiAgcHJpdmF0ZSBjZmdEaWZmZXI/OiBLZXlWYWx1ZURpZmZlcjxzdHJpbmcsIGFueT47XHJcbiAgcHJpdmF0ZSBzdHlsZURpZmZlcj86IEtleVZhbHVlRGlmZmVyPHN0cmluZywgYW55PjtcclxuICBwcml2YXRlIHZhbGlkYXRvcnNEaWZmZXI/OiBLZXlWYWx1ZURpZmZlcjxzdHJpbmcsIGFueT47XHJcblxyXG4gIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGYgPSB0aGlzLmZpZWxkPy4oKTtcclxuICAgIGlmICghZikgcmV0dXJuO1xyXG5cclxuICAgIGlmICghdGhpcy5maWVsZERpZmZlcikgdGhpcy5maWVsZERpZmZlciA9IHRoaXMua3ZEaWZmZXJzLmZpbmQoZikuY3JlYXRlKCk7XHJcbiAgICBsZXQgY2hhbmdlZCA9ICEhdGhpcy5maWVsZERpZmZlci5kaWZmKGYpO1xyXG5cclxuICAgIGlmIChmLmNvbmZpZ0RhdGEpIHtcclxuICAgICAgaWYgKCF0aGlzLmNmZ0RpZmZlcikgdGhpcy5jZmdEaWZmZXIgPSB0aGlzLmt2RGlmZmVycy5maW5kKGYuY29uZmlnRGF0YSkuY3JlYXRlKCk7XHJcbiAgICAgIGlmICh0aGlzLmNmZ0RpZmZlci5kaWZmKGYuY29uZmlnRGF0YSkpIGNoYW5nZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmLmNvbnRyb2xTdHlsZSkge1xyXG4gICAgICBpZiAoIXRoaXMuc3R5bGVEaWZmZXIpIHRoaXMuc3R5bGVEaWZmZXIgPSB0aGlzLmt2RGlmZmVycy5maW5kKGYuY29udHJvbFN0eWxlKS5jcmVhdGUoKTtcclxuICAgICAgaWYgKHRoaXMuc3R5bGVEaWZmZXIuZGlmZihmLmNvbnRyb2xTdHlsZSkpIGNoYW5nZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmLnZhbGlkYXRvcnMpIHtcclxuICAgICAgaWYgKCF0aGlzLnZhbGlkYXRvcnNEaWZmZXIpIHRoaXMudmFsaWRhdG9yc0RpZmZlciA9IHRoaXMua3ZEaWZmZXJzLmZpbmQoZi52YWxpZGF0b3JzKS5jcmVhdGUoKTtcclxuICAgICAgaWYgKHRoaXMudmFsaWRhdG9yc0RpZmZlci5kaWZmKGYudmFsaWRhdG9ycykpIGNoYW5nZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjaGFuZ2VkKSB7XHJcbiAgICAgIHRoaXMub25GaWVsZENvbmZpZ0NoYW5nZWQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25GaWVsZENvbmZpZ0NoYW5nZWQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBvbGRSYXcgPSB0aGlzLmlucHV0VmFsdWVEZWVwQ29weSA/PyAnJztcclxuICAgIGNvbnN0IG5ld1JhdyA9IHRoaXMuYXBwbHlDYXBpdGFsaXphdGlvbihvbGRSYXcpO1xyXG5cclxuICAgIGlmIChuZXdSYXcgIT09IG9sZFJhdykge1xyXG4gICAgICB0aGlzLmlucHV0VmFsdWVEZWVwQ29weSA9IG5ld1JhdztcclxuXHJcbiAgICAgIGNvbnN0IG1hc2tFbmFibGVkID0gISF0aGlzLmZpZWxkPy4oKS5pc0lucHV0TWFza2VkO1xyXG4gICAgICBjb25zdCBoYXNSZWFjdGl2ZSA9ICEhdGhpcy5yZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0Py4oKTtcclxuICAgICAgaWYgKGhhc1JlYWN0aXZlICYmICFtYXNrRW5hYmxlZCkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICB0aGlzLnJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKS5zZXRWYWx1ZShuZXdSYXcsIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgdGhpcy5fb25DaGFuZ2UobmV3UmF3KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UobmV3UmF3KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zeW5jVUlGcm9tUmF3KCk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCByYXcgPSAhdGhpcy5tYXN0ZXJTZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkob2JqKSA/IFN0cmluZyhvYmopIDogJyc7XHJcbiAgICBjb25zdCBjYXBpdGFsaXplZCA9IHRoaXMuYXBwbHlDYXBpdGFsaXphdGlvbihyYXcpO1xyXG4gICAgdGhpcy5pbnB1dFZhbHVlRGVlcENvcHkgPSBjYXBpdGFsaXplZDtcclxuICAgIHRoaXMuc3luY1VJRnJvbVJhdygpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGNvbnN0IGYgPSB0aGlzLmZpZWxkPy4oKTtcclxuICAgIGlmIChmKSBmLmlzRGlzYWJsZSA9ICEhaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG5cclxuICBvbkJlZm9yZUlucHV0KGV2ZW50OiBJbnB1dEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCB8IG51bGw7XHJcbiAgICBjb25zdCBzdGFydCA9IHRhcmdldD8uc2VsZWN0aW9uU3RhcnQgPz8gMDtcclxuICAgIGNvbnN0IGVuZCA9IHRhcmdldD8uc2VsZWN0aW9uRW5kID8/IHN0YXJ0O1xyXG4gICAgdGhpcy5sYXN0QmVmb3JlSW5wdXQgPSB7XHJcbiAgICAgIHR5cGU6IGV2ZW50LmlucHV0VHlwZSxcclxuICAgICAgZGF0YTogZXZlbnQuZGF0YSxcclxuICAgICAgc3RhcnQsXHJcbiAgICAgIGVuZCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBvbklucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBjb25zdCBmID0gdGhpcy5maWVsZD8uKCk7XHJcbiAgICBjb25zdCBjZmcgPSBmPy5jb25maWdEYXRhO1xyXG5cclxuICAgIGNvbnN0IGludGVudCA9IHRoaXMubGFzdEJlZm9yZUlucHV0ID8/IHtcclxuICAgICAgdHlwZTogJ2luc2VydFRleHQnLFxyXG4gICAgICBkYXRhOiBudWxsLFxyXG4gICAgICBzdGFydDogdGFyZ2V0LnNlbGVjdGlvblN0YXJ0ID8/IHRoaXMuaW5wdXRWYWx1ZURlZXBDb3B5Lmxlbmd0aCxcclxuICAgICAgZW5kOiB0YXJnZXQuc2VsZWN0aW9uRW5kID8/IHRhcmdldC5zZWxlY3Rpb25TdGFydCA/PyB0aGlzLmlucHV0VmFsdWVEZWVwQ29weS5sZW5ndGgsXHJcbiAgICB9O1xyXG5cclxuICAgIGxldCBuZXdWYWwgPSB0aGlzLmFwcGx5SW50ZW50VG9SYXcodGhpcy5pbnB1dFZhbHVlRGVlcENvcHksIGludGVudCk7XHJcblxyXG4gICAgbmV3VmFsID0gdGhpcy5hcHBseUNhcGl0YWxpemF0aW9uKG5ld1ZhbCk7XHJcblxyXG4gICAgaWYgKGNmZz8uaW5wdXRUeXBlID09PSAnbnVtYmVyJykge1xyXG4gICAgICBjb25zdCBtaW4gPSB0aGlzLm5vcm1hbGl6ZU51bWJlcihjZmc/Lm1pblZhbHVlKTtcclxuICAgICAgY29uc3QgbWF4ID0gdGhpcy5ub3JtYWxpemVOdW1iZXIoY2ZnPy5tYXhWYWx1ZSk7XHJcbiAgICAgIGNvbnN0IG51bSA9IE51bWJlcihuZXdWYWwpO1xyXG4gICAgICBpZiAoIU51bWJlci5pc05hTihudW0pKSB7XHJcbiAgICAgICAgaWYgKG1pbiAhPT0gbnVsbCAmJiBudW0gPCBtaW4pIG5ld1ZhbCA9IFN0cmluZyhtaW4pO1xyXG4gICAgICAgIGlmIChtYXggIT09IG51bGwgJiYgbnVtID4gbWF4KSBuZXdWYWwgPSBTdHJpbmcobWF4KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5wdXRWYWx1ZURlZXBDb3B5ID0gbmV3VmFsO1xyXG5cclxuICAgIGNvbnN0IG1hc2tFbmFibGVkID0gISFmPy5pc0lucHV0TWFza2VkO1xyXG4gICAgY29uc3QgaGFzUmVhY3RpdmUgPSAhIXRoaXMucmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdD8uKCk7XHJcblxyXG4gICAgaWYgKGhhc1JlYWN0aXZlICYmICFtYXNrRW5hYmxlZCkge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRoaXMucmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpLnNldFZhbHVlKG5ld1ZhbCwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgIHRoaXMuX29uQ2hhbmdlKG5ld1ZhbCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX29uQ2hhbmdlKG5ld1ZhbCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZGlzcGxheSA9IG1hc2tFbmFibGVkID8gdGhpcy5tYXNrSW5wdXQobmV3VmFsKSA6IG5ld1ZhbDtcclxuICAgIHRoaXMuaW5wdXRWYWx1ZSA9IGRpc3BsYXk7XHJcblxyXG4gICAgY29uc3QgbmV4dENhcmV0ID0gdGhpcy5jb21wdXRlTmV4dENhcmV0KGludGVudCwgbmV3VmFsLmxlbmd0aCk7XHJcbiAgICBpZiAodGFyZ2V0LnZhbHVlICE9PSBkaXNwbGF5KSB7XHJcbiAgICAgIHRhcmdldC52YWx1ZSA9IGRpc3BsYXk7XHJcbiAgICAgIHRyeSB7IHRhcmdldC5zZXRTZWxlY3Rpb25SYW5nZShuZXh0Q2FyZXQsIG5leHRDYXJldCk7IH0gY2F0Y2gge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuaW5wdXRWYWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxhc3RCZWZvcmVJbnB1dCA9IG51bGw7XHJcbiAgfVxyXG5cclxuICBvbklucHV0Qmx1cihldmVudD86IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcclxuICAgIHRoaXMuYmx1ci5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXRGb2N1cygpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3luY1VJRnJvbVJhdygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGYgPSB0aGlzLmZpZWxkPy4oKTtcclxuICAgIGNvbnN0IG1hc2tFbmFibGVkID0gISFmPy5pc0lucHV0TWFza2VkO1xyXG4gICAgY29uc3QgcmF3ID0gdGhpcy5pbnB1dFZhbHVlRGVlcENvcHkgPz8gJyc7XHJcbiAgICB0aGlzLmlucHV0VmFsdWUgPSBtYXNrRW5hYmxlZCA/IHRoaXMubWFza0lucHV0KHJhdykgOiByYXc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGx5Q2FwaXRhbGl6YXRpb24odjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGYgPSB0aGlzLmZpZWxkPy4oKTtcclxuICAgIHJldHVybiBmPy5jb25maWdEYXRhPy5pc1RleHRDYXBpdGFsaXplZCA/IHYudG9VcHBlckNhc2UoKSA6IHY7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG5vcm1hbGl6ZU51bWJlcih2OiBhbnkpOiBudW1iZXIgfCBudWxsIHtcclxuICAgIGlmICh0aGlzLm1hc3RlclNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eSh2KSkgcmV0dXJuIG51bGw7XHJcbiAgICBjb25zdCBuID0gTnVtYmVyKHYpO1xyXG4gICAgcmV0dXJuIE51bWJlci5pc05hTihuKSA/IG51bGwgOiBuO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtYXNrSW5wdXQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLmxlbmd0aCA8IDMpIHJldHVybiB2YWx1ZSB8fCAnJztcclxuICAgIHJldHVybiB2YWx1ZVswXSArICdYJy5yZXBlYXQodmFsdWUubGVuZ3RoIC0gMikgKyB2YWx1ZVt2YWx1ZS5sZW5ndGggLSAxXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwbHlJbnRlbnRUb1JhdyhyYXc6IHN0cmluZywgaW50ZW50OiBCZWZvcmVJbnB1dEluZm8pOiBzdHJpbmcge1xyXG4gICAgY29uc3QgeyB0eXBlLCBkYXRhLCBzdGFydCwgZW5kIH0gPSBpbnRlbnQ7XHJcbiAgICBjb25zdCBzID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oc3RhcnQsIHJhdy5sZW5ndGgpKTtcclxuICAgIGNvbnN0IGUgPSBNYXRoLm1heChzLCBNYXRoLm1pbihlbmQsIHJhdy5sZW5ndGgpKTtcclxuXHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnaW5zZXJ0VGV4dCc6IHtcclxuICAgICAgICBjb25zdCBpbnNlcnQgPSBkYXRhID8/ICcnO1xyXG4gICAgICAgIHJldHVybiByYXcuc2xpY2UoMCwgcykgKyBpbnNlcnQgKyByYXcuc2xpY2UoZSk7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnaW5zZXJ0RnJvbVBhc3RlJzoge1xyXG4gICAgICAgIGNvbnN0IHBhc3RlID0gZGF0YSA/PyAnJztcclxuICAgICAgICByZXR1cm4gcmF3LnNsaWNlKDAsIHMpICsgcGFzdGUgKyByYXcuc2xpY2UoZSk7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnZGVsZXRlQ29udGVudEJhY2t3YXJkJzoge1xyXG4gICAgICAgIGlmIChzICE9PSBlKSByZXR1cm4gcmF3LnNsaWNlKDAsIHMpICsgcmF3LnNsaWNlKGUpO1xyXG4gICAgICAgIGNvbnN0IGlkeCA9IE1hdGgubWF4KDAsIHMgLSAxKTtcclxuICAgICAgICByZXR1cm4gcmF3LnNsaWNlKDAsIGlkeCkgKyByYXcuc2xpY2UoZSk7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnZGVsZXRlQ29udGVudEZvcndhcmQnOiB7XHJcbiAgICAgICAgaWYgKHMgIT09IGUpIHJldHVybiByYXcuc2xpY2UoMCwgcykgKyByYXcuc2xpY2UoZSk7XHJcbiAgICAgICAgcmV0dXJuIHJhdy5zbGljZSgwLCBzKSArIHJhdy5zbGljZShNYXRoLm1pbihlICsgMSwgcmF3Lmxlbmd0aCkpO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ2RlbGV0ZUJ5Q3V0Jzoge1xyXG4gICAgICAgIHJldHVybiByYXcuc2xpY2UoMCwgcykgKyByYXcuc2xpY2UoZSk7XHJcbiAgICAgIH1cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gcmF3O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb21wdXRlTmV4dENhcmV0KGludGVudDogQmVmb3JlSW5wdXRJbmZvLCBuZXdMZW46IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBjb25zdCB7IHR5cGUsIGRhdGEsIHN0YXJ0LCBlbmQgfSA9IGludGVudDtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdpbnNlcnRUZXh0JzpcclxuICAgICAgY2FzZSAnaW5zZXJ0RnJvbVBhc3RlJzpcclxuICAgICAgICByZXR1cm4gc3RhcnQgKyAoZGF0YT8ubGVuZ3RoID8/IDApO1xyXG4gICAgICBjYXNlICdkZWxldGVDb250ZW50QmFja3dhcmQnOlxyXG4gICAgICAgIHJldHVybiBNYXRoLm1heCgwLCBzdGFydCAtIChzdGFydCA9PT0gZW5kID8gMSA6IDApKTtcclxuICAgICAgY2FzZSAnZGVsZXRlQ29udGVudEZvcndhcmQnOlxyXG4gICAgICBjYXNlICdkZWxldGVCeUN1dCc6XHJcbiAgICAgICAgcmV0dXJuIHN0YXJ0O1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBNYXRoLm1heCgwLCBNYXRoLm1pbihzdGFydCwgbmV3TGVuKSk7XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiPGxhYmVsXHJcbiAgY2xhc3M9XCJmaWVsZC1sYWJsZVwiXHJcbiAgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZSAmJiBmaWVsZCgpLmlzU2hvd0xhYmVsXCJcclxuPlxyXG4gIHt7IGZpZWxkKCk/LmxhYmVsIH19XHJcbiAgPHNwYW4gc3R5bGU9XCJjb2xvcjogcmVkXCIgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIj4qPC9zcGFuPlxyXG48L2xhYmVsPlxyXG5cclxuPG1hdC1mb3JtLWZpZWxkXHJcbiAgY2xhc3M9XCJ3LTEwMFwiXHJcbiAgYXBwZWFyYW5jZT1cIm91dGxpbmVcIlxyXG4gICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy5pc1Zpc2libGVcIlxyXG4gIFtuZ1N0eWxlXT1cIntcclxuICAgICctLWN1c3RvbS1ib3JkZXItY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlckNvbG9yICxcclxuICAgICctLWN1c3RvbS1ib3JkZXItd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlcldpZHRoICxcclxuICAgICctLWN1c3RvbS1ib3JkZXItcmFkaXVzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJSYWRpdXMgLFxyXG4gICAgJy0tY3VzdG9tLWJnLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5iYWNrZ3JvdW5kICxcclxuICAgICctLWN1c3RvbS1ib3JkZXItY29sb3ItZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyQ29sb3IgLFxyXG4gICAgJy0tY3VzdG9tLWJvcmRlci13aWR0aC1mb2N1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCb3JkZXJXaWR0aCAsXHJcbiAgICAnLS1jdXN0b20tYmctY29sb3ItZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQmFja2dyb3VuZCAsXHJcbiAgICAnLS1jdXN0b20tYm9yZGVyLWNvbG9yLWhvdmVyJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ob3ZlckJvcmRlckNvbG9yICxcclxuICAgICctLWN1c3RvbS1ib3JkZXItd2lkdGgtaG92ZXInOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmhvdmVyQm9yZGVyV2lkdGggLFxyXG4gICAgJy0tY3VzdG9tLWJvcmRlci1jb2xvci1lcnJvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZXJyb3JCb3JkZXJDb2xvciAsXHJcbiAgICAnLS1jdXN0b20tYm9yZGVyLXdpZHRoLWVycm9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5lcnJvckJvcmRlcldpZHRoICxcclxuICAgICctLWN1c3RvbS1mb250LXNpemUnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRTaXplICxcclxuICAgICctLWN1c3RvbS1mb250LXdlaWdodCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFdlaWdodCAsXHJcbiAgICAnLS1jdXN0b20tZm9udC1mYW1pbHknOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRGYW1pbHkgLFxyXG4gICAgJy0tY3VzdG9tLWZvbnQtY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmNvbG9yICxcclxuICAgICctLWN1c3RvbS1jYXJldC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY2FyZXRDb2xvciAsXHJcbiAgICAnLS1jdXN0b20tZm9udC1jb2xvci1kaXNhYmxlZCcgOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmRpc2FibGVDb2xvciAsXHJcbiAgICAnLS1jdXN0b20tYmctY29sb3ItZGlzYWJsZWQnIDogZmllbGQoKT8uY29udHJvbFN0eWxlPy5kaXNhYmxlQmFja2dyb3VuZCAsXHJcbiAgICAnLS1jdXN0b20td2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LndpZHRoXHJcbiAgfVwiXHJcbj5cclxuXHJcbiAgQGlmIChyZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0KCkgJiYgIWZpZWxkKCk/LmlzSW5wdXRNYXNrZWQpIHtcclxuICAgIDxpbnB1dFxyXG4gICAgICBtYXRJbnB1dFxyXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgW3R5cGVdPVwiZmllbGQoKT8uY29uZmlnRGF0YT8uaW5wdXRUeXBlID8gZmllbGQoKT8uY29uZmlnRGF0YT8uaW5wdXRUeXBlIDogZmllbGQoKT8uY29udHJvbFR5cGVcIlxyXG4gICAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxyXG4gICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkKCk/LnBsYWNlSG9sZGVyXCJcclxuICAgICAgW21heExlbmd0aF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5tYXhMZW5ndGhcIlxyXG4gICAgICBbbWluTGVuZ3RoXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/Lm1pbkxlbmd0aFwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJmaWVsZCgpPy5pc0Rpc2FibGVcIlxyXG4gICAgICBbcmVxdWlyZWRdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiXHJcbiAgICAgIFtwYXR0ZXJuXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LnBhdHRlcm5cIlxyXG4gICAgICAoYmVmb3JlaW5wdXQpPVwib25CZWZvcmVJbnB1dCgkZXZlbnQpXCJcclxuICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKCRldmVudClcIlxyXG4gICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKClcIlxyXG4gICAgICBbZm9ybUNvbnRyb2xdPVwicmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpXCJcclxuICAgIC8+XHJcbiAgfSBAZWxzZSB7XHJcblxyXG4gICAgPGlucHV0XHJcbiAgICAgIG1hdElucHV0XHJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgW3R5cGVdPVwiZmllbGQoKT8uY29uZmlnRGF0YT8uaW5wdXRUeXBlID8gZmllbGQoKT8uY29uZmlnRGF0YT8uaW5wdXRUeXBlIDogZmllbGQoKT8uY29udHJvbFR5cGVcIlxyXG4gICAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxyXG4gICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkKCk/LnBsYWNlSG9sZGVyXCJcclxuICAgICAgW21heExlbmd0aF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5tYXhMZW5ndGhcIlxyXG4gICAgICBbbWluTGVuZ3RoXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/Lm1pbkxlbmd0aFwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJmaWVsZCgpPy5pc0Rpc2FibGVcIlxyXG4gICAgICBbcmVxdWlyZWRdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiXHJcbiAgICAgIFtwYXR0ZXJuXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LnBhdHRlcm5cIlxyXG4gICAgICAoYmVmb3JlaW5wdXQpPVwib25CZWZvcmVJbnB1dCgkZXZlbnQpXCJcclxuICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKCRldmVudClcIlxyXG4gICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKClcIlxyXG4gICAgICBbdmFsdWVdPVwiaW5wdXRWYWx1ZVwiXHJcbiAgICAvPlxyXG4gIH1cclxuXHJcbiAgPG1hdC1oaW50ICpuZ0lmPVwiZmllbGQoKT8uY29uZmlnRGF0YT8uaGVscGVyVGV4dFwiPnt7IGZpZWxkKCk/LmNvbmZpZ0RhdGE/LmhlbHBlclRleHQgfX08L21hdC1oaW50PlxyXG5cclxuICA8bWF0LWVycm9yICpuZ0lmPVwiZmFsc2VcIj5cclxuICAgIHt7IGZpZWxkKCk/LnZhbGlkYXRvcnM/LnJlcXVpcmVkTWVzc2FnZSB8fCAnVGhpcyBmaWVsZCBjYW5ub3QgYmUgZW1wdHknIH19XHJcbiAgPC9tYXQtZXJyb3I+XHJcblxyXG48L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuPGRpdiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImZhbHNlXCI+XHJcbiAge3sgZmllbGQoKT8udmFsaWRhdG9ycz8ucmVxdWlyZWRNZXNzYWdlIH19LlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImZhbHNlXCI+XHJcbiAge3sgZmllbGQoKT8udmFsaWRhdG9ycz8ucGF0dGVybk1lc3NhZ2UgfX0uXHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Component, input } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
export class TopHeaderComponent {
|
|
6
|
+
field = input.required();
|
|
7
|
+
showProfileMenu = false;
|
|
8
|
+
configData = {
|
|
9
|
+
options: [
|
|
10
|
+
{ label: "",
|
|
11
|
+
value: ""
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
configData: {
|
|
15
|
+
logoUrl: "",
|
|
16
|
+
notificationBellVisible: "",
|
|
17
|
+
notificationCount: "",
|
|
18
|
+
notificationImageUrl: "",
|
|
19
|
+
UserProfileVisible: "",
|
|
20
|
+
imageUrl: "",
|
|
21
|
+
userProfileText: "",
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.configData = this.field();
|
|
26
|
+
}
|
|
27
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TopHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
28
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: TopHeaderComponent, isStandalone: true, selector: "lib-top-header", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<header class=\"sticky-top bg-white shadow-sm\">\r\n <div class=\"container-fluid mx-auto p-0\">\r\n <div class=\"header row align-items-center\">\r\n <div class=\"col-11\">\r\n <a href=\"/\" class=\"d-flex align-items-center gap-3 fixMargin\">\r\n <img\r\n [src]=\"configData.configData.logoUrl\"\r\n class=\"logo\"\r\n height=\"32\"\r\n alt=\"Logo\"\r\n />\r\n </a>\r\n </div>\r\n <div class=\"col-1 d-flex justify-content-end align-items-center p-1 position-relative\">\r\n <div class=\"me-3 position-relative notification-icon\" role=\"button\" *ngIf=\"configData.configData.notificationBellVisible=='true'\">\r\n <img\r\n [src]=\"configData.configData.notificationImageUrl\"\r\n alt=\"Notifications\"\r\n width=\"28\"\r\n height=\"28\"\r\n />\r\n <span \r\n class=\"position-absolute top-0 start-100 translate-middle badge rounded-pill bg-danger\"\r\n >\r\n {{configData.configData.notificationCount}}\r\n </span>\r\n </div>\r\n <div\r\n (mouseenter)=\"showProfileMenu=true\"\r\n class=\"profile-icon d-flex align-items-center rounded-pill bg-light\"\r\n role=\"button\" *ngIf=\"configData.configData.UserProfileVisible=='true'\"\r\n >\r\n <img\r\n [src]=\"configData.configData.imageUrl\"\r\n alt=\"Profile\"\r\n class=\"rounded-circle me-2\"\r\n width=\"36\"\r\n height=\"36\"\r\n />\r\n <span class=\"fw-medium\">{{configData.configData.userProfileText}}</span>\r\n </div>\r\n <div\r\n *ngIf=\"showProfileMenu\"\r\n class=\"profile-menu position-absolute top-100 end-0 bg-white border border-warning rounded-3 shadow-sm mt-2\" (mouseenter)=\"showProfileMenu=true\" (mouseleave)=\"showProfileMenu=false\"\r\n >\r\n <div class=\"profile-menu-caret\"></div>\r\n \r\n <ul class=\"list-unstyled m-0 py-2\">\r\n <li class=\"px-3 py-2 text-nowrap\" *ngFor=\"let item of configData.options || []\">\r\n {{ item.label || 'No label' }}\r\n </li>\r\n </ul>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n</header>", styles: [".header{background:#fff;box-shadow:0 2px 4px #00000014;height:59px;margin:0;padding:0 40px}.logo{width:64px;height:32px}.profile-menu-caret{position:absolute;top:-11px;right:16px;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:11px solid #fa0;z-index:1}.profile-menu-caret:after{content:\"\";position:absolute;left:-9.8px;top:1.7px;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid #fff;z-index:2}.my_templates{white-space:nowrap}ul li{cursor:pointer}.fixMargin{width:68px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TopHeaderComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{ selector: 'lib-top-header', standalone: true, imports: [CommonModule], template: "<header class=\"sticky-top bg-white shadow-sm\">\r\n <div class=\"container-fluid mx-auto p-0\">\r\n <div class=\"header row align-items-center\">\r\n <div class=\"col-11\">\r\n <a href=\"/\" class=\"d-flex align-items-center gap-3 fixMargin\">\r\n <img\r\n [src]=\"configData.configData.logoUrl\"\r\n class=\"logo\"\r\n height=\"32\"\r\n alt=\"Logo\"\r\n />\r\n </a>\r\n </div>\r\n <div class=\"col-1 d-flex justify-content-end align-items-center p-1 position-relative\">\r\n <div class=\"me-3 position-relative notification-icon\" role=\"button\" *ngIf=\"configData.configData.notificationBellVisible=='true'\">\r\n <img\r\n [src]=\"configData.configData.notificationImageUrl\"\r\n alt=\"Notifications\"\r\n width=\"28\"\r\n height=\"28\"\r\n />\r\n <span \r\n class=\"position-absolute top-0 start-100 translate-middle badge rounded-pill bg-danger\"\r\n >\r\n {{configData.configData.notificationCount}}\r\n </span>\r\n </div>\r\n <div\r\n (mouseenter)=\"showProfileMenu=true\"\r\n class=\"profile-icon d-flex align-items-center rounded-pill bg-light\"\r\n role=\"button\" *ngIf=\"configData.configData.UserProfileVisible=='true'\"\r\n >\r\n <img\r\n [src]=\"configData.configData.imageUrl\"\r\n alt=\"Profile\"\r\n class=\"rounded-circle me-2\"\r\n width=\"36\"\r\n height=\"36\"\r\n />\r\n <span class=\"fw-medium\">{{configData.configData.userProfileText}}</span>\r\n </div>\r\n <div\r\n *ngIf=\"showProfileMenu\"\r\n class=\"profile-menu position-absolute top-100 end-0 bg-white border border-warning rounded-3 shadow-sm mt-2\" (mouseenter)=\"showProfileMenu=true\" (mouseleave)=\"showProfileMenu=false\"\r\n >\r\n <div class=\"profile-menu-caret\"></div>\r\n \r\n <ul class=\"list-unstyled m-0 py-2\">\r\n <li class=\"px-3 py-2 text-nowrap\" *ngFor=\"let item of configData.options || []\">\r\n {{ item.label || 'No label' }}\r\n </li>\r\n </ul>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n</header>", styles: [".header{background:#fff;box-shadow:0 2px 4px #00000014;height:59px;margin:0;padding:0 40px}.logo{width:64px;height:32px}.profile-menu-caret{position:absolute;top:-11px;right:16px;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:11px solid #fa0;z-index:1}.profile-menu-caret:after{content:\"\";position:absolute;left:-9.8px;top:1.7px;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid #fff;z-index:2}.my_templates{white-space:nowrap}ul li{cursor:pointer}.fixMargin{width:68px}\n"] }]
|
|
33
|
+
}] });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RvcC1oZWFkZXIvdG9wLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RvcC1oZWFkZXIvdG9wLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE0QixLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFTL0MsTUFBTSxPQUFPLGtCQUFrQjtJQUMvQixLQUFLLEdBQVMsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO0lBRXBDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDeEIsVUFBVSxHQUFDO1FBQ1QsT0FBTyxFQUFDO1lBQ04sRUFBQyxLQUFLLEVBQUMsRUFBRTtnQkFDUCxLQUFLLEVBQUMsRUFBRTthQUNUO1NBQ0Y7UUFDSCxVQUFVLEVBQUM7WUFDVCxPQUFPLEVBQUUsRUFBRTtZQUNYLHVCQUF1QixFQUFDLEVBQUU7WUFDMUIsaUJBQWlCLEVBQUMsRUFBRTtZQUNwQixvQkFBb0IsRUFBQyxFQUFFO1lBQ3ZCLGtCQUFrQixFQUFDLEVBQUU7WUFDckIsUUFBUSxFQUFDLEVBQUU7WUFDWixlQUFlLEVBQUMsRUFBRTtTQUNsQjtLQUFDLENBQUM7SUFFSCxRQUFRO1FBRU4sSUFBSSxDQUFDLFVBQVUsR0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDL0IsQ0FBQzt3R0F2Qlksa0JBQWtCOzRGQUFsQixrQkFBa0IsNk1DVi9CLHV3RUF5RFMseW9CRGpERyxZQUFZOzs0RkFFWCxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUdQLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi10b3AtaGVhZGVyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90b3AtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdG9wLWhlYWRlci5jb21wb25lbnQuY3NzJyxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9wSGVhZGVyQ29tcG9uZW50IHtcclxuZmllbGQgOiBhbnkgPSBpbnB1dC5yZXF1aXJlZDxhbnk+KCk7XHJcblxyXG5zaG93UHJvZmlsZU1lbnUgPSBmYWxzZTtcclxuY29uZmlnRGF0YT17XHJcbiAgb3B0aW9uczpbXHJcbiAgICB7bGFiZWw6XCJcIixcclxuICAgICAgdmFsdWU6XCJcIlxyXG4gICAgfVxyXG4gIF0sXHJcbmNvbmZpZ0RhdGE6e1xyXG4gIGxvZ29Vcmw6IFwiXCIsXHJcbiAgbm90aWZpY2F0aW9uQmVsbFZpc2libGU6XCJcIixcclxuICBub3RpZmljYXRpb25Db3VudDpcIlwiLFxyXG4gIG5vdGlmaWNhdGlvbkltYWdlVXJsOlwiXCIsXHJcbiAgVXNlclByb2ZpbGVWaXNpYmxlOlwiXCIsXHJcbiAgaW1hZ2VVcmw6XCJcIixcclxuIHVzZXJQcm9maWxlVGV4dDpcIlwiLFxyXG59fTtcclxuXHJcbm5nT25Jbml0KClcclxue1xyXG4gIHRoaXMuY29uZmlnRGF0YT10aGlzLmZpZWxkKCk7XHJcbn1cclxufVxyXG4iLCI8aGVhZGVyIGNsYXNzPVwic3RpY2t5LXRvcCBiZy13aGl0ZSBzaGFkb3ctc21cIj5cclxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkIG14LWF1dG8gcC0wXCI+XHJcbiAgPGRpdiBjbGFzcz1cImhlYWRlciByb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTFcIj5cclxuICAgICAgICA8YSBocmVmPVwiL1wiIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMyBmaXhNYXJnaW5cIj5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgW3NyY109XCJjb25maWdEYXRhLmNvbmZpZ0RhdGEubG9nb1VybFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwibG9nb1wiXHJcbiAgICAgICAgICAgIGhlaWdodD1cIjMyXCJcclxuICAgICAgICAgICAgYWx0PVwiTG9nb1wiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvYT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1jZW50ZXIgcC0xIHBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTMgcG9zaXRpb24tcmVsYXRpdmUgbm90aWZpY2F0aW9uLWljb25cIiByb2xlPVwiYnV0dG9uXCIgKm5nSWY9XCJjb25maWdEYXRhLmNvbmZpZ0RhdGEubm90aWZpY2F0aW9uQmVsbFZpc2libGU9PSd0cnVlJ1wiPlxyXG4gICAgPGltZ1xyXG4gICAgICBbc3JjXT1cImNvbmZpZ0RhdGEuY29uZmlnRGF0YS5ub3RpZmljYXRpb25JbWFnZVVybFwiXHJcbiAgICAgIGFsdD1cIk5vdGlmaWNhdGlvbnNcIlxyXG4gICAgICB3aWR0aD1cIjI4XCJcclxuICAgICAgaGVpZ2h0PVwiMjhcIlxyXG4gICAgLz5cclxuICAgIDxzcGFuIFxyXG4gICAgICBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIHRvcC0wIHN0YXJ0LTEwMCB0cmFuc2xhdGUtbWlkZGxlIGJhZGdlIHJvdW5kZWQtcGlsbCBiZy1kYW5nZXJcIlxyXG4gICAgPlxyXG4gICAgIHt7Y29uZmlnRGF0YS5jb25maWdEYXRhLm5vdGlmaWNhdGlvbkNvdW50fX1cclxuICAgIDwvc3Bhbj5cclxuICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAobW91c2VlbnRlcik9XCJzaG93UHJvZmlsZU1lbnU9dHJ1ZVwiXHJcbiAgICAgICAgICBjbGFzcz1cInByb2ZpbGUtaWNvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHJvdW5kZWQtcGlsbCBiZy1saWdodFwiXHJcbiAgICAgICAgICByb2xlPVwiYnV0dG9uXCIgKm5nSWY9XCJjb25maWdEYXRhLmNvbmZpZ0RhdGEuVXNlclByb2ZpbGVWaXNpYmxlPT0ndHJ1ZSdcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgW3NyY109XCJjb25maWdEYXRhLmNvbmZpZ0RhdGEuaW1hZ2VVcmxcIlxyXG4gICAgICAgICAgICBhbHQ9XCJQcm9maWxlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJyb3VuZGVkLWNpcmNsZSBtZS0yXCJcclxuICAgICAgICAgICAgd2lkdGg9XCIzNlwiXHJcbiAgICAgICAgICAgIGhlaWdodD1cIjM2XCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LW1lZGl1bVwiPnt7Y29uZmlnRGF0YS5jb25maWdEYXRhLnVzZXJQcm9maWxlVGV4dH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwic2hvd1Byb2ZpbGVNZW51XCJcclxuICAgICAgICAgIGNsYXNzPVwicHJvZmlsZS1tZW51IHBvc2l0aW9uLWFic29sdXRlIHRvcC0xMDAgZW5kLTAgYmctd2hpdGUgYm9yZGVyIGJvcmRlci13YXJuaW5nIHJvdW5kZWQtMyBzaGFkb3ctc20gbXQtMlwiICAobW91c2VlbnRlcik9XCJzaG93UHJvZmlsZU1lbnU9dHJ1ZVwiICAobW91c2VsZWF2ZSk9XCJzaG93UHJvZmlsZU1lbnU9ZmFsc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9maWxlLW1lbnUtY2FyZXRcIj48L2Rpdj5cclxuICAgICAgICAgIFxyXG4gICAgICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCBtLTAgcHktMlwiPlxyXG4gICAgICAgICAgPGxpIGNsYXNzPVwicHgtMyBweS0yIHRleHQtbm93cmFwXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29uZmlnRGF0YS5vcHRpb25zIHx8IFtdXCI+XHJcbiAgICAgICAgICB7eyBpdGVtLmxhYmVsIHx8ICdObyBsYWJlbCcgfX1cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvaGVhZGVyPiJdfQ==
|