@kato-lee/components 1.0.7 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/_grids.scss +5 -5
- package/assets/fonts/fonts.scss +11 -0
- package/assets/material/themes/dark.scss +2 -1
- package/assets/themes/_dark.scss +2 -1
- package/assets/themes/_default.scss +0 -1
- package/box-form/{box-form.component.d.ts → component.d.ts} +2 -2
- package/box-form/index.d.ts +2 -2
- package/box-form/module.d.ts +8 -0
- package/capsule/{capsule.component.d.ts → component.d.ts} +1 -1
- package/capsule/index.d.ts +2 -2
- package/capsule/{capsule.module.d.ts → module.d.ts} +3 -2
- package/cards/{simple-card.component.d.ts → component.d.ts} +1 -1
- package/cards/index.d.ts +2 -2
- package/cards/{cards.module.d.ts → module.d.ts} +3 -2
- package/dialogs/dismiss-dialog-button.component.d.ts +1 -1
- package/dialogs/index.d.ts +1 -1
- package/dialogs/module.d.ts +9 -0
- package/esm2022/box-form/component.mjs +112 -0
- package/esm2022/box-form/index.mjs +3 -3
- package/esm2022/box-form/module.mjs +17 -0
- package/esm2022/capsule/component.mjs +78 -0
- package/esm2022/capsule/index.mjs +3 -3
- package/esm2022/capsule/module.mjs +17 -0
- package/esm2022/cards/component.mjs +48 -0
- package/esm2022/cards/index.mjs +3 -3
- package/esm2022/cards/module.mjs +18 -0
- package/esm2022/dialogs/dismiss-dialog-button.component.mjs +14 -12
- package/esm2022/dialogs/index.mjs +2 -2
- package/esm2022/dialogs/module.mjs +19 -0
- package/esm2022/fields/autocomplete/component.mjs +259 -0
- package/esm2022/fields/autocomplete/index.mjs +2 -0
- package/esm2022/fields/common.mjs +11 -0
- package/esm2022/fields/date/component.mjs +163 -0
- package/esm2022/fields/date/index.mjs +2 -0
- package/esm2022/fields/date-range/component.mjs +85 -0
- package/esm2022/fields/date-range/index.mjs +2 -0
- package/esm2022/fields/error/component.mjs +57 -0
- package/esm2022/fields/error/error-equals.pipe.mjs +3 -3
- package/esm2022/fields/error/error.msg.pipe.mjs +3 -3
- package/esm2022/fields/general/component.mjs +202 -0
- package/esm2022/fields/general/index.mjs +2 -0
- package/esm2022/fields/index.mjs +14 -14
- package/esm2022/fields/module.mjs +82 -0
- package/esm2022/fields/money/component.mjs +202 -0
- package/esm2022/fields/money/index.mjs +2 -0
- package/esm2022/fields/number/component.mjs +179 -0
- package/esm2022/fields/number/index.mjs +2 -0
- package/esm2022/fields/remote-autocomplete/component.mjs +188 -0
- package/esm2022/fields/remote-autocomplete/index.mjs +2 -0
- package/esm2022/fields/select/component.mjs +158 -0
- package/esm2022/fields/select/index.mjs +2 -0
- package/esm2022/fields/text-area/component.mjs +186 -0
- package/esm2022/fields/validators.mjs +11 -0
- package/esm2022/modal/component.mjs +66 -0
- package/esm2022/modal/index.mjs +4 -4
- package/esm2022/modal/module.mjs +17 -0
- package/esm2022/modal/service.mjs +33 -0
- package/esm2022/pretty-box/component.mjs +94 -0
- package/esm2022/pretty-box/index.mjs +2 -2
- package/esm2022/tables/index.mjs +2 -2
- package/esm2022/tables/module.mjs +23 -0
- package/esm2022/toast/index.mjs +2 -2
- package/esm2022/toast/service.mjs +42 -0
- package/fesm2022/kato-lee-components-box-form.mjs +19 -29
- package/fesm2022/kato-lee-components-box-form.mjs.map +1 -1
- package/fesm2022/kato-lee-components-capsule.mjs +5 -4
- package/fesm2022/kato-lee-components-capsule.mjs.map +1 -1
- package/fesm2022/kato-lee-components-cards.mjs +7 -5
- package/fesm2022/kato-lee-components-cards.mjs.map +1 -1
- package/fesm2022/kato-lee-components-dialogs.mjs +16 -18
- package/fesm2022/kato-lee-components-dialogs.mjs.map +1 -1
- package/fesm2022/kato-lee-components-fields.mjs +135 -106
- package/fesm2022/kato-lee-components-fields.mjs.map +1 -1
- package/fesm2022/kato-lee-components-modal.mjs +9 -10
- package/fesm2022/kato-lee-components-modal.mjs.map +1 -1
- package/fesm2022/kato-lee-components-pretty-box.mjs +6 -6
- package/fesm2022/kato-lee-components-pretty-box.mjs.map +1 -1
- package/fesm2022/kato-lee-components-tables.mjs +1 -0
- package/fesm2022/kato-lee-components-tables.mjs.map +1 -1
- package/fesm2022/kato-lee-components-toast.mjs.map +1 -1
- package/fields/{autocomplete-field/autocomplete-field.component.d.ts → autocomplete/component.d.ts} +2 -2
- package/fields/autocomplete/index.d.ts +1 -0
- package/fields/{date-field/date-field.component.d.ts → date/component.d.ts} +2 -2
- package/fields/date/index.d.ts +1 -0
- package/fields/{date-range-field/date-range-field.component.d.ts → date-range/component.d.ts} +2 -2
- package/fields/date-range/index.d.ts +1 -0
- package/fields/error/{error.component.d.ts → component.d.ts} +1 -1
- package/fields/error/error-equals.pipe.d.ts +1 -1
- package/fields/error/error.msg.pipe.d.ts +1 -1
- package/fields/{general-field/general-field.component.d.ts → general/component.d.ts} +2 -2
- package/fields/general/index.d.ts +1 -0
- package/fields/index.d.ts +13 -13
- package/fields/module.d.ts +19 -0
- package/fields/{money-field/money-field.component.d.ts → money/component.d.ts} +1 -1
- package/fields/money/index.d.ts +1 -0
- package/fields/{number-field/number-field.component.d.ts → number/component.d.ts} +1 -1
- package/fields/number/index.d.ts +1 -0
- package/fields/remote-autocomplete/index.d.ts +1 -0
- package/fields/{select-field/select-field.component.d.ts → select/component.d.ts} +2 -2
- package/fields/select/index.d.ts +1 -0
- package/fields/text-area/{textarea.component.d.ts → component.d.ts} +1 -1
- package/modal/{modal.component.d.ts → component.d.ts} +1 -1
- package/modal/index.d.ts +3 -3
- package/modal/module.d.ts +8 -0
- package/package.json +1 -7
- package/pretty-box/component.d.ts +24 -0
- package/pretty-box/index.d.ts +1 -1
- package/tables/index.d.ts +1 -1
- package/tables/{tables.module.d.ts → module.d.ts} +1 -0
- package/toast/index.d.ts +1 -1
- package/assets/fonts/body/Transpass-Bold.ttf +0 -0
- package/assets/fonts/body/Transpass-Light.ttf +0 -0
- package/assets/fonts/body/Transpass-Medium.ttf +0 -0
- package/assets/fonts/body/Transpass-Regular.ttf +0 -0
- package/assets/fonts/body/style-font.scss +0 -40
- package/assets/fonts/main.scss +0 -18
- package/assets/fonts/title/Poppins-Bold.ttf +0 -0
- package/assets/fonts/title/Poppins-Light.ttf +0 -0
- package/assets/fonts/title/Poppins-Medium.ttf +0 -0
- package/assets/fonts/title/Poppins-Regular.ttf +0 -0
- package/assets/fonts/title/Poppins-SemiBold.ttf +0 -0
- package/assets/fonts/title/style-font.scss +0 -39
- package/assets/layouts/_loader.scss +0 -71
- package/assets/layouts/origin.scss +0 -775
- package/box-form/box-form.module.d.ts +0 -13
- package/dialogs/dialogs.module.d.ts +0 -11
- package/esm2022/box-form/box-form.component.mjs +0 -99
- package/esm2022/box-form/box-form.module.mjs +0 -40
- package/esm2022/capsule/capsule.component.mjs +0 -78
- package/esm2022/capsule/capsule.module.mjs +0 -16
- package/esm2022/cards/cards.module.mjs +0 -17
- package/esm2022/cards/simple-card.component.mjs +0 -47
- package/esm2022/dialogs/dialogs.module.mjs +0 -22
- package/esm2022/fields/autocomplete-field/autocomplete-field.component.mjs +0 -240
- package/esm2022/fields/date-field/date-field.component.mjs +0 -148
- package/esm2022/fields/date-range-field/date-range-field.component.mjs +0 -70
- package/esm2022/fields/error/error.component.mjs +0 -55
- package/esm2022/fields/error/error.module.mjs +0 -21
- package/esm2022/fields/fields.common.mjs +0 -11
- package/esm2022/fields/fields.module.mjs +0 -128
- package/esm2022/fields/fields.validators.mjs +0 -11
- package/esm2022/fields/general-field/general-field.component.mjs +0 -188
- package/esm2022/fields/money-field/money-field.component.mjs +0 -188
- package/esm2022/fields/number-field/number-field.component.mjs +0 -165
- package/esm2022/fields/remote-autocomplete-field/remote-autocomplete-field.component.mjs +0 -188
- package/esm2022/fields/select-field/select-field.component.mjs +0 -135
- package/esm2022/fields/text-area/textarea.component.mjs +0 -171
- package/esm2022/layouts/origin/breadcrumb/breadcrumb.component.mjs +0 -65
- package/esm2022/layouts/origin/footer/footer.component.mjs +0 -11
- package/esm2022/layouts/origin/header/header.component.mjs +0 -46
- package/esm2022/layouts/origin/index.mjs +0 -12
- package/esm2022/layouts/origin/kato-lee-components-layouts-origin.mjs +0 -5
- package/esm2022/layouts/origin/layout.component.mjs +0 -210
- package/esm2022/layouts/origin/layout.module.mjs +0 -52
- package/esm2022/layouts/origin/layout.navigation.mjs +0 -19
- package/esm2022/layouts/origin/navigation-interfaces.mjs +0 -2
- package/esm2022/layouts/origin/services/index.mjs +0 -4
- package/esm2022/layouts/origin/services/route-parts.service.mjs +0 -28
- package/esm2022/layouts/origin/services/toggle-sidebar.mjs +0 -48
- package/esm2022/layouts/origin/services/validate-access.pipe.mjs +0 -53
- package/esm2022/layouts/origin/sidebar/sidebar.component.mjs +0 -69
- package/esm2022/layouts/origin/sidebar/sidenav/expansion/accordion.component.mjs +0 -74
- package/esm2022/layouts/origin/sidebar/sidenav/expansion/expansion-panel-header.component.mjs +0 -51
- package/esm2022/layouts/origin/sidebar/sidenav/expansion/expansion-panel.component.mjs +0 -63
- package/esm2022/layouts/origin/sidebar/sidenav/sidenav.component.mjs +0 -130
- package/esm2022/modal/modal.component.mjs +0 -63
- package/esm2022/modal/modal.module.mjs +0 -21
- package/esm2022/modal/modal.service.mjs +0 -33
- package/esm2022/pretty-box/pretty-box.component.mjs +0 -94
- package/esm2022/tables/tables.module.mjs +0 -22
- package/esm2022/toast/toast.service.mjs +0 -42
- package/fesm2022/kato-lee-components-layouts-origin.mjs +0 -872
- package/fesm2022/kato-lee-components-layouts-origin.mjs.map +0 -1
- package/fields/error/error.module.d.ts +0 -11
- package/fields/fields.module.d.ts +0 -29
- package/layouts/origin/breadcrumb/breadcrumb.component.d.ts +0 -24
- package/layouts/origin/footer/footer.component.d.ts +0 -5
- package/layouts/origin/header/header.component.d.ts +0 -15
- package/layouts/origin/index.d.ts +0 -8
- package/layouts/origin/layout.component.d.ts +0 -58
- package/layouts/origin/layout.module.d.ts +0 -18
- package/layouts/origin/layout.navigation.d.ts +0 -10
- package/layouts/origin/navigation-interfaces.d.ts +0 -24
- package/layouts/origin/services/index.d.ts +0 -3
- package/layouts/origin/services/route-parts.service.d.ts +0 -15
- package/layouts/origin/services/toggle-sidebar.d.ts +0 -10
- package/layouts/origin/services/validate-access.pipe.d.ts +0 -7
- package/layouts/origin/sidebar/sidebar.component.d.ts +0 -27
- package/layouts/origin/sidebar/sidenav/expansion/accordion.component.d.ts +0 -10
- package/layouts/origin/sidebar/sidenav/expansion/expansion-panel-header.component.d.ts +0 -11
- package/layouts/origin/sidebar/sidenav/expansion/expansion-panel.component.d.ts +0 -12
- package/layouts/origin/sidebar/sidenav/sidenav.component.d.ts +0 -23
- package/modal/modal.module.d.ts +0 -11
- package/pretty-box/pretty-box.component.d.ts +0 -24
- /package/fields/{fields.common.d.ts → common.d.ts} +0 -0
- /package/fields/{remote-autocomplete-field/remote-autocomplete-field.component.d.ts → remote-autocomplete/component.d.ts} +0 -0
- /package/fields/{fields.validators.d.ts → validators.d.ts} +0 -0
- /package/modal/{modal.service.d.ts → service.d.ts} +0 -0
- /package/toast/{toast.service.d.ts → service.d.ts} +0 -0
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Output, EventEmitter, ViewEncapsulation, Input, } from '@angular/core';
|
|
2
|
-
import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
-
import { Subject, debounceTime, distinctUntilChanged, firstValueFrom, map, takeUntil, } from 'rxjs';
|
|
4
|
-
import { CommonModule } from '@angular/common';
|
|
5
|
-
import { MatProgressSpinnerModule } from '@kato-lee/material/progress-spinner';
|
|
6
|
-
import { MatAutocompleteModule } from '@kato-lee/material/autocomplete';
|
|
7
|
-
import { MatFormFieldModule } from '@kato-lee/material/form-field';
|
|
8
|
-
import { MatButtonModule } from '@kato-lee/material/button';
|
|
9
|
-
import { MatInputModule } from '@kato-lee/material/input';
|
|
10
|
-
import { MatIconModule } from '@kato-lee/material/icon';
|
|
11
|
-
import { TAK_PRESS_ESC_KEY } from '../fields.common';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "@angular/common/http";
|
|
14
|
-
import * as i2 from "@kato-lee/components/toast";
|
|
15
|
-
import * as i3 from "@angular/forms";
|
|
16
|
-
import * as i4 from "@kato-lee/material/progress-spinner";
|
|
17
|
-
import * as i5 from "@kato-lee/material/form-field";
|
|
18
|
-
import * as i6 from "@kato-lee/material/input";
|
|
19
|
-
import * as i7 from "@kato-lee/material/autocomplete";
|
|
20
|
-
import * as i8 from "@kato-lee/material/core";
|
|
21
|
-
import * as i9 from "@kato-lee/material/icon";
|
|
22
|
-
import * as i10 from "@kato-lee/material/button";
|
|
23
|
-
import * as i11 from "@angular/common";
|
|
24
|
-
export class TakRemoteAutocompleteFieldComponent {
|
|
25
|
-
constructor(_http, _cd, _toast) {
|
|
26
|
-
this._http = _http;
|
|
27
|
-
this._cd = _cd;
|
|
28
|
-
this._toast = _toast;
|
|
29
|
-
this.remoteUrl = '';
|
|
30
|
-
this.params = {};
|
|
31
|
-
this.option = 'option';
|
|
32
|
-
this.extraInfo = '';
|
|
33
|
-
this.justOneLoad = false;
|
|
34
|
-
this.onSelect = new EventEmitter();
|
|
35
|
-
this.suggestions = [];
|
|
36
|
-
this.autocomplete = new FormControl();
|
|
37
|
-
this._isLoading = false;
|
|
38
|
-
this.isValueSelected = false;
|
|
39
|
-
this._unsubscribe$ = new Subject();
|
|
40
|
-
this._isLoadingItem = false;
|
|
41
|
-
this._isRequired = true;
|
|
42
|
-
this._value = '';
|
|
43
|
-
this._notSuggestions = false;
|
|
44
|
-
this.wasLoaded = false;
|
|
45
|
-
}
|
|
46
|
-
async ngOnInit() {
|
|
47
|
-
if (!this.justOneLoad) {
|
|
48
|
-
this.autocomplete.valueChanges
|
|
49
|
-
.pipe(takeUntil(this._unsubscribe$), debounceTime(500), distinctUntilChanged())
|
|
50
|
-
.subscribe(async (value) => {
|
|
51
|
-
if (value &&
|
|
52
|
-
!this.suggestions.filter(suggestion => suggestion.getNombre() === value).length) {
|
|
53
|
-
this._isLoading = true;
|
|
54
|
-
this._cd.markForCheck();
|
|
55
|
-
try {
|
|
56
|
-
const result = await firstValueFrom(this._http.get(this.remoteUrl, {
|
|
57
|
-
params: this.params,
|
|
58
|
-
}));
|
|
59
|
-
if (result.length !== 0) {
|
|
60
|
-
this.suggestions = result;
|
|
61
|
-
if (`${value}`.toLocaleLowerCase() ===
|
|
62
|
-
`${this.suggestions[0][this.option]}`.toLocaleLowerCase()) {
|
|
63
|
-
this.autocomplete.setValue(`${this.suggestions[0][this.option]}`, {
|
|
64
|
-
emitEvent: false,
|
|
65
|
-
});
|
|
66
|
-
this.onSelect.emit(this.suggestions[0]);
|
|
67
|
-
document.body.dispatchEvent(TAK_PRESS_ESC_KEY);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
this._toast.notification('No existen items que contengan esta palabra clave');
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
this._toast.danger(error.error.message);
|
|
76
|
-
}
|
|
77
|
-
this._isLoading = false;
|
|
78
|
-
this._cd.markForCheck();
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
try {
|
|
84
|
-
const result = await firstValueFrom(this._http.get(this.remoteUrl, {
|
|
85
|
-
params: this.params,
|
|
86
|
-
}));
|
|
87
|
-
this.suggestions = result;
|
|
88
|
-
this.wasLoaded = true;
|
|
89
|
-
this._cd.markForCheck();
|
|
90
|
-
this._filteredOptions = this.autocomplete.valueChanges.pipe(takeUntil(this._unsubscribe$), map(() => this._filter()));
|
|
91
|
-
}
|
|
92
|
-
catch (error) {
|
|
93
|
-
this._toast.danger(error.error.message);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
_filter() {
|
|
98
|
-
const value = typeof `${this.autocomplete.value}` === 'string'
|
|
99
|
-
? `${this.autocomplete.value}`.toLowerCase()
|
|
100
|
-
: `${this.autocomplete.value[this.option]}`.toLowerCase();
|
|
101
|
-
const option = this.suggestions.filter(res => `${res[this.option]}`.toLowerCase().includes(value));
|
|
102
|
-
if (!option.length)
|
|
103
|
-
this._notSuggestions = true;
|
|
104
|
-
else
|
|
105
|
-
this._notSuggestions = false;
|
|
106
|
-
return option;
|
|
107
|
-
}
|
|
108
|
-
async refresh() {
|
|
109
|
-
try {
|
|
110
|
-
const result = await firstValueFrom(this._http.get(this.remoteUrl, {
|
|
111
|
-
params: this.params,
|
|
112
|
-
}));
|
|
113
|
-
this.suggestions = result;
|
|
114
|
-
this.autocomplete.setValue('');
|
|
115
|
-
this._toast.notification('Data actualizada correctamente');
|
|
116
|
-
this._cd.markForCheck();
|
|
117
|
-
}
|
|
118
|
-
catch (error) {
|
|
119
|
-
this._toast.danger(error.error.message);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
reset() {
|
|
123
|
-
if (!this.justOneLoad) {
|
|
124
|
-
this.autocomplete.reset();
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
this.autocomplete.setValue('');
|
|
128
|
-
}
|
|
129
|
-
this.onSelect.emit(null);
|
|
130
|
-
}
|
|
131
|
-
emit(el, option) {
|
|
132
|
-
if (el.isUserInput) {
|
|
133
|
-
this.onSelect.emit(option);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
ngOnDestroy() {
|
|
137
|
-
this._unsubscribe$.next();
|
|
138
|
-
this._unsubscribe$.complete();
|
|
139
|
-
}
|
|
140
|
-
get isLoading() {
|
|
141
|
-
return this._isLoading;
|
|
142
|
-
}
|
|
143
|
-
get isRequired() {
|
|
144
|
-
return this._isRequired;
|
|
145
|
-
}
|
|
146
|
-
get isLoadingItem() {
|
|
147
|
-
return this._isLoadingItem;
|
|
148
|
-
}
|
|
149
|
-
get filteredOptions() {
|
|
150
|
-
return this._filteredOptions;
|
|
151
|
-
}
|
|
152
|
-
get value() {
|
|
153
|
-
return `${this._value}`;
|
|
154
|
-
}
|
|
155
|
-
get notSuggestions() {
|
|
156
|
-
return this._notSuggestions;
|
|
157
|
-
}
|
|
158
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakRemoteAutocompleteFieldComponent, deps: [{ token: i1.HttpClient }, { token: i0.ChangeDetectorRef }, { token: i2.TakToast }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
159
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: TakRemoteAutocompleteFieldComponent, isStandalone: true, selector: "tak-remote-autocomplete-field", inputs: { remoteUrl: "remoteUrl", params: "params", option: "option", extraInfo: "extraInfo", justOneLoad: "justOneLoad" }, outputs: { onSelect: "onSelect" }, ngImport: i0, template: "@if (!justOneLoad || (justOneLoad && wasLoaded)) {\r\n <mat-form-field appearance=\"standard\">\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (isRequired) {\r\n <span class=\"gcm-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <input matInput [formControl]=\"autocomplete\" [matAutocomplete]=\"auto\" />\r\n\r\n @if (isLoading || (autocomplete.value === null && isLoadingItem)) {\r\n <mat-spinner\r\n mat-icon-button\r\n [diameter]=\"15\"\r\n mode=\"indeterminate\"\r\n class=\"spinner-loading\"\r\n ></mat-spinner>\r\n }\r\n <!---->\r\n\r\n @if (autocomplete.value) {\r\n <button mat-icon-button matSuffix (click)=\"reset()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n @if (justOneLoad && !autocomplete.value) {\r\n <button mat-icon-button matSuffix (click)=\"refresh()\">\r\n <mat-icon>refresh</mat-icon>\r\n </button>\r\n }\r\n\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\r\n @if (!justOneLoad) {\r\n @for (suggestion of suggestions; track $index) {\r\n <mat-option\r\n [value]=\"suggestion[option]\"\r\n title=\"{{ suggestion[option] }} {{\r\n extraInfo ? '(' + suggestion[extraInfo] + ')' : ''\r\n }}\"\r\n (onSelectionChange)=\"emit($event, suggestion)\"\r\n >\r\n <span>{{ suggestion[option] }}</span>\r\n @if (extraInfo) {\r\n <span class=\"mat-option-span-extra\">{{ suggestion[extraInfo] }}</span>\r\n }\r\n </mat-option>\r\n }\r\n @if (notSuggestions) {\r\n <mat-option>\r\n <span class=\"tak-autocomplete-not-records\"> No se encuentran resultados </span>\r\n </mat-option>\r\n }\r\n } @else {\r\n @for (suggestion of filteredOptions | async; track $index) {\r\n <mat-option\r\n [value]=\"suggestion[option]\"\r\n title=\"{{ suggestion[option] }} {{\r\n extraInfo ? '(' + suggestion[extraInfo] + ')' : ''\r\n }}\"\r\n (onSelectionChange)=\"emit($event, suggestion)\"\r\n >\r\n <span>{{ suggestion[option] }}</span>\r\n @if (extraInfo) {\r\n <span class=\"mat-option-span-extra\">{{ suggestion[extraInfo] }}</span>\r\n }\r\n </mat-option>\r\n }\r\n @if (notSuggestions) {\r\n <mat-option>\r\n <span class=\"tak-autocomplete-not-records\"> No se encuentran resultados </span>\r\n </mat-option>\r\n }\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n}\r\n", styles: ["mat-spinner.spinner-loading{display:inline;margin-left:-10px}mat-spinner.spinner-loading>svg{margin-top:-5px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i7.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i7.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i10.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i11.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
160
|
-
}
|
|
161
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakRemoteAutocompleteFieldComponent, decorators: [{
|
|
162
|
-
type: Component,
|
|
163
|
-
args: [{ standalone: true, imports: [
|
|
164
|
-
FormsModule,
|
|
165
|
-
MatProgressSpinnerModule,
|
|
166
|
-
MatFormFieldModule,
|
|
167
|
-
MatFormFieldModule,
|
|
168
|
-
MatInputModule,
|
|
169
|
-
ReactiveFormsModule,
|
|
170
|
-
MatAutocompleteModule,
|
|
171
|
-
MatIconModule,
|
|
172
|
-
MatButtonModule,
|
|
173
|
-
CommonModule,
|
|
174
|
-
], selector: 'tak-remote-autocomplete-field', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!justOneLoad || (justOneLoad && wasLoaded)) {\r\n <mat-form-field appearance=\"standard\">\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (isRequired) {\r\n <span class=\"gcm-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <input matInput [formControl]=\"autocomplete\" [matAutocomplete]=\"auto\" />\r\n\r\n @if (isLoading || (autocomplete.value === null && isLoadingItem)) {\r\n <mat-spinner\r\n mat-icon-button\r\n [diameter]=\"15\"\r\n mode=\"indeterminate\"\r\n class=\"spinner-loading\"\r\n ></mat-spinner>\r\n }\r\n <!---->\r\n\r\n @if (autocomplete.value) {\r\n <button mat-icon-button matSuffix (click)=\"reset()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n @if (justOneLoad && !autocomplete.value) {\r\n <button mat-icon-button matSuffix (click)=\"refresh()\">\r\n <mat-icon>refresh</mat-icon>\r\n </button>\r\n }\r\n\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\r\n @if (!justOneLoad) {\r\n @for (suggestion of suggestions; track $index) {\r\n <mat-option\r\n [value]=\"suggestion[option]\"\r\n title=\"{{ suggestion[option] }} {{\r\n extraInfo ? '(' + suggestion[extraInfo] + ')' : ''\r\n }}\"\r\n (onSelectionChange)=\"emit($event, suggestion)\"\r\n >\r\n <span>{{ suggestion[option] }}</span>\r\n @if (extraInfo) {\r\n <span class=\"mat-option-span-extra\">{{ suggestion[extraInfo] }}</span>\r\n }\r\n </mat-option>\r\n }\r\n @if (notSuggestions) {\r\n <mat-option>\r\n <span class=\"tak-autocomplete-not-records\"> No se encuentran resultados </span>\r\n </mat-option>\r\n }\r\n } @else {\r\n @for (suggestion of filteredOptions | async; track $index) {\r\n <mat-option\r\n [value]=\"suggestion[option]\"\r\n title=\"{{ suggestion[option] }} {{\r\n extraInfo ? '(' + suggestion[extraInfo] + ')' : ''\r\n }}\"\r\n (onSelectionChange)=\"emit($event, suggestion)\"\r\n >\r\n <span>{{ suggestion[option] }}</span>\r\n @if (extraInfo) {\r\n <span class=\"mat-option-span-extra\">{{ suggestion[extraInfo] }}</span>\r\n }\r\n </mat-option>\r\n }\r\n @if (notSuggestions) {\r\n <mat-option>\r\n <span class=\"tak-autocomplete-not-records\"> No se encuentran resultados </span>\r\n </mat-option>\r\n }\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n}\r\n", styles: ["mat-spinner.spinner-loading{display:inline;margin-left:-10px}mat-spinner.spinner-loading>svg{margin-top:-5px}\n"] }]
|
|
175
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i0.ChangeDetectorRef }, { type: i2.TakToast }], propDecorators: { remoteUrl: [{
|
|
176
|
-
type: Input
|
|
177
|
-
}], params: [{
|
|
178
|
-
type: Input
|
|
179
|
-
}], option: [{
|
|
180
|
-
type: Input
|
|
181
|
-
}], extraInfo: [{
|
|
182
|
-
type: Input
|
|
183
|
-
}], justOneLoad: [{
|
|
184
|
-
type: Input
|
|
185
|
-
}], onSelect: [{
|
|
186
|
-
type: Output
|
|
187
|
-
}] } });
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWF1dG9jb21wbGV0ZS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29tcG9uZW50cy9maWVsZHMvcmVtb3RlLWF1dG9jb21wbGV0ZS1maWVsZC9yZW1vdGUtYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb21wb25lbnRzL2ZpZWxkcy9yZW1vdGUtYXV0b2NvbXBsZXRlLWZpZWxkL3JlbW90ZS1hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsTUFBTSxFQUNOLFlBQVksRUFHWixpQkFBaUIsRUFDakIsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0UsT0FBTyxFQUVMLE9BQU8sRUFDUCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxHQUFHLEVBQ0gsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hE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QXFCLGdhQUNyQixhQUFhLG1MQUNiLGVBQWUsMlZBQ2YsWUFBWTs7MkZBa0JILG1DQUFtQztrQkE5Qi9DLFNBQVM7aUNBQ0ksSUFBSSxXQUNQO3dCQUNQLFdBQVc7d0JBQ1gsd0JBQXdCO3dCQUN4QixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLFlBQVk7cUJBQ2IsWUFDUywrQkFBK0IsaUJBYTFCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07c0lBR3RDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBJbnB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUYWtUb2FzdCB9IGZyb20gJ0BrYXRvLWxlZS9jb21wb25lbnRzL3RvYXN0JztcclxuaW1wb3J0IHtcclxuICBPYnNlcnZhYmxlLFxyXG4gIFN1YmplY3QsXHJcbiAgZGVib3VuY2VUaW1lLFxyXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gIGZpcnN0VmFsdWVGcm9tLFxyXG4gIG1hcCxcclxuICB0YWtlVW50aWwsXHJcbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0BrYXRvLWxlZS9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0BrYXRvLWxlZS9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0BrYXRvLWxlZS9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgVEFLX1BSRVNTX0VTQ19LRVkgfSBmcm9tICcuLi9maWVsZHMuY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gIF0sXHJcbiAgc2VsZWN0b3I6ICd0YWstcmVtb3RlLWF1dG9jb21wbGV0ZS1maWVsZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlbW90ZS1hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlczogW1xyXG4gICAgYFxyXG4gICAgICBtYXQtc3Bpbm5lci5zcGlubmVyLWxvYWRpbmcge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICBtYXJnaW4tbGVmdDogLTEwcHg7XHJcbiAgICAgICAgJiA+IHN2ZyB7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAtNXB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgYCxcclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWtSZW1vdGVBdXRvY29tcGxldGVGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSByZW1vdGVVcmwgPSAnJztcclxuICBASW5wdXQoKSBwYXJhbXM6IGFueSA9IHt9O1xyXG4gIEBJbnB1dCgpIG9wdGlvbiA9ICdvcHRpb24nO1xyXG4gIEBJbnB1dCgpIGV4dHJhSW5mbyA9ICcnO1xyXG4gIEBJbnB1dCgpIGp1c3RPbmVMb2FkID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSBvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBwdWJsaWMgc3VnZ2VzdGlvbnM6IGFueVtdID0gW107XHJcbiAgcHVibGljIGF1dG9jb21wbGV0ZSA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG5cclxuICBwcml2YXRlIF9pc0xvYWRpbmcgPSBmYWxzZTtcclxuICBwdWJsaWMgaXNWYWx1ZVNlbGVjdGVkID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX3Vuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfaXNMb2FkaW5nSXRlbSA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2lzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIF9maWx0ZXJlZE9wdGlvbnMhOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBwcml2YXRlIF92YWx1ZSA9ICcnO1xyXG4gIHByaXZhdGUgX25vdFN1Z2dlc3Rpb25zID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyB3YXNMb2FkZWQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBfdG9hc3Q6IFRha1RvYXN0XHJcbiAgKSB7fVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuanVzdE9uZUxvYWQpIHtcclxuICAgICAgdGhpcy5hdXRvY29tcGxldGUudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCksIGRlYm91bmNlVGltZSg1MDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoYXN5bmMgdmFsdWUgPT4ge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB2YWx1ZSAmJlxyXG4gICAgICAgICAgICAhdGhpcy5zdWdnZXN0aW9ucy5maWx0ZXIoc3VnZ2VzdGlvbiA9PiBzdWdnZXN0aW9uLmdldE5vbWJyZSgpID09PSB2YWx1ZSkubGVuZ3RoXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5faXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XHJcblxyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5faHR0cC5nZXQ8YW55W10+KHRoaXMucmVtb3RlVXJsLCB7XHJcbiAgICAgICAgICAgICAgICAgIHBhcmFtczogdGhpcy5wYXJhbXMsXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN1Z2dlc3Rpb25zID0gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICBgJHt2YWx1ZX1gLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09XHJcbiAgICAgICAgICAgICAgICAgIGAke3RoaXMuc3VnZ2VzdGlvbnNbMF1bdGhpcy5vcHRpb25dfWAudG9Mb2NhbGVMb3dlckNhc2UoKVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlLnNldFZhbHVlKGAke3RoaXMuc3VnZ2VzdGlvbnNbMF1bdGhpcy5vcHRpb25dfWAsIHtcclxuICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5vblNlbGVjdC5lbWl0KHRoaXMuc3VnZ2VzdGlvbnNbMF0pO1xyXG4gICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmRpc3BhdGNoRXZlbnQoVEFLX1BSRVNTX0VTQ19LRVkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90b2FzdC5ub3RpZmljYXRpb24oJ05vIGV4aXN0ZW4gaXRlbXMgcXVlIGNvbnRlbmdhbiBlc3RhIHBhbGFicmEgY2xhdmUnKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcclxuICAgICAgICAgICAgICB0aGlzLl90b2FzdC5kYW5nZXIoZXJyb3IuZXJyb3IubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2lzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXHJcbiAgICAgICAgICB0aGlzLl9odHRwLmdldDxhbnlbXT4odGhpcy5yZW1vdGVVcmwsIHtcclxuICAgICAgICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtcyxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWdnZXN0aW9ucyA9IHJlc3VsdDtcclxuICAgICAgICB0aGlzLndhc0xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2ZpbHRlcmVkT3B0aW9ucyA9IHRoaXMuYXV0b2NvbXBsZXRlLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCksXHJcbiAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5fZmlsdGVyKCkpXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgIHRoaXMuX3RvYXN0LmRhbmdlcihlcnJvci5lcnJvci5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZmlsdGVyKCk6IGFueVtdIHtcclxuICAgIGNvbnN0IHZhbHVlID1cclxuICAgICAgdHlwZW9mIGAke3RoaXMuYXV0b2NvbXBsZXRlLnZhbHVlfWAgPT09ICdzdHJpbmcnXHJcbiAgICAgICAgPyBgJHt0aGlzLmF1dG9jb21wbGV0ZS52YWx1ZX1gLnRvTG93ZXJDYXNlKClcclxuICAgICAgICA6IGAke3RoaXMuYXV0b2NvbXBsZXRlLnZhbHVlW3RoaXMub3B0aW9uXX1gLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBjb25zdCBvcHRpb24gPSB0aGlzLnN1Z2dlc3Rpb25zLmZpbHRlcihyZXMgPT5cclxuICAgICAgYCR7cmVzW3RoaXMub3B0aW9uXX1gLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsdWUpXHJcbiAgICApO1xyXG4gICAgaWYgKCFvcHRpb24ubGVuZ3RoKSB0aGlzLl9ub3RTdWdnZXN0aW9ucyA9IHRydWU7XHJcbiAgICBlbHNlIHRoaXMuX25vdFN1Z2dlc3Rpb25zID0gZmFsc2U7XHJcbiAgICByZXR1cm4gb3B0aW9uO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgcmVmcmVzaCgpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG4gICAgICAgIHRoaXMuX2h0dHAuZ2V0PGFueVtdPih0aGlzLnJlbW90ZVVybCwge1xyXG4gICAgICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtcyxcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG5cclxuICAgICAgdGhpcy5zdWdnZXN0aW9ucyA9IHJlc3VsdDtcclxuICAgICAgdGhpcy5hdXRvY29tcGxldGUuc2V0VmFsdWUoJycpO1xyXG4gICAgICB0aGlzLl90b2FzdC5ub3RpZmljYXRpb24oJ0RhdGEgYWN0dWFsaXphZGEgY29ycmVjdGFtZW50ZScpO1xyXG4gICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcclxuICAgICAgdGhpcy5fdG9hc3QuZGFuZ2VyKGVycm9yLmVycm9yLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlc2V0KCkge1xyXG4gICAgaWYgKCF0aGlzLmp1c3RPbmVMb2FkKSB7XHJcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlLnJlc2V0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZS5zZXRWYWx1ZSgnJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9uU2VsZWN0LmVtaXQobnVsbCBhcyBhbnkpO1xyXG4gIH1cclxuXHJcbiAgZW1pdChlbDogYW55LCBvcHRpb246IGFueSkge1xyXG4gICAgaWYgKGVsLmlzVXNlcklucHV0KSB7XHJcbiAgICAgIHRoaXMub25TZWxlY3QuZW1pdChvcHRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5zdWJzY3JpYmUkLm5leHQoKTtcclxuICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzTG9hZGluZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9pc0xvYWRpbmc7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNSZXF1aXJlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9pc1JlcXVpcmVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzTG9hZGluZ0l0ZW0oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNMb2FkaW5nSXRlbTtcclxuICB9XHJcblxyXG4gIGdldCBmaWx0ZXJlZE9wdGlvbnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyZWRPcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZhbHVlKCkge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuX3ZhbHVlfWA7XHJcbiAgfVxyXG5cclxuICBnZXQgbm90U3VnZ2VzdGlvbnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbm90U3VnZ2VzdGlvbnM7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoIWp1c3RPbmVMb2FkIHx8IChqdXN0T25lTG9hZCAmJiB3YXNMb2FkZWQpKSB7XHJcbiAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJzdGFuZGFyZFwiPlxyXG4gICAgPG1hdC1sYWJlbD5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pnt7ICcgJyB9fVxyXG4gICAgICBAaWYgKGlzUmVxdWlyZWQpIHtcclxuICAgICAgICA8c3BhbiBjbGFzcz1cImdjbS1maWVsZF9fZGFuZ2VyLXhcIj4qPC9zcGFuPlxyXG4gICAgICB9XHJcbiAgICA8L21hdC1sYWJlbD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCBbZm9ybUNvbnRyb2xdPVwiYXV0b2NvbXBsZXRlXCIgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCIgLz5cclxuXHJcbiAgICBAaWYgKGlzTG9hZGluZyB8fCAoYXV0b2NvbXBsZXRlLnZhbHVlID09PSBudWxsICYmIGlzTG9hZGluZ0l0ZW0pKSB7XHJcbiAgICAgIDxtYXQtc3Bpbm5lclxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIFtkaWFtZXRlcl09XCIxNVwiXHJcbiAgICAgICAgbW9kZT1cImluZGV0ZXJtaW5hdGVcIlxyXG4gICAgICAgIGNsYXNzPVwic3Bpbm5lci1sb2FkaW5nXCJcclxuICAgICAgPjwvbWF0LXNwaW5uZXI+XHJcbiAgICB9XHJcbiAgICA8IS0tLS0+XHJcblxyXG4gICAgQGlmIChhdXRvY29tcGxldGUudmFsdWUpIHtcclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4IChjbGljayk9XCJyZXNldCgpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgICBAaWYgKGp1c3RPbmVMb2FkICYmICFhdXRvY29tcGxldGUudmFsdWUpIHtcclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4IChjbGljayk9XCJyZWZyZXNoKClcIj5cclxuICAgICAgICA8bWF0LWljb24+cmVmcmVzaDwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgfVxyXG5cclxuICAgIDxtYXQtYXV0b2NvbXBsZXRlIGF1dG9BY3RpdmVGaXJzdE9wdGlvbiAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiPlxyXG4gICAgICBAaWYgKCFqdXN0T25lTG9hZCkge1xyXG4gICAgICAgIEBmb3IgKHN1Z2dlc3Rpb24gb2Ygc3VnZ2VzdGlvbnM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICAgW3ZhbHVlXT1cInN1Z2dlc3Rpb25bb3B0aW9uXVwiXHJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgc3VnZ2VzdGlvbltvcHRpb25dIH19IHt7XHJcbiAgICAgICAgICAgICAgZXh0cmFJbmZvID8gJygnICsgc3VnZ2VzdGlvbltleHRyYUluZm9dICsgJyknIDogJydcclxuICAgICAgICAgICAgfX1cIlxyXG4gICAgICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2UpPVwiZW1pdCgkZXZlbnQsIHN1Z2dlc3Rpb24pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4+e3sgc3VnZ2VzdGlvbltvcHRpb25dIH19PC9zcGFuPlxyXG4gICAgICAgICAgICBAaWYgKGV4dHJhSW5mbykge1xyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LW9wdGlvbi1zcGFuLWV4dHJhXCI+e3sgc3VnZ2VzdGlvbltleHRyYUluZm9dIH19PC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAobm90U3VnZ2VzdGlvbnMpIHtcclxuICAgICAgICAgIDxtYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhay1hdXRvY29tcGxldGUtbm90LXJlY29yZHNcIj4gTm8gc2UgZW5jdWVudHJhbiByZXN1bHRhZG9zIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICB9XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIEBmb3IgKHN1Z2dlc3Rpb24gb2YgZmlsdGVyZWRPcHRpb25zIHwgYXN5bmM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICAgW3ZhbHVlXT1cInN1Z2dlc3Rpb25bb3B0aW9uXVwiXHJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgc3VnZ2VzdGlvbltvcHRpb25dIH19IHt7XHJcbiAgICAgICAgICAgICAgZXh0cmFJbmZvID8gJygnICsgc3VnZ2VzdGlvbltleHRyYUluZm9dICsgJyknIDogJydcclxuICAgICAgICAgICAgfX1cIlxyXG4gICAgICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2UpPVwiZW1pdCgkZXZlbnQsIHN1Z2dlc3Rpb24pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4+e3sgc3VnZ2VzdGlvbltvcHRpb25dIH19PC9zcGFuPlxyXG4gICAgICAgICAgICBAaWYgKGV4dHJhSW5mbykge1xyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LW9wdGlvbi1zcGFuLWV4dHJhXCI+e3sgc3VnZ2VzdGlvbltleHRyYUluZm9dIH19PC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAobm90U3VnZ2VzdGlvbnMpIHtcclxuICAgICAgICAgIDxtYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhay1hdXRvY29tcGxldGUtbm90LXJlY29yZHNcIj4gTm8gc2UgZW5jdWVudHJhbiByZXN1bHRhZG9zIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG59XHJcbiJdfQ==
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { Component, Optional, Input, Self, EventEmitter, Output, } from '@angular/core';
|
|
2
|
-
import { takeUntil } from 'rxjs/operators';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
import { TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/forms";
|
|
7
|
-
import * as i2 from "@kato-lee/material/form-field";
|
|
8
|
-
import * as i3 from "@kato-lee/material/button";
|
|
9
|
-
import * as i4 from "@kato-lee/material/core";
|
|
10
|
-
import * as i5 from "../error/error.component";
|
|
11
|
-
import * as i6 from "@kato-lee/material/icon";
|
|
12
|
-
import * as i7 from "@kato-lee/material/select";
|
|
13
|
-
import * as i8 from "@kato-lee/material/tooltip";
|
|
14
|
-
import * as i9 from "@kato-lee/material/menu";
|
|
15
|
-
export class TakSelectFieldComponent {
|
|
16
|
-
constructor(_ngControl, _formGroupDirective, _cd) {
|
|
17
|
-
this._ngControl = _ngControl;
|
|
18
|
-
this._formGroupDirective = _formGroupDirective;
|
|
19
|
-
this._cd = _cd;
|
|
20
|
-
this.autocomplete = 'off';
|
|
21
|
-
this.appearance = TAK_DEFAULT_APPEARANCE_FORM;
|
|
22
|
-
this.color = 'primary';
|
|
23
|
-
this.suggestions = [];
|
|
24
|
-
this.disabled = false;
|
|
25
|
-
this.type = 'select';
|
|
26
|
-
this.tooltip = '';
|
|
27
|
-
this.icon = 'filter_list';
|
|
28
|
-
this.option = 'option';
|
|
29
|
-
this.extraInfo = '';
|
|
30
|
-
this.hasDefaultValue = false;
|
|
31
|
-
this.onSelect = new EventEmitter();
|
|
32
|
-
this.onChangeFn = (_) => { };
|
|
33
|
-
this.onTouchFn = (_) => { };
|
|
34
|
-
this.isInvalid = false;
|
|
35
|
-
this.isSubmitted = false;
|
|
36
|
-
this._unsubscribe$ = new Subject();
|
|
37
|
-
if (_ngControl)
|
|
38
|
-
this._ngControl.valueAccessor = this;
|
|
39
|
-
if (_formGroupDirective) {
|
|
40
|
-
_formGroupDirective.ngSubmit.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {
|
|
41
|
-
this.isSubmitted = true;
|
|
42
|
-
_cd.markForCheck();
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
ngOnInit() {
|
|
47
|
-
if (this.suggestions.length && this.hasDefaultValue) {
|
|
48
|
-
this._ngControl.control?.setValue(this.suggestions[0]);
|
|
49
|
-
}
|
|
50
|
-
if (this.disabled)
|
|
51
|
-
this.control.disable();
|
|
52
|
-
}
|
|
53
|
-
writeValue(value) { }
|
|
54
|
-
registerOnChange(fn) {
|
|
55
|
-
this.onChangeFn = fn;
|
|
56
|
-
}
|
|
57
|
-
registerOnTouched(fn) {
|
|
58
|
-
this.onTouchFn = fn;
|
|
59
|
-
}
|
|
60
|
-
onChange(event) {
|
|
61
|
-
this.onChangeFn(event.target.value);
|
|
62
|
-
if (this.control.touched)
|
|
63
|
-
this._onValidate();
|
|
64
|
-
}
|
|
65
|
-
emit(el) {
|
|
66
|
-
if (el.isUserInput) {
|
|
67
|
-
this.onSelect.emit(el.source.value);
|
|
68
|
-
this.isInvalid = false;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
justEmit(el) {
|
|
72
|
-
this.control.setValue(el);
|
|
73
|
-
this.onSelect.emit(el);
|
|
74
|
-
this.isInvalid = false;
|
|
75
|
-
}
|
|
76
|
-
onFocusOut() {
|
|
77
|
-
this._onValidate();
|
|
78
|
-
}
|
|
79
|
-
_onValidate() {
|
|
80
|
-
if (this.control.invalid)
|
|
81
|
-
this.isInvalid = true;
|
|
82
|
-
else
|
|
83
|
-
this.isInvalid = false;
|
|
84
|
-
}
|
|
85
|
-
ngOnDestroy() {
|
|
86
|
-
this._unsubscribe$.next();
|
|
87
|
-
this._unsubscribe$.complete();
|
|
88
|
-
}
|
|
89
|
-
get control() {
|
|
90
|
-
return this._ngControl?.control;
|
|
91
|
-
}
|
|
92
|
-
get directive() {
|
|
93
|
-
return this._formGroupDirective;
|
|
94
|
-
}
|
|
95
|
-
get isDisabled() {
|
|
96
|
-
return this._ngControl.disabled;
|
|
97
|
-
}
|
|
98
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakSelectFieldComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i1.FormGroupDirective, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
99
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: TakSelectFieldComponent, selector: "tak-select-field", inputs: { autocomplete: "autocomplete", appearance: "appearance", color: "color", suggestions: "suggestions", disabled: "disabled", type: "type", tooltip: "tooltip", icon: "icon", option: "option", extraInfo: "extraInfo", hasDefaultValue: "hasDefaultValue" }, outputs: { onSelect: "onSelect" }, ngImport: i0, template: "@if (type === 'select') {\r\n <div class=\"tak-form-container\">\r\n <mat-form-field [appearance]=\"appearance\" [color]=\"color\">\r\n <mat-label><ng-content></ng-content></mat-label>\r\n <mat-select [formControl]=\"control\" (focusout)=\"onFocusOut()\">\r\n @for (suggestion of suggestions; track suggestion) {\r\n <mat-option\r\n [value]=\"suggestion\"\r\n (onSelectionChange)=\"emit($event)\"\r\n title=\"{{ suggestion[option] }} {{\r\n extraInfo ? '(' + suggestion[extraInfo] + ')' : ''\r\n }}\"\r\n >\r\n {{ suggestion[option] }}\r\n @if (extraInfo) {\r\n <span class=\"tak-option-span-extra\">{{ suggestion[extraInfo] }}</span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n} @else {\r\n <div [matTooltip]=\"tooltip\">\r\n @if (type === 'menu') {\r\n <span>\r\n <button mat-icon-button type=\"button\" [matMenuTriggerFor]=\"menu\" [disabled]=\"isDisabled\">\r\n <mat-icon>{{ icon }}</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n @for (item of suggestions; track item) {\r\n <a tak-menu-item (click)=\"justEmit(item)\">\r\n {{ item[option] }}\r\n </a>\r\n }\r\n </mat-menu>\r\n </span>\r\n }\r\n </div>\r\n}\r\n", dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i5.TakErrorComponent, selector: "tak-error", inputs: ["control", "start", "end", "isDateField", "isNumberField", "marginTop"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i9.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }] }); }
|
|
100
|
-
}
|
|
101
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakSelectFieldComponent, decorators: [{
|
|
102
|
-
type: Component,
|
|
103
|
-
args: [{ selector: 'tak-select-field', template: "@if (type === 'select') {\r\n <div class=\"tak-form-container\">\r\n <mat-form-field [appearance]=\"appearance\" [color]=\"color\">\r\n <mat-label><ng-content></ng-content></mat-label>\r\n <mat-select [formControl]=\"control\" (focusout)=\"onFocusOut()\">\r\n @for (suggestion of suggestions; track suggestion) {\r\n <mat-option\r\n [value]=\"suggestion\"\r\n (onSelectionChange)=\"emit($event)\"\r\n title=\"{{ suggestion[option] }} {{\r\n extraInfo ? '(' + suggestion[extraInfo] + ')' : ''\r\n }}\"\r\n >\r\n {{ suggestion[option] }}\r\n @if (extraInfo) {\r\n <span class=\"tak-option-span-extra\">{{ suggestion[extraInfo] }}</span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n} @else {\r\n <div [matTooltip]=\"tooltip\">\r\n @if (type === 'menu') {\r\n <span>\r\n <button mat-icon-button type=\"button\" [matMenuTriggerFor]=\"menu\" [disabled]=\"isDisabled\">\r\n <mat-icon>{{ icon }}</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n @for (item of suggestions; track item) {\r\n <a tak-menu-item (click)=\"justEmit(item)\">\r\n {{ item[option] }}\r\n </a>\r\n }\r\n </mat-menu>\r\n </span>\r\n }\r\n </div>\r\n}\r\n" }]
|
|
104
|
-
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
|
|
105
|
-
type: Self
|
|
106
|
-
}, {
|
|
107
|
-
type: Optional
|
|
108
|
-
}] }, { type: i1.FormGroupDirective, decorators: [{
|
|
109
|
-
type: Optional
|
|
110
|
-
}] }, { type: i0.ChangeDetectorRef }], propDecorators: { autocomplete: [{
|
|
111
|
-
type: Input
|
|
112
|
-
}], appearance: [{
|
|
113
|
-
type: Input
|
|
114
|
-
}], color: [{
|
|
115
|
-
type: Input
|
|
116
|
-
}], suggestions: [{
|
|
117
|
-
type: Input
|
|
118
|
-
}], disabled: [{
|
|
119
|
-
type: Input
|
|
120
|
-
}], type: [{
|
|
121
|
-
type: Input
|
|
122
|
-
}], tooltip: [{
|
|
123
|
-
type: Input
|
|
124
|
-
}], icon: [{
|
|
125
|
-
type: Input
|
|
126
|
-
}], option: [{
|
|
127
|
-
type: Input
|
|
128
|
-
}], extraInfo: [{
|
|
129
|
-
type: Input
|
|
130
|
-
}], hasDefaultValue: [{
|
|
131
|
-
type: Input
|
|
132
|
-
}], onSelect: [{
|
|
133
|
-
type: Output
|
|
134
|
-
}] } });
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb21wb25lbnRzL2ZpZWxkcy9zZWxlY3QtZmllbGQvc2VsZWN0LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb21wb25lbnRzL2ZpZWxkcy9zZWxlY3QtZmllbGQvc2VsZWN0LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLEtBQUssRUFDTCxJQUFJLEVBRUosWUFBWSxFQUNaLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQTRCLDJCQUEyQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7Ozs7O0FBTXpGLE1BQU0sT0FBTyx1QkFBdUI7SUF5QmxDLFlBQzhCLFVBQXFCLEVBQzdCLG1CQUF1QyxFQUNuRCxHQUFzQjtRQUZGLGVBQVUsR0FBVixVQUFVLENBQVc7UUFDN0Isd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUNuRCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTNCdkIsaUJBQVksR0FBNkIsS0FBSyxDQUFDO1FBQy9DLGVBQVUsR0FBMkIsMkJBQTJCLENBQUM7UUFDakUsVUFBSyxHQUFpQixTQUFTLENBQUM7UUFDaEMsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFDeEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixTQUFJLEdBQXNCLFFBQVEsQ0FBQztRQUNuQyxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsU0FBSSxHQUFHLGFBQWEsQ0FBQztRQUVyQixXQUFNLEdBQUcsUUFBUSxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFFZixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV2QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV0QyxlQUFVLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUM1QixjQUFTLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUUzQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQU8xQyxJQUFJLFVBQVU7WUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDckQsSUFBSSxtQkFBbUIsRUFBRTtZQUN2QixtQkFBbUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUM5RSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztnQkFDeEIsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hEO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFhLElBQVMsQ0FBQztJQUVsQyxnQkFBZ0IsQ0FBQyxFQUFPO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxFQUFPO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBVTtRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87WUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVNLElBQUksQ0FBQyxFQUE0QjtRQUN0QyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFTSxRQUFRLENBQUMsRUFBTztRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTztZQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDOztZQUMzQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFzQixDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxtQkFBeUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztJQUNsQyxDQUFDOzhHQW5HVSx1QkFBdUI7a0dBQXZCLHVCQUF1QiwrVkN0QnBDLHFpREEyQ0E7OzJGRHJCYSx1QkFBdUI7a0JBSm5DLFNBQVM7K0JBQ0Usa0JBQWtCOzswQkE2QnpCLElBQUk7OzBCQUFJLFFBQVE7OzBCQUNoQixRQUFRO3lFQTFCRixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uRGVzdHJveSxcclxuICBDb21wb25lbnQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgSW5wdXQsXHJcbiAgU2VsZixcclxuICBPbkluaXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBGb3JtR3JvdXBEaXJlY3RpdmUsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UgfSBmcm9tICdAa2F0by1sZWUvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdE9wdGlvblNlbGVjdGlvbkNoYW5nZSwgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBUYWtBdXRvY29tcGxldGVGaWVsZFR5cGUsIFRBS19ERUZBVUxUX0FQUEVBUkFOQ0VfRk9STSB9IGZyb20gJy4uL2ZpZWxkcy5jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0YWstc2VsZWN0LWZpZWxkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRha1NlbGVjdEZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBASW5wdXQoKSBhdXRvY29tcGxldGU6IFRha0F1dG9jb21wbGV0ZUZpZWxkVHlwZSA9ICdvZmYnO1xyXG4gIEBJbnB1dCgpIGFwcGVhcmFuY2U6IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UgPSBUQUtfREVGQVVMVF9BUFBFQVJBTkNFX0ZPUk07XHJcbiAgQElucHV0KCkgY29sb3I6IFRoZW1lUGFsZXR0ZSA9ICdwcmltYXJ5JztcclxuICBASW5wdXQoKSBzdWdnZXN0aW9uczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSB0eXBlOiAnbWVudScgfCAnc2VsZWN0JyA9ICdzZWxlY3QnO1xyXG4gIEBJbnB1dCgpIHRvb2x0aXAgPSAnJztcclxuICBASW5wdXQoKSBpY29uID0gJ2ZpbHRlcl9saXN0JztcclxuXHJcbiAgQElucHV0KCkgb3B0aW9uID0gJ29wdGlvbic7XHJcbiAgQElucHV0KCkgZXh0cmFJbmZvID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIGhhc0RlZmF1bHRWYWx1ZSA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgb25TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgcHVibGljIG9uQ2hhbmdlRm4gPSAoXzogYW55KSA9PiB7fTtcclxuICBwdWJsaWMgb25Ub3VjaEZuID0gKF86IGFueSkgPT4ge307XHJcblxyXG4gIHB1YmxpYyBpc0ludmFsaWQgPSBmYWxzZTtcclxuICBwdWJsaWMgaXNTdWJtaXR0ZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF91bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfbmdDb250cm9sOiBOZ0NvbnRyb2wsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9mb3JtR3JvdXBEaXJlY3RpdmU6IEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgaWYgKF9uZ0NvbnRyb2wpIHRoaXMuX25nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIGlmIChfZm9ybUdyb3VwRGlyZWN0aXZlKSB7XHJcbiAgICAgIF9mb3JtR3JvdXBEaXJlY3RpdmUubmdTdWJtaXQucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmlzU3VibWl0dGVkID0gdHJ1ZTtcclxuICAgICAgICBfY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc3VnZ2VzdGlvbnMubGVuZ3RoICYmIHRoaXMuaGFzRGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX25nQ29udHJvbC5jb250cm9sPy5zZXRWYWx1ZSh0aGlzLnN1Z2dlc3Rpb25zWzBdKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgdGhpcy5jb250cm9sLmRpc2FibGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHt9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaEZuID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZUZuKGV2ZW50LnRhcmdldC52YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5jb250cm9sLnRvdWNoZWQpIHRoaXMuX29uVmFsaWRhdGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWl0KGVsOiBNYXRPcHRpb25TZWxlY3Rpb25DaGFuZ2UpIHtcclxuICAgIGlmIChlbC5pc1VzZXJJbnB1dCkge1xyXG4gICAgICB0aGlzLm9uU2VsZWN0LmVtaXQoZWwuc291cmNlLnZhbHVlKTtcclxuICAgICAgdGhpcy5pc0ludmFsaWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBqdXN0RW1pdChlbDogYW55KSB7XHJcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZWwpO1xyXG4gICAgdGhpcy5vblNlbGVjdC5lbWl0KGVsKTtcclxuICAgIHRoaXMuaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Gb2N1c091dCgpIHtcclxuICAgIHRoaXMuX29uVmFsaWRhdGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX29uVmFsaWRhdGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb250cm9sLmludmFsaWQpIHRoaXMuaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgIGVsc2UgdGhpcy5pc0ludmFsaWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5uZXh0KCk7XHJcbiAgICB0aGlzLl91bnN1YnNjcmliZSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGdldCBjb250cm9sKCk6IEZvcm1Db250cm9sIHtcclxuICAgIHJldHVybiB0aGlzLl9uZ0NvbnRyb2w/LmNvbnRyb2wgYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgZGlyZWN0aXZlKCk6IEZvcm1Hcm91cERpcmVjdGl2ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwRGlyZWN0aXZlIGFzIEZvcm1Hcm91cERpcmVjdGl2ZTtcclxuICB9XHJcblxyXG4gIGdldCBpc0Rpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX25nQ29udHJvbC5kaXNhYmxlZDtcclxuICB9XHJcbn1cclxuIiwiQGlmICh0eXBlID09PSAnc2VsZWN0Jykge1xyXG4gIDxkaXYgY2xhc3M9XCJ0YWstZm9ybS1jb250YWluZXJcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCIgW2NvbG9yXT1cImNvbG9yXCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KClcIj5cclxuICAgICAgICBAZm9yIChzdWdnZXN0aW9uIG9mIHN1Z2dlc3Rpb25zOyB0cmFjayBzdWdnZXN0aW9uKSB7XHJcbiAgICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgICBbdmFsdWVdPVwic3VnZ2VzdGlvblwiXHJcbiAgICAgICAgICAgIChvblNlbGVjdGlvbkNoYW5nZSk9XCJlbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICB0aXRsZT1cInt7IHN1Z2dlc3Rpb25bb3B0aW9uXSB9fSB7e1xyXG4gICAgICAgICAgICAgIGV4dHJhSW5mbyA/ICcoJyArIHN1Z2dlc3Rpb25bZXh0cmFJbmZvXSArICcpJyA6ICcnXHJcbiAgICAgICAgICAgIH19XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgc3VnZ2VzdGlvbltvcHRpb25dIH19XHJcbiAgICAgICAgICAgIEBpZiAoZXh0cmFJbmZvKSB7XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWstb3B0aW9uLXNwYW4tZXh0cmFcIj57eyBzdWdnZXN0aW9uW2V4dHJhSW5mb10gfX08L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICBAaWYgKGlzSW52YWxpZCB8fCAoaXNTdWJtaXR0ZWQgJiYgY29udHJvbC5pbnZhbGlkKSkge1xyXG4gICAgICA8dGFrLWVycm9yIFtjb250cm9sXT1cImNvbnRyb2xcIj48L3Rhay1lcnJvcj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxufSBAZWxzZSB7XHJcbiAgPGRpdiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwXCI+XHJcbiAgICBAaWYgKHR5cGUgPT09ICdtZW51Jykge1xyXG4gICAgICA8c3Bhbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPnt7IGljb24gfX08L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgICAgIEBmb3IgKGl0ZW0gb2Ygc3VnZ2VzdGlvbnM7IHRyYWNrIGl0ZW0pIHtcclxuICAgICAgICAgICAgPGEgdGFrLW1lbnUtaXRlbSAoY2xpY2spPVwianVzdEVtaXQoaXRlbSlcIj5cclxuICAgICAgICAgICAgICB7eyBpdGVtW29wdGlvbl0gfX1cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxufVxyXG4iXX0=
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
import { Component, Optional, Input, Self, Output, EventEmitter, } from '@angular/core';
|
|
2
|
-
import { TAK_DEFAULT_APPEARANCE_FORM } from '../fields.common';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/forms";
|
|
5
|
-
import * as i2 from "@kato-lee/material/form-field";
|
|
6
|
-
import * as i3 from "@kato-lee/material/button";
|
|
7
|
-
import * as i4 from "../error/error.component";
|
|
8
|
-
import * as i5 from "@kato-lee/material/icon";
|
|
9
|
-
import * as i6 from "@kato-lee/material/input";
|
|
10
|
-
export class TakTextareaComponent {
|
|
11
|
-
constructor(_ngControl, _formGroupDirective, _cd) {
|
|
12
|
-
this._ngControl = _ngControl;
|
|
13
|
-
this._formGroupDirective = _formGroupDirective;
|
|
14
|
-
this._cd = _cd;
|
|
15
|
-
this.autocomplete = 'off';
|
|
16
|
-
this.appearance = TAK_DEFAULT_APPEARANCE_FORM;
|
|
17
|
-
this.floatLabel = 'auto';
|
|
18
|
-
this.color = 'primary';
|
|
19
|
-
this.actionIcon = 'search';
|
|
20
|
-
this.defaultFilterStyle = true;
|
|
21
|
-
this.hasActionButton = false;
|
|
22
|
-
this.hasClearButton = false;
|
|
23
|
-
this.countCaracters = false;
|
|
24
|
-
this.isTextArea = false;
|
|
25
|
-
this.placeholder = '';
|
|
26
|
-
this.heightInPx = 60;
|
|
27
|
-
this.disabled = false;
|
|
28
|
-
this.onExecuteAction = new EventEmitter();
|
|
29
|
-
this.onKeyUp = new EventEmitter();
|
|
30
|
-
this.onChangeFn = (_) => { };
|
|
31
|
-
this.onTouchFn = (_) => { };
|
|
32
|
-
this._isSubmitted = false;
|
|
33
|
-
this._isInvalid = false;
|
|
34
|
-
this._required = false;
|
|
35
|
-
this._value = '';
|
|
36
|
-
this._decrypted = false;
|
|
37
|
-
if (_ngControl)
|
|
38
|
-
this._ngControl.valueAccessor = this;
|
|
39
|
-
if (_formGroupDirective) {
|
|
40
|
-
this._subscription = _formGroupDirective.ngSubmit.subscribe(() => {
|
|
41
|
-
this._isSubmitted = true;
|
|
42
|
-
_cd.markForCheck();
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
ngOnInit() {
|
|
47
|
-
const form = this.control;
|
|
48
|
-
if (form?._rawValidators) {
|
|
49
|
-
form._rawValidators.forEach((r) => {
|
|
50
|
-
if (r.name.includes('required'))
|
|
51
|
-
this._required = true;
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
if (this.disabled)
|
|
55
|
-
this.control.disable();
|
|
56
|
-
}
|
|
57
|
-
writeValue(value) {
|
|
58
|
-
if (value === null) {
|
|
59
|
-
this._isInvalid = false;
|
|
60
|
-
}
|
|
61
|
-
this._value = value;
|
|
62
|
-
this._isSubmitted = false;
|
|
63
|
-
this._cd.markForCheck();
|
|
64
|
-
}
|
|
65
|
-
registerOnChange(fn) {
|
|
66
|
-
this.onChangeFn = fn;
|
|
67
|
-
}
|
|
68
|
-
registerOnTouched(fn) {
|
|
69
|
-
this.onTouchFn = fn;
|
|
70
|
-
}
|
|
71
|
-
onChange(event) {
|
|
72
|
-
this._value = event.target.value;
|
|
73
|
-
this.onChangeFn(event.target.value);
|
|
74
|
-
if (this.control.touched)
|
|
75
|
-
this._onValidate();
|
|
76
|
-
}
|
|
77
|
-
onFocusOut() {
|
|
78
|
-
this.onTouchFn(true);
|
|
79
|
-
this._onValidate();
|
|
80
|
-
}
|
|
81
|
-
_onValidate() {
|
|
82
|
-
if (this.control.invalid)
|
|
83
|
-
this._isInvalid = true;
|
|
84
|
-
else
|
|
85
|
-
this._isInvalid = false;
|
|
86
|
-
}
|
|
87
|
-
onClearControl() {
|
|
88
|
-
if (['', null, undefined].indexOf(this.control.value) >= 0) {
|
|
89
|
-
this.control.setValue('', { emitEvent: false });
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
this.control.setValue('');
|
|
93
|
-
}
|
|
94
|
-
this._value = '';
|
|
95
|
-
}
|
|
96
|
-
ngOnDestroy() {
|
|
97
|
-
if (this._subscription)
|
|
98
|
-
this._subscription.unsubscribe();
|
|
99
|
-
}
|
|
100
|
-
get control() {
|
|
101
|
-
return this._ngControl.control;
|
|
102
|
-
}
|
|
103
|
-
get directive() {
|
|
104
|
-
return this._formGroupDirective;
|
|
105
|
-
}
|
|
106
|
-
get decrypted() {
|
|
107
|
-
return this._decrypted;
|
|
108
|
-
}
|
|
109
|
-
get isDisabled() {
|
|
110
|
-
return this._ngControl.disabled;
|
|
111
|
-
}
|
|
112
|
-
get isSubmitted() {
|
|
113
|
-
return this._isSubmitted;
|
|
114
|
-
}
|
|
115
|
-
get isInvalid() {
|
|
116
|
-
return this._isInvalid;
|
|
117
|
-
}
|
|
118
|
-
get required() {
|
|
119
|
-
return this._required;
|
|
120
|
-
}
|
|
121
|
-
get value() {
|
|
122
|
-
return this._value;
|
|
123
|
-
}
|
|
124
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakTextareaComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i1.FormGroupDirective, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
125
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: TakTextareaComponent, selector: "tak-textarea", inputs: { autocomplete: "autocomplete", appearance: "appearance", floatLabel: "floatLabel", color: "color", actionIcon: "actionIcon", defaultFilterStyle: "defaultFilterStyle", hasActionButton: "hasActionButton", hasClearButton: "hasClearButton", countCaracters: "countCaracters", isTextArea: "isTextArea", placeholder: "placeholder", heightInPx: "heightInPx", minLength: "minLength", maxLength: "maxLength", disabled: "disabled" }, outputs: { onExecuteAction: "onExecuteAction", onKeyUp: "onKeyUp" }, ngImport: i0, template: "<div class=\"tak-form-container\">\r\n <mat-form-field\r\n [floatLabel]=\"floatLabel\"\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <textarea\r\n matInput\r\n [autocomplete]=\"autocomplete\"\r\n [value]=\"value\"\r\n [style.height.px]=\"heightInPx\"\r\n [placeholder]=\"placeholder\"\r\n (keyup)=\"onChange($event)\"\r\n (change)=\"onChange($event)\"\r\n [disabled]=\"isDisabled\"\r\n [attr.minLength]=\"minLength\"\r\n [attr.maxLength]=\"maxLength\"\r\n (focusout)=\"onFocusOut()\"\r\n ></textarea>\r\n @if (control.value && hasClearButton && !isDisabled) {\r\n <button mat-icon-button type=\"button\" matSuffix (click)=\"onClearControl()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && hasActionButton) {\r\n <button mat-icon-button type=\"button\" matSuffix (click)=\"onExecuteAction.emit(control.value)\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\r\n </button>\r\n }\r\n @if (countCaracters) {\r\n <mat-hint align=\"end\" class=\"tak-hint\">\r\n {{ control.value?.length || 0 }}/{{ maxLength }}\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.TakErrorComponent, selector: "tak-error", inputs: ["control", "start", "end", "isDateField", "isNumberField", "marginTop"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.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"] }] }); }
|
|
126
|
-
}
|
|
127
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakTextareaComponent, decorators: [{
|
|
128
|
-
type: Component,
|
|
129
|
-
args: [{ selector: 'tak-textarea', template: "<div class=\"tak-form-container\">\r\n <mat-form-field\r\n [floatLabel]=\"floatLabel\"\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content></ng-content>{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <textarea\r\n matInput\r\n [autocomplete]=\"autocomplete\"\r\n [value]=\"value\"\r\n [style.height.px]=\"heightInPx\"\r\n [placeholder]=\"placeholder\"\r\n (keyup)=\"onChange($event)\"\r\n (change)=\"onChange($event)\"\r\n [disabled]=\"isDisabled\"\r\n [attr.minLength]=\"minLength\"\r\n [attr.maxLength]=\"maxLength\"\r\n (focusout)=\"onFocusOut()\"\r\n ></textarea>\r\n @if (control.value && hasClearButton && !isDisabled) {\r\n <button mat-icon-button type=\"button\" matSuffix (click)=\"onClearControl()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && hasActionButton) {\r\n <button mat-icon-button type=\"button\" matSuffix (click)=\"onExecuteAction.emit(control.value)\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\r\n </button>\r\n }\r\n @if (countCaracters) {\r\n <mat-hint align=\"end\" class=\"tak-hint\">\r\n {{ control.value?.length || 0 }}/{{ maxLength }}\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n</div>\r\n" }]
|
|
130
|
-
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
|
|
131
|
-
type: Self
|
|
132
|
-
}, {
|
|
133
|
-
type: Optional
|
|
134
|
-
}] }, { type: i1.FormGroupDirective, decorators: [{
|
|
135
|
-
type: Optional
|
|
136
|
-
}] }, { type: i0.ChangeDetectorRef }], propDecorators: { autocomplete: [{
|
|
137
|
-
type: Input
|
|
138
|
-
}], appearance: [{
|
|
139
|
-
type: Input
|
|
140
|
-
}], floatLabel: [{
|
|
141
|
-
type: Input
|
|
142
|
-
}], color: [{
|
|
143
|
-
type: Input
|
|
144
|
-
}], actionIcon: [{
|
|
145
|
-
type: Input
|
|
146
|
-
}], defaultFilterStyle: [{
|
|
147
|
-
type: Input
|
|
148
|
-
}], hasActionButton: [{
|
|
149
|
-
type: Input
|
|
150
|
-
}], hasClearButton: [{
|
|
151
|
-
type: Input
|
|
152
|
-
}], countCaracters: [{
|
|
153
|
-
type: Input
|
|
154
|
-
}], isTextArea: [{
|
|
155
|
-
type: Input
|
|
156
|
-
}], placeholder: [{
|
|
157
|
-
type: Input
|
|
158
|
-
}], heightInPx: [{
|
|
159
|
-
type: Input
|
|
160
|
-
}], minLength: [{
|
|
161
|
-
type: Input
|
|
162
|
-
}], maxLength: [{
|
|
163
|
-
type: Input
|
|
164
|
-
}], disabled: [{
|
|
165
|
-
type: Input
|
|
166
|
-
}], onExecuteAction: [{
|
|
167
|
-
type: Output
|
|
168
|
-
}], onKeyUp: [{
|
|
169
|
-
type: Output
|
|
170
|
-
}] } });
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvbXBvbmVudHMvZmllbGRzL3RleHQtYXJlYS90ZXh0YXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29tcG9uZW50cy9maWVsZHMvdGV4dC1hcmVhL3RleHRhcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsUUFBUSxFQUVSLEtBQUssRUFDTCxJQUFJLEVBQ0osTUFBTSxFQUNOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7QUFRL0QsTUFBTSxPQUFPLG9CQUFvQjtJQW1DL0IsWUFDOEIsVUFBcUIsRUFDN0IsbUJBQXVDLEVBQ25ELEdBQXNCO1FBRkYsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUM3Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBQ25ELFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBckN2QixpQkFBWSxHQUFpQixLQUFLLENBQUM7UUFFbkMsZUFBVSxHQUEyQiwyQkFBMkIsQ0FBQztRQUNqRSxlQUFVLEdBQW1CLE1BQU0sQ0FBQztRQUNwQyxVQUFLLEdBQWlCLFNBQVMsQ0FBQztRQUNoQyxlQUFVLEdBQUcsUUFBUSxDQUFDO1FBRXRCLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUMxQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFLaEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVoQixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFaEMsZUFBVSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDNUIsY0FBUyxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFM0IsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFHWCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBT3pCLElBQUksVUFBVTtZQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUVyRCxJQUFJLG1CQUFtQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQy9ELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO2dCQUN6QixHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTSxRQUFRO1FBQ2IsTUFBTSxJQUFJLEdBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUUvQixJQUFJLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7b0JBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDekQsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBYTtRQUM3QixJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7U0FDekI7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxFQUFPO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxFQUFPO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBVTtRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTztZQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPO1lBQUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7O1lBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUNqRDthQUFNO1lBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDM0I7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLElBQUksQ0FBQyxhQUFhO1lBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQXNCLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLG1CQUF5QyxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDOzhHQTNJVSxvQkFBb0I7a0dBQXBCLG9CQUFvQix5aUJDckJqQyx1dkRBZ0RBOzsyRkQzQmEsb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLGNBQWM7OzBCQXVDckIsSUFBSTs7MEJBQUksUUFBUTs7MEJBQ2hCLFFBQVE7eUVBcENGLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3B0aW9uYWwsXHJcbiAgT25Jbml0LFxyXG4gIElucHV0LFxyXG4gIFNlbGYsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Hcm91cERpcmVjdGl2ZSwgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRBS19ERUZBVUxUX0FQUEVBUkFOQ0VfRk9STSB9IGZyb20gJy4uL2ZpZWxkcy5jb21tb24nO1xyXG5pbXBvcnQgeyBGbG9hdExhYmVsVHlwZSwgTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSB9IGZyb20gJ0BrYXRvLWxlZS9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0YWstdGV4dGFyZWEnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0YXJlYS5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWtUZXh0YXJlYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQElucHV0KCkgYXV0b2NvbXBsZXRlOiAnb2ZmJyB8ICdvbicgPSAnb2ZmJztcclxuXHJcbiAgQElucHV0KCkgYXBwZWFyYW5jZTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSA9IFRBS19ERUZBVUxUX0FQUEVBUkFOQ0VfRk9STTtcclxuICBASW5wdXQoKSBmbG9hdExhYmVsOiBGbG9hdExhYmVsVHlwZSA9ICdhdXRvJztcclxuICBASW5wdXQoKSBjb2xvcjogVGhlbWVQYWxldHRlID0gJ3ByaW1hcnknO1xyXG4gIEBJbnB1dCgpIGFjdGlvbkljb24gPSAnc2VhcmNoJztcclxuXHJcbiAgQElucHV0KCkgZGVmYXVsdEZpbHRlclN0eWxlID0gdHJ1ZTtcclxuICBASW5wdXQoKSBoYXNBY3Rpb25CdXR0b24gPSBmYWxzZTtcclxuICBASW5wdXQoKSBoYXNDbGVhckJ1dHRvbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGNvdW50Q2FyYWN0ZXJzID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNUZXh0QXJlYSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XHJcbiAgQElucHV0KCkgaGVpZ2h0SW5QeCA9IDYwO1xyXG5cclxuICBASW5wdXQoKSBtaW5MZW5ndGghOiBudW1iZXI7XHJcbiAgQElucHV0KCkgbWF4TGVuZ3RoITogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgb25FeGVjdXRlQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbktleVVwID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBwdWJsaWMgb25DaGFuZ2VGbiA9IChfOiBhbnkpID0+IHt9O1xyXG4gIHB1YmxpYyBvblRvdWNoRm4gPSAoXzogYW55KSA9PiB7fTtcclxuXHJcbiAgcHVibGljIF9pc1N1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBfaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgcHVibGljIF9yZXF1aXJlZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBfdmFsdWUgPSAnJztcclxuXHJcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgX2RlY3J5cHRlZCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfbmdDb250cm9sOiBOZ0NvbnRyb2wsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9mb3JtR3JvdXBEaXJlY3RpdmU6IEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgaWYgKF9uZ0NvbnRyb2wpIHRoaXMuX25nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuXHJcbiAgICBpZiAoX2Zvcm1Hcm91cERpcmVjdGl2ZSkge1xyXG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSBfZm9ybUdyb3VwRGlyZWN0aXZlLm5nU3VibWl0LnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5faXNTdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgICAgIF9jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBmb3JtOiBhbnkgPSB0aGlzLmNvbnRyb2w7XHJcblxyXG4gICAgaWYgKGZvcm0/Ll9yYXdWYWxpZGF0b3JzKSB7XHJcbiAgICAgIGZvcm0uX3Jhd1ZhbGlkYXRvcnMuZm9yRWFjaCgocjogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHIubmFtZS5pbmNsdWRlcygncmVxdWlyZWQnKSkgdGhpcy5fcmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgdGhpcy5jb250cm9sLmRpc2FibGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLl9pc0ludmFsaWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLl9pc1N1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hGbiA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX3ZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgdGhpcy5vbkNoYW5nZUZuKGV2ZW50LnRhcmdldC52YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5jb250cm9sLnRvdWNoZWQpIHRoaXMuX29uVmFsaWRhdGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkZvY3VzT3V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoRm4odHJ1ZSk7XHJcbiAgICB0aGlzLl9vblZhbGlkYXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9vblZhbGlkYXRlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29udHJvbC5pbnZhbGlkKSB0aGlzLl9pc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgZWxzZSB0aGlzLl9pc0ludmFsaWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsZWFyQ29udHJvbCgpOiB2b2lkIHtcclxuICAgIGlmIChbJycsIG51bGwsIHVuZGVmaW5lZF0uaW5kZXhPZih0aGlzLmNvbnRyb2wudmFsdWUpID49IDApIHtcclxuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKCcnLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3ZhbHVlID0gJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uKSB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGdldCBjb250cm9sKCk6IEZvcm1Db250cm9sIHtcclxuICAgIHJldHVybiB0aGlzLl9uZ0NvbnRyb2wuY29udHJvbCBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBkaXJlY3RpdmUoKTogRm9ybUdyb3VwRGlyZWN0aXZlIHtcclxuICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXBEaXJlY3RpdmUgYXMgRm9ybUdyb3VwRGlyZWN0aXZlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRlY3J5cHRlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWNyeXB0ZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNEaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9uZ0NvbnRyb2wuZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNTdWJtaXR0ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNTdWJtaXR0ZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNJbnZhbGlkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzSW52YWxpZDtcclxuICB9XHJcblxyXG4gIGdldCByZXF1aXJlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcclxuICB9XHJcblxyXG4gIGdldCB2YWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRhay1mb3JtLWNvbnRhaW5lclwiPlxyXG4gIDxtYXQtZm9ybS1maWVsZFxyXG4gICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiXHJcbiAgICBbY2xhc3MubWF0LWZvcm0tZmllbGQtaW52YWxpZF09XCJpc0ludmFsaWQgfHwgKGlzU3VibWl0dGVkICYmIGNvbnRyb2wuaW52YWxpZClcIlxyXG4gICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXHJcbiAgICBbY29sb3JdPVwiY29sb3JcIlxyXG4gID5cclxuICAgIDxtYXQtbGFiZWw+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD57eyAnICcgfX1cclxuICAgICAgQGlmIChyZXF1aXJlZCkge1xyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGFrLWZpZWxkX19kYW5nZXIteFwiPio8L3NwYW4+XHJcbiAgICAgIH1cclxuICAgIDwvbWF0LWxhYmVsPlxyXG4gICAgPHRleHRhcmVhXHJcbiAgICAgIG1hdElucHV0XHJcbiAgICAgIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCJcclxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcclxuICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHRJblB4XCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgKGtleXVwKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXHJcbiAgICAgIFthdHRyLm1pbkxlbmd0aF09XCJtaW5MZW5ndGhcIlxyXG4gICAgICBbYXR0ci5tYXhMZW5ndGhdPVwibWF4TGVuZ3RoXCJcclxuICAgICAgKGZvY3Vzb3V0KT1cIm9uRm9jdXNPdXQoKVwiXHJcbiAgICA+PC90ZXh0YXJlYT5cclxuICAgIEBpZiAoY29udHJvbC52YWx1ZSAmJiBoYXNDbGVhckJ1dHRvbiAmJiAhaXNEaXNhYmxlZCkge1xyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0U3VmZml4IChjbGljayk9XCJvbkNsZWFyQ29udHJvbCgpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwidGFrLXN1ZmZpeC1pY29uLWJ1dHRvblwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgICBAaWYgKGNvbnRyb2wudmFsdWUgJiYgaGFzQWN0aW9uQnV0dG9uKSB7XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXRTdWZmaXggKGNsaWNrKT1cIm9uRXhlY3V0ZUFjdGlvbi5lbWl0KGNvbnRyb2wudmFsdWUpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwidGFrLXN1ZmZpeC1pY29uLWJ1dHRvblwiPnt7IGFjdGlvbkljb24gfX08L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIH1cclxuICAgIEBpZiAoY291bnRDYXJhY3RlcnMpIHtcclxuICAgICAgPG1hdC1oaW50IGFsaWduPVwiZW5kXCIgY2xhc3M9XCJ0YWstaGludFwiPlxyXG4gICAgICAgIHt7IGNvbnRyb2wudmFsdWU/Lmxlbmd0aCB8fCAwIH19L3t7IG1heExlbmd0aCB9fVxyXG4gICAgICA8L21hdC1oaW50PlxyXG4gICAgfVxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPGRpdiBbc3R5bGUubWF4V2lkdGhdPVwiY291bnRDYXJhY3RlcnMgPyAnODAlJyA6ICcxMDAlJ1wiPlxyXG4gICAgQGlmIChpc0ludmFsaWQgfHwgKGlzU3VibWl0dGVkICYmIGNvbnRyb2wuaW52YWxpZCkpIHtcclxuICAgICAgPHRhay1lcnJvciBbY29udHJvbF09XCJjb250cm9sXCI+PC90YWstZXJyb3I+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|