@ieeesa-npm/tenants 0.0.1
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/README.md +24 -0
- package/esm2022/ieeesa-npm-tenants.mjs +5 -0
- package/esm2022/lib/assets/constants.json +134 -0
- package/esm2022/lib/assets/tenant-validations.mjs +10 -0
- package/esm2022/lib/components/create-tenant-application/create-tenant-application.component.mjs +420 -0
- package/esm2022/lib/models/app-type-config.model.mjs +2 -0
- package/esm2022/lib/models/app-type.model.mjs +7 -0
- package/esm2022/lib/models/features.model.mjs +2 -0
- package/esm2022/lib/models/form-status.model.mjs +7 -0
- package/esm2022/lib/models/permission-type.model.mjs +12 -0
- package/esm2022/lib/models/table-column-schema-view-tenant-list.model.mjs +16 -0
- package/esm2022/lib/models/tenant.model.mjs +2 -0
- package/esm2022/lib/models/tenants-permission.model.mjs +2 -0
- package/esm2022/lib/models/tenants.model.mjs +2 -0
- package/esm2022/lib/services/tenant-applications.service.mjs +207 -0
- package/esm2022/lib/services/tenant-permissions-map.service.mjs +31 -0
- package/esm2022/lib/services/tenant-permissions.service.mjs +38 -0
- package/esm2022/lib/tenant-applications.component.mjs +14 -0
- package/esm2022/lib/tenant-applications.module.mjs +16 -0
- package/esm2022/public-api.mjs +14 -0
- package/fesm2022/ieeesa-npm-tenants.mjs +906 -0
- package/fesm2022/ieeesa-npm-tenants.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/assets/tenant-validations.d.ts +8 -0
- package/lib/components/create-tenant-application/create-tenant-application.component.d.ts +113 -0
- package/lib/models/app-type-config.model.d.ts +14 -0
- package/lib/models/app-type.model.d.ts +4 -0
- package/lib/models/features.model.d.ts +15 -0
- package/lib/models/form-status.model.d.ts +4 -0
- package/lib/models/permission-type.model.d.ts +8 -0
- package/lib/models/table-column-schema-view-tenant-list.model.d.ts +20 -0
- package/lib/models/tenant.model.d.ts +23 -0
- package/lib/models/tenants-permission.model.d.ts +9 -0
- package/lib/models/tenants.model.d.ts +23 -0
- package/lib/services/tenant-applications.service.d.ts +149 -0
- package/lib/services/tenant-permissions-map.service.d.ts +13 -0
- package/lib/services/tenant-permissions.service.d.ts +22 -0
- package/lib/tenant-applications.component.d.ts +5 -0
- package/lib/tenant-applications.module.d.ts +6 -0
- package/package.json +25 -0
- package/public-api.d.ts +10 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL21vZGVscy90ZW5hbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmVJZCB9IGZyb20gJy4vZmVhdHVyZXMubW9kZWwnO1xyXG5leHBvcnQgaW50ZXJmYWNlIFRlbmFudEJhc2ljSW5mbyB7XHJcbiAgYXBwSWQ6IHN0cmluZztcclxuICBhcHBUaXRsZTogc3RyaW5nO1xyXG4gIGFwcExvZ286IHN0cmluZztcclxuICBhcHBIZWFkaW5nOiBzdHJpbmc7XHJcbiAgYXBwRGVzY3JpcHRpb246IHN0cmluZztcclxuICBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcclxuICBhcHBIZWxwTGluazogc3RyaW5nO1xyXG4gIGFwcFR5cGU6IHN0cmluZztcclxuICBhcHBEb21haW5Vcmw6IHN0cmluZztcclxuICBmZWF0dXJlczogRmVhdHVyZUlkW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVUZW5hbnRSZXF1ZXN0UGF5bG9hZCB7XHJcbiAgcGF5bG9hZDogVGVuYW50QmFzaWNJbmZvO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlVGVuYW50UmVzcG9uc2Uge1xyXG4gIHN0YXR1czogYm9vbGVhbjtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgYm9keT86IHN0cmluZyB8IG51bGwgfCB7IGVycm9yQ29kZXM6IHN0cmluZ1tdIH07XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50cy1wZXJtaXNzaW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL21vZGVscy90ZW5hbnRzLXBlcm1pc3Npb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVGVuYW50c1Blcm1pc3Npb25zIHtcclxuICBwZXJtaXNzaW9uVHlwZTogc3RyaW5nO1xyXG4gIHBlcm1pc3Npb25OYW1lOiBzdHJpbmc7XHJcbiAgcGVybWlzc2lvbklkOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBVc2VyUGVybWlzc2lvbiB7XHJcbiAgcGVybWlzc2lvbk5hbWU6IHN0cmluZztcclxuICBwZXJtaXNzaW9uSWQ6IHN0cmluZztcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50cy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbmFudHMvc3JjL2xpYi9tb2RlbHMvdGVuYW50cy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlSW5mbyB7XHJcbiAgZmVhdHVyZUlkOiBzdHJpbmc7XHJcbiAgZmVhdHVyZU5hbWU6IHN0cmluZztcclxuICBpc0RlZmF1bHQ6IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBUZW5hbnRJbmZvIHtcclxuICBhcHBJZDogc3RyaW5nO1xyXG4gIGFwcFRpdGxlOiBzdHJpbmc7XHJcbiAgYXBwRGVzY3JpcHRpb246IHN0cmluZztcclxuICBhcHBIZWFkaW5nOiBzdHJpbmc7XHJcbiAgZmVhdHVyZXM6IEZlYXR1cmVJbmZvW10gfCBudWxsO1xyXG4gIHN0YXR1czogYm9vbGVhbiB8IG51bGw7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBHZXRUZW5hbnRzUmVzcG9uc2Uge1xyXG4gIHN0YXR1czogYm9vbGVhbjtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgYm9keT86IHtcclxuICAgIHRvdGFsUmVjb3JkczogbnVtYmVyO1xyXG4gICAgYXBwRGV0YWlsczogVGVuYW50SW5mb1tdIHwgbnVsbCB8IHsgZXJyb3JDb2Rlczogc3RyaW5nW10gfTtcclxuICB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { catchError, map } from 'rxjs';
|
|
4
|
+
import * as screenTexts from '../assets/constants.json';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@ieeesa-npm/utility";
|
|
7
|
+
import * as i2 from "./tenant-permissions.service";
|
|
8
|
+
import * as i3 from "./tenant-permissions-map.service";
|
|
9
|
+
export class TenantApplicationsService {
|
|
10
|
+
constructor(
|
|
11
|
+
// eslint-disable-next-line no-unused-vars
|
|
12
|
+
httpService,
|
|
13
|
+
// eslint-disable-next-line no-unused-vars
|
|
14
|
+
tenantPermissionsService,
|
|
15
|
+
// eslint-disable-next-line no-unused-vars
|
|
16
|
+
tenantPermissionsMapService // eslint-disable-next-line no-empty-function
|
|
17
|
+
) {
|
|
18
|
+
this.httpService = httpService;
|
|
19
|
+
this.tenantPermissionsService = tenantPermissionsService;
|
|
20
|
+
this.tenantPermissionsMapService = tenantPermissionsMapService;
|
|
21
|
+
this.tenantsText = screenTexts?.errors;
|
|
22
|
+
this.createTenantsText = screenTexts?.createTenant?.errors;
|
|
23
|
+
this.radioOptions = [];
|
|
24
|
+
this.checkBoxOptions = [];
|
|
25
|
+
}
|
|
26
|
+
setAppConfig(apiBaseUrl, userPermission) {
|
|
27
|
+
this.apiBaseUrl = apiBaseUrl;
|
|
28
|
+
this.userPermission = userPermission;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Sets the user tenants permissions
|
|
32
|
+
* @param {TenantsPermissions[]} TenantsPermissions
|
|
33
|
+
* @memberof TenantApplicationsService
|
|
34
|
+
*/
|
|
35
|
+
setUserTenantsPermissions(userTenantsPermissions) {
|
|
36
|
+
this.userTenantsPermissions = userTenantsPermissions;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Returns the user tenants permissions
|
|
40
|
+
* @return {TenantsPermissions[]}
|
|
41
|
+
* @memberof TenantApplicationsService
|
|
42
|
+
*/
|
|
43
|
+
getUserTenantsPermissions() {
|
|
44
|
+
return this.userTenantsPermissions;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Sets the user tenants information
|
|
48
|
+
* @param {TenantInfo} tenantInfo
|
|
49
|
+
* @memberof TenantApplicationsService
|
|
50
|
+
*/
|
|
51
|
+
setSelectedTenantInformation(tenantInfo) {
|
|
52
|
+
this.selectedTenantInfo = tenantInfo;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Returns the tenants information
|
|
56
|
+
* @return {TenantInfo}
|
|
57
|
+
* @memberof TenantApplicationsService
|
|
58
|
+
*/
|
|
59
|
+
getSelectedTenantInformation() {
|
|
60
|
+
return this.selectedTenantInfo;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Filter permissions
|
|
64
|
+
* @param usersPermissions
|
|
65
|
+
* @returns @memberof TenantApplicationsService
|
|
66
|
+
*/
|
|
67
|
+
filterPermission(usersPermissions) {
|
|
68
|
+
return this.tenantPermissionsService?.filterTenantsPermissions(usersPermissions, this.tenantPermissionsMapService?.getGlobalTenantsPermissions());
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Validating access for tenants
|
|
72
|
+
* @param permissionType Permission Type to validate permission
|
|
73
|
+
* @param mappedUserPermissions Permission which are mapped with tenants
|
|
74
|
+
* @returns true if permission is granted
|
|
75
|
+
*/
|
|
76
|
+
validateAccess(permissionType, permissions) {
|
|
77
|
+
return this.tenantPermissionsService.validateAccessPermission(permissionType, permissions);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Gets the tenants.
|
|
81
|
+
* @param {GetTenantsPayload} payload
|
|
82
|
+
* @return {Observable<GetTenantsResponse>}
|
|
83
|
+
* @memberof TenantApplicationsService
|
|
84
|
+
*/
|
|
85
|
+
getTenantsList(payload) {
|
|
86
|
+
return this.httpService
|
|
87
|
+
.postData(`${this.apiBaseUrl}/configurations/config/application`, payload)
|
|
88
|
+
.pipe(map((response) => {
|
|
89
|
+
return response;
|
|
90
|
+
}), catchError((error) => {
|
|
91
|
+
throw error;
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Gets list of features from server using HttpService.
|
|
96
|
+
* @return {Observable<GetFeaturesResponse>}
|
|
97
|
+
* @memberof TenantApplicationsService
|
|
98
|
+
*/
|
|
99
|
+
getFeatures() {
|
|
100
|
+
return this.httpService
|
|
101
|
+
.getData(`${this.apiBaseUrl}/configurations/config/features`)
|
|
102
|
+
.pipe(map((response) => {
|
|
103
|
+
return response;
|
|
104
|
+
}), catchError((error) => {
|
|
105
|
+
throw error;
|
|
106
|
+
}));
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Gets list of application types from server using HttpService.
|
|
110
|
+
* @return {Observable<GetAppTypesResponse>}
|
|
111
|
+
* @memberof TenantApplicationsService
|
|
112
|
+
*/
|
|
113
|
+
getApplicationTypes() {
|
|
114
|
+
return this.httpService
|
|
115
|
+
.getData(`${this.apiBaseUrl}/configurations/config/app_type`)
|
|
116
|
+
.pipe(map((response) => {
|
|
117
|
+
return response;
|
|
118
|
+
}), catchError((error) => {
|
|
119
|
+
throw error;
|
|
120
|
+
}));
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Posts tenant application form data to server using HttpService for creating new tenant application.
|
|
124
|
+
* @param {CreateTenantPayload} createTenantPayload
|
|
125
|
+
* @return {Observable<CreateTenantResponse>}
|
|
126
|
+
* @memberof TenantApplicationsService
|
|
127
|
+
*/
|
|
128
|
+
createTenant(createTenantPayload) {
|
|
129
|
+
return this.httpService
|
|
130
|
+
.postData(`${this.apiBaseUrl}/configurations/config/createTenant`, createTenantPayload)
|
|
131
|
+
.pipe(map((response) => {
|
|
132
|
+
return response;
|
|
133
|
+
}), catchError((error) => {
|
|
134
|
+
throw error;
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Constructs the checkbox options from features list from server.
|
|
139
|
+
* @param {FeaturesList[]} features
|
|
140
|
+
* @returns {CheckboxOption[]}
|
|
141
|
+
*/
|
|
142
|
+
getFeatureOptions(features) {
|
|
143
|
+
this.checkBoxOptions = [];
|
|
144
|
+
features?.forEach((feature) => {
|
|
145
|
+
this.checkBoxOptions?.push({
|
|
146
|
+
id: feature?.featureId,
|
|
147
|
+
name: feature?.featureName,
|
|
148
|
+
checked: feature?.isDefault,
|
|
149
|
+
disabled: feature?.isDefault,
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
return this.checkBoxOptions;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Constructs the radio options from application types from server.
|
|
156
|
+
* @param {AppTypeConfig[]} appTypeOptions
|
|
157
|
+
* @returns {RadioOption[]}
|
|
158
|
+
*/
|
|
159
|
+
getApplicationTypeOptions(appTypeOptions) {
|
|
160
|
+
this.radioOptions = [];
|
|
161
|
+
appTypeOptions?.forEach((appType) => {
|
|
162
|
+
this.radioOptions?.push({
|
|
163
|
+
id: appType?.configFieldId,
|
|
164
|
+
label: appType?.configFieldValue?.type,
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
return this.radioOptions;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Constructs the selected features id's.
|
|
171
|
+
* @param {boolean[]} featureSelectionValues
|
|
172
|
+
* @returns {FeatureId[]}
|
|
173
|
+
*/
|
|
174
|
+
getFeatureIds(featureSelectionValues) {
|
|
175
|
+
const featureIds = [];
|
|
176
|
+
featureSelectionValues?.forEach((featureValue, index) => {
|
|
177
|
+
if (featureValue) {
|
|
178
|
+
featureIds.push({
|
|
179
|
+
featureId: this.checkBoxOptions[index]?.id,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
return featureIds;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Sets the tenant basic information.
|
|
187
|
+
* @param {CreateTenantRequestPayload} createTenantPayload
|
|
188
|
+
*/
|
|
189
|
+
setTenantBasicInfo(createTenantPayload) {
|
|
190
|
+
this.tenantBasicInfo = createTenantPayload?.payload;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Returns the tenant basic information.
|
|
194
|
+
*/
|
|
195
|
+
get getTenantBasicInfo() {
|
|
196
|
+
return this.tenantBasicInfo;
|
|
197
|
+
}
|
|
198
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsService, deps: [{ token: i1.HttpService }, { token: i2.TenantPermissionsService }, { token: i3.TenantPermissionsMapService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
199
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsService, providedIn: 'root' }); }
|
|
200
|
+
}
|
|
201
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsService, decorators: [{
|
|
202
|
+
type: Injectable,
|
|
203
|
+
args: [{
|
|
204
|
+
providedIn: 'root',
|
|
205
|
+
}]
|
|
206
|
+
}], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i2.TenantPermissionsService }, { type: i3.TenantPermissionsMapService }]; } });
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWFwcGxpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL3NlcnZpY2VzL3RlbmFudC1hcHBsaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0Q7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWMsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEtBQUssV0FBVyxNQUFNLDBCQUEwQixDQUFDOzs7OztBQWlCeEQsTUFBTSxPQUFPLHlCQUF5QjtJQVlwQztJQUNFLDBDQUEwQztJQUNsQyxXQUF3QjtJQUNoQywwQ0FBMEM7SUFDbEMsd0JBQWtEO0lBQzFELDBDQUEwQztJQUNsQywyQkFBd0QsQ0FBQyw2Q0FBNkM7O1FBSnRHLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRXhCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFFbEQsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQWpCbEUsZ0JBQVcsR0FBRyxXQUFXLEVBQUUsTUFBTSxDQUFDO1FBT2xDLHNCQUFpQixHQUFHLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDO1FBRXRELGlCQUFZLEdBQWtCLEVBQUUsQ0FBQztRQUNqQyxvQkFBZSxHQUFxQixFQUFFLENBQUM7SUFRcEMsQ0FBQztJQUNKLFlBQVksQ0FBQyxVQUFrQixFQUFFLGNBQWdDO1FBQy9ELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ3ZDLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gseUJBQXlCLENBQUMsc0JBQTRDO1FBQ3BFLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQztJQUN2RCxDQUFDO0lB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O09BRUc7SUFDSCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQzsrR0E3TlUseUJBQXlCO21IQUF6Qix5QkFBeUIsY0FGeEIsTUFBTTs7NEZBRVAseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnQGllZWVzYS1ucG0vdXRpbGl0eSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgKiBhcyBzY3JlZW5UZXh0cyBmcm9tICcuLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5pbXBvcnQgeyBHZXRUZW5hbnRzUmVzcG9uc2UsIFRlbmFudEluZm8gfSBmcm9tICcuLi9tb2RlbHMvdGVuYW50cy5tb2RlbCc7XHJcbmltcG9ydCB7IEdldFRlbmFudHNQYXlsb2FkIH0gZnJvbSAnLi4vbW9kZWxzL3RhYmxlLWNvbHVtbi1zY2hlbWEtdmlldy10ZW5hbnQtbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgVGVuYW50c1Blcm1pc3Npb25zLFxyXG4gIFVzZXJQZXJtaXNzaW9uLFxyXG59IGZyb20gJy4uL21vZGVscy90ZW5hbnRzLXBlcm1pc3Npb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBUZW5hbnRQZXJtaXNzaW9uc1NlcnZpY2UgfSBmcm9tICcuL3RlbmFudC1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGVybWlzc2lvblR5cGUgfSBmcm9tICcuLi9tb2RlbHMvcGVybWlzc2lvbi10eXBlLm1vZGVsJztcclxuaW1wb3J0IHsgVGVuYW50UGVybWlzc2lvbnNNYXBTZXJ2aWNlIH0gZnJvbSAnLi90ZW5hbnQtcGVybWlzc2lvbnMtbWFwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDcmVhdGVUZW5hbnRSZXF1ZXN0UGF5bG9hZCwgQ3JlYXRlVGVuYW50UmVzcG9uc2UsIFRlbmFudEJhc2ljSW5mbyB9IGZyb20gJy4uL21vZGVscy90ZW5hbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBDaGVja2JveE9wdGlvbiwgUmFkaW9PcHRpb24gfSBmcm9tICdAaWVlZXNhLW5wbS9wcmVzZW50YXRpb24nO1xyXG5pbXBvcnQgeyBGZWF0dXJlSWQsIEZlYXR1cmVzLCBHZXRGZWF0dXJlc1Jlc3BvbnNlIH0gZnJvbSAnLi4vbW9kZWxzL2ZlYXR1cmVzLm1vZGVsJztcclxuaW1wb3J0IHsgQXBwVHlwZUNvbmZpZywgR2V0QXBwVHlwZXNSZXNwb25zZSB9IGZyb20gJy4uL21vZGVscy9hcHAtdHlwZS1jb25maWcubW9kZWwnO1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVuYW50QXBwbGljYXRpb25zU2VydmljZSB7XHJcbiAgdGVuYW50c1RleHQgPSBzY3JlZW5UZXh0cz8uZXJyb3JzO1xyXG4gIGFwaUJhc2VVcmwhOiBzdHJpbmc7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICB1c2VyUGVybWlzc2lvbiE6IFVzZXJQZXJtaXNzaW9uW107XHJcbiAgc2VsZWN0ZWRUZW5hbnRJbmZvITogVGVuYW50SW5mbyB8IHVuZGVmaW5lZDtcclxuICB1c2VyVGVuYW50c1Blcm1pc3Npb25zITogVGVuYW50c1Blcm1pc3Npb25zW107XHJcbiAgdGVuYW50c0luZm8hOiBUZW5hbnRJbmZvO1xyXG4gIGNyZWF0ZVRlbmFudHNUZXh0ID0gc2NyZWVuVGV4dHM/LmNyZWF0ZVRlbmFudD8uZXJyb3JzO1xyXG4gIHRlbmFudEJhc2ljSW5mbyE6IFRlbmFudEJhc2ljSW5mbztcclxuICByYWRpb09wdGlvbnM6IFJhZGlvT3B0aW9uW10gPSBbXTtcclxuICBjaGVja0JveE9wdGlvbnM6IENoZWNrYm94T3B0aW9uW10gPSBbXTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgdGVuYW50UGVybWlzc2lvbnNTZXJ2aWNlOiBUZW5hbnRQZXJtaXNzaW9uc1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgdGVuYW50UGVybWlzc2lvbnNNYXBTZXJ2aWNlOiBUZW5hbnRQZXJtaXNzaW9uc01hcFNlcnZpY2UgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgKSB7fVxyXG4gIHNldEFwcENvbmZpZyhhcGlCYXNlVXJsOiBzdHJpbmcsIHVzZXJQZXJtaXNzaW9uOiBVc2VyUGVybWlzc2lvbltdKTogdm9pZCB7XHJcbiAgICB0aGlzLmFwaUJhc2VVcmwgPSBhcGlCYXNlVXJsO1xyXG4gICAgdGhpcy51c2VyUGVybWlzc2lvbiA9IHVzZXJQZXJtaXNzaW9uO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSB1c2VyIHRlbmFudHMgcGVybWlzc2lvbnNcclxuICAgKiBAcGFyYW0ge1RlbmFudHNQZXJtaXNzaW9uc1tdfSBUZW5hbnRzUGVybWlzc2lvbnNcclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIHNldFVzZXJUZW5hbnRzUGVybWlzc2lvbnModXNlclRlbmFudHNQZXJtaXNzaW9uczogVGVuYW50c1Blcm1pc3Npb25zW10pIHtcclxuICAgIHRoaXMudXNlclRlbmFudHNQZXJtaXNzaW9ucyA9IHVzZXJUZW5hbnRzUGVybWlzc2lvbnM7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHVzZXIgdGVuYW50cyBwZXJtaXNzaW9uc1xyXG4gICAqIEByZXR1cm4ge1RlbmFudHNQZXJtaXNzaW9uc1tdfVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0VXNlclRlbmFudHNQZXJtaXNzaW9ucygpOiBUZW5hbnRzUGVybWlzc2lvbnNbXSB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyVGVuYW50c1Blcm1pc3Npb25zO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgdXNlciB0ZW5hbnRzIGluZm9ybWF0aW9uXHJcbiAgICogQHBhcmFtIHtUZW5hbnRJbmZvfSB0ZW5hbnRJbmZvXHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICBzZXRTZWxlY3RlZFRlbmFudEluZm9ybWF0aW9uKHRlbmFudEluZm86IFRlbmFudEluZm8pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUZW5hbnRJbmZvID0gdGVuYW50SW5mbztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgdGVuYW50cyBpbmZvcm1hdGlvblxyXG4gICAqIEByZXR1cm4ge1RlbmFudEluZm99XHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICBnZXRTZWxlY3RlZFRlbmFudEluZm9ybWF0aW9uKCk6IFRlbmFudEluZm8gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRUZW5hbnRJbmZvO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBGaWx0ZXIgcGVybWlzc2lvbnNcclxuICAgKiBAcGFyYW0gdXNlcnNQZXJtaXNzaW9uc1xyXG4gICAqIEByZXR1cm5zIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZmlsdGVyUGVybWlzc2lvbih1c2Vyc1Blcm1pc3Npb25zOiBVc2VyUGVybWlzc2lvbltdKTogVGVuYW50c1Blcm1pc3Npb25zW10ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVuYW50UGVybWlzc2lvbnNTZXJ2aWNlPy5maWx0ZXJUZW5hbnRzUGVybWlzc2lvbnMoXHJcbiAgICAgIHVzZXJzUGVybWlzc2lvbnMsXHJcbiAgICAgIHRoaXMudGVuYW50UGVybWlzc2lvbnNNYXBTZXJ2aWNlPy5nZXRHbG9iYWxUZW5hbnRzUGVybWlzc2lvbnMoKVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdGluZyBhY2Nlc3MgZm9yIHRlbmFudHNcclxuICAgKiBAcGFyYW0gcGVybWlzc2lvblR5cGUgUGVybWlzc2lvbiBUeXBlIHRvIHZhbGlkYXRlIHBlcm1pc3Npb25cclxuICAgKiBAcGFyYW0gbWFwcGVkVXNlclBlcm1pc3Npb25zIFBlcm1pc3Npb24gd2hpY2ggYXJlIG1hcHBlZCB3aXRoIHRlbmFudHNcclxuICAgKiBAcmV0dXJucyB0cnVlIGlmIHBlcm1pc3Npb24gaXMgZ3JhbnRlZFxyXG4gICAqL1xyXG4gIHZhbGlkYXRlQWNjZXNzKFxyXG4gICAgcGVybWlzc2lvblR5cGU6IFBlcm1pc3Npb25UeXBlLFxyXG4gICAgcGVybWlzc2lvbnM6IFRlbmFudHNQZXJtaXNzaW9uc1tdXHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW5hbnRQZXJtaXNzaW9uc1NlcnZpY2UudmFsaWRhdGVBY2Nlc3NQZXJtaXNzaW9uKFxyXG4gICAgICBwZXJtaXNzaW9uVHlwZSxcclxuICAgICAgcGVybWlzc2lvbnNcclxuICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHRlbmFudHMuXHJcbiAgICogQHBhcmFtIHtHZXRUZW5hbnRzUGF5bG9hZH0gcGF5bG9hZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R2V0VGVuYW50c1Jlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGdldFRlbmFudHNMaXN0KHBheWxvYWQ6IEdldFRlbmFudHNQYXlsb2FkKTogT2JzZXJ2YWJsZTxHZXRUZW5hbnRzUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wb3N0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL2NvbmZpZy9hcHBsaWNhdGlvbmAsIHBheWxvYWQpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcbiAgIC8qKlxyXG4gICAqIEdldHMgbGlzdCBvZiBmZWF0dXJlcyBmcm9tIHNlcnZlciB1c2luZyBIdHRwU2VydmljZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdldEZlYXR1cmVzUmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgIGdldEZlYXR1cmVzKCk6IE9ic2VydmFibGU8R2V0RmVhdHVyZXNSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9jb25maWd1cmF0aW9ucy9jb25maWcvZmVhdHVyZXNgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIGxpc3Qgb2YgYXBwbGljYXRpb24gdHlwZXMgZnJvbSBzZXJ2ZXIgdXNpbmcgSHR0cFNlcnZpY2UuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHZXRBcHBUeXBlc1Jlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGdldEFwcGxpY2F0aW9uVHlwZXMoKTogT2JzZXJ2YWJsZTxHZXRBcHBUeXBlc1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAuZ2V0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL2NvbmZpZy9hcHBfdHlwZWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBvc3RzIHRlbmFudCBhcHBsaWNhdGlvbiBmb3JtIGRhdGEgdG8gc2VydmVyIHVzaW5nIEh0dHBTZXJ2aWNlIGZvciBjcmVhdGluZyBuZXcgdGVuYW50IGFwcGxpY2F0aW9uLlxyXG4gICAqIEBwYXJhbSB7Q3JlYXRlVGVuYW50UGF5bG9hZH0gY3JlYXRlVGVuYW50UGF5bG9hZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3JlYXRlVGVuYW50UmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgY3JlYXRlVGVuYW50KFxyXG4gICAgY3JlYXRlVGVuYW50UGF5bG9hZDogQ3JlYXRlVGVuYW50UmVxdWVzdFBheWxvYWRcclxuICApOiBPYnNlcnZhYmxlPENyZWF0ZVRlbmFudFJlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucG9zdERhdGEoXHJcbiAgICAgICAgYCR7dGhpcy5hcGlCYXNlVXJsfS9jb25maWd1cmF0aW9ucy9jb25maWcvY3JlYXRlVGVuYW50YCxcclxuICAgICAgICBjcmVhdGVUZW5hbnRQYXlsb2FkXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgY2hlY2tib3ggb3B0aW9ucyBmcm9tIGZlYXR1cmVzIGxpc3QgZnJvbSBzZXJ2ZXIuXHJcbiAgICogQHBhcmFtIHtGZWF0dXJlc0xpc3RbXX0gZmVhdHVyZXNcclxuICAgKiBAcmV0dXJucyB7Q2hlY2tib3hPcHRpb25bXX1cclxuICAgKi9cclxuICBnZXRGZWF0dXJlT3B0aW9ucyhmZWF0dXJlczogRmVhdHVyZXNbXSk6IENoZWNrYm94T3B0aW9uW10ge1xyXG4gICAgdGhpcy5jaGVja0JveE9wdGlvbnMgPSBbXTtcclxuICAgIGZlYXR1cmVzPy5mb3JFYWNoKChmZWF0dXJlOiBGZWF0dXJlcykgPT4ge1xyXG4gICAgICB0aGlzLmNoZWNrQm94T3B0aW9ucz8ucHVzaCh7XHJcbiAgICAgICAgaWQ6IGZlYXR1cmU/LmZlYXR1cmVJZCxcclxuICAgICAgICBuYW1lOiBmZWF0dXJlPy5mZWF0dXJlTmFtZSxcclxuICAgICAgICBjaGVja2VkOiBmZWF0dXJlPy5pc0RlZmF1bHQsXHJcbiAgICAgICAgZGlzYWJsZWQ6IGZlYXR1cmU/LmlzRGVmYXVsdCxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrQm94T3B0aW9ucztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgcmFkaW8gb3B0aW9ucyBmcm9tIGFwcGxpY2F0aW9uIHR5cGVzIGZyb20gc2VydmVyLlxyXG4gICAqIEBwYXJhbSB7QXBwVHlwZUNvbmZpZ1tdfSBhcHBUeXBlT3B0aW9uc1xyXG4gICAqIEByZXR1cm5zIHtSYWRpb09wdGlvbltdfVxyXG4gICAqL1xyXG4gIGdldEFwcGxpY2F0aW9uVHlwZU9wdGlvbnMoYXBwVHlwZU9wdGlvbnM6IEFwcFR5cGVDb25maWdbXSk6IFJhZGlvT3B0aW9uW10ge1xyXG4gICAgdGhpcy5yYWRpb09wdGlvbnMgPSBbXTtcclxuICAgIGFwcFR5cGVPcHRpb25zPy5mb3JFYWNoKChhcHBUeXBlOiBBcHBUeXBlQ29uZmlnKSA9PiB7XHJcbiAgICAgIHRoaXMucmFkaW9PcHRpb25zPy5wdXNoKHtcclxuICAgICAgICBpZDogYXBwVHlwZT8uY29uZmlnRmllbGRJZCxcclxuICAgICAgICBsYWJlbDogYXBwVHlwZT8uY29uZmlnRmllbGRWYWx1ZT8udHlwZSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLnJhZGlvT3B0aW9ucztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgc2VsZWN0ZWQgZmVhdHVyZXMgaWQncy5cclxuICAgKiBAcGFyYW0ge2Jvb2xlYW5bXX0gZmVhdHVyZVNlbGVjdGlvblZhbHVlc1xyXG4gICAqIEByZXR1cm5zIHtGZWF0dXJlSWRbXX1cclxuICAgKi9cclxuICBnZXRGZWF0dXJlSWRzKGZlYXR1cmVTZWxlY3Rpb25WYWx1ZXM6IGJvb2xlYW5bXSk6IEZlYXR1cmVJZFtdIHtcclxuICAgIGNvbnN0IGZlYXR1cmVJZHM6IEZlYXR1cmVJZFtdID0gW107XHJcbiAgICBmZWF0dXJlU2VsZWN0aW9uVmFsdWVzPy5mb3JFYWNoKChmZWF0dXJlVmFsdWU6IGJvb2xlYW4sIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgaWYgKGZlYXR1cmVWYWx1ZSkge1xyXG4gICAgICAgIGZlYXR1cmVJZHMucHVzaCh7XHJcbiAgICAgICAgICBmZWF0dXJlSWQ6IHRoaXMuY2hlY2tCb3hPcHRpb25zW2luZGV4XT8uaWQgYXMgc3RyaW5nLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmZWF0dXJlSWRzO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSB0ZW5hbnQgYmFzaWMgaW5mb3JtYXRpb24uXHJcbiAgICogQHBhcmFtIHtDcmVhdGVUZW5hbnRSZXF1ZXN0UGF5bG9hZH0gY3JlYXRlVGVuYW50UGF5bG9hZFxyXG4gICAqL1xyXG4gIHNldFRlbmFudEJhc2ljSW5mbyhjcmVhdGVUZW5hbnRQYXlsb2FkOiBDcmVhdGVUZW5hbnRSZXF1ZXN0UGF5bG9hZCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW5hbnRCYXNpY0luZm8gPSBjcmVhdGVUZW5hbnRQYXlsb2FkPy5wYXlsb2FkO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB0ZW5hbnQgYmFzaWMgaW5mb3JtYXRpb24uXHJcbiAgICovXHJcbiAgZ2V0IGdldFRlbmFudEJhc2ljSW5mbygpOiBUZW5hbnRCYXNpY0luZm8ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVuYW50QmFzaWNJbmZvO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { PermissionType } from '../models/permission-type.model';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class TenantPermissionsMapService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.globalTenantsPermissions = [
|
|
7
|
+
{
|
|
8
|
+
permissionType: PermissionType.VIEW_TENANTS,
|
|
9
|
+
permissionName: 'View Tenant Applications',
|
|
10
|
+
permissionId: 'PERM_SAAPPS_1a2dbbb5-5fe1-4261-85b1-a5373f41075a',
|
|
11
|
+
},
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Returns global permissions mapping for tenants.
|
|
16
|
+
* @return {TenantsPermissions[]}
|
|
17
|
+
* @memberof TenantsPermissionsMapService
|
|
18
|
+
*/
|
|
19
|
+
getGlobalTenantsPermissions() {
|
|
20
|
+
return this.globalTenantsPermissions;
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantPermissionsMapService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
23
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantPermissionsMapService, providedIn: 'root' }); }
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantPermissionsMapService, decorators: [{
|
|
26
|
+
type: Injectable,
|
|
27
|
+
args: [{
|
|
28
|
+
providedIn: 'root',
|
|
29
|
+
}]
|
|
30
|
+
}] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LXBlcm1pc3Npb25zLW1hcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL3NlcnZpY2VzL3RlbmFudC1wZXJtaXNzaW9ucy1tYXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFLakUsTUFBTSxPQUFPLDJCQUEyQjtJQUh4QztRQUlFLDZCQUF3QixHQUF5QjtZQUMvQztnQkFDRSxjQUFjLEVBQUUsY0FBYyxDQUFDLFlBQVk7Z0JBQzNDLGNBQWMsRUFBRSwwQkFBMEI7Z0JBQzFDLFlBQVksRUFBRSxrREFBa0Q7YUFDakU7U0FDRixDQUFDO0tBU0g7SUFSQzs7OztPQUlHO0lBQ0gsMkJBQTJCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDO0lBQ3ZDLENBQUM7K0dBZlUsMkJBQTJCO21IQUEzQiwyQkFBMkIsY0FGMUIsTUFBTTs7NEZBRVAsMkJBQTJCO2tCQUh2QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGVybWlzc2lvblR5cGUgfSBmcm9tICcuLi9tb2RlbHMvcGVybWlzc2lvbi10eXBlLm1vZGVsJztcclxuaW1wb3J0IHsgVGVuYW50c1Blcm1pc3Npb25zIH0gZnJvbSAnLi4vbW9kZWxzL3RlbmFudHMtcGVybWlzc2lvbi5tb2RlbCc7XHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW5hbnRQZXJtaXNzaW9uc01hcFNlcnZpY2Uge1xyXG4gIGdsb2JhbFRlbmFudHNQZXJtaXNzaW9uczogVGVuYW50c1Blcm1pc3Npb25zW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIHBlcm1pc3Npb25UeXBlOiBQZXJtaXNzaW9uVHlwZS5WSUVXX1RFTkFOVFMsXHJcbiAgICAgIHBlcm1pc3Npb25OYW1lOiAnVmlldyBUZW5hbnQgQXBwbGljYXRpb25zJyxcclxuICAgICAgcGVybWlzc2lvbklkOiAnUEVSTV9TQUFQUFNfMWEyZGJiYjUtNWZlMS00MjYxLTg1YjEtYTUzNzNmNDEwNzVhJyxcclxuICAgIH0sXHJcbiAgXTtcclxuICAvKipcclxuICAgKiBSZXR1cm5zIGdsb2JhbCBwZXJtaXNzaW9ucyBtYXBwaW5nIGZvciB0ZW5hbnRzLlxyXG4gICAqIEByZXR1cm4ge1RlbmFudHNQZXJtaXNzaW9uc1tdfVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRzUGVybWlzc2lvbnNNYXBTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0R2xvYmFsVGVuYW50c1Blcm1pc3Npb25zKCk6IFRlbmFudHNQZXJtaXNzaW9uc1tdIHtcclxuICAgIHJldHVybiB0aGlzLmdsb2JhbFRlbmFudHNQZXJtaXNzaW9ucztcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class TenantPermissionsService {
|
|
4
|
+
/**
|
|
5
|
+
* Returns access provision for the passed action/feature based on whether the signed in user has appropriate permission.
|
|
6
|
+
* @param {PermissionType} permission
|
|
7
|
+
* @param {TenantsPermission[]} tenantsPermissions
|
|
8
|
+
* @return {boolean}
|
|
9
|
+
* @memberof TenantPermissionsService
|
|
10
|
+
*/
|
|
11
|
+
validateAccessPermission(permission, userTenantsPermissions) {
|
|
12
|
+
const isPermitted = userTenantsPermissions && userTenantsPermissions.length
|
|
13
|
+
? userTenantsPermissions?.some(({ permissionType }) => permissionType === permission)
|
|
14
|
+
: false;
|
|
15
|
+
return isPermitted;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Filters signed in user tenants permissions from entire tenants permissions.
|
|
19
|
+
* @param { UserPermission[] }
|
|
20
|
+
* @return {TenantsPermissions[]}
|
|
21
|
+
* @memberof TenantPermissionsService
|
|
22
|
+
*/
|
|
23
|
+
filterTenantsPermissions(userPermissions, tenantsPermissions) {
|
|
24
|
+
const userTenantsPermission = tenantsPermissions?.filter((permission) => {
|
|
25
|
+
return userPermissions?.find(({ permissionId }) => permission?.permissionId === permissionId);
|
|
26
|
+
});
|
|
27
|
+
return userTenantsPermission;
|
|
28
|
+
}
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantPermissionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
30
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantPermissionsService, providedIn: 'root' }); }
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantPermissionsService, decorators: [{
|
|
33
|
+
type: Injectable,
|
|
34
|
+
args: [{
|
|
35
|
+
providedIn: 'root',
|
|
36
|
+
}]
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LXBlcm1pc3Npb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW5hbnRzL3NyYy9saWIvc2VydmljZXMvdGVuYW50LXBlcm1pc3Npb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTM0MsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQzs7Ozs7O09BTUc7SUFDSCx3QkFBd0IsQ0FDdEIsVUFBMEIsRUFDMUIsc0JBQTRDO1FBRTVDLE1BQU0sV0FBVyxHQUNmLHNCQUFzQixJQUFJLHNCQUFzQixDQUFDLE1BQU07WUFDckQsQ0FBQyxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FDMUIsQ0FBQyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxjQUFjLEtBQUssVUFBVSxDQUN0RDtZQUNILENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDWixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBQ0Q7Ozs7O09BS0c7SUFDSCx3QkFBd0IsQ0FDdEIsZUFBaUMsRUFDakMsa0JBQXdDO1FBRXhDLE1BQU0scUJBQXFCLEdBQUcsa0JBQWtCLEVBQUUsTUFBTSxDQUN0RCxDQUFDLFVBQThCLEVBQUUsRUFBRTtZQUNqQyxPQUFPLGVBQWUsRUFBRSxJQUFJLENBQzFCLENBQUMsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFLFlBQVksS0FBSyxZQUFZLENBQ2hFLENBQUM7UUFDSixDQUFDLENBQ0YsQ0FBQztRQUNGLE9BQU8scUJBQXFCLENBQUM7SUFDL0IsQ0FBQzsrR0F0Q1Usd0JBQXdCO21IQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTs7NEZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGVybWlzc2lvblR5cGUgfSBmcm9tICcuLi9tb2RlbHMvcGVybWlzc2lvbi10eXBlLm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBVc2VyUGVybWlzc2lvbixcclxuICBUZW5hbnRzUGVybWlzc2lvbnMsXHJcbn0gZnJvbSAnLi4vbW9kZWxzL3RlbmFudHMtcGVybWlzc2lvbi5tb2RlbCc7XHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW5hbnRQZXJtaXNzaW9uc1NlcnZpY2Uge1xyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYWNjZXNzIHByb3Zpc2lvbiBmb3IgdGhlIHBhc3NlZCBhY3Rpb24vZmVhdHVyZSBiYXNlZCBvbiB3aGV0aGVyIHRoZSBzaWduZWQgaW4gdXNlciBoYXMgYXBwcm9wcmlhdGUgcGVybWlzc2lvbi5cclxuICAgKiBAcGFyYW0ge1Blcm1pc3Npb25UeXBlfSBwZXJtaXNzaW9uXHJcbiAgICogQHBhcmFtIHtUZW5hbnRzUGVybWlzc2lvbltdfSB0ZW5hbnRzUGVybWlzc2lvbnNcclxuICAgKiBAcmV0dXJuIHtib29sZWFufVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRQZXJtaXNzaW9uc1NlcnZpY2VcclxuICAgKi9cclxuICB2YWxpZGF0ZUFjY2Vzc1Blcm1pc3Npb24oXHJcbiAgICBwZXJtaXNzaW9uOiBQZXJtaXNzaW9uVHlwZSxcclxuICAgIHVzZXJUZW5hbnRzUGVybWlzc2lvbnM6IFRlbmFudHNQZXJtaXNzaW9uc1tdXHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBpc1Blcm1pdHRlZCA9XHJcbiAgICAgIHVzZXJUZW5hbnRzUGVybWlzc2lvbnMgJiYgdXNlclRlbmFudHNQZXJtaXNzaW9ucy5sZW5ndGhcclxuICAgICAgICA/IHVzZXJUZW5hbnRzUGVybWlzc2lvbnM/LnNvbWUoXHJcbiAgICAgICAgICAgICh7IHBlcm1pc3Npb25UeXBlIH0pID0+IHBlcm1pc3Npb25UeXBlID09PSBwZXJtaXNzaW9uXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiBmYWxzZTtcclxuICAgIHJldHVybiBpc1Blcm1pdHRlZDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmlsdGVycyBzaWduZWQgaW4gdXNlciB0ZW5hbnRzIHBlcm1pc3Npb25zIGZyb20gZW50aXJlIHRlbmFudHMgcGVybWlzc2lvbnMuXHJcbiAgICogQHBhcmFtIHsgVXNlclBlcm1pc3Npb25bXSB9XHJcbiAgICogQHJldHVybiB7VGVuYW50c1Blcm1pc3Npb25zW119XHJcbiAgICogQG1lbWJlcm9mIFRlbmFudFBlcm1pc3Npb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGZpbHRlclRlbmFudHNQZXJtaXNzaW9ucyhcclxuICAgIHVzZXJQZXJtaXNzaW9uczogVXNlclBlcm1pc3Npb25bXSxcclxuICAgIHRlbmFudHNQZXJtaXNzaW9uczogVGVuYW50c1Blcm1pc3Npb25zW11cclxuICApOiBUZW5hbnRzUGVybWlzc2lvbnNbXSB7XHJcbiAgICBjb25zdCB1c2VyVGVuYW50c1Blcm1pc3Npb24gPSB0ZW5hbnRzUGVybWlzc2lvbnM/LmZpbHRlcihcclxuICAgICAgKHBlcm1pc3Npb246IFRlbmFudHNQZXJtaXNzaW9ucykgPT4ge1xyXG4gICAgICAgIHJldHVybiB1c2VyUGVybWlzc2lvbnM/LmZpbmQoXHJcbiAgICAgICAgICAoeyBwZXJtaXNzaW9uSWQgfSkgPT4gcGVybWlzc2lvbj8ucGVybWlzc2lvbklkID09PSBwZXJtaXNzaW9uSWRcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHVzZXJUZW5hbnRzUGVybWlzc2lvbjtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/* eslint-disable no-empty-function */
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class TenantApplicationsComponent {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TenantApplicationsComponent, isStandalone: true, selector: "ieeesa-tenant-applications", ngImport: i0, template: "", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }] }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsComponent, decorators: [{
|
|
11
|
+
type: Component,
|
|
12
|
+
args: [{ selector: 'ieeesa-tenant-applications', standalone: true, imports: [CommonModule, MatButtonModule], template: "" }]
|
|
13
|
+
}] });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWFwcGxpY2F0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW5hbnRzL3NyYy9saWIvdGVuYW50LWFwcGxpY2F0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW5hbnRzL3NyYy9saWIvdGVuYW50LWFwcGxpY2F0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzQ0FBc0M7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQVEzRCxNQUFNLE9BQU8sMkJBQTJCOytHQUEzQiwyQkFBMkI7bUdBQTNCLDJCQUEyQixzRkNYeEMsRUFBQSx5RERPWSxZQUFZLDhCQUFFLGVBQWU7OzRGQUk1QiwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0UsNEJBQTRCLGNBQzFCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1lbXB0eS1mdW5jdGlvbiAqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZWVlc2EtdGVuYW50LWFwcGxpY2F0aW9ucycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW5hbnQtYXBwbGljYXRpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90ZW5hbnQtYXBwbGljYXRpb25zLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW5hbnRBcHBsaWNhdGlvbnNDb21wb25lbnQge31cclxuIiwiIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class TenantApplicationsModule {
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsModule }); }
|
|
6
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsModule }); }
|
|
7
|
+
}
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsModule, decorators: [{
|
|
9
|
+
type: NgModule,
|
|
10
|
+
args: [{
|
|
11
|
+
declarations: [],
|
|
12
|
+
imports: [],
|
|
13
|
+
exports: [],
|
|
14
|
+
}]
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWFwcGxpY2F0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW5hbnRzL3NyYy9saWIvdGVuYW50LWFwcGxpY2F0aW9ucy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPekMsTUFBTSxPQUFPLHdCQUF3QjsrR0FBeEIsd0JBQXdCO2dIQUF4Qix3QkFBd0I7Z0hBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFOcEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFDYjtvQkFDRCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxPQUFPLEVBQUUsRUFBRTtpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXSxcclxuICBleHBvcnRzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRlbmFudEFwcGxpY2F0aW9uc01vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of tenants
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/components/create-tenant-application/create-tenant-application.component';
|
|
5
|
+
export * from './lib/tenant-applications.component';
|
|
6
|
+
export * from './lib/models/app-type-config.model';
|
|
7
|
+
export * from './lib/models/app-type.model';
|
|
8
|
+
export * from './lib/models/tenant.model';
|
|
9
|
+
export * from './lib/models/features.model';
|
|
10
|
+
export * from './lib/models/form-status.model';
|
|
11
|
+
export * from './lib/services/tenant-applications.service';
|
|
12
|
+
export * from './lib/assets/tenant-validations';
|
|
13
|
+
export * from './lib/tenant-applications.module';
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3RlbmFudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGdGQUFnRixDQUFDO0FBQy9GLGNBQWMscUNBQXFDLENBQUM7QUFFcEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLGNBQWMsNENBQTRDLENBQUM7QUFFM0QsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHRlbmFudHNcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY3JlYXRlLXRlbmFudC1hcHBsaWNhdGlvbi9jcmVhdGUtdGVuYW50LWFwcGxpY2F0aW9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbmFudC1hcHBsaWNhdGlvbnMuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9hcHAtdHlwZS1jb25maWcubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYXBwLXR5cGUubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdGVuYW50Lm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2ZlYXR1cmVzLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2Zvcm0tc3RhdHVzLm1vZGVsJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RlbmFudC1hcHBsaWNhdGlvbnMuc2VydmljZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hc3NldHMvdGVuYW50LXZhbGlkYXRpb25zJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbmFudC1hcHBsaWNhdGlvbnMubW9kdWxlJztcclxuIl19
|