@kato-lee/components 1.0.4 → 1.0.6
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/fields/fields.validators.mjs +11 -0
- package/esm2022/fields/index.mjs +3 -1
- package/esm2022/fields/remote-autocomplete-field/remote-autocomplete-field.component.mjs +188 -0
- package/esm2022/tables/index.mjs +2 -1
- package/esm2022/tables/no-records.component.mjs +58 -0
- package/esm2022/tables/tables.module.mjs +4 -3
- package/fesm2022/kato-lee-components-fields.mjs +180 -4
- package/fesm2022/kato-lee-components-fields.mjs.map +1 -1
- package/fesm2022/kato-lee-components-tables.mjs +60 -4
- package/fesm2022/kato-lee-components-tables.mjs.map +1 -1
- package/fields/fields.validators.d.ts +9 -0
- package/fields/index.d.ts +2 -0
- package/fields/remote-autocomplete-field/remote-autocomplete-field.component.d.ts +43 -0
- package/package.json +20 -20
- package/tables/index.d.ts +1 -0
- package/tables/no-records.component.d.ts +12 -0
- package/tables/tables.module.d.ts +2 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Validators } from '@angular/forms';
|
|
2
|
+
import { TAK_PTRN_EMAIL, TAK_PTRN_NONSP, TAK_PTRN_NUMRC } from './fields.common';
|
|
3
|
+
export const required = Validators.required;
|
|
4
|
+
export const max = (max) => Validators.max(max);
|
|
5
|
+
export const min = (min) => Validators.min(min);
|
|
6
|
+
export const maxLength = (maxLength) => Validators.maxLength(maxLength);
|
|
7
|
+
export const minLength = (minLength) => Validators.minLength(minLength);
|
|
8
|
+
export const withOutSpaces = Validators.pattern(TAK_PTRN_NONSP);
|
|
9
|
+
export const onlyNumber = Validators.pattern(TAK_PTRN_NUMRC);
|
|
10
|
+
export const email = Validators.pattern(TAK_PTRN_EMAIL);
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLnZhbGlkYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJyYXJpZXMvY29tcG9uZW50cy9maWVsZHMvZmllbGRzLnZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNoRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxTQUFpQixFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRWhGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzdELE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVEFLX1BUUk5fRU1BSUwsIFRBS19QVFJOX05PTlNQLCBUQUtfUFRSTl9OVU1SQyB9IGZyb20gJy4vZmllbGRzLmNvbW1vbic7XHJcblxyXG5leHBvcnQgY29uc3QgcmVxdWlyZWQgPSBWYWxpZGF0b3JzLnJlcXVpcmVkO1xyXG5cclxuZXhwb3J0IGNvbnN0IG1heCA9IChtYXg6IG51bWJlcikgPT4gVmFsaWRhdG9ycy5tYXgobWF4KTtcclxuZXhwb3J0IGNvbnN0IG1pbiA9IChtaW46IG51bWJlcikgPT4gVmFsaWRhdG9ycy5taW4obWluKTtcclxuXHJcbmV4cG9ydCBjb25zdCBtYXhMZW5ndGggPSAobWF4TGVuZ3RoOiBudW1iZXIpID0+IFZhbGlkYXRvcnMubWF4TGVuZ3RoKG1heExlbmd0aCk7XHJcbmV4cG9ydCBjb25zdCBtaW5MZW5ndGggPSAobWluTGVuZ3RoOiBudW1iZXIpID0+IFZhbGlkYXRvcnMubWluTGVuZ3RoKG1pbkxlbmd0aCk7XHJcblxyXG5leHBvcnQgY29uc3Qgd2l0aE91dFNwYWNlcyA9IFZhbGlkYXRvcnMucGF0dGVybihUQUtfUFRSTl9OT05TUCk7XHJcbmV4cG9ydCBjb25zdCBvbmx5TnVtYmVyID0gVmFsaWRhdG9ycy5wYXR0ZXJuKFRBS19QVFJOX05VTVJDKTtcclxuZXhwb3J0IGNvbnN0IGVtYWlsID0gVmFsaWRhdG9ycy5wYXR0ZXJuKFRBS19QVFJOX0VNQUlMKTtcclxuIl19
|
package/esm2022/fields/index.mjs
CHANGED
|
@@ -6,6 +6,7 @@ export * from './error/error.component';
|
|
|
6
6
|
export * from './error/error.msg.pipe';
|
|
7
7
|
export * from './fields.common';
|
|
8
8
|
export * from './fields.module';
|
|
9
|
+
export * from './fields.validators';
|
|
9
10
|
export * from './select-field/select-field.component';
|
|
10
11
|
export * from './date-field/date-field.component';
|
|
11
12
|
export * from './autocomplete-field/autocomplete-field.component';
|
|
@@ -14,4 +15,5 @@ export * from './money-field/money-field.component';
|
|
|
14
15
|
export * from './text-area/textarea.component';
|
|
15
16
|
export * from './date-range-field/date-range-field.component';
|
|
16
17
|
export * from './number-field/number-field.component';
|
|
17
|
-
|
|
18
|
+
export * from './remote-autocomplete-field/remote-autocomplete-field.component';
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJyYXJpZXMvY29tcG9uZW50cy9maWVsZHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxpRUFBaUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBAa2F0by1sZWUvY29tcG9uZW50cy9maWVsZHNcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2Vycm9yL2Vycm9yLWVxdWFscy5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lcnJvci9lcnJvci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vycm9yL2Vycm9yLm1zZy5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWVsZHMuY29tbW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWVsZHMubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWVsZHMudmFsaWRhdG9ycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LWZpZWxkL3NlbGVjdC1maWVsZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RhdGUtZmllbGQvZGF0ZS1maWVsZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2F1dG9jb21wbGV0ZS1maWVsZC9hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9nZW5lcmFsLWZpZWxkL2dlbmVyYWwtZmllbGQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9tb25leS1maWVsZC9tb25leS1maWVsZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RleHQtYXJlYS90ZXh0YXJlYS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RhdGUtcmFuZ2UtZmllbGQvZGF0ZS1yYW5nZS1maWVsZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL251bWJlci1maWVsZC9udW1iZXItZmllbGQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9yZW1vdGUtYXV0b2NvbXBsZXRlLWZpZWxkL3JlbW90ZS1hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50JztcclxuIl19
|
|
@@ -0,0 +1,188 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWF1dG9jb21wbGV0ZS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29tcG9uZW50cy9maWVsZHMvcmVtb3RlLWF1dG9jb21wbGV0ZS1maWVsZC9yZW1vdGUtYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb21wb25lbnRzL2ZpZWxkcy9yZW1vdGUtYXV0b2NvbXBsZXRlLWZpZWxkL3JlbW90ZS1hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsTUFBTSxFQUNOLFlBQVksRUFHWixpQkFBaUIsRUFDakIsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0UsT0FBTyxFQUVMLE9BQU8sRUFDUCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxHQUFHLEVBQ0gsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBZ0NyRCxNQUFNLE9BQU8sbUNBQW1DO0lBeUI5QyxZQUNVLEtBQWlCLEVBQ2pCLEdBQXNCLEVBQ3RCLE1BQWdCO1FBRmhCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQTNCakIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFDakIsV0FBTSxHQUFHLFFBQVEsQ0FBQztRQUNsQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFbkIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFdEMsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFDeEIsaUJBQVksR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBRWhDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDcEIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFdkIsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3BDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBR25CLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV6QixjQUFTLEdBQUcsS0FBSyxDQUFDO0lBTXRCLENBQUM7SUFFRyxLQUFLLENBQUMsUUFBUTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVk7aUJBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDO2lCQUM5RSxTQUFTLENBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxFQUFFO2dCQUN2QixJQUNFLEtBQUs7b0JBQ0wsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQy9FO29CQUNBLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO29CQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUV4QixJQUFJO3dCQUNGLE1BQU0sTUFBTSxHQUFHLE1BQU0sY0FBYyxDQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBUSxJQUFJLENBQUMsU0FBUyxFQUFFOzRCQUNwQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07eUJBQ3BCLENBQUMsQ0FDSCxDQUFDO3dCQUVGLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7NEJBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDOzRCQUMxQixJQUNFLEdBQUcsS0FBSyxFQUFFLENBQUMsaUJBQWlCLEVBQUU7Z0NBQzlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxFQUN6RDtnQ0FDQSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUU7b0NBQ2hFLFNBQVMsRUFBRSxLQUFLO2lDQUNqQixDQUFDLENBQUM7Z0NBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUN4QyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDOzZCQUNoRDt5QkFDRjs2QkFBTTs0QkFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO3lCQUMvRTtxQkFDRjtvQkFBQyxPQUFPLEtBQVUsRUFBRTt3QkFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDekM7b0JBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7aUJBQ3pCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0wsSUFBSTtnQkFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLGNBQWMsQ0FDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDcEMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2lCQUNwQixDQUFDLENBQ0gsQ0FBQztnQkFFRixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBRXhCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3pELFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQzdCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FDMUIsQ0FBQzthQUNIO1lBQUMsT0FBTyxLQUFVLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDekM7U0FDRjtJQUNILENBQUM7SUFFTyxPQUFPO1FBQ2IsTUFBTSxLQUFLLEdBQ1QsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEtBQUssUUFBUTtZQUM5QyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLFdBQVcsRUFBRTtZQUM1QyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUMzQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQ3BELENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFBRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQzs7WUFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDbEMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPO1FBQ1gsSUFBSTtZQUNGLE1BQU0sTUFBTSxHQUFHLE1BQU0sY0FBYyxDQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBUSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNwQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07YUFDcEIsQ0FBQyxDQUNILENBQUM7WUFFRixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztZQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDekI7UUFBQyxPQUFPLEtBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzNCO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNoQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLENBQUMsRUFBTyxFQUFFLE1BQVc7UUFDdkIsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQzs4R0F2S1UsbUNBQW1DO2tHQUFuQyxtQ0FBbUMsd1BDOURoRCxvc0ZBNEVBLHdLRHpDSSxXQUFXLHNaQUNYLHdCQUF3QixrT0FDeEIsa0JBQWtCLDJWQUVsQixjQUFjLDBXQUNkLG1CQUFtQixpTkFDbkIscUJBQXFCLGdhQUNyQixhQUFhLG1MQUNiLGVBQWUsMlZBQ2YsWUFBWTs7MkZBa0JILG1DQUFtQztrQkE5Qi9DLFNBQVM7aUNBQ0ksSUFBSSxXQUNQO3dCQUNQLFdBQVc7d0JBQ1gsd0JBQXdCO3dCQUN4QixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLFlBQVk7cUJBQ2IsWUFDUywrQkFBK0IsaUJBYTFCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07c0lBR3RDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBJbnB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUYWtUb2FzdCB9IGZyb20gJ0BrYXRvLWxlZS9jb21wb25lbnRzL3RvYXN0JztcclxuaW1wb3J0IHtcclxuICBPYnNlcnZhYmxlLFxyXG4gIFN1YmplY3QsXHJcbiAgZGVib3VuY2VUaW1lLFxyXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gIGZpcnN0VmFsdWVGcm9tLFxyXG4gIG1hcCxcclxuICB0YWtlVW50aWwsXHJcbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0BrYXRvLWxlZS9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0BrYXRvLWxlZS9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0BrYXRvLWxlZS9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgVEFLX1BSRVNTX0VTQ19LRVkgfSBmcm9tICcuLi9maWVsZHMuY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gIF0sXHJcbiAgc2VsZWN0b3I6ICd0YWstcmVtb3RlLWF1dG9jb21wbGV0ZS1maWVsZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlbW90ZS1hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlczogW1xyXG4gICAgYFxyXG4gICAgICBtYXQtc3Bpbm5lci5zcGlubmVyLWxvYWRpbmcge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICBtYXJnaW4tbGVmdDogLTEwcHg7XHJcbiAgICAgICAgJiA+IHN2ZyB7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAtNXB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgYCxcclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWtSZW1vdGVBdXRvY29tcGxldGVGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSByZW1vdGVVcmwgPSAnJztcclxuICBASW5wdXQoKSBwYXJhbXM6IGFueSA9IHt9O1xyXG4gIEBJbnB1dCgpIG9wdGlvbiA9ICdvcHRpb24nO1xyXG4gIEBJbnB1dCgpIGV4dHJhSW5mbyA9ICcnO1xyXG4gIEBJbnB1dCgpIGp1c3RPbmVMb2FkID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSBvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBwdWJsaWMgc3VnZ2VzdGlvbnM6IGFueVtdID0gW107XHJcbiAgcHVibGljIGF1dG9jb21wbGV0ZSA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG5cclxuICBwcml2YXRlIF9pc0xvYWRpbmcgPSBmYWxzZTtcclxuICBwdWJsaWMgaXNWYWx1ZVNlbGVjdGVkID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX3Vuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfaXNMb2FkaW5nSXRlbSA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2lzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIF9maWx0ZXJlZE9wdGlvbnMhOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBwcml2YXRlIF92YWx1ZSA9ICcnO1xyXG4gIHByaXZhdGUgX25vdFN1Z2dlc3Rpb25zID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyB3YXNMb2FkZWQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBfdG9hc3Q6IFRha1RvYXN0XHJcbiAgKSB7fVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuanVzdE9uZUxvYWQpIHtcclxuICAgICAgdGhpcy5hdXRvY29tcGxldGUudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCksIGRlYm91bmNlVGltZSg1MDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoYXN5bmMgdmFsdWUgPT4ge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB2YWx1ZSAmJlxyXG4gICAgICAgICAgICAhdGhpcy5zdWdnZXN0aW9ucy5maWx0ZXIoc3VnZ2VzdGlvbiA9PiBzdWdnZXN0aW9uLmdldE5vbWJyZSgpID09PSB2YWx1ZSkubGVuZ3RoXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5faXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XHJcblxyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5faHR0cC5nZXQ8YW55W10+KHRoaXMucmVtb3RlVXJsLCB7XHJcbiAgICAgICAgICAgICAgICAgIHBhcmFtczogdGhpcy5wYXJhbXMsXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN1Z2dlc3Rpb25zID0gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICBgJHt2YWx1ZX1gLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09XHJcbiAgICAgICAgICAgICAgICAgIGAke3RoaXMuc3VnZ2VzdGlvbnNbMF1bdGhpcy5vcHRpb25dfWAudG9Mb2NhbGVMb3dlckNhc2UoKVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlLnNldFZhbHVlKGAke3RoaXMuc3VnZ2VzdGlvbnNbMF1bdGhpcy5vcHRpb25dfWAsIHtcclxuICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5vblNlbGVjdC5lbWl0KHRoaXMuc3VnZ2VzdGlvbnNbMF0pO1xyXG4gICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmRpc3BhdGNoRXZlbnQoVEFLX1BSRVNTX0VTQ19LRVkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90b2FzdC5ub3RpZmljYXRpb24oJ05vIGV4aXN0ZW4gaXRlbXMgcXVlIGNvbnRlbmdhbiBlc3RhIHBhbGFicmEgY2xhdmUnKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcclxuICAgICAgICAgICAgICB0aGlzLl90b2FzdC5kYW5nZXIoZXJyb3IuZXJyb3IubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2lzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXHJcbiAgICAgICAgICB0aGlzLl9odHRwLmdldDxhbnlbXT4odGhpcy5yZW1vdGVVcmwsIHtcclxuICAgICAgICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtcyxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWdnZXN0aW9ucyA9IHJlc3VsdDtcclxuICAgICAgICB0aGlzLndhc0xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2ZpbHRlcmVkT3B0aW9ucyA9IHRoaXMuYXV0b2NvbXBsZXRlLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCksXHJcbiAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5fZmlsdGVyKCkpXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgIHRoaXMuX3RvYXN0LmRhbmdlcihlcnJvci5lcnJvci5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZmlsdGVyKCk6IGFueVtdIHtcclxuICAgIGNvbnN0IHZhbHVlID1cclxuICAgICAgdHlwZW9mIGAke3RoaXMuYXV0b2NvbXBsZXRlLnZhbHVlfWAgPT09ICdzdHJpbmcnXHJcbiAgICAgICAgPyBgJHt0aGlzLmF1dG9jb21wbGV0ZS52YWx1ZX1gLnRvTG93ZXJDYXNlKClcclxuICAgICAgICA6IGAke3RoaXMuYXV0b2NvbXBsZXRlLnZhbHVlW3RoaXMub3B0aW9uXX1gLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBjb25zdCBvcHRpb24gPSB0aGlzLnN1Z2dlc3Rpb25zLmZpbHRlcihyZXMgPT5cclxuICAgICAgYCR7cmVzW3RoaXMub3B0aW9uXX1gLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsdWUpXHJcbiAgICApO1xyXG4gICAgaWYgKCFvcHRpb24ubGVuZ3RoKSB0aGlzLl9ub3RTdWdnZXN0aW9ucyA9IHRydWU7XHJcbiAgICBlbHNlIHRoaXMuX25vdFN1Z2dlc3Rpb25zID0gZmFsc2U7XHJcbiAgICByZXR1cm4gb3B0aW9uO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgcmVmcmVzaCgpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG4gICAgICAgIHRoaXMuX2h0dHAuZ2V0PGFueVtdPih0aGlzLnJlbW90ZVVybCwge1xyXG4gICAgICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtcyxcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG5cclxuICAgICAgdGhpcy5zdWdnZXN0aW9ucyA9IHJlc3VsdDtcclxuICAgICAgdGhpcy5hdXRvY29tcGxldGUuc2V0VmFsdWUoJycpO1xyXG4gICAgICB0aGlzLl90b2FzdC5ub3RpZmljYXRpb24oJ0RhdGEgYWN0dWFsaXphZGEgY29ycmVjdGFtZW50ZScpO1xyXG4gICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcclxuICAgICAgdGhpcy5fdG9hc3QuZGFuZ2VyKGVycm9yLmVycm9yLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlc2V0KCkge1xyXG4gICAgaWYgKCF0aGlzLmp1c3RPbmVMb2FkKSB7XHJcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlLnJlc2V0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZS5zZXRWYWx1ZSgnJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9uU2VsZWN0LmVtaXQobnVsbCBhcyBhbnkpO1xyXG4gIH1cclxuXHJcbiAgZW1pdChlbDogYW55LCBvcHRpb246IGFueSkge1xyXG4gICAgaWYgKGVsLmlzVXNlcklucHV0KSB7XHJcbiAgICAgIHRoaXMub25TZWxlY3QuZW1pdChvcHRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5zdWJzY3JpYmUkLm5leHQoKTtcclxuICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzTG9hZGluZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9pc0xvYWRpbmc7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNSZXF1aXJlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9pc1JlcXVpcmVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzTG9hZGluZ0l0ZW0oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNMb2FkaW5nSXRlbTtcclxuICB9XHJcblxyXG4gIGdldCBmaWx0ZXJlZE9wdGlvbnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyZWRPcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZhbHVlKCkge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuX3ZhbHVlfWA7XHJcbiAgfVxyXG5cclxuICBnZXQgbm90U3VnZ2VzdGlvbnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbm90U3VnZ2VzdGlvbnM7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoIWp1c3RPbmVMb2FkIHx8IChqdXN0T25lTG9hZCAmJiB3YXNMb2FkZWQpKSB7XHJcbiAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJzdGFuZGFyZFwiPlxyXG4gICAgPG1hdC1sYWJlbD5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pnt7ICcgJyB9fVxyXG4gICAgICBAaWYgKGlzUmVxdWlyZWQpIHtcclxuICAgICAgICA8c3BhbiBjbGFzcz1cImdjbS1maWVsZF9fZGFuZ2VyLXhcIj4qPC9zcGFuPlxyXG4gICAgICB9XHJcbiAgICA8L21hdC1sYWJlbD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCBbZm9ybUNvbnRyb2xdPVwiYXV0b2NvbXBsZXRlXCIgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCIgLz5cclxuXHJcbiAgICBAaWYgKGlzTG9hZGluZyB8fCAoYXV0b2NvbXBsZXRlLnZhbHVlID09PSBudWxsICYmIGlzTG9hZGluZ0l0ZW0pKSB7XHJcbiAgICAgIDxtYXQtc3Bpbm5lclxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIFtkaWFtZXRlcl09XCIxNVwiXHJcbiAgICAgICAgbW9kZT1cImluZGV0ZXJtaW5hdGVcIlxyXG4gICAgICAgIGNsYXNzPVwic3Bpbm5lci1sb2FkaW5nXCJcclxuICAgICAgPjwvbWF0LXNwaW5uZXI+XHJcbiAgICB9XHJcbiAgICA8IS0tLS0+XHJcblxyXG4gICAgQGlmIChhdXRvY29tcGxldGUudmFsdWUpIHtcclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4IChjbGljayk9XCJyZXNldCgpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgICBAaWYgKGp1c3RPbmVMb2FkICYmICFhdXRvY29tcGxldGUudmFsdWUpIHtcclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4IChjbGljayk9XCJyZWZyZXNoKClcIj5cclxuICAgICAgICA8bWF0LWljb24+cmVmcmVzaDwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgfVxyXG5cclxuICAgIDxtYXQtYXV0b2NvbXBsZXRlIGF1dG9BY3RpdmVGaXJzdE9wdGlvbiAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiPlxyXG4gICAgICBAaWYgKCFqdXN0T25lTG9hZCkge1xyXG4gICAgICAgIEBmb3IgKHN1Z2dlc3Rpb24gb2Ygc3VnZ2VzdGlvbnM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICAgW3ZhbHVlXT1cInN1Z2dlc3Rpb25bb3B0aW9uXVwiXHJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgc3VnZ2VzdGlvbltvcHRpb25dIH19IHt7XHJcbiAgICAgICAgICAgICAgZXh0cmFJbmZvID8gJygnICsgc3VnZ2VzdGlvbltleHRyYUluZm9dICsgJyknIDogJydcclxuICAgICAgICAgICAgfX1cIlxyXG4gICAgICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2UpPVwiZW1pdCgkZXZlbnQsIHN1Z2dlc3Rpb24pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4+e3sgc3VnZ2VzdGlvbltvcHRpb25dIH19PC9zcGFuPlxyXG4gICAgICAgICAgICBAaWYgKGV4dHJhSW5mbykge1xyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LW9wdGlvbi1zcGFuLWV4dHJhXCI+e3sgc3VnZ2VzdGlvbltleHRyYUluZm9dIH19PC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAobm90U3VnZ2VzdGlvbnMpIHtcclxuICAgICAgICAgIDxtYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhay1hdXRvY29tcGxldGUtbm90LXJlY29yZHNcIj4gTm8gc2UgZW5jdWVudHJhbiByZXN1bHRhZG9zIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICB9XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIEBmb3IgKHN1Z2dlc3Rpb24gb2YgZmlsdGVyZWRPcHRpb25zIHwgYXN5bmM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICAgW3ZhbHVlXT1cInN1Z2dlc3Rpb25bb3B0aW9uXVwiXHJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgc3VnZ2VzdGlvbltvcHRpb25dIH19IHt7XHJcbiAgICAgICAgICAgICAgZXh0cmFJbmZvID8gJygnICsgc3VnZ2VzdGlvbltleHRyYUluZm9dICsgJyknIDogJydcclxuICAgICAgICAgICAgfX1cIlxyXG4gICAgICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2UpPVwiZW1pdCgkZXZlbnQsIHN1Z2dlc3Rpb24pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4+e3sgc3VnZ2VzdGlvbltvcHRpb25dIH19PC9zcGFuPlxyXG4gICAgICAgICAgICBAaWYgKGV4dHJhSW5mbykge1xyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LW9wdGlvbi1zcGFuLWV4dHJhXCI+e3sgc3VnZ2VzdGlvbltleHRyYUluZm9dIH19PC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAobm90U3VnZ2VzdGlvbnMpIHtcclxuICAgICAgICAgIDxtYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhay1hdXRvY29tcGxldGUtbm90LXJlY29yZHNcIj4gTm8gc2UgZW5jdWVudHJhbiByZXN1bHRhZG9zIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG59XHJcbiJdfQ==
|
package/esm2022/tables/index.mjs
CHANGED
|
@@ -2,5 +2,6 @@
|
|
|
2
2
|
* Public API Surface of @kato-lee/components/tables
|
|
3
3
|
*/
|
|
4
4
|
export * from './mat-paginator.translation';
|
|
5
|
+
export * from './no-records.component';
|
|
5
6
|
export * from './tables.module';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJyYXJpZXMvY29tcG9uZW50cy90YWJsZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBAa2F0by1sZWUvY29tcG9uZW50cy90YWJsZXNcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbWF0LXBhZ2luYXRvci50cmFuc2xhdGlvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbm8tcmVjb3Jkcy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlcy5tb2R1bGUnO1xyXG4iXX0=
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { MatProgressSpinnerModule } from '@kato-lee/material/progress-spinner';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@kato-lee/material/progress-spinner";
|
|
5
|
+
export class TakTableNoRecordsComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.isLoading = false;
|
|
8
|
+
this._secondImage = true;
|
|
9
|
+
}
|
|
10
|
+
ngOnInit() {
|
|
11
|
+
if (this.dataSource) {
|
|
12
|
+
if (this.dataSource.data.length && !this.dataSource.filteredData.length)
|
|
13
|
+
this._secondImage = false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
get secondImage() {
|
|
17
|
+
return this._secondImage;
|
|
18
|
+
}
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakTableNoRecordsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: TakTableNoRecordsComponent, isStandalone: true, selector: "tak-table-no-records", inputs: { dataSource: "dataSource", isLoading: "isLoading" }, ngImport: i0, template: `
|
|
21
|
+
@if (isLoading) {
|
|
22
|
+
<div class="tak-progress-circle__container">
|
|
23
|
+
<mat-progress-spinner mode="indeterminate" />
|
|
24
|
+
</div>
|
|
25
|
+
} @else {
|
|
26
|
+
<div class="tak-progress-circle__container">
|
|
27
|
+
@if (secondImage) {
|
|
28
|
+
No hay resultados que contengan esta palabra clave
|
|
29
|
+
} @else {
|
|
30
|
+
No se encontraron resultados
|
|
31
|
+
}
|
|
32
|
+
</div>
|
|
33
|
+
}
|
|
34
|
+
`, isInline: true, styles: [".tak-progress-circle__container{min-height:calc(100vh - 315px);display:flex;align-items:center;justify-content:center}@media only screen and (min-width: 640px){.tak-progress-circle__container{min-height:calc(100vh - 230px)}}.tak-progress-circle__container{min-height:calc(100vh - 230px);display:flex;align-items:center;justify-content:center}.tak-progress-circle__container-image{min-height:calc(100vh - 230px)}\n"], dependencies: [{ kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakTableNoRecordsComponent, decorators: [{
|
|
37
|
+
type: Component,
|
|
38
|
+
args: [{ standalone: true, imports: [MatProgressSpinnerModule], selector: 'tak-table-no-records', template: `
|
|
39
|
+
@if (isLoading) {
|
|
40
|
+
<div class="tak-progress-circle__container">
|
|
41
|
+
<mat-progress-spinner mode="indeterminate" />
|
|
42
|
+
</div>
|
|
43
|
+
} @else {
|
|
44
|
+
<div class="tak-progress-circle__container">
|
|
45
|
+
@if (secondImage) {
|
|
46
|
+
No hay resultados que contengan esta palabra clave
|
|
47
|
+
} @else {
|
|
48
|
+
No se encontraron resultados
|
|
49
|
+
}
|
|
50
|
+
</div>
|
|
51
|
+
}
|
|
52
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".tak-progress-circle__container{min-height:calc(100vh - 315px);display:flex;align-items:center;justify-content:center}@media only screen and (min-width: 640px){.tak-progress-circle__container{min-height:calc(100vh - 230px)}}.tak-progress-circle__container{min-height:calc(100vh - 230px);display:flex;align-items:center;justify-content:center}.tak-progress-circle__container-image{min-height:calc(100vh - 230px)}\n"] }]
|
|
53
|
+
}], propDecorators: { dataSource: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], isLoading: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}] } });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcmVjb3Jkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJyYXJpZXMvY29tcG9uZW50cy90YWJsZXMvbm8tcmVjb3Jkcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUNBQXFDLENBQUM7OztBQThDL0UsTUFBTSxPQUFPLDBCQUEwQjtJQTNDdkM7UUE4Q1csY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVuQixpQkFBWSxHQUFHLElBQUksQ0FBQztLQVk3QjtJQVZRLFFBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNO2dCQUNyRSxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQzs4R0FoQlUsMEJBQTBCO2tHQUExQiwwQkFBMEIsOElBdkMzQjs7Ozs7Ozs7Ozs7Ozs7R0FjVCxzZUFoQlMsd0JBQXdCOzsyRkF5Q3ZCLDBCQUEwQjtrQkEzQ3RDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsd0JBQXdCLENBQUMsWUFDekIsc0JBQXNCLFlBQ3RCOzs7Ozs7Ozs7Ozs7OztHQWNULG1CQXVCZ0IsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAa2F0by1sZWUvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XHJcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0BrYXRvLWxlZS9tYXRlcmlhbC90YWJsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGVdLFxyXG4gIHNlbGVjdG9yOiAndGFrLXRhYmxlLW5vLXJlY29yZHMnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICBAaWYgKGlzTG9hZGluZykge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwidGFrLXByb2dyZXNzLWNpcmNsZV9fY29udGFpbmVyXCI+XHJcbiAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgPGRpdiBjbGFzcz1cInRhay1wcm9ncmVzcy1jaXJjbGVfX2NvbnRhaW5lclwiPlxyXG4gICAgICAgIEBpZiAoc2Vjb25kSW1hZ2UpIHtcclxuICAgICAgICAgIE5vIGhheSByZXN1bHRhZG9zIHF1ZSBjb250ZW5nYW4gZXN0YSBwYWxhYnJhIGNsYXZlXHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICBObyBzZSBlbmNvbnRyYXJvbiByZXN1bHRhZG9zXHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICBgLFxyXG4gIHN0eWxlczogYFxyXG4gICAgLnRhay1wcm9ncmVzcy1jaXJjbGVfX2NvbnRhaW5lciB7XHJcbiAgICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzMTVweCk7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgfVxyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NDBweCkge1xyXG4gICAgICAudGFrLXByb2dyZXNzLWNpcmNsZV9fY29udGFpbmVyIHtcclxuICAgICAgICBtaW4taGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjMwcHgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAudGFrLXByb2dyZXNzLWNpcmNsZV9fY29udGFpbmVyIHtcclxuICAgICAgbWluLWhlaWdodDogY2FsYygxMDB2aCAtIDIzMHB4KTtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgICAudGFrLXByb2dyZXNzLWNpcmNsZV9fY29udGFpbmVyLWltYWdlIHtcclxuICAgICAgbWluLWhlaWdodDogY2FsYygxMDB2aCAtIDIzMHB4KTtcclxuICAgIH1cclxuICBgLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFrVGFibGVOb1JlY29yZHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGRhdGFTb3VyY2UhOiBNYXRUYWJsZURhdGFTb3VyY2U8YW55PjtcclxuXHJcbiAgQElucHV0KCkgaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX3NlY29uZEltYWdlID0gdHJ1ZTtcclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZSkge1xyXG4gICAgICBpZiAodGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoICYmICF0aGlzLmRhdGFTb3VyY2UuZmlsdGVyZWREYXRhLmxlbmd0aClcclxuICAgICAgICB0aGlzLl9zZWNvbmRJbWFnZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHNlY29uZEltYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlY29uZEltYWdlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -3,11 +3,12 @@ import { MatPaginatorIntl, MatPaginatorModule } from '@kato-lee/material/paginat
|
|
|
3
3
|
import { MatSortModule } from '@kato-lee/material/sort';
|
|
4
4
|
import { MatTableModule } from '@kato-lee/material/table';
|
|
5
5
|
import { getSpanishMatPaginatorIntl } from './mat-paginator.translation';
|
|
6
|
+
import { TakTableNoRecordsComponent } from './no-records.component';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
|
-
const modules = [MatTableModule, MatSortModule, MatPaginatorModule];
|
|
8
|
+
const modules = [MatTableModule, MatSortModule, MatPaginatorModule, TakTableNoRecordsComponent];
|
|
8
9
|
export class TakTablesModule {
|
|
9
10
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakTablesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: TakTablesModule, imports: [MatTableModule, MatSortModule, MatPaginatorModule], exports: [MatTableModule, MatSortModule, MatPaginatorModule] }); }
|
|
11
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: TakTablesModule, imports: [MatTableModule, MatSortModule, MatPaginatorModule, TakTableNoRecordsComponent], exports: [MatTableModule, MatSortModule, MatPaginatorModule, TakTableNoRecordsComponent] }); }
|
|
11
12
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakTablesModule, providers: [{ provide: MatPaginatorIntl, useValue: getSpanishMatPaginatorIntl() }], imports: [modules, MatTableModule, MatSortModule, MatPaginatorModule] }); }
|
|
12
13
|
}
|
|
13
14
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakTablesModule, decorators: [{
|
|
@@ -18,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
18
19
|
providers: [{ provide: MatPaginatorIntl, useValue: getSpanishMatPaginatorIntl() }],
|
|
19
20
|
}]
|
|
20
21
|
}] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb21wb25lbnRzL3RhYmxlcy90YWJsZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFcEUsTUFBTSxPQUFPLEdBQUcsQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLDBCQUEwQixDQUFDLENBQUM7QUFPaEcsTUFBTSxPQUFPLGVBQWU7OEdBQWYsZUFBZTsrR0FBZixlQUFlLFlBUFgsY0FBYyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSwwQkFBMEIsYUFBN0UsY0FBYyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSwwQkFBMEI7K0dBT2pGLGVBQWUsYUFGZixDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxFQUFFLENBQUMsWUFGekUsT0FBTyxFQUhELGNBQWMsRUFBRSxhQUFhLEVBQUUsa0JBQWtCOzsyRkFPckQsZUFBZTtrQkFMM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxFQUFFLENBQUM7aUJBQ25GIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9ySW50bCwgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAa2F0by1sZWUvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgZ2V0U3BhbmlzaE1hdFBhZ2luYXRvckludGwgfSBmcm9tICcuL21hdC1wYWdpbmF0b3IudHJhbnNsYXRpb24nO1xyXG5pbXBvcnQgeyBUYWtUYWJsZU5vUmVjb3Jkc0NvbXBvbmVudCB9IGZyb20gJy4vbm8tcmVjb3Jkcy5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgbW9kdWxlcyA9IFtNYXRUYWJsZU1vZHVsZSwgTWF0U29ydE1vZHVsZSwgTWF0UGFnaW5hdG9yTW9kdWxlLCBUYWtUYWJsZU5vUmVjb3Jkc0NvbXBvbmVudF07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IG1vZHVsZXMsXHJcbiAgZXhwb3J0czogbW9kdWxlcyxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1hdFBhZ2luYXRvckludGwsIHVzZVZhbHVlOiBnZXRTcGFuaXNoTWF0UGFnaW5hdG9ySW50bCgpIH1dLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFrVGFibGVzTW9kdWxlIHt9XHJcbiJdfQ==
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Pipe, Component, ViewChild, Input, EventEmitter, Self, Optional, Output, NgModule } from '@angular/core';
|
|
2
|
+
import { Pipe, Component, ViewChild, Input, EventEmitter, Self, Optional, Output, NgModule, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
|
|
3
3
|
import { ESCAPE } from '@kato-lee/cdk/keycodes';
|
|
4
4
|
import * as i10 from '@angular/common';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
6
6
|
import * as i1 from '@angular/forms';
|
|
7
|
-
import { FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
7
|
+
import { FormsModule, ReactiveFormsModule, Validators, FormControl } from '@angular/forms';
|
|
8
8
|
import * as i2 from '@kato-lee/material/form-field';
|
|
9
9
|
import { MatFormFieldModule } from '@kato-lee/material/form-field';
|
|
10
10
|
import * as i7 from '@kato-lee/material/select';
|
|
@@ -22,13 +22,15 @@ import { MatDatepickerModule } from '@kato-lee/material/datepicker';
|
|
|
22
22
|
import * as i8 from '@kato-lee/material/tooltip';
|
|
23
23
|
import { MatTooltipModule } from '@kato-lee/material/tooltip';
|
|
24
24
|
import { takeUntil } from 'rxjs/operators';
|
|
25
|
-
import { Subject, takeUntil as takeUntil$1, map, debounceTime } from 'rxjs';
|
|
25
|
+
import { Subject, takeUntil as takeUntil$1, map, debounceTime, distinctUntilChanged, firstValueFrom } from 'rxjs';
|
|
26
26
|
import * as i9 from '@kato-lee/material/menu';
|
|
27
27
|
import { MatMenuModule } from '@kato-lee/material/menu';
|
|
28
28
|
import * as i2$1 from '@kato-lee/material/progress-spinner';
|
|
29
29
|
import { MatProgressSpinnerModule } from '@kato-lee/material/progress-spinner';
|
|
30
30
|
import * as i5$1 from '@kato-lee/material/autocomplete';
|
|
31
31
|
import { MatAutocompleteModule } from '@kato-lee/material/autocomplete';
|
|
32
|
+
import * as i1$1 from '@angular/common/http';
|
|
33
|
+
import * as i2$2 from '@kato-lee/components/toast';
|
|
32
34
|
|
|
33
35
|
class TakErrorEqualsPipe {
|
|
34
36
|
transform(errors, error, args) {
|
|
@@ -1481,6 +1483,180 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
1481
1483
|
}]
|
|
1482
1484
|
}] });
|
|
1483
1485
|
|
|
1486
|
+
const required = Validators.required;
|
|
1487
|
+
const max = (max) => Validators.max(max);
|
|
1488
|
+
const min = (min) => Validators.min(min);
|
|
1489
|
+
const maxLength = (maxLength) => Validators.maxLength(maxLength);
|
|
1490
|
+
const minLength = (minLength) => Validators.minLength(minLength);
|
|
1491
|
+
const withOutSpaces = Validators.pattern(TAK_PTRN_NONSP);
|
|
1492
|
+
const onlyNumber = Validators.pattern(TAK_PTRN_NUMRC);
|
|
1493
|
+
const email = Validators.pattern(TAK_PTRN_EMAIL);
|
|
1494
|
+
|
|
1495
|
+
class TakRemoteAutocompleteFieldComponent {
|
|
1496
|
+
constructor(_http, _cd, _toast) {
|
|
1497
|
+
this._http = _http;
|
|
1498
|
+
this._cd = _cd;
|
|
1499
|
+
this._toast = _toast;
|
|
1500
|
+
this.remoteUrl = '';
|
|
1501
|
+
this.params = {};
|
|
1502
|
+
this.option = 'option';
|
|
1503
|
+
this.extraInfo = '';
|
|
1504
|
+
this.justOneLoad = false;
|
|
1505
|
+
this.onSelect = new EventEmitter();
|
|
1506
|
+
this.suggestions = [];
|
|
1507
|
+
this.autocomplete = new FormControl();
|
|
1508
|
+
this._isLoading = false;
|
|
1509
|
+
this.isValueSelected = false;
|
|
1510
|
+
this._unsubscribe$ = new Subject();
|
|
1511
|
+
this._isLoadingItem = false;
|
|
1512
|
+
this._isRequired = true;
|
|
1513
|
+
this._value = '';
|
|
1514
|
+
this._notSuggestions = false;
|
|
1515
|
+
this.wasLoaded = false;
|
|
1516
|
+
}
|
|
1517
|
+
async ngOnInit() {
|
|
1518
|
+
if (!this.justOneLoad) {
|
|
1519
|
+
this.autocomplete.valueChanges
|
|
1520
|
+
.pipe(takeUntil$1(this._unsubscribe$), debounceTime(500), distinctUntilChanged())
|
|
1521
|
+
.subscribe(async (value) => {
|
|
1522
|
+
if (value &&
|
|
1523
|
+
!this.suggestions.filter(suggestion => suggestion.getNombre() === value).length) {
|
|
1524
|
+
this._isLoading = true;
|
|
1525
|
+
this._cd.markForCheck();
|
|
1526
|
+
try {
|
|
1527
|
+
const result = await firstValueFrom(this._http.get(this.remoteUrl, {
|
|
1528
|
+
params: this.params,
|
|
1529
|
+
}));
|
|
1530
|
+
if (result.length !== 0) {
|
|
1531
|
+
this.suggestions = result;
|
|
1532
|
+
if (`${value}`.toLocaleLowerCase() ===
|
|
1533
|
+
`${this.suggestions[0][this.option]}`.toLocaleLowerCase()) {
|
|
1534
|
+
this.autocomplete.setValue(`${this.suggestions[0][this.option]}`, {
|
|
1535
|
+
emitEvent: false,
|
|
1536
|
+
});
|
|
1537
|
+
this.onSelect.emit(this.suggestions[0]);
|
|
1538
|
+
document.body.dispatchEvent(TAK_PRESS_ESC_KEY);
|
|
1539
|
+
}
|
|
1540
|
+
}
|
|
1541
|
+
else {
|
|
1542
|
+
this._toast.notification('No existen items que contengan esta palabra clave');
|
|
1543
|
+
}
|
|
1544
|
+
}
|
|
1545
|
+
catch (error) {
|
|
1546
|
+
this._toast.danger(error.error.message);
|
|
1547
|
+
}
|
|
1548
|
+
this._isLoading = false;
|
|
1549
|
+
this._cd.markForCheck();
|
|
1550
|
+
}
|
|
1551
|
+
});
|
|
1552
|
+
}
|
|
1553
|
+
else {
|
|
1554
|
+
try {
|
|
1555
|
+
const result = await firstValueFrom(this._http.get(this.remoteUrl, {
|
|
1556
|
+
params: this.params,
|
|
1557
|
+
}));
|
|
1558
|
+
this.suggestions = result;
|
|
1559
|
+
this.wasLoaded = true;
|
|
1560
|
+
this._cd.markForCheck();
|
|
1561
|
+
this._filteredOptions = this.autocomplete.valueChanges.pipe(takeUntil$1(this._unsubscribe$), map(() => this._filter()));
|
|
1562
|
+
}
|
|
1563
|
+
catch (error) {
|
|
1564
|
+
this._toast.danger(error.error.message);
|
|
1565
|
+
}
|
|
1566
|
+
}
|
|
1567
|
+
}
|
|
1568
|
+
_filter() {
|
|
1569
|
+
const value = typeof `${this.autocomplete.value}` === 'string'
|
|
1570
|
+
? `${this.autocomplete.value}`.toLowerCase()
|
|
1571
|
+
: `${this.autocomplete.value[this.option]}`.toLowerCase();
|
|
1572
|
+
const option = this.suggestions.filter(res => `${res[this.option]}`.toLowerCase().includes(value));
|
|
1573
|
+
if (!option.length)
|
|
1574
|
+
this._notSuggestions = true;
|
|
1575
|
+
else
|
|
1576
|
+
this._notSuggestions = false;
|
|
1577
|
+
return option;
|
|
1578
|
+
}
|
|
1579
|
+
async refresh() {
|
|
1580
|
+
try {
|
|
1581
|
+
const result = await firstValueFrom(this._http.get(this.remoteUrl, {
|
|
1582
|
+
params: this.params,
|
|
1583
|
+
}));
|
|
1584
|
+
this.suggestions = result;
|
|
1585
|
+
this.autocomplete.setValue('');
|
|
1586
|
+
this._toast.notification('Data actualizada correctamente');
|
|
1587
|
+
this._cd.markForCheck();
|
|
1588
|
+
}
|
|
1589
|
+
catch (error) {
|
|
1590
|
+
this._toast.danger(error.error.message);
|
|
1591
|
+
}
|
|
1592
|
+
}
|
|
1593
|
+
reset() {
|
|
1594
|
+
if (!this.justOneLoad) {
|
|
1595
|
+
this.autocomplete.reset();
|
|
1596
|
+
}
|
|
1597
|
+
else {
|
|
1598
|
+
this.autocomplete.setValue('');
|
|
1599
|
+
}
|
|
1600
|
+
this.onSelect.emit(null);
|
|
1601
|
+
}
|
|
1602
|
+
emit(el, option) {
|
|
1603
|
+
if (el.isUserInput) {
|
|
1604
|
+
this.onSelect.emit(option);
|
|
1605
|
+
}
|
|
1606
|
+
}
|
|
1607
|
+
ngOnDestroy() {
|
|
1608
|
+
this._unsubscribe$.next();
|
|
1609
|
+
this._unsubscribe$.complete();
|
|
1610
|
+
}
|
|
1611
|
+
get isLoading() {
|
|
1612
|
+
return this._isLoading;
|
|
1613
|
+
}
|
|
1614
|
+
get isRequired() {
|
|
1615
|
+
return this._isRequired;
|
|
1616
|
+
}
|
|
1617
|
+
get isLoadingItem() {
|
|
1618
|
+
return this._isLoadingItem;
|
|
1619
|
+
}
|
|
1620
|
+
get filteredOptions() {
|
|
1621
|
+
return this._filteredOptions;
|
|
1622
|
+
}
|
|
1623
|
+
get value() {
|
|
1624
|
+
return `${this._value}`;
|
|
1625
|
+
}
|
|
1626
|
+
get notSuggestions() {
|
|
1627
|
+
return this._notSuggestions;
|
|
1628
|
+
}
|
|
1629
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakRemoteAutocompleteFieldComponent, deps: [{ token: i1$1.HttpClient }, { token: i0.ChangeDetectorRef }, { token: i2$2.TakToast }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1630
|
+
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: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i2$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatFormFieldModule }, { 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: "directive", type: i2.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: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i5$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i5$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { 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: "ngmodule", type: CommonModule }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1631
|
+
}
|
|
1632
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakRemoteAutocompleteFieldComponent, decorators: [{
|
|
1633
|
+
type: Component,
|
|
1634
|
+
args: [{ standalone: true, imports: [
|
|
1635
|
+
FormsModule,
|
|
1636
|
+
MatProgressSpinnerModule,
|
|
1637
|
+
MatFormFieldModule,
|
|
1638
|
+
MatFormFieldModule,
|
|
1639
|
+
MatInputModule,
|
|
1640
|
+
ReactiveFormsModule,
|
|
1641
|
+
MatAutocompleteModule,
|
|
1642
|
+
MatIconModule,
|
|
1643
|
+
MatButtonModule,
|
|
1644
|
+
CommonModule,
|
|
1645
|
+
], 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"] }]
|
|
1646
|
+
}], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i0.ChangeDetectorRef }, { type: i2$2.TakToast }], propDecorators: { remoteUrl: [{
|
|
1647
|
+
type: Input
|
|
1648
|
+
}], params: [{
|
|
1649
|
+
type: Input
|
|
1650
|
+
}], option: [{
|
|
1651
|
+
type: Input
|
|
1652
|
+
}], extraInfo: [{
|
|
1653
|
+
type: Input
|
|
1654
|
+
}], justOneLoad: [{
|
|
1655
|
+
type: Input
|
|
1656
|
+
}], onSelect: [{
|
|
1657
|
+
type: Output
|
|
1658
|
+
}] } });
|
|
1659
|
+
|
|
1484
1660
|
/*
|
|
1485
1661
|
* Public API Surface of @kato-lee/components/fields
|
|
1486
1662
|
*/
|
|
@@ -1489,5 +1665,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
1489
1665
|
* Generated bundle index. Do not edit.
|
|
1490
1666
|
*/
|
|
1491
1667
|
|
|
1492
|
-
export { TAK_DEFAULT_APPEARANCE_FORM, TAK_PRESS_ESC_KEY, TAK_PTRN_EMAIL, TAK_PTRN_NONSP, TAK_PTRN_NUMRC, TakAutocompleteFieldComponent, TakDateFieldComponent, TakDateRangeFieldComponent, TakErrorComponent, TakErrorEqualsPipe, TakErrorMsgPipe, TakFieldsModule, TakGeneralFieldComponent, TakMoneyFieldComponent, TakNumberFieldComponent, TakSelectFieldComponent, TakTextareaComponent };
|
|
1668
|
+
export { TAK_DEFAULT_APPEARANCE_FORM, TAK_PRESS_ESC_KEY, TAK_PTRN_EMAIL, TAK_PTRN_NONSP, TAK_PTRN_NUMRC, TakAutocompleteFieldComponent, TakDateFieldComponent, TakDateRangeFieldComponent, TakErrorComponent, TakErrorEqualsPipe, TakErrorMsgPipe, TakFieldsModule, TakGeneralFieldComponent, TakMoneyFieldComponent, TakNumberFieldComponent, TakRemoteAutocompleteFieldComponent, TakSelectFieldComponent, TakTextareaComponent, email, max, maxLength, min, minLength, onlyNumber, required, withOutSpaces };
|
|
1493
1669
|
//# sourceMappingURL=kato-lee-components-fields.mjs.map
|