@seniorsistemas/platform-components 5.3.2 → 5.3.3-develop-73308358
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/modules/advanced-filter/advanced-filter.module.mjs +75 -0
- package/esm2022/modules/advanced-filter/components/advanced-filter/advanced-filter.component.mjs +128 -0
- package/esm2022/modules/advanced-filter/components/form-filter/form-filter.component.mjs +651 -0
- package/esm2022/modules/advanced-filter/index.mjs +6 -0
- package/esm2022/modules/advanced-filter/locale/fallback.mjs +73 -0
- package/esm2022/modules/advanced-filter/models/context.mjs +2 -0
- package/esm2022/modules/advanced-filter/models/depends-on.mjs +2 -0
- package/esm2022/modules/advanced-filter/models/enum-item.mjs +2 -0
- package/esm2022/modules/advanced-filter/models/filter-type.mjs +14 -0
- package/esm2022/modules/advanced-filter/models/filter-value.mjs +2 -0
- package/esm2022/modules/advanced-filter/models/filter.mjs +41 -0
- package/esm2022/modules/advanced-filter/models/form-filter.mjs +28 -0
- package/esm2022/modules/advanced-filter/models/index.mjs +11 -0
- package/esm2022/modules/advanced-filter/models/scope.mjs +6 -0
- package/esm2022/modules/advanced-filter/models/search.mjs +2 -0
- package/esm2022/modules/advanced-filter/models/tab-view.mjs +18 -0
- package/esm2022/modules/advanced-filter/models/ticked-filter.mjs +2 -0
- package/esm2022/modules/advanced-filter/pipes/map-values.pipe.mjs +14 -0
- package/esm2022/modules/advanced-filter/pipes/translate.pipe.mjs +19 -0
- package/esm2022/modules/advanced-filter/services/advanced-filter.service.mjs +146 -0
- package/esm2022/modules/advanced-filter/services/calendar-options.service.mjs +77 -0
- package/esm2022/modules/advanced-filter/services/constants.mjs +6 -0
- package/esm2022/modules/advanced-filter/shared/constants.mjs +3 -0
- package/esm2022/modules/advanced-filter/utils/comparator.mjs +53 -0
- package/esm2022/modules/advanced-filter/utils/filter-id/index.mjs +8 -0
- package/esm2022/modules/advanced-filter/utils/filter-value/index.mjs +26 -0
- package/esm2022/modules/advanced-filter/utils/filterOperators.mjs +9 -0
- package/esm2022/modules/advanced-filter/utils/form-field/index.mjs +52 -0
- package/esm2022/modules/advanced-filter/utils/index.mjs +57 -0
- package/esm2022/modules/advanced-filter/utils/json-path.mjs +13 -0
- package/esm2022/modules/cyclic-json-interceptor/cyclic-json-interceptor.module.mjs +14 -0
- package/esm2022/modules/cyclic-json-interceptor/cyclic-json-interceptor.service.mjs +29 -0
- package/esm2022/modules/cyclic-json-interceptor/index.mjs +2 -0
- package/esm2022/modules/feature-toggle/constants/endpoint.constant.mjs +26 -0
- package/esm2022/modules/feature-toggle/feature-toggle.module.mjs +15 -0
- package/esm2022/modules/feature-toggle/feature-toggle.service.mjs +42 -0
- package/esm2022/modules/feature-toggle/index.mjs +4 -0
- package/esm2022/modules/feature-toggle/models/feature.mjs +2 -0
- package/esm2022/modules/http-interceptor/http-interceptor.module.mjs +16 -0
- package/esm2022/modules/http-interceptor/http-interceptor.service.mjs +42 -0
- package/esm2022/modules/http-interceptor/index.mjs +4 -0
- package/esm2022/modules/http-interceptor/rest-url.service.mjs +15 -0
- package/esm2022/modules/http-interceptor/x-services-url.service.mjs +18 -0
- package/esm2022/modules/permissions/permissions.config.mjs +17 -0
- package/esm2022/modules/permissions/permissions.module.mjs +43 -0
- package/esm2022/modules/permissions/permissions.service.mjs +169 -0
- package/esm2022/modules/spotlight/component/spotlight.component.mjs +274 -0
- package/esm2022/modules/spotlight/index.mjs +3 -0
- package/esm2022/modules/spotlight/locale/fallback.mjs +5 -0
- package/esm2022/modules/spotlight/models/display-type.enum.mjs +6 -0
- package/esm2022/modules/spotlight/models/index.mjs +10 -0
- package/esm2022/modules/spotlight/models/spotlight-control-list.interface.mjs +2 -0
- package/esm2022/modules/spotlight/models/spotlight-control.interface.mjs +11 -0
- package/esm2022/modules/spotlight/models/spotlight-notification.interface.mjs +2 -0
- package/esm2022/modules/spotlight/models/spotlight-screen-list.interface.mjs +2 -0
- package/esm2022/modules/spotlight/models/spotlight-screen.interface.mjs +2 -0
- package/esm2022/modules/spotlight/models/spotlight-status.enum.mjs +8 -0
- package/esm2022/modules/spotlight/models/spotlight-user.interface.mjs +2 -0
- package/esm2022/modules/spotlight/models/spotlight-users-list.interface.mjs +2 -0
- package/esm2022/modules/spotlight/models/spotlight.interface.mjs +2 -0
- package/esm2022/modules/spotlight/models/user-action.enum.mjs +7 -0
- package/esm2022/modules/spotlight/pipes/translate.pipe.mjs +19 -0
- package/esm2022/modules/spotlight/service/spotlight.service.mjs +34 -0
- package/esm2022/modules/spotlight/spotlight.module.mjs +53 -0
- package/esm2022/modules/translations/translations.module.mjs +192 -0
- package/esm2022/public-api.mjs +10 -0
- package/esm2022/seniorsistemas-platform-components.mjs +5 -0
- package/fesm2022/seniorsistemas-platform-components.mjs +2432 -0
- package/fesm2022/seniorsistemas-platform-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/modules/advanced-filter/advanced-filter.module.d.ts +19 -0
- package/modules/advanced-filter/components/advanced-filter/advanced-filter.component.d.ts +4 -3
- package/modules/advanced-filter/components/form-filter/form-filter.component.d.ts +15 -12
- package/modules/advanced-filter/index.d.ts +1 -0
- package/modules/advanced-filter/models/tab-view.d.ts +1 -1
- package/modules/advanced-filter/pipes/map-values.pipe.d.ts +3 -0
- package/modules/advanced-filter/pipes/translate.pipe.d.ts +4 -3
- package/modules/advanced-filter/services/advanced-filter.service.d.ts +7 -3
- package/modules/advanced-filter/services/calendar-options.service.d.ts +4 -3
- package/modules/advanced-filter/services/constants.d.ts +4 -4
- package/modules/advanced-filter/utils/comparator.d.ts +1 -1
- package/modules/advanced-filter/utils/form-field/index.d.ts +1 -1
- package/modules/advanced-filter/utils/json-path.d.ts +1 -1
- package/modules/cyclic-json-interceptor/cyclic-json-interceptor.module.d.ts +4 -0
- package/modules/cyclic-json-interceptor/cyclic-json-interceptor.service.d.ts +3 -0
- package/modules/feature-toggle/feature-toggle.module.d.ts +5 -0
- package/modules/feature-toggle/feature-toggle.service.d.ts +4 -3
- package/modules/http-interceptor/http-interceptor.module.d.ts +4 -0
- package/modules/http-interceptor/http-interceptor.service.d.ts +3 -3
- package/modules/http-interceptor/rest-url.service.d.ts +3 -0
- package/modules/http-interceptor/x-services-url.service.d.ts +3 -0
- package/modules/permissions/permissions.config.d.ts +7 -1
- package/modules/permissions/permissions.module.d.ts +4 -0
- package/modules/permissions/permissions.service.d.ts +6 -12
- package/modules/spotlight/component/spotlight.component.d.ts +6 -7
- package/modules/spotlight/pipes/translate.pipe.d.ts +4 -3
- package/modules/spotlight/service/spotlight.service.d.ts +4 -3
- package/modules/spotlight/spotlight.module.d.ts +11 -0
- package/modules/translations/translations.module.d.ts +9 -5
- package/package.json +20 -54
- package/public-api.d.ts +1 -0
- package/bundles/seniorsistemas-platform-components.umd.js +0 -2745
- package/bundles/seniorsistemas-platform-components.umd.js.map +0 -1
- package/bundles/seniorsistemas-platform-components.umd.min.js +0 -17
- package/bundles/seniorsistemas-platform-components.umd.min.js.map +0 -1
- package/esm2015/modules/advanced-filter/advanced-filter.module.js +0 -47
- package/esm2015/modules/advanced-filter/components/advanced-filter/advanced-filter.component.js +0 -136
- package/esm2015/modules/advanced-filter/components/form-filter/form-filter.component.js +0 -578
- package/esm2015/modules/advanced-filter/index.js +0 -5
- package/esm2015/modules/advanced-filter/locale/fallback.js +0 -73
- package/esm2015/modules/advanced-filter/models/context.js +0 -1
- package/esm2015/modules/advanced-filter/models/depends-on.js +0 -1
- package/esm2015/modules/advanced-filter/models/enum-item.js +0 -1
- package/esm2015/modules/advanced-filter/models/filter-type.js +0 -14
- package/esm2015/modules/advanced-filter/models/filter-value.js +0 -1
- package/esm2015/modules/advanced-filter/models/filter.js +0 -23
- package/esm2015/modules/advanced-filter/models/form-filter.js +0 -19
- package/esm2015/modules/advanced-filter/models/index.js +0 -5
- package/esm2015/modules/advanced-filter/models/scope.js +0 -6
- package/esm2015/modules/advanced-filter/models/search.js +0 -1
- package/esm2015/modules/advanced-filter/models/tab-view.js +0 -18
- package/esm2015/modules/advanced-filter/models/ticked-filter.js +0 -1
- package/esm2015/modules/advanced-filter/pipes/map-values.pipe.js +0 -12
- package/esm2015/modules/advanced-filter/pipes/translate.pipe.js +0 -22
- package/esm2015/modules/advanced-filter/services/advanced-filter.service.js +0 -141
- package/esm2015/modules/advanced-filter/services/calendar-options.service.js +0 -81
- package/esm2015/modules/advanced-filter/services/constants.js +0 -6
- package/esm2015/modules/advanced-filter/shared/constants.js +0 -3
- package/esm2015/modules/advanced-filter/utils/comparator.js +0 -55
- package/esm2015/modules/advanced-filter/utils/filter-id/index.js +0 -8
- package/esm2015/modules/advanced-filter/utils/filter-value/index.js +0 -24
- package/esm2015/modules/advanced-filter/utils/filterOperators.js +0 -11
- package/esm2015/modules/advanced-filter/utils/form-field/index.js +0 -50
- package/esm2015/modules/advanced-filter/utils/index.js +0 -57
- package/esm2015/modules/advanced-filter/utils/json-path.js +0 -12
- package/esm2015/modules/cyclic-json-interceptor/cyclic-json-interceptor.module.js +0 -14
- package/esm2015/modules/cyclic-json-interceptor/cyclic-json-interceptor.service.js +0 -27
- package/esm2015/modules/cyclic-json-interceptor/index.js +0 -2
- package/esm2015/modules/feature-toggle/constants/endpoint.constant.js +0 -26
- package/esm2015/modules/feature-toggle/feature-toggle.module.js +0 -15
- package/esm2015/modules/feature-toggle/feature-toggle.service.js +0 -48
- package/esm2015/modules/feature-toggle/index.js +0 -3
- package/esm2015/modules/feature-toggle/models/feature.js +0 -1
- package/esm2015/modules/http-interceptor/http-interceptor.module.js +0 -16
- package/esm2015/modules/http-interceptor/http-interceptor.service.js +0 -47
- package/esm2015/modules/http-interceptor/index.js +0 -4
- package/esm2015/modules/http-interceptor/rest-url.service.js +0 -14
- package/esm2015/modules/http-interceptor/x-services-url.service.js +0 -17
- package/esm2015/modules/permissions/permissions.config.js +0 -11
- package/esm2015/modules/permissions/permissions.module.js +0 -42
- package/esm2015/modules/permissions/permissions.service.js +0 -196
- package/esm2015/modules/spotlight/component/spotlight.component.js +0 -274
- package/esm2015/modules/spotlight/index.js +0 -3
- package/esm2015/modules/spotlight/locale/fallback.js +0 -5
- package/esm2015/modules/spotlight/models/display-type.enum.js +0 -6
- package/esm2015/modules/spotlight/models/index.js +0 -4
- package/esm2015/modules/spotlight/models/spotlight-control-list.interface.js +0 -1
- package/esm2015/modules/spotlight/models/spotlight-control.interface.js +0 -3
- package/esm2015/modules/spotlight/models/spotlight-notification.interface.js +0 -1
- package/esm2015/modules/spotlight/models/spotlight-screen-list.interface.js +0 -1
- package/esm2015/modules/spotlight/models/spotlight-screen.interface.js +0 -1
- package/esm2015/modules/spotlight/models/spotlight-status.enum.js +0 -8
- package/esm2015/modules/spotlight/models/spotlight-user.interface.js +0 -1
- package/esm2015/modules/spotlight/models/spotlight-users-list.interface.js +0 -1
- package/esm2015/modules/spotlight/models/spotlight.interface.js +0 -1
- package/esm2015/modules/spotlight/models/user-action.enum.js +0 -7
- package/esm2015/modules/spotlight/pipes/translate.pipe.js +0 -22
- package/esm2015/modules/spotlight/service/spotlight.service.js +0 -38
- package/esm2015/modules/spotlight/spotlight.module.js +0 -37
- package/esm2015/modules/translations/translations.module.js +0 -182
- package/esm2015/public-api.js +0 -9
- package/esm2015/seniorsistemas-platform-components.js +0 -16
- package/esm5/modules/advanced-filter/advanced-filter.module.js +0 -54
- package/esm5/modules/advanced-filter/components/advanced-filter/advanced-filter.component.js +0 -144
- package/esm5/modules/advanced-filter/components/form-filter/form-filter.component.js +0 -626
- package/esm5/modules/advanced-filter/index.js +0 -5
- package/esm5/modules/advanced-filter/locale/fallback.js +0 -73
- package/esm5/modules/advanced-filter/models/context.js +0 -1
- package/esm5/modules/advanced-filter/models/depends-on.js +0 -1
- package/esm5/modules/advanced-filter/models/enum-item.js +0 -1
- package/esm5/modules/advanced-filter/models/filter-type.js +0 -14
- package/esm5/modules/advanced-filter/models/filter-value.js +0 -1
- package/esm5/modules/advanced-filter/models/filter.js +0 -25
- package/esm5/modules/advanced-filter/models/form-filter.js +0 -25
- package/esm5/modules/advanced-filter/models/index.js +0 -5
- package/esm5/modules/advanced-filter/models/scope.js +0 -6
- package/esm5/modules/advanced-filter/models/search.js +0 -1
- package/esm5/modules/advanced-filter/models/tab-view.js +0 -29
- package/esm5/modules/advanced-filter/models/ticked-filter.js +0 -1
- package/esm5/modules/advanced-filter/pipes/map-values.pipe.js +0 -16
- package/esm5/modules/advanced-filter/pipes/translate.pipe.js +0 -23
- package/esm5/modules/advanced-filter/services/advanced-filter.service.js +0 -152
- package/esm5/modules/advanced-filter/services/calendar-options.service.js +0 -82
- package/esm5/modules/advanced-filter/services/constants.js +0 -6
- package/esm5/modules/advanced-filter/shared/constants.js +0 -3
- package/esm5/modules/advanced-filter/utils/comparator.js +0 -55
- package/esm5/modules/advanced-filter/utils/filter-id/index.js +0 -8
- package/esm5/modules/advanced-filter/utils/filter-value/index.js +0 -25
- package/esm5/modules/advanced-filter/utils/filterOperators.js +0 -11
- package/esm5/modules/advanced-filter/utils/form-field/index.js +0 -52
- package/esm5/modules/advanced-filter/utils/index.js +0 -57
- package/esm5/modules/advanced-filter/utils/json-path.js +0 -12
- package/esm5/modules/cyclic-json-interceptor/cyclic-json-interceptor.module.js +0 -17
- package/esm5/modules/cyclic-json-interceptor/cyclic-json-interceptor.service.js +0 -30
- package/esm5/modules/cyclic-json-interceptor/index.js +0 -2
- package/esm5/modules/feature-toggle/constants/endpoint.constant.js +0 -27
- package/esm5/modules/feature-toggle/feature-toggle.module.js +0 -18
- package/esm5/modules/feature-toggle/feature-toggle.service.js +0 -51
- package/esm5/modules/feature-toggle/index.js +0 -3
- package/esm5/modules/feature-toggle/models/feature.js +0 -1
- package/esm5/modules/http-interceptor/http-interceptor.module.js +0 -19
- package/esm5/modules/http-interceptor/http-interceptor.service.js +0 -49
- package/esm5/modules/http-interceptor/index.js +0 -4
- package/esm5/modules/http-interceptor/rest-url.service.js +0 -17
- package/esm5/modules/http-interceptor/x-services-url.service.js +0 -20
- package/esm5/modules/permissions/permissions.config.js +0 -17
- package/esm5/modules/permissions/permissions.module.js +0 -46
- package/esm5/modules/permissions/permissions.service.js +0 -212
- package/esm5/modules/spotlight/component/spotlight.component.js +0 -300
- package/esm5/modules/spotlight/index.js +0 -3
- package/esm5/modules/spotlight/locale/fallback.js +0 -5
- package/esm5/modules/spotlight/models/display-type.enum.js +0 -6
- package/esm5/modules/spotlight/models/index.js +0 -4
- package/esm5/modules/spotlight/models/spotlight-control-list.interface.js +0 -1
- package/esm5/modules/spotlight/models/spotlight-control.interface.js +0 -7
- package/esm5/modules/spotlight/models/spotlight-notification.interface.js +0 -1
- package/esm5/modules/spotlight/models/spotlight-screen-list.interface.js +0 -1
- package/esm5/modules/spotlight/models/spotlight-screen.interface.js +0 -1
- package/esm5/modules/spotlight/models/spotlight-status.enum.js +0 -8
- package/esm5/modules/spotlight/models/spotlight-user.interface.js +0 -1
- package/esm5/modules/spotlight/models/spotlight-users-list.interface.js +0 -1
- package/esm5/modules/spotlight/models/spotlight.interface.js +0 -1
- package/esm5/modules/spotlight/models/user-action.enum.js +0 -7
- package/esm5/modules/spotlight/pipes/translate.pipe.js +0 -23
- package/esm5/modules/spotlight/service/spotlight.service.js +0 -39
- package/esm5/modules/spotlight/spotlight.module.js +0 -40
- package/esm5/modules/translations/translations.module.js +0 -226
- package/esm5/public-api.js +0 -9
- package/esm5/seniorsistemas-platform-components.js +0 -16
- package/fesm2015/seniorsistemas-platform-components.js +0 -2284
- package/fesm2015/seniorsistemas-platform-components.js.map +0 -1
- package/fesm5/seniorsistemas-platform-components.js +0 -2507
- package/fesm5/seniorsistemas-platform-components.js.map +0 -1
- package/seniorsistemas-platform-components.d.ts +0 -15
- package/seniorsistemas-platform-components.metadata.json +0 -1
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
import { __awaiter, __decorate, __param } from "tslib";
|
|
2
|
-
import { HttpClient } from '@angular/common/http';
|
|
3
|
-
import { Inject, Injectable } from '@angular/core';
|
|
4
|
-
import { Router } from '@angular/router';
|
|
5
|
-
import { TranslateService } from '@ngx-translate/core';
|
|
6
|
-
import { MessageService } from "primeng/api";
|
|
7
|
-
import { from, of, throwError } from 'rxjs';
|
|
8
|
-
import { catchError, map } from 'rxjs/operators';
|
|
9
|
-
import { Environment, ENVIRONMENT, Permission, Resource, Resources, RESOURCES, Result } from './permissions.config';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "./permissions.config";
|
|
12
|
-
import * as i2 from "@angular/common/http";
|
|
13
|
-
import * as i3 from "@angular/router";
|
|
14
|
-
import * as i4 from "primeng/api";
|
|
15
|
-
import * as i5 from "@ngx-translate/core";
|
|
16
|
-
export let promise;
|
|
17
|
-
let PermissionsService = class PermissionsService {
|
|
18
|
-
constructor(resources, environment, http, router, messageService, translate) {
|
|
19
|
-
this.resources = resources;
|
|
20
|
-
this.environment = environment;
|
|
21
|
-
this.http = http;
|
|
22
|
-
this.router = router;
|
|
23
|
-
this.messageService = messageService;
|
|
24
|
-
this.translate = translate;
|
|
25
|
-
this.checkedPermissions = [];
|
|
26
|
-
this.actionUrl = 'platform/authorization/queries';
|
|
27
|
-
}
|
|
28
|
-
// v2
|
|
29
|
-
checkAccess(resources) {
|
|
30
|
-
const permissions = [];
|
|
31
|
-
resources.forEach(rec => {
|
|
32
|
-
rec.actions.forEach(action => {
|
|
33
|
-
if (!rec.uri) {
|
|
34
|
-
const resource = this.getUriByResourceName(rec.name, rec.entity);
|
|
35
|
-
rec.uri = resource;
|
|
36
|
-
}
|
|
37
|
-
permissions.push({ action, resource: rec.uri });
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
return this.http.post(`${this.actionUrl}/checkAccess`, { includeFilters: true, permissions }).pipe(map(({ permissions: checkedPermissions }) => {
|
|
41
|
-
this.checkedPermissions = [...this.checkedPermissions, ...checkedPermissions];
|
|
42
|
-
const values = {};
|
|
43
|
-
if (this.shouldRedirectToForbiddenPage(resources, checkedPermissions)) {
|
|
44
|
-
this.router.navigate(['error', 403]);
|
|
45
|
-
return throwError('forbidden');
|
|
46
|
-
}
|
|
47
|
-
checkedPermissions.forEach(permission => {
|
|
48
|
-
const resource = resources.find(res => res.uri === permission.resource);
|
|
49
|
-
const { name } = resource;
|
|
50
|
-
values[name] = values[name] || {};
|
|
51
|
-
values[name][permission.action] = permission.authorized;
|
|
52
|
-
values[name][permission.action.toLowerCase()] = permission.authorized;
|
|
53
|
-
if (permission.resourceFilters && permission.resourceFilters.length) {
|
|
54
|
-
if (!values[name]['resourceFilters']) {
|
|
55
|
-
values[name]['resourceFilters'] = [];
|
|
56
|
-
}
|
|
57
|
-
permission.resourceFilters.forEach((resourceFilter) => {
|
|
58
|
-
values[name]['resourceFilters'].push(resourceFilter);
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
return values;
|
|
63
|
-
}));
|
|
64
|
-
}
|
|
65
|
-
// v1
|
|
66
|
-
get(resource = '') {
|
|
67
|
-
if (!promise) {
|
|
68
|
-
promise = this.getPermissions();
|
|
69
|
-
}
|
|
70
|
-
return from(promise).pipe(map((permissions) => {
|
|
71
|
-
this.checkedPermissions = permissions;
|
|
72
|
-
if (resource) {
|
|
73
|
-
const resourceKey = Object.keys(permissions).find(key => key.toLowerCase() === resource.toLowerCase());
|
|
74
|
-
return permissions[resourceKey];
|
|
75
|
-
}
|
|
76
|
-
return permissions;
|
|
77
|
-
}), catchError((err) => {
|
|
78
|
-
promise = undefined;
|
|
79
|
-
this.messageService.add({
|
|
80
|
-
severity: 'error',
|
|
81
|
-
summary: this.translate.instant('permission_error_summary'),
|
|
82
|
-
detail: this.translate.instant('permission_error_detail')
|
|
83
|
-
});
|
|
84
|
-
return of(this.getPermissionObject(false));
|
|
85
|
-
}));
|
|
86
|
-
}
|
|
87
|
-
isAuthorized(resourceName, action, isEntity) {
|
|
88
|
-
if (!this.checkedPermissions.length) {
|
|
89
|
-
throwError('\'Permissions\' are not defined. You should call \'get\' or \'checkAccess\' method first.');
|
|
90
|
-
}
|
|
91
|
-
const resourceUri = this.getUriByResourceName(resourceName, isEntity);
|
|
92
|
-
const permissionsOfResource = this.checkedPermissions.filter(perm => perm.resource === resourceUri);
|
|
93
|
-
const permissionOfAction = permissionsOfResource.find(permRec => permRec.action.toLowerCase() === action.toLowerCase());
|
|
94
|
-
return permissionOfAction && permissionOfAction.authorized;
|
|
95
|
-
}
|
|
96
|
-
getUriByResourceName(resourceName, isEntity) {
|
|
97
|
-
const { domain, service } = this.environment;
|
|
98
|
-
if (!domain || !service) {
|
|
99
|
-
throwError('You must inform domain and service name');
|
|
100
|
-
}
|
|
101
|
-
const uriBase = `res://senior.com.br/${domain}/${service}`;
|
|
102
|
-
if (isEntity) {
|
|
103
|
-
return `${uriBase}/entities/${resourceName}`;
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
return `${uriBase}/${resourceName}`;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Valida com base nas propriedade redirectToError e actionsToCheck
|
|
111
|
-
* se a ação de um recurso deve enviar para a página de erro caso não tenha autorização
|
|
112
|
-
*/
|
|
113
|
-
shouldRedirectToForbiddenPage(resources = [], permissions) {
|
|
114
|
-
const permissionsDenied = permissions.filter(perm => !perm.authorized);
|
|
115
|
-
if (permissionsDenied && permissionsDenied.length) {
|
|
116
|
-
const resourcesToCheck = resources.filter(resource => resource.redirectToError);
|
|
117
|
-
if (resourcesToCheck && resourcesToCheck.length) {
|
|
118
|
-
return resourcesToCheck.every(resource => {
|
|
119
|
-
const actionsToCheck = resource.actionsToCheck && resource.actionsToCheck.length ? resource.actionsToCheck : resource.actions;
|
|
120
|
-
return actionsToCheck.every(action => permissionsDenied.some(permissionDenied => permissionDenied.resource === resource.uri && permissionDenied.action === action));
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
return false;
|
|
124
|
-
}
|
|
125
|
-
return false;
|
|
126
|
-
}
|
|
127
|
-
getFlatEnvironment() {
|
|
128
|
-
return this.environment.ignorePermissions;
|
|
129
|
-
}
|
|
130
|
-
getFlatResources() {
|
|
131
|
-
return this.resources.reduce((result, item) => {
|
|
132
|
-
if (!item) {
|
|
133
|
-
return result;
|
|
134
|
-
}
|
|
135
|
-
if (Array.isArray(item)) {
|
|
136
|
-
return [...result, ...item];
|
|
137
|
-
}
|
|
138
|
-
return [...result, item];
|
|
139
|
-
}, []);
|
|
140
|
-
}
|
|
141
|
-
getPermissionObject(defaultValue) {
|
|
142
|
-
return this.getFlatResources().reduce((resources, resource) => {
|
|
143
|
-
resources[resource.name] = resource.actions.reduce((actions, action) => {
|
|
144
|
-
actions[action] = defaultValue;
|
|
145
|
-
actions[action.toLowerCase()] = defaultValue;
|
|
146
|
-
return actions;
|
|
147
|
-
}, {});
|
|
148
|
-
return resources;
|
|
149
|
-
}, {});
|
|
150
|
-
}
|
|
151
|
-
getPermissions() {
|
|
152
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
153
|
-
if (this.getFlatEnvironment()) {
|
|
154
|
-
return this.getPermissionObject(true);
|
|
155
|
-
}
|
|
156
|
-
const resources = this.getFlatResources();
|
|
157
|
-
const perm = resources
|
|
158
|
-
.map(resource => resource.actions.map((action) => ({ action: action, resource: resource.uri })))
|
|
159
|
-
.reduce((acc, val) => [...acc, ...val]);
|
|
160
|
-
const permissions = yield this.http
|
|
161
|
-
.post(`${this.actionUrl}/checkAccess`, {
|
|
162
|
-
includeFilters: false,
|
|
163
|
-
permissions: perm
|
|
164
|
-
})
|
|
165
|
-
.toPromise()
|
|
166
|
-
.then(response => response.permissions);
|
|
167
|
-
const values = {};
|
|
168
|
-
permissions.forEach((permission) => {
|
|
169
|
-
const resource = resources.find((res) => res.uri === permission.resource);
|
|
170
|
-
const { name } = resource;
|
|
171
|
-
values[name] = values[name] ? values[name] : {};
|
|
172
|
-
values[name][permission.action] = permission.authorized;
|
|
173
|
-
values[name][permission.action.toLowerCase()] = permission.authorized;
|
|
174
|
-
});
|
|
175
|
-
return values;
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
};
|
|
179
|
-
PermissionsService.ctorParameters = () => [
|
|
180
|
-
{ type: undefined, decorators: [{ type: Inject, args: [RESOURCES,] }] },
|
|
181
|
-
{ type: Environment, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
|
|
182
|
-
{ type: HttpClient },
|
|
183
|
-
{ type: Router },
|
|
184
|
-
{ type: MessageService },
|
|
185
|
-
{ type: TranslateService }
|
|
186
|
-
];
|
|
187
|
-
PermissionsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PermissionsService_Factory() { return new PermissionsService(i0.ɵɵinject(i1.RESOURCES), i0.ɵɵinject(i1.ENVIRONMENT), i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i3.Router), i0.ɵɵinject(i4.MessageService), i0.ɵɵinject(i5.TranslateService)); }, token: PermissionsService, providedIn: "root" });
|
|
188
|
-
PermissionsService = __decorate([
|
|
189
|
-
Injectable({
|
|
190
|
-
providedIn: 'root'
|
|
191
|
-
}),
|
|
192
|
-
__param(0, Inject(RESOURCES)),
|
|
193
|
-
__param(1, Inject(ENVIRONMENT))
|
|
194
|
-
], PermissionsService);
|
|
195
|
-
export { PermissionsService };
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9wbGF0Zm9ybS1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibW9kdWxlcy9wZXJtaXNzaW9ucy9wZXJtaXNzaW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0FBRXBILE1BQU0sQ0FBQyxJQUFJLE9BQXFCLENBQUM7QUFLakMsSUFBYSxrQkFBa0IsR0FBL0IsTUFBYSxrQkFBa0I7SUFJN0IsWUFDc0MsU0FBb0IsRUFDbEIsV0FBd0IsRUFDN0MsSUFBZ0IsRUFDaEIsTUFBYyxFQUNkLGNBQThCLEVBQzlCLFNBQTJCO1FBTFIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNsQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUM3QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFUdEMsdUJBQWtCLEdBQWlCLEVBQUUsQ0FBQztRQUN0QyxjQUFTLEdBQUcsZ0NBQWdDLENBQUM7SUFTbEQsQ0FBQztJQUVKLEtBQUs7SUFDTCxXQUFXLENBQUMsU0FBcUI7UUFDL0IsTUFBTSxXQUFXLEdBQVUsRUFBRSxDQUFDO1FBRTlCLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO29CQUNaLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDakUsR0FBRyxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUM7aUJBQ3BCO2dCQUNELFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsY0FBYyxFQUFFLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDaEcsR0FBRyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQVUsRUFBRSxFQUFFO1lBQ2xELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsa0JBQWtCLENBQUMsQ0FBQztZQUU5RSxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFFbEIsSUFBSSxJQUFJLENBQUMsNkJBQTZCLENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLEVBQUU7Z0JBQ3JFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JDLE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ2hDO1lBRUQsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUN0QyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3hFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUM7Z0JBRTFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNsQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUM7Z0JBQ3hELE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQztnQkFFdEUsSUFBSSxVQUFVLENBQUMsZUFBZSxJQUFJLFVBQVUsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFO29CQUNuRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUU7d0JBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQztxQkFDdEM7b0JBRUQsVUFBVSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTt3QkFDcEQsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUN2RCxDQUFDLENBQUMsQ0FBQztpQkFDSjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLO0lBQ0wsR0FBRyxDQUFDLFdBQW1CLEVBQUU7UUFDdkIsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDakM7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3ZCLEdBQUcsQ0FBQyxDQUFDLFdBQXlCLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDO1lBRXRDLElBQUksUUFBUSxFQUFFO2dCQUNaLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RyxPQUFPLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNqQztZQUNELE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3RCLE9BQU8sR0FBRyxTQUFTLENBQUM7WUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7Z0JBQ3RCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUM7Z0JBQzNELE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQzthQUMxRCxDQUFDLENBQUM7WUFFSCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksQ0FBQyxZQUFvQixFQUFFLE1BQWMsRUFBRSxRQUFrQjtRQUNuRSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRTtZQUNuQyxVQUFVLENBQUMsMkZBQTJGLENBQUMsQ0FBQztTQUN6RztRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFdEUsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxXQUFXLENBQUMsQ0FBQztRQUNwRyxNQUFNLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFeEgsT0FBTyxrQkFBa0IsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUM7SUFDN0QsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFlBQW9CLEVBQUUsUUFBa0I7UUFDbkUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRTdDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDdkIsVUFBVSxDQUFDLHlDQUF5QyxDQUFDLENBQUM7U0FDdkQ7UUFFRCxNQUFNLE9BQU8sR0FBRyx1QkFBdUIsTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTNELElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTyxHQUFHLE9BQU8sYUFBYSxZQUFZLEVBQUUsQ0FBQztTQUM5QzthQUFNO1lBQ0wsT0FBTyxHQUFHLE9BQU8sSUFBSSxZQUFZLEVBQUUsQ0FBQztTQUNyQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyw2QkFBNkIsQ0FBQyxZQUF3QixFQUFFLEVBQUUsV0FBeUI7UUFDekYsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdkUsSUFBSSxpQkFBaUIsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7WUFDakQsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBRWhGLElBQUksZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFO2dCQUMvQyxPQUFPLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDdkMsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsSUFBSSxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztvQkFFOUgsT0FBTyxjQUFjLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ25DLGlCQUFpQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxHQUFHLElBQUksZ0JBQWdCLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUM3SCxDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDO2FBQ0o7WUFFRCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztJQUM1QyxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFrQixFQUFFLElBQVMsRUFBRSxFQUFFO1lBQzdELElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1QsT0FBTyxNQUFNLENBQUM7YUFDZjtZQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdkIsT0FBTyxDQUFDLEdBQUcsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7YUFDN0I7WUFFRCxPQUFPLENBQUMsR0FBRyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFlBQXFCO1FBQy9DLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBaUIsRUFBRSxRQUFrQixFQUFFLEVBQUU7WUFDOUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQVksRUFBRSxNQUFXLEVBQUUsRUFBRTtnQkFDL0UsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFlBQVksQ0FBQztnQkFDL0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQztnQkFDN0MsT0FBTyxPQUFPLENBQUM7WUFDakIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ1AsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVhLGNBQWM7O1lBQzFCLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUU7Z0JBQzdCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3ZDO1lBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUMsTUFBTSxJQUFJLEdBQUcsU0FBUztpQkFDbkIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUNwRyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsR0FBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUVwRCxNQUFNLFdBQVcsR0FBVSxNQUFNLElBQUksQ0FBQyxJQUFJO2lCQUN2QyxJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxjQUFjLEVBQUU7Z0JBQzFDLGNBQWMsRUFBRSxLQUFLO2dCQUNyQixXQUFXLEVBQUUsSUFBSTthQUNsQixDQUFDO2lCQUNELFNBQVMsRUFBRTtpQkFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFMUMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBRWxCLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRTtnQkFDdEMsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQy9FLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUM7Z0JBQzFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNoRCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUM7Z0JBQ3hELE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQztZQUN4RSxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7S0FBQTtDQUNGLENBQUE7OzRDQXJNSSxNQUFNLFNBQUMsU0FBUztZQUNrQyxXQUFXLHVCQUE3RCxNQUFNLFNBQUMsV0FBVztZQUNJLFVBQVU7WUFDUixNQUFNO1lBQ0UsY0FBYztZQUNuQixnQkFBZ0I7OztBQVZuQyxrQkFBa0I7SUFIOUIsVUFBVSxDQUFDO1FBQ1YsVUFBVSxFQUFFLE1BQU07S0FDbkIsQ0FBQztJQU1HLFdBQUEsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ2pCLFdBQUEsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0dBTlgsa0JBQWtCLENBME05QjtTQTFNWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudCwgRU5WSVJPTk1FTlQsIFBlcm1pc3Npb24sIFJlc291cmNlLCBSZXNvdXJjZXMsIFJFU09VUkNFUywgUmVzdWx0IH0gZnJvbSAnLi9wZXJtaXNzaW9ucy5jb25maWcnO1xuXG5leHBvcnQgbGV0IHByb21pc2U6IFByb21pc2U8YW55PjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbnNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjaGVja2VkUGVybWlzc2lvbnM6IFBlcm1pc3Npb25bXSA9IFtdO1xuICBwcml2YXRlIGFjdGlvblVybCA9ICdwbGF0Zm9ybS9hdXRob3JpemF0aW9uL3F1ZXJpZXMnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoUkVTT1VSQ0VTKSBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlczogUmVzb3VyY2VzLFxuICAgIEBJbmplY3QoRU5WSVJPTk1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICAvLyB2MlxuICBjaGVja0FjY2VzcyhyZXNvdXJjZXM6IFJlc291cmNlW10pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHBlcm1pc3Npb25zOiBhbnlbXSA9IFtdO1xuXG4gICAgcmVzb3VyY2VzLmZvckVhY2gocmVjID0+IHtcbiAgICAgIHJlYy5hY3Rpb25zLmZvckVhY2goYWN0aW9uID0+IHtcbiAgICAgICAgaWYgKCFyZWMudXJpKSB7XG4gICAgICAgICAgY29uc3QgcmVzb3VyY2UgPSB0aGlzLmdldFVyaUJ5UmVzb3VyY2VOYW1lKHJlYy5uYW1lLCByZWMuZW50aXR5KTtcbiAgICAgICAgICByZWMudXJpID0gcmVzb3VyY2U7XG4gICAgICAgIH1cbiAgICAgICAgcGVybWlzc2lvbnMucHVzaCh7IGFjdGlvbiwgcmVzb3VyY2U6IHJlYy51cmkgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmFjdGlvblVybH0vY2hlY2tBY2Nlc3NgLCB7IGluY2x1ZGVGaWx0ZXJzOiB0cnVlLCBwZXJtaXNzaW9ucyB9KS5waXBlKFxuICAgICAgbWFwKCh7IHBlcm1pc3Npb25zOiBjaGVja2VkUGVybWlzc2lvbnMgfTogUmVzdWx0KSA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tlZFBlcm1pc3Npb25zID0gWy4uLnRoaXMuY2hlY2tlZFBlcm1pc3Npb25zLCAuLi5jaGVja2VkUGVybWlzc2lvbnNdO1xuXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHt9O1xuXG4gICAgICAgIGlmICh0aGlzLnNob3VsZFJlZGlyZWN0VG9Gb3JiaWRkZW5QYWdlKHJlc291cmNlcywgY2hlY2tlZFBlcm1pc3Npb25zKSkge1xuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnZXJyb3InLCA0MDNdKTtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignZm9yYmlkZGVuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjaGVja2VkUGVybWlzc2lvbnMuZm9yRWFjaChwZXJtaXNzaW9uID0+IHtcbiAgICAgICAgICBjb25zdCByZXNvdXJjZSA9IHJlc291cmNlcy5maW5kKHJlcyA9PiByZXMudXJpID09PSBwZXJtaXNzaW9uLnJlc291cmNlKTtcbiAgICAgICAgICBjb25zdCB7IG5hbWUgfSA9IHJlc291cmNlO1xuXG4gICAgICAgICAgdmFsdWVzW25hbWVdID0gdmFsdWVzW25hbWVdIHx8IHt9O1xuICAgICAgICAgIHZhbHVlc1tuYW1lXVtwZXJtaXNzaW9uLmFjdGlvbl0gPSBwZXJtaXNzaW9uLmF1dGhvcml6ZWQ7XG4gICAgICAgICAgdmFsdWVzW25hbWVdW3Blcm1pc3Npb24uYWN0aW9uLnRvTG93ZXJDYXNlKCldID0gcGVybWlzc2lvbi5hdXRob3JpemVkO1xuXG4gICAgICAgICAgaWYgKHBlcm1pc3Npb24ucmVzb3VyY2VGaWx0ZXJzICYmIHBlcm1pc3Npb24ucmVzb3VyY2VGaWx0ZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKCF2YWx1ZXNbbmFtZV1bJ3Jlc291cmNlRmlsdGVycyddKSB7XG4gICAgICAgICAgICAgIHZhbHVlc1tuYW1lXVsncmVzb3VyY2VGaWx0ZXJzJ10gPSBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcGVybWlzc2lvbi5yZXNvdXJjZUZpbHRlcnMuZm9yRWFjaCgocmVzb3VyY2VGaWx0ZXIpID0+IHtcbiAgICAgICAgICAgICAgdmFsdWVzW25hbWVdWydyZXNvdXJjZUZpbHRlcnMnXS5wdXNoKHJlc291cmNlRmlsdGVyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8vIHYxXG4gIGdldChyZXNvdXJjZTogc3RyaW5nID0gJycpIHtcbiAgICBpZiAoIXByb21pc2UpIHtcbiAgICAgIHByb21pc2UgPSB0aGlzLmdldFBlcm1pc3Npb25zKCk7XG4gICAgfVxuICAgIHJldHVybiBmcm9tKHByb21pc2UpLnBpcGUoXG4gICAgICBtYXAoKHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uW10pID0+IHtcbiAgICAgICAgdGhpcy5jaGVja2VkUGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucztcblxuICAgICAgICBpZiAocmVzb3VyY2UpIHtcbiAgICAgICAgICBjb25zdCByZXNvdXJjZUtleSA9IE9iamVjdC5rZXlzKHBlcm1pc3Npb25zKS5maW5kKGtleSA9PiBrZXkudG9Mb3dlckNhc2UoKSA9PT0gcmVzb3VyY2UudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgcmV0dXJuIHBlcm1pc3Npb25zW3Jlc291cmNlS2V5XTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGVybWlzc2lvbnM7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgIHByb21pc2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwZXJtaXNzaW9uX2Vycm9yX3N1bW1hcnknKSxcbiAgICAgICAgICBkZXRhaWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Blcm1pc3Npb25fZXJyb3JfZGV0YWlsJylcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuZ2V0UGVybWlzc2lvbk9iamVjdChmYWxzZSkpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgaXNBdXRob3JpemVkKHJlc291cmNlTmFtZTogc3RyaW5nLCBhY3Rpb246IHN0cmluZywgaXNFbnRpdHk/OiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmNoZWNrZWRQZXJtaXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgIHRocm93RXJyb3IoJ1xcJ1Blcm1pc3Npb25zXFwnIGFyZSBub3QgZGVmaW5lZC4gWW91IHNob3VsZCBjYWxsIFxcJ2dldFxcJyBvciBcXCdjaGVja0FjY2Vzc1xcJyBtZXRob2QgZmlyc3QuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VVcmkgPSB0aGlzLmdldFVyaUJ5UmVzb3VyY2VOYW1lKHJlc291cmNlTmFtZSwgaXNFbnRpdHkpO1xuXG4gICAgY29uc3QgcGVybWlzc2lvbnNPZlJlc291cmNlID0gdGhpcy5jaGVja2VkUGVybWlzc2lvbnMuZmlsdGVyKHBlcm0gPT4gcGVybS5yZXNvdXJjZSA9PT0gcmVzb3VyY2VVcmkpO1xuICAgIGNvbnN0IHBlcm1pc3Npb25PZkFjdGlvbiA9IHBlcm1pc3Npb25zT2ZSZXNvdXJjZS5maW5kKHBlcm1SZWMgPT4gcGVybVJlYy5hY3Rpb24udG9Mb3dlckNhc2UoKSA9PT0gYWN0aW9uLnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgcmV0dXJuIHBlcm1pc3Npb25PZkFjdGlvbiAmJiBwZXJtaXNzaW9uT2ZBY3Rpb24uYXV0aG9yaXplZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VXJpQnlSZXNvdXJjZU5hbWUocmVzb3VyY2VOYW1lOiBzdHJpbmcsIGlzRW50aXR5PzogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgY29uc3QgeyBkb21haW4sIHNlcnZpY2UgfSA9IHRoaXMuZW52aXJvbm1lbnQ7XG5cbiAgICBpZiAoIWRvbWFpbiB8fCAhc2VydmljZSkge1xuICAgICAgdGhyb3dFcnJvcignWW91IG11c3QgaW5mb3JtIGRvbWFpbiBhbmQgc2VydmljZSBuYW1lJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdXJpQmFzZSA9IGByZXM6Ly9zZW5pb3IuY29tLmJyLyR7ZG9tYWlufS8ke3NlcnZpY2V9YDtcblxuICAgIGlmIChpc0VudGl0eSkge1xuICAgICAgcmV0dXJuIGAke3VyaUJhc2V9L2VudGl0aWVzLyR7cmVzb3VyY2VOYW1lfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBgJHt1cmlCYXNlfS8ke3Jlc291cmNlTmFtZX1gO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGEgY29tIGJhc2UgbmFzIHByb3ByaWVkYWRlIHJlZGlyZWN0VG9FcnJvciBlIGFjdGlvbnNUb0NoZWNrXG4gICAqIHNlIGEgYcOnw6NvIGRlIHVtIHJlY3Vyc28gZGV2ZSBlbnZpYXIgcGFyYSBhIHDDoWdpbmEgZGUgZXJybyBjYXNvIG7Do28gdGVuaGEgYXV0b3JpemHDp8Ojb1xuICAgKi9cbiAgcHJpdmF0ZSBzaG91bGRSZWRpcmVjdFRvRm9yYmlkZGVuUGFnZShyZXNvdXJjZXM6IFJlc291cmNlW10gPSBbXSwgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25bXSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHBlcm1pc3Npb25zRGVuaWVkID0gcGVybWlzc2lvbnMuZmlsdGVyKHBlcm0gPT4gIXBlcm0uYXV0aG9yaXplZCk7XG5cbiAgICBpZiAocGVybWlzc2lvbnNEZW5pZWQgJiYgcGVybWlzc2lvbnNEZW5pZWQubGVuZ3RoKSB7XG4gICAgICBjb25zdCByZXNvdXJjZXNUb0NoZWNrID0gcmVzb3VyY2VzLmZpbHRlcihyZXNvdXJjZSA9PiByZXNvdXJjZS5yZWRpcmVjdFRvRXJyb3IpO1xuXG4gICAgICBpZiAocmVzb3VyY2VzVG9DaGVjayAmJiByZXNvdXJjZXNUb0NoZWNrLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gcmVzb3VyY2VzVG9DaGVjay5ldmVyeShyZXNvdXJjZSA9PiB7XG4gICAgICAgICAgY29uc3QgYWN0aW9uc1RvQ2hlY2sgPSByZXNvdXJjZS5hY3Rpb25zVG9DaGVjayAmJiByZXNvdXJjZS5hY3Rpb25zVG9DaGVjay5sZW5ndGggPyByZXNvdXJjZS5hY3Rpb25zVG9DaGVjayA6IHJlc291cmNlLmFjdGlvbnM7XG5cbiAgICAgICAgICByZXR1cm4gYWN0aW9uc1RvQ2hlY2suZXZlcnkoYWN0aW9uID0+XG4gICAgICAgICAgICBwZXJtaXNzaW9uc0RlbmllZC5zb21lKHBlcm1pc3Npb25EZW5pZWQgPT4gcGVybWlzc2lvbkRlbmllZC5yZXNvdXJjZSA9PT0gcmVzb3VyY2UudXJpICYmIHBlcm1pc3Npb25EZW5pZWQuYWN0aW9uID09PSBhY3Rpb24pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldEZsYXRFbnZpcm9ubWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5pZ25vcmVQZXJtaXNzaW9ucztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmxhdFJlc291cmNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXMucmVkdWNlKChyZXN1bHQ6IFJlc291cmNlW10sIGl0ZW06IGFueSkgPT4ge1xuICAgICAgaWYgKCFpdGVtKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0pKSB7XG4gICAgICAgIHJldHVybiBbLi4ucmVzdWx0LCAuLi5pdGVtXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFsuLi5yZXN1bHQsIGl0ZW1dO1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGVybWlzc2lvbk9iamVjdChkZWZhdWx0VmFsdWU6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gdGhpcy5nZXRGbGF0UmVzb3VyY2VzKCkucmVkdWNlKChyZXNvdXJjZXM6IG9iamVjdCwgcmVzb3VyY2U6IFJlc291cmNlKSA9PiB7XG4gICAgICByZXNvdXJjZXNbcmVzb3VyY2UubmFtZV0gPSByZXNvdXJjZS5hY3Rpb25zLnJlZHVjZSgoYWN0aW9uczogYW55LCBhY3Rpb246IGFueSkgPT4ge1xuICAgICAgICBhY3Rpb25zW2FjdGlvbl0gPSBkZWZhdWx0VmFsdWU7XG4gICAgICAgIGFjdGlvbnNbYWN0aW9uLnRvTG93ZXJDYXNlKCldID0gZGVmYXVsdFZhbHVlO1xuICAgICAgICByZXR1cm4gYWN0aW9ucztcbiAgICAgIH0sIHt9KTtcbiAgICAgIHJldHVybiByZXNvdXJjZXM7XG4gICAgfSwge30pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRQZXJtaXNzaW9ucygpIHtcbiAgICBpZiAodGhpcy5nZXRGbGF0RW52aXJvbm1lbnQoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0UGVybWlzc2lvbk9iamVjdCh0cnVlKTtcbiAgICB9XG4gICAgY29uc3QgcmVzb3VyY2VzID0gdGhpcy5nZXRGbGF0UmVzb3VyY2VzKCk7XG4gICAgY29uc3QgcGVybSA9IHJlc291cmNlc1xuICAgICAgLm1hcChyZXNvdXJjZSA9PiByZXNvdXJjZS5hY3Rpb25zLm1hcCgoYWN0aW9uOiBhbnkpID0+ICh7IGFjdGlvbjogYWN0aW9uLCByZXNvdXJjZTogcmVzb3VyY2UudXJpIH0pKSlcbiAgICAgIC5yZWR1Y2UoKGFjYzogYW55LCB2YWw6IGFueSkgPT4gWy4uLmFjYywgLi4udmFsXSk7XG5cbiAgICBjb25zdCBwZXJtaXNzaW9uczogYW55W10gPSBhd2FpdCB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5hY3Rpb25Vcmx9L2NoZWNrQWNjZXNzYCwge1xuICAgICAgICBpbmNsdWRlRmlsdGVyczogZmFsc2UsXG4gICAgICAgIHBlcm1pc3Npb25zOiBwZXJtXG4gICAgICB9KVxuICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS5wZXJtaXNzaW9ucyk7XG5cbiAgICBjb25zdCB2YWx1ZXMgPSB7fTtcblxuICAgIHBlcm1pc3Npb25zLmZvckVhY2goKHBlcm1pc3Npb246IGFueSkgPT4ge1xuICAgICAgY29uc3QgcmVzb3VyY2UgPSByZXNvdXJjZXMuZmluZCgocmVzOiBhbnkpID0+IHJlcy51cmkgPT09IHBlcm1pc3Npb24ucmVzb3VyY2UpO1xuICAgICAgY29uc3QgeyBuYW1lIH0gPSByZXNvdXJjZTtcbiAgICAgIHZhbHVlc1tuYW1lXSA9IHZhbHVlc1tuYW1lXSA/IHZhbHVlc1tuYW1lXSA6IHt9O1xuICAgICAgdmFsdWVzW25hbWVdW3Blcm1pc3Npb24uYWN0aW9uXSA9IHBlcm1pc3Npb24uYXV0aG9yaXplZDtcbiAgICAgIHZhbHVlc1tuYW1lXVtwZXJtaXNzaW9uLmFjdGlvbi50b0xvd2VyQ2FzZSgpXSA9IHBlcm1pc3Npb24uYXV0aG9yaXplZDtcbiAgICB9KTtcbiAgICByZXR1cm4gdmFsdWVzO1xuICB9XG59XG4iXX0=
|
|
@@ -1,274 +0,0 @@
|
|
|
1
|
-
import { __awaiter, __decorate } from "tslib";
|
|
2
|
-
import { UserAction } from './../models/user-action.enum';
|
|
3
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
4
|
-
import { SpotlightService } from '../service/spotlight.service';
|
|
5
|
-
import { EnumDisplayType, EnumSpotlightStatus } from '../models/index';
|
|
6
|
-
import { DatePipe } from '@angular/common';
|
|
7
|
-
import { CookieService } from 'ngx-cookie-service';
|
|
8
|
-
let SpotlightComponent = class SpotlightComponent {
|
|
9
|
-
constructor(spotlightService, cookieService, datePipe) {
|
|
10
|
-
this.spotlightService = spotlightService;
|
|
11
|
-
this.cookieService = cookieService;
|
|
12
|
-
this.datePipe = datePipe;
|
|
13
|
-
this.canAppear = false;
|
|
14
|
-
this.visible = false;
|
|
15
|
-
this.fade = false;
|
|
16
|
-
this.visibleChange = new EventEmitter();
|
|
17
|
-
}
|
|
18
|
-
ngOnInit() {
|
|
19
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
-
yield this.setValues();
|
|
21
|
-
this.fetchSpotlight();
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
setValues() {
|
|
25
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
-
const userData = JSON.parse(this.cookieService.get('com.senior.token'));
|
|
27
|
-
this.currentUser = userData.username;
|
|
28
|
-
this.spotlightUsersList = yield this.spotlightService.listSpotlightUsers();
|
|
29
|
-
this.spotlightControlsList = yield this.spotlightService.listSpotlightControl();
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
setValuesInSpotlight(values) {
|
|
33
|
-
this.header = values.spotlightTitle;
|
|
34
|
-
this.imgUrl = values.bannerUrl;
|
|
35
|
-
this.primaryButtonLabel = values.primaryButtonLabel;
|
|
36
|
-
this.primaryButtonTooltip = values.primaryButtonHint;
|
|
37
|
-
}
|
|
38
|
-
getShowDate(days) {
|
|
39
|
-
const currentDate = new Date();
|
|
40
|
-
return this.datePipe.transform(currentDate.setDate(currentDate.getDate() + days).toString(), 'yyyy-MM-dd');
|
|
41
|
-
}
|
|
42
|
-
fetchSpotlight() {
|
|
43
|
-
this.spotlightService.listSpotlightScreen().subscribe(value => {
|
|
44
|
-
this.spotlightScreen = value.contents.filter(val => val.screenMenuId === this.menuId)[0];
|
|
45
|
-
if (this.spotlightScreen) {
|
|
46
|
-
this.showSpotlight(this.spotlightScreen.spotlight);
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
showSpotlight(spotlight) {
|
|
51
|
-
if (this.validateDate(spotlight.initialDate) && this.validateFinalDate(spotlight.finalDate) && this.validateSpotlight(spotlight)) {
|
|
52
|
-
this.setValuesInSpotlight(spotlight);
|
|
53
|
-
this.canAppear = true;
|
|
54
|
-
const control = this.getSpotlightControlFromList(this.spotlightScreen.spotlight.id);
|
|
55
|
-
this.canEmitEvent = !control || this.currentUser !== control.firstUser;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
validateDate(date) {
|
|
59
|
-
if (date) {
|
|
60
|
-
const currentDate = this.datePipe.transform(new Date().toString(), 'yyyy-MM-dd');
|
|
61
|
-
const initialDate = this.datePipe.transform(date, 'yyyy-MM-dd');
|
|
62
|
-
return currentDate >= initialDate;
|
|
63
|
-
}
|
|
64
|
-
return false;
|
|
65
|
-
}
|
|
66
|
-
validateFinalDate(date) {
|
|
67
|
-
if (date) {
|
|
68
|
-
const currentDate = this.datePipe.transform(new Date().toString(), 'yyyy-MM-dd');
|
|
69
|
-
const finalDate = this.datePipe.transform(date, 'yyyy-MM-dd');
|
|
70
|
-
return currentDate <= finalDate;
|
|
71
|
-
}
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
validateSpotlight(spotlight) {
|
|
75
|
-
if (!this.validateControlsList(this.spotlightControlsList, spotlight, this.currentUser)) {
|
|
76
|
-
return false;
|
|
77
|
-
}
|
|
78
|
-
if (!this.validateDisplayType(spotlight, this.spotlightUsersList, this.spotlightControlsList, this.currentUser)) {
|
|
79
|
-
return false;
|
|
80
|
-
}
|
|
81
|
-
return true;
|
|
82
|
-
}
|
|
83
|
-
validateControlsList(controlsList, spotlight, currentUser) {
|
|
84
|
-
if (controlsList.totalElements) {
|
|
85
|
-
const notCompatibleControls = controlsList.contents.filter(control => {
|
|
86
|
-
if (control.status === EnumSpotlightStatus.ACTIVE) {
|
|
87
|
-
return control.spotlightId === spotlight.id;
|
|
88
|
-
}
|
|
89
|
-
else if (control.status === EnumSpotlightStatus.IN_PROGRESS) {
|
|
90
|
-
return control.spotlightId === spotlight.id && control.firstUser !== currentUser;
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
if (notCompatibleControls.length > 0) {
|
|
94
|
-
return false;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
99
|
-
validateDisplayType(spotlight, usersList, controlsList, currentUser) {
|
|
100
|
-
switch (spotlight.displayType) {
|
|
101
|
-
case EnumDisplayType.ADVERSITING:
|
|
102
|
-
return usersList.totalElements ? this.validateUser(usersList.contents, spotlight) : true;
|
|
103
|
-
case EnumDisplayType.INTEGRATION:
|
|
104
|
-
if (controlsList.totalElements) {
|
|
105
|
-
const compatibleControls = controlsList.contents.filter(control => {
|
|
106
|
-
switch (control.status) {
|
|
107
|
-
case EnumSpotlightStatus.NO_STARTED:
|
|
108
|
-
return control.spotlightId === spotlight.id;
|
|
109
|
-
case EnumSpotlightStatus.REFUSED:
|
|
110
|
-
return usersList.totalElements ? this.validateUser(usersList.contents, spotlight) : true;
|
|
111
|
-
case EnumSpotlightStatus.IN_PROGRESS:
|
|
112
|
-
return control.firstUser === currentUser
|
|
113
|
-
&& control.spotlightId === spotlight.id;
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
if (compatibleControls.length === 0) {
|
|
117
|
-
return false;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
return true;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
validateUser(users, spotlight) {
|
|
124
|
-
let spotlightUsers = users.filter(user => user.spotlightId === spotlight.id);
|
|
125
|
-
if (!spotlightUsers.length) {
|
|
126
|
-
spotlightUsers = users.filter(user => user.userOperation === this.currentUser);
|
|
127
|
-
return spotlightUsers.length === 0;
|
|
128
|
-
}
|
|
129
|
-
const compatibleUserToValidate = spotlightUsers.filter(user => user.userOperation === this.currentUser)[0];
|
|
130
|
-
return compatibleUserToValidate ? this.validateDate(compatibleUserToValidate.showDate) : true;
|
|
131
|
-
}
|
|
132
|
-
saveSpotlightUser(days) {
|
|
133
|
-
const spotlight = this.spotlightScreen.spotlight;
|
|
134
|
-
const user = this.spotlightUsersList.contents.filter(val => {
|
|
135
|
-
return val.spotlightId === spotlight.id
|
|
136
|
-
&& val.userOperation === this.currentUser;
|
|
137
|
-
})[0];
|
|
138
|
-
let spotlightUser = {
|
|
139
|
-
spotlightId: spotlight.id,
|
|
140
|
-
showDate: days ? this.getShowDate(days) : null,
|
|
141
|
-
userOperation: this.currentUser
|
|
142
|
-
};
|
|
143
|
-
if (user) {
|
|
144
|
-
spotlightUser = Object.assign({ id: user.id }, spotlightUser);
|
|
145
|
-
}
|
|
146
|
-
this.spotlightService.saveSpotlightUser(spotlightUser).subscribe();
|
|
147
|
-
}
|
|
148
|
-
onPrimary() {
|
|
149
|
-
const spotlight = this.spotlightScreen.spotlight;
|
|
150
|
-
const notification = this.buildNotification(UserAction.CONFIRMED);
|
|
151
|
-
this.saveSpotlightControl();
|
|
152
|
-
this.saveSpotlightUser();
|
|
153
|
-
if (this.canEmitEvent) {
|
|
154
|
-
this.spotlightService.notificateSpotlight(notification).subscribe();
|
|
155
|
-
}
|
|
156
|
-
if (spotlight.primaryButtonUrl) {
|
|
157
|
-
window.open(spotlight.primaryButtonUrl);
|
|
158
|
-
}
|
|
159
|
-
this.close();
|
|
160
|
-
}
|
|
161
|
-
onSecondary() {
|
|
162
|
-
const notification = this.buildNotification(UserAction.POSTPONED);
|
|
163
|
-
this.saveSpotlightControl(EnumSpotlightStatus.REFUSED);
|
|
164
|
-
this.saveSpotlightUser(this.spotlightScreen.spotlight.daysRememberLate);
|
|
165
|
-
this.spotlightService.notificateSpotlight(notification).subscribe();
|
|
166
|
-
this.close();
|
|
167
|
-
}
|
|
168
|
-
onTertiary() {
|
|
169
|
-
const notification = this.buildNotification(UserAction.REFUSED);
|
|
170
|
-
this.saveSpotlightControl(EnumSpotlightStatus.REFUSED);
|
|
171
|
-
this.saveSpotlightUser(this.spotlightScreen.spotlight.daysNotInterested);
|
|
172
|
-
this.spotlightService.notificateSpotlight(notification).subscribe();
|
|
173
|
-
this.close();
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Verifica se um registro de usuário pertence ao usuário logado e corresponde ao spotlight atual
|
|
177
|
-
* @param user SpotlightUser Objeto representando o registro do usuário para uma spotlight
|
|
178
|
-
* @param spotlight Spotlight Spotlight
|
|
179
|
-
* @returns boolean true se corresponder ao spotlight atual, false caso contrário
|
|
180
|
-
*/
|
|
181
|
-
hasThisRegister(user, spotlight) {
|
|
182
|
-
return (user.spotlightId === spotlight.id && user.userOperation === this.currentUser);
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Verifica se um registro de usuário pertece ao usuário logado, mas não corresponde ao spotlight atual
|
|
186
|
-
* @param user SpotlightUser Objeto representando o registro do usuário para uma spotlight
|
|
187
|
-
* @param spotlight Spotlight Spotlight
|
|
188
|
-
* @returns boolean true se corresponder ao spotlight atual, false caso contrário
|
|
189
|
-
*/
|
|
190
|
-
hasAnotherRegister(user, spotlight) {
|
|
191
|
-
return user.spotlightId !== spotlight.id && user.userOperation === this.currentUser;
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Persiste um novo registro de controle para o spotlight atual se
|
|
195
|
-
* não for encontrado nenhum na lista de controles carregada inicialmente
|
|
196
|
-
* @param status EnumSpotlightStatus Status do controle do spotlight. Se nenhum for informado, IN_PROGRESS será aplicado
|
|
197
|
-
* @returns SpotlightControl Controle do spotlight recuperado/pesistido
|
|
198
|
-
*/
|
|
199
|
-
saveSpotlightControl(status = EnumSpotlightStatus.IN_PROGRESS) {
|
|
200
|
-
const spotlight = this.spotlightScreen.spotlight;
|
|
201
|
-
let control = this.getSpotlightControlFromList(spotlight.id);
|
|
202
|
-
if (!control) {
|
|
203
|
-
control = {
|
|
204
|
-
spotlightId: spotlight.id,
|
|
205
|
-
status: status,
|
|
206
|
-
firstUser: this.currentUser
|
|
207
|
-
};
|
|
208
|
-
}
|
|
209
|
-
if (this.isNewControl(control) || control.status !== EnumSpotlightStatus.IN_PROGRESS) {
|
|
210
|
-
control.status = status;
|
|
211
|
-
control.firstUser = status === EnumSpotlightStatus.IN_PROGRESS ? this.currentUser : '';
|
|
212
|
-
this.spotlightService.saveSpotlightControl(control).subscribe();
|
|
213
|
-
}
|
|
214
|
-
return control;
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Retorna o controle de spotlight correspondente ao identificador
|
|
218
|
-
* informado na lista de controles carregada na inicialização do componente
|
|
219
|
-
* @param id string Identificador do controle de spotlight
|
|
220
|
-
*/
|
|
221
|
-
getSpotlightControlFromList(id) {
|
|
222
|
-
return this.spotlightControlsList.contents.filter(val => val.spotlightId === id)[0];
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Verifica se o controle de spotlight informado não foi registrado ainda
|
|
226
|
-
* @param spotlightControl SpotlightControl Controle do spotlight
|
|
227
|
-
* @returns boolean true se ainda não foi registrado na base, false caso contrário
|
|
228
|
-
*/
|
|
229
|
-
isNewControl(spotlightControl) {
|
|
230
|
-
return !this.spotlightControlsList.contents.includes(spotlightControl);
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Retorna um objeto de notificação referente ao botão clicado pelo usuário.
|
|
234
|
-
* @param userAction UserAction Ação realizada pelo usuário ao clicar nos botões da modal
|
|
235
|
-
* @returns SpotlightNotification Objeto de notificação
|
|
236
|
-
*/
|
|
237
|
-
buildNotification(userAction) {
|
|
238
|
-
const spotlight = this.spotlightScreen.spotlight;
|
|
239
|
-
return {
|
|
240
|
-
clickedButton: userAction,
|
|
241
|
-
spotlightControlId: spotlight.id,
|
|
242
|
-
primaryButtonUrl: spotlight.primaryButtonUrl
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
close() {
|
|
246
|
-
this.visibleChange.emit(false);
|
|
247
|
-
}
|
|
248
|
-
};
|
|
249
|
-
SpotlightComponent.ctorParameters = () => [
|
|
250
|
-
{ type: SpotlightService },
|
|
251
|
-
{ type: CookieService },
|
|
252
|
-
{ type: DatePipe }
|
|
253
|
-
];
|
|
254
|
-
__decorate([
|
|
255
|
-
Input()
|
|
256
|
-
], SpotlightComponent.prototype, "visible", void 0);
|
|
257
|
-
__decorate([
|
|
258
|
-
Input()
|
|
259
|
-
], SpotlightComponent.prototype, "menuId", void 0);
|
|
260
|
-
__decorate([
|
|
261
|
-
Input()
|
|
262
|
-
], SpotlightComponent.prototype, "fade", void 0);
|
|
263
|
-
__decorate([
|
|
264
|
-
Output()
|
|
265
|
-
], SpotlightComponent.prototype, "visibleChange", void 0);
|
|
266
|
-
SpotlightComponent = __decorate([
|
|
267
|
-
Component({
|
|
268
|
-
selector: 's-spotlight',
|
|
269
|
-
template: "<div class=\"s-spotlight-overlay\" id=\"ol\" *ngIf=\"canAppear && visible\">\n <div class=\"s-spotlight\" id=\"sl\" [ngClass]=\"{'s-effect-fadein': fade}\">\n <div class=\"s-spotlight-header\">\n <span class=\"s-spotlight-title\">{{header.toUpperCase()}}</span>\n <a role=\"button\" class=\"s-spotlight-close\" (click)=\"close()\"><span class=\"fa fa-times\" aria-hidden=\"true\"></span></a>\n </div>\n <div class=\"s-img\">\n <img src=\"{{imgUrl}}\">\n </div>\n <div class=\"s-spotlight-footer\">\n <div class=\"s-spotlight-footer-left\">\n <button\n pButton\n type=\"submit\"\n id=\"decline-button\"\n label=\"{{'platform.spotlight.no_interest' | translate}}\"\n (click)=\"onTertiary()\"\n class=\"ui-button-link\">\n </button>\n </div>\n <div class=\"s-spotlight-footer-right\">\n <button\n pButton\n type=\"submit\"\n id=\"remember-button\"\n label=\"{{'platform.spotlight.remember_late' | translate}}\"\n (click)=\"onSecondary()\"\n class=\"ui-button-raised ui-button-secondary\">\n </button>\n <button\n pButton\n label=\"{{primaryButtonLabel}}\"\n type=\"submit\"\n id=\"submit-button\"\n (click)=\"onPrimary()\"\n [pTooltip]=\"primaryButtonTooltip\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n class=\"ui-button-raised\">\n </button>\n </div>\n </div>\n</div>\n</div>",
|
|
270
|
-
styles: [".s-spotlight-overlay{display:-ms-flexbox;display:flex;position:fixed;z-index:10;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgba(0,0,0,.4)}.s-spotlight{border-radius:3px;background:#fff;margin:auto;overflow:hidden;animation:.15s forwards move}.s-spotlight-footer,.s-spotlight-header{display:-ms-flexbox;display:flex;padding:15px}.s-spotlight-header{-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.s-spotlight-footer,.s-spotlight-footer-left,.s-spotlight-footer-right{display:-ms-flexbox;display:flex}.s-spotlight-footer-right{-ms-flex:2;flex:2;-ms-flex-pack:end;justify-content:flex-end}.s-spotlight-footer-left{-ms-flex:1;flex:1;-ms-flex-pack:start;justify-content:flex-start}.s-spotlight-title{font-family:\"Open Sans\",sans-serif;font-size:16px;font-weight:400;color:#333}.s-spotlight-close{display:block;margin-left:15px;color:#000}.s-img{width:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.s-img img{width:100%}.s-effect-fadein{animation:.15s forwards fade}@keyframes fade{0%{opacity:0}100%{opacity:1}}@media (max-width:595px){.s-spotlight-footer,.s-spotlight-footer-left,.s-spotlight-footer-right{-ms-flex-align:center;align-items:center;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.s-spotlight-footer button{margin:0 0 15px!important;width:100%!important}}@media (min-width:576px){.s-spotlight{width:100%}}@media (min-width:768px){.s-spotlight{width:720px}.s-spotlight-footer,.s-spotlight-footer-left,.s-spotlight-footer-right{-ms-flex-direction:row;flex-direction:row}}@media (min-width:992px){.s-spotlight{width:960px}}@media (min-width:1200px){.s-spotlight{width:50%}}"]
|
|
271
|
-
})
|
|
272
|
-
], SpotlightComponent);
|
|
273
|
-
export { SpotlightComponent };
|
|
274
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdGxpZ2h0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9wbGF0Zm9ybS1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibW9kdWxlcy9zcG90bGlnaHQvY29tcG9uZW50L3Nwb3RsaWdodC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUxRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFHTCxlQUFlLEVBQ2YsbUJBQW1CLEVBS3BCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQU9uRCxJQUFhLGtCQUFrQixHQUEvQixNQUFhLGtCQUFrQjtJQUU3QixZQUNVLGdCQUFrQyxFQUNsQyxhQUE0QixFQUM1QixRQUFrQjtRQUZsQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFPckIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQVNsQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBTWhCLFNBQUksR0FBRyxLQUFLLENBQUM7UUFHYixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUF4QmhELENBQUM7SUEwQkUsUUFBUTs7WUFDWixNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQztLQUFBO0lBRWEsU0FBUzs7WUFDckIsTUFBTSxRQUFR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QyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssaUJBQWlCLENBQUMsVUFBc0I7UUFDOUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUM7UUFFakQsT0FBTztZQUNMLGFBQWEsRUFBRSxVQUFVO1lBQ3pCLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQ2hDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxnQkFBZ0I7U0FDN0MsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztDQUNGLENBQUE7O1lBNVQ2QixnQkFBZ0I7WUFDbkIsYUFBYTtZQUNsQixRQUFROztBQWdCNUI7SUFEQyxLQUFLLEVBQUU7bURBQ2U7QUFHdkI7SUFEQyxLQUFLLEVBQUU7a0RBQ2M7QUFHdEI7SUFEQyxLQUFLLEVBQUU7Z0RBQ1k7QUFHcEI7SUFEQyxNQUFNLEVBQUU7eURBQzBDO0FBOUJ4QyxrQkFBa0I7SUFMOUIsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGFBQWE7UUFDdkIsOHhEQUF5Qzs7S0FFMUMsQ0FBQztHQUNXLGtCQUFrQixDQStUOUI7U0EvVFksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckFjdGlvbiB9IGZyb20gJy4vLi4vbW9kZWxzL3VzZXItYWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgU3BvdGxpZ2h0Tm90aWZpY2F0aW9uIH0gZnJvbSAnLi8uLi9tb2RlbHMvc3BvdGxpZ2h0LW5vdGlmaWNhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNwb3RsaWdodFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL3Nwb3RsaWdodC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIFNwb3RsaWdodCxcbiAgU3BvdGxpZ2h0U2NyZWVuLFxuICBFbnVtRGlzcGxheVR5cGUsXG4gIEVudW1TcG90bGlnaHRTdGF0dXMsXG4gIFNwb3RsaWdodENvbnRyb2xMaXN0LFxuICBTcG90bGlnaHRVc2Vyc0xpc3QsXG4gIFNwb3RsaWdodFVzZXIsXG4gIFNwb3RsaWdodENvbnRyb2xcbn0gZnJvbSAnLi4vbW9kZWxzL2luZGV4JztcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzLXNwb3RsaWdodCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcG90bGlnaHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zcG90bGlnaHQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTcG90bGlnaHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3BvdGxpZ2h0U2VydmljZTogU3BvdGxpZ2h0U2VydmljZSxcbiAgICBwcml2YXRlIGNvb2tpZVNlcnZpY2U6IENvb2tpZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGVcbiAgKSB7fVxuXG4gIHB1YmxpYyBoZWFkZXI6IHN0cmluZztcbiAgcHVibGljIGltZ1VybDogc3RyaW5nO1xuICBwdWJsaWMgcHJpbWFyeUJ1dHRvbkxhYmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBwcmltYXJ5QnV0dG9uVG9vbHRpcDogc3RyaW5nO1xuICBwdWJsaWMgY2FuQXBwZWFyID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBjdXJyZW50VXNlcjogc3RyaW5nO1xuICBwcml2YXRlIHNwb3RsaWdodFVzZXJzTGlzdDogU3BvdGxpZ2h0VXNlcnNMaXN0O1xuICBwcml2YXRlIHNwb3RsaWdodENvbnRyb2xzTGlzdDogU3BvdGxpZ2h0Q29udHJvbExpc3Q7XG4gIHByaXZhdGUgc3BvdGxpZ2h0U2NyZWVuOiBTcG90bGlnaHRTY3JlZW47XG4gIHByaXZhdGUgY2FuRW1pdEV2ZW50OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2aXNpYmxlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1lbnVJZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmYWRlID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIGF3YWl0IHRoaXMuc2V0VmFsdWVzKCk7XG4gICAgdGhpcy5mZXRjaFNwb3RsaWdodCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXRWYWx1ZXMoKSB7XG4gICAgY29uc3QgdXNlckRhdGE6IGFueSA9IEpTT04ucGFyc2UodGhpcy5jb29raWVTZXJ2aWNlLmdldCgnY29tLnNlbmlvci50b2tlbicpKTtcbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gdXNlckRhdGEudXNlcm5hbWU7XG4gICAgdGhpcy5zcG90bGlnaHRVc2Vyc0xpc3QgPSBhd2FpdCB0aGlzLnNwb3RsaWdodFNlcnZpY2UubGlzdFNwb3RsaWdodFVzZXJzKCk7XG4gICAgdGhpcy5zcG90bGlnaHRDb250cm9sc0xpc3QgPSBhd2FpdCB0aGlzLnNwb3RsaWdodFNlcnZpY2UubGlzdFNwb3RsaWdodENvbnRyb2woKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VmFsdWVzSW5TcG90bGlnaHQodmFsdWVzOiBTcG90bGlnaHQpOiB2b2lkIHtcbiAgICB0aGlzLmhlYWRlciA9IHZhbHVlcy5zcG90bGlnaHRUaXRsZTtcbiAgICB0aGlzLmltZ1VybCA9IHZhbHVlcy5iYW5uZXJVcmw7XG4gICAgdGhpcy5wcmltYXJ5QnV0dG9uTGFiZWwgPSB2YWx1ZXMucHJpbWFyeUJ1dHRvbkxhYmVsO1xuICAgIHRoaXMucHJpbWFyeUJ1dHRvblRvb2x0aXAgPSB2YWx1ZXMucHJpbWFyeUJ1dHRvbkhpbnQ7XG4gIH1cblxuICBwcml2YXRlIGdldFNob3dEYXRlKGRheXM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShjdXJyZW50RGF0ZS5zZXREYXRlKGN1cnJlbnREYXRlLmdldERhdGUoKSArIGRheXMpLnRvU3RyaW5nKCksICd5eXl5LU1NLWRkJyk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoU3BvdGxpZ2h0KCk6IHZvaWQge1xuICAgIHRoaXMuc3BvdGxpZ2h0U2VydmljZS5saXN0U3BvdGxpZ2h0U2NyZWVuKCkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMuc3BvdGxpZ2h0U2NyZWVuID0gdmFsdWUuY29udGVudHMuZmlsdGVyKHZhbCA9PiB2YWwuc2NyZWVuTWVudUlkID09PSB0aGlzLm1lbnVJZClbMF07XG4gICAgICBpZiAodGhpcy5zcG90bGlnaHRTY3JlZW4pIHtcbiAgICAgICAgdGhpcy5zaG93U3BvdGxpZ2h0KHRoaXMuc3BvdGxpZ2h0U2NyZWVuLnNwb3RsaWdodCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNob3dTcG90bGlnaHQoc3BvdGxpZ2h0OiBTcG90bGlnaHQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWxpZGF0ZURhdGUoc3BvdGxpZ2h0LmluaXRpYWxEYXRlKSAmJiB0aGlzLnZhbGlkYXRlRmluYWxEYXRlKHNwb3RsaWdodC5maW5hbERhdGUpICYmIHRoaXMudmFsaWRhdGVTcG90bGlnaHQoc3BvdGxpZ2h0KSkge1xuICAgICAgdGhpcy5zZXRWYWx1ZXNJblNwb3RsaWdodChzcG90bGlnaHQpO1xuICAgICAgdGhpcy5jYW5BcHBlYXIgPSB0cnVlO1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0U3BvdGxpZ2h0Q29udHJvbEZyb21MaXN0KHRoaXMuc3BvdGxpZ2h0U2NyZWVuLnNwb3RsaWdodC5pZCk7XG4gICAgICB0aGlzLmNhbkVtaXRFdmVudCA9ICFjb250cm9sIHx8IHRoaXMuY3VycmVudFVzZXIgIT09IGNvbnRyb2wuZmlyc3RVc2VyO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVEYXRlKGRhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmIChkYXRlKSB7XG4gICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKCkudG9TdHJpbmcoKSwgJ3l5eXktTU0tZGQnKTtcbiAgICAgIGNvbnN0IGluaXRpYWxEYXRlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZSwgJ3l5eXktTU0tZGQnKTtcblxuICAgICAgcmV0dXJuIGN1cnJlbnREYXRlID49IGluaXRpYWxEYXRlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRmluYWxEYXRlKGRhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmIChkYXRlKSB7XG4gICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKCkudG9TdHJpbmcoKSwgJ3l5eXktTU0tZGQnKTtcbiAgICAgIGNvbnN0IGZpbmFsRGF0ZSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGUsICd5eXl5LU1NLWRkJyk7XG5cbiAgICAgIHJldHVybiBjdXJyZW50RGF0ZSA8PSBmaW5hbERhdGU7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVNwb3RsaWdodChzcG90bGlnaHQ6IFNwb3RsaWdodCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy52YWxpZGF0ZUNvbnRyb2xzTGlzdCh0aGlzLnNwb3RsaWdodENvbnRyb2xzTGlzdCwgc3BvdGxpZ2h0LCB0aGlzLmN1cnJlbnRVc2VyKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIXRoaXMudmFsaWRhdGVEaXNwbGF5VHlwZShzcG90bGlnaHQsIHRoaXMuc3BvdGxpZ2h0VXNlcnNMaXN0LCB0aGlzLnNwb3RsaWdodENvbnRyb2xzTGlzdCwgdGhpcy5jdXJyZW50VXNlcikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlQ29udHJvbHNMaXN0KGNvbnRyb2xzTGlzdDogU3BvdGxpZ2h0Q29udHJvbExpc3QsIHNwb3RsaWdodDogU3BvdGxpZ2h0LCBjdXJyZW50VXNlcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKGNvbnRyb2xzTGlzdC50b3RhbEVsZW1lbnRzKSB7XG5cbiAgICAgIGNvbnN0IG5vdENvbXBhdGlibGVDb250cm9scyA9IGNvbnRyb2xzTGlzdC5jb250ZW50cy5maWx0ZXIoY29udHJvbCA9PiB7XG4gICAgICAgIGlmIChjb250cm9sLnN0YXR1cyA9PT0gRW51bVNwb3RsaWdodFN0YXR1cy5BQ1RJVkUpIHtcbiAgICAgICAgICByZXR1cm4gY29udHJvbC5zcG90bGlnaHRJZCA9PT0gc3BvdGxpZ2h0LmlkO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoY29udHJvbC5zdGF0dXMgPT09IEVudW1TcG90bGlnaHRTdGF0dXMuSU5fUFJPR1JFU1MpIHtcbiAgICAgICAgICAgIHJldHVybiBjb250cm9sLnNwb3RsaWdodElkID09PSBzcG90bGlnaHQuaWQgJiYgY29udHJvbC5maXJzdFVzZXIgIT09IGN1cnJlbnRVc2VyO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKG5vdENvbXBhdGlibGVDb250cm9scy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRGlzcGxheVR5cGUoXG4gICAgc3BvdGxpZ2h0OiBTcG90bGlnaHQsXG4gICAgdXNlcnNMaXN0OiBTcG90bGlnaHRVc2Vyc0xpc3QsXG4gICAgY29udHJvbHNMaXN0OiBTcG90bGlnaHRDb250cm9sTGlzdCxcbiAgICBjdXJyZW50VXNlcjogc3RyaW5nXG4gICk6IGJvb2xlYW4ge1xuXG4gICAgc3dpdGNoIChzcG90bGlnaHQuZGlzcGxheVR5cGUpIHtcbiAgICAgIGNhc2UgRW51bURpc3BsYXlUeXBlLkFEVkVSU0lUSU5HOlxuICAgICAgICByZXR1cm4gdXNlcnNMaXN0LnRvdGFsRWxlbWVudHMgPyB0aGlzLnZhbGlkYXRlVXNlcih1c2Vyc0xpc3QuY29udGVudHMsIHNwb3RsaWdodCkgOiB0cnVlO1xuXG4gICAgICBjYXNlIEVudW1EaXNwbGF5VHlwZS5JTlRFR1JBVElPTjpcblxuICAgICAgICBpZiAoY29udHJvbHNMaXN0LnRvdGFsRWxlbWVudHMpIHtcbiAgICAgICAgICBjb25zdCBjb21wYXRpYmxlQ29udHJvbHMgPSBjb250cm9sc0xpc3QuY29udGVudHMuZmlsdGVyKGNvbnRyb2wgPT4ge1xuXG4gICAgICAgICAgICAgIHN3aXRjaCAoY29udHJvbC5zdGF0dXMpIHtcblxuICAgICAgICAgICAgICAgIGNhc2UgRW51bVNwb3RsaWdodFN0YXR1cy5OT19TVEFSVEVEOlxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2wuc3BvdGxpZ2h0SWQgPT09IHNwb3RsaWdodC5pZDtcblxuICAgICAgICAgICAgICAgIGNhc2UgRW51bVNwb3RsaWdodFN0YXR1cy5SRUZVU0VEOlxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHVzZXJzTGlzdC50b3RhbEVsZW1lbnRzID8gdGhpcy52YWxpZGF0ZVVzZXIodXNlcnNMaXN0LmNvbnRlbnRzLCBzcG90bGlnaHQpIDogdHJ1ZTtcblxuICAgICAgICAgICAgICAgIGNhc2UgRW51bVNwb3RsaWdodFN0YXR1cy5JTl9QUk9HUkVTUzpcbiAgICAgICAgICAgICAgICAgIHJldHVybiBjb250cm9sLmZpcnN0VXNlciA9PT0gY3VycmVudFVzZXJcbiAgICAgICAgICAgICAgICAgICAgJiYgY29udHJvbC5zcG90bGlnaHRJZCA9PT0gc3BvdGxpZ2h0LmlkO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKGNvbXBhdGlibGVDb250cm9scy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVVzZXIodXNlcnM6IFNwb3RsaWdodFVzZXJbXSwgc3BvdGxpZ2h0OiBTcG90bGlnaHQpOiBib29sZWFuIHtcbiAgICBsZXQgc3BvdGxpZ2h0VXNlcnMgPSB1c2Vycy5maWx0ZXIodXNlciA9PiB1c2VyLnNwb3RsaWdodElkID09PSBzcG90bGlnaHQuaWQpO1xuXG4gICAgaWYgKCFzcG90bGlnaHRVc2Vycy5sZW5ndGgpIHtcbiAgICAgIHNwb3RsaWdodFVzZXJzID0gdXNlcnMuZmlsdGVyKHVzZXIgPT4gdXNlci51c2VyT3BlcmF0aW9uID09PSB0aGlzLmN1cnJlbnRVc2VyKTtcblxuICAgICAgcmV0dXJuIHNwb3RsaWdodFVzZXJzLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wYXRpYmxlVXNlclRvVmFsaWRhdGUgPSBzcG90bGlnaHRVc2Vycy5maWx0ZXIodXNlciA9PiB1c2VyLnVzZXJPcGVyYXRpb24gPT09IHRoaXMuY3VycmVudFVzZXIpWzBdO1xuXG4gICAgcmV0dXJuIGNvbXBhdGlibGVVc2VyVG9WYWxpZGF0ZSA/IHRoaXMudmFsaWRhdGVEYXRlKGNvbXBhdGlibGVVc2VyVG9WYWxpZGF0ZS5zaG93RGF0ZSkgOiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzYXZlU3BvdGxpZ2h0VXNlcihkYXlzPzogbnVtYmVyKTogdm9pZCB7XG5cbiAgICBjb25zdCBzcG90bGlnaHQgPSB0aGlzLnNwb3RsaWdodFNjcmVlbi5zcG90bGlnaHQ7XG5cbiAgICBjb25zdCB1c2VyID0gdGhpcy5zcG90bGlnaHRVc2Vyc0xpc3QuY29udGVudHMuZmlsdGVyKHZhbCA9PiB7XG4gICAgICByZXR1cm4gdmFsLnNwb3RsaWdodElkID09PSBzcG90bGlnaHQuaWRcbiAgICAgICAgJiYgdmFsLnVzZXJPcGVyYXRpb24gPT09IHRoaXMuY3VycmVudFVzZXI7XG4gICAgfSlbMF07XG5cbiAgICBsZXQgc3BvdGxpZ2h0VXNlcjogU3BvdGxpZ2h0VXNlciA9IHtcbiAgICAgIHNwb3RsaWdodElkOiBzcG90bGlnaHQuaWQsXG4gICAgICBzaG93RGF0ZTogZGF5cyA/IHRoaXMuZ2V0U2hvd0RhdGUoZGF5cykgOiBudWxsLFxuICAgICAgdXNlck9wZXJhdGlvbjogdGhpcy5jdXJyZW50VXNlclxuICAgIH07XG5cbiAgICBpZiAodXNlcikge1xuICAgICAgc3BvdGxpZ2h0VXNlciA9IHtcbiAgICAgICAgaWQ6IHVzZXIuaWQsXG4gICAgICAgIC4uLnNwb3RsaWdodFVzZXJcbiAgICAgIH07XG4gICAgfVxuICAgIHRoaXMuc3BvdGxpZ2h0U2VydmljZS5zYXZlU3BvdGxpZ2h0VXNlcihzcG90bGlnaHRVc2VyKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblByaW1hcnkoKSB7XG4gICAgY29uc3Qgc3BvdGxpZ2h0ID0gdGhpcy5zcG90bGlnaHRTY3JlZW4uc3BvdGxpZ2h0O1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHRoaXMuYnVpbGROb3RpZmljYXRpb24oVXNlckFjdGlvbi5DT05GSVJNRUQpO1xuXG4gICAgdGhpcy5zYXZlU3BvdGxpZ2h0Q29udHJvbCgpO1xuICAgIHRoaXMuc2F2ZVNwb3RsaWdodFVzZXIoKTtcblxuICAgIGlmICh0aGlzLmNhbkVtaXRFdmVudCkge1xuICAgICAgdGhpcy5zcG90bGlnaHRTZXJ2aWNlLm5vdGlmaWNhdGVTcG90bGlnaHQobm90aWZpY2F0aW9uKS5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAoc3BvdGxpZ2h0LnByaW1hcnlCdXR0b25VcmwpIHtcbiAgICAgIHdpbmRvdy5vcGVuKHNwb3RsaWdodC5wcmltYXJ5QnV0dG9uVXJsKTtcbiAgICB9XG5cbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgb25TZWNvbmRhcnkoKTogdm9pZCB7XG4gICAgY29uc3Qgbm90aWZpY2F0aW9uID0gdGhpcy5idWlsZE5vdGlmaWNhdGlvbihVc2VyQWN0aW9uLlBPU1RQT05FRCk7XG5cbiAgICB0aGlzLnNhdmVTcG90bGlnaHRDb250cm9sKEVudW1TcG90bGlnaHRTdGF0dXMuUkVGVVNFRCk7XG4gICAgdGhpcy5zYXZlU3BvdGxpZ2h0VXNlcih0aGlzLnNwb3RsaWdodFNjcmVlbi5zcG90bGlnaHQuZGF5c1JlbWVtYmVyTGF0ZSk7XG4gICAgdGhpcy5zcG90bGlnaHRTZXJ2aWNlLm5vdGlmaWNhdGVTcG90bGlnaHQobm90aWZpY2F0aW9uKS5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblRlcnRpYXJ5KCk6IHZvaWQge1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHRoaXMuYnVpbGROb3RpZmljYXRpb24oVXNlckFjdGlvbi5SRUZVU0VEKTtcblxuICAgIHRoaXMuc2F2ZVNwb3RsaWdodENvbnRyb2woRW51bVNwb3RsaWdodFN0YXR1cy5SRUZVU0VEKTtcbiAgICB0aGlzLnNhdmVTcG90bGlnaHRVc2VyKHRoaXMuc3BvdGxpZ2h0U2NyZWVuLnNwb3RsaWdodC5kYXlzTm90SW50ZXJlc3RlZCk7XG4gICAgdGhpcy5zcG90bGlnaHRTZXJ2aWNlLm5vdGlmaWNhdGVTcG90bGlnaHQobm90aWZpY2F0aW9uKS5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzZSB1bSByZWdpc3RybyBkZSB1c3XDoXJpbyBwZXJ0ZW5jZSBhbyB1c3XDoXJpbyBsb2dhZG8gZSBjb3JyZXNwb25kZSBhbyBzcG90bGlnaHQgYXR1YWxcbiAgICogQHBhcmFtIHVzZXIgU3BvdGxpZ2h0VXNlciBPYmpldG8gcmVwcmVzZW50YW5kbyBvIHJlZ2lzdHJvIGRvIHVzdcOhcmlvIHBhcmEgdW1hIHNwb3RsaWdodFxuICAgKiBAcGFyYW0gc3BvdGxpZ2h0IFNwb3RsaWdodCBTcG90bGlnaHRcbiAgICogQHJldHVybnMgYm9vbGVhbiB0cnVlIHNlIGNvcnJlc3BvbmRlciBhbyBzcG90bGlnaHQgYXR1YWwsIGZhbHNlIGNhc28gY29udHLDoXJpb1xuICAgKi9cbiAgcHJpdmF0ZSBoYXNUaGlzUmVnaXN0ZXIodXNlcjogU3BvdGxpZ2h0VXNlciwgc3BvdGxpZ2h0OiBTcG90bGlnaHQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHVzZXIuc3BvdGxpZ2h0SWQgPT09IHNwb3RsaWdodC5pZCAmJiB1c2VyLnVzZXJPcGVyYXRpb24gPT09IHRoaXMuY3VycmVudFVzZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNlIHVtIHJlZ2lzdHJvIGRlIHVzdcOhcmlvIHBlcnRlY2UgYW8gdXN1w6FyaW8gbG9nYWRvLCBtYXMgbsOjbyBjb3JyZXNwb25kZSBhbyBzcG90bGlnaHQgYXR1YWxcbiAgICogQHBhcmFtIHVzZXIgU3BvdGxpZ2h0VXNlciBPYmpldG8gcmVwcmVzZW50YW5kbyBvIHJlZ2lzdHJvIGRvIHVzdcOhcmlvIHBhcmEgdW1hIHNwb3RsaWdodFxuICAgKiBAcGFyYW0gc3BvdGxpZ2h0IFNwb3RsaWdodCBTcG90bGlnaHRcbiAgICogQHJldHVybnMgYm9vbGVhbiB0cnVlIHNlIGNvcnJlc3BvbmRlciBhbyBzcG90bGlnaHQgYXR1YWwsIGZhbHNlIGNhc28gY29udHLDoXJpb1xuICAgKi9cbiAgcHJpdmF0ZSBoYXNBbm90aGVyUmVnaXN0ZXIodXNlcjogU3BvdGxpZ2h0VXNlciwgc3BvdGxpZ2h0OiBTcG90bGlnaHQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdXNlci5zcG90bGlnaHRJZCAhPT0gc3BvdGxpZ2h0LmlkICYmIHVzZXIudXNlck9wZXJhdGlvbiA9PT0gdGhpcy5jdXJyZW50VXNlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJzaXN0ZSB1bSBub3ZvIHJlZ2lzdHJvIGRlIGNvbnRyb2xlIHBhcmEgbyBzcG90bGlnaHQgYXR1YWwgc2VcbiAgICogbsOjbyBmb3IgZW5jb250cmFkbyBuZW5odW0gbmEgbGlzdGEgZGUgY29udHJvbGVzIGNhcnJlZ2FkYSBpbmljaWFsbWVudGVcbiAgICogQHBhcmFtIHN0YXR1cyBFbnVtU3BvdGxpZ2h0U3RhdHVzIFN0YXR1cyBkbyBjb250cm9sZSBkbyBzcG90bGlnaHQuIFNlIG5lbmh1bSBmb3IgaW5mb3JtYWRvLCBJTl9QUk9HUkVTUyBzZXLDoSBhcGxpY2Fkb1xuICAgKiBAcmV0dXJucyBTcG90bGlnaHRDb250cm9sIENvbnRyb2xlIGRvIHNwb3RsaWdodCByZWN1cGVyYWRvL3Blc2lzdGlkb1xuICAgKi9cbiAgcHJpdmF0ZSBzYXZlU3BvdGxpZ2h0Q29udHJvbChzdGF0dXMgPSBFbnVtU3BvdGxpZ2h0U3RhdHVzLklOX1BST0dSRVNTKTogU3BvdGxpZ2h0Q29udHJvbCB7XG4gICAgY29uc3Qgc3BvdGxpZ2h0ID0gdGhpcy5zcG90bGlnaHRTY3JlZW4uc3BvdGxpZ2h0O1xuICAgIGxldCBjb250cm9sOiBTcG90bGlnaHRDb250cm9sID0gdGhpcy5nZXRTcG90bGlnaHRDb250cm9sRnJvbUxpc3Qoc3BvdGxpZ2h0LmlkKTtcblxuICAgIGlmICghY29udHJvbCkge1xuICAgICAgY29udHJvbCA9IHtcbiAgICAgICAgc3BvdGxpZ2h0SWQ6IHNwb3RsaWdodC5pZCxcbiAgICAgICAgc3RhdHVzOiBzdGF0dXMsXG4gICAgICAgIGZpcnN0VXNlcjogdGhpcy5jdXJyZW50VXNlclxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc05ld0NvbnRyb2woY29udHJvbCkgfHwgY29udHJvbC5zdGF0dXMgIT09IEVudW1TcG90bGlnaHRTdGF0dXMuSU5fUFJPR1JFU1MpIHtcbiAgICAgIGNvbnRyb2wuc3RhdHVzID0gc3RhdHVzO1xuICAgICAgY29udHJvbC5maXJzdFVzZXIgPSBzdGF0dXMgPT09IEVudW1TcG90bGlnaHRTdGF0dXMuSU5fUFJPR1JFU1MgPyB0aGlzLmN1cnJlbnRVc2VyIDogJyc7XG4gICAgICB0aGlzLnNwb3RsaWdodFNlcnZpY2Uuc2F2ZVNwb3RsaWdodENvbnRyb2woY29udHJvbCkuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRyb2w7XG4gIH1cblxuICAvKipcbiAgICogUmV0b3JuYSBvIGNvbnRyb2xlIGRlIHNwb3RsaWdodCBjb3JyZXNwb25kZW50ZSBhbyBpZGVudGlmaWNhZG9yXG4gICAqIGluZm9ybWFkbyBuYSBsaXN0YSBkZSBjb250cm9sZXMgY2FycmVnYWRhIG5hIGluaWNpYWxpemHDp8OjbyBkbyBjb21wb25lbnRlXG4gICAqIEBwYXJhbSBpZCBzdHJpbmcgSWRlbnRpZmljYWRvciBkbyBjb250cm9sZSBkZSBzcG90bGlnaHRcbiAgICovXG4gIHByaXZhdGUgZ2V0U3BvdGxpZ2h0Q29udHJvbEZyb21MaXN0KGlkOiBzdHJpbmcpOiBTcG90bGlnaHRDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5zcG90bGlnaHRDb250cm9sc0xpc3QuY29udGVudHMuZmlsdGVyKHZhbCA9PiAgdmFsLnNwb3RsaWdodElkID09PSBpZClbMF07XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2UgbyBjb250cm9sZSBkZSBzcG90bGlnaHQgaW5mb3JtYWRvIG7Do28gZm9pIHJlZ2lzdHJhZG8gYWluZGFcbiAgICogQHBhcmFtIHNwb3RsaWdodENvbnRyb2wgU3BvdGxpZ2h0Q29udHJvbCBDb250cm9sZSBkbyBzcG90bGlnaHRcbiAgICogQHJldHVybnMgYm9vbGVhbiB0cnVlIHNlIGFpbmRhIG7Do28gZm9pIHJlZ2lzdHJhZG8gbmEgYmFzZSwgZmFsc2UgY2FzbyBjb250csOhcmlvXG4gICAqL1xuICBwcml2YXRlIGlzTmV3Q29udHJvbChzcG90bGlnaHRDb250cm9sOiBTcG90bGlnaHRDb250cm9sKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnNwb3RsaWdodENvbnRyb2xzTGlzdC5jb250ZW50cy5pbmNsdWRlcyhzcG90bGlnaHRDb250cm9sKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRvcm5hIHVtIG9iamV0byBkZSBub3RpZmljYcOnw6NvIHJlZmVyZW50ZSBhbyBib3TDo28gY2xpY2FkbyBwZWxvIHVzdcOhcmlvLlxuICAgKiBAcGFyYW0gdXNlckFjdGlvbiBVc2VyQWN0aW9uIEHDp8OjbyByZWFsaXphZGEgcGVsbyB1c3XDoXJpbyBhbyBjbGljYXIgbm9zIGJvdMO1ZXMgZGEgbW9kYWxcbiAgICogQHJldHVybnMgU3BvdGxpZ2h0Tm90aWZpY2F0aW9uIE9iamV0byBkZSBub3RpZmljYcOnw6NvXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkTm90aWZpY2F0aW9uKHVzZXJBY3Rpb246IFVzZXJBY3Rpb24pOiBTcG90bGlnaHROb3RpZmljYXRpb24ge1xuICAgIGNvbnN0IHNwb3RsaWdodCA9IHRoaXMuc3BvdGxpZ2h0U2NyZWVuLnNwb3RsaWdodDtcblxuICAgIHJldHVybiB7XG4gICAgICBjbGlja2VkQnV0dG9uOiB1c2VyQWN0aW9uLFxuICAgICAgc3BvdGxpZ2h0Q29udHJvbElkOiBzcG90bGlnaHQuaWQsXG4gICAgICBwcmltYXJ5QnV0dG9uVXJsOiBzcG90bGlnaHQucHJpbWFyeUJ1dHRvblVybFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './spotlight.module';
|
|
2
|
-
export * from './component/spotlight.component';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvcGxhdGZvcm0tY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvc3BvdGxpZ2h0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3BvdGxpZ2h0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudC9zcG90bGlnaHQuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export const fallback = {
|
|
2
|
-
'platform.spotlight.no_interest': 'Não tenho interesse',
|
|
3
|
-
'platform.spotlight.remember_late': 'Lembrar mais tarde'
|
|
4
|
-
};
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFsbGJhY2suanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvcGxhdGZvcm0tY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvc3BvdGxpZ2h0L2xvY2FsZS9mYWxsYmFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQVE7SUFFekIsZ0NBQWdDLEVBQUcscUJBQXFCO0lBQ3hELGtDQUFrQyxFQUFHLG9CQUFvQjtDQUM1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGZhbGxiYWNrOiBhbnkgPSB7XG5cbiAgICAncGxhdGZvcm0uc3BvdGxpZ2h0Lm5vX2ludGVyZXN0JyA6ICdOw6NvIHRlbmhvIGludGVyZXNzZScsXG4gICAgJ3BsYXRmb3JtLnNwb3RsaWdodC5yZW1lbWJlcl9sYXRlJyA6ICdMZW1icmFyIG1haXMgdGFyZGUnXG59O1xuIl19
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export var EnumDisplayType;
|
|
2
|
-
(function (EnumDisplayType) {
|
|
3
|
-
EnumDisplayType["ADVERSITING"] = "ADVERSITING";
|
|
4
|
-
EnumDisplayType["INTEGRATION"] = "INTEGRATION";
|
|
5
|
-
})(EnumDisplayType || (EnumDisplayType = {}));
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS10eXBlLmVudW0uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvcGxhdGZvcm0tY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvc3BvdGxpZ2h0L21vZGVscy9kaXNwbGF5LXR5cGUuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxlQUdYO0FBSEQsV0FBWSxlQUFlO0lBQ3ZCLDhDQUEyQixDQUFBO0lBQzNCLDhDQUEyQixDQUFBO0FBQy9CLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEVudW1EaXNwbGF5VHlwZSB7XG4gICAgQURWRVJTSVRJTkcgPSAnQURWRVJTSVRJTkcnLFxuICAgIElOVEVHUkFUSU9OID0gJ0lOVEVHUkFUSU9OJ1xufVxuIl19
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from './display-type.enum';
|
|
2
|
-
export * from './spotlight-control.interface';
|
|
3
|
-
export * from './spotlight-status.enum';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvcGxhdGZvcm0tY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvc3BvdGxpZ2h0L21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBT3BDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGlzcGxheS10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9zcG90bGlnaHQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3BvdGxpZ2h0LXNjcmVlbi1saXN0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3Nwb3RsaWdodC1zY3JlZW4uaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3BvdGxpZ2h0LXVzZXIuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3BvdGxpZ2h0LXVzZXJzLWxpc3QuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3BvdGxpZ2h0LWNvbnRyb2wtbGlzdC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcG90bGlnaHQtY29udHJvbC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcG90bGlnaHQtc3RhdHVzLmVudW0nO1xuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdGxpZ2h0LWNvbnRyb2wtbGlzdC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvcGxhdGZvcm0tY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvc3BvdGxpZ2h0L21vZGVscy9zcG90bGlnaHQtY29udHJvbC1saXN0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3BvdGxpZ2h0Q29udHJvbCB9IGZyb20gJy4vc3BvdGxpZ2h0LWNvbnRyb2wuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBTcG90bGlnaHRDb250cm9sTGlzdCB7XG4gICAgdG90YWxQYWdlczogbnVtYmVyO1xuICAgIHRvdGFsRWxlbWVudHM6IG51bWJlcjtcbiAgICBjb250ZW50czogU3BvdGxpZ2h0Q29udHJvbFtdO1xufVxuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export class SpotlightControl {
|
|
2
|
-
}
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdGxpZ2h0LWNvbnRyb2wuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3BsYXRmb3JtLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJtb2R1bGVzL3Nwb3RsaWdodC9tb2RlbHMvc3BvdGxpZ2h0LWNvbnRyb2wuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxnQkFBZ0I7Q0FTNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnVtU3BvdGxpZ2h0U3RhdHVzIH0gZnJvbSAnLi9zcG90bGlnaHQtc3RhdHVzLmVudW0nO1xuXG5leHBvcnQgY2xhc3MgU3BvdGxpZ2h0Q29udHJvbCB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgc3BvdGxpZ2h0SWQ6IHN0cmluZztcbiAgICBzdGF0dXM6IEVudW1TcG90bGlnaHRTdGF0dXM7XG4gICAgZmlyc3RVc2VyPzogc3RyaW5nO1xuICAgIGNyZWF0ZWRCeT86IHN0cmluZztcbiAgICBjcmVhdGVkRGF0ZT86IHN0cmluZztcbiAgICBsYXN0TW9kaWZpZWRCeT86IHN0cmluZztcbiAgICBsYXN0TW9kaWZpZWREYXRlPzogc3RyaW5nO1xufSJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdGxpZ2h0LW5vdGlmaWNhdGlvbi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvcGxhdGZvcm0tY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvc3BvdGxpZ2h0L21vZGVscy9zcG90bGlnaHQtbm90aWZpY2F0aW9uLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckFjdGlvbiB9IGZyb20gJy4vdXNlci1hY3Rpb24uZW51bSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BvdGxpZ2h0Tm90aWZpY2F0aW9uIHtcbiAgY2xpY2tlZEJ1dHRvbjogVXNlckFjdGlvbjtcbiAgc3BvdGxpZ2h0Q29udHJvbElkOiBzdHJpbmc7XG4gIHByaW1hcnlCdXR0b25Vcmw6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdGxpZ2h0LXNjcmVlbi1saXN0LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9wbGF0Zm9ybS1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibW9kdWxlcy9zcG90bGlnaHQvbW9kZWxzL3Nwb3RsaWdodC1zY3JlZW4tbGlzdC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNwb3RsaWdodFNjcmVlbiB9IGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNwb3RsaWdodFNjcmVlbkxpc3Qge1xuICAgIHRvdGFsUGFnZXM6IG51bWJlcjtcbiAgICB0b3RhbEVsZW1lbnRzOiBudW1iZXI7XG4gICAgY29udGVudHM6IFNwb3RsaWdodFNjcmVlbltdO1xufVxuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdGxpZ2h0LXNjcmVlbi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvcGxhdGZvcm0tY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvc3BvdGxpZ2h0L21vZGVscy9zcG90bGlnaHQtc2NyZWVuLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3BvdGxpZ2h0IH0gZnJvbSAnLi9pbmRleCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BvdGxpZ2h0U2NyZWVuIHtcbiAgICBpZD86IHN0cmluZztcbiAgICBzcG90bGlnaHQ6IFNwb3RsaWdodDtcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIHNjcmVlbk1lbnVJZDogc3RyaW5nO1xuICAgIGNyZWF0ZUJ5OiBzdHJpbmc7XG4gICAgY3JlYXRlZERhdGU6IHN0cmluZztcbiAgICBsYXN0TW9kaWZpZWRCeTogc3RyaW5nO1xuICAgIGxhc3RNb2RpZmllZERhdGU6IERhdGU7XG59XG4iXX0=
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export var EnumSpotlightStatus;
|
|
2
|
-
(function (EnumSpotlightStatus) {
|
|
3
|
-
EnumSpotlightStatus["ACTIVE"] = "ACTIVE";
|
|
4
|
-
EnumSpotlightStatus["IN_PROGRESS"] = "IN_PROGRESS";
|
|
5
|
-
EnumSpotlightStatus["NO_STARTED"] = "NO_STARTED";
|
|
6
|
-
EnumSpotlightStatus["REFUSED"] = "REFUSED";
|
|
7
|
-
})(EnumSpotlightStatus || (EnumSpotlightStatus = {}));
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdGxpZ2h0LXN0YXR1cy5lbnVtLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3BsYXRmb3JtLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJtb2R1bGVzL3Nwb3RsaWdodC9tb2RlbHMvc3BvdGxpZ2h0LXN0YXR1cy5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLG1CQUtYO0FBTEQsV0FBWSxtQkFBbUI7SUFDM0Isd0NBQWlCLENBQUE7SUFDakIsa0RBQTJCLENBQUE7SUFDM0IsZ0RBQXlCLENBQUE7SUFDekIsMENBQW1CLENBQUE7QUFDdkIsQ0FBQyxFQUxXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFLOUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBFbnVtU3BvdGxpZ2h0U3RhdHVzIHtcbiAgICBBQ1RJVkUgPSAnQUNUSVZFJyxcbiAgICBJTl9QUk9HUkVTUyA9ICdJTl9QUk9HUkVTUycsXG4gICAgTk9fU1RBUlRFRCA9ICdOT19TVEFSVEVEJyxcbiAgICBSRUZVU0VEID0gJ1JFRlVTRUQnXG59XG4iXX0=
|