@senior-gestao-pessoas/payroll-core 9.8.0 → 9.9.0-feature-hcmgdp-12490-b88ad694
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/bundles/senior-gestao-pessoas-payroll-core.umd.js +618 -64
- package/bundles/senior-gestao-pessoas-payroll-core.umd.js.map +1 -1
- package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js +1 -1
- package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js.map +1 -1
- package/components/input-rest-auto-complete/input-rest-auto-complete.component.d.ts +2 -0
- package/components/transportation-voucher-scale-lookup/autocomplete.service.d.ts +31 -0
- package/components/transportation-voucher-scale-lookup/index.d.ts +5 -0
- package/components/transportation-voucher-scale-lookup/lookup.service.d.ts +47 -0
- package/components/transportation-voucher-scale-lookup/transportation-voucher-scale-lookup.component.d.ts +80 -0
- package/components/transportation-voucher-scale-lookup/transportation-voucher-scale-lookup.dto.d.ts +8 -0
- package/components/transportation-voucher-scale-lookup/transportation-voucher-scale-lookup.module.d.ts +2 -0
- package/esm2015/components/input-rest-auto-complete/input-rest-auto-complete.component.js +87 -50
- package/esm2015/components/transportation-voucher-scale-lookup/autocomplete.service.js +114 -0
- package/esm2015/components/transportation-voucher-scale-lookup/index.js +6 -0
- package/esm2015/components/transportation-voucher-scale-lookup/lookup.service.js +147 -0
- package/esm2015/components/transportation-voucher-scale-lookup/transportation-voucher-scale-lookup.component.js +215 -0
- package/esm2015/components/transportation-voucher-scale-lookup/transportation-voucher-scale-lookup.dto.js +17 -0
- package/esm2015/components/transportation-voucher-scale-lookup/transportation-voucher-scale-lookup.module.js +31 -0
- package/esm2015/public_api.js +2 -1
- package/esm5/components/input-rest-auto-complete/input-rest-auto-complete.component.js +88 -50
- package/esm5/components/transportation-voucher-scale-lookup/autocomplete.service.js +128 -0
- package/esm5/components/transportation-voucher-scale-lookup/index.js +6 -0
- package/esm5/components/transportation-voucher-scale-lookup/lookup.service.js +152 -0
- package/esm5/components/transportation-voucher-scale-lookup/transportation-voucher-scale-lookup.component.js +223 -0
- package/esm5/components/transportation-voucher-scale-lookup/transportation-voucher-scale-lookup.dto.js +19 -0
- package/esm5/components/transportation-voucher-scale-lookup/transportation-voucher-scale-lookup.module.js +34 -0
- package/esm5/public_api.js +2 -1
- package/fesm2015/senior-gestao-pessoas-payroll-core.js +583 -66
- package/fesm2015/senior-gestao-pessoas-payroll-core.js.map +1 -1
- package/fesm5/senior-gestao-pessoas-payroll-core.js +615 -66
- package/fesm5/senior-gestao-pessoas-payroll-core.js.map +1 -1
- package/locale/en-US.json +5 -1
- package/locale/es-ES.json +5 -1
- package/locale/pt-BR.json +5 -1
- package/package.json +1 -1
- package/public_api.d.ts +1 -0
- package/senior-gestao-pessoas-payroll-core.metadata.json +1 -1
|
@@ -44,6 +44,7 @@ export declare class InputRestAutoCompleteComponent implements OnInit {
|
|
|
44
44
|
private isDropdown;
|
|
45
45
|
isSituationDefinition: boolean;
|
|
46
46
|
multiple: boolean;
|
|
47
|
+
isTransportationVoucherScaleGroup: boolean;
|
|
47
48
|
serviceType: ServiceType;
|
|
48
49
|
onBlur: EventEmitter<any>;
|
|
49
50
|
onSelect: EventEmitter<any>;
|
|
@@ -52,6 +53,7 @@ export declare class InputRestAutoCompleteComponent implements OnInit {
|
|
|
52
53
|
constructor(service: InputRestAutoCompleteService);
|
|
53
54
|
ngOnInit(): void;
|
|
54
55
|
filterQuery(event: any): any;
|
|
56
|
+
private getQueryConfiguration;
|
|
55
57
|
formaterResponce(result: any): any[];
|
|
56
58
|
getParamsRest(search: string): object;
|
|
57
59
|
getConditionsRest(search: string): {
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { HttpClientService } from '../shared/http-client.service';
|
|
2
|
+
import { ServiceType } from '../../core/enums/serviceType';
|
|
3
|
+
export declare class AutocompleteService {
|
|
4
|
+
private httpClienteService;
|
|
5
|
+
constructor(httpClienteService: HttpClientService);
|
|
6
|
+
getAutoComplete(entity: string, params: object, searchFields: any, codeIsString: boolean, service: ServiceType): import("rxjs").Observable<any>;
|
|
7
|
+
getAutoCompleteQuery(query: string, params: object, service?: ServiceType): import("rxjs").Observable<any>;
|
|
8
|
+
/**
|
|
9
|
+
* Gera os parametros de pesquisa via pesquisa na grid
|
|
10
|
+
* @param filterData
|
|
11
|
+
*/
|
|
12
|
+
private generateGridParameters;
|
|
13
|
+
/**
|
|
14
|
+
* Gera a string de consulta CRUD de um campo.
|
|
15
|
+
* @param type Tipo do campo.
|
|
16
|
+
* @param attribute Nome do atribute da entidade
|
|
17
|
+
* @param value Valor do campo
|
|
18
|
+
*/
|
|
19
|
+
private getParameterByType;
|
|
20
|
+
/**
|
|
21
|
+
* Retorna o filtro formatador para ser chamdo no endpoint
|
|
22
|
+
* @param valueFilterSearch valor pra adicionar no filtro
|
|
23
|
+
*/
|
|
24
|
+
private getParameterBySearchType;
|
|
25
|
+
/**
|
|
26
|
+
* Formata o filtro quando for "Ou"
|
|
27
|
+
* @param attribute Nome do atributo da entidade.
|
|
28
|
+
* @param value Valor da propriedade do objeto.
|
|
29
|
+
*/
|
|
30
|
+
private getSearchFilterString;
|
|
31
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { HttpClient } from "@angular/common/http";
|
|
2
|
+
import { TranslateService } from "@ngx-translate/core";
|
|
3
|
+
import { FormField } from "@seniorsistemas/angular-components";
|
|
4
|
+
import { MessageService } from "primeng/api";
|
|
5
|
+
import { Observable } from "rxjs";
|
|
6
|
+
export declare class LookupService {
|
|
7
|
+
private http;
|
|
8
|
+
private messageService;
|
|
9
|
+
private translateService;
|
|
10
|
+
private concatFields;
|
|
11
|
+
private concatOtherFields;
|
|
12
|
+
private lookupDisplayField;
|
|
13
|
+
private httpPostParams;
|
|
14
|
+
private page;
|
|
15
|
+
constructor(http: HttpClient, messageService: MessageService, translateService: TranslateService);
|
|
16
|
+
lookupRequestPost(httpPostParams: any, endpoint: string, concatFields: Array<FormField>, lookupDisplayField: string): Observable<any>;
|
|
17
|
+
postConfigPageSize(httpPostParams: any): void;
|
|
18
|
+
/**
|
|
19
|
+
* POST
|
|
20
|
+
* @param endpoint Busca e faz o tratamento dos dados do lookup.
|
|
21
|
+
* @param httpParams HttpParams
|
|
22
|
+
*/
|
|
23
|
+
private postDataLookup;
|
|
24
|
+
/**
|
|
25
|
+
* Converte o valor do campo para apresentação no lookup.
|
|
26
|
+
*
|
|
27
|
+
* @param content Valor do campo para conversão.
|
|
28
|
+
* @param field FormField do campo.
|
|
29
|
+
*/
|
|
30
|
+
private convertLookupFieldValue;
|
|
31
|
+
/**
|
|
32
|
+
* Converte os dados para visualização na grid
|
|
33
|
+
* @param content
|
|
34
|
+
*/
|
|
35
|
+
private convertGridFieldValue;
|
|
36
|
+
/**
|
|
37
|
+
* Faz a concatenação de valores do registro para ser apresentado no lookup ao selecionar o dado.
|
|
38
|
+
* @param contentValue Valor do registro.
|
|
39
|
+
*/
|
|
40
|
+
private generateDisplayFieldValue;
|
|
41
|
+
/**
|
|
42
|
+
* Faz a requisição POST na URL do lookup.
|
|
43
|
+
* @param endpoint - URL do endpoint.
|
|
44
|
+
* @param httpParams - Parâmetros HTTP.
|
|
45
|
+
*/
|
|
46
|
+
private postUrlDataLookup;
|
|
47
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { OnDestroy, OnInit, ElementRef, EventEmitter, AfterViewInit, ChangeDetectorRef } from "@angular/core";
|
|
2
|
+
import { FormGroup } from "@angular/forms";
|
|
3
|
+
import { TranslateService } from "@ngx-translate/core";
|
|
4
|
+
import { FieldType, FormField } from "@seniorsistemas/angular-components";
|
|
5
|
+
import { BehaviorSubject } from "rxjs";
|
|
6
|
+
import { AutocompleteService } from "./autocomplete.service";
|
|
7
|
+
import { LookupService } from "./lookup.service";
|
|
8
|
+
export declare class TransportationVoucherScaleLookupComponent implements OnInit, OnDestroy, AfterViewInit {
|
|
9
|
+
private autocompleteService;
|
|
10
|
+
private lookupService;
|
|
11
|
+
private translate;
|
|
12
|
+
private cdr;
|
|
13
|
+
transportationVoucherScaleEl: ElementRef;
|
|
14
|
+
required: boolean;
|
|
15
|
+
disabled: boolean;
|
|
16
|
+
form: FormGroup;
|
|
17
|
+
name: string;
|
|
18
|
+
onSelect: EventEmitter<any>;
|
|
19
|
+
onClear: EventEmitter<any>;
|
|
20
|
+
onBlur: EventEmitter<any>;
|
|
21
|
+
lookupSuggestions: any[];
|
|
22
|
+
searchGridData: FormField[];
|
|
23
|
+
suggestionsObservable: BehaviorSubject<any>;
|
|
24
|
+
totalRecords: number;
|
|
25
|
+
private concatFieldsName;
|
|
26
|
+
private concatName;
|
|
27
|
+
gridFields: FormField[];
|
|
28
|
+
searchFields: (FormField | {
|
|
29
|
+
name: string;
|
|
30
|
+
label: any;
|
|
31
|
+
type: FieldType;
|
|
32
|
+
dataKey?: undefined;
|
|
33
|
+
appendTo?: undefined;
|
|
34
|
+
fullWidth?: undefined;
|
|
35
|
+
onSearch?: undefined;
|
|
36
|
+
suggestionsObservable?: undefined;
|
|
37
|
+
displayField?: undefined;
|
|
38
|
+
} | {
|
|
39
|
+
name: string;
|
|
40
|
+
type: FieldType;
|
|
41
|
+
label: any;
|
|
42
|
+
dataKey: string;
|
|
43
|
+
appendTo: string;
|
|
44
|
+
fullWidth: boolean;
|
|
45
|
+
onSearch: (val: string) => void;
|
|
46
|
+
suggestionsObservable: BehaviorSubject<any>;
|
|
47
|
+
displayField: string;
|
|
48
|
+
})[];
|
|
49
|
+
transportationVoucherScaleFilterForm: FormGroup;
|
|
50
|
+
private unsubscribe;
|
|
51
|
+
private initialLoad;
|
|
52
|
+
constructor(autocompleteService: AutocompleteService, lookupService: LookupService, translate: TranslateService, cdr: ChangeDetectorRef);
|
|
53
|
+
ngOnInit(): void;
|
|
54
|
+
ngAfterViewInit(): void;
|
|
55
|
+
ngOnDestroy(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Evento disparado ao selecionar um item no lookup
|
|
58
|
+
*/
|
|
59
|
+
selectOption(event: any): void;
|
|
60
|
+
/**
|
|
61
|
+
* Evento disparado ao limpar o campo
|
|
62
|
+
*/
|
|
63
|
+
onClearItem(event: any): void;
|
|
64
|
+
/**
|
|
65
|
+
* Requisição de busca no lookup
|
|
66
|
+
*/
|
|
67
|
+
searchRequest($event: any): void;
|
|
68
|
+
/**
|
|
69
|
+
* Formata o evento de pesquisa
|
|
70
|
+
*/
|
|
71
|
+
private getValueEvent;
|
|
72
|
+
/**
|
|
73
|
+
* Busca dados do autocomplete
|
|
74
|
+
*/
|
|
75
|
+
private getAutoComplete;
|
|
76
|
+
/**
|
|
77
|
+
* Busca dados via query customizada
|
|
78
|
+
*/
|
|
79
|
+
private getAutocompleteQuery;
|
|
80
|
+
}
|
|
@@ -21,62 +21,96 @@ let InputRestAutoCompleteComponent = class InputRestAutoCompleteComponent {
|
|
|
21
21
|
ngOnInit() { }
|
|
22
22
|
filterQuery(event) {
|
|
23
23
|
const query = event.query;
|
|
24
|
-
if (!(isNaN(query) && query.toString().length < this.minCharactersToSearch)) {
|
|
24
|
+
if (!(Number.isNaN(query) && query.toString().length < this.minCharactersToSearch)) {
|
|
25
25
|
try {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
referenceDate: this.referenceDate,
|
|
31
|
-
})
|
|
32
|
-
.subscribe(payload => this.formaterResponce(payload.result));
|
|
33
|
-
}
|
|
34
|
-
else if (this.isDismissalReason) {
|
|
35
|
-
const params = { valueSearch: query };
|
|
36
|
-
if (this.referenceDate) {
|
|
37
|
-
params['referenceDate'] = this.referenceDate;
|
|
38
|
-
}
|
|
39
|
-
return this.service
|
|
40
|
-
.query('autocompleteDismissalReason', params, ServiceType.GENERAL_REGISTER)
|
|
41
|
-
.subscribe(payload => this.formaterResponce(payload.result));
|
|
42
|
-
}
|
|
43
|
-
else if (this.usingType && this.usingType.length) {
|
|
44
|
-
return this.service
|
|
45
|
-
.query('autocompleteOtherCompanyFilterUsingType', {
|
|
46
|
-
searchText: query,
|
|
47
|
-
usingType: this.usingType,
|
|
48
|
-
})
|
|
49
|
-
.subscribe(payload => this.formaterResponce(payload.result));
|
|
50
|
-
}
|
|
51
|
-
else if (this.isDepartmentFromCompany) {
|
|
52
|
-
return this.service
|
|
53
|
-
.query('autocompleteDepartmentQuery', {
|
|
54
|
-
searchText: query,
|
|
55
|
-
companyId: this.companyId,
|
|
56
|
-
referenceDate: this.referenceDate,
|
|
57
|
-
})
|
|
58
|
-
.subscribe(payload => this.formaterResponce(payload.result));
|
|
59
|
-
}
|
|
60
|
-
else if (this.isSituationDefinition) {
|
|
61
|
-
const params = { searchText: query };
|
|
62
|
-
return this.service
|
|
63
|
-
.query('autocompleteSituationDefinitionQuery', params, ServiceType.ORGANIZATION_REGISTER)
|
|
64
|
-
.subscribe(payload => this.formaterResponce(payload.result));
|
|
65
|
-
}
|
|
66
|
-
else if (this.isWagetype) {
|
|
67
|
-
const params = { searchText: query, companyId: this.companyId };
|
|
68
|
-
return this.service
|
|
69
|
-
.query('autocompleteWagetypeQuery', params, ServiceType.ENTRY)
|
|
70
|
-
.subscribe(payload => this.formaterResponce(payload.result));
|
|
71
|
-
}
|
|
72
|
-
this.service
|
|
73
|
-
.query('autocomplete', this.getParamsRest(query), this.serviceType).subscribe(payload => this.formaterResponce(payload.result));
|
|
26
|
+
const queryConfig = this.getQueryConfiguration(query);
|
|
27
|
+
return this.service
|
|
28
|
+
.query(queryConfig.endpoint, queryConfig.params, queryConfig.serviceType)
|
|
29
|
+
.subscribe(payload => this.formaterResponce(payload.result));
|
|
74
30
|
}
|
|
75
31
|
catch (e) {
|
|
76
32
|
console.log(e);
|
|
77
33
|
}
|
|
78
34
|
}
|
|
79
35
|
}
|
|
36
|
+
getQueryConfiguration(query) {
|
|
37
|
+
const queryStrategies = [
|
|
38
|
+
{
|
|
39
|
+
condition: () => this.isTimetrackingSituation,
|
|
40
|
+
endpoint: 'autocompleteTimetrackingSituation',
|
|
41
|
+
params: () => ({
|
|
42
|
+
valueSearch: query,
|
|
43
|
+
referenceDate: this.referenceDate,
|
|
44
|
+
}),
|
|
45
|
+
serviceType: this.serviceType,
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
condition: () => this.isDismissalReason,
|
|
49
|
+
endpoint: 'autocompleteDismissalReason',
|
|
50
|
+
params: () => {
|
|
51
|
+
const params = { valueSearch: query };
|
|
52
|
+
if (this.referenceDate) {
|
|
53
|
+
params['referenceDate'] = this.referenceDate;
|
|
54
|
+
}
|
|
55
|
+
return params;
|
|
56
|
+
},
|
|
57
|
+
serviceType: ServiceType.GENERAL_REGISTER,
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
condition: () => this.usingType && this.usingType.length,
|
|
61
|
+
endpoint: 'autocompleteOtherCompanyFilterUsingType',
|
|
62
|
+
params: () => ({
|
|
63
|
+
searchText: query,
|
|
64
|
+
usingType: this.usingType,
|
|
65
|
+
}),
|
|
66
|
+
serviceType: this.serviceType,
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
condition: () => this.isDepartmentFromCompany,
|
|
70
|
+
endpoint: 'autocompleteDepartmentQuery',
|
|
71
|
+
params: () => ({
|
|
72
|
+
searchText: query,
|
|
73
|
+
companyId: this.companyId,
|
|
74
|
+
referenceDate: this.referenceDate,
|
|
75
|
+
}),
|
|
76
|
+
serviceType: this.serviceType,
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
condition: () => this.isSituationDefinition,
|
|
80
|
+
endpoint: 'autocompleteSituationDefinitionQuery',
|
|
81
|
+
params: () => ({ searchText: query }),
|
|
82
|
+
serviceType: ServiceType.ORGANIZATION_REGISTER,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
condition: () => this.isWagetype,
|
|
86
|
+
endpoint: 'autocompleteWagetypeQuery',
|
|
87
|
+
params: () => ({
|
|
88
|
+
searchText: query,
|
|
89
|
+
companyId: this.companyId,
|
|
90
|
+
}),
|
|
91
|
+
serviceType: ServiceType.ENTRY,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
condition: () => this.isTransportationVoucherScaleGroup,
|
|
95
|
+
endpoint: 'autocompleteTransportationVoucherScaleGroupQuery',
|
|
96
|
+
params: () => ({ searchText: query }),
|
|
97
|
+
serviceType: ServiceType.GENERAL_REGISTER,
|
|
98
|
+
},
|
|
99
|
+
];
|
|
100
|
+
const strategy = queryStrategies.find(s => s.condition());
|
|
101
|
+
if (strategy) {
|
|
102
|
+
return {
|
|
103
|
+
endpoint: strategy.endpoint,
|
|
104
|
+
params: strategy.params(),
|
|
105
|
+
serviceType: strategy.serviceType,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
endpoint: 'autocomplete',
|
|
110
|
+
params: this.getParamsRest(query),
|
|
111
|
+
serviceType: this.serviceType,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
80
114
|
formaterResponce(result) {
|
|
81
115
|
this.suggestions = [];
|
|
82
116
|
const valsResult = [];
|
|
@@ -289,6 +323,9 @@ tslib_1.__decorate([
|
|
|
289
323
|
tslib_1.__decorate([
|
|
290
324
|
Input()
|
|
291
325
|
], InputRestAutoCompleteComponent.prototype, "multiple", void 0);
|
|
326
|
+
tslib_1.__decorate([
|
|
327
|
+
Input()
|
|
328
|
+
], InputRestAutoCompleteComponent.prototype, "isTransportationVoucherScaleGroup", void 0);
|
|
292
329
|
tslib_1.__decorate([
|
|
293
330
|
Input()
|
|
294
331
|
], InputRestAutoCompleteComponent.prototype, "serviceType", void 0);
|
|
@@ -309,4 +346,4 @@ InputRestAutoCompleteComponent = tslib_1.__decorate([
|
|
|
309
346
|
})
|
|
310
347
|
], InputRestAutoCompleteComponent);
|
|
311
348
|
export { InputRestAutoCompleteComponent };
|
|
312
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLXBlc3NvYXMvcGF5cm9sbC1jb3JlLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9pbnB1dC1yZXN0LWF1dG8tY29tcGxldGUvaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFjM0QsSUFBYSw4QkFBOEIsR0FBM0MsTUFBYSw4QkFBOEI7SUErRXpDLFlBQW9CLE9BQXFDO1FBQXJDLFlBQU8sR0FBUCxPQUFPLENBQThCO1FBbkR6RCxtQkFBYyxHQUFHLElBQUksQ0FBQztRQVF0QixZQUFPLEdBQUcsTUFBTSxDQUFDO1FBb0JqQixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUV2QixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBRXBCLDBCQUFxQixHQUFHLENBQUMsQ0FBQztRQU8xQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGdCQUFXLEdBQWdCLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFFL0MsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9DLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVqRCxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFaEQsZ0JBQVcsR0FBVSxFQUFFLENBQUM7SUFFb0MsQ0FBQztJQUU3RCxRQUFRLEtBQUksQ0FB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QURDLEtBQUssRUFBRTtnRUFDVTtBQUVsQjtJQURDLEtBQUssRUFBRTtzRUFDYztBQUV0QjtJQURDLEtBQUssRUFBRTs2REFDTTtBQUVkO0lBREMsS0FBSyxFQUFFO29FQUNhO0FBRXJCO0lBREMsS0FBSyxFQUFFOytEQUNTO0FBRWpCO0lBREMsS0FBSyxFQUFFOytEQUNTO0FBRWpCO0lBREMsS0FBSyxFQUFFOzJFQUNvQjtBQUU1QjtJQURDLEtBQUssRUFBRTtrRUFDUTtBQUVoQjtJQURDLEtBQUssRUFBRTs0REFDUTtBQUVoQjtJQURDLEtBQUssRUFBRTsrREFDUTtBQUVoQjtJQURDLEtBQUssRUFBRTsrRUFDeUI7QUFFakM7SUFEQyxLQUFLLEVBQUU7K0VBQ3lCO0FBRWpDO0lBREMsS0FBSyxFQUFFO2lFQUNVO0FBRWxCO0lBREMsS0FBSyxFQUFFO3FFQUNjO0FBRXRCO0lBREMsS0FBSyxFQUFFO3lFQUNtQjtBQUUzQjtJQURDLEtBQUssRUFBRTtvRUFDZTtBQUV2QjtJQURDLEtBQUssRUFBRTtpRUFDWTtBQUVwQjtJQURDLEtBQUssRUFBRTs2RUFDa0I7QUFFMUI7SUFEQyxLQUFLLEVBQUU7a0VBQ1k7QUFHcEI7SUFEQyxLQUFLLEVBQUU7NkVBQ3VCO0FBRS9CO0lBREMsS0FBSyxFQUFFO2dFQUNTO0FBRWpCO0lBREMsS0FBSyxFQUFFO21FQUN1QztBQUUvQztJQURDLE1BQU0sRUFBRTs4REFDc0M7QUFFL0M7SUFEQyxNQUFNLEVBQUU7Z0VBQ3dDO0FBRWpEO0lBREMsTUFBTSxFQUFFOytEQUN1QztBQTNFckMsOEJBQThCO0lBTDFDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSwwQkFBMEI7UUFDcEMsbW9DQUF3RDs7S0FFekQsQ0FBQztHQUNXLDhCQUE4QixDQTZQMUM7U0E3UFksOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBfbW9tZW50LCBpc1ZhbGlkIH0gZnJvbSAnLi4vdXRpbHMvaGVscGVycyc7XG5pbXBvcnQgeyBJbnB1dFJlc3RBdXRvQ29tcGxldGVTZXJ2aWNlIH0gZnJvbSAnLi9pbnB1dC1yZXN0LWF1dG8tY29tcGxldGUuc2VydmljZSc7XG5pbXBvcnQgeyBTZXJ2aWNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvZW51bXMvc2VydmljZVR5cGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDb25kaXRpb25zIHtcbiAgZmllbGRzOiBBcnJheTxzdHJpbmdbXT47XG4gIGZpZWxkVHlwZTogc3RyaW5nO1xuICBleHByZXNzaW9uOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lucHV0LXJlc3QtYXV0by1jb21wbGV0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1yZXN0LWF1dG8tY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC1yZXN0LWF1dG8tY29tcGxldGUuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dFJlc3RBdXRvQ29tcGxldGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKCdhdXRvQ29tcGxldGVPYmplY3QnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfYXV0b0NvbXBsZXRlT2JqZWN0OiBFbGVtZW50UmVmO1xuICBASW5wdXQoKVxuICBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHRhYmxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIG9yZGVyOiBBcnJheTxhbnlbXT47XG4gIEBJbnB1dCgpXG4gIGVuYWJsZUVudGl0eUZpbHRlcnM6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGZpZWxkczogQXJyYXk8YW55W10+O1xuICBASW5wdXQoKVxuICBjb25kaXRpb25zRmllbGRzPzogQXJyYXk8YW55W10+O1xuICBASW5wdXQoKVxuICBjb25kaXRpb25zOiBBcnJheTxJQ29uZGl0aW9ucz47XG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHJlYWRvbmx5OiBib29sZWFuO1xuICBASW5wdXQoKVxuICByZXF1aXJlZDogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGRyb3Bkb3duOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBmb3JjZVNlbGVjdGlvbiA9IHRydWU7XG4gIEBJbnB1dCgpXG4gIGVycm9yOiBvYmplY3Q7XG4gIEBJbnB1dCgpXG4gIGVtcHR5TWVzc2FnZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICBrZXlDb2RlPzogc3RyaW5nO1xuICBASW5wdXQoKVxuICBrZXlOYW1lID0gJ25hbWUnO1xuICBASW5wdXQoKVxuICBjb25jYXRGaWVsZHNGb3JOYW1lPzogYW55W107XG4gIEBJbnB1dCgpXG4gIGl0ZW1TZWxlY3Q6IGFueTtcbiAgQElucHV0KClcbiAgZm9ybTogRm9ybUdyb3VwO1xuICBASW5wdXQoKVxuICBpbnB1dElkOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGlzVGltZXRyYWNraW5nU2l0dWF0aW9uOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBpc0RlcGFydG1lbnRGcm9tQ29tcGFueTogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgY29tcGFueUlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHJlZmVyZW5jZURhdGU6IHN0cmluZztcbiAgQElucHV0KClcbiAgaXNEaXNtaXNzYWxSZWFzb246IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGtleVRvRXhjbHVkZTogYW55ID0gW107XG4gIEBJbnB1dCgpXG4gIHVzaW5nVHlwZTogYW55ID0gW107XG4gIEBJbnB1dCgpXG4gIG1pbkNoYXJhY3RlcnNUb1NlYXJjaCA9IDM7XG4gIEBJbnB1dCgpXG4gIGlzV2FnZXR5cGU6IGJvb2xlYW47XG4gIHByaXZhdGUgaXNEcm9wZG93bjogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgaXNTaXR1YXRpb25EZWZpbml0aW9uOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBtdWx0aXBsZSA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBzZXJ2aWNlVHlwZTogU2VydmljZVR5cGUgPSBTZXJ2aWNlVHlwZS5QQVlST0xMO1xuICBAT3V0cHV0KClcbiAgb25CbHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpXG4gIG9uU2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpXG4gIG9uQ2xlYXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHN1Z2dlc3Rpb25zOiBhbnlbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogSW5wdXRSZXN0QXV0b0NvbXBsZXRlU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgZmlsdGVyUXVlcnkoZXZlbnQ6IGFueSk6IGFueSB7XG4gICAgY29uc3QgcXVlcnkgPSBldmVudC5xdWVyeTtcbiAgICBpZiAoIShpc05hTihxdWVyeSkgJiYgcXVlcnkudG9TdHJpbmcoKS5sZW5ndGggPCB0aGlzLm1pbkNoYXJhY3RlcnNUb1NlYXJjaCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICh0aGlzLmlzVGltZXRyYWNraW5nU2l0dWF0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLnF1ZXJ5KCdhdXRvY29tcGxldGVUaW1ldHJhY2tpbmdTaXR1YXRpb24nLCB7XG4gICAgICAgICAgICAgIHZhbHVlU2VhcmNoOiBxdWVyeSxcbiAgICAgICAgICAgICAgcmVmZXJlbmNlRGF0ZTogdGhpcy5yZWZlcmVuY2VEYXRlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocGF5bG9hZCA9PiB0aGlzLmZvcm1hdGVyUmVzcG9uY2UocGF5bG9hZC5yZXN1bHQpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzRGlzbWlzc2FsUmVhc29uKSB7XG4gICAgICAgICAgY29uc3QgcGFyYW1zID0geyB2YWx1ZVNlYXJjaDogcXVlcnkgfTtcbiAgICAgICAgICBpZiAodGhpcy5yZWZlcmVuY2VEYXRlKSB7XG4gICAgICAgICAgICBwYXJhbXNbJ3JlZmVyZW5jZURhdGUnXSA9IHRoaXMucmVmZXJlbmNlRGF0ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLnF1ZXJ5KCdhdXRvY29tcGxldGVEaXNtaXNzYWxSZWFzb24nLCBwYXJhbXMsIFNlcnZpY2VUeXBlLkdFTkVSQUxfUkVHSVNURVIpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHBheWxvYWQgPT4gdGhpcy5mb3JtYXRlclJlc3BvbmNlKHBheWxvYWQucmVzdWx0KSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy51c2luZ1R5cGUgJiYgdGhpcy51c2luZ1R5cGUubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLnF1ZXJ5KCdhdXRvY29tcGxldGVPdGhlckNvbXBhbnlGaWx0ZXJVc2luZ1R5cGUnLCB7XG4gICAgICAgICAgICAgIHNlYXJjaFRleHQ6IHF1ZXJ5LFxuICAgICAgICAgICAgICB1c2luZ1R5cGU6IHRoaXMudXNpbmdUeXBlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocGF5bG9hZCA9PiB0aGlzLmZvcm1hdGVyUmVzcG9uY2UocGF5bG9hZC5yZXN1bHQpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzRGVwYXJ0bWVudEZyb21Db21wYW55KSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLnF1ZXJ5KCdhdXRvY29tcGxldGVEZXBhcnRtZW50UXVlcnknLCB7XG4gICAgICAgICAgICAgIHNlYXJjaFRleHQ6IHF1ZXJ5LFxuICAgICAgICAgICAgICBjb21wYW55SWQ6IHRoaXMuY29tcGFueUlkLFxuICAgICAgICAgICAgICByZWZlcmVuY2VEYXRlOiB0aGlzLnJlZmVyZW5jZURhdGUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnN1YnNjcmliZShwYXlsb2FkID0+IHRoaXMuZm9ybWF0ZXJSZXNwb25jZShwYXlsb2FkLnJlc3VsdCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNTaXR1YXRpb25EZWZpbml0aW9uKSB7XG4gICAgICAgICAgY29uc3QgcGFyYW1zID0geyBzZWFyY2hUZXh0OiBxdWVyeSB9O1xuICAgICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC5xdWVyeSgnYXV0b2NvbXBsZXRlU2l0dWF0aW9uRGVmaW5pdGlvblF1ZXJ5JywgcGFyYW1zLCBTZXJ2aWNlVHlwZS5PUkdBTklaQVRJT05fUkVHSVNURVIpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHBheWxvYWQgPT4gdGhpcy5mb3JtYXRlclJlc3BvbmNlKHBheWxvYWQucmVzdWx0KSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1dhZ2V0eXBlKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7IHNlYXJjaFRleHQ6IHF1ZXJ5LCBjb21wYW55SWQ6IHRoaXMuY29tcGFueUlkIH07XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICAucXVlcnkoJ2F1dG9jb21wbGV0ZVdhZ2V0eXBlUXVlcnknLCBwYXJhbXMsIFNlcnZpY2VUeXBlLkVOVFJZKVxuICAgICAgICAgICAgLnN1YnNjcmliZShwYXlsb2FkID0+IHRoaXMuZm9ybWF0ZXJSZXNwb25jZShwYXlsb2FkLnJlc3VsdCkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLnF1ZXJ5KCdhdXRvY29tcGxldGUnLCB0aGlzLmdldFBhcmFtc1Jlc3QocXVlcnkpLCB0aGlzLnNlcnZpY2VUeXBlKS5zdWJzY3JpYmUocGF5bG9hZCA9PiB0aGlzLmZvcm1hdGVyUmVzcG9uY2UocGF5bG9hZC5yZXN1bHQpKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZm9ybWF0ZXJSZXNwb25jZShyZXN1bHQpIHtcbiAgICB0aGlzLnN1Z2dlc3Rpb25zID0gW107XG4gICAgY29uc3QgdmFsc1Jlc3VsdCA9IFtdO1xuICAgIHJlc3VsdC5tYXAodmFsdWUgPT4ge1xuICAgICAgY29uc3QgdmFsdWVDb25jYXQgPSB7XG4gICAgICAgIHRhYmxlSWQ6IHZhbHVlLnRhYmxlSWQsXG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgfTtcbiAgICAgIGlmICh0aGlzLmlzVGltZXRyYWNraW5nU2l0dWF0aW9uIHx8IHRoaXMuaXNEaXNtaXNzYWxSZWFzb24gfHwgKHRoaXMudXNpbmdUeXBlICYmIHRoaXMudXNpbmdUeXBlLmxlbmd0aCkpIHtcbiAgICAgICAgaWYgKHRoaXMua2V5VG9FeGNsdWRlLmluY2x1ZGVzKHZhbHVlLmZpZWxkcyAmJiB2YWx1ZS5maWVsZHNbMl0gJiYgdmFsdWUuZmllbGRzWzJdLnZhbHVlKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBmaWVsZE5hbWUgPSAnJztcblxuICAgICAgICB2YWx1ZS5maWVsZHMubWFwKHZhbCA9PiB7XG4gICAgICAgICAgdmFsdWVDb25jYXRbdmFsLm5hbWVdID0gdmFsLnZhbHVlO1xuICAgICAgICB9KTtcblxuICAgICAgICBmaWVsZE5hbWUgKz0gdmFsdWUuZmllbGRzLmZpbHRlcih2YWwgPT4gdmFsLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2NvZGUnKS5tYXAoY29kZSA9PiAoY29kZSA/IChjb2RlLnZhbHVlICs9ICcgLSAnKSA6ICcnKSlbMF07XG4gICAgICAgIGlmICh0aGlzLnVzaW5nVHlwZSAmJiB0aGlzLnVzaW5nVHlwZS5sZW5ndGggJiYgKCFmaWVsZE5hbWUgfHwgZmllbGROYW1lID09PSAndW5kZWZpbmVkJykpIHtcbiAgICAgICAgICBmaWVsZE5hbWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBmaWVsZE5hbWUgKz0gdmFsdWUuZmllbGRzLmZpbHRlcih2YWwgPT4gdmFsLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ25hbWUnKS5tYXAobmFtZSA9PiAobmFtZSA/IG5hbWUudmFsdWUgOiAnJykpWzBdO1xuXG4gICAgICAgIHZhbHVlQ29uY2F0Lm5hbWUgPSBmaWVsZE5hbWU7XG4gICAgICAgIHZhbHNSZXN1bHQucHVzaCh2YWx1ZUNvbmNhdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZS5maWVsZHMubWFwKHZhbCA9PiB7XG4gICAgICAgICAgdmFsdWVDb25jYXRbdmFsLm5hbWVdID0gdmFsLnZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGZpZWxkTmFtZSA9ICcnO1xuICAgICAgICBpZiAodGhpcy5jb25jYXRGaWVsZHNGb3JOYW1lKSB7XG4gICAgICAgICAgdGhpcy5jb25jYXRGaWVsZHNGb3JOYW1lLm1hcCh2YWwgPT4ge1xuICAgICAgICAgICAgLy8gc2UgbyBjYW1wbyBmb3IgZGF0YSwgZm9ybWF0YSBwcm8gbG9jYWxlIGRvIHVzdcOhcmlvXG4gICAgICAgICAgICBpZiAodmFsLmluY2x1ZGVzKCdkYXRlJykgfHwgdmFsLmluY2x1ZGVzKCdCaXJ0aGRheScpKSB7XG4gICAgICAgICAgICAgIHZhbHVlQ29uY2F0W3ZhbF0gPSBfbW9tZW50KHZhbHVlQ29uY2F0W3ZhbF0pLmZvcm1hdCgnREQvTU0vWVlZWScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmllbGROYW1lICs9IHZhbHVlQ29uY2F0W3ZhbF0gKyAnIC0gJztcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBmaWVsZE5hbWUgPSBmaWVsZE5hbWUuc2xpY2UoMCwgLTMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLmtleUNvZGUpIHtcbiAgICAgICAgICAgIGZpZWxkTmFtZSArPSB2YWx1ZUNvbmNhdFt0aGlzLmtleUNvZGVdICsgJyAtICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLmtleU5hbWUpIHtcbiAgICAgICAgICAgIGZpZWxkTmFtZSArPSB2YWx1ZUNvbmNhdFt0aGlzLmtleU5hbWVdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YWx1ZUNvbmNhdC5uYW1lID0gZmllbGROYW1lO1xuICAgICAgICB2YWxzUmVzdWx0LnB1c2godmFsdWVDb25jYXQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc3VnZ2VzdGlvbnMgPSBbLi4udmFsc1Jlc3VsdF07XG4gICAgcmV0dXJuIHZhbHNSZXN1bHQ7XG4gIH1cblxuICBnZXRQYXJhbXNSZXN0KHNlYXJjaDogc3RyaW5nKTogb2JqZWN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgdGFibGU6IHRoaXMudGFibGUsXG4gICAgICBmaWVsZHM6IHRoaXMuZmllbGRzLFxuICAgICAgb3JkZXI6IHRoaXMub3JkZXIsXG4gICAgICBjb25kaXRpb25zOiB0aGlzLmdldENvbmRpdGlvbnNSZXN0KHNlYXJjaCksXG4gICAgICBlbmFibGVFbnRpdHlGaWx0ZXJzOiB0aGlzLmVuYWJsZUVudGl0eUZpbHRlcnMsXG4gICAgfTtcbiAgfVxuXG4gIGdldENvbmRpdGlvbnNSZXN0KHNlYXJjaDogc3RyaW5nKSB7XG4gICAgY29uc3QgY29uZGl0aW9zUmV0dXJuID0gW1xuICAgICAge1xuICAgICAgICBmaWVsZHM6IHRoaXMuY29uZGl0aW9uc0ZpZWxkcyB8fCB0aGlzLmZpZWxkcyxcbiAgICAgICAgZXhwcmVzc2lvbjogJ0xJS0UnLFxuICAgICAgICB2YWx1ZTogYCR7c2VhcmNofWAsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBpZiAodGhpcy5jb25kaXRpb25zKSB7XG4gICAgICB0aGlzLmNvbmRpdGlvbnMubWFwKHZhbCA9PiB7XG4gICAgICAgIGlmIChbJ0lTX05VTEwnLCAnSVNfTk9UX05VTEwnLCAnSVNfVFJVRSddLmluY2x1ZGVzKHZhbC5leHByZXNzaW9uKSB8fCBpc1ZhbGlkKHZhbC52YWx1ZSkpIHtcbiAgICAgICAgICBjb25kaXRpb3NSZXR1cm4ucHVzaCh2YWwpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZGl0aW9zUmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dGVybml6YSBhIGZ1bsOnw6NvIGRlIHNlbGVjdCBkYXMgb3DDp8O1ZXNcbiAgICogPGlucHV0LXJlc3QtYXV0by1jb21wbGV0ZSAob25TZWxlY3QpPVwib25TZWxlY3RIYW5kbGUoJGV2ZW50KVwiID48L2lucHV0LXJlc3QtYXV0by1jb21wbGV0ZT5cbiAgICogQHBhcmFtIG9wdGlvblxuICAgKi9cbiAgc2VsZWN0T3B0aW9uKG9wdGlvbjogb2JqZWN0KSB7XG4gICAgdGhpcy5vblNlbGVjdC5lbWl0KG9wdGlvbik7XG4gIH1cblxuICBhc3luYyBvbkNsZWFySXRlbShvcHRpb246IG9iamVjdCkge1xuICAgIGF3YWl0IHRoaXMub25DbGVhci5lbWl0KG9wdGlvbik7XG4gICAgdGhpcy5mb3JtLmdldCh0aGlzLm5hbWUpLnJlc2V0KCk7XG4gIH1cblxuICBvbkJsdXJJdGVtKG9wdGlvbjogb2JqZWN0KSB7XG4gICAgaWYgKCF0aGlzLmlzRHJvcGRvd24pIHtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICB0aGlzLm9uQmx1ci5lbWl0KG9wdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNEcm9wZG93biA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uRHJvcGRvd25DbGljaygpIHtcbiAgICB0aGlzLmlzRHJvcGRvd24gPSB0cnVlO1xuICB9XG5cbiAgZ2V0IGF1dG9Db21wbGV0ZU9iamVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0b0NvbXBsZXRlT2JqZWN0O1xuICB9XG59XG4iXX0=
|
|
349
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLXBlc3NvYXMvcGF5cm9sbC1jb3JlLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9pbnB1dC1yZXN0LWF1dG8tY29tcGxldGUvaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFjM0QsSUFBYSw4QkFBOEIsR0FBM0MsTUFBYSw4QkFBOEI7SUFpRnpDLFlBQW9CLE9BQXFDO1FBQXJDLFlBQU8sR0FBUCxPQUFPLENBQThCO1FBckR6RCxtQkFBYyxHQUFHLElBQUksQ0FBQztRQVF0QixZQUFPLEdBQUcsTUFBTSxDQUFDO1FBb0JqQixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUV2QixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBRXBCLDBCQUFxQixHQUFHLENBQUMsQ0FBQztRQU8xQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBSWpCLGdCQUFXLEdBQWdCLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFFL0MsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9DLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVqRCxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFaEQsZ0JBQVcsR0FBVSxFQUFFLENBQUM7SUFFb0MsQ0FBQztJQUU3RCxRQUFRLEtBQUksQ0FB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Q3VCO0FBRS9CO0lBREMsS0FBSyxFQUFFO2dFQUNTO0FBRWpCO0lBREMsS0FBSyxFQUFFO3lGQUNtQztBQUUzQztJQURDLEtBQUssRUFBRTttRUFDdUM7QUFFL0M7SUFEQyxNQUFNLEVBQUU7OERBQ3NDO0FBRS9DO0lBREMsTUFBTSxFQUFFO2dFQUN3QztBQUVqRDtJQURDLE1BQU0sRUFBRTsrREFDdUM7QUE3RXJDLDhCQUE4QjtJQUwxQyxTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsMEJBQTBCO1FBQ3BDLG1vQ0FBd0Q7O0tBRXpELENBQUM7R0FDVyw4QkFBOEIsQ0EwUzFDO1NBMVNZLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgX21vbWVudCwgaXNWYWxpZCB9IGZyb20gJy4uL3V0aWxzL2hlbHBlcnMnO1xuaW1wb3J0IHsgSW5wdXRSZXN0QXV0b0NvbXBsZXRlU2VydmljZSB9IGZyb20gJy4vaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VydmljZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2VudW1zL3NlcnZpY2VUeXBlJztcblxuZXhwb3J0IGludGVyZmFjZSBJQ29uZGl0aW9ucyB7XG4gIGZpZWxkczogQXJyYXk8c3RyaW5nW10+O1xuICBmaWVsZFR5cGU6IHN0cmluZztcbiAgZXhwcmVzc2lvbjogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbnB1dC1yZXN0LWF1dG8tY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRSZXN0QXV0b0NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnYXV0b0NvbXBsZXRlT2JqZWN0JywgeyBzdGF0aWM6IHRydWUgfSlcbiAgX2F1dG9Db21wbGV0ZU9iamVjdDogRWxlbWVudFJlZjtcbiAgQElucHV0KClcbiAgbmFtZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICB0YWJsZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICBvcmRlcjogQXJyYXk8YW55W10+O1xuICBASW5wdXQoKVxuICBlbmFibGVFbnRpdHlGaWx0ZXJzOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBmaWVsZHM6IEFycmF5PGFueVtdPjtcbiAgQElucHV0KClcbiAgY29uZGl0aW9uc0ZpZWxkcz86IEFycmF5PGFueVtdPjtcbiAgQElucHV0KClcbiAgY29uZGl0aW9uczogQXJyYXk8SUNvbmRpdGlvbnM+O1xuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBASW5wdXQoKVxuICByZWFkb25seTogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBkcm9wZG93bjogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgZm9yY2VTZWxlY3Rpb24gPSB0cnVlO1xuICBASW5wdXQoKVxuICBlcnJvcjogb2JqZWN0O1xuICBASW5wdXQoKVxuICBlbXB0eU1lc3NhZ2U6IHN0cmluZztcbiAgQElucHV0KClcbiAga2V5Q29kZT86IHN0cmluZztcbiAgQElucHV0KClcbiAga2V5TmFtZSA9ICduYW1lJztcbiAgQElucHV0KClcbiAgY29uY2F0RmllbGRzRm9yTmFtZT86IGFueVtdO1xuICBASW5wdXQoKVxuICBpdGVtU2VsZWN0OiBhbnk7XG4gIEBJbnB1dCgpXG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgQElucHV0KClcbiAgaW5wdXRJZDogc3RyaW5nO1xuICBASW5wdXQoKVxuICBpc1RpbWV0cmFja2luZ1NpdHVhdGlvbjogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgaXNEZXBhcnRtZW50RnJvbUNvbXBhbnk6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGNvbXBhbnlJZDogc3RyaW5nO1xuICBASW5wdXQoKVxuICByZWZlcmVuY2VEYXRlOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGlzRGlzbWlzc2FsUmVhc29uOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBrZXlUb0V4Y2x1ZGU6IGFueSA9IFtdO1xuICBASW5wdXQoKVxuICB1c2luZ1R5cGU6IGFueSA9IFtdO1xuICBASW5wdXQoKVxuICBtaW5DaGFyYWN0ZXJzVG9TZWFyY2ggPSAzO1xuICBASW5wdXQoKVxuICBpc1dhZ2V0eXBlOiBib29sZWFuO1xuICBwcml2YXRlIGlzRHJvcGRvd246IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGlzU2l0dWF0aW9uRGVmaW5pdGlvbjogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgbXVsdGlwbGUgPSBmYWxzZTtcbiAgQElucHV0KClcbiAgaXNUcmFuc3BvcnRhdGlvblZvdWNoZXJTY2FsZUdyb3VwOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBzZXJ2aWNlVHlwZTogU2VydmljZVR5cGUgPSBTZXJ2aWNlVHlwZS5QQVlST0xMO1xuICBAT3V0cHV0KClcbiAgb25CbHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpXG4gIG9uU2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpXG4gIG9uQ2xlYXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHN1Z2dlc3Rpb25zOiBhbnlbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogSW5wdXRSZXN0QXV0b0NvbXBsZXRlU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgZmlsdGVyUXVlcnkoZXZlbnQ6IGFueSk6IGFueSB7XG4gICAgY29uc3QgcXVlcnkgPSBldmVudC5xdWVyeTtcbiAgICBpZiAoIShOdW1iZXIuaXNOYU4ocXVlcnkpICYmIHF1ZXJ5LnRvU3RyaW5nKCkubGVuZ3RoIDwgdGhpcy5taW5DaGFyYWN0ZXJzVG9TZWFyY2gpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBxdWVyeUNvbmZpZyA9IHRoaXMuZ2V0UXVlcnlDb25maWd1cmF0aW9uKHF1ZXJ5KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZVxuICAgICAgICAgIC5xdWVyeShxdWVyeUNvbmZpZy5lbmRwb2ludCwgcXVlcnlDb25maWcucGFyYW1zLCBxdWVyeUNvbmZpZy5zZXJ2aWNlVHlwZSlcbiAgICAgICAgICAuc3Vic2NyaWJlKHBheWxvYWQgPT4gdGhpcy5mb3JtYXRlclJlc3BvbmNlKHBheWxvYWQucmVzdWx0KSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0UXVlcnlDb25maWd1cmF0aW9uKHF1ZXJ5OiBzdHJpbmcpOiB7IGVuZHBvaW50OiBzdHJpbmc7IHBhcmFtczogYW55OyBzZXJ2aWNlVHlwZTogU2VydmljZVR5cGUgfSB7XG4gICAgY29uc3QgcXVlcnlTdHJhdGVnaWVzID0gW1xuICAgICAge1xuICAgICAgICBjb25kaXRpb246ICgpID0+IHRoaXMuaXNUaW1ldHJhY2tpbmdTaXR1YXRpb24sXG4gICAgICAgIGVuZHBvaW50OiAnYXV0b2NvbXBsZXRlVGltZXRyYWNraW5nU2l0dWF0aW9uJyxcbiAgICAgICAgcGFyYW1zOiAoKSA9PiAoe1xuICAgICAgICAgIHZhbHVlU2VhcmNoOiBxdWVyeSxcbiAgICAgICAgICByZWZlcmVuY2VEYXRlOiB0aGlzLnJlZmVyZW5jZURhdGUsXG4gICAgICAgIH0pLFxuICAgICAgICBzZXJ2aWNlVHlwZTogdGhpcy5zZXJ2aWNlVHlwZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNvbmRpdGlvbjogKCkgPT4gdGhpcy5pc0Rpc21pc3NhbFJlYXNvbixcbiAgICAgICAgZW5kcG9pbnQ6ICdhdXRvY29tcGxldGVEaXNtaXNzYWxSZWFzb24nLFxuICAgICAgICBwYXJhbXM6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7IHZhbHVlU2VhcmNoOiBxdWVyeSB9O1xuICAgICAgICAgIGlmICh0aGlzLnJlZmVyZW5jZURhdGUpIHtcbiAgICAgICAgICAgIHBhcmFtc1sncmVmZXJlbmNlRGF0ZSddID0gdGhpcy5yZWZlcmVuY2VEYXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgICAgICB9LFxuICAgICAgICBzZXJ2aWNlVHlwZTogU2VydmljZVR5cGUuR0VORVJBTF9SRUdJU1RFUixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNvbmRpdGlvbjogKCkgPT4gdGhpcy51c2luZ1R5cGUgJiYgdGhpcy51c2luZ1R5cGUubGVuZ3RoLFxuICAgICAgICBlbmRwb2ludDogJ2F1dG9jb21wbGV0ZU90aGVyQ29tcGFueUZpbHRlclVzaW5nVHlwZScsXG4gICAgICAgIHBhcmFtczogKCkgPT4gKHtcbiAgICAgICAgICBzZWFyY2hUZXh0OiBxdWVyeSxcbiAgICAgICAgICB1c2luZ1R5cGU6IHRoaXMudXNpbmdUeXBlLFxuICAgICAgICB9KSxcbiAgICAgICAgc2VydmljZVR5cGU6IHRoaXMuc2VydmljZVR5cGUsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb25kaXRpb246ICgpID0+IHRoaXMuaXNEZXBhcnRtZW50RnJvbUNvbXBhbnksXG4gICAgICAgIGVuZHBvaW50OiAnYXV0b2NvbXBsZXRlRGVwYXJ0bWVudFF1ZXJ5JyxcbiAgICAgICAgcGFyYW1zOiAoKSA9PiAoe1xuICAgICAgICAgIHNlYXJjaFRleHQ6IHF1ZXJ5LFxuICAgICAgICAgIGNvbXBhbnlJZDogdGhpcy5jb21wYW55SWQsXG4gICAgICAgICAgcmVmZXJlbmNlRGF0ZTogdGhpcy5yZWZlcmVuY2VEYXRlLFxuICAgICAgICB9KSxcbiAgICAgICAgc2VydmljZVR5cGU6IHRoaXMuc2VydmljZVR5cGUsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb25kaXRpb246ICgpID0+IHRoaXMuaXNTaXR1YXRpb25EZWZpbml0aW9uLFxuICAgICAgICBlbmRwb2ludDogJ2F1dG9jb21wbGV0ZVNpdHVhdGlvbkRlZmluaXRpb25RdWVyeScsXG4gICAgICAgIHBhcmFtczogKCkgPT4gKHsgc2VhcmNoVGV4dDogcXVlcnkgfSksXG4gICAgICAgIHNlcnZpY2VUeXBlOiBTZXJ2aWNlVHlwZS5PUkdBTklaQVRJT05fUkVHSVNURVIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb25kaXRpb246ICgpID0+IHRoaXMuaXNXYWdldHlwZSxcbiAgICAgICAgZW5kcG9pbnQ6ICdhdXRvY29tcGxldGVXYWdldHlwZVF1ZXJ5JyxcbiAgICAgICAgcGFyYW1zOiAoKSA9PiAoe1xuICAgICAgICAgIHNlYXJjaFRleHQ6IHF1ZXJ5LFxuICAgICAgICAgIGNvbXBhbnlJZDogdGhpcy5jb21wYW55SWQsXG4gICAgICAgIH0pLFxuICAgICAgICBzZXJ2aWNlVHlwZTogU2VydmljZVR5cGUuRU5UUlksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb25kaXRpb246ICgpID0+IHRoaXMuaXNUcmFuc3BvcnRhdGlvblZvdWNoZXJTY2FsZUdyb3VwLFxuICAgICAgICBlbmRwb2ludDogJ2F1dG9jb21wbGV0ZVRyYW5zcG9ydGF0aW9uVm91Y2hlclNjYWxlR3JvdXBRdWVyeScsXG4gICAgICAgIHBhcmFtczogKCkgPT4gKHsgc2VhcmNoVGV4dDogcXVlcnkgfSksXG4gICAgICAgIHNlcnZpY2VUeXBlOiBTZXJ2aWNlVHlwZS5HRU5FUkFMX1JFR0lTVEVSLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3Qgc3RyYXRlZ3kgPSBxdWVyeVN0cmF0ZWdpZXMuZmluZChzID0+IHMuY29uZGl0aW9uKCkpO1xuICAgIFxuICAgIGlmIChzdHJhdGVneSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZW5kcG9pbnQ6IHN0cmF0ZWd5LmVuZHBvaW50LFxuICAgICAgICBwYXJhbXM6IHN0cmF0ZWd5LnBhcmFtcygpLFxuICAgICAgICBzZXJ2aWNlVHlwZTogc3RyYXRlZ3kuc2VydmljZVR5cGUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBlbmRwb2ludDogJ2F1dG9jb21wbGV0ZScsXG4gICAgICBwYXJhbXM6IHRoaXMuZ2V0UGFyYW1zUmVzdChxdWVyeSksXG4gICAgICBzZXJ2aWNlVHlwZTogdGhpcy5zZXJ2aWNlVHlwZSxcbiAgICB9O1xuICB9XG5cbiAgZm9ybWF0ZXJSZXNwb25jZShyZXN1bHQpIHtcbiAgICB0aGlzLnN1Z2dlc3Rpb25zID0gW107XG4gICAgY29uc3QgdmFsc1Jlc3VsdCA9IFtdO1xuICAgIHJlc3VsdC5tYXAodmFsdWUgPT4ge1xuICAgICAgY29uc3QgdmFsdWVDb25jYXQgPSB7XG4gICAgICAgIHRhYmxlSWQ6IHZhbHVlLnRhYmxlSWQsXG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgfTtcbiAgICAgIGlmICh0aGlzLmlzVGltZXRyYWNraW5nU2l0dWF0aW9uIHx8IHRoaXMuaXNEaXNtaXNzYWxSZWFzb24gfHwgKHRoaXMudXNpbmdUeXBlICYmIHRoaXMudXNpbmdUeXBlLmxlbmd0aCkpIHtcbiAgICAgICAgaWYgKHRoaXMua2V5VG9FeGNsdWRlLmluY2x1ZGVzKHZhbHVlLmZpZWxkcyAmJiB2YWx1ZS5maWVsZHNbMl0gJiYgdmFsdWUuZmllbGRzWzJdLnZhbHVlKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBmaWVsZE5hbWUgPSAnJztcblxuICAgICAgICB2YWx1ZS5maWVsZHMubWFwKHZhbCA9PiB7XG4gICAgICAgICAgdmFsdWVDb25jYXRbdmFsLm5hbWVdID0gdmFsLnZhbHVlO1xuICAgICAgICB9KTtcblxuICAgICAgICBmaWVsZE5hbWUgKz0gdmFsdWUuZmllbGRzLmZpbHRlcih2YWwgPT4gdmFsLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2NvZGUnKS5tYXAoY29kZSA9PiAoY29kZSA/IChjb2RlLnZhbHVlICs9ICcgLSAnKSA6ICcnKSlbMF07XG4gICAgICAgIGlmICh0aGlzLnVzaW5nVHlwZSAmJiB0aGlzLnVzaW5nVHlwZS5sZW5ndGggJiYgKCFmaWVsZE5hbWUgfHwgZmllbGROYW1lID09PSAndW5kZWZpbmVkJykpIHtcbiAgICAgICAgICBmaWVsZE5hbWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBmaWVsZE5hbWUgKz0gdmFsdWUuZmllbGRzLmZpbHRlcih2YWwgPT4gdmFsLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ25hbWUnKS5tYXAobmFtZSA9PiAobmFtZSA/IG5hbWUudmFsdWUgOiAnJykpWzBdO1xuXG4gICAgICAgIHZhbHVlQ29uY2F0Lm5hbWUgPSBmaWVsZE5hbWU7XG4gICAgICAgIHZhbHNSZXN1bHQucHVzaCh2YWx1ZUNvbmNhdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZS5maWVsZHMubWFwKHZhbCA9PiB7XG4gICAgICAgICAgdmFsdWVDb25jYXRbdmFsLm5hbWVdID0gdmFsLnZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGZpZWxkTmFtZSA9ICcnO1xuICAgICAgICBpZiAodGhpcy5jb25jYXRGaWVsZHNGb3JOYW1lKSB7XG4gICAgICAgICAgdGhpcy5jb25jYXRGaWVsZHNGb3JOYW1lLm1hcCh2YWwgPT4ge1xuICAgICAgICAgICAgLy8gc2UgbyBjYW1wbyBmb3IgZGF0YSwgZm9ybWF0YSBwcm8gbG9jYWxlIGRvIHVzdcOhcmlvXG4gICAgICAgICAgICBpZiAodmFsLmluY2x1ZGVzKCdkYXRlJykgfHwgdmFsLmluY2x1ZGVzKCdCaXJ0aGRheScpKSB7XG4gICAgICAgICAgICAgIHZhbHVlQ29uY2F0W3ZhbF0gPSBfbW9tZW50KHZhbHVlQ29uY2F0W3ZhbF0pLmZvcm1hdCgnREQvTU0vWVlZWScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmllbGROYW1lICs9IHZhbHVlQ29uY2F0W3ZhbF0gKyAnIC0gJztcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBmaWVsZE5hbWUgPSBmaWVsZE5hbWUuc2xpY2UoMCwgLTMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLmtleUNvZGUpIHtcbiAgICAgICAgICAgIGZpZWxkTmFtZSArPSB2YWx1ZUNvbmNhdFt0aGlzLmtleUNvZGVdICsgJyAtICc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLmtleU5hbWUpIHtcbiAgICAgICAgICAgIGZpZWxkTmFtZSArPSB2YWx1ZUNvbmNhdFt0aGlzLmtleU5hbWVdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YWx1ZUNvbmNhdC5uYW1lID0gZmllbGROYW1lO1xuICAgICAgICB2YWxzUmVzdWx0LnB1c2godmFsdWVDb25jYXQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc3VnZ2VzdGlvbnMgPSBbLi4udmFsc1Jlc3VsdF07XG4gICAgcmV0dXJuIHZhbHNSZXN1bHQ7XG4gIH1cblxuICBnZXRQYXJhbXNSZXN0KHNlYXJjaDogc3RyaW5nKTogb2JqZWN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgdGFibGU6IHRoaXMudGFibGUsXG4gICAgICBmaWVsZHM6IHRoaXMuZmllbGRzLFxuICAgICAgb3JkZXI6IHRoaXMub3JkZXIsXG4gICAgICBjb25kaXRpb25zOiB0aGlzLmdldENvbmRpdGlvbnNSZXN0KHNlYXJjaCksXG4gICAgICBlbmFibGVFbnRpdHlGaWx0ZXJzOiB0aGlzLmVuYWJsZUVudGl0eUZpbHRlcnMsXG4gICAgfTtcbiAgfVxuXG4gIGdldENvbmRpdGlvbnNSZXN0KHNlYXJjaDogc3RyaW5nKSB7XG4gICAgY29uc3QgY29uZGl0aW9zUmV0dXJuID0gW1xuICAgICAge1xuICAgICAgICBmaWVsZHM6IHRoaXMuY29uZGl0aW9uc0ZpZWxkcyB8fCB0aGlzLmZpZWxkcyxcbiAgICAgICAgZXhwcmVzc2lvbjogJ0xJS0UnLFxuICAgICAgICB2YWx1ZTogYCR7c2VhcmNofWAsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBpZiAodGhpcy5jb25kaXRpb25zKSB7XG4gICAgICB0aGlzLmNvbmRpdGlvbnMubWFwKHZhbCA9PiB7XG4gICAgICAgIGlmIChbJ0lTX05VTEwnLCAnSVNfTk9UX05VTEwnLCAnSVNfVFJVRSddLmluY2x1ZGVzKHZhbC5leHByZXNzaW9uKSB8fCBpc1ZhbGlkKHZhbC52YWx1ZSkpIHtcbiAgICAgICAgICBjb25kaXRpb3NSZXR1cm4ucHVzaCh2YWwpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZGl0aW9zUmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dGVybml6YSBhIGZ1bsOnw6NvIGRlIHNlbGVjdCBkYXMgb3DDp8O1ZXNcbiAgICogPGlucHV0LXJlc3QtYXV0by1jb21wbGV0ZSAob25TZWxlY3QpPVwib25TZWxlY3RIYW5kbGUoJGV2ZW50KVwiID48L2lucHV0LXJlc3QtYXV0by1jb21wbGV0ZT5cbiAgICogQHBhcmFtIG9wdGlvblxuICAgKi9cbiAgc2VsZWN0T3B0aW9uKG9wdGlvbjogb2JqZWN0KSB7XG4gICAgdGhpcy5vblNlbGVjdC5lbWl0KG9wdGlvbik7XG4gIH1cblxuICBhc3luYyBvbkNsZWFySXRlbShvcHRpb246IG9iamVjdCkge1xuICAgIGF3YWl0IHRoaXMub25DbGVhci5lbWl0KG9wdGlvbik7XG4gICAgdGhpcy5mb3JtLmdldCh0aGlzLm5hbWUpLnJlc2V0KCk7XG4gIH1cblxuICBvbkJsdXJJdGVtKG9wdGlvbjogb2JqZWN0KSB7XG4gICAgaWYgKCF0aGlzLmlzRHJvcGRvd24pIHtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICB0aGlzLm9uQmx1ci5lbWl0KG9wdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNEcm9wZG93biA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uRHJvcGRvd25DbGljaygpIHtcbiAgICB0aGlzLmlzRHJvcGRvd24gPSB0cnVlO1xuICB9XG5cbiAgZ2V0IGF1dG9Db21wbGV0ZU9iamVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0b0NvbXBsZXRlT2JqZWN0O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import * as tslib_1 from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { HttpClientService } from '../shared/http-client.service';
|
|
4
|
+
import { CoreFieldType } from '../../core/enums/coreFieldType';
|
|
5
|
+
import { FieldType } from '@seniorsistemas/angular-components';
|
|
6
|
+
import * as _moment from 'moment';
|
|
7
|
+
import { map } from 'rxjs/operators';
|
|
8
|
+
import { ServiceType } from '../../core/enums/serviceType';
|
|
9
|
+
const moment = _moment;
|
|
10
|
+
let AutocompleteService = class AutocompleteService {
|
|
11
|
+
constructor(httpClienteService) {
|
|
12
|
+
this.httpClienteService = httpClienteService;
|
|
13
|
+
}
|
|
14
|
+
getAutoComplete(entity, params, searchFields, codeIsString, service) {
|
|
15
|
+
const getParams = this.generateGridParameters(params, searchFields, codeIsString);
|
|
16
|
+
return this.httpClienteService.getAutoComplete(entity, getParams, service)
|
|
17
|
+
.pipe(map((result) => result && result.contents));
|
|
18
|
+
}
|
|
19
|
+
getAutoCompleteQuery(query, params, service = ServiceType.PAYROLL) {
|
|
20
|
+
return this.httpClienteService.query(query, params, service)
|
|
21
|
+
.pipe(map((data) => data && data.result));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Gera os parametros de pesquisa via pesquisa na grid
|
|
25
|
+
* @param filterData
|
|
26
|
+
*/
|
|
27
|
+
generateGridParameters(filterData, searchFields, codeIsString) {
|
|
28
|
+
let gridParameters = "";
|
|
29
|
+
Object.keys(filterData).forEach((attribute) => {
|
|
30
|
+
const filterSearchField = searchFields && searchFields.filter(field => attribute === field.name)[0];
|
|
31
|
+
let filterQueryString = null;
|
|
32
|
+
let operatorsQuery = "";
|
|
33
|
+
let searchField = filterSearchField && filterSearchField.type;
|
|
34
|
+
if (!filterSearchField && attribute != CoreFieldType.searchValue)
|
|
35
|
+
searchField = FieldType.String;
|
|
36
|
+
if (!filterSearchField && attribute === CoreFieldType.searchValue)
|
|
37
|
+
searchField = CoreFieldType.searchValue;
|
|
38
|
+
if (gridParameters)
|
|
39
|
+
operatorsQuery = " and ";
|
|
40
|
+
filterQueryString = this.getParameterByType(searchField, attribute, filterData[attribute], codeIsString);
|
|
41
|
+
if (filterQueryString)
|
|
42
|
+
gridParameters += ` ${operatorsQuery} ${filterQueryString}`;
|
|
43
|
+
});
|
|
44
|
+
return gridParameters;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Gera a string de consulta CRUD de um campo.
|
|
48
|
+
* @param type Tipo do campo.
|
|
49
|
+
* @param attribute Nome do atribute da entidade
|
|
50
|
+
* @param value Valor do campo
|
|
51
|
+
*/
|
|
52
|
+
getParameterByType(type, attribute, value, codeIsString) {
|
|
53
|
+
if (!value && type != CoreFieldType.searchValue)
|
|
54
|
+
return `${attribute} is null`;
|
|
55
|
+
if (value && value === 'not null' && type != CoreFieldType.searchValue)
|
|
56
|
+
return `${attribute} is not null`;
|
|
57
|
+
switch (type) {
|
|
58
|
+
case FieldType.Date:
|
|
59
|
+
return `${attribute} eq '${moment(value).format('YYYY-MM-DD')}'`;
|
|
60
|
+
case FieldType.Enum:
|
|
61
|
+
return `${attribute} eq '${value}'`;
|
|
62
|
+
case FieldType.Integer:
|
|
63
|
+
return `${attribute} eq ${value}`;
|
|
64
|
+
case FieldType.Autocomplete:
|
|
65
|
+
return `${attribute} eq '${value.id}'`;
|
|
66
|
+
case CoreFieldType.searchValue:
|
|
67
|
+
return `${this.getParameterBySearchType(value, codeIsString)}`;
|
|
68
|
+
default:
|
|
69
|
+
return this.getSearchFilterString(attribute, value);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Retorna o filtro formatador para ser chamdo no endpoint
|
|
74
|
+
* @param valueFilterSearch valor pra adicionar no filtro
|
|
75
|
+
*/
|
|
76
|
+
getParameterBySearchType(valueFilterSearch, codeIsString) {
|
|
77
|
+
let searchFilter = "";
|
|
78
|
+
if (valueFilterSearch) {
|
|
79
|
+
for (const [key, value] of Object.entries(valueFilterSearch)) {
|
|
80
|
+
if (key === "code" && Number(value)) {
|
|
81
|
+
const hasQuote = codeIsString ? "'" : "";
|
|
82
|
+
if (searchFilter)
|
|
83
|
+
searchFilter += ` or ${key} eq ${hasQuote}${value}${hasQuote}`;
|
|
84
|
+
else
|
|
85
|
+
searchFilter += `${key} eq ${hasQuote}${value}${hasQuote}`;
|
|
86
|
+
}
|
|
87
|
+
else if (key != "code") {
|
|
88
|
+
if (searchFilter)
|
|
89
|
+
searchFilter += ` or ${this.getSearchFilterString(key, value)}`;
|
|
90
|
+
else
|
|
91
|
+
searchFilter += this.getSearchFilterString(key, value);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
searchFilter = searchFilter ? `(${searchFilter})` : '';
|
|
95
|
+
}
|
|
96
|
+
return searchFilter;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Formata o filtro quando for "Ou"
|
|
100
|
+
* @param attribute Nome do atributo da entidade.
|
|
101
|
+
* @param value Valor da propriedade do objeto.
|
|
102
|
+
*/
|
|
103
|
+
getSearchFilterString(attribute, value) {
|
|
104
|
+
return `contains(tolower(${attribute}), '${value.toLowerCase()}')`;
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
AutocompleteService.ctorParameters = () => [
|
|
108
|
+
{ type: HttpClientService }
|
|
109
|
+
];
|
|
110
|
+
AutocompleteService = tslib_1.__decorate([
|
|
111
|
+
Injectable()
|
|
112
|
+
], AutocompleteService);
|
|
113
|
+
export { AutocompleteService };
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1wZXNzb2FzL3BheXJvbGwtY29yZS8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvdHJhbnNwb3J0YXRpb24tdm91Y2hlci1zY2FsZS1sb29rdXAvYXV0b2NvbXBsZXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMvRCxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTNELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztBQUd2QixJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFtQjtJQUU1QixZQUFvQixrQkFBcUM7UUFBckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtJQUFJLENBQUM7SUFFdkQsZUFBZSxDQUFDLE1BQWMsRUFBRSxNQUFjLEVBQUUsWUFBaUIsRUFBRSxZQUFxQixFQUFFLE9BQW9CO1FBQ2pILE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQzthQUNyRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxN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RUFBRSxLQUFVO1FBQ3ZELE9BQU8sb0JBQW9CLFNBQVMsT0FBTyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQztJQUN2RSxDQUFDO0NBQ0osQ0FBQTs7WUE1RjJDLGlCQUFpQjs7QUFGaEQsbUJBQW1CO0lBRC9CLFVBQVUsRUFBRTtHQUNBLG1CQUFtQixDQThGL0I7U0E5RlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudFNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvaHR0cC1jbGllbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDb3JlRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9lbnVtcy9jb3JlRmllbGRUeXBlJztcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0ICogYXMgX21vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2VydmljZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2VudW1zL3NlcnZpY2VUeXBlJztcblxuY29uc3QgbW9tZW50ID0gX21vbWVudDtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZVNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50ZVNlcnZpY2U6IEh0dHBDbGllbnRTZXJ2aWNlKSB7IH1cblxuICAgIHB1YmxpYyBnZXRBdXRvQ29tcGxldGUoZW50aXR5OiBzdHJpbmcsIHBhcmFtczogb2JqZWN0LCBzZWFyY2hGaWVsZHM6IGFueSwgY29kZUlzU3RyaW5nOiBib29sZWFuLCBzZXJ2aWNlOiBTZXJ2aWNlVHlwZSkge1xuICAgICAgICBjb25zdCBnZXRQYXJhbXMgPSB0aGlzLmdlbmVyYXRlR3JpZFBhcmFtZXRlcnMocGFyYW1zLCBzZWFyY2hGaWVsZHMsIGNvZGVJc1N0cmluZyk7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRlU2VydmljZS5nZXRBdXRvQ29tcGxldGUoZW50aXR5LCBnZXRQYXJhbXMsIHNlcnZpY2UpXG4gICAgICAgICAgICAucGlwZShtYXAoKHJlc3VsdCkgPT4gcmVzdWx0ICYmIHJlc3VsdC5jb250ZW50cykpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBdXRvQ29tcGxldGVRdWVyeShxdWVyeTogc3RyaW5nLCBwYXJhbXM6IG9iamVjdCwgc2VydmljZTogU2VydmljZVR5cGUgPSBTZXJ2aWNlVHlwZS5QQVlST0xMKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRlU2VydmljZS5xdWVyeShxdWVyeSwgcGFyYW1zLCBzZXJ2aWNlKVxuICAgICAgICAgICAgLnBpcGUobWFwKChkYXRhKSA9PiBkYXRhICYmIGRhdGEucmVzdWx0KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2VyYSBvcyBwYXJhbWV0cm9zIGRlIHBlc3F1aXNhIHZpYSBwZXNxdWlzYSBuYSBncmlkXG4gICAgICogQHBhcmFtIGZpbHRlckRhdGFcbiAgICAgKi9cbiAgICBwcml2YXRlIGdlbmVyYXRlR3JpZFBhcmFtZXRlcnMoZmlsdGVyRGF0YTogb2JqZWN0LCBzZWFyY2hGaWVsZHM6IGFueSwgY29kZUlzU3RyaW5nOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGdyaWRQYXJhbWV0ZXJzID0gXCJcIjtcbiAgICAgICAgT2JqZWN0LmtleXMoZmlsdGVyRGF0YSkuZm9yRWFjaCgoYXR0cmlidXRlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlclNlYXJjaEZpZWxkID0gc2VhcmNoRmllbGRzICYmIHNlYXJjaEZpZWxkcy5maWx0ZXIoZmllbGQgPT4gYXR0cmlidXRlID09PSBmaWVsZC5uYW1lKVswXTtcbiAgICAgICAgICAgIGxldCBmaWx0ZXJRdWVyeVN0cmluZyA9IG51bGw7XG4gICAgICAgICAgICBsZXQgb3BlcmF0b3JzUXVlcnkgPSBcIlwiO1xuICAgICAgICAgICAgbGV0IHNlYXJjaEZpZWxkOiBhbnkgPSBmaWx0ZXJTZWFyY2hGaWVsZCAmJiBmaWx0ZXJTZWFyY2hGaWVsZC50eXBlO1xuICAgICAgICAgICAgaWYgKCFmaWx0ZXJTZWFyY2hGaWVsZCAmJiBhdHRyaWJ1dGUgIT0gQ29yZUZpZWxkVHlwZS5zZWFyY2hWYWx1ZSkgc2VhcmNoRmllbGQgPSBGaWVsZFR5cGUuU3RyaW5nO1xuICAgICAgICAgICAgaWYgKCFmaWx0ZXJTZWFyY2hGaWVsZCAmJiBhdHRyaWJ1dGUgPT09IENvcmVGaWVsZFR5cGUuc2VhcmNoVmFsdWUpIHNlYXJjaEZpZWxkID0gQ29yZUZpZWxkVHlwZS5zZWFyY2hWYWx1ZTtcbiAgICAgICAgICAgIGlmIChncmlkUGFyYW1ldGVycykgb3BlcmF0b3JzUXVlcnkgPSBcIiBhbmQgXCI7XG4gICAgICAgICAgICBmaWx0ZXJRdWVyeVN0cmluZyA9IHRoaXMuZ2V0UGFyYW1ldGVyQnlUeXBlKHNlYXJjaEZpZWxkLCBhdHRyaWJ1dGUsIGZpbHRlckRhdGFbYXR0cmlidXRlXSwgY29kZUlzU3RyaW5nKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJRdWVyeVN0cmluZykgZ3JpZFBhcmFtZXRlcnMgKz0gYCAke29wZXJhdG9yc1F1ZXJ5fSAke2ZpbHRlclF1ZXJ5U3RyaW5nfWA7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZ3JpZFBhcmFtZXRlcnM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2VyYSBhIHN0cmluZyBkZSBjb25zdWx0YSBDUlVEIGRlIHVtIGNhbXBvLlxuICAgICAqIEBwYXJhbSB0eXBlIFRpcG8gZG8gY2FtcG8uXG4gICAgICogQHBhcmFtIGF0dHJpYnV0ZSBOb21lIGRvIGF0cmlidXRlIGRhIGVudGlkYWRlXG4gICAgICogQHBhcmFtIHZhbHVlIFZhbG9yIGRvIGNhbXBvXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRQYXJhbWV0ZXJCeVR5cGUodHlwZTogYW55LCBhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU6IGFueSwgY29kZUlzU3RyaW5nOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCF2YWx1ZSAmJiB0eXBlICE9IENvcmVGaWVsZFR5cGUuc2VhcmNoVmFsdWUpIHJldHVybiBgJHthdHRyaWJ1dGV9IGlzIG51bGxgO1xuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgPT09ICdub3QgbnVsbCcgJiYgdHlwZSAhPSBDb3JlRmllbGRUeXBlLnNlYXJjaFZhbHVlKSByZXR1cm4gYCR7YXR0cmlidXRlfSBpcyBub3QgbnVsbGA7XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuRGF0ZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7YXR0cmlidXRlfSBlcSAnJHttb21lbnQodmFsdWUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpfSdgO1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuRW51bTpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7YXR0cmlidXRlfSBlcSAnJHt2YWx1ZX0nYDtcbiAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLkludGVnZXI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2F0dHJpYnV0ZX0gZXEgJHt2YWx1ZX1gO1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuQXV0b2NvbXBsZXRlOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHthdHRyaWJ1dGV9IGVxICcke3ZhbHVlLmlkfSdgO1xuICAgICAgICAgICAgY2FzZSBDb3JlRmllbGRUeXBlLnNlYXJjaFZhbHVlOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLmdldFBhcmFtZXRlckJ5U2VhcmNoVHlwZSh2YWx1ZSwgY29kZUlzU3RyaW5nKX1gO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWFyY2hGaWx0ZXJTdHJpbmcoYXR0cmlidXRlLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRvcm5hIG8gZmlsdHJvIGZvcm1hdGFkb3IgcGFyYSBzZXIgY2hhbWRvIG5vIGVuZHBvaW50XG4gICAgICogQHBhcmFtIHZhbHVlRmlsdGVyU2VhcmNoIHZhbG9yIHByYSBhZGljaW9uYXIgbm8gZmlsdHJvXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRQYXJhbWV0ZXJCeVNlYXJjaFR5cGUodmFsdWVGaWx0ZXJTZWFyY2g6IGFueSwgY29kZUlzU3RyaW5nOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHNlYXJjaEZpbHRlciA9IFwiXCI7XG4gICAgICAgIGlmICh2YWx1ZUZpbHRlclNlYXJjaCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFsdWVGaWx0ZXJTZWFyY2gpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gXCJjb2RlXCIgJiYgTnVtYmVyKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNRdW90ZSA9IGNvZGVJc1N0cmluZyA/IFwiJ1wiIDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlYXJjaEZpbHRlcilcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEZpbHRlciArPSBgIG9yICR7a2V5fSBlcSAke2hhc1F1b3RlfSR7dmFsdWV9JHtoYXNRdW90ZX1gO1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hGaWx0ZXIgKz0gYCR7a2V5fSBlcSAke2hhc1F1b3RlfSR7dmFsdWV9JHtoYXNRdW90ZX1gO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ICE9IFwiY29kZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWFyY2hGaWx0ZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hGaWx0ZXIgKz0gYCBvciAke3RoaXMuZ2V0U2VhcmNoRmlsdGVyU3RyaW5nKGtleSwgdmFsdWUpfWA7XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEZpbHRlciArPSB0aGlzLmdldFNlYXJjaEZpbHRlclN0cmluZyhrZXksIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZWFyY2hGaWx0ZXIgPSBzZWFyY2hGaWx0ZXIgPyBgKCR7c2VhcmNoRmlsdGVyfSlgIDogJyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNlYXJjaEZpbHRlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb3JtYXRhIG8gZmlsdHJvIHF1YW5kbyBmb3IgXCJPdVwiXG4gICAgICogQHBhcmFtIGF0dHJpYnV0ZSBOb21lIGRvIGF0cmlidXRvIGRhIGVudGlkYWRlLlxuICAgICAqIEBwYXJhbSB2YWx1ZSBWYWxvciBkYSBwcm9wcmllZGFkZSBkbyBvYmpldG8uXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRTZWFyY2hGaWx0ZXJTdHJpbmcoYXR0cmlidXRlOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYGNvbnRhaW5zKHRvbG93ZXIoJHthdHRyaWJ1dGV9KSwgJyR7dmFsdWUudG9Mb3dlckNhc2UoKX0nKWA7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from "./transportation-voucher-scale-lookup.component";
|
|
2
|
+
export * from "./transportation-voucher-scale-lookup.module";
|
|
3
|
+
export * from "./transportation-voucher-scale-lookup.dto";
|
|
4
|
+
export * from "./autocomplete.service";
|
|
5
|
+
export * from "./lookup.service";
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1wZXNzb2FzL3BheXJvbGwtY29yZS8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvdHJhbnNwb3J0YXRpb24tdm91Y2hlci1zY2FsZS1sb29rdXAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vdHJhbnNwb3J0YXRpb24tdm91Y2hlci1zY2FsZS1sb29rdXAuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90cmFuc3BvcnRhdGlvbi12b3VjaGVyLXNjYWxlLWxvb2t1cC5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RyYW5zcG9ydGF0aW9uLXZvdWNoZXItc2NhbGUtbG9va3VwLmR0b1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vYXV0b2NvbXBsZXRlLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xvb2t1cC5zZXJ2aWNlXCI7XG4iXX0=
|