@senior-gestao-empresarial/angular-components 6.7.0 → 6.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/senior-gestao-empresarial-angular-components.umd.js +38 -17
- package/bundles/senior-gestao-empresarial-angular-components.umd.js.map +1 -1
- package/bundles/senior-gestao-empresarial-angular-components.umd.min.js +1 -1
- package/bundles/senior-gestao-empresarial-angular-components.umd.min.js.map +1 -1
- package/components/lookups/entities/segmento-lookup.d.ts +1 -1
- package/components/websocket/websocket.service.d.ts +9 -0
- package/esm2015/components/lookups/entities/segmento-lookup.js +14 -14
- package/esm2015/components/websocket/websocket.service.js +31 -11
- package/esm5/components/lookups/entities/segmento-lookup.js +14 -14
- package/esm5/components/websocket/websocket.service.js +32 -11
- package/fesm2015/senior-gestao-empresarial-angular-components.js +37 -17
- package/fesm2015/senior-gestao-empresarial-angular-components.js.map +1 -1
- package/fesm5/senior-gestao-empresarial-angular-components.js +38 -17
- package/fesm5/senior-gestao-empresarial-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/senior-gestao-empresarial-angular-components.metadata.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ErpLookupsService } from "../erp-lookups.service";
|
|
2
1
|
import { TranslateService } from "@ngx-translate/core";
|
|
3
2
|
import { ErpLookups } from "../erp-lookups";
|
|
3
|
+
import { ErpLookupsService } from "../erp-lookups.service";
|
|
4
4
|
export declare class SegmentoLookup extends ErpLookups {
|
|
5
5
|
protected lookupService: ErpLookupsService;
|
|
6
6
|
protected translate: TranslateService;
|
|
@@ -49,6 +49,15 @@ export declare class WebsocketService {
|
|
|
49
49
|
* @return Um `Observable<void>` que emite uma notificação quando a conexão é reconectada.
|
|
50
50
|
*/
|
|
51
51
|
onReconnect(): Observable<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Observable responsável por emitir uma notificação após o subscribe do evento.
|
|
54
|
+
* @return Um `Observable<void>` que emite uma notificação após o subscribe do evento.
|
|
55
|
+
*/
|
|
56
|
+
onSubscribe({ domain, service, primitive }: {
|
|
57
|
+
domain: string;
|
|
58
|
+
service: string;
|
|
59
|
+
primitive: string;
|
|
60
|
+
}): Observable<void>;
|
|
52
61
|
/**
|
|
53
62
|
* Observable responsável por emitir uma notificação quando ocorre algum erro.
|
|
54
63
|
* @return Um `Observable<FrameImpl>` que emite uma notificação quando ocorre algum erro.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
|
-
import { FieldType } from "@seniorsistemas/angular-components";
|
|
3
|
-
import { ErpLookupsService } from "../erp-lookups.service";
|
|
4
|
-
import { TranslateService } from "@ngx-translate/core";
|
|
5
2
|
import { Injectable } from "@angular/core";
|
|
6
|
-
import {
|
|
3
|
+
import { TranslateService } from "@ngx-translate/core";
|
|
4
|
+
import { FieldType } from "@seniorsistemas/angular-components";
|
|
7
5
|
import { EnumPerfilTributarioSegmento } from "../../../core/enums/enum-perfil-tributario-segmento";
|
|
6
|
+
import { ErpLookups } from "../erp-lookups";
|
|
7
|
+
import { ErpLookupsService } from "../erp-lookups.service";
|
|
8
8
|
const getFields = (translateService) => {
|
|
9
9
|
return [
|
|
10
10
|
{
|
|
@@ -16,39 +16,39 @@ const getFields = (translateService) => {
|
|
|
16
16
|
type: FieldType.Enum,
|
|
17
17
|
options: [
|
|
18
18
|
{
|
|
19
|
-
label: translateService.instant("erpx_cpl_imp.impostos.
|
|
19
|
+
label: translateService.instant("erpx_cpl_imp.impostos.enum_perfil_tributario_segmento_industria"),
|
|
20
20
|
value: EnumPerfilTributarioSegmento.INDUSTRIA,
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
|
-
label: translateService.instant("erpx_cpl_imp.impostos.
|
|
23
|
+
label: translateService.instant("erpx_cpl_imp.impostos.enum_perfil_tributario_segmento_comercio"),
|
|
24
24
|
value: EnumPerfilTributarioSegmento.COMERCIO,
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
|
-
label: translateService.instant("erpx_cpl_imp.impostos.
|
|
27
|
+
label: translateService.instant("erpx_cpl_imp.impostos.enum_perfil_tributario_segmento_servico"),
|
|
28
28
|
value: EnumPerfilTributarioSegmento.SERVICO,
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
|
-
label: translateService.instant("erpx_cpl_imp.impostos.
|
|
31
|
+
label: translateService.instant("erpx_cpl_imp.impostos.enum_perfil_tributario_segmento_distribuidor"),
|
|
32
32
|
value: EnumPerfilTributarioSegmento.DISTRIBUIDOR,
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
|
-
label: translateService.instant("erpx_cpl_imp.impostos.
|
|
35
|
+
label: translateService.instant("erpx_cpl_imp.impostos.enum_perfil_tributario_segmento_cooperativa"),
|
|
36
36
|
value: EnumPerfilTributarioSegmento.COOPERATIVA,
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
|
-
label: translateService.instant("erpx_cpl_imp.impostos.
|
|
39
|
+
label: translateService.instant("erpx_cpl_imp.impostos.enum_perfil_tributario_segmento_produtor_rural"),
|
|
40
40
|
value: EnumPerfilTributarioSegmento.PRODUTOR_RURAL,
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
|
-
label: translateService.instant("erpx_cpl_imp.impostos.
|
|
43
|
+
label: translateService.instant("erpx_cpl_imp.impostos.enum_perfil_tributario_segmento_financeira"),
|
|
44
44
|
value: EnumPerfilTributarioSegmento.FINANCEIRA,
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
|
-
label: translateService.instant("erpx_cpl_imp.impostos.
|
|
47
|
+
label: translateService.instant("erpx_cpl_imp.impostos.enum_perfil_tributario_segmento_imobiliaria"),
|
|
48
48
|
value: EnumPerfilTributarioSegmento.IMOBILIARIA,
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
|
-
label: translateService.instant("erpx_cpl_imp.impostos.
|
|
51
|
+
label: translateService.instant("erpx_cpl_imp.impostos.enum_perfil_tributario_segmento_construcao_civil"),
|
|
52
52
|
value: EnumPerfilTributarioSegmento.CONSTRUCAO_CIVIL,
|
|
53
53
|
},
|
|
54
54
|
],
|
|
@@ -72,4 +72,4 @@ SegmentoLookup = __decorate([
|
|
|
72
72
|
], SegmentoLookup);
|
|
73
73
|
export { SegmentoLookup };
|
|
74
74
|
export { ɵ0 };
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudG8tbG9va3VwLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tZW1wcmVzYXJpYWwvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9sb29rdXBzL2VudGl0aWVzL3NlZ21lbnRvLWxvb2t1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDL0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbkcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNELE1BQU0sU0FBUyxHQUFHLENBQUMsZ0JBQWtDLEVBQUUsRUFBRTtJQUNyRCxPQUFPO1FBQ0g7WUFDSSxJQUFJLEVBQUUsV0FBVztZQUNqQixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07U0FDekI7UUFDRDtZQUNJLElBQUksRUFBRSw4QkFBOEI7WUFDcEMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1lBQ3BCLE9BQU8sRUFBRTtnQkFDTDtvQkFDSSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGlFQUFpRSxDQUFDO29CQUNsRyxLQUFLLEVBQUUsNEJBQTRCLENBQUMsU0FBUztpQkFDaEQ7Z0JBQ0Q7b0JBQ0ksS0FBSyxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxnRUFBZ0UsQ0FBQztvQkFDakcsS0FBSyxFQUFFLDRCQUE0QixDQUFDLFFBQVE7aUJBQy9DO2dCQUNEO29CQUNJLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsK0RBQStELENBQUM7b0JBQ2hHLEtBQUssRUFBRSw0QkFBNEIsQ0FBQyxPQUFPO2lCQUM5QztnQkFDRDtvQkFDSSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLG9FQUFvRSxDQUFDO29CQUNyRyxLQUFLLEVBQUUsNEJBQTRCLENBQUMsWUFBWTtpQkFDbkQ7Z0JBQ0Q7b0JBQ0ksS0FBSyxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxtRUFBbUUsQ0FBQztvQkFDcEcsS0FBSyxFQUFFLDRCQUE0QixDQUFDLFdBQVc7aUJBQ2xEO2dCQUNEO29CQUNJLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsc0VBQXNFLENBQUM7b0JBQ3ZHLEtBQUssRUFBRSw0QkFBNEIsQ0FBQyxjQUFjO2lCQUNyRDtnQkFDRDtvQkFDSSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGtFQUFrRSxDQUFDO29CQUNuRyxLQUFLLEVBQUUsNEJBQTRCLENBQUMsVUFBVTtpQkFDakQ7Z0JBQ0Q7b0JBQ0ksS0FBSyxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxtRUFBbUUsQ0FBQztvQkFDcEcsS0FBSyxFQUFFLDRCQUE0QixDQUFDLFdBQVc7aUJBQ2xEO2dCQUNEO29CQUNJLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsd0VBQXdFLENBQUM7b0JBQ3pHLEtBQUssRUFBRSw0QkFBNEIsQ0FBQyxnQkFBZ0I7aUJBQ3ZEO2FBQ0o7U0FDSjtLQUNKLENBQUM7QUFDTixDQUFDLENBQUM7O0FBR0YsSUFBYSxjQUFjLEdBQTNCLE1BQWEsY0FBZSxTQUFRLFVBQVU7SUFDMUMsWUFBc0IsYUFBZ0MsRUFBWSxTQUEyQjtRQUN6RixLQUFLLENBQ0QsYUFBYSxFQUNiLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUNwQixTQUFTLENBQUMsU0FBUyxDQUFDLEVBQ3BCLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFDcEIsY0FBYyxFQUNkLFVBQVUsQ0FDYixDQUFDO1FBVmdCLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBVzdGLENBQUM7Q0FDSixDQUFBOztZQVp3QyxpQkFBaUI7WUFBdUIsZ0JBQWdCOztBQURwRixjQUFjO0lBRDFCLFVBQVUsRUFBRTtHQUNBLGNBQWMsQ0FhMUI7U0FiWSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzXCI7XG5pbXBvcnQgeyBFbnVtUGVyZmlsVHJpYnV0YXJpb1NlZ21lbnRvIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZW51bXMvZW51bS1wZXJmaWwtdHJpYnV0YXJpby1zZWdtZW50b1wiO1xuaW1wb3J0IHsgRXJwTG9va3VwcyB9IGZyb20gXCIuLi9lcnAtbG9va3Vwc1wiO1xuaW1wb3J0IHsgRXJwTG9va3Vwc1NlcnZpY2UgfSBmcm9tIFwiLi4vZXJwLWxvb2t1cHMuc2VydmljZVwiO1xuXG5jb25zdCBnZXRGaWVsZHMgPSAodHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkgPT4ge1xuICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVzY3JpY2FvXCIsXG4gICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuU3RyaW5nLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcInRpcG9QZXJmaWxUcmlidXRhcmlvU2VnbWVudG9cIixcbiAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5FbnVtLFxuICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImVycHhfY3BsX2ltcC5pbXBvc3Rvcy5lbnVtX3BlcmZpbF90cmlidXRhcmlvX3NlZ21lbnRvX2luZHVzdHJpYVwiKSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1QZXJmaWxUcmlidXRhcmlvU2VnbWVudG8uSU5EVVNUUklBLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1fcGVyZmlsX3RyaWJ1dGFyaW9fc2VnbWVudG9fY29tZXJjaW9cIiksXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtUGVyZmlsVHJpYnV0YXJpb1NlZ21lbnRvLkNPTUVSQ0lPLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1fcGVyZmlsX3RyaWJ1dGFyaW9fc2VnbWVudG9fc2Vydmljb1wiKSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1QZXJmaWxUcmlidXRhcmlvU2VnbWVudG8uU0VSVklDTyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImVycHhfY3BsX2ltcC5pbXBvc3Rvcy5lbnVtX3BlcmZpbF90cmlidXRhcmlvX3NlZ21lbnRvX2Rpc3RyaWJ1aWRvclwiKSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1QZXJmaWxUcmlidXRhcmlvU2VnbWVudG8uRElTVFJJQlVJRE9SLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1fcGVyZmlsX3RyaWJ1dGFyaW9fc2VnbWVudG9fY29vcGVyYXRpdmFcIiksXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtUGVyZmlsVHJpYnV0YXJpb1NlZ21lbnRvLkNPT1BFUkFUSVZBLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1fcGVyZmlsX3RyaWJ1dGFyaW9fc2VnbWVudG9fcHJvZHV0b3JfcnVyYWxcIiksXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtUGVyZmlsVHJpYnV0YXJpb1NlZ21lbnRvLlBST0RVVE9SX1JVUkFMLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1fcGVyZmlsX3RyaWJ1dGFyaW9fc2VnbWVudG9fZmluYW5jZWlyYVwiKSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1QZXJmaWxUcmlidXRhcmlvU2VnbWVudG8uRklOQU5DRUlSQSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImVycHhfY3BsX2ltcC5pbXBvc3Rvcy5lbnVtX3BlcmZpbF90cmlidXRhcmlvX3NlZ21lbnRvX2ltb2JpbGlhcmlhXCIpLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bVBlcmZpbFRyaWJ1dGFyaW9TZWdtZW50by5JTU9CSUxJQVJJQSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImVycHhfY3BsX2ltcC5pbXBvc3Rvcy5lbnVtX3BlcmZpbF90cmlidXRhcmlvX3NlZ21lbnRvX2NvbnN0cnVjYW9fY2l2aWxcIiksXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtUGVyZmlsVHJpYnV0YXJpb1NlZ21lbnRvLkNPTlNUUlVDQU9fQ0lWSUwsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgXTtcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTZWdtZW50b0xvb2t1cCBleHRlbmRzIEVycExvb2t1cHMge1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBsb29rdXBTZXJ2aWNlOiBFcnBMb29rdXBzU2VydmljZSwgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIGxvb2t1cFNlcnZpY2UsXG4gICAgICAgICAgICB0cmFuc2xhdGUsXG4gICAgICAgICAgICBcInNlZ21lbnRvXCIsXG4gICAgICAgICAgICBnZXRGaWVsZHModHJhbnNsYXRlKSxcbiAgICAgICAgICAgIGdldEZpZWxkcyh0cmFuc2xhdGUpLFxuICAgICAgICAgICAgZ2V0RmllbGRzKHRyYW5zbGF0ZSksXG4gICAgICAgICAgICBcImVycHhfY3BsX2ltcFwiLFxuICAgICAgICAgICAgXCJpbXBvc3Rvc1wiXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
|
|
@@ -3,8 +3,8 @@ import { __decorate } from "tslib";
|
|
|
3
3
|
import { Injectable } from "@angular/core";
|
|
4
4
|
import { Stomp } from "@stomp/stompjs";
|
|
5
5
|
import * as Cookies from "js-cookie";
|
|
6
|
-
import { Subject } from "rxjs";
|
|
7
|
-
import {
|
|
6
|
+
import { ReplaySubject, Subject } from "rxjs";
|
|
7
|
+
import { finalize, first } from "rxjs/operators";
|
|
8
8
|
import * as SockJS from "sockjs-client";
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
let WebsocketService = WebsocketService_1 = class WebsocketService {
|
|
@@ -57,6 +57,17 @@ let WebsocketService = WebsocketService_1 = class WebsocketService {
|
|
|
57
57
|
onReconnect() {
|
|
58
58
|
return this.reconnect$.asObservable();
|
|
59
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Observable responsável por emitir uma notificação após o subscribe do evento.
|
|
62
|
+
* @return Um `Observable<void>` que emite uma notificação após o subscribe do evento.
|
|
63
|
+
*/
|
|
64
|
+
onSubscribe({ domain, service, primitive }) {
|
|
65
|
+
const primitiveManager = this.primitiveManagers.get(this.getPrimitiveManagerKey(domain, service, primitive));
|
|
66
|
+
if (!primitiveManager) {
|
|
67
|
+
throw new Error(`No subscription found for ${this.getPrimitiveManagerKey(domain, service, primitive)}`);
|
|
68
|
+
}
|
|
69
|
+
return primitiveManager.subscribe$.asObservable();
|
|
70
|
+
}
|
|
60
71
|
/**
|
|
61
72
|
* Observable responsável por emitir uma notificação quando ocorre algum erro.
|
|
62
73
|
* @return Um `Observable<FrameImpl>` que emite uma notificação quando ocorre algum erro.
|
|
@@ -76,19 +87,22 @@ let WebsocketService = WebsocketService_1 = class WebsocketService {
|
|
|
76
87
|
const { domain, service, primitive } = options;
|
|
77
88
|
const key = this.getPrimitiveManagerKey(domain, service, primitive);
|
|
78
89
|
if (this.primitiveManagers.has(key)) {
|
|
79
|
-
return this.primitiveManagers.get(key).
|
|
90
|
+
return this.primitiveManagers.get(key).event$.asObservable();
|
|
80
91
|
}
|
|
81
92
|
const primitiveManager = {
|
|
82
93
|
domain: domain,
|
|
83
94
|
service: service,
|
|
84
95
|
primitive: primitive,
|
|
85
96
|
stompSubscriptions: [],
|
|
86
|
-
|
|
97
|
+
event$: new Subject(),
|
|
98
|
+
subscribe$: new ReplaySubject(1)
|
|
87
99
|
};
|
|
88
100
|
this.primitiveManagers.set(key, primitiveManager);
|
|
89
101
|
if (this.isConnected()) {
|
|
90
102
|
this.createStompSubscriptions(primitiveManager);
|
|
91
|
-
return primitiveManager.
|
|
103
|
+
return primitiveManager.event$
|
|
104
|
+
.asObservable()
|
|
105
|
+
.pipe(finalize(() => this.disconnectPrimitiveOnFinalize(primitiveManager)));
|
|
92
106
|
}
|
|
93
107
|
else {
|
|
94
108
|
if (!this.isConnecting) {
|
|
@@ -97,7 +111,9 @@ let WebsocketService = WebsocketService_1 = class WebsocketService {
|
|
|
97
111
|
this.connect$.pipe(first()).subscribe(() => {
|
|
98
112
|
this.createStompSubscriptions(primitiveManager);
|
|
99
113
|
});
|
|
100
|
-
return primitiveManager.
|
|
114
|
+
return primitiveManager.event$
|
|
115
|
+
.asObservable()
|
|
116
|
+
.pipe(finalize(() => this.disconnectPrimitiveOnFinalize(primitiveManager)));
|
|
101
117
|
}
|
|
102
118
|
}
|
|
103
119
|
/** @private */
|
|
@@ -107,6 +123,7 @@ let WebsocketService = WebsocketService_1 = class WebsocketService {
|
|
|
107
123
|
const withoutTokenUrl = this.getSubscriptionUrlWithoutToken(primitiveManager.domain, primitiveManager.service, primitiveManager.primitive);
|
|
108
124
|
const stompSubscriptionWithoutToken = this.createStompSubscription(withoutTokenUrl, primitiveManager);
|
|
109
125
|
primitiveManager.stompSubscriptions = [stompSubscriptionWithToken, stompSubscriptionWithoutToken];
|
|
126
|
+
primitiveManager.subscribe$.next();
|
|
110
127
|
}
|
|
111
128
|
/** @private */
|
|
112
129
|
connect() {
|
|
@@ -148,7 +165,8 @@ let WebsocketService = WebsocketService_1 = class WebsocketService {
|
|
|
148
165
|
}
|
|
149
166
|
}
|
|
150
167
|
for (const primitiveManager of this.primitiveManagers.values()) {
|
|
151
|
-
primitiveManager.
|
|
168
|
+
primitiveManager.event$.complete();
|
|
169
|
+
primitiveManager.subscribe$.complete();
|
|
152
170
|
}
|
|
153
171
|
this.primitiveManagers.clear();
|
|
154
172
|
this._stompClient.disconnect();
|
|
@@ -181,7 +199,7 @@ let WebsocketService = WebsocketService_1 = class WebsocketService {
|
|
|
181
199
|
createStompSubscription(destination, primitiveManager) {
|
|
182
200
|
return this._stompClient.subscribe(destination, (message) => {
|
|
183
201
|
const event = JSON.parse(message.body || "{}");
|
|
184
|
-
primitiveManager.
|
|
202
|
+
primitiveManager.event$.next(event);
|
|
185
203
|
});
|
|
186
204
|
}
|
|
187
205
|
/** @private */
|
|
@@ -219,16 +237,18 @@ let WebsocketService = WebsocketService_1 = class WebsocketService {
|
|
|
219
237
|
getObserversCount() {
|
|
220
238
|
let observersCount = 0;
|
|
221
239
|
for (const primitiveManager of this.primitiveManagers.values()) {
|
|
222
|
-
observersCount += primitiveManager.
|
|
240
|
+
observersCount += primitiveManager.event$.observers.length;
|
|
223
241
|
}
|
|
224
242
|
return observersCount;
|
|
225
243
|
}
|
|
226
244
|
/** @private */
|
|
227
245
|
disconnectPrimitiveOnFinalize(primitiveManager) {
|
|
228
246
|
// @IMPORTANT: Replace .observers.length === 1 with .observed in rxjs 7.0+
|
|
229
|
-
const hasObservers = !(primitiveManager.
|
|
247
|
+
const hasObservers = !(primitiveManager.event$.observers.length === 1);
|
|
230
248
|
if (hasObservers)
|
|
231
249
|
return;
|
|
250
|
+
primitiveManager.event$.complete();
|
|
251
|
+
primitiveManager.subscribe$.complete();
|
|
232
252
|
for (const stompSubscription of primitiveManager.stompSubscriptions) {
|
|
233
253
|
stompSubscription.unsubscribe();
|
|
234
254
|
}
|
|
@@ -260,4 +280,4 @@ WebsocketService = WebsocketService_1 = __decorate([
|
|
|
260
280
|
})
|
|
261
281
|
], WebsocketService);
|
|
262
282
|
export { WebsocketService };
|
|
263
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3dlYnNvY2tldC93ZWJzb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUEyQixLQUFLLEVBQXFCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkYsT0FBTyxLQUFLLE9BQU8sTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFDOztBQWN4QyxJQUFhLGdCQUFnQix3QkFBN0IsTUFBYSxnQkFBZ0I7SUFpRHpCO1FBOUJBLGVBQWU7UUFDUCxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBS3ZCLGVBQWU7UUFDUCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUU3QixlQUFlO1FBQ1AsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUUxQixlQUFlO1FBQ1AsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFN0IsZUFBZTtRQUNQLHNCQUFpQixHQUFrQyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztRQUUvRixlQUFlO1FBQ1AsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFdkMsZUFBZTtRQUNQLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUUxQyxlQUFlO1FBQ1AsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFekMsZUFBZTtRQUNQLFdBQU0sR0FBRyxJQUFJLE9BQU8sRUFBYSxDQUFDO1FBR3RDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxD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UyxFQUFFLENBQUM7SUFDL0MsQ0FBQztDQUNKLENBQUE7QUEzVUcsZUFBZTtBQUNBLGdDQUFlLEdBQUcsSUFBSSxDQUFDO0FBRXRDLGVBQWU7QUFDQSxtQ0FBa0IsR0FBRyxLQUFLLENBQUM7QUFFMUMsZUFBZTtBQUNBLGdDQUFlLEdBQUcscUJBQXFCLENBQUM7QUFFdkQsZUFBZTtBQUNBLDZCQUFZLEdBQUcsa0JBQWtCLENBQUM7QUFFakQsZUFBZTtBQUNBLHNCQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFnQixDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO0FBRXRGLGVBQWU7QUFDQSw4QkFBYSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWdCLENBQUMsZUFBZSxDQUFDLEdBQUcsYUFBYSxDQUFDOztBQWpCcEYsZ0JBQWdCO0lBSDVCLFVBQVUsQ0FBQztRQUNSLFVBQVUsRUFBRSxNQUFNO0tBQ3JCLENBQUM7R0FDVyxnQkFBZ0IsQ0E0VTVCO1NBNVVZLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21wYXRDbGllbnQsIEZyYW1lSW1wbCwgU3RvbXAsIFN0b21wU3Vic2NyaXB0aW9uIH0gZnJvbSBcIkBzdG9tcC9zdG9tcGpzXCI7XHJcbmltcG9ydCAqIGFzIENvb2tpZXMgZnJvbSBcImpzLWNvb2tpZVwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZmlyc3QsIGZpbmFsaXplIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCAqIGFzIFNvY2tKUyBmcm9tIFwic29ja2pzLWNsaWVudFwiO1xyXG5cclxuLyoqIEBwcml2YXRlICovXHJcbmludGVyZmFjZSBQcmltaXRpdmVNYW5hZ2VyIHtcclxuICAgIGRvbWFpbjogc3RyaW5nO1xyXG4gICAgc2VydmljZTogc3RyaW5nO1xyXG4gICAgcHJpbWl0aXZlOiBzdHJpbmc7XHJcbiAgICBzdG9tcFN1YnNjcmlwdGlvbnM6IFN0b21wU3Vic2NyaXB0aW9uW107XHJcbiAgICBzdWJqZWN0OiBTdWJqZWN0PGFueT47XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgV2Vic29ja2V0U2VydmljZSB7XHJcbiAgICAvKiogQHByaXZhdGUgKi9cclxuICAgIHByaXZhdGUgc3RhdGljIFJFQ09OTkVDVF9USU1FUiA9IDMwMDA7XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyBDT05ORUNUSU9OX1RJTUVPVVQgPSAxNTAwMDtcclxuXHJcbiAgICAvKiogQHByaXZhdGUgKi9cclxuICAgIHByaXZhdGUgc3RhdGljIEJBU0VfVVJMX0NPT0tJRSA9IFwiY29tLnNlbmlvci5iYXNlLnVybFwiO1xyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgVE9LRU5fQ09PS0lFID0gXCJjb20uc2VuaW9yLnRva2VuXCI7XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyBUT0tFTiA9IEpTT04ucGFyc2UoQ29va2llcy5nZXQoV2Vic29ja2V0U2VydmljZS5UT0tFTl9DT09LSUUpIHx8IFwie31cIik7XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyBXRUJTT0NLRVRfVVJMID0gQ29va2llcy5nZXQoV2Vic29ja2V0U2VydmljZS5CQVNFX1VSTF9DT09LSUUpICsgXCIvd2Vic29ja2V0L1wiO1xyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSBmb2N1c2VkID0gdHJ1ZTtcclxuXHJcbiAgICAvKiogQHByaXZhdGUgKi9cclxuICAgIHByaXZhdGUgX3N0b21wQ2xpZW50OiBDb21wYXRDbGllbnQ7XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIHdhc0Nvbm5lY3RlZCA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSBjb25uZWN0ZWQgPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQHByaXZhdGUgKi9cclxuICAgIHByaXZhdGUgaXNDb25uZWN0aW5nID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIHByaW1pdGl2ZU1hbmFnZXJzOiBNYXA8c3RyaW5nLCBQcmltaXRpdmVNYW5hZ2VyPiA9IG5ldyBNYXA8c3RyaW5nLCBQcmltaXRpdmVNYW5hZ2VyPigpO1xyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSBjb25uZWN0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIGRpc2Nvbm5lY3QkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICAvKiogQHByaXZhdGUgKi9cclxuICAgIHByaXZhdGUgcmVjb25uZWN0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIGVycm9yJCA9IG5ldyBTdWJqZWN0PEZyYW1lSW1wbD4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB3aW5kb3cub25mb2N1cyA9IHRoaXMub25Gb2N1cztcclxuICAgICAgICB3aW5kb3cub25ibHVyID0gdGhpcy5vbkJsdXI7XHJcblxyXG4gICAgICAgIHRoaXMuY29ubmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2JzZXJ2YWJsZSByZXNwb25zw6F2ZWwgcG9yIGVtaXRpciB1bWEgbm90aWZpY2HDp8OjbyBxdWFuZG8gYSBjb25leMOjbyB3ZWJzb2NrZXQgw6kgZXN0YWJlbGVjaWRhLlxyXG4gICAgICogQHJldHVybiBVbSBgT2JzZXJ2YWJsZTx2b2lkPmAgcXVlIGVtaXRlIHVtYSBub3RpZmljYcOnw6NvIHF1YW5kbyBhIGNvbmV4w6NvIHdlYnNvY2tldCDDqSBlc3RhYmVsZWNpZGEuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvbkNvbm5lY3QoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkKCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdCQubmV4dCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgMCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3QkLnBpcGUoZmlyc3QoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPYnNlcnZhYmxlIHJlc3BvbnPDoXZlbCBwb3IgZW1pdGlyIHVtYSBub3RpZmljYcOnw6NvIHF1YW5kbyBhIGNvbmV4w6NvIMOpIGRlc2NvbmVjdGFkYS5cclxuICAgICAqIEByZXR1cm4gVW0gYE9ic2VydmFibGU8dm9pZD5gIHF1ZSBlbWl0ZSB1bWEgbm90aWZpY2HDp8OjbyBxdWFuZG8gYSBjb25leMOjbyDDqSBkZXNjb25lY3RhZGEuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvbkRpc2Nvbm5lY3QoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzY29ubmVjdCQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPYnNlcnZhYmxlIHJlc3BvbnPDoXZlbCBwb3IgZW1pdGlyIHVtYSBub3RpZmljYcOnw6NvIHF1YW5kbyBhIGNvbmV4w6NvIMOpIHJlY29uZWN0YWRhLlxyXG4gICAgICogQHJldHVybiBVbSBgT2JzZXJ2YWJsZTx2b2lkPmAgcXVlIGVtaXRlIHVtYSBub3RpZmljYcOnw6NvIHF1YW5kbyBhIGNvbmV4w6NvIMOpIHJlY29uZWN0YWRhLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25SZWNvbm5lY3QoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVjb25uZWN0JC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9ic2VydmFibGUgcmVzcG9uc8OhdmVsIHBvciBlbWl0aXIgdW1hIG5vdGlmaWNhw6fDo28gcXVhbmRvIG9jb3JyZSBhbGd1bSBlcnJvLlxyXG4gICAgICogQHJldHVybiBVbSBgT2JzZXJ2YWJsZTxGcmFtZUltcGw+YCBxdWUgZW1pdGUgdW1hIG5vdGlmaWNhw6fDo28gcXVhbmRvIG9jb3JyZSBhbGd1bSBlcnJvLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25FcnJvcigpOiBPYnNlcnZhYmxlPEZyYW1lSW1wbD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9yJC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEB0eXBlUGFyYW0gYDxUPmAgVGlwbyBkbyBvYmpldG8gcXVlIG8gcmV0b3JubyBkbyBgb2JzZXJ2YWJsZWAgdmFpIGRldm9sdmVyLlxyXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgT2JqZXRvIGRlIGNvbmZpZ3VyYcOnw6NvIGRvIGV2ZW50by5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmRvbWFpbiBEb23DrW5pbyBkYSBwcmltaXRpdmEuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5zZXJ2aWNlIFNlcnZpw6dvIGRhIHByaW1pdGl2YS5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnByaW1pdGl2ZSAgUHJpbWl0aXZhIHF1ZSBzZXLDoSBcIm9ic2VydmFkYVwiLlxyXG4gICAgICogQHJldHVybiBVbSBPYnNlcnZhYmxlPFQ+IHF1ZSBlbWl0ZSBub3RpZmljYcOnw7VlcyB0b2RhIHZleiBxdWUgbyByZXNwZWN0aXZvIGV2ZW50byDDqSBwdWJsaWNhZG8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvbkV2ZW50PFQ+KG9wdGlvbnM6IHsgZG9tYWluOiBzdHJpbmc7IHNlcnZpY2U6IHN0cmluZzsgcHJpbWl0aXZlOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIGNvbnN0IHsgZG9tYWluLCBzZXJ2aWNlLCBwcmltaXRpdmUgfSA9IG9wdGlvbnM7XHJcblxyXG4gICAgICAgIGNvbnN0IGtleSA9IHRoaXMuZ2V0UHJpbWl0aXZlTWFuYWdlcktleShkb21haW4sIHNlcnZpY2UsIHByaW1pdGl2ZSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnByaW1pdGl2ZU1hbmFnZXJzLmhhcyhrZXkpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByaW1pdGl2ZU1hbmFnZXJzLmdldChrZXkpLnN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwcmltaXRpdmVNYW5hZ2VyOiBQcmltaXRpdmVNYW5hZ2VyID0ge1xyXG4gICAgICAgICAgICBkb21haW46IGRvbWFpbixcclxuICAgICAgICAgICAgc2VydmljZTogc2VydmljZSxcclxuICAgICAgICAgICAgcHJpbWl0aXZlOiBwcmltaXRpdmUsXHJcbiAgICAgICAgICAgIHN0b21wU3Vic2NyaXB0aW9uczogW10sXHJcbiAgICAgICAgICAgIHN1YmplY3Q6IG5ldyBTdWJqZWN0PFQ+KCksXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5wcmltaXRpdmVNYW5hZ2Vycy5zZXQoa2V5LCBwcmltaXRpdmVNYW5hZ2VyKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQoKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVN0b21wU3Vic2NyaXB0aW9ucyhwcmltaXRpdmVNYW5hZ2VyKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBwcmltaXRpdmVNYW5hZ2VyLnN1YmplY3QucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLmRpc2Nvbm5lY3RQcmltaXRpdmVPbkZpbmFsaXplKHByaW1pdGl2ZU1hbmFnZXIpKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzQ29ubmVjdGluZykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0KCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuY29ubmVjdCQucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVTdG9tcFN1YnNjcmlwdGlvbnMocHJpbWl0aXZlTWFuYWdlcik7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZU1hbmFnZXIuc3ViamVjdC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuZGlzY29ubmVjdFByaW1pdGl2ZU9uRmluYWxpemUocHJpbWl0aXZlTWFuYWdlcikpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIGNyZWF0ZVN0b21wU3Vic2NyaXB0aW9ucyhwcmltaXRpdmVNYW5hZ2VyOiBQcmltaXRpdmVNYW5hZ2VyKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgd2l0aFRva2VuVXJsID0gdGhpcy5nZXRTdWJzY3JpcHRpb25VcmxXaXRoVG9rZW4oXHJcbiAgICAgICAgICAgIHByaW1pdGl2ZU1hbmFnZXIuZG9tYWluLFxyXG4gICAgICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLnNlcnZpY2UsXHJcbiAgICAgICAgICAgIHByaW1pdGl2ZU1hbmFnZXIucHJpbWl0aXZlXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3Qgc3RvbXBTdWJzY3JpcHRpb25XaXRoVG9rZW4gPSB0aGlzLmNyZWF0ZVN0b21wU3Vic2NyaXB0aW9uKHdpdGhUb2tlblVybCwgcHJpbWl0aXZlTWFuYWdlcik7XHJcblxyXG4gICAgICAgIGNvbnN0IHdpdGhvdXRUb2tlblVybCA9IHRoaXMuZ2V0U3Vic2NyaXB0aW9uVXJsV2l0aG91dFRva2VuKFxyXG4gICAgICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLmRvbWFpbixcclxuICAgICAgICAgICAgcHJpbWl0aXZlTWFuYWdlci5zZXJ2aWNlLFxyXG4gICAgICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLnByaW1pdGl2ZVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IHN0b21wU3Vic2NyaXB0aW9uV2l0aG91dFRva2VuID0gdGhpcy5jcmVhdGVTdG9tcFN1YnNjcmlwdGlvbih3aXRob3V0VG9rZW5VcmwsIHByaW1pdGl2ZU1hbmFnZXIpO1xyXG5cclxuICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLnN0b21wU3Vic2NyaXB0aW9ucyA9IFtzdG9tcFN1YnNjcmlwdGlvbldpdGhUb2tlbiwgc3RvbXBTdWJzY3JpcHRpb25XaXRob3V0VG9rZW5dO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSBjb25uZWN0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlU3RvbXBDbGllbnQoKTtcclxuXHJcbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLl9zdG9tcENsaWVudC5hY3RpdmF0ZSgpO1xyXG5cclxuICAgICAgICB0aGlzLl9zdG9tcENsaWVudC5jb25uZWN0KFxyXG4gICAgICAgICAgICB7fSxcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0Nvbm5lY3RpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldENvbm5lY3RlZCh0cnVlKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy53YXNDb25uZWN0ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlY29ubmVjdFByaW1pdGl2ZXMoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWNvbm5lY3QkLm5leHQoKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53YXNDb25uZWN0ZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3QkLm5leHQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKGVycm9yOiBGcmFtZUltcGwpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0Q29ubmVjdGVkKGZhbHNlKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9yJC5uZXh0KGVycm9yKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlY29ubmVjdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQHByaXZhdGUgKi9cclxuICAgIHByaXZhdGUgb25Gb2N1cygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSBvbkJsdXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRpc2Nvbm5lY3QoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgb2JzZXJ2ZXJzQ291bnQgPSB0aGlzLmdldE9ic2VydmVyc0NvdW50KCk7XHJcblxyXG4gICAgICAgIGlmIChvYnNlcnZlcnNDb3VudCA+IDApIHJldHVybjtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBwcmltaXRpdmVNYW5hZ2VyIG9mIHRoaXMucHJpbWl0aXZlTWFuYWdlcnMudmFsdWVzKCkpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBzdG9tcFN1YnNjcmlwdGlvbiBvZiBwcmltaXRpdmVNYW5hZ2VyLnN0b21wU3Vic2NyaXB0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgc3RvbXBTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBwcmltaXRpdmVNYW5hZ2VyIG9mIHRoaXMucHJpbWl0aXZlTWFuYWdlcnMudmFsdWVzKCkpIHtcclxuICAgICAgICAgICAgcHJpbWl0aXZlTWFuYWdlci5zdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnByaW1pdGl2ZU1hbmFnZXJzLmNsZWFyKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX3N0b21wQ2xpZW50LmRpc2Nvbm5lY3QoKTtcclxuICAgICAgICB0aGlzLl9zdG9tcENsaWVudC5kZWFjdGl2YXRlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0Q29ubmVjdGVkKGZhbHNlKTtcclxuICAgICAgICB0aGlzLmlzQ29ubmVjdGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMud2FzQ29ubmVjdGVkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuZGlzY29ubmVjdCQubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSBpc0Nvbm5lY3RlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIHNldENvbm5lY3RlZChjb25uZWN0ZWQ6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmNvbm5lY3RlZCA9IGNvbm5lY3RlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQHByaXZhdGUgKi9cclxuICAgIHByaXZhdGUgZ2V0U3Vic2NyaXB0aW9uVXJsV2l0aFRva2VuKGRvbWFpbjogc3RyaW5nLCBzZXJ2aWNlOiBzdHJpbmcsIHByaW1pdGl2ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCB0ZW5hbnQgPSBXZWJzb2NrZXRTZXJ2aWNlLlRPS0VOID8gV2Vic29ja2V0U2VydmljZS5UT0tFTi51c2VybmFtZS5zcGxpdChcIkBcIilbMV0gOiBudWxsO1xyXG4gICAgICAgIGNvbnN0IHRva2VuID0gV2Vic29ja2V0U2VydmljZS5UT0tFTiA/IFdlYnNvY2tldFNlcnZpY2UuVE9LRU4uYWNjZXNzX3Rva2VuIDogbnVsbDtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAvdG9waWMvJHt0ZW5hbnR9LyR7dG9rZW59LyR7ZG9tYWlufS8ke3NlcnZpY2V9LyR7cHJpbWl0aXZlfWA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIGdldFN1YnNjcmlwdGlvblVybFdpdGhvdXRUb2tlbihkb21haW46IHN0cmluZywgc2VydmljZTogc3RyaW5nLCBwcmltaXRpdmU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgdGVuYW50ID0gV2Vic29ja2V0U2VydmljZS5UT0tFTiA/IFdlYnNvY2tldFNlcnZpY2UuVE9LRU4udXNlcm5hbWUuc3BsaXQoXCJAXCIpWzFdIDogbnVsbDtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAvdG9waWMvJHt0ZW5hbnR9LyR7ZG9tYWlufS8ke3NlcnZpY2V9LyR7cHJpbWl0aXZlfWA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIGNyZWF0ZVN0b21wU3Vic2NyaXB0aW9uKGRlc3RpbmF0aW9uOiBzdHJpbmcsIHByaW1pdGl2ZU1hbmFnZXI6IFByaW1pdGl2ZU1hbmFnZXIpOiBTdG9tcFN1YnNjcmlwdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0b21wQ2xpZW50LnN1YnNjcmliZShkZXN0aW5hdGlvbiwgKG1lc3NhZ2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBldmVudCA9IEpTT04ucGFyc2UobWVzc2FnZS5ib2R5IHx8IFwie31cIik7XHJcblxyXG4gICAgICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLnN1YmplY3QubmV4dChldmVudCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIGNyZWF0ZVN0b21wQ2xpZW50KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHdzID0gbmV3IFNvY2tKUyhgJHtXZWJzb2NrZXRTZXJ2aWNlLldFQlNPQ0tFVF9VUkx9c3Vic2NyaXB0aW9uYCwgbnVsbCwgeyB0aW1lb3V0OiBXZWJzb2NrZXRTZXJ2aWNlLkNPTk5FQ1RJT05fVElNRU9VVCB9KTtcclxuICAgICAgICB0aGlzLl9zdG9tcENsaWVudCA9IFN0b21wLm92ZXIod3MpO1xyXG4gICAgICAgIC8vIHRoaXMuX3N0b21wQ2xpZW50LmRlYnVnID0gKHN0cikgPT4gY29uc29sZS5sb2cobmV3IERhdGUoKS50b0lTT1N0cmluZygpLCBzdHIpO1xyXG4gICAgICAgIHRoaXMuX3N0b21wQ2xpZW50LmRlYnVnID0gKCkgPT4ge307IC8vIFBhcmEgcmVtb3ZlciBvcyBsb2dzLlxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSByZWNvbm5lY3QoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29ubmVjdGVkKSB0aGlzLl9zdG9tcENsaWVudC5kaXNjb25uZWN0KCk7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5nZXRPYnNlcnZlcnNDb3VudCgpID09PSAwKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5mb2N1c2VkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3QoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVjb25uZWN0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCBXZWJzb2NrZXRTZXJ2aWNlLlJFQ09OTkVDVF9USU1FUik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIHJlY29ubmVjdFByaW1pdGl2ZXMoKTogdm9pZCB7XHJcbiAgICAgICAgZm9yIChjb25zdCBwcmltaXRpdmVNYW5hZ2VyIG9mIHRoaXMucHJpbWl0aXZlTWFuYWdlcnMudmFsdWVzKCkpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBzdG9tcFN1YnNjcmlwdGlvbiBvZiBwcmltaXRpdmVNYW5hZ2VyLnN0b21wU3Vic2NyaXB0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgc3RvbXBTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVTdG9tcFN1YnNjcmlwdGlvbnMocHJpbWl0aXZlTWFuYWdlcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSBnZXRPYnNlcnZlcnNDb3VudCgpOiBudW1iZXIge1xyXG4gICAgICAgIGxldCBvYnNlcnZlcnNDb3VudCA9IDA7XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgcHJpbWl0aXZlTWFuYWdlciBvZiB0aGlzLnByaW1pdGl2ZU1hbmFnZXJzLnZhbHVlcygpKSB7XHJcbiAgICAgICAgICAgIG9ic2VydmVyc0NvdW50ICs9IHByaW1pdGl2ZU1hbmFnZXIuc3ViamVjdC5vYnNlcnZlcnMubGVuZ3RoO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG9ic2VydmVyc0NvdW50O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSBkaXNjb25uZWN0UHJpbWl0aXZlT25GaW5hbGl6ZShwcmltaXRpdmVNYW5hZ2VyOiBQcmltaXRpdmVNYW5hZ2VyKTogdm9pZCB7XHJcbiAgICAgICAgLy8gQElNUE9SVEFOVDogUmVwbGFjZSAub2JzZXJ2ZXJzLmxlbmd0aCA9PT0gMSB3aXRoIC5vYnNlcnZlZCBpbiByeGpzIDcuMCtcclxuICAgICAgICBjb25zdCBoYXNPYnNlcnZlcnMgPSAhKHByaW1pdGl2ZU1hbmFnZXIuc3ViamVjdC5vYnNlcnZlcnMubGVuZ3RoID09PSAxKTtcclxuXHJcbiAgICAgICAgaWYgKGhhc09ic2VydmVycykgcmV0dXJuO1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IHN0b21wU3Vic2NyaXB0aW9uIG9mIHByaW1pdGl2ZU1hbmFnZXIuc3RvbXBTdWJzY3JpcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHN0b21wU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBrZXkgPSB0aGlzLmdldFByaW1pdGl2ZU1hbmFnZXJLZXkocHJpbWl0aXZlTWFuYWdlci5kb21haW4sIHByaW1pdGl2ZU1hbmFnZXIuc2VydmljZSwgcHJpbWl0aXZlTWFuYWdlci5wcmltaXRpdmUpO1xyXG5cclxuICAgICAgICB0aGlzLnByaW1pdGl2ZU1hbmFnZXJzLmRlbGV0ZShrZXkpO1xyXG5cclxuICAgICAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQHByaXZhdGUgKi9cclxuICAgIHByaXZhdGUgZ2V0UHJpbWl0aXZlTWFuYWdlcktleShkb21haW46IHN0cmluZywgc2VydmljZTogc3RyaW5nLCBwcmltaXRpdmU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGAke2RvbWFpbn0vJHtzZXJ2aWNlfS8ke3ByaW1pdGl2ZX1gO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
283
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3dlYnNvY2tldC93ZWJzb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUEyQixLQUFLLEVBQXFCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkYsT0FBTyxLQUFLLE9BQU8sTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFjLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQzs7QUFleEMsSUFBYSxnQkFBZ0Isd0JBQTdCLE1BQWEsZ0JBQWdCO0lBaUR6QjtRQTlCQSxlQUFlO1FBQ1AsWUFBTyxHQUFHLElBQUksQ0FBQztRQUt2QixlQUFlO1FBQ1AsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFN0IsZUFBZTtRQUNQLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFMUIsZUFBZTtRQUNQLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRTdCLGVBQWU7UUFDUCxzQkFBaUIsR0FBa0MsSUFBSSxHQUFHLEVBQTRCLENBQUM7UUFFL0YsZUFBZTtRQUNQLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXZDLGVBQWU7UUFDUCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFMUMsZUFBZTtRQUNQLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXpDLGVBQWU7UUFDUCxXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQWEsQ0FBQztRQUd0QyxNQUFNLENBQUMsT0FBTyxH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LENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztBQUV0RixlQUFlO0FBQ0EsOEJBQWEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFnQixDQUFDLGVBQWUsQ0FBQyxHQUFHLGFBQWEsQ0FBQzs7QUFqQnBGLGdCQUFnQjtJQUg1QixVQUFVLENBQUM7UUFDUixVQUFVLEVBQUUsTUFBTTtLQUNyQixDQUFDO0dBQ1csZ0JBQWdCLENBcVc1QjtTQXJXWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tcGF0Q2xpZW50LCBGcmFtZUltcGwsIFN0b21wLCBTdG9tcFN1YnNjcmlwdGlvbiB9IGZyb20gXCJAc3RvbXAvc3RvbXBqc1wiO1xyXG5pbXBvcnQgKiBhcyBDb29raWVzIGZyb20gXCJqcy1jb29raWVcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGZpbmFsaXplLCBmaXJzdCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgKiBhcyBTb2NrSlMgZnJvbSBcInNvY2tqcy1jbGllbnRcIjtcclxuXHJcbi8qKiBAcHJpdmF0ZSAqL1xyXG5pbnRlcmZhY2UgUHJpbWl0aXZlTWFuYWdlciB7XHJcbiAgICBkb21haW46IHN0cmluZztcclxuICAgIHNlcnZpY2U6IHN0cmluZztcclxuICAgIHByaW1pdGl2ZTogc3RyaW5nO1xyXG4gICAgc3RvbXBTdWJzY3JpcHRpb25zOiBTdG9tcFN1YnNjcmlwdGlvbltdO1xyXG4gICAgZXZlbnQkOiBTdWJqZWN0PGFueT47XHJcbiAgICBzdWJzY3JpYmUkOiBSZXBsYXlTdWJqZWN0PHZvaWQ+O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFdlYnNvY2tldFNlcnZpY2Uge1xyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyBSRUNPTk5FQ1RfVElNRVIgPSAzMDAwO1xyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgQ09OTkVDVElPTl9USU1FT1VUID0gMTUwMDA7XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyBCQVNFX1VSTF9DT09LSUUgPSBcImNvbS5zZW5pb3IuYmFzZS51cmxcIjtcclxuXHJcbiAgICAvKiogQHByaXZhdGUgKi9cclxuICAgIHByaXZhdGUgc3RhdGljIFRPS0VOX0NPT0tJRSA9IFwiY29tLnNlbmlvci50b2tlblwiO1xyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgVE9LRU4gPSBKU09OLnBhcnNlKENvb2tpZXMuZ2V0KFdlYnNvY2tldFNlcnZpY2UuVE9LRU5fQ09PS0lFKSB8fCBcInt9XCIpO1xyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgV0VCU09DS0VUX1VSTCA9IENvb2tpZXMuZ2V0KFdlYnNvY2tldFNlcnZpY2UuQkFTRV9VUkxfQ09PS0lFKSArIFwiL3dlYnNvY2tldC9cIjtcclxuXHJcbiAgICAvKiogQHByaXZhdGUgKi9cclxuICAgIHByaXZhdGUgZm9jdXNlZCA9IHRydWU7XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIF9zdG9tcENsaWVudDogQ29tcGF0Q2xpZW50O1xyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSB3YXNDb25uZWN0ZWQgPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQHByaXZhdGUgKi9cclxuICAgIHByaXZhdGUgY29ubmVjdGVkID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIGlzQ29ubmVjdGluZyA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSBwcmltaXRpdmVNYW5hZ2VyczogTWFwPHN0cmluZywgUHJpbWl0aXZlTWFuYWdlcj4gPSBuZXcgTWFwPHN0cmluZywgUHJpbWl0aXZlTWFuYWdlcj4oKTtcclxuXHJcbiAgICAvKiogQHByaXZhdGUgKi9cclxuICAgIHByaXZhdGUgY29ubmVjdCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSBkaXNjb25uZWN0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIHJlY29ubmVjdCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSBlcnJvciQgPSBuZXcgU3ViamVjdDxGcmFtZUltcGw+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgd2luZG93Lm9uZm9jdXMgPSB0aGlzLm9uRm9jdXM7XHJcbiAgICAgICAgd2luZG93Lm9uYmx1ciA9IHRoaXMub25CbHVyO1xyXG5cclxuICAgICAgICB0aGlzLmNvbm5lY3QoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9ic2VydmFibGUgcmVzcG9uc8OhdmVsIHBvciBlbWl0aXIgdW1hIG5vdGlmaWNhw6fDo28gcXVhbmRvIGEgY29uZXjDo28gd2Vic29ja2V0IMOpIGVzdGFiZWxlY2lkYS5cclxuICAgICAqIEByZXR1cm4gVW0gYE9ic2VydmFibGU8dm9pZD5gIHF1ZSBlbWl0ZSB1bWEgbm90aWZpY2HDp8OjbyBxdWFuZG8gYSBjb25leMOjbyB3ZWJzb2NrZXQgw6kgZXN0YWJlbGVjaWRhLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25Db25uZWN0KCk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc0Nvbm5lY3RlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3QkLm5leHQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIDApO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0JC5waXBlKGZpcnN0KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2JzZXJ2YWJsZSByZXNwb25zw6F2ZWwgcG9yIGVtaXRpciB1bWEgbm90aWZpY2HDp8OjbyBxdWFuZG8gYSBjb25leMOjbyDDqSBkZXNjb25lY3RhZGEuXHJcbiAgICAgKiBAcmV0dXJuIFVtIGBPYnNlcnZhYmxlPHZvaWQ+YCBxdWUgZW1pdGUgdW1hIG5vdGlmaWNhw6fDo28gcXVhbmRvIGEgY29uZXjDo28gw6kgZGVzY29uZWN0YWRhLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25EaXNjb25uZWN0KCk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRpc2Nvbm5lY3QkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2JzZXJ2YWJsZSByZXNwb25zw6F2ZWwgcG9yIGVtaXRpciB1bWEgbm90aWZpY2HDp8OjbyBxdWFuZG8gYSBjb25leMOjbyDDqSByZWNvbmVjdGFkYS5cclxuICAgICAqIEByZXR1cm4gVW0gYE9ic2VydmFibGU8dm9pZD5gIHF1ZSBlbWl0ZSB1bWEgbm90aWZpY2HDp8OjbyBxdWFuZG8gYSBjb25leMOjbyDDqSByZWNvbmVjdGFkYS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uUmVjb25uZWN0KCk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlY29ubmVjdCQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPYnNlcnZhYmxlIHJlc3BvbnPDoXZlbCBwb3IgZW1pdGlyIHVtYSBub3RpZmljYcOnw6NvIGFww7NzIG8gc3Vic2NyaWJlIGRvIGV2ZW50by5cclxuICAgICAqIEByZXR1cm4gVW0gYE9ic2VydmFibGU8dm9pZD5gIHF1ZSBlbWl0ZSB1bWEgbm90aWZpY2HDp8OjbyBhcMOzcyBvIHN1YnNjcmliZSBkbyBldmVudG8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvblN1YnNjcmliZSh7IGRvbWFpbiwgc2VydmljZSwgcHJpbWl0aXZlIH06IHsgZG9tYWluOiBzdHJpbmc7IHNlcnZpY2U6IHN0cmluZzsgcHJpbWl0aXZlOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgICAgIGNvbnN0IHByaW1pdGl2ZU1hbmFnZXIgPSB0aGlzLnByaW1pdGl2ZU1hbmFnZXJzLmdldCh0aGlzLmdldFByaW1pdGl2ZU1hbmFnZXJLZXkoZG9tYWluLCBzZXJ2aWNlLCBwcmltaXRpdmUpKTtcclxuXHJcbiAgICAgICAgaWYgKCFwcmltaXRpdmVNYW5hZ2VyKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3Vic2NyaXB0aW9uIGZvdW5kIGZvciAke3RoaXMuZ2V0UHJpbWl0aXZlTWFuYWdlcktleShkb21haW4sIHNlcnZpY2UsIHByaW1pdGl2ZSl9YCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcHJpbWl0aXZlTWFuYWdlci5zdWJzY3JpYmUkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2JzZXJ2YWJsZSByZXNwb25zw6F2ZWwgcG9yIGVtaXRpciB1bWEgbm90aWZpY2HDp8OjbyBxdWFuZG8gb2NvcnJlIGFsZ3VtIGVycm8uXHJcbiAgICAgKiBAcmV0dXJuIFVtIGBPYnNlcnZhYmxlPEZyYW1lSW1wbD5gIHF1ZSBlbWl0ZSB1bWEgbm90aWZpY2HDp8OjbyBxdWFuZG8gb2NvcnJlIGFsZ3VtIGVycm8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvbkVycm9yKCk6IE9ic2VydmFibGU8RnJhbWVJbXBsPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3IkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHR5cGVQYXJhbSBgPFQ+YCBUaXBvIGRvIG9iamV0byBxdWUgbyByZXRvcm5vIGRvIGBvYnNlcnZhYmxlYCB2YWkgZGV2b2x2ZXIuXHJcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyBPYmpldG8gZGUgY29uZmlndXJhw6fDo28gZG8gZXZlbnRvLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuZG9tYWluIERvbcOtbmlvIGRhIHByaW1pdGl2YS5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnNlcnZpY2UgU2VydmnDp28gZGEgcHJpbWl0aXZhLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucHJpbWl0aXZlICBQcmltaXRpdmEgcXVlIHNlcsOhIFwib2JzZXJ2YWRhXCIuXHJcbiAgICAgKiBAcmV0dXJuIFVtIE9ic2VydmFibGU8VD4gcXVlIGVtaXRlIG5vdGlmaWNhw6fDtWVzIHRvZGEgdmV6IHF1ZSBvIHJlc3BlY3Rpdm8gZXZlbnRvIMOpIHB1YmxpY2Fkby5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uRXZlbnQ8VD4ob3B0aW9uczogeyBkb21haW46IHN0cmluZzsgc2VydmljZTogc3RyaW5nOyBwcmltaXRpdmU6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICAgICAgY29uc3QgeyBkb21haW4sIHNlcnZpY2UsIHByaW1pdGl2ZSB9ID0gb3B0aW9ucztcclxuXHJcbiAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5nZXRQcmltaXRpdmVNYW5hZ2VyS2V5KGRvbWFpbiwgc2VydmljZSwgcHJpbWl0aXZlKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMucHJpbWl0aXZlTWFuYWdlcnMuaGFzKGtleSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJpbWl0aXZlTWFuYWdlcnMuZ2V0KGtleSkuZXZlbnQkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcHJpbWl0aXZlTWFuYWdlcjogUHJpbWl0aXZlTWFuYWdlciA9IHtcclxuICAgICAgICAgICAgZG9tYWluOiBkb21haW4sXHJcbiAgICAgICAgICAgIHNlcnZpY2U6IHNlcnZpY2UsXHJcbiAgICAgICAgICAgIHByaW1pdGl2ZTogcHJpbWl0aXZlLFxyXG4gICAgICAgICAgICBzdG9tcFN1YnNjcmlwdGlvbnM6IFtdLFxyXG4gICAgICAgICAgICBldmVudCQ6IG5ldyBTdWJqZWN0PFQ+KCksXHJcbiAgICAgICAgICAgIHN1YnNjcmliZSQ6IG5ldyBSZXBsYXlTdWJqZWN0KDEpXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5wcmltaXRpdmVNYW5hZ2Vycy5zZXQoa2V5LCBwcmltaXRpdmVNYW5hZ2VyKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQoKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVN0b21wU3Vic2NyaXB0aW9ucyhwcmltaXRpdmVNYW5hZ2VyKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBwcmltaXRpdmVNYW5hZ2VyLmV2ZW50JFxyXG4gICAgICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXHJcbiAgICAgICAgICAgICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLmRpc2Nvbm5lY3RQcmltaXRpdmVPbkZpbmFsaXplKHByaW1pdGl2ZU1hbmFnZXIpKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzQ29ubmVjdGluZykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0KCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuY29ubmVjdCQucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVTdG9tcFN1YnNjcmlwdGlvbnMocHJpbWl0aXZlTWFuYWdlcik7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZU1hbmFnZXIuZXZlbnQkXHJcbiAgICAgICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcclxuICAgICAgICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuZGlzY29ubmVjdFByaW1pdGl2ZU9uRmluYWxpemUocHJpbWl0aXZlTWFuYWdlcikpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIGNyZWF0ZVN0b21wU3Vic2NyaXB0aW9ucyhwcmltaXRpdmVNYW5hZ2VyOiBQcmltaXRpdmVNYW5hZ2VyKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgd2l0aFRva2VuVXJsID0gdGhpcy5nZXRTdWJzY3JpcHRpb25VcmxXaXRoVG9rZW4oXHJcbiAgICAgICAgICAgIHByaW1pdGl2ZU1hbmFnZXIuZG9tYWluLFxyXG4gICAgICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLnNlcnZpY2UsXHJcbiAgICAgICAgICAgIHByaW1pdGl2ZU1hbmFnZXIucHJpbWl0aXZlXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3Qgc3RvbXBTdWJzY3JpcHRpb25XaXRoVG9rZW4gPSB0aGlzLmNyZWF0ZVN0b21wU3Vic2NyaXB0aW9uKHdpdGhUb2tlblVybCwgcHJpbWl0aXZlTWFuYWdlcik7XHJcblxyXG4gICAgICAgIGNvbnN0IHdpdGhvdXRUb2tlblVybCA9IHRoaXMuZ2V0U3Vic2NyaXB0aW9uVXJsV2l0aG91dFRva2VuKFxyXG4gICAgICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLmRvbWFpbixcclxuICAgICAgICAgICAgcHJpbWl0aXZlTWFuYWdlci5zZXJ2aWNlLFxyXG4gICAgICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLnByaW1pdGl2ZVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IHN0b21wU3Vic2NyaXB0aW9uV2l0aG91dFRva2VuID0gdGhpcy5jcmVhdGVTdG9tcFN1YnNjcmlwdGlvbih3aXRob3V0VG9rZW5VcmwsIHByaW1pdGl2ZU1hbmFnZXIpO1xyXG5cclxuICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLnN0b21wU3Vic2NyaXB0aW9ucyA9IFtzdG9tcFN1YnNjcmlwdGlvbldpdGhUb2tlbiwgc3RvbXBTdWJzY3JpcHRpb25XaXRob3V0VG9rZW5dO1xyXG5cclxuICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLnN1YnNjcmliZSQubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSBjb25uZWN0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlU3RvbXBDbGllbnQoKTtcclxuXHJcbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLl9zdG9tcENsaWVudC5hY3RpdmF0ZSgpO1xyXG5cclxuICAgICAgICB0aGlzLl9zdG9tcENsaWVudC5jb25uZWN0KFxyXG4gICAgICAgICAgICB7fSxcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0Nvbm5lY3RpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldENvbm5lY3RlZCh0cnVlKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy53YXNDb25uZWN0ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlY29ubmVjdFByaW1pdGl2ZXMoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWNvbm5lY3QkLm5leHQoKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53YXNDb25uZWN0ZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3QkLm5leHQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKGVycm9yOiBGcmFtZUltcGwpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0Q29ubmVjdGVkKGZhbHNlKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9yJC5uZXh0KGVycm9yKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlY29ubmVjdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQHByaXZhdGUgKi9cclxuICAgIHByaXZhdGUgb25Gb2N1cygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSBvbkJsdXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRpc2Nvbm5lY3QoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgb2JzZXJ2ZXJzQ291bnQgPSB0aGlzLmdldE9ic2VydmVyc0NvdW50KCk7XHJcblxyXG4gICAgICAgIGlmIChvYnNlcnZlcnNDb3VudCA+IDApIHJldHVybjtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBwcmltaXRpdmVNYW5hZ2VyIG9mIHRoaXMucHJpbWl0aXZlTWFuYWdlcnMudmFsdWVzKCkpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBzdG9tcFN1YnNjcmlwdGlvbiBvZiBwcmltaXRpdmVNYW5hZ2VyLnN0b21wU3Vic2NyaXB0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgc3RvbXBTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBwcmltaXRpdmVNYW5hZ2VyIG9mIHRoaXMucHJpbWl0aXZlTWFuYWdlcnMudmFsdWVzKCkpIHtcclxuICAgICAgICAgICAgcHJpbWl0aXZlTWFuYWdlci5ldmVudCQuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgcHJpbWl0aXZlTWFuYWdlci5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnByaW1pdGl2ZU1hbmFnZXJzLmNsZWFyKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX3N0b21wQ2xpZW50LmRpc2Nvbm5lY3QoKTtcclxuICAgICAgICB0aGlzLl9zdG9tcENsaWVudC5kZWFjdGl2YXRlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0Q29ubmVjdGVkKGZhbHNlKTtcclxuICAgICAgICB0aGlzLmlzQ29ubmVjdGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMud2FzQ29ubmVjdGVkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuZGlzY29ubmVjdCQubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAcHJpdmF0ZSAqL1xyXG4gICAgcHJpdmF0ZSBpc0Nvbm5lY3RlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIHNldENvbm5lY3RlZChjb25uZWN0ZWQ6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmNvbm5lY3RlZCA9IGNvbm5lY3RlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQHByaXZhdGUgKi9cclxuICAgIHByaXZhdGUgZ2V0U3Vic2NyaXB0aW9uVXJsV2l0aFRva2VuKGRvbWFpbjogc3RyaW5nLCBzZXJ2aWNlOiBzdHJpbmcsIHByaW1pdGl2ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCB0ZW5hbnQgPSBXZWJzb2NrZXRTZXJ2aWNlLlRPS0VOID8gV2Vic29ja2V0U2VydmljZS5UT0tFTi51c2VybmFtZS5zcGxpdChcIkBcIilbMV0gOiBudWxsO1xyXG4gICAgICAgIGNvbnN0IHRva2VuID0gV2Vic29ja2V0U2VydmljZS5UT0tFTiA/IFdlYnNvY2tldFNlcnZpY2UuVE9LRU4uYWNjZXNzX3Rva2VuIDogbnVsbDtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAvdG9waWMvJHt0ZW5hbnR9LyR7dG9rZW59LyR7ZG9tYWlufS8ke3NlcnZpY2V9LyR7cHJpbWl0aXZlfWA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIGdldFN1YnNjcmlwdGlvblVybFdpdGhvdXRUb2tlbihkb21haW46IHN0cmluZywgc2VydmljZTogc3RyaW5nLCBwcmltaXRpdmU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgdGVuYW50ID0gV2Vic29ja2V0U2VydmljZS5UT0tFTiA/IFdlYnNvY2tldFNlcnZpY2UuVE9LRU4udXNlcm5hbWUuc3BsaXQoXCJAXCIpWzFdIDogbnVsbDtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAvdG9waWMvJHt0ZW5hbnR9LyR7ZG9tYWlufS8ke3NlcnZpY2V9LyR7cHJpbWl0aXZlfWA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIGNyZWF0ZVN0b21wU3Vic2NyaXB0aW9uKGRlc3RpbmF0aW9uOiBzdHJpbmcsIHByaW1pdGl2ZU1hbmFnZXI6IFByaW1pdGl2ZU1hbmFnZXIpOiBTdG9tcFN1YnNjcmlwdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0b21wQ2xpZW50LnN1YnNjcmliZShkZXN0aW5hdGlvbiwgKG1lc3NhZ2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBldmVudCA9IEpTT04ucGFyc2UobWVzc2FnZS5ib2R5IHx8IFwie31cIik7XHJcblxyXG4gICAgICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLmV2ZW50JC5uZXh0KGV2ZW50KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQHByaXZhdGUgKi9cclxuICAgIHByaXZhdGUgY3JlYXRlU3RvbXBDbGllbnQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgd3MgPSBuZXcgU29ja0pTKGAke1dlYnNvY2tldFNlcnZpY2UuV0VCU09DS0VUX1VSTH1zdWJzY3JpcHRpb25gLCBudWxsLCB7IHRpbWVvdXQ6IFdlYnNvY2tldFNlcnZpY2UuQ09OTkVDVElPTl9USU1FT1VUIH0pO1xyXG4gICAgICAgIHRoaXMuX3N0b21wQ2xpZW50ID0gU3RvbXAub3Zlcih3cyk7XHJcbiAgICAgICAgLy8gdGhpcy5fc3RvbXBDbGllbnQuZGVidWcgPSAoc3RyKSA9PiBjb25zb2xlLmxvZyhuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksIHN0cik7XHJcbiAgICAgICAgdGhpcy5fc3RvbXBDbGllbnQuZGVidWcgPSAoKSA9PiB7fTsgLy8gUGFyYSByZW1vdmVyIG9zIGxvZ3MuXHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIHJlY29ubmVjdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jb25uZWN0ZWQpIHRoaXMuX3N0b21wQ2xpZW50LmRpc2Nvbm5lY3QoKTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmdldE9ic2VydmVyc0NvdW50KCkgPT09IDApIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdCgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWNvbm5lY3QoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIFdlYnNvY2tldFNlcnZpY2UuUkVDT05ORUNUX1RJTUVSKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQHByaXZhdGUgKi9cclxuICAgIHByaXZhdGUgcmVjb25uZWN0UHJpbWl0aXZlcygpOiB2b2lkIHtcclxuICAgICAgICBmb3IgKGNvbnN0IHByaW1pdGl2ZU1hbmFnZXIgb2YgdGhpcy5wcmltaXRpdmVNYW5hZ2Vycy52YWx1ZXMoKSkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHN0b21wU3Vic2NyaXB0aW9uIG9mIHByaW1pdGl2ZU1hbmFnZXIuc3RvbXBTdWJzY3JpcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBzdG9tcFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVN0b21wU3Vic2NyaXB0aW9ucyhwcmltaXRpdmVNYW5hZ2VyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBwcml2YXRlICovXHJcbiAgICBwcml2YXRlIGdldE9ic2VydmVyc0NvdW50KCk6IG51bWJlciB7XHJcbiAgICAgICAgbGV0IG9ic2VydmVyc0NvdW50ID0gMDtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBwcmltaXRpdmVNYW5hZ2VyIG9mIHRoaXMucHJpbWl0aXZlTWFuYWdlcnMudmFsdWVzKCkpIHtcclxuICAgICAgICAgICAgb2JzZXJ2ZXJzQ291bnQgKz0gcHJpbWl0aXZlTWFuYWdlci5ldmVudCQub2JzZXJ2ZXJzLmxlbmd0aDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvYnNlcnZlcnNDb3VudDtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQHByaXZhdGUgKi9cclxuICAgIHByaXZhdGUgZGlzY29ubmVjdFByaW1pdGl2ZU9uRmluYWxpemUocHJpbWl0aXZlTWFuYWdlcjogUHJpbWl0aXZlTWFuYWdlcik6IHZvaWQge1xyXG4gICAgICAgIC8vIEBJTVBPUlRBTlQ6IFJlcGxhY2UgLm9ic2VydmVycy5sZW5ndGggPT09IDEgd2l0aCAub2JzZXJ2ZWQgaW4gcnhqcyA3LjArXHJcbiAgICAgICAgY29uc3QgaGFzT2JzZXJ2ZXJzID0gIShwcmltaXRpdmVNYW5hZ2VyLmV2ZW50JC5vYnNlcnZlcnMubGVuZ3RoID09PSAxKTtcclxuXHJcbiAgICAgICAgaWYgKGhhc09ic2VydmVycykgcmV0dXJuO1xyXG5cclxuICAgICAgICBwcmltaXRpdmVNYW5hZ2VyLmV2ZW50JC5jb21wbGV0ZSgpO1xyXG4gICAgICAgIHByaW1pdGl2ZU1hbmFnZXIuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IHN0b21wU3Vic2NyaXB0aW9uIG9mIHByaW1pdGl2ZU1hbmFnZXIuc3RvbXBTdWJzY3JpcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHN0b21wU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBrZXkgPSB0aGlzLmdldFByaW1pdGl2ZU1hbmFnZXJLZXkocHJpbWl0aXZlTWFuYWdlci5kb21haW4sIHByaW1pdGl2ZU1hbmFnZXIuc2VydmljZSwgcHJpbWl0aXZlTWFuYWdlci5wcmltaXRpdmUpO1xyXG5cclxuICAgICAgICB0aGlzLnByaW1pdGl2ZU1hbmFnZXJzLmRlbGV0ZShrZXkpO1xyXG5cclxuICAgICAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQHByaXZhdGUgKi9cclxuICAgIHByaXZhdGUgZ2V0UHJpbWl0aXZlTWFuYWdlcktleShkb21haW46IHN0cmluZywgc2VydmljZTogc3RyaW5nLCBwcmltaXRpdmU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGAke2RvbWFpbn0vJHtzZXJ2aWNlfS8ke3ByaW1pdGl2ZX1gO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { __decorate, __extends } from "tslib";
|
|
2
|
-
import { FieldType } from "@seniorsistemas/angular-components";
|
|
3
|
-
import { ErpLookupsService } from "../erp-lookups.service";
|
|
4
|
-
import { TranslateService } from "@ngx-translate/core";
|
|
5
2
|
import { Injectable } from "@angular/core";
|
|
6
|
-
import {
|
|
3
|
+
import { TranslateService } from "@ngx-translate/core";
|
|
4
|
+
import { FieldType } from "@seniorsistemas/angular-components";
|
|
7
5
|
import { EnumPerfilTributarioSegmento } from "../../../core/enums/enum-perfil-tributario-segmento";
|
|
6
|
+
import { ErpLookups } from "../erp-lookups";
|
|
7
|
+
import { ErpLookupsService } from "../erp-lookups.service";
|
|
8
8
|
var getFields = function (translateService) {
|
|
9
9
|
return [
|
|
10
10
|
{
|
|
@@ -16,39 +16,39 @@ var getFields = function (translateService) {
|
|
|
16
16
|
type: FieldType.Enum,
|
|
17
17
|
options: [
|
|
18
18
|
{
|
|
19
|
-
label: translateService.instant("erpx_cpl_imp.impostos.
|
|
19
|
+
label: translateService.instant("erpx_cpl_imp.impostos.enum_perfil_tributario_segmento_industria"),
|
|
20
20
|
value: EnumPerfilTributarioSegmento.INDUSTRIA,
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
|
-
label: translateService.instant("erpx_cpl_imp.impostos.
|
|
23
|
+
label: translateService.instant("erpx_cpl_imp.impostos.enum_perfil_tributario_segmento_comercio"),
|
|
24
24
|
value: EnumPerfilTributarioSegmento.COMERCIO,
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
|
-
label: translateService.instant("erpx_cpl_imp.impostos.
|
|
27
|
+
label: translateService.instant("erpx_cpl_imp.impostos.enum_perfil_tributario_segmento_servico"),
|
|
28
28
|
value: EnumPerfilTributarioSegmento.SERVICO,
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
|
-
label: translateService.instant("erpx_cpl_imp.impostos.
|
|
31
|
+
label: translateService.instant("erpx_cpl_imp.impostos.enum_perfil_tributario_segmento_distribuidor"),
|
|
32
32
|
value: EnumPerfilTributarioSegmento.DISTRIBUIDOR,
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
|
-
label: translateService.instant("erpx_cpl_imp.impostos.
|
|
35
|
+
label: translateService.instant("erpx_cpl_imp.impostos.enum_perfil_tributario_segmento_cooperativa"),
|
|
36
36
|
value: EnumPerfilTributarioSegmento.COOPERATIVA,
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
|
-
label: translateService.instant("erpx_cpl_imp.impostos.
|
|
39
|
+
label: translateService.instant("erpx_cpl_imp.impostos.enum_perfil_tributario_segmento_produtor_rural"),
|
|
40
40
|
value: EnumPerfilTributarioSegmento.PRODUTOR_RURAL,
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
|
-
label: translateService.instant("erpx_cpl_imp.impostos.
|
|
43
|
+
label: translateService.instant("erpx_cpl_imp.impostos.enum_perfil_tributario_segmento_financeira"),
|
|
44
44
|
value: EnumPerfilTributarioSegmento.FINANCEIRA,
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
|
-
label: translateService.instant("erpx_cpl_imp.impostos.
|
|
47
|
+
label: translateService.instant("erpx_cpl_imp.impostos.enum_perfil_tributario_segmento_imobiliaria"),
|
|
48
48
|
value: EnumPerfilTributarioSegmento.IMOBILIARIA,
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
|
-
label: translateService.instant("erpx_cpl_imp.impostos.
|
|
51
|
+
label: translateService.instant("erpx_cpl_imp.impostos.enum_perfil_tributario_segmento_construcao_civil"),
|
|
52
52
|
value: EnumPerfilTributarioSegmento.CONSTRUCAO_CIVIL,
|
|
53
53
|
},
|
|
54
54
|
],
|
|
@@ -75,4 +75,4 @@ var SegmentoLookup = /** @class */ (function (_super) {
|
|
|
75
75
|
}(ErpLookups));
|
|
76
76
|
export { SegmentoLookup };
|
|
77
77
|
export { ɵ0 };
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudG8tbG9va3VwLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tZW1wcmVzYXJpYWwvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9sb29rdXBzL2VudGl0aWVzL3NlZ21lbnRvLWxvb2t1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDL0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbkcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNELElBQU0sU0FBUyxHQUFHLFVBQUMsZ0JBQWtDO0lBQ2pELE9BQU87UUFDSDtZQUNJLElBQUksRUFBRSxXQUFXO1lBQ2pCLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTtTQUN6QjtRQUNEO1lBQ0ksSUFBSSxFQUFFLDhCQUE4QjtZQUNwQyxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7WUFDcEIsT0FBTyxFQUFFO2dCQUNMO29CQUNJLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsaUVBQWlFLENBQUM7b0JBQ2xHLEtBQUssRUFBRSw0QkFBNEIsQ0FBQyxTQUFTO2lCQUNoRDtnQkFDRDtvQkFDSSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGdFQUFnRSxDQUFDO29CQUNqRyxLQUFLLEVBQUUsNEJBQTRCLENBQUMsUUFBUTtpQkFDL0M7Z0JBQ0Q7b0JBQ0ksS0FBSyxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQywrREFBK0QsQ0FBQztvQkFDaEcsS0FBSyxFQUFFLDRCQUE0QixDQUFDLE9BQU87aUJBQzlDO2dCQUNEO29CQUNJLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsb0VBQW9FLENBQUM7b0JBQ3JHLEtBQUssRUFBRSw0QkFBNEIsQ0FBQyxZQUFZO2lCQUNuRDtnQkFDRDtvQkFDSSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLG1FQUFtRSxDQUFDO29CQUNwRyxLQUFLLEVBQUUsNEJBQTRCLENBQUMsV0FBVztpQkFDbEQ7Z0JBQ0Q7b0JBQ0ksS0FBSyxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxzRUFBc0UsQ0FBQztvQkFDdkcsS0FBSyxFQUFFLDRCQUE0QixDQUFDLGNBQWM7aUJBQ3JEO2dCQUNEO29CQUNJLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsa0VBQWtFLENBQUM7b0JBQ25HLEtBQUssRUFBRSw0QkFBNEIsQ0FBQyxVQUFVO2lCQUNqRDtnQkFDRDtvQkFDSSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLG1FQUFtRSxDQUFDO29CQUNwRyxLQUFLLEVBQUUsNEJBQTRCLENBQUMsV0FBVztpQkFDbEQ7Z0JBQ0Q7b0JBQ0ksS0FBSyxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyx3RUFBd0UsQ0FBQztvQkFDekcsS0FBSyxFQUFFLDRCQUE0QixDQUFDLGdCQUFnQjtpQkFDdkQ7YUFDSjtTQUNKO0tBQ0osQ0FBQztBQUNOLENBQUMsQ0FBQzs7QUFHRjtJQUFvQyxrQ0FBVTtJQUMxQyx3QkFBc0IsYUFBZ0MsRUFBWSxTQUEyQjtRQUE3RixZQUNJLGtCQUNJLGFBQWEsRUFDYixTQUFTLEVBQ1QsVUFBVSxFQUNWLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFDcEIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUNwQixTQUFTLENBQUMsU0FBUyxDQUFDLEVBQ3BCLGNBQWMsRUFDZCxVQUFVLENBQ2IsU0FDSjtRQVhxQixtQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFBWSxlQUFTLEdBQVQsU0FBUyxDQUFrQjs7SUFXN0YsQ0FBQzs7Z0JBWG9DLGlCQUFpQjtnQkFBdUIsZ0JBQWdCOztJQURwRixjQUFjO1FBRDFCLFVBQVUsRUFBRTtPQUNBLGNBQWMsQ0FhMUI7SUFBRCxxQkFBQztDQUFBLEFBYkQsQ0FBb0MsVUFBVSxHQWE3QztTQWJZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHNcIjtcbmltcG9ydCB7IEVudW1QZXJmaWxUcmlidXRhcmlvU2VnbWVudG8gfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9lbnVtcy9lbnVtLXBlcmZpbC10cmlidXRhcmlvLXNlZ21lbnRvXCI7XG5pbXBvcnQgeyBFcnBMb29rdXBzIH0gZnJvbSBcIi4uL2VycC1sb29rdXBzXCI7XG5pbXBvcnQgeyBFcnBMb29rdXBzU2VydmljZSB9IGZyb20gXCIuLi9lcnAtbG9va3Vwcy5zZXJ2aWNlXCI7XG5cbmNvbnN0IGdldEZpZWxkcyA9ICh0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSA9PiB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZXNjcmljYW9cIixcbiAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwidGlwb1BlcmZpbFRyaWJ1dGFyaW9TZWdtZW50b1wiLFxuICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLkVudW0sXG4gICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1fcGVyZmlsX3RyaWJ1dGFyaW9fc2VnbWVudG9faW5kdXN0cmlhXCIpLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bVBlcmZpbFRyaWJ1dGFyaW9TZWdtZW50by5JTkRVU1RSSUEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuaW1wb3N0b3MuZW51bV9wZXJmaWxfdHJpYnV0YXJpb19zZWdtZW50b19jb21lcmNpb1wiKSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1QZXJmaWxUcmlidXRhcmlvU2VnbWVudG8uQ09NRVJDSU8sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuaW1wb3N0b3MuZW51bV9wZXJmaWxfdHJpYnV0YXJpb19zZWdtZW50b19zZXJ2aWNvXCIpLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bVBlcmZpbFRyaWJ1dGFyaW9TZWdtZW50by5TRVJWSUNPLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1fcGVyZmlsX3RyaWJ1dGFyaW9fc2VnbWVudG9fZGlzdHJpYnVpZG9yXCIpLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bVBlcmZpbFRyaWJ1dGFyaW9TZWdtZW50by5ESVNUUklCVUlET1IsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuaW1wb3N0b3MuZW51bV9wZXJmaWxfdHJpYnV0YXJpb19zZWdtZW50b19jb29wZXJhdGl2YVwiKSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1QZXJmaWxUcmlidXRhcmlvU2VnbWVudG8uQ09PUEVSQVRJVkEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuaW1wb3N0b3MuZW51bV9wZXJmaWxfdHJpYnV0YXJpb19zZWdtZW50b19wcm9kdXRvcl9ydXJhbFwiKSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1QZXJmaWxUcmlidXRhcmlvU2VnbWVudG8uUFJPRFVUT1JfUlVSQUwsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuaW1wb3N0b3MuZW51bV9wZXJmaWxfdHJpYnV0YXJpb19zZWdtZW50b19maW5hbmNlaXJhXCIpLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bVBlcmZpbFRyaWJ1dGFyaW9TZWdtZW50by5GSU5BTkNFSVJBLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1fcGVyZmlsX3RyaWJ1dGFyaW9fc2VnbWVudG9faW1vYmlsaWFyaWFcIiksXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtUGVyZmlsVHJpYnV0YXJpb1NlZ21lbnRvLklNT0JJTElBUklBLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1fcGVyZmlsX3RyaWJ1dGFyaW9fc2VnbWVudG9fY29uc3RydWNhb19jaXZpbFwiKSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1QZXJmaWxUcmlidXRhcmlvU2VnbWVudG8uQ09OU1RSVUNBT19DSVZJTCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICBdO1xufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlZ21lbnRvTG9va3VwIGV4dGVuZHMgRXJwTG9va3VwcyB7XG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGxvb2t1cFNlcnZpY2U6IEVycExvb2t1cHNTZXJ2aWNlLCBwcm90ZWN0ZWQgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKFxuICAgICAgICAgICAgbG9va3VwU2VydmljZSxcbiAgICAgICAgICAgIHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIFwic2VnbWVudG9cIixcbiAgICAgICAgICAgIGdldEZpZWxkcyh0cmFuc2xhdGUpLFxuICAgICAgICAgICAgZ2V0RmllbGRzKHRyYW5zbGF0ZSksXG4gICAgICAgICAgICBnZXRGaWVsZHModHJhbnNsYXRlKSxcbiAgICAgICAgICAgIFwiZXJweF9jcGxfaW1wXCIsXG4gICAgICAgICAgICBcImltcG9zdG9zXCJcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|